Revision: 201037 default PDK_4.0.a
authorDremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Mon, 04 Oct 2010 01:19:32 +0300
changeset 37 758a864f9613
parent 36 ef0373b55136
Revision: 201037 Kit: 201039
VERSION.SHA1
bin/createpackage.pl
bin/patch_capabilities.pl
bin/syncqt
config.tests/symbian/audio/audio.pro
config.tests/symbian/compile.test
config.tests/unix/icd/icd.cpp
configure
configure.exe
demos/books/bookwindow.cpp
demos/browser/browsermainwindow.cpp
demos/browser/downloadmanager.cpp
demos/browser/settings.cpp
demos/browser/tabwidget.cpp
demos/browser/webview.cpp
demos/declarative/calculator/Core/calculator.js
demos/declarative/calculator/calculator.qml
demos/declarative/flickr/common/Slider.qml
demos/declarative/flickr/flickr.qml
demos/declarative/flickr/mobile/GridDelegate.qml
demos/declarative/flickr/mobile/ImageDetails.qml
demos/declarative/minehunt/MinehuntCore/pics/No-Ones-Laughing-3.jpg
demos/declarative/minehunt/MinehuntCore/pics/background.png
demos/declarative/minehunt/MinehuntCore/pics/quit.png
demos/declarative/minehunt/MinehuntCore/qmldir
demos/declarative/minehunt/README
demos/declarative/minehunt/main.cpp
demos/declarative/minehunt/minehunt.cpp
demos/declarative/minehunt/minehunt.h
demos/declarative/minehunt/minehunt.pro
demos/declarative/minehunt/minehunt.qml
demos/declarative/photoviewer/PhotoViewerCore/Button.qml
demos/declarative/photoviewer/photoviewer.qml
demos/declarative/rssnews/rssnews.qml
demos/declarative/samegame/SamegameCore/samegame.js
demos/declarative/samegame/samegame.qml
demos/declarative/snake/content/Cookie.qml
demos/declarative/snake/content/Link.qml
demos/declarative/snake/content/snake.js
demos/declarative/snake/snake.qml
demos/declarative/twitter/TwitterCore/AuthView.qml
demos/declarative/twitter/TwitterCore/Button.qml
demos/declarative/twitter/TwitterCore/FatDelegate.qml
demos/declarative/twitter/TwitterCore/HomeTitleBar.qml
demos/declarative/twitter/TwitterCore/Input.qml
demos/declarative/twitter/TwitterCore/MultiTitleBar.qml
demos/declarative/twitter/TwitterCore/RssModel.qml
demos/declarative/twitter/TwitterCore/SearchView.qml
demos/declarative/twitter/TwitterCore/TitleBar.qml
demos/declarative/twitter/TwitterCore/ToolBar.qml
demos/declarative/twitter/TwitterCore/UserModel.qml
demos/declarative/twitter/TwitterCore/images/quit.png
demos/declarative/twitter/TwitterCore/qmldir
demos/declarative/twitter/twitter.qml
demos/declarative/webbrowser/content/Header.qml
demos/declarative/webbrowser/content/pics/edit-delete.png
demos/declarative/webbrowser/content/pics/go-jump-locationbar.png
demos/declarative/webbrowser/content/pics/go-next-view.png
demos/declarative/webbrowser/content/pics/go-previous-view.png
demos/demos.pro
demos/embedded/anomaly/src/AddressBar.cpp
demos/embedded/desktopservices/contenttab.cpp
demos/embedded/desktopservices/desktopwidget.cpp
demos/embedded/fluidlauncher/fluidlauncher.cpp
demos/embedded/fluidlauncher/pictureflow.cpp
demos/embedded/qmlcalculator/qmlcalculator.cpp
demos/embedded/qmlclocks/qmlclocks.cpp
demos/embedded/qmldialcontrol/qmldialcontrol.cpp
demos/embedded/qmleasing/deployment.pri
demos/embedded/qmleasing/qmleasing.cpp
demos/embedded/qmlflickr/qmlflickr.cpp
demos/embedded/qmlphotoviewer/qmlphotoviewer.cpp
demos/embedded/qmltwitter/qmltwitter.cpp
demos/embedded/raycasting/raycasting.cpp
demos/qtdemo/examplecontent.cpp
demos/qtdemo/mainwindow.h
demos/qtdemo/menumanager.cpp
demos/qtdemo/menumanager.h
demos/qtdemo/qmlShell.qml
demos/qtdemo/qtdemo.pro
demos/spectrum/3rdparty/fftreal/fftreal.pro
demos/spectrum/app/app.pro
dist/changes-4.6.4
dist/changes-4.7.0
dist/changes-4.7.1
examples/animation/stickman/lifecycle.cpp
examples/declarative/animation/easing/content/QuitButton.qml
examples/declarative/animation/easing/content/quit.png
examples/declarative/animation/easing/easing.qml
examples/declarative/animation/states/qt-logo.png
examples/declarative/animation/states/states.qml
examples/declarative/animation/states/transitions.qml
examples/declarative/animation/states/user.png
examples/declarative/cppextensions/referenceexamples/adding/main.cpp
examples/declarative/cppextensions/referenceexamples/attached/main.cpp
examples/declarative/cppextensions/referenceexamples/binding/main.cpp
examples/declarative/cppextensions/referenceexamples/coercion/main.cpp
examples/declarative/cppextensions/referenceexamples/default/main.cpp
examples/declarative/cppextensions/referenceexamples/extended/main.cpp
examples/declarative/cppextensions/referenceexamples/grouped/main.cpp
examples/declarative/cppextensions/referenceexamples/methods/birthdayparty.cpp
examples/declarative/cppextensions/referenceexamples/methods/birthdayparty.h
examples/declarative/cppextensions/referenceexamples/methods/example.qml
examples/declarative/cppextensions/referenceexamples/methods/main.cpp
examples/declarative/cppextensions/referenceexamples/methods/methods.pro
examples/declarative/cppextensions/referenceexamples/methods/methods.qrc
examples/declarative/cppextensions/referenceexamples/methods/person.cpp
examples/declarative/cppextensions/referenceexamples/methods/person.h
examples/declarative/cppextensions/referenceexamples/properties/main.cpp
examples/declarative/cppextensions/referenceexamples/referenceexamples.pro
examples/declarative/cppextensions/referenceexamples/signal/main.cpp
examples/declarative/cppextensions/referenceexamples/valuesource/main.cpp
examples/declarative/imageelements/image/ImageCell.qml
examples/declarative/imageelements/image/face-smile.png
examples/declarative/imageelements/image/qt-logo.png
examples/declarative/keyinteraction/focus/Core/ContextMenu.qml
examples/declarative/keyinteraction/focus/Core/GridMenu.qml
examples/declarative/keyinteraction/focus/Core/ListMenu.qml
examples/declarative/keyinteraction/focus/Core/ListViews.qml
examples/declarative/keyinteraction/focus/focus.qml
examples/declarative/modelviews/listview/content/pics/arrow-down.png
examples/declarative/modelviews/listview/content/pics/arrow-up.png
examples/declarative/modelviews/listview/content/pics/list-delete.png
examples/declarative/modelviews/package/view.qml
examples/declarative/positioners/add.png
examples/declarative/positioners/del.png
examples/declarative/screenorientation/Core/Bubble.qml
examples/declarative/screenorientation/Core/Button.qml
examples/declarative/screenorientation/Core/screenorientation.js
examples/declarative/screenorientation/screenorientation.qml
examples/declarative/screenorientation/screenorientation.qmlproject
examples/declarative/sqllocalstorage/hello.qml
examples/declarative/threading/threadedlistmodel/timedisplay.qml
examples/declarative/toys/clocks/clocks.qml
examples/declarative/toys/clocks/content/Clock.qml
examples/declarative/toys/clocks/content/QuitButton.qml
examples/declarative/toys/clocks/content/quit.png
examples/declarative/toys/dynamicscene/dynamicscene.qml
examples/declarative/toys/tvtennis/tvtennis.qml
examples/declarative/tutorials/extending/chapter6-plugins/chartsplugin.cpp
examples/declarative/tutorials/extending/chapter6-plugins/chartsplugin.h
examples/declarative/tutorials/samegame/samegame1/samegame.qml
examples/declarative/tutorials/samegame/samegame4/content/samegame.js
examples/declarative/ui-components/dialcontrol/content/Dial.qml
examples/declarative/ui-components/dialcontrol/content/QuitButton.qml
examples/declarative/ui-components/dialcontrol/content/quit.png
examples/declarative/ui-components/dialcontrol/dialcontrol.qml
examples/declarative/ui-components/searchbox/SearchBox.qml
examples/examples.pro
examples/graphicsview/diagramscene/mainwindow.cpp
examples/multitouch/dials/dials.pro
examples/multitouch/dials/dials.ui
examples/multitouch/dials/main.cpp
examples/multitouch/fingerpaint/fingerpaint.pro
examples/multitouch/fingerpaint/main.cpp
examples/multitouch/fingerpaint/mainwindow.cpp
examples/multitouch/fingerpaint/mainwindow.h
examples/multitouch/fingerpaint/scribblearea.cpp
examples/multitouch/fingerpaint/scribblearea.h
examples/multitouch/knobs/knob.cpp
examples/multitouch/knobs/knob.h
examples/multitouch/knobs/knobs.pro
examples/multitouch/knobs/main.cpp
examples/multitouch/multitouch.pro
examples/multitouch/pinchzoom/graphicsview.cpp
examples/multitouch/pinchzoom/graphicsview.h
examples/multitouch/pinchzoom/images/cheese.jpg
examples/multitouch/pinchzoom/main.cpp
examples/multitouch/pinchzoom/mice.qrc
examples/multitouch/pinchzoom/mouse.cpp
examples/multitouch/pinchzoom/mouse.h
examples/multitouch/pinchzoom/pinchzoom.pro
examples/network/bearercloud/bluetooth.svg
examples/network/bearercloud/cell.svg
examples/network/bearercloud/cloud.cpp
examples/network/bearercloud/gprs.svg
examples/network/bearercloud/icons.qrc
examples/network/bearercloud/lan.svg
examples/network/bearercloud/umts.svg
examples/network/bearermonitor/sessionwidget.cpp
examples/network/download/main.cpp
examples/network/fortuneserver/fortuneserver.pro
examples/network/fortuneserver/server.cpp
examples/network/http/httpwindow.cpp
examples/network/network.pro
examples/network/torrent/torrent.pro
examples/network/torrent/torrentclient.cpp
examples/opengl/shared/qtlogo.cpp
examples/phonon/qmusicplayer/mainwindow.cpp
examples/sql/masterdetail/mainwindow.cpp
examples/tools/customcompleter/textedit.cpp
examples/tools/treemodelcompleter/mainwindow.cpp
examples/touch/dials/dials.pro
examples/touch/dials/dials.ui
examples/touch/dials/main.cpp
examples/touch/fingerpaint/fingerpaint.pro
examples/touch/fingerpaint/main.cpp
examples/touch/fingerpaint/mainwindow.cpp
examples/touch/fingerpaint/mainwindow.h
examples/touch/fingerpaint/scribblearea.cpp
examples/touch/fingerpaint/scribblearea.h
examples/touch/knobs/knob.cpp
examples/touch/knobs/knob.h
examples/touch/knobs/knobs.pro
examples/touch/knobs/main.cpp
examples/touch/pinchzoom/graphicsview.cpp
examples/touch/pinchzoom/graphicsview.h
examples/touch/pinchzoom/images/cheese.jpg
examples/touch/pinchzoom/main.cpp
examples/touch/pinchzoom/mice.qrc
examples/touch/pinchzoom/mouse.cpp
examples/touch/pinchzoom/mouse.h
examples/touch/pinchzoom/pinchzoom.pro
examples/touch/touch.pro
examples/tutorials/addressbook-fr/part2/addressbook.cpp
examples/tutorials/addressbook-fr/part3/addressbook.cpp
examples/tutorials/addressbook-fr/part4/addressbook.cpp
examples/tutorials/addressbook-fr/part5/addressbook.cpp
examples/tutorials/addressbook-fr/part6/addressbook.cpp
examples/tutorials/addressbook-fr/part7/addressbook.cpp
examples/tutorials/addressbook/part2/addressbook.cpp
examples/tutorials/addressbook/part3/addressbook.cpp
examples/tutorials/addressbook/part4/addressbook.cpp
examples/tutorials/addressbook/part5/addressbook.cpp
examples/tutorials/addressbook/part6/addressbook.cpp
examples/tutorials/addressbook/part7/addressbook.cpp
examples/tutorials/gettingStarted/gsQml/core/button.qml
examples/tutorials/gettingStarted/gsQml/core/editMenu.qml
examples/tutorials/gettingStarted/gsQml/core/fileDialog.qml
examples/tutorials/gettingStarted/gsQml/core/fileMenu.qml
examples/tutorials/gettingStarted/gsQml/core/menuBar.qml
examples/tutorials/gettingStarted/gsQml/core/qmldir
examples/tutorials/gettingStarted/gsQml/core/textArea.qml
examples/tutorials/gettingStarted/gsQml/filedialog/cppPlugins.pro
examples/tutorials/gettingStarted/gsQml/filedialog/dialogPlugin.cpp
examples/tutorials/gettingStarted/gsQml/filedialog/dialogPlugin.h
examples/tutorials/gettingStarted/gsQml/filedialog/directory.cpp
examples/tutorials/gettingStarted/gsQml/filedialog/directory.h
examples/tutorials/gettingStarted/gsQml/filedialog/file.cpp
examples/tutorials/gettingStarted/gsQml/filedialog/file.h
examples/tutorials/gettingStarted/gsQml/filedialog/qmldir
examples/tutorials/gettingStarted/gsQml/images/arrow.png
examples/tutorials/gettingStarted/gsQml/pics/qml-texteditor5_editmenu.png
examples/tutorials/gettingStarted/gsQml/pics/qml-texteditor5_filemenu.png
examples/tutorials/gettingStarted/gsQml/pics/qml-texteditor5_newfile.png
examples/tutorials/gettingStarted/gsQml/texteditor.qml
examples/tutorials/modelview/1_readonly/1_readonly.pro
examples/tutorials/modelview/1_readonly/main.cpp
examples/tutorials/modelview/1_readonly/modelview.cpp
examples/tutorials/modelview/1_readonly/modelview.h
examples/tutorials/modelview/2_formatting/2_formatting.pro
examples/tutorials/modelview/2_formatting/main.cpp
examples/tutorials/modelview/2_formatting/modelview.cpp
examples/tutorials/modelview/2_formatting/modelview.h
examples/tutorials/modelview/2_formatting/mymodel.cpp
examples/tutorials/modelview/3_changingmodel/3_changingmodel.pro
examples/tutorials/modelview/3_changingmodel/main.cpp
examples/tutorials/modelview/3_changingmodel/modelview.cpp
examples/tutorials/modelview/3_changingmodel/modelview.h
examples/tutorials/modelview/3_changingmodel/mymodel.h
examples/tutorials/modelview/4_headers/4_headers.pro
examples/tutorials/modelview/4_headers/main.cpp
examples/tutorials/modelview/4_headers/modelview.cpp
examples/tutorials/modelview/4_headers/modelview.h
examples/tutorials/modelview/5_edit/5_edit.pro
examples/tutorials/modelview/5_edit/main.cpp
examples/tutorials/modelview/5_edit/mainwindow.cpp
examples/tutorials/modelview/5_edit/mainwindow.h
examples/tutorials/modelview/5_edit/modelview.cpp
examples/tutorials/modelview/5_edit/modelview.h
examples/tutorials/modelview/5_edit/mymodel.cpp
examples/tutorials/modelview/5_edit/mymodel.h
examples/tutorials/modelview/6_treeview/6_treeview.pro
examples/tutorials/modelview/6_treeview/main.cpp
examples/tutorials/modelview/6_treeview/mainwindow.cpp
examples/tutorials/modelview/6_treeview/mainwindow.h
examples/tutorials/modelview/6_treeview/modelview.cpp
examples/tutorials/modelview/6_treeview/modelview.h
examples/tutorials/modelview/7_selections/7_selections.pro
examples/tutorials/modelview/7_selections/main.cpp
examples/tutorials/modelview/7_selections/mainwindow.cpp
examples/tutorials/modelview/7_selections/mainwindow.h
examples/tutorials/modelview/7_selections/modelview.cpp
examples/tutorials/modelview/7_selections/modelview.h
examples/tutorials/modelview/modelview.pro
examples/xml/htmlinfo/main.cpp
examples/xmlpatterns/filetree/mainwindow.cpp
mkspecs/common/symbian/header-wrappers/AknBitmapAnimation.h
mkspecs/common/symbian/header-wrappers/AknFontAccess.h
mkspecs/common/symbian/header-wrappers/AknInputLanguageInfo.h
mkspecs/common/symbian/header-wrappers/ApAccessPointItem.h
mkspecs/common/symbian/header-wrappers/ApDataHandler.h
mkspecs/common/symbian/header-wrappers/ApUtils.h
mkspecs/common/symbian/symbian-makefile.conf
mkspecs/common/symbian/symbian-mmp.conf
mkspecs/common/symbian/symbian.conf
mkspecs/features/qt.prf
mkspecs/features/qt_config.prf
mkspecs/features/sis_targets.prf
mkspecs/features/symbian/application_icon.prf
mkspecs/features/symbian/opengl.prf
mkspecs/features/symbian/platform_paths.prf
mkspecs/features/symbian/run_on_phone.prf
mkspecs/features/symbian/stl.prf
mkspecs/features/symbian/symbian_building.prf
mkspecs/features/unix/separate_debug_info.prf
mkspecs/features/vxworks.prf
mkspecs/features/win32/embed_manifest_dll.prf
mkspecs/features/win32/embed_manifest_exe.prf
mkspecs/features/win32/msvc_mp.prf
mkspecs/modules/README
mkspecs/modules/qt_webkit_version.pri
mkspecs/symbian-sbsv2/flm/qt/qmake_store_build.flm
mkspecs/symbian/linux-armcc/qmake.conf
mkspecs/win32-g++-symbian/qmake.conf
mkspecs/win32-g++-symbian/qplatformdefs.h
mkspecs/win32-icc/qmake.conf
mkspecs/win32-msvc2008/qmake.conf
mkspecs/win32-msvc2010/qmake.conf
projects.pro
qmake/Makefile.win32
qmake/Makefile.win32-g++-symbian
qmake/generators/makefile.cpp
qmake/generators/symbian/initprojectdeploy_symbian.cpp
qmake/generators/symbian/symbiancommon.cpp
qmake/generators/symbian/symmake.cpp
qmake/generators/symbian/symmake.h
qmake/generators/symbian/symmake_abld.cpp
qmake/generators/symbian/symmake_abld.h
qmake/generators/symbian/symmake_sbsv2.cpp
qmake/generators/symbian/symmake_sbsv2.h
qmake/generators/win32/mingw_make.cpp
qmake/generators/win32/msbuild_objectmodel.cpp
qmake/generators/win32/msvc_objectmodel.cpp
qmake/generators/win32/msvc_vcxproj.cpp
qmake/generators/win32/winmakefile.cpp
src/3rdparty/javascriptcore/JavaScriptCore/ChangeLog
src/3rdparty/javascriptcore/JavaScriptCore/JavaScriptCore.pri
src/3rdparty/javascriptcore/JavaScriptCore/interpreter/RegisterFile.cpp
src/3rdparty/javascriptcore/JavaScriptCore/interpreter/RegisterFile.h
src/3rdparty/javascriptcore/JavaScriptCore/runtime/CollectorHeapIterator.h
src/3rdparty/javascriptcore/JavaScriptCore/wtf/symbian/RegisterFileAllocatorSymbian.cpp
src/3rdparty/javascriptcore/JavaScriptCore/wtf/symbian/RegisterFileAllocatorSymbian.h
src/3rdparty/javascriptcore/JavaScriptCore/wtf/symbian/SymbianDefines.h
src/3rdparty/libconninet.pri
src/3rdparty/libconninet/AUTHORS
src/3rdparty/libconninet/COPYING
src/3rdparty/libconninet/ChangeLog
src/3rdparty/libconninet/INSTALL
src/3rdparty/libconninet/NEWS
src/3rdparty/libconninet/README
src/3rdparty/libconninet/autogen.sh
src/3rdparty/libconninet/config.guess
src/3rdparty/libconninet/config.sub
src/3rdparty/libconninet/configure.ac
src/3rdparty/libconninet/conninet.pc.in
src/3rdparty/libconninet/debian/changelog
src/3rdparty/libconninet/debian/compat
src/3rdparty/libconninet/debian/control
src/3rdparty/libconninet/debian/copyright
src/3rdparty/libconninet/debian/libconninet0-dev.dirs
src/3rdparty/libconninet/debian/libconninet0-dev.files
src/3rdparty/libconninet/debian/libconninet0.dirs
src/3rdparty/libconninet/debian/libconninet0.files
src/3rdparty/libconninet/debian/rules
src/3rdparty/libconninet/doxygen.cfg.in
src/3rdparty/libconninet/src/dbusdispatcher.cpp
src/3rdparty/libconninet/src/dbusdispatcher.h
src/3rdparty/libconninet/src/iapconf.cpp
src/3rdparty/libconninet/src/iapconf.h
src/3rdparty/libconninet/src/iapmonitor.cpp
src/3rdparty/libconninet/src/iapmonitor.h
src/3rdparty/libconninet/src/maemo_icd.cpp
src/3rdparty/libconninet/src/maemo_icd.h
src/3rdparty/libconninet/src/proxyconf.cpp
src/3rdparty/libconninet/src/proxyconf.h
src/3rdparty/libconninet/tests/ut_dbusdispatcher.cpp
src/3rdparty/libconninet/tests/ut_iapconf.cpp
src/3rdparty/libconninet/tests/ut_iapmonitor.cpp
src/3rdparty/libconninet/tests/ut_maemo_icd.cpp
src/3rdparty/libconninet/tests/ut_proxyconf.cpp
src/3rdparty/libgq.pri
src/3rdparty/libgq/.gitignore
src/3rdparty/libgq/Makefile.am
src/3rdparty/libgq/README
src/3rdparty/libgq/autogen.sh
src/3rdparty/libgq/configure.ac
src/3rdparty/libgq/debian/README.scratchbox
src/3rdparty/libgq/debian/changelog
src/3rdparty/libgq/debian/compat
src/3rdparty/libgq/debian/control
src/3rdparty/libgq/debian/copyright
src/3rdparty/libgq/debian/fixup-scratchbox
src/3rdparty/libgq/debian/libgq-gconf-dev.install
src/3rdparty/libgq/debian/libgq-gconf-doc.install
src/3rdparty/libgq/debian/libgq-gconf0.install
src/3rdparty/libgq/debian/maemo-sanitize
src/3rdparty/libgq/debian/rules
src/3rdparty/libgq/gconf/Doxyfile
src/3rdparty/libgq/gconf/GConfItem
src/3rdparty/libgq/gconf/Makefile.am
src/3rdparty/libgq/gconf/gconfitem.cpp
src/3rdparty/libgq/gconf/gconfitem.h
src/3rdparty/libgq/gconf/gq-gconf.pc.in
src/3rdparty/libgq/gconf/run-test-gconf
src/3rdparty/libgq/gconf/test-gconf.cpp
src/3rdparty/libgq/gconf/test-gconf.h
src/3rdparty/phonon/CMakeLists.txt
src/3rdparty/phonon/gstreamer/mediaobject.cpp
src/3rdparty/phonon/mmf/abstractmediaplayer.cpp
src/3rdparty/phonon/mmf/abstractmediaplayer.h
src/3rdparty/phonon/mmf/abstractplayer.h
src/3rdparty/phonon/mmf/abstractvideoplayer.cpp
src/3rdparty/phonon/mmf/abstractvideoplayer.h
src/3rdparty/phonon/mmf/audioplayer.cpp
src/3rdparty/phonon/mmf/audioplayer.h
src/3rdparty/phonon/mmf/dummyplayer.cpp
src/3rdparty/phonon/mmf/dummyplayer.h
src/3rdparty/phonon/mmf/mediaobject.cpp
src/3rdparty/phonon/mmf/mediaobject.h
src/3rdparty/phonon/phonon/mediasource.cpp
src/3rdparty/phonon/phonon/phononnamespace.h
src/3rdparty/webkit/.tag
src/3rdparty/webkit/JavaScriptCore/ChangeLog
src/3rdparty/webkit/JavaScriptCore/interpreter/Interpreter.cpp
src/3rdparty/webkit/JavaScriptCore/jit/JITStubs.cpp
src/3rdparty/webkit/JavaScriptCore/runtime/Arguments.h
src/3rdparty/webkit/JavaScriptCore/runtime/JSArray.cpp
src/3rdparty/webkit/JavaScriptCore/runtime/TimeoutChecker.h
src/3rdparty/webkit/JavaScriptCore/yarr/RegexInterpreter.cpp
src/3rdparty/webkit/VERSION
src/3rdparty/webkit/WebCore/ChangeLog
src/3rdparty/webkit/WebCore/WebCore.pro
src/3rdparty/webkit/WebCore/bridge/qt/qt_runtime.cpp
src/3rdparty/webkit/WebCore/dom/CharacterData.cpp
src/3rdparty/webkit/WebCore/dom/Element.cpp
src/3rdparty/webkit/WebCore/dom/Element.h
src/3rdparty/webkit/WebCore/dom/Text.cpp
src/3rdparty/webkit/WebCore/loader/MainResourceLoader.cpp
src/3rdparty/webkit/WebCore/page/SpatialNavigation.cpp
src/3rdparty/webkit/WebCore/platform/FileChooser.cpp
src/3rdparty/webkit/WebCore/platform/FileChooser.h
src/3rdparty/webkit/WebCore/platform/graphics/qt/GradientQt.cpp
src/3rdparty/webkit/WebCore/platform/text/BidiResolver.h
src/3rdparty/webkit/WebCore/plugins/mac/PluginViewMac.mm
src/3rdparty/webkit/WebCore/rendering/RenderBlock.cpp
src/3rdparty/webkit/WebCore/rendering/RenderFileUploadControl.cpp
src/3rdparty/webkit/WebCore/rendering/RenderFileUploadControl.h
src/3rdparty/webkit/WebCore/rendering/RenderSVGText.cpp
src/3rdparty/webkit/WebCore/rendering/RenderSVGText.h
src/3rdparty/webkit/WebCore/rendering/RenderWidget.cpp
src/3rdparty/webkit/WebCore/svg/SVGElement.cpp
src/3rdparty/webkit/WebCore/svg/SVGFontFaceElement.cpp
src/3rdparty/webkit/WebCore/svg/SVGForeignObjectElement.cpp
src/3rdparty/webkit/WebCore/svg/SVGSVGElement.cpp
src/3rdparty/webkit/WebCore/svg/SVGUseElement.cpp
src/3rdparty/webkit/WebKit/qt/Api/qwebframe.cpp
src/3rdparty/webkit/WebKit/qt/ChangeLog
src/3rdparty/webkit/WebKit/qt/WebCoreSupport/EditorClientQt.cpp
src/3rdparty/webkit/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp
src/3rdparty/webkit/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.h
src/3rdparty/webkit/WebKit/qt/declarative/qdeclarativewebview.cpp
src/3rdparty/webkit/WebKit/qt/qt_webkit_version.pri
src/3rdparty/webkit/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp
src/3rdparty/webkit/WebKit/qt/tests/qwebview/resources/input_types.html
src/3rdparty/webkit/WebKit/qt/tests/qwebview/tst_qwebview.cpp
src/corelib/codecs/qtextcodec_symbian.cpp
src/corelib/concurrent/qtconcurrentexception.cpp
src/corelib/concurrent/qtconcurrentfilter.cpp
src/corelib/concurrent/qtconcurrentmap.cpp
src/corelib/concurrent/qtconcurrentresultstore.cpp
src/corelib/concurrent/qtconcurrentrun.cpp
src/corelib/corelib.pro
src/corelib/global/global.pri
src/corelib/global/qglobal.cpp
src/corelib/global/qglobal.h
src/corelib/global/qlibraryinfo.cpp
src/corelib/io/qfileinfo.cpp
src/corelib/io/qfilesystemwatcher_kqueue.cpp
src/corelib/io/qfsfileengine_win.cpp
src/corelib/io/qprocess_symbian.cpp
src/corelib/io/qtextstream.cpp
src/corelib/io/qurl.cpp
src/corelib/kernel/qbasictimer.cpp
src/corelib/kernel/qcoreapplication.cpp
src/corelib/kernel/qeventdispatcher_symbian.cpp
src/corelib/kernel/qeventdispatcher_unix.cpp
src/corelib/kernel/qeventdispatcher_unix_p.h
src/corelib/kernel/qmetaobject.cpp
src/corelib/kernel/qmetatype.cpp
src/corelib/plugin/qlibrary.cpp
src/corelib/thread/qmutexpool.cpp
src/corelib/tools/qbytearray.cpp
src/corelib/tools/qbytearraymatcher.h
src/corelib/tools/qeasingcurve.cpp
src/corelib/tools/qelapsedtimer_unix.cpp
src/corelib/tools/qhash.h
src/corelib/tools/qlinkedlist.h
src/corelib/tools/qlist.h
src/corelib/tools/qmap.h
src/corelib/tools/qpair.qdoc
src/corelib/tools/qshareddata.h
src/corelib/tools/qsharedpointer.cpp
src/corelib/tools/qsimd.cpp
src/corelib/tools/qsimd_p.h
src/corelib/tools/qstring.cpp
src/corelib/tools/qstring.h
src/corelib/tools/qstringmatcher.h
src/corelib/tools/qtextboundaryfinder.cpp
src/corelib/tools/qvector.h
src/corelib/xml/qxmlstream.cpp
src/dbus/qdbusargument.cpp
src/dbus/qdbusconnection.cpp
src/dbus/qdbusconnection.h
src/dbus/qdbusintegrator.cpp
src/dbus/qdbusinterface.cpp
src/dbus/qdbusserver.cpp
src/dbus/qdbusxmlgenerator.cpp
src/declarative/debugger/qdeclarativedebug.cpp
src/declarative/debugger/qdeclarativedebug_p.h
src/declarative/debugger/qdeclarativedebugservice.cpp
src/declarative/debugger/qpacketprotocol.cpp
src/declarative/graphicsitems/qdeclarativeanchors.cpp
src/declarative/graphicsitems/qdeclarativeanimatedimage.cpp
src/declarative/graphicsitems/qdeclarativeborderimage.cpp
src/declarative/graphicsitems/qdeclarativeevents.cpp
src/declarative/graphicsitems/qdeclarativeflickable.cpp
src/declarative/graphicsitems/qdeclarativeflickable_p_p.h
src/declarative/graphicsitems/qdeclarativeflipable.cpp
src/declarative/graphicsitems/qdeclarativefocuspanel.cpp
src/declarative/graphicsitems/qdeclarativefocusscope.cpp
src/declarative/graphicsitems/qdeclarativegraphicswidget.cpp
src/declarative/graphicsitems/qdeclarativegridview.cpp
src/declarative/graphicsitems/qdeclarativegridview_p.h
src/declarative/graphicsitems/qdeclarativeimage.cpp
src/declarative/graphicsitems/qdeclarativeimagebase.cpp
src/declarative/graphicsitems/qdeclarativeitem.cpp
src/declarative/graphicsitems/qdeclarativeitem_p.h
src/declarative/graphicsitems/qdeclarativeitemsmodule.cpp
src/declarative/graphicsitems/qdeclarativelayoutitem.cpp
src/declarative/graphicsitems/qdeclarativelistview.cpp
src/declarative/graphicsitems/qdeclarativelistview_p.h
src/declarative/graphicsitems/qdeclarativeloader.cpp
src/declarative/graphicsitems/qdeclarativemousearea.cpp
src/declarative/graphicsitems/qdeclarativepath.cpp
src/declarative/graphicsitems/qdeclarativepath_p.h
src/declarative/graphicsitems/qdeclarativepathview.cpp
src/declarative/graphicsitems/qdeclarativepathview_p.h
src/declarative/graphicsitems/qdeclarativepathview_p_p.h
src/declarative/graphicsitems/qdeclarativepositioners.cpp
src/declarative/graphicsitems/qdeclarativepositioners_p.h
src/declarative/graphicsitems/qdeclarativepositioners_p_p.h
src/declarative/graphicsitems/qdeclarativerectangle.cpp
src/declarative/graphicsitems/qdeclarativerepeater.cpp
src/declarative/graphicsitems/qdeclarativetext.cpp
src/declarative/graphicsitems/qdeclarativetextedit.cpp
src/declarative/graphicsitems/qdeclarativetextinput.cpp
src/declarative/graphicsitems/qdeclarativetextinput_p.h
src/declarative/graphicsitems/qdeclarativetextinput_p_p.h
src/declarative/graphicsitems/qdeclarativetranslate.cpp
src/declarative/graphicsitems/qdeclarativetranslate_p.h
src/declarative/graphicsitems/qdeclarativevisualitemmodel.cpp
src/declarative/graphicsitems/qdeclarativevisualitemmodel_p.h
src/declarative/qml/parser/qdeclarativejslexer.cpp
src/declarative/qml/qdeclarativecompiledbindings.cpp
src/declarative/qml/qdeclarativecompiler.cpp
src/declarative/qml/qdeclarativecompiler_p.h
src/declarative/qml/qdeclarativecomponent.cpp
src/declarative/qml/qdeclarativecomponent.h
src/declarative/qml/qdeclarativecomponent_p.h
src/declarative/qml/qdeclarativecompositetypedata_p.h
src/declarative/qml/qdeclarativecompositetypemanager.cpp
src/declarative/qml/qdeclarativecompositetypemanager_p.h
src/declarative/qml/qdeclarativecontext.cpp
src/declarative/qml/qdeclarativecontext_p.h
src/declarative/qml/qdeclarativedom.cpp
src/declarative/qml/qdeclarativeengine.cpp
src/declarative/qml/qdeclarativeengine_p.h
src/declarative/qml/qdeclarativeenginedebug.cpp
src/declarative/qml/qdeclarativeenginedebug_p.h
src/declarative/qml/qdeclarativeerror.cpp
src/declarative/qml/qdeclarativeexpression.cpp
src/declarative/qml/qdeclarativeexpression_p.h
src/declarative/qml/qdeclarativeextensionplugin.cpp
src/declarative/qml/qdeclarativeimageprovider.cpp
src/declarative/qml/qdeclarativeimport.cpp
src/declarative/qml/qdeclarativeimport_p.h
src/declarative/qml/qdeclarativeinfo.cpp
src/declarative/qml/qdeclarativeinstruction.cpp
src/declarative/qml/qdeclarativeinstruction_p.h
src/declarative/qml/qdeclarativelist.h
src/declarative/qml/qdeclarativemetatype_p.h
src/declarative/qml/qdeclarativeobjectscriptclass.cpp
src/declarative/qml/qdeclarativeparser_p.h
src/declarative/qml/qdeclarativeprivate.h
src/declarative/qml/qdeclarativeproperty.cpp
src/declarative/qml/qdeclarativepropertycache.cpp
src/declarative/qml/qdeclarativerewrite.cpp
src/declarative/qml/qdeclarativerewrite_p.h
src/declarative/qml/qdeclarativescriptparser.cpp
src/declarative/qml/qdeclarativescriptparser_p.h
src/declarative/qml/qdeclarativestringconverters.cpp
src/declarative/qml/qdeclarativestringconverters_p.h
src/declarative/qml/qdeclarativetypeloader.cpp
src/declarative/qml/qdeclarativetypeloader_p.h
src/declarative/qml/qdeclarativevaluetypescriptclass.cpp
src/declarative/qml/qdeclarativevme.cpp
src/declarative/qml/qdeclarativevmemetaobject.cpp
src/declarative/qml/qdeclarativeworkerscript.cpp
src/declarative/qml/qdeclarativexmlhttprequest.cpp
src/declarative/qml/qdeclarativexmlhttprequest_p.h
src/declarative/qml/qmetaobjectbuilder.cpp
src/declarative/qml/qml.pri
src/declarative/util/qdeclarativeanimation.cpp
src/declarative/util/qdeclarativeanimation_p.h
src/declarative/util/qdeclarativebehavior.cpp
src/declarative/util/qdeclarativebind.cpp
src/declarative/util/qdeclarativeconnections.cpp
src/declarative/util/qdeclarativefontloader.cpp
src/declarative/util/qdeclarativefontloader_p.h
src/declarative/util/qdeclarativelistmodel.cpp
src/declarative/util/qdeclarativelistmodel_p_p.h
src/declarative/util/qdeclarativelistmodelworkeragent.cpp
src/declarative/util/qdeclarativelistmodelworkeragent_p.h
src/declarative/util/qdeclarativeopenmetaobject.cpp
src/declarative/util/qdeclarativeopenmetaobject_p.h
src/declarative/util/qdeclarativepackage.cpp
src/declarative/util/qdeclarativepixmapcache.cpp
src/declarative/util/qdeclarativepropertychanges.cpp
src/declarative/util/qdeclarativepropertymap.cpp
src/declarative/util/qdeclarativesmoothedanimation.cpp
src/declarative/util/qdeclarativespringanimation.cpp
src/declarative/util/qdeclarativespringanimation_p.h
src/declarative/util/qdeclarativestate.cpp
src/declarative/util/qdeclarativestategroup.cpp
src/declarative/util/qdeclarativestateoperations.cpp
src/declarative/util/qdeclarativesystempalette.cpp
src/declarative/util/qdeclarativetimeline.cpp
src/declarative/util/qdeclarativetimer.cpp
src/declarative/util/qdeclarativetransition.cpp
src/declarative/util/qdeclarativetransitionmanager.cpp
src/declarative/util/qdeclarativeview.cpp
src/declarative/util/qdeclarativexmllistmodel.cpp
src/declarative/util/qlistmodelinterface.cpp
src/gui/dialogs/qfiledialog_mac.mm
src/gui/dialogs/qfontdialog_mac.mm
src/gui/egl/qegl_x11.cpp
src/gui/embedded/qkbdlinuxinput_qws.cpp
src/gui/embedded/qkbdqnx_qws.cpp
src/gui/graphicsview/qgraphicsgridlayout.cpp
src/gui/graphicsview/qgraphicsitem.cpp
src/gui/graphicsview/qgraphicslayoutitem.cpp
src/gui/graphicsview/qgraphicslayoutitem_p.h
src/gui/graphicsview/qgraphicslinearlayout.cpp
src/gui/graphicsview/qgraphicsscene.cpp
src/gui/graphicsview/qgraphicstransform.cpp
src/gui/graphicsview/qgraphicstransform.h
src/gui/graphicsview/qgraphicsview.cpp
src/gui/graphicsview/qgraphicswidget.cpp
src/gui/graphicsview/qgraphicswidget_p.cpp
src/gui/graphicsview/qgridlayoutengine.cpp
src/gui/graphicsview/qgridlayoutengine_p.h
src/gui/gui.pro
src/gui/image/image.pri
src/gui/image/qimage.cpp
src/gui/image/qimage_neon.cpp
src/gui/image/qimage_ssse3.cpp
src/gui/image/qjpeghandler.cpp
src/gui/image/qpixmap.cpp
src/gui/image/qpixmap_s60.cpp
src/gui/image/qpixmap_s60_p.h
src/gui/image/qpnghandler.cpp
src/gui/inputmethod/qcoefepinputcontext_p.h
src/gui/inputmethod/qcoefepinputcontext_s60.cpp
src/gui/itemviews/qabstractitemview.cpp
src/gui/itemviews/qlistview.cpp
src/gui/itemviews/qsortfilterproxymodel.cpp
src/gui/kernel/qaction_p.h
src/gui/kernel/qapplication.cpp
src/gui/kernel/qapplication.h
src/gui/kernel/qapplication_mac.mm
src/gui/kernel/qapplication_p.h
src/gui/kernel/qapplication_s60.cpp
src/gui/kernel/qapplication_win.cpp
src/gui/kernel/qclipboard_x11.cpp
src/gui/kernel/qcocoamenuloader_mac.mm
src/gui/kernel/qcocoamenuloader_mac_p.h
src/gui/kernel/qcocoasharedwindowmethods_mac_p.h
src/gui/kernel/qcocoawindowdelegate_mac.mm
src/gui/kernel/qcocoawindowdelegate_mac_p.h
src/gui/kernel/qdesktopwidget_s60.cpp
src/gui/kernel/qevent.cpp
src/gui/kernel/qeventdispatcher_mac.mm
src/gui/kernel/qgesture.cpp
src/gui/kernel/qgesturemanager.cpp
src/gui/kernel/qgesturerecognizer.cpp
src/gui/kernel/qpalette.cpp
src/gui/kernel/qt_cocoa_helpers_mac.mm
src/gui/kernel/qt_cocoa_helpers_mac_p.h
src/gui/kernel/qt_s60_p.h
src/gui/kernel/qwidget.cpp
src/gui/kernel/qwidget_mac.mm
src/gui/kernel/qwidget_p.h
src/gui/kernel/qwidget_s60.cpp
src/gui/kernel/qwidget_win.cpp
src/gui/painting/painting.pri
src/gui/painting/qbackingstore.cpp
src/gui/painting/qblendfunctions.cpp
src/gui/painting/qdrawhelper.cpp
src/gui/painting/qdrawhelper_iwmmxt.cpp
src/gui/painting/qdrawhelper_mmx.cpp
src/gui/painting/qdrawhelper_mmx3dnow.cpp
src/gui/painting/qdrawhelper_neon.cpp
src/gui/painting/qdrawhelper_neon_p.h
src/gui/painting/qdrawhelper_p.h
src/gui/painting/qdrawhelper_sse.cpp
src/gui/painting/qdrawhelper_sse2.cpp
src/gui/painting/qdrawhelper_sse3dnow.cpp
src/gui/painting/qdrawhelper_ssse3.cpp
src/gui/painting/qdrawhelper_x86_p.h
src/gui/painting/qdrawingprimitive_sse2_p.h
src/gui/painting/qgraphicssystem_runtime.cpp
src/gui/painting/qgraphicssystem_runtime_p.h
src/gui/painting/qgrayraster.c
src/gui/painting/qpaintengine_x11.cpp
src/gui/painting/qpaintengineex.cpp
src/gui/painting/qpainter.cpp
src/gui/painting/qwindowsurface_qws.cpp
src/gui/painting/qwindowsurface_s60.cpp
src/gui/s60framework/qs60mainapplication.cpp
src/gui/s60framework/qs60mainappui.cpp
src/gui/s60framework/qs60maindocument.cpp
src/gui/styles/qcleanlooksstyle.cpp
src/gui/styles/qgtkstyle.cpp
src/gui/styles/qmacstyle_mac.h
src/gui/styles/qmacstyle_mac.mm
src/gui/styles/qmacstyle_mac_p.h
src/gui/styles/qs60style.cpp
src/gui/styles/qs60style_p.h
src/gui/styles/qs60style_s60.cpp
src/gui/styles/qstyle.cpp
src/gui/styles/qstylesheetstyle.cpp
src/gui/text/qfont_s60.cpp
src/gui/text/qfontengine.cpp
src/gui/text/qfontengine_ft.cpp
src/gui/text/qfontengine_mac.mm
src/gui/text/qfontengine_p.h
src/gui/text/qfontengine_qpf.cpp
src/gui/text/qfontengine_qws.cpp
src/gui/text/qfontengine_s60.cpp
src/gui/text/qfontengine_s60_p.h
src/gui/text/qfontengine_win.cpp
src/gui/text/qstatictext.cpp
src/gui/text/qtextcontrol.cpp
src/gui/text/qtextengine.cpp
src/gui/text/qtextengine_p.h
src/gui/text/qtextlayout.cpp
src/gui/text/qtextobject.cpp
src/gui/util/qcompleter.cpp
src/gui/util/qdesktopservices_s60.cpp
src/gui/util/qdesktopservices_x11.cpp
src/gui/widgets/qcocoamenu_mac.mm
src/gui/widgets/qcocoamenu_mac_p.h
src/gui/widgets/qcombobox.cpp
src/gui/widgets/qcommandlinkbutton.cpp
src/gui/widgets/qdatetimeedit.cpp
src/gui/widgets/qdatetimeedit.h
src/gui/widgets/qlinecontrol.cpp
src/gui/widgets/qlineedit.cpp
src/gui/widgets/qmainwindowlayout.cpp
src/gui/widgets/qmainwindowlayout_mac.mm
src/gui/widgets/qmenu.cpp
src/gui/widgets/qmenubar.cpp
src/gui/widgets/qprintpreviewwidget.cpp
src/gui/widgets/qpushbutton.cpp
src/gui/widgets/qtoolbarextension.cpp
src/imports/folderlistmodel/qdeclarativefolderlistmodel.cpp
src/imports/gestures/qdeclarativegesturearea.cpp
src/imports/particles/qdeclarativeparticles.cpp
src/multimedia/audio/qaudiodeviceinfo_alsa_p.cpp
src/multimedia/video/qvideosurfaceformat.cpp
src/network/access/qhttpnetworkconnection.cpp
src/network/access/qhttpnetworkconnectionchannel.cpp
src/network/access/qnetworkaccessmanager.cpp
src/network/access/qnetworkrequest.cpp
src/network/bearer/qnetworkconfigmanager.cpp
src/network/bearer/qnetworkconfigmanager_p.cpp
src/network/bearer/qnetworkconfiguration.cpp
src/network/bearer/qnetworkconfiguration.h
src/network/bearer/qnetworkconfiguration_p.h
src/network/bearer/qnetworksession.cpp
src/network/bearer/qnetworksession.h
src/network/kernel/qauthenticator.cpp
src/network/kernel/qhostinfo.cpp
src/network/kernel/qhostinfo_unix.cpp
src/network/socket/qabstractsocket.cpp
src/network/socket/qlocalsocket_win.cpp
src/network/socket/qnativesocketengine_unix.cpp
src/network/socket/qnativesocketengine_win.cpp
src/network/ssl/qsslsocket.cpp
src/network/ssl/qsslsocket_openssl.cpp
src/network/ssl/qsslsocket_openssl_symbols.cpp
src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp
src/opengl/gl2paintengineex/qtriangulator.cpp
src/opengl/opengl.pro
src/opengl/qgl.cpp
src/opengl/qgl_egl.cpp
src/opengl/qgl_mac.mm
src/opengl/qgl_p.h
src/opengl/qgl_symbian.cpp
src/opengl/qgl_win.cpp
src/opengl/qglbuffer.cpp
src/opengl/qglbuffer.h
src/opengl/qglextensions.cpp
src/opengl/qglframebufferobject.cpp
src/opengl/qglshaderprogram.cpp
src/opengl/qpixmapdata_gl.cpp
src/opengl/qwindowsurface_gl.cpp
src/opengl/qwindowsurface_gl_p.h
src/openvg/qpaintengine_vg.cpp
src/openvg/qpixmapdata_vg.cpp
src/openvg/qpixmapdata_vg_p.h
src/plugins/bearer/bearer.pro
src/plugins/bearer/connman/connman.pro
src/plugins/bearer/connman/qconnmanengine.cpp
src/plugins/bearer/connman/qconnmanengine.h
src/plugins/bearer/connman/qconnmanservice_linux.cpp
src/plugins/bearer/connman/qconnmanservice_linux_p.h
src/plugins/bearer/connman/qofonoservice_linux.cpp
src/plugins/bearer/connman/qofonoservice_linux_p.h
src/plugins/bearer/corewlan/qcorewlanengine.h
src/plugins/bearer/corewlan/qcorewlanengine.mm
src/plugins/bearer/generic/qgenericengine.cpp
src/plugins/bearer/generic/qgenericengine.h
src/plugins/bearer/icd/icd.pro
src/plugins/bearer/icd/qicdengine.cpp
src/plugins/bearer/icd/qicdengine.h
src/plugins/bearer/icd/qnetworksession_impl.cpp
src/plugins/bearer/icd/qnetworksession_impl.h
src/plugins/bearer/nativewifi/qnativewifiengine.cpp
src/plugins/bearer/nativewifi/qnativewifiengine.h
src/plugins/bearer/networkmanager/qnetworkmanagerengine.cpp
src/plugins/bearer/networkmanager/qnetworkmanagerengine.h
src/plugins/bearer/networkmanager/qnetworkmanagerservice.cpp
src/plugins/bearer/nla/qnlaengine.cpp
src/plugins/bearer/nla/qnlaengine.h
src/plugins/bearer/symbian/3_1/3_1.pro
src/plugins/bearer/symbian/qnetworksession_impl.cpp
src/plugins/bearer/symbian/qnetworksession_impl.h
src/plugins/bearer/symbian/symbian.pri
src/plugins/bearer/symbian/symbian.pro
src/plugins/bearer/symbian/symbian_3/symbian_3.pro
src/plugins/bearer/symbian/symbianengine.cpp
src/plugins/bearer/symbian/symbianengine.h
src/plugins/gfxdrivers/directfb/qdirectfbpaintengine.cpp
src/plugins/graphicssystems/opengl/opengl.pro
src/qbase.pri
src/qt3support/widgets/q3gridview.cpp
src/s60installs/bwins/QtCoreu.def
src/s60installs/bwins/QtDeclarativeu.def
src/s60installs/bwins/QtGuiu.def
src/s60installs/bwins/QtNetworku.def
src/s60installs/bwins/QtOpenVGu.def
src/s60installs/deviceconfiguration/bld.inf
src/s60installs/eabi/QtCoreu.def
src/s60installs/eabi/QtDeclarativeu.def
src/s60installs/eabi/QtGuiu.def
src/s60installs/eabi/QtNetworku.def
src/s60installs/eabi/QtOpenVGu.def
src/s60installs/qt.iby
src/s60installs/qt.pkg
src/s60installs/qtdemoapps.iby
src/s60installs/qtdemoapps.pkg
src/s60installs/s60installs.pro
src/s60main/s60main.pro
src/script/api/qscriptcontext.cpp
src/script/api/qscriptcontextinfo.cpp
src/script/api/qscriptcontextinfo.h
src/script/api/qscriptengine.cpp
src/script/api/qscriptengineagent.cpp
src/script/api/qscriptprogram.cpp
src/script/api/qscriptvalue_p.h
src/script/bridge/qscriptactivationobject.cpp
src/script/bridge/qscriptdeclarativeobject.cpp
src/script/bridge/qscriptstaticscopeobject.cpp
src/script/script.pro
src/sql/drivers/odbc/qsql_odbc.cpp
src/sql/drivers/psql/qsql_psql.pri
src/sql/drivers/tds/qsql_tds.h
src/sql/drivers/tds/qsql_tds.pri
src/sql/kernel/qsqldatabase.cpp
src/src.pro
src/svg/qsvghandler.cpp
src/testlib/qbenchmarkmeasurement_p.h
src/testlib/qtestfilelogger.cpp
src/tools/moc/generator.cpp
src/tools/moc/moc.cpp
src/tools/moc/moc.h
src/xml/dom/qdom.cpp
src/xmlpatterns/api/qabstractxmlnodemodel.cpp
src/xmlpatterns/api/qxmlquery.cpp
src/xmlpatterns/data/qabstractdatetime.cpp
tests/auto/collections/tst_collections.cpp
tests/auto/compilerwarnings/test_cpp.txt
tests/auto/compilerwarnings/tst_compilerwarnings.cpp
tests/auto/declarative/qdeclarativeanimations/data/nonTransitionBug.qml
tests/auto/declarative/qdeclarativeanimations/data/propertiesTransition7.qml
tests/auto/declarative/qdeclarativeanimations/tst_qdeclarativeanimations.cpp
tests/auto/declarative/qdeclarativebehaviors/data/qtbug12295.qml
tests/auto/declarative/qdeclarativedebug/tst_qdeclarativedebug.cpp
tests/auto/declarative/qdeclarativedom/tst_qdeclarativedom.cpp
tests/auto/declarative/qdeclarativeecmascript/data/deleteLater.qml
tests/auto/declarative/qdeclarativeecmascript/data/in.qml
tests/auto/declarative/qdeclarativeecmascript/data/invokableObjectArg.qml
tests/auto/declarative/qdeclarativeecmascript/data/invokableObjectRet.qml
tests/auto/declarative/qdeclarativeecmascript/data/nonscriptable.qml
tests/auto/declarative/qdeclarativeecmascript/testtypes.h
tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp
tests/auto/declarative/qdeclarativeflickable/data/flickableqgraphicswidget.qml
tests/auto/declarative/qdeclarativeflickable/tst_qdeclarativeflickable.cpp
tests/auto/declarative/qdeclarativefocusscope/data/signalEmission.qml
tests/auto/declarative/qdeclarativefocusscope/tst_qdeclarativefocusscope.cpp
tests/auto/declarative/qdeclarativegridview/tst_qdeclarativegridview.cpp
tests/auto/declarative/qdeclarativeimage/data/heart-arm.png
tests/auto/declarative/qdeclarativeimage/data/heart-mac.png
tests/auto/declarative/qdeclarativeimage/data/heart-win32.png
tests/auto/declarative/qdeclarativeimage/data/heart.png
tests/auto/declarative/qdeclarativeimage/data/heart200-arm.png
tests/auto/declarative/qdeclarativeimage/data/heart200-mac.png
tests/auto/declarative/qdeclarativeimage/data/heart200-win32.png
tests/auto/declarative/qdeclarativeimage/data/heart200.png
tests/auto/declarative/qdeclarativeimage/tst_qdeclarativeimage.cpp
tests/auto/declarative/qdeclarativeimageprovider/tst_qdeclarativeimageprovider.cpp
tests/auto/declarative/qdeclarativeinstruction/tst_qdeclarativeinstruction.cpp
tests/auto/declarative/qdeclarativeitem/data/childrenRectBug3.qml
tests/auto/declarative/qdeclarativeitem/tst_qdeclarativeitem.cpp
tests/auto/declarative/qdeclarativelanguage/data/DontDoubleCallClassBeginItem.qml
tests/auto/declarative/qdeclarativelanguage/data/aliasPropertiesAndSignals.qml
tests/auto/declarative/qdeclarativelanguage/data/dontDoubleCallClassBegin.qml
tests/auto/declarative/qdeclarativelanguage/data/invalidAlias.7.errors.txt
tests/auto/declarative/qdeclarativelanguage/data/invalidAlias.7.qml
tests/auto/declarative/qdeclarativelanguage/data/nestedErrors.errors.txt
tests/auto/declarative/qdeclarativelanguage/data/nonScriptableProperty.errors.txt
tests/auto/declarative/qdeclarativelanguage/data/nonScriptableProperty.qml
tests/auto/declarative/qdeclarativelanguage/data/variantNotify.qml
tests/auto/declarative/qdeclarativelanguage/testtypes.cpp
tests/auto/declarative/qdeclarativelanguage/testtypes.h
tests/auto/declarative/qdeclarativelanguage/tst_qdeclarativelanguage.cpp
tests/auto/declarative/qdeclarativelistmodel/tst_qdeclarativelistmodel.cpp
tests/auto/declarative/qdeclarativelistview/data/itemlist.qml
tests/auto/declarative/qdeclarativelistview/data/listviewtest.qml
tests/auto/declarative/qdeclarativelistview/tst_qdeclarativelistview.cpp
tests/auto/declarative/qdeclarativeloader/tst_qdeclarativeloader.cpp
tests/auto/declarative/qdeclarativemetatype/tst_qdeclarativemetatype.cpp
tests/auto/declarative/qdeclarativepathview/data/emptymodel.qml
tests/auto/declarative/qdeclarativepathview/tst_qdeclarativepathview.cpp
tests/auto/declarative/qdeclarativepixmapcache/data/massive.png
tests/auto/declarative/qdeclarativepixmapcache/tst_qdeclarativepixmapcache.cpp
tests/auto/declarative/qdeclarativepositioners/data/verticalqgraphicswidget.qml
tests/auto/declarative/qdeclarativepositioners/tst_qdeclarativepositioners.cpp
tests/auto/declarative/qdeclarativerepeater/tst_qdeclarativerepeater.cpp
tests/auto/declarative/qdeclarativescriptdebugging/data/backtrace1.js
tests/auto/declarative/qdeclarativescriptdebugging/data/backtrace1.qml
tests/auto/declarative/qdeclarativescriptdebugging/qdeclarativescriptdebugging.pro
tests/auto/declarative/qdeclarativescriptdebugging/tst_qdeclarativescriptdebugging.cpp
tests/auto/declarative/qdeclarativestates/data/extendsBug.qml
tests/auto/declarative/qdeclarativestates/tst_qdeclarativestates.cpp
tests/auto/declarative/qdeclarativetextedit/tst_qdeclarativetextedit.cpp
tests/auto/declarative/qdeclarativetextinput/tst_qdeclarativetextinput.cpp
tests/auto/declarative/qdeclarativeviewer/tst_qdeclarativeviewer.cpp
tests/auto/declarative/qdeclarativevisualdatamodel/data/datalist.qml
tests/auto/declarative/qdeclarativevisualdatamodel/tst_qdeclarativevisualdatamodel.cpp
tests/auto/declarative/qdeclarativexmlhttprequest/data/utf16.html
tests/auto/declarative/qdeclarativexmlhttprequest/data/utf16.qml
tests/auto/declarative/qdeclarativexmlhttprequest/tst_qdeclarativexmlhttprequest.cpp
tests/auto/declarative/qmetaobjectbuilder/tst_qmetaobjectbuilder.cpp
tests/auto/declarative/qmlvisual/animation/qtbug13398/data/qtbug13398.0.png
tests/auto/declarative/qmlvisual/animation/qtbug13398/data/qtbug13398.qml
tests/auto/declarative/qmlvisual/animation/qtbug13398/qtbug13398.qml
tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.0.png
tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.1.png
tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.2.png
tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.3.png
tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.4.png
tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.5.png
tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.qml
tests/auto/declarative/qmlvisual/qdeclarativepathview/test-pathview.qml
tests/auto/gestures/tst_gestures.cpp
tests/auto/guiapplauncher/tst_guiapplauncher.cpp
tests/auto/headers/tst_headers.cpp
tests/auto/linguist/lconvert/data/test-refs.po
tests/auto/linguist/lconvert/data/test20.ts
tests/auto/linguist/lconvert/tst_lconvert.cpp
tests/auto/linguist/lupdate/testdata/good/parsejs/main.js
tests/auto/linguist/lupdate/testdata/good/parsejs/project.pro
tests/auto/linguist/lupdate/testdata/good/parsejs/project.ts.result
tests/auto/linguist/lupdate/testdata/good/parsejs2/expectedoutput.txt
tests/auto/linguist/lupdate/testdata/good/parsejs2/main.js
tests/auto/linguist/lupdate/testdata/good/parsejs2/project.pro
tests/auto/linguist/lupdate/testdata/good/parsejs2/project.ts.result
tests/auto/linguist/lupdate/testdata/good/parseqml/main.qml
tests/auto/linguist/lupdate/testdata/good/parseqml/project.pro
tests/auto/linguist/lupdate/testdata/good/parseqml/project.ts.result
tests/auto/macnativeevents/tst_macnativeevents.cpp
tests/auto/mediaobject/tst_mediaobject.cpp
tests/auto/moc/error-on-wrong-notify.h
tests/auto/moc/tst_moc.cpp
tests/auto/qapplication/modal/base.cpp
tests/auto/qapplication/modal/base.h
tests/auto/qapplication/modal/main.cpp
tests/auto/qapplication/modal/modal.pro
tests/auto/qapplication/qapplication.pro
tests/auto/qapplication/tst_qapplication.cpp
tests/auto/qdatastream/tst_qdatastream.cpp
tests/auto/qdatetime/tst_qdatetime.cpp
tests/auto/qdbusinterface/tst_qdbusinterface.cpp
tests/auto/qdbusthreading/tst_qdbusthreading.cpp
tests/auto/qdom/qdom.pro
tests/auto/qdom/tst_qdom.cpp
tests/auto/qfile/qfile.pro
tests/auto/qfileinfo/qfileinfo.pro
tests/auto/qgl/tst_qgl.cpp
tests/auto/qgraphicseffect/tst_qgraphicseffect.cpp
tests/auto/qgraphicseffectsource/tst_qgraphicseffectsource.cpp
tests/auto/qgraphicsgridlayout/tst_qgraphicsgridlayout.cpp
tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp
tests/auto/qgraphicsproxywidget/tst_qgraphicsproxywidget.cpp
tests/auto/qgraphicsscene/tst_qgraphicsscene.cpp
tests/auto/qgraphicsview/tst_qgraphicsview.cpp
tests/auto/qgraphicswidget/tst_qgraphicswidget.cpp
tests/auto/qimage/tst_qimage.cpp
tests/auto/qinputcontext/qinputcontext.pro
tests/auto/qinputcontext/tst_qinputcontext.cpp
tests/auto/qkeysequence/tst_qkeysequence.cpp
tests/auto/qlineedit/tst_qlineedit.cpp
tests/auto/qlistview/tst_qlistview.cpp
tests/auto/qlocale/test/test.pro
tests/auto/qmake/qmake.pro
tests/auto/qmake/testdata/substitutes/sub/test2.in
tests/auto/qmake/testdata/substitutes/test.in
tests/auto/qmake/testdata/substitutes/test.pro
tests/auto/qmake/testdata/substitutes/test3.txt
tests/auto/qmake/testdata/substitutes_build/README
tests/auto/qmake/tst_qmake.cpp
tests/auto/qmetaobject/tst_qmetaobject.cpp
tests/auto/qnetworkreply/test/test.pro
tests/auto/qnetworkreply/tst_qnetworkreply.cpp
tests/auto/qnetworksession/test/tst_qnetworksession.cpp
tests/auto/qpainter/tst_qpainter.cpp
tests/auto/qpauseanimation/tst_qpauseanimation.cpp
tests/auto/qpen/tst_qpen.cpp
tests/auto/qpixmap/tst_qpixmap.cpp
tests/auto/qpixmapcache/tst_qpixmapcache.cpp
tests/auto/qpluginloader/lib/lib.pro
tests/auto/qpluginloader/tst/tst.pro
tests/auto/qpluginloader/tst_qpluginloader.cpp
tests/auto/qregexp/tst_qregexp.cpp
tests/auto/qscriptengine/idtranslatable.js
tests/auto/qscriptengine/qscriptengine.qrc
tests/auto/qscriptengine/translations/idtranslatable_la.qm
tests/auto/qscriptengine/translations/idtranslatable_la.ts
tests/auto/qscriptengine/tst_qscriptengine.cpp
tests/auto/qscriptengineagent/tst_qscriptengineagent.cpp
tests/auto/qsocks5socketengine/qsocks5socketengine.pro
tests/auto/qsslcertificate/more-certificates/cert-large-expiration-date.pem
tests/auto/qsslcertificate/tst_qsslcertificate.cpp
tests/auto/qsslsocket/qsslsocket.pro
tests/auto/qsslsocket/tst_qsslsocket.cpp
tests/auto/qstatictext/tst_qstatictext.cpp
tests/auto/qstring/tst_qstring.cpp
tests/auto/qstylesheetstyle/tst_qstylesheetstyle.cpp
tests/auto/qsvgrenderer/qsvgrenderer.pro
tests/auto/qtextcodec/qtextcodec.pro
tests/auto/qtextcodec/test/test.pro
tests/auto/qtextcodec/tst_qtextcodec.cpp
tests/auto/qtextlayout/tst_qtextlayout.cpp
tests/auto/qtextstream/qtextstream.pro
tests/auto/qtimer/tst_qtimer.cpp
tests/auto/qtouchevent/tst_qtouchevent.cpp
tests/auto/qtreeview/tst_qtreeview.cpp
tests/auto/qurl/tst_qurl.cpp
tests/auto/qvideosurfaceformat/tst_qvideosurfaceformat.cpp
tests/auto/qwidget/tst_qwidget.cpp
tests/auto/xmlpatternsvalidator/files/dateTime-with-microseconds.xml
tests/auto/xmlpatternsvalidator/files/dateTime-with-microseconds.xsd
tests/auto/xmlpatternsvalidator/tst_xmlpatternsvalidator.cpp
tests/benchmarks/README
tests/benchmarks/benchmarks.pro
tests/benchmarks/corelib/io/io.pro
tests/benchmarks/corelib/tools/qregexp/main.cpp
tests/benchmarks/corelib/tools/qregexp/qregexp.pro
tests/benchmarks/corelib/tools/qregexp/qregexp.qrc
tests/benchmarks/corelib/tools/qstring/data.cpp
tests/benchmarks/corelib/tools/qstring/data.h
tests/benchmarks/corelib/tools/qstring/generatelist.pl
tests/benchmarks/corelib/tools/qstring/main.cpp
tests/benchmarks/corelib/tools/qstring/qstring.pro
tests/benchmarks/gui/image/blendbench/main.cpp
tests/benchmarks/gui/image/image.pro
tests/benchmarks/gui/image/qimageconversion/qimageconversion.pro
tests/benchmarks/gui/image/qimageconversion/tst_qimageconversion.cpp
tests/benchmarks/network/network.pro
tests/manual/bearerex/bearerex.cpp
tests/manual/bearerex/bearerex.pro
tests/manual/inputmethodhints/inputmethodhints.cpp
tests/manual/inputmethodhints/inputmethodhints.h
tests/manual/inputmethodhints/inputmethodhints.pro
tests/manual/inputmethodhints/inputmethodhints.ui
tests/manual/inputmethodhints/main.cpp
tests/qtp/qtp.pro
tests/qtp/qtp_addressbook/adddialog.cpp
tests/qtp/qtp_addressbook/adddialog.h
tests/qtp/qtp_addressbook/addresswidget.cpp
tests/qtp/qtp_addressbook/addresswidget.h
tests/qtp/qtp_addressbook/autotest.cpp
tests/qtp/qtp_addressbook/autotest.h
tests/qtp/qtp_addressbook/main.cpp
tests/qtp/qtp_addressbook/mainwindow.cpp
tests/qtp/qtp_addressbook/mainwindow.h
tests/qtp/qtp_addressbook/newaddresstab.cpp
tests/qtp/qtp_addressbook/newaddresstab.h
tests/qtp/qtp_addressbook/qtp_addressbook.pro
tests/qtp/qtp_addressbook/tablemodel.cpp
tests/qtp/qtp_addressbook/tablemodel.h
tests/qtp/qtp_analogclock/analogclock.cpp
tests/qtp/qtp_analogclock/analogclock.h
tests/qtp/qtp_analogclock/autotest.cpp
tests/qtp/qtp_analogclock/autotest.h
tests/qtp/qtp_analogclock/main.cpp
tests/qtp/qtp_analogclock/qtp_analogclock.pro
tests/qtp/qtp_animatedtiles/autotest.cpp
tests/qtp/qtp_animatedtiles/autotest.h
tests/qtp/qtp_animatedtiles/images/Time-For-Lunch-2.jpg
tests/qtp/qtp_animatedtiles/images/centered.png
tests/qtp/qtp_animatedtiles/images/ellipse.png
tests/qtp/qtp_animatedtiles/images/figure8.png
tests/qtp/qtp_animatedtiles/images/kinetic.png
tests/qtp/qtp_animatedtiles/images/random.png
tests/qtp/qtp_animatedtiles/images/tile.png
tests/qtp/qtp_animatedtiles/main.cpp
tests/qtp/qtp_animatedtiles/mainwindow.cpp
tests/qtp/qtp_animatedtiles/mainwindow.h
tests/qtp/qtp_animatedtiles/qtp_animatedtiles.pro
tests/qtp/qtp_animatedtiles/qtp_animatedtiles.qrc
tests/qtp/qtp_anomaly/README.TXT
tests/qtp/qtp_anomaly/qtp_anomaly.pro
tests/qtp/qtp_anomaly/src/AddressBar.cpp
tests/qtp/qtp_anomaly/src/AddressBar.h
tests/qtp/qtp_anomaly/src/BookmarksView.cpp
tests/qtp/qtp_anomaly/src/BookmarksView.h
tests/qtp/qtp_anomaly/src/BrowserView.cpp
tests/qtp/qtp_anomaly/src/BrowserView.h
tests/qtp/qtp_anomaly/src/BrowserWindow.cpp
tests/qtp/qtp_anomaly/src/BrowserWindow.h
tests/qtp/qtp_anomaly/src/ControlStrip.cpp
tests/qtp/qtp_anomaly/src/ControlStrip.h
tests/qtp/qtp_anomaly/src/HomeView.cpp
tests/qtp/qtp_anomaly/src/HomeView.h
tests/qtp/qtp_anomaly/src/Main.cpp
tests/qtp/qtp_anomaly/src/TitleBar.cpp
tests/qtp/qtp_anomaly/src/TitleBar.h
tests/qtp/qtp_anomaly/src/ZoomStrip.cpp
tests/qtp/qtp_anomaly/src/ZoomStrip.h
tests/qtp/qtp_anomaly/src/anomaly.qrc
tests/qtp/qtp_anomaly/src/autotest.cpp
tests/qtp/qtp_anomaly/src/autotest.h
tests/qtp/qtp_anomaly/src/flickcharm.cpp
tests/qtp/qtp_anomaly/src/flickcharm.h
tests/qtp/qtp_anomaly/src/httpserver.cpp
tests/qtp/qtp_anomaly/src/httpserver.h
tests/qtp/qtp_anomaly/src/images/edit-find.png
tests/qtp/qtp_anomaly/src/images/go-next.png
tests/qtp/qtp_anomaly/src/images/go-previous.png
tests/qtp/qtp_anomaly/src/images/list-add.png
tests/qtp/qtp_anomaly/src/images/list-remove.png
tests/qtp/qtp_collidingmice/autotest.cpp
tests/qtp/qtp_collidingmice/autotest.h
tests/qtp/qtp_collidingmice/images/cheese.jpg
tests/qtp/qtp_collidingmice/main.cpp
tests/qtp/qtp_collidingmice/mice.qrc
tests/qtp/qtp_collidingmice/mouse.cpp
tests/qtp/qtp_collidingmice/mouse.h
tests/qtp/qtp_collidingmice/qtp_collidingmice.pro
tests/qtp/qtp_masterdetail/albumdetails.xml
tests/qtp/qtp_masterdetail/autotest.cpp
tests/qtp/qtp_masterdetail/autotest.h
tests/qtp/qtp_masterdetail/database.h
tests/qtp/qtp_masterdetail/dialog.cpp
tests/qtp/qtp_masterdetail/dialog.h
tests/qtp/qtp_masterdetail/images/icon.png
tests/qtp/qtp_masterdetail/images/image.png
tests/qtp/qtp_masterdetail/main.cpp
tests/qtp/qtp_masterdetail/mainwindow.cpp
tests/qtp/qtp_masterdetail/mainwindow.h
tests/qtp/qtp_masterdetail/qtp_masterdetail.pro
tests/qtp/qtp_masterdetail/qtp_masterdetail.qrc
tests/qtp/qtp_previewer/autotest.cpp
tests/qtp/qtp_previewer/autotest.h
tests/qtp/qtp_previewer/main.cpp
tests/qtp/qtp_previewer/mainwindow.cpp
tests/qtp/qtp_previewer/mainwindow.h
tests/qtp/qtp_previewer/previewer.cpp
tests/qtp/qtp_previewer/previewer.h
tests/qtp/qtp_previewer/previewer.pro
tests/qtp/qtp_previewer/previewer.ui
tests/qtp/qtp_qftp/autotest.cpp
tests/qtp/qtp_qftp/autotest.h
tests/qtp/qtp_qftp/ftpserver.cpp
tests/qtp/qtp_qftp/ftpserver.h
tests/qtp/qtp_qftp/ftpwindow.cpp
tests/qtp/qtp_qftp/ftpwindow.h
tests/qtp/qtp_qftp/images/cdtoparent.png
tests/qtp/qtp_qftp/images/dir.png
tests/qtp/qtp_qftp/images/file.png
tests/qtp/qtp_qftp/main.cpp
tests/qtp/qtp_qftp/qtp_ftp.qrc
tests/qtp/qtp_qftp/qtp_qftp.pro
tests/qtp/qtp_qftp/sym_iap_util.h
tests/qtp/qtp_raycasting/autotest.cpp
tests/qtp/qtp_raycasting/autotest.h
tests/qtp/qtp_raycasting/main.cpp
tests/qtp/qtp_raycasting/qtp_raycasting.pro
tests/qtp/qtp_raycasting/qtp_raycasting.qrc
tests/qtp/qtp_raycasting/raycasting.cpp
tests/qtp/qtp_raycasting/raycasting.h
tests/qtp/qtp_raycasting/textures.png
tests/qtp/qtp_star/main.cpp
tests/qtp/qtp_star/qtp_star.pro
tests/qtp/qtp_star/startest.cpp
tests/qtp/qtp_star/startest.h
tests/qtp/qtp_star/starwidget.cpp
tests/qtp/qtp_star/starwidget.h
tests/qtp/qtp_svgviewer/autotest.cpp
tests/qtp/qtp_svgviewer/autotest.h
tests/qtp/qtp_svgviewer/files/bubbles.svg
tests/qtp/qtp_svgviewer/files/cubic.svg
tests/qtp/qtp_svgviewer/files/spheres.svg
tests/qtp/qtp_svgviewer/main.cpp
tests/qtp/qtp_svgviewer/mainwindow.cpp
tests/qtp/qtp_svgviewer/mainwindow.h
tests/qtp/qtp_svgviewer/qtp_svgviewer.pro
tests/qtp/qtp_svgviewer/qtp_svgviewer.qrc
tests/qtp/qtp_svgviewer/svgview.cpp
tests/qtp/qtp_svgviewer/svgview.h
tests/qtp/qtp_wiggly/autotest.cpp
tests/qtp/qtp_wiggly/autotest.h
tests/qtp/qtp_wiggly/dialog.cpp
tests/qtp/qtp_wiggly/dialog.h
tests/qtp/qtp_wiggly/main.cpp
tests/qtp/qtp_wiggly/qtp_wiggly.pro
tests/qtp/qtp_wiggly/wigglywidget.cpp
tests/qtp/qtp_wiggly/wigglywidget.h
tests/tests.pro
tools/activeqt/testcon/changeproperties.cpp
tools/assistant/lib/fulltextsearch/qsort_p.h
tools/assistant/lib/qhelpcollectionhandler_p.h
tools/assistant/lib/qhelpengine.h
tools/assistant/lib/qhelpenginecore.cpp
tools/assistant/lib/qhelpenginecore.h
tools/assistant/lib/qhelpsearchengine.cpp
tools/assistant/lib/qhelpsearchengine.h
tools/assistant/lib/qhelpsearchindexreader_clucene.cpp
tools/assistant/tools/assistant/bookmarkfiltermodel.cpp
tools/assistant/tools/assistant/bookmarkitem.cpp
tools/assistant/tools/assistant/bookmarkitem.h
tools/assistant/tools/assistant/bookmarkmanagerwidget.h
tools/assistant/tools/assistant/centralwidget.cpp
tools/assistant/tools/assistant/cmdlineparser.cpp
tools/assistant/tools/assistant/cmdlineparser.h
tools/assistant/tools/assistant/helpviewer_qtb.h
tools/assistant/tools/assistant/helpviewer_qwv.h
tools/assistant/tools/assistant/installdialog.h
tools/assistant/tools/assistant/main.cpp
tools/assistant/tools/assistant/mainwindow.cpp
tools/assistant/tools/assistant/mainwindow.h
tools/assistant/tools/assistant/searchwidget.h
tools/assistant/tools/qcollectiongenerator/main.cpp
tools/assistant/tools/qhelpconverter/filterpage.cpp
tools/assistant/tools/qhelpconverter/finishpage.cpp
tools/assistant/tools/qhelpconverter/helpwindow.cpp
tools/assistant/tools/qhelpconverter/inputpage.h
tools/assistant/tools/qhelpconverter/main.cpp
tools/assistant/tools/qhelpgenerator/main.cpp
tools/assistant/tools/shared/helpgenerator.cpp
tools/configure/configure.pro
tools/configure/configureapp.cpp
tools/configure/configureapp.h
tools/configure/environment.cpp
tools/configure/tools.cpp
tools/designer/src/components/propertyeditor/defs.cpp
tools/designer/src/components/propertyeditor/defs.h
tools/designer/src/components/propertyeditor/propertyeditor.pri
tools/designer/src/components/taskmenu/itemlisteditor.cpp
tools/designer/src/designer/assistantclient.cpp
tools/designer/src/lib/shared/actionrepository.cpp
tools/designer/src/lib/shared/plugindialog.cpp
tools/designer/src/lib/shared/stylesheeteditor.cpp
tools/designer/src/plugins/phononwidgets/seeksliderplugin.cpp
tools/designer/src/plugins/phononwidgets/videoplayerplugin.cpp
tools/designer/src/plugins/phononwidgets/volumesliderplugin.cpp
tools/designer/src/plugins/qdeclarativeview/qdeclarativeview_plugin.cpp
tools/designer/src/plugins/qwebview/qwebview_plugin.cpp
tools/linguist/lconvert/main.cpp
tools/linguist/linguist/mainwindow.cpp
tools/linguist/linguist/phrase.cpp
tools/linguist/lrelease/main.cpp
tools/linguist/lupdate/cpp.cpp
tools/linguist/lupdate/java.cpp
tools/linguist/lupdate/main.cpp
tools/linguist/lupdate/merge.cpp
tools/linguist/lupdate/qdeclarative.cpp
tools/linguist/lupdate/qscript.cpp
tools/linguist/lupdate/qscript.g
tools/linguist/lupdate/ui.cpp
tools/linguist/phrasebooks/french.qph
tools/linguist/phrasebooks/russian.qph
tools/linguist/shared/po.cpp
tools/linguist/shared/xliff.cpp
tools/porting/src/errors.cpp
tools/porting/src/errors.h
tools/porting/src/semantic.cpp
tools/qdoc3/codemarker.cpp
tools/qdoc3/codemarker.h
tools/qdoc3/config.h
tools/qdoc3/cppcodemarker.cpp
tools/qdoc3/cppcodemarker.h
tools/qdoc3/ditaxmlgenerator.cpp
tools/qdoc3/generator.cpp
tools/qdoc3/htmlgenerator.cpp
tools/qdoc3/htmlgenerator.h
tools/qdoc3/main.cpp
tools/qdoc3/node.cpp
tools/qdoc3/qdoc3.pro
tools/qdoc3/test/assistant.qdocconf
tools/qdoc3/test/qdeclarative.qdocconf
tools/qdoc3/test/qt-api-only.qdocconf
tools/qdoc3/test/qt-build-docs.qdocconf
tools/qdoc3/test/qt-cpp-ignore.qdocconf
tools/qdoc3/test/qt-defines.qdocconf
tools/qdoc3/test/qt-html-templates.qdocconf
tools/qdoc3/test/qt-html-templates_ja_JP.qdocconf
tools/qdoc3/test/qt-html-templates_zh_CN.qdocconf
tools/qdoc3/test/qt.qdocconf
tools/qdoc3/tree.cpp
tools/qml/Info_mac.plist
tools/qml/browser/Browser.qml
tools/qml/browser/browser.qrc
tools/qml/browser/images/folder.png
tools/qml/browser/images/titlebar.png
tools/qml/browser/images/titlebar.sci
tools/qml/browser/images/up.png
tools/qml/content/Browser.qml
tools/qml/content/images/folder.png
tools/qml/content/images/titlebar.png
tools/qml/content/images/titlebar.sci
tools/qml/content/images/up.png
tools/qml/deviceorientation.cpp
tools/qml/deviceorientation.h
tools/qml/deviceorientation_maemo5.cpp
tools/qml/deviceorientation_symbian.cpp
tools/qml/main.cpp
tools/qml/qml.pri
tools/qml/qml.pro
tools/qml/qmlruntime.cpp
tools/qml/qmlruntime.h
tools/qml/qmlruntime.qrc
tools/qml/startup/Logo.qml
tools/qml/startup/qt-back.png
tools/qml/startup/qt-blue.jpg
tools/qml/startup/qt-front.png
tools/qml/startup/qt-sketch.jpg
tools/qml/startup/qt-text.png
tools/qml/startup/quick-blur.png
tools/qml/startup/quick-regular.png
tools/qml/startup/shadow.png
tools/qml/startup/startup.qml
tools/qml/startup/startup.qrc
tools/qml/startup/white-star.png
tools/qtconfig/main.cpp
tools/qvfb/main.cpp
tools/qvfb/qvfb.cpp
tools/qvfb/qvfbratedlg.cpp
tools/runonphone/main.cpp
tools/runonphone/ossignalconverter.cpp
tools/runonphone/ossignalconverter.h
tools/runonphone/ossignalconverter_p.h
tools/runonphone/runonphone.pro
tools/shared/qtpropertybrowser/qtpropertymanager.cpp
translations/assistant_de.ts
translations/assistant_fr.ts
translations/assistant_ja.ts
translations/assistant_ru.ts
translations/assistant_sl.ts
translations/assistant_uk.ts
translations/check-ts.xq
translations/designer_de.ts
translations/designer_fr.ts
translations/designer_ja.ts
translations/designer_pl.ts
translations/designer_ru.ts
translations/designer_sl.ts
translations/designer_uk.ts
translations/linguist_de.ts
translations/linguist_fr.ts
translations/linguist_ja.ts
translations/linguist_ru.ts
translations/linguist_sl.ts
translations/linguist_uk.ts
translations/qt_de.ts
translations/qt_fr.ts
translations/qt_help_de.ts
translations/qt_help_fr.ts
translations/qt_help_ja.ts
translations/qt_help_ru.ts
translations/qt_help_sl.ts
translations/qt_help_uk.ts
translations/qt_ja.ts
translations/qt_pl.ts
translations/qt_ru.ts
translations/qt_sl.ts
translations/qt_uk.ts
translations/qtconfig_ja.ts
translations/qtconfig_ru.ts
translations/qtconfig_sl.ts
translations/qtconfig_uk.ts
translations/qvfb_ja.ts
translations/qvfb_ru.ts
translations/qvfb_sl.ts
translations/qvfb_uk.ts
translations/translations.pri
--- a/VERSION.SHA1	Fri Sep 17 08:34:18 2010 +0300
+++ b/VERSION.SHA1	Mon Oct 04 01:19:32 2010 +0300
@@ -1,1 +1,1 @@
-acc48564b55b8e2fbc80e7b93c790a44f4a7b6e3
+624cafb543fe4bb145ad7e6691e433626cb86b9c
--- a/bin/createpackage.pl	Fri Sep 17 08:34:18 2010 +0300
+++ b/bin/createpackage.pl	Mon Oct 04 01:19:32 2010 +0300
@@ -81,11 +81,14 @@
      [-o|only-unsigned]      = Creates only unsigned package.
      [-s|stub]               = Generates stub sis for ROM.
      [-n|sisname <name>]     = Specifies the final sis name.
+     [-g|gcce-is-armv5]      = Convert gcce platform to armv5.
 Where parameters are as follows:
      templatepkg             = Name of .pkg file template
      target                  = Either debug or release
      platform                = One of the supported platform
                                winscw | gcce | armv5 | armv6 | armv7
+                               Note that when packaging binaries built using gcce and symbian-sbsv2
+                               mkspec, armv5 must be used for platform instead of gcce.
      certificate             = The certificate file used for signing
      key                     = The certificate's private key file
      passphrase              = The passphrase of the certificate's private key file
@@ -123,6 +126,7 @@
 my $stub = "";
 my $signed_sis_name = "";
 my $onlyUnsigned = "";
+my $convertGcce = "";
 
 unless (GetOptions('i|install' => \$install,
                    'p|preprocess' => \$preprocessonly,
@@ -130,7 +134,8 @@
                    'u|unsigned' => \$preserveUnsigned,
                    'o|only-unsigned' => \$onlyUnsigned,
                    's|stub' => \$stub,
-                   'n|sisname=s' => \$signed_sis_name,)) {
+                   'n|sisname=s' => \$signed_sis_name,
+                   'g|gcce-is-armv5' => \$convertGcce,)) {
     Usage();
 }
 
@@ -146,6 +151,16 @@
 my $platform;
 $platform = $tmpvalues[1] or $platform = "";
 
+if ($platform =~ m/^gcce$/i) {
+    if (($convertGcce ne "")) {
+        $platform = "armv5";
+    } elsif ($ENV{SBS_HOME}) {
+        # Print a informative note in case suspected misuse is detected.
+        print "\nNote: You should use armv5 as platform or specify -g parameter to convert platform\n";
+        print "      when packaging gcce binaries built using symbian-sbsv2 mkspec.\n\n";
+    }
+}
+
 # Convert visual target to real target (debug->udeb and release->urel)
 $target =~ s/debug/udeb/i;
 $target =~ s/release/urel/i;
@@ -300,7 +315,8 @@
         && $templatepkg !~ m/_installer\.pkg$/i
         && !$onlyUnsigned) {
         print("Auto-patching capabilities for self signed package.\n");
-        system ("patch_capabilities $pkgoutput");
+        my $patch_capabilities = File::Spec->catfile(dirname($0), "patch_capabilities");
+        system ("$patch_capabilities $pkgoutput");
     }
 
     # Create SIS.
--- a/bin/patch_capabilities.pl	Fri Sep 17 08:34:18 2010 +0300
+++ b/bin/patch_capabilities.pl	Mon Oct 04 01:19:32 2010 +0300
@@ -54,7 +54,9 @@
     print("If no capabilities are given, the binaries will be given the\n");
     print("capabilities supported by self-signed certificates.\n\n");
     print(" *** NOTE: If *_template.pkg file is given and one is using symbian-abld or\n");
-    print(" symbian-sbsv2 platform, 'target-platform' is REQUIRED. ***\n");
+    print(" symbian-sbsv2 platform, 'target-platform' is REQUIRED. ***\n\n");
+    print(" *** NOTE2: When patching gcce binaries built with symbian-sbsv2 toolchain,\n");
+    print(" armv5 must be specified as platform.\n");
     print("\nUsage: patch_capabilities.pl pkg_filename [target-platform [capability list]]\n");
     print("\nE.g. patch_capabilities.pl myapp_template.pkg release-armv5 \"All -TCB\"\n");
     exit();
@@ -104,6 +106,11 @@
         # Convert visual target to real target (debug->udeb and release->urel)
         $target =~ s/debug/udeb/i;
         $target =~ s/release/urel/i;
+
+        if (($platform =~ m/^gcce$/i) && ($ENV{SBS_HOME})) {
+            # Print a informative note in case suspected misuse is detected.
+            print "\nNote: You must use armv5 as platform when packaging gcce binaries built using symbian-sbsv2 mkspec.\n";
+        }
     }
 
     # If the specified ".pkg" file exists (and can be read),
--- a/bin/syncqt	Fri Sep 17 08:34:18 2010 +0300
+++ b/bin/syncqt	Mon Oct 04 01:19:32 2010 +0300
@@ -42,7 +42,7 @@
         "QtScript" => "$basedir/src/script",
         "QtScriptTools" => "$basedir/src/scripttools",
         "Qt3Support" => "$basedir/src/qt3support",
-        "ActiveQt" => "$basedir/src/activeqt/container;$basedir/src/activeqt/control;$basedir/src/activeqt/shared",
+        "ActiveQt" => "$basedir/src/activeqt",
         "QtTest" => "$basedir/src/testlib",
         "QtHelp" => "$basedir/tools/assistant/lib",
         "QtDesigner" => "$basedir/tools/designer/src/lib",
@@ -700,6 +700,7 @@
 $isunix = checkUnix; #cache checkUnix
 
 # create path
+mkpath "$out_basedir/include", !$quiet;
 mkpath "$out_basedir/$out_subdir/Qt", !$quiet;
 
 my @ignore_headers = ();
@@ -710,6 +711,10 @@
 my @ignore_for_qt_begin_namespace_check = ( "qconfig.h", "qconfig-dist.h", "qconfig-large.h", "qconfig-medium.h", "qconfig-minimal.h", "qconfig-small.h", "qfeatures.h", "qatomic_arch.h", "qatomic_windowsce.h", "qt_windows.h", "qatomic_macosx.h" );
 my @ignore_for_qt_module_check = ( "$modules{QtCore}/arch", "$modules{QtCore}/global", "$modules{QtSql}/drivers", "$modules{QtTest}", "$modules{QtDesigner}", "$modules{QtUiTools}", "$modules{QtDBus}", "$modules{phonon}" );
 my %colliding_headers = ();
+my %inject_headers;
+# Force generation of forwarding header for qconfig.h if (and only if) we can't
+# find the header by normal means.
+%inject_headers = ( "$basedir/src/corelib/global" => ( "*qconfig.h" ) ) unless (-e "$basedir/src/corelib/global/qconfig.h");
 
 foreach (@modules_to_sync) {
     #iteration info
@@ -819,8 +824,10 @@
         foreach (@subdirs) {
             my $subdir = "$_";
             my @headers = findFiles("$subdir", "^[-a-z0-9_]*\\.h\$" , 0);
+            push @headers, $inject_headers{$subdir} if (defined $inject_headers{$subdir});
             foreach (@headers) {
                 my $header = "$_";
+                my $shadow = ($header =~ s/^\*//);
                 $header = 0 if("$header" =~ /^ui_.*.h/);
                 foreach (@ignore_headers) {
                     $header = 0 if("$header" eq "$_");
@@ -838,6 +845,7 @@
                     }
 
                     my $iheader = $subdir . "/" . $header;
+                    $iheader =~ s/^\Q$basedir\E/$out_basedir/ if ($shadow);
                     my @classes = $public_header ? classNames($iheader) : ();
                     if($showonly) {
                         print "$header [$lib]\n";
@@ -862,7 +870,7 @@
                                     my $warning_msg = 'Inclusion of header files from include/Qt is deprecated.';
                                     $header_content = "#ifndef QT_NO_QT_INCLUDE_WARN\n" .
                                                       "    #if defined(__GNUC__)\n" .
-                                                      "        #pragma warning \"$warning_msg\"\n" .
+                                                      "        #warning \"$warning_msg\"\n" .
                                                       "    #elif defined(_MSC_VER)\n" .
                                                       "        #pragma message \"WARNING: $warning_msg\"\n" .
                                                       "    #endif\n".
@@ -1009,14 +1017,12 @@
     for (keys(%modules)) {
         #iteration info
         my $lib = $_;
-        my $dir = "$modules{$lib}";
-        foreach (split(/;/, $dir)) {
-            my $current_dir = "$_";
+        {
             #calc subdirs
-            my @subdirs = ($current_dir);
+            my @subdirs = ($modules{$lib});
             foreach (@subdirs) {
                 my $subdir = "$_";
-                opendir DIR, "$subdir";
+                opendir DIR, "$subdir" or die "Huh, directory ".$subdir." cannot be opened.";
                 while(my $t = readdir(DIR)) {
                     push @subdirs, "$subdir/$t" if(-d "$subdir/$t" && !($t eq ".") &&
                                                    !($t eq "..") && !($t eq ".obj") &&
@@ -1142,4 +1148,4 @@
     }
 }
 
-exit 0;
\ No newline at end of file
+exit 0;
--- a/config.tests/symbian/audio/audio.pro	Fri Sep 17 08:34:18 2010 +0300
+++ b/config.tests/symbian/audio/audio.pro	Mon Oct 04 01:19:32 2010 +0300
@@ -1,8 +1,6 @@
 TARGET = audio
 SOURCES = audio.cpp
 
-QT=
-
 INCLUDEPATH += $${EPOCROOT}epoc32/include/mmf/server
 INCLUDEPATH += $${EPOCROOT}epoc32/include/mmf/common
 
--- a/config.tests/symbian/compile.test	Fri Sep 17 08:34:18 2010 +0300
+++ b/config.tests/symbian/compile.test	Mon Oct 04 01:19:32 2010 +0300
@@ -26,15 +26,16 @@
 
 test -r Makefile && $MAKE distclean >/dev/null 2>&1
 
-"$OUTDIR/bin/qmake" -nocache -spec "$QMKSPEC" "CONFIG+=$QMAKE_CONFIG" "LIBS*=$LFLAGS" "LIBS+=$MAC_ARCH_LFLAGS" "INCLUDEPATH*=$INCLUDEPATH" "QMAKE_CXXFLAGS*=$CXXFLAGS" "QMAKE_CXXFLAGS+=$MAC_ARCH_CXXFLAGS" "$SRCDIR/$TEST/$EXE.pro"
+"$OUTDIR/bin/qmake" -nocache -spec "$QMKSPEC" "CONFIG+=$QMAKE_CONFIG" "LIBS*=$LFLAGS" "LIBS+=$MAC_ARCH_LFLAGS" "INCLUDEPATH*=$INCLUDEPATH" "QMAKE_CXXFLAGS*=$CXXFLAGS" "QMAKE_CXXFLAGS+=$MAC_ARCH_CXXFLAGS" "QT_BUILD_TREE=$OUTDIR" "$SRCDIR/$TEST/$EXE.pro" -o "$OUTDIR/$TEST/Makefile"
 
 if [ "$VERBOSE" = "yes" ]; then
     $MAKE
 else
     $MAKE >/dev/null 2>&1
 fi
-#by default WINSCW is used in Symbian release
-[ -f "$EPOCROOT/epoc32/release/winscw/udeb/$EXE.exe" ] && SUCCESS=yes
+
+[ -x "$EXE.exe" ] && SUCCESS=yes
+
 # done
 if [ "$SUCCESS" != "yes" ]; then
     [ "$VERBOSE" = "yes" ] && echo "$DESCRIPTION disabled."
--- a/config.tests/unix/icd/icd.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/config.tests/unix/icd/icd.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -40,11 +40,7 @@
 ****************************************************************************/
 
 #include <libicd-network-wlan-dev.h>
-#include <maemo_icd.h>
-#include <iapconf.h>
-#include <proxyconf.h>
 #include <wlancond.h>
-#include <iapmonitor.h>
 #include <icd/dbus_api.h>
 
 int main(int, char **)
--- a/configure	Fri Sep 17 08:34:18 2010 +0300
+++ b/configure	Mon Oct 04 01:19:32 2010 +0300
@@ -794,6 +794,7 @@
 OPT_HELP=
 CFG_SILENT=no
 CFG_GRAPHICS_SYSTEM=default
+CFG_RUNTIME_SYSTEM=
 CFG_ALSA=auto
 CFG_PULSEAUDIO=auto
 CFG_COREWLAN=auto
@@ -824,6 +825,7 @@
 QT_CFLAGS_SQLITE=
 QT_LFLAGS_SQLITE=
 QT_LFLAGS_ODBC="-lodbc"
+QT_LFLAGS_TDS=
 
 # flags for libdbus-1
 QT_CFLAGS_DBUS=
@@ -837,9 +839,9 @@
 QT_CFLAGS_GSTREAMER=
 QT_LIBS_GSTREAMER=
 
-# flags for icd (Maemo Internet Connection Daemon)
-QT_CFLAGS_ICD=
-QT_LIBS_ICD=
+# flags for libconnsettings0 (used for Maemo ICD bearer management plugin)
+QT_CFLAGS_CONNSETTINGS=
+QT_LIBS_CONNSETTINGS=
 
 #-------------------------------------------------------------------------------
 # check SQL drivers, mouse drivers and decorations available in this package
@@ -1037,6 +1039,11 @@
 	shift
 	VAL=$1
 	;;
+    -runtimegraphicssystem)
+	VAR="runtimegraphicssystem"
+	shift
+	VAL=$1
+	;;
     -qtlibinfix)
         VAR="qtlibinfix"
         shift
@@ -1281,11 +1288,18 @@
                 CFG_GRAPHICS_SYSTEM="openvg"
             elif [ "$VAL" = "raster" ]; then
                 CFG_GRAPHICS_SYSTEM="raster"
+            elif [ "$VAL" = "runtime" ]; then
+                CFG_GRAPHICS_SYSTEM="runtime"
             else
                 UNKNOWN_OPT=yes
             fi
         fi
 	;;
+    runtimegraphicssystem)
+        if  [ "$VAL" != "runtime" ]; then
+            CFG_RUNTIME_SYSTEM="$VAL"
+        fi
+	;;
 
     qvfb) # left for commandline compatibility, not documented
         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
@@ -2088,7 +2102,7 @@
                 [ "$VAR" = "decoration" ] && QMakeVar del "${VAR}s" "$VAL"
                 [ "$VAR" = "decoration" ] && CFG_DECORATION_ON=`echo "${CFG_DECORATION_ON} " | sed "s,${VAL} ,,g"` && CFG_DECORATION_PLUGIN="$CFG_DECORATION_PLUGIN ${VAL}"
                 [ "$VAR" = "kbd" ] && QMakeVar del "${VAR}s" "$VAL"
-                [ "$VAR" = "kbd" ] && CFG_KBD_ON=`echo "${CFG_MOUSE_ON} " | sed "s,${VAL} ,,g"` && CFG_KBD_PLUGIN="$CFG_KBD_PLUGIN ${VAL}"
+                [ "$VAR" = "kbd" ] && CFG_KBD_ON=`echo "${CFG_KBD_ON} " | sed "s,${VAL} ,,g"` && CFG_KBD_PLUGIN="$CFG_KBD_PLUGIN ${VAL}"
                 [ "$VAR" = "mouse" ] && QMakeVar del "${VAR}s" "$VAL"
                 [ "$VAR" = "mouse" ] && CFG_MOUSE_ON=`echo "${CFG_MOUSE_ON} " | sed "s,${VAL} ,,g"` && CFG_MOUSE_PLUGIN="$CFG_MOUSE_PLUGIN ${VAL}"
                 [ "$VAR" = "gfx" ] && QMakeVar del "${VAR}s" "$VAL"
@@ -2321,7 +2335,7 @@
 
 # detect build style
 if [ "$CFG_DEBUG" = "auto" ]; then
-    if [ "$PLATFORM_MAC" = "yes" ]; then
+    if [ "$PLATFORM_MAC" = "yes" -o "$XPLATFORM_MINGW" = "yes" ]; then
         CFG_DEBUG_RELEASE=yes
         CFG_DEBUG=yes
     elif [ "$CFG_DEV" = "yes" ]; then
@@ -2400,10 +2414,31 @@
 
     # symlink the mkspecs directory
     mkdir -p "$outpath/mkspecs"
-    rm -f "$outpath"/mkspecs/*
+    rm -rf "$outpath"/mkspecs/*
     ln -s "$relpath"/mkspecs/* "$outpath/mkspecs"
     rm -f "$outpath/mkspecs/default"
 
+    ShadowMkspecs()
+    {
+        rm -rf "$outpath/mkspecs/$1"
+        if [ "$UNAME_SYSTEM" = "Linux" ]; then
+            # This works with GNU coreutils, and is needed for ScratchBox
+            cp -rs "$relpath/mkspecs/$1" "$outpath/mkspecs/$1"
+        else
+            # A simple "cp -rs" doesn't work on Mac. :(
+            find "$relpath/mkspecs/$1" -type d | sed "s,^$relpath,$outpath," | xargs mkdir -p
+            find "$relpath/mkspecs/$1" -type f | sed "s,^$relpath/,," | xargs -n 1 -I % ln -s "$relpath/%" "$outpath/%"
+        fi
+    }
+
+    # Special case for mkspecs/features directory.
+    # To be able to place .prf files into a shadow build directory,
+    # we're creating links for files only. The directory structure is reproduced.
+    ShadowMkspecs features
+
+    # The modules dir is special, too.
+    ShadowMkspecs modules
+
     # symlink the doc directory
     rm -rf "$outpath/doc"
     ln -s "$relpath/doc" "$outpath/doc"
@@ -3675,8 +3710,8 @@
     -no-scripttools .... Do not build the QtScriptTools module.
  +  -scripttools ....... Build the QtScriptTools module.
 
- +  -no-declarative .....Do not build the declarative module.
-    -declarative ....... Build the declarative module.
+    -no-declarative .....Do not build the declarative module.
+ +  -declarative ....... Build the declarative module.
 
     -platform target ... The operating system and compiler you are building
                          on ($PLATFORM).
@@ -3689,6 +3724,8 @@
     -graphicssystem <sys> Sets an alternate graphics system. Available options are:
                            raster - Software rasterizer
                            opengl - Rendering via OpenGL, Experimental!
+                           openvg - Rendering via OpenVG, Experimental!
+
 EOF
 fi
 cat << EOF
@@ -4877,23 +4914,24 @@
         exit 1
     fi
 
-    # the main commands needed to compile;
-    (cd config.tests/symbian
-        mkdir -p rcomp
-        cd rcomp
-        rm -f rcomp_test.rsg
-        touch rcomp_test.rpp rcomp_test.rsc rcomp_test.rss
-        rcomp -u -m045,046,047 -s./rcomp_test.rpp -o./rcomp_test.rsc -h./rcomp_test.rsg -i./rcomp_test.rss 2>&1 > /dev/null
-        if test ! -f rcomp_test.rsg; then
-            echo "Finding a working rcomp in your PATH failed."
-            echo "Fatal error. Make sure you have the epoc tools working and in your PATH";
-            exit 1;
-        fi
-    )
-
-    # compile a simple main that uses printf
     if ! echo $XPLATFORM | grep symbian-sbsv2 > /dev/null; then
         # Raptor does not support configure tests.
+
+        # the main commands needed to compile;
+        (cd config.tests/symbian
+            mkdir -p rcomp
+            cd rcomp
+            rm -f rcomp_test.rsg
+            touch rcomp_test.rpp rcomp_test.rsc rcomp_test.rss
+            rcomp -u -m045,046,047 -s./rcomp_test.rpp -o./rcomp_test.rsc -h./rcomp_test.rsg -i./rcomp_test.rss 2>&1 > /dev/null
+            if test ! -f rcomp_test.rsg; then
+                echo "Finding a working rcomp in your PATH failed."
+                echo "Fatal error. Make sure you have the epoc tools working and in your PATH";
+                exit 1;
+            fi
+        )
+
+        # compile a simple main that uses printf
         if ! "$symbiantests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/symbian/simple "simple" $L_FLAGS $I_FLAGS $l_FLAGS
         then
             echo "Testing your compiler failed. Could not compile a simple application."
@@ -5147,7 +5185,9 @@
             ;;
         tds)
             if [ "$CFG_SQL_tds" != "no" ]; then
-                if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/tds "TDS" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
+                [ -z "$SYBASE" ] || QT_LFLAGS_TDS="-L$SYBASE/lib"
+                [ -z "$SYBASE_LIBS" ] || QT_LFLAGS_TDS="$QT_LFLAGS_TDS $SYBASE_LIBS"
+                if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/tds "TDS" $QT_LFLAGS_TDS $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
                     if [ "$CFG_SQL_tds" = "auto" ]; then
                         CFG_SQL_tds=plugin
                     fi
@@ -5416,7 +5456,7 @@
         fi
     fi
 
-    # Auto-detect GStreamer support (needed for both Phonon & QtMultimedia)
+    # Auto-detect GStreamer support (needed for Phonon)
     if [ "$CFG_PHONON" != "no" ]; then
         if [ "$CFG_GLIB" = "yes" -a "$CFG_GSTREAMER" != "no" ]; then
             if [ -n "$PKG_CONFIG" ]; then
@@ -5467,49 +5507,21 @@
 
     # auto-detect icd support
     if [ "$CFG_GLIB" = "yes" -a "$CFG_ICD" != "no" ]; then
-        # ICD support has a cyclic dependency on Qt.
         if [ -n "$PKG_CONFIG" ]; then
-            QT_CFLAGS_ICD=`$PKG_CONFIG --cflags osso-ic conninet 2>/dev/null`
-            QT_LIBS_ICD=`$PKG_CONFIG --libs osso-ic conninet 2>/dev/null`
-            QT_CFLAGS_QTNETWORK=`$PKG_CONFIG --cflags QtNetwork 2>/dev/null`
-            QT_LIBS_QTNETWORK=`$PKG_CONFIG --libs QtNetwork 2>/dev/null`
-        else
-            QT_CFLAGS_QTNETWORK=
-            QT_LIBS_QTNETWORK=
-        fi
-        if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/icd "ICD" $L_FLAGS $I_FLAGS $l_FLAGS $QT_CFLAGS_ICD $QT_LIBS_ICD $QT_CFLAGS_QTNETWORK $QT_LIBS_QTNETWORK; then
+            QT_CFLAGS_CONNSETTINGS=`$PKG_CONFIG --cflags connsettings 2>/dev/null`
+            QT_LIBS_CONNSETTINGS=`$PKG_CONFIG --libs connsettings 2>/dev/null`
+        fi
+        if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/icd "ICD" $L_FLAGS $I_FLAGS $l_FLAGS $QT_CFLAGS_CONNSETTINGS $QT_LIBS_CONNSETTINGS; then
             [ "$CFG_ICD" = "auto" ] && CFG_ICD=yes
-            # remove system Qt includes and libraries
-            QT_CFLAGS_ICD_TRIMMED=
-            for i in $QT_CFLAGS_ICD; do
-                case $i in
-                    *qt*)
-                        ;;
-                    *)
-                        QT_CFLAGS_ICD_TRIMMED="$QT_CFLAGS_ICD_TRIMMED $i"
-                        ;;
-                esac
-            done
-            QT_LIBS_ICD_TRIMMED=
-            for i in $QT_LIBS_ICD; do
-                case $i in
-                    *qt*|-lQt*)
-                        ;;
-                    *)
-                        QT_LIBS_ICD_TRIMMED="$QT_LIBS_ICD_TRIMMED $i"
-                        ;;
-                esac
-            done
-
-            QMakeVar set QT_CFLAGS_ICD "$QT_CFLAGS_ICD_TRIMMED"
-            QMakeVar set QT_LIBS_ICD "$QT_LIBS_ICD_TRIMMED"
+            QMakeVar set QT_CFLAGS_CONNSETTINGS "$QT_CFLAGS_CONNSETTINGS"
+            QMakeVar set QT_LIBS_CONNSETTINGS "$QT_LIBS_CONNSETTINGS"
         else
             if [ "$CFG_ICD" = "auto" ]; then
                 CFG_ICD=no
             elif [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
                 # CFG_ICD is "yes"
 
-                echo "The ICD Bearer Management plugin cannot be enabled because osso-ic or conninet was not found."
+                echo "The ICD Bearer Management plugin cannot be enabled because connsettings was not found."
                 echo " Turn on verbose messaging (-v) to $0 to see the final report."
                 echo " If you believe this message is in error you may use the continue"
                 echo " switch (-continue) to $0 to continue."
@@ -6241,9 +6253,13 @@
 
 # find if the platform supports IPv6
 if [ "$CFG_IPV6" != "no" ]; then
-    if [ "$XPLATFORM" = "symbian-sbsv2" ]; then
-        #IPV6 should always be enabled for Symbian release
-        CFG_IPV6=yes
+    #
+    # We accidently enabled IPv6 for Qt Symbian in 4.6.x. However the underlying OpenC does not fully support IPV6.
+    # Therefore for 4.7.1 and following we disable it until OpenC either supports it or we have the native Qt
+    # symbian socket engine.
+    #
+    if echo "$XPLATFORM" | grep symbian > /dev/null; then
+        CFG_IPV6=no
     elif "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/ipv6 "IPv6" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
         CFG_IPV6=yes
     else
@@ -6424,6 +6440,11 @@
     CFG_GRAPHICS_SYSTEM=default
 fi
 
+if [ -n "$CFG_RUNTIME_SYSTEM" -a "$CFG_GRAPHICS_SYSTEM" != "runtime" ] || [ "$CFG_RUNTIME_SYSTEM" = "runtime" ]; then
+    echo "Argument to -runtimegraphicssystem is invalid so ignoring..."
+    CFG_RUNTIME_SYSTEM=
+fi
+
 if [ "$CFG_PTMALLOC" != "no" ]; then
     # build ptmalloc, copy .a file to lib/
     echo "Building ptmalloc. Please wait..."
@@ -6715,7 +6736,11 @@
     QT_CONFIG="$QT_CONFIG embedded"
     rm -f "src/.moc/$QMAKE_OUTDIR/allmoc.cpp" # needs remaking if config changes
 fi
-QMakeVar set PRECOMPILED_DIR ".pch/$QMAKE_OUTDIR"
+if [ "$XPLATFORM_MINGW" != "yes" ]; then
+    # Do not set this here for Windows. Let qmake do it so
+    # debug and release precompiled headers are kept separate.
+    QMakeVar set PRECOMPILED_DIR ".pch/$QMAKE_OUTDIR"
+fi
 QMakeVar set OBJECTS_DIR ".obj/$QMAKE_OUTDIR"
 QMakeVar set MOC_DIR ".moc/$QMAKE_OUTDIR"
 QMakeVar set RCC_DIR ".rcc/$QMAKE_OUTDIR"
@@ -6971,6 +6996,8 @@
 # turn off exceptions for the compilers that support it
 if [ "$PLATFORM_QWS" = "yes" ]; then
     COMPILER=`echo $XPLATFORM | cut -f 3- -d-`
+elif [ "$XPLATFORM" != "$PLATFORM" ]; then
+    COMPILER=`echo $XPLATFORM | cut -f 2- -d-`
 else
     COMPILER=`echo $PLATFORM | cut -f 2- -d-`
 fi
@@ -7194,7 +7221,8 @@
 fi
 
 if [ "$CFG_WEBKIT" = "yes" ]; then
-    QT_CONFIG="$QT_CONFIG webkit"
+    # This include takes care of adding "webkit" to QT_CONFIG.
+    cp -f "$relpath/src/3rdparty/webkit/WebKit/qt/qt_webkit_version.pri" "$outpath/mkspecs/modules/qt_webkit_version.pri"
     # The reason we set CFG_WEBKIT, is such that the printed overview of what will be enabled, shows correctly.
     CFG_WEBKIT="yes"
 else
@@ -7308,6 +7336,7 @@
 
 # some compilers generate binary incompatible code between different versions,
 # so we need to generate a build key that is different between these compilers
+COMPAT_COMPILER=
 case "$COMPILER" in
 g++*)
     # GNU C++
@@ -7341,6 +7370,22 @@
     esac
     [ '!' -z "$COMPILER_VERSION" ] && COMPILER="g++-${COMPILER_VERSION}"
     ;;
+icc*)
+    # The Intel CC compiler on Unix systems matches the ABI of the g++
+    # that is found on PATH
+    COMPILER="icc"
+    COMPAT_COMPILER="g++-4"
+    case "`g++ -dumpversion` 2>/dev/null" in
+    2.95.*)
+        COMPAT_COMPILER="g++-2.95.*"
+        ;;
+    3.*)
+        COMPAT_COMPILER="g++-3.*"
+        ;;
+    *)
+        ;;
+    esac
+    ;;
 *)
     #
     ;;
@@ -7449,9 +7494,17 @@
 BUILD_OPTIONS="$BUILD_CONFIG $BUILD_OPTIONS"
 # extract the operating system from the XPLATFORM
 TARGET_OPERATING_SYSTEM=`echo $XPLATFORM | cut -f 2- -d/ | cut -f -1 -d-`
+case "$XPLATFORM" in
+symbian*)
+    QT_BUILD_KEY_SYSTEM_PART="Symbian"
+    ;;
+*)
+    QT_BUILD_KEY_SYSTEM_PART="$CFG_ARCH $TARGET_OPERATING_SYSTEM $COMPILER"
+    ;;
+esac
 
 # when cross-compiling, don't include build-host information (build key is target specific)
-QT_BUILD_KEY="$CFG_USER_BUILD_KEY $CFG_ARCH $TARGET_OPERATING_SYSTEM $COMPILER $BUILD_OPTIONS"
+QT_BUILD_KEY="$CFG_USER_BUILD_KEY $QT_BUILD_KEY_SYSTEM_PART $BUILD_OPTIONS"
 if [ -n "$QT_NAMESPACE" ]; then
     QT_BUILD_KEY="$QT_BUILD_KEY $QT_NAMESPACE"
 fi
@@ -7475,9 +7528,20 @@
         QT_BUILD_KEY_COMPAT="$QT_BUILD_KEY_COMPAT $QT_NAMESPACE"
     fi
 fi
+
+# is this compiler compatible with some other "standard" build key
+QT_BUILD_KEY_COMPAT_COMPILER=
+if [ ! -z "$COMPAT_COMPILER" ]; then
+    QT_BUILD_KEY_COMPAT_COMPILER="$CFG_USER_BUILD_KEY $CFG_ARCH $TARGET_OPERATING_SYSTEM $COMPAT_COMPILER $BUILD_OPTIONS"
+    if [ -n "$QT_NAMESPACE" ]; then
+        QT_BUILD_KEY_COMPAT_COMPILER="$QT_BUILD_KEY_COMPAT_COMPILER $QT_NAMESPACE"
+    fi
+fi
+
 # strip out leading/trailing/extra whitespace
 QT_BUILD_KEY=`echo $QT_BUILD_KEY | sed -e "s,  *, ,g" -e "s,^  *,," -e "s,  *$,,"`
 QT_BUILD_KEY_COMPAT=`echo $QT_BUILD_KEY_COMPAT | sed -e "s,  *, ,g" -e "s,^  *,," -e "s,  *$,,"`
+QT_BUILD_KEY_COMPAT_COMPILER=`echo $QT_BUILD_KEY_COMPAT_COMPILER | sed -e "s,  *, ,g" -e "s,^  *,," -e "s,  *$,,"`
 
 #-------------------------------------------------------------------------------
 # part of configuration information goes into qconfig.h
@@ -7526,6 +7590,10 @@
     echo "#define QT_BUILD_KEY_COMPAT \"$QT_BUILD_KEY_COMPAT\"" \
         >> "$outpath/src/corelib/global/qconfig.h.new"
 fi
+if [ -n "$QT_BUILD_KEY_COMPAT_COMPILER" ]; then
+    echo "#define QT_BUILD_KEY_COMPAT2 \"$QT_BUILD_KEY_COMPAT_COMPILER\"" \
+        >> "$outpath/src/corelib/global/qconfig.h.new"
+fi
 echo "" >>"$outpath/src/corelib/global/qconfig.h.new"
 
 echo "#ifdef QT_BOOTSTRAPPED" >>"$outpath/src/corelib/global/qconfig.h.new"
@@ -7717,6 +7785,7 @@
     [ "$CFG_GRAPHICS_SYSTEM" = "raster" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_GRAPHICSSYSTEM_RASTER"
     [ "$CFG_GRAPHICS_SYSTEM" = "opengl" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_GRAPHICSSYSTEM_OPENGL"
     [ "$CFG_GRAPHICS_SYSTEM" = "openvg" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_GRAPHICSSYSTEM_OPENVG"
+    [ "$CFG_GRAPHICS_SYSTEM" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_GRAPHICSSYSTEM_RUNTIME"
 fi
 
 # X11/Unix/Mac only configs
@@ -7830,6 +7899,13 @@
 EOF
 fi
 
+if [ -n "$CFG_RUNTIME_SYSTEM" ]; then
+cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
+#define QT_DEFAULT_RUNTIME_SYSTEM "$CFG_RUNTIME_SYSTEM"
+
+EOF
+fi
+
 # avoid unecessary rebuilds by copying only if qconfig.h has changed
 if cmp -s "$outpath/src/corelib/global/qconfig.h" "$outpath/src/corelib/global/qconfig.h.new"; then
     rm -f "$outpath/src/corelib/global/qconfig.h.new"
@@ -7906,9 +7982,6 @@
 QT_NAMESPACE = $QT_NAMESPACE
 QT_NAMESPACE_MAC_CRC = $QT_NAMESPACE_MAC_CRC
 
-#modules
-for(mod,\$\$list(\$\$files(\$\$[QMAKE_MKSPECS]/modules/qt_*.pri))):include(\$\$mod)
-
 EOF
 if [ "$CFG_RPATH" = "yes" ]; then
     echo "QMAKE_RPATHDIR += \"$QT_INSTALL_LIBS\"" >> "$QTCONFIG.tmp"
@@ -7980,6 +8053,9 @@
 if [ -n "$QT_LFLAGS_ODBC" ]; then
     echo "QT_LFLAGS_ODBC   = $QT_LFLAGS_ODBC" >> "$CACHEFILE.tmp"
 fi
+if [ -n "$QT_LFLAGS_TDS" ]; then
+    echo "QT_LFLAGS_TDS   = $QT_LFLAGS_TDS" >> "$CACHEFILE.tmp"
+fi
 
 if [ "$QT_EDITION" != "QT_EDITION_OPENSOURCE" ]; then
     echo "DEFINES *= QT_EDITION=QT_EDITION_DESKTOP" >> "$CACHEFILE.tmp"
Binary file configure.exe has changed
--- a/demos/books/bookwindow.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/demos/books/bookwindow.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -64,7 +64,7 @@
     model->setEditStrategy(QSqlTableModel::OnManualSubmit);
     model->setTable("books");
 
-    // Remeber the indexes of the columns
+    // Remember the indexes of the columns
     authorIdx = model->fieldIndex("author");
     genreIdx = model->fieldIndex("genre");
 
--- a/demos/browser/browsermainwindow.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/demos/browser/browsermainwindow.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -670,7 +670,7 @@
             " items are automatically removed from the Downloads window," \
             " new cookies are not stored, current cookies can't be accessed," \
             " site icons wont be stored, session wont be saved, " \
-            " and searches are not addded to the pop-up menu in the Google search box." \
+            " and searches are not added to the pop-up menu in the Google search box." \
             "  Until you close the window, you can still click the Back and Forward buttons" \
             " to return to the webpages you have opened.").arg(title);
 
--- a/demos/browser/downloadmanager.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/demos/browser/downloadmanager.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -282,7 +282,7 @@
             remaining = tr("- %4 %5 remaining")
             .arg(timeRemaining)
             .arg(timeRemainingString);
-        info = QString(tr("%1 of %2 (%3/sec) %4"))
+        info = tr("%1 of %2 (%3/sec) %4")
             .arg(dataString(m_bytesReceived))
             .arg(bytesTotal == 0 ? tr("?") : dataString(bytesTotal))
             .arg(dataString((int)speed))
--- a/demos/browser/settings.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/demos/browser/settings.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -89,7 +89,7 @@
 {
     QSettings settings;
     settings.beginGroup(QLatin1String("MainWindow"));
-    QString defaultHome = QLatin1String("http://qt.nokia.com");
+    QString defaultHome = QLatin1String("http://doc.qt.nokia.com");
     homeLineEdit->setText(settings.value(QLatin1String("home"), defaultHome).toString());
     settings.endGroup();
 
--- a/demos/browser/tabwidget.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/demos/browser/tabwidget.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -67,12 +67,12 @@
     connect(this, SIGNAL(customContextMenuRequested(QPoint)),
             this, SLOT(contextMenuRequested(QPoint)));
 
-    QString alt = QLatin1String("Alt+%1");
+    QString ctrl = QLatin1String("Ctrl+%1");
     for (int i = 1; i <= 10; ++i) {
         int key = i;
         if (key == 10)
             key = 0;
-        QShortcut *shortCut = new QShortcut(alt.arg(key), this);
+        QShortcut *shortCut = new QShortcut(ctrl.arg(key), this);
         m_tabShortcuts.append(shortCut);
         connect(shortCut, SIGNAL(activated()), this, SLOT(selectTabAction()));
     }
--- a/demos/browser/webview.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/demos/browser/webview.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -260,7 +260,7 @@
 void WebView::loadFinished()
 {
     if (100 != m_progress) {
-        qWarning() << "Recieved finished signal while progress is still:" << progress()
+        qWarning() << "Received finished signal while progress is still:" << progress()
                    << "Url:" << url();
     }
     m_progress = 0;
--- a/demos/declarative/calculator/Core/calculator.js	Fri Sep 17 08:34:18 2010 +0300
+++ b/demos/declarative/calculator/Core/calculator.js	Mon Oct 04 01:19:32 2010 +0300
@@ -74,6 +74,11 @@
         memory = display.text.valueOf()
     } else if (op == leftArrow) {
         display.text = display.text.toString().slice(0, -1)
+        if (display.text.length == 0) {
+            display.text = "0"
+        }
+    } else if (op == "Off") {
+        Qt.quit();
     } else if (op == "C") {
         display.text = "0"
     } else if (op == "AC") {
@@ -82,10 +87,5 @@
         lastOp = ""
         display.text ="0"
     }
-
-    if (op == rotateLeft)
-        main.state = "orientation " + Orientation.Landscape
-    if (op == rotateRight)
-        main.state = ''
 }
 
--- a/demos/declarative/calculator/calculator.qml	Fri Sep 17 08:34:18 2010 +0300
+++ b/demos/declarative/calculator/calculator.qml	Mon Oct 04 01:19:32 2010 +0300
@@ -58,7 +58,7 @@
     property string plusminus : "\u00b1"
 
     function doOp(operation) { CalcEngine.doOperation(operation) }
-    
+
     Item {
         id: main
         state: "orientation " + runtime.orientation
@@ -70,8 +70,10 @@
 
             anchors { fill: parent; topMargin: 6; bottomMargin: 6; leftMargin: 6; rightMargin: 6 }
 
-            Row {
-                Display { id: display; width: box.width; height: 64 }
+            Display {
+                id: display
+                width: box.width-3
+                height: 64
             }
 
             Column {
@@ -82,11 +84,7 @@
 
                 Row {
                     spacing: 6
-
-                    Button {
-                        id: rotateButton
-                        width: column.w; height: column.h; color: 'purple'; operation: rotateLeft
-                    }
+                    Button { width: column.w; height: column.h; color: 'purple'; operation: "Off" }
                     Button { width: column.w; height: column.h; color: 'purple'; operation: leftArrow }
                     Button { width: column.w; height: column.h; color: 'purple'; operation: "C" }
                     Button { width: column.w; height: column.h; color: 'purple'; operation: "AC" }
@@ -103,7 +101,7 @@
                 }
 
                 Grid {
-                    id: grid; rows: 4; columns: 5; spacing: 6
+                    id: grid; rows: 5; columns: 5; spacing: 6
 
                     property real w: (box.width / columns) - ((spacing * (columns - 1)) / columns)
 
@@ -134,18 +132,18 @@
         states: [
             State {
                 name: "orientation " + Orientation.Landscape
-                PropertyChanges { target: main; rotation: -90; width: window.height; height: window.width }
-                PropertyChanges { target: rotateButton; operation: rotateRight }
+                PropertyChanges { target: main; rotation: 90; width: window.height; height: window.width }
+                PropertyChanges { target: rotateButton; operation: rotateLeft }
             },
             State {
                 name: "orientation " + Orientation.PortraitInverted
-                PropertyChanges { target: main; rotation: -180; }
-                PropertyChanges { target: rotateButton; operation: rotateLeft }
+                PropertyChanges { target: main; rotation: 180; }
+                PropertyChanges { target: rotateButton; operation: rotateRight }
             },
             State {
                 name: "orientation " + Orientation.LandscapeInverted
-                PropertyChanges { target: main; rotation: -270; width: window.height; height: window.width }
-                PropertyChanges { target: rotateButton; operation: rotateRight }
+                PropertyChanges { target: main; rotation: 270; width: window.height; height: window.width }
+                PropertyChanges { target: rotateButton; operation: rotateLeft }
             }
         ]
 
--- a/demos/declarative/flickr/common/Slider.qml	Fri Sep 17 08:34:18 2010 +0300
+++ b/demos/declarative/flickr/common/Slider.qml	Mon Oct 04 01:19:32 2010 +0300
@@ -45,11 +45,24 @@
     id: slider; width: 400; height: 16
 
     // value is read/write.
-    property real value
-    onValueChanged: { handle.x = 2 + (value - minimum) * slider.xMax / (maximum - minimum); }
+    property real value: 1
+    onValueChanged: updatePos();
     property real maximum: 1
     property real minimum: 1
-    property int xMax: slider.width - handle.width - 4
+    property int xMax: width - handle.width - 4
+    onXMaxChanged: updatePos();
+    onMinimumChanged: updatePos();
+
+    function updatePos() {
+        if (maximum > minimum) {
+            var pos = 2 + (value - minimum) * slider.xMax / (maximum - minimum);
+            pos = Math.min(pos, width - handle.width - 2);
+            pos = Math.max(pos, 2);
+            handle.x = pos;
+        } else {
+            handle.x = 2;
+        }
+    }
 
     Rectangle {
         anchors.fill: parent
@@ -62,13 +75,14 @@
 
     Rectangle {
         id: handle; smooth: true
-        x: slider.width / 2 - handle.width / 2; y: 2; width: 30; height: slider.height-4; radius: 6
+        y: 2; width: 30; height: slider.height-4; radius: 6
         gradient: Gradient {
             GradientStop { position: 0.0; color: "lightgray" }
             GradientStop { position: 1.0; color: "gray" }
         }
 
         MouseArea {
+            id: mouse
             anchors.fill: parent; drag.target: parent
             drag.axis: Drag.XAxis; drag.minimumX: 2; drag.maximumX: slider.xMax+2
             onPositionChanged: { value = (maximum - minimum) * (handle.x-2) / slider.xMax + minimum; }
--- a/demos/declarative/flickr/flickr.qml	Fri Sep 17 08:34:18 2010 +0300
+++ b/demos/declarative/flickr/flickr.qml	Mon Oct 04 01:19:32 2010 +0300
@@ -57,21 +57,20 @@
 
         Item {
             id: views
-            x: 2; width: parent.width - 4
+            width: parent.width
             anchors.top: titleBar.bottom; anchors.bottom: toolBar.top
 
-            Mobile.GridDelegate { id: gridDelegate }
             GridView {
-                x: (width/4-79)/2; y: x
-                id: photoGridView; model: rssModel; delegate: gridDelegate; cacheBuffer: 100
-                cellWidth: (parent.width-2)/4; cellHeight: cellWidth; width: parent.width; height: parent.height - 1; z: 6
+                id: photoGridView; model: rssModel; delegate: Mobile.GridDelegate {}
+                cacheBuffer: 100
+                cellWidth: (parent.width-2)/4; cellHeight: cellWidth; width: parent.width; height: parent.height
             }
 
-            Mobile.ListDelegate { id: listDelegate }
             ListView {
-                id: photoListView; model: rssModel; delegate: listDelegate; z: 6
+                id: photoListView; model: rssModel; delegate: Mobile.ListDelegate { }
                 width: parent.width; height: parent.height; x: -(parent.width * 1.5); cacheBuffer: 100;
             }
+
             states: State {
                 name: "ListView"; when: screen.inListView == true
                 PropertyChanges { target: photoListView; x: 0 }
@@ -81,13 +80,16 @@
             transitions: Transition {
                 NumberAnimation { properties: "x"; duration: 500; easing.type: Easing.InOutQuad }
             }
+
+            Mobile.ImageDetails { id: imageDetails; width: parent.width; anchors.left: views.right; height: parent.height }
+
+            Item { id: foreground; anchors.fill: parent }
         }
 
-        Mobile.ImageDetails { id: imageDetails; width: parent.width; anchors.left: views.right; height: parent.height; z:1 }
-        Mobile.TitleBar { id: titleBar; z: 5; width: parent.width; height: 40; opacity: 0.9 }
+        Mobile.TitleBar { id: titleBar; width: parent.width; height: 40; opacity: 0.9 }
 
         Mobile.ToolBar {
-            id: toolBar; z: 5
+            id: toolBar
             height: 40; anchors.bottom: parent.bottom; width: parent.width; opacity: 0.9
             button1Label: "Update"; button2Label: "View mode"
             onButton1Clicked: rssModel.reload()
--- a/demos/declarative/flickr/mobile/GridDelegate.qml	Fri Sep 17 08:34:18 2010 +0300
+++ b/demos/declarative/flickr/mobile/GridDelegate.qml	Mon Oct 04 01:19:32 2010 +0300
@@ -39,75 +39,73 @@
 **
 ****************************************************************************/
 
- import Qt 4.7
+import Qt 4.7
 
- Component {
-     id: photoDelegate
-     Item {
-         id: wrapper; width: 79; height: 79
+Item {
+    id: wrapper; width: GridView.view.cellWidth; height: GridView.view.cellHeight
 
-         function photoClicked() {
-             imageDetails.photoTitle = title;
-             imageDetails.photoTags = tags;
-             imageDetails.photoWidth = photoWidth;
-             imageDetails.photoHeight = photoHeight;
-             imageDetails.photoType = photoType;
-             imageDetails.photoAuthor = photoAuthor;
-             imageDetails.photoDate = photoDate;
-             imageDetails.photoUrl = url;
-             imageDetails.rating = 0;
-             scaleMe.state = "Details";
-         }
+    function photoClicked() {
+        imageDetails.photoTitle = title;
+        imageDetails.photoTags = tags;
+        imageDetails.photoWidth = photoWidth;
+        imageDetails.photoHeight = photoHeight;
+        imageDetails.photoType = photoType;
+        imageDetails.photoAuthor = photoAuthor;
+        imageDetails.photoDate = photoDate;
+        imageDetails.photoUrl = url;
+        imageDetails.rating = 0;
+        scaleMe.state = "Details";
+    }
 
-         Item {
-             anchors.centerIn: parent
-             scale: 0.0
-             Behavior on scale { NumberAnimation { easing.type: Easing.InOutQuad} }
-             id: scaleMe
+    Item {
+        anchors.centerIn: parent
+        scale: 0.0
+        Behavior on scale { NumberAnimation { easing.type: Easing.InOutQuad} }
+        id: scaleMe
 
-             Rectangle { height: 79; width: 79; id: blackRect;  anchors.centerIn: parent; color: "black"; smooth: true }
-             Rectangle {
-                 id: whiteRect; width: 77; height: 77; anchors.centerIn: parent; color: "#dddddd"; smooth: true
-                 Image { id: thumb; source: imagePath; x: 1; y: 1; smooth: true}
-                 Image { source: "images/gloss.png" }
-             }
+        Item {
+            width: 77; height: 77; anchors.centerIn: parent
+            Rectangle {
+                id: whiteRect; width: 77; height: 77; color: "#dddddd"; smooth: true
+                Image { id: thumb; source: imagePath; x: 1; y: 1; smooth: true }
+                Image { source: "images/gloss.png" }
+            }
+        }
 
-             Connections {
-                 target: toolBar
-                 onButton2Clicked: if (scaleMe.state == 'Details' ) scaleMe.state = 'Show'
-             }
+        Connections {
+            target: toolBar
+            onButton2Clicked: if (scaleMe.state == 'Details' ) scaleMe.state = 'Show'
+        }
 
-             states: [
-                 State {
-                     name: "Show"; when: thumb.status == Image.Ready
-                     PropertyChanges { target: scaleMe; scale: 1 }
-                 },
-                 State {
-                     name: "Details"
-                     PropertyChanges { target: scaleMe; scale: 1 }
-                     ParentChange { target: wrapper; parent: imageDetails.frontContainer }
-                     PropertyChanges { target: wrapper; x: 20; y: 60; z: 1000 }
-                     PropertyChanges { target: background; state: "DetailedView" }
-                 }
-             ]
-             transitions: [
-                 Transition {
-                     from: "Show"; to: "Details"
-                     ParentAnimation {
-                         NumberAnimation { properties: "x,y"; duration: 500; easing.type: Easing.InOutQuad }
-                     }
-                 },
-                 Transition {
-                     from: "Details"; to: "Show"
-                     SequentialAnimation {
-                         ParentAnimation {
-                            NumberAnimation { properties: "x,y"; duration: 500; easing.type: Easing.InOutQuad }
-                         }
-                         PropertyAction { targets: wrapper; properties: "z" }
-                     }
-                 }
-             ]
-         }
-         MouseArea { anchors.fill: wrapper; onClicked: { photoClicked() } }
-     }
- }
+        states: [
+            State {
+                name: "Show"; when: thumb.status == Image.Ready
+                PropertyChanges { target: scaleMe; scale: 1 }
+            },
+            State {
+                name: "Details"
+                PropertyChanges { target: scaleMe; scale: 1 }
+                ParentChange { target: whiteRect; x: 10; y: 20; parent: imageDetails.frontContainer }
+                PropertyChanges { target: background; state: "DetailedView" }
+            }
+        ]
+        transitions: [
+            Transition {
+                from: "Show"; to: "Details"
+                ParentAnimation {
+                    via: foreground
+                    NumberAnimation { properties: "x,y"; duration: 500; easing.type: Easing.InOutQuad }
+                }
+            },
+            Transition {
+                from: "Details"; to: "Show"
+                ParentAnimation {
+                    via: foreground
+                    NumberAnimation { properties: "x,y"; duration: 500; easing.type: Easing.InOutQuad }
+                }
+            }
+        ]
+    }
+    MouseArea { anchors.fill: wrapper; onClicked: photoClicked() }
+}
+
--- a/demos/declarative/flickr/mobile/ImageDetails.qml	Fri Sep 17 08:34:18 2010 +0300
+++ b/demos/declarative/flickr/mobile/ImageDetails.qml	Mon Oct 04 01:19:32 2010 +0300
@@ -45,7 +45,7 @@
 Flipable {
     id: container
 
-    property variant frontContainer: containerFront
+    property alias frontContainer: containerFront
     property string photoTitle: ""
     property string photoTags: ""
     property int photoWidth
@@ -76,17 +76,17 @@
         Column {
             spacing: 10
             anchors {
-                left: parent.left; leftMargin: 20
-                right: parent.right; rightMargin: 20
-                top: parent.top; topMargin: 180
+                left: parent.left; leftMargin: 10
+                right: parent.right; rightMargin: 10
+                top: parent.top; topMargin: 120
             }
-            Text { font.bold: true; color: "white"; elide: Text.ElideRight; text: container.photoTitle }
-            Text { color: "white"; elide: Text.ElideRight; text: "<b>Size:</b> " + container.photoWidth + 'x' + container.photoHeight }
-            Text { color: "white"; elide: Text.ElideRight; text: "<b>Type:</b> " + container.photoType }
-            Text { color: "white"; elide: Text.ElideRight; text: "<b>Author:</b> " + container.photoAuthor }
-            Text { color: "white"; elide: Text.ElideRight; text: "<b>Published:</b> " + container.photoDate }
-            Text { color: "white"; elide: Text.ElideRight; text: container.photoTags == "" ? "" : "<b>Tags:</b> " }
-            Text { color: "white"; elide: Text.ElideRight; text: container.photoTags }
+            Text { font.bold: true; color: "white"; elide: Text.ElideRight; text: container.photoTitle; width: parent.width }
+            Text { color: "white"; elide: Text.ElideRight; text: "Size: " + container.photoWidth + 'x' + container.photoHeight; width: parent.width }
+            Text { color: "white"; elide: Text.ElideRight; text: "Type: " + container.photoType; width: parent.width }
+            Text { color: "white"; elide: Text.ElideRight; text: "Author: " + container.photoAuthor; width: parent.width }
+            Text { color: "white"; elide: Text.ElideRight; text: "Published: " + container.photoDate; width: parent.width }
+            Text { color: "white"; elide: Text.ElideRight; text: container.photoTags == "" ? "" : "Tags: "; width: parent.width }
+            Text { color: "white"; elide: Text.ElideRight; text: container.photoTags; width: parent.width }
         }
     }
 
@@ -104,6 +104,24 @@
             id: flickable; anchors.fill: parent; clip: true
             contentWidth: imageContainer.width; contentHeight: imageContainer.height
 
+            function updateMinimumScale() {
+                if (bigImage.status == Image.Ready && bigImage.width != 0) {
+                    slider.minimum = Math.min(flickable.width / bigImage.width, flickable.height / bigImage.height);
+                    if (bigImage.width * slider.value > flickable.width) {
+                        var xoff = (flickable.width/2 + flickable.contentX) * slider.value / prevScale;
+                        flickable.contentX = xoff - flickable.width/2;
+                    }
+                    if (bigImage.height * slider.value > flickable.height) {
+                        var yoff = (flickable.height/2 + flickable.contentY) * slider.value / prevScale;
+                        flickable.contentY = yoff - flickable.height/2;
+                    }
+                    prevScale = slider.value;
+                }
+            }
+
+            onWidthChanged: updateMinimumScale()
+            onHeightChanged: updateMinimumScale()
+
             Item {
                 id: imageContainer
                 width: Math.max(bigImage.width * bigImage.scale, flickable.width);
@@ -114,8 +132,8 @@
                     anchors.centerIn: parent; smooth: !flickable.movingVertically
                     onStatusChanged : {
                         // Default scale shows the entire image.
-                        if (status == Image.Ready && width != 0) {
-                            slider.minimum = Math.min(flickable.width / width, flickable.height / height);
+                        if (bigImage.status == Image.Ready && bigImage.width != 0) {
+                            slider.minimum = Math.min(flickable.width / bigImage.width, flickable.height / bigImage.height);
                             prevScale = Math.min(slider.minimum, 1);
                             slider.value = prevScale;
                         }
Binary file demos/declarative/minehunt/MinehuntCore/pics/No-Ones-Laughing-3.jpg has changed
Binary file demos/declarative/minehunt/MinehuntCore/pics/background.png has changed
Binary file demos/declarative/minehunt/MinehuntCore/pics/quit.png has changed
--- a/demos/declarative/minehunt/MinehuntCore/qmldir	Fri Sep 17 08:34:18 2010 +0300
+++ b/demos/declarative/minehunt/MinehuntCore/qmldir	Mon Oct 04 01:19:32 2010 +0300
@@ -1,3 +1,2 @@
-plugin qmlminehuntplugin
 Explosion 1.0 Explosion.qml
 Tile 1.0 Tile.qml
--- a/demos/declarative/minehunt/README	Fri Sep 17 08:34:18 2010 +0300
+++ b/demos/declarative/minehunt/README	Mon Oct 04 01:19:32 2010 +0300
@@ -1,3 +1,6 @@
-To compile the C++ part, do 'qmake && make'. Minehunt will not run properly if the C++ plugin is not compiled.
+Minehunt has to be compiled to run.
 
-To run, simply load the minehunt.qml file with the qml runtime.
+To compile the C++ part, do 'qmake && make'.
+To run, simply run the executable.
+To deploy on a device, do 'make sis'.
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/demos/declarative/minehunt/main.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,71 @@
+/****************************************************************************
+**
+** 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 demonstration applications 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 <QtGui/QApplication>
+#include <QtDeclarative/QDeclarativeView>
+#include <QtDeclarative/QDeclarativeContext>
+#include <QtDeclarative/QDeclarativeEngine>
+
+#include "minehunt.h"
+
+int main(int argc, char *argv[])
+{
+    QApplication app(argc, argv);
+    QDeclarativeView canvas;
+    
+    qmlRegisterType<TileData>();
+    MinehuntGame* game = new MinehuntGame();
+    
+#ifdef Q_OS_SYMBIAN
+    canvas.setResizeMode(QDeclarativeView::SizeRootObjectToView);
+#endif
+    canvas.engine()->rootContext()->setContextObject(game);        
+    canvas.setSource(QString("minehunt.qml"));
+    QObject::connect(canvas.engine(), SIGNAL(quit()), &app, SLOT(quit()));
+    
+#ifdef Q_OS_SYMBIAN
+    canvas.showFullScreen();
+#else
+    canvas.setGeometry(QRect(100, 100, 450, 450));
+    canvas.show();
+#endif
+    return app.exec();
+}
--- a/demos/declarative/minehunt/minehunt.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/demos/declarative/minehunt/minehunt.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -40,99 +40,10 @@
 ****************************************************************************/
 
 #include <stdlib.h>
-#include <qdeclarativeextensionplugin.h>
-#include <qdeclarativecontext.h>
-#include <qdeclarativeengine.h>
-#include <qdeclarative.h>
-
 #include <QTime>
 #include <QTimer>
 
-class TileData : public QObject
-{
-    Q_OBJECT
-public:
-    TileData() : _hasFlag(false), _hasMine(false), _hint(-1), _flipped(false) {}
-
-    Q_PROPERTY(bool hasFlag READ hasFlag WRITE setHasFlag NOTIFY hasFlagChanged)
-    bool hasFlag() const { return _hasFlag; }
-
-    Q_PROPERTY(bool hasMine READ hasMine NOTIFY hasMineChanged)
-    bool hasMine() const { return _hasMine; }
-
-    Q_PROPERTY(int hint READ hint NOTIFY hintChanged)
-    int hint() const { return _hint; }
-
-    Q_PROPERTY(bool flipped READ flipped NOTIFY flippedChanged())
-    bool flipped() const { return _flipped; }
-
-    void setHasFlag(bool flag) {if(flag==_hasFlag) return; _hasFlag = flag; emit hasFlagChanged();}
-    void setHasMine(bool mine) {if(mine==_hasMine) return; _hasMine = mine; emit hasMineChanged();}
-    void setHint(int hint) { if(hint == _hint) return; _hint = hint; emit hintChanged(); }
-    void flip() { if (_flipped) return; _flipped = true; emit flippedChanged(); }
-    void unflip() { if(!_flipped) return; _flipped = false; emit flippedChanged(); }
-
-signals:
-    void flippedChanged();
-    void hasFlagChanged();
-    void hintChanged();
-    void hasMineChanged();
-
-private:
-    bool _hasFlag;
-    bool _hasMine;
-    int _hint;
-    bool _flipped;
-};
-
-class MinehuntGame : public QObject
-{
-    Q_OBJECT
-public:
-    MinehuntGame();
-
-    Q_PROPERTY(QDeclarativeListProperty<TileData> tiles READ tiles CONSTANT)
-    QDeclarativeListProperty<TileData> tiles();
-
-    Q_PROPERTY(bool isPlaying READ isPlaying NOTIFY isPlayingChanged)
-    bool isPlaying() {return playing;}
-
-    Q_PROPERTY(bool hasWon READ hasWon NOTIFY hasWonChanged)
-    bool hasWon() {return won;}
-
-    Q_PROPERTY(int numMines READ numMines NOTIFY numMinesChanged)
-    int numMines() const{return nMines;}
-
-    Q_PROPERTY(int numFlags READ numFlags NOTIFY numFlagsChanged)
-    int numFlags() const{return nFlags;}
-
-public slots:
-    Q_INVOKABLE bool flip(int row, int col);
-    Q_INVOKABLE bool flag(int row, int col);
-    void setBoard();
-    void reset();
-
-signals:
-    void isPlayingChanged();
-    void hasWonChanged();
-    void numMinesChanged();
-    void numFlagsChanged();
-
-private:
-    bool onBoard( int r, int c ) const { return r >= 0 && r < numRows && c >= 0 && c < numCols; }
-    TileData *tile( int row, int col ) { return onBoard(row, col) ? _tiles[col+numRows*row] : 0; }
-    int getHint(int row, int col);
-    void setPlaying(bool b){if(b==playing) return; playing=b; emit isPlayingChanged();}
-
-    QList<TileData *> _tiles;
-    int numCols;
-    int numRows;
-    bool playing;
-    bool won;
-    int remaining;
-    int nMines;
-    int nFlags;
-};
+#include "minehunt.h"
 
 void tilesPropAppend(QDeclarativeListProperty<TileData>* prop, TileData* value)
 {
@@ -306,29 +217,3 @@
     emit numFlagsChanged();
     return true;
 }
-
-class MinehuntExtensionPlugin : public QDeclarativeExtensionPlugin
-{
-    Q_OBJECT
-
-    public:
-    void registerTypes(const char *uri) {
-        Q_UNUSED(uri);
-        qmlRegisterType<TileData>();
-    }
-
-    void initializeEngine(QDeclarativeEngine *engine, const char *uri) {
-        Q_UNUSED(uri);
-
-        srand(QTime(0,0,0).secsTo(QTime::currentTime()));
-
-        MinehuntGame* game = new MinehuntGame();
-
-        engine->rootContext()->setContextObject(game);
-    }
-};
-
-#include "minehunt.moc"
-
-Q_EXPORT_PLUGIN(MinehuntExtensionPlugin);
-
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/demos/declarative/minehunt/minehunt.h	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,129 @@
+/****************************************************************************
+**
+** 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 demonstration applications 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 <qdeclarative.h>
+
+class TileData : public QObject
+{
+    Q_OBJECT
+public:
+    TileData() : _hasFlag(false), _hasMine(false), _hint(-1), _flipped(false) {}
+
+    Q_PROPERTY(bool hasFlag READ hasFlag WRITE setHasFlag NOTIFY hasFlagChanged)
+    bool hasFlag() const { return _hasFlag; }
+
+    Q_PROPERTY(bool hasMine READ hasMine NOTIFY hasMineChanged)
+    bool hasMine() const { return _hasMine; }
+
+    Q_PROPERTY(int hint READ hint NOTIFY hintChanged)
+    int hint() const { return _hint; }
+
+    Q_PROPERTY(bool flipped READ flipped NOTIFY flippedChanged())
+    bool flipped() const { return _flipped; }
+
+    void setHasFlag(bool flag) {if(flag==_hasFlag) return; _hasFlag = flag; emit hasFlagChanged();}
+    void setHasMine(bool mine) {if(mine==_hasMine) return; _hasMine = mine; emit hasMineChanged();}
+    void setHint(int hint) { if(hint == _hint) return; _hint = hint; emit hintChanged(); }
+    void flip() { if (_flipped) return; _flipped = true; emit flippedChanged(); }
+    void unflip() { if(!_flipped) return; _flipped = false; emit flippedChanged(); }
+
+signals:
+    void flippedChanged();
+    void hasFlagChanged();
+    void hintChanged();
+    void hasMineChanged();
+
+private:
+    bool _hasFlag;
+    bool _hasMine;
+    int _hint;
+    bool _flipped;
+};
+
+class MinehuntGame : public QObject
+{
+    Q_OBJECT
+public:
+    MinehuntGame();
+
+    Q_PROPERTY(QDeclarativeListProperty<TileData> tiles READ tiles CONSTANT)
+    QDeclarativeListProperty<TileData> tiles();
+
+    Q_PROPERTY(bool isPlaying READ isPlaying NOTIFY isPlayingChanged)
+    bool isPlaying() {return playing;}
+
+    Q_PROPERTY(bool hasWon READ hasWon NOTIFY hasWonChanged)
+    bool hasWon() {return won;}
+
+    Q_PROPERTY(int numMines READ numMines NOTIFY numMinesChanged)
+    int numMines() const{return nMines;}
+
+    Q_PROPERTY(int numFlags READ numFlags NOTIFY numFlagsChanged)
+    int numFlags() const{return nFlags;}
+
+public slots:
+    Q_INVOKABLE bool flip(int row, int col);
+    Q_INVOKABLE bool flag(int row, int col);
+    void setBoard();
+    void reset();
+
+signals:
+    void isPlayingChanged();
+    void hasWonChanged();
+    void numMinesChanged();
+    void numFlagsChanged();
+
+private:
+    bool onBoard( int r, int c ) const { return r >= 0 && r < numRows && c >= 0 && c < numCols; }
+    TileData *tile( int row, int col ) { return onBoard(row, col) ? _tiles[col+numRows*row] : 0; }
+    int getHint(int row, int col);
+    void setPlaying(bool b){if(b==playing) return; playing=b; emit isPlayingChanged();}
+
+    QList<TileData *> _tiles;
+    int numCols;
+    int numRows;
+    bool playing;
+    bool won;
+    int remaining;
+    int nMines;
+    int nFlags;
+};
--- a/demos/declarative/minehunt/minehunt.pro	Fri Sep 17 08:34:18 2010 +0300
+++ b/demos/declarative/minehunt/minehunt.pro	Mon Oct 04 01:19:32 2010 +0300
@@ -1,38 +1,23 @@
-TEMPLATE = lib
-TARGET  = qmlminehuntplugin
+TEMPLATE = app
+TARGET  = minehunt
 QT += declarative
 CONFIG += qt plugin
 
-TARGET = $$qtLibraryTarget($$TARGET)
-DESTDIR = MinehuntCore
-
 # Input
-SOURCES += minehunt.cpp
-
-sources.files = minehunt.qml minehunt.pro
-sources.path = $$[QT_INSTALL_DEMOS]/declarative/minehunt
+HEADERS += minehunt.h
+SOURCES += main.cpp minehunt.cpp
 
-target.path = $$[QT_INSTALL_DEMOS]/declarative/minehunt/MinehuntCore
+sources.files = minehunt.qml minehunt.pro MinehuntCore
+sources.path = $$[QT_INSTALL_DEMOS]/declarative/minehunt
+target.path = $$[QT_INSTALL_DEMOS]/declarative/minehunt
 
-MinehuntCore_sources.files = \
-    MinehuntCore/Explosion.qml \
-    MinehuntCore/Tile.qml \
-    MinehuntCore/pics \
-    MinehuntCore/qmldir
-MinehuntCore_sources.path = $$[QT_INSTALL_DEMOS]/declarative/minehunt/MinehuntCore
-
-INSTALLS = sources MinehuntCore_sources target
+INSTALLS = sources target
 
 symbian:{
     TARGET.EPOCALLOWDLLDATA = 1
+    TARGET.EPOCHEAPSIZE = 0x20000 0x2000000
     include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri)
-    TARGET.CAPABILITY = NetworkServices ReadUserData
-    importFiles.sources = MinehuntCore/qmlminehuntplugin.dll \
-    MinehuntCore/Explosion.qml \
-    MinehuntCore/pics \
-    MinehuntCore/qmldir
-    importFiles.path = MinehuntCore
-    DEPLOYMENT = importFiles
+    qmlminehuntfiles.sources = MinehuntCore minehunt.qml
+    DEPLOYMENT = qmlminehuntfiles
 }
- 
-INSTALLS = sources MinehuntCore_sources target
+ 
\ No newline at end of file
--- a/demos/declarative/minehunt/minehunt.qml	Fri Sep 17 08:34:18 2010 +0300
+++ b/demos/declarative/minehunt/minehunt.qml	Mon Oct 04 01:19:32 2010 +0300
@@ -49,7 +49,7 @@
 
     width: 450; height: 450
 
-    Image { source: "MinehuntCore/pics/No-Ones-Laughing-3.jpg"; anchors.fill: parent; fillMode: Image.Tile }
+    Image { source: "MinehuntCore/pics/background.png"; anchors.fill: parent; fillMode: Image.Tile }
 
     Grid {
         anchors.horizontalCenter: parent.horizontalCenter
@@ -67,6 +67,18 @@
         x: 20; spacing: 20
         anchors.bottom: field.bottom; anchors.bottomMargin: 15
 
+        Image {
+            source: "MinehuntCore/pics/quit.png"
+            scale: quitMouse.pressed ? 0.8 : 1.0
+            smooth: quitMouse.pressed
+            y: 10
+            MouseArea {
+                id: quitMouse
+                anchors.fill: parent
+                anchors.margins: -20
+                onClicked: Qt.quit()
+            }
+        }
         Column {
             spacing: 2
             Image { source: "MinehuntCore/pics/bomb-color.png" }
--- a/demos/declarative/photoviewer/PhotoViewerCore/Button.qml	Fri Sep 17 08:34:18 2010 +0300
+++ b/demos/declarative/photoviewer/PhotoViewerCore/Button.qml	Mon Oct 04 01:19:32 2010 +0300
@@ -45,7 +45,7 @@
     id: container
 
     property alias label: labelText.text
-    property string tint: ""
+    property color tint: "transparent"
     signal clicked
 
     width: labelText.width + 70 ; height: labelText.height + 18
--- a/demos/declarative/photoviewer/photoviewer.qml	Fri Sep 17 08:34:18 2010 +0300
+++ b/demos/declarative/photoviewer/photoviewer.qml	Mon Oct 04 01:19:32 2010 +0300
@@ -81,6 +81,11 @@
             onClicked: mainWindow.editMode = !mainWindow.editMode
             anchors.horizontalCenter: parent.horizontalCenter
         }
+        Button {
+            id: quitButton; label: qsTr("Quit"); rotation: -2;
+            onClicked: Qt.quit()
+            anchors.horizontalCenter: parent.horizontalCenter
+        }
     }
 
     Rectangle {
--- a/demos/declarative/rssnews/rssnews.qml	Fri Sep 17 08:34:18 2010 +0300
+++ b/demos/declarative/rssnews/rssnews.qml	Mon Oct 04 01:19:32 2010 +0300
@@ -71,6 +71,7 @@
                 id: categories
                 anchors.fill: parent
                 model: rssFeeds
+                footer: quitButtonDelegate
                 delegate: CategoryDelegate {}
                 highlight: Rectangle { color: "steelblue" }
                 highlightMoveSpeed: 9999999
@@ -87,7 +88,24 @@
             delegate: NewsDelegate {}
         }
     }
-
+    Component {
+        id: quitButtonDelegate
+        Item {
+            width: categories.width; height: 60
+            Text {
+                text: "Quit"
+                font { family: "Helvetica"; pixelSize: 16; bold: true }
+                anchors {
+                    left: parent.left; leftMargin: 15
+                    verticalCenter: parent.verticalCenter
+                }
+            }
+            MouseArea {
+                anchors.fill: parent
+                onClicked: Qt.quit()
+            }
+        }
+    }
     ScrollBar { scrollArea: list; height: list.height; width: 8; anchors.right: window.right }
     Rectangle { x: 220; height: window.height; width: 1; color: "#cccccc" }
 }
--- a/demos/declarative/samegame/SamegameCore/samegame.js	Fri Sep 17 08:34:18 2010 +0300
+++ b/demos/declarative/samegame/SamegameCore/samegame.js	Mon Oct 04 01:19:32 2010 +0300
@@ -151,7 +151,8 @@
         gameDuration = new Date() - gameDuration;
         nameInputDialog.show("You won! Please enter your name:                 ");
         nameInputDialog.initialWidth = nameInputDialog.text.width + 20;
-        nameInputDialog.width = nameInputDialog.initialWidth;
+        if(nameInputDialog.name == "")
+            nameInputDialog.width = nameInputDialog.initialWidth;
         nameInputDialog.text.opacity = 0;//Just a spacer
     }
 }
--- a/demos/declarative/samegame/samegame.qml	Fri Sep 17 08:34:18 2010 +0300
+++ b/demos/declarative/samegame/samegame.qml	Mon Oct 04 01:19:32 2010 +0300
@@ -82,6 +82,7 @@
         id: nameInputDialog
 
         property int initialWidth: 0
+        property alias name: nameInputText.text
 
         anchors.centerIn: parent
         z: 22;
--- a/demos/declarative/snake/content/Cookie.qml	Fri Sep 17 08:34:18 2010 +0300
+++ b/demos/declarative/snake/content/Cookie.qml	Mon Oct 04 01:19:32 2010 +0300
@@ -59,7 +59,6 @@
         anchors.fill: parent
         source: "pics/cookie.png"
         opacity: 0
-        Behavior on opacity { NumberAnimation { duration: 100 } }
         Text {
             font.bold: true
             anchors.verticalCenter: parent.verticalCenter
@@ -87,4 +86,9 @@
             PropertyChanges { target: img; opacity: 0 }
         }
     ]
+    transitions: [
+        Transition {
+            NumberAnimation { target: img; property: "opacity"; duration: 100 }
+        }
+    ]
 }
--- a/demos/declarative/snake/content/Link.qml	Fri Sep 17 08:34:18 2010 +0300
+++ b/demos/declarative/snake/content/Link.qml	Mon Oct 04 01:19:32 2010 +0300
@@ -73,14 +73,12 @@
                 }
             }
 
-                    /*
             transform: Rotation {
                 id: actualImageRotation
                 origin.x: width/2; origin.y: height/2;
                 angle: rotation * 90
                 Behavior on angle { NumberAnimation { duration: spawned ? 200 : 0} }
             }
-            */
         }
 
         Image {
@@ -88,7 +86,6 @@
         }
 
         opacity: 0
-        Behavior on opacity { NumberAnimation { duration: 200 } }
     }
 
 
@@ -116,4 +113,11 @@
             PropertyChanges { target: img; opacity: 0 }
         }
     ]
+
+    transitions: [
+        Transition {
+            NumberAnimation { target: img; property: "opacity"; duration: 200 }
+        }
+    ]
+
 }
--- a/demos/declarative/snake/content/snake.js	Fri Sep 17 08:34:18 2010 +0300
+++ b/demos/declarative/snake/content/snake.js	Mon Oct 04 01:19:32 2010 +0300
@@ -35,9 +35,12 @@
     if (heartbeat.running) {
         endGame();
         startNewGameTimer.running = true;
+        state = "";
         return;
     }
 
+    state = "starting";
+
     numRows = numRowsAvailable;
     numColumns = numColumnsAvailable;
     board = new Array(numRows * numColumns);
@@ -80,7 +83,6 @@
     waitForCookie = 5;
     score = 0;
     startHeartbeatTimer.running = true;
-    heartbeat.running = true;
 }
 
 function endGame()
@@ -94,6 +96,7 @@
     }
     lastScore = score;
     highScores.saveScore(lastScore);
+    state = "";
 }
 
 function move() {
--- a/demos/declarative/snake/snake.qml	Fri Sep 17 08:34:18 2010 +0300
+++ b/demos/declarative/snake/snake.qml	Mon Oct 04 01:19:32 2010 +0300
@@ -94,6 +94,7 @@
     Timer {
         id: startHeartbeatTimer;
         interval: 1000 ;
+        onTriggered: { state = "running"; heartbeat.running = true; }
     }
 
 
@@ -105,7 +106,6 @@
             anchors.fill: parent
             anchors.horizontalCenter: parent.horizontalCenter
             anchors.verticalCenter: parent.verticalCenter
-            Behavior on opacity { NumberAnimation { duration: 500 } }
 
             Text {
                 color: "white"
@@ -193,6 +193,12 @@
             anchors.verticalCenter: parent.verticalCenter
         }
 
+        Content.Button {
+            text: "Quit"
+            anchors { left: btnA.right; leftMargin: 3; verticalCenter: parent.verticalCenter }
+            onClicked: Qt.quit();
+        }
+
         Text {
             color: activePalette.text
             text: "Score: " + score; font.bold: true
@@ -211,14 +217,12 @@
     states: [
         State {
             name: "starting"
-            when: startHeartbeatTimer.running
             PropertyChanges {target: progressIndicator; width: 200}
             PropertyChanges {target: title; opacity: 0}
             PropertyChanges {target: progressBar; opacity: 1}
         },
         State {
             name: "running"
-            when: (heartbeat.running && !startHeartbeatTimer.running)
             PropertyChanges {target: progressIndicator; width: 200}
             PropertyChanges {target: title; opacity: 0}
             PropertyChanges {target: skull; row: 0; column: 0; }
@@ -231,7 +235,10 @@
             from: "*"
             to: "starting"
             NumberAnimation { target: progressIndicator; property: "width"; duration: 1000 }
-
+            NumberAnimation { target: title; property: "opacity"; duration: 500 }
+        },
+        Transition {
+            NumberAnimation { target: title; property: "opacity"; duration: 500 }
         }
     ]
 
--- a/demos/declarative/twitter/TwitterCore/AuthView.qml	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,146 +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 QtDeclarative 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$
-**
-****************************************************************************/
-
-import Qt 4.7
-
-Item {
-    id: wrapper
-    Column {
-        anchors.centerIn: parent
-        spacing: 20
-        Column{
-            spacing: 4
-            Text {
-                text: "Screen name:"
-                font.pixelSize: 16; font.bold: true; color: "white"; style: Text.Raised; styleColor: "black"
-                horizontalAlignment: Qt.AlignRight
-            }
-            Item {
-                width: 220
-                height: 28
-                BorderImage { source: "images/lineedit.sci"; anchors.fill: parent }
-                TextInput{
-                    id: nameIn
-                    width: parent.width - 8
-                    anchors.centerIn: parent
-                    maximumLength:21
-                    font.pixelSize: 16;
-                    font.bold: true
-                    color: "#151515"; selectionColor: "green"
-                    KeyNavigation.tab: passIn
-                    KeyNavigation.backtab: guest
-                    focus: true
-                }
-            }
-        }
-        Column{
-            spacing: 4
-            Text {
-                text: "Password:"
-                font.pixelSize: 16; font.bold: true; color: "white"; style: Text.Raised; styleColor: "black"
-                horizontalAlignment: Qt.AlignRight
-            }
-            Item {
-                width: 220
-               height: 28
-                BorderImage { source: "images/lineedit.sci"; anchors.fill: parent }
-                TextInput{
-                    id: passIn
-                    width: parent.width - 8
-                    anchors.centerIn: parent
-                    maximumLength:21
-                    echoMode: TextInput.Password
-                    font.pixelSize: 16;
-                    font.bold: true
-                    color: "#151515"; selectionColor: "green"
-                    KeyNavigation.tab: login
-                    KeyNavigation.backtab: nameIn
-                    onAccepted: login.doLogin();
-                }
-            }
-        }
-        Row{
-            spacing: 10
-            Button {
-                width: 100
-                height: 32
-                id: login
-                keyUsing: true;
-                function doLogin(){
-                    rssModel.authName=nameIn.text;
-                    rssModel.authPass=passIn.text;
-                    rssModel.tags='my timeline';
-                    screen.focus = true;
-                }
-                text: "Log in"
-                KeyNavigation.right: guest
-                KeyNavigation.tab: guest
-                KeyNavigation.backtab: passIn
-                Keys.onReturnPressed: login.doLogin();
-                Keys.onEnterPressed: login.doLogin();
-                Keys.onSelectPressed: login.doLogin();
-                Keys.onSpacePressed: login.doLogin();
-                onClicked: login.doLogin();
-            }
-            Button {
-                width: 100
-                height: 32
-                id: guest
-                keyUsing: true;
-                function doGuest()
-                {
-                    rssModel.authName='-';
-                    screen.focus = true;
-                    screen.setMode(true);
-                }
-                text: "Guest"
-                KeyNavigation.left: login
-                KeyNavigation.tab: nameIn
-                KeyNavigation.backtab: login
-                Keys.onReturnPressed: guest.doGuest();
-                Keys.onEnterPressed: guest.doGuest();
-                Keys.onSelectPressed: guest.doGuest();
-                Keys.onSpacePressed: guest.doGuest();
-                onClicked: guest.doGuest();
-            }
-        }
-    }
-}
--- a/demos/declarative/twitter/TwitterCore/Button.qml	Fri Sep 17 08:34:18 2010 +0300
+++ b/demos/declarative/twitter/TwitterCore/Button.qml	Mon Oct 04 01:19:32 2010 +0300
@@ -67,7 +67,7 @@
     }
     Text {
         id: btnText
-        color: if(container.keyUsing){"#DDDDDD";} else {"#FFFFFF";}
+        color: if(container.keyUsing){"#D0D0D0";} else {"#FFFFFF";}
         anchors.centerIn: buttonImage; font.bold: true
         text: container.text; style: Text.Raised; styleColor: "black"
         font.pixelSize: 12
--- a/demos/declarative/twitter/TwitterCore/FatDelegate.qml	Fri Sep 17 08:34:18 2010 +0300
+++ b/demos/declarative/twitter/TwitterCore/FatDelegate.qml	Mon Oct 04 01:19:32 2010 +0300
@@ -44,11 +44,10 @@
 Component {
     id: listDelegate
     Item {
-        id: wrapper; width: wrapper.ListView.view.width; height: if(txt.height > 58){txt.height+8}else{58}//50+4+4
+        id: wrapper; width: wrapper.ListView.view.width; height: if(txt.height > 60){txt.height+10}else{60} //50+5+5
         function handleLink(link){
             if(link.slice(0,3) == 'app'){
                 screen.setUser(link.slice(7));
-                screen.setMode(true);
             }else if(link.slice(0,4) == 'http'){
                 Qt.openUrlExternally(link);
             }
@@ -58,26 +57,47 @@
             var ret2 = ret.replace(/http:\/\/[^ \n\t]+/g, '<a href="$&">$&</a>');//surrounds http links with html link tags
             return ret2;
         }
+
+        // Strip away paranthesis
+        function userName(str) {
+            var user = str.replace(/\([\S|\s]*\)/gi, "");
+            return user.trim();
+        }
+
         Item {
             id: moveMe; height: parent.height
             Rectangle {
                 id: blackRect
                 color: "black"; opacity: wrapper.ListView.index % 2 ? 0.2 : 0.3; height: wrapper.height-2; width: wrapper.width; y: 1
             }
-            Rectangle {
-                id: whiteRect; x: 6; width: 50; height: 50; color: "white"; smooth: true
+            Item {
+                id: image; x: 6; width: 48; height: 48; smooth: true
                 anchors.verticalCenter: parent.verticalCenter
 
                 Loading { x: 1; y: 1; width: 48; height: 48; visible: realImage.status != Image.Ready }
-                Image { id: realImage; source: userImage; x: 1; y: 1; width:48; height:48 }
+                Image {
+                    id: realImage;
+                    source: userImage; x: 1; y: 1;
+                    width:48; height:48; opacity:0 ;
+                    onStatusChanged: {
+                        if(status==Image.Ready)
+                            image.state="loaded"
+                    }
+                }
+                states: State {
+                    name: "loaded";
+                    PropertyChanges { target: realImage ; opacity:1 }
+                }
+                transitions: Transition { NumberAnimation { target: realImage; property: "opacity"; duration: 200 } }
+
             }
             Text { id:txt; y:4; x: 56
                 text: '<html><style type="text/css">a:link {color:"#aaccaa"}; a:visited {color:"#336633"}</style>'
-                    + '<a href="app://@'+userScreenName+'"><b>'+userScreenName + "</b></a>  from " +source
-                    + "<br /><b>" + wrapper.addTags(statusText) + "</b></html>";
+                    + '<a href="app://@'+userName(name)+'"><b>'+userName(name) + "</b></a> from " +source
+                    + "<br /><b>" + statusText + "</b></html>";
                 textFormat: Qt.RichText
                 color: "#cccccc"; style: Text.Raised; styleColor: "black"; wrapMode: Text.WordWrap
-                anchors.left: whiteRect.right; anchors.right: blackRect.right; anchors.leftMargin: 6; anchors.rightMargin: 6
+                anchors.left: image.right; anchors.right: blackRect.right; anchors.leftMargin: 6; anchors.rightMargin: 6
                 onLinkActivated: wrapper.handleLink(link)
             }
         }
--- a/demos/declarative/twitter/TwitterCore/HomeTitleBar.qml	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,161 +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 QtDeclarative 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$
-**
-****************************************************************************/
-
-import Qt 4.7
-
-Item {
-    id: titleBar
-
-    signal update()
-    onYChanged: state="" //When switching titlebars
-
-    BorderImage { source: "images/titlebar.sci"; width: parent.width; height: parent.height + 14; y: -7 }
-    Item {
-        id: container
-        width: (parent.width * 2) - 55 ; height: parent.height
-
-        function accept() {
-            if(rssModel.authName == '' || rssModel.authPass == '')
-                return false;//Can't login like that
-
-            var postData = "status=" + editor.text;
-            var postman = new XMLHttpRequest();
-            postman.open("POST", "http://twitter.com/statuses/update.xml", true, rssModel.authName,  rssModel.authPass);
-            postman.onreadystatechange = function() {
-                if (postman.readyState == postman.DONE) {
-                    titleBar.update();
-                }
-            }
-            postman.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
-            postman.send(postData);
-
-            editor.text = ""
-            titleBar.state = ""
-        }
-
-        Rectangle {
-            x: 6; width: 50; height: 50; color: "white"; smooth: true
-            anchors.verticalCenter: parent.verticalCenter
-
-            UserModel { user: rssModel.authName; id: userModel }
-            Component { id: imgDelegate;
-                Item {
-                    Loading { width:48; height:48; visible: realImage.status != Image.Ready }
-                    Image { source: image; width:48; height:48; id: realImage }
-                }
-            }
-            ListView { model: userModel.model; x:1; y:1; delegate: imgDelegate }
-        }
-
-        Text {
-            id: categoryText
-            anchors.left: parent.left; anchors.right: tagButton.left
-            anchors.leftMargin: 58; anchors.rightMargin: 10
-            anchors.verticalCenter: parent.verticalCenter
-            elide: Text.ElideLeft
-            text: "Timeline for " + rssModel.authName
-            font.pixelSize: 12; font.bold: true; color: "white"; style: Text.Raised; styleColor: "black"
-        }
-
-        Button {
-            id: tagButton; x: titleBar.width - 90; width: 85; height: 32; text: "New Post..."
-            anchors.verticalCenter: parent.verticalCenter;
-            onClicked: if (titleBar.state == "Posting") container.accept(); else titleBar.state = "Posting"
-        }
-
-        Text {
-            id: charsLeftText; anchors.horizontalCenter: tagButton.horizontalCenter;
-            anchors.top: tagButton.bottom; anchors.topMargin: 2
-            text: {140 - editor.text.length;} visible: titleBar.state == "Posting"
-            font.pointSize: 10; font.bold: true; color: "white"; style: Text.Raised; styleColor: "black"
-        }
-        Item {
-            id: txtEdit;
-            anchors.left: tagButton.right; anchors.leftMargin: 5; y: 4
-            anchors.right: parent.right; anchors.rightMargin: 40; height: parent.height - 9
-            BorderImage { source: "images/lineedit.sci"; anchors.fill: parent }
-
-            Binding {//TODO: Can this be a function, which also resets the cursor? And flashes?
-                when: editor.text.length > 140
-                target: editor
-                property: "text"
-                value: editor.text.slice(0,140)
-            }
-            TextEdit {
-                id: editor
-                anchors.left: parent.left;
-                anchors.leftMargin: 8;
-                anchors.bottom: parent.bottom
-                anchors.bottomMargin: 4;
-                cursorVisible: true; font.bold: true
-                width: parent.width - 12
-                height: parent.height - 8
-                font.pixelSize: 12
-                wrapMode: TextEdit.Wrap
-                color: "#151515"; selectionColor: "green"
-            }
-            Keys.forwardTo: [(returnKey), (editor)]
-            Item {
-                id: returnKey
-                Keys.onReturnPressed: container.accept()
-                Keys.onEnterPressed: container.accept()
-                Keys.onEscapePressed: titleBar.state = ""
-            }
-        }
-    }
-    states: [
-        State {
-            name: "Posting"
-            PropertyChanges { target: container; x: -tagButton.x + 5 }
-            PropertyChanges { target: titleBar; height: 80 }
-            PropertyChanges { target: tagButton; text: "OK" }
-            PropertyChanges { target: tagButton; width: 28 }
-            PropertyChanges { target: tagButton; height: 24 }
-            PropertyChanges { target: editor; focus: true }
-        }
-    ]
-    transitions: [
-        Transition {
-            from: "*"; to: "*"
-            NumberAnimation { properties: "x,y,width,height"; easing.type: Easing.InOutQuad }
-        }
-    ]
-}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/demos/declarative/twitter/TwitterCore/Input.qml	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,65 @@
+/****************************************************************************
+**
+** 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 QtDeclarative 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$
+**
+****************************************************************************/
+
+import Qt 4.7
+
+FocusScope {
+    id:container
+    width: 220
+    height: 28
+    BorderImage { source: "images/lineedit.sci"; anchors.fill: parent }
+    signal accepted
+    property alias text: input.text
+    property alias item:input
+    TextInput{
+        id: input
+        width: parent.width - 12
+        anchors.centerIn: parent
+        maximumLength:21
+        font.pixelSize: 16;
+        font.bold: true
+        color: "#151515"; selectionColor: "mediumseagreen"
+        focus: true
+        onAccepted:{container.accepted()}
+        text: ""
+        selectByMouse: true
+    }
+}
--- a/demos/declarative/twitter/TwitterCore/MultiTitleBar.qml	Fri Sep 17 08:34:18 2010 +0300
+++ b/demos/declarative/twitter/TwitterCore/MultiTitleBar.qml	Mon Oct 04 01:19:32 2010 +0300
@@ -42,10 +42,6 @@
 import Qt 4.7
 
 Item {
-    height: homeBar.height
-    HomeTitleBar { id: homeBar; width: parent.width; height: 60;
-        onUpdate: rssModel.reload()
-    }
     TitleBar { id: titleBar; width: parent.width; height: 60;
         y: -80
         untaggedString: "Latest tweets from everyone"
@@ -53,9 +49,8 @@
     }
     states: [
         State {
-            name: "search"; when: screen.userView
+            name: "search"; when: screen.state!="search"
             PropertyChanges { target: titleBar; y: 0 }
-            PropertyChanges { target: homeBar; y: -80 }
         }
     ]
     transitions: [
--- a/demos/declarative/twitter/TwitterCore/RssModel.qml	Fri Sep 17 08:34:18 2010 +0300
+++ b/demos/declarative/twitter/TwitterCore/RssModel.qml	Mon Oct 04 01:19:32 2010 +0300
@@ -43,43 +43,34 @@
 
 Item { id: wrapper
     property variant model: xmlModel
-    property string tags : ""
-    property string authName : ""
-    property string authPass : ""
+    property string from : ""
+    property string to : ""
+    property string phrase : ""
+
     property string mode : "everyone"
     property int status: xmlModel.status
     function reload() { xmlModel.reload(); }
-XmlListModel {
-    id: xmlModel
+    XmlListModel {
+        id: xmlModel
 
-    source:{ 
-            if (wrapper.authName == ""){
-                ""; //Avoid worthless calls to twitter servers
-            }else if(wrapper.mode == 'user'){
-                "https://"+ ((wrapper.authName!="" && wrapper.authPass!="")? (wrapper.authName+":"+wrapper.authPass+"@") : "" )+"twitter.com/statuses/user_timeline.xml?screen_name="+wrapper.tags;
-            }else if(wrapper.mode == 'self'){
-                "https://"+ ((wrapper.authName!="" && wrapper.authPass!="")? (wrapper.authName+":"+wrapper.authPass+"@") : "" )+"twitter.com/statuses/friends_timeline.xml";
-            }else{//everyone/public
-                "http://twitter.com/statuses/public_timeline.xml";
-            }
-    }
-    query: "/statuses/status"
+        source: (from=="" && to=="" && phrase=="") ? "" :
+            'http://search.twitter.com/search.atom?from='+from+"&to="+to+"&phrase="+phrase
+
+        namespaceDeclarations: "declare default element namespace 'http://www.w3.org/2005/Atom'; " +
+                               "declare namespace twitter=\"http://api.twitter.com/\";";
+
+        query: "/feed/entry"
 
-    XmlRole { name: "statusText"; query: "text/string()" }
-    XmlRole { name: "timestamp"; query: "created_at/string()" }
-    XmlRole { name: "source"; query: "source/string()" }
-    XmlRole { name: "userName"; query: "user/name/string()" }
-    XmlRole { name: "userScreenName"; query: "user/screen_name/string()" }
-    XmlRole { name: "userImage"; query: "user/profile_image_url/string()" }
-    XmlRole { name: "userLocation"; query: "user/location/string()" }
-    XmlRole { name: "userDescription"; query: "user/description/string()" }
-    XmlRole { name: "userFollowers"; query: "user/followers_count/string()" }
-    XmlRole { name: "userStatuses"; query: "user/statuses_count/string()" }
-    //TODO: Could also get the user's color scheme, timezone and a few other things
+        XmlRole { name: "statusText"; query: "content/string()" }
+        XmlRole { name: "timestamp"; query: "published/string()" }
+        XmlRole { name: "source"; query: "twitter:source/string()" }
+        XmlRole { name: "name"; query: "author/name/string()" }
+        XmlRole { name: "userImage"; query: "link[@rel = 'image']/@href/string()" }
+
+    }
+    Binding {
+        property: "mode"
+        target: wrapper
+        value: {if(wrapper.tags==''){"everyone";}else if(wrapper.tags=='my timeline'){"self";}else{"user";}}
+    }
 }
-Binding {
-    property: "mode"
-    target: wrapper
-    value: {if(wrapper.tags==''){"everyone";}else if(wrapper.tags=='my timeline'){"self";}else{"user";}}
-}
-}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/demos/declarative/twitter/TwitterCore/SearchView.qml	Mon Oct 04 01:19:32 2010 +0300
@@ -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 QtDeclarative 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$
+**
+****************************************************************************/
+
+import Qt 4.7
+
+FocusScope {
+    id: wrapper
+    Column {
+        anchors.centerIn: parent
+        spacing: 20
+        Column{
+            spacing: 4
+            Text {
+                text: "Posted by:"
+                font.pixelSize: 16; font.bold: true; color: "white"; style: Text.Raised; styleColor: "black"
+                horizontalAlignment: Qt.AlignRight
+            }
+            Input{
+                id: fromIn
+                KeyNavigation.backtab: searchbutton
+                KeyNavigation.tab:toIn
+                onAccepted:searchbutton.doSearch();
+                focus: true
+            }
+            Text {
+                text: "In reply to:"
+                font.pixelSize: 16; font.bold: true; color: "white"; style: Text.Raised; styleColor: "black"
+                horizontalAlignment: Qt.AlignRight
+            }
+            Input{
+                id: toIn
+                KeyNavigation.backtab: fromIn
+                KeyNavigation.tab:phraseIn
+                onAccepted:searchbutton.doSearch();
+            }
+            Text {
+                text: "Search phrase:"
+                font.pixelSize: 16; font.bold: true; color: "white"; style: Text.Raised; styleColor: "black"
+                horizontalAlignment: Qt.AlignRight
+            }
+            Input{
+                id: phraseIn
+                KeyNavigation.backtab: toIn
+                KeyNavigation.tab:searchbutton
+                onAccepted:searchbutton.doSearch();
+                text: "Qt Quick"
+            }
+        }
+        Button {
+            width: 100
+            height: 32
+            id: searchbutton
+            keyUsing: true;
+            opacity: 1
+            text: "Search"
+            KeyNavigation.tab: fromIn
+            Keys.onReturnPressed: searchbutton.doSearch();
+            Keys.onEnterPressed: searchbutton.doSearch();
+            Keys.onSelectPressed: searchbutton.doSearch();
+            Keys.onSpacePressed: searchbutton.doSearch();
+            onClicked: searchbutton.doSearch();
+
+            function doSearch() {
+                // Search ! allowed
+                if (wrapper.state=="invalidinput")
+                    return;
+
+                rssModel.from=fromIn.text;
+                rssModel.to= toIn.text;
+                rssModel.phrase = phraseIn.text;
+                screen.focus = true;
+                screen.state = ""
+            }
+        }
+    }
+    states:
+    State {
+        name: "invalidinput"
+        when: fromIn.text=="" && toIn.text=="" && phraseIn.text==""
+        PropertyChanges { target: searchbutton ; opacity: 0.6 ; }
+    }
+    transitions:
+    Transition {
+        NumberAnimation { target: searchbutton; property: "opacity"; duration: 200 }
+    }
+}
--- a/demos/declarative/twitter/TwitterCore/TitleBar.qml	Fri Sep 17 08:34:18 2010 +0300
+++ b/demos/declarative/twitter/TwitterCore/TitleBar.qml	Mon Oct 04 01:19:32 2010 +0300
@@ -58,56 +58,58 @@
             rssModel.tags = editor.text
         }
 
+        Item {
+            id:imageBox
+            x: 6; width: 0; height: 50; smooth: true
+            anchors.verticalCenter: parent.verticalCenter
+
+            UserModel { user: rssModel.from; id: userModel }
+            Component {
+                id: imgDelegate;
+                Item {
+                    id:imageitem
+                    visible:true
+                    Loading { width:48; height:48; visible: realImage.status != Image.Ready }
+                    Image { id: realImage; source: image; width:48; height:48; opacity:0; }
+                    states:
+                        State {
+                        name: "loaded"
+                        when:  (realImage.status == Image.Ready)
+                        PropertyChanges { target: realImage; opacity:1 }
+                    }
+                    transitions: Transition {
+                        NumberAnimation { target: realImage; property: "opacity"; duration: 200 }
+                    }
+                }
+            }
+            ListView { id:view; model: userModel.model; x:1; y:1; delegate: imgDelegate }
+            states:
+            State {
+                when: !userModel.user==""
+                PropertyChanges { target: imageBox; width: 50; }
+            }
+            transitions:
+            Transition {
+                NumberAnimation { target: imageBox; property: "width"; duration: 200 }
+            }
+        }
+
         Text {
             id: categoryText
             anchors {
-                left: parent.left; right: tagButton.left; leftMargin: 10; rightMargin: 10
+                left: imageBox.right; right: parent.right; leftMargin: 10; rightMargin: 10
                 verticalCenter: parent.verticalCenter
             }
             elide: Text.ElideLeft
-            text: (rssModel.tags=="" ? untaggedString : taggedString + rssModel.tags)
+            text: (rssModel.from=="" ? untaggedString : taggedString + rssModel.from)
             font.bold: true; color: "White"; style: Text.Raised; styleColor: "Black"
             font.pixelSize: 12
         }
-
-        Button {
-            id: tagButton; x: titleBar.width - 50; width: 45; height: 32; text: "..."
-            onClicked: if (titleBar.state == "Tags") container.accept(); else titleBar.state = "Tags"
-            anchors.verticalCenter: parent.verticalCenter
-        }
-
-        Item {
-            id: lineEdit
-            y: 4; height: parent.height - 9
-            anchors { left: tagButton.right; leftMargin: 5; right: parent.right; rightMargin: 5 }
-
-            BorderImage { source: "images/lineedit.sci"; anchors.fill: parent }
-
-            TextInput {
-                id: editor
-                anchors {
-                    left: parent.left; right: parent.right; leftMargin: 10; rightMargin: 10
-                    verticalCenter: parent.verticalCenter
-                }
-                cursorVisible: true; font.bold: true
-                color: "#151515"; selectionColor: "Green"
-            }
-
-            Keys.forwardTo: [ (returnKey), (editor)]
-
-            Item {
-                id: returnKey
-                Keys.onReturnPressed: container.accept()
-                Keys.onEnterPressed: container.accept()
-                Keys.onEscapePressed: titleBar.state = ""
-            }
-        }
     }
 
     states: State {
         name: "Tags"
         PropertyChanges { target: container; x: -tagButton.x + 5 }
-        PropertyChanges { target: tagButton; text: "OK" }
         PropertyChanges { target: editor; focus: true }
     }
 
--- a/demos/declarative/twitter/TwitterCore/ToolBar.qml	Fri Sep 17 08:34:18 2010 +0300
+++ b/demos/declarative/twitter/TwitterCore/ToolBar.qml	Mon Oct 04 01:19:32 2010 +0300
@@ -48,15 +48,14 @@
     property alias button2Label: button2.text
     signal button1Clicked
     signal button2Clicked
-
+    focus:true
     BorderImage { source: "images/titlebar.sci"; width: parent.width; height: parent.height + 14; y: -7 }
-
     Button {
         id: button1
         anchors.left: parent.left; anchors.leftMargin: 5; y: 3; width: 140; height: 32
         onClicked: toolbar.button1Clicked()
+        focus:true
     }
-
     Button {
         id: button2
         anchors.right: parent.right; anchors.rightMargin: 5; y: 3; width: 140; height: 32
--- a/demos/declarative/twitter/TwitterCore/UserModel.qml	Fri Sep 17 08:34:18 2010 +0300
+++ b/demos/declarative/twitter/TwitterCore/UserModel.qml	Mon Oct 04 01:19:32 2010 +0300
@@ -42,26 +42,24 @@
 import Qt 4.7
 
 //This "model" gets the user information about the searched user. Mainly for the icon.
-//Copied from RssModel
 
 Item { id: wrapper
     property variant model: xmlModel
     property string user : ""
     property int status: xmlModel.status
     function reload() { xmlModel.reload(); }
-XmlListModel {
-    id: xmlModel
+    XmlListModel {
+        id: xmlModel
 
-    source: {if(user!="") {"http://twitter.com/users/show.xml?screen_name="+user;}else{"";}}
-    query: "/user"
+        source: user!= "" ? "http://twitter.com/users/show.xml?screen_name="+user : ""
+        query: "/user"
 
-    XmlRole { name: "name"; query: "name/string()" }
-    XmlRole { name: "screenName"; query: "screen_name/string()" }
-    XmlRole { name: "image"; query: "profile_image_url/string()" }
-    XmlRole { name: "location"; query: "location/string()" }
-    XmlRole { name: "description"; query: "description/string()" }
-    XmlRole { name: "followers"; query: "followers_count/string()" }
-    //XmlRole { name: "protected"; query: "protected/bool()" }
-    //TODO: Could also get the user's color scheme, timezone and a few other things
+        XmlRole { name: "name"; query: "name/string()" }
+        XmlRole { name: "screenName"; query: "screen_name/string()" }
+        XmlRole { name: "image"; query: "profile_image_url/string()" }
+        XmlRole { name: "location"; query: "location/string()" }
+        XmlRole { name: "description"; query: "description/string()" }
+        XmlRole { name: "followers"; query: "followers_count/string()" }
+        //TODO: Could also get the user's color scheme, timezone and a few other things
+    }
 }
-}
Binary file demos/declarative/twitter/TwitterCore/images/quit.png has changed
--- a/demos/declarative/twitter/TwitterCore/qmldir	Fri Sep 17 08:34:18 2010 +0300
+++ b/demos/declarative/twitter/TwitterCore/qmldir	Mon Oct 04 01:19:32 2010 +0300
@@ -1,7 +1,7 @@
-AuthView 1.0 AuthView.qml
+SearchView 1.0 SearchView.qml
 Button 1.0 Button.qml
+Input 1.0 Input.qml
 FatDelegate 1.0 FatDelegate.qml
-HomeTitleBar 1.0 HomeTitleBar.qml
 Loading 1.0 Loading.qml
 MultiTitleBar 1.0 MultiTitleBar.qml
 TitleBar 1.0 TitleBar.qml
--- a/demos/declarative/twitter/twitter.qml	Fri Sep 17 08:34:18 2010 +0300
+++ b/demos/declarative/twitter/twitter.qml	Mon Oct 04 01:19:32 2010 +0300
@@ -46,28 +46,18 @@
     id: screen; width: 320; height: 480
     property bool userView : false
     property variant tmpStr
-    function setMode(m){
-        screen.userView = m;
-        if(m == false){
-            rssModel.tags='my timeline';
-            rssModel.reload();
-            toolBar.button2Label = "View others";
-        } else {
-            toolBar.button2Label = "Return home";
-        }
-    }
     function setUser(str){hack.running = true; tmpStr = str}
-    function reallySetUser(){rssModel.tags = tmpStr;}
-
+    function reallySetUser(){rssModel.from = tmpStr;rssModel.to = ""; rssModel.phrase = ""}
+    state:"searchquery"
     //Workaround for bug 260266
     Timer{ interval: 1; running: false; repeat: false; onTriggered: screen.reallySetUser(); id:hack }
-
-    //TODO: better way to return to the auth screen
-    Keys.onEscapePressed: rssModel.authName=''
+    Keys.onEscapePressed: screen.state="searchquery"
+    Keys.onBacktabPressed: screen.state="searchquery"
     Rectangle {
         id: background
         anchors.fill: parent; color: "#343434";
 
+        state:"searchquery"
         Image { source: "TwitterCore/images/stripes.png"; fillMode: Image.Tile; anchors.fill: parent; opacity: 0.3 }
 
         MouseArea {
@@ -90,8 +80,16 @@
             y:60 //Below the title bars
             height: 380
 
-            Twitter.AuthView{
-                id: authView
+            Text {
+                id:title
+                text: "Search Twitter"
+                anchors.horizontalCenter: parent.horizontalCenter
+                font.pixelSize: 20; font.bold: true; color: "#bbb"; style: Text.Raised; styleColor: "black"
+                opacity:0
+            }
+
+            Twitter.SearchView{
+                id: searchView
                 anchors.verticalCenter: parent.verticalCenter
                 width: parent.width; height: parent.height-60;
                 x: -(screen.width * 1.5)
@@ -110,31 +108,27 @@
             //TODO: Use anchor changes instead of hard coding
             y: screen.height - 40
             width: parent.width; opacity: 0.9
-            button1Label: "Update"
-            button2Label: "View others"
-            onButton1Clicked: rssModel.reload();
-            onButton2Clicked:
+            button1Label: "New Search"
+            button2Label: "Update"
+            onButton1Clicked:
             {
-                if(screen.userView == true){
-                    screen.setMode(false);
-                }else{
-                    rssModel.tags='';
-                    screen.setMode(true);
-                }
+                screen.state="searchquery"
             }
+            onButton2Clicked: rssModel.reload();
         }
-
-        states: [
-            State {
-                name: "unauthed"; when: rssModel.authName==""
-                PropertyChanges { target: authView; x: 0 }
-                PropertyChanges { target: mainView; x: -(parent.width * 1.5) }
-                PropertyChanges { target: titleBar; y: -80 }
-                PropertyChanges { target: toolBar; y: screen.height }
-            }
-        ]
-        transitions: [
-            Transition { NumberAnimation { properties: "x,y"; duration: 500; easing.type: Easing.InOutQuad } }
-        ]
     }
+    states: [
+        State {
+            name: "searchquery";
+            PropertyChanges { target: searchView; x: 0; focus:true}
+            PropertyChanges { target: mainView; x: -(parent.width * 1.5) }
+            PropertyChanges { target: titleBar; y: -80 }
+            PropertyChanges { target: toolBar; y: screen.height }
+            PropertyChanges { target: toolBar }
+            PropertyChanges { target: title; opacity:1}
+        }
+    ]
+    transitions: [
+        Transition { NumberAnimation { properties: "x,y,opacity"; duration: 500; easing.type: Easing.InOutQuad } }
+    ]
 }
--- a/demos/declarative/webbrowser/content/Header.qml	Fri Sep 17 08:34:18 2010 +0300
+++ b/demos/declarative/webbrowser/content/Header.qml	Mon Oct 04 01:19:32 2010 +0300
@@ -51,7 +51,6 @@
 
     x: webView.contentX < 0 ? -webView.contentX : webView.contentX > webView.contentWidth-webView.width
        ? -webView.contentX+webView.contentWidth-webView.width : 0
-
     y: {
         if (webView.progress < 1.0)
             return 0;
@@ -59,7 +58,6 @@
             webView.contentY < 0 ? -webView.contentY : webView.contentY > height ? -height : -webView.contentY
         }
     }
-
     Column {
         width: parent.width
 
@@ -101,14 +99,38 @@
 
             Button {
                 id: reloadButton
-                anchors { right: parent.right; rightMargin: 4 }
+                anchors { right: quitButton.left; rightMargin: 10 }
                 action: webView.reload; image: "pics/view-refresh.png"
                 visible: webView.progress == 1.0 && !header.urlChanged
             }
+            Text {
+                id: quitButton
+                color: "white"
+                style: Text.Sunken
+                anchors.right: parent.right
+                anchors.top: parent.top
+                anchors.bottom: parent.bottom
+                verticalAlignment: Text.AlignVCenter
+                horizontalAlignment: Text.AlignHCenter
+                font.pixelSize: 18
+                width: 60
+                text: "Quit"
+                MouseArea {
+                    anchors.fill: parent
+                    onClicked: Qt.quit()
+                }
+                Rectangle {
+                    width: 1
+                    y: 5
+                    height: parent.height-10
+                    anchors.right: parent.left
+                    color: "darkgray"
+                }
+            }
 
             Button {
                 id: stopButton
-                anchors { right: parent.right; rightMargin: 4 }
+                anchors { right: quitButton.left; rightMargin: 10 }
                 action: webView.stop; image: "pics/edit-delete.png"
                 visible: webView.progress < 1.0 && !header.urlChanged
             }
Binary file demos/declarative/webbrowser/content/pics/edit-delete.png has changed
Binary file demos/declarative/webbrowser/content/pics/go-jump-locationbar.png has changed
Binary file demos/declarative/webbrowser/content/pics/go-next-view.png has changed
Binary file demos/declarative/webbrowser/content/pics/go-previous-view.png has changed
--- a/demos/demos.pro	Fri Sep 17 08:34:18 2010 +0300
+++ b/demos/demos.pro	Mon Oct 04 01:19:32 2010 +0300
@@ -58,7 +58,7 @@
 contains(QT_CONFIG, phonon):!static:SUBDIRS += demos_mediaplayer
 contains(QT_CONFIG, webkit):contains(QT_CONFIG, svg):!symbian:SUBDIRS += demos_browser
 contains(QT_CONFIG, declarative):SUBDIRS += demos_declarative
-contains(QT_CONFIG, multimedia):SUBDIRS += demos_spectrum
+contains(QT_CONFIG, multimedia):!static:SUBDIRS += demos_spectrum
 
 # install
 sources.files = README *.pro
--- a/demos/embedded/anomaly/src/AddressBar.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/demos/embedded/anomaly/src/AddressBar.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -44,27 +44,11 @@
 #include <QtCore>
 #include <QtGui>
 
-class LineEdit: public QLineEdit
-{
-public:
-    LineEdit(QWidget *parent = 0): QLineEdit(parent) {}
-
-    void paintEvent(QPaintEvent *event) {
-        QLineEdit::paintEvent(event);
-        if (text().isEmpty()) {
-            QPainter p(this);
-            int flags = Qt::AlignLeft | Qt::AlignVCenter;
-            p.setPen(palette().color(QPalette::Disabled, QPalette::Text));
-            p.drawText(rect().adjusted(10, 0, 0, 0), flags, "Enter address or search terms");
-            p.end();
-        }
-    }
-};
-
 AddressBar::AddressBar(QWidget *parent)
     : QWidget(parent)
 {
-    m_lineEdit = new LineEdit(parent);
+    m_lineEdit = new QLineEdit(parent);
+    m_lineEdit->setPlaceholderText("Enter address or search terms");
     connect(m_lineEdit, SIGNAL(returnPressed()), SLOT(processAddress()));
     m_toolButton = new QToolButton(parent);
     m_toolButton->setText("Go");
--- a/demos/embedded/desktopservices/contenttab.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/demos/embedded/desktopservices/contenttab.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -125,7 +125,7 @@
 void ContentTab::handleErrorInOpen(QListWidgetItem *item)
 {
     Q_UNUSED(item);
-    QMessageBox::warning(this, tr("Operation Failed"), tr("Unkown error!"), QMessageBox::Close);
+    QMessageBox::warning(this, tr("Operation Failed"), tr("Unknown error!"), QMessageBox::Close);
 }
 
 // NEW SLOTS
--- a/demos/embedded/desktopservices/desktopwidget.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/demos/embedded/desktopservices/desktopwidget.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -73,7 +73,7 @@
 
     // Links
     LinkTab* othersTab = new LinkTab(tabWidget);;
-    // Given icon file will be overriden by LinkTab
+    // Given icon file will be overridden by LinkTab
     othersTab->init(QDesktopServices::PicturesLocation, "", "");
     tabWidget->addTab(othersTab, tr("Links"));
 
--- a/demos/embedded/fluidlauncher/fluidlauncher.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/demos/embedded/fluidlauncher/fluidlauncher.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -154,7 +154,7 @@
 
                 DemoApplication* newDemo = new DemoApplication(
                         filename.toString(),
-                        name.isEmpty() ? "Unamed Demo" : name.toString(),
+                        name.isEmpty() ? "Unnamed Demo" : name.toString(),
                         image.toString(),
                         args.toString().split(" "));
                 demoList.append(newDemo);
--- a/demos/embedded/fluidlauncher/pictureflow.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/demos/embedded/fluidlauncher/pictureflow.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -603,7 +603,7 @@
   Qt::TransformationMode mode = Qt::SmoothTransformation;
   img = img.scaled(w, h, Qt::IgnoreAspectRatio, mode);
 
-  // slightly larger, to accomodate for the reflection
+  // slightly larger, to accommodate for the reflection
   int hs = h * 2;
   int hofs = h / 3;
 
--- a/demos/embedded/qmlcalculator/qmlcalculator.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/demos/embedded/qmlcalculator/qmlcalculator.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -42,6 +42,7 @@
 #include <QtCore/QFileInfo>
 #include <QtGui/QApplication>
 #include <QtDeclarative/QDeclarativeView>
+#include <QtDeclarative/QDeclarativeEngine>
 
 #if defined(Q_OS_SYMBIAN)
 #include <eikenv.h>
@@ -58,7 +59,8 @@
     QDeclarativeView view;
     view.setSource(QUrl(mainQmlApp));
     view.setResizeMode(QDeclarativeView::SizeRootObjectToView);
-
+    QObject::connect(view.engine(), SIGNAL(quit()), &application, SLOT(quit()));
+    
 #if defined(QT_KEYPAD_NAVIGATION)
     QApplication::setNavigationMode(Qt::NavigationModeCursorAuto);
 #endif // QT_KEYPAD_NAVIGATION
--- a/demos/embedded/qmlclocks/qmlclocks.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/demos/embedded/qmlclocks/qmlclocks.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -42,6 +42,7 @@
 #include <QtCore/QFileInfo>
 #include <QtGui/QApplication>
 #include <QtDeclarative/QDeclarativeView>
+#include <QtDeclarative/QDeclarativeEngine>
 
 #if defined(Q_OS_SYMBIAN)
 #include <eikenv.h>
@@ -58,6 +59,7 @@
     QDeclarativeView view;
     view.setSource(QUrl(mainQmlApp));
     view.setResizeMode(QDeclarativeView::SizeRootObjectToView);
+    QObject::connect(view.engine(), SIGNAL(quit()), &application, SLOT(quit()));
 
 #if defined(QT_KEYPAD_NAVIGATION)
     QApplication::setNavigationMode(Qt::NavigationModeCursorAuto);
--- a/demos/embedded/qmldialcontrol/qmldialcontrol.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/demos/embedded/qmldialcontrol/qmldialcontrol.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -42,6 +42,7 @@
 #include <QtCore/QFileInfo>
 #include <QtGui/QApplication>
 #include <QtDeclarative/QDeclarativeView>
+#include <QtDeclarative/QDeclarativeEngine>
 
 int main(int argc, char *argv[])
 {
@@ -51,6 +52,7 @@
     QDeclarativeView view;
     view.setSource(QUrl(mainQmlApp));
     view.setResizeMode(QDeclarativeView::SizeRootObjectToView);
+    QObject::connect(view.engine(), SIGNAL(quit()), &application, SLOT(quit()));
 
 #if defined(QT_KEYPAD_NAVIGATION)
     QApplication::setNavigationMode(Qt::NavigationModeCursorAuto);
--- a/demos/embedded/qmleasing/deployment.pri	Fri Sep 17 08:34:18 2010 +0300
+++ b/demos/embedded/qmleasing/deployment.pri	Mon Oct 04 01:19:32 2010 +0300
@@ -4,5 +4,5 @@
     qmleasing_uid3 = A000E3FE
     qmleasing_files.path = $$APP_PRIVATE_DIR_BASE/$$qmleasing_uid3
 }
-qmleasing_files.sources = $$qmleasing_src/easing.qml
+qmleasing_files.sources = $$qmleasing_src/easing.qml $$qmleasing_src/content
 DEPLOYMENT += qmleasing_files
--- a/demos/embedded/qmleasing/qmleasing.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/demos/embedded/qmleasing/qmleasing.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -42,6 +42,7 @@
 #include <QtCore/QFileInfo>
 #include <QtGui/QApplication>
 #include <QtDeclarative/QDeclarativeView>
+#include <QtDeclarative/QDeclarativeEngine>
 
 int main(int argc, char *argv[])
 {
@@ -51,6 +52,7 @@
     QDeclarativeView view;
     view.setSource(QUrl(mainQmlApp));
     view.setResizeMode(QDeclarativeView::SizeRootObjectToView);
+    QObject::connect(view.engine(), SIGNAL(quit()), &application, SLOT(quit()));
 
 #if defined(QT_KEYPAD_NAVIGATION)
     QApplication::setNavigationMode(Qt::NavigationModeCursorAuto);
--- a/demos/embedded/qmlflickr/qmlflickr.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/demos/embedded/qmlflickr/qmlflickr.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -48,6 +48,7 @@
 #include <QtNetwork/QNetworkConfiguration>
 #include <QtNetwork/QNetworkConfigurationManager>
 #include <QtNetwork/QNetworkAccessManager>
+#include <QtDeclarative/QDeclarativeEngine>
 
 // Factory to create QNetworkAccessManagers that use the saved network configuration; otherwise
 // the system default.
@@ -95,7 +96,8 @@
     view.engine()->setNetworkAccessManagerFactory(&networkAccessManagerFactory);
     view.setSource(QUrl(mainQmlApp));
     view.setResizeMode(QDeclarativeView::SizeRootObjectToView);
-
+    QObject::connect(view.engine(), SIGNAL(quit()), &application, SLOT(quit()));
+    
 #if defined(Q_OS_SYMBIAN)
     view.showFullScreen();
 #else // Q_OS_SYMBIAN
--- a/demos/embedded/qmlphotoviewer/qmlphotoviewer.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/demos/embedded/qmlphotoviewer/qmlphotoviewer.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -96,6 +96,8 @@
     view.setSource(QUrl(mainQmlApp));
     view.setResizeMode(QDeclarativeView::SizeRootObjectToView);
 
+    QObject::connect(view.engine(), SIGNAL(quit()), &application, SLOT(quit()));
+
 #if defined(Q_OS_SYMBIAN)
     view.showFullScreen();
 #else // Q_OS_SYMBIAN
--- a/demos/embedded/qmltwitter/qmltwitter.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/demos/embedded/qmltwitter/qmltwitter.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -95,7 +95,8 @@
     view.engine()->setNetworkAccessManagerFactory(&networkAccessManagerFactory);
     view.setSource(QUrl(mainQmlApp));
     view.setResizeMode(QDeclarativeView::SizeRootObjectToView);
-
+    QObject::connect(view.engine(), SIGNAL(quit()), &application, SLOT(quit()));
+    
 #if defined(Q_OS_SYMBIAN)
     view.showFullScreen();
 #else // Q_OS_SYMBIAN
--- a/demos/embedded/raycasting/raycasting.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/demos/embedded/raycasting/raycasting.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -142,7 +142,7 @@
         qreal dv = -2 * cosa / bufw;
 
         for (int ray = 0; ray < bufw; ++ray, u += du, v += dv) {
-            // everytime this ray advances 'u' units in x direction,
+            // every time this ray advances 'u' units in x direction,
             // it also advanced 'v' units in y direction
             qreal uu = (u < 0) ? -u : u;
             qreal vv = (v < 0) ? -v : v;
--- a/demos/qtdemo/examplecontent.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/demos/qtdemo/examplecontent.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -91,8 +91,8 @@
     if (paragraphs.length() < 1 && Colors::verbose)
         qDebug() << "- ExampleContent::loadDescription(): Could not load description:"
                  << MenuManager::instance()->info[this->name]["docfile"];
-    QString description = Colors::contentColor +
-        QLatin1String("Could not load description. Ensure that the documentation for Qt is built.");
+    QString description = Colors::contentColor + QLatin1String(""); 
+    //QLatin1String("Could not load description. Ensure that the documentation for Qt is built."); // QTBUG-12522: If there is no description why show an error to the user when qDebug above communications the issue (if it is indeed an issue at all) when demos are built?
     for (int p = 0; p < int(paragraphs.length()); ++p) {
         description = this->extractTextFromParagraph(paragraphs.item(p));
         if (this->isSummary(description)) {
--- a/demos/qtdemo/mainwindow.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/demos/qtdemo/mainwindow.h	Mon Oct 04 01:19:32 2010 +0300
@@ -43,7 +43,6 @@
 #define MAIN_WINDOW_H
 
 #include <QtGui>
-#include <QtDeclarative>
 #include <QPixmap>
 
 class DemoTextItem;
--- a/demos/qtdemo/menumanager.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/demos/qtdemo/menumanager.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -313,7 +313,7 @@
     // Send command through remote control even if the process
     // was started to activate assistant and bring it to front:
     QTextStream str(&this->assistantProcess);
-    str << "SetSource " << url << QLatin1Char('\0') << endl;
+    str << "SetSource " << url << QLatin1Char('\n') << endl;
 }
 
 void MenuManager::launchExample(const QString &name)
@@ -356,6 +356,7 @@
 
 void MenuManager::launchQmlExample(const QString &name)
 {
+#ifndef QT_NO_DECLARATIVE
     if(!qmlRoot){
         exampleError(QProcess::UnknownError);
         return;
@@ -382,6 +383,15 @@
     qmlRoot->setProperty("qmlFile", QVariant(""));//unload component
     qmlRoot->setProperty("show", QVariant(true));
     qmlRoot->setProperty("qmlFile", QUrl::fromLocalFile(file.fileName()));
+#else
+    exampleError(QProcess::UnknownError);
+#endif
+}
+
+void MenuManager::quitQML()
+{
+    if(qmlRoot)
+        qmlRoot->setProperty("show", QVariant(false));
 }
 
 void MenuManager::exampleFinished()
@@ -427,21 +437,28 @@
         level2MenuNode = level2MenuNode.nextSibling();
     }
 
+    qmlRoot = 0;
+#ifndef QT_NO_DECLARATIVE
     // Create QML Loader
     declarativeEngine = new QDeclarativeEngine(this);
+    connect(declarativeEngine, SIGNAL(quit()),
+            this, SLOT(quitQML()));
 
     QDeclarativeComponent component(declarativeEngine, QUrl("qrc:qml/qmlShell.qml"), this);
-    qmlRoot = 0;
-    if(component.isReady())
-        qmlRoot = qobject_cast<QDeclarativeItem*>(component.create());
-    else
+    QDeclarativeItem* qmlRootItem = 0;
+    if(component.isReady()){
+        qmlRoot = component.create();
+        qmlRootItem = qobject_cast<QDeclarativeItem*>(qmlRoot);
+    }else{
         qDebug() << component.status() << component.errorString();
-    if(qmlRoot){
-        qmlRoot->setHeight(this->window->scene->sceneRect().height());
-        qmlRoot->setWidth(this->window->scene->sceneRect().width());
-        qmlRoot->setZValue(101);//Above other items
-        qmlRoot->setCursor(Qt::ArrowCursor);
-        window->scene->addItem(qmlRoot);
+    }
+
+    if(qmlRootItem){
+        qmlRootItem->setHeight(this->window->scene->sceneRect().height());
+        qmlRootItem->setWidth(this->window->scene->sceneRect().width());
+        qmlRootItem->setZValue(101);//Above other items
+        qmlRootItem->setCursor(Qt::ArrowCursor);
+        window->scene->addItem(qmlRootItem);
 
         //Note that QML adds key handling to the app.
         window->viewport()->setFocusPolicy(Qt::NoFocus);//Correct keyboard focus handling
@@ -449,8 +466,9 @@
         window->scene->setStickyFocus(true);
         window->setFocus();
     }else{
-        qDebug() << "Error intializing QML subsystem, Declarative examples will not work";
+        qDebug() << "Error initializing QML subsystem, Declarative examples will not work";
     }
+#endif
 }
 
 void MenuManager::readInfoAboutExample(const QDomElement &example)
--- a/demos/qtdemo/menumanager.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/demos/qtdemo/menumanager.h	Mon Oct 04 01:19:32 2010 +0300
@@ -45,6 +45,9 @@
 #include <QtGui>
 #include <QtXml>
 #include <QtHelp/QHelpEngineCore>
+#ifndef QT_NO_DECLARATIVE
+#include <QtDeclarative>
+#endif
 
 #include "score.h"
 #include "textbutton.h"
@@ -83,13 +86,17 @@
     Score *score;
     int currentMenuCode;
 
+    QObject *qmlRoot;
+#ifndef QT_NO_DECLARATIVE
     QDeclarativeEngine* declarativeEngine;
-    QDeclarativeItem *qmlRoot;
+#endif
 
 private slots:
     void exampleFinished();
     void exampleError(QProcess::ProcessError error);
 
+    void quitQML();
+
 private:
     // singleton pattern:
     MenuManager();
--- a/demos/qtdemo/qmlShell.qml	Fri Sep 17 08:34:18 2010 +0300
+++ b/demos/qtdemo/qmlShell.qml	Mon Oct 04 01:19:32 2010 +0300
@@ -68,8 +68,6 @@
                     loader.item.width = 640;
                 if(loader.item.height > 480)
                     loader.item.height = 480;
-                if(loader.item.inAnotherDemo != undefined)
-                    loader.item.inAnotherDemo = true;
             }}
 
         }
@@ -100,6 +98,30 @@
             }
 
         }
+        Rectangle{ id: closeButton
+            width: 24
+            height: 24
+            z: 11
+            border.color: "#aaaaaaaa"
+            gradient: Gradient{
+                GradientStop{ position: 0.0; color: "#34FFFFFF" }
+                GradientStop{ position: 1.0; color: "#7AFFFFFF" }
+            }
+            anchors.left: frame.right
+            anchors.bottom: frame.top
+            anchors.margins: -(2*width/3)
+            Text{
+                text: 'X'
+                font.bold: true
+                color: "white"
+                font.pixelSize: 12
+                anchors.centerIn: parent
+            }
+            MouseArea{
+                anchors.fill: parent
+                onClicked: main.show = false;
+            }
+        }
 
         Text{
             id: errorTxt
@@ -116,32 +138,6 @@
             onLinkActivated: Qt.openUrlExternally(link);
         }
     }
-    Rectangle{
-        id: helpLabel
-        property bool timedOut: false
-        z: 9
-        //Positioned in the top left corner
-        x: 8 
-        y: 8
-        color: "white"
-        border.color: "black"
-        border.width: 1
-        width: helpText.width + 16
-        height: helpText.height + 8
-        Text{
-            id: helpText
-            color: "black"
-            anchors.centerIn: parent
-            text: "Click outside the example to exit it."
-        }
-        opacity: 0
-        Behavior on opacity{ NumberAnimation{duration:500} }
-        Timer{
-            id: helpTimer
-            interval: 5000
-            onTriggered: {helpLabel.timedOut=true}
-        }
-    }
     Rectangle{ id: blackout //Maybe use a colorize effect instead?
         z: 8
         anchors.fill: parent
@@ -154,7 +150,6 @@
         hoverEnabled: main.show //To steal focus from the buttons
         acceptedButtons: Qt.LeftButton | Qt.RightButton | Qt.MiddleButton
         anchors.fill: parent
-        onClicked: main.show=false;
     }
 
     states: [
@@ -166,10 +161,6 @@
                 opacity: 1
             }
             PropertyChanges {
-                target: helpLabel
-                opacity: helpLabel.timedOut?0:1
-            }
-            PropertyChanges {
                 target: blackout
                 opacity: 0.5
             }
@@ -178,8 +169,7 @@
     transitions: [//Should not be too long, because the component has already started running
         Transition { from: ''; to: "show"; reversible: true
             ParallelAnimation{
-                ScriptAction{ script: {helpLabel.timedOut = false; helpTimer.restart();} }
-                NumberAnimation{ exclude: helpLabel; properties: "opacity"; easing.type: Easing.InQuad; duration: 500}
+                NumberAnimation{ properties: "opacity"; easing.type: Easing.InQuad; duration: 500}
                 PropertyAction { target: loader; property: "focus"; value: true}//Might be needed to ensure the focus stays with us
             }
         }
--- a/demos/qtdemo/qtdemo.pro	Fri Sep 17 08:34:18 2010 +0300
+++ b/demos/qtdemo/qtdemo.pro	Mon Oct 04 01:19:32 2010 +0300
@@ -6,13 +6,17 @@
 INSTALLS += target sources
 
 
-QT += xml network declarative
+QT += xml network
 
 contains(QT_CONFIG, opengl) {
     DEFINES += QT_OPENGL_SUPPORT
     QT += opengl
 }
 
+contains(QT_CONFIG, declarative) {
+    QT += declarative
+}
+
 build_all:!build_pass {
     CONFIG -= build_all
     CONFIG += release
--- a/demos/spectrum/3rdparty/fftreal/fftreal.pro	Fri Sep 17 08:34:18 2010 +0300
+++ b/demos/spectrum/3rdparty/fftreal/fftreal.pro	Mon Oct 04 01:19:32 2010 +0300
@@ -1,5 +1,7 @@
 include(../../spectrum.pri)
 
+static: error(This library cannot be built for static linkage)
+
 TEMPLATE = lib
 TARGET   = fftreal
 
--- a/demos/spectrum/app/app.pro	Fri Sep 17 08:34:18 2010 +0300
+++ b/demos/spectrum/app/app.pro	Mon Oct 04 01:19:32 2010 +0300
@@ -1,5 +1,7 @@
 include(../spectrum.pri)
 
+static: error(This application cannot be statically linked to the fftreal library)
+
 TEMPLATE = app
 
 TARGET = spectrum
--- a/dist/changes-4.6.4	Fri Sep 17 08:34:18 2010 +0300
+++ b/dist/changes-4.6.4	Mon Oct 04 01:19:32 2010 +0300
@@ -63,8 +63,12 @@
 QtOpenGL
 --------
 
- - foo
-    * bar
+ - QGLShaderProgram
+    * [QTBUG-12478] Don't resolve GLSL extensions if no shaders.
+    * [QTBUG-12591] setUniformValue(QSize) was setting (w,w) not (w,h).
+    * [QTBUG-12862] Don't #define highp/mediump/lowp if the desktop OpenGL
+      implementation has the GL_ARB_ES2_compatibility extension.
+    * [QTBUG-12554] Wrong OpenGLVersionFlags on OpenGL 4.0 systems.
 
 QtScript
 --------
--- a/dist/changes-4.7.0	Fri Sep 17 08:34:18 2010 +0300
+++ b/dist/changes-4.7.0	Mon Oct 04 01:19:32 2010 +0300
@@ -88,7 +88,10 @@
 
  - QComboBox
     * [QTBUG-8796] Made ForegroundRole work for all styles.
-				
+
+ - QCommandLinkButton
+    * [QTBUG-5995] Fixed text and icon alignment issues.
+	
  - QPrinter
     * Obsoleted the slightly confusing setNumCopies() and numCopies()
       functions, and replaced them with setCopyCount(), copyCount() and
@@ -133,6 +136,9 @@
     * [QTBUG-7982] Added QImage::bitPlaneCount().
     * [QTBUG-9072] Fixed alpha check for 1-bit-per-pixel images.
 
+ - QLineEdit
+    * [QTBUG-9823] Placeholder text is now correctly aligned with text.
+
  - QPicture
     * [QTBUG-4974] Printing QPictures containing text to a high resolution
       QPrinter would in many cases cause incorrect character spacing.
@@ -216,6 +222,7 @@
   * [QTBUG-9618] [MR 2372] send secure cookies only over secure connections
   * [QTBUG-7713] Fix bug related to re-sending request
   * [QTBUG-7673] Fix issue with some webservers
+  * [QTBUG-11029] do not accept cookies with non-alpha-numerical domain
  - Sockets
   * Better support for derived QTcpServer
   * [QTBUG-7054] Fix error handling with waitFor*() for socket engine
@@ -223,6 +230,10 @@
  - SSL
   * [QTBUG-2515] Do not make OpenSSL prompt for a password
   * [QTBUG-6504, QTBUG-8924, QTBUG-5645] Fix memleak
+  * [QTBUG-9973] QSslCertificate: support large serial numbers
+  * [QTBUG-8833] make QSslSocket::systemCaCertificates() use system certs
+  * [QT-3567] QSslSocket: improve error handling (fixes Secunia Advisory SA40389)
+  * [QBTUG-4455, MR 731] Fix handling of SSL certificates with wildcard domain names
 
 QtScript
 --------
@@ -245,6 +256,7 @@
  - [QTBUG-8920] fixed crash with anonymous types in XsdSchemaChecker
  - [QTBUG-8394] include/import/redefine schemas only once
  - QXmlSchema: fix crash with referencing elements
+ - [QBTUG-6485] QXmlSchema: allow usage of xsd:all
 
 Qt Plugins
 ----------
@@ -280,8 +292,9 @@
 ----------------
  - QGtkStyle
     * Fixed rtl issues with sliders (QTBUG-8986)
-    * Fixed missing pressed appearance on scroll bar handles. (QTBUG-10396)  
- 
+    * Fixed missing pressed appearance on scroll bar handles. (QTBUG-10396)
+    * Fixed crash when creating QGtkStyle before QApplication. (QTBUG-10758)
+
  - QFontDatabase
     * [QTBUG-4428] Fixed regression when using bitmap fonts on some 
       Linux systems.
@@ -297,7 +310,12 @@
 Qt for Windows
 --------------
  - Popup windows now implicitly activate when shown. (QTBUG-7386)
-
+ - QComboBox [QTBUG-7552] Fix an issue where only "..." would be shown for
+   QComboBox with certain DPI settings.
+ - Fixed a problem where menus exec'ed on system tray icons did not 
+   disappear. (QTBUG-7386)
+ - Improved look and feel for QWizard on Windows 7 and Vista. (QTBUG-9873), 
+   (QTBUG-11974) and (QTBUG-6120)    
  - QLocalSocket
     * Pipe handle leak fixed, when closing a QLocalSocket that still has
       unwritten data. (QTBUG-7815)
@@ -309,7 +327,9 @@
 ---------------
  - QMacStyle
     * Removed frame around statusbar items. (QTBUG-3574)
-    * More native appearance of item view headers and frames. (QTBUG-10047)    
+    * More native appearance of item view headers and frames. (QTBUG-10047)
+    * Increased spacing between tree view items. (QTBUG-10190)
+    * Removed frame around status bar items. (QTBUG-3574)
 
  - QFontEngine	
     * Enable fractional metrics for the font engine on Mac in all 
@@ -345,6 +365,12 @@
     * QTabBar scroll button size has been fixed. (QTBUG-8757)
     * Detection of Windows mobile 6.5 fixed. (QTBUG-8418)
 
+Qt for Symbian
+--------------
+
+ - QSplashScreen
+    * [QTBUG-11129] Fixed a hanging bug in QSplashScreen on 3.1 devices.
+
 
 
 ****************************************************************************
@@ -358,8 +384,20 @@
 
 - Build System
 
-  - "configure -fast" on Windows now also works for other make tools than
-    nmake. (QTBUG-8562)
+ - [QT-3540] Fixed Symbian resources not honoring TARGET with a path.
+ - "configure -fast" on Windows now also works for other make tools than
+   nmake. (QTBUG-8562)
+ - [QTBUG-11351] Fixed memory restrictions not being passed on to elf2e32.
+ - [QTBUG-11385] Removed the need to specify -arch symbian when compiling
+   for Symbian on Linux.
+ - [QTBUG-11396] "configure -qtlibinfix" now works when compiling for
+   Symbian on Linux.
+ - [QTBUG-11670] Fixed a bug which caused "make runonphone" to look for
+   package in the wrong place.
+ - [QTBUG-11727] Fixed a bug which made builds outside of the Qt tree fail
+   to compile.
+ - [QTBUG-11927] "configure -silent" now works with the
+   symbian/linux-armcc and symbian/linux-gcce mkspecs.
 
 - Assistant
 
@@ -450,9 +488,22 @@
     ABIs, but it also allowed for unaligned access. Qt never generates
     or uses unaligned access and the new EABI aligns as expected, so
     the flag was removed.
+  - QTextBoundaryFinder is now consistent with ICU when it comes to
+    line breaking, reporting the index of the boundary at which the line
+    break should occur rather than the index of the character.
+
+QtGui:
+  - QWidget::setLayoutDirection no longer affects the text layout
+    direction (Qt::LeftToRight or Qt::RightToLeft) of QTextEdit, QLineEdit
+    and widgets based on them. The default text layout direction
+    (Qt::LayoutDirectionAuto) is now detected from keyboard layout and
+    language of the text (conforms to Unicode standards). To
+    programmatically force the text direction of a QTextEdit, you can
+    change the defaultTextOption of the QTextDocument associated with that
+    widget with a new QTextOption of different textDirection property. For
+    QLineEdit, the only way so far is sending a Qt::Key_Direction_L/R
+    keyboard event to that widget.
 
 QtNetwork:
   - Qt does no longer provide its own CA bundle, but uses system APIs for
-    retrieving the default system certificates. On Symbian,
-    QSslSocket::systemCaCertificates() provides an empty list of
-    certificates.
+    retrieving the default system certificates.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dist/changes-4.7.1	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,118 @@
+Qt 4.7.1 is a bug-fix release. It maintains both forward and backward
+compatibility (source and binary) with Qt 4.7.0.  For more details,
+refer to the online documentation included in this distribution. The
+documentation is also available online:
+
+  http://qt.nokia.com/doc/4.7
+
+The Qt version 4.7 series is binary compatible with the 4.6.x series.
+Applications compiled for 4.6 will continue to run with 4.7.
+
+Some of the changes listed in this file include issue tracking numbers
+corresponding to tasks in the Qt Bug Tracker, the (now obsolete) Task
+Tracker, or the Merge Request queue of the public source repository.
+
+Qt Bug Tracker: http://bugreports.qt.nokia.com
+Task Tracker:   http://qt.nokia.com/developer/task-tracker
+Merge Request:  http://qt.gitorious.org
+
+****************************************************************************
+*                           General                                        *
+****************************************************************************
+
+Optimizations
+-------------
+
+ - Improved the benchmarking library's timing code
+    * Uses a faster access to the system clock
+
+ * See list of Important Behavior Changes below
+
+
+****************************************************************************
+*                          Library                                         *
+****************************************************************************
+
+QtCore
+------
+
+
+QtGui
+-----
+
+
+QtDBus
+------
+
+
+QtMultimedia
+------------
+
+
+QtNetwork
+---------
+
+
+QtOpenGL
+--------
+
+
+QtOpenVG
+--------
+
+
+QtWebKit
+--------
+
+
+QtSql
+-----
+
+
+QtSvg
+-----
+
+
+Qt Plugins
+----------
+
+
+
+****************************************************************************
+*                      Platform Specific Changes                           *
+****************************************************************************
+
+Qt for Unix (X11 and Mac OS X)
+------------------------------
+
+
+Qt for Linux/X11
+----------------
+
+
+Qt for Windows
+--------------
+
+
+Qt for Mac OS X
+---------------
+
+
+Qt for Symbian
+--------------
+
+
+
+****************************************************************************
+*                          Tools                                           *
+****************************************************************************
+
+ - Designer
+
+ - uic
+
+****************************************************************************
+*                     Important Behavior Changes                           *
+****************************************************************************
+
+
--- a/examples/animation/stickman/lifecycle.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/examples/animation/stickman/lifecycle.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -103,7 +103,7 @@
         m_animationGroup->addAnimation(pa);    
     }
 
-    // Set up intial state graph
+    // Set up initial state graph
 //! [3]
     m_machine = new QStateMachine();
     m_machine->addDefaultAnimation(m_animationGroup);
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/examples/declarative/animation/easing/content/QuitButton.qml	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,52 @@
+/****************************************************************************
+**
+** 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 QtDeclarative module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+**   * Redistributions of source code must retain the above copyright
+**     notice, this list of conditions and the following disclaimer.
+**   * Redistributions in binary form must reproduce the above copyright
+**     notice, this list of conditions and the following disclaimer in
+**     the documentation and/or other materials provided with the
+**     distribution.
+**   * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+**     the names of its contributors may be used to endorse or promote
+**     products derived from this software without specific prior written
+**     permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import Qt 4.7
+Image {
+    source: "quit.png"
+    scale: quitMouse.pressed ? 0.8 : 1.0
+    smooth: quitMouse.pressed
+    MouseArea {
+        id: quitMouse
+        anchors.fill: parent
+        anchors.margins: -10
+        onClicked: Qt.quit()
+    }
+}
\ No newline at end of file
Binary file examples/declarative/animation/easing/content/quit.png has changed
--- a/examples/declarative/animation/easing/easing.qml	Fri Sep 17 08:34:18 2010 +0300
+++ b/examples/declarative/animation/easing/easing.qml	Mon Oct 04 01:19:32 2010 +0300
@@ -39,6 +39,7 @@
 ****************************************************************************/
 
 import Qt 4.7
+import "content"
 
 Rectangle {
     id: window
@@ -134,11 +135,23 @@
     }
 
     Flickable {
-        anchors.fill: parent; contentHeight: layout.height
-
+        anchors.fill: parent
+        contentHeight: layout.height
+        Rectangle {
+            id: titlePane
+            color: "#444444"
+            height: 35
+            anchors { top: parent.top; left: parent.left; right: parent.right }
+            QuitButton {
+                id: quitButton
+                anchors.verticalCenter: parent.verticalCenter
+                anchors.right: parent.right
+                anchors.rightMargin: 10
+            }
+        }
         Column {
             id: layout
-            anchors.left: parent.left; anchors.right: parent.right
+            anchors { top: titlePane.bottom; topMargin: 10; left: parent.left; right: parent.right }
             Repeater { model: easingTypes; delegate: delegate }
         }
     }
Binary file examples/declarative/animation/states/qt-logo.png has changed
--- a/examples/declarative/animation/states/states.qml	Fri Sep 17 08:34:18 2010 +0300
+++ b/examples/declarative/animation/states/states.qml	Mon Oct 04 01:19:32 2010 +0300
@@ -48,14 +48,14 @@
     Image { 
         id: userIcon
         x: topLeftRect.x; y: topLeftRect.y
-        source: "user.png"
+        source: "qt-logo.png"
     }
 
     Rectangle {
         id: topLeftRect
 
         anchors { left: parent.left; top: parent.top; leftMargin: 10; topMargin: 20 }
-        width: 64; height: 64
+        width: 46; height: 54
         color: "Transparent"; border.color: "Gray"; radius: 6
 
         // Clicking in here sets the state to the default state, returning the image to
@@ -67,7 +67,7 @@
         id: middleRightRect
 
         anchors { right: parent.right; verticalCenter: parent.verticalCenter; rightMargin: 20 }
-        width: 64; height: 64
+        width: 46; height: 54
         color: "Transparent"; border.color: "Gray"; radius: 6
 
         // Clicking in here sets the state to 'middleRight'
@@ -78,7 +78,7 @@
         id: bottomLeftRect
 
         anchors { left: parent.left; bottom: parent.bottom; leftMargin: 10; bottomMargin: 20 }
-        width: 64; height: 64
+        width: 46; height: 54
         color: "Transparent"; border.color: "Gray"; radius: 6
 
         // Clicking in here sets the state to 'bottomLeft'
--- a/examples/declarative/animation/states/transitions.qml	Fri Sep 17 08:34:18 2010 +0300
+++ b/examples/declarative/animation/states/transitions.qml	Mon Oct 04 01:19:32 2010 +0300
@@ -54,14 +54,14 @@
     Image { 
         id: userIcon
         x: topLeftRect.x; y: topLeftRect.y
-        source: "user.png"
+        source: "qt-logo.png"
     }
 
     Rectangle {
         id: topLeftRect
 
         anchors { left: parent.left; top: parent.top; leftMargin: 10; topMargin: 20 }
-        width: 64; height: 64
+        width: 46; height: 54
         color: "Transparent"; border.color: "Gray"; radius: 6
 
         // Clicking in here sets the state to the default state, returning the image to
@@ -73,7 +73,7 @@
         id: middleRightRect
 
         anchors { right: parent.right; verticalCenter: parent.verticalCenter; rightMargin: 20 }
-        width: 64; height: 64
+        width: 46; height: 54
         color: "Transparent"; border.color: "Gray"; radius: 6
 
         // Clicking in here sets the state to 'middleRight'
@@ -84,7 +84,7 @@
         id: bottomLeftRect
 
         anchors { left: parent.left; bottom: parent.bottom; leftMargin: 10; bottomMargin: 20 }
-        width: 64; height: 64
+        width: 46; height: 54
         color: "Transparent"; border.color: "Gray"; radius: 6
 
         // Clicking in here sets the state to 'bottomLeft'
Binary file examples/declarative/animation/states/user.png has changed
--- a/examples/declarative/cppextensions/referenceexamples/adding/main.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/examples/declarative/cppextensions/referenceexamples/adding/main.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -51,13 +51,13 @@
 //![0]
 
     QDeclarativeEngine engine;
-    QDeclarativeComponent component(&engine, ":example.qml");
+    QDeclarativeComponent component(&engine, QUrl("qrc:example.qml"));
     Person *person = qobject_cast<Person *>(component.create());
     if (person) {
         qWarning() << "The person's name is" << person->name();
         qWarning() << "They wear a" << person->shoeSize() << "sized shoe";
     } else {
-        qWarning() << "An error occured";
+        qWarning() << component.errors();
     }
 
     return 0;
--- a/examples/declarative/cppextensions/referenceexamples/attached/main.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/examples/declarative/cppextensions/referenceexamples/attached/main.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -56,7 +56,7 @@
     qmlRegisterType<Girl>("People", 1,0, "Girl");
 
     QDeclarativeEngine engine;
-    QDeclarativeComponent component(&engine, ":example.qml");
+    QDeclarativeComponent component(&engine, QUrl("qrc:example.qml"));
     BirthdayParty *party = qobject_cast<BirthdayParty *>(component.create());
 
     if (party && party->host()) {
@@ -83,7 +83,7 @@
         }
 
     } else {
-        qWarning() << "An error occured";
+        qWarning() << component.errors();
     }
 
     return 0;
--- a/examples/declarative/cppextensions/referenceexamples/binding/main.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/examples/declarative/cppextensions/referenceexamples/binding/main.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -57,7 +57,7 @@
     qmlRegisterType<Girl>("People", 1,0, "Girl");
 
     QDeclarativeEngine engine;
-    QDeclarativeComponent component(&engine, ":example.qml");
+    QDeclarativeComponent component(&engine, QUrl("qrc:example.qml"));
     BirthdayParty *party = qobject_cast<BirthdayParty *>(component.create());
 
     if (party && party->host()) {
@@ -85,7 +85,7 @@
 
         party->startParty();
     } else {
-        qWarning() << "An error occured";
+        qWarning() << component.errors();
     }
 
     return app.exec();
--- a/examples/declarative/cppextensions/referenceexamples/coercion/main.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/examples/declarative/cppextensions/referenceexamples/coercion/main.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -56,7 +56,7 @@
     qmlRegisterType<Girl>("People", 1,0, "Girl");
 
     QDeclarativeEngine engine;
-    QDeclarativeComponent component(&engine, ":example.qml");
+    QDeclarativeComponent component(&engine, QUrl("qrc:example.qml"));
     BirthdayParty *party = qobject_cast<BirthdayParty *>(component.create());
 
     if (party && party->host()) {
@@ -70,7 +70,7 @@
         for (int ii = 0; ii < party->guestCount(); ++ii)
             qWarning() << "   " << party->guest(ii)->name();
     } else {
-        qWarning() << "An error occured";
+        qWarning() << component.errors();
     }
 
     return 0;
--- a/examples/declarative/cppextensions/referenceexamples/default/main.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/examples/declarative/cppextensions/referenceexamples/default/main.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -54,7 +54,7 @@
     qmlRegisterType<Girl>("People", 1,0, "Girl");
 
     QDeclarativeEngine engine;
-    QDeclarativeComponent component(&engine, ":example.qml");
+    QDeclarativeComponent component(&engine, QUrl("qrc:example.qml"));
     BirthdayParty *party = qobject_cast<BirthdayParty *>(component.create());
 
     if (party && party->host()) {
@@ -68,7 +68,7 @@
         for (int ii = 0; ii < party->guestCount(); ++ii)
             qWarning() << "   " << party->guest(ii)->name();
     } else {
-        qWarning() << "An error occured";
+        qWarning() << component.errors();
     }
 
     return 0;
--- a/examples/declarative/cppextensions/referenceexamples/extended/main.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/examples/declarative/cppextensions/referenceexamples/extended/main.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -51,14 +51,14 @@
     qmlRegisterExtendedType<QLineEdit, LineEditExtension>("People", 1,0, "QLineEdit");
 
     QDeclarativeEngine engine;
-    QDeclarativeComponent component(&engine, ":example.qml");
+    QDeclarativeComponent component(&engine, QUrl("qrc:example.qml"));
     QLineEdit *edit = qobject_cast<QLineEdit *>(component.create());
 
     if (edit) {
         edit->show();
         return app.exec();
     } else {
-        qWarning() << "An error occured";
+        qWarning() << component.errors();
         return 0;
     }
 }
--- a/examples/declarative/cppextensions/referenceexamples/grouped/main.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/examples/declarative/cppextensions/referenceexamples/grouped/main.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -55,7 +55,7 @@
     qmlRegisterType<Girl>("People", 1,0, "Girl");
 
     QDeclarativeEngine engine;
-    QDeclarativeComponent component(&engine, ":example.qml");
+    QDeclarativeComponent component(&engine, QUrl("qrc:example.qml"));
     BirthdayParty *party = qobject_cast<BirthdayParty *>(component.create());
 
     if (party && party->host()) {
@@ -78,7 +78,7 @@
             qWarning() << bestShoe->name() << "is wearing the best shoes!";
 
     } else {
-        qWarning() << "An error occured";
+        qWarning() << component.errors();
     }
 
     return 0;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/examples/declarative/cppextensions/referenceexamples/methods/birthdayparty.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,80 @@
+/****************************************************************************
+**
+** 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:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+**   * Redistributions of source code must retain the above copyright
+**     notice, this list of conditions and the following disclaimer.
+**   * Redistributions in binary form must reproduce the above copyright
+**     notice, this list of conditions and the following disclaimer in
+**     the documentation and/or other materials provided with the
+**     distribution.
+**   * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+**     the names of its contributors may be used to endorse or promote
+**     products derived from this software without specific prior written
+**     permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "birthdayparty.h"
+
+BirthdayParty::BirthdayParty(QObject *parent)
+: QObject(parent), m_host(0)
+{
+}
+
+// ![0]
+Person *BirthdayParty::host() const
+{
+    return m_host;
+}
+
+void BirthdayParty::setHost(Person *c)
+{
+    m_host = c;
+}
+
+QDeclarativeListProperty<Person> BirthdayParty::guests() 
+{
+    return QDeclarativeListProperty<Person>(this, m_guests);
+}
+
+int BirthdayParty::guestCount() const
+{
+    return m_guests.count();
+}
+
+Person *BirthdayParty::guest(int index) const
+{
+    return m_guests.at(index);
+}
+
+void BirthdayParty::invite(const QString &name)
+{
+    Person *person = new Person(this);
+    person->setName(name);
+    m_guests.append(person);
+}
+// ![0]
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/examples/declarative/cppextensions/referenceexamples/methods/birthdayparty.h	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,71 @@
+/****************************************************************************
+**
+** 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:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+**   * Redistributions of source code must retain the above copyright
+**     notice, this list of conditions and the following disclaimer.
+**   * Redistributions in binary form must reproduce the above copyright
+**     notice, this list of conditions and the following disclaimer in
+**     the documentation and/or other materials provided with the
+**     distribution.
+**   * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+**     the names of its contributors may be used to endorse or promote
+**     products derived from this software without specific prior written
+**     permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef BIRTHDAYPARTY_H
+#define BIRTHDAYPARTY_H
+
+#include <QObject>
+#include <QDeclarativeListProperty>
+#include "person.h"
+
+class BirthdayParty : public QObject
+{
+    Q_OBJECT
+    Q_PROPERTY(Person *host READ host WRITE setHost)
+    Q_PROPERTY(QDeclarativeListProperty<Person> guests READ guests)
+public:
+    BirthdayParty(QObject *parent = 0);
+
+    Person *host() const;
+    void setHost(Person *);
+
+    QDeclarativeListProperty<Person> guests();
+    int guestCount() const;
+    Person *guest(int) const;
+
+// ![0]
+    Q_INVOKABLE void invite(const QString &name);
+// ![0]
+
+private:
+    Person *m_host;
+    QList<Person *> m_guests;
+};
+
+#endif // BIRTHDAYPARTY_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/examples/declarative/cppextensions/referenceexamples/methods/example.qml	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,58 @@
+/****************************************************************************
+**
+** 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 QtDeclarative module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+**   * Redistributions of source code must retain the above copyright
+**     notice, this list of conditions and the following disclaimer.
+**   * Redistributions in binary form must reproduce the above copyright
+**     notice, this list of conditions and the following disclaimer in
+**     the documentation and/or other materials provided with the
+**     distribution.
+**   * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+**     the names of its contributors may be used to endorse or promote
+**     products derived from this software without specific prior written
+**     permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import Qt 4.7
+import People 1.0
+
+// ![0]
+BirthdayParty {
+    host: Person {
+        name: "Bob Jones"
+        shoeSize: 12
+    }
+    guests: [
+        Person { name: "Leo Hodges" },
+        Person { name: "Jack Smith" },
+        Person { name: "Anne Brown" }
+    ]
+
+    Component.onCompleted: invite("William Green")
+}
+// ![0]
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/examples/declarative/cppextensions/referenceexamples/methods/main.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,68 @@
+/****************************************************************************
+**
+** 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:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+**   * Redistributions of source code must retain the above copyright
+**     notice, this list of conditions and the following disclaimer.
+**   * Redistributions in binary form must reproduce the above copyright
+**     notice, this list of conditions and the following disclaimer in
+**     the documentation and/or other materials provided with the
+**     distribution.
+**   * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+**     the names of its contributors may be used to endorse or promote
+**     products derived from this software without specific prior written
+**     permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include <QCoreApplication>
+#include <QDeclarativeEngine>
+#include <QDeclarativeComponent>
+#include <QDebug>
+#include "birthdayparty.h"
+#include "person.h"
+
+int main(int argc, char ** argv)
+{
+    QCoreApplication app(argc, argv);
+
+    qmlRegisterType<BirthdayParty>("People", 1,0, "BirthdayParty");
+    qmlRegisterType<Person>("People", 1,0, "Person");
+
+    QDeclarativeEngine engine;
+    QDeclarativeComponent component(&engine, QUrl("qrc:example.qml"));
+    BirthdayParty *party = qobject_cast<BirthdayParty *>(component.create());
+
+    if (party && party->host()) {
+        qWarning() << party->host()->name() << "is having a birthday!";
+        qWarning() << "They are inviting:";
+        for (int ii = 0; ii < party->guestCount(); ++ii)
+            qWarning() << "   " << party->guest(ii)->name();
+    } else {
+        qWarning() << component.errors();
+    }
+
+    return 0;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/examples/declarative/cppextensions/referenceexamples/methods/methods.pro	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,18 @@
+TEMPLATE = app
+TARGET = methods
+DEPENDPATH += .
+INCLUDEPATH += .
+QT += declarative
+
+# Input
+SOURCES += main.cpp \
+           person.cpp \
+           birthdayparty.cpp 
+HEADERS += person.h \
+           birthdayparty.h
+RESOURCES += methods.qrc
+
+target.path = $$[QT_INSTALL_EXAMPLES]/declarative/extending/methods
+sources.files = $$SOURCES $$HEADERS $$RESOURCES $$FORMS methods.pro
+sources.path = $$[QT_INSTALL_EXAMPLES]/declarative/extending/methods
+INSTALLS += target sources
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/examples/declarative/cppextensions/referenceexamples/methods/methods.qrc	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,5 @@
+<!DOCTYPE RCC><RCC version="1.0">
+<qresource>
+    <file>example.qml</file>
+</qresource>
+</RCC>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/examples/declarative/cppextensions/referenceexamples/methods/person.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,66 @@
+/****************************************************************************
+**
+** 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:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+**   * Redistributions of source code must retain the above copyright
+**     notice, this list of conditions and the following disclaimer.
+**   * Redistributions in binary form must reproduce the above copyright
+**     notice, this list of conditions and the following disclaimer in
+**     the documentation and/or other materials provided with the
+**     distribution.
+**   * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+**     the names of its contributors may be used to endorse or promote
+**     products derived from this software without specific prior written
+**     permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "person.h"
+
+Person::Person(QObject *parent)
+: QObject(parent), m_shoeSize(0)
+{
+}
+
+QString Person::name() const
+{
+    return m_name;
+}
+
+void Person::setName(const QString &n)
+{
+    m_name = n;
+}
+
+int Person::shoeSize() const
+{
+    return m_shoeSize;
+}
+
+void Person::setShoeSize(int s)
+{
+    m_shoeSize = s;
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/examples/declarative/cppextensions/referenceexamples/methods/person.h	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,63 @@
+/****************************************************************************
+**
+** 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:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+**   * Redistributions of source code must retain the above copyright
+**     notice, this list of conditions and the following disclaimer.
+**   * Redistributions in binary form must reproduce the above copyright
+**     notice, this list of conditions and the following disclaimer in
+**     the documentation and/or other materials provided with the
+**     distribution.
+**   * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+**     the names of its contributors may be used to endorse or promote
+**     products derived from this software without specific prior written
+**     permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef PERSON_H
+#define PERSON_H
+
+#include <QObject>
+
+class Person : public QObject
+{
+    Q_OBJECT
+    Q_PROPERTY(QString name READ name WRITE setName)
+    Q_PROPERTY(int shoeSize READ shoeSize WRITE setShoeSize)
+public:
+    Person(QObject *parent = 0);
+
+    QString name() const;
+    void setName(const QString &);
+
+    int shoeSize() const;
+    void setShoeSize(int);
+private:
+    QString m_name;
+    int m_shoeSize;
+};
+
+#endif // PERSON_H
--- a/examples/declarative/cppextensions/referenceexamples/properties/main.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/examples/declarative/cppextensions/referenceexamples/properties/main.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -52,7 +52,7 @@
     qmlRegisterType<Person>("People", 1,0, "Person");
 
     QDeclarativeEngine engine;
-    QDeclarativeComponent component(&engine, ":example.qml");
+    QDeclarativeComponent component(&engine, QUrl("qrc:example.qml"));
     BirthdayParty *party = qobject_cast<BirthdayParty *>(component.create());
 
     if (party && party->host()) {
@@ -61,7 +61,7 @@
         for (int ii = 0; ii < party->guestCount(); ++ii)
             qWarning() << "   " << party->guest(ii)->name();
     } else {
-        qWarning() << "An error occured";
+        qWarning() << component.errors();
     }
 
     return 0;
--- a/examples/declarative/cppextensions/referenceexamples/referenceexamples.pro	Fri Sep 17 08:34:18 2010 +0300
+++ b/examples/declarative/cppextensions/referenceexamples/referenceexamples.pro	Mon Oct 04 01:19:32 2010 +0300
@@ -10,4 +10,5 @@
     grouped \
     properties \
     signal \
-    valuesource
+    valuesource \
+    methods
--- a/examples/declarative/cppextensions/referenceexamples/signal/main.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/examples/declarative/cppextensions/referenceexamples/signal/main.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -56,7 +56,7 @@
     qmlRegisterType<Girl>("People", 1,0, "Girl");
 
     QDeclarativeEngine engine;
-    QDeclarativeComponent component(&engine, ":example.qml");
+    QDeclarativeComponent component(&engine, QUrl("qrc:example.qml"));
     BirthdayParty *party = qobject_cast<BirthdayParty *>(component.create());
 
     if (party && party->host()) {
@@ -84,7 +84,7 @@
 
         party->startParty();
     } else {
-        qWarning() << "An error occured";
+        qWarning() << component.errors();
     }
 
     return 0;
--- a/examples/declarative/cppextensions/referenceexamples/valuesource/main.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/examples/declarative/cppextensions/referenceexamples/valuesource/main.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -58,7 +58,7 @@
     qmlRegisterType<Girl>("People", 1,0, "Girl");
 
     QDeclarativeEngine engine;
-    QDeclarativeComponent component(&engine, ":example.qml");
+    QDeclarativeComponent component(&engine, QUrl("qrc:example.qml"));
     BirthdayParty *party = qobject_cast<BirthdayParty *>(component.create());
 
     if (party && party->host()) {
@@ -86,7 +86,7 @@
 
         party->startParty();
     } else {
-        qWarning() << "An error occured";
+        qWarning() << component.errors();
     }
 
     return app.exec();
--- a/examples/declarative/imageelements/image/ImageCell.qml	Fri Sep 17 08:34:18 2010 +0300
+++ b/examples/declarative/imageelements/image/ImageCell.qml	Mon Oct 04 01:19:32 2010 +0300
@@ -48,7 +48,7 @@
     Image {
         id: image
         width: parent.width; height: parent.height - captionItem.height
-        source: "face-smile.png"
+        source: "qt-logo.png"
         clip: true      // only makes a difference if mode is PreserveAspectCrop
         smooth: true
     }
Binary file examples/declarative/imageelements/image/face-smile.png has changed
Binary file examples/declarative/imageelements/image/qt-logo.png has changed
--- a/examples/declarative/keyinteraction/focus/Core/ContextMenu.qml	Fri Sep 17 08:34:18 2010 +0300
+++ b/examples/declarative/keyinteraction/focus/Core/ContextMenu.qml	Mon Oct 04 01:19:32 2010 +0300
@@ -53,6 +53,13 @@
             color: "#D1DBBD"
             focus: true
             Keys.onRightPressed: mainView.focus = true
+
+            Text { 
+                anchors { top: parent.top; horizontalCenter: parent.horizontalCenter; margins: 30 }
+                color: "black"
+                font.pixelSize: 14
+                text: "Context Menu"
+            }
         }
     }
 }
--- a/examples/declarative/keyinteraction/focus/Core/GridMenu.qml	Fri Sep 17 08:34:18 2010 +0300
+++ b/examples/declarative/keyinteraction/focus/Core/GridMenu.qml	Mon Oct 04 01:19:32 2010 +0300
@@ -43,7 +43,10 @@
 FocusScope {
     property alias interactive: gridView.interactive
 
-    onActiveFocusChanged: if (activeFocus) mainView.state = ""
+    onActiveFocusChanged: {
+        if (activeFocus) 
+            mainView.state = ""
+    }
 
     Rectangle {
         anchors.fill: parent
@@ -60,7 +63,7 @@
             focus: true
             model: 12
 
-            KeyNavigation.down: listViews
+            KeyNavigation.down: listMenu
             KeyNavigation.left: contextMenu
 
             delegate: Item {
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/examples/declarative/keyinteraction/focus/Core/ListMenu.qml	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,105 @@
+/****************************************************************************
+**
+** 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 QtDeclarative module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+**   * Redistributions of source code must retain the above copyright
+**     notice, this list of conditions and the following disclaimer.
+**   * Redistributions in binary form must reproduce the above copyright
+**     notice, this list of conditions and the following disclaimer in
+**     the documentation and/or other materials provided with the
+**     distribution.
+**   * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+**     the names of its contributors may be used to endorse or promote
+**     products derived from this software without specific prior written
+**     permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import Qt 4.7
+
+FocusScope {
+    clip: true
+
+    onActiveFocusChanged: {
+        if (activeFocus) 
+            mainView.state = "showListViews"
+    }
+
+    ListView {
+        id: list1
+        y: activeFocus ? 10 : 40; width: parent.width / 3; height: parent.height - 20
+        focus: true
+        KeyNavigation.up: gridMenu; KeyNavigation.left: contextMenu; KeyNavigation.right: list2
+        model: 10; cacheBuffer: 200
+        delegate: ListViewDelegate {}
+
+        Behavior on y {
+            NumberAnimation { duration: 600; easing.type: Easing.OutQuint }
+        }
+    }
+
+    ListView {
+        id: list2
+        y: activeFocus ? 10 : 40; x: parseInt(parent.width / 3); width: parent.width / 3; height: parent.height - 20
+        KeyNavigation.up: gridMenu; KeyNavigation.left: list1; KeyNavigation.right: list3
+        model: 10; cacheBuffer: 200
+        delegate: ListViewDelegate {}
+
+        Behavior on y {
+            NumberAnimation { duration: 600; easing.type: Easing.OutQuint }
+        }
+    }
+
+    ListView {
+        id: list3
+        y: activeFocus ? 10 : 40; x: parseInt(2 * parent.width / 3); width: parent.width / 3; height: parent.height - 20
+        KeyNavigation.up: gridMenu; KeyNavigation.left: list2
+        model: 10; cacheBuffer: 200
+        delegate: ListViewDelegate {}
+
+        Behavior on y {
+            NumberAnimation { duration: 600; easing.type: Easing.OutQuint }
+        }
+    }
+
+    Rectangle { width: parent.width; height: 1; color: "#D1DBBD" }
+
+    Rectangle {
+        y: 1; width: parent.width; height: 10
+        gradient: Gradient {
+            GradientStop { position: 0.0; color: "#3E606F" }
+            GradientStop { position: 1.0; color: "transparent" }
+        }
+    }
+
+    Rectangle {
+        y: parent.height - 10; width: parent.width; height: 10
+        gradient: Gradient {
+            GradientStop { position: 1.0; color: "#3E606F" }
+            GradientStop { position: 0.0; color: "transparent" }
+        }
+    }
+}
--- a/examples/declarative/keyinteraction/focus/Core/ListViews.qml	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,102 +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 QtDeclarative module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-**   * Redistributions of source code must retain the above copyright
-**     notice, this list of conditions and the following disclaimer.
-**   * Redistributions in binary form must reproduce the above copyright
-**     notice, this list of conditions and the following disclaimer in
-**     the documentation and/or other materials provided with the
-**     distribution.
-**   * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-**     the names of its contributors may be used to endorse or promote
-**     products derived from this software without specific prior written
-**     permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import Qt 4.7
-
-FocusScope {
-    clip: true
-
-    onActiveFocusChanged: if (activeFocus) mainView.state = "showListViews"
-
-    ListView {
-        id: list1
-        y: activeFocus ? 10 : 40; width: parent.width / 3; height: parent.height - 20
-        focus: true
-        KeyNavigation.up: gridMenu; KeyNavigation.left: contextMenu; KeyNavigation.right: list2
-        model: 10; cacheBuffer: 200
-        delegate: ListViewDelegate {}
-
-        Behavior on y {
-            NumberAnimation { duration: 600; easing.type: Easing.OutQuint }
-        }
-    }
-
-    ListView {
-        id: list2
-        y: activeFocus ? 10 : 40; x: parseInt(parent.width / 3); width: parent.width / 3; height: parent.height - 20
-        KeyNavigation.up: gridMenu; KeyNavigation.left: list1; KeyNavigation.right: list3
-        model: 10; cacheBuffer: 200
-        delegate: ListViewDelegate {}
-
-        Behavior on y {
-            NumberAnimation { duration: 600; easing.type: Easing.OutQuint }
-        }
-    }
-
-    ListView {
-        id: list3
-        y: activeFocus ? 10 : 40; x: parseInt(2 * parent.width / 3); width: parent.width / 3; height: parent.height - 20
-        KeyNavigation.up: gridMenu; KeyNavigation.left: list2
-        model: 10; cacheBuffer: 200
-        delegate: ListViewDelegate {}
-
-        Behavior on y {
-            NumberAnimation { duration: 600; easing.type: Easing.OutQuint }
-        }
-    }
-
-    Rectangle { width: parent.width; height: 1; color: "#D1DBBD" }
-
-    Rectangle {
-        y: 1; width: parent.width; height: 10
-        gradient: Gradient {
-            GradientStop { position: 0.0; color: "#3E606F" }
-            GradientStop { position: 1.0; color: "transparent" }
-        }
-    }
-
-    Rectangle {
-        y: parent.height - 10; width: parent.width; height: 10
-        gradient: Gradient {
-            GradientStop { position: 1.0; color: "#3E606F" }
-            GradientStop { position: 0.0; color: "transparent" }
-        }
-    }
-}
--- a/examples/declarative/keyinteraction/focus/focus.qml	Fri Sep 17 08:34:18 2010 +0300
+++ b/examples/declarative/keyinteraction/focus/focus.qml	Mon Oct 04 01:19:32 2010 +0300
@@ -55,27 +55,28 @@
 
         GridMenu {
             id: gridMenu
+            width: parent.width; height: 320
 
-            width: parent.width; height: 320
             focus: true
             interactive: parent.activeFocus
         }
 
-        ListViews {
-            id: listViews
+        ListMenu {
+            id: listMenu
             y: 320; width: parent.width; height: 320
         }
 
         Rectangle { 
             id: shade
             anchors.fill: parent
-            color: "black"; opacity: 0 
+            color: "black"
+            opacity: 0 
         }
 
         states: State {
             name: "showListViews"
             PropertyChanges { target: gridMenu; y: -160 }
-            PropertyChanges { target: listViews; y: 160 }
+            PropertyChanges { target: listMenu; y: 160 }
         }
 
         transitions: Transition {
Binary file examples/declarative/modelviews/listview/content/pics/arrow-down.png has changed
Binary file examples/declarative/modelviews/listview/content/pics/arrow-up.png has changed
Binary file examples/declarative/modelviews/listview/content/pics/list-delete.png has changed
--- a/examples/declarative/modelviews/package/view.qml	Fri Sep 17 08:34:18 2010 +0300
+++ b/examples/declarative/modelviews/package/view.qml	Mon Oct 04 01:19:32 2010 +0300
@@ -40,7 +40,8 @@
 
 import Qt 4.7
 
-Item {
+Rectangle {
+    color: "white"
     width: 400
     height: 200
 
Binary file examples/declarative/positioners/add.png has changed
Binary file examples/declarative/positioners/del.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/examples/declarative/screenorientation/Core/Bubble.qml	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,91 @@
+/****************************************************************************
+**
+** 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 QtDeclarative 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$
+**
+****************************************************************************/
+
+import Qt 4.7
+
+Rectangle {
+    property bool rising: false
+    property bool verticalRise: true
+    property real xAttractor: 0
+    property real yAttractor: 0
+
+    width: 5 + 10*Math.random()
+    height: width
+    radius: Math.floor(width/2)-1
+    property real amountOfGray: Math.random()
+    color: Qt.rgba(amountOfGray,amountOfGray,amountOfGray,1)
+
+    y: (rising && verticalRise) ? yAttractor : Math.random()*(main.inPortrait ? main.baseHeight : main.baseWidth)
+    x: (rising && !verticalRise) ? xAttractor : Math.random()*(main.inPortrait ? main.baseWidth : main.baseHeight)
+    Behavior on x {
+        id: xBehavior
+        SmoothedAnimation { 
+            velocity: 100+Math.random()*100 
+        } 
+    }
+    Behavior on y { 
+        id: yBehavior
+        SmoothedAnimation { 
+            velocity: 100+Math.random()*100 
+        } 
+    }
+    Timer {
+       interval: 80+Math.random()*40 
+        repeat: true
+        running: true
+        onTriggered: {
+            if (rising) {
+                if (x > main.width || x < 0) {
+                    xBehavior.enabled = false;
+                    rising = false;
+                    xBehavior.enabled = true;
+                    rising = true;
+                }
+                if (y > main.height || y < 0) {
+                    yBehavior.enabled = false;
+                    rising = false;
+                    yBehavior.enabled = true;
+                    rising = true;
+                }  
+            }
+        }
+    }
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/examples/declarative/screenorientation/Core/Button.qml	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,72 @@
+/****************************************************************************
+**
+** 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 QtDeclarative 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$
+**
+****************************************************************************/
+
+import Qt 4.7
+Item {
+    id: button
+    signal clicked
+    property string text
+    property bool toggled: false
+    width: 100
+    height: 60
+    Rectangle {
+        anchors.fill: button
+        anchors.margins: mouseArea.pressed ? 3 : 2
+        color: toggled ? (mouseArea.pressed ? "#442222" : "darkred") : (mouseArea.pressed ? "#333333": "black")
+        radius: mouseArea.pressed ? 8 : 6
+        Text {
+            id: text
+            anchors.centerIn: parent
+            text: button.text
+            font.pixelSize: mouseArea.pressed ? 12 : 14
+            color: "white"
+            horizontalAlignment: Text.AlignHCenter
+            verticalAlignment: Text.AlignVCenter
+        }
+        MouseArea {
+            id: mouseArea
+            anchors.fill: parent
+            onClicked: {
+                button.clicked()
+            }
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/examples/declarative/screenorientation/Core/screenorientation.js	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,95 @@
+/****************************************************************************
+**
+** 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 QtDeclarative 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$
+**
+****************************************************************************/
+
+function printOrientation(orientation) {
+    var orientationString;
+    if (orientation == Orientation.Portrait) {
+        orientationString = "Portrait";
+    } else if (orientation == Orientation.Landscape) {
+        orientationString = "Landscape";
+    } else if (orientation == Orientation.PortraitInverted) {
+        orientationString = "Portrait inverted";
+    } else if (orientation == Orientation.LandscapeInverted) {
+        orientationString = "Landscape inverted";
+    } else {
+        orientationString = "UnknownOrientation";
+    }
+    return orientationString;
+}
+ 
+function getAngle(orientation) {
+    var angle;
+    if (orientation == Orientation.Portrait) {
+        angle = 0;
+    } else if (orientation == Orientation.Landscape) {
+        angle = 90;
+    } else if (orientation == Orientation.PortraitInverted) {
+        angle = 180;
+    } else if (orientation == Orientation.LandscapeInverted) {
+        angle = 270;
+    } else {
+        angle = 0;
+    }
+    return angle;
+}
+
+function parallel(firstOrientation, secondOrientation) {
+    var difference = getAngle(firstOrientation) - getAngle(secondOrientation)
+    return difference % 180 == 0;
+}
+
+function calculateGravityPoint(firstOrientation, secondOrientation) {
+    var position = Qt.point(0, 0);
+    var difference = getAngle(firstOrientation) - getAngle(secondOrientation)
+    if (difference < 0) {
+        difference = 360 + difference;
+    }
+    if (difference == 0) {
+        position = Qt.point(0, -10);
+    } else if (difference == 90) {
+        position = Qt.point(-10, 0);
+    } else if (difference == 180) {
+        position = Qt.point(0, 1000);
+    } else if (difference == 270) {
+        position = Qt.point(1000, 0);
+    }
+    return position;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/examples/declarative/screenorientation/screenorientation.qml	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,202 @@
+/****************************************************************************
+**
+** 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 QtDeclarative 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$
+**
+****************************************************************************/
+
+import Qt 4.7
+import "Core"
+import "Core/screenorientation.js" as ScreenOrientation
+
+Rectangle {
+    id: window
+    width: 360  
+    height: 640
+    color: "white"
+
+    Rectangle {
+        id: main
+        clip: true
+        property variant selectedOrientation: Orientation.UnknownOrientation
+        property variant activeOrientation: selectedOrientation == Orientation.UnknownOrientation ? runtime.orientation : selectedOrientation
+        state: "orientation " + activeOrientation
+        property bool inPortrait: (activeOrientation == Orientation.Portrait || activeOrientation == Orientation.PortraitInverted);
+
+        // rotation correction for landscape devices like N900
+        property bool landscapeWindow: window.width > window.height 
+        property variant rotationDelta: landscapeWindow ? -90 : 0
+        rotation: rotationDelta
+
+        // initial state is portrait
+        property real baseWidth: landscapeWindow ? window.height-10 : window.width-10
+        property real baseHeight: landscapeWindow ? window.width-10 : window.height-10
+
+        width: baseWidth
+        height: baseHeight
+        anchors.centerIn: parent
+
+        color: "black"
+        gradient: Gradient {
+            GradientStop { position: 0.0; color: Qt.rgba(0.5,0.5,0.5,0.5) }
+            GradientStop { position: 0.8; color: "black" }
+            GradientStop { position: 1.0; color: "black" }
+        }
+        Item {
+            id: bubbles
+            property bool rising: false
+            anchors.fill: parent
+            property variant gravityPoint: ScreenOrientation.calculateGravityPoint(main.activeOrientation, runtime.orientation)
+            Repeater {
+                model: 24
+                Bubble {
+                    rising: bubbles.rising
+                    verticalRise: ScreenOrientation.parallel(main.activeOrientation, runtime.orientation)
+                    xAttractor: parent.gravityPoint.x
+                    yAttractor: parent.gravityPoint.y
+                }
+            }
+            Component.onCompleted: bubbles.rising = true;
+        }
+
+        Column {
+            width: centeredText.width
+            anchors.verticalCenter: parent.verticalCenter
+            anchors.horizontalCenter: parent.horizontalCenter 
+            anchors.verticalCenterOffset: 30
+            Text {
+                text: "Orientation"
+                color: "white"
+                font.pixelSize: 22
+                anchors.horizontalCenter: parent.horizontalCenter
+            }
+            Text {
+                id: centeredText
+                text: ScreenOrientation.printOrientation(main.activeOrientation)
+                color: "white"
+                font.pixelSize: 40
+                anchors.horizontalCenter: parent.horizontalCenter
+            }
+            Text {
+                text: "sensor: " + ScreenOrientation.printOrientation(runtime.orientation)
+                color: "white"
+                font.pixelSize: 14
+                anchors.horizontalCenter: parent.horizontalCenter
+            }
+        }
+        Flow {
+            anchors.top: parent.top
+            anchors.left: parent.left
+            anchors.right: parent.right
+            anchors.margins: 10
+            spacing: 4
+            Button {
+                width: main.inPortrait ? (parent.width-4)/2 : (parent.width-8)/3
+                text: "Portrait"
+                onClicked: main.selectedOrientation = Orientation.Portrait
+                toggled: main.selectedOrientation == Orientation.Portrait
+            }
+            Button {
+                width: main.inPortrait ? (parent.width-4)/2 : (parent.width-8)/3
+                text: "Portrait inverted"
+                onClicked: main.selectedOrientation = Orientation.PortraitInverted
+                toggled: main.selectedOrientation == Orientation.PortraitInverted
+            }
+            Button {
+                width: main.inPortrait ? (parent.width-4)/2 : (parent.width-8)/3
+                text: "Landscape"
+                onClicked: main.selectedOrientation = Orientation.Landscape
+                toggled: main.selectedOrientation == Orientation.Landscape
+            }
+            Button {
+                width: main.inPortrait ? (parent.width-4)/2 : (parent.width-8)/3
+                text: "Landscape inverted"
+                onClicked: main.selectedOrientation = Orientation.LandscapeInverted
+                toggled: main.selectedOrientation == Orientation.LandscapeInverted
+            }
+            Button {
+                width: main.inPortrait ? parent.width : 2*(parent.width-2)/3
+                text: "From runtime.orientation"
+                onClicked: main.selectedOrientation = Orientation.UnknownOrientation
+                toggled: main.selectedOrientation == Orientation.UnknownOrientation
+            }
+        }
+        states: [
+            State {
+                name: "orientation " + Orientation.Landscape
+                PropertyChanges { 
+                    target: main
+                    rotation: ScreenOrientation.getAngle(Orientation.Landscape)+rotationDelta
+                    width: baseHeight
+                    height: baseWidth
+                }
+            },
+            State {
+                name: "orientation " + Orientation.PortraitInverted
+                PropertyChanges { 
+                    target: main
+                    rotation: ScreenOrientation.getAngle(Orientation.PortraitInverted)+rotationDelta
+                    width: baseWidth
+                    height: baseHeight
+                }
+            },
+            State {
+                name: "orientation " + Orientation.LandscapeInverted
+                PropertyChanges { 
+                    target: main
+                    rotation: ScreenOrientation.getAngle(Orientation.LandscapeInverted)+rotationDelta
+                    width: baseHeight
+                    height: baseWidth
+                }
+            }
+        ]
+        transitions: Transition {
+            ParallelAnimation {
+                RotationAnimation { 
+                    direction: RotationAnimation.Shortest
+                    duration: 300
+                    easing.type: Easing.InOutQuint 
+                }
+                NumberAnimation { 
+                    properties: "x,y,width,height"
+                    duration: 300
+                    easing.type: Easing.InOutQuint 
+                }
+            }
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/examples/declarative/screenorientation/screenorientation.qmlproject	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,16 @@
+import QmlProject 1.0
+
+Project {
+    /* Include .qml, .js, and image files from current directory and subdirectories */
+    QmlFiles {
+        directory: "."
+    }
+    JavaScriptFiles {
+        directory: "."
+    }
+    ImageFiles {
+        directory: "."
+    }
+    /* List of plugin directories passed to QML runtime */
+    // importPaths: [ " ../exampleplugin " ]
+}
--- a/examples/declarative/sqllocalstorage/hello.qml	Fri Sep 17 08:34:18 2010 +0300
+++ b/examples/declarative/sqllocalstorage/hello.qml	Mon Oct 04 01:19:32 2010 +0300
@@ -40,32 +40,38 @@
 //![0]
 import Qt 4.7
 
-Text {
-    text: "?"
-
-    function findGreetings() {
-        var db = openDatabaseSync("QDeclarativeExampleDB", "1.0", "The Example QML SQL!", 1000000);
+Rectangle {
+    color: "white"
+    width: 200
+    height: 100
+    
+    Text {
+        text: "?"
+        anchors.horizontalCenter: parent.horizontalCenter
+        function findGreetings() {
+            var db = openDatabaseSync("QDeclarativeExampleDB", "1.0", "The Example QML SQL!", 1000000);
 
-        db.transaction(
-            function(tx) {
-                // Create the database if it doesn't already exist
-                tx.executeSql('CREATE TABLE IF NOT EXISTS Greeting(salutation TEXT, salutee TEXT)');
-
-                // Add (another) greeting row
-                tx.executeSql('INSERT INTO Greeting VALUES(?, ?)', [ 'hello', 'world' ]);
+            db.transaction(
+                function(tx) {
+                    // Create the database if it doesn't already exist
+                    tx.executeSql('CREATE TABLE IF NOT EXISTS Greeting(salutation TEXT, salutee TEXT)');
 
-                // Show all added greetings
-                var rs = tx.executeSql('SELECT * FROM Greeting');
+                    // Add (another) greeting row
+                    tx.executeSql('INSERT INTO Greeting VALUES(?, ?)', [ 'hello', 'world' ]);
+
+                    // Show all added greetings
+                    var rs = tx.executeSql('SELECT * FROM Greeting');
 
-                var r = ""
-                for(var i = 0; i < rs.rows.length; i++) {
-                    r += rs.rows.item(i).salutation + ", " + rs.rows.item(i).salutee + "\n"
+                    var r = ""
+                    for(var i = 0; i < rs.rows.length; i++) {
+                        r += rs.rows.item(i).salutation + ", " + rs.rows.item(i).salutee + "\n"
+                    }
+                    text = r
                 }
-                text = r
-            }
-        )
+            )
+        }
+
+        Component.onCompleted: findGreetings()
     }
-
-    Component.onCompleted: findGreetings()
 }
 //![0]
--- a/examples/declarative/threading/threadedlistmodel/timedisplay.qml	Fri Sep 17 08:34:18 2010 +0300
+++ b/examples/declarative/threading/threadedlistmodel/timedisplay.qml	Mon Oct 04 01:19:32 2010 +0300
@@ -41,31 +41,35 @@
 // ![0]
 import Qt 4.7
 
-ListView {
+Rectangle {
+    color: "white"
     width: 200
     height: 300
 
-    model: listModel
-    delegate: Component {
-        Text { text: time }
-    }
+    ListView {
+        anchors.fill: parent
+        model: listModel
+        delegate: Component {
+            Text { text: time }
+        }
 
-    ListModel { id: listModel }
+        ListModel { id: listModel }
 
-    WorkerScript {
-        id: worker
-        source: "dataloader.js"
-    }
+        WorkerScript {
+            id: worker
+            source: "dataloader.js"
+        }
 
-    Timer {
-        id: timer
-        interval: 2000; repeat: true
-        running: true
-        triggeredOnStart: true
+        Timer {
+            id: timer
+            interval: 2000; repeat: true
+            running: true
+            triggeredOnStart: true
 
-        onTriggered: {
-            var msg = {'action': 'appendCurrentTime', 'model': listModel};
-            worker.sendMessage(msg);
+            onTriggered: {
+                var msg = {'action': 'appendCurrentTime', 'model': listModel};
+                worker.sendMessage(msg);
+            }
         }
     }
 }
--- a/examples/declarative/toys/clocks/clocks.qml	Fri Sep 17 08:34:18 2010 +0300
+++ b/examples/declarative/toys/clocks/clocks.qml	Mon Oct 04 01:19:32 2010 +0300
@@ -51,4 +51,9 @@
         Clock { city: "Mumbai"; shift: 5.5 }
         Clock { city: "Tokyo"; shift: 9 }
     }
+    QuitButton {
+        anchors.right: parent.right
+        anchors.top: parent.top
+        anchors.margins: 10
+    }
 }
--- a/examples/declarative/toys/clocks/content/Clock.qml	Fri Sep 17 08:34:18 2010 +0300
+++ b/examples/declarative/toys/clocks/content/Clock.qml	Mon Oct 04 01:19:32 2010 +0300
@@ -77,7 +77,7 @@
             origin.x: 7.5; origin.y: 73;
             angle: (clock.hours * 30) + (clock.minutes * 0.5)
             Behavior on angle {
-                RotationAnimation{ direction: RotationAnimation.Clockwise }
+                SpringAnimation { spring: 2; damping: 0.2; modulus: 360 }
             }
         }
     }
@@ -91,7 +91,7 @@
             origin.x: 6.5; origin.y: 83;
             angle: clock.minutes * 6
             Behavior on angle {
-                RotationAnimation{ direction: RotationAnimation.Clockwise }
+                SpringAnimation { spring: 2; damping: 0.2; modulus: 360 }
             }
         }
     }
@@ -105,7 +105,7 @@
             origin.x: 2.5; origin.y: 80;
             angle: clock.seconds * 6
             Behavior on angle {
-                RotationAnimation{ direction: RotationAnimation.Clockwise }
+                SpringAnimation { spring: 2; damping: 0.2; modulus: 360 }
             }
         }
     }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/examples/declarative/toys/clocks/content/QuitButton.qml	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,52 @@
+/****************************************************************************
+**
+** 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 QtDeclarative module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+**   * Redistributions of source code must retain the above copyright
+**     notice, this list of conditions and the following disclaimer.
+**   * Redistributions in binary form must reproduce the above copyright
+**     notice, this list of conditions and the following disclaimer in
+**     the documentation and/or other materials provided with the
+**     distribution.
+**   * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+**     the names of its contributors may be used to endorse or promote
+**     products derived from this software without specific prior written
+**     permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import Qt 4.7
+Image {
+    source: "quit.png"
+    scale: quitMouse.pressed ? 0.8 : 1.0
+    smooth: quitMouse.pressed
+    MouseArea {
+        id: quitMouse
+        anchors.fill: parent
+        anchors.margins: -10
+        onClicked: Qt.quit()
+    }
+}
\ No newline at end of file
Binary file examples/declarative/toys/clocks/content/quit.png has changed
--- a/examples/declarative/toys/dynamicscene/dynamicscene.qml	Fri Sep 17 08:34:18 2010 +0300
+++ b/examples/declarative/toys/dynamicscene/dynamicscene.qml	Mon Oct 04 01:19:32 2010 +0300
@@ -136,10 +136,11 @@
             Text { text: "Drag an item into the scene." }
 
             Rectangle {
-                width: childrenRect.width + 10; height: childrenRect.height + 10
+                width: palette.width + 10; height: palette.height + 10
                 border.color: "black"
 
                 Row {
+                    id: palette
                     anchors.centerIn: parent
                     spacing: 8
 
--- a/examples/declarative/toys/tvtennis/tvtennis.qml	Fri Sep 17 08:34:18 2010 +0300
+++ b/examples/declarative/toys/tvtennis/tvtennis.qml	Mon Oct 04 01:19:32 2010 +0300
@@ -87,14 +87,14 @@
         color: "Lime"
         x: 2; width: 20; height: 90
         y: ball.direction == 'left' ? ball.y - 45 : page.height/2 -45;
-        Behavior on y { SpringAnimation{ spring: 1; damping: .1; } }
+        Behavior on y { SpringAnimation{ velocity: 300 } }
     }
     Rectangle {
         id: rightBat
         color: "Lime"
         x: page.width - 22; width: 20; height: 90
         y: ball.direction == 'right' ? ball.y - 45 : page.height/2 -45;
-        Behavior on y { SpringAnimation{ spring: 1; damping: .1; } }
+        Behavior on y { SpringAnimation{ velocity: 300 } }
     }
 
     // The rest, to make it look realistic, if neither ever scores...
--- a/examples/declarative/tutorials/extending/chapter6-plugins/chartsplugin.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/examples/declarative/tutorials/extending/chapter6-plugins/chartsplugin.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -41,7 +41,7 @@
 //![0]
 #include "piechart.h"
 #include "pieslice.h"
-#include <QtDeclarative/qdeclarative.h>
+#include <qdeclarative.h>
 
 void ChartsPlugin::registerTypes(const char *uri)
 {
--- a/examples/declarative/tutorials/extending/chapter6-plugins/chartsplugin.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/examples/declarative/tutorials/extending/chapter6-plugins/chartsplugin.h	Mon Oct 04 01:19:32 2010 +0300
@@ -41,7 +41,7 @@
 #define CHARTSPLUGIN_H
 
 //![0]
-#include <QtDeclarative/QDeclarativeExtensionPlugin>
+#include <QDeclarativeExtensionPlugin>
 
 class ChartsPlugin : public QDeclarativeExtensionPlugin
 {
--- a/examples/declarative/tutorials/samegame/samegame1/samegame.qml	Fri Sep 17 08:34:18 2010 +0300
+++ b/examples/declarative/tutorials/samegame/samegame1/samegame.qml	Mon Oct 04 01:19:32 2010 +0300
@@ -55,7 +55,7 @@
         Image {
             id: background
             anchors.fill: parent
-            source: "../shared/pics/background.png"
+            source: "../shared/pics/background.jpg"
             fillMode: Image.PreserveAspectCrop
         }
     }
--- a/examples/declarative/tutorials/samegame/samegame4/content/samegame.js	Fri Sep 17 08:34:18 2010 +0300
+++ b/examples/declarative/tutorials/samegame/samegame4/content/samegame.js	Mon Oct 04 01:19:32 2010 +0300
@@ -127,7 +127,7 @@
             } else {
                 if (fallDist > 0) {
                     var obj = board[index(column, row)];
-                    obj.y += fallDist * gameCanvas.blockSize;
+                    obj.y = (row + fallDist) * gameCanvas.blockSize;
                     board[index(column, row + fallDist)] = obj;
                     board[index(column, row)] = null;
                 }
@@ -145,7 +145,7 @@
                     obj = board[index(column, row)];
                     if (obj == null)
                         continue;
-                    obj.x -= fallDist * gameCanvas.blockSize;
+                    obj.x = (fallDist - column) * gameCanvas.blockSize;
                     board[index(column - fallDist, row)] = obj;
                     board[index(column, row)] = null;
                 }
--- a/examples/declarative/ui-components/dialcontrol/content/Dial.qml	Fri Sep 17 08:34:18 2010 +0300
+++ b/examples/declarative/ui-components/dialcontrol/content/Dial.qml	Mon Oct 04 01:19:32 2010 +0300
@@ -68,6 +68,7 @@
         transform: Rotation {
             id: needleRotation
             origin.x: 5; origin.y: 65
+            //! [needle angle]
             angle: Math.min(Math.max(-130, root.value*2.6 - 130), 133)
             Behavior on angle {
                 SpringAnimation {
@@ -75,6 +76,7 @@
                     damping: .15
                 }
             }
+            //! [needle angle]
         }
     }
 //! [needle]
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/examples/declarative/ui-components/dialcontrol/content/QuitButton.qml	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,52 @@
+/****************************************************************************
+**
+** 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 QtDeclarative module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+**   * Redistributions of source code must retain the above copyright
+**     notice, this list of conditions and the following disclaimer.
+**   * Redistributions in binary form must reproduce the above copyright
+**     notice, this list of conditions and the following disclaimer in
+**     the documentation and/or other materials provided with the
+**     distribution.
+**   * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+**     the names of its contributors may be used to endorse or promote
+**     products derived from this software without specific prior written
+**     permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import Qt 4.7
+Image {
+    source: "quit.png"
+    scale: quitMouse.pressed ? 0.8 : 1.0
+    smooth: quitMouse.pressed
+    MouseArea {
+        id: quitMouse
+        anchors.fill: parent
+        anchors.margins: -10
+        onClicked: Qt.quit()
+    }
+}
\ No newline at end of file
Binary file examples/declarative/ui-components/dialcontrol/content/quit.png has changed
--- a/examples/declarative/ui-components/dialcontrol/dialcontrol.qml	Fri Sep 17 08:34:18 2010 +0300
+++ b/examples/declarative/ui-components/dialcontrol/dialcontrol.qml	Mon Oct 04 01:19:32 2010 +0300
@@ -38,8 +38,10 @@
 **
 ****************************************************************************/
 
+//! [imports]
 import Qt 4.7
 import "content"
+//! [imports]
 
 //! [0]
 Rectangle {
@@ -86,5 +88,10 @@
             }
         }
     }
+    QuitButton {
+        anchors.right: parent.right
+        anchors.top: parent.top
+        anchors.margins: 10
+    }
 }
-//! [0]
\ No newline at end of file
+//! [0]
--- a/examples/declarative/ui-components/searchbox/SearchBox.qml	Fri Sep 17 08:34:18 2010 +0300
+++ b/examples/declarative/ui-components/searchbox/SearchBox.qml	Mon Oct 04 01:19:32 2010 +0300
@@ -75,6 +75,7 @@
         id: textInput
         anchors { left: parent.left; leftMargin: 8; right: clear.left; rightMargin: 8; verticalCenter: parent.verticalCenter }
         focus: true
+        selectByMouse: true
     }
 
     Image {
--- a/examples/examples.pro	Fri Sep 17 08:34:18 2010 +0300
+++ b/examples/examples.pro	Mon Oct 04 01:19:32 2010 +0300
@@ -26,7 +26,7 @@
                 tutorials \
                 widgets \
                 uitools \
-                multitouch \
+                touch \
                 gestures
 }
 
--- a/examples/graphicsview/diagramscene/mainwindow.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/examples/graphicsview/diagramscene/mainwindow.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -45,6 +45,7 @@
 #include "diagramitem.h"
 #include "diagramscene.h"
 #include "diagramtextitem.h"
+#include "arrow.h"
 
 const int InsertTextButton = 10;
 
@@ -55,7 +56,7 @@
     createToolBox();
     createMenus();
 
-    scene = new DiagramScene(itemMenu);
+    scene = new DiagramScene(itemMenu, this);
     scene->setSceneRect(QRectF(0, 0, 5000, 5000));
     connect(scene, SIGNAL(itemInserted(DiagramItem*)),
             this, SLOT(itemInserted(DiagramItem*)));
@@ -123,11 +124,22 @@
 void MainWindow::deleteItem()
 {
     foreach (QGraphicsItem *item, scene->selectedItems()) {
-        if (item->type() == DiagramItem::Type) {
-            qgraphicsitem_cast<DiagramItem *>(item)->removeArrows();
+        if (item->type() == Arrow::Type) {
+            scene->removeItem(item);
+            Arrow *arrow = qgraphicsitem_cast<Arrow *>(item);
+            arrow->startItem()->removeArrow(arrow);
+            arrow->endItem()->removeArrow(arrow);
+            delete item;
         }
-        scene->removeItem(item);
     }
+
+    foreach (QGraphicsItem *item, scene->selectedItems()) {
+         if (item->type() == DiagramItem::Type) {
+             qgraphicsitem_cast<DiagramItem *>(item)->removeArrows();
+         }
+         scene->removeItem(item);
+         delete item;
+     }
 }
 //! [3]
 
@@ -313,7 +325,7 @@
 //! [21]
 void MainWindow::createToolBox()
 {
-    buttonGroup = new QButtonGroup;
+    buttonGroup = new QButtonGroup(this);
     buttonGroup->setExclusive(false);
     connect(buttonGroup, SIGNAL(buttonClicked(int)),
             this, SLOT(buttonGroupClicked(int)));
@@ -345,7 +357,7 @@
     QWidget *itemWidget = new QWidget;
     itemWidget->setLayout(layout);
 
-    backgroundButtonGroup = new QButtonGroup;
+    backgroundButtonGroup = new QButtonGroup(this);
     connect(backgroundButtonGroup, SIGNAL(buttonClicked(QAbstractButton*)),
             this, SLOT(backgroundButtonGroupClicked(QAbstractButton*)));
 
@@ -460,7 +472,6 @@
     editToolBar->addAction(sendBackAction);
 
     fontCombo = new QFontComboBox();
-    fontSizeCombo = new QComboBox();
     connect(fontCombo, SIGNAL(currentFontChanged(QFont)),
             this, SLOT(currentFontChanged(QFont)));
 
@@ -526,7 +537,7 @@
     linePointerButton->setCheckable(true);
     linePointerButton->setIcon(QIcon(":/images/linepointer.png"));
 
-    pointerTypeGroup = new QButtonGroup;
+    pointerTypeGroup = new QButtonGroup(this);
     pointerTypeGroup->addButton(pointerButton, int(DiagramScene::MoveItem));
     pointerTypeGroup->addButton(linePointerButton,
                                 int(DiagramScene::InsertLine));
@@ -605,7 +616,7 @@
     names << tr("black") << tr("white") << tr("red") << tr("blue")
           << tr("yellow");
 
-    QMenu *colorMenu = new QMenu;
+    QMenu *colorMenu = new QMenu(this);
     for (int i = 0; i < colors.count(); ++i) {
         QAction *action = new QAction(names.at(i), this);
         action->setData(colors.at(i));
--- a/examples/multitouch/dials/dials.pro	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,2 +0,0 @@
-SOURCES += main.cpp
-FORMS += dials.ui
--- a/examples/multitouch/dials/dials.ui	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,77 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>Dials</class>
- <widget class="QWidget" name="Dials">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>400</width>
-    <height>300</height>
-   </rect>
-  </property>
-  <property name="windowTitle">
-   <string>Form</string>
-  </property>
-  <layout class="QGridLayout" name="gridLayout">
-   <item row="0" column="0">
-    <widget class="QDial" name="dial_1">
-     <property name="notchesVisible">
-      <bool>true</bool>
-     </property>
-    </widget>
-   </item>
-   <item row="0" column="1">
-    <widget class="QDial" name="dial_2">
-     <property name="notchesVisible">
-      <bool>true</bool>
-     </property>
-    </widget>
-   </item>
-   <item row="0" column="2">
-    <widget class="QDial" name="dial_3">
-     <property name="notchesVisible">
-      <bool>true</bool>
-     </property>
-    </widget>
-   </item>
-   <item row="0" column="3">
-    <widget class="QDial" name="dial_4">
-     <property name="notchesVisible">
-      <bool>true</bool>
-     </property>
-    </widget>
-   </item>
-   <item row="1" column="0">
-    <widget class="QDial" name="dial_5">
-     <property name="notchesVisible">
-      <bool>true</bool>
-     </property>
-    </widget>
-   </item>
-   <item row="1" column="1">
-    <widget class="QDial" name="dial_6">
-     <property name="notchesVisible">
-      <bool>true</bool>
-     </property>
-    </widget>
-   </item>
-   <item row="1" column="2">
-    <widget class="QDial" name="dial_7">
-     <property name="notchesVisible">
-      <bool>true</bool>
-     </property>
-    </widget>
-   </item>
-   <item row="1" column="3">
-    <widget class="QDial" name="dial_8">
-     <property name="notchesVisible">
-      <bool>true</bool>
-     </property>
-    </widget>
-   </item>
-  </layout>
- </widget>
- <resources/>
- <connections/>
-</ui>
--- a/examples/multitouch/dials/main.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,58 +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 QtGui module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-**   * Redistributions of source code must retain the above copyright
-**     notice, this list of conditions and the following disclaimer.
-**   * Redistributions in binary form must reproduce the above copyright
-**     notice, this list of conditions and the following disclaimer in
-**     the documentation and/or other materials provided with the
-**     distribution.
-**   * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-**     the names of its contributors may be used to endorse or promote
-**     products derived from this software without specific prior written
-**     permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <QApplication>
-#include <QWidget>
-#include <QDial>
-
-#include "ui_dials.h"
-
-int main(int argc, char **argv)
-{
-    QApplication app(argc, argv);
-    QWidget window;
-    Ui::Dials dialsUi;
-    dialsUi.setupUi(&window);
-    QList<QAbstractSlider *> sliders = window.findChildren<QAbstractSlider *>();
-    foreach (QAbstractSlider *slider, sliders)
-        slider->setAttribute(Qt::WA_AcceptTouchEvents);
-    window.showMaximized();
-    return app.exec();
-}
--- a/examples/multitouch/fingerpaint/fingerpaint.pro	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,11 +0,0 @@
-HEADERS       = mainwindow.h \
-                scribblearea.h
-SOURCES       = main.cpp \
-                mainwindow.cpp \
-                scribblearea.cpp
-
-# install
-target.path = $$[QT_INSTALL_EXAMPLES]/multitouch/fingerpaint
-sources.files = $$SOURCES $$HEADERS $$RESOURCES $$FORMS fingerpaint.pro
-sources.path = $$[QT_INSTALL_EXAMPLES]/multitouch/fingerpaint
-INSTALLS += target sources
--- a/examples/multitouch/fingerpaint/main.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,51 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-**   * Redistributions of source code must retain the above copyright
-**     notice, this list of conditions and the following disclaimer.
-**   * Redistributions in binary form must reproduce the above copyright
-**     notice, this list of conditions and the following disclaimer in
-**     the documentation and/or other materials provided with the
-**     distribution.
-**   * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-**     the names of its contributors may be used to endorse or promote
-**     products derived from this software without specific prior written
-**     permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <QApplication>
-
-#include "mainwindow.h"
-
-int main(int argc, char *argv[])
-{
-    QApplication app(argc, argv);
-    MainWindow window;
-    window.showMaximized();
-    return app.exec();
-}
--- a/examples/multitouch/fingerpaint/mainwindow.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,217 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-**   * Redistributions of source code must retain the above copyright
-**     notice, this list of conditions and the following disclaimer.
-**   * Redistributions in binary form must reproduce the above copyright
-**     notice, this list of conditions and the following disclaimer in
-**     the documentation and/or other materials provided with the
-**     distribution.
-**   * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-**     the names of its contributors may be used to endorse or promote
-**     products derived from this software without specific prior written
-**     permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <QtGui>
-
-#include "mainwindow.h"
-#include "scribblearea.h"
-
-//! [0]
-MainWindow::MainWindow()
-{
-    scribbleArea = new ScribbleArea;
-    setCentralWidget(scribbleArea);
-
-    createActions();
-    createMenus();
-
-    setWindowTitle(tr("Finger Paint"));
-    resize(500, 500);
-}
-//! [0]
-
-//! [1]
-void MainWindow::closeEvent(QCloseEvent *event)
-//! [1] //! [2]
-{
-    if (maybeSave()) {
-        event->accept();
-    } else {
-        event->ignore();
-    }
-}
-//! [2]
-
-//! [3]
-void MainWindow::open()
-//! [3] //! [4]
-{
-    if (maybeSave()) {
-        QString fileName = QFileDialog::getOpenFileName(this,
-                                   tr("Open File"), QDir::currentPath());
-        if (!fileName.isEmpty())
-            scribbleArea->openImage(fileName);
-    }
-}
-//! [4]
-
-//! [5]
-void MainWindow::save()
-//! [5] //! [6]
-{
-    QAction *action = qobject_cast<QAction *>(sender());
-    QByteArray fileFormat = action->data().toByteArray();
-    saveFile(fileFormat);
-}
-//! [6]
-
-//! [11]
-void MainWindow::about()
-//! [11] //! [12]
-{
-    QMessageBox::about(this, tr("About Scribble"),
-            tr("<p>The <b>Scribble</b> example shows how to use QMainWindow as the "
-               "base widget for an application, and how to reimplement some of "
-               "QWidget's event handlers to receive the events generated for "
-               "the application's widgets:</p><p> We reimplement the mouse event "
-               "handlers to facilitate drawing, the paint event handler to "
-               "update the application and the resize event handler to optimize "
-               "the application's appearance. In addition we reimplement the "
-               "close event handler to intercept the close events before "
-               "terminating the application.</p><p> The example also demonstrates "
-               "how to use QPainter to draw an image in real time, as well as "
-               "to repaint widgets.</p>"));
-}
-//! [12]
-
-//! [13]
-void MainWindow::createActions()
-//! [13] //! [14]
-{
-    openAct = new QAction(tr("&Open..."), this);
-    openAct->setShortcut(tr("Ctrl+O"));
-    connect(openAct, SIGNAL(triggered()), this, SLOT(open()));
-
-    foreach (QByteArray format, QImageWriter::supportedImageFormats()) {
-        QString text = tr("%1...").arg(QString(format).toUpper());
-
-        QAction *action = new QAction(text, this);
-        action->setData(format);
-        connect(action, SIGNAL(triggered()), this, SLOT(save()));
-        saveAsActs.append(action);
-    }
-
-    printAct = new QAction(tr("&Print..."), this);
-    connect(printAct, SIGNAL(triggered()), scribbleArea, SLOT(print()));
-
-    exitAct = new QAction(tr("E&xit"), this);
-    exitAct->setShortcut(tr("Ctrl+Q"));
-    connect(exitAct, SIGNAL(triggered()), this, SLOT(close()));
-
-    clearScreenAct = new QAction(tr("&Clear Screen"), this);
-    clearScreenAct->setShortcut(tr("Ctrl+L"));
-    connect(clearScreenAct, SIGNAL(triggered()),
-            scribbleArea, SLOT(clearImage()));
-
-    aboutAct = new QAction(tr("&About"), this);
-    connect(aboutAct, SIGNAL(triggered()), this, SLOT(about()));
-
-    aboutQtAct = new QAction(tr("About &Qt"), this);
-    connect(aboutQtAct, SIGNAL(triggered()), qApp, SLOT(aboutQt()));
-}
-//! [14]
-
-//! [15]
-void MainWindow::createMenus()
-//! [15] //! [16]
-{
-    saveAsMenu = new QMenu(tr("&Save As"), this);
-    foreach (QAction *action, saveAsActs)
-        saveAsMenu->addAction(action);
-
-    fileMenu = new QMenu(tr("&File"), this);
-    fileMenu->addAction(openAct);
-    fileMenu->addMenu(saveAsMenu);
-    fileMenu->addAction(printAct);
-    fileMenu->addSeparator();
-    fileMenu->addAction(exitAct);
-
-    optionMenu = new QMenu(tr("&Options"), this);
-    optionMenu->addAction(clearScreenAct);
-
-    helpMenu = new QMenu(tr("&Help"), this);
-    helpMenu->addAction(aboutAct);
-    helpMenu->addAction(aboutQtAct);
-
-    menuBar()->addMenu(fileMenu);
-    menuBar()->addMenu(optionMenu);
-    menuBar()->addMenu(helpMenu);
-}
-//! [16]
-
-//! [17]
-bool MainWindow::maybeSave()
-//! [17] //! [18]
-{
-    if (scribbleArea->isModified()) {
-       QMessageBox::StandardButton ret;
-       ret = QMessageBox::warning(this, tr("Scribble"),
-                          tr("The image has been modified.\n"
-                             "Do you want to save your changes?"),
-                          QMessageBox::Save | QMessageBox::Discard
-			  | QMessageBox::Cancel);
-        if (ret == QMessageBox::Save) {
-            return saveFile("png");
-        } else if (ret == QMessageBox::Cancel) {
-            return false;
-        }
-    }
-    return true;
-}
-//! [18]
-
-//! [19]
-bool MainWindow::saveFile(const QByteArray &fileFormat)
-//! [19] //! [20]
-{
-    QString initialPath = QDir::currentPath() + "/untitled." + fileFormat;
-
-    QString fileName = QFileDialog::getSaveFileName(this, tr("Save As"),
-                               initialPath,
-                               tr("%1 Files (*.%2);;All Files (*)")
-                               .arg(QString(fileFormat.toUpper()))
-                               .arg(QString(fileFormat)));
-    if (fileName.isEmpty()) {
-        return false;
-    } else {
-        return scribbleArea->saveImage(fileName, fileFormat);
-    }
-}
-//! [20]
--- a/examples/multitouch/fingerpaint/mainwindow.h	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,88 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-**   * Redistributions of source code must retain the above copyright
-**     notice, this list of conditions and the following disclaimer.
-**   * Redistributions in binary form must reproduce the above copyright
-**     notice, this list of conditions and the following disclaimer in
-**     the documentation and/or other materials provided with the
-**     distribution.
-**   * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-**     the names of its contributors may be used to endorse or promote
-**     products derived from this software without specific prior written
-**     permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef MAINWINDOW_H
-#define MAINWINDOW_H
-
-#include <QList>
-#include <QMainWindow>
-
-class ScribbleArea;
-
-//! [0]
-class MainWindow : public QMainWindow
-{
-    Q_OBJECT
-
-public:
-    MainWindow();
-
-protected:
-    void closeEvent(QCloseEvent *event);
-
-private slots:
-    void open();
-    void save();
-    void about();
-
-private:
-    void createActions();
-    void createMenus();
-    bool maybeSave();
-    bool saveFile(const QByteArray &fileFormat);
-
-    ScribbleArea *scribbleArea;
-
-    QMenu *saveAsMenu;
-    QMenu *fileMenu;
-    QMenu *optionMenu;
-    QMenu *helpMenu;
-
-    QAction *openAct;
-    QList<QAction *> saveAsActs;
-    QAction *exitAct;
-    QAction *printAct;
-    QAction *clearScreenAct;
-    QAction *aboutAct;
-    QAction *aboutQtAct;
-};
-//! [0]
-
-#endif
--- a/examples/multitouch/fingerpaint/scribblearea.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,211 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-**   * Redistributions of source code must retain the above copyright
-**     notice, this list of conditions and the following disclaimer.
-**   * Redistributions in binary form must reproduce the above copyright
-**     notice, this list of conditions and the following disclaimer in
-**     the documentation and/or other materials provided with the
-**     distribution.
-**   * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-**     the names of its contributors may be used to endorse or promote
-**     products derived from this software without specific prior written
-**     permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <QtGui>
-
-#include "scribblearea.h"
-
-//! [0]
-ScribbleArea::ScribbleArea(QWidget *parent)
-    : QWidget(parent)
-{
-    setAttribute(Qt::WA_AcceptTouchEvents);
-    setAttribute(Qt::WA_StaticContents);
-    modified = false;
-
-    myPenColors
-            << QColor("green")
-            << QColor("purple")
-            << QColor("red")
-            << QColor("blue")
-            << QColor("yellow")
-
-            << QColor("pink")
-            << QColor("orange")
-            << QColor("brown")
-            << QColor("grey")
-            << QColor("black");
-}
-//! [0]
-
-//! [1]
-bool ScribbleArea::openImage(const QString &fileName)
-//! [1] //! [2]
-{
-    QImage loadedImage;
-    if (!loadedImage.load(fileName))
-        return false;
-
-    QSize newSize = loadedImage.size().expandedTo(size());
-    resizeImage(&loadedImage, newSize);
-    image = loadedImage;
-    modified = false;
-    update();
-    return true;
-}
-//! [2]
-
-//! [3]
-bool ScribbleArea::saveImage(const QString &fileName, const char *fileFormat)
-//! [3] //! [4]
-{
-    QImage visibleImage = image;
-    resizeImage(&visibleImage, size());
-
-    if (visibleImage.save(fileName, fileFormat)) {
-        modified = false;
-        return true;
-    } else {
-        return false;
-    }
-}
-//! [4]
-
-//! [9]
-void ScribbleArea::clearImage()
-//! [9] //! [10]
-{
-    image.fill(qRgb(255, 255, 255));
-    modified = true;
-    update();
-}
-//! [10]
-
-//! [12] //! [13]
-void ScribbleArea::paintEvent(QPaintEvent *event)
-//! [13] //! [14]
-{
-    QPainter painter(this);
-    const QRect rect = event->rect();
-    painter.drawImage(rect.topLeft(), image, rect);
-}
-//! [14]
-
-//! [15]
-void ScribbleArea::resizeEvent(QResizeEvent *event)
-//! [15] //! [16]
-{
-    if (width() > image.width() || height() > image.height()) {
-        int newWidth = qMax(width() + 128, image.width());
-        int newHeight = qMax(height() + 128, image.height());
-        resizeImage(&image, QSize(newWidth, newHeight));
-        update();
-    }
-    QWidget::resizeEvent(event);
-}
-//! [16]
-
-//! [19]
-void ScribbleArea::resizeImage(QImage *image, const QSize &newSize)
-//! [19] //! [20]
-{
-    if (image->size() == newSize)
-        return;
-
-    QImage newImage(newSize, QImage::Format_RGB32);
-    newImage.fill(qRgb(255, 255, 255));
-    QPainter painter(&newImage);
-    painter.drawImage(QPoint(0, 0), *image);
-    *image = newImage;
-}
-//! [20]
-
-//! [21]
-void ScribbleArea::print()
-{
-#ifndef QT_NO_PRINTER
-    QPrinter printer(QPrinter::HighResolution);
-
-    QPrintDialog *printDialog = new QPrintDialog(&printer, this);
-//! [21] //! [22]
-    if (printDialog->exec() == QDialog::Accepted) {
-        QPainter painter(&printer);
-        QRect rect = painter.viewport();
-        QSize size = image.size();
-        size.scale(rect.size(), Qt::KeepAspectRatio);
-        painter.setViewport(rect.x(), rect.y(), size.width(), size.height());
-        painter.setWindow(image.rect());
-        painter.drawImage(0, 0, image);
-    }
-#endif // QT_NO_PRINTER
-}
-//! [22]
-
-bool ScribbleArea::event(QEvent *event)
-{
-    switch (event->type()) {
-    case QEvent::TouchBegin:
-    case QEvent::TouchUpdate:
-    case QEvent::TouchEnd:
-    {
-        QList<QTouchEvent::TouchPoint> touchPoints = static_cast<QTouchEvent *>(event)->touchPoints();
-        foreach (const QTouchEvent::TouchPoint &touchPoint, touchPoints) {
-            switch (touchPoint.state()) {
-            case Qt::TouchPointStationary:
-                // don't do anything if this touch point hasn't moved
-                continue;
-            default:
-                {
-                    QRectF rect = touchPoint.rect();
-                    if (rect.isEmpty()) {
-                        qreal diameter = qreal(50) * touchPoint.pressure();
-                        rect.setSize(QSizeF(diameter, diameter));
-                    }
-
-                    QPainter painter(&image);
-                    painter.setPen(Qt::NoPen);
-                    painter.setBrush(myPenColors.at(touchPoint.id() % myPenColors.count()));
-                    painter.drawEllipse(rect);
-                    painter.end();
-
-                    modified = true;
-                    int rad = 2;
-                    update(rect.toRect().adjusted(-rad,-rad, +rad, +rad));
-                }
-                break;
-            }
-        }
-        break;
-    }
-    default:
-        return QWidget::event(event);
-    }
-    return true;
-}
--- a/examples/multitouch/fingerpaint/scribblearea.h	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,80 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-**   * Redistributions of source code must retain the above copyright
-**     notice, this list of conditions and the following disclaimer.
-**   * Redistributions in binary form must reproduce the above copyright
-**     notice, this list of conditions and the following disclaimer in
-**     the documentation and/or other materials provided with the
-**     distribution.
-**   * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-**     the names of its contributors may be used to endorse or promote
-**     products derived from this software without specific prior written
-**     permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef SCRIBBLEAREA_H
-#define SCRIBBLEAREA_H
-
-#include <QColor>
-#include <QImage>
-#include <QPoint>
-#include <QWidget>
-
-//! [0]
-class ScribbleArea : public QWidget
-{
-    Q_OBJECT
-
-public:
-    ScribbleArea(QWidget *parent = 0);
-
-    bool openImage(const QString &fileName);
-    bool saveImage(const QString &fileName, const char *fileFormat);
-
-    bool isModified() const { return modified; }
-
-public slots:
-    void clearImage();
-    void print();
-
-protected:
-    void paintEvent(QPaintEvent *event);
-    void resizeEvent(QResizeEvent *event);
-    bool event(QEvent *event);
-
-private:
-    void resizeImage(QImage *image, const QSize &newSize);
-
-    bool modified;
-    QList<QColor> myPenColors;
-    QImage image;
-};
-//! [0]
-
-#endif
--- a/examples/multitouch/knobs/knob.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,88 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-**   * Redistributions of source code must retain the above copyright
-**     notice, this list of conditions and the following disclaimer.
-**   * Redistributions in binary form must reproduce the above copyright
-**     notice, this list of conditions and the following disclaimer in
-**     the documentation and/or other materials provided with the
-**     distribution.
-**   * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-**     the names of its contributors may be used to endorse or promote
-**     products derived from this software without specific prior written
-**     permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "knob.h"
-
-#include <QBrush>
-#include <QTouchEvent>
-
-Knob::Knob()
-    : QGraphicsEllipseItem(-50, -50, 100, 100)
-{
-    setAcceptTouchEvents(true);
-    setBrush(Qt::lightGray);
-
-    QGraphicsEllipseItem *leftItem = new QGraphicsEllipseItem(0, 0, 20, 20, this);
-    leftItem->setPos(-40, -10);
-    leftItem->setBrush(Qt::darkGreen);
-
-    QGraphicsEllipseItem *rightItem = new QGraphicsEllipseItem(0, 0, 20, 20, this);
-    rightItem->setPos(20, -10);
-    rightItem->setBrush(Qt::darkRed);
-}
-
-bool Knob::sceneEvent(QEvent *event)
-{
-    switch (event->type()) {
-    case QEvent::TouchBegin:
-    case QEvent::TouchUpdate:
-    case QEvent::TouchEnd:
-    {
-        QTouchEvent *touchEvent = static_cast<QTouchEvent *>(event);
-
-        if (touchEvent->touchPoints().count() == 2) {
-            const QTouchEvent::TouchPoint &touchPoint1 = touchEvent->touchPoints().first();
-            const QTouchEvent::TouchPoint &touchPoint2 = touchEvent->touchPoints().last();
-
-            QLineF line1(touchPoint1.lastScenePos(), touchPoint2.lastScenePos());
-            QLineF line2(touchPoint1.scenePos(), touchPoint2.scenePos());
-
-            rotate(line2.angleTo(line1));
-        }
-
-        break;
-    }
-
-    default:
-        return QGraphicsItem::sceneEvent(event);
-    }
-
-    return true;
-}
--- a/examples/multitouch/knobs/knob.h	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,54 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-**   * Redistributions of source code must retain the above copyright
-**     notice, this list of conditions and the following disclaimer.
-**   * Redistributions in binary form must reproduce the above copyright
-**     notice, this list of conditions and the following disclaimer in
-**     the documentation and/or other materials provided with the
-**     distribution.
-**   * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-**     the names of its contributors may be used to endorse or promote
-**     products derived from this software without specific prior written
-**     permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef KNOB_H
-#define KNOB_H
-
-#include <QGraphicsItem>
-
-class Knob : public QGraphicsEllipseItem
-{
-public:
-    Knob();
-
-    bool sceneEvent(QEvent *event);
-};
-
-#endif // KNOB_H
--- a/examples/multitouch/knobs/knobs.pro	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,2 +0,0 @@
-HEADERS = knob.h
-SOURCES = main.cpp knob.cpp
--- a/examples/multitouch/knobs/main.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,64 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-**   * Redistributions of source code must retain the above copyright
-**     notice, this list of conditions and the following disclaimer.
-**   * Redistributions in binary form must reproduce the above copyright
-**     notice, this list of conditions and the following disclaimer in
-**     the documentation and/or other materials provided with the
-**     distribution.
-**   * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-**     the names of its contributors may be used to endorse or promote
-**     products derived from this software without specific prior written
-**     permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <QApplication>
-#include <QGraphicsView>
-
-#include "knob.h"
-
-int main(int argc, char **argv)
-{
-    QApplication app(argc, argv);
-
-    QGraphicsScene scene;
-    QGraphicsView view(&scene);
-
-    Knob *knob1 = new Knob;
-    knob1->setPos(-110, 0);
-    Knob *knob2 = new Knob;
-
-    scene.addItem(knob1);
-    scene.addItem(knob2);
-
-    view.showMaximized();
-    view.fitInView(scene.sceneRect().adjusted(-20, -20, 20, 20), Qt::KeepAspectRatio);
-
-    return app.exec();
-}
--- a/examples/multitouch/multitouch.pro	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,2 +0,0 @@
-TEMPLATE = subdirs
-SUBDIRS = pinchzoom fingerpaint knobs dials
--- a/examples/multitouch/pinchzoom/graphicsview.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,85 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-**   * Redistributions of source code must retain the above copyright
-**     notice, this list of conditions and the following disclaimer.
-**   * Redistributions in binary form must reproduce the above copyright
-**     notice, this list of conditions and the following disclaimer in
-**     the documentation and/or other materials provided with the
-**     distribution.
-**   * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-**     the names of its contributors may be used to endorse or promote
-**     products derived from this software without specific prior written
-**     permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "graphicsview.h"
-
-#include <QScrollBar>
-#include <QTouchEvent>
-
-GraphicsView::GraphicsView(QGraphicsScene *scene, QWidget *parent)
-    : QGraphicsView(scene, parent), totalScaleFactor(1)
-{
-    viewport()->setAttribute(Qt::WA_AcceptTouchEvents);
-    setDragMode(ScrollHandDrag);
-}
-
-bool GraphicsView::viewportEvent(QEvent *event)
-{
-    switch (event->type()) {
-    case QEvent::TouchBegin:
-    case QEvent::TouchUpdate:
-    case QEvent::TouchEnd:
-    {
-        QTouchEvent *touchEvent = static_cast<QTouchEvent *>(event);
-        QList<QTouchEvent::TouchPoint> touchPoints = touchEvent->touchPoints();
-        if (touchPoints.count() == 2) {
-            // determine scale factor
-            const QTouchEvent::TouchPoint &touchPoint0 = touchPoints.first();
-            const QTouchEvent::TouchPoint &touchPoint1 = touchPoints.last();
-            qreal currentScaleFactor =
-                    QLineF(touchPoint0.pos(), touchPoint1.pos()).length()
-                    / QLineF(touchPoint0.startPos(), touchPoint1.startPos()).length();
-            if (touchEvent->touchPointStates() & Qt::TouchPointReleased) {
-                // if one of the fingers is released, remember the current scale
-                // factor so that adding another finger later will continue zooming
-                // by adding new scale factor to the existing remembered value.
-                totalScaleFactor *= currentScaleFactor;
-                currentScaleFactor = 1;
-            }
-            setTransform(QTransform().scale(totalScaleFactor * currentScaleFactor,
-                                            totalScaleFactor * currentScaleFactor));
-        }
-        return true;
-    }
-    default:
-        break;
-    }
-    return QGraphicsView::viewportEvent(event);
-}
--- a/examples/multitouch/pinchzoom/graphicsview.h	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,55 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-**   * Redistributions of source code must retain the above copyright
-**     notice, this list of conditions and the following disclaimer.
-**   * Redistributions in binary form must reproduce the above copyright
-**     notice, this list of conditions and the following disclaimer in
-**     the documentation and/or other materials provided with the
-**     distribution.
-**   * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-**     the names of its contributors may be used to endorse or promote
-**     products derived from this software without specific prior written
-**     permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#pragma once
-#include <QGraphicsView>
-
-class GraphicsView : public QGraphicsView
-{
-    Q_OBJECT
-
-public:
-    GraphicsView(QGraphicsScene *scene = 0, QWidget *parent = 0);
-
-    bool viewportEvent(QEvent *event);
-
-private:
-    qreal totalScaleFactor;
-};
Binary file examples/multitouch/pinchzoom/images/cheese.jpg has changed
--- a/examples/multitouch/pinchzoom/main.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,86 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-**   * Redistributions of source code must retain the above copyright
-**     notice, this list of conditions and the following disclaimer.
-**   * Redistributions in binary form must reproduce the above copyright
-**     notice, this list of conditions and the following disclaimer in
-**     the documentation and/or other materials provided with the
-**     distribution.
-**   * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-**     the names of its contributors may be used to endorse or promote
-**     products derived from this software without specific prior written
-**     permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "graphicsview.h"
-#include "mouse.h"
-
-#include <QtGui>
-
-#include <math.h>
-
-static const int MouseCount = 7;
-
-//! [0]
-int main(int argc, char **argv)
-{
-    QApplication app(argc, argv);
-    qsrand(QTime(0,0,0).secsTo(QTime::currentTime()));
-//! [0]
-
-//! [1]
-    QGraphicsScene scene;
-    scene.setSceneRect(-300, -300, 600, 600);
-//! [1] //! [2]
-    scene.setItemIndexMethod(QGraphicsScene::NoIndex);
-//! [2]
-
-//! [3]
-    for (int i = 0; i < MouseCount; ++i) {
-        Mouse *mouse = new Mouse;
-        mouse->setPos(::sin((i * 6.28) / MouseCount) * 200,
-                      ::cos((i * 6.28) / MouseCount) * 200);
-        scene.addItem(mouse);
-    }
-//! [3]
-
-//! [4]
-    GraphicsView view(&scene);
-    view.setRenderHint(QPainter::Antialiasing);
-    view.setBackgroundBrush(QPixmap(":/images/cheese.jpg"));
-//! [4] //! [5]
-    view.setCacheMode(QGraphicsView::CacheBackground);
-    view.setViewportUpdateMode(QGraphicsView::BoundingRectViewportUpdate);
-//! [5] //! [6]
-    view.setWindowTitle(QT_TRANSLATE_NOOP(QGraphicsView, "Colliding Mice"));
-    view.showMaximized();
-
-    return app.exec();
-}
-//! [6]
--- a/examples/multitouch/pinchzoom/mice.qrc	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-<RCC>
-    <qresource prefix="/" >
-        <file>images/cheese.jpg</file>
-    </qresource>
-</RCC>
--- a/examples/multitouch/pinchzoom/mouse.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,199 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-**   * Redistributions of source code must retain the above copyright
-**     notice, this list of conditions and the following disclaimer.
-**   * Redistributions in binary form must reproduce the above copyright
-**     notice, this list of conditions and the following disclaimer in
-**     the documentation and/or other materials provided with the
-**     distribution.
-**   * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-**     the names of its contributors may be used to endorse or promote
-**     products derived from this software without specific prior written
-**     permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "mouse.h"
-
-#include <QGraphicsScene>
-#include <QPainter>
-#include <QStyleOption>
-
-#include <math.h>
-
-static const double Pi = 3.14159265358979323846264338327950288419717;
-static double TwoPi = 2.0 * Pi;
-
-static qreal normalizeAngle(qreal angle)
-{
-    while (angle < 0)
-        angle += TwoPi;
-    while (angle > TwoPi)
-        angle -= TwoPi;
-    return angle;
-}
-
-//! [0]
-Mouse::Mouse()
-    : angle(0), speed(0), mouseEyeDirection(0),
-      color(qrand() % 256, qrand() % 256, qrand() % 256)
-{
-    rotate(qrand() % (360 * 16));
-    startTimer(1000 / 33);
-}
-//! [0]
-
-//! [1]
-QRectF Mouse::boundingRect() const
-{
-    qreal adjust = 0.5;
-    return QRectF(-18 - adjust, -22 - adjust,
-                  36 + adjust, 60 + adjust);
-}
-//! [1]
-
-//! [2]
-QPainterPath Mouse::shape() const
-{
-    QPainterPath path;
-    path.addRect(-10, -20, 20, 40);
-    return path;
-}
-//! [2]
-
-//! [3]
-void Mouse::paint(QPainter *painter, const QStyleOptionGraphicsItem *, QWidget *)
-{
-    // Body
-    painter->setBrush(color);
-    painter->drawEllipse(-10, -20, 20, 40);
-
-    // Eyes
-    painter->setBrush(Qt::white);
-    painter->drawEllipse(-10, -17, 8, 8);
-    painter->drawEllipse(2, -17, 8, 8);
-
-    // Nose
-    painter->setBrush(Qt::black);
-    painter->drawEllipse(QRectF(-2, -22, 4, 4));
-
-    // Pupils
-    painter->drawEllipse(QRectF(-8.0 + mouseEyeDirection, -17, 4, 4));
-    painter->drawEllipse(QRectF(4.0 + mouseEyeDirection, -17, 4, 4));
-
-    // Ears
-    painter->setBrush(scene()->collidingItems(this).isEmpty() ? Qt::darkYellow : Qt::red);
-    painter->drawEllipse(-17, -12, 16, 16);
-    painter->drawEllipse(1, -12, 16, 16);
-
-    // Tail
-    QPainterPath path(QPointF(0, 20));
-    path.cubicTo(-5, 22, -5, 22, 0, 25);
-    path.cubicTo(5, 27, 5, 32, 0, 30);
-    path.cubicTo(-5, 32, -5, 42, 0, 35);
-    painter->setBrush(Qt::NoBrush);
-    painter->drawPath(path);
-}
-//! [3]
-
-//! [4]
-void Mouse::timerEvent(QTimerEvent *)
-{
-//! [4]
-    // Don't move too far away
-//! [5]
-    QLineF lineToCenter(QPointF(0, 0), mapFromScene(0, 0));
-    if (lineToCenter.length() > 150) {
-        qreal angleToCenter = ::acos(lineToCenter.dx() / lineToCenter.length());
-        if (lineToCenter.dy() < 0)
-            angleToCenter = TwoPi - angleToCenter;
-        angleToCenter = normalizeAngle((Pi - angleToCenter) + Pi / 2);
-
-        if (angleToCenter < Pi && angleToCenter > Pi / 4) {
-            // Rotate left
-            angle += (angle < -Pi / 2) ? 0.25 : -0.25;
-        } else if (angleToCenter >= Pi && angleToCenter < (Pi + Pi / 2 + Pi / 4)) {
-            // Rotate right
-            angle += (angle < Pi / 2) ? 0.25 : -0.25;
-        }
-    } else if (::sin(angle) < 0) {
-        angle += 0.25;
-    } else if (::sin(angle) > 0) {
-        angle -= 0.25;
-//! [5] //! [6]
-    }
-//! [6]
-
-    // Try not to crash with any other mice
-//! [7]
-    QList<QGraphicsItem *> dangerMice = scene()->items(QPolygonF()
-                                                       << mapToScene(0, 0)
-                                                       << mapToScene(-30, -50)
-                                                       << mapToScene(30, -50));
-    foreach (QGraphicsItem *item, dangerMice) {
-        if (item == this)
-            continue;
-        
-        QLineF lineToMouse(QPointF(0, 0), mapFromItem(item, 0, 0));
-        qreal angleToMouse = ::acos(lineToMouse.dx() / lineToMouse.length());
-        if (lineToMouse.dy() < 0)
-            angleToMouse = TwoPi - angleToMouse;
-        angleToMouse = normalizeAngle((Pi - angleToMouse) + Pi / 2);
-
-        if (angleToMouse >= 0 && angleToMouse < Pi / 2) {
-            // Rotate right
-            angle += 0.5;
-        } else if (angleToMouse <= TwoPi && angleToMouse > (TwoPi - Pi / 2)) {
-            // Rotate left
-            angle -= 0.5;
-//! [7] //! [8]
-        }
-//! [8] //! [9]
-    }
-//! [9]
-
-    // Add some random movement
-//! [10]
-    if (dangerMice.size() > 1 && (qrand() % 10) == 0) {
-        if (qrand() % 1)
-            angle += (qrand() % 100) / 500.0;
-        else
-            angle -= (qrand() % 100) / 500.0;
-    }
-//! [10]
-
-//! [11]
-    speed += (-50 + qrand() % 100) / 100.0;
-
-    qreal dx = ::sin(angle) * 10;
-    mouseEyeDirection = (qAbs(dx / 5) < 1) ? 0 : dx / 5;
-
-    rotate(dx);
-    setPos(mapToParent(0, -(3 + sin(speed) * 3)));
-}
-//! [11]
--- a/examples/multitouch/pinchzoom/mouse.h	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,70 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-**   * Redistributions of source code must retain the above copyright
-**     notice, this list of conditions and the following disclaimer.
-**   * Redistributions in binary form must reproduce the above copyright
-**     notice, this list of conditions and the following disclaimer in
-**     the documentation and/or other materials provided with the
-**     distribution.
-**   * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-**     the names of its contributors may be used to endorse or promote
-**     products derived from this software without specific prior written
-**     permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef MOUSE_H
-#define MOUSE_H
-
-#include <QGraphicsObject>
-
-//! [0]
-class Mouse : public QGraphicsObject
-{
-    Q_OBJECT
-
-public:
-    Mouse();
-
-    QRectF boundingRect() const;
-    QPainterPath shape() const;
-    void paint(QPainter *painter, const QStyleOptionGraphicsItem *option,
-               QWidget *widget);
-
-protected:
-    void timerEvent(QTimerEvent *event);
-
-private:
-    qreal angle;
-    qreal speed;
-    qreal mouseEyeDirection;
-    QColor color;
-};
-//! [0]
-
-#endif
--- a/examples/multitouch/pinchzoom/pinchzoom.pro	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,16 +0,0 @@
-HEADERS += \
-        mouse.h \
-        graphicsview.h
-SOURCES += \
-	main.cpp \
-        mouse.cpp \
-        graphicsview.cpp
-
-RESOURCES += \
-	mice.qrc
-
-# install
-target.path = $$[QT_INSTALL_EXAMPLES]/multitouch/pinchzoom
-sources.files = $$SOURCES $$HEADERS $$RESOURCES $$FORMS pinchzoom.pro images
-sources.path = $$[QT_INSTALL_EXAMPLES]/multitouch/pinchzoom
-INSTALLS += target sources
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/examples/network/bearercloud/bluetooth.svg	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
+	<!ENTITY ns_svg "http://www.w3.org/2000/svg">
+	<!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
+]>
+<svg  version="1.1" id="&#x56FE;&#x5C42;_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="21.792" height="21.819"
+	 viewBox="0 0 21.792 21.819" overflow="visible" enable-background="new 0 0 21.792 21.819" xml:space="preserve">
+<linearGradient id="XMLID_2_" gradientUnits="userSpaceOnUse" x1="11.0322" y1="2.8701" x2="11.0322" y2="21.2133">
+	<stop  offset="0" style="stop-color:#95D1DB"/>
+	<stop  offset="0.0684" style="stop-color:#7FBAE0"/>
+	<stop  offset="0.2073" style="stop-color:#5892EA"/>
+	<stop  offset="0.3506" style="stop-color:#3871F1"/>
+	<stop  offset="0.4971" style="stop-color:#2058F7"/>
+	<stop  offset="0.648" style="stop-color:#0E45FC"/>
+	<stop  offset="0.8061" style="stop-color:#033BFE"/>
+	<stop  offset="0.9831" style="stop-color:#0037FF"/>
+</linearGradient>
+<path fill="url(#XMLID_2_)" stroke="#4D4D4D" stroke-width="0.5" stroke-linejoin="round" d="M10.496,10.931l5.303-4.672
+	L9.172,0.292l-0.05,9.427L9.109,9.708v0.029L7.304,8.168L6.266,9.364l1.802,1.567l-1.802,1.567l1.038,1.195l1.806-1.569v0.029
+	l0.013-0.012l0.05,9.428l6.627-5.966L10.496,10.931z M10.672,3.993l2.502,2.252l-2.525,2.225L10.672,3.993z M13.174,15.617
+	l-2.502,2.252l-0.023-4.477L13.174,15.617z"/>
+<rect opacity="0" fill="#FFFFFF" width="21.792" height="21.792"/>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/examples/network/bearercloud/cell.svg	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
+	<!ENTITY ns_svg "http://www.w3.org/2000/svg">
+	<!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
+]>
+<svg  version="1.1" id="&#x56FE;&#x5C42;_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="15.667" height="15.794"
+	 viewBox="0 0 15.667 15.794" style="overflow:visible;enable-background:new 0 0 15.667 15.794;" xml:space="preserve">
+<rect style="fill:none;" width="15.667" height="15.666"/>
+<g>
+	<rect x="3.791" y="0.583" style="fill:#996633;" width="1" height="7.963"/>
+	<rect x="10.917" y="0.583" style="fill:#996633;" width="1" height="7.963"/>
+	<linearGradient id="XMLID_2_" gradientUnits="userSpaceOnUse" x1="7.8936" y1="1.6753" x2="7.8936" y2="15.1908">
+		<stop  offset="0" style="stop-color:#D9C7A8"/>
+		<stop  offset="0.1575" style="stop-color:#CEB28C"/>
+		<stop  offset="0.395" style="stop-color:#C09869"/>
+		<stop  offset="0.6188" style="stop-color:#B58550"/>
+		<stop  offset="0.8212" style="stop-color:#AF7940"/>
+		<stop  offset="0.9831" style="stop-color:#AD753B"/>
+	</linearGradient>
+	<rect x="6.728" y="0.583" style="fill:url(#XMLID_2_);stroke:#000000;stroke-width:0.75;" width="2.333" height="14.836"/>
+	<rect x="3.433" y="2.541" style="fill:#C4AB96;stroke:#000000;stroke-width:0.75;" width="8.92" height="2.413"/>
+	<rect x="3.433" y="6.635" style="fill:#C4AB96;stroke:#000000;stroke-width:0.75;" width="8.92" height="2.412"/>
+</g>
+</svg>
--- a/examples/network/bearercloud/cloud.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/examples/network/bearercloud/cloud.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -53,7 +53,7 @@
 
 #include <math.h>
 
-static QMap<QString, QSvgRenderer *> svgCache;
+static QMap<QNetworkConfiguration::BearerType, QSvgRenderer *> svgCache;
 
 //! [0]
 Cloud::Cloud(const QNetworkConfiguration &config, QGraphicsItem *parent)
@@ -245,6 +245,8 @@
     else
         finalOpacity = 1.0;
 
+#if !defined(Q_WS_MAEMO_5) && !defined(Q_WS_MAEMO_6) && \
+    !defined(Q_OS_SYMBIAN) && !defined(Q_OS_WINCE)
     QString tooltip;
 
     if (configuration.name().isEmpty())
@@ -259,9 +261,9 @@
     tooltip += tr("<br>Id: %1").arg(configuration.identifier());
 #endif
 
-    const QString bearerName = configuration.bearerName();
-    if (!bearerName.isEmpty())
-        tooltip += tr("<br>Bearer: %1").arg(bearerName);
+    const QString bearerTypeName = configuration.bearerTypeName();
+    if (!bearerTypeName.isEmpty())
+        tooltip += tr("<br>Bearer: %1").arg(bearerTypeName);
 
     QString s = tr("<br>State: %1 (%2)");
     switch (state) {
@@ -302,23 +304,45 @@
     tooltip += tr("<br>Sent data: %1 bytes").arg(session->bytesWritten());
 
     setToolTip(tooltip);
+#else
+    Q_UNUSED(state);
+#endif
 }
 //! [2]
 
 //! [1]
 void Cloud::newConfigurationActivated()
 {
-    const QString bearerName = configuration.bearerName();
-    if (!svgCache.contains(bearerName)) {
-        if (bearerName == QLatin1String("WLAN"))
-            svgCache.insert(bearerName, new QSvgRenderer(QLatin1String(":wlan.svg")));
-        else if (bearerName == QLatin1String("Ethernet"))
-            svgCache.insert(bearerName, new QSvgRenderer(QLatin1String(":lan.svg")));
-        else
-            svgCache.insert(bearerName, new QSvgRenderer(QLatin1String(":unknown.svg")));
+    QNetworkConfiguration::BearerType bearerType = configuration.bearerType();
+    if (!svgCache.contains(bearerType)) {
+        QSvgRenderer *renderer = 0;
+        switch (bearerType) {
+        case QNetworkConfiguration::BearerWLAN:
+            renderer = new QSvgRenderer(QLatin1String(":wlan.svg"));
+            break;
+        case QNetworkConfiguration::BearerEthernet:
+            renderer = new QSvgRenderer(QLatin1String(":lan.svg"));
+            break;
+        case QNetworkConfiguration::Bearer2G:
+            renderer = new QSvgRenderer(QLatin1String(":cell.svg"));
+            break;
+        case QNetworkConfiguration::BearerBluetooth:
+            renderer = new QSvgRenderer(QLatin1String(":bluetooth.svg"));
+            break;
+        case QNetworkConfiguration::BearerCDMA2000:
+        case QNetworkConfiguration::BearerWCDMA:
+        case QNetworkConfiguration::BearerHSPA:
+            renderer = new QSvgRenderer(QLatin1String(":umts.svg"));
+            break;
+        default:
+            renderer = new QSvgRenderer(QLatin1String(":unknown.svg"));
+        }
+
+        if (renderer)
+            svgCache.insert(bearerType, renderer);
     }
 
-    icon->setSharedRenderer(svgCache[bearerName]);
+    icon->setSharedRenderer(svgCache[bearerType]);
 
     if (configuration.name().isEmpty()) {
         text->setPlainText(tr("HIDDEN NETWORK"));
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/examples/network/bearercloud/gprs.svg	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,199 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448)  -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://web.resource.org/cc/"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.0"
+   id="图层_1"
+   width="13"
+   height="14"
+   viewBox="0 0 21.228 20.825"
+   style="overflow:visible;enable-background:new 0 0 21.228 20.825;"
+   xml:space="preserve"
+   sodipodi:version="0.32"
+   inkscape:version="0.44.1"
+   sodipodi:docname="GPRS-online.svg"
+   sodipodi:docbase="/home/user"><metadata
+   id="metadata76"><rdf:RDF><cc:Work
+       rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
+         rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><defs
+   id="defs74">
+	<linearGradient
+   y2="18.770201"
+   x2="19.1735"
+   y1="2.1933999"
+   x1="2.5967"
+   gradientUnits="userSpaceOnUse"
+   id="XMLID_5_"
+   gradientTransform="matrix(1.749056,0,0,1.749987,1.149567,1.483541)">
+		<stop
+   id="stop6"
+   style="stop-color:#F8DB41"
+   offset="0" />
+		<stop
+   id="stop8"
+   style="stop-color:#F8D73F"
+   offset="0.1193" />
+		<stop
+   id="stop10"
+   style="stop-color:#F9CB3A"
+   offset="0.2384" />
+		<stop
+   id="stop12"
+   style="stop-color:#FAB731"
+   offset="0.3576" />
+		<stop
+   id="stop14"
+   style="stop-color:#FC9B24"
+   offset="0.4768" />
+		<stop
+   id="stop16"
+   style="stop-color:#FE7714"
+   offset="0.595" />
+		<stop
+   id="stop18"
+   style="stop-color:#FE7513"
+   offset="0.6011" />
+	</linearGradient>
+	
+	<linearGradient
+   y2="13.7331"
+   x2="24.2068"
+   y1="-2.8408"
+   x1="7.6328001"
+   gradientUnits="userSpaceOnUse"
+   id="XMLID_6_">
+		<stop
+   id="stop23"
+   style="stop-color:#F8DB41"
+   offset="0" />
+		<stop
+   id="stop25"
+   style="stop-color:#F8D73F"
+   offset="0.1193" />
+		<stop
+   id="stop27"
+   style="stop-color:#F9CB3A"
+   offset="0.2384" />
+		<stop
+   id="stop29"
+   style="stop-color:#FAB731"
+   offset="0.3576" />
+		<stop
+   id="stop31"
+   style="stop-color:#FC9B24"
+   offset="0.4768" />
+		<stop
+   id="stop33"
+   style="stop-color:#FE7714"
+   offset="0.595" />
+		<stop
+   id="stop35"
+   style="stop-color:#FE7513"
+   offset="0.6011" />
+	</linearGradient>
+	
+	<linearGradient
+   y2="23.8965"
+   x2="14.043"
+   y1="7.3242002"
+   x1="-2.5293"
+   gradientUnits="userSpaceOnUse"
+   id="XMLID_7_">
+		<stop
+   id="stop40"
+   style="stop-color:#F8DB41"
+   offset="0" />
+		<stop
+   id="stop42"
+   style="stop-color:#F8D73F"
+   offset="0.1193" />
+		<stop
+   id="stop44"
+   style="stop-color:#F9CB3A"
+   offset="0.2384" />
+		<stop
+   id="stop46"
+   style="stop-color:#FAB731"
+   offset="0.3576" />
+		<stop
+   id="stop48"
+   style="stop-color:#FC9B24"
+   offset="0.4768" />
+		<stop
+   id="stop50"
+   style="stop-color:#FE7714"
+   offset="0.595" />
+		<stop
+   id="stop52"
+   style="stop-color:#FE7513"
+   offset="0.6011" />
+	</linearGradient>
+	
+	<linearGradient
+   y2="18.5788"
+   x2="19.364"
+   y1="2.0039001"
+   x1="2.7890999"
+   gradientUnits="userSpaceOnUse"
+   id="XMLID_8_">
+		<stop
+   id="stop57"
+   style="stop-color:#F8DB41"
+   offset="0" />
+		<stop
+   id="stop59"
+   style="stop-color:#F8D73F"
+   offset="0.1193" />
+		<stop
+   id="stop61"
+   style="stop-color:#F9CB3A"
+   offset="0.2384" />
+		<stop
+   id="stop63"
+   style="stop-color:#FAB731"
+   offset="0.3576" />
+		<stop
+   id="stop65"
+   style="stop-color:#FC9B24"
+   offset="0.4768" />
+		<stop
+   id="stop67"
+   style="stop-color:#FE7714"
+   offset="0.595" />
+		<stop
+   id="stop69"
+   style="stop-color:#FE7513"
+   offset="0.6011" />
+	</linearGradient>
+	
+</defs><sodipodi:namedview
+   inkscape:window-height="960"
+   inkscape:window-width="1183"
+   inkscape:pageshadow="2"
+   inkscape:pageopacity="0.0"
+   guidetolerance="10.0"
+   gridtolerance="10.0"
+   objecttolerance="10.0"
+   borderopacity="1.0"
+   bordercolor="#666666"
+   pagecolor="#ffffff"
+   id="base"
+   width="13px"
+   height="14px"
+   inkscape:zoom="19.543817"
+   inkscape:cx="10.614"
+   inkscape:cy="10.386917"
+   inkscape:window-x="186"
+   inkscape:window-y="93"
+   inkscape:current-layer="图层_1" />
+<path
+   id="path20"
+   d="M 11.043976,12.916206 L 11.043976,9.4232323 L 19.388723,9.4232323 L 19.388723,16.573679 C 17.790085,17.616671 16.380346,18.330666 15.15076,18.708663 C 13.922922,19.084911 12.465959,19.272159 10.779869,19.272159 C 8.7054879,19.272159 7.0141507,18.934412 5.7076059,18.253667 C 4.399312,17.574672 3.3866086,16.564929 2.6677466,15.222689 C 1.9488846,13.880449 1.58683,12.336961 1.58683,10.599223 C 1.58683,8.7652372 1.9803676,7.172749 2.7674428,5.820009 C 3.5527689,4.4655191 4.7053968,3.4365268 6.2288246,2.7312819 C 7.4111865,2.190536 9.0045765,1.921038 11.008995,1.921038 C 12.939953,1.921038 14.386422,2.0890367 15.343156,2.4232842 C 16.301639,2.7610318 17.093961,3.2825279 17.728868,3.9860227 C 18.360278,4.6930174 18.834272,5.5890108 19.150851,6.6722527 L 13.938664,7.5629961 C 13.72353,6.9330008 13.361475,6.4465044 12.849002,6.1157569 C 12.33478,5.7815093 11.68588,5.6117606 10.890059,5.6117606 C 9.7111951,5.6117606 8.7632067,6.0072577 8.0653334,6.7965018 C 7.3622129,7.5839959 7.0071545,8.8352366 7.0071545,10.541474 C 7.0071545,12.35621 7.365711,13.654701 8.0740787,14.433445 C 8.7824464,15.212189 9.7776592,15.600686 11.043976,15.600686 C 11.647401,15.600686 12.224589,15.514937 12.770295,15.346938 C 13.321247,15.18069 13.943911,14.897192 14.652279,14.492945 L 14.652279,12.917956 L 11.043976,12.917956 L 11.043976,12.916206 z "
+   style="fill:black;stroke:white;stroke-width:1.30633846;stroke-miterlimit:4;stroke-dasharray:none;stroke-linejoin:round;stroke-linecap:butt;stroke-opacity:1;fill-opacity:1" />
+</svg>
--- a/examples/network/bearercloud/icons.qrc	Fri Sep 17 08:34:18 2010 +0300
+++ b/examples/network/bearercloud/icons.qrc	Mon Oct 04 01:19:32 2010 +0300
@@ -3,5 +3,9 @@
     <file>wlan.svg</file>
     <file>lan.svg</file>
     <file>unknown.svg</file>
+    <file>bluetooth.svg</file>
+    <file>cell.svg</file>
+    <file>gprs.svg</file>
+    <file>umts.svg</file>
 </qresource>
 </RCC>
--- a/examples/network/bearercloud/lan.svg	Fri Sep 17 08:34:18 2010 +0300
+++ b/examples/network/bearercloud/lan.svg	Mon Oct 04 01:19:32 2010 +0300
@@ -1,76 +1,33 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="25.000002"
-   height="9.6406126"
-   id="svg2"
-   sodipodi:version="0.32"
-   inkscape:version="0.46"
-   version="1.0"
-   sodipodi:docname="lan.svg"
-   inkscape:output_extension="org.inkscape.output.svg.inkscape">
-  <defs
-     id="defs4">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 526.18109 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="744.09448 : 526.18109 : 1"
-       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
-       id="perspective10" />
-  </defs>
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     gridtolerance="10000"
-     guidetolerance="10"
-     objecttolerance="10"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="19.416667"
-     inkscape:cx="15.244635"
-     inkscape:cy="11.639485"
-     inkscape:document-units="px"
-     inkscape:current-layer="layer1"
-     showgrid="false"
-     inkscape:window-width="1459"
-     inkscape:window-height="964"
-     inkscape:window-x="453"
-     inkscape:window-y="166" />
-  <metadata
-     id="metadata7">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer"
-     id="layer1"
-     transform="translate(-4.0978193e-8,-19.359387)">
-    <text
-       xml:space="preserve"
-       style="font-size:13.99289513px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
-       x="-1.1205248"
-       y="29"
-       id="text3239"><tspan
-         sodipodi:role="line"
-         id="tspan3241"
-         x="-1.1205248"
-         y="29">LAN</tspan></text>
-  </g>
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
+	<!ENTITY ns_svg "http://www.w3.org/2000/svg">
+	<!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
+]>
+<svg  version="1.1" id="&#x56FE;&#x5C42;_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="21.929" height="20.665"
+	 viewBox="0 0 21.929 20.665" style="overflow:visible;enable-background:new 0 0 21.929 20.665;" xml:space="preserve">
+<g>
+	<linearGradient id="XMLID_3_" gradientUnits="userSpaceOnUse" x1="1.7178" y1="5.3706" x2="20.9333" y2="5.3706">
+		<stop  offset="0.0393" style="stop-color:#C2DC1A"/>
+		<stop  offset="0.2192" style="stop-color:#BEDA1A"/>
+		<stop  offset="0.3978" style="stop-color:#B2D61B"/>
+		<stop  offset="0.5758" style="stop-color:#9ECE1D"/>
+		<stop  offset="0.7536" style="stop-color:#82C320"/>
+		<stop  offset="0.9298" style="stop-color:#5FB423"/>
+		<stop  offset="0.9326" style="stop-color:#5EB423"/>
+	</linearGradient>
+	<polygon style="fill:url(#XMLID_3_);stroke:#000000;stroke-linejoin:round;" points="21.429,7.716 10.965,7.716 10.965,0.5 
+		0.5,10.241 21.429,10.241 	"/>
+	<linearGradient id="XMLID_4_" gradientUnits="userSpaceOnUse" x1="1.7178" y1="15.2944" x2="20.9333" y2="15.2944">
+		<stop  offset="0.0393" style="stop-color:#C2DC1A"/>
+		<stop  offset="0.2192" style="stop-color:#BEDA1A"/>
+		<stop  offset="0.3978" style="stop-color:#B2D61B"/>
+		<stop  offset="0.5758" style="stop-color:#9ECE1D"/>
+		<stop  offset="0.7536" style="stop-color:#82C320"/>
+		<stop  offset="0.9298" style="stop-color:#5FB423"/>
+		<stop  offset="0.9326" style="stop-color:#5EB423"/>
+	</linearGradient>
+	<polygon style="fill:url(#XMLID_4_);stroke:#000000;stroke-linejoin:round;" points="0.5,12.949 10.965,12.949 10.965,20.165 
+		21.429,10.424 0.5,10.424 	"/>
+</g>
 </svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/examples/network/bearercloud/umts.svg	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,200 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448)  -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://web.resource.org/cc/"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.0"
+   id="图层_1"
+   width="13"
+   height="14"
+   viewBox="0 0 21.228 20.825"
+   style="overflow:visible;enable-background:new 0 0 21.228 20.825;"
+   xml:space="preserve"
+   sodipodi:version="0.32"
+   inkscape:version="0.44.1"
+   sodipodi:docname="umts-enabled.svg"
+   sodipodi:docbase="/home/user"><metadata
+   id="metadata76"><rdf:RDF><cc:Work
+       rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
+         rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><defs
+   id="defs74">
+	<linearGradient
+   y2="18.770201"
+   x2="19.1735"
+   y1="2.1933999"
+   x1="2.5967"
+   gradientUnits="userSpaceOnUse"
+   id="XMLID_5_"
+   gradientTransform="matrix(1.749056,0,0,1.749987,1.149567,1.483541)">
+		<stop
+   id="stop6"
+   style="stop-color:#F8DB41"
+   offset="0" />
+		<stop
+   id="stop8"
+   style="stop-color:#F8D73F"
+   offset="0.1193" />
+		<stop
+   id="stop10"
+   style="stop-color:#F9CB3A"
+   offset="0.2384" />
+		<stop
+   id="stop12"
+   style="stop-color:#FAB731"
+   offset="0.3576" />
+		<stop
+   id="stop14"
+   style="stop-color:#FC9B24"
+   offset="0.4768" />
+		<stop
+   id="stop16"
+   style="stop-color:#FE7714"
+   offset="0.595" />
+		<stop
+   id="stop18"
+   style="stop-color:#FE7513"
+   offset="0.6011" />
+	</linearGradient>
+	
+	<linearGradient
+   y2="13.7331"
+   x2="24.2068"
+   y1="-2.8408"
+   x1="7.6328001"
+   gradientUnits="userSpaceOnUse"
+   id="XMLID_6_">
+		<stop
+   id="stop23"
+   style="stop-color:#F8DB41"
+   offset="0" />
+		<stop
+   id="stop25"
+   style="stop-color:#F8D73F"
+   offset="0.1193" />
+		<stop
+   id="stop27"
+   style="stop-color:#F9CB3A"
+   offset="0.2384" />
+		<stop
+   id="stop29"
+   style="stop-color:#FAB731"
+   offset="0.3576" />
+		<stop
+   id="stop31"
+   style="stop-color:#FC9B24"
+   offset="0.4768" />
+		<stop
+   id="stop33"
+   style="stop-color:#FE7714"
+   offset="0.595" />
+		<stop
+   id="stop35"
+   style="stop-color:#FE7513"
+   offset="0.6011" />
+	</linearGradient>
+	
+	<linearGradient
+   y2="23.8965"
+   x2="14.043"
+   y1="7.3242002"
+   x1="-2.5293"
+   gradientUnits="userSpaceOnUse"
+   id="XMLID_7_">
+		<stop
+   id="stop40"
+   style="stop-color:#F8DB41"
+   offset="0" />
+		<stop
+   id="stop42"
+   style="stop-color:#F8D73F"
+   offset="0.1193" />
+		<stop
+   id="stop44"
+   style="stop-color:#F9CB3A"
+   offset="0.2384" />
+		<stop
+   id="stop46"
+   style="stop-color:#FAB731"
+   offset="0.3576" />
+		<stop
+   id="stop48"
+   style="stop-color:#FC9B24"
+   offset="0.4768" />
+		<stop
+   id="stop50"
+   style="stop-color:#FE7714"
+   offset="0.595" />
+		<stop
+   id="stop52"
+   style="stop-color:#FE7513"
+   offset="0.6011" />
+	</linearGradient>
+	
+	<linearGradient
+   y2="18.5788"
+   x2="19.364"
+   y1="2.0039001"
+   x1="2.7890999"
+   gradientUnits="userSpaceOnUse"
+   id="XMLID_8_">
+		<stop
+   id="stop57"
+   style="stop-color:#F8DB41"
+   offset="0" />
+		<stop
+   id="stop59"
+   style="stop-color:#F8D73F"
+   offset="0.1193" />
+		<stop
+   id="stop61"
+   style="stop-color:#F9CB3A"
+   offset="0.2384" />
+		<stop
+   id="stop63"
+   style="stop-color:#FAB731"
+   offset="0.3576" />
+		<stop
+   id="stop65"
+   style="stop-color:#FC9B24"
+   offset="0.4768" />
+		<stop
+   id="stop67"
+   style="stop-color:#FE7714"
+   offset="0.595" />
+		<stop
+   id="stop69"
+   style="stop-color:#FE7513"
+   offset="0.6011" />
+	</linearGradient>
+	
+</defs><sodipodi:namedview
+   inkscape:window-height="960"
+   inkscape:window-width="1183"
+   inkscape:pageshadow="2"
+   inkscape:pageopacity="0.0"
+   guidetolerance="10.0"
+   gridtolerance="10.0"
+   objecttolerance="10.0"
+   borderopacity="1.0"
+   bordercolor="#666666"
+   pagecolor="#ffffff"
+   id="base"
+   width="13px"
+   height="14px"
+   inkscape:zoom="53.714286"
+   inkscape:cx="6.5"
+   inkscape:cy="7"
+   inkscape:window-x="252"
+   inkscape:window-y="164"
+   inkscape:current-layer="图层_1" />
+
+<path
+   style="font-size:26.12677002px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:black;fill-opacity:1;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+   d="M 10.438113,0.60410378 C 9.5195858,0.60412318 8.5840584,0.67216158 7.6315264,0.80821918 C 6.6789835,0.94431518 5.6924268,1.1484304 4.7228823,1.4205653 L 4.7228823,5.0436132 C 5.5223309,4.6949314 6.3643059,4.4057684 7.1722669,4.2271517 C 7.9802179,4.0485668 8.7796689,3.9720237 9.5706225,3.9720075 C 10.64222,3.9720235 11.433166,4.1846436 12.020007,4.5843536 C 12.606829,4.9840947 12.938516,5.5369062 12.938526,6.2683055 C 12.938515,7.0592656 12.623838,7.663106 12.020007,8.054315 C 11.416156,8.4370429 10.497638,8.615644 9.2644494,8.615632 L 7.1722669,8.615632 L 7.1722669,11.779421 L 9.1623917,11.779421 C 10.548667,11.779429 11.569243,11.992048 12.275151,12.442796 C 12.989544,12.885053 13.346746,13.565437 13.346757,14.43292 C 13.346746,15.2749 13.023563,15.921266 12.32618,16.372017 C 11.637281,16.822775 10.616705,17.035395 9.3154783,17.035392 C 8.4394768,17.035395 7.5719873,16.907823 6.6619784,16.67819 C 5.7604653,16.440059 4.8249372,16.116877 3.9064208,15.657613 L 3.9064208,19.433747 C 4.8674613,19.748424 5.8370084,19.995064 6.815065,20.148151 C 7.8016169,20.309742 8.7966784,20.403295 9.7747379,20.403295 C 12.547295,20.403294 14.656485,19.901511 16.102315,18.923459 C 17.548116,17.936904 18.296539,16.474077 18.296555,14.586007 C 18.296539,13.318797 17.947843,12.289717 17.275978,11.473248 C 16.612589,10.648291 15.286744,9.8267627 14.975337,9.738267 C 15.211467,9.5707147 16.382959,8.96434 16.969805,8.2584304 C 17.556621,7.544039 17.837281,6.617016 17.837296,5.5028728 C 17.837281,3.8699658 17.233439,2.6367701 16.000257,1.8287961 C 14.775552,1.0123535 12.913001,0.60412318 10.438113,0.60410378 z M 10.570571,1.2772502 C 13.045459,1.2772695 14.306521,1.5736708 15.531226,2.3901134 C 16.764408,3.1980876 17.174992,3.8601944 17.175007,5.4931014 C 17.174992,6.6072444 16.924732,7.1976942 16.337916,7.9120856 C 15.75107,8.617996 15.186496,9.1223119 15.071966,9.2290638 L 14.321733,9.8826672 C 15.605945,10.214364 16.173958,10.84372 16.837348,11.668677 C 17.509211,12.485146 17.613621,13.298168 17.613637,14.565378 C 17.613621,16.453449 16.977028,17.365815 15.531226,18.35237 C 14.085396,19.330422 12.587467,19.720376 9.8149096,19.720377 C 8.8368504,19.720377 7.7809882,19.596424 6.7944362,19.434833 C 5.8163797,19.281747 5.4689503,19.167564 4.5079098,18.852887 L 4.4775095,16.626075 C 5.3960259,17.085338 5.6790363,17.174005 6.5805495,17.412136 C 7.4905585,17.641769 8.5827919,17.809513 9.4587934,17.80951 C 10.76002,17.809513 12.167112,17.341749 12.856012,16.89099 C 13.553395,16.440238 14.111093,15.203243 14.111104,14.361263 C 14.111093,13.493779 13.591033,12.385621 12.87664,11.943364 C 12.170732,11.492617 10.853754,11.107368 9.4674791,11.10736 L 7.8041559,11.117131 L 7.8041559,9.277922 L 9.3871358,9.257293 C 10.620324,9.257304 12.006788,8.936474 12.610639,8.553746 C 13.21447,8.1625376 13.682233,7.0288655 13.682244,6.2379054 C 13.682234,5.5065062 13.268032,4.4542632 12.681211,4.0545222 C 12.09437,3.6548121 10.824621,3.2391624 9.7530236,3.2391464 C 8.9620698,3.2391624 7.9791321,3.3048486 7.1711811,3.4834335 C 6.3632201,3.66205 6.1954773,3.6645831 5.3960287,4.0132649 L 5.3862573,1.9308538 C 6.3558019,1.6587188 6.8320701,1.5566613 7.784613,1.4205653 C 8.7371446,1.2845077 9.6520438,1.2772696 10.570571,1.2772502 z "
+   id="text1901"
+   sodipodi:nodetypes="csccsssssccccsssssccssssscsssccsssccsssssccsssssccccsssssccsc" /></svg>
\ No newline at end of file
--- a/examples/network/bearermonitor/sessionwidget.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/examples/network/bearermonitor/sessionwidget.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -111,11 +111,11 @@
         killTimer(statsTimer);
 
     if (session->configuration().type() == QNetworkConfiguration::InternetAccessPoint)
-        bearer->setText(session->configuration().bearerName());
+        bearer->setText(session->configuration().bearerTypeName());
     else {
         QNetworkConfigurationManager mgr;
         QNetworkConfiguration c = mgr.configurationFromIdentifier(session->sessionProperty("ActiveConfiguration").toString());
-        bearer->setText(c.bearerName());
+        bearer->setText(c.bearerTypeName());
     }
 
 #ifndef QT_NO_NETWORKINTERFACE
--- a/examples/network/download/main.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/examples/network/download/main.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -150,7 +150,7 @@
     } else {
         QString filename = saveFileName(url);
         if (saveToDisk(filename, reply))
-            printf("Download of %s succeded (saved to %s)\n",
+            printf("Download of %s succeeded (saved to %s)\n",
                    url.toEncoded().constData(), qPrintable(filename));
     }
 
--- a/examples/network/fortuneserver/fortuneserver.pro	Fri Sep 17 08:34:18 2010 +0300
+++ b/examples/network/fortuneserver/fortuneserver.pro	Mon Oct 04 01:19:32 2010 +0300
@@ -10,7 +10,7 @@
 INSTALLS += target sources
 
 symbian {
-    TARGET.UID3 = 0xA000CF71
+    TARGET.UID3 = 0xA000E406
     include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri)
     TARGET.CAPABILITY = "NetworkServices ReadUserData"
     TARGET.EPOCHEAPSIZE = 0x20000 0x2000000
--- a/examples/network/fortuneserver/server.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/examples/network/fortuneserver/server.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -107,17 +107,19 @@
 void Server::sessionOpened()
 {
     // Save the used configuration
-    QNetworkConfiguration config = networkSession->configuration();
-    QString id;
-    if (config.type() == QNetworkConfiguration::UserChoice)
-        id = networkSession->sessionProperty(QLatin1String("UserChoiceConfiguration")).toString();
-    else
-        id = config.identifier();
+    if (networkSession) {
+        QNetworkConfiguration config = networkSession->configuration();
+        QString id;
+        if (config.type() == QNetworkConfiguration::UserChoice)
+            id = networkSession->sessionProperty(QLatin1String("UserChoiceConfiguration")).toString();
+        else
+            id = config.identifier();
 
-    QSettings settings(QSettings::UserScope, QLatin1String("Trolltech"));
-    settings.beginGroup(QLatin1String("QtNetwork"));
-    settings.setValue(QLatin1String("DefaultNetworkConfiguration"), id);
-    settings.endGroup();
+        QSettings settings(QSettings::UserScope, QLatin1String("Trolltech"));
+        settings.beginGroup(QLatin1String("QtNetwork"));
+        settings.setValue(QLatin1String("DefaultNetworkConfiguration"), id);
+        settings.endGroup();
+    }
 
 //! [0] //! [1]
     tcpServer = new QTcpServer(this);
--- a/examples/network/http/httpwindow.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/examples/network/http/httpwindow.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -206,7 +206,7 @@
 
 void HttpWindow::httpReadyRead()
 {
-    // this slot gets called everytime the QNetworkReply has new data.
+    // this slot gets called every time the QNetworkReply has new data.
     // We read all of its new data and write it into the file.
     // That way we use less RAM than when reading it at the finished()
     // signal of the QNetworkReply
--- a/examples/network/network.pro	Fri Sep 17 08:34:18 2010 +0300
+++ b/examples/network/network.pro	Mon Oct 04 01:19:32 2010 +0300
@@ -16,9 +16,12 @@
                 threadedfortuneserver \
                 googlesuggest \
                 torrent \
-                bearercloud \
                 bearermonitor
 
+    contains(QT_CONFIG, svg) {
+        SUBDIRS += bearercloud
+    }
+
     # no QProcess
     !vxworks:!qnx:SUBDIRS += network-chat
 
--- a/examples/network/torrent/torrent.pro	Fri Sep 17 08:34:18 2010 +0300
+++ b/examples/network/torrent/torrent.pro	Mon Oct 04 01:19:32 2010 +0300
@@ -5,7 +5,7 @@
            metainfo.h \
            peerwireclient.h \
            ratecontroller.h \
-           filemanager.h \  
+           filemanager.h \
            torrentclient.h \
            torrentserver.h \
            trackerclient.h
--- a/examples/network/torrent/torrentclient.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/examples/network/torrent/torrentclient.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -1243,8 +1243,8 @@
             // depending on the state we're in.
             int pieceIndex = 0;
             if (d->state == WarmingUp || (qrand() & 4) == 0) {
-                int *occurrances = new int[d->pieceCount];
-                memset(occurrances, 0, d->pieceCount * sizeof(int));
+                int *occurrences = new int[d->pieceCount];
+                memset(occurrences, 0, d->pieceCount * sizeof(int));
                 
                 // Count how many of each piece are available.
                 foreach (PeerWireClient *peer, d->connections) {
@@ -1252,38 +1252,38 @@
                     int peerPiecesSize = peerPieces.size();
                     for (int i = 0; i < peerPiecesSize; ++i) {
                         if (peerPieces.testBit(i))
-                            ++occurrances[i];
+                            ++occurrences[i];
                     }
                 }
 
                 // Find the rarest or most common pieces.
-                int numOccurrances = d->state == WarmingUp ? 0 : 99999;
+                int numOccurrences = d->state == WarmingUp ? 0 : 99999;
                 QList<int> piecesReadyForDownload;
                 for (int i = 0; i < d->pieceCount; ++i) {
                     if (d->state == WarmingUp) {
                         // Add common pieces
-                        if (occurrances[i] >= numOccurrances
+                        if (occurrences[i] >= numOccurrences
                             && incompletePiecesAvailableToClient.testBit(i)) {
-                            if (occurrances[i] > numOccurrances)
+                            if (occurrences[i] > numOccurrences)
                                 piecesReadyForDownload.clear();
                             piecesReadyForDownload.append(i);
-                            numOccurrances = occurrances[i];
+                            numOccurrences = occurrences[i];
                         }
                     } else {
                         // Add rare pieces
-                        if (occurrances[i] <= numOccurrances
+                        if (occurrences[i] <= numOccurrences
                             && incompletePiecesAvailableToClient.testBit(i)) {
-                            if (occurrances[i] < numOccurrances)
+                            if (occurrences[i] < numOccurrences)
                                 piecesReadyForDownload.clear();
                             piecesReadyForDownload.append(i);
-                            numOccurrances = occurrances[i];
+                            numOccurrences = occurrences[i];
                         }
                     }
                 }
 
                 // Select one piece randomly
                 pieceIndex = piecesReadyForDownload.at(qrand() % piecesReadyForDownload.size());
-                delete [] occurrances;
+                delete [] occurrences;
             } else {
                 // Make up a list of available piece indices, and pick
                 // a random one.
--- a/examples/opengl/shared/qtlogo.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/examples/opengl/shared/qtlogo.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -327,7 +327,7 @@
     QVector<QVector3D> in_back = extrude(inside, depth);
     QVector<QVector3D> out_back = extrude(outside, depth);
 
-    // Create front, back and sides as seperate patches so that smooth normals
+    // Create front, back and sides as separate patches so that smooth normals
     // are generated for the curving sides, but a faceted edge is created between
     // sides and front/back
     Patch *front = new Patch(g);
--- a/examples/phonon/qmusicplayer/mainwindow.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/examples/phonon/qmusicplayer/mainwindow.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -248,7 +248,7 @@
 void MainWindow::setupActions()
 {
     playAction = new QAction(style()->standardIcon(QStyle::SP_MediaPlay), tr("Play"), this);
-    playAction->setShortcut(tr("Crl+P"));
+    playAction->setShortcut(tr("Ctrl+P"));
     playAction->setDisabled(true);
     pauseAction = new QAction(style()->standardIcon(QStyle::SP_MediaPause), tr("Pause"), this);
     pauseAction->setShortcut(tr("Ctrl+A"));
--- a/examples/sql/masterdetail/mainwindow.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/examples/sql/masterdetail/mainwindow.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -189,9 +189,9 @@
 
         QMessageBox::StandardButton button;
         button = QMessageBox::question(this, tr("Delete Album"),
-                                       QString(tr("Are you sure you want to " \
-                                                  "delete '%1' by '%2'?"))
-                                              .arg(title).arg(artist),
+                                       tr("Are you sure you want to "
+                                          "delete '%1' by '%2'?")
+                                       .arg(title, artist),
                                        QMessageBox::Yes | QMessageBox::No);
 
         if (button == QMessageBox::Yes) {
--- a/examples/tools/customcompleter/textedit.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/examples/tools/customcompleter/textedit.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -141,7 +141,7 @@
     }
 
     bool isShortcut = ((e->modifiers() & Qt::ControlModifier) && e->key() == Qt::Key_E); // CTRL+E
-    if (!c || !isShortcut) // dont process the shortcut when we have a completer
+    if (!c || !isShortcut) // do not process the shortcut when we have a completer
         QTextEdit::keyPressEvent(e);
 //! [7]
 
--- a/examples/tools/treemodelcompleter/mainwindow.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/examples/tools/treemodelcompleter/mainwindow.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -241,6 +241,6 @@
 
 void MainWindow::updateContentsLabel(const QString& sep)
 {
-    contentsLabel->setText(QString(tr("Type path from model above with items at each level separated by a '%1'")).arg(sep));
+    contentsLabel->setText(tr("Type path from model above with items at each level separated by a '%1'").arg(sep));
 }
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/examples/touch/dials/dials.pro	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,8 @@
+SOURCES += main.cpp
+FORMS += dials.ui
+
+# install
+target.path = $$[QT_INSTALL_EXAMPLES]/touch/dials
+sources.files = $$SOURCES $$HEADERS $$RESOURCES $$FORMS dials.pro
+sources.path = $$[QT_INSTALL_EXAMPLES]/touch/dials
+INSTALLS += target sources
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/examples/touch/dials/dials.ui	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>Dials</class>
+ <widget class="QWidget" name="Dials">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>400</width>
+    <height>300</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>Form</string>
+  </property>
+  <layout class="QGridLayout" name="gridLayout">
+   <item row="0" column="0">
+    <widget class="QDial" name="dial_1">
+     <property name="notchesVisible">
+      <bool>true</bool>
+     </property>
+    </widget>
+   </item>
+   <item row="0" column="1">
+    <widget class="QDial" name="dial_2">
+     <property name="notchesVisible">
+      <bool>true</bool>
+     </property>
+    </widget>
+   </item>
+   <item row="0" column="2">
+    <widget class="QDial" name="dial_3">
+     <property name="notchesVisible">
+      <bool>true</bool>
+     </property>
+    </widget>
+   </item>
+   <item row="0" column="3">
+    <widget class="QDial" name="dial_4">
+     <property name="notchesVisible">
+      <bool>true</bool>
+     </property>
+    </widget>
+   </item>
+   <item row="1" column="0">
+    <widget class="QDial" name="dial_5">
+     <property name="notchesVisible">
+      <bool>true</bool>
+     </property>
+    </widget>
+   </item>
+   <item row="1" column="1">
+    <widget class="QDial" name="dial_6">
+     <property name="notchesVisible">
+      <bool>true</bool>
+     </property>
+    </widget>
+   </item>
+   <item row="1" column="2">
+    <widget class="QDial" name="dial_7">
+     <property name="notchesVisible">
+      <bool>true</bool>
+     </property>
+    </widget>
+   </item>
+   <item row="1" column="3">
+    <widget class="QDial" name="dial_8">
+     <property name="notchesVisible">
+      <bool>true</bool>
+     </property>
+    </widget>
+   </item>
+  </layout>
+ </widget>
+ <resources/>
+ <connections/>
+</ui>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/examples/touch/dials/main.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,58 @@
+/****************************************************************************
+**
+** 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:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+**   * Redistributions of source code must retain the above copyright
+**     notice, this list of conditions and the following disclaimer.
+**   * Redistributions in binary form must reproduce the above copyright
+**     notice, this list of conditions and the following disclaimer in
+**     the documentation and/or other materials provided with the
+**     distribution.
+**   * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+**     the names of its contributors may be used to endorse or promote
+**     products derived from this software without specific prior written
+**     permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QApplication>
+#include <QWidget>
+#include <QDial>
+
+#include "ui_dials.h"
+
+int main(int argc, char **argv)
+{
+    QApplication app(argc, argv);
+    QWidget window;
+    Ui::Dials dialsUi;
+    dialsUi.setupUi(&window);
+    QList<QAbstractSlider *> sliders = window.findChildren<QAbstractSlider *>();
+    foreach (QAbstractSlider *slider, sliders)
+        slider->setAttribute(Qt::WA_AcceptTouchEvents);
+    window.showMaximized();
+    return app.exec();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/examples/touch/fingerpaint/fingerpaint.pro	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,11 @@
+HEADERS       = mainwindow.h \
+                scribblearea.h
+SOURCES       = main.cpp \
+                mainwindow.cpp \
+                scribblearea.cpp
+
+# install
+target.path = $$[QT_INSTALL_EXAMPLES]/touch/fingerpaint
+sources.files = $$SOURCES $$HEADERS $$RESOURCES $$FORMS fingerpaint.pro
+sources.path = $$[QT_INSTALL_EXAMPLES]/touch/fingerpaint
+INSTALLS += target sources
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/examples/touch/fingerpaint/main.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,51 @@
+/****************************************************************************
+**
+** 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:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+**   * Redistributions of source code must retain the above copyright
+**     notice, this list of conditions and the following disclaimer.
+**   * Redistributions in binary form must reproduce the above copyright
+**     notice, this list of conditions and the following disclaimer in
+**     the documentation and/or other materials provided with the
+**     distribution.
+**   * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+**     the names of its contributors may be used to endorse or promote
+**     products derived from this software without specific prior written
+**     permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QApplication>
+
+#include "mainwindow.h"
+
+int main(int argc, char *argv[])
+{
+    QApplication app(argc, argv);
+    MainWindow window;
+    window.showMaximized();
+    return app.exec();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/examples/touch/fingerpaint/mainwindow.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,217 @@
+/****************************************************************************
+**
+** 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:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+**   * Redistributions of source code must retain the above copyright
+**     notice, this list of conditions and the following disclaimer.
+**   * Redistributions in binary form must reproduce the above copyright
+**     notice, this list of conditions and the following disclaimer in
+**     the documentation and/or other materials provided with the
+**     distribution.
+**   * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+**     the names of its contributors may be used to endorse or promote
+**     products derived from this software without specific prior written
+**     permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QtGui>
+
+#include "mainwindow.h"
+#include "scribblearea.h"
+
+//! [0]
+MainWindow::MainWindow()
+{
+    scribbleArea = new ScribbleArea;
+    setCentralWidget(scribbleArea);
+
+    createActions();
+    createMenus();
+
+    setWindowTitle(tr("Finger Paint"));
+    resize(500, 500);
+}
+//! [0]
+
+//! [1]
+void MainWindow::closeEvent(QCloseEvent *event)
+//! [1] //! [2]
+{
+    if (maybeSave()) {
+        event->accept();
+    } else {
+        event->ignore();
+    }
+}
+//! [2]
+
+//! [3]
+void MainWindow::open()
+//! [3] //! [4]
+{
+    if (maybeSave()) {
+        QString fileName = QFileDialog::getOpenFileName(this,
+                                   tr("Open File"), QDir::currentPath());
+        if (!fileName.isEmpty())
+            scribbleArea->openImage(fileName);
+    }
+}
+//! [4]
+
+//! [5]
+void MainWindow::save()
+//! [5] //! [6]
+{
+    QAction *action = qobject_cast<QAction *>(sender());
+    QByteArray fileFormat = action->data().toByteArray();
+    saveFile(fileFormat);
+}
+//! [6]
+
+//! [11]
+void MainWindow::about()
+//! [11] //! [12]
+{
+    QMessageBox::about(this, tr("About Scribble"),
+            tr("<p>The <b>Scribble</b> example shows how to use QMainWindow as the "
+               "base widget for an application, and how to reimplement some of "
+               "QWidget's event handlers to receive the events generated for "
+               "the application's widgets:</p><p> We reimplement the mouse event "
+               "handlers to facilitate drawing, the paint event handler to "
+               "update the application and the resize event handler to optimize "
+               "the application's appearance. In addition we reimplement the "
+               "close event handler to intercept the close events before "
+               "terminating the application.</p><p> The example also demonstrates "
+               "how to use QPainter to draw an image in real time, as well as "
+               "to repaint widgets.</p>"));
+}
+//! [12]
+
+//! [13]
+void MainWindow::createActions()
+//! [13] //! [14]
+{
+    openAct = new QAction(tr("&Open..."), this);
+    openAct->setShortcut(tr("Ctrl+O"));
+    connect(openAct, SIGNAL(triggered()), this, SLOT(open()));
+
+    foreach (QByteArray format, QImageWriter::supportedImageFormats()) {
+        QString text = tr("%1...").arg(QString(format).toUpper());
+
+        QAction *action = new QAction(text, this);
+        action->setData(format);
+        connect(action, SIGNAL(triggered()), this, SLOT(save()));
+        saveAsActs.append(action);
+    }
+
+    printAct = new QAction(tr("&Print..."), this);
+    connect(printAct, SIGNAL(triggered()), scribbleArea, SLOT(print()));
+
+    exitAct = new QAction(tr("E&xit"), this);
+    exitAct->setShortcut(tr("Ctrl+Q"));
+    connect(exitAct, SIGNAL(triggered()), this, SLOT(close()));
+
+    clearScreenAct = new QAction(tr("&Clear Screen"), this);
+    clearScreenAct->setShortcut(tr("Ctrl+L"));
+    connect(clearScreenAct, SIGNAL(triggered()),
+            scribbleArea, SLOT(clearImage()));
+
+    aboutAct = new QAction(tr("&About"), this);
+    connect(aboutAct, SIGNAL(triggered()), this, SLOT(about()));
+
+    aboutQtAct = new QAction(tr("About &Qt"), this);
+    connect(aboutQtAct, SIGNAL(triggered()), qApp, SLOT(aboutQt()));
+}
+//! [14]
+
+//! [15]
+void MainWindow::createMenus()
+//! [15] //! [16]
+{
+    saveAsMenu = new QMenu(tr("&Save As"), this);
+    foreach (QAction *action, saveAsActs)
+        saveAsMenu->addAction(action);
+
+    fileMenu = new QMenu(tr("&File"), this);
+    fileMenu->addAction(openAct);
+    fileMenu->addMenu(saveAsMenu);
+    fileMenu->addAction(printAct);
+    fileMenu->addSeparator();
+    fileMenu->addAction(exitAct);
+
+    optionMenu = new QMenu(tr("&Options"), this);
+    optionMenu->addAction(clearScreenAct);
+
+    helpMenu = new QMenu(tr("&Help"), this);
+    helpMenu->addAction(aboutAct);
+    helpMenu->addAction(aboutQtAct);
+
+    menuBar()->addMenu(fileMenu);
+    menuBar()->addMenu(optionMenu);
+    menuBar()->addMenu(helpMenu);
+}
+//! [16]
+
+//! [17]
+bool MainWindow::maybeSave()
+//! [17] //! [18]
+{
+    if (scribbleArea->isModified()) {
+       QMessageBox::StandardButton ret;
+       ret = QMessageBox::warning(this, tr("Scribble"),
+                          tr("The image has been modified.\n"
+                             "Do you want to save your changes?"),
+                          QMessageBox::Save | QMessageBox::Discard
+			  | QMessageBox::Cancel);
+        if (ret == QMessageBox::Save) {
+            return saveFile("png");
+        } else if (ret == QMessageBox::Cancel) {
+            return false;
+        }
+    }
+    return true;
+}
+//! [18]
+
+//! [19]
+bool MainWindow::saveFile(const QByteArray &fileFormat)
+//! [19] //! [20]
+{
+    QString initialPath = QDir::currentPath() + "/untitled." + fileFormat;
+
+    QString fileName = QFileDialog::getSaveFileName(this, tr("Save As"),
+                               initialPath,
+                               tr("%1 Files (*.%2);;All Files (*)")
+                               .arg(QString(fileFormat.toUpper()))
+                               .arg(QString(fileFormat)));
+    if (fileName.isEmpty()) {
+        return false;
+    } else {
+        return scribbleArea->saveImage(fileName, fileFormat);
+    }
+}
+//! [20]
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/examples/touch/fingerpaint/mainwindow.h	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,88 @@
+/****************************************************************************
+**
+** 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:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+**   * Redistributions of source code must retain the above copyright
+**     notice, this list of conditions and the following disclaimer.
+**   * Redistributions in binary form must reproduce the above copyright
+**     notice, this list of conditions and the following disclaimer in
+**     the documentation and/or other materials provided with the
+**     distribution.
+**   * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+**     the names of its contributors may be used to endorse or promote
+**     products derived from this software without specific prior written
+**     permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef MAINWINDOW_H
+#define MAINWINDOW_H
+
+#include <QList>
+#include <QMainWindow>
+
+class ScribbleArea;
+
+//! [0]
+class MainWindow : public QMainWindow
+{
+    Q_OBJECT
+
+public:
+    MainWindow();
+
+protected:
+    void closeEvent(QCloseEvent *event);
+
+private slots:
+    void open();
+    void save();
+    void about();
+
+private:
+    void createActions();
+    void createMenus();
+    bool maybeSave();
+    bool saveFile(const QByteArray &fileFormat);
+
+    ScribbleArea *scribbleArea;
+
+    QMenu *saveAsMenu;
+    QMenu *fileMenu;
+    QMenu *optionMenu;
+    QMenu *helpMenu;
+
+    QAction *openAct;
+    QList<QAction *> saveAsActs;
+    QAction *exitAct;
+    QAction *printAct;
+    QAction *clearScreenAct;
+    QAction *aboutAct;
+    QAction *aboutQtAct;
+};
+//! [0]
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/examples/touch/fingerpaint/scribblearea.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,211 @@
+/****************************************************************************
+**
+** 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:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+**   * Redistributions of source code must retain the above copyright
+**     notice, this list of conditions and the following disclaimer.
+**   * Redistributions in binary form must reproduce the above copyright
+**     notice, this list of conditions and the following disclaimer in
+**     the documentation and/or other materials provided with the
+**     distribution.
+**   * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+**     the names of its contributors may be used to endorse or promote
+**     products derived from this software without specific prior written
+**     permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QtGui>
+
+#include "scribblearea.h"
+
+//! [0]
+ScribbleArea::ScribbleArea(QWidget *parent)
+    : QWidget(parent)
+{
+    setAttribute(Qt::WA_AcceptTouchEvents);
+    setAttribute(Qt::WA_StaticContents);
+    modified = false;
+
+    myPenColors
+            << QColor("green")
+            << QColor("purple")
+            << QColor("red")
+            << QColor("blue")
+            << QColor("yellow")
+
+            << QColor("pink")
+            << QColor("orange")
+            << QColor("brown")
+            << QColor("grey")
+            << QColor("black");
+}
+//! [0]
+
+//! [1]
+bool ScribbleArea::openImage(const QString &fileName)
+//! [1] //! [2]
+{
+    QImage loadedImage;
+    if (!loadedImage.load(fileName))
+        return false;
+
+    QSize newSize = loadedImage.size().expandedTo(size());
+    resizeImage(&loadedImage, newSize);
+    image = loadedImage;
+    modified = false;
+    update();
+    return true;
+}
+//! [2]
+
+//! [3]
+bool ScribbleArea::saveImage(const QString &fileName, const char *fileFormat)
+//! [3] //! [4]
+{
+    QImage visibleImage = image;
+    resizeImage(&visibleImage, size());
+
+    if (visibleImage.save(fileName, fileFormat)) {
+        modified = false;
+        return true;
+    } else {
+        return false;
+    }
+}
+//! [4]
+
+//! [9]
+void ScribbleArea::clearImage()
+//! [9] //! [10]
+{
+    image.fill(qRgb(255, 255, 255));
+    modified = true;
+    update();
+}
+//! [10]
+
+//! [12] //! [13]
+void ScribbleArea::paintEvent(QPaintEvent *event)
+//! [13] //! [14]
+{
+    QPainter painter(this);
+    const QRect rect = event->rect();
+    painter.drawImage(rect.topLeft(), image, rect);
+}
+//! [14]
+
+//! [15]
+void ScribbleArea::resizeEvent(QResizeEvent *event)
+//! [15] //! [16]
+{
+    if (width() > image.width() || height() > image.height()) {
+        int newWidth = qMax(width() + 128, image.width());
+        int newHeight = qMax(height() + 128, image.height());
+        resizeImage(&image, QSize(newWidth, newHeight));
+        update();
+    }
+    QWidget::resizeEvent(event);
+}
+//! [16]
+
+//! [19]
+void ScribbleArea::resizeImage(QImage *image, const QSize &newSize)
+//! [19] //! [20]
+{
+    if (image->size() == newSize)
+        return;
+
+    QImage newImage(newSize, QImage::Format_RGB32);
+    newImage.fill(qRgb(255, 255, 255));
+    QPainter painter(&newImage);
+    painter.drawImage(QPoint(0, 0), *image);
+    *image = newImage;
+}
+//! [20]
+
+//! [21]
+void ScribbleArea::print()
+{
+#ifndef QT_NO_PRINTER
+    QPrinter printer(QPrinter::HighResolution);
+
+    QPrintDialog *printDialog = new QPrintDialog(&printer, this);
+//! [21] //! [22]
+    if (printDialog->exec() == QDialog::Accepted) {
+        QPainter painter(&printer);
+        QRect rect = painter.viewport();
+        QSize size = image.size();
+        size.scale(rect.size(), Qt::KeepAspectRatio);
+        painter.setViewport(rect.x(), rect.y(), size.width(), size.height());
+        painter.setWindow(image.rect());
+        painter.drawImage(0, 0, image);
+    }
+#endif // QT_NO_PRINTER
+}
+//! [22]
+
+bool ScribbleArea::event(QEvent *event)
+{
+    switch (event->type()) {
+    case QEvent::TouchBegin:
+    case QEvent::TouchUpdate:
+    case QEvent::TouchEnd:
+    {
+        QList<QTouchEvent::TouchPoint> touchPoints = static_cast<QTouchEvent *>(event)->touchPoints();
+        foreach (const QTouchEvent::TouchPoint &touchPoint, touchPoints) {
+            switch (touchPoint.state()) {
+            case Qt::TouchPointStationary:
+                // don't do anything if this touch point hasn't moved
+                continue;
+            default:
+                {
+                    QRectF rect = touchPoint.rect();
+                    if (rect.isEmpty()) {
+                        qreal diameter = qreal(50) * touchPoint.pressure();
+                        rect.setSize(QSizeF(diameter, diameter));
+                    }
+
+                    QPainter painter(&image);
+                    painter.setPen(Qt::NoPen);
+                    painter.setBrush(myPenColors.at(touchPoint.id() % myPenColors.count()));
+                    painter.drawEllipse(rect);
+                    painter.end();
+
+                    modified = true;
+                    int rad = 2;
+                    update(rect.toRect().adjusted(-rad,-rad, +rad, +rad));
+                }
+                break;
+            }
+        }
+        break;
+    }
+    default:
+        return QWidget::event(event);
+    }
+    return true;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/examples/touch/fingerpaint/scribblearea.h	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,80 @@
+/****************************************************************************
+**
+** 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:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+**   * Redistributions of source code must retain the above copyright
+**     notice, this list of conditions and the following disclaimer.
+**   * Redistributions in binary form must reproduce the above copyright
+**     notice, this list of conditions and the following disclaimer in
+**     the documentation and/or other materials provided with the
+**     distribution.
+**   * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+**     the names of its contributors may be used to endorse or promote
+**     products derived from this software without specific prior written
+**     permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef SCRIBBLEAREA_H
+#define SCRIBBLEAREA_H
+
+#include <QColor>
+#include <QImage>
+#include <QPoint>
+#include <QWidget>
+
+//! [0]
+class ScribbleArea : public QWidget
+{
+    Q_OBJECT
+
+public:
+    ScribbleArea(QWidget *parent = 0);
+
+    bool openImage(const QString &fileName);
+    bool saveImage(const QString &fileName, const char *fileFormat);
+
+    bool isModified() const { return modified; }
+
+public slots:
+    void clearImage();
+    void print();
+
+protected:
+    void paintEvent(QPaintEvent *event);
+    void resizeEvent(QResizeEvent *event);
+    bool event(QEvent *event);
+
+private:
+    void resizeImage(QImage *image, const QSize &newSize);
+
+    bool modified;
+    QList<QColor> myPenColors;
+    QImage image;
+};
+//! [0]
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/examples/touch/knobs/knob.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,88 @@
+/****************************************************************************
+**
+** 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:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+**   * Redistributions of source code must retain the above copyright
+**     notice, this list of conditions and the following disclaimer.
+**   * Redistributions in binary form must reproduce the above copyright
+**     notice, this list of conditions and the following disclaimer in
+**     the documentation and/or other materials provided with the
+**     distribution.
+**   * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+**     the names of its contributors may be used to endorse or promote
+**     products derived from this software without specific prior written
+**     permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "knob.h"
+
+#include <QBrush>
+#include <QTouchEvent>
+
+Knob::Knob()
+    : QGraphicsEllipseItem(-50, -50, 100, 100)
+{
+    setAcceptTouchEvents(true);
+    setBrush(Qt::lightGray);
+
+    QGraphicsEllipseItem *leftItem = new QGraphicsEllipseItem(0, 0, 20, 20, this);
+    leftItem->setPos(-40, -10);
+    leftItem->setBrush(Qt::darkGreen);
+
+    QGraphicsEllipseItem *rightItem = new QGraphicsEllipseItem(0, 0, 20, 20, this);
+    rightItem->setPos(20, -10);
+    rightItem->setBrush(Qt::darkRed);
+}
+
+bool Knob::sceneEvent(QEvent *event)
+{
+    switch (event->type()) {
+    case QEvent::TouchBegin:
+    case QEvent::TouchUpdate:
+    case QEvent::TouchEnd:
+    {
+        QTouchEvent *touchEvent = static_cast<QTouchEvent *>(event);
+
+        if (touchEvent->touchPoints().count() == 2) {
+            const QTouchEvent::TouchPoint &touchPoint1 = touchEvent->touchPoints().first();
+            const QTouchEvent::TouchPoint &touchPoint2 = touchEvent->touchPoints().last();
+
+            QLineF line1(touchPoint1.lastScenePos(), touchPoint2.lastScenePos());
+            QLineF line2(touchPoint1.scenePos(), touchPoint2.scenePos());
+
+            rotate(line2.angleTo(line1));
+        }
+
+        break;
+    }
+
+    default:
+        return QGraphicsItem::sceneEvent(event);
+    }
+
+    return true;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/examples/touch/knobs/knob.h	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,54 @@
+/****************************************************************************
+**
+** 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:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+**   * Redistributions of source code must retain the above copyright
+**     notice, this list of conditions and the following disclaimer.
+**   * Redistributions in binary form must reproduce the above copyright
+**     notice, this list of conditions and the following disclaimer in
+**     the documentation and/or other materials provided with the
+**     distribution.
+**   * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+**     the names of its contributors may be used to endorse or promote
+**     products derived from this software without specific prior written
+**     permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef KNOB_H
+#define KNOB_H
+
+#include <QGraphicsItem>
+
+class Knob : public QGraphicsEllipseItem
+{
+public:
+    Knob();
+
+    bool sceneEvent(QEvent *event);
+};
+
+#endif // KNOB_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/examples/touch/knobs/knobs.pro	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,8 @@
+HEADERS = knob.h
+SOURCES = main.cpp knob.cpp
+
+# install
+target.path = $$[QT_INSTALL_EXAMPLES]/touch/knobs
+sources.files = $$SOURCES $$HEADERS $$RESOURCES $$FORMS knobs.pro
+sources.path = $$[QT_INSTALL_EXAMPLES]/touch/knobs
+INSTALLS += target sources
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/examples/touch/knobs/main.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,64 @@
+/****************************************************************************
+**
+** 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:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+**   * Redistributions of source code must retain the above copyright
+**     notice, this list of conditions and the following disclaimer.
+**   * Redistributions in binary form must reproduce the above copyright
+**     notice, this list of conditions and the following disclaimer in
+**     the documentation and/or other materials provided with the
+**     distribution.
+**   * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+**     the names of its contributors may be used to endorse or promote
+**     products derived from this software without specific prior written
+**     permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QApplication>
+#include <QGraphicsView>
+
+#include "knob.h"
+
+int main(int argc, char **argv)
+{
+    QApplication app(argc, argv);
+
+    QGraphicsScene scene;
+    QGraphicsView view(&scene);
+
+    Knob *knob1 = new Knob;
+    knob1->setPos(-110, 0);
+    Knob *knob2 = new Knob;
+
+    scene.addItem(knob1);
+    scene.addItem(knob2);
+
+    view.showMaximized();
+    view.fitInView(scene.sceneRect().adjusted(-20, -20, 20, 20), Qt::KeepAspectRatio);
+
+    return app.exec();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/examples/touch/pinchzoom/graphicsview.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,85 @@
+/****************************************************************************
+**
+** 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:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+**   * Redistributions of source code must retain the above copyright
+**     notice, this list of conditions and the following disclaimer.
+**   * Redistributions in binary form must reproduce the above copyright
+**     notice, this list of conditions and the following disclaimer in
+**     the documentation and/or other materials provided with the
+**     distribution.
+**   * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+**     the names of its contributors may be used to endorse or promote
+**     products derived from this software without specific prior written
+**     permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "graphicsview.h"
+
+#include <QScrollBar>
+#include <QTouchEvent>
+
+GraphicsView::GraphicsView(QGraphicsScene *scene, QWidget *parent)
+    : QGraphicsView(scene, parent), totalScaleFactor(1)
+{
+    viewport()->setAttribute(Qt::WA_AcceptTouchEvents);
+    setDragMode(ScrollHandDrag);
+}
+
+bool GraphicsView::viewportEvent(QEvent *event)
+{
+    switch (event->type()) {
+    case QEvent::TouchBegin:
+    case QEvent::TouchUpdate:
+    case QEvent::TouchEnd:
+    {
+        QTouchEvent *touchEvent = static_cast<QTouchEvent *>(event);
+        QList<QTouchEvent::TouchPoint> touchPoints = touchEvent->touchPoints();
+        if (touchPoints.count() == 2) {
+            // determine scale factor
+            const QTouchEvent::TouchPoint &touchPoint0 = touchPoints.first();
+            const QTouchEvent::TouchPoint &touchPoint1 = touchPoints.last();
+            qreal currentScaleFactor =
+                    QLineF(touchPoint0.pos(), touchPoint1.pos()).length()
+                    / QLineF(touchPoint0.startPos(), touchPoint1.startPos()).length();
+            if (touchEvent->touchPointStates() & Qt::TouchPointReleased) {
+                // if one of the fingers is released, remember the current scale
+                // factor so that adding another finger later will continue zooming
+                // by adding new scale factor to the existing remembered value.
+                totalScaleFactor *= currentScaleFactor;
+                currentScaleFactor = 1;
+            }
+            setTransform(QTransform().scale(totalScaleFactor * currentScaleFactor,
+                                            totalScaleFactor * currentScaleFactor));
+        }
+        return true;
+    }
+    default:
+        break;
+    }
+    return QGraphicsView::viewportEvent(event);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/examples/touch/pinchzoom/graphicsview.h	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,55 @@
+/****************************************************************************
+**
+** 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:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+**   * Redistributions of source code must retain the above copyright
+**     notice, this list of conditions and the following disclaimer.
+**   * Redistributions in binary form must reproduce the above copyright
+**     notice, this list of conditions and the following disclaimer in
+**     the documentation and/or other materials provided with the
+**     distribution.
+**   * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+**     the names of its contributors may be used to endorse or promote
+**     products derived from this software without specific prior written
+**     permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#pragma once
+#include <QGraphicsView>
+
+class GraphicsView : public QGraphicsView
+{
+    Q_OBJECT
+
+public:
+    GraphicsView(QGraphicsScene *scene = 0, QWidget *parent = 0);
+
+    bool viewportEvent(QEvent *event);
+
+private:
+    qreal totalScaleFactor;
+};
Binary file examples/touch/pinchzoom/images/cheese.jpg has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/examples/touch/pinchzoom/main.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,86 @@
+/****************************************************************************
+**
+** 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:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+**   * Redistributions of source code must retain the above copyright
+**     notice, this list of conditions and the following disclaimer.
+**   * Redistributions in binary form must reproduce the above copyright
+**     notice, this list of conditions and the following disclaimer in
+**     the documentation and/or other materials provided with the
+**     distribution.
+**   * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+**     the names of its contributors may be used to endorse or promote
+**     products derived from this software without specific prior written
+**     permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "graphicsview.h"
+#include "mouse.h"
+
+#include <QtGui>
+
+#include <math.h>
+
+static const int MouseCount = 7;
+
+//! [0]
+int main(int argc, char **argv)
+{
+    QApplication app(argc, argv);
+    qsrand(QTime(0,0,0).secsTo(QTime::currentTime()));
+//! [0]
+
+//! [1]
+    QGraphicsScene scene;
+    scene.setSceneRect(-300, -300, 600, 600);
+//! [1] //! [2]
+    scene.setItemIndexMethod(QGraphicsScene::NoIndex);
+//! [2]
+
+//! [3]
+    for (int i = 0; i < MouseCount; ++i) {
+        Mouse *mouse = new Mouse;
+        mouse->setPos(::sin((i * 6.28) / MouseCount) * 200,
+                      ::cos((i * 6.28) / MouseCount) * 200);
+        scene.addItem(mouse);
+    }
+//! [3]
+
+//! [4]
+    GraphicsView view(&scene);
+    view.setRenderHint(QPainter::Antialiasing);
+    view.setBackgroundBrush(QPixmap(":/images/cheese.jpg"));
+//! [4] //! [5]
+    view.setCacheMode(QGraphicsView::CacheBackground);
+    view.setViewportUpdateMode(QGraphicsView::BoundingRectViewportUpdate);
+//! [5] //! [6]
+    view.setWindowTitle(QT_TRANSLATE_NOOP(QGraphicsView, "Colliding Mice"));
+    view.showMaximized();
+
+    return app.exec();
+}
+//! [6]
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/examples/touch/pinchzoom/mice.qrc	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,5 @@
+<RCC>
+    <qresource prefix="/" >
+        <file>images/cheese.jpg</file>
+    </qresource>
+</RCC>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/examples/touch/pinchzoom/mouse.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,199 @@
+/****************************************************************************
+**
+** 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:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+**   * Redistributions of source code must retain the above copyright
+**     notice, this list of conditions and the following disclaimer.
+**   * Redistributions in binary form must reproduce the above copyright
+**     notice, this list of conditions and the following disclaimer in
+**     the documentation and/or other materials provided with the
+**     distribution.
+**   * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+**     the names of its contributors may be used to endorse or promote
+**     products derived from this software without specific prior written
+**     permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "mouse.h"
+
+#include <QGraphicsScene>
+#include <QPainter>
+#include <QStyleOption>
+
+#include <math.h>
+
+static const double Pi = 3.14159265358979323846264338327950288419717;
+static double TwoPi = 2.0 * Pi;
+
+static qreal normalizeAngle(qreal angle)
+{
+    while (angle < 0)
+        angle += TwoPi;
+    while (angle > TwoPi)
+        angle -= TwoPi;
+    return angle;
+}
+
+//! [0]
+Mouse::Mouse()
+    : angle(0), speed(0), mouseEyeDirection(0),
+      color(qrand() % 256, qrand() % 256, qrand() % 256)
+{
+    rotate(qrand() % (360 * 16));
+    startTimer(1000 / 33);
+}
+//! [0]
+
+//! [1]
+QRectF Mouse::boundingRect() const
+{
+    qreal adjust = 0.5;
+    return QRectF(-18 - adjust, -22 - adjust,
+                  36 + adjust, 60 + adjust);
+}
+//! [1]
+
+//! [2]
+QPainterPath Mouse::shape() const
+{
+    QPainterPath path;
+    path.addRect(-10, -20, 20, 40);
+    return path;
+}
+//! [2]
+
+//! [3]
+void Mouse::paint(QPainter *painter, const QStyleOptionGraphicsItem *, QWidget *)
+{
+    // Body
+    painter->setBrush(color);
+    painter->drawEllipse(-10, -20, 20, 40);
+
+    // Eyes
+    painter->setBrush(Qt::white);
+    painter->drawEllipse(-10, -17, 8, 8);
+    painter->drawEllipse(2, -17, 8, 8);
+
+    // Nose
+    painter->setBrush(Qt::black);
+    painter->drawEllipse(QRectF(-2, -22, 4, 4));
+
+    // Pupils
+    painter->drawEllipse(QRectF(-8.0 + mouseEyeDirection, -17, 4, 4));
+    painter->drawEllipse(QRectF(4.0 + mouseEyeDirection, -17, 4, 4));
+
+    // Ears
+    painter->setBrush(scene()->collidingItems(this).isEmpty() ? Qt::darkYellow : Qt::red);
+    painter->drawEllipse(-17, -12, 16, 16);
+    painter->drawEllipse(1, -12, 16, 16);
+
+    // Tail
+    QPainterPath path(QPointF(0, 20));
+    path.cubicTo(-5, 22, -5, 22, 0, 25);
+    path.cubicTo(5, 27, 5, 32, 0, 30);
+    path.cubicTo(-5, 32, -5, 42, 0, 35);
+    painter->setBrush(Qt::NoBrush);
+    painter->drawPath(path);
+}
+//! [3]
+
+//! [4]
+void Mouse::timerEvent(QTimerEvent *)
+{
+//! [4]
+    // Don't move too far away
+//! [5]
+    QLineF lineToCenter(QPointF(0, 0), mapFromScene(0, 0));
+    if (lineToCenter.length() > 150) {
+        qreal angleToCenter = ::acos(lineToCenter.dx() / lineToCenter.length());
+        if (lineToCenter.dy() < 0)
+            angleToCenter = TwoPi - angleToCenter;
+        angleToCenter = normalizeAngle((Pi - angleToCenter) + Pi / 2);
+
+        if (angleToCenter < Pi && angleToCenter > Pi / 4) {
+            // Rotate left
+            angle += (angle < -Pi / 2) ? 0.25 : -0.25;
+        } else if (angleToCenter >= Pi && angleToCenter < (Pi + Pi / 2 + Pi / 4)) {
+            // Rotate right
+            angle += (angle < Pi / 2) ? 0.25 : -0.25;
+        }
+    } else if (::sin(angle) < 0) {
+        angle += 0.25;
+    } else if (::sin(angle) > 0) {
+        angle -= 0.25;
+//! [5] //! [6]
+    }
+//! [6]
+
+    // Try not to crash with any other mice
+//! [7]
+    QList<QGraphicsItem *> dangerMice = scene()->items(QPolygonF()
+                                                       << mapToScene(0, 0)
+                                                       << mapToScene(-30, -50)
+                                                       << mapToScene(30, -50));
+    foreach (QGraphicsItem *item, dangerMice) {
+        if (item == this)
+            continue;
+        
+        QLineF lineToMouse(QPointF(0, 0), mapFromItem(item, 0, 0));
+        qreal angleToMouse = ::acos(lineToMouse.dx() / lineToMouse.length());
+        if (lineToMouse.dy() < 0)
+            angleToMouse = TwoPi - angleToMouse;
+        angleToMouse = normalizeAngle((Pi - angleToMouse) + Pi / 2);
+
+        if (angleToMouse >= 0 && angleToMouse < Pi / 2) {
+            // Rotate right
+            angle += 0.5;
+        } else if (angleToMouse <= TwoPi && angleToMouse > (TwoPi - Pi / 2)) {
+            // Rotate left
+            angle -= 0.5;
+//! [7] //! [8]
+        }
+//! [8] //! [9]
+    }
+//! [9]
+
+    // Add some random movement
+//! [10]
+    if (dangerMice.size() > 1 && (qrand() % 10) == 0) {
+        if (qrand() % 1)
+            angle += (qrand() % 100) / 500.0;
+        else
+            angle -= (qrand() % 100) / 500.0;
+    }
+//! [10]
+
+//! [11]
+    speed += (-50 + qrand() % 100) / 100.0;
+
+    qreal dx = ::sin(angle) * 10;
+    mouseEyeDirection = (qAbs(dx / 5) < 1) ? 0 : dx / 5;
+
+    rotate(dx);
+    setPos(mapToParent(0, -(3 + sin(speed) * 3)));
+}
+//! [11]
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/examples/touch/pinchzoom/mouse.h	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,70 @@
+/****************************************************************************
+**
+** 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:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+**   * Redistributions of source code must retain the above copyright
+**     notice, this list of conditions and the following disclaimer.
+**   * Redistributions in binary form must reproduce the above copyright
+**     notice, this list of conditions and the following disclaimer in
+**     the documentation and/or other materials provided with the
+**     distribution.
+**   * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+**     the names of its contributors may be used to endorse or promote
+**     products derived from this software without specific prior written
+**     permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef MOUSE_H
+#define MOUSE_H
+
+#include <QGraphicsObject>
+
+//! [0]
+class Mouse : public QGraphicsObject
+{
+    Q_OBJECT
+
+public:
+    Mouse();
+
+    QRectF boundingRect() const;
+    QPainterPath shape() const;
+    void paint(QPainter *painter, const QStyleOptionGraphicsItem *option,
+               QWidget *widget);
+
+protected:
+    void timerEvent(QTimerEvent *event);
+
+private:
+    qreal angle;
+    qreal speed;
+    qreal mouseEyeDirection;
+    QColor color;
+};
+//! [0]
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/examples/touch/pinchzoom/pinchzoom.pro	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,16 @@
+HEADERS += \
+        mouse.h \
+        graphicsview.h
+SOURCES += \
+	main.cpp \
+        mouse.cpp \
+        graphicsview.cpp
+
+RESOURCES += \
+	mice.qrc
+
+# install
+target.path = $$[QT_INSTALL_EXAMPLES]/touch/pinchzoom
+sources.files = $$SOURCES $$HEADERS $$RESOURCES $$FORMS pinchzoom.pro images
+sources.path = $$[QT_INSTALL_EXAMPLES]/touch/pinchzoom
+INSTALLS += target sources
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/examples/touch/touch.pro	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,2 @@
+TEMPLATE = subdirs
+SUBDIRS = pinchzoom fingerpaint knobs dials
--- a/examples/tutorials/addressbook-fr/part2/addressbook.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/examples/tutorials/addressbook-fr/part2/addressbook.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -111,7 +111,7 @@
     QString name = nameLine->text();
     QString address = addressText->toPlainText();
     
-    if (name == "" || address == "") {
+    if ( name.isEmpty()|| address.isEmpty()) {
         QMessageBox::information(this, tr("Empty Field"),
             tr("Please enter a name and address."));
         return;
--- a/examples/tutorials/addressbook-fr/part3/addressbook.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/examples/tutorials/addressbook-fr/part3/addressbook.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -122,9 +122,10 @@
     QString name = nameLine->text();
     QString address = addressText->toPlainText();
     
-    if (name == "" || address == "") {
+    if (name.isEmpty() || address.isEmpty()) {
         QMessageBox::information(this, tr("Empty Field"),
             tr("Please enter a name and address."));
+	return;
     }
 
     if (!contacts.contains(name)) {
--- a/examples/tutorials/addressbook-fr/part4/addressbook.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/examples/tutorials/addressbook-fr/part4/addressbook.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -131,9 +131,10 @@
     QString name = nameLine->text();
     QString address = addressText->toPlainText();
 
-    if (name == "" || address == "") {
+    if (name.isEmpty() || address.isEmpty()) {
         QMessageBox::information(this, tr("Empty Field"),
             tr("Please enter a name and address."));
+	return;
     }
 //! [submitContact() function part1]
     if (currentMode == AddingMode) {
--- a/examples/tutorials/addressbook-fr/part5/addressbook.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/examples/tutorials/addressbook-fr/part5/addressbook.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -138,10 +138,11 @@
     QString name = nameLine->text();
     QString address = addressText->toPlainText();
 
-    if (name == "" || address == "") {
+    if (name.isEmpty() || address.isEmpty()) {
         QMessageBox::information(this, tr("Empty Field"),
             tr("Please enter a name and address."));
-    }
+   	return;
+   }
 
     if (currentMode == AddingMode) {
         
--- a/examples/tutorials/addressbook-fr/part6/addressbook.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/examples/tutorials/addressbook-fr/part6/addressbook.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -144,9 +144,10 @@
     QString name = nameLine->text();
     QString address = addressText->toPlainText();
 
-    if (name == "" || address == "") {
+    if (name.isEmpty() || address.isEmpty()) {
         QMessageBox::information(this, tr("Empty Field"),
             tr("Please enter a name and address."));
+	return;
     }
 
     if (currentMode == AddingMode) {
--- a/examples/tutorials/addressbook-fr/part7/addressbook.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/examples/tutorials/addressbook-fr/part7/addressbook.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -146,9 +146,10 @@
     QString name = nameLine->text();
     QString address = addressText->toPlainText();
 
-    if (name == "" || address == "") {
+    if (name.isEmpty() || address.isEmpty()) {
         QMessageBox::information(this, tr("Empty Field"),
             tr("Please enter a name and address."));
+	return;
     }
 
     if (currentMode == AddingMode) {
--- a/examples/tutorials/addressbook/part2/addressbook.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/examples/tutorials/addressbook/part2/addressbook.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -111,7 +111,7 @@
     QString name = nameLine->text();
     QString address = addressText->toPlainText();
     
-    if (name == "" || address == "") {
+    if (name.isEmpty() || address.isEmpty()) {
         QMessageBox::information(this, tr("Empty Field"),
             tr("Please enter a name and address."));
         return;
--- a/examples/tutorials/addressbook/part3/addressbook.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/examples/tutorials/addressbook/part3/addressbook.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -122,7 +122,7 @@
     QString name = nameLine->text();
     QString address = addressText->toPlainText();
     
-    if (name == "" || address == "") {
+    if (name.isEmpty() || address.isEmpty()) {
         QMessageBox::information(this, tr("Empty Field"),
             tr("Please enter a name and address."));
         return;
--- a/examples/tutorials/addressbook/part4/addressbook.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/examples/tutorials/addressbook/part4/addressbook.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -131,7 +131,7 @@
     QString name = nameLine->text();
     QString address = addressText->toPlainText();
 
-    if (name == "" || address == "") {
+    if (name.isEmpty() || address.isEmpty()) {
         QMessageBox::information(this, tr("Empty Field"),
             tr("Please enter a name and address."));
         return;
--- a/examples/tutorials/addressbook/part5/addressbook.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/examples/tutorials/addressbook/part5/addressbook.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -138,7 +138,7 @@
     QString name = nameLine->text();
     QString address = addressText->toPlainText();
 
-    if (name == "" || address == "") {
+    if (name.isEmpty() || address.isEmpty()) {
         QMessageBox::information(this, tr("Empty Field"),
             tr("Please enter a name and address."));
         return;
--- a/examples/tutorials/addressbook/part6/addressbook.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/examples/tutorials/addressbook/part6/addressbook.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -144,7 +144,7 @@
     QString name = nameLine->text();
     QString address = addressText->toPlainText();
 
-    if (name == "" || address == "") {
+    if (name.isEmpty() || address.isEmpty()) {
         QMessageBox::information(this, tr("Empty Field"),
             tr("Please enter a name and address."));
         return;
--- a/examples/tutorials/addressbook/part7/addressbook.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/examples/tutorials/addressbook/part7/addressbook.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -146,7 +146,7 @@
     QString name = nameLine->text();
     QString address = addressText->toPlainText();
 
-    if (name == "" || address == "") {
+    if (name.isEmpty() || address.isEmpty()) {
         QMessageBox::information(this, tr("Empty Field"),
             tr("Please enter a name and address."));
         return;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/examples/tutorials/gettingStarted/gsQml/core/button.qml	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,108 @@
+/****************************************************************************
+**
+** 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 QtDeclarative module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+**   * Redistributions of source code must retain the above copyright
+**     notice, this list of conditions and the following disclaimer.
+**   * Redistributions in binary form must reproduce the above copyright
+**     notice, this list of conditions and the following disclaimer in
+**     the documentation and/or other materials provided with the
+**     distribution.
+**   * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+**     the names of its contributors may be used to endorse or promote
+**     products derived from this software without specific prior written
+**     permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+
+import Qt 4.7
+
+Rectangle {
+    //identifier of the item
+    id: button
+
+    //these properties act as constants, useable outside this QML file
+    property int buttonHeight: 75
+    property int buttonWidth: 150
+
+    //attaches to the Text element's text content
+    property string label
+    property color textColor: buttonLabel.color
+
+    //the color highlight when the mouse hovers on the rectangle
+    property color onHoverColor: "lightsteelblue"
+    property color borderColor: "transparent"
+
+    //buttonColor is set to the button's main color
+    property color buttonColor: "lightblue"
+
+    property real labelSize: 14
+
+    //set appearance properties
+    radius: 6
+    smooth: true
+    border { width: 2; color: borderColor }
+    width: buttonWidth; height: buttonHeight
+
+    Text {
+        id: buttonLabel
+        anchors.centerIn: parent
+        text: label     //bind the text to the parent's text
+        color: "#DCDCCC"
+        font.pointSize: labelSize
+    }
+
+    //buttonClick() is callable and a signal handler, onButtonClick is automatically created
+    signal buttonClick()
+
+    //define the clickable area to be the whole rectangle
+    MouseArea { 
+        id: buttonMouseArea
+        anchors.fill: parent    //stretch the area to the parent's dimension
+        onClicked: buttonClick()
+
+        //if true, then onEntered and onExited called if mouse hovers in the mouse area
+        //if false, a button must be clicked to detect the mouse hover
+        hoverEnabled: true
+
+        //display a border if the mouse hovers on the button mouse area
+        onEntered: parent.border.color = onHoverColor
+        //remove the border if the mouse exits the button mouse area
+        onExited:  parent.border.color = borderColor
+    }
+
+    //change the color of the button when pressed
+    color: buttonMouseArea.pressed ? Qt.darker(buttonColor, 1.5) : buttonColor
+    //animate the color whenever the color property changes
+    Behavior on color { ColorAnimation{ duration: 55 } }
+
+    //scale the button when pressed
+    scale: buttonMouseArea.pressed ? 1.1 : 1.00
+    //Animate the scale property change
+    Behavior on scale { NumberAnimation{ duration: 55 } }
+
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/examples/tutorials/gettingStarted/gsQml/core/editMenu.qml	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,105 @@
+/****************************************************************************
+**
+** 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 QtDeclarative module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+**   * Redistributions of source code must retain the above copyright
+**     notice, this list of conditions and the following disclaimer.
+**   * Redistributions in binary form must reproduce the above copyright
+**     notice, this list of conditions and the following disclaimer in
+**     the documentation and/or other materials provided with the
+**     distribution.
+**   * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+**     the names of its contributors may be used to endorse or promote
+**     products derived from this software without specific prior written
+**     permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+
+import Qt 4.7
+
+Rectangle {
+    id: editMenu
+    height: 480; width:1000
+    color: "powderblue"
+    property color buttonBorderColor: "#7A8182"
+    property color buttonFillColor: "#61BDCACD"
+    property string menuName:"Edit"
+    gradient: Gradient {
+        GradientStop { position: 0.0; color: "#6A7570" }
+        GradientStop { position: 1.0; color: Qt.darker("#6A7570") }
+    }
+
+    Rectangle {
+        id:actionContainer
+         color:"transparent"
+        anchors.centerIn: parent
+        width: parent.width; height: parent.height / 5
+        Row {
+            anchors.centerIn: parent
+            spacing: parent.width/9
+            Button {
+                id: loadButton
+                buttonColor: buttonFillColor
+                label: "Copy"
+                labelSize: 16
+                borderColor: buttonBorderColor
+                height: actionContainer.height; width: actionContainer.width/6
+                onButtonClick: textArea.copy()
+                gradient: Gradient {
+                    GradientStop { position: 0.0; color: Qt.lighter(buttonFillColor,1.25) }
+                    GradientStop { position: 0.67; color: Qt.darker(buttonFillColor,1.3) }
+                }
+            }
+            Button {
+                id: saveButton
+                height: actionContainer.height; width: actionContainer.width/6
+                buttonColor: buttonFillColor
+                label: "Paste"
+                borderColor: buttonBorderColor
+                labelSize: 16
+                onButtonClick: textArea.paste()
+                gradient: Gradient {
+                    GradientStop { position: 0.0; color: Qt.lighter(buttonFillColor,1.25) }
+                    GradientStop { position: 0.67; color: Qt.darker(buttonFillColor,1.3) }
+                }
+            }
+            Button {
+                id: exitButton
+                label: "Select All"
+                height: actionContainer.height; width: actionContainer.width/6
+                labelSize: 16
+                buttonColor: buttonFillColor
+                borderColor:buttonBorderColor
+                onButtonClick: textArea.selectAll()
+                gradient: Gradient {
+                    GradientStop { position: 0.0; color: Qt.lighter(buttonFillColor,1.25) }
+                    GradientStop { position: 0.67; color: Qt.darker(buttonFillColor,1.3) }
+                }
+            }
+        }
+    }
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/examples/tutorials/gettingStarted/gsQml/core/fileDialog.qml	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,163 @@
+/****************************************************************************
+**
+** 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 QtDeclarative module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+**   * Redistributions of source code must retain the above copyright
+**     notice, this list of conditions and the following disclaimer.
+**   * Redistributions in binary form must reproduce the above copyright
+**     notice, this list of conditions and the following disclaimer in
+**     the documentation and/or other materials provided with the
+**     distribution.
+**   * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+**     the names of its contributors may be used to endorse or promote
+**     products derived from this software without specific prior written
+**     permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import Qt 4.7
+
+Rectangle {
+    id:dialog
+    height: 200 * partition; width: 200
+    color: "transparent"
+
+    signal selectChanged()
+    signal notifyRefresh()
+    onNotifyRefresh:dirView.model = directory.files
+
+    property string selectedFile
+    property int selectedIndex: 0
+
+    Rectangle {
+        id: dirBox
+        radius: 10
+        anchors.centerIn:parent
+        height: parent.height -15; width: parent.width -30
+
+        Rectangle {
+            id:header
+            height: parent.height*0.1; width: parent.width
+            radius:3
+            z:1
+            gradient: Gradient {
+                GradientStop { position: 0.0; color: "#8C8F8C" }
+                GradientStop { position: 0.17; color: "#6A6D6A" }
+                GradientStop { position: 0.98;color: "#3F3F3F" }
+                GradientStop { position: 1.0; color: "#0e1B20" }
+            }
+            Text {
+                height: header.height; anchors.centerIn: header
+                text: "files:" 
+                color: "lightblue"
+                font.weight: Font.Light
+                font.italic: true
+            }
+        }
+        GridView {
+            id:dirView
+            width:parent.width; height:parent.height*.9
+            anchors.top: header.bottom
+            cellWidth: 100; cellHeight: 75
+            model: directory.files
+            delegate: dirDelegate
+            clip: true
+            highlightMoveDuration: 40
+        }
+        Component {
+            id: dirDelegate
+            Rectangle {
+                id:file
+                color: "transparent"
+                width: GridView.view.cellWidth; height: GridView.view.cellHeight
+
+                Text {
+                    id:fileName
+                    width: parent.width
+                    anchors.centerIn: parent
+                    text: name
+                    color: "#BDCACD"
+                    font.weight: GridView.view.currentIndex == index ?  Font.DemiBold : Font.Normal
+                    font.pointSize: GridView.view.currentIndex == index ?  12 : 10
+                    elide: Text.ElideMiddle
+                    horizontalAlignment: Text.AlignHCenter
+                }
+                Rectangle {
+                    id: selection
+                    width: parent.width; height: parent.height
+                    anchors.centerIn: parent
+                    radius: 10
+                    smooth: true
+                    scale: GridView.view.currentIndex == index ?  1 : 0.5
+                    opacity: GridView.view.currentIndex == index ?  1 : 0
+                    Text {
+                        id: overlay
+                        width: parent.width
+                        anchors.centerIn: parent
+                        text: name
+                        color: "#696167"
+                        font.weight: Font.DemiBold
+                        font.pointSize: 12
+                        smooth: true
+                        elide: Text.ElideMiddle
+                        horizontalAlignment: Text.AlignHCenter
+                    }
+                    Behavior on opacity { NumberAnimation{ duration: 45 } }
+                    Behavior on scale { NumberAnimation{ duration: 45 } }
+                    gradient: Gradient {
+                        GradientStop { position: 0.0; color: Qt.lighter("lightsteelblue",1.25) }
+                        GradientStop { position: 0.67; color: Qt.darker("lightsteelblue",1.3) }
+                    }
+                    border.color: "lightsteelblue"
+                    border.width: 1
+                }
+                MouseArea {
+                    id:fileMouseArea
+                    anchors.fill:parent
+                    hoverEnabled: true
+
+                    onClicked: {
+                        GridView.view.currentIndex = index
+                        selectedFile = directory.files[index].name
+                        selectChanged()
+                    }
+                    onEntered: {
+                            fileName.color = "lightsteelblue"
+                            fileName.font.weight = Font.DemiBold
+                        }
+                    onExited: {
+                            fileName.font.weight = Font.Normal
+                            fileName.color = "#BDCACD"
+                        }
+                }
+            }
+        }
+        gradient: Gradient {
+            GradientStop { position: 0.0; color: "#A5333333" }
+            GradientStop { position: 1.0; color: "#03333333" }
+        }
+    }
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/examples/tutorials/gettingStarted/gsQml/core/fileMenu.qml	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,232 @@
+/****************************************************************************
+**
+** 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 QtDeclarative module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+**   * Redistributions of source code must retain the above copyright
+**     notice, this list of conditions and the following disclaimer.
+**   * Redistributions in binary form must reproduce the above copyright
+**     notice, this list of conditions and the following disclaimer in
+**     the documentation and/or other materials provided with the
+**     distribution.
+**   * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+**     the names of its contributors may be used to endorse or promote
+**     products derived from this software without specific prior written
+**     permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import Qt 4.7
+
+Rectangle {
+    id: fileMenu
+    height: 480; width:1000
+    property color buttonBorderColor: "#7F8487"
+    property color buttonFillColor: "#8FBDCACD"
+    property string fileContent:directory.fileContent
+
+    //the menuName is accessible from outside this QML file
+    property string menuName: "File"
+
+    //used to divide the screen into parts.
+    property real partition: 1/3
+
+    color: "#6C646A" 
+        gradient: Gradient {
+                        GradientStop { position: 0.0; color: "#6C646A" }
+                        GradientStop { position: 1.0; color: Qt.darker("#6A6D6A") }
+        }
+
+    Directory {
+        id:directory
+        filename: textInput.text
+        onDirectoryChanged:fileDialog.notifyRefresh()
+    }
+
+    Rectangle {
+        id:actionContainer
+
+        //make this rectangle invisible
+        color:"transparent"
+        anchors.left: parent.left
+
+        //the height is a good proportion that creates more space at the top of
+        //the column of buttons
+        width: fileMenu.width * partition; height: fileMenu.height
+
+        Column {
+            anchors.centerIn: parent
+            spacing: parent.height/32
+            Button {
+                id: saveButton
+                label: "Save"
+                borderColor: buttonBorderColor
+                buttonColor: buttonFillColor
+                width: actionContainer.width/ 1.3
+                height:actionContainer.height / 8
+                labelSize:24
+                onButtonClick: {
+                    directory.fileContent = textArea.textContent
+                    directory.filename = textInput.text
+                    directory.saveFile()
+                }
+                gradient: Gradient {
+                    GradientStop { position: 0.0; color: Qt.lighter(buttonFillColor,1.25) }
+                    GradientStop { position: 0.67; color: Qt.darker(buttonFillColor,1.3) }
+                }
+            }
+            Button {
+                id: loadButton
+                width: actionContainer.width/ 1.3
+                height:actionContainer.height/ 8
+                buttonColor: buttonFillColor
+                borderColor: buttonBorderColor
+                label: "Load"
+                labelSize:24
+                onButtonClick:{
+                    directory.filename = textInput.text
+                    directory.loadFile()
+                    textArea.textContent = directory.fileContent
+                }
+                gradient: Gradient {
+                    GradientStop { position: 0.0; color: Qt.lighter(buttonFillColor,1.25) }
+                    GradientStop { position: 0.67; color: Qt.darker(buttonFillColor,1.3) }
+                }
+            }
+            Button {
+                id: newButton
+                width: actionContainer.width/ 1.3
+                height: actionContainer.height/ 8
+                buttonColor: buttonFillColor
+                borderColor: buttonBorderColor
+                label: "New"
+                labelSize: 24
+                onButtonClick:{
+                    textArea.textContent = ""
+                    textInput.text = ""
+                }
+                gradient: Gradient {
+                    GradientStop { position: 0.0; color: Qt.lighter(buttonFillColor,1.25) }
+                    GradientStop { position: 0.67; color: Qt.darker(buttonFillColor,1.3) }
+                }
+
+            }
+            Rectangle {
+                id: space
+                width: actionContainer.width/ 1.3
+                height: actionContainer.height / 16
+                color: "transparent"
+            }
+            Button {
+                id: exitButton
+                width: actionContainer.width/ 1.3
+                height: actionContainer.height/ 8
+                label: "Exit"
+                labelSize: 24
+                buttonColor: buttonFillColor
+                borderColor: buttonBorderColor
+                onButtonClick: Qt.quit()
+                gradient: Gradient {
+                    GradientStop { position: 0.0; color: Qt.lighter(buttonFillColor,1.25) }
+                    GradientStop { position: 0.67; color: Qt.darker(buttonFillColor,1.3) }
+                }
+            }
+        }
+    }
+    Rectangle {
+        id:dialogContainer
+
+        width: 2*fileMenu.width * partition; height: fileMenu.height
+        anchors.right:parent.right
+        color: "transparent"
+
+        Column {
+            anchors.centerIn: parent
+            spacing: parent.height /640
+            FileDialog {
+                id:fileDialog
+                height: 2*dialogContainer.height * partition
+                width: dialogContainer.width
+                onSelectChanged: textInput.text = selectedFile
+            }
+
+            Rectangle {
+                id:lowerPartition
+                height: dialogContainer.height * partition; width: dialogContainer.width
+                color: "transparent"
+
+                Rectangle {
+                    id: nameField
+                    gradient: Gradient {
+                        GradientStop { position: 0.0; color: "#806F6F6F" }
+                        GradientStop { position: 1.0; color: "#136F6F6F" }
+                    }
+                    radius: 10
+                    anchors { centerIn:parent; leftMargin: 15; rightMargin: 15; topMargin: 15 }
+                    height: parent.height-15
+                    width: parent.width -20
+                    border { color: "#4A4A4A"; width:1 }
+
+                    TextInput {
+                        id: textInput
+                        z:2
+                        anchors { bottom: parent.bottom; topMargin: 10; horizontalCenter: parent.horizontalCenter }
+                        width: parent.width - 10
+                        height: parent.height -10
+                        font.pointSize: 40
+                        color: "lightsteelblue"
+                        focus: true
+                    }
+                    Text {
+                        id: textInstruction
+                        anchors.centerIn: parent
+                        text: "Select file name and press save or load"
+                        font {pointSize: 11; weight: Font.Light; italic: true}
+                        color: "lightblue"
+                        z: 2
+                        opacity: (textInput.text == "") ? 1 : 0
+                    }
+                    Text {
+                        id:fieldLabel
+                        anchors { top: parent.top; left: parent.left }
+                        text: "  file name: "
+                        font { pointSize: 11; weight: Font.Light; italic: true }
+                        color: "lightblue"
+                        z:2
+                    }
+                    MouseArea {
+                            anchors.centerIn:parent
+                            width: nameField.width; height: nameField.height
+                            onClicked: {
+                                textInput.text = ""
+                                textInput.focus = true
+                                textInput.forceFocus()
+                            }
+                    }
+                }
+            }
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/examples/tutorials/gettingStarted/gsQml/core/menuBar.qml	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,147 @@
+/****************************************************************************
+**
+** 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 QtDeclarative module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+**   * Redistributions of source code must retain the above copyright
+**     notice, this list of conditions and the following disclaimer.
+**   * Redistributions in binary form must reproduce the above copyright
+**     notice, this list of conditions and the following disclaimer in
+**     the documentation and/or other materials provided with the
+**     distribution.
+**   * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+**     the names of its contributors may be used to endorse or promote
+**     products derived from this software without specific prior written
+**     permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import Qt 4.7
+
+Rectangle {
+    id: menuBar
+    width: 1000; height:300
+    color:"transparent"
+    property color fileColor: "plum"
+    property color editColor: "powderblue"
+
+    property real partition: 1/10
+
+    Column {
+        anchors.fill: parent
+        //container for the header and the buttons
+        z: 1
+        Rectangle {
+            id: labelList
+            height:menuBar.height*partition
+            width: menuBar.width
+            color: "beige"
+            gradient: Gradient {
+                GradientStop { position: 0.0; color: "#8C8F8C" }
+                GradientStop { position: 0.17; color: "#6A6D6A" }
+                GradientStop { position: 0.98;color: "#3F3F3F" }
+                GradientStop { position: 1.0; color: "#0e1B20" }
+            }
+            Text {
+                height: parent.height
+                anchors { right: labelRow.left ; verticalCenter: parent.bottom }
+                text: "menu:    " 
+                color: "lightblue"
+                font { weight: Font.Light; italic: true }
+                smooth: true
+            }
+            //row displays its children in a vertical row
+            Row {
+                id: labelRow
+                anchors.centerIn: parent
+                spacing:40
+                Button {
+                    id: fileButton
+                    height: 20; width: 50
+                    label: "File"
+                    buttonColor : menuListView.currentIndex == 0? fileColor : Qt.darker(fileColor, 1.5)
+                    scale: menuListView.currentIndex == 0? 1.25: 1
+                    labelSize: menuListView.currentIndex == 0? 16:12
+                    radius: 1
+                    smooth:true
+                    //on a button click, change the list's currently selected item to FileMenu
+                    onButtonClick: menuListView.currentIndex = 0
+                    gradient: Gradient {
+                        GradientStop { position: 0.0; color: fileColor }
+                        GradientStop { position: 1.0; color: "#136F6F6F" }
+                    }
+                }
+                Button {
+                    id: editButton
+                    height: 20; width: 50
+                    buttonColor : menuListView.currentIndex == 1? Qt.darker(editColor, 1.5) : Qt.darker(editColor, 1.9)
+                    scale: menuListView.currentIndex == 1? 1.25: 1    
+                    label: "Edit"
+                    radius: 1
+                    labelSize: menuListView.currentIndex == 1? 16:12
+                    smooth:true
+                    //on a button click, change the list's currently selected item to EditMenu
+                    onButtonClick: menuListView.currentIndex = 1    
+                    gradient: Gradient {
+                        GradientStop { position: 0.0; color: editColor }
+                        GradientStop { position: 1.0; color: "#136F6F6F" }
+                    }
+                }
+            }
+        }
+
+        //list view will display a model according to a delegate
+        ListView {
+            id: menuListView
+            width:menuBar.width; height: 9*menuBar.height*partition
+
+            //the model contains the data
+            model: menuListModel
+
+            //control the movement of the menu switching
+            snapMode: ListView.SnapOneItem
+            orientation: ListView.Horizontal
+            boundsBehavior: Flickable.StopAtBounds 
+            flickDeceleration: 5000
+            highlightFollowsCurrentItem: true
+            highlightMoveDuration:240
+            highlightRangeMode: ListView.StrictlyEnforceRange
+        }
+    }
+    //a list of visual items already have delegates handling their display
+    VisualItemModel {
+        id: menuListModel
+
+        FileMenu {
+            id:fileMenu
+            width: menuListView.width; height: menuListView.height
+            color: fileColor
+        }
+        EditMenu {
+            color: editColor
+            width:  menuListView.width; height: menuListView.height
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/examples/tutorials/gettingStarted/gsQml/core/qmldir	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,49 @@
+/****************************************************************************
+**
+** 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 QtDeclarative module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+**   * Redistributions of source code must retain the above copyright
+**     notice, this list of conditions and the following disclaimer.
+**   * Redistributions in binary form must reproduce the above copyright
+**     notice, this list of conditions and the following disclaimer in
+**     the documentation and/or other materials provided with the
+**     distribution.
+**   * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+**     the names of its contributors may be used to endorse or promote
+**     products derived from this software without specific prior written
+**     permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+Button ./button.qml
+FileDialog ./fileDialog.qml
+TextArea ./textArea.qml
+TextEditor ./textEditor.qml
+EditMenu ./editMenu.qml
+MenuBar ./menuBar.qml
+FileMenu ./fileMenu.qml
+
+plugin FileDialog ../plugins
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/examples/tutorials/gettingStarted/gsQml/core/textArea.qml	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,87 @@
+/****************************************************************************
+**
+** 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 QtDeclarative module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+**   * Redistributions of source code must retain the above copyright
+**     notice, this list of conditions and the following disclaimer.
+**   * Redistributions in binary form must reproduce the above copyright
+**     notice, this list of conditions and the following disclaimer in
+**     the documentation and/or other materials provided with the
+**     distribution.
+**   * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+**     the names of its contributors may be used to endorse or promote
+**     products derived from this software without specific prior written
+**     permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import Qt 4.7
+
+Rectangle {
+    id:textArea
+
+    function paste() { textEdit.paste() }
+    function copy() { textEdit.copy() }
+    function selectAll() { textEdit.selectAll() }
+
+    width :400; height:400
+
+    property color fontColor: "white"
+    property alias textContent: textEdit.text
+    Flickable {
+        id: flickArea
+        width: parent.width; height: parent.height
+        anchors.fill:parent
+
+        boundsBehavior: Flickable.StopAtBounds
+        flickableDirection: Flickable.HorizontalFlick
+        interactive: true
+        //Will move the text Edit area to make the area visible when
+        //scrolled with keyboard strokes
+        function ensureVisible(r) {
+            if (contentX >= r.x)
+            contentX = r.x;
+            else if (contentX+width <= r.x+r.width)
+            contentX = r.x+r.width-width;
+            if (contentY >= r.y)
+            contentY = r.y;
+            else if (contentY+height <= r.y+r.height)
+            contentY = r.y+r.height-height;
+        }
+
+        TextEdit {
+            id: textEdit
+            anchors.fill:parent
+            width:parent.width; height:parent.height
+            color:fontColor
+            focus: true
+            wrapMode: TextEdit.Wrap
+            font.pointSize:10
+            onCursorRectangleChanged: flickArea.ensureVisible(cursorRectangle)
+            selectByMouse: true
+        }
+    }
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/examples/tutorials/gettingStarted/gsQml/filedialog/cppPlugins.pro	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,17 @@
+TEMPLATE = lib
+CONFIG += qt plugin
+QT += declarative
+
+DESTDIR +=  ../plugins
+OBJECTS_DIR = tmp
+MOC_DIR = tmp
+
+TARGET = FileDialog
+
+HEADERS +=     directory.h \
+        file.h \
+        dialogPlugin.h
+
+SOURCES +=    directory.cpp \
+        file.cpp \
+        dialogPlugin.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/examples/tutorials/gettingStarted/gsQml/filedialog/dialogPlugin.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,54 @@
+/****************************************************************************
+**
+** 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 QtDeclarative module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+**   * Redistributions of source code must retain the above copyright
+**     notice, this list of conditions and the following disclaimer.
+**   * Redistributions in binary form must reproduce the above copyright
+**     notice, this list of conditions and the following disclaimer in
+**     the documentation and/or other materials provided with the
+**     distribution.
+**   * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+**     the names of its contributors may be used to endorse or promote
+**     products derived from this software without specific prior written
+**     permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "dialogPlugin.h"
+#include "directory.h"
+#include "file.h"
+#include <QtDeclarative/qdeclarative.h>
+
+void DialogPlugin::registerTypes(const char *uri)
+{
+    //register the class Directory into QML as a "Directory" element version 1.0
+    qmlRegisterType<Directory>(uri, 1, 0, "Directory");
+    qmlRegisterType<File>(uri,1,0,"File");
+}
+
+//FileDialog is the plugin name (same as the TARGET in the project file) and DialogPlugin is the plugin classs
+Q_EXPORT_PLUGIN2(FileDialog, DialogPlugin);
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/examples/tutorials/gettingStarted/gsQml/filedialog/dialogPlugin.h	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,57 @@
+/****************************************************************************
+**
+** 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 QtDeclarative module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+**   * Redistributions of source code must retain the above copyright
+**     notice, this list of conditions and the following disclaimer.
+**   * Redistributions in binary form must reproduce the above copyright
+**     notice, this list of conditions and the following disclaimer in
+**     the documentation and/or other materials provided with the
+**     distribution.
+**   * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+**     the names of its contributors may be used to endorse or promote
+**     products derived from this software without specific prior written
+**     permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef DIALOGPLUGIN_H
+#define DIALOGPLUGIN_H
+
+#include <QtDeclarative/QDeclarativeExtensionPlugin>
+
+class DialogPlugin : public QDeclarativeExtensionPlugin
+{
+    Q_OBJECT
+
+    public:
+        //registerTypes is inherited from QDeclarativeExtensionPlugin
+        void registerTypes(const char *uri);
+
+};
+
+#endif
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/examples/tutorials/gettingStarted/gsQml/filedialog/directory.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,224 @@
+/****************************************************************************
+**
+** 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 QtDeclarative module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+**   * Redistributions of source code must retain the above copyright
+**     notice, this list of conditions and the following disclaimer.
+**   * Redistributions in binary form must reproduce the above copyright
+**     notice, this list of conditions and the following disclaimer in
+**     the documentation and/or other materials provided with the
+**     distribution.
+**   * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+**     the names of its contributors may be used to endorse or promote
+**     products derived from this software without specific prior written
+**     permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "directory.h"
+#include <QDebug>
+
+/*
+Directory constructor
+
+Initialize the saves directory and creates the file list
+*/
+Directory::Directory(QObject *parent) : QObject(parent)
+{
+    m_dir.cd( QDir::currentPath() );
+
+    //go to the saved directory. if not found, create save directory
+    m_saveDir = "saves";
+    if ( m_dir.cd(m_saveDir) == 0 ) {
+        m_dir.mkdir(m_saveDir);
+        m_dir.cd(m_saveDir);
+    }
+     m_filterList << "*.txt";
+    refresh();
+}
+
+/*
+Directory::filesNumber
+Return the number of Files
+*/
+int Directory::filesCount() const
+{
+    return m_fileList.size();
+}
+
+/*
+Function called to append data onto list property
+*/
+void appendFiles(QDeclarativeListProperty<File> * property, File * file)
+{
+    Q_UNUSED(property);
+    Q_UNUSED(file);
+    //Do nothing. can't add to a directory using this method
+}
+
+/*
+Function called to retrieve file in the list using an index
+*/
+File* fileAt(QDeclarativeListProperty<File> * property, int index)
+{
+    return static_cast< QList<File *> *>(property->data)->at(index);
+}
+
+/*
+Returns the number of files in the list
+*/
+int filesSize(QDeclarativeListProperty<File> * property) 
+{
+    return static_cast< QList<File *> *>(property->data)->size();
+}
+
+/*
+Function called to empty the list property contents
+*/
+void clearFilesPtr(QDeclarativeListProperty<File> *property)
+{
+    return static_cast< QList<File *> *>(property->data)->clear();
+}
+
+/*
+Returns the list of files as a QDeclarativeListProperty.
+*/
+QDeclarativeListProperty<File> Directory::files()
+{
+    refresh();
+    return QDeclarativeListProperty<File>( this, &m_fileList, &appendFiles, &filesSize, &fileAt,  &clearFilesPtr );
+}
+
+/*
+Return the name of the currently selected file
+*/
+QString Directory::filename() const
+{
+    return currentFile.name();
+}
+
+/*
+Return the file's content as a string.
+*/
+QString Directory::fileContent() const
+{
+    return m_fileContent;
+}
+
+/*
+Set the file name of the current file
+*/
+void Directory::setFilename(const QString &str)
+{
+    if( str != currentFile.name() ) {
+        currentFile.setName(str);
+        emit filenameChanged();
+    }
+}
+
+/*
+Set the content of the file as a string
+*/
+void Directory::setFileContent(const QString &str)
+{
+    if(str != m_fileContent){
+        m_fileContent = str;
+        emit fileContentChanged();
+    }
+}
+
+/*
+Called from QML to save the file using the filename and file content.
+Saving makes sure that the file has a .txt extension.
+*/
+void Directory::saveFile()
+{
+    if(currentFile.name().size() == 0){
+        qWarning()<< "Empty filename. no save";
+        return;
+    }
+    QString extendedName = currentFile.name();
+    if(!currentFile.name().endsWith(".txt")){
+        extendedName.append(".txt");
+    }
+    QFile file( m_dir.filePath(extendedName) );
+    if ( file.open(QFile::WriteOnly | QFile::Truncate) ) {
+        QTextStream outStream(&file);
+        outStream << m_fileContent;
+    }
+    file.close();
+    refresh();
+    emit directoryChanged();
+}
+
+/*
+Load the contents of a file.
+Only loads files with a .txt extension
+*/
+void Directory::loadFile()
+{
+    m_fileContent.clear();
+    QString extendedName = currentFile.name();
+    if( !currentFile.name().endsWith(".txt") ) {
+        extendedName.append(".txt");
+    }
+
+    QFile file( m_dir.filePath(extendedName) );
+    if ( file.open(QFile::ReadOnly ) ) {
+        QTextStream inStream(&file);
+
+        QString line;
+        do {
+            line = inStream.read(75);
+            m_fileContent.append(line);
+        } while ( !line.isNull() ) ;
+    }
+    file.close();
+}
+
+/*
+Reloads the content of the files list. This is to ensure that the newly
+created files are added onto the list.
+*/
+void Directory::refresh()
+{
+    m_dirFiles = m_dir.entryList(m_filterList,QDir::Files,QDir::Name);
+    m_fileList.clear();
+
+    File * file;
+    for(int i = 0; i < m_dirFiles.size() ; i ++) {
+        file = new File();
+
+        if( m_dirFiles.at(i).endsWith(".txt") ) {
+            QString name = m_dirFiles.at(i);
+            file->setName( name.remove(".txt",Qt::CaseSensitive) );
+        }
+        else {
+            file->setName(m_dirFiles.at(i));
+        }
+        m_fileList.append(file);
+    }
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/examples/tutorials/gettingStarted/gsQml/filedialog/directory.h	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,107 @@
+/****************************************************************************
+**
+** 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 QtDeclarative module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+**   * Redistributions of source code must retain the above copyright
+**     notice, this list of conditions and the following disclaimer.
+**   * Redistributions in binary form must reproduce the above copyright
+**     notice, this list of conditions and the following disclaimer in
+**     the documentation and/or other materials provided with the
+**     distribution.
+**   * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+**     the names of its contributors may be used to endorse or promote
+**     products derived from this software without specific prior written
+**     permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef DIRECTORY_H
+#define DIRECTORY_H
+
+#include "file.h"
+
+#include <QDir>
+#include <QStringList>
+#include <QTextStream>
+#include <QDeclarativeListProperty>
+#include <QObject>
+
+class Directory : public QObject {
+
+    Q_OBJECT
+
+    //number of files in the directory
+    Q_PROPERTY(int filesCount READ filesCount)
+
+    //list property containing file names as QString
+    Q_PROPERTY(QDeclarativeListProperty<File> files READ files CONSTANT )
+
+    //file name of the text file to read/write
+    Q_PROPERTY(QString filename READ filename WRITE setFilename NOTIFY filenameChanged)
+
+    //text content of the file
+    Q_PROPERTY(QString fileContent READ fileContent WRITE setFileContent NOTIFY fileContentChanged)
+
+    public:
+        Directory(QObject *parent = 0);
+
+        //properties' read functions
+        int filesCount() const;
+        QString filename() const;
+        QString fileContent() const;
+        QDeclarativeListProperty<File> files();
+
+        //properties' write functions
+        void setFilename(const QString &str);
+        void setFileContent(const QString &str);
+
+        //accessible from QML
+        Q_INVOKABLE void saveFile();
+        Q_INVOKABLE void loadFile();
+
+    signals:
+        void directoryChanged();
+        void filenameChanged();
+        void fileContentChanged();
+
+    private:
+        QDir m_dir;
+        QStringList m_dirFiles;
+        File currentFile;
+        QString m_saveDir;
+        QStringList m_filterList;
+
+        //contains the file data in QString format
+        QString m_fileContent;
+
+        //Registered to QML in a plugin. Accessible from QML as a property of Directory
+        QList<File *> m_fileList;
+
+        //refresh content of the directory 
+        void refresh();
+};
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/examples/tutorials/gettingStarted/gsQml/filedialog/file.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,57 @@
+/****************************************************************************
+**
+** 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 QtDeclarative module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+**   * Redistributions of source code must retain the above copyright
+**     notice, this list of conditions and the following disclaimer.
+**   * Redistributions in binary form must reproduce the above copyright
+**     notice, this list of conditions and the following disclaimer in
+**     the documentation and/or other materials provided with the
+**     distribution.
+**   * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+**     the names of its contributors may be used to endorse or promote
+**     products derived from this software without specific prior written
+**     permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+
+#include "file.h"
+
+File::File(QObject *parent) : QObject(parent)
+{
+    m_name = "";
+}
+
+QString File::name() const{
+    return m_name;
+}
+void File::setName(const QString &str){
+    if(str != m_name){
+        m_name = str;
+        emit nameChanged();
+    }
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/examples/tutorials/gettingStarted/gsQml/filedialog/file.h	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,67 @@
+/****************************************************************************
+**
+** 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 QtDeclarative module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+**   * Redistributions of source code must retain the above copyright
+**     notice, this list of conditions and the following disclaimer.
+**   * Redistributions in binary form must reproduce the above copyright
+**     notice, this list of conditions and the following disclaimer in
+**     the documentation and/or other materials provided with the
+**     distribution.
+**   * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+**     the names of its contributors may be used to endorse or promote
+**     products derived from this software without specific prior written
+**     permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef FILE_H
+#define FILE_H
+
+
+#include <QString>
+#include <QObject>
+
+class File : public QObject{
+
+    Q_OBJECT
+
+    Q_PROPERTY(QString name READ name WRITE setName NOTIFY nameChanged)
+
+    public:
+        File(QObject *parent = 0);
+
+        QString name() const;
+        void setName(const QString &str);
+
+    signals:
+        void nameChanged();
+
+    private:
+        QString m_name;
+};
+
+#endif
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/examples/tutorials/gettingStarted/gsQml/filedialog/qmldir	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,1 @@
+plugin FileDialog plugins
Binary file examples/tutorials/gettingStarted/gsQml/images/arrow.png has changed
Binary file examples/tutorials/gettingStarted/gsQml/pics/qml-texteditor5_editmenu.png has changed
Binary file examples/tutorials/gettingStarted/gsQml/pics/qml-texteditor5_filemenu.png has changed
Binary file examples/tutorials/gettingStarted/gsQml/pics/qml-texteditor5_newfile.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/examples/tutorials/gettingStarted/gsQml/texteditor.qml	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,128 @@
+/****************************************************************************
+**
+** 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 QtDeclarative module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+**   * Redistributions of source code must retain the above copyright
+**     notice, this list of conditions and the following disclaimer.
+**   * Redistributions in binary form must reproduce the above copyright
+**     notice, this list of conditions and the following disclaimer in
+**     the documentation and/or other materials provided with the
+**     distribution.
+**   * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+**     the names of its contributors may be used to endorse or promote
+**     products derived from this software without specific prior written
+**     permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import Qt 4.7
+import "core"
+
+Rectangle {
+    id: screen
+    width: 1000; height: 1000
+    property int partition: height/3
+    border { width: 1; color: "#DCDCCC"}
+    state: "DRAWER_CLOSED"
+
+    //Item 1: MenuBar on the top portion of the screen
+    MenuBar {
+        id:menuBar
+        height: screen.partition; width: screen.width
+        z: 1
+    }
+
+    //Item 2: The editable text area
+    TextArea {
+        id: textArea
+        y: drawer.height
+        color: "#3F3F3F"
+        fontColor: "#DCDCCC"
+         height: partition*2; width:parent.width
+    }
+
+    //Item 3: The drawer handle
+    Rectangle {
+        id: drawer
+        height: 15; width: parent.width
+        border { color : "#6A6D6A"; width: 1 }
+        z: 1
+        gradient: Gradient {
+                GradientStop { position: 0.0; color: "#8C8F8C" }
+                GradientStop { position: 0.17; color: "#6A6D6A" }
+                GradientStop { position: 0.77; color: "#3F3F3F" }
+                GradientStop { position: 1.0; color: "#6A6D6A" }
+            }
+        Image {
+            id: arrowIcon
+            source: "images/arrow.png"
+            anchors.horizontalCenter: parent.horizontalCenter
+            Behavior{ NumberAnimation { property: "rotation"; easing.type: Easing.OutExpo } }
+        }
+
+        MouseArea {
+            id: drawerMouseArea
+            anchors.fill: parent
+            hoverEnabled: true
+            onEntered: parent.border.color = Qt.lighter("#6A6D6A")
+            onExited:  parent.border.color = "#6A6D6A"
+            onClicked: {
+                if (screen.state == "DRAWER_CLOSED") {
+                    screen.state = "DRAWER_OPEN"
+                }
+                else if (screen.state == "DRAWER_OPEN"){
+                    screen.state = "DRAWER_CLOSED"
+                }
+            }
+        }
+    }
+
+    states:[
+        State {
+            name: "DRAWER_OPEN"
+            PropertyChanges { target: menuBar; y: 0}
+            PropertyChanges { target: textArea; y: partition + drawer.height}
+            PropertyChanges { target: drawer; y: partition}
+            PropertyChanges { target: arrowIcon; rotation: 180} 
+        },
+        State {
+            name: "DRAWER_CLOSED"
+            PropertyChanges { target: menuBar; y:-height; }
+            PropertyChanges { target: textArea; y: drawer.height; height: screen.height - drawer.height }
+            PropertyChanges { target: drawer; y: 0 }
+            PropertyChanges { target: arrowIcon; rotation: 0 }
+        }
+    ]
+
+    transitions: [
+        Transition {
+            to: "*"
+            NumberAnimation { target: textArea; properties: "y, height"; duration: 100; easing.type:Easing.OutExpo }
+            NumberAnimation { target: menuBar; properties: "y"; duration: 100; easing.type: Easing.OutExpo }
+            NumberAnimation { target: drawer; properties: "y"; duration: 100; easing.type: Easing.OutExpo }
+        }
+    ]
+}
--- a/examples/tutorials/modelview/1_readonly/1_readonly.pro	Fri Sep 17 08:34:18 2010 +0300
+++ b/examples/tutorials/modelview/1_readonly/1_readonly.pro	Mon Oct 04 01:19:32 2010 +0300
@@ -3,8 +3,15 @@
 TEMPLATE = app
 
 SOURCES += main.cpp \
-           modelview.cpp \
            mymodel.cpp
 
-HEADERS += modelview.h \
-           mymodel.h
+HEADERS += mymodel.h
+
+
+# install
+target.path = $$[QT_INSTALL_EXAMPLES]/tutorials/modelview/1_readonly
+sources.files = $$SOURCES $$HEADERS $$RESOURCES $$FORMS 1_readonly.pro
+sources.path = $$[QT_INSTALL_EXAMPLES]/tutorials/modelview/1_readonly
+INSTALLS += target sources
+
+symbian: include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri)
--- a/examples/tutorials/modelview/1_readonly/main.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/examples/tutorials/modelview/1_readonly/main.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -41,13 +41,16 @@
 //! [Quoting ModelView Tutorial]
 // main.cpp
 #include <QtGui/QApplication>
-#include "modelview.h"
+#include <QtGui/QTableView>
+#include "mymodel.h"
 
 int main(int argc, char *argv[])
 {
     QApplication a(argc, argv);
-    ModelView w;
-    w.show();
+    QTableView tableView;
+    MyModel myModel(0);
+    tableView.setModel( &myModel );
+    tableView.show();
     return a.exec();
 }
 //! [Quoting ModelView Tutorial]
--- a/examples/tutorials/modelview/1_readonly/modelview.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,54 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-**   * Redistributions of source code must retain the above copyright
-**     notice, this list of conditions and the following disclaimer.
-**   * Redistributions in binary form must reproduce the above copyright
-**     notice, this list of conditions and the following disclaimer in
-**     the documentation and/or other materials provided with the
-**     distribution.
-**   * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-**     the names of its contributors may be used to endorse or promote
-**     products derived from this software without specific prior written
-**     permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//! [Quoting ModelView Tutorial]
-// modelview.cpp
-#include <QTableView>
-#include "modelview.h"
-#include "mymodel.h"
-
-ModelView::ModelView(QWidget *parent)
-    : QMainWindow(parent)
-{
-    tableView = new QTableView(this);
-    setCentralWidget(tableView);
-    tableView->setModel(new MyModel(this));
-}
-//! [Quoting ModelView Tutorial]
--- a/examples/tutorials/modelview/1_readonly/modelview.h	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,61 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-**   * Redistributions of source code must retain the above copyright
-**     notice, this list of conditions and the following disclaimer.
-**   * Redistributions in binary form must reproduce the above copyright
-**     notice, this list of conditions and the following disclaimer in
-**     the documentation and/or other materials provided with the
-**     distribution.
-**   * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-**     the names of its contributors may be used to endorse or promote
-**     products derived from this software without specific prior written
-**     permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef MODELVIEW_H
-#define MODELVIEW_H
-
-//! [Quoting ModelView Tutorial]
-// modelview.h
-#include <QtGui/QMainWindow>
-
-QT_FORWARD_DECLARE_CLASS(QTableView)
-
-class ModelView : public QMainWindow
-{
-    Q_OBJECT
-private:
-    QTableView *tableView;
-public:
-    ModelView(QWidget *parent = 0);
-
-};
-//! [Quoting ModelView Tutorial]
-
-#endif // MODELVIEW_H
--- a/examples/tutorials/modelview/2_formatting/2_formatting.pro	Fri Sep 17 08:34:18 2010 +0300
+++ b/examples/tutorials/modelview/2_formatting/2_formatting.pro	Mon Oct 04 01:19:32 2010 +0300
@@ -3,8 +3,14 @@
 TEMPLATE = app
 
 SOURCES += main.cpp \
-           modelview.cpp \
            mymodel.cpp
 
-HEADERS += modelview.h \
-           mymodel.h
+HEADERS += mymodel.h
+
+# install
+target.path = $$[QT_INSTALL_EXAMPLES]/tutorials/modelview/2_formatting
+sources.files = $$SOURCES $$HEADERS $$RESOURCES $$FORMS 2_formatting.pro
+sources.path = $$[QT_INSTALL_EXAMPLES]/tutorials/modelview/2_formatting
+INSTALLS += target sources
+
+symbian: include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri)
--- a/examples/tutorials/modelview/2_formatting/main.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/examples/tutorials/modelview/2_formatting/main.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -38,13 +38,19 @@
 **
 ****************************************************************************/
 
+//! [Quoting ModelView Tutorial]
+// main.cpp
 #include <QtGui/QApplication>
-#include "modelview.h"
+#include <QtGui/QTableView>
+#include "mymodel.h"
 
 int main(int argc, char *argv[])
 {
     QApplication a(argc, argv);
-    ModelView w;
-    w.show();
+    QTableView tableView;
+    MyModel myModel(0);
+    tableView.setModel( &myModel );
+    tableView.show();
     return a.exec();
 }
+//! [Quoting ModelView Tutorial]
--- a/examples/tutorials/modelview/2_formatting/modelview.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,52 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-**   * Redistributions of source code must retain the above copyright
-**     notice, this list of conditions and the following disclaimer.
-**   * Redistributions in binary form must reproduce the above copyright
-**     notice, this list of conditions and the following disclaimer in
-**     the documentation and/or other materials provided with the
-**     distribution.
-**   * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-**     the names of its contributors may be used to endorse or promote
-**     products derived from this software without specific prior written
-**     permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <QTableView>
-#include "modelview.h"
-#include "mymodel.h"
-
-ModelView::ModelView(QWidget *parent)
-    : QMainWindow(parent)
-{
-    tableView = new QTableView(this);
-    setCentralWidget(tableView);
-    tableView->setModel(new MyModel(this));
-}
-
--- a/examples/tutorials/modelview/2_formatting/modelview.h	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,57 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-**   * Redistributions of source code must retain the above copyright
-**     notice, this list of conditions and the following disclaimer.
-**   * Redistributions in binary form must reproduce the above copyright
-**     notice, this list of conditions and the following disclaimer in
-**     the documentation and/or other materials provided with the
-**     distribution.
-**   * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-**     the names of its contributors may be used to endorse or promote
-**     products derived from this software without specific prior written
-**     permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef MODELVIEW_H
-#define MODELVIEW_H
-
-#include <QtGui/QMainWindow>
-
-QT_FORWARD_DECLARE_CLASS(QTableView)
-
-class ModelView : public QMainWindow
-{
-    Q_OBJECT
-private:
-    QTableView *tableView;
-public:
-    ModelView(QWidget *parent = 0);
-};
-
-#endif // MODELVIEW_H
--- a/examples/tutorials/modelview/2_formatting/mymodel.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/examples/tutorials/modelview/2_formatting/mymodel.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -43,8 +43,6 @@
 #include "mymodel.h"
 #include <QDebug>
 
-//! [Quoting ModelView Tutorial]
-// mymodel.cpp
 MyModel::MyModel(QObject *parent)
     :QAbstractTableModel(parent)
 {
@@ -60,6 +58,8 @@
     return 3;
 }
 
+//! [Quoting ModelView Tutorial]
+// mymodel.cpp
 QVariant MyModel::data(const QModelIndex &index, int role) const
 {
     int row = index.row();
@@ -89,7 +89,7 @@
 
         if (row == 1 && col == 2)  //change background only for cell(1,2)
         {
-            QBrush redBackground = QBrush(Qt::red);
+            QBrush redBackground(Qt::red);
             return redBackground;
         }
         break;
--- a/examples/tutorials/modelview/3_changingmodel/3_changingmodel.pro	Fri Sep 17 08:34:18 2010 +0300
+++ b/examples/tutorials/modelview/3_changingmodel/3_changingmodel.pro	Mon Oct 04 01:19:32 2010 +0300
@@ -3,8 +3,14 @@
 TEMPLATE = app
 
 SOURCES += main.cpp \
-           modelview.cpp \
            mymodel.cpp
 
-HEADERS += modelview.h \
-           mymodel.h
+HEADERS += mymodel.h
+
+# install
+target.path = $$[QT_INSTALL_EXAMPLES]/tutorials/modelview/3_changingmodel
+sources.files = $$SOURCES $$HEADERS $$RESOURCES $$FORMS 3_changingmodel.pro
+sources.path = $$[QT_INSTALL_EXAMPLES]/tutorials/modelview/3_changingmodel
+INSTALLS += target sources
+
+symbian: include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri)
--- a/examples/tutorials/modelview/3_changingmodel/main.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/examples/tutorials/modelview/3_changingmodel/main.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -39,12 +39,15 @@
 ****************************************************************************/
 
 #include <QtGui/QApplication>
-#include "modelview.h"
+#include <QtGui/QTableView>
+#include "mymodel.h"
 
 int main(int argc, char *argv[])
 {
     QApplication a(argc, argv);
-    ModelView w;
-    w.show();
+    QTableView tableView;
+    MyModel myModel(0);
+    tableView.setModel( &myModel );
+    tableView.show();
     return a.exec();
 }
--- a/examples/tutorials/modelview/3_changingmodel/modelview.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,52 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-**   * Redistributions of source code must retain the above copyright
-**     notice, this list of conditions and the following disclaimer.
-**   * Redistributions in binary form must reproduce the above copyright
-**     notice, this list of conditions and the following disclaimer in
-**     the documentation and/or other materials provided with the
-**     distribution.
-**   * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-**     the names of its contributors may be used to endorse or promote
-**     products derived from this software without specific prior written
-**     permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <QTableView>
-#include "modelview.h"
-#include "mymodel.h"
-
-ModelView::ModelView(QWidget *parent)
-    : QMainWindow(parent)
-{
-    tableView = new QTableView(this);
-    setCentralWidget(tableView);
-    tableView->setModel(new MyModel(this));
-}
-
--- a/examples/tutorials/modelview/3_changingmodel/modelview.h	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,57 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-**   * Redistributions of source code must retain the above copyright
-**     notice, this list of conditions and the following disclaimer.
-**   * Redistributions in binary form must reproduce the above copyright
-**     notice, this list of conditions and the following disclaimer in
-**     the documentation and/or other materials provided with the
-**     distribution.
-**   * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-**     the names of its contributors may be used to endorse or promote
-**     products derived from this software without specific prior written
-**     permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef MODELVIEW_H
-#define MODELVIEW_H
-
-#include <QtGui/QMainWindow>
-
-QT_FORWARD_DECLARE_CLASS(QTableView)
-
-class ModelView : public QMainWindow
-{
-    Q_OBJECT
-private:
-    QTableView *tableView;
-public:
-    ModelView(QWidget *parent = 0);
-};
-
-#endif // MODELVIEW_H
--- a/examples/tutorials/modelview/3_changingmodel/mymodel.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/examples/tutorials/modelview/3_changingmodel/mymodel.h	Mon Oct 04 01:19:32 2010 +0300
@@ -42,8 +42,7 @@
 #define MYMODEL_H
 
 #include <QAbstractTableModel>
-
-QT_FORWARD_DECLARE_CLASS(QTimer)
+#include <QTimer>
 
 class MyModel : public QAbstractTableModel
 {
--- a/examples/tutorials/modelview/4_headers/4_headers.pro	Fri Sep 17 08:34:18 2010 +0300
+++ b/examples/tutorials/modelview/4_headers/4_headers.pro	Mon Oct 04 01:19:32 2010 +0300
@@ -2,9 +2,15 @@
 
 TEMPLATE = app
 
-SOURCES += main.cpp \
-           modelview.cpp \
+SOURCES += main.cpp  \
            mymodel.cpp
 
-HEADERS += modelview.h \
-           mymodel.h
+HEADERS += mymodel.h
+
+# install
+target.path = $$[QT_INSTALL_EXAMPLES]/tutorials/modelview/4_headers
+sources.files = $$SOURCES $$HEADERS $$RESOURCES $$FORMS 4_headers.pro
+sources.path = $$[QT_INSTALL_EXAMPLES]/tutorials/modelview/4_headers
+INSTALLS += target sources
+
+symbian: include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri)
--- a/examples/tutorials/modelview/4_headers/main.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/examples/tutorials/modelview/4_headers/main.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -39,12 +39,15 @@
 ****************************************************************************/
 
 #include <QtGui/QApplication>
-#include "modelview.h"
+#include <QtGui/QTableView>
+#include "mymodel.h"
 
 int main(int argc, char *argv[])
 {
     QApplication a(argc, argv);
-    ModelView w;
-    w.show();
+    QTableView tableView;
+    MyModel myModel(0);
+    tableView.setModel( &myModel );
+    tableView.show();
     return a.exec();
-}
+}
\ No newline at end of file
--- a/examples/tutorials/modelview/4_headers/modelview.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,54 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-**   * Redistributions of source code must retain the above copyright
-**     notice, this list of conditions and the following disclaimer.
-**   * Redistributions in binary form must reproduce the above copyright
-**     notice, this list of conditions and the following disclaimer in
-**     the documentation and/or other materials provided with the
-**     distribution.
-**   * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-**     the names of its contributors may be used to endorse or promote
-**     products derived from this software without specific prior written
-**     permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <QTableView>
-#include <QHeaderView>
-#include "modelview.h"
-#include "mymodel.h"
-
-ModelView::ModelView(QWidget *parent)
-    : QMainWindow(parent)
-{
-    tableView = new QTableView(this);
-    setCentralWidget(tableView);
-    tableView->setModel(new MyModel(this));
-    tableView->verticalHeader()->hide();
-}
-
--- a/examples/tutorials/modelview/4_headers/modelview.h	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,58 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-**   * Redistributions of source code must retain the above copyright
-**     notice, this list of conditions and the following disclaimer.
-**   * Redistributions in binary form must reproduce the above copyright
-**     notice, this list of conditions and the following disclaimer in
-**     the documentation and/or other materials provided with the
-**     distribution.
-**   * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-**     the names of its contributors may be used to endorse or promote
-**     products derived from this software without specific prior written
-**     permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef MODELVIEW_H
-#define MODELVIEW_H
-
-#include <QtGui/QMainWindow>
-
-QT_FORWARD_DECLARE_CLASS(QTableView)
-
-class ModelView : public QMainWindow
-{
-    Q_OBJECT
-private:
-    QTableView *tableView;
-public:
-    ModelView(QWidget *parent = 0);
-
-};
-
-#endif // MODELVIEW_H
--- a/examples/tutorials/modelview/5_edit/5_edit.pro	Fri Sep 17 08:34:18 2010 +0300
+++ b/examples/tutorials/modelview/5_edit/5_edit.pro	Mon Oct 04 01:19:32 2010 +0300
@@ -3,8 +3,16 @@
 TEMPLATE = app
 
 SOURCES += main.cpp \
-           modelview.cpp \
+           mainwindow.cpp \
            mymodel.cpp
 
-HEADERS += modelview.h \
+HEADERS += mainwindow.h \
            mymodel.h
+
+# install
+target.path = $$[QT_INSTALL_EXAMPLES]/tutorials/modelview/5_edit
+sources.files = $$SOURCES $$HEADERS $$RESOURCES $$FORMS 5_edit.pro
+sources.path = $$[QT_INSTALL_EXAMPLES]/tutorials/modelview/5_edit
+INSTALLS += target sources
+
+symbian: include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri)
--- a/examples/tutorials/modelview/5_edit/main.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/examples/tutorials/modelview/5_edit/main.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -39,12 +39,12 @@
 ****************************************************************************/
 
 #include <QtGui/QApplication>
-#include "modelview.h"
+#include "mainwindow.h"
 
 int main(int argc, char *argv[])
 {
     QApplication a(argc, argv);
-    ModelView w;
+    MainWindow w;
     w.show();
     return a.exec();
 }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/examples/tutorials/modelview/5_edit/mainwindow.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,60 @@
+/****************************************************************************
+**
+** 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:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+**   * Redistributions of source code must retain the above copyright
+**     notice, this list of conditions and the following disclaimer.
+**   * Redistributions in binary form must reproduce the above copyright
+**     notice, this list of conditions and the following disclaimer in
+**     the documentation and/or other materials provided with the
+**     distribution.
+**   * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+**     the names of its contributors may be used to endorse or promote
+**     products derived from this software without specific prior written
+**     permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QTableView>
+#include "mainwindow.h"
+#include "mymodel.h"
+
+MainWindow::MainWindow(QWidget *parent)
+    : QMainWindow(parent)
+{
+    tableView = new QTableView(this);
+    setCentralWidget(tableView);
+    QAbstractTableModel *myModel = new MyModel(this);
+    tableView->setModel(myModel);
+
+    //transfer changes to the model to the window title
+    connect(myModel, SIGNAL(editCompleted(const QString &)), this, SLOT(setWindowTitle(const QString &)));
+}
+
+void MainWindow::showWindowTitle(const QString & title)
+{
+setWindowTitle(title);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/examples/tutorials/modelview/5_edit/mainwindow.h	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,58 @@
+/****************************************************************************
+**
+** 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:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+**   * Redistributions of source code must retain the above copyright
+**     notice, this list of conditions and the following disclaimer.
+**   * Redistributions in binary form must reproduce the above copyright
+**     notice, this list of conditions and the following disclaimer in
+**     the documentation and/or other materials provided with the
+**     distribution.
+**   * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+**     the names of its contributors may be used to endorse or promote
+**     products derived from this software without specific prior written
+**     permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef MAINWINDOW_H
+#define MAINWINDOW_H
+
+#include <QtGui/QMainWindow>
+#include <QtGui/QTableView>
+
+class MainWindow : public QMainWindow
+{
+    Q_OBJECT
+private:
+    QTableView *tableView;
+public:
+    MainWindow(QWidget *parent = 0);
+public slots:
+    void showWindowTitle(const QString & title);
+};
+
+#endif // MAINWINDOW_H
--- a/examples/tutorials/modelview/5_edit/modelview.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,60 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-**   * Redistributions of source code must retain the above copyright
-**     notice, this list of conditions and the following disclaimer.
-**   * Redistributions in binary form must reproduce the above copyright
-**     notice, this list of conditions and the following disclaimer in
-**     the documentation and/or other materials provided with the
-**     distribution.
-**   * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-**     the names of its contributors may be used to endorse or promote
-**     products derived from this software without specific prior written
-**     permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <QTableView>
-#include "modelview.h"
-#include "mymodel.h"
-
-ModelView::ModelView(QWidget *parent)
-    : QMainWindow(parent)
-{
-    tableView = new QTableView(this);
-    setCentralWidget(tableView);
-    QAbstractTableModel *myModel = new MyModel(this);
-    tableView->setModel(myModel);
-
-    //transfer changes to the model to the window title
-    connect(myModel, SIGNAL(editCompleted(const QString &)), this, SLOT(setWindowTitle(const QString &)));
-}
-
-void ModelView::showWindowTitle(const QString & title)
-{
-setWindowTitle(title);
-}
--- a/examples/tutorials/modelview/5_edit/modelview.h	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,59 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-**   * Redistributions of source code must retain the above copyright
-**     notice, this list of conditions and the following disclaimer.
-**   * Redistributions in binary form must reproduce the above copyright
-**     notice, this list of conditions and the following disclaimer in
-**     the documentation and/or other materials provided with the
-**     distribution.
-**   * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-**     the names of its contributors may be used to endorse or promote
-**     products derived from this software without specific prior written
-**     permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef MODELVIEW_H
-#define MODELVIEW_H
-
-#include <QtGui/QMainWindow>
-
-QT_FORWARD_DECLARE_CLASS(QTableView)
-
-class ModelView : public QMainWindow
-{
-    Q_OBJECT
-private:
-    QTableView *tableView;
-public:
-    ModelView(QWidget *parent = 0);
-public slots:
-    void showWindowTitle(const QString & title);
-};
-
-#endif // MODELVIEW_H
--- a/examples/tutorials/modelview/5_edit/mymodel.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/examples/tutorials/modelview/5_edit/mymodel.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -38,62 +38,64 @@
 **
 ****************************************************************************/
 
-//! [quoting mymodel_d]
+
 #include "mymodel.h"
 
-const int COLS= 3;
-const int ROWS= 2;
 
 MyModel::MyModel(QObject *parent)
     :QAbstractTableModel(parent)
 {
-    //gridData needs to have 6 element, one for each table cell
-    m_gridData << "1/1" << "1/2" << "1/3" << "2/1" << "2/2" << "2/3" ;
 }
-//! [quoting mymodel_d]
 
-//! [quoting mymodel_e]
+//-----------------------------------------------------------------
 int MyModel::rowCount(const QModelIndex & /*parent*/) const
 {
     return ROWS;
 }
 
+//-----------------------------------------------------------------
 int MyModel::columnCount(const QModelIndex & /*parent*/) const
 {
     return COLS;
 }
 
+//-----------------------------------------------------------------
 QVariant MyModel::data(const QModelIndex &index, int role) const
 {
     if (role == Qt::DisplayRole)
     {
-        return m_gridData[modelIndexToOffset(index)];
+        return m_gridData[index.row()][index.column()];
     }
     return QVariant();
 }
-//! [quoting mymodel_e]
 
 //-----------------------------------------------------------------
-
-//! [quoting mymodel_f]
+//! [quoting mymodel_e]
 bool MyModel::setData(const QModelIndex & index, const QVariant & value, int role)
 {
     if (role == Qt::EditRole)
     {
-        m_gridData[modelIndexToOffset(index)] = value.toString();
-        emit editCompleted(m_gridData.join(" | "));
+        //save value from editor to member m_gridData
+        m_gridData[index.row()][index.column()] = value.toString();
+	//for presentation purposes only: build and emit a joined string
+	QString result; 
+	for(int row= 0; row < ROWS; row++)
+	{
+            for(int col= 0; col < COLS; col++)
+	    {
+	        result += m_gridData[row][col] + " ";
+	    }
+        }
+        emit editCompleted( result );
     }
     return true;
 }
+//! [quoting mymodel_e]
 
+//-----------------------------------------------------------------
+//! [quoting mymodel_f]
 Qt::ItemFlags MyModel::flags(const QModelIndex & /*index*/) const
 {
     return Qt::ItemIsSelectable |  Qt::ItemIsEditable | Qt::ItemIsEnabled ;
 }
-
-//convert row and column information to array offset
-int MyModel::modelIndexToOffset(const QModelIndex & index) const
-{
-    return index.row()*COLS + index.column();
-}
 //! [quoting mymodel_f]
--- a/examples/tutorials/modelview/5_edit/mymodel.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/examples/tutorials/modelview/5_edit/mymodel.h	Mon Oct 04 01:19:32 2010 +0300
@@ -44,7 +44,11 @@
 //! [Quoting ModelView Tutorial]
 // mymodel.h
 #include <QAbstractTableModel>
-#include <QStringList>
+#include <QString>
+
+const int COLS= 3;
+const int ROWS= 2;
+
 
 class MyModel : public QAbstractTableModel
 {
@@ -57,8 +61,7 @@
     bool setData(const QModelIndex & index, const QVariant & value, int role = Qt::EditRole);
     Qt::ItemFlags flags(const QModelIndex & index) const ;
 private:
-    QStringList m_gridData;  //holds text entered into QTableView
-    int modelIndexToOffset(const QModelIndex & index) const;
+    QString m_gridData[ROWS][COLS];  //holds text entered into QTableView
 signals:
     void editCompleted(const QString &);
 };
--- a/examples/tutorials/modelview/6_treeview/6_treeview.pro	Fri Sep 17 08:34:18 2010 +0300
+++ b/examples/tutorials/modelview/6_treeview/6_treeview.pro	Mon Oct 04 01:19:32 2010 +0300
@@ -1,5 +1,13 @@
 TARGET = mv_tree
 TEMPLATE = app
 SOURCES += main.cpp \
-    modelview.cpp
-HEADERS += modelview.h
+    mainwindow.cpp
+HEADERS += mainwindow.h
+
+# install
+target.path = $$[QT_INSTALL_EXAMPLES]/tutorials/modelview/6_treeview
+sources.files = $$SOURCES $$HEADERS $$RESOURCES $$FORMS 6_treeview.pro
+sources.path = $$[QT_INSTALL_EXAMPLES]/tutorials/modelview/6_treeview
+INSTALLS += target sources
+
+symbian: include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri)
--- a/examples/tutorials/modelview/6_treeview/main.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/examples/tutorials/modelview/6_treeview/main.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -39,12 +39,12 @@
 ****************************************************************************/
 
 #include <QtGui/QApplication>
-#include "modelview.h"
+#include "mainwindow.h"
 
 int main(int argc, char *argv[])
 {
     QApplication a(argc, argv);
-    ModelView w;
+    MainWindow w;
     w.show();
     return a.exec();
 }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/examples/tutorials/modelview/6_treeview/mainwindow.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -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 examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+**   * Redistributions of source code must retain the above copyright
+**     notice, this list of conditions and the following disclaimer.
+**   * Redistributions in binary form must reproduce the above copyright
+**     notice, this list of conditions and the following disclaimer in
+**     the documentation and/or other materials provided with the
+**     distribution.
+**   * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+**     the names of its contributors may be used to endorse or promote
+**     products derived from this software without specific prior written
+**     permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//! [Quoting ModelView Tutorial]
+// modelview.cpp
+#include <QTreeView>
+#include <QStandardItemModel>
+#include <QStandardItem>
+#include "mainwindow.h"
+
+
+const int ROWS = 2;
+const int COLUMNS = 3;
+
+MainWindow::MainWindow(QWidget *parent)
+    : QMainWindow(parent)
+{
+    treeView = new QTreeView(this);
+    setCentralWidget(treeView);
+    standardModel = new QStandardItemModel ;
+
+    QList<QStandardItem *> preparedRow =prepareRow("first", "second", "third");
+    QStandardItem *item = standardModel->invisibleRootItem();
+    // adding a row to the invisible root item produces a root element
+    item->appendRow(preparedRow);
+
+    QList<QStandardItem *> secondRow =prepareRow("111", "222", "333");
+    // adding a row to an item starts a subtree
+    preparedRow.first()->appendRow(secondRow);
+
+    treeView->setModel(standardModel);
+    treeView->expandAll();
+}
+
+QList<QStandardItem *> MainWindow::prepareRow(const QString &first,
+                                                const QString &second,
+                                                const QString &third)
+{
+    QList<QStandardItem *> rowItems;
+    rowItems << new QStandardItem(first);
+    rowItems << new QStandardItem(second);
+    rowItems << new QStandardItem(third);
+    return rowItems;
+}
+//! [Quoting ModelView Tutorial]
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/examples/tutorials/modelview/6_treeview/mainwindow.h	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,62 @@
+/****************************************************************************
+**
+** 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:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+**   * Redistributions of source code must retain the above copyright
+**     notice, this list of conditions and the following disclaimer.
+**   * Redistributions in binary form must reproduce the above copyright
+**     notice, this list of conditions and the following disclaimer in
+**     the documentation and/or other materials provided with the
+**     distribution.
+**   * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+**     the names of its contributors may be used to endorse or promote
+**     products derived from this software without specific prior written
+**     permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef MAINWINDOW_H
+#define MAINWINDOW_H
+
+#include <QtGui/QMainWindow>
+#include <QtGui/QTreeView>
+#include <QtGui/QStandardItemModel>
+
+
+class MainWindow : public QMainWindow
+{
+    Q_OBJECT
+private:
+    QTreeView *treeView;
+    QStandardItemModel *standardModel;
+    QList<QStandardItem *> prepareRow( const QString &first,
+                                       const QString &second,
+                                       const QString &third );
+public:
+    MainWindow(QWidget *parent = 0);
+};
+
+#endif // MAINWINDOW_H
--- a/examples/tutorials/modelview/6_treeview/modelview.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,82 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-**   * Redistributions of source code must retain the above copyright
-**     notice, this list of conditions and the following disclaimer.
-**   * Redistributions in binary form must reproduce the above copyright
-**     notice, this list of conditions and the following disclaimer in
-**     the documentation and/or other materials provided with the
-**     distribution.
-**   * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-**     the names of its contributors may be used to endorse or promote
-**     products derived from this software without specific prior written
-**     permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//! [Quoting ModelView Tutorial]
-// modelview.cpp
-#include <QTreeView>
-#include <QStandardItemModel>
-#include <QStandardItem>
-#include "modelview.h"
-
-
-const int ROWS = 2;
-const int COLUMNS = 3;
-
-ModelView::ModelView(QWidget *parent)
-    : QMainWindow(parent)
-{
-    treeView = new QTreeView(this);
-    setCentralWidget(treeView);
-    standardModel = new QStandardItemModel ;
-
-    QList<QStandardItem *> preparedColumn =prepareColumn("first", "second", "third");
-    QStandardItem *item = standardModel->invisibleRootItem();
-    // adding a row to the invisible root item produces a root element
-    item->appendRow(preparedColumn);
-
-    QList<QStandardItem *> secondRow =prepareColumn("111", "222", "333");
-    // adding a row to an item starts a subtree
-    preparedColumn.first()->appendRow(secondRow);
-
-    treeView->setModel(standardModel);
-    treeView->expandAll();
-}
-
-QList<QStandardItem *> ModelView::prepareColumn(const QString &first,
-                                                const QString &second,
-                                                const QString &third)
-{
-    QList<QStandardItem *> colItems;
-    colItems << new QStandardItem(first);
-    colItems << new QStandardItem(second);
-    colItems << new QStandardItem(third);
-    return colItems;
-}
-//! [Quoting ModelView Tutorial]
--- a/examples/tutorials/modelview/6_treeview/modelview.h	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,65 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-**   * Redistributions of source code must retain the above copyright
-**     notice, this list of conditions and the following disclaimer.
-**   * Redistributions in binary form must reproduce the above copyright
-**     notice, this list of conditions and the following disclaimer in
-**     the documentation and/or other materials provided with the
-**     distribution.
-**   * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-**     the names of its contributors may be used to endorse or promote
-**     products derived from this software without specific prior written
-**     permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef MODELVIEW_H
-#define MODELVIEW_H
-
-#include <QtGui/QMainWindow>
-
-QT_BEGIN_NAMESPACE
-class QTreeView; //forward declaration
-class QStandardItemModel;
-class QStandardItem;
-QT_END_NAMESPACE
-
-class ModelView : public QMainWindow
-{
-    Q_OBJECT
-private:
-    QTreeView *treeView;
-    QStandardItemModel *standardModel;
-    QList<QStandardItem *> prepareColumn(const QString &first,
-                                         const QString &second,
-                                         const QString &third);
-public:
-    ModelView(QWidget *parent = 0);
-};
-
-#endif // MODELVIEW_H
--- a/examples/tutorials/modelview/7_selections/7_selections.pro	Fri Sep 17 08:34:18 2010 +0300
+++ b/examples/tutorials/modelview/7_selections/7_selections.pro	Mon Oct 04 01:19:32 2010 +0300
@@ -1,5 +1,13 @@
 TARGET = mv_selections
 TEMPLATE = app
 SOURCES += main.cpp \
-    modelview.cpp
-HEADERS += modelview.h 
+    mainwindow.cpp
+HEADERS += mainwindow.h 
+
+# install
+target.path = $$[QT_INSTALL_EXAMPLES]/tutorials/modelview/7_selections
+sources.files = $$SOURCES $$HEADERS $$RESOURCES $$FORMS 7_selections.pro
+sources.path = $$[QT_INSTALL_EXAMPLES]/tutorials/modelview/7_selections
+INSTALLS += target sources
+
+symbian: include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri)
--- a/examples/tutorials/modelview/7_selections/main.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/examples/tutorials/modelview/7_selections/main.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -39,12 +39,12 @@
 ****************************************************************************/
 
 #include <QtGui/QApplication>
-#include "modelview.h"
+#include "mainwindow.h"
 
 int main(int argc, char *argv[])
 {
     QApplication a(argc, argv);
-    ModelView w;
+    MainWindow w;
     w.show();
     return a.exec();
 }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/examples/tutorials/modelview/7_selections/mainwindow.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -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 examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+**   * Redistributions of source code must retain the above copyright
+**     notice, this list of conditions and the following disclaimer.
+**   * Redistributions in binary form must reproduce the above copyright
+**     notice, this list of conditions and the following disclaimer in
+**     the documentation and/or other materials provided with the
+**     distribution.
+**   * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+**     the names of its contributors may be used to endorse or promote
+**     products derived from this software without specific prior written
+**     permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//! [quoting modelview_a]
+#include <QTreeView>
+#include <QStandardItemModel>
+#include <QItemSelectionModel>
+#include "mainwindow.h"
+
+MainWindow::MainWindow(QWidget *parent)
+    : QMainWindow(parent)
+{
+    treeView = new QTreeView(this);
+    setCentralWidget(treeView);
+    standardModel = new QStandardItemModel ;
+    QStandardItem *rootNode = standardModel->invisibleRootItem();
+
+
+    //defining a couple of items
+    QStandardItem *americaItem = new QStandardItem("America");
+    QStandardItem *mexicoItem =  new QStandardItem("Canada");
+    QStandardItem *usaItem =     new QStandardItem("USA");
+    QStandardItem *bostonItem =  new QStandardItem("Boston");
+    QStandardItem *europeItem =  new QStandardItem("Europe");
+    QStandardItem *italyItem =   new QStandardItem("Italy");
+    QStandardItem *romeItem =    new QStandardItem("Rome");
+    QStandardItem *veronaItem =  new QStandardItem("Verona");
+
+    //building up the hierarchy
+    rootNode->    appendRow(americaItem);
+    rootNode->    appendRow(europeItem);
+    americaItem-> appendRow(mexicoItem);
+    americaItem-> appendRow(usaItem);
+    usaItem->     appendRow(bostonItem);
+    europeItem->  appendRow(italyItem);
+    italyItem->   appendRow(romeItem);
+    italyItem->   appendRow(veronaItem);
+    
+    //register the model
+    treeView->setModel(standardModel);
+    treeView->expandAll();
+
+    //selection changes shall trigger a slot
+    QItemSelectionModel *selectionModel= treeView->selectionModel();
+    connect(selectionModel, SIGNAL(selectionChanged (const QItemSelection &, const QItemSelection &)),
+            this, SLOT(selectionChangedSlot(const QItemSelection &, const QItemSelection &)));
+}
+//! [quoting modelview_a]
+
+//------------------------------------------------------------------------------------
+
+//! [quoting modelview_b]
+void MainWindow::selectionChangedSlot(const QItemSelection & /*newSelection*/, const QItemSelection & /*oldSelection*/)
+{
+    //get the text of the selected item
+    const QModelIndex index = treeView->selectionModel()->currentIndex();
+    QString selectedText = index.data(Qt::DisplayRole).toString();
+    //find out the hierarchy level of the selected item
+    int hierarchyLevel=1;
+    QModelIndex seekRoot = index;
+    while(seekRoot.parent() != QModelIndex())
+    {
+        seekRoot = seekRoot.parent();
+        hierarchyLevel++;
+    }
+    QString showString = QString("%1, Level %2").arg(selectedText)
+                         .arg(hierarchyLevel);
+    setWindowTitle(showString);
+}
+//! [quoting modelview_b]
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/examples/tutorials/modelview/7_selections/mainwindow.h	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,61 @@
+/****************************************************************************
+**
+** 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:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+**   * Redistributions of source code must retain the above copyright
+**     notice, this list of conditions and the following disclaimer.
+**   * Redistributions in binary form must reproduce the above copyright
+**     notice, this list of conditions and the following disclaimer in
+**     the documentation and/or other materials provided with the
+**     distribution.
+**   * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+**     the names of its contributors may be used to endorse or promote
+**     products derived from this software without specific prior written
+**     permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef MAINWINDOW_H
+#define MAINWINDOW_H
+
+#include <QtGui/QMainWindow>
+#include <QtGui/QTreeView>
+#include <QtGui/QStandardItemModel>
+
+
+class MainWindow : public QMainWindow
+{
+    Q_OBJECT
+private:
+    QTreeView *treeView;
+    QStandardItemModel *standardModel;
+private slots:
+    void selectionChangedSlot(const QItemSelection & newSelection, const QItemSelection & oldSelection);
+public:
+    MainWindow(QWidget *parent = 0);
+};
+
+#endif // MAINWINDOW_H
--- a/examples/tutorials/modelview/7_selections/modelview.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,107 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-**   * Redistributions of source code must retain the above copyright
-**     notice, this list of conditions and the following disclaimer.
-**   * Redistributions in binary form must reproduce the above copyright
-**     notice, this list of conditions and the following disclaimer in
-**     the documentation and/or other materials provided with the
-**     distribution.
-**   * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-**     the names of its contributors may be used to endorse or promote
-**     products derived from this software without specific prior written
-**     permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//! [quoting modelview_a]
-#include <QTreeView>
-#include <QStandardItemModel>
-#include <QItemSelectionModel>
-#include "modelview.h"
-
-ModelView::ModelView(QWidget *parent)
-    : QMainWindow(parent)
-{
-    treeView = new QTreeView(this);
-    setCentralWidget(treeView);
-    standardModel = new QStandardItemModel ;
-    QStandardItem *rootNode = standardModel->invisibleRootItem();
-
-
-    //defining a couple of items
-    QStandardItem *americaItem = new QStandardItem("America");
-    QStandardItem *mexicoItem =  new QStandardItem("Canada");
-    QStandardItem *usaItem =     new QStandardItem("USA");
-    QStandardItem *bostonItem =  new QStandardItem("Boston");
-    QStandardItem *europeItem =  new QStandardItem("Europe");
-    QStandardItem *italyItem =   new QStandardItem("Italy");
-    QStandardItem *romeItem =    new QStandardItem("Rome");
-    QStandardItem *veronaItem =  new QStandardItem("Verona");
-
-    //building up the hierarchy
-    rootNode->    appendRow(americaItem);
-    rootNode->    appendRow(europeItem);
-    americaItem-> appendRow(mexicoItem);
-    americaItem-> appendRow(usaItem);
-    usaItem->     appendRow(bostonItem);
-    europeItem->  appendRow(italyItem);
-    italyItem->   appendRow(romeItem);
-    italyItem->   appendRow(veronaItem);
-    
-    //register the model
-    treeView->setModel(standardModel);
-    treeView->expandAll();
-
-    //selection changes shall trigger a slot
-    QItemSelectionModel *selectionModel= treeView->selectionModel();
-    connect(selectionModel, SIGNAL(selectionChanged (const QItemSelection &, const QItemSelection &)),
-            this, SLOT(selectionChangedSlot(const QItemSelection &, const QItemSelection &)));
-}
-//! [quoting modelview_a]
-
-//------------------------------------------------------------------------------------
-
-//! [quoting modelview_b]
-void ModelView::selectionChangedSlot(const QItemSelection & /*newSelection*/, const QItemSelection & /*oldSelection*/)
-{
-    const QModelIndex index = treeView->selectionModel()->currentIndex();
-    QString selectedText = index.data(Qt::DisplayRole).toString();
-    int hierarchyLevel=1;
-    QModelIndex seekRoot = index;
-    while(seekRoot.parent() != QModelIndex())
-    {
-        seekRoot = seekRoot.parent();
-        hierarchyLevel++;
-    }
-    QString showString = QString("%1, Level %2").arg(selectedText)
-                         .arg(hierarchyLevel);
-    setWindowTitle(showString);
-}
-//! [quoting modelview_b]
-
-
--- a/examples/tutorials/modelview/7_selections/modelview.h	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,64 +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:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-**   * Redistributions of source code must retain the above copyright
-**     notice, this list of conditions and the following disclaimer.
-**   * Redistributions in binary form must reproduce the above copyright
-**     notice, this list of conditions and the following disclaimer in
-**     the documentation and/or other materials provided with the
-**     distribution.
-**   * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-**     the names of its contributors may be used to endorse or promote
-**     products derived from this software without specific prior written
-**     permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef MODELVIEW_H
-#define MODELVIEW_H
-
-#include <QtGui/QMainWindow>
-
-QT_BEGIN_NAMESPACE
-class QTreeView; //forward declaration
-class QStandardItemModel;
-class QItemSelection;
-QT_END_NAMESPACE
-
-class ModelView : public QMainWindow
-{
-    Q_OBJECT
-private:
-    QTreeView *treeView;
-    QStandardItemModel *standardModel;
-private slots:
-    void selectionChangedSlot(const QItemSelection & newSelection, const QItemSelection & oldSelection);
-public:
-    ModelView(QWidget *parent = 0);
-};
-
-#endif // MODELVIEW_H
--- a/examples/tutorials/modelview/modelview.pro	Fri Sep 17 08:34:18 2010 +0300
+++ b/examples/tutorials/modelview/modelview.pro	Mon Oct 04 01:19:32 2010 +0300
@@ -1,5 +1,4 @@
-TEMPLATE = subdirs
-
+TEMPLATE  = subdirs
 SUBDIRS = 1_readonly \
           2_formatting \
           3_changingmodel \
@@ -8,3 +7,10 @@
           6_treeview \
           7_selections
 
+# install
+target.path = $$[QT_INSTALL_EXAMPLES]/tutorials/modelview
+sources.files = $$SOURCES $$HEADERS $$RESOURCES $$FORMS modelview.pro 
+sources.path = $$[QT_INSTALL_EXAMPLES]/tutorials/modelview
+INSTALLS += target sources
+
+symbian: include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri)
--- a/examples/xml/htmlinfo/main.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/examples/xml/htmlinfo/main.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -94,7 +94,7 @@
 
 int main(int argc, char **argv)
 {
-    // intialize QtCore application
+    // initialize QtCore application
     QCoreApplication app(argc, argv);
 
     // get a list of all html files in the current directory
--- a/examples/xmlpatterns/filetree/mainwindow.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/examples/xmlpatterns/filetree/mainwindow.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -140,7 +140,7 @@
     QXmlFormatter formatter(query, &buffer);
     query.evaluateTo(&formatter);
 
-    treeInfo->setText((QString(tr("Model of %1 output as XML.")).arg(directory)));
+    treeInfo->setText(tr("Model of %1 output as XML.").arg(directory));
     fileTree->setText(QString::fromLatin1(output.constData()));
     evaluateResult();
 //! [6]    
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mkspecs/common/symbian/header-wrappers/AknBitmapAnimation.h	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,1 @@
+#include <aknbitmapanimation.h>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mkspecs/common/symbian/header-wrappers/AknFontAccess.h	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,1 @@
+#include <aknfontaccess.h>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mkspecs/common/symbian/header-wrappers/AknInputLanguageInfo.h	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,1 @@
+#include <akninputlanguageinfo.h>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mkspecs/common/symbian/header-wrappers/ApAccessPointItem.h	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,1 @@
+#include <apaccesspointitem.h>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mkspecs/common/symbian/header-wrappers/ApDataHandler.h	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,1 @@
+#include <apdatahandler.h>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mkspecs/common/symbian/header-wrappers/ApUtils.h	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,1 @@
+#include <aputils.h>
--- a/mkspecs/common/symbian/symbian-makefile.conf	Fri Sep 17 08:34:18 2010 +0300
+++ b/mkspecs/common/symbian/symbian-makefile.conf	Mon Oct 04 01:19:32 2010 +0300
@@ -29,7 +29,12 @@
 QMAKE_EXTENSION_STATICLIB = lib
 QMAKE_SYMBIAN_SHLIB   = 1
 
-DEFINES *= __PRODUCT_INCLUDE__=\\<$${EPOCROOT}epoc32/include/variant/symbian_os.hrh\\> \
+is_using_gnupoc {
+    DEFINES *= __PRODUCT_INCLUDE__=\\<$${EPOCROOT}epoc32/include/variant/symbian_os.hrh\\>
+} else {
+    DEFINES *= __PRODUCT_INCLUDE__=\\<$${EPOCROOT}epoc32/include/variant/Symbian_OS.hrh\\>
+}
+DEFINES *= \
     __SYMBIAN32__ \
     __MARM_INTERWORK__ \
     _UNICODE \
--- a/mkspecs/common/symbian/symbian-mmp.conf	Fri Sep 17 08:34:18 2010 +0300
+++ b/mkspecs/common/symbian/symbian-mmp.conf	Mon Oct 04 01:19:32 2010 +0300
@@ -39,24 +39,7 @@
 # RVCT seems to do this automatically, but WINSCW compiler does not, so add it here.
 MMP_RULES += "USERINCLUDE ."
 
-exists($${EPOCROOT}epoc32/release/winscw/udeb/z/system/install/series60v5.2.sis)|exists($${EPOCROOT}epoc32/data/z/system/install/series60v5.2.sis) {
-    S60_VERSION = 5.2 symbian3
-} else {
-    exists($${EPOCROOT}epoc32/release/winscw/udeb/z/system/install/series60v5.1.sis)|exists($${EPOCROOT}epoc32/data/z/system/install/series60v5.1.sis) {
-        S60_VERSION = 5.1 symbian2
-    } else {
-        exists($${EPOCROOT}epoc32/release/winscw/udeb/z/system/install/series60v5.0.sis)|exists($${EPOCROOT}epoc32/data/z/system/install/series60v5.0.sis) {
-            S60_VERSION = 5.0
-        } else {
-            exists($${EPOCROOT}epoc32/release/winscw/udeb/z/system/install/series60v3.2.sis)|exists($${EPOCROOT}epoc32/data/z/system/install/series60v3.2.sis) {
-                S60_VERSION = 3.2
-            } else {
-                S60_VERSION = 3.1
-                MMP_RULES -= PAGED BYTEPAIRCOMPRESSTARGET
-            }
-        }
-    }
-}
+contains(S60_VERSION, 3.1):MMP_RULES -= PAGED BYTEPAIRCOMPRESSTARGET
 
 QMAKE_CXXFLAGS_FAST_VFP.ARMCC = --fpmode fast
 # [TODO] QMAKE_CXXFLAGS_FAST_VFP.GCCE =
@@ -73,3 +56,15 @@
         }
     }
 }
+
+# Variables for replacing equivalent QMAKE_* variables in bld.inf for FLM execution of commands
+symbian-sbsv2 {
+    QMAKE_SBSV2_COPY           = $(GNUCP)
+    QMAKE_SBSV2_COPY_DIR       = $(GNUCP) -r
+    QMAKE_SBSV2_MOVE           = $(GNUMV)
+    QMAKE_SBSV2_DEL_FILE       = $(GNURM) -f
+    QMAKE_SBSV2_MKDIR          = $(GNUMKDIR)
+    QMAKE_SBSV2_DEL_DIR        = $(GNURMDIR)
+    QMAKE_SBSV2_DEL_TREE       = $(GNURM) -rf
+}
+
--- a/mkspecs/common/symbian/symbian.conf	Fri Sep 17 08:34:18 2010 +0300
+++ b/mkspecs/common/symbian/symbian.conf	Mon Oct 04 01:19:32 2010 +0300
@@ -70,7 +70,12 @@
 QMAKE_LIBS_GUI          = $$QMAKE_LIBS_CORE -lfbscli -lbitgdi -lgdi -lws32 -lapgrfx -lcone -leikcore -lmediaclientaudio -lapparc -lcentralrepository
 QMAKE_LIBS_NETWORK      = 
 QMAKE_LIBS_EGL          = -llibEGL
-QMAKE_LIBS_OPENGL       = 
+QMAKE_LIBS_OPENGL       = -llibglesv2
+QMAKE_LIBS_OPENGL_ES1   = -llibGLESv1_CM
+QMAKE_LIBS_OPENGL_ES2   = -llibglesv2
+QMAKE_LIBS_OPENGL_QT     = -llibglesv2 -lcone -lws32
+QMAKE_LIBS_OPENGL_ES1_QT = -llibGLESv1_CM -lcone -lws32
+QMAKE_LIBS_OPENGL_ES2_QT = -llibglesv2 -lcone -lws32
 QMAKE_LIBS_OPENVG       = -llibOpenVG -lfbscli -lbitgdi -lgdi
 QMAKE_LIBS_THREAD       = -llibpthread
 QMAKE_LIBS_COMPAT       = 
@@ -112,13 +117,46 @@
 
 QT_ARCH               = symbian
 
+load(qt_config)
+
 # These directories must match what configure uses for QT_INSTALL_PLUGINS and QT_INSTALL_IMPORTS
 QT_PLUGINS_BASE_DIR = /resource/qt$${QT_LIBINFIX}/plugins
 QT_IMPORTS_BASE_DIR = /resource/qt/imports
 
-load(qt_config)
 load(symbian/platform_paths)
 
+# The Symbian^3 PDK does not necessarily contain the required sis files.
+# However, libstdcppv5 first appeared in Symbian^3 (S60 5.2), so check for that too.
+exists($${EPOCROOT}epoc32/release/winscw/udeb/z/system/install/series60v5.2.sis)|exists($${EPOCROOT}epoc32/data/z/system/install/series60v5.2.sis)|exists($${EPOCROOT}epoc32/release/armv5/lib/libstdcppv5.dso) {
+    S60_VERSION = 5.2
+} else {
+    exists($${EPOCROOT}epoc32/release/winscw/udeb/z/system/install/series60v5.1.sis)|exists($${EPOCROOT}epoc32/data/z/system/install/series60v5.1.sis) {
+        S60_VERSION = 5.1
+    } else {
+        exists($${EPOCROOT}epoc32/release/winscw/udeb/z/system/install/series60v5.0.sis)|exists($${EPOCROOT}epoc32/data/z/system/install/series60v5.0.sis) {
+            S60_VERSION = 5.0
+        } else {
+            exists($${EPOCROOT}epoc32/release/winscw/udeb/z/system/install/series60v3.2.sis)|exists($${EPOCROOT}epoc32/data/z/system/install/series60v3.2.sis) {
+                S60_VERSION = 3.2
+            } else {
+                S60_VERSION = 3.1
+            }
+        }
+    }
+}
+
+contains(S60_VERSION, "3\\.1") {
+    SYMBIAN_VERSION = 9.2
+} else:contains(S60_VERSION, "3\\.2") {
+    SYMBIAN_VERSION = 9.3
+} else:contains(S60_VERSION, "5\\.0") {
+    SYMBIAN_VERSION = 9.4
+} else:contains(S60_VERSION, "5\\.1") {
+    SYMBIAN_VERSION = Symbian2
+} else:contains(S60_VERSION, "5\\.2") {
+    SYMBIAN_VERSION = Symbian3
+}
+
 # pkg_depends_webkit, pkg_depends_core, and pkg_platform_dependencies can be removed by developer
 # if multiple languages need to be supported by pkg file. In that case the developer should declare
 # multiple language compatible dependency statements him/herself.
@@ -137,3 +175,21 @@
 
 DEPLOYMENT += default_deployment
 
+defineReplace(symbianRemoveSpecialCharacters) {
+    # Produce identical string to what SymbianCommonGenerator::removeSpecialCharacters and
+    # SymbianCommonGenerator::removeEpocSpecialCharacters produce
+
+    fixedStr = $$1
+
+    fixedStr = $$replace(fixedStr, /,_)
+    fixedStr = $$replace(fixedStr, \\\\,_)
+    fixedStr = $$replace(fixedStr, " ",_)
+    symbian-abld|symbian-sbsv2 {
+        fixedStr = $$replace(fixedStr, -,_)
+        fixedStr = $$replace(fixedStr, \\.,_)
+        fixedStr = $$replace(fixedStr, :,_)
+    }
+
+    return ($$fixedStr)
+}
+
--- a/mkspecs/features/qt.prf	Fri Sep 17 08:34:18 2010 +0300
+++ b/mkspecs/features/qt.prf	Mon Oct 04 01:19:32 2010 +0300
@@ -31,9 +31,6 @@
    }
 }
 
-#handle modules
-for(mod,$$list($$files($$[QMAKE_MKSPECS]/modules/qt_*.pri))):include($$mod)
-
 #handle includes
 INCLUDEPATH = $$QMAKE_INCDIR_QT $$INCLUDEPATH #prepending prevents us from picking up "stale" includes
 win32:INCLUDEPATH += $$QMAKE_INCDIR_QT/ActiveQt
@@ -209,3 +206,15 @@
 mac {
     !isEmpty(QT_NAMESPACE_MAC_CRC):DEFINES *= QT_NAMESPACE_MAC_CRC=$$QT_NAMESPACE_MAC_CRC
 }
+
+#SIMD defines:
+mmx:DEFINES += QT_HAVE_MMX
+3dnow:DEFINES += QT_HAVE_3DNOW
+sse:DEFINES += QT_HAVE_SSE QT_HAVE_MMXEXT
+sse2:DEFINES += QT_HAVE_SSE2
+sse3:DEFINES += QT_HAVE_SSE3
+ssse3:DEFINES += QT_HAVE_SSSE3
+sse4_1:DEFINES += QT_HAVE_SSE4_1
+sse4_2:DEFINES += QT_HAVE_SSE4_2
+avx:DEFINES += QT_HAVE_AVX
+iwmmxt:DEFINES += QT_HAVE_IWMMXT
--- a/mkspecs/features/qt_config.prf	Fri Sep 17 08:34:18 2010 +0300
+++ b/mkspecs/features/qt_config.prf	Mon Oct 04 01:19:32 2010 +0300
@@ -1,3 +1,6 @@
+# This file is loaded by the mkspecs, before .qmake.cache has been loaded.
+# Consequently, we have to do some stunts to get values out of the cache.
+
 exists($$_QMAKE_CACHE_):QMAKE_QT_CONFIG = $$fromfile($$_QMAKE_CACHE_, QMAKE_QT_CONFIG)
 isEmpty(QMAKE_QT_CONFIG)|!exists($$QMAKE_QT_CONFIG) {
    !isEmpty(QT_BUILD_TREE):QMAKE_QT_CONFIG = $$QT_BUILD_TREE/mkspecs/qconfig.pri
@@ -8,6 +11,7 @@
    debug(1, "Cannot load qconfig.pri!")
 } else {
    debug(1, "Loaded .qconfig.pri from ($$QMAKE_QT_CONFIG)")
+   for(mod, $$list($$files($$dirname(QMAKE_QT_CONFIG)/modules/qt_*.pri))):include($$mod)
 }
 
 load(qt_functions)
--- a/mkspecs/features/sis_targets.prf	Fri Sep 17 08:34:18 2010 +0300
+++ b/mkspecs/features/sis_targets.prf	Mon Oct 04 01:19:32 2010 +0300
@@ -4,17 +4,25 @@
 contains(TEMPLATE, app): GENERATE_SIS_TARGETS = true
 else:!equals(DEPLOYMENT, default_deployment) {
     for(dep_item, $$list($$DEPLOYMENT)) {
-        eval(dep_item_sources = $${dep_item}.sources)
+        dep_item_sources = $$eval($${dep_item}.sources)
         !isEmpty(dep_item_sources): GENERATE_SIS_TARGETS = true
     }
 }
 
 equals(GENERATE_SIS_TARGETS, true) {
+
+    baseTarget = $$symbianRemoveSpecialCharacters($$basename(TARGET))
+
     symbian-abld|symbian-sbsv2 {
-        sis_destdir =
+        symbian-sbsv2 {
+            CONVERT_GCCE_PARAM = -g
+        } else {
+            CONVERT_GCCE_PARAM =
+        }
+        
         make_cache_name = .make.cache
         sis_target.target = sis
-        sis_target.commands = $(if $(wildcard $$basename(TARGET)_template.pkg), \
+        sis_target.commands = $(if $(wildcard $${baseTarget}_template.pkg), \
                                   $(if $(wildcard $$make_cache_name), \
                                       $(MAKE) -f $(MAKEFILE) ok_sis MAKEFILES=$$make_cache_name \
                                   , \
@@ -29,11 +37,11 @@
                               )
 
         ok_sis_target.target = ok_sis
-        ok_sis_target.commands = createpackage.bat $(QT_SIS_OPTIONS) $$basename(TARGET)_template.pkg \
+        ok_sis_target.commands = createpackage.bat $$CONVERT_GCCE_PARAM $(QT_SIS_OPTIONS) $${baseTarget}_template.pkg \
                                      $(QT_SIS_TARGET) $(QT_SIS_CERTIFICATE) $(QT_SIS_KEY) $(QT_SIS_PASSPHRASE)
 
         unsigned_sis_target.target = unsigned_sis
-        unsigned_sis_target.commands = $(if $(wildcard $$basename(TARGET)_template.pkg), \
+        unsigned_sis_target.commands = $(if $(wildcard $${baseTarget}_template.pkg), \
                                   $(if $(wildcard $$make_cache_name), \
                                       $(MAKE) -f $(MAKEFILE) ok_unsigned_sis MAKEFILES=$$make_cache_name \
                                   , \
@@ -48,21 +56,21 @@
                               )
 
         ok_unsigned_sis_target.target = ok_unsigned_sis
-        ok_unsigned_sis_target.commands = createpackage.bat $(QT_SIS_OPTIONS) -o $$basename(TARGET)_template.pkg $(QT_SIS_TARGET)
+        ok_unsigned_sis_target.commands = createpackage.bat $$CONVERT_GCCE_PARAM $(QT_SIS_OPTIONS) -o $${baseTarget}_template.pkg $(QT_SIS_TARGET)
 
-        target_sis_target.target = $${sis_destdir}$${TARGET}.sis
+        target_sis_target.target = $${baseTarget}.sis
         target_sis_target.commands = $(MAKE) -f $(MAKEFILE) sis
 
         installer_sis_target.target = installer_sis
-        installer_sis_target.commands = $(if $(wildcard $$basename(TARGET)_installer.pkg), \
+        installer_sis_target.commands = $(if $(wildcard $${baseTarget}_installer.pkg), \
                                             $(MAKE) -f $(MAKEFILE) ok_installer_sis \
                                         , \
                                             $(MAKE) -f $(MAKEFILE) fail_sis_nopkg \
                                         )
-        installer_sis_target.depends = $${sis_destdir}$${TARGET}.sis
+        installer_sis_target.depends = $${baseTarget}.sis
 
         ok_installer_sis_target.target = ok_installer_sis
-        ok_installer_sis_target.commands = createpackage.bat $(QT_SIS_OPTIONS) $$basename(TARGET)_installer.pkg - \
+        ok_installer_sis_target.commands = createpackage.bat $(QT_SIS_OPTIONS) $${baseTarget}_installer.pkg - \
                                                $(QT_SIS_CERTIFICATE) $(QT_SIS_KEY) $(QT_SIS_PASSPHRASE)
 
         fail_sis_nopkg_target.target = fail_sis_nopkg
@@ -72,7 +80,7 @@
         fail_sis_nocache_target.commands = "$(error Project has to be built or QT_SIS_TARGET environment variable has to be set before calling 'SIS' target)"
 
         stub_sis_target.target = stub_sis
-        stub_sis_target.commands = $(if $(wildcard $$basename(TARGET)_template.pkg), \
+        stub_sis_target.commands = $(if $(wildcard $${baseTarget}_template.pkg), \
                                        $(if $(wildcard $$make_cache_name), \
                                            $(MAKE) -f $(MAKEFILE) ok_stub_sis MAKEFILES=$$make_cache_name \
                                        , \
@@ -87,7 +95,7 @@
                                    )
 
         ok_stub_sis_target.target = ok_stub_sis
-        ok_stub_sis_target.commands = createpackage.bat -s $(QT_SIS_OPTIONS) $$basename(TARGET)_stub.pkg \
+        ok_stub_sis_target.commands = createpackage.bat -s $(QT_SIS_OPTIONS) $${baseTarget}_stub.pkg \
                                           $(QT_SIS_TARGET) $(QT_SIS_CERTIFICATE) $(QT_SIS_KEY) $(QT_SIS_PASSPHRASE)
 
         QMAKE_EXTRA_TARGETS += sis_target \
@@ -125,25 +133,26 @@
             QMAKE_EXTRA_TARGETS += store_build_target
         }
     } else {
+        qtPrepareTool(QMAKE_CREATEPACKAGE, createpackage)
+
         sis_destdir = $$DESTDIR
         isEmpty(sis_destdir):sis_destdir = .
-        baseTarget = $$basename(TARGET)
         !equals(TARGET, "$$baseTarget"):sis_destdir = $$sis_destdir/$$dirname(TARGET)
 
         sis_target.target = sis
-        sis_target.commands = createpackage $(QT_SIS_OPTIONS) $${baseTarget}_template.pkg \
+        sis_target.commands = $$QMAKE_CREATEPACKAGE $(QT_SIS_OPTIONS) $${baseTarget}_template.pkg \
                                   - $(QT_SIS_CERTIFICATE) $(QT_SIS_KEY) $(QT_SIS_PASSPHRASE)
         sis_target.depends = first
 
         unsigned_sis_target.target = unsigned_sis
-        unsigned_sis_target.commands = createpackage $(QT_SIS_OPTIONS) -o $${baseTarget}_template.pkg
+        unsigned_sis_target.commands = $$QMAKE_CREATEPACKAGE $(QT_SIS_OPTIONS) -o $${baseTarget}_template.pkg
         unsigned_sis_target.depends = first
 
         target_sis_target.target = $${sis_destdir}/$${baseTarget}.sis
         target_sis_target.commands = $(MAKE) -f $(MAKEFILE) sis
 
         installer_sis_target.target = installer_sis
-        installer_sis_target.commands = createpackage $(QT_SIS_OPTIONS) $${baseTarget}_installer.pkg - \
+        installer_sis_target.commands = $$QMAKE_CREATEPACKAGE $(QT_SIS_OPTIONS) $${baseTarget}_installer.pkg - \
                                             $(QT_SIS_CERTIFICATE) $(QT_SIS_KEY) $(QT_SIS_PASSPHRASE)
         installer_sis_target.depends = $${sis_destdir}/$${baseTarget}.sis
 
--- a/mkspecs/features/symbian/application_icon.prf	Fri Sep 17 08:34:18 2010 +0300
+++ b/mkspecs/features/symbian/application_icon.prf	Mon Oct 04 01:19:32 2010 +0300
@@ -14,20 +14,7 @@
             warning("Only first icon specified in ICON variable is used: $$ICON")
         }
 
-        # Try to produce indentical string to fixedTarget in SymbianMakefileGenerator, replaced chars taken
-        # from SymbianCommonGenerator::removeSpecialCharacters.
-        #
-        # Note: it is not a major problem even baseTarget is not 100% identical to fixedTarget since qmake
-        # only uses filename from RSS_RULES.icon_file when referring to icon file name.
-        baseTarget = $$basename(TARGET)
-        baseTarget = $$replace(baseTarget, /,_)
-        baseTarget = $$replace(baseTarget, \\\\,_)
-        baseTarget = $$replace(baseTarget, " ",_)
-        symbian-abld|symbian-sbsv2 {
-            baseTarget = $$replace(baseTarget, -,_)
-            baseTarget = $$replace(baseTarget, \\.,_)
-            baseTarget = $$replace(baseTarget, :,_)
-        }
+        baseTarget = $$symbianRemoveSpecialCharacters($$basename(TARGET))
 
         # Note: symbian-sbsv2 builds can't utilize extra compiler for mifconv, so ICON handling is done in code
         !symbian-sbsv2 {
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mkspecs/features/symbian/opengl.prf	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,21 @@
+contains(QT_CONFIG, opengles1) {
+    INCLUDEPATH += $$QMAKE_INCDIR_OPENGL_ES1
+    !isEmpty(QMAKE_LIBDIR_OPENGL_ES1):QMAKE_LIBDIR += $$QMAKE_LIBDIR_OPENGL_ES1
+    target_qt:LIBS_PRIVATE += $$QMAKE_LIBS_OPENGL_ES1_QT
+    else:LIBS += $$QMAKE_LIBS_OPENGL_ES1
+} else:contains(QT_CONFIG, opengles2) {
+    INCLUDEPATH += $$QMAKE_INCDIR_OPENGL_ES2
+    !isEmpty(QMAKE_LIBDIR_OPENGL_ES2):QMAKE_LIBDIR += $$QMAKE_LIBDIR_OPENGL_ES2
+    target_qt:LIBS_PRIVATE += $$QMAKE_LIBS_OPENGL_ES2_QT
+    else:LIBS += $$QMAKE_LIBS_OPENGL_ES2
+} else {
+    INCLUDEPATH += $$QMAKE_INCDIR_OPENGL
+    !isEmpty(QMAKE_LIBDIR_OPENGL):QMAKE_LIBDIR += $$QMAKE_LIBDIR_OPENGL
+    target_qt:LIBS_PRIVATE += $$QMAKE_LIBS_OPENGL_QT
+    else:LIBS += $$QMAKE_LIBS_OPENGL
+}
+
+contains(QT_CONFIG, egl) {
+    !isEmpty(QMAKE_LIBS_EGL): LIBS += $$QMAKE_LIBS_EGL
+}
+
--- a/mkspecs/features/symbian/platform_paths.prf	Fri Sep 17 08:34:18 2010 +0300
+++ b/mkspecs/features/symbian/platform_paths.prf	Mon Oct 04 01:19:32 2010 +0300
@@ -65,8 +65,11 @@
     epocroot_prefix = $${EPOCROOT}
 }
 
-exists($${EPOCROOT}epoc32/include/platform_paths.prf) {
-    
+symbian-abld|symbian-sbsv2:exists($${EPOCROOT}epoc32/include/platform_paths.prf) {
+
+    # Symbian does not provide correct profiles for non-mmp based systems, so
+    # we only should get in here with abld and sbsv2.
+
     # Load platform specific paths
     load($${EPOCROOT}epoc32/include/platform_paths.prf)
 
--- a/mkspecs/features/symbian/run_on_phone.prf	Fri Sep 17 08:34:18 2010 +0300
+++ b/mkspecs/features/symbian/run_on_phone.prf	Mon Oct 04 01:19:32 2010 +0300
@@ -5,31 +5,35 @@
 contains(TEMPLATE, app): GENERATE_RUN_TARGETS = true
 else:!equals(DEPLOYMENT, default_deployment) {
     for(dep_item, $$list($$DEPLOYMENT)) {
-        eval(dep_item_sources = $${dep_item}.sources)
+        dep_item_sources = $$eval($${dep_item}.sources)
         !isEmpty(dep_item_sources): GENERATE_RUN_TARGETS = true
     }
 }
 
 equals(GENERATE_RUN_TARGETS, true) {
+    baseTarget = $$symbianRemoveSpecialCharacters($$basename(TARGET))
+    sis_file = $${baseTarget}.sis
     symbian-abld|symbian-sbsv2 {
         sis_destdir =
     } else {
         sis_destdir = $$DESTDIR
+        isEmpty(sis_destdir):sis_destdir = .
+        !equals(TARGET, "$$baseTarget"):sis_destdir = $$sis_destdir/$$dirname(TARGET)
         !isEmpty(sis_destdir):!contains(sis_destdir, "[/\\\\]$"):sis_destdir = $${sis_destdir}/
         contains(QMAKE_HOST.os, "Windows"):sis_destdir = $$replace(sis_destdir, "/", "\\")
     }
 
     contains(SYMBIAN_PLATFORMS, "WINSCW"):contains(TEMPLATE, "app") {
         run_target.target = run
-        run_target.commands = call "$${EPOCROOT}epoc32/release/winscw/udeb/$${TARGET}.exe" $(QT_RUN_OPTIONS)
+        run_target.commands = call "$${EPOCROOT}epoc32/release/winscw/udeb/$${baseTarget}.exe" $(QT_RUN_OPTIONS)
 
         QMAKE_EXTRA_TARGETS += run_target
     }
 
     runonphone_target.target = runonphone
     runonphone_target.depends = sis
-    runonphone_target.commands = runonphone $(QT_RUN_ON_PHONE_OPTIONS) --sis "$${sis_destdir}$${TARGET}.sis"
-    contains(TEMPLATE, "app"):runonphone_target.commands += "$${TARGET}.exe" $(QT_RUN_OPTIONS)
+    runonphone_target.commands = runonphone $(QT_RUN_ON_PHONE_OPTIONS) --sis "$${sis_destdir}$${sis_file}"
+    contains(TEMPLATE, "app"):runonphone_target.commands += "$${baseTarget}.exe" $(QT_RUN_OPTIONS)
 
     QMAKE_EXTRA_TARGETS += runonphone_target
 }
--- a/mkspecs/features/symbian/stl.prf	Fri Sep 17 08:34:18 2010 +0300
+++ b/mkspecs/features/symbian/stl.prf	Mon Oct 04 01:19:32 2010 +0300
@@ -15,18 +15,24 @@
 INCLUDEPATH -= $$[QT_INSTALL_PREFIX]/mkspecs/common/symbian/stl-off
 
 # libstdcppv5 is preferred over libstdcpp as it has/uses the throwing version of operator new
-STL_LIB = -llibstdcppv5.dll
-
 # STDCPP turns on standard C++ new behaviour (ie. throwing new)
-STL_MMP_RULE = "STDCPP"
+use_libstdcppv5 = true
 
 # Fall back to old implementation if that is the only one that is found
 exists($${EPOCROOT}epoc32/release/armv5/lib/libstdcpp.dso)|exists($${EPOCROOT}epoc32/release/winscw/udeb/libstdcpp.dll) {
     !exists($${EPOCROOT}epoc32/release/armv5/lib/libstdcppv5.dso):!exists($${EPOCROOT}epoc32/release/winscw/udeb/libstdcppv5.dll) {
-        STL_LIB = -llibstdcpp.dll
-        STL_MMP_RULE =
+        use_libstdcppv5 = false
     }
 }
 
-LIBS *= $$STL_LIB
-MMP_RULES *= $$STL_MMP_RULE
+equals(use_libstdcppv5, true) {
+    LIBS *= -llibstdcppv5.dll
+    symbian-abld|symbian-sbsv2 {
+        MMP_RULES *= "STDCPP"
+    } else {
+        DEFINES *= __SYMBIAN_STDCPP_SUPPORT__
+        LIBS *= -lstdnew.dll
+    }
+} else {
+    LIBS *= -llibstdcpp.dll
+}
--- a/mkspecs/features/symbian/symbian_building.prf	Fri Sep 17 08:34:18 2010 +0300
+++ b/mkspecs/features/symbian/symbian_building.prf	Mon Oct 04 01:19:32 2010 +0300
@@ -35,36 +35,38 @@
 isEmpty(symbianDestdir) {
     symbianDestdir = .
 }
-baseTarget = $$basename(TARGET)
+baseTarget = $$symbianRemoveSpecialCharacters($$basename(TARGET))
 !equals(TARGET, "$$baseTarget"):symbianDestdir = $$symbianDestdir/$$dirname(TARGET)
 
 contains(QMAKE_CFLAGS, "--thumb")|contains(QMAKE_CXXFLAGS, "--thumb")|contains(QMAKE_CFLAGS, "-mthumb")|contains(QMAKE_CXXFLAGS, "-mthumb") {
     DEFINES += __MARM_THUMB__
 }
 
-defineReplace(processSymbianLibraries) {
-    library = $$replace(1, "\\.dll$", ".dso")
-    library = $$replace(library, "^-l", "")
-    isFullName = $$find(library, \\.)
-    isEmpty(isFullName):library="$${library}.dso"
-    linux-gcce {
-        newLIB = "-l:$${library}"
-    } else {
-        newLIB = "$${library}"
-    }
-    contains(library, "\\.dso$")|contains(library, "\\.lib$"):PRE_TARGETDEPS += $$library
-    return($$newLIB)
+defineReplace(processSymbianLibrary) {
+    qt_library = $$replace(1, "\\.dll$", ".dso")
+    qt_library = $$replace(qt_library, "^-l", "")
+    isFullName = $$find(qt_library, \\.)
+    isEmpty(isFullName):qt_library="$${qt_library}.dso"
+    return($$qt_library)
 }
 
-for(libraries, LIBS) {
-    newLIBS += $$processSymbianLibraries($$libraries)
+qt_libraries = $$split(LIBS, " ")
+LIBS =
+for(qt_library, qt_libraries) {
+    qt_newLib = $$processSymbianLibrary($$qt_library)
+    contains(qt_newLib, ".*\\.dso$")|contains(qt_newLib, ".*\\.lib$"):PRE_TARGETDEPS += $$qt_newLib
+    linux-gcce:qt_newLib = "-l:$$qt_newLib"
+    LIBS += $$qt_newLib
 }
-LIBS = $$newLIBS
-newLIBS =
-for(libraries, QMAKE_LIBS) {
-    newLIBS += $$processSymbianLibraries($$libraries)
+
+qt_libraries = $$split(QMAKE_LIBS, " ")
+QMAKE_LIBS =
+for(qt_library, qt_libraries) {
+    qt_newLib = $$processSymbianLibrary($$qt_library)
+    contains(qt_newLib, ".*\\.dso$")|contains(qt_newLib, ".*\\.lib$"):PRE_TARGETDEPS += $$qt_newLib
+    linux-gcce:qt_newLib = "-l:$$qt_newLib"
+    QMAKE_LIBS += $$qt_newLib
 }
-QMAKE_LIBS = $$newLIBS
 
 elf2e32_LIBPATH =
 for(libPath, QMAKE_LIBDIR) {
@@ -112,14 +114,9 @@
 capability = "--capability=$$capability"
 
 contains(TEMPLATE, lib):!contains(CONFIG, static):!contains(CONFIG, staticlib) {
-    !isEmpty(QMAKE_POST_LINK) {
-        # No way to honor the '@' :-(
-        QMAKE_POST_LINK = $$replace(QMAKE_POST_LINK, "^@", "")
-        QMAKE_POST_LINK = && $$QMAKE_POST_LINK
-    }
-
     contains(CONFIG, plugin):QMAKE_ELF2E32_FLAGS += --definput=plugin_commonu.def
 
+    !isEmpty(QMAKE_POST_LINK):QMAKE_POST_LINK = $$escape_expand(\\n\\t)$$QMAKE_POST_LINK
     QMAKE_POST_LINK = $$QMAKE_MOVE $$symbianDestdir/$${baseTarget}.dll $$symbianDestdir/$${baseTarget}.sym \
                       && $$QMAKE_ELF2E32_WRAPPER --version=$$decVersion \
                       --sid=$$TARGET.SID \
@@ -164,11 +161,7 @@
 }
 
 contains(TEMPLATE, app):!contains(QMAKE_LINK, "^@:.*") {
-    !isEmpty(QMAKE_POST_LINK) {
-        # No way to honor the '@' :-(
-        QMAKE_POST_LINK = $$replace(QMAKE_POST_LINK, "^@", "")
-        QMAKE_POST_LINK = && $$QMAKE_POST_LINK
-    }
+    !isEmpty(QMAKE_POST_LINK):QMAKE_POST_LINK = $$escape_expand(\\n\\t)$$QMAKE_POST_LINK
     QMAKE_POST_LINK = $$QMAKE_MOVE $$symbianDestdir/$${baseTarget} $$symbianDestdir/$${baseTarget}.sym \
                       && $$QMAKE_ELF2E32_WRAPPER --version $$decVersion \
                       --sid=$$TARGET.SID \
@@ -184,7 +177,7 @@
                       $$elf2e32_LIBPATH \
                       $$capability \
                       $$QMAKE_ELF2E32_FLAGS \
-                      && ln "$${symbianDestdir}/$${baseTarget}.exe" "$${symbianDestdir}/$${baseTarget}" \
+                      && $$QMAKE_COPY "$${symbianDestdir}/$${baseTarget}.exe" "$${symbianDestdir}/$${baseTarget}" \
                       $$QMAKE_POST_LINK
     silent:QMAKE_POST_LINK = @echo postlinking $@ && $$QMAKE_POST_LINK
     QMAKE_DISTCLEAN += $${symbianDestdir}/$${baseTarget}.sym
@@ -260,49 +253,45 @@
 QMAKE_EXTRA_COMPILERS += symbianresources
 
 contains(TEMPLATE, "app"):!contains(CONFIG, "no_icon") {
-    baseResourceTarget = $$basename(TARGET)
-    # If you change this, also see application_icon.prf
-    baseResourceTarget = $$replace(baseResourceTarget, " ",_)
-
     # Make our own extra target in order to get dependencies for generated
     # files right. This also avoids the warning about files not found.
-    symbianGenResource.target = $${symbian_resources_RCC_DIR}/$${baseResourceTarget}.rsg
+    symbianGenResource.target = $${symbian_resources_RCC_DIR}/$${baseTarget}.rsg
     symbianGenResource.commands = cpp -nostdinc -undef \
                                   $$symbian_resources_INCLUDES \
                                   $$symbian_resources_DEFINES \
-                                  $${baseResourceTarget}.rss \
-                                  -o $${symbian_resources_RCC_DIR}/$${baseResourceTarget}.rpp \
+                                  $${baseTarget}.rss \
+                                  -o $${symbian_resources_RCC_DIR}/$${baseTarget}.rpp \
                                   && rcomp -u -m045,046,047 \
-                                  -s$${symbian_resources_RCC_DIR}/$${baseResourceTarget}.rpp \
-                                  -o$${symbianDestdir}/$${baseResourceTarget}.rsc \
-                                  -h$${symbian_resources_RCC_DIR}/$${baseResourceTarget}.rsg \
-                                  -i$${baseResourceTarget}.rss
-    silent:symbianGenResource.commands = @echo rcomp $${baseResourceTarget}.rss && $$symbianGenResource.commands
-    symbianGenResource.depends = $${baseResourceTarget}.rss
-    PRE_TARGETDEPS += $${symbian_resources_RCC_DIR}/$${baseResourceTarget}.rsg
-    QMAKE_CLEAN += $${symbian_resources_RCC_DIR}/$${baseResourceTarget}.rsg
-    QMAKE_CLEAN += $${symbian_resources_RCC_DIR}/$${baseResourceTarget}.rpp
-    QMAKE_DISTCLEAN += $${baseResourceTarget}.rss
-    QMAKE_DISTCLEAN += $${symbianDestdir}/$${baseResourceTarget}.rsc
+                                  -s$${symbian_resources_RCC_DIR}/$${baseTarget}.rpp \
+                                  -o$${symbianDestdir}/$${baseTarget}.rsc \
+                                  -h$${symbian_resources_RCC_DIR}/$${baseTarget}.rsg \
+                                  -i$${baseTarget}.rss
+    silent:symbianGenResource.commands = @echo rcomp $${baseTarget}.rss && $$symbianGenResource.commands
+    symbianGenResource.depends = $${baseTarget}.rss
+    PRE_TARGETDEPS += $${symbian_resources_RCC_DIR}/$${baseTarget}.rsg
+    QMAKE_CLEAN += $${symbian_resources_RCC_DIR}/$${baseTarget}.rsg
+    QMAKE_CLEAN += $${symbian_resources_RCC_DIR}/$${baseTarget}.rpp
+    QMAKE_DISTCLEAN += $${baseTarget}.rss
+    QMAKE_DISTCLEAN += $${symbianDestdir}/$${baseTarget}.rsc
 
-    symbianGenRegResource.target = $${symbian_resources_RCC_DIR}/$${baseResourceTarget}_reg.rsg
+    symbianGenRegResource.target = $${symbian_resources_RCC_DIR}/$${baseTarget}_reg.rsg
     symbianGenRegResource.commands = cpp -nostdinc -undef \
                                      $$symbian_resources_INCLUDES \
                                      $$symbian_resources_DEFINES \
-                                     $${baseResourceTarget}_reg.rss \
-                                     -o $${symbian_resources_RCC_DIR}/$${baseResourceTarget}_reg.rpp \
+                                     $${baseTarget}_reg.rss \
+                                     -o $${symbian_resources_RCC_DIR}/$${baseTarget}_reg.rpp \
                                      && rcomp -u -m045,046,047 \
-                                     -s$${symbian_resources_RCC_DIR}/$${baseResourceTarget}_reg.rpp \
-                                     -o$${symbianDestdir}/$${baseResourceTarget}_reg.rsc \
-                                     -h$${symbian_resources_RCC_DIR}/$${baseResourceTarget}_reg.rsg \
-                                     -i$${baseResourceTarget}_reg.rss
-    silent:symbianGenRegResource.commands = @echo rcomp $${baseResourceTarget}_reg.rss && $$symbianGenRegResource.commands
-    symbianGenRegResource.depends = $${baseResourceTarget}_reg.rss $${symbian_resources_RCC_DIR}/$${baseResourceTarget}.rsg
-    PRE_TARGETDEPS += $${symbian_resources_RCC_DIR}/$${baseResourceTarget}_reg.rsg
-    QMAKE_CLEAN += $${symbian_resources_RCC_DIR}/$${baseResourceTarget}_reg.rsg
-    QMAKE_CLEAN += $${symbian_resources_RCC_DIR}/$${baseResourceTarget}_reg.rpp
-    QMAKE_DISTCLEAN += $${baseResourceTarget}_reg.rss
-    QMAKE_DISTCLEAN += $${symbianDestdir}/$${baseResourceTarget}_reg.rsc
+                                     -s$${symbian_resources_RCC_DIR}/$${baseTarget}_reg.rpp \
+                                     -o$${symbianDestdir}/$${baseTarget}_reg.rsc \
+                                     -h$${symbian_resources_RCC_DIR}/$${baseTarget}_reg.rsg \
+                                     -i$${baseTarget}_reg.rss
+    silent:symbianGenRegResource.commands = @echo rcomp $${baseTarget}_reg.rss && $$symbianGenRegResource.commands
+    symbianGenRegResource.depends = $${baseTarget}_reg.rss $${symbian_resources_RCC_DIR}/$${baseTarget}.rsg
+    PRE_TARGETDEPS += $${symbian_resources_RCC_DIR}/$${baseTarget}_reg.rsg
+    QMAKE_CLEAN += $${symbian_resources_RCC_DIR}/$${baseTarget}_reg.rsg
+    QMAKE_CLEAN += $${symbian_resources_RCC_DIR}/$${baseTarget}_reg.rpp
+    QMAKE_DISTCLEAN += $${baseTarget}_reg.rss
+    QMAKE_DISTCLEAN += $${symbianDestdir}/$${baseTarget}_reg.rsc
 
     # Trick to get qmake to create the RCC_DIR for us.
     symbianRccDirCreation.input = SOURCES
@@ -319,3 +308,5 @@
 # Generated pkg files
 
 QMAKE_DISTCLEAN += $${baseTarget}_template.pkg
+QMAKE_DISTCLEAN += $${baseTarget}_installer.pkg
+QMAKE_DISTCLEAN += $${baseTarget}_stub.pkg
--- a/mkspecs/features/unix/separate_debug_info.prf	Fri Sep 17 08:34:18 2010 +0300
+++ b/mkspecs/features/unix/separate_debug_info.prf	Mon Oct 04 01:19:32 2010 +0300
@@ -1,8 +1,9 @@
 
 !separate_debug_info_nocopy:!staticlib:!static:!contains(TEMPLATE, subdirs):!isEmpty(QMAKE_OBJCOPY) {
-    QMAKE_SEPARATE_DEBUG_INFO = (test -z \"$(DESTDIR)\" || cd \"$(DESTDIR)\" ; targ=`basename $(TARGET)`; $$QMAKE_OBJCOPY --only-keep-debug \"\$\$targ\" \"\$\$targ.debug\" && $$QMAKE_OBJCOPY --strip-debug \"\$\$targ\" && $$QMAKE_OBJCOPY --add-gnu-debuglink=\"\$\$targ.debug\" \"\$\$targ\" && chmod -x \"\$\$targ.debug\" ) ;
+    QMAKE_SEPARATE_DEBUG_INFO = test -z \"$(DESTDIR)\" || cd \"$(DESTDIR)\" ; targ=`basename $(TARGET)`; $$QMAKE_OBJCOPY --only-keep-debug \"\$\$targ\" \"\$\$targ.debug\" && $$QMAKE_OBJCOPY --strip-debug \"\$\$targ\" && $$QMAKE_OBJCOPY --add-gnu-debuglink=\"\$\$targ.debug\" \"\$\$targ\" && chmod -x \"\$\$targ.debug\"
     QMAKE_INSTALL_SEPARATE_DEBUG_INFO = test -z \"$(DESTDIR)\" || cd \"$(DESTDIR)\" ; $(INSTALL_FILE) `basename $(TARGET)`.debug $(INSTALL_ROOT)/\$\$target_path/
 
+    !isEmpty(QMAKE_POST_LINK):QMAKE_POST_LINK = $$escape_expand(\\n\\t)$$QMAKE_POST_LINK
     QMAKE_POST_LINK = $$QMAKE_SEPARATE_DEBUG_INFO $$QMAKE_POST_LINK
     silent:QMAKE_POST_LINK = @echo creating $@.debug && $$QMAKE_POST_LINK
 
--- a/mkspecs/features/vxworks.prf	Fri Sep 17 08:34:18 2010 +0300
+++ b/mkspecs/features/vxworks.prf	Mon Oct 04 01:19:32 2010 +0300
@@ -22,20 +22,20 @@
 
 shared|!staticlib:!lib {
     *-dcc {
-    VXWORKS_MUNCH_CMD = (targ=`basename $(TARGET)`; \
+    VXWORKS_MUNCH_CMD =  targ=`basename $(TARGET)`; \
                          ddump -Ng \"$(TARGET)\" | tclsh $$VXWORKS_MUNCH_TOOL -c $$VXWORKS_ARCH_MUNCH >\"$(OBJECTS_DIR)/\$\${targ}_ctdt.c\" && \
                          $$QMAKE_CC -c $$QMAKE_CFLAGS \"$(OBJECTS_DIR)/\$\${targ}_ctdt.c\" -o \"$(OBJECTS_DIR)/\$\${targ}_ctdt.o\" && \
                          $$QMAKE_LINK $$QMAKE_LFLAGS -X -r5 -r4 \"$(OBJECTS_DIR)/\$\${targ}_ctdt.o\" \"$(TARGET)\" -o \"$(TARGET).munched\" && \
                          mv \"$(TARGET).munched\" \"$(TARGET)\" && \
-                         chmod +x \"$(TARGET)\")
+                         chmod +x \"$(TARGET)\"
     }
     *-g++ {
-    VXWORKS_MUNCH_CMD = (targ=`basename $(TARGET)`; \
+    VXWORKS_MUNCH_CMD =  targ=`basename $(TARGET)`; \
                          nm \"$(DESTDIR)$(TARGET)\" | tclsh $$VXWORKS_MUNCH_TOOL -c $$VXWORKS_ARCH_MUNCH >\"$(OBJECTS_DIR)/\$\${targ}_ctdt.c\" && \
                          $$QMAKE_CC -c $$QMAKE_CFLAGS -fdollars-in-identifiers \"$(OBJECTS_DIR)/\$\${targ}_ctdt.c\" -o \"$(OBJECTS_DIR)/\$\${targ}_ctdt.o\" && \
                          $$QMAKE_LINK $$QMAKE_LFLAGS -nostdlib -Wl,-X -T $(WIND_BASE)/target/h/tool/gnu/ldscripts/link.OUT \"$(OBJECTS_DIR)/\$\${targ}_ctdt.o\" \"$(DESTDIR)$(TARGET)\" -o \"$(DESTDIR)$(TARGET).munched\" && \
                          mv \"$(DESTDIR)$(TARGET).munched\" \"$(DESTDIR)$(TARGET)\" && \
-                         chmod +x \"$(DESTDIR)$(TARGET)\")
+                         chmod +x \"$(DESTDIR)$(TARGET)\"
     }
 
     # We need to create a dummy lib.a in case someone links against this lib.
@@ -48,7 +48,8 @@
         VXWORKS_MUNCH_CMD += (atarg=`basename $(TARGET) .so.$${VERSION}`.a ; touch \"$(DESTDIR)\$\${atarg}\")
     }
 
-    QMAKE_POST_LINK = $$VXWORKS_MUNCH_CMD $$QMAKE_POST_LINK
+    !isEmpty(QMAKE_POST_LINK):QMAKE_POST_LINK = $$escape_expand(\\n\\t)$$QMAKE_POST_LINK
+    QMAKE_POST_LINK = $$VXWORKS_MUNCH_CMD$$QMAKE_POST_LINK
     silent:QMAKE_POST_LINK = @echo creating $@.$$VXWORKS_MUNCH_EXT && $$QMAKE_POST_LINK
 
     isEmpty(DESTDIR) {
--- a/mkspecs/features/win32/embed_manifest_dll.prf	Fri Sep 17 08:34:18 2010 +0300
+++ b/mkspecs/features/win32/embed_manifest_dll.prf	Mon Oct 04 01:19:32 2010 +0300
@@ -6,8 +6,7 @@
     NOPATH_TARGET ~= s,\\\\,/,g     # Change to single type separators
     NOPATH_TARGET ~= s,^(.*/)+,,    # Remove all paths
     QMAKE_LFLAGS += /MANIFEST $$quote(/MANIFESTFILE:\"$${MANIFEST_DIR}\\$${NOPATH_TARGET}.intermediate.manifest\")
-    QMAKE_PREV_POST_LINK = $$QMAKE_POST_LINK
-    QMAKE_POST_LINK = $$quote(mt.exe -nologo -manifest \"$$replace(MANIFEST_DIR,/,\\)\\$${NOPATH_TARGET}.intermediate.manifest\" -outputresource:$(DESTDIR_TARGET);2$$escape_expand(\\n\\t))
-    QMAKE_POST_LINK += $$QMAKE_PREV_POST_LINK
+    !isEmpty(QMAKE_POST_LINK):QMAKE_POST_LINK = $$escape_expand(\\n\\t)$$QMAKE_POST_LINK
+    QMAKE_POST_LINK = $$quote(mt.exe -nologo -manifest \"$$replace(MANIFEST_DIR,/,\\)\\$${NOPATH_TARGET}.intermediate.manifest\" -outputresource:$(DESTDIR_TARGET);2$$escape_expand(\\n\\t))$$QMAKE_POST_LINK
     QMAKE_CLEAN += \"$$replace(MANIFEST_DIR,/,\\)\\$${NOPATH_TARGET}.intermediate.manifest\"
 }
--- a/mkspecs/features/win32/embed_manifest_exe.prf	Fri Sep 17 08:34:18 2010 +0300
+++ b/mkspecs/features/win32/embed_manifest_exe.prf	Mon Oct 04 01:19:32 2010 +0300
@@ -6,8 +6,7 @@
     NOPATH_TARGET ~= s,\\\\,/,g     # Change to single type separators
     NOPATH_TARGET ~= s,^(.*/)+,,    # Remove all paths
     QMAKE_LFLAGS += /MANIFEST $$quote(/MANIFESTFILE:\"$${MANIFEST_DIR}\\$${NOPATH_TARGET}.intermediate.manifest\")
-    QMAKE_PREV_POST_LINK = $$QMAKE_POST_LINK
-    QMAKE_POST_LINK = $$quote(mt.exe -nologo -manifest \"$$replace(MANIFEST_DIR,/,\\)\\$${NOPATH_TARGET}.intermediate.manifest\" -outputresource:$(DESTDIR_TARGET);1$$escape_expand(\\n\\t))
-    QMAKE_POST_LINK += $$QMAKE_PREV_POST_LINK
+    !isEmpty(QMAKE_POST_LINK):QMAKE_POST_LINK = $$escape_expand(\\n\\t)$$QMAKE_POST_LINK
+    QMAKE_POST_LINK = $$quote(mt.exe -nologo -manifest \"$$replace(MANIFEST_DIR,/,\\)\\$${NOPATH_TARGET}.intermediate.manifest\" -outputresource:$(DESTDIR_TARGET);1$$escape_expand(\\n\\t))$$QMAKE_POST_LINK
     QMAKE_CLEAN += \"$$replace(MANIFEST_DIR,/,\\)\\$${NOPATH_TARGET}.intermediate.manifest\"
 }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mkspecs/features/win32/msvc_mp.prf	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,2 @@
+QMAKE_CFLAGS += $$QMAKE_CFLAGS_MP
+QMAKE_CXXFLAGS += $$QMAKE_CXXFLAGS_MP
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mkspecs/modules/README	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,3 @@
+Externally provided Qt modules may drop a qmake file here to become part of
+the current Qt configuration. The file name must follow the pattern
+"qt_<module>.pri". It must contain a "QT_CONFIG += <module>" statement.
--- a/mkspecs/modules/qt_webkit_version.pri	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-QT_WEBKIT_VERSION = 4.7.0
-QT_WEBKIT_MAJOR_VERSION = 4
-QT_WEBKIT_MINOR_VERSION = 7
-QT_WEBKIT_PATCH_VERSION = 0
-QT_CONFIG *= webkit
--- a/mkspecs/symbian-sbsv2/flm/qt/qmake_store_build.flm	Fri Sep 17 08:34:18 2010 +0300
+++ b/mkspecs/symbian-sbsv2/flm/qt/qmake_store_build.flm	Mon Oct 04 01:19:32 2010 +0300
@@ -38,7 +38,7 @@
 	echo "#                make sis target." >> $(CACHE_FILENAME) && \
 	echo "#  Version     : " >> $(CACHE_FILENAME) && \
 	echo "# ==============================================================================" >> $(CACHE_FILENAME) && \
-	echo QT_SIS_TARGET ?= $(VISUAL_CFG)-$(PLATFORM_PATH) >> $(CACHE_FILENAME) \
+	echo QT_SIS_TARGET ?= $(VISUAL_CFG)-$(PLATFORM_PATH) >> $(CACHE_FILENAME)
 	$(call endrule,qmake_store_build)
 endef
 
--- a/mkspecs/symbian/linux-armcc/qmake.conf	Fri Sep 17 08:34:18 2010 +0300
+++ b/mkspecs/symbian/linux-armcc/qmake.conf	Mon Oct 04 01:19:32 2010 +0300
@@ -31,7 +31,7 @@
 # Move RW-section base address to start from 0xE00000 instead of the toolchain default 0x400000.
 QMAKE_QtWebKit_LFLAGS	=  --rw-base 0xE00000
 
-QMAKE_CFLAGS		+= --dllimport_runtime --preinclude rvct2_2.h  --diag_suppress 186,611,654,1300 --thumb --fpu softvfp --cpu 5T --enum_is_int -Ono_known_library --fpmode ieee_no_fenv --no_vfe --apcs /inter
+QMAKE_CFLAGS		+= --dllimport_runtime --diag_suppress 186,611,654,1300 --thumb --fpu softvfp --cpu 5T --enum_is_int -Ono_known_library --fpmode ieee_no_fenv --no_vfe --apcs /inter
 QMAKE_CXXFLAGS		+= $$QMAKE_CFLAGS
 QMAKE_LFLAGS      	+=  --symver_soname --diag_suppress 6331,6780 --bpabi --reloc --datacompressor=off --split --dll --no_scanlib
 QMAKE_LFLAGS_APP        += --entry _E32Startup
@@ -47,7 +47,16 @@
 QMAKE_LIBDIR *= $$(RVCT22LIB)
 
 INCLUDEPATH = $${EPOCROOT}epoc32/include \
-    $${EPOCROOT}epoc32/include/rvct2_2 \
     $${EPOCROOT}epoc32/include/variant \
     $${EPOCROOT}epoc32/include/stdapis \
     $$INCLUDEPATH
+
+exists($${EPOCROOT}epoc32/include/rvct2_2) {
+    INCLUDEPATH += $${EPOCROOT}epoc32/include/rvct2_2
+    QMAKE_CFLAGS += --preinclude rvct2_2.h
+    QMAKE_CXXFLAGS += --preinclude rvct2_2.h
+} else {
+    INCLUDEPATH += $${EPOCROOT}epoc32/include/rvct
+    QMAKE_CFLAGS += --preinclude rvct.h
+    QMAKE_CXXFLAGS += --preinclude rvct.h
+}
--- a/mkspecs/win32-g++-symbian/qmake.conf	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,108 +0,0 @@
-#
-# qmake configuration for win32-g++
-#
-# Written for MinGW
-#
-
-MAKEFILE_GENERATOR	= MINGW
-TEMPLATE		= app
-CONFIG			+= qt warn_on release link_prl copy_dir_files debug_and_release debug_and_release_target precompile_header
-QT			+= core gui
-DEFINES			+= UNICODE QT_LARGEFILE_SUPPORT
-QMAKE_COMPILER_DEFINES  += __GNUC__ WIN32
-
-QMAKE_EXT_OBJ           = .o
-QMAKE_EXT_RES           = _res.o
-
-QMAKE_CC		= $${EPOCROOT}epoc32/gcc_mingw/bin/gcc
-QMAKE_LEX		= flex
-QMAKE_LEXFLAGS		=
-QMAKE_YACC		= byacc
-QMAKE_YACCFLAGS		= -d
-QMAKE_CFLAGS		=
-QMAKE_CFLAGS_DEPS	= -M
-QMAKE_CFLAGS_WARN_ON	= -Wall
-QMAKE_CFLAGS_WARN_OFF	= -w
-QMAKE_CFLAGS_RELEASE	= -O2
-QMAKE_CFLAGS_DEBUG	= -g
-QMAKE_CFLAGS_YACC	= -Wno-unused -Wno-parentheses
-
-QMAKE_CXX           = $${EPOCROOT}epoc32/gcc_mingw/bin/g++
-QMAKE_CXXFLAGS      = $$QMAKE_CFLAGS
-QMAKE_CXXFLAGS_DEPS	= $$QMAKE_CFLAGS_DEPS
-QMAKE_CXXFLAGS_WARN_ON	= $$QMAKE_CFLAGS_WARN_ON
-QMAKE_CXXFLAGS_WARN_OFF	= $$QMAKE_CFLAGS_WARN_OFF
-QMAKE_CXXFLAGS_RELEASE	= $$QMAKE_CFLAGS_RELEASE
-QMAKE_CXXFLAGS_DEBUG	= $$QMAKE_CFLAGS_DEBUG
-QMAKE_CXXFLAGS_YACC	= $$QMAKE_CFLAGS_YACC
-QMAKE_CXXFLAGS_THREAD	= $$QMAKE_CFLAGS_THREAD
-QMAKE_CXXFLAGS_RTTI_ON	= -frtti
-QMAKE_CXXFLAGS_RTTI_OFF	= -fno-rtti
-QMAKE_CXXFLAGS_EXCEPTIONS_ON = -fexceptions -mthreads
-QMAKE_CXXFLAGS_EXCEPTIONS_OFF = -fno-exceptions
-
-QMAKE_INCDIR		=
-QMAKE_INCDIR_QT		= $$[QT_INSTALL_HEADERS]
-QMAKE_LIBDIR_QT		= $$[QT_INSTALL_LIBS]
-
-QMAKE_RUN_CC		= $(CC) -c $(CFLAGS) $(INCPATH) -o $obj $src
-QMAKE_RUN_CC_IMP	= $(CC) -c $(CFLAGS) $(INCPATH) -o $@ $<
-QMAKE_RUN_CXX		= $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $obj $src
-QMAKE_RUN_CXX_IMP	= $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<
-
-QMAKE_LINK          = $${EPOCROOT}epoc32/gcc_mingw/bin/g++
-QMAKE_LINK_C    	= $${EPOCROOT}epoc32/gcc_mingw/bin/gcc
-QMAKE_LFLAGS        = -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc
-QMAKE_LFLAGS_EXCEPTIONS_ON = -mthreads -Wl
-QMAKE_LFLAGS_EXCEPTIONS_OFF =
-QMAKE_LFLAGS_RELEASE	= -Wl,-s
-QMAKE_LFLAGS_DEBUG	=
-QMAKE_LFLAGS_CONSOLE	= -Wl,-subsystem,console
-QMAKE_LFLAGS_WINDOWS	= -Wl,-subsystem,windows
-QMAKE_LFLAGS_DLL        = -shared
-QMAKE_LINK_OBJECT_MAX	= 10
-QMAKE_LINK_OBJECT_SCRIPT= object_script
-
-
-QMAKE_LIBS		=
-QMAKE_LIBS_CORE         = -lkernel32 -luser32 -lshell32 -luuid -lole32 -ladvapi32 -lws2_32
-QMAKE_LIBS_GUI          = -lgdi32 -lcomdlg32 -loleaut32 -limm32 -lwinmm -lwinspool -lws2_32 -lole32 -luuid -luser32 -ladvapi32
-QMAKE_LIBS_NETWORK      = -lws2_32
-QMAKE_LIBS_OPENGL       = -lopengl32 -lglu32 -lgdi32 -luser32
-QMAKE_LIBS_COMPAT       = -ladvapi32 -lshell32 -lcomdlg32 -luser32 -lgdi32 -lws2_32
-QMAKE_LIBS_QT_ENTRY     = -lmingw32 -lqtmain
-
-!isEmpty(QMAKE_SH) {
-    MINGW_IN_SHELL      = 1
-	QMAKE_DIR_SEP		= /
-	QMAKE_COPY		= cp
-	QMAKE_COPY_DIR		= xcopy /s /q /y /i
-	QMAKE_MOVE		= mv
-	QMAKE_DEL_FILE		= rm
-	QMAKE_MKDIR		= mkdir
-	QMAKE_DEL_DIR		= rmdir
-    QMAKE_CHK_DIR_EXISTS = test -d
-} else {
-	QMAKE_COPY		= copy /y
-	QMAKE_COPY_DIR		= xcopy /s /q /y /i
-	QMAKE_MOVE		= move
-	QMAKE_DEL_FILE		= del
-	QMAKE_MKDIR		= mkdir
-	QMAKE_DEL_DIR		= rmdir
-    QMAKE_CHK_DIR_EXISTS	= if not exist
-}
-
-QMAKE_MOC		= $$[QT_INSTALL_BINS]$${DIR_SEPARATOR}moc.exe
-QMAKE_UIC		= $$[QT_INSTALL_BINS]$${DIR_SEPARATOR}uic.exe
-QMAKE_IDC		= $$[QT_INSTALL_BINS]$${DIR_SEPARATOR}idc.exe
-
-QMAKE_IDL		= midl
-QMAKE_LIB		= $${EPOCROOT}epoc32/gcc_mingw/bin/ar -ru
-QMAKE_AR		= $${EPOCROOT}epoc32/gcc_mingw/bin/ar
-QMAKE_RC		= $${EPOCROOT}epoc32/gcc_mingw/bin/windres
-QMAKE_ZIP		= zip -r -9
-
-QMAKE_STRIP		= $${EPOCROOT}epoc32/gcc_mingw/bin/strip
-QMAKE_STRIPFLAGS_LIB 	+= --strip-unneeded
-load(qt_config)
-
--- a/mkspecs/win32-g++-symbian/qplatformdefs.h	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,164 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the qmake spec 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 either Technology Preview License Agreement or the
-** Beta Release License Agreement.
-**
-** 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.0, 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 are unsure which license is appropriate for your use, please
-** contact the sales department at http://qt.nokia.com/contact.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QPLATFORMDEFS_H
-#define QPLATFORMDEFS_H
-
-#ifdef UNICODE
-#ifndef _UNICODE
-#define _UNICODE
-#endif
-#endif
-
-// Get Qt defines/settings
-
-#include "qglobal.h"
-
-#include <tchar.h>
-#include <io.h>
-#include <direct.h>
-#include <stdio.h>
-#include <fcntl.h>
-#include <errno.h>
-#include <sys/stat.h>
-#include <stdlib.h>
-#include <qt_windows.h>
-#include <limits.h>
-
-#if !defined(_WIN32_WINNT) || (_WIN32_WINNT-0 < 0x0500)
-typedef enum {
-    NameUnknown		  = 0, 
-    NameFullyQualifiedDN  = 1, 
-    NameSamCompatible	  = 2, 
-    NameDisplay		  = 3, 
-    NameUniqueId	  = 6, 
-    NameCanonical	  = 7, 
-    NameUserPrincipal	  = 8, 
-    NameCanonicalEx	  = 9, 
-    NameServicePrincipal  = 10, 
-    NameDnsDomain	  = 12
-} EXTENDED_NAME_FORMAT, *PEXTENDED_NAME_FORMAT;
-#endif
-
-#define Q_FS_FAT
-#ifdef QT_LARGEFILE_SUPPORT
-#define QT_STATBUF		struct _stati64		// non-ANSI defs
-#define QT_STATBUF4TSTAT	struct _stati64		// non-ANSI defs
-#define QT_STAT			::_stati64
-#define QT_FSTAT		::_fstati64
-#else
-#define QT_STATBUF		struct _stat		// non-ANSI defs
-#define QT_STATBUF4TSTAT	struct _stat		// non-ANSI defs
-#define QT_STAT			::_stat
-#define QT_FSTAT		::_fstat
-#endif
-#define QT_STAT_REG		_S_IFREG
-#define QT_STAT_DIR		_S_IFDIR
-#define QT_STAT_MASK		_S_IFMT
-#if defined(_S_IFLNK)
-#  define QT_STAT_LNK		_S_IFLNK
-#endif
-#define QT_FILENO		_fileno
-#define QT_OPEN			::_open
-#define QT_CLOSE		::_close
-#ifdef QT_LARGEFILE_SUPPORT
-#define QT_LSEEK		::_lseeki64
-#ifndef UNICODE
-#define QT_TSTAT		::_stati64
-#else
-#define QT_TSTAT		::_wstati64
-#endif
-#else
-#define QT_LSEEK		::_lseek
-#ifndef UNICODE
-#define QT_TSTAT		::_stat
-#else
-#define QT_TSTAT		::_wstat
-#endif
-#endif
-#define QT_READ			::_read
-#define QT_WRITE		::_write
-#define QT_ACCESS		::_access
-#define QT_GETCWD		::_getcwd
-#define QT_CHDIR		::_chdir
-#define QT_MKDIR		::_mkdir
-#define QT_RMDIR		::_rmdir
-#define QT_OPEN_LARGEFILE       0
-#define QT_OPEN_RDONLY		_O_RDONLY
-#define QT_OPEN_WRONLY		_O_WRONLY
-#define QT_OPEN_RDWR		_O_RDWR
-#define QT_OPEN_CREAT		_O_CREAT
-#define QT_OPEN_TRUNC		_O_TRUNC
-#define QT_OPEN_APPEND		_O_APPEND
-#if defined(O_TEXT)
-# define QT_OPEN_TEXT		_O_TEXT
-# define QT_OPEN_BINARY		_O_BINARY
-#endif
-
-#define QT_FOPEN                ::fopen
-#ifdef QT_LARGEFILE_SUPPORT
-#define QT_FSEEK                ::fseeko64
-#define QT_FTELL                ::ftello64
-#else
-#define QT_FSEEK                ::fseek
-#define QT_FTELL                ::ftell
-#endif
-#define QT_FGETPOS              ::fgetpos
-#define QT_FSETPOS              ::fsetpos
-#define QT_FPOS_T               fpos_t
-#ifdef QT_LARGEFILE_SUPPORT
-#define QT_OFF_T                off64_t
-#else
-#define QT_OFF_T                long
-#endif
-
-#define QT_SIGNAL_ARGS		int
-
-#define QT_VSNPRINTF		::_vsnprintf
-#define QT_SNPRINTF		::_snprintf
-
-# define F_OK	0
-# define X_OK	1
-# define W_OK	2
-# define R_OK	4
-
-
-#endif // QPLATFORMDEFS_H
--- a/mkspecs/win32-icc/qmake.conf	Fri Sep 17 08:34:18 2010 +0300
+++ b/mkspecs/win32-icc/qmake.conf	Mon Oct 04 01:19:32 2010 +0300
@@ -50,7 +50,7 @@
 QMAKE_RUN_CXX_IMP	= $(CXX) -c $(CXXFLAGS) $(INCPATH) -Fo$@ $<
 QMAKE_RUN_CXX_IMP_BATCH	= $(CXX) -c $(CXXFLAGS) $(INCPATH) -Fo$@ @<<
 
-QMAKE_LINK		= link
+QMAKE_LINK		= xilink
 QMAKE_LFLAGS		= /NOLOGO
 QMAKE_LFLAGS_RELEASE	=
 QMAKE_LFLAGS_DEBUG	= /DEBUG
@@ -72,7 +72,7 @@
 QMAKE_IDC		= $$[QT_INSTALL_BINS]\\idc.exe
 
 QMAKE_IDL		= midl
-QMAKE_LIB		= lib /NOLOGO
+QMAKE_LIB		= xilib /NOLOGO
 QMAKE_RC		= rc
 
 QMAKE_ZIP		= zip -r -9
--- a/mkspecs/win32-msvc2008/qmake.conf	Fri Sep 17 08:34:18 2010 +0300
+++ b/mkspecs/win32-msvc2008/qmake.conf	Mon Oct 04 01:19:32 2010 +0300
@@ -23,6 +23,7 @@
 QMAKE_CFLAGS_DEBUG      = -Zi -MDd
 QMAKE_CFLAGS_YACC       =
 QMAKE_CFLAGS_LTCG       = -GL
+QMAKE_CFLAGS_MP         = -MP
 
 QMAKE_CXX               = $$QMAKE_CC
 QMAKE_CXXFLAGS          = $$QMAKE_CFLAGS
@@ -32,6 +33,7 @@
 QMAKE_CXXFLAGS_DEBUG    = $$QMAKE_CFLAGS_DEBUG
 QMAKE_CXXFLAGS_YACC     = $$QMAKE_CFLAGS_YACC
 QMAKE_CXXFLAGS_LTCG     = $$QMAKE_CFLAGS_LTCG
+QMAKE_CXXFLAGS_MP       = $$QMAKE_CFLAGS_MP
 QMAKE_CXXFLAGS_STL_ON   = -EHsc
 QMAKE_CXXFLAGS_STL_OFF  =
 QMAKE_CXXFLAGS_RTTI_ON  = -GR
--- a/mkspecs/win32-msvc2010/qmake.conf	Fri Sep 17 08:34:18 2010 +0300
+++ b/mkspecs/win32-msvc2010/qmake.conf	Mon Oct 04 01:19:32 2010 +0300
@@ -23,6 +23,7 @@
 QMAKE_CFLAGS_DEBUG      = -Zi -MDd
 QMAKE_CFLAGS_YACC       =
 QMAKE_CFLAGS_LTCG       = -GL
+QMAKE_CFLAGS_MP         = -MP
 
 QMAKE_CXX               = $$QMAKE_CC
 QMAKE_CXXFLAGS          = $$QMAKE_CFLAGS
@@ -32,6 +33,7 @@
 QMAKE_CXXFLAGS_DEBUG    = $$QMAKE_CFLAGS_DEBUG
 QMAKE_CXXFLAGS_YACC     = $$QMAKE_CFLAGS_YACC
 QMAKE_CXXFLAGS_LTCG     = $$QMAKE_CFLAGS_LTCG
+QMAKE_CXXFLAGS_MP       = $$QMAKE_CFLAGS_MP
 QMAKE_CXXFLAGS_STL_ON   = -EHsc
 QMAKE_CXXFLAGS_STL_OFF  =
 QMAKE_CXXFLAGS_RTTI_ON  = -GR
--- a/projects.pro	Fri Sep 17 08:34:18 2010 +0300
+++ b/projects.pro	Mon Oct 04 01:19:32 2010 +0300
@@ -40,8 +40,6 @@
        SUBDIRS += examples
     } else:isEqual(PROJECT, demos) {
        SUBDIRS += demos
-    } else:isEqual(PROJECT, tests) {
-       SUBDIRS += tests
     } else:isEqual(PROJECT, libs) {
        include(src/src.pro)
     } else:isEqual(PROJECT, docs) {
@@ -161,11 +159,13 @@
 
 #mkspecs
 mkspecs.path=$$[QT_INSTALL_DATA]/mkspecs
-mkspecs.files=$$QT_BUILD_TREE/mkspecs/qconfig.pri $$QT_SOURCE_TREE/mkspecs/*
+mkspecs.files=$$QT_BUILD_TREE/mkspecs/qconfig.pri $$files($$QT_SOURCE_TREE/mkspecs/*)
+mkspecs.files -= $$QT_SOURCE_TREE/mkspecs/modules
 unix { 
    DEFAULT_QMAKESPEC = $$QMAKESPEC
    DEFAULT_QMAKESPEC ~= s,^.*mkspecs/,,g
    mkspecs.commands += $(DEL_FILE) $(INSTALL_ROOT)$$mkspecs.path/default; $(SYMLINK) $$DEFAULT_QMAKESPEC $(INSTALL_ROOT)$$mkspecs.path/default
+   mkspecs.files -= $$QT_SOURCE_TREE/mkspecs/default
 }
 win32:!equals(QT_BUILD_TREE, $$QT_SOURCE_TREE) {
     # When shadow building on Windows, the default mkspec only exists in the build tree.
--- a/qmake/Makefile.win32	Fri Sep 17 08:34:18 2010 +0300
+++ b/qmake/Makefile.win32	Mon Oct 04 01:19:32 2010 +0300
@@ -23,11 +23,14 @@
 # specific stuff for VS2005
 #
 !if "$(QMAKESPEC)" == "win32-msvc2005"
-CFLAGS      = /Zc:wchar_t-
+CFLAGS_EXTRA      = /Zc:wchar_t-
+!elseif "$(QMAKESPEC)" == "win32-msvc2008" || "$(QMAKESPEC)" == "win32-msvc2010"
+CFLAGS_EXTRA      = /MP
 !endif
 
-CFLAGS	     = -c -Fo$@ \
+CFLAGS_BARE = -c -Fo./ \
               -W3 -nologo -O2 \
+              $(CFLAGS_EXTRA) \
               -I. -Igenerators -Igenerators\unix -Igenerators\win32 -Igenerators\mac -Igenerators\symbian \
               -I$(BUILD_PATH)\include -I$(BUILD_PATH)\include\QtCore \
               -I$(SOURCE_PATH)\include -I$(SOURCE_PATH)\include\QtCore \
@@ -37,38 +40,19 @@
               -I$(SOURCE_PATH)\tools\shared \
               -DQT_NO_TEXTCODEC -DQT_NO_UNICODETABLES -DQT_LITE_COMPONENT -DQT_NODLL -DQT_NO_STL \
               -DQT_NO_COMPRESS -DUNICODE -DHAVE_QCONFIG_CPP -DQT_BUILD_QMAKE -DQT_NO_THREAD \
-              -DQT_NO_QOBJECT -DQT_NO_GEOM_VARIANT -DQT_NO_DATASTREAM -DQT_NO_PCRE -DQT_BOOTSTRAPPED \
-              $(CFLAGS)
-CXXFLAGS    = $(CFLAGS)
+              -DQT_NO_QOBJECT -DQT_NO_GEOM_VARIANT -DQT_NO_DATASTREAM -DQT_NO_PCRE -DQT_BOOTSTRAPPED
+CFLAGS   = -Yuqmake_pch.h -FIqmake_pch.h -Fpqmake_pch.pch $(CFLAGS_BARE) $(CFLAGS)
+
+CXXFLAGS_BARE = $(CFLAGS_BARE)
+CXXFLAGS = $(CFLAGS)
+
 LFLAGS	    =
 LIBS	    = ole32.lib advapi32.lib
 LINKQMAKE   = $(LINK) $(LFLAGS) -OUT:qmake.exe $(OBJS) $(QTOBJS) $(LIBS)
 ADDCLEAN    = vc60.pdb vc70.pdb qmake.pdb qmake.ilk
+
 !ELSE
-
-#
-# specific stuff for Borland make
-#
-!if !$d(BCB)
-BCB = $(MAKEDIR)\..
-!endif
-CXX	    = bcc32
-CFLAGS	    = -c -o$@ \
-	-tWR -w -w-hid -w-use -O1 \
-	-I. -Igenerators -Igenerators\unix -Igenerators\win32 -Igenerators\mac -Igenerators\symbian \
-	-I$(BUILD_PATH)\include -I$(BUILD_PATH)\include\QtCore \
-	-I$(SOURCE_PATH)\include -I$(SOURCE_PATH)\include\QtCore \
-	-I$(BUILD_PATH)\src\corelib\global \
-        -I$(SOURCE_PATH)\mkspecs\$(QMAKESPEC)  \
-    -I$(SOURCE_PATH)\tools\shared \
-	-DQT_NO_TEXTCODEC -DQT_NO_UNICODETABLES -DQT_LITE_COMPONENT -DQT_NODLL -DQT_NO_STL \
-	-DQT_NO_COMPRESS -DUNICODE -DHAVE_QCONFIG_CPP -DQT_BUILD_QMAKE -DQT_NO_THREAD \
-	-DQT_NO_QOBJECT -DQT_NO_GEOM_VARIANT
-CXXFLAGS    = $(CFLAGS)
-LFLAGS	    = -L$(BCB)\lib -c -x -Gn -ap -Tpe c0x32.obj
-LIBS	    = import32.lib cw32i.lib
-LINKQMAKE   = ilink32 $(LFLAGS) $(OBJS) $(QTOBJS), qmake.exe,,$(LIBS)
-ADDCLEAN    = qmake.tds
+!ERROR Unsupported compiler for this Makefile
 !ENDIF
 
 #qmake code
@@ -133,81 +117,14 @@
 first all: qmake.exe
 
 qmake.exe: $(OBJS) $(QTOBJS)
-	$(LINKQMAKE)
+	$(LINKQMAKE) qmake_pch.obj
 	-copy qmake.exe $(BUILD_PATH)\bin\qmake.exe
 
 clean::
-	-del qbitarray.obj
-	-del qbuffer.obj
-	-del qcryptographichash.obj
-	-del qlinkedlist.obj
-	-del qfsfileengine.obj
-	-del qfsfileengine_iterator.obj
-	-del qbytearray.obj
-	-del qvsnprintf.obj
-	-del qbytearraymatcher.obj
-	-del qdatetime.obj
-	-del qdir.obj
-	-del qdiriterator.obj
-	-del qfile.obj
-	-del qtemporaryfile.obj
-	-del qabstractfileengine.obj
-	-del qfsfileengine_win.obj
-	-del qfsfileengine_iterator_win.obj
-	-del qfileinfo.obj
-	-del qglobal.obj
-	-del qhash.obj
-	-del qiodevice.obj
-	-del qlist.obj
-	-del qlocale.obj
-	-del qmalloc.obj
-	-del qmap.obj
-	-del qregexp.obj
-	-del qtextcodec.obj
-	-del qutfcodec.obj
-	-del qstring.obj
-	-del qstringlist.obj
-	-del qtextstream.obj
-	-del qdatastream.obj
-	-del quuid.obj
-	-del qvector.obj
-	-del qsettings.obj
-	-del qlibraryinfo.obj
-	-del qvariant.obj
-	-del qurl.obj
-	-del qsettings_win.obj
-	-del qmetatype.obj
-	-del project.obj
-	-del main.obj
-	-del makefile.obj
-	-del unixmake.obj
-	-del unixmake2.obj
-	-del mingw_make.obj
-	-del option.obj
-	-del winmakefile.obj
-	-del projectgenerator.obj
-	-del property.obj
-	-del meta.obj
-	-del makefiledeps.obj
-	-del metamakefile.obj
-	-del xmloutput.obj
-	-del borland_bmake.obj
-	-del msvc_nmake.obj
-	-del msvc_vcproj.obj
-	-del msvc_vcxproj.obj
-	-del msvc_objectmodel.obj
-	-del msbuild_objectmodel.obj
-	-del symmake.obj
-	-del symmake_abld.obj
-	-del symmake_sbsv2.obj
-	-del symbiancommon.obj
-	-del initprojectdeploy_symbian.obj
-	-del registry.obj
-	-del epocroot.obj
-	-del pbuilder_pbx.obj
-	-del qxmlstream.obj
-	-del qxmlutils.obj
-	-del qnumeric.obj
+	-del $(QTOBJS)
+	-del $(OBJS)
+	-del qmake_pch.obj
+	-del qmake_pch.pch
 	-del vc60.pdb
 	-del vc70.pdb
 	-del qmake.pdb
@@ -229,227 +146,57 @@
 .cxx.obj:
 	$(CXX) $(CXXFLAGS) $<
 
-qsettings_win.obj: $(SOURCE_PATH)\src\corelib\io\qsettings_win.cpp
-	$(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\corelib\io\qsettings_win.cpp
-
-qsettings.obj: $(SOURCE_PATH)\src\corelib\io\qsettings.cpp
-	$(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\corelib\io\qsettings.cpp
-
-qlibraryinfo.obj: $(SOURCE_PATH)\src\corelib\global\qlibraryinfo.cpp
-	$(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\corelib\global\qlibraryinfo.cpp
-
-qnumeric.obj: $(SOURCE_PATH)\src\corelib\global\qnumeric.cpp
-	$(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\corelib\global\qnumeric.cpp
+$(OBJS): qmake_pch.obj
 
-qvariant.obj: $(SOURCE_PATH)\src\corelib\kernel\qvariant.cpp
-	$(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\corelib\kernel\qvariant.cpp
-
-qurl.obj: $(SOURCE_PATH)\src\corelib\io\qurl.cpp
-	$(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\corelib\io\qurl.cpp
-
-qtextstream.obj: $(SOURCE_PATH)\src\corelib\io\qtextstream.cpp
-	$(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\corelib\io\qtextstream.cpp
-
-qdatastream.obj: $(SOURCE_PATH)\src\corelib\io\qdatastream.cpp
-	$(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\corelib\io\qdatastream.cpp
-
-qiodevice.obj: $(SOURCE_PATH)\src\corelib\io\qiodevice.cpp
-	$(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\corelib\io\qiodevice.cpp
+$(QTOBJS): qmake_pch.obj
 
-qmalloc.obj: $(SOURCE_PATH)\src\corelib\global\qmalloc.cpp
-	$(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\corelib\global\qmalloc.cpp
-
-qglobal.obj: $(SOURCE_PATH)\src\corelib\global\qglobal.cpp
-	$(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\corelib\global\qglobal.cpp
-
-qhash.obj: $(SOURCE_PATH)\src\corelib\tools\qhash.cpp
-	$(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\corelib\tools\qhash.cpp
-
-qbytearray.obj: $(SOURCE_PATH)\src\corelib\tools\qbytearray.cpp
-	$(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\corelib\tools\qbytearray.cpp
+qmake_pch.obj:
+	$(CXX) $(CXXFLAGS_BARE) -c -Yc -Fpqmake_pch.pch -TP qmake_pch.h
 
-qcryptographichash.obj: $(SOURCE_PATH)\src\corelib\tools\qcryptographichash.cpp
-	$(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\corelib\tools\qcryptographichash.cpp
-
-qvsnprintf.obj: $(SOURCE_PATH)\src\corelib\tools\qvsnprintf.cpp
-	$(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\corelib\tools\qvsnprintf.cpp
-
-qbytearraymatcher.obj: $(SOURCE_PATH)\src\corelib\tools\qbytearraymatcher.cpp
-	$(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\corelib\tools\qbytearraymatcher.cpp
-
-qchar.obj: $(SOURCE_PATH)\src\corelib\tools\qchar.cpp
-	$(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\corelib\tools\qchar.cpp
-
-qutfcodec.obj: $(SOURCE_PATH)\src\corelib\codecs\qutfcodec.cpp
-	$(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\corelib\codecs\qutfcodec.cpp
+{$(SOURCE_PATH)\qmake\generators\mac}.cpp{}.obj::
+	$(CXX) $(CXXFLAGS) $<
 
-qstring.obj: $(SOURCE_PATH)\src\corelib\tools\qstring.cpp
-	$(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\corelib\tools\qstring.cpp
-
-qstringmatcher.obj: $(SOURCE_PATH)\src\corelib\tools\qstringmatcher.cpp
-	$(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\corelib\tools\qstringmatcher.cpp
-
-qlocale.obj: $(SOURCE_PATH)\src\corelib\tools\qlocale.cpp
-	$(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\corelib\tools\qlocale.cpp
-
-quuid.obj: $(SOURCE_PATH)\src\corelib\plugin\quuid.cpp
-	$(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\corelib\plugin\quuid.cpp
+{$(SOURCE_PATH)\qmake\generators\symbian}.cpp{}.obj::
+	$(CXX) $(CXXFLAGS) $<
 
-qbuffer.obj: $(SOURCE_PATH)\src\corelib\io\qbuffer.cpp
-	$(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\corelib\io\qbuffer.cpp
-
-qlist.obj: $(SOURCE_PATH)\src\corelib\tools\qlist.cpp
-	$(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\corelib\tools\qlist.cpp
-
-qlinkedlist.obj: $(SOURCE_PATH)\src\corelib\tools\qlinkedlist.cpp
-	$(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\corelib\tools\qlinkedlist.cpp
-
-qfile.obj: $(SOURCE_PATH)\src\corelib\io\qfile.cpp
-	$(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\corelib\io\qfile.cpp
-
-qtemporaryfile.obj: $(SOURCE_PATH)\src\corelib\io\qtemporaryfile.cpp
-	$(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\corelib\io\qtemporaryfile.cpp
+{$(SOURCE_PATH)\qmake\generators\unix}.cpp{}.obj::
+	$(CXX) $(CXXFLAGS) $<
 
-qfsfileengine_win.obj: $(SOURCE_PATH)\src\corelib\io\qfsfileengine_win.cpp
-	$(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\corelib\io\qfsfileengine_win.cpp
-
-qfsfileengine_iterator_win.obj: $(SOURCE_PATH)\src\corelib\io\qfsfileengine_iterator_win.cpp
-	$(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\corelib\io\qfsfileengine_iterator_win.cpp
-
-qfsfileengine.obj: $(SOURCE_PATH)\src\corelib\io\qfsfileengine.cpp
-	$(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\corelib\io\qfsfileengine.cpp
-
-qfsfileengine_iterator.obj: $(SOURCE_PATH)\src\corelib\io\qfsfileengine_iterator.cpp
-	$(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\corelib\io\qfsfileengine_iterator.cpp
-
-qabstractfileengine.obj: $(SOURCE_PATH)\src\corelib\io\qabstractfileengine.cpp
-	$(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\corelib\io\qabstractfileengine.cpp
+{$(SOURCE_PATH)\qmake\generators\win32}.cpp{}.obj::
+	$(CXX) $(CXXFLAGS) $<
 
-qtextcodec.obj: $(SOURCE_PATH)\src\corelib\codecs\qtextcodec.cpp
-	$(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\corelib\codecs\qtextcodec.cpp
-
-qregexp.obj: $(SOURCE_PATH)\src\corelib\tools\qregexp.cpp
-	$(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\corelib\tools\qregexp.cpp
+{$(SOURCE_PATH)\qmake\generators}.cpp{}.obj::
+	$(CXX) $(CXXFLAGS) $<
 
-qvector.obj: $(SOURCE_PATH)\src\corelib\tools\qvector.cpp
-	$(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\corelib\tools\qvector.cpp
-
-qbitarray.obj: $(SOURCE_PATH)\src\corelib\tools\qbitarray.cpp
-	$(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\corelib\tools\qbitarray.cpp
-
-qdir.obj: $(SOURCE_PATH)\src\corelib\io\qdir.cpp
-	$(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\corelib\io\qdir.cpp
+{$(SOURCE_PATH)\qmake}.cpp{}.obj::
+	$(CXX) $(CXXFLAGS) $<
 
-qdiriterator.obj: $(SOURCE_PATH)\src\corelib\io\qdiriterator.cpp
-	$(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\corelib\io\qdiriterator.cpp
-
-qmetatype.obj: $(SOURCE_PATH)\src\corelib\kernel\qmetatype.cpp
-	$(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\corelib\kernel\qmetatype.cpp
-
-qfileinfo.obj: $(SOURCE_PATH)\src\corelib\io\qfileinfo.cpp
-	$(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\corelib\io\qfileinfo.cpp
-
-qdatetime.obj: $(SOURCE_PATH)\src\corelib\tools\qdatetime.cpp
-	$(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\corelib\tools\qdatetime.cpp
+{$(SOURCE_PATH)\src\3rdparty\md5}.cpp{}.obj::
+	$(CXX) $(CXXFLAGS) $<
 
-qstringlist.obj: $(SOURCE_PATH)\src\corelib\tools\qstringlist.cpp
-	$(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\corelib\tools\qstringlist.cpp
-
-qmap.obj: $(SOURCE_PATH)\src\corelib\tools\qmap.cpp
-	$(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\corelib\tools\qmap.cpp
-
-qunicodetables.obj: $(SOURCE_PATH)\src\corelib\tools\qunicodetables.cpp
-	$(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\corelib\tools\qunicodetables.cpp
-
-makefile.obj: $(SOURCE_PATH)/qmake/generators\makefile.cpp
-	$(CXX) $(CXXFLAGS) generators\makefile.cpp
-
-unixmake.obj: $(SOURCE_PATH)/qmake/generators\unix\unixmake.cpp
-	$(CXX) $(CXXFLAGS) generators\unix\unixmake.cpp
+{$(SOURCE_PATH)\src\corelib\codecs}.cpp{}.obj::
+	$(CXX) $(CXXFLAGS) $<
 
-unixmake2.obj: $(SOURCE_PATH)/qmake/generators\unix\unixmake2.cpp
-	$(CXX) $(CXXFLAGS) generators\unix\unixmake2.cpp
-
-winmakefile.obj: $(SOURCE_PATH)/qmake/generators/win32/winmakefile.cpp
-	$(CXX) $(CXXFLAGS) generators/win32/winmakefile.cpp
-
-borland_bmake.obj: $(SOURCE_PATH)/qmake/generators/win32/borland_bmake.cpp
-	$(CXX) $(CXXFLAGS) generators/win32/borland_bmake.cpp
-
-mingw_make.obj: $(SOURCE_PATH)/qmake/generators/win32/mingw_make.cpp
-	$(CXX) $(CXXFLAGS) generators/win32/mingw_make.cpp
-
-msvc_nmake.obj: $(SOURCE_PATH)/qmake/generators/win32/msvc_nmake.cpp
-	$(CXX) $(CXXFLAGS) generators/win32/msvc_nmake.cpp
+{$(SOURCE_PATH)\src\corelib\global}.cpp{}.obj::
+	$(CXX) $(CXXFLAGS) $<
 
-msvc_vcproj.obj: $(SOURCE_PATH)/qmake/generators/win32/msvc_vcproj.cpp
-	$(CXX) $(CXXFLAGS) generators/win32/msvc_vcproj.cpp
-
-msvc_vcxproj.obj: $(SOURCE_PATH)/qmake/generators/win32/msvc_vcxproj.cpp
-	$(CXX) $(CXXFLAGS) generators/win32/msvc_vcxproj.cpp
+{$(SOURCE_PATH)\src\corelib\io}.cpp{}.obj::
+	$(CXX) $(CXXFLAGS) $<
 
-msvc_objectmodel.obj: $(SOURCE_PATH)/qmake/generators/win32/msvc_objectmodel.cpp
-	$(CXX) $(CXXFLAGS) generators/win32/msvc_objectmodel.cpp
-
-msbuild_objectmodel.obj: $(SOURCE_PATH)/qmake/generators/win32/msbuild_objectmodel.cpp
-	$(CXX) $(CXXFLAGS) generators/win32/msbuild_objectmodel.cpp
-
-symmake.obj: $(SOURCE_PATH)/qmake/generators/symbian/symmake.cpp
-	$(CXX) $(CXXFLAGS) generators/symbian/symmake.cpp
+{$(SOURCE_PATH)\src\corelib\kernel}.cpp{}.obj::
+	$(CXX) $(CXXFLAGS) $<
 
-symmake_abld.obj: $(SOURCE_PATH)/qmake/generators/symbian/symmake_abld.cpp
-	$(CXX) $(CXXFLAGS) generators/symbian/symmake_abld.cpp
-
-symmake_sbsv2.obj: $(SOURCE_PATH)/qmake/generators/symbian/symmake_sbsv2.cpp
-	$(CXX) $(CXXFLAGS) generators/symbian/symmake_sbsv2.cpp
-
-symbiancommon.obj: $(SOURCE_PATH)/qmake/generators/symbian/symbiancommon.cpp
-	$(CXX) $(CXXFLAGS) generators/symbian/symbiancommon.cpp
-
-initprojectdeploy_symbian.obj: $(SOURCE_PATH)/qmake/generators/symbian/initprojectdeploy_symbian.cpp
-	$(CXX) $(CXXFLAGS) generators/symbian/initprojectdeploy_symbian.cpp
+{$(SOURCE_PATH)\src\corelib\plugin}.cpp{}.obj::
+	$(CXX) $(CXXFLAGS) $<
 
-registry.obj: $(SOURCE_PATH)/tools/shared/windows/registry.cpp
-	$(CXX) $(CXXFLAGS) $(SOURCE_PATH)/tools/shared/windows/registry.cpp
-
-epocroot.obj: $(SOURCE_PATH)/tools/shared/symbian/epocroot.cpp
-	$(CXX) $(CXXFLAGS) $(SOURCE_PATH)/tools/shared/symbian/epocroot.cpp
-
-md5.obj: $(SOURCE_PATH)\src\3rdparty\md5\md5.cpp
-	$(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\3rdparty\md5\md5.cpp
-
-project.obj: $(SOURCE_PATH)/qmake/project.cpp $(SOURCE_PATH)/qmake/project.h $(SOURCE_PATH)/qmake/option.h
-	$(CXX) $(CXXFLAGS) project.cpp
-
-meta.obj: $(SOURCE_PATH)/qmake/meta.cpp $(SOURCE_PATH)/qmake/project.h $(SOURCE_PATH)/qmake/option.h
-	$(CXX) $(CXXFLAGS) meta.cpp
+{$(SOURCE_PATH)\src\corelib\tools}.cpp{}.obj::
+	$(CXX) $(CXXFLAGS) $<
 
-main.obj: $(SOURCE_PATH)/qmake/main.cpp $(SOURCE_PATH)/qmake/project.h
-	$(CXX) $(CXXFLAGS) main.cpp
-
-option.obj: $(SOURCE_PATH)/qmake/option.cpp $(SOURCE_PATH)/qmake/option.h
-	$(CXX) $(CXXFLAGS) option.cpp
-
-property.obj: $(SOURCE_PATH)/qmake/property.cpp $(SOURCE_PATH)/qmake/project.h $(SOURCE_PATH)/qmake/option.h
-	$(CXX) $(CXXFLAGS) property.cpp
-
-projectgenerator.obj: $(SOURCE_PATH)/qmake/generators/projectgenerator.cpp
-	$(CXX) $(CXXFLAGS) generators/projectgenerator.cpp
-
-pbuilder_pbx.obj: $(SOURCE_PATH)/qmake/generators/mac/pbuilder_pbx.cpp
-	$(CXX) $(CXXFLAGS) generators/mac/pbuilder_pbx.cpp
+{$(SOURCE_PATH)\src\corelib\xml}.cpp{}.obj::
+	$(CXX) $(CXXFLAGS) $<
 
-makefiledeps.obj: $(SOURCE_PATH)/qmake/generators/makefiledeps.cpp
-	$(CXX) $(CXXFLAGS) generators/makefiledeps.cpp
-
-metamakefile.obj: $(SOURCE_PATH)/qmake/generators/metamakefile.cpp
-	$(CXX) $(CXXFLAGS) generators/metamakefile.cpp
+{$(SOURCE_PATH)\tools\shared\symbian}.cpp{}.obj::
+	$(CXX) $(CXXFLAGS) $<
 
-xmloutput.obj: $(SOURCE_PATH)/qmake/generators/xmloutput.cpp
-	$(CXX) $(CXXFLAGS) generators/xmloutput.cpp
-
-qxmlstream.obj: $(SOURCE_PATH)\src\corelib\xml\qxmlstream.cpp
-	$(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\corelib\xml\qxmlstream.cpp
-
-qxmlutils.obj: $(SOURCE_PATH)\src\corelib\xml\qxmlutils.cpp
-	$(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\corelib\xml\qxmlutils.cpp
+{$(SOURCE_PATH)\tools\shared\windows}.cpp{}.obj::
+	$(CXX) $(CXXFLAGS) $<
--- a/qmake/Makefile.win32-g++-symbian	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,327 +0,0 @@
-ifeq "$(SOURCE_PATH)" ""
-SOURCE_PATH = ..
-endif
-
-#cmd version
-
-ifeq "$(BUILD_PATH)" ""
-BUILD_PATH = ..
-endif
-
-LOCAL_EPOC_ROOT:=$(subst //,/,$(subst \,/,$(EPOCROOT))/)
-
-#
-# specific stuff for mingw g++ make
-#
-LD		= $(LOCAL_EPOC_ROOT)epoc32/gcc_mingw/bin/g++
-CXX		= $(LOCAL_EPOC_ROOT)epoc32/gcc_mingw/bin/g++
-CFLAGS		=	-c -o$@	-O2 \
-		-I. -Igenerators -Igenerators/unix \
-		-Igenerators/win32 -Igenerators/mac \
-		-Igenerators/symbian \
-		-I$(BUILD_PATH)/include -I$(BUILD_PATH)/include/QtCore \
-		-I$(SOURCE_PATH)/include -I$(SOURCE_PATH)/include/QtCore \
-		-I$(BUILD_PATH)/src/corelib/global \
-		-I$(BUILD_PATH)/src/corelib/xml \
-		-I$(SOURCE_PATH)/mkspecs/win32-g++  \
-		-I$(SOURCE_PATH)/tools/shared \
-		-DQT_NO_TEXTCODEC -DQT_NO_UNICODETABLES -DQT_LITE_COMPONENT -DQT_NO_PCRE \
-		-DQT_NODLL -DQT_NO_STL -DQT_NO_COMPRESS -DUNICODE -DHAVE_QCONFIG_CPP \
-		-DQT_BUILD_QMAKE -DQT_NO_THREAD -DQT_NO_QOBJECT -DQT_NO_GEOM_VARIANT -DQT_NO_DATASTREAM \
-		-DQT_BOOTSTRAPPED
-CXXFLAGS	=	$(CFLAGS)
-LFLAGS		=
-LIBS		= -lole32 -luuid
-LINKQMAKE	= $(LD) $(LFLAGS) -o qmake.exe $(OBJS) $(QTOBJS) $(LIBS)
-ADDCLEAN	=
-
-
-#qmake code
-OBJS        = project.o main.o makefile.o unixmake.o unixmake2.o mingw_make.o \
-              option.o winmakefile.o projectgenerator.o property.o meta.o \
-              makefiledeps.o metamakefile.o xmloutput.o pbuilder_pbx.o \
-              borland_bmake.o msvc_nmake.o msvc_dsp.o msvc_vcproj.o \
-              msvc_objectmodel.o symmake.o initprojectdeploy_symbian.o \
-              registry.o \
-              epocroot.o \
-              symmake_abld.o symmake_sbsv2.o
-
-ifdef QMAKE_OPENSOURCE_EDITION
-CFLAGS      += -DQMAKE_OPENSOURCE_EDITION
-endif
-
-#qt code
-QTOBJS= \
-	qbitarray.o \
-	qbuffer.o \
-	qbytearray.o \
-	qcryptographichash.o \
-	qvsnprintf.o \
-	qbytearraymatcher.o \
-	qconfig.o \
-	qdatetime.o \
-	qdir.o \
-	qdiriterator.o \
-	qfile.o \
-	qtemporaryfile.o \
-	qfileinfo.o \
-	qabstractfileengine.o \
-	qfsfileengine.o \
-	qfsfileengine_iterator.o \
-	qfsfileengine_win.o \
-	qfsfileengine_iterator_win.o \
-	qglobal.o \
-	qhash.o \
-	qiodevice.o \
-	qlibraryinfo.o \
-	qlist.o \
-	qlinkedlist.o \
-	qlocale.o \
-	qmalloc.o \
-	qmap.o \
-	qregexp.o \
-	qtextcodec.o \
-	qutfcodec.o \
-	qstring.o \
-	qstringlist.o \
-	qtextstream.o \
-	quuid.o \
-	qvector.o \
-	qurl.o \
-	qsettings.o \
-	qsettings_win.o \
-	qvariant.o \
-	qmetatype.o \
-	qxmlstream.o \
-	qxmlutils.o \
-	qnumeric.o
-
-
-qmake.exe: $(OBJS) $(QTOBJS)
-	$(LINKQMAKE)
-	-cmd.exe /c copy qmake.exe $(BUILD_PATH)\bin\qmake.exe
-
-Makefile: Makefile.win32-g++
-	@echo "Out of date, please rerun configure"
-
-clean::
-	-del $(OBJS) $(QTOBJS) $(ADDCLEAN)
-
-distclean:: clean
-	-del qmake
-
-.c.o:
-	$(CXX) $(CFLAGS) $<
-
-.cpp.o:
-	$(CXX) $(CXXFLAGS) $<
-
-qconfig.o: $(BUILD_PATH)/src/corelib/global/qconfig.cpp
-	$(CXX) $(CXXFLAGS) $(BUILD_PATH)/src/corelib/global/qconfig.cpp
-
-qsettings_win.o: $(SOURCE_PATH)/src/corelib/io/qsettings_win.cpp
-	$(CXX) $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/io/qsettings_win.cpp
-
-qsettings.o: $(SOURCE_PATH)/src/corelib/io/qsettings.cpp
-	$(CXX) $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/io/qsettings.cpp
-
-qvariant.o: $(SOURCE_PATH)/src/corelib/kernel/qvariant.cpp
-	$(CXX) $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/kernel/qvariant.cpp
-
-qurl.o: $(SOURCE_PATH)/src/corelib/io/qurl.cpp
-	$(CXX) $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/io/qurl.cpp
-
-qtextstream.o: $(SOURCE_PATH)/src/corelib/io/qtextstream.cpp
-	$(CXX) $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/io/qtextstream.cpp
-
-qdatastream.o: $(SOURCE_PATH)/src/corelib/io/qdatastream.cpp
-	$(CXX) $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/io/qdatastream.cpp
-
-qiodevice.o: $(SOURCE_PATH)/src/corelib/io/qiodevice.cpp
-	$(CXX) $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/io/qiodevice.cpp
-
-qlibraryinfo.o: $(SOURCE_PATH)/src/corelib/global/qlibraryinfo.cpp
-	$(CXX) $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/global/qlibraryinfo.cpp
-
-qnumeric.o: $(SOURCE_PATH)/src/corelib/global/qnumeric.cpp
-	$(CXX) $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/global/qnumeric.cpp
-
-qmalloc.o: $(SOURCE_PATH)/src/corelib/global/qmalloc.cpp
-	$(CXX) $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/global/qmalloc.cpp
-
-qglobal.o: $(SOURCE_PATH)/src/corelib/global/qglobal.cpp
-	$(CXX) $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/global/qglobal.cpp
-
-qhash.o: $(SOURCE_PATH)/src/corelib/tools/qhash.cpp
-	$(CXX) $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/tools/qhash.cpp
-
-qbytearray.o: $(SOURCE_PATH)/src/corelib/tools/qbytearray.cpp
-	$(CXX) $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/tools/qbytearray.cpp
-
-qcryptographichash.o: $(SOURCE_PATH)/src/corelib/tools/qcryptographichash.cpp
-	$(CXX) $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/tools/qcryptographichash.cpp
-
-qvsnprintf.o: $(SOURCE_PATH)/src/corelib/tools/qvsnprintf.cpp
-	$(CXX) $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/tools/qvsnprintf.cpp
-
-qbytearraymatcher.o: $(SOURCE_PATH)/src/corelib/tools/qbytearraymatcher.cpp
-	$(CXX) $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/tools/qbytearraymatcher.cpp
-
-qutfcodec.o: $(SOURCE_PATH)/src/corelib/codecs/qutfcodec.cpp
-	$(CXX) $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/codecs/qutfcodec.cpp
-
-qstring.o: $(SOURCE_PATH)/src/corelib/tools/qstring.cpp
-	$(CXX) $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/tools/qstring.cpp
-
-qlocale.o: $(SOURCE_PATH)/src/corelib/tools/qlocale.cpp
-	$(CXX) $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/tools/qlocale.cpp
-
-quuid.o: $(SOURCE_PATH)/src/corelib/plugin/quuid.cpp
-	$(CXX) $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/plugin/quuid.cpp
-
-qbuffer.o: $(SOURCE_PATH)/src/corelib/io/qbuffer.cpp
-	$(CXX) $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/io/qbuffer.cpp
-
-qlist.o: $(SOURCE_PATH)/src/corelib/tools/qlist.cpp
-	$(CXX) $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/tools/qlist.cpp
-
-qlinkedlist.o: $(SOURCE_PATH)/src/corelib/tools/qlinkedlist.cpp
-	$(CXX) $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/tools/qlinkedlist.cpp
-
-qfile.o: $(SOURCE_PATH)/src/corelib/io/qfile.cpp
-	$(CXX) $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/io/qfile.cpp
-
-qtemporaryfile.o: $(SOURCE_PATH)/src/corelib/io/qtemporaryfile.cpp
-	$(CXX) $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/io/qtemporaryfile.cpp
-
-qabstractfileengine.o: $(SOURCE_PATH)/src/corelib/io/qabstractfileengine.cpp
-	$(CXX) $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/io/qabstractfileengine.cpp
-
-qfsfileengine_win.o: $(SOURCE_PATH)/src/corelib/io/qfsfileengine_win.cpp
-	$(CXX) $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/io/qfsfileengine_win.cpp
-
-qfsfileengine_iterator_win.o: $(SOURCE_PATH)/src/corelib/io/qfsfileengine_iterator_win.cpp
-	$(CXX) $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/io/qfsfileengine_iterator_win.cpp
-
-qfsfileengine.o: $(SOURCE_PATH)/src/corelib/io/qfsfileengine.cpp
-	$(CXX) $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/io/qfsfileengine.cpp
-
-qfsfileengine_iterator.o: $(SOURCE_PATH)/src/corelib/io/qfsfileengine_iterator.cpp
-	$(CXX) $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/io/qfsfileengine_iterator.cpp
-
-qtextcodec.o: $(SOURCE_PATH)/src/corelib/codecs/qtextcodec.cpp
-	$(CXX) $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/codecs/qtextcodec.cpp
-
-qregexp.o: $(SOURCE_PATH)/src/corelib/tools/qregexp.cpp
-	$(CXX) $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/tools/qregexp.cpp
-
-qvector.o: $(SOURCE_PATH)/src/corelib/tools/qvector.cpp
-	$(CXX) $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/tools/qvector.cpp
-
-qbitarray.o: $(SOURCE_PATH)/src/corelib/tools/qbitarray.cpp
-	$(CXX) $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/tools/qbitarray.cpp
-
-qdir.o: $(SOURCE_PATH)/src/corelib/io/qdir.cpp
-	$(CXX) $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/io/qdir.cpp
-
-qdiriterator.o: $(SOURCE_PATH)/src/corelib/io/qdiriterator.cpp
-	$(CXX) $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/io/qdiriterator.cpp
-
-qmetatype.o: $(SOURCE_PATH)/src/corelib/kernel/qmetatype.cpp
-	$(CXX) $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/kernel/qmetatype.cpp
-
-qfileinfo.o: $(SOURCE_PATH)/src/corelib/io/qfileinfo.cpp
-	$(CXX) $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/io/qfileinfo.cpp
-
-qdatetime.o: $(SOURCE_PATH)/src/corelib/tools/qdatetime.cpp
-	$(CXX) $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/tools/qdatetime.cpp
-
-qstringlist.o: $(SOURCE_PATH)/src/corelib/tools/qstringlist.cpp
-	$(CXX) $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/tools/qstringlist.cpp
-
-qmap.o: $(SOURCE_PATH)/src/corelib/tools/qmap.cpp
-	$(CXX) $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/tools/qmap.cpp
-
-makefile.o: $(SOURCE_PATH)/qmake/generators/makefile.cpp
-	$(CXX) $(CXXFLAGS) generators/makefile.cpp
-
-unixmake.o: $(SOURCE_PATH)/qmake/generators/unix/unixmake.cpp
-	$(CXX) $(CXXFLAGS) generators/unix/unixmake.cpp
-
-unixmake2.o: $(SOURCE_PATH)/qmake/generators/unix/unixmake2.cpp
-	$(CXX) $(CXXFLAGS) generators/unix/unixmake2.cpp
-
-winmakefile.o: $(SOURCE_PATH)/qmake/generators/win32/winmakefile.cpp
-	$(CXX) $(CXXFLAGS) generators/win32/winmakefile.cpp
-
-borland_bmake.o: $(SOURCE_PATH)/qmake/generators/win32/borland_bmake.cpp
-	$(CXX) $(CXXFLAGS) generators/win32/borland_bmake.cpp
-
-mingw_make.o: $(SOURCE_PATH)/qmake/generators/win32/mingw_make.cpp
-	$(CXX) $(CXXFLAGS) generators/win32/mingw_make.cpp
-
-msvc_nmake.o: $(SOURCE_PATH)/qmake/generators/win32/msvc_nmake.cpp
-	$(CXX) $(CXXFLAGS) generators/win32/msvc_nmake.cpp
-
-msvc_dsp.o: $(SOURCE_PATH)/qmake/generators/win32/msvc_dsp.cpp
-	$(CXX) $(CXXFLAGS) generators/win32/msvc_dsp.cpp
-
-msvc_vcproj.o: $(SOURCE_PATH)/qmake/generators/win32/msvc_vcproj.cpp
-	$(CXX) $(CXXFLAGS) generators/win32/msvc_vcproj.cpp
-
-msvc_objectmodel.o: $(SOURCE_PATH)/qmake/generators/win32/msvc_objectmodel.cpp
-	$(CXX) $(CXXFLAGS) generators/win32/msvc_objectmodel.cpp
-
-symmake.o: $(SOURCE_PATH)/qmake/generators/symbian/symmake.cpp
-	$(CXX) $(CXXFLAGS) generators/symbian/symmake.cpp
-
-symmake_abld.o: $(SOURCE_PATH)/qmake/generators/symbian/symmake_abld.cpp
-	$(CXX) $(CXXFLAGS) generators/symbian/symmake_abld.cpp
-
-symmake_sbsv2.o: $(SOURCE_PATH)/qmake/generators/symbian/symmake_sbsv2.cpp
-	$(CXX) $(CXXFLAGS) generators/symbian/symmake_sbsv2.cpp
-
-initprojectdeploy_symbian.o: $(SOURCE_PATH)/qmake/generators/symbian/initprojectdeploy_symbian.cpp
-	$(CXX) $(CXXFLAGS) generators/symbian/initprojectdeploy_symbian.cpp
-
-registry.o: $(SOURCE_PATH)/tools/shared/windows/registry.cpp
-	$(CXX) $(CXXFLAGS) $(SOURCE_PATH)/tools/shared/windows/registry.cpp
-
-epocroot.o: $(SOURCE_PATH)/tools/shared/symbian/epocroot.cpp
-	$(CXX) $(CXXFLAGS) $(SOURCE_PATH)/tools/shared/symbian/epocroot.cpp
-
-project.o: $(SOURCE_PATH)/qmake/project.cpp $(SOURCE_PATH)/qmake/project.h $(SOURCE_PATH)/qmake/option.h
-	$(CXX) $(CXXFLAGS) project.cpp
-
-meta.o: $(SOURCE_PATH)/qmake/meta.cpp $(SOURCE_PATH)/qmake/project.h $(SOURCE_PATH)/qmake/option.h
-	$(CXX) $(CXXFLAGS) meta.cpp
-
-main.o: $(SOURCE_PATH)/qmake/main.cpp $(SOURCE_PATH)/qmake/project.h
-	$(CXX) $(CXXFLAGS) main.cpp
-
-option.o: $(SOURCE_PATH)/qmake/option.cpp $(SOURCE_PATH)/qmake/option.h
-	$(CXX) $(CXXFLAGS) option.cpp
-
-property.o: $(SOURCE_PATH)/qmake/property.cpp $(SOURCE_PATH)/qmake/project.h $(SOURCE_PATH)/qmake/option.h
-	$(CXX) $(CXXFLAGS) property.cpp
-
-projectgenerator.o: $(SOURCE_PATH)/qmake/generators/projectgenerator.cpp
-	$(CXX) $(CXXFLAGS) generators/projectgenerator.cpp
-
-pbuilder_pbx.o: $(SOURCE_PATH)/qmake/generators/mac/pbuilder_pbx.cpp
-	$(CXX) $(CXXFLAGS) generators/mac/pbuilder_pbx.cpp
-
-makefiledeps.o: $(SOURCE_PATH)/qmake/generators/makefiledeps.cpp
-	$(CXX) $(CXXFLAGS) generators/makefiledeps.cpp
-
-metamakefile.o: $(SOURCE_PATH)/qmake/generators/metamakefile.cpp
-	$(CXX) $(CXXFLAGS) generators/metamakefile.cpp
-
-xmloutput.o: $(SOURCE_PATH)/qmake/generators/xmloutput.cpp
-	$(CXX) $(CXXFLAGS) generators/xmloutput.cpp
-
-qxmlstream.o: $(SOURCE_PATH)/src/corelib/xml/qxmlstream.cpp
-	$(CXX) $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/xml/qxmlstream.cpp
-
-qxmlutils.o: $(SOURCE_PATH)/src/corelib/xml/qxmlutils.cpp
-	$(CXX) $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/xml/qxmlutils.cpp
--- a/qmake/generators/makefile.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/qmake/generators/makefile.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -466,14 +466,37 @@
     if(!project->isEmpty("QMAKE_SUBSTITUTES")) {
         const QStringList &subs = v["QMAKE_SUBSTITUTES"];
         for(int i = 0; i < subs.size(); ++i) {
-            if(!subs.at(i).endsWith(".in")) {
-                warn_msg(WarnLogic, "Substitute '%s' does not end with '.in'",
-                         subs.at(i).toLatin1().constData());
-                continue;
+            QString inn = subs.at(i) + ".input", outn = subs.at(i) + ".output";
+            if (v.contains(inn) || v.contains(outn)) {
+                if (!v.contains(inn) || !v.contains(outn)) {
+                    warn_msg(WarnLogic, "Substitute '%s' has only one of .input and .output",
+                             subs.at(i).toLatin1().constData());
+                    continue;
+                }
+                const QStringList &tinn = v[inn], &toutn = v[outn];
+                if (tinn.length() != 1) {
+                    warn_msg(WarnLogic, "Substitute '%s.input' does not have exactly one value",
+                             subs.at(i).toLatin1().constData());
+                    continue;
+                }
+                if (toutn.length() != 1) {
+                    warn_msg(WarnLogic, "Substitute '%s.output' does not have exactly one value",
+                             subs.at(i).toLatin1().constData());
+                    continue;
+                }
+                inn = tinn.first();
+                outn = toutn.first();
+            } else {
+                inn = subs.at(i);
+                if(!inn.endsWith(".in")) {
+                    warn_msg(WarnLogic, "Substitute '%s' does not end with '.in'",
+                             inn.toLatin1().constData());
+                    continue;
+                }
+                outn = inn.left(inn.length()-3);
             }
-            QFile in(fileFixify(subs.at(i))), out(fileInfo(subs.at(i)).fileName());
-            if(out.fileName().endsWith(".in"))
-                out.setFileName(out.fileName().left(out.fileName().length()-3));
+            QFile in(fileFixify(inn));
+            QFile out(fileFixify(outn, qmake_getpwd(), Option::output_dir));
             if(in.open(QFile::ReadOnly)) {
                 QString contents;
                 QStack<int> state;
@@ -528,7 +551,7 @@
                 if(out.exists() && out.open(QFile::ReadOnly)) {
                     QString old = QString::fromUtf8(out.readAll());
                     if(contents == old) {
-                        v["QMAKE_INTERNAL_INCLUDED_FILES"].append(subs.at(i));
+                        v["QMAKE_INTERNAL_INCLUDED_FILES"].append(in.fileName());
                         continue;
                     }
                     out.close();
@@ -538,8 +561,9 @@
                         continue;
                     }
                 }
+                mkdir(QFileInfo(out).absolutePath());
                 if(out.open(QFile::WriteOnly)) {
-                    v["QMAKE_INTERNAL_INCLUDED_FILES"].append(subs.at(i));
+                    v["QMAKE_INTERNAL_INCLUDED_FILES"].append(in.fileName());
                     out.write(contents.toUtf8());
                 } else {
                     warn_msg(WarnLogic, "Cannot open substitute for output '%s'",
--- a/qmake/generators/symbian/initprojectdeploy_symbian.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/qmake/generators/symbian/initprojectdeploy_symbian.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -353,7 +353,11 @@
             CopyItem &item = i.next();
             QFileInfo fromItem(item.from);
             QFileInfo toItem(item.to);
-            if (fromItem == toItem)
+#if defined(Q_OS_WIN)
+            if (0 == fromItem.absoluteFilePath().compare(toItem.absoluteFilePath(), Qt::CaseInsensitive))
+#else
+            if (0 == fromItem.absoluteFilePath().compare(toItem.absoluteFilePath()))
+#endif
                 i.remove();
         }
     }
--- a/qmake/generators/symbian/symbiancommon.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/qmake/generators/symbian/symbiancommon.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -146,7 +146,7 @@
 
 void SymbianCommonGenerator::removeSpecialCharacters(QString& str)
 {
-    // When modifying this method check also application_icon.prf
+    // When modifying this method check also symbianRemoveSpecialCharacters in symbian.conf
     str.replace(QString("/"), QString("_"));
     str.replace(QString("\\"), QString("_"));
     str.replace(QString(" "), QString("_"));
@@ -154,7 +154,7 @@
 
 void SymbianCommonGenerator::removeEpocSpecialCharacters(QString& str)
 {
-    // When modifying this method check also application_icon.prf
+    // When modifying this method check also symbianRemoveSpecialCharacters in symbian.conf
     str.replace(QString("-"), QString("_"));
     str.replace(QString(":"), QString("_"));
     str.replace(QString("."), QString("_"));
@@ -171,13 +171,8 @@
 void SymbianCommonGenerator::generatePkgFile(const QString &iconFile, bool epocBuild)
 {
     QMakeProject *project = generator->project;
-    QString pkgTarget = project->first("QMAKE_ORIG_TARGET");
-    if (pkgTarget.isEmpty())
-        pkgTarget = project->first("TARGET");
-    pkgTarget = generator->unescapeFilePath(pkgTarget);
-    pkgTarget = removePathSeparators(pkgTarget);
     QString pkgFilename = Option::output_dir + QLatin1Char('/') +
-                          QString("%1_template.pkg").arg(pkgTarget);
+                          QString("%1_template.pkg").arg(fixedTarget);
 
     QFile pkgFile(pkgFilename);
     if (!pkgFile.open(QIODevice::WriteOnly | QIODevice::Text)) {
@@ -186,7 +181,7 @@
     }
 
     QString stubPkgFileName = Option::output_dir + QLatin1Char('/') +
-                          QString("%1_stub.pkg").arg(pkgTarget);
+                          QString("%1_stub.pkg").arg(fixedTarget);
 
     QFile stubPkgFile(stubPkgFileName);
     if (!stubPkgFile.open(QIODevice::WriteOnly | QIODevice::Text)) {
@@ -210,7 +205,7 @@
 
     // Header info
     QString wrapperPkgFilename = Option::output_dir + QLatin1Char('/') + QString("%1_installer.%2")
-                                 .arg(pkgTarget).arg("pkg");
+                                 .arg(fixedTarget).arg("pkg");
 
     QString headerComment = "; %1 generated by qmake at %2\n"
         "; This file is generated by qmake and should not be modified by the user\n"
@@ -269,8 +264,44 @@
     tw << languageRules.join("\n") << endl;
     ts << languageRules.join("\n") << endl;
 
-    // name of application, UID and version
-    QString applicationVersion = project->first("VERSION").isEmpty() ? "1,0,0" : project->first("VERSION").replace('.', ',');
+    // Determine application version. If version has missing component values,
+    // those will default to zero.
+    // If VERSION is missing altogether or is invalid, use "1,0,0"
+    QStringList verNumList = project->first("VERSION").split('.');
+    uint major = 0;
+    uint minor = 0;
+    uint patch = 0;
+    bool success = false;
+
+    if (verNumList.size() > 0) {
+        major = verNumList[0].toUInt(&success);
+        if (success && verNumList.size() > 1) {
+            minor = verNumList[1].toUInt(&success);
+            if (success && verNumList.size() > 2) {
+                patch = verNumList[2].toUInt(&success);
+            }
+        }
+    }
+
+    QString applicationVersion("1,0,0");
+    if (success)
+        applicationVersion = QString("%1,%2,%3").arg(major).arg(minor).arg(patch);
+
+    // Append package build version number if it is set
+    QString pkgBuildVersion = project->first("DEPLOYMENT.pkg_build_version");
+    if (!pkgBuildVersion.isEmpty()) {
+        success = false;
+        uint build = pkgBuildVersion.toUInt(&success);
+        if (success && build < 100) {
+            if (pkgBuildVersion.size() == 1)
+                pkgBuildVersion.prepend(QLatin1Char('0'));
+            applicationVersion.append(pkgBuildVersion);
+        } else {
+            fprintf(stderr, "Warning: Invalid DEPLOYMENT.pkg_build_version (%s), must be a number between 0 - 99\n", qPrintable(pkgBuildVersion));
+        }
+    }
+
+    // Package header
     QString sisHeader = "; SIS header: name, uid, version\n#{\"%1\"},(%2),%3\n\n";
     QString visualTarget = generator->escapeFilePath(project->first("TARGET"));
 
@@ -519,7 +550,7 @@
 
         // Wrapped files deployment
         QString currentPath = qmake_getpwd();
-        QString sisName = QString("%1.sis").arg(pkgTarget);
+        QString sisName = QString("%1.sis").arg(fixedTarget);
         twf << "\"" << currentPath << "/" << sisName << "\" - \"c:\\private\\2002CCCE\\import\\" << sisName << "\"" << endl;
 
         QString bootStrapPath = QLibraryInfo::location(QLibraryInfo::PrefixPath);
@@ -536,7 +567,7 @@
     if (QDir::separator().unicode() != '/')
         ret.replace(QDir::separator(), QLatin1Char('/'));
 
-    if (ret.indexOf(QLatin1Char('/')) > 0)
+    if (ret.indexOf(QLatin1Char('/')) >= 0)
         ret.remove(0, ret.lastIndexOf(QLatin1Char('/')) + 1);
 
     return ret;
@@ -559,7 +590,7 @@
         t << "// * user." << endl;
         t << "// ============================================================================" << endl;
         t << endl;
-        t << "#include <" << fixedTarget << ".rsg>" << endl;
+        t << "#include <" << fixedTarget.toLower() << ".rsg>" << endl;
         t << "#include <appinfo.rh>" << endl;
         foreach(QString item, userItems[RSS_TAG_HEADER])
             t << item << endl;
@@ -639,7 +670,7 @@
 		//QTP:
 		
         //QTP: loc change start
-        t << "#include <" << translationFileName << ".loc>" << endl;
+        t << "#include <" << translationFileName.toLower() << ".loc>" << endl;
         //QTP: loc change end
         t << endl;
         t << "RESOURCE LOCALISABLE_APP_INFO r_localisable_app_info" << endl;
@@ -774,107 +805,120 @@
 
 void SymbianCommonGenerator::writeSymbianLocFile(QStringList &symbianLangCodes)
 {	
-    QMakeProject *project = generator->project;
-	QString filename(translationFileName); 
+	QMakeProject *project = generator->project;
+	// Loop through all the languages and generate language specific loc files.
 	foreach(QString lang, symbianLangCodes) {
-        
-		QString tsFilename(filename);  
-		QString language = qt2S60LangMapTable.key(lang, QString("en"));
-		tsFilename.append("_"+language+".ts");
-	
-		tsFilename.insert(0, project->first("SYMBIANTRANSLATIONSRCDIR")); 	
-		
-        QString locFilename(filename); 
-        locFilename.append("_"+lang+".loc");
-        if (!project->first("SYMBIANLOCFILESDIR").isEmpty()) {    
-            locFilename.insert(0, lang+"/");
-            locFilename.insert(0, project->first("SYMBIANLOCFILESDIR"));
-        } else {	
-            locFilename.insert(0, "/epoc32/include/platform/mw/loc/"+lang+"/");
+		QString locFilename(translationFileName); //Use first entry from pro files TRANSLATIONS field as the name of the loc file.
+    locFilename.append("_"+lang+".loc");
+    if (!project->first("SYMBIANLOCFILESDIR").isEmpty()) {    
+        locFilename.insert(0, lang+"/");
+        locFilename.insert(0, project->first("SYMBIANLOCFILESDIR"));
+    } else {	
+        locFilename.insert(0, "/epoc32/include/platform/mw/loc/"+lang+"/");
+    }
+    QString shortCaption;
+    QString longCaption;
+
+		QStringList translationFilenames = project->values("TRANSLATIONS");
+		//  Read captions from all the ts files that exist on pro file. Use the caption that is found first. Print warning notes from duplicates.
+  	foreach (QString tsFilename, translationFilenames)    {
+			// add the path and current language identification to ts name and search if txt_short_caption_ or txt_long_caption_ is present
+			//QString tsFilename(tempfilename);  
+    	if (!tsFilename.isEmpty()) {
+        tsFilename = generator->fileInfo(tsFilename).completeBaseName();
+        tsFilename = generator->unescapeFilePath(tsFilename);
+        tsFilename = removePathSeparators(tsFilename);
+    	}
+			QString language = qt2S60LangMapTable.key(lang, QString("en"));
+			tsFilename.append("_"+language+".ts");
+			tsFilename.insert(0, project->first("SYMBIANTRANSLATIONSRCDIR")); 	
+      QFile tsFile(tsFilename);
+      if (tsFile.exists()) {
+      	if (tsFile.open(QIODevice::ReadOnly)) {
+        QString shortCaptionId = QLatin1String("txt_short_caption_");
+        QString longCaptionId = QLatin1String("txt_long_caption_");
+        QXmlStreamReader xml(&tsFile);
+        while (!xml.atEnd()) {
+        	xml.readNext();
+          if (xml.isStartElement() && xml.name() == "context") {
+          	while (!(xml.isEndElement() && xml.name() == "context") && !xml.atEnd()) {
+            	xml.readNext();  
+            	if (xml.isStartElement() && xml.name() == "message" 
+							&& xml.attributes().value("numerus") == "no" 
+							&& xml.attributes().value("id").toString().left(shortCaptionId.length()) == shortCaptionId) {
+            		while (!(xml.isEndElement() && xml.name() == "message") && !xml.atEnd()) {
+              	xml.readNext();
+	              	if (xml.isStartElement() && xml.name() == "translation") {
+	               		if (shortCaption.isEmpty()){
+  	                	shortCaption = xml.readElementText();
+    	              } else {
+      	            	fprintf(stderr, "Duplicate short caption field found from: '%s'.\n", qPrintable(tsFilename));
+        	          }
+          	      }
+            	  }
+            	}
+            	if (xml.isStartElement() && xml.name() == "message" 
+							&& xml.attributes().value("numerus") == "no" 
+							&& xml.attributes().value("id").toString().left(longCaptionId.length()) == longCaptionId) {
+              	while (!(xml.isEndElement() && xml.name() == "message") && !xml.atEnd()) {   
+                	xml.readNext();
+                  if (xml.isStartElement() && xml.name() == "translation" ) {
+                  	if (longCaption.isEmpty()){
+                    	longCaption = xml.readElementText();
+                  	} else {
+                  		fprintf(stderr, "Duplicate long caption field found from: '%s'.\n", qPrintable(tsFilename));
+                    }
+                  }
+                }
+              }
+           }
+         }         
+       }
+       if (shortCaption.isEmpty()) {
+       	 fprintf(stderr, "Short caption generated from target name '#%s'.\n", qPrintable(fixedTarget));
+       }
+       if (longCaption.isEmpty()) {
+         fprintf(stderr, "Warning: STRING_r_caption not generated from file '%s'.\n", qPrintable(tsFilename));
+         fprintf(stderr, "       : caption generated from target name '#%s'.\n", qPrintable(fixedTarget));
+       }
+       if (xml.hasError())
+         fprintf(stderr, "ERROR: \"%s\" when parsing ts file\n", qPrintable(xml.errorString()));
+       } else {
+         fprintf(stderr, "Could not open ts file (%s)\n", qPrintable(tsFilename));
+       }
+     } else {
+       fprintf(stderr, "Warning: ts file does not exist: (%s)\n", qPrintable(tsFilename));
+       fprintf(stderr, "       : short and long caption generated from target name '#%s'.\n", qPrintable(fixedTarget));
+       }
+    }
+    // generate language specific caption loc file
+    QFile ft(locFilename);
+    if (ft.open(QIODevice::WriteOnly)) {
+        generatedFiles << ft.fileName();
+        QTextStream t(&ft);
+        t << "// ============================================================================" << endl;
+        t << "// * Generated by qmake (" << qmake_version() << ") (Qt " << QT_VERSION_STR << ") on: ";
+        t << QDateTime::currentDateTime().toString(Qt::ISODate) << endl;
+        t << "// * This file is generated by qmake and should not be modified by the" << endl;
+        t << "// * user." << endl;
+        t << "// ============================================================================" << endl;
+        t << endl;
+        t <<"CHARACTER_SET UTF8"<<endl;
+        if (!shortCaption.isEmpty()) {
+            t << "#define STRING_r_short_caption \"" << shortCaption  << "\"" << endl;    
+        } else {
+            t << "#define STRING_r_short_caption \"" "#"<< fixedTarget  << "\"" << endl;
+        }    
+        if (!longCaption.isEmpty()) {
+            t << "#define STRING_r_caption \"" << longCaption  << "\"" << endl;  
+        } else {    
+            t << "#define STRING_r_caption \"" "#"<< fixedTarget  << "\"" << endl;
         }
-                
-        QString shortCaption;
-        QString longCaption;
-        
-        // get captions from ts file
-        QFile tsFile(tsFilename);
-        if (tsFile.exists()) {
-            if (tsFile.open(QIODevice::ReadOnly)) {
-                QString shortCaptionId = QLatin1String("txt_short_caption_");
-                QString longCaptionId = QLatin1String("txt_long_caption_");
-                QXmlStreamReader xml(&tsFile);
-                while (!xml.atEnd()) {
-                    xml.readNext();
-                    if (xml.isStartElement() && xml.name() == "context") {
-                        while (!(xml.isEndElement() && xml.name() == "context") && !xml.atEnd()) {
-                            xml.readNext();  
-                            if (xml.isStartElement() && xml.name() == "message" 
-							    && xml.attributes().value("numerus") == "no" 
-								&& xml.attributes().value("id").toString().left(shortCaptionId.length()) == shortCaptionId) {
-                                while (!(xml.isEndElement() && xml.name() == "message") && !xml.atEnd()) {
-                                    xml.readNext();
-                                    if (xml.isStartElement() && xml.name() == "translation") {
-                            		   shortCaption = xml.readElementText();
-                                    }
-                                }
-                            }
-                            if (xml.isStartElement() && xml.name() == "message" 
-							    && xml.attributes().value("numerus") == "no" 
-								&& xml.attributes().value("id").toString().left(longCaptionId.length()) == longCaptionId) {
-                                while (!(xml.isEndElement() && xml.name() == "message") && !xml.atEnd()) {   
-                                    xml.readNext();
-                                    if (xml.isStartElement() && xml.name() == "translation") {
-                                        longCaption = xml.readElementText();
-                                    }
-                                }
-                            }
-                        }
-                    }         
-                }
-                if (shortCaption.isEmpty()) {
-                    fprintf(stderr, "Short caption generated from target name '#%s'.\n", qPrintable(fixedTarget));
-                }
-                if (longCaption.isEmpty()) {
-                    fprintf(stderr, "Warning: STRING_r_caption not generated from file '%s'.\n", qPrintable(tsFilename));
-                    fprintf(stderr, "       : caption generated from target name '#%s'.\n", qPrintable(fixedTarget));
-                }
-                if (xml.hasError())
-                    fprintf(stderr, "ERROR: \"%s\" when parsing ts file\n", qPrintable(xml.errorString()));
-            } else {
-                fprintf(stderr, "Could not open ts file (%s)\n", qPrintable(tsFilename));
-            }
-        } else {
-            fprintf(stderr, "Warning: ts file does not exist: (%s)\n", qPrintable(tsFilename));
-            fprintf(stderr, "       : short and long caption generated from target name '#%s'.\n", qPrintable(fixedTarget));
-        }
-
-        // generate language specific caption loc file
-        QFile ft(locFilename);
-        if (ft.open(QIODevice::WriteOnly)) {
-            generatedFiles << ft.fileName();
-            QTextStream t(&ft);
-            t << "// ============================================================================" << endl;
-            t << "// * Generated by qmake (" << qmake_version() << ") (Qt " << QT_VERSION_STR << ") on: ";
-            t << QDateTime::currentDateTime().toString(Qt::ISODate) << endl;
-            t << "// * This file is generated by qmake and should not be modified by the" << endl;
-            t << "// * user." << endl;
-            t << "// ============================================================================" << endl;
-            t << endl;
-            if (!shortCaption.isEmpty()) {
-                t << "#define STRING_r_short_caption \"" << shortCaption  << "\"" << endl;    
-            } else {
-                t << "#define STRING_r_short_caption \"" "#"<< fixedTarget  << "\"" << endl;
-            }    
-            if (!longCaption.isEmpty()) {
-                t << "#define STRING_r_caption \"" << longCaption  << "\"" << endl;  
-            } else {    
-                t << "#define STRING_r_caption \"" "#"<< fixedTarget  << "\"" << endl;
-            }
-            ft.close();
-        } else {
-            PRINT_FILE_CREATE_ERROR(locFilename);	
-	    }
+        ft.close();
+    } else {
+        PRINT_FILE_CREATE_ERROR(locFilename);	
     }
+  }
 }
 //QTP: loc change ends
 
@@ -1229,8 +1273,9 @@
 void SymbianCommonGenerator::modifyQt2S60LangMapTable()
 {
     QMakeProject *project = generator->project;
-	QString systemLanguagesIniFile = project->first("SYMBIANTRANSLATIONDIR").
-                                     append(QLatin1String("system_languages.ini"));
+
+    QString systemLanguagesIniFile("/epoc32/include/system_languages.ini");
+   
     QFileInfo systemLangFileInfo(systemLanguagesIniFile);
     if (systemLangFileInfo.exists()) {
         QSettings systemLanguages(systemLanguagesIniFile, QSettings::IniFormat);
--- a/qmake/generators/symbian/symmake.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/qmake/generators/symbian/symmake.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -246,13 +246,8 @@
 
     writeMkFile(wrapperFileName, false);
 
-    QString shortProFilename = project->projectFile();
-    shortProFilename.replace(0, shortProFilename.lastIndexOf("/") + 1, QString(""));
-    shortProFilename.replace(Option::pro_ext, QString(""));
-
-    QString mmpFilename = Option::output_dir + QLatin1Char('/') + shortProFilename + QLatin1Char('_')
-                          + uid3 + Option::mmp_ext;
-    writeMmpFile(mmpFilename, symbianLangCodes);
+    QString absoluteMmpFileName = Option::output_dir + QLatin1Char('/') + mmpFileName;
+    writeMmpFile(absoluteMmpFileName, symbianLangCodes);
 
     if (targetType == TypeExe) {
         if (!project->isActiveConfig("no_icon")) {
@@ -289,6 +284,15 @@
     project->values("MAKEFILE") += BLD_INF_FILENAME;
 
     // .mmp
+    mmpFileName = fixedTarget;
+    if (targetType == TypeExe)
+        mmpFileName.append("_exe");
+    else if (targetType == TypeDll || targetType == TypePlugin)
+        mmpFileName.append("_dll");
+    else if (targetType == TypeLib)
+        mmpFileName.append("_lib");
+    mmpFileName.append(Option::mmp_ext);
+
     initMmpVariables();
 
     uid2 = project->first("TARGET.UID2");
@@ -488,7 +492,7 @@
     t << QDateTime::currentDateTime().toString(Qt::ISODate) << endl;
     t << "// This file is generated by qmake and should not be modified by the" << endl;
     t << "// user." << endl;
-    t << "//  Name        : " << escapeFilePath(fileFixify(project->projectFile().remove(project->projectFile().length() - 4, 4))) << Option::mmp_ext << endl;
+    t << "//  Name        : " << mmpFileName << endl;
     t << "// ==============================================================================" << endl << endl;
 }
 
@@ -697,7 +701,7 @@
         t << "SOURCEPATH\t\t\t." << endl;
         t << MMP_START_RESOURCE "\t\t" << regTarget << endl;
         if (isForSymbianSbsv2())
-            t << "DEPENDS " << fixedTarget << ".rsg" << endl;
+            t << "DEPENDS " << fixedTarget.toLower() << ".rsg" << endl;
         t << "TARGETPATH\t\t" REGISTRATION_RESOURCE_DIRECTORY_HW << endl;
         t << MMP_END_RESOURCE << endl << endl;
     }
@@ -924,8 +928,6 @@
 
     // Add includes of subdirs bld.inf files
 
-    QString mmpfilename = escapeFilePath(fileFixify(project->projectFile()));
-    mmpfilename = mmpfilename.replace(mmpfilename.lastIndexOf("."), 4, Option::mmp_ext);
     QString currentPath = qmake_getpwd();
     QDir directory(currentPath);
 
@@ -1007,15 +1009,8 @@
     t << endl << mmpTag << endl << endl;
 
     writeBldInfMkFilePart(t, addDeploymentExtension);
-    if (targetType != TypeSubdirs) {
-        QString shortProFilename = project->projectFile();
-        shortProFilename.replace(0, shortProFilename.lastIndexOf("/") + 1, QString(""));
-        shortProFilename.replace(Option::pro_ext, QString(""));
-
-        QString mmpFilename = shortProFilename + QString("_") + uid3 + Option::mmp_ext;
-
-        t << mmpFilename << endl;
-    }
+    if (targetType != TypeSubdirs)
+        t << mmpFileName << endl;
 
     userItems = userBldInfRules.value(mmpTag);
     foreach(QString item, userItems)
--- a/qmake/generators/symbian/symmake.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/qmake/generators/symbian/symmake.h	Mon Oct 04 01:19:32 2010 +0300
@@ -59,6 +59,7 @@
 protected:
     QString platform;
     QString uid2;
+    QString mmpFileName;
     QMap<QString, QStringList> sources;
     QMap<QString, QStringList> systeminclude;
     QMap<QString, QStringList> library;
@@ -78,6 +79,7 @@
     QString generateUID3();
 
     void initMmpVariables();
+    void generateMmpFileName();
     void handleMmpRulesOverrides(QString &checkString,
                                  bool &inResourceBlock,
                                  QStringList &restrictedMmpKeywords,
--- a/qmake/generators/symbian/symmake_abld.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/qmake/generators/symbian/symmake_abld.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -70,10 +70,6 @@
 
 void SymbianAbldMakefileGenerator::writeMkFile(const QString& wrapperFileName, bool deploymentOnly)
 {
-    QString gnuMakefileName = QLatin1String("Makefile_") + uid3;
-    removeEpocSpecialCharacters(gnuMakefileName);
-    gnuMakefileName.append(".mk");
-
     QFile ft(gnuMakefileName);
     if (ft.open(QIODevice::WriteOnly)) {
         generatedFiles << ft.fileName();
@@ -339,13 +335,17 @@
     } else {
         t << "all: debug release" << endl;
         t << endl;
+
+        QString qmakeCmd = "\t$(QMAKE) \"" + project->projectFile() + "\" " + buildArgs();
+
         t << "qmake:" << endl;
-        t << "\t$(QMAKE) -spec symbian-abld -o \"" << fileInfo(Option::output.fileName()).fileName()
-          << "\" \"" << project->projectFile() << "\"" << endl;
+        t << qmakeCmd << endl;
         t << endl;
-        t << BLD_INF_FILENAME ":" << endl;
-        t << "\t$(QMAKE)" << endl;
+
+        t << BLD_INF_FILENAME ": " << project->projectFile() << endl;
+        t << qmakeCmd << endl;
         t << endl;
+
         t << "$(ABLD): " BLD_INF_FILENAME << endl;
         t << "\tbldmake bldfiles" << endl;
         t << endl;
@@ -557,9 +557,8 @@
     // Normally emulator deployment gets done via regular makefile, but since subdirs
     // do not get that, special deployment only makefile is generated for them if needed.
     if (targetType != TypeSubdirs || addDeploymentExtension) {
-        QString gnuMakefileName = QLatin1String("Makefile_") + uid3;
-        removeEpocSpecialCharacters(gnuMakefileName);
-        gnuMakefileName.append(".mk");
+        gnuMakefileName = QLatin1String("Makefile_") + fileInfo(mmpFileName).completeBaseName()
+            + QLatin1String(".mk");
         t << "gnumakefile " << gnuMakefileName << endl;
     }
 }
--- a/qmake/generators/symbian/symmake_abld.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/qmake/generators/symbian/symmake_abld.h	Mon Oct 04 01:19:32 2010 +0300
@@ -58,7 +58,7 @@
     virtual void appendAbldTempDirs(QStringList& sysincspaths, QString includepath);
 
     bool writeDeploymentTargets(QTextStream &t, bool isRom);
-
+    QString gnuMakefileName;
 public:
 
     SymbianAbldMakefileGenerator();
--- a/qmake/generators/symbian/symmake_sbsv2.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/qmake/generators/symbian/symmake_sbsv2.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -56,6 +56,12 @@
 
 #define FLM_DEST_DIR "epoc32/tools/makefile_templates/qt"
 #define FLM_SOURCE_DIR "/mkspecs/symbian-sbsv2/flm/qt"
+#define UNDETECTED_GCCE_VERSION "0"
+#define PLATFORM_GCCE "gcce"
+#define PLATFORM_WINSCW "winscw"
+#define PLATFORM_ARMV5 "armv5"
+#define BUILD_DEBUG "udeb"
+#define BUILD_RELEASE "urel"
 
 // Copies Qt FLMs to correct location under epocroot.
 // This is not done by configure as it is possible to change epocroot after configure.
@@ -94,6 +100,67 @@
     }
 }
 
+QString SymbianSbsv2MakefileGenerator::gcceVersion()
+{
+    static QString gcceVersionStr;
+
+    if (gcceVersionStr.isEmpty()) {
+        // First check if QT_GCCE_VERSION has been set, and use that if it is
+        QByteArray qtGcceVersion = qgetenv("QT_GCCE_VERSION");
+        if (!qtGcceVersion.isEmpty()) {
+            // Check that QT_GCCE_VERSION is in proper format
+            QString check(qtGcceVersion);
+            check.replace(QRegExp("^\\d+\\.\\d+\\.\\d+$"),QString());
+            if (check.isEmpty()) {
+                gcceVersionStr = PLATFORM_GCCE + QString(qtGcceVersion).replace(".","_");
+                return gcceVersionStr;
+            } else {
+                fprintf(stderr, "Warning: Environment variable QT_GCCE_VERSION ('%s') is in incorrect "
+                        "format, expected format is: '1.2.3'. Attempting to autodetect GCCE version.",
+                        qtGcceVersion.constData());
+            }
+        }
+        // Sbsv2 has separate env variable defined for each gcce version, so try to determine
+        // which user is likely to want to use by checking version 4.0.0 to 9.9.9 and taking
+        // the highest found version that actually points to a valid path.
+        // This is kind of a kludge, but since qmake doesn't bootstrap QProcess, there
+        // is no Qt API available to get all environment variables.
+        for (int i = 9; i >= 4; i--) {
+            for (int j = 9; j >= 0; j--) {
+                for (int k = 9; k >= 0; k--) {
+                    QByteArray gcceVar = qgetenv(qPrintable(QString("SBS_GCCE%1%2%3BIN").arg(i).arg(j).arg(k)));
+                    if (!gcceVar.isEmpty() && fileInfo(QString::fromLocal8Bit(gcceVar.constData())).exists()) {
+                        gcceVersionStr = QString(PLATFORM_GCCE "%1_%2_%3").arg(i).arg(j).arg(k);
+                        return gcceVersionStr;
+                   }
+                }
+            }
+        }
+    }
+
+    // Indicate undetected version to avoid rechecking multiple times
+    if (gcceVersionStr.isEmpty())
+        gcceVersionStr = UNDETECTED_GCCE_VERSION;
+
+    return gcceVersionStr;
+}
+
+QString SymbianSbsv2MakefileGenerator::configClause(QString &platform,
+                                                    QString &build,
+                                                    QString &winscwClauseTemplate,
+                                                    QString &gcceClauseTemplate,
+                                                    QString &genericClauseTemplate)
+{
+    QString retval;
+    if (QString::compare(platform, PLATFORM_WINSCW) == 0)
+        retval = winscwClauseTemplate.arg(build);
+    else if (QString::compare(platform, PLATFORM_GCCE) == 0)
+        retval = gcceClauseTemplate.arg(build);
+    else
+        retval = genericClauseTemplate.arg(platform).arg(build);
+    return retval;
+}
+
 void SymbianSbsv2MakefileGenerator::writeSbsDeploymentList(const DeploymentList& depList, QTextStream& t)
 {
     for (int i = 0; i < depList.size(); ++i) {
@@ -123,21 +190,54 @@
 
 void SymbianSbsv2MakefileGenerator::writeWrapperMakefile(QFile& wrapperFile, bool isPrimaryMakefile)
 {
+    static QString debugBuild(BUILD_DEBUG);
+    static QString releaseBuild(BUILD_RELEASE);
+
     QStringList allPlatforms;
     foreach(QString platform, project->values("SYMBIAN_PLATFORMS")) {
         allPlatforms << platform.toLower();
     }
 
-    QStringList debugPlatforms = allPlatforms;
-    QStringList releasePlatforms = allPlatforms;
-    releasePlatforms.removeAll("winscw"); // No release for emulator
-
     QString testClause;
     if (project->isActiveConfig(SYMBIAN_TEST_CONFIG))
         testClause = QLatin1String(".test");
     else
         testClause = QLatin1String("");
 
+    QString genericClause = " -c %1_%2" + testClause;
+    QString winscwClause = " -c winscw_%1.mwccinc" + testClause;
+    QString gcceClause;
+    bool stripArmv5 = false;
+
+    if (allPlatforms.contains(PLATFORM_GCCE)) {
+        if (QString::compare(gcceVersion(), UNDETECTED_GCCE_VERSION) == 0) {
+            allPlatforms.removeAll(PLATFORM_GCCE);
+        } else {
+            gcceClause = " -c arm.v5.%1." + gcceVersion() + testClause;
+            // Since gcce building is enabled, do not add armv5 for any sbs command
+            // that also contains gcce, because those will build same targets.
+            stripArmv5 = true;
+        }
+    }
+
+    QStringList allClauses;
+    QStringList debugClauses;
+    QStringList releaseClauses;
+
+    QStringList debugPlatforms = allPlatforms;
+    QStringList releasePlatforms = allPlatforms;
+    releasePlatforms.removeAll(PLATFORM_WINSCW); // No release for emulator
+
+    foreach(QString item, debugPlatforms) {
+        if (item != PLATFORM_ARMV5 || !stripArmv5)
+            debugClauses << configClause(item, debugBuild, winscwClause, gcceClause, genericClause);
+    }
+    foreach(QString item, releasePlatforms) {
+        if (item != PLATFORM_ARMV5 || !stripArmv5)
+            releaseClauses << configClause(item, releaseBuild, winscwClause, gcceClause, genericClause);
+    }
+    allClauses << debugClauses << releaseClauses;
+
     QTextStream t(&wrapperFile);
 
     t << "# ==============================================================================" << endl;
@@ -177,9 +277,9 @@
     }
     t << endl;
     t << "first: default" << endl;
-    if (debugPlatforms.contains("winscw"))
+    if (debugPlatforms.contains(PLATFORM_WINSCW))
         t << "default: debug-winscw";
-    else if (debugPlatforms.contains("armv5"))
+    else if (debugPlatforms.contains(PLATFORM_ARMV5))
         t << "default: debug-armv5";
     else if (debugPlatforms.size())
         t << "default: debug-" << debugPlatforms.first();
@@ -192,60 +292,61 @@
     } else {
         t << "all: debug release" << endl;
         t << endl;
+
+        QString qmakeCmd = "\t$(QMAKE) \"" + project->projectFile() + "\" " + buildArgs();
+
         t << "qmake:" << endl;
-        t << "\t$(QMAKE) -spec symbian-sbsv2 -o \"" << fileInfo(Option::output.fileName()).fileName()
-          << "\" \"" << project->projectFile() << "\"" << endl;
-        t << endl;
-        t << BLD_INF_FILENAME ":" << endl;
-        t << "\t$(QMAKE)" << endl;
+        t << qmakeCmd << endl;
         t << endl;
 
-        QString winscw("winscw");
+        t << BLD_INF_FILENAME ": " << project->projectFile() << endl;
+        t << qmakeCmd << endl;
+        t << endl;
+
+        QString currentClause;
+
         t << "debug: " << BLD_INF_FILENAME << endl;
         t << "\t$(SBS)";
-        foreach(QString item, debugPlatforms) {
-            if(QString::compare(item, winscw) == 0)
-                t << " -c " << item << "_udeb.mwccinc" << testClause;
-            else
-                t << " -c " << item << "_udeb" << testClause;
+        foreach(QString item, debugClauses) {
+            t << item;
         }
         t << endl;
         t << "release: " << BLD_INF_FILENAME << endl;
         t << "\t$(SBS)";
-        foreach(QString item, releasePlatforms) {
-            if(QString::compare(item, winscw) == 0)
-                t << " -c " << item << "_urel.mwccinc" << testClause;
-            else
-                t << " -c " << item << "_urel" << testClause;
+        foreach(QString item, releaseClauses) {
+            t << item;
         }
         t << endl;
 
         // For more specific builds, targets are in this form: build-platform, e.g. release-armv5
         foreach(QString item, debugPlatforms) {
             t << "debug-" << item << ": " << BLD_INF_FILENAME << endl;
-            if(QString::compare(item, winscw) == 0)
-                t << "\t$(SBS) -c " << item << "_udeb.mwccinc" << testClause << endl;
-            else
-                t << "\t$(SBS) -c " << item << "_udeb" << testClause << endl;
+            t << "\t$(SBS)";
+            t << configClause(item, debugBuild, winscwClause, gcceClause, genericClause);
+            t << endl;
         }
 
         foreach(QString item, releasePlatforms) {
             t << "release-" << item << ": " << BLD_INF_FILENAME << endl;
-            if(QString::compare(item, winscw) == 0)
-                t << "\t$(SBS) -c " << item << "_urel.mwccinc" << testClause << endl;
-            else
-                t << "\t$(SBS) -c " << item << "_urel" << testClause << endl;
+            t << "\t$(SBS)";
+            t << configClause(item, releaseBuild, winscwClause, gcceClause, genericClause);
+            t << endl;
         }
 
         t << endl;
         t << "export: " << BLD_INF_FILENAME << endl;
-        t << "\t$(SBS) export" << endl;
-        t << endl;
+        t << "\t$(SBS) export";
+        foreach(QString clause, allClauses) {
+            t << clause;
+        }
+        t << endl << endl;
 
         t << "cleanexport: " << BLD_INF_FILENAME << endl;
-        t << "\t$(SBS) cleanexport" << endl;
-        t << endl;
-
+        t << "\t$(SBS) cleanexport";
+        foreach(QString clause, allClauses) {
+            t << clause;
+        }
+        t << endl << endl;
     }
 
     // Add all extra targets including extra compiler targest also to wrapper makefile,
@@ -263,30 +364,37 @@
     generateDistcleanTargets(t);
 
     t << "clean: " << BLD_INF_FILENAME << endl;
-    t << "\t-$(SBS) reallyclean" << endl;
-    t << endl;
+    t << "\t-$(SBS) reallyclean";
+    foreach(QString clause, allClauses) {
+        t << clause;
+    }
+    t << endl << endl;
 
     t << "clean-debug: " << BLD_INF_FILENAME << endl;
     t << "\t$(SBS) reallyclean";
-    foreach(QString item, debugPlatforms) {
-        t << " -c " << item << "_udeb" << testClause;
+    foreach(QString clause, debugClauses) {
+        t << clause;
     }
-    t << endl;
+    t << endl << endl;
     t << "clean-release: " << BLD_INF_FILENAME << endl;
     t << "\t$(SBS) reallyclean";
-    foreach(QString item, releasePlatforms) {
-        t << " -c " << item << "_urel" << testClause;
+    foreach(QString clause, releaseClauses) {
+        t << clause;
     }
-    t << endl;
+    t << endl << endl;
 
     // For more specific builds, targets are in this form: clean-build-platform, e.g. clean-release-armv5
     foreach(QString item, debugPlatforms) {
         t << "clean-debug-" << item << ": " << BLD_INF_FILENAME << endl;
-        t << "\t$(SBS) reallyclean -c " << item << "_udeb" << testClause << endl;
+        t << "\t$(SBS) reallyclean";
+        t << configClause(item, debugBuild, winscwClause, gcceClause, genericClause);
+        t << endl;
     }
     foreach(QString item, releasePlatforms) {
         t << "clean-release-" << item << ": " << BLD_INF_FILENAME << endl;
-        t << "\t$(SBS) reallyclean -c " << item << "_urel" << testClause << endl;
+        t << "\t$(SBS) reallyclean";
+        t << configClause(item, releaseBuild, winscwClause, gcceClause, genericClause);
+        t << endl;
     }
     t << endl;
 }
@@ -310,6 +418,28 @@
         }
     }
 
+    QMap<QString, QString> commandsToReplace;
+    commandsToReplace.insert(project->values("QMAKE_COPY").join(" "),
+                             project->values("QMAKE_SBSV2_COPY").join(" "));
+    commandsToReplace.insert(project->values("QMAKE_COPY_DIR").join(" "),
+                             project->values("QMAKE_SBSV2_COPY_DIR").join(" "));
+    commandsToReplace.insert(project->values("QMAKE_MOVE").join(" "),
+                             project->values("QMAKE_SBSV2_MOVE").join(" "));
+    commandsToReplace.insert(project->values("QMAKE_DEL_FILE").join(" "),
+                             project->values("QMAKE_SBSV2_DEL_FILE").join(" "));
+    commandsToReplace.insert(project->values("QMAKE_MKDIR").join(" "),
+                             project->values("QMAKE_SBSV2_MKDIR").join(" "));
+    commandsToReplace.insert(project->values("QMAKE_DEL_DIR").join(" "),
+                             project->values("QMAKE_SBSV2_DEL_DIR").join(" "));
+    commandsToReplace.insert(project->values("QMAKE_DEL_TREE").join(" "),
+                             project->values("QMAKE_SBSV2_DEL_TREE").join(" "));
+
+    // If commandItem starts with any $$QMAKE_* commands, do a replace for SBS equivalent
+    // Command replacement is done only for the start of the command or right after
+    // concatenation operators (&& and ||), as otherwise unwanted replacements might occur.
+    static QString cmdFind("(^|&&\\s*|\\|\\|\\s*)%1");
+    static QString cmdReplace("\\1%1");
+
     // Write extra compilers and targets to initialize QMAKE_ET_* variables
     // Cache results to avoid duplicate calls when creating wrapper makefile
     QTextStream extraCompilerStream(&extraCompilersCache);
@@ -321,13 +451,7 @@
     // are not necessary.
     QStringList allPreDeps;
     foreach(QString item, project->values("PRE_TARGETDEPS")) {
-        // Predeps get mangled in windows, so fix them to more sbsv2 friendly format
-#if defined(Q_OS_WIN)
-        if (item.mid(1, 1) == ":")
-            item = item.mid(0, 1).toUpper().append(item.mid(1)); // Fix drive to uppercase
-#endif
-        item.replace("\\", "/");
-        allPreDeps << escapeDependencyPath(item);
+        allPreDeps.append(fileInfo(item).absoluteFilePath());
     }
 
     foreach (QString item, project->values("GENERATED_SOURCES")) {
@@ -357,7 +481,6 @@
                 QStringList deps = project->values(QLatin1String("QMAKE_INTERNAL_ET_PARSED_DEPS.") + item + targetItem);
                 QString commandItem =  project->values(QLatin1String("QMAKE_INTERNAL_ET_PARSED_CMD.") + item + targetItem).join(" ");
 
-
                 // Make sure all deps paths are absolute
                 QString absoluteDeps;
                 foreach (QString depItem, deps) {
@@ -371,6 +494,18 @@
                 t << "OPTION PREDEP_TARGET " << absoluteTarget << endl;
                 t << "OPTION DEPS " << absoluteDeps << endl;
 
+                // Iterate command replacements in reverse alphabetical order of keys so
+                // that keys which are starts of other longer keys are iterated after longer keys.
+                QMapIterator<QString, QString> cmdIter(commandsToReplace);
+                cmdIter.toBack();
+                while (cmdIter.hasPrevious()) {
+                    cmdIter.previous();
+                    if (commandItem.contains(cmdIter.key())) {
+                        commandItem.replace(QRegExp(cmdFind.arg(cmdIter.key())),
+                                            cmdReplace.arg(cmdIter.value()));
+                    }
+                }
+
                 if (commandItem.indexOf("$(INCPATH)") != -1)
                     commandItem.replace("$(INCPATH)", incPath.join(" "));
                 if (commandItem.indexOf("$(DEFINES)") != -1)
@@ -388,8 +523,10 @@
     t << endl;
     
     //loc change starts
-    QString translationFilename = project->first("TRANSLATIONS");
-    if (!project->values("SYMBIANTRANSLATIONS").isEmpty() && !translationFilename.isEmpty()) {
+    //QString translationFilename = project->first("TRANSLATIONS");
+    if (!project->values("SYMBIANTRANSLATIONS").isEmpty() && !project->first("TRANSLATIONS").isEmpty()) {
+        QStringList translationFilenames = project->values("TRANSLATIONS");
+        foreach (const QString &translationFilename, translationFilenames) {
         QStringList symbianTranslations = project->values("SYMBIANTRANSLATIONS");
         QString symbianTrPath = project->first("SYMBIANTRANSLATIONDIR");
         QString symbianTrSrcPath = project->first("SYMBIANTRANSLATIONSRCDIR");    	
@@ -451,6 +588,7 @@
             t << endl;
         }
     }
+  }
     //QTP: loc change end
     
     // Write deployment rules
--- a/qmake/generators/symbian/symmake_sbsv2.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/qmake/generators/symbian/symmake_sbsv2.h	Mon Oct 04 01:19:32 2010 +0300
@@ -65,6 +65,13 @@
 
 private:
     void exportFlm();
+    QString gcceVersion();
+    QString configClause(QString &platform,
+                         QString &build,
+                         QString &winscwClauseTemplate,
+                         QString &gcceClauseTemplate,
+                         QString &genericClauseTemplate);
+
     void writeSbsDeploymentList(const DeploymentList& depList, QTextStream& t);
 
     QString extraTargetsCache;
--- a/qmake/generators/win32/mingw_make.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/qmake/generators/win32/mingw_make.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -197,10 +197,7 @@
         QTextStream t(&file);
         t << "CREATE " << target << endl;
         for (QStringList::ConstIterator it = objList.constBegin(); it != objList.constEnd(); ++it) {
-            if (QDir::isRelativePath(*it))
-		t << "ADDMOD " << *it << endl;
-	    else
-		t << *it << endl;
+            t << "ADDMOD " << *it << endl;
         }
         t << "SAVE" << endl;
 	t.flush();
--- a/qmake/generators/win32/msbuild_objectmodel.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/qmake/generators/win32/msbuild_objectmodel.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -569,7 +569,8 @@
                 UseFullPaths = _True;
                 break;
             case 'd':
-                ProgramDataBaseFileName += option+3;
+                ProgramDataBaseFileName = option+3;
+                break;
             case 'I':
                 ForcedIncludeFiles += option+3;
                 break;
@@ -1572,7 +1573,8 @@
         break;
     case 0x0034160: // /MAP[:filename]
         GenerateMapFile = _True;
-        MapFileName = option+5;
+        if (option[4] == ':')
+            MapFileName = option+5;
         break;
     case 0x164e1ef: // /MAPINFO:{EXPORTS}
         if(*(option+9) == 'E')
--- a/qmake/generators/win32/msvc_objectmodel.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/qmake/generators/win32/msvc_objectmodel.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -1430,7 +1430,8 @@
         break;
     case 0x0034160: // /MAP[:filename]
         GenerateMapFile = _True;
-        MapFileName = option+5;
+        if (option[4] == ':')
+            MapFileName = option+5;
         break;
     case 0x164e1ef: // /MAPINFO:{EXPORTS|LINES}
         if(*(option+9) == 'E')
--- a/qmake/generators/win32/msvc_vcxproj.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/qmake/generators/win32/msvc_vcxproj.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -202,7 +202,6 @@
                 conf.CharacterSet = "NotSet";
                 break;
         }
-        conf.CharacterSet = charSet(temp.isEmpty() ? (short)charSetNotSet : temp.toShort());
     }
     conf.DeleteExtensionsOnClean = project->first("DeleteExtensionsOnClean");
     conf.ImportLibrary = conf.linker.ImportLibrary;
--- a/qmake/generators/win32/winmakefile.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/qmake/generators/win32/winmakefile.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -475,10 +475,13 @@
         resFile.replace(".rc", Option::res_ext);
         project->values("RES_FILE").prepend(fileInfo(resFile).fileName());
         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);
+            QString resDestDir;
+            if (project->isActiveConfig("staticlib"))
+                resDestDir = fileInfo(project->first("DESTDIR")).absoluteFilePath();
             else
-              project->values("RES_FILE").first().prepend(project->values("OBJECTS_DIR").first() + Option::dir_sep);
+                resDestDir = project->first("OBJECTS_DIR");
+            resDestDir.append(Option::dir_sep);
+            project->values("RES_FILE").first().prepend(resDestDir);
         }
         project->values("RES_FILE").first() = Option::fixPathToTargetOS(project->values("RES_FILE").first(), false, false);
 	project->values("POST_TARGETDEPS") += project->values("RES_FILE");
--- a/src/3rdparty/javascriptcore/JavaScriptCore/ChangeLog	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/3rdparty/javascriptcore/JavaScriptCore/ChangeLog	Mon Oct 04 01:19:32 2010 +0300
@@ -1,3 +1,39 @@
+2010-06-18  Tucker Jay  <jay.tucker@nokia.com>
+
+        Reviewed by NOBODY (OOPS!).
+
+        [Symbian] Lazy commit of memory required in JSC register file
+        https://bugs.webkit.org/show_bug.cgi?id=34349
+
+        * JavaScriptCore.pro: Added 1 new Symbian source file
+        * interpreter/RegisterFile.cpp:
+        (JSC::RegisterFile::~RegisterFile):
+        * interpreter/RegisterFile.h:
+        (JSC::RegisterFile::):
+        (JSC::RegisterFile::start):
+        (JSC::RegisterFile::end):
+        (JSC::RegisterFile::size):
+        (JSC::RegisterFile::setNumGlobals):
+        (JSC::RegisterFile::numGlobals):
+        (JSC::RegisterFile::maxGlobals):
+        (JSC::RegisterFile::lastGlobal):
+        (JSC::RegisterFile::markGlobals):
+        (JSC::RegisterFile::markCallFrames):
+        (JSC::isPageAligned):
+        (JSC::RegisterFile::RegisterFile):
+        (JSC::RegisterFile::shrink):
+        (JSC::RegisterFile::grow):
+        * wtf/symbian/RegisterFileAllocatorSymbian.cpp: Added.
+        (WTF::RegisterFileAllocator::RegisterFileAllocator):
+        Helper class to allocate memory required by RegisterFile
+        more efficiently.
+        (WTF::RegisterFileAllocator::~RegisterFileAllocator):
+        (WTF::RegisterFileAllocator::buffer):
+        (WTF::RegisterFileAllocator::grow):
+        (WTF::RegisterFileAllocator::shrink):
+        * wtf/symbian/RegisterFileAllocatorSymbian.h: Added.
+        * wtf/symbian/SymbianDefines.h: Added.
+
 2010-06-19  Thiago Macieira <thiago.macieira@nokia.com>
 
         Reviewed by Kenneth Rohde Christiansen.
--- a/src/3rdparty/javascriptcore/JavaScriptCore/JavaScriptCore.pri	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/3rdparty/javascriptcore/JavaScriptCore/JavaScriptCore.pri	Mon Oct 04 01:19:32 2010 +0300
@@ -211,6 +211,7 @@
     wtf/qt/ThreadingQt.cpp \
     wtf/RandomNumber.cpp \
     wtf/RefCountedLeakCounter.cpp \
+    wtf/symbian/RegisterFileAllocatorSymbian.cpp \
     wtf/ThreadingNone.cpp \
     wtf/Threading.cpp \
     wtf/TypeTraits.cpp \
--- a/src/3rdparty/javascriptcore/JavaScriptCore/interpreter/RegisterFile.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/3rdparty/javascriptcore/JavaScriptCore/interpreter/RegisterFile.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -40,6 +40,8 @@
     VirtualFree(m_buffer, DWORD(m_commitEnd) - DWORD(m_buffer), MEM_DECOMMIT);
 #endif
     VirtualFree(m_buffer, 0, MEM_RELEASE);
+#elif OS(SYMBIAN)
+    delete m_registerFileAllocator;
 #else
     fastFree(m_buffer);
 #endif
--- a/src/3rdparty/javascriptcore/JavaScriptCore/interpreter/RegisterFile.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/3rdparty/javascriptcore/JavaScriptCore/interpreter/RegisterFile.h	Mon Oct 04 01:19:32 2010 +0300
@@ -41,6 +41,10 @@
 #include <sys/mman.h>
 #endif
 
+#if OS(SYMBIAN)
+#include <wtf/symbian/RegisterFileAllocatorSymbian.h>
+#endif
+
 namespace JSC {
 
 /*
@@ -152,12 +156,21 @@
 #if HAVE(VIRTUALALLOC)
         Register* m_commitEnd;
 #endif
+#if OS(SYMBIAN)
+        // Commits and frees a continguous chunk of memory as required
+        WTF::RegisterFileAllocator* m_registerFileAllocator;
+#endif
 
         JSGlobalObject* m_globalObject; // The global object whose vars are currently stored in the register file.
     };
 
     // FIXME: Add a generic getpagesize() to WTF, then move this function to WTF as well.
-    inline bool isPageAligned(size_t size) { return size != 0 && size % (8 * 1024) == 0; }
+    // This is still a hack that should be fixed later. We know that a Symbian page size is 4K.
+    #if OS(SYMBIAN)
+    inline bool isPageAligned(size_t size) { return size && !(size % (4 * 1024)); }
+    #else
+    inline bool isPageAligned(size_t size) { return size && !(size % (8 * 1024)); }
+    #endif
 
     inline RegisterFile::RegisterFile(size_t capacity, size_t maxGlobals)
         : m_numGlobals(0)
@@ -204,7 +217,13 @@
             CRASH();
         }
         m_commitEnd = reinterpret_cast<Register*>(reinterpret_cast<char*>(m_buffer) + committedSize);
-    #else 
+    #elif OS(SYMBIAN)
+        m_registerFileAllocator = new WTF::RegisterFileAllocator(bufferLength);
+        m_buffer = (Register*)(m_registerFileAllocator->buffer());
+        // start by committing enough space to hold maxGlobals
+        void* newEnd = (void*)((int)m_buffer + (maxGlobals * sizeof(Register)));
+        m_registerFileAllocator->grow(newEnd);
+    #else
         /* 
          * If neither MMAP nor VIRTUALALLOC are available - use fastMalloc instead.
          *
@@ -226,8 +245,13 @@
         if (newEnd >= m_end)
             return;
         m_end = newEnd;
-        if (m_end == m_start && (m_maxUsed - m_start) > maxExcessCapacity)
+        if (m_end == m_start && (m_maxUsed - m_start) > maxExcessCapacity) {
+#if OS(SYMBIAN)
+            m_registerFileAllocator->shrink(newEnd);
+#endif
+
             releaseExcessCapacity();
+        }
     }
 
     inline bool RegisterFile::grow(Register* newEnd)
@@ -252,6 +276,9 @@
             m_commitEnd = reinterpret_cast<Register*>(reinterpret_cast<char*>(m_commitEnd) + size);
         }
 #endif
+#if OS(SYMBIAN)
+        m_registerFileAllocator->grow((void*)newEnd);
+#endif
 
         if (newEnd > m_maxUsed)
             m_maxUsed = newEnd;
--- a/src/3rdparty/javascriptcore/JavaScriptCore/runtime/CollectorHeapIterator.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/3rdparty/javascriptcore/JavaScriptCore/runtime/CollectorHeapIterator.h	Mon Oct 04 01:19:32 2010 +0300
@@ -97,14 +97,12 @@
 
     inline LiveObjectIterator& LiveObjectIterator::operator++()
     {
-        if (m_block < m_heap.nextBlock || m_cell < m_heap.nextCell) {
-            advance(HeapConstants::cellsPerBlock);
+        advance(HeapConstants::cellsPerBlock - 1);
+        if (m_block < m_heap.nextBlock || (m_block == m_heap.nextBlock && m_cell < m_heap.nextCell))
             return *this;
-        }
 
-        do {
-            advance(HeapConstants::cellsPerBlock);
-        } while (m_block < m_heap.usedBlocks && !m_heap.blocks[m_block]->marked.get(m_cell));
+        while (m_block < m_heap.usedBlocks && !m_heap.blocks[m_block]->marked.get(m_cell))
+            advance(HeapConstants::cellsPerBlock - 1);
         return *this;
     }
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/3rdparty/javascriptcore/JavaScriptCore/wtf/symbian/RegisterFileAllocatorSymbian.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,111 @@
+/*
+ * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1.  Redistributions of source code must retain the above copyright
+ *     notice, this list of conditions and the following disclaimer.
+ * 2.  Redistributions in binary form must reproduce the above copyright
+ *     notice, this list of conditions and the following disclaimer in the
+ *     documentation and/or other materials provided with the distribution.
+ * 3.  Neither the name of Apple Computer, Inc. ("Apple") nor the names of
+ *     its contributors may be used to endorse or promote products derived
+ *     from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+
+#if OS(SYMBIAN)
+
+#include "RegisterFileAllocatorSymbian.h"
+
+namespace WTF {
+
+/** Efficiently allocates memory pools of size poolSize.
+ * Primarily designed for JSC RegisterFile's needs.
+ * Not thread-safe.
+ */
+RegisterFileAllocator::RegisterFileAllocator(TUint32 reservationSize, TUint32 poolSize) :
+    m_reserved(reservationSize), m_poolSize(poolSize)
+{
+    // Get system's page size value.
+    SYMBIAN_PAGESIZE(m_pageSize);
+
+    // We only accept multiples of system page size for both initial reservation
+    // and the alignment/pool size
+    m_reserved = SYMBIAN_ROUNDUPTOMULTIPLE(m_reserved, m_pageSize);
+    __ASSERT_ALWAYS(SYMBIAN_ROUNDUPTOMULTIPLE(m_poolSize, m_pageSize),
+                    User::Panic(_L("RegisterFileAllocator1"), KErrArgument));
+
+    // Open a Symbian RChunk, and reserve requested virtual address range
+    // Any thread in this process can operate this RChunk due to EOwnerProcess access rights.
+    TInt ret = m_chunk.CreateDisconnectedLocal(0 , 0, (TInt)m_reserved , EOwnerProcess);
+    if (ret != KErrNone)
+        User::Panic(_L("RegisterFileAllocator2"), ret);
+
+    m_buffer = (void*)m_chunk.Base();
+    m_resEnd = (void*)(m_chunk.Base() + m_chunk.MaxSize());
+    m_comEnd = m_buffer;
+}
+
+RegisterFileAllocator::~RegisterFileAllocator()
+{
+    // release everything!
+    m_chunk.Decommit(0, m_chunk.MaxSize());
+    m_chunk.Close();
+}
+
+void* RegisterFileAllocator::buffer() const
+{
+    return m_buffer;
+}
+
+void RegisterFileAllocator::grow(void* newEnd)
+{
+    // trying to commit more memory than reserved!
+    if (newEnd > m_resEnd)
+        return;
+
+    if (newEnd > m_comEnd) {
+        TInt nBytes = (TInt)(newEnd) - (TInt)(m_comEnd);
+        nBytes = SYMBIAN_ROUNDUPTOMULTIPLE(nBytes, m_poolSize);
+        TInt offset = (TInt)m_comEnd - (TInt)m_buffer;
+
+        TInt ret = m_chunk.Commit(offset, nBytes);
+        if (ret == KErrNone)
+            m_comEnd = (void*)(m_chunk.Base() + m_chunk.Size());
+    }
+}
+
+void RegisterFileAllocator::shrink(void* newEnd)
+{
+    if (newEnd < m_comEnd) {
+        TInt nBytes = (TInt)newEnd - (TInt)m_comEnd;
+        if (nBytes >= m_poolSize) {
+            TInt offset = SYMBIAN_ROUNDUPTOMULTIPLE((TUint)newEnd, m_poolSize) - (TInt)m_buffer;
+            nBytes = (TInt)m_comEnd - offset - (TInt)m_buffer;
+            if (nBytes > 0) {
+                TInt ret = m_chunk.Decommit(offset, nBytes);
+                if (ret == KErrNone)
+                    m_comEnd = (void*)(m_chunk.Base() + m_chunk.Size());
+            }
+        }
+    }
+}
+
+} // end of namespace
+
+#endif // SYMBIAN
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/3rdparty/javascriptcore/JavaScriptCore/wtf/symbian/RegisterFileAllocatorSymbian.h	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,69 @@
+/*
+ * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1.  Redistributions of source code must retain the above copyright
+ *     notice, this list of conditions and the following disclaimer.
+ * 2.  Redistributions in binary form must reproduce the above copyright
+ *     notice, this list of conditions and the following disclaimer in the
+ *     documentation and/or other materials provided with the distribution.
+ * 3.  Neither the name of Apple Computer, Inc. ("Apple") nor the names of
+ *     its contributors may be used to endorse or promote products derived
+ *     from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef RegisterFileAllocatorSymbian_h
+#define RegisterFileAllocatorSymbian_h
+
+#include "SymbianDefines.h"
+
+namespace WTF {
+
+/**
+ *  Allocates contiguous regions of size poolSize.
+ *  poolSize must be a multiple of system page size (typically 4K on Symbian/ARM)
+ *
+ *  @param reservationSize Virtual address range to be reserved upon creation of chunk (bytes).
+ *  @param poolSize Size of a single allocation.
+ */
+class RegisterFileAllocator {
+
+public:
+    RegisterFileAllocator(
+            TUint32 reservationSize, TUint32 poolSize = SYMBIAN_REGFILEALLOC_DEFAULTPOOLSIZE);
+    ~RegisterFileAllocator();
+    void* buffer() const;
+    void grow(void* newEnd);
+    void shrink(void* newEnd);
+
+private:
+    RChunk   m_chunk; // Symbian chunk that lets us reserve/commit/decommit
+
+    // all following values are in numbers of bytes
+    TInt     m_pageSize; // cached value of system page size, typically 4K on Symbian
+    TUint32  m_reserved; // total number of reserved bytes in virtual memory
+    TUint32  m_poolSize; // size of one memory pool, set by default to 64K in wtf/symbian/SymbianDefines.h
+
+    void* m_buffer; // pointer to base of the chunk
+    void* m_comEnd; // pointer to end of currently committed memory
+    void* m_resEnd; // pointer to end of reserved memory
+
+};
+
+} // end of namespace
+
+#endif // RegisterFileAllocatorSymbian_h
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/3rdparty/javascriptcore/JavaScriptCore/wtf/symbian/SymbianDefines.h	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,42 @@
+/*
+ * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1.  Redistributions of source code must retain the above copyright
+ *     notice, this list of conditions and the following disclaimer.
+ * 2.  Redistributions in binary form must reproduce the above copyright
+ *     notice, this list of conditions and the following disclaimer in the
+ *     documentation and/or other materials provided with the distribution.
+ * 3.  Neither the name of Apple Computer, Inc. ("Apple") nor the names of
+ *     its contributors may be used to endorse or promote products derived
+ *     from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef SymbianDefines_h
+#define SymbianDefines_h
+
+#include <e32cmn.h>
+#include <e32std.h>
+#include <hal.h>
+
+#define SYMBIAN_PAGESIZE(x) (HAL::Get(HALData::EMemoryPageSize, x));
+#define SYMBIAN_FREERAM(x)  (HAL::Get(HALData::EMemoryRAMFree, x));
+#define SYMBIAN_ROUNDUPTOMULTIPLE(x, multipleof) ( (x + multipleof - 1) & ~(multipleof - 1) )
+
+#define SYMBIAN_REGFILEALLOC_DEFAULTPOOLSIZE 65536 // 64K
+
+#endif // SymbianDefines_h
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/3rdparty/libconninet.pri	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,18 @@
+INCLUDEPATH += $$PWD/libconninet/src
+
+QMAKE_CXXFLAGS += $$QT_CFLAGS_GLIB
+
+HEADERS += \
+    $$PWD/libconninet/src/dbusdispatcher.h \
+    $$PWD/libconninet/src/iapconf.h \
+    $$PWD/libconninet/src/iapmonitor.h \
+    $$PWD/libconninet/src/maemo_icd.h \
+    $$PWD/libconninet/src/proxyconf.h
+
+SOURCES += \
+    $$PWD/libconninet/src/dbusdispatcher.cpp \
+    $$PWD/libconninet/src/iapconf.cpp \
+    $$PWD/libconninet/src/iapmonitor.cpp \
+    $$PWD/libconninet/src/maemo_icd.cpp \
+    $$PWD/libconninet/src/proxyconf.cpp
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/3rdparty/libconninet/COPYING	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,510 @@
+
+                  GNU LESSER GENERAL PUBLIC LICENSE
+                       Version 2.1, February 1999
+
+ Copyright (C) 1991, 1999 Free Software Foundation, Inc.
+     59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the Lesser GPL.  It also counts
+ as the successor of the GNU Library Public License, version 2, hence
+ the version number 2.1.]
+
+                            Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+  This license, the Lesser General Public License, applies to some
+specially designated software packages--typically libraries--of the
+Free Software Foundation and other authors who decide to use it.  You
+can use it too, but we suggest you first think carefully about whether
+this license or the ordinary General Public License is the better
+strategy to use in any particular case, based on the explanations
+below.
+
+  When we speak of free software, we are referring to freedom of use,
+not price.  Our General Public Licenses are designed to make sure that
+you have the freedom to distribute copies of free software (and charge
+for this service if you wish); that you receive source code or can get
+it if you want it; that you can change the software and use pieces of
+it in new free programs; and that you are informed that you can do
+these things.
+
+  To protect your rights, we need to make restrictions that forbid
+distributors to deny you these rights or to ask you to surrender these
+rights.  These restrictions translate to certain responsibilities for
+you if you distribute copies of the library or if you modify it.
+
+  For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you.  You must make sure that they, too, receive or can get the source
+code.  If you link other code with the library, you must provide
+complete object files to the recipients, so that they can relink them
+with the library after making changes to the library and recompiling
+it.  And you must show them these terms so they know their rights.
+
+  We protect your rights with a two-step method: (1) we copyright the
+library, and (2) we offer you this license, which gives you legal
+permission to copy, distribute and/or modify the library.
+
+  To protect each distributor, we want to make it very clear that
+there is no warranty for the free library.  Also, if the library is
+modified by someone else and passed on, the recipients should know
+that what they have is not the original version, so that the original
+author's reputation will not be affected by problems that might be
+introduced by others.
+
+  Finally, software patents pose a constant threat to the existence of
+any free program.  We wish to make sure that a company cannot
+effectively restrict the users of a free program by obtaining a
+restrictive license from a patent holder.  Therefore, we insist that
+any patent license obtained for a version of the library must be
+consistent with the full freedom of use specified in this license.
+
+  Most GNU software, including some libraries, is covered by the
+ordinary GNU General Public License.  This license, the GNU Lesser
+General Public License, applies to certain designated libraries, and
+is quite different from the ordinary General Public License.  We use
+this license for certain libraries in order to permit linking those
+libraries into non-free programs.
+
+  When a program is linked with a library, whether statically or using
+a shared library, the combination of the two is legally speaking a
+combined work, a derivative of the original library.  The ordinary
+General Public License therefore permits such linking only if the
+entire combination fits its criteria of freedom.  The Lesser General
+Public License permits more lax criteria for linking other code with
+the library.
+
+  We call this license the "Lesser" General Public License because it
+does Less to protect the user's freedom than the ordinary General
+Public License.  It also provides other free software developers Less
+of an advantage over competing non-free programs.  These disadvantages
+are the reason we use the ordinary General Public License for many
+libraries.  However, the Lesser license provides advantages in certain
+special circumstances.
+
+  For example, on rare occasions, there may be a special need to
+encourage the widest possible use of a certain library, so that it
+becomes a de-facto standard.  To achieve this, non-free programs must
+be allowed to use the library.  A more frequent case is that a free
+library does the same job as widely used non-free libraries.  In this
+case, there is little to gain by limiting the free library to free
+software only, so we use the Lesser General Public License.
+
+  In other cases, permission to use a particular library in non-free
+programs enables a greater number of people to use a large body of
+free software.  For example, permission to use the GNU C Library in
+non-free programs enables many more people to use the whole GNU
+operating system, as well as its variant, the GNU/Linux operating
+system.
+
+  Although the Lesser General Public License is Less protective of the
+users' freedom, it does ensure that the user of a program that is
+linked with the Library has the freedom and the wherewithal to run
+that program using a modified version of the Library.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.  Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library".  The
+former contains code derived from the library, whereas the latter must
+be combined with the library in order to run.
+
+                  GNU LESSER GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License Agreement applies to any software library or other
+program which contains a notice placed by the copyright holder or
+other authorized party saying it may be distributed under the terms of
+this Lesser General Public License (also called "this License").
+Each licensee is addressed as "you".
+
+  A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+  The "Library", below, refers to any such software library or work
+which has been distributed under these terms.  A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language.  (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+  "Source code" for a work means the preferred form of the work for
+making modifications to it.  For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control
+compilation and installation of the library.
+
+  Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it).  Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+
+  1. You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+
+  You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.
+
+  2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) The modified work must itself be a software library.
+
+    b) You must cause the files modified to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    c) You must cause the whole of the work to be licensed at no
+    charge to all third parties under the terms of this License.
+
+    d) If a facility in the modified Library refers to a function or a
+    table of data to be supplied by an application program that uses
+    the facility, other than as an argument passed when the facility
+    is invoked, then you must make a good faith effort to ensure that,
+    in the event an application does not supply such function or
+    table, the facility still operates, and performs whatever part of
+    its purpose remains meaningful.
+
+    (For example, a function in a library to compute square roots has
+    a purpose that is entirely well-defined independent of the
+    application.  Therefore, Subsection 2d requires that any
+    application-supplied function or table used by this function must
+    be optional: if the application does not supply it, the square
+    root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library.  To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License.  (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.)  Do not make any other change in
+these notices.
+
+  Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+  This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+  4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+
+  If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library".  Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+  However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library".  The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+  When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library.  The
+threshold for this to be true is not precisely defined by law.
+
+  If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work.  (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+  Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+
+  6. As an exception to the Sections above, you may also combine or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+  You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License.  You must supply a copy of this License.  If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License.  Also, you must do one
+of these things:
+
+    a) Accompany the work with the complete corresponding
+    machine-readable source code for the Library including whatever
+    changes were used in the work (which must be distributed under
+    Sections 1 and 2 above); and, if the work is an executable linked
+    with the Library, with the complete machine-readable "work that
+    uses the Library", as object code and/or source code, so that the
+    user can modify the Library and then relink to produce a modified
+    executable containing the modified Library.  (It is understood
+    that the user who changes the contents of definitions files in the
+    Library will not necessarily be able to recompile the application
+    to use the modified definitions.)
+
+    b) Use a suitable shared library mechanism for linking with the
+    Library.  A suitable mechanism is one that (1) uses at run time a
+    copy of the library already present on the user's computer system,
+    rather than copying library functions into the executable, and (2)
+    will operate properly with a modified version of the library, if
+    the user installs one, as long as the modified version is
+    interface-compatible with the version that the work was made with.
+
+    c) Accompany the work with a written offer, valid for at least
+    three years, to give the same user the materials specified in
+    Subsection 6a, above, for a charge no more than the cost of
+    performing this distribution.
+
+    d) If distribution of the work is made by offering access to copy
+    from a designated place, offer equivalent access to copy the above
+    specified materials from the same place.
+
+    e) Verify that the user has already received a copy of these
+    materials or that you have already sent this user a copy.
+
+  For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it.  However, as a special exception,
+the materials to be distributed need not include anything that is
+normally distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+
+  It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system.  Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+
+  7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+    a) Accompany the combined library with a copy of the same work
+    based on the Library, uncombined with any other library
+    facilities.  This must be distributed under the terms of the
+    Sections above.
+
+    b) Give prominent notice with the combined library of the fact
+    that part of it is a work based on the Library, and explaining
+    where to find the accompanying uncombined form of the same work.
+
+  8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License.  Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License.  However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+  9. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Library or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+  10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties with
+this License.
+
+  11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply, and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License
+may add an explicit geographical distribution limitation excluding those
+countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+  13. The Free Software Foundation may publish revised and/or new
+versions of the Lesser General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Library
+specifies a version number of this License which applies to it and
+"any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation.  If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+
+  14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission.  For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this.  Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.
+
+                            NO WARRANTY
+
+  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+                     END OF TERMS AND CONDITIONS
+
+           How to Apply These Terms to Your New Libraries
+
+  If you develop a new library, and you want it to be of the greatest
+possible use to the public, we recommend making it free software that
+everyone can redistribute and change.  You can do so by permitting
+redistribution under these terms (or, alternatively, under the terms
+of the ordinary General Public License).
+
+  To apply these terms, attach the following notices to the library.
+It is safest to attach them to the start of each source file to most
+effectively convey the exclusion of warranty; and each file should
+have at least the "copyright" line and a pointer to where the full
+notice is found.
+
+
+    <one line to give the library's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307  USA
+
+Also add information on how to contact you by electronic and paper mail.
+
+You should also get your employer (if you work as a programmer) or
+your school, if any, to sign a "copyright disclaimer" for the library,
+if necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the
+  library `Frob' (a library for tweaking knobs) written by James
+  Random Hacker.
+
+  <signature of Ty Coon>, 1 April 1990
+  Ty Coon, President of Vice
+
+That's all there is to it!
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/3rdparty/libconninet/INSTALL	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,229 @@
+Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002 Free Software
+Foundation, Inc.
+
+   This file is free documentation; the Free Software Foundation gives
+unlimited permission to copy, distribute and modify it.
+
+Basic Installation
+==================
+
+   These are generic installation instructions.
+
+   The `configure' shell script attempts to guess correct values for
+various system-dependent variables used during compilation.  It uses
+those values to create a `Makefile' in each directory of the package.
+It may also create one or more `.h' files containing system-dependent
+definitions.  Finally, it creates a shell script `config.status' that
+you can run in the future to recreate the current configuration, and a
+file `config.log' containing compiler output (useful mainly for
+debugging `configure').
+
+   It can also use an optional file (typically called `config.cache'
+and enabled with `--cache-file=config.cache' or simply `-C') that saves
+the results of its tests to speed up reconfiguring.  (Caching is
+disabled by default to prevent problems with accidental use of stale
+cache files.)
+
+   If you need to do unusual things to compile the package, please try
+to figure out how `configure' could check whether to do them, and mail
+diffs or instructions to the address given in the `README' so they can
+be considered for the next release.  If you are using the cache, and at
+some point `config.cache' contains results you don't want to keep, you
+may remove or edit it.
+
+   The file `configure.ac' (or `configure.in') is used to create
+`configure' by a program called `autoconf'.  You only need
+`configure.ac' if you want to change it or regenerate `configure' using
+a newer version of `autoconf'.
+
+The simplest way to compile this package is:
+
+  1. `cd' to the directory containing the package's source code and type
+     `./configure' to configure the package for your system.  If you're
+     using `csh' on an old version of System V, you might need to type
+     `sh ./configure' instead to prevent `csh' from trying to execute
+     `configure' itself.
+
+     Running `configure' takes awhile.  While running, it prints some
+     messages telling which features it is checking for.
+
+  2. Type `make' to compile the package.
+
+  3. Optionally, type `make check' to run any self-tests that come with
+     the package.
+
+  4. Type `make install' to install the programs and any data files and
+     documentation.
+
+  5. You can remove the program binaries and object files from the
+     source code directory by typing `make clean'.  To also remove the
+     files that `configure' created (so you can compile the package for
+     a different kind of computer), type `make distclean'.  There is
+     also a `make maintainer-clean' target, but that is intended mainly
+     for the package's developers.  If you use it, you may have to get
+     all sorts of other programs in order to regenerate files that came
+     with the distribution.
+
+Compilers and Options
+=====================
+
+   Some systems require unusual options for compilation or linking that
+the `configure' script does not know about.  Run `./configure --help'
+for details on some of the pertinent environment variables.
+
+   You can give `configure' initial values for configuration parameters
+by setting variables in the command line or in the environment.  Here
+is an example:
+
+     ./configure CC=c89 CFLAGS=-O2 LIBS=-lposix
+
+   *Note Defining Variables::, for more details.
+
+Compiling For Multiple Architectures
+====================================
+
+   You can compile the package for more than one kind of computer at the
+same time, by placing the object files for each architecture in their
+own directory.  To do this, you must use a version of `make' that
+supports the `VPATH' variable, such as GNU `make'.  `cd' to the
+directory where you want the object files and executables to go and run
+the `configure' script.  `configure' automatically checks for the
+source code in the directory that `configure' is in and in `..'.
+
+   If you have to use a `make' that does not support the `VPATH'
+variable, you have to compile the package for one architecture at a
+time in the source code directory.  After you have installed the
+package for one architecture, use `make distclean' before reconfiguring
+for another architecture.
+
+Installation Names
+==================
+
+   By default, `make install' will install the package's files in
+`/usr/local/bin', `/usr/local/man', etc.  You can specify an
+installation prefix other than `/usr/local' by giving `configure' the
+option `--prefix=PATH'.
+
+   You can specify separate installation prefixes for
+architecture-specific files and architecture-independent files.  If you
+give `configure' the option `--exec-prefix=PATH', the package will use
+PATH as the prefix for installing programs and libraries.
+Documentation and other data files will still use the regular prefix.
+
+   In addition, if you use an unusual directory layout you can give
+options like `--bindir=PATH' to specify different values for particular
+kinds of files.  Run `configure --help' for a list of the directories
+you can set and what kinds of files go in them.
+
+   If the package supports it, you can cause programs to be installed
+with an extra prefix or suffix on their names by giving `configure' the
+option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
+
+Optional Features
+=================
+
+   Some packages pay attention to `--enable-FEATURE' options to
+`configure', where FEATURE indicates an optional part of the package.
+They may also pay attention to `--with-PACKAGE' options, where PACKAGE
+is something like `gnu-as' or `x' (for the X Window System).  The
+`README' should mention any `--enable-' and `--with-' options that the
+package recognizes.
+
+   For packages that use the X Window System, `configure' can usually
+find the X include and library files automatically, but if it doesn't,
+you can use the `configure' options `--x-includes=DIR' and
+`--x-libraries=DIR' to specify their locations.
+
+Specifying the System Type
+==========================
+
+   There may be some features `configure' cannot figure out
+automatically, but needs to determine by the type of machine the package
+will run on.  Usually, assuming the package is built to be run on the
+_same_ architectures, `configure' can figure that out, but if it prints
+a message saying it cannot guess the machine type, give it the
+`--build=TYPE' option.  TYPE can either be a short name for the system
+type, such as `sun4', or a canonical name which has the form:
+
+     CPU-COMPANY-SYSTEM
+
+where SYSTEM can have one of these forms:
+
+     OS KERNEL-OS
+
+   See the file `config.sub' for the possible values of each field.  If
+`config.sub' isn't included in this package, then this package doesn't
+need to know the machine type.
+
+   If you are _building_ compiler tools for cross-compiling, you should
+use the `--target=TYPE' option to select the type of system they will
+produce code for.
+
+   If you want to _use_ a cross compiler, that generates code for a
+platform different from the build platform, you should specify the
+"host" platform (i.e., that on which the generated programs will
+eventually be run) with `--host=TYPE'.
+
+Sharing Defaults
+================
+
+   If you want to set default values for `configure' scripts to share,
+you can create a site shell script called `config.site' that gives
+default values for variables like `CC', `cache_file', and `prefix'.
+`configure' looks for `PREFIX/share/config.site' if it exists, then
+`PREFIX/etc/config.site' if it exists.  Or, you can set the
+`CONFIG_SITE' environment variable to the location of the site script.
+A warning: not all `configure' scripts look for a site script.
+
+Defining Variables
+==================
+
+   Variables not defined in a site shell script can be set in the
+environment passed to `configure'.  However, some packages may run
+configure again during the build, and the customized values of these
+variables may be lost.  In order to avoid this problem, you should set
+them in the `configure' command line, using `VAR=value'.  For example:
+
+     ./configure CC=/usr/local2/bin/gcc
+
+will cause the specified gcc to be used as the C compiler (unless it is
+overridden in the site shell script).
+
+`configure' Invocation
+======================
+
+   `configure' recognizes the following options to control how it
+operates.
+
+`--help'
+`-h'
+     Print a summary of the options to `configure', and exit.
+
+`--version'
+`-V'
+     Print the version of Autoconf used to generate the `configure'
+     script, and exit.
+
+`--cache-file=FILE'
+     Enable the cache: use and save the results of the tests in FILE,
+     traditionally `config.cache'.  FILE defaults to `/dev/null' to
+     disable caching.
+
+`--config-cache'
+`-C'
+     Alias for `--cache-file=config.cache'.
+
+`--quiet'
+`--silent'
+`-q'
+     Do not print messages saying which checks are being made.  To
+     suppress all normal output, redirect it to `/dev/null' (any error
+     messages will still be shown).
+
+`--srcdir=DIR'
+     Look for the package's source code in directory DIR.  Usually
+     `configure' can determine that directory automatically.
+
+`configure' also accepts some other, not widely useful, options.  Run
+`configure --help' for more details.
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/3rdparty/libconninet/autogen.sh	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+autoreconf --verbose --install --force
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/3rdparty/libconninet/config.guess	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,1533 @@
+#! /bin/sh
+# Attempt to guess a canonical system name.
+#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
+#   Free Software Foundation, Inc.
+
+timestamp='2009-06-10'
+
+# This file is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
+# 02110-1301, USA.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+
+# Originally written by Per Bothner <per@bothner.com>.
+# Please send patches to <config-patches@gnu.org>.  Submit a context
+# diff and a properly formatted ChangeLog entry.
+#
+# This script attempts to guess a canonical system name similar to
+# config.sub.  If it succeeds, it prints the system name on stdout, and
+# exits with 0.  Otherwise, it exits with 1.
+#
+# The plan is that this can be called by configure scripts if you
+# don't specify an explicit build system type.
+
+me=`echo "$0" | sed -e 's,.*/,,'`
+
+usage="\
+Usage: $0 [OPTION]
+
+Output the configuration name of the system \`$me' is run on.
+
+Operation modes:
+  -h, --help         print this help, then exit
+  -t, --time-stamp   print date of last modification, then exit
+  -v, --version      print version number, then exit
+
+Report bugs and patches to <config-patches@gnu.org>."
+
+version="\
+GNU config.guess ($timestamp)
+
+Originally written by Per Bothner.
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
+2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+
+This is free software; see the source for copying conditions.  There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+
+help="
+Try \`$me --help' for more information."
+
+# Parse command line
+while test $# -gt 0 ; do
+  case $1 in
+    --time-stamp | --time* | -t )
+       echo "$timestamp" ; exit ;;
+    --version | -v )
+       echo "$version" ; exit ;;
+    --help | --h* | -h )
+       echo "$usage"; exit ;;
+    -- )     # Stop option processing
+       shift; break ;;
+    - )	# Use stdin as input.
+       break ;;
+    -* )
+       echo "$me: invalid option $1$help" >&2
+       exit 1 ;;
+    * )
+       break ;;
+  esac
+done
+
+if test $# != 0; then
+  echo "$me: too many arguments$help" >&2
+  exit 1
+fi
+
+trap 'exit 1' 1 2 15
+
+# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
+# compiler to aid in system detection is discouraged as it requires
+# temporary files to be created and, as you can see below, it is a
+# headache to deal with in a portable fashion.
+
+# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
+# use `HOST_CC' if defined, but it is deprecated.
+
+# Portable tmp directory creation inspired by the Autoconf team.
+
+set_cc_for_build='
+trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
+trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
+: ${TMPDIR=/tmp} ;
+ { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
+ { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
+ { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
+ { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
+dummy=$tmp/dummy ;
+tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
+case $CC_FOR_BUILD,$HOST_CC,$CC in
+ ,,)    echo "int x;" > $dummy.c ;
+	for c in cc gcc c89 c99 ; do
+	  if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
+	     CC_FOR_BUILD="$c"; break ;
+	  fi ;
+	done ;
+	if test x"$CC_FOR_BUILD" = x ; then
+	  CC_FOR_BUILD=no_compiler_found ;
+	fi
+	;;
+ ,,*)   CC_FOR_BUILD=$CC ;;
+ ,*,*)  CC_FOR_BUILD=$HOST_CC ;;
+esac ; set_cc_for_build= ;'
+
+# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
+# (ghazi@noc.rutgers.edu 1994-08-24)
+if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
+	PATH=$PATH:/.attbin ; export PATH
+fi
+
+UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
+UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
+UNAME_SYSTEM=`(uname -s) 2>/dev/null`  || UNAME_SYSTEM=unknown
+UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
+
+# Note: order is significant - the case branches are not exclusive.
+
+case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
+    *:NetBSD:*:*)
+	# NetBSD (nbsd) targets should (where applicable) match one or
+	# more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
+	# *-*-netbsdecoff* and *-*-netbsd*.  For targets that recently
+	# switched to ELF, *-*-netbsd* would select the old
+	# object file format.  This provides both forward
+	# compatibility and a consistent mechanism for selecting the
+	# object file format.
+	#
+	# Note: NetBSD doesn't particularly care about the vendor
+	# portion of the name.  We always set it to "unknown".
+	sysctl="sysctl -n hw.machine_arch"
+	UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
+	    /usr/sbin/$sysctl 2>/dev/null || echo unknown)`
+	case "${UNAME_MACHINE_ARCH}" in
+	    armeb) machine=armeb-unknown ;;
+	    arm*) machine=arm-unknown ;;
+	    sh3el) machine=shl-unknown ;;
+	    sh3eb) machine=sh-unknown ;;
+	    sh5el) machine=sh5le-unknown ;;
+	    *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
+	esac
+	# The Operating System including object format, if it has switched
+	# to ELF recently, or will in the future.
+	case "${UNAME_MACHINE_ARCH}" in
+	    arm*|i386|m68k|ns32k|sh3*|sparc|vax)
+		eval $set_cc_for_build
+		if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
+			| grep -q __ELF__
+		then
+		    # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
+		    # Return netbsd for either.  FIX?
+		    os=netbsd
+		else
+		    os=netbsdelf
+		fi
+		;;
+	    *)
+	        os=netbsd
+		;;
+	esac
+	# The OS release
+	# Debian GNU/NetBSD machines have a different userland, and
+	# thus, need a distinct triplet. However, they do not need
+	# kernel version information, so it can be replaced with a
+	# suitable tag, in the style of linux-gnu.
+	case "${UNAME_VERSION}" in
+	    Debian*)
+		release='-gnu'
+		;;
+	    *)
+		release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
+		;;
+	esac
+	# Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
+	# contains redundant information, the shorter form:
+	# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
+	echo "${machine}-${os}${release}"
+	exit ;;
+    *:OpenBSD:*:*)
+	UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
+	echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
+	exit ;;
+    *:ekkoBSD:*:*)
+	echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
+	exit ;;
+    *:SolidBSD:*:*)
+	echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE}
+	exit ;;
+    macppc:MirBSD:*:*)
+	echo powerpc-unknown-mirbsd${UNAME_RELEASE}
+	exit ;;
+    *:MirBSD:*:*)
+	echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
+	exit ;;
+    alpha:OSF1:*:*)
+	case $UNAME_RELEASE in
+	*4.0)
+		UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
+		;;
+	*5.*)
+	        UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
+		;;
+	esac
+	# According to Compaq, /usr/sbin/psrinfo has been available on
+	# OSF/1 and Tru64 systems produced since 1995.  I hope that
+	# covers most systems running today.  This code pipes the CPU
+	# types through head -n 1, so we only detect the type of CPU 0.
+	ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^  The alpha \(.*\) processor.*$/\1/p' | head -n 1`
+	case "$ALPHA_CPU_TYPE" in
+	    "EV4 (21064)")
+		UNAME_MACHINE="alpha" ;;
+	    "EV4.5 (21064)")
+		UNAME_MACHINE="alpha" ;;
+	    "LCA4 (21066/21068)")
+		UNAME_MACHINE="alpha" ;;
+	    "EV5 (21164)")
+		UNAME_MACHINE="alphaev5" ;;
+	    "EV5.6 (21164A)")
+		UNAME_MACHINE="alphaev56" ;;
+	    "EV5.6 (21164PC)")
+		UNAME_MACHINE="alphapca56" ;;
+	    "EV5.7 (21164PC)")
+		UNAME_MACHINE="alphapca57" ;;
+	    "EV6 (21264)")
+		UNAME_MACHINE="alphaev6" ;;
+	    "EV6.7 (21264A)")
+		UNAME_MACHINE="alphaev67" ;;
+	    "EV6.8CB (21264C)")
+		UNAME_MACHINE="alphaev68" ;;
+	    "EV6.8AL (21264B)")
+		UNAME_MACHINE="alphaev68" ;;
+	    "EV6.8CX (21264D)")
+		UNAME_MACHINE="alphaev68" ;;
+	    "EV6.9A (21264/EV69A)")
+		UNAME_MACHINE="alphaev69" ;;
+	    "EV7 (21364)")
+		UNAME_MACHINE="alphaev7" ;;
+	    "EV7.9 (21364A)")
+		UNAME_MACHINE="alphaev79" ;;
+	esac
+	# A Pn.n version is a patched version.
+	# A Vn.n version is a released version.
+	# A Tn.n version is a released field test version.
+	# A Xn.n version is an unreleased experimental baselevel.
+	# 1.2 uses "1.2" for uname -r.
+	echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+	exit ;;
+    Alpha\ *:Windows_NT*:*)
+	# How do we know it's Interix rather than the generic POSIX subsystem?
+	# Should we change UNAME_MACHINE based on the output of uname instead
+	# of the specific Alpha model?
+	echo alpha-pc-interix
+	exit ;;
+    21064:Windows_NT:50:3)
+	echo alpha-dec-winnt3.5
+	exit ;;
+    Amiga*:UNIX_System_V:4.0:*)
+	echo m68k-unknown-sysv4
+	exit ;;
+    *:[Aa]miga[Oo][Ss]:*:*)
+	echo ${UNAME_MACHINE}-unknown-amigaos
+	exit ;;
+    *:[Mm]orph[Oo][Ss]:*:*)
+	echo ${UNAME_MACHINE}-unknown-morphos
+	exit ;;
+    *:OS/390:*:*)
+	echo i370-ibm-openedition
+	exit ;;
+    *:z/VM:*:*)
+	echo s390-ibm-zvmoe
+	exit ;;
+    *:OS400:*:*)
+        echo powerpc-ibm-os400
+	exit ;;
+    arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
+	echo arm-acorn-riscix${UNAME_RELEASE}
+	exit ;;
+    arm:riscos:*:*|arm:RISCOS:*:*)
+	echo arm-unknown-riscos
+	exit ;;
+    SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
+	echo hppa1.1-hitachi-hiuxmpp
+	exit ;;
+    Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
+	# akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
+	if test "`(/bin/universe) 2>/dev/null`" = att ; then
+		echo pyramid-pyramid-sysv3
+	else
+		echo pyramid-pyramid-bsd
+	fi
+	exit ;;
+    NILE*:*:*:dcosx)
+	echo pyramid-pyramid-svr4
+	exit ;;
+    DRS?6000:unix:4.0:6*)
+	echo sparc-icl-nx6
+	exit ;;
+    DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
+	case `/usr/bin/uname -p` in
+	    sparc) echo sparc-icl-nx7; exit ;;
+	esac ;;
+    s390x:SunOS:*:*)
+	echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+	exit ;;
+    sun4H:SunOS:5.*:*)
+	echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+	exit ;;
+    sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
+	echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+	exit ;;
+    i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
+	eval $set_cc_for_build
+	SUN_ARCH="i386"
+	# If there is a compiler, see if it is configured for 64-bit objects.
+	# Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
+	# This test works for both compilers.
+	if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
+	    if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
+		(CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
+		grep IS_64BIT_ARCH >/dev/null
+	    then
+		SUN_ARCH="x86_64"
+	    fi
+	fi
+	echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+	exit ;;
+    sun4*:SunOS:6*:*)
+	# According to config.sub, this is the proper way to canonicalize
+	# SunOS6.  Hard to guess exactly what SunOS6 will be like, but
+	# it's likely to be more like Solaris than SunOS4.
+	echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+	exit ;;
+    sun4*:SunOS:*:*)
+	case "`/usr/bin/arch -k`" in
+	    Series*|S4*)
+		UNAME_RELEASE=`uname -v`
+		;;
+	esac
+	# Japanese Language versions have a version number like `4.1.3-JL'.
+	echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
+	exit ;;
+    sun3*:SunOS:*:*)
+	echo m68k-sun-sunos${UNAME_RELEASE}
+	exit ;;
+    sun*:*:4.2BSD:*)
+	UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
+	test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
+	case "`/bin/arch`" in
+	    sun3)
+		echo m68k-sun-sunos${UNAME_RELEASE}
+		;;
+	    sun4)
+		echo sparc-sun-sunos${UNAME_RELEASE}
+		;;
+	esac
+	exit ;;
+    aushp:SunOS:*:*)
+	echo sparc-auspex-sunos${UNAME_RELEASE}
+	exit ;;
+    # The situation for MiNT is a little confusing.  The machine name
+    # can be virtually everything (everything which is not
+    # "atarist" or "atariste" at least should have a processor
+    # > m68000).  The system name ranges from "MiNT" over "FreeMiNT"
+    # to the lowercase version "mint" (or "freemint").  Finally
+    # the system name "TOS" denotes a system which is actually not
+    # MiNT.  But MiNT is downward compatible to TOS, so this should
+    # be no problem.
+    atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
+        echo m68k-atari-mint${UNAME_RELEASE}
+	exit ;;
+    atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
+	echo m68k-atari-mint${UNAME_RELEASE}
+        exit ;;
+    *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
+        echo m68k-atari-mint${UNAME_RELEASE}
+	exit ;;
+    milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
+        echo m68k-milan-mint${UNAME_RELEASE}
+        exit ;;
+    hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
+        echo m68k-hades-mint${UNAME_RELEASE}
+        exit ;;
+    *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
+        echo m68k-unknown-mint${UNAME_RELEASE}
+        exit ;;
+    m68k:machten:*:*)
+	echo m68k-apple-machten${UNAME_RELEASE}
+	exit ;;
+    powerpc:machten:*:*)
+	echo powerpc-apple-machten${UNAME_RELEASE}
+	exit ;;
+    RISC*:Mach:*:*)
+	echo mips-dec-mach_bsd4.3
+	exit ;;
+    RISC*:ULTRIX:*:*)
+	echo mips-dec-ultrix${UNAME_RELEASE}
+	exit ;;
+    VAX*:ULTRIX*:*:*)
+	echo vax-dec-ultrix${UNAME_RELEASE}
+	exit ;;
+    2020:CLIX:*:* | 2430:CLIX:*:*)
+	echo clipper-intergraph-clix${UNAME_RELEASE}
+	exit ;;
+    mips:*:*:UMIPS | mips:*:*:RISCos)
+	eval $set_cc_for_build
+	sed 's/^	//' << EOF >$dummy.c
+#ifdef __cplusplus
+#include <stdio.h>  /* for printf() prototype */
+	int main (int argc, char *argv[]) {
+#else
+	int main (argc, argv) int argc; char *argv[]; {
+#endif
+	#if defined (host_mips) && defined (MIPSEB)
+	#if defined (SYSTYPE_SYSV)
+	  printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
+	#endif
+	#if defined (SYSTYPE_SVR4)
+	  printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
+	#endif
+	#if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
+	  printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
+	#endif
+	#endif
+	  exit (-1);
+	}
+EOF
+	$CC_FOR_BUILD -o $dummy $dummy.c &&
+	  dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` &&
+	  SYSTEM_NAME=`$dummy $dummyarg` &&
+	    { echo "$SYSTEM_NAME"; exit; }
+	echo mips-mips-riscos${UNAME_RELEASE}
+	exit ;;
+    Motorola:PowerMAX_OS:*:*)
+	echo powerpc-motorola-powermax
+	exit ;;
+    Motorola:*:4.3:PL8-*)
+	echo powerpc-harris-powermax
+	exit ;;
+    Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
+	echo powerpc-harris-powermax
+	exit ;;
+    Night_Hawk:Power_UNIX:*:*)
+	echo powerpc-harris-powerunix
+	exit ;;
+    m88k:CX/UX:7*:*)
+	echo m88k-harris-cxux7
+	exit ;;
+    m88k:*:4*:R4*)
+	echo m88k-motorola-sysv4
+	exit ;;
+    m88k:*:3*:R3*)
+	echo m88k-motorola-sysv3
+	exit ;;
+    AViiON:dgux:*:*)
+        # DG/UX returns AViiON for all architectures
+        UNAME_PROCESSOR=`/usr/bin/uname -p`
+	if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
+	then
+	    if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
+	       [ ${TARGET_BINARY_INTERFACE}x = x ]
+	    then
+		echo m88k-dg-dgux${UNAME_RELEASE}
+	    else
+		echo m88k-dg-dguxbcs${UNAME_RELEASE}
+	    fi
+	else
+	    echo i586-dg-dgux${UNAME_RELEASE}
+	fi
+ 	exit ;;
+    M88*:DolphinOS:*:*)	# DolphinOS (SVR3)
+	echo m88k-dolphin-sysv3
+	exit ;;
+    M88*:*:R3*:*)
+	# Delta 88k system running SVR3
+	echo m88k-motorola-sysv3
+	exit ;;
+    XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
+	echo m88k-tektronix-sysv3
+	exit ;;
+    Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
+	echo m68k-tektronix-bsd
+	exit ;;
+    *:IRIX*:*:*)
+	echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
+	exit ;;
+    ????????:AIX?:[12].1:2)   # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
+	echo romp-ibm-aix     # uname -m gives an 8 hex-code CPU id
+	exit ;;               # Note that: echo "'`uname -s`'" gives 'AIX '
+    i*86:AIX:*:*)
+	echo i386-ibm-aix
+	exit ;;
+    ia64:AIX:*:*)
+	if [ -x /usr/bin/oslevel ] ; then
+		IBM_REV=`/usr/bin/oslevel`
+	else
+		IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+	fi
+	echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
+	exit ;;
+    *:AIX:2:3)
+	if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
+		eval $set_cc_for_build
+		sed 's/^		//' << EOF >$dummy.c
+		#include <sys/systemcfg.h>
+
+		main()
+			{
+			if (!__power_pc())
+				exit(1);
+			puts("powerpc-ibm-aix3.2.5");
+			exit(0);
+			}
+EOF
+		if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy`
+		then
+			echo "$SYSTEM_NAME"
+		else
+			echo rs6000-ibm-aix3.2.5
+		fi
+	elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
+		echo rs6000-ibm-aix3.2.4
+	else
+		echo rs6000-ibm-aix3.2
+	fi
+	exit ;;
+    *:AIX:*:[456])
+	IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
+	if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
+		IBM_ARCH=rs6000
+	else
+		IBM_ARCH=powerpc
+	fi
+	if [ -x /usr/bin/oslevel ] ; then
+		IBM_REV=`/usr/bin/oslevel`
+	else
+		IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+	fi
+	echo ${IBM_ARCH}-ibm-aix${IBM_REV}
+	exit ;;
+    *:AIX:*:*)
+	echo rs6000-ibm-aix
+	exit ;;
+    ibmrt:4.4BSD:*|romp-ibm:BSD:*)
+	echo romp-ibm-bsd4.4
+	exit ;;
+    ibmrt:*BSD:*|romp-ibm:BSD:*)            # covers RT/PC BSD and
+	echo romp-ibm-bsd${UNAME_RELEASE}   # 4.3 with uname added to
+	exit ;;                             # report: romp-ibm BSD 4.3
+    *:BOSX:*:*)
+	echo rs6000-bull-bosx
+	exit ;;
+    DPX/2?00:B.O.S.:*:*)
+	echo m68k-bull-sysv3
+	exit ;;
+    9000/[34]??:4.3bsd:1.*:*)
+	echo m68k-hp-bsd
+	exit ;;
+    hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
+	echo m68k-hp-bsd4.4
+	exit ;;
+    9000/[34678]??:HP-UX:*:*)
+	HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
+	case "${UNAME_MACHINE}" in
+	    9000/31? )            HP_ARCH=m68000 ;;
+	    9000/[34]?? )         HP_ARCH=m68k ;;
+	    9000/[678][0-9][0-9])
+		if [ -x /usr/bin/getconf ]; then
+		    sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
+                    sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
+                    case "${sc_cpu_version}" in
+                      523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
+                      528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
+                      532)                      # CPU_PA_RISC2_0
+                        case "${sc_kernel_bits}" in
+                          32) HP_ARCH="hppa2.0n" ;;
+                          64) HP_ARCH="hppa2.0w" ;;
+			  '') HP_ARCH="hppa2.0" ;;   # HP-UX 10.20
+                        esac ;;
+                    esac
+		fi
+		if [ "${HP_ARCH}" = "" ]; then
+		    eval $set_cc_for_build
+		    sed 's/^              //' << EOF >$dummy.c
+
+              #define _HPUX_SOURCE
+              #include <stdlib.h>
+              #include <unistd.h>
+
+              int main ()
+              {
+              #if defined(_SC_KERNEL_BITS)
+                  long bits = sysconf(_SC_KERNEL_BITS);
+              #endif
+                  long cpu  = sysconf (_SC_CPU_VERSION);
+
+                  switch (cpu)
+              	{
+              	case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
+              	case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
+              	case CPU_PA_RISC2_0:
+              #if defined(_SC_KERNEL_BITS)
+              	    switch (bits)
+              		{
+              		case 64: puts ("hppa2.0w"); break;
+              		case 32: puts ("hppa2.0n"); break;
+              		default: puts ("hppa2.0"); break;
+              		} break;
+              #else  /* !defined(_SC_KERNEL_BITS) */
+              	    puts ("hppa2.0"); break;
+              #endif
+              	default: puts ("hppa1.0"); break;
+              	}
+                  exit (0);
+              }
+EOF
+		    (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
+		    test -z "$HP_ARCH" && HP_ARCH=hppa
+		fi ;;
+	esac
+	if [ ${HP_ARCH} = "hppa2.0w" ]
+	then
+	    eval $set_cc_for_build
+
+	    # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
+	    # 32-bit code.  hppa64-hp-hpux* has the same kernel and a compiler
+	    # generating 64-bit code.  GNU and HP use different nomenclature:
+	    #
+	    # $ CC_FOR_BUILD=cc ./config.guess
+	    # => hppa2.0w-hp-hpux11.23
+	    # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
+	    # => hppa64-hp-hpux11.23
+
+	    if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
+		grep -q __LP64__
+	    then
+		HP_ARCH="hppa2.0w"
+	    else
+		HP_ARCH="hppa64"
+	    fi
+	fi
+	echo ${HP_ARCH}-hp-hpux${HPUX_REV}
+	exit ;;
+    ia64:HP-UX:*:*)
+	HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
+	echo ia64-hp-hpux${HPUX_REV}
+	exit ;;
+    3050*:HI-UX:*:*)
+	eval $set_cc_for_build
+	sed 's/^	//' << EOF >$dummy.c
+	#include <unistd.h>
+	int
+	main ()
+	{
+	  long cpu = sysconf (_SC_CPU_VERSION);
+	  /* The order matters, because CPU_IS_HP_MC68K erroneously returns
+	     true for CPU_PA_RISC1_0.  CPU_IS_PA_RISC returns correct
+	     results, however.  */
+	  if (CPU_IS_PA_RISC (cpu))
+	    {
+	      switch (cpu)
+		{
+		  case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
+		  case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
+		  case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
+		  default: puts ("hppa-hitachi-hiuxwe2"); break;
+		}
+	    }
+	  else if (CPU_IS_HP_MC68K (cpu))
+	    puts ("m68k-hitachi-hiuxwe2");
+	  else puts ("unknown-hitachi-hiuxwe2");
+	  exit (0);
+	}
+EOF
+	$CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` &&
+		{ echo "$SYSTEM_NAME"; exit; }
+	echo unknown-hitachi-hiuxwe2
+	exit ;;
+    9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
+	echo hppa1.1-hp-bsd
+	exit ;;
+    9000/8??:4.3bsd:*:*)
+	echo hppa1.0-hp-bsd
+	exit ;;
+    *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
+	echo hppa1.0-hp-mpeix
+	exit ;;
+    hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
+	echo hppa1.1-hp-osf
+	exit ;;
+    hp8??:OSF1:*:*)
+	echo hppa1.0-hp-osf
+	exit ;;
+    i*86:OSF1:*:*)
+	if [ -x /usr/sbin/sysversion ] ; then
+	    echo ${UNAME_MACHINE}-unknown-osf1mk
+	else
+	    echo ${UNAME_MACHINE}-unknown-osf1
+	fi
+	exit ;;
+    parisc*:Lites*:*:*)
+	echo hppa1.1-hp-lites
+	exit ;;
+    C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
+	echo c1-convex-bsd
+        exit ;;
+    C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
+	if getsysinfo -f scalar_acc
+	then echo c32-convex-bsd
+	else echo c2-convex-bsd
+	fi
+        exit ;;
+    C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
+	echo c34-convex-bsd
+        exit ;;
+    C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
+	echo c38-convex-bsd
+        exit ;;
+    C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
+	echo c4-convex-bsd
+        exit ;;
+    CRAY*Y-MP:*:*:*)
+	echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+	exit ;;
+    CRAY*[A-Z]90:*:*:*)
+	echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
+	| sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
+	      -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
+	      -e 's/\.[^.]*$/.X/'
+	exit ;;
+    CRAY*TS:*:*:*)
+	echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+	exit ;;
+    CRAY*T3E:*:*:*)
+	echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+	exit ;;
+    CRAY*SV1:*:*:*)
+	echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+	exit ;;
+    *:UNICOS/mp:*:*)
+	echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+	exit ;;
+    F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
+	FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+        FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+        FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
+        echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+        exit ;;
+    5000:UNIX_System_V:4.*:*)
+        FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+        FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
+        echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+	exit ;;
+    i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
+	echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
+	exit ;;
+    sparc*:BSD/OS:*:*)
+	echo sparc-unknown-bsdi${UNAME_RELEASE}
+	exit ;;
+    *:BSD/OS:*:*)
+	echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
+	exit ;;
+    *:FreeBSD:*:*)
+	case ${UNAME_MACHINE} in
+	    pc98)
+		echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+	    amd64)
+		echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+	    *)
+		echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+	esac
+	exit ;;
+    i*:CYGWIN*:*)
+	echo ${UNAME_MACHINE}-pc-cygwin
+	exit ;;
+    *:MINGW*:*)
+	echo ${UNAME_MACHINE}-pc-mingw32
+	exit ;;
+    i*:windows32*:*)
+    	# uname -m includes "-pc" on this system.
+    	echo ${UNAME_MACHINE}-mingw32
+	exit ;;
+    i*:PW*:*)
+	echo ${UNAME_MACHINE}-pc-pw32
+	exit ;;
+    *:Interix*:[3456]*)
+    	case ${UNAME_MACHINE} in
+	    x86)
+		echo i586-pc-interix${UNAME_RELEASE}
+		exit ;;
+	    EM64T | authenticamd | genuineintel)
+		echo x86_64-unknown-interix${UNAME_RELEASE}
+		exit ;;
+	    IA64)
+		echo ia64-unknown-interix${UNAME_RELEASE}
+		exit ;;
+	esac ;;
+    [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
+	echo i${UNAME_MACHINE}-pc-mks
+	exit ;;
+    8664:Windows_NT:*)
+	echo x86_64-pc-mks
+	exit ;;
+    i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
+	# How do we know it's Interix rather than the generic POSIX subsystem?
+	# It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
+	# UNAME_MACHINE based on the output of uname instead of i386?
+	echo i586-pc-interix
+	exit ;;
+    i*:UWIN*:*)
+	echo ${UNAME_MACHINE}-pc-uwin
+	exit ;;
+    amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
+	echo x86_64-unknown-cygwin
+	exit ;;
+    p*:CYGWIN*:*)
+	echo powerpcle-unknown-cygwin
+	exit ;;
+    prep*:SunOS:5.*:*)
+	echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+	exit ;;
+    *:GNU:*:*)
+	# the GNU system
+	echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
+	exit ;;
+    *:GNU/*:*:*)
+	# other systems with GNU libc and userland
+	echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu
+	exit ;;
+    i*86:Minix:*:*)
+	echo ${UNAME_MACHINE}-pc-minix
+	exit ;;
+    arm*:Linux:*:*)
+	eval $set_cc_for_build
+	if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
+	    | grep -q __ARM_EABI__
+	then
+	    echo ${UNAME_MACHINE}-unknown-linux-gnu
+	else
+	    echo ${UNAME_MACHINE}-unknown-linux-gnueabi
+	fi
+	exit ;;
+    avr32*:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit ;;
+    cris:Linux:*:*)
+	echo cris-axis-linux-gnu
+	exit ;;
+    crisv32:Linux:*:*)
+	echo crisv32-axis-linux-gnu
+	exit ;;
+    frv:Linux:*:*)
+    	echo frv-unknown-linux-gnu
+	exit ;;
+    ia64:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit ;;
+    m32r*:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit ;;
+    m68*:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit ;;
+    mips:Linux:*:* | mips64:Linux:*:*)
+	eval $set_cc_for_build
+	sed 's/^	//' << EOF >$dummy.c
+	#undef CPU
+	#undef ${UNAME_MACHINE}
+	#undef ${UNAME_MACHINE}el
+	#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
+	CPU=${UNAME_MACHINE}el
+	#else
+	#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
+	CPU=${UNAME_MACHINE}
+	#else
+	CPU=
+	#endif
+	#endif
+EOF
+	eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
+	    /^CPU/{
+		s: ::g
+		p
+	    }'`"
+	test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
+	;;
+    or32:Linux:*:*)
+	echo or32-unknown-linux-gnu
+	exit ;;
+    ppc:Linux:*:*)
+	echo powerpc-unknown-linux-gnu
+	exit ;;
+    ppc64:Linux:*:*)
+	echo powerpc64-unknown-linux-gnu
+	exit ;;
+    alpha:Linux:*:*)
+	case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
+	  EV5)   UNAME_MACHINE=alphaev5 ;;
+	  EV56)  UNAME_MACHINE=alphaev56 ;;
+	  PCA56) UNAME_MACHINE=alphapca56 ;;
+	  PCA57) UNAME_MACHINE=alphapca56 ;;
+	  EV6)   UNAME_MACHINE=alphaev6 ;;
+	  EV67)  UNAME_MACHINE=alphaev67 ;;
+	  EV68*) UNAME_MACHINE=alphaev68 ;;
+        esac
+	objdump --private-headers /bin/sh | grep -q ld.so.1
+	if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
+	echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
+	exit ;;
+    padre:Linux:*:*)
+	echo sparc-unknown-linux-gnu
+	exit ;;
+    parisc:Linux:*:* | hppa:Linux:*:*)
+	# Look for CPU level
+	case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
+	  PA7*) echo hppa1.1-unknown-linux-gnu ;;
+	  PA8*) echo hppa2.0-unknown-linux-gnu ;;
+	  *)    echo hppa-unknown-linux-gnu ;;
+	esac
+	exit ;;
+    parisc64:Linux:*:* | hppa64:Linux:*:*)
+	echo hppa64-unknown-linux-gnu
+	exit ;;
+    s390:Linux:*:* | s390x:Linux:*:*)
+	echo ${UNAME_MACHINE}-ibm-linux
+	exit ;;
+    sh64*:Linux:*:*)
+    	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit ;;
+    sh*:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit ;;
+    sparc:Linux:*:* | sparc64:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit ;;
+    vax:Linux:*:*)
+	echo ${UNAME_MACHINE}-dec-linux-gnu
+	exit ;;
+    x86_64:Linux:*:*)
+	echo x86_64-unknown-linux-gnu
+	exit ;;
+    xtensa*:Linux:*:*)
+    	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit ;;
+    i*86:Linux:*:*)
+	# The BFD linker knows what the default object file format is, so
+	# first see if it will tell us. cd to the root directory to prevent
+	# problems with other programs or directories called `ld' in the path.
+	# Set LC_ALL=C to ensure ld outputs messages in English.
+	ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \
+			 | sed -ne '/supported targets:/!d
+				    s/[ 	][ 	]*/ /g
+				    s/.*supported targets: *//
+				    s/ .*//
+				    p'`
+        case "$ld_supported_targets" in
+	  elf32-i386)
+		TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
+		;;
+	esac
+	# Determine whether the default compiler is a.out or elf
+	eval $set_cc_for_build
+	sed 's/^	//' << EOF >$dummy.c
+	#include <features.h>
+	#ifdef __ELF__
+	# ifdef __GLIBC__
+	#  if __GLIBC__ >= 2
+	LIBC=gnu
+	#  else
+	LIBC=gnulibc1
+	#  endif
+	# else
+	LIBC=gnulibc1
+	# endif
+	#else
+	#if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC)
+	LIBC=gnu
+	#else
+	LIBC=gnuaout
+	#endif
+	#endif
+	#ifdef __dietlibc__
+	LIBC=dietlibc
+	#endif
+EOF
+	eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
+	    /^LIBC/{
+		s: ::g
+		p
+	    }'`"
+	test x"${LIBC}" != x && {
+		echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
+		exit
+	}
+	test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; }
+	;;
+    i*86:DYNIX/ptx:4*:*)
+	# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
+	# earlier versions are messed up and put the nodename in both
+	# sysname and nodename.
+	echo i386-sequent-sysv4
+	exit ;;
+    i*86:UNIX_SV:4.2MP:2.*)
+        # Unixware is an offshoot of SVR4, but it has its own version
+        # number series starting with 2...
+        # I am not positive that other SVR4 systems won't match this,
+	# I just have to hope.  -- rms.
+        # Use sysv4.2uw... so that sysv4* matches it.
+	echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
+	exit ;;
+    i*86:OS/2:*:*)
+	# If we were able to find `uname', then EMX Unix compatibility
+	# is probably installed.
+	echo ${UNAME_MACHINE}-pc-os2-emx
+	exit ;;
+    i*86:XTS-300:*:STOP)
+	echo ${UNAME_MACHINE}-unknown-stop
+	exit ;;
+    i*86:atheos:*:*)
+	echo ${UNAME_MACHINE}-unknown-atheos
+	exit ;;
+    i*86:syllable:*:*)
+	echo ${UNAME_MACHINE}-pc-syllable
+	exit ;;
+    i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
+	echo i386-unknown-lynxos${UNAME_RELEASE}
+	exit ;;
+    i*86:*DOS:*:*)
+	echo ${UNAME_MACHINE}-pc-msdosdjgpp
+	exit ;;
+    i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
+	UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
+	if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
+		echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
+	else
+		echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
+	fi
+	exit ;;
+    i*86:*:5:[678]*)
+    	# UnixWare 7.x, OpenUNIX and OpenServer 6.
+	case `/bin/uname -X | grep "^Machine"` in
+	    *486*)	     UNAME_MACHINE=i486 ;;
+	    *Pentium)	     UNAME_MACHINE=i586 ;;
+	    *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
+	esac
+	echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
+	exit ;;
+    i*86:*:3.2:*)
+	if test -f /usr/options/cb.name; then
+		UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
+		echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
+	elif /bin/uname -X 2>/dev/null >/dev/null ; then
+		UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
+		(/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
+		(/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
+			&& UNAME_MACHINE=i586
+		(/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
+			&& UNAME_MACHINE=i686
+		(/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
+			&& UNAME_MACHINE=i686
+		echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
+	else
+		echo ${UNAME_MACHINE}-pc-sysv32
+	fi
+	exit ;;
+    pc:*:*:*)
+	# Left here for compatibility:
+        # uname -m prints for DJGPP always 'pc', but it prints nothing about
+        # the processor, so we play safe by assuming i586.
+	# Note: whatever this is, it MUST be the same as what config.sub
+	# prints for the "djgpp" host, or else GDB configury will decide that
+	# this is a cross-build.
+	echo i586-pc-msdosdjgpp
+        exit ;;
+    Intel:Mach:3*:*)
+	echo i386-pc-mach3
+	exit ;;
+    paragon:*:*:*)
+	echo i860-intel-osf1
+	exit ;;
+    i860:*:4.*:*) # i860-SVR4
+	if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
+	  echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
+	else # Add other i860-SVR4 vendors below as they are discovered.
+	  echo i860-unknown-sysv${UNAME_RELEASE}  # Unknown i860-SVR4
+	fi
+	exit ;;
+    mini*:CTIX:SYS*5:*)
+	# "miniframe"
+	echo m68010-convergent-sysv
+	exit ;;
+    mc68k:UNIX:SYSTEM5:3.51m)
+	echo m68k-convergent-sysv
+	exit ;;
+    M680?0:D-NIX:5.3:*)
+	echo m68k-diab-dnix
+	exit ;;
+    M68*:*:R3V[5678]*:*)
+	test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;
+    3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0)
+	OS_REL=''
+	test -r /etc/.relid \
+	&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
+	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+	  && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
+	/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
+	  && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
+    3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
+        /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+          && { echo i486-ncr-sysv4; exit; } ;;
+    NCR*:*:4.2:* | MPRAS*:*:4.2:*)
+	OS_REL='.3'
+	test -r /etc/.relid \
+	    && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
+	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+	    && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
+	/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
+	    && { echo i586-ncr-sysv4.3${OS_REL}; exit; }
+	/bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
+	    && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
+    m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
+	echo m68k-unknown-lynxos${UNAME_RELEASE}
+	exit ;;
+    mc68030:UNIX_System_V:4.*:*)
+	echo m68k-atari-sysv4
+	exit ;;
+    TSUNAMI:LynxOS:2.*:*)
+	echo sparc-unknown-lynxos${UNAME_RELEASE}
+	exit ;;
+    rs6000:LynxOS:2.*:*)
+	echo rs6000-unknown-lynxos${UNAME_RELEASE}
+	exit ;;
+    PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
+	echo powerpc-unknown-lynxos${UNAME_RELEASE}
+	exit ;;
+    SM[BE]S:UNIX_SV:*:*)
+	echo mips-dde-sysv${UNAME_RELEASE}
+	exit ;;
+    RM*:ReliantUNIX-*:*:*)
+	echo mips-sni-sysv4
+	exit ;;
+    RM*:SINIX-*:*:*)
+	echo mips-sni-sysv4
+	exit ;;
+    *:SINIX-*:*:*)
+	if uname -p 2>/dev/null >/dev/null ; then
+		UNAME_MACHINE=`(uname -p) 2>/dev/null`
+		echo ${UNAME_MACHINE}-sni-sysv4
+	else
+		echo ns32k-sni-sysv
+	fi
+	exit ;;
+    PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
+                      # says <Richard.M.Bartel@ccMail.Census.GOV>
+        echo i586-unisys-sysv4
+        exit ;;
+    *:UNIX_System_V:4*:FTX*)
+	# From Gerald Hewes <hewes@openmarket.com>.
+	# How about differentiating between stratus architectures? -djm
+	echo hppa1.1-stratus-sysv4
+	exit ;;
+    *:*:*:FTX*)
+	# From seanf@swdc.stratus.com.
+	echo i860-stratus-sysv4
+	exit ;;
+    i*86:VOS:*:*)
+	# From Paul.Green@stratus.com.
+	echo ${UNAME_MACHINE}-stratus-vos
+	exit ;;
+    *:VOS:*:*)
+	# From Paul.Green@stratus.com.
+	echo hppa1.1-stratus-vos
+	exit ;;
+    mc68*:A/UX:*:*)
+	echo m68k-apple-aux${UNAME_RELEASE}
+	exit ;;
+    news*:NEWS-OS:6*:*)
+	echo mips-sony-newsos6
+	exit ;;
+    R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
+	if [ -d /usr/nec ]; then
+	        echo mips-nec-sysv${UNAME_RELEASE}
+	else
+	        echo mips-unknown-sysv${UNAME_RELEASE}
+	fi
+        exit ;;
+    BeBox:BeOS:*:*)	# BeOS running on hardware made by Be, PPC only.
+	echo powerpc-be-beos
+	exit ;;
+    BeMac:BeOS:*:*)	# BeOS running on Mac or Mac clone, PPC only.
+	echo powerpc-apple-beos
+	exit ;;
+    BePC:BeOS:*:*)	# BeOS running on Intel PC compatible.
+	echo i586-pc-beos
+	exit ;;
+    BePC:Haiku:*:*)	# Haiku running on Intel PC compatible.
+	echo i586-pc-haiku
+	exit ;;
+    SX-4:SUPER-UX:*:*)
+	echo sx4-nec-superux${UNAME_RELEASE}
+	exit ;;
+    SX-5:SUPER-UX:*:*)
+	echo sx5-nec-superux${UNAME_RELEASE}
+	exit ;;
+    SX-6:SUPER-UX:*:*)
+	echo sx6-nec-superux${UNAME_RELEASE}
+	exit ;;
+    SX-7:SUPER-UX:*:*)
+	echo sx7-nec-superux${UNAME_RELEASE}
+	exit ;;
+    SX-8:SUPER-UX:*:*)
+	echo sx8-nec-superux${UNAME_RELEASE}
+	exit ;;
+    SX-8R:SUPER-UX:*:*)
+	echo sx8r-nec-superux${UNAME_RELEASE}
+	exit ;;
+    Power*:Rhapsody:*:*)
+	echo powerpc-apple-rhapsody${UNAME_RELEASE}
+	exit ;;
+    *:Rhapsody:*:*)
+	echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
+	exit ;;
+    *:Darwin:*:*)
+	UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
+	case $UNAME_PROCESSOR in
+	    unknown) UNAME_PROCESSOR=powerpc ;;
+	esac
+	echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
+	exit ;;
+    *:procnto*:*:* | *:QNX:[0123456789]*:*)
+	UNAME_PROCESSOR=`uname -p`
+	if test "$UNAME_PROCESSOR" = "x86"; then
+		UNAME_PROCESSOR=i386
+		UNAME_MACHINE=pc
+	fi
+	echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
+	exit ;;
+    *:QNX:*:4*)
+	echo i386-pc-qnx
+	exit ;;
+    NSE-?:NONSTOP_KERNEL:*:*)
+	echo nse-tandem-nsk${UNAME_RELEASE}
+	exit ;;
+    NSR-?:NONSTOP_KERNEL:*:*)
+	echo nsr-tandem-nsk${UNAME_RELEASE}
+	exit ;;
+    *:NonStop-UX:*:*)
+	echo mips-compaq-nonstopux
+	exit ;;
+    BS2000:POSIX*:*:*)
+	echo bs2000-siemens-sysv
+	exit ;;
+    DS/*:UNIX_System_V:*:*)
+	echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
+	exit ;;
+    *:Plan9:*:*)
+	# "uname -m" is not consistent, so use $cputype instead. 386
+	# is converted to i386 for consistency with other x86
+	# operating systems.
+	if test "$cputype" = "386"; then
+	    UNAME_MACHINE=i386
+	else
+	    UNAME_MACHINE="$cputype"
+	fi
+	echo ${UNAME_MACHINE}-unknown-plan9
+	exit ;;
+    *:TOPS-10:*:*)
+	echo pdp10-unknown-tops10
+	exit ;;
+    *:TENEX:*:*)
+	echo pdp10-unknown-tenex
+	exit ;;
+    KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
+	echo pdp10-dec-tops20
+	exit ;;
+    XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
+	echo pdp10-xkl-tops20
+	exit ;;
+    *:TOPS-20:*:*)
+	echo pdp10-unknown-tops20
+	exit ;;
+    *:ITS:*:*)
+	echo pdp10-unknown-its
+	exit ;;
+    SEI:*:*:SEIUX)
+        echo mips-sei-seiux${UNAME_RELEASE}
+	exit ;;
+    *:DragonFly:*:*)
+	echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
+	exit ;;
+    *:*VMS:*:*)
+    	UNAME_MACHINE=`(uname -p) 2>/dev/null`
+	case "${UNAME_MACHINE}" in
+	    A*) echo alpha-dec-vms ; exit ;;
+	    I*) echo ia64-dec-vms ; exit ;;
+	    V*) echo vax-dec-vms ; exit ;;
+	esac ;;
+    *:XENIX:*:SysV)
+	echo i386-pc-xenix
+	exit ;;
+    i*86:skyos:*:*)
+	echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//'
+	exit ;;
+    i*86:rdos:*:*)
+	echo ${UNAME_MACHINE}-pc-rdos
+	exit ;;
+    i*86:AROS:*:*)
+	echo ${UNAME_MACHINE}-pc-aros
+	exit ;;
+esac
+
+#echo '(No uname command or uname output not recognized.)' 1>&2
+#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
+
+eval $set_cc_for_build
+cat >$dummy.c <<EOF
+#ifdef _SEQUENT_
+# include <sys/types.h>
+# include <sys/utsname.h>
+#endif
+main ()
+{
+#if defined (sony)
+#if defined (MIPSEB)
+  /* BFD wants "bsd" instead of "newsos".  Perhaps BFD should be changed,
+     I don't know....  */
+  printf ("mips-sony-bsd\n"); exit (0);
+#else
+#include <sys/param.h>
+  printf ("m68k-sony-newsos%s\n",
+#ifdef NEWSOS4
+          "4"
+#else
+	  ""
+#endif
+         ); exit (0);
+#endif
+#endif
+
+#if defined (__arm) && defined (__acorn) && defined (__unix)
+  printf ("arm-acorn-riscix\n"); exit (0);
+#endif
+
+#if defined (hp300) && !defined (hpux)
+  printf ("m68k-hp-bsd\n"); exit (0);
+#endif
+
+#if defined (NeXT)
+#if !defined (__ARCHITECTURE__)
+#define __ARCHITECTURE__ "m68k"
+#endif
+  int version;
+  version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
+  if (version < 4)
+    printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
+  else
+    printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
+  exit (0);
+#endif
+
+#if defined (MULTIMAX) || defined (n16)
+#if defined (UMAXV)
+  printf ("ns32k-encore-sysv\n"); exit (0);
+#else
+#if defined (CMU)
+  printf ("ns32k-encore-mach\n"); exit (0);
+#else
+  printf ("ns32k-encore-bsd\n"); exit (0);
+#endif
+#endif
+#endif
+
+#if defined (__386BSD__)
+  printf ("i386-pc-bsd\n"); exit (0);
+#endif
+
+#if defined (sequent)
+#if defined (i386)
+  printf ("i386-sequent-dynix\n"); exit (0);
+#endif
+#if defined (ns32000)
+  printf ("ns32k-sequent-dynix\n"); exit (0);
+#endif
+#endif
+
+#if defined (_SEQUENT_)
+    struct utsname un;
+
+    uname(&un);
+
+    if (strncmp(un.version, "V2", 2) == 0) {
+	printf ("i386-sequent-ptx2\n"); exit (0);
+    }
+    if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
+	printf ("i386-sequent-ptx1\n"); exit (0);
+    }
+    printf ("i386-sequent-ptx\n"); exit (0);
+
+#endif
+
+#if defined (vax)
+# if !defined (ultrix)
+#  include <sys/param.h>
+#  if defined (BSD)
+#   if BSD == 43
+      printf ("vax-dec-bsd4.3\n"); exit (0);
+#   else
+#    if BSD == 199006
+      printf ("vax-dec-bsd4.3reno\n"); exit (0);
+#    else
+      printf ("vax-dec-bsd\n"); exit (0);
+#    endif
+#   endif
+#  else
+    printf ("vax-dec-bsd\n"); exit (0);
+#  endif
+# else
+    printf ("vax-dec-ultrix\n"); exit (0);
+# endif
+#endif
+
+#if defined (alliant) && defined (i860)
+  printf ("i860-alliant-bsd\n"); exit (0);
+#endif
+
+  exit (1);
+}
+EOF
+
+$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` &&
+	{ echo "$SYSTEM_NAME"; exit; }
+
+# Apollos put the system type in the environment.
+
+test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; }
+
+# Convex versions that predate uname can use getsysinfo(1)
+
+if [ -x /usr/convex/getsysinfo ]
+then
+    case `getsysinfo -f cpu_type` in
+    c1*)
+	echo c1-convex-bsd
+	exit ;;
+    c2*)
+	if getsysinfo -f scalar_acc
+	then echo c32-convex-bsd
+	else echo c2-convex-bsd
+	fi
+	exit ;;
+    c34*)
+	echo c34-convex-bsd
+	exit ;;
+    c38*)
+	echo c38-convex-bsd
+	exit ;;
+    c4*)
+	echo c4-convex-bsd
+	exit ;;
+    esac
+fi
+
+cat >&2 <<EOF
+$0: unable to guess system type
+
+This script, last modified $timestamp, has failed to recognize
+the operating system you are using. It is advised that you
+download the most up to date version of the config scripts from
+
+  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
+and
+  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
+
+If the version you run ($0) is already up to date, please
+send the following data and any information you think might be
+pertinent to <config-patches@gnu.org> in order to provide the needed
+information to handle your system.
+
+config.guess timestamp = $timestamp
+
+uname -m = `(uname -m) 2>/dev/null || echo unknown`
+uname -r = `(uname -r) 2>/dev/null || echo unknown`
+uname -s = `(uname -s) 2>/dev/null || echo unknown`
+uname -v = `(uname -v) 2>/dev/null || echo unknown`
+
+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
+/bin/uname -X     = `(/bin/uname -X) 2>/dev/null`
+
+hostinfo               = `(hostinfo) 2>/dev/null`
+/bin/universe          = `(/bin/universe) 2>/dev/null`
+/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null`
+/bin/arch              = `(/bin/arch) 2>/dev/null`
+/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null`
+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
+
+UNAME_MACHINE = ${UNAME_MACHINE}
+UNAME_RELEASE = ${UNAME_RELEASE}
+UNAME_SYSTEM  = ${UNAME_SYSTEM}
+UNAME_VERSION = ${UNAME_VERSION}
+EOF
+
+exit 1
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "timestamp='"
+# time-stamp-format: "%:y-%02m-%02d"
+# time-stamp-end: "'"
+# End:
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/3rdparty/libconninet/config.sub	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,1693 @@
+#! /bin/sh
+# Configuration validation subroutine script.
+#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
+#   Free Software Foundation, Inc.
+
+timestamp='2009-06-11'
+
+# This file is (in principle) common to ALL GNU software.
+# The presence of a machine in this file suggests that SOME GNU software
+# can handle that machine.  It does not imply ALL GNU software can.
+#
+# This file is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
+# 02110-1301, USA.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+
+# Please send patches to <config-patches@gnu.org>.  Submit a context
+# diff and a properly formatted ChangeLog entry.
+#
+# Configuration subroutine to validate and canonicalize a configuration type.
+# Supply the specified configuration type as an argument.
+# If it is invalid, we print an error message on stderr and exit with code 1.
+# Otherwise, we print the canonical config type on stdout and succeed.
+
+# This file is supposed to be the same for all GNU packages
+# and recognize all the CPU types, system types and aliases
+# that are meaningful with *any* GNU software.
+# Each package is responsible for reporting which valid configurations
+# it does not support.  The user should be able to distinguish
+# a failure to support a valid configuration from a meaningless
+# configuration.
+
+# The goal of this file is to map all the various variations of a given
+# machine specification into a single specification in the form:
+#	CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
+# or in some cases, the newer four-part form:
+#	CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
+# It is wrong to echo any other type of specification.
+
+me=`echo "$0" | sed -e 's,.*/,,'`
+
+usage="\
+Usage: $0 [OPTION] CPU-MFR-OPSYS
+       $0 [OPTION] ALIAS
+
+Canonicalize a configuration name.
+
+Operation modes:
+  -h, --help         print this help, then exit
+  -t, --time-stamp   print date of last modification, then exit
+  -v, --version      print version number, then exit
+
+Report bugs and patches to <config-patches@gnu.org>."
+
+version="\
+GNU config.sub ($timestamp)
+
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
+2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+
+This is free software; see the source for copying conditions.  There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+
+help="
+Try \`$me --help' for more information."
+
+# Parse command line
+while test $# -gt 0 ; do
+  case $1 in
+    --time-stamp | --time* | -t )
+       echo "$timestamp" ; exit ;;
+    --version | -v )
+       echo "$version" ; exit ;;
+    --help | --h* | -h )
+       echo "$usage"; exit ;;
+    -- )     # Stop option processing
+       shift; break ;;
+    - )	# Use stdin as input.
+       break ;;
+    -* )
+       echo "$me: invalid option $1$help"
+       exit 1 ;;
+
+    *local*)
+       # First pass through any local machine types.
+       echo $1
+       exit ;;
+
+    * )
+       break ;;
+  esac
+done
+
+case $# in
+ 0) echo "$me: missing argument$help" >&2
+    exit 1;;
+ 1) ;;
+ *) echo "$me: too many arguments$help" >&2
+    exit 1;;
+esac
+
+# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
+# Here we must recognize all the valid KERNEL-OS combinations.
+maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
+case $maybe_os in
+  nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \
+  uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \
+  kopensolaris*-gnu* | \
+  storm-chaos* | os2-emx* | rtmk-nova*)
+    os=-$maybe_os
+    basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
+    ;;
+  *)
+    basic_machine=`echo $1 | sed 's/-[^-]*$//'`
+    if [ $basic_machine != $1 ]
+    then os=`echo $1 | sed 's/.*-/-/'`
+    else os=; fi
+    ;;
+esac
+
+### Let's recognize common machines as not being operating systems so
+### that things like config.sub decstation-3100 work.  We also
+### recognize some manufacturers as not being operating systems, so we
+### can provide default operating systems below.
+case $os in
+	-sun*os*)
+		# Prevent following clause from handling this invalid input.
+		;;
+	-dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
+	-att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
+	-unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
+	-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
+	-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
+	-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
+	-apple | -axis | -knuth | -cray)
+		os=
+		basic_machine=$1
+		;;
+        -bluegene*)
+	        os=-cnk
+		;;
+	-sim | -cisco | -oki | -wec | -winbond)
+		os=
+		basic_machine=$1
+		;;
+	-scout)
+		;;
+	-wrs)
+		os=-vxworks
+		basic_machine=$1
+		;;
+	-chorusos*)
+		os=-chorusos
+		basic_machine=$1
+		;;
+ 	-chorusrdb)
+ 		os=-chorusrdb
+		basic_machine=$1
+ 		;;
+	-hiux*)
+		os=-hiuxwe2
+		;;
+	-sco6)
+		os=-sco5v6
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-sco5)
+		os=-sco3.2v5
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-sco4)
+		os=-sco3.2v4
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-sco3.2.[4-9]*)
+		os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-sco3.2v[4-9]*)
+		# Don't forget version if it is 3.2v4 or newer.
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-sco5v6*)
+		# Don't forget version if it is 3.2v4 or newer.
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-sco*)
+		os=-sco3.2v2
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-udk*)
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-isc)
+		os=-isc2.2
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-clix*)
+		basic_machine=clipper-intergraph
+		;;
+	-isc*)
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-lynx*)
+		os=-lynxos
+		;;
+	-ptx*)
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
+		;;
+	-windowsnt*)
+		os=`echo $os | sed -e 's/windowsnt/winnt/'`
+		;;
+	-psos*)
+		os=-psos
+		;;
+	-mint | -mint[0-9]*)
+		basic_machine=m68k-atari
+		os=-mint
+		;;
+esac
+
+# Decode aliases for certain CPU-COMPANY combinations.
+case $basic_machine in
+	# Recognize the basic CPU types without company name.
+	# Some are omitted here because they have special meanings below.
+	1750a | 580 \
+	| a29k \
+	| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
+	| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
+	| am33_2.0 \
+	| arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \
+	| bfin \
+	| c4x | clipper \
+	| d10v | d30v | dlx | dsp16xx \
+	| fido | fr30 | frv \
+	| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
+	| i370 | i860 | i960 | ia64 \
+	| ip2k | iq2000 \
+	| lm32 \
+	| m32c | m32r | m32rle | m68000 | m68k | m88k \
+	| maxq | mb | microblaze | mcore | mep | metag \
+	| mips | mipsbe | mipseb | mipsel | mipsle \
+	| mips16 \
+	| mips64 | mips64el \
+	| mips64octeon | mips64octeonel \
+	| mips64orion | mips64orionel \
+	| mips64r5900 | mips64r5900el \
+	| mips64vr | mips64vrel \
+	| mips64vr4100 | mips64vr4100el \
+	| mips64vr4300 | mips64vr4300el \
+	| mips64vr5000 | mips64vr5000el \
+	| mips64vr5900 | mips64vr5900el \
+	| mipsisa32 | mipsisa32el \
+	| mipsisa32r2 | mipsisa32r2el \
+	| mipsisa64 | mipsisa64el \
+	| mipsisa64r2 | mipsisa64r2el \
+	| mipsisa64sb1 | mipsisa64sb1el \
+	| mipsisa64sr71k | mipsisa64sr71kel \
+	| mipstx39 | mipstx39el \
+	| mn10200 | mn10300 \
+	| moxie \
+	| mt \
+	| msp430 \
+	| nios | nios2 \
+	| ns16k | ns32k \
+	| or32 \
+	| pdp10 | pdp11 | pj | pjl \
+	| powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
+	| pyramid \
+	| score \
+	| sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
+	| sh64 | sh64le \
+	| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
+	| sparcv8 | sparcv9 | sparcv9b | sparcv9v \
+	| spu | strongarm \
+	| tahoe | thumb | tic4x | tic80 | tron \
+	| v850 | v850e \
+	| we32k \
+	| x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \
+	| z8k | z80)
+		basic_machine=$basic_machine-unknown
+		;;
+	m6811 | m68hc11 | m6812 | m68hc12)
+		# Motorola 68HC11/12.
+		basic_machine=$basic_machine-unknown
+		os=-none
+		;;
+	m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
+		;;
+	ms1)
+		basic_machine=mt-unknown
+		;;
+
+	# We use `pc' rather than `unknown'
+	# because (1) that's what they normally are, and
+	# (2) the word "unknown" tends to confuse beginning users.
+	i*86 | x86_64)
+	  basic_machine=$basic_machine-pc
+	  ;;
+	# Object if more than one company name word.
+	*-*-*)
+		echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
+		exit 1
+		;;
+	# Recognize the basic CPU types with company name.
+	580-* \
+	| a29k-* \
+	| alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
+	| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
+	| alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
+	| arm-*  | armbe-* | armle-* | armeb-* | armv*-* \
+	| avr-* | avr32-* \
+	| bfin-* | bs2000-* \
+	| c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \
+	| clipper-* | craynv-* | cydra-* \
+	| d10v-* | d30v-* | dlx-* \
+	| elxsi-* \
+	| f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
+	| h8300-* | h8500-* \
+	| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
+	| i*86-* | i860-* | i960-* | ia64-* \
+	| ip2k-* | iq2000-* \
+	| lm32-* \
+	| m32c-* | m32r-* | m32rle-* \
+	| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
+	| m88110-* | m88k-* | maxq-* | mcore-* | metag-* \
+	| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
+	| mips16-* \
+	| mips64-* | mips64el-* \
+	| mips64octeon-* | mips64octeonel-* \
+	| mips64orion-* | mips64orionel-* \
+	| mips64r5900-* | mips64r5900el-* \
+	| mips64vr-* | mips64vrel-* \
+	| mips64vr4100-* | mips64vr4100el-* \
+	| mips64vr4300-* | mips64vr4300el-* \
+	| mips64vr5000-* | mips64vr5000el-* \
+	| mips64vr5900-* | mips64vr5900el-* \
+	| mipsisa32-* | mipsisa32el-* \
+	| mipsisa32r2-* | mipsisa32r2el-* \
+	| mipsisa64-* | mipsisa64el-* \
+	| mipsisa64r2-* | mipsisa64r2el-* \
+	| mipsisa64sb1-* | mipsisa64sb1el-* \
+	| mipsisa64sr71k-* | mipsisa64sr71kel-* \
+	| mipstx39-* | mipstx39el-* \
+	| mmix-* \
+	| mt-* \
+	| msp430-* \
+	| nios-* | nios2-* \
+	| none-* | np1-* | ns16k-* | ns32k-* \
+	| orion-* \
+	| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
+	| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
+	| pyramid-* \
+	| romp-* | rs6000-* \
+	| sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
+	| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
+	| sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
+	| sparclite-* \
+	| sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \
+	| tahoe-* | thumb-* \
+	| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \
+	| tron-* \
+	| v850-* | v850e-* | vax-* \
+	| we32k-* \
+	| x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \
+	| xstormy16-* | xtensa*-* \
+	| ymp-* \
+	| z8k-* | z80-*)
+		;;
+	# Recognize the basic CPU types without company name, with glob match.
+	xtensa*)
+		basic_machine=$basic_machine-unknown
+		;;
+	# Recognize the various machine names and aliases which stand
+	# for a CPU type and a company and sometimes even an OS.
+	386bsd)
+		basic_machine=i386-unknown
+		os=-bsd
+		;;
+	3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
+		basic_machine=m68000-att
+		;;
+	3b*)
+		basic_machine=we32k-att
+		;;
+	a29khif)
+		basic_machine=a29k-amd
+		os=-udi
+		;;
+    	abacus)
+		basic_machine=abacus-unknown
+		;;
+	adobe68k)
+		basic_machine=m68010-adobe
+		os=-scout
+		;;
+	alliant | fx80)
+		basic_machine=fx80-alliant
+		;;
+	altos | altos3068)
+		basic_machine=m68k-altos
+		;;
+	am29k)
+		basic_machine=a29k-none
+		os=-bsd
+		;;
+	amd64)
+		basic_machine=x86_64-pc
+		;;
+	amd64-*)
+		basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	amdahl)
+		basic_machine=580-amdahl
+		os=-sysv
+		;;
+	amiga | amiga-*)
+		basic_machine=m68k-unknown
+		;;
+	amigaos | amigados)
+		basic_machine=m68k-unknown
+		os=-amigaos
+		;;
+	amigaunix | amix)
+		basic_machine=m68k-unknown
+		os=-sysv4
+		;;
+	apollo68)
+		basic_machine=m68k-apollo
+		os=-sysv
+		;;
+	apollo68bsd)
+		basic_machine=m68k-apollo
+		os=-bsd
+		;;
+	aros)
+		basic_machine=i386-pc
+		os=-aros
+		;;
+	aux)
+		basic_machine=m68k-apple
+		os=-aux
+		;;
+	balance)
+		basic_machine=ns32k-sequent
+		os=-dynix
+		;;
+	blackfin)
+		basic_machine=bfin-unknown
+		os=-linux
+		;;
+	blackfin-*)
+		basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
+		os=-linux
+		;;
+	bluegene*)
+		basic_machine=powerpc-ibm
+		os=-cnk
+		;;
+	c90)
+		basic_machine=c90-cray
+		os=-unicos
+		;;
+        cegcc)
+		basic_machine=arm-unknown
+		os=-cegcc
+		;;
+	convex-c1)
+		basic_machine=c1-convex
+		os=-bsd
+		;;
+	convex-c2)
+		basic_machine=c2-convex
+		os=-bsd
+		;;
+	convex-c32)
+		basic_machine=c32-convex
+		os=-bsd
+		;;
+	convex-c34)
+		basic_machine=c34-convex
+		os=-bsd
+		;;
+	convex-c38)
+		basic_machine=c38-convex
+		os=-bsd
+		;;
+	cray | j90)
+		basic_machine=j90-cray
+		os=-unicos
+		;;
+	craynv)
+		basic_machine=craynv-cray
+		os=-unicosmp
+		;;
+	cr16)
+		basic_machine=cr16-unknown
+		os=-elf
+		;;
+	crds | unos)
+		basic_machine=m68k-crds
+		;;
+	crisv32 | crisv32-* | etraxfs*)
+		basic_machine=crisv32-axis
+		;;
+	cris | cris-* | etrax*)
+		basic_machine=cris-axis
+		;;
+	crx)
+		basic_machine=crx-unknown
+		os=-elf
+		;;
+	da30 | da30-*)
+		basic_machine=m68k-da30
+		;;
+	decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
+		basic_machine=mips-dec
+		;;
+	decsystem10* | dec10*)
+		basic_machine=pdp10-dec
+		os=-tops10
+		;;
+	decsystem20* | dec20*)
+		basic_machine=pdp10-dec
+		os=-tops20
+		;;
+	delta | 3300 | motorola-3300 | motorola-delta \
+	      | 3300-motorola | delta-motorola)
+		basic_machine=m68k-motorola
+		;;
+	delta88)
+		basic_machine=m88k-motorola
+		os=-sysv3
+		;;
+	dicos)
+		basic_machine=i686-pc
+		os=-dicos
+		;;
+	djgpp)
+		basic_machine=i586-pc
+		os=-msdosdjgpp
+		;;
+	dpx20 | dpx20-*)
+		basic_machine=rs6000-bull
+		os=-bosx
+		;;
+	dpx2* | dpx2*-bull)
+		basic_machine=m68k-bull
+		os=-sysv3
+		;;
+	ebmon29k)
+		basic_machine=a29k-amd
+		os=-ebmon
+		;;
+	elxsi)
+		basic_machine=elxsi-elxsi
+		os=-bsd
+		;;
+	encore | umax | mmax)
+		basic_machine=ns32k-encore
+		;;
+	es1800 | OSE68k | ose68k | ose | OSE)
+		basic_machine=m68k-ericsson
+		os=-ose
+		;;
+	fx2800)
+		basic_machine=i860-alliant
+		;;
+	genix)
+		basic_machine=ns32k-ns
+		;;
+	gmicro)
+		basic_machine=tron-gmicro
+		os=-sysv
+		;;
+	go32)
+		basic_machine=i386-pc
+		os=-go32
+		;;
+	h3050r* | hiux*)
+		basic_machine=hppa1.1-hitachi
+		os=-hiuxwe2
+		;;
+	h8300hms)
+		basic_machine=h8300-hitachi
+		os=-hms
+		;;
+	h8300xray)
+		basic_machine=h8300-hitachi
+		os=-xray
+		;;
+	h8500hms)
+		basic_machine=h8500-hitachi
+		os=-hms
+		;;
+	harris)
+		basic_machine=m88k-harris
+		os=-sysv3
+		;;
+	hp300-*)
+		basic_machine=m68k-hp
+		;;
+	hp300bsd)
+		basic_machine=m68k-hp
+		os=-bsd
+		;;
+	hp300hpux)
+		basic_machine=m68k-hp
+		os=-hpux
+		;;
+	hp3k9[0-9][0-9] | hp9[0-9][0-9])
+		basic_machine=hppa1.0-hp
+		;;
+	hp9k2[0-9][0-9] | hp9k31[0-9])
+		basic_machine=m68000-hp
+		;;
+	hp9k3[2-9][0-9])
+		basic_machine=m68k-hp
+		;;
+	hp9k6[0-9][0-9] | hp6[0-9][0-9])
+		basic_machine=hppa1.0-hp
+		;;
+	hp9k7[0-79][0-9] | hp7[0-79][0-9])
+		basic_machine=hppa1.1-hp
+		;;
+	hp9k78[0-9] | hp78[0-9])
+		# FIXME: really hppa2.0-hp
+		basic_machine=hppa1.1-hp
+		;;
+	hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
+		# FIXME: really hppa2.0-hp
+		basic_machine=hppa1.1-hp
+		;;
+	hp9k8[0-9][13679] | hp8[0-9][13679])
+		basic_machine=hppa1.1-hp
+		;;
+	hp9k8[0-9][0-9] | hp8[0-9][0-9])
+		basic_machine=hppa1.0-hp
+		;;
+	hppa-next)
+		os=-nextstep3
+		;;
+	hppaosf)
+		basic_machine=hppa1.1-hp
+		os=-osf
+		;;
+	hppro)
+		basic_machine=hppa1.1-hp
+		os=-proelf
+		;;
+	i370-ibm* | ibm*)
+		basic_machine=i370-ibm
+		;;
+# I'm not sure what "Sysv32" means.  Should this be sysv3.2?
+	i*86v32)
+		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+		os=-sysv32
+		;;
+	i*86v4*)
+		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+		os=-sysv4
+		;;
+	i*86v)
+		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+		os=-sysv
+		;;
+	i*86sol2)
+		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+		os=-solaris2
+		;;
+	i386mach)
+		basic_machine=i386-mach
+		os=-mach
+		;;
+	i386-vsta | vsta)
+		basic_machine=i386-unknown
+		os=-vsta
+		;;
+	iris | iris4d)
+		basic_machine=mips-sgi
+		case $os in
+		    -irix*)
+			;;
+		    *)
+			os=-irix4
+			;;
+		esac
+		;;
+	isi68 | isi)
+		basic_machine=m68k-isi
+		os=-sysv
+		;;
+	m68knommu)
+		basic_machine=m68k-unknown
+		os=-linux
+		;;
+	m68knommu-*)
+		basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'`
+		os=-linux
+		;;
+	m88k-omron*)
+		basic_machine=m88k-omron
+		;;
+	magnum | m3230)
+		basic_machine=mips-mips
+		os=-sysv
+		;;
+	merlin)
+		basic_machine=ns32k-utek
+		os=-sysv
+		;;
+	mingw32)
+		basic_machine=i386-pc
+		os=-mingw32
+		;;
+	mingw32ce)
+		basic_machine=arm-unknown
+		os=-mingw32ce
+		;;
+	miniframe)
+		basic_machine=m68000-convergent
+		;;
+	*mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
+		basic_machine=m68k-atari
+		os=-mint
+		;;
+	mips3*-*)
+		basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
+		;;
+	mips3*)
+		basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
+		;;
+	monitor)
+		basic_machine=m68k-rom68k
+		os=-coff
+		;;
+	morphos)
+		basic_machine=powerpc-unknown
+		os=-morphos
+		;;
+	msdos)
+		basic_machine=i386-pc
+		os=-msdos
+		;;
+	ms1-*)
+		basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
+		;;
+	mvs)
+		basic_machine=i370-ibm
+		os=-mvs
+		;;
+	ncr3000)
+		basic_machine=i486-ncr
+		os=-sysv4
+		;;
+	netbsd386)
+		basic_machine=i386-unknown
+		os=-netbsd
+		;;
+	netwinder)
+		basic_machine=armv4l-rebel
+		os=-linux
+		;;
+	news | news700 | news800 | news900)
+		basic_machine=m68k-sony
+		os=-newsos
+		;;
+	news1000)
+		basic_machine=m68030-sony
+		os=-newsos
+		;;
+	news-3600 | risc-news)
+		basic_machine=mips-sony
+		os=-newsos
+		;;
+	necv70)
+		basic_machine=v70-nec
+		os=-sysv
+		;;
+	next | m*-next )
+		basic_machine=m68k-next
+		case $os in
+		    -nextstep* )
+			;;
+		    -ns2*)
+		      os=-nextstep2
+			;;
+		    *)
+		      os=-nextstep3
+			;;
+		esac
+		;;
+	nh3000)
+		basic_machine=m68k-harris
+		os=-cxux
+		;;
+	nh[45]000)
+		basic_machine=m88k-harris
+		os=-cxux
+		;;
+	nindy960)
+		basic_machine=i960-intel
+		os=-nindy
+		;;
+	mon960)
+		basic_machine=i960-intel
+		os=-mon960
+		;;
+	nonstopux)
+		basic_machine=mips-compaq
+		os=-nonstopux
+		;;
+	np1)
+		basic_machine=np1-gould
+		;;
+	nsr-tandem)
+		basic_machine=nsr-tandem
+		;;
+	op50n-* | op60c-*)
+		basic_machine=hppa1.1-oki
+		os=-proelf
+		;;
+	openrisc | openrisc-*)
+		basic_machine=or32-unknown
+		;;
+	os400)
+		basic_machine=powerpc-ibm
+		os=-os400
+		;;
+	OSE68000 | ose68000)
+		basic_machine=m68000-ericsson
+		os=-ose
+		;;
+	os68k)
+		basic_machine=m68k-none
+		os=-os68k
+		;;
+	pa-hitachi)
+		basic_machine=hppa1.1-hitachi
+		os=-hiuxwe2
+		;;
+	paragon)
+		basic_machine=i860-intel
+		os=-osf
+		;;
+	parisc)
+		basic_machine=hppa-unknown
+		os=-linux
+		;;
+	parisc-*)
+		basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'`
+		os=-linux
+		;;
+	pbd)
+		basic_machine=sparc-tti
+		;;
+	pbb)
+		basic_machine=m68k-tti
+		;;
+	pc532 | pc532-*)
+		basic_machine=ns32k-pc532
+		;;
+	pc98)
+		basic_machine=i386-pc
+		;;
+	pc98-*)
+		basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	pentium | p5 | k5 | k6 | nexgen | viac3)
+		basic_machine=i586-pc
+		;;
+	pentiumpro | p6 | 6x86 | athlon | athlon_*)
+		basic_machine=i686-pc
+		;;
+	pentiumii | pentium2 | pentiumiii | pentium3)
+		basic_machine=i686-pc
+		;;
+	pentium4)
+		basic_machine=i786-pc
+		;;
+	pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
+		basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	pentiumpro-* | p6-* | 6x86-* | athlon-*)
+		basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
+		basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	pentium4-*)
+		basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	pn)
+		basic_machine=pn-gould
+		;;
+	power)	basic_machine=power-ibm
+		;;
+	ppc)	basic_machine=powerpc-unknown
+		;;
+	ppc-*)	basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	ppcle | powerpclittle | ppc-le | powerpc-little)
+		basic_machine=powerpcle-unknown
+		;;
+	ppcle-* | powerpclittle-*)
+		basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	ppc64)	basic_machine=powerpc64-unknown
+		;;
+	ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	ppc64le | powerpc64little | ppc64-le | powerpc64-little)
+		basic_machine=powerpc64le-unknown
+		;;
+	ppc64le-* | powerpc64little-*)
+		basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	ps2)
+		basic_machine=i386-ibm
+		;;
+	pw32)
+		basic_machine=i586-unknown
+		os=-pw32
+		;;
+	rdos)
+		basic_machine=i386-pc
+		os=-rdos
+		;;
+	rom68k)
+		basic_machine=m68k-rom68k
+		os=-coff
+		;;
+	rm[46]00)
+		basic_machine=mips-siemens
+		;;
+	rtpc | rtpc-*)
+		basic_machine=romp-ibm
+		;;
+	s390 | s390-*)
+		basic_machine=s390-ibm
+		;;
+	s390x | s390x-*)
+		basic_machine=s390x-ibm
+		;;
+	sa29200)
+		basic_machine=a29k-amd
+		os=-udi
+		;;
+	sb1)
+		basic_machine=mipsisa64sb1-unknown
+		;;
+	sb1el)
+		basic_machine=mipsisa64sb1el-unknown
+		;;
+	sde)
+		basic_machine=mipsisa32-sde
+		os=-elf
+		;;
+	sei)
+		basic_machine=mips-sei
+		os=-seiux
+		;;
+	sequent)
+		basic_machine=i386-sequent
+		;;
+	sh)
+		basic_machine=sh-hitachi
+		os=-hms
+		;;
+	sh5el)
+		basic_machine=sh5le-unknown
+		;;
+	sh64)
+		basic_machine=sh64-unknown
+		;;
+	sparclite-wrs | simso-wrs)
+		basic_machine=sparclite-wrs
+		os=-vxworks
+		;;
+	sps7)
+		basic_machine=m68k-bull
+		os=-sysv2
+		;;
+	spur)
+		basic_machine=spur-unknown
+		;;
+	st2000)
+		basic_machine=m68k-tandem
+		;;
+	stratus)
+		basic_machine=i860-stratus
+		os=-sysv4
+		;;
+	sun2)
+		basic_machine=m68000-sun
+		;;
+	sun2os3)
+		basic_machine=m68000-sun
+		os=-sunos3
+		;;
+	sun2os4)
+		basic_machine=m68000-sun
+		os=-sunos4
+		;;
+	sun3os3)
+		basic_machine=m68k-sun
+		os=-sunos3
+		;;
+	sun3os4)
+		basic_machine=m68k-sun
+		os=-sunos4
+		;;
+	sun4os3)
+		basic_machine=sparc-sun
+		os=-sunos3
+		;;
+	sun4os4)
+		basic_machine=sparc-sun
+		os=-sunos4
+		;;
+	sun4sol2)
+		basic_machine=sparc-sun
+		os=-solaris2
+		;;
+	sun3 | sun3-*)
+		basic_machine=m68k-sun
+		;;
+	sun4)
+		basic_machine=sparc-sun
+		;;
+	sun386 | sun386i | roadrunner)
+		basic_machine=i386-sun
+		;;
+	sv1)
+		basic_machine=sv1-cray
+		os=-unicos
+		;;
+	symmetry)
+		basic_machine=i386-sequent
+		os=-dynix
+		;;
+	t3e)
+		basic_machine=alphaev5-cray
+		os=-unicos
+		;;
+	t90)
+		basic_machine=t90-cray
+		os=-unicos
+		;;
+	tic54x | c54x*)
+		basic_machine=tic54x-unknown
+		os=-coff
+		;;
+	tic55x | c55x*)
+		basic_machine=tic55x-unknown
+		os=-coff
+		;;
+	tic6x | c6x*)
+		basic_machine=tic6x-unknown
+		os=-coff
+		;;
+	tile*)
+		basic_machine=tile-unknown
+		os=-linux-gnu
+		;;
+	tx39)
+		basic_machine=mipstx39-unknown
+		;;
+	tx39el)
+		basic_machine=mipstx39el-unknown
+		;;
+	toad1)
+		basic_machine=pdp10-xkl
+		os=-tops20
+		;;
+	tower | tower-32)
+		basic_machine=m68k-ncr
+		;;
+	tpf)
+		basic_machine=s390x-ibm
+		os=-tpf
+		;;
+	udi29k)
+		basic_machine=a29k-amd
+		os=-udi
+		;;
+	ultra3)
+		basic_machine=a29k-nyu
+		os=-sym1
+		;;
+	v810 | necv810)
+		basic_machine=v810-nec
+		os=-none
+		;;
+	vaxv)
+		basic_machine=vax-dec
+		os=-sysv
+		;;
+	vms)
+		basic_machine=vax-dec
+		os=-vms
+		;;
+	vpp*|vx|vx-*)
+		basic_machine=f301-fujitsu
+		;;
+	vxworks960)
+		basic_machine=i960-wrs
+		os=-vxworks
+		;;
+	vxworks68)
+		basic_machine=m68k-wrs
+		os=-vxworks
+		;;
+	vxworks29k)
+		basic_machine=a29k-wrs
+		os=-vxworks
+		;;
+	w65*)
+		basic_machine=w65-wdc
+		os=-none
+		;;
+	w89k-*)
+		basic_machine=hppa1.1-winbond
+		os=-proelf
+		;;
+	xbox)
+		basic_machine=i686-pc
+		os=-mingw32
+		;;
+	xps | xps100)
+		basic_machine=xps100-honeywell
+		;;
+	ymp)
+		basic_machine=ymp-cray
+		os=-unicos
+		;;
+	z8k-*-coff)
+		basic_machine=z8k-unknown
+		os=-sim
+		;;
+	z80-*-coff)
+		basic_machine=z80-unknown
+		os=-sim
+		;;
+	none)
+		basic_machine=none-none
+		os=-none
+		;;
+
+# Here we handle the default manufacturer of certain CPU types.  It is in
+# some cases the only manufacturer, in others, it is the most popular.
+	w89k)
+		basic_machine=hppa1.1-winbond
+		;;
+	op50n)
+		basic_machine=hppa1.1-oki
+		;;
+	op60c)
+		basic_machine=hppa1.1-oki
+		;;
+	romp)
+		basic_machine=romp-ibm
+		;;
+	mmix)
+		basic_machine=mmix-knuth
+		;;
+	rs6000)
+		basic_machine=rs6000-ibm
+		;;
+	vax)
+		basic_machine=vax-dec
+		;;
+	pdp10)
+		# there are many clones, so DEC is not a safe bet
+		basic_machine=pdp10-unknown
+		;;
+	pdp11)
+		basic_machine=pdp11-dec
+		;;
+	we32k)
+		basic_machine=we32k-att
+		;;
+	sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
+		basic_machine=sh-unknown
+		;;
+	sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
+		basic_machine=sparc-sun
+		;;
+	cydra)
+		basic_machine=cydra-cydrome
+		;;
+	orion)
+		basic_machine=orion-highlevel
+		;;
+	orion105)
+		basic_machine=clipper-highlevel
+		;;
+	mac | mpw | mac-mpw)
+		basic_machine=m68k-apple
+		;;
+	pmac | pmac-mpw)
+		basic_machine=powerpc-apple
+		;;
+	*-unknown)
+		# Make sure to match an already-canonicalized machine name.
+		;;
+	*)
+		echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
+		exit 1
+		;;
+esac
+
+# Here we canonicalize certain aliases for manufacturers.
+case $basic_machine in
+	*-digital*)
+		basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
+		;;
+	*-commodore*)
+		basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
+		;;
+	*)
+		;;
+esac
+
+# Decode manufacturer-specific aliases for certain operating systems.
+
+if [ x"$os" != x"" ]
+then
+case $os in
+        # First match some system type aliases
+        # that might get confused with valid system types.
+	# -solaris* is a basic system type, with this one exception.
+	-solaris1 | -solaris1.*)
+		os=`echo $os | sed -e 's|solaris1|sunos4|'`
+		;;
+	-solaris)
+		os=-solaris2
+		;;
+	-svr4*)
+		os=-sysv4
+		;;
+	-unixware*)
+		os=-sysv4.2uw
+		;;
+	-gnu/linux*)
+		os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
+		;;
+	# First accept the basic system types.
+	# The portable systems comes first.
+	# Each alternative MUST END IN A *, to match a version number.
+	# -sysv* is not here because it comes later, after sysvr4.
+	-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
+	      | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
+	      | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \
+	      | -kopensolaris* \
+	      | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
+	      | -aos* | -aros* \
+	      | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
+	      | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
+	      | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
+	      | -openbsd* | -solidbsd* \
+	      | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
+	      | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
+	      | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
+	      | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
+	      | -chorusos* | -chorusrdb* | -cegcc* \
+	      | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
+	      | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \
+	      | -uxpv* | -beos* | -mpeix* | -udk* \
+	      | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
+	      | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
+	      | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
+	      | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
+	      | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
+	      | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
+	      | -skyos* | -haiku* | -rdos* | -toppers* | -drops*)
+	# Remember, each alternative MUST END IN *, to match a version number.
+		;;
+	-qnx*)
+		case $basic_machine in
+		    x86-* | i*86-*)
+			;;
+		    *)
+			os=-nto$os
+			;;
+		esac
+		;;
+	-nto-qnx*)
+		;;
+	-nto*)
+		os=`echo $os | sed -e 's|nto|nto-qnx|'`
+		;;
+	-sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
+	      | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \
+	      | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
+		;;
+	-mac*)
+		os=`echo $os | sed -e 's|mac|macos|'`
+		;;
+	-linux-dietlibc)
+		os=-linux-dietlibc
+		;;
+	-linux*)
+		os=`echo $os | sed -e 's|linux|linux-gnu|'`
+		;;
+	-sunos5*)
+		os=`echo $os | sed -e 's|sunos5|solaris2|'`
+		;;
+	-sunos6*)
+		os=`echo $os | sed -e 's|sunos6|solaris3|'`
+		;;
+	-opened*)
+		os=-openedition
+		;;
+        -os400*)
+		os=-os400
+		;;
+	-wince*)
+		os=-wince
+		;;
+	-osfrose*)
+		os=-osfrose
+		;;
+	-osf*)
+		os=-osf
+		;;
+	-utek*)
+		os=-bsd
+		;;
+	-dynix*)
+		os=-bsd
+		;;
+	-acis*)
+		os=-aos
+		;;
+	-atheos*)
+		os=-atheos
+		;;
+	-syllable*)
+		os=-syllable
+		;;
+	-386bsd)
+		os=-bsd
+		;;
+	-ctix* | -uts*)
+		os=-sysv
+		;;
+	-nova*)
+		os=-rtmk-nova
+		;;
+	-ns2 )
+		os=-nextstep2
+		;;
+	-nsk*)
+		os=-nsk
+		;;
+	# Preserve the version number of sinix5.
+	-sinix5.*)
+		os=`echo $os | sed -e 's|sinix|sysv|'`
+		;;
+	-sinix*)
+		os=-sysv4
+		;;
+        -tpf*)
+		os=-tpf
+		;;
+	-triton*)
+		os=-sysv3
+		;;
+	-oss*)
+		os=-sysv3
+		;;
+	-svr4)
+		os=-sysv4
+		;;
+	-svr3)
+		os=-sysv3
+		;;
+	-sysvr4)
+		os=-sysv4
+		;;
+	# This must come after -sysvr4.
+	-sysv*)
+		;;
+	-ose*)
+		os=-ose
+		;;
+	-es1800*)
+		os=-ose
+		;;
+	-xenix)
+		os=-xenix
+		;;
+	-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
+		os=-mint
+		;;
+	-aros*)
+		os=-aros
+		;;
+	-kaos*)
+		os=-kaos
+		;;
+	-zvmoe)
+		os=-zvmoe
+		;;
+	-dicos*)
+		os=-dicos
+		;;
+	-none)
+		;;
+	*)
+		# Get rid of the `-' at the beginning of $os.
+		os=`echo $os | sed 's/[^-]*-//'`
+		echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
+		exit 1
+		;;
+esac
+else
+
+# Here we handle the default operating systems that come with various machines.
+# The value should be what the vendor currently ships out the door with their
+# machine or put another way, the most popular os provided with the machine.
+
+# Note that if you're going to try to match "-MANUFACTURER" here (say,
+# "-sun"), then you have to tell the case statement up towards the top
+# that MANUFACTURER isn't an operating system.  Otherwise, code above
+# will signal an error saying that MANUFACTURER isn't an operating
+# system, and we'll never get to this point.
+
+case $basic_machine in
+        score-*)
+		os=-elf
+		;;
+        spu-*)
+		os=-elf
+		;;
+	*-acorn)
+		os=-riscix1.2
+		;;
+	arm*-rebel)
+		os=-linux
+		;;
+	arm*-semi)
+		os=-aout
+		;;
+        c4x-* | tic4x-*)
+        	os=-coff
+		;;
+	# This must come before the *-dec entry.
+	pdp10-*)
+		os=-tops20
+		;;
+	pdp11-*)
+		os=-none
+		;;
+	*-dec | vax-*)
+		os=-ultrix4.2
+		;;
+	m68*-apollo)
+		os=-domain
+		;;
+	i386-sun)
+		os=-sunos4.0.2
+		;;
+	m68000-sun)
+		os=-sunos3
+		# This also exists in the configure program, but was not the
+		# default.
+		# os=-sunos4
+		;;
+	m68*-cisco)
+		os=-aout
+		;;
+        mep-*)
+		os=-elf
+		;;
+	mips*-cisco)
+		os=-elf
+		;;
+	mips*-*)
+		os=-elf
+		;;
+	or32-*)
+		os=-coff
+		;;
+	*-tti)	# must be before sparc entry or we get the wrong os.
+		os=-sysv3
+		;;
+	sparc-* | *-sun)
+		os=-sunos4.1.1
+		;;
+	*-be)
+		os=-beos
+		;;
+	*-haiku)
+		os=-haiku
+		;;
+	*-ibm)
+		os=-aix
+		;;
+    	*-knuth)
+		os=-mmixware
+		;;
+	*-wec)
+		os=-proelf
+		;;
+	*-winbond)
+		os=-proelf
+		;;
+	*-oki)
+		os=-proelf
+		;;
+	*-hp)
+		os=-hpux
+		;;
+	*-hitachi)
+		os=-hiux
+		;;
+	i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
+		os=-sysv
+		;;
+	*-cbm)
+		os=-amigaos
+		;;
+	*-dg)
+		os=-dgux
+		;;
+	*-dolphin)
+		os=-sysv3
+		;;
+	m68k-ccur)
+		os=-rtu
+		;;
+	m88k-omron*)
+		os=-luna
+		;;
+	*-next )
+		os=-nextstep
+		;;
+	*-sequent)
+		os=-ptx
+		;;
+	*-crds)
+		os=-unos
+		;;
+	*-ns)
+		os=-genix
+		;;
+	i370-*)
+		os=-mvs
+		;;
+	*-next)
+		os=-nextstep3
+		;;
+	*-gould)
+		os=-sysv
+		;;
+	*-highlevel)
+		os=-bsd
+		;;
+	*-encore)
+		os=-bsd
+		;;
+	*-sgi)
+		os=-irix
+		;;
+	*-siemens)
+		os=-sysv4
+		;;
+	*-masscomp)
+		os=-rtu
+		;;
+	f30[01]-fujitsu | f700-fujitsu)
+		os=-uxpv
+		;;
+	*-rom68k)
+		os=-coff
+		;;
+	*-*bug)
+		os=-coff
+		;;
+	*-apple)
+		os=-macos
+		;;
+	*-atari*)
+		os=-mint
+		;;
+	*)
+		os=-none
+		;;
+esac
+fi
+
+# Here we handle the case where we know the os, and the CPU type, but not the
+# manufacturer.  We pick the logical manufacturer.
+vendor=unknown
+case $basic_machine in
+	*-unknown)
+		case $os in
+			-riscix*)
+				vendor=acorn
+				;;
+			-sunos*)
+				vendor=sun
+				;;
+			-cnk*|-aix*)
+				vendor=ibm
+				;;
+			-beos*)
+				vendor=be
+				;;
+			-hpux*)
+				vendor=hp
+				;;
+			-mpeix*)
+				vendor=hp
+				;;
+			-hiux*)
+				vendor=hitachi
+				;;
+			-unos*)
+				vendor=crds
+				;;
+			-dgux*)
+				vendor=dg
+				;;
+			-luna*)
+				vendor=omron
+				;;
+			-genix*)
+				vendor=ns
+				;;
+			-mvs* | -opened*)
+				vendor=ibm
+				;;
+			-os400*)
+				vendor=ibm
+				;;
+			-ptx*)
+				vendor=sequent
+				;;
+			-tpf*)
+				vendor=ibm
+				;;
+			-vxsim* | -vxworks* | -windiss*)
+				vendor=wrs
+				;;
+			-aux*)
+				vendor=apple
+				;;
+			-hms*)
+				vendor=hitachi
+				;;
+			-mpw* | -macos*)
+				vendor=apple
+				;;
+			-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
+				vendor=atari
+				;;
+			-vos*)
+				vendor=stratus
+				;;
+		esac
+		basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
+		;;
+esac
+
+echo $basic_machine$os
+exit
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "timestamp='"
+# time-stamp-format: "%:y-%02m-%02d"
+# time-stamp-end: "'"
+# End:
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/3rdparty/libconninet/configure.ac	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,90 @@
+AC_INIT([libconninet], patsubst(esyscmd([dpkg-parsechangelog | sed -n '/^Version: \(.*\)$/ {s//\1/;p}']), [
+]), [jukka.rissanen@nokia.com])
+AM_INIT_AUTOMAKE([foreign])
+
+AC_PROG_CXX
+AC_PROG_LIBTOOL
+
+AC_ARG_ENABLE(docs,     [ --enable-docs      Build DOXYGEN documentation (requires Doxygen)],enable_docs=$enableval,enable_docs=auto)
+
+AC_PATH_PROG(DOXYGEN, doxygen, no)
+AC_MSG_CHECKING([whether to build Doxygen documentation])
+
+if test x$DOXYGEN = xno ; then
+    have_doxygen=no
+else
+    have_doxygen=yes
+fi
+if test x$enable_docs = xauto ; then
+    if test x$have_doxygen = xno ; then
+        enable_docs=no
+    else
+        enable_docs=yes
+    fi
+fi
+if test x$enable_docs = xyes; then
+    if test x$have_doxygen = xno; then
+        AC_MSG_ERROR([Building Doxygen docs explicitly required, but Doxygen not found])
+    else 
+	AC_MSG_RESULT(yes)
+    fi
+else
+    AC_MSG_RESULT(no)
+fi
+ 
+AM_CONDITIONAL(DOXYGEN_DOCS_ENABLED, test x$enable_docs = xyes)
+AC_SUBST(DOXYGEN)
+
+PKG_CHECK_MODULES(GLIB, glib-2.0)
+AC_SUBST(GLIB_CFLAGS)
+AC_SUBST(GLIB_LIBS)
+
+PKG_CHECK_MODULES(QTCORE, QtCore)
+AC_SUBST(QTCORE_CFLAGS)
+AC_SUBST(QTCORE_LIBS)
+
+PKG_CHECK_MODULES(QTNETWORK, QtNetwork)
+AC_SUBST(QTNETWORK_CFLAGS)
+AC_SUBST(QTNETWORK_LIBS)
+
+PKG_CHECK_MODULES(QTDBUS, QtDBus)
+AC_SUBST(QTDBUS_CFLAGS)
+AC_SUBST(QTDBUS_LIBS)
+
+PKG_CHECK_MODULES(QTTEST, QtTest)
+AC_SUBST(QTTEST_CFLAGS)
+AC_SUBST(QTTEST_LIBS)
+
+PKG_CHECK_MODULES(DBUS, dbus-glib-1)
+AC_SUBST(DBUS_CFLAGS)
+AC_SUBST(DBUS_LIBS)
+
+PKG_CHECK_MODULES(CONNSETTINGS, connsettings)
+AC_SUBST(CONNSETTINGS_CFLAGS)
+AC_SUBST(CONNSETTINGS_LIBS)
+
+PKG_CHECK_MODULES(OSSO_IC, osso-ic)
+AC_SUBST(OSSO_IC_CFLAGS)
+AC_SUBST(OSSO_IC_LIBS)
+
+PKG_CHECK_MODULES(ICD_DEV, icd2)
+AC_SUBST(ICD_DEV_CFLAGS)
+AC_SUBST(ICD_DEV_LIBS)
+
+PKG_CHECK_MODULES(GCONF, gconf-2.0)
+AC_SUBST(GCONF_CFLAGS)
+AC_SUBST(GCONF_LIBS)
+
+PKG_CHECK_MODULES(QGCONF, gq-gconf)
+AC_SUBST(QGCONF_CFLAGS)
+AC_SUBST(QGCONF_LIBS)
+
+CONCFLAGS="-Wall -Werror -Wmissing-prototypes"
+AC_SUBST(CONCFLAGS)
+
+AC_CONFIG_FILES([Makefile \
+	src/Makefile \
+	tests/Makefile \
+	conninet.pc \
+	doxygen.cfg])
+AC_OUTPUT
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/3rdparty/libconninet/conninet.pc.in	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,11 @@
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+
+Name: libconninet
+Description: Internet Connectivity support library
+Version: @VERSION@
+Requires: dbus-1 >= 0.60 glib-2.0 QtCore QtDBus QtGui
+Libs: -lconninet
+Cflags: -I${includedir}/conninet
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/3rdparty/libconninet/debian/changelog	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,293 @@
+libconninet (0.42+0m6) unstable; urgency=low
+
+  * This entry has been added by BIFH queue processor
+    version has been changed to 0.42+0m6
+
+ -- Qing Jin <ext-qing.1.jin@nokia.com>  Thu, 22 Jul 2010 14:04:58 +0300
+
+libconninet (0.42) unstable; urgency=low
+
+  * Fixes: NB#180536 - Uploads to online services are not working.
+    This is a regression caused by fix to bug 175098, the timeout was never
+    expiring when waiting reply from icd.
+
+ -- Jukka Rissanen <jukka.rissanen@nokia.com>  Mon, 19 Jul 2010 12:23:30 +0300
+
+libconninet (0.41) unstable; urgency=low
+
+  * Fixes: NB#175098 - Qt4.7 Webkit crashes when bearer API QNetworkSession
+    constructor calls QNetworkSession::syncStateWithInterface() which in turn
+    calls Maemo::state() and Maemo::addrinfo() and webkit expects that event
+    loop is not run but those function process main loop events.
+    Now Maemo::state() and Maemo::addrinfo() are changed to be synchronous
+    and fully blocking functions. The old non-blocking versions are called 
+    Maemo::state_non_blocking() and Maemo::addrinfo_non_blocking().
+
+ -- Jukka Rissanen <jukka.rissanen@nokia.com>  Wed, 14 Jul 2010 10:12:47 +0300
+
+libconninet (0.40) unstable; urgency=low
+
+  * Fixes: NB#167465 - Unable to open network connection using libbearer
+
+ -- Jukka Rissanen <jukka.rissanen@nokia.com>  Tue, 11 May 2010 10:47:10 +0300
+
+libconninet (0.39) unstable; urgency=low
+
+  * Fixes: NB#167982 - initialize DBus vtable in DBusDispatcher.
+
+ -- Aapo Makela <aapo.makela@nokia.com>  Mon, 10 May 2010 14:42:39 +0300
+
+libconninet (0.38) unstable; urgency=low
+
+  * Changing icd2 connect_req to be synchronous as the check for
+    returned connect signal did not work correctly, this caused a
+    long timeout when connect() was called.
+  * Scan sometimes missed results and did not return them to caller.
+  * HTTP proxy settings were not set correctly.
+
+ -- Jukka Rissanen <jukka.rissanen@nokia.com>  Thu, 15 Apr 2010 11:25:06 +0300
+
+libconninet (0.37) unstable; urgency=low
+
+  * Make proxy config reference counting atomic.
+
+ -- Jukka Rissanen <jukka.rissanen@nokia.com>  Wed,  3 Mar 2010 13:23:08 +0200
+
+libconninet (0.36) unstable; urgency=low
+
+  * Fixes: NB#157586 - Cleanup dbus listener when WLAN scanning object is
+    deleted.
+
+ -- Jukka Rissanen <jukka.rissanen@nokia.com>  Fri, 26 Feb 2010 13:30:41 +0200
+
+libconninet (0.35) unstable; urgency=low
+
+  * Fixes: NB#156883 - libconninet fails to build under the Platform SDK (SB2)
+
+ -- Jukka Rissanen <jukka.rissanen@nokia.com>  Thu, 18 Feb 2010 12:14:40 +0200
+
+libconninet (0.34) unstable; urgency=low
+
+  * Coverity fix
+
+ -- Jukka Rissanen <jukka.rissanen@nokia.com>  Tue, 16 Feb 2010 16:38:00 +0200
+
+libconninet (0.33) unstable; urgency=low
+
+  * Added API to update Qt proxy config.
+
+ -- Jukka Rissanen <jukka.rissanen@nokia.com>  Tue, 26 Jan 2010 15:48:36 +0200
+
+libconninet (0.32) unstable; urgency=low
+
+  * Fixed IAPConf to unset value when set value is invalid.
+  * Updated IAPMonitor to use libconnsettings.
+
+ -- Aapo Makela <aapo.makela@nokia.com>  Wed, 03 Feb 2010 07:32:45 +0200
+
+libconninet (0.31) unstable; urgency=low
+
+  * Fixes: NB#154892 - Check nulls in IAPConf.
+
+ -- Aapo Makela <aapo.makela@nokia.com>  Mon, 01 Feb 2010 09:32:06 +0200
+
+libconninet (0.30) unstable; urgency=low
+
+  * Updated IAPConf to use libconnsettings.
+
+ -- Aapo Makela <aapo.makela@nokia.com>  Fri, 29 Jan 2010 12:58:03 +0200
+
+libconninet (0.29) unstable; urgency=low
+
+  * Fixed dependencies
+
+ -- Jukka Rissanen <jukka.rissanen@nokia.com>  Fri, 15 Jan 2010 10:16:07 +0200
+
+libconninet (0.28) unstable; urgency=low
+
+  * Get rid of libdui dependency
+
+ -- Jukka Rissanen <jukka.rissanen@nokia.com>  Wed, 13 Jan 2010 09:56:26 +0200
+
+libconninet (0.27) unstable; urgency=low
+
+  * Insert new pending calls to the list in DBusDispatcher.
+
+ -- Aapo Makela <aapo.makela@nokia.com>  Tue, 22 Dec 2009 14:27:32 +0200
+
+libconninet (0.26) unstable; urgency=low
+
+  * Added possibility to specify different signal path for DBusDispatcher.
+
+ -- Aapo Makela <aapo.makela@nokia.com>  Wed, 25 Nov 2009 14:27:34 +0200
+
+libconninet (0.25) unstable; urgency=low
+
+  * Fixes: NB#146450 - All scan results were not returned to the caller.
+
+ -- Jukka Rissanen <jukka.rissanen@nokia.com>  Mon, 16 Nov 2009 17:23:15 +0200
+
+libconninet (0.24) unstable; urgency=low
+
+  * Wait all scan results for all network types in Maemo::Icd::scan()
+
+ -- Jukka Rissanen <jukka.rissanen@nokia.com>  Fri,  6 Nov 2009 14:45:23 +0200
+
+libconninet (0.23) unstable; urgency=low
+
+  * Fixes: NB#143361 - Assert failure in session class for GPRS IAP.
+
+ -- Jukka Rissanen <jukka.rissanen@nokia.com>  Mon, 19 Oct 2009 16:00:14 +0300
+
+libconninet (0.22) unstable; urgency=low
+
+  * Fixed the error checking if scan returns 0 results.
+
+ -- Jukka Rissanen <jukka.rissanen@nokia.com>  Wed,  7 Oct 2009 13:50:27 +0300
+
+libconninet (0.21) unstable; urgency=low
+
+  * Support multiple DBusDispatcher classes at the same time. This is
+    required by Maemo::Icd class so that multiple instances of it can
+    be used the same time.
+
+ -- Jukka Rissanen <jukka.rissanen@nokia.com>  Mon,  5 Oct 2009 16:33:43 +0300
+
+libconninet (0.20) unstable; urgency=low
+
+  * Fixed memory leak in IAPConf::setValue()
+
+ -- Jukka Rissanen <jukka.rissanen@nokia.com>  Fri,  2 Oct 2009 13:02:21 +0300
+
+libconninet (0.19) unstable; urgency=low
+
+  * Fixed connect_req to one specific IAP in Icd class.
+
+ -- Jukka Rissanen <jukka.rissanen@nokia.com>  Tue, 29 Sep 2009 17:02:46 +0300
+
+libconninet (0.18) unstable; urgency=low
+
+  * Make sure the library will not abort in Icd class if scan does
+    not return any results.
+
+ -- Jukka Rissanen <jukka.rissanen@nokia.com>  Tue, 22 Sep 2009 17:00:12 +0300
+
+libconninet (0.17) unstable; urgency=low
+
+  * Added IAP monitoring support.
+
+ -- Jukka Rissanen <jukka.rissanen@nokia.com>  Mon, 21 Sep 2009 16:29:31 +0300
+
+libconninet (0.16) unstable; urgency=low
+
+  * Disabled the old osso-ic dbus interface as it is currently not used.
+  * Fixed the addrinfo request, now addresses are returned correctly to
+    the caller.
+
+ -- Jukka Rissanen <jukka.rissanen@nokia.com>  Thu, 17 Sep 2009 15:56:13 +0300
+
+libconninet (0.15) unstable; urgency=low
+
+  * Enabling state_req, statistics_req and addrinfo_req support
+    functions in Maemo::Icd as the corresponding DBUS API functions are
+    fixed in icd2 v0.89
+
+ -- Jukka Rissanen <jukka.rissanen@nokia.com>  Fri, 24 Jul 2009 15:23:02 +0300
+
+libconninet (0.14) unstable; urgency=low
+
+  * Icd statistics support added.
+  * Icd address information support added.
+  * Icd scan method does not return the final (and empty) result any more.
+  * Added initial unit test implementation for Icd class.
+  * Some of the status functions in Icd class disabled because of issues
+    in icd2 and the dbus api.
+
+ -- Jukka Rissanen <jukka.rissanen@nokia.com>  Thu, 23 Jul 2009 11:03:05 +0300
+
+libconninet (0.13) unstable; urgency=low
+
+  * Added API to get all the configured IAPs.
+
+ -- Jukka Rissanen <jukka.rissanen@nokia.com>  Tue, 21 Jul 2009 09:47:18 +0300
+
+libconninet (0.12) unstable; urgency=low
+
+  * Replaced duivaluespace by Dui in pkg-config file because the
+    duivaluespace is deprecated.
+
+ -- Jukka Rissanen <jukka.rissanen@nokia.com>  Mon, 20 Jul 2009 16:00:10 +0300
+
+libconninet (0.11) unstable; urgency=low
+
+  * Using libdui instead of libduivaluespace because it is deprecated.
+  * The IAPConf::clear() uses native gconf API instead of launching gconftool
+  * Check that state_req call returned list and the list contains entries
+    before trying to access it.
+
+ -- Jukka Rissanen <jukka.rissanen@nokia.com>  Mon, 20 Jul 2009 14:55:15 +0300
+
+libconninet (0.10) unstable; urgency=low
+
+  * connect() did not return ok when connection succeeded.
+
+ -- Jukka Rissanen <jukka.rissanen@nokia.com>  Thu, 25 Jun 2009 09:31:21 +0300
+
+libconninet (0.9) unstable; urgency=low
+
+  * Connection timeout set to 2.5min, same as in fremantle.
+
+ -- Jukka Rissanen <jukka.rissanen@nokia.com>  Wed, 17 Jun 2009 13:36:40 +0300
+
+libconninet (0.8) unstable; urgency=low
+
+  * Fix state_req signal received from Icd
+
+ -- Jukka Rissanen <jukka.rissanen@nokia.com>  Thu, 11 Jun 2009 17:19:33 +0300
+
+libconninet (0.7) unstable; urgency=low
+
+  * Icd disconnect and select reqs are made synchronous as we do not
+    wait the return status. The previous async version was causing core
+    dumps if Icd class was destroyed too early.
+
+ -- Jukka Rissanen <jukka.rissanen@nokia.com>  Thu, 11 Jun 2009 11:52:36 +0300
+
+libconninet (0.6) unstable; urgency=low
+
+  * Fixed the libconninet0-dev dependencies.
+
+ -- Jukka Rissanen <jukka.rissanen@nokia.com>  Mon,  8 Jun 2009 10:47:56 +0300
+
+libconninet (0.5) unstable; urgency=low
+
+  * Fixed missing QObject connect functions.
+  * Fixed IAPConf to return invalid QVariant if the value does not exist.
+
+ -- Jukka Rissanen <jukka.rissanen@nokia.com>  Mon, 01 Jun 2009 13:58:53 +0300
+
+libconninet (0.4) unstable; urgency=low
+
+  * Fixed QObject signal setting for Maemo::Icd
+
+ -- Jukka Rissanen <jukka.rissanen@nokia.com>  Wed, 20 May 2009 13:51:11 +0300
+
+libconninet (0.3) unstable; urgency=low
+
+  * Refactoring classes
+  * Added IAPConf class.
+
+ -- Jukka Rissanen <jukka.rissanen@nokia.com>  Thu, 14 May 2009 13:24:11 +0300
+
+libconninet (0.2) unstable; urgency=low
+
+  * Fixed pkgconfig file which had wrong dependency
+  * Added DBus array and struct support to DBusDispatcher.
+
+ -- Jukka Rissanen <jukka.rissanen@nokia.com>  Wed, 13 May 2009 12:11:00 +0300
+
+libconninet (0.1) unstable; urgency=low
+
+  * Initial Release.
+
+ -- Jukka Rissanen <jukka.rissanen@nokia.com>  Tue, 12 May 2009 16:10:27 +0200
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/3rdparty/libconninet/debian/compat	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,1 @@
+4
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/3rdparty/libconninet/debian/control	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,39 @@
+Source: libconninet
+Priority: optional
+Maintainer: Jukka Rissanen <jukka.rissanen@nokia.com>
+Build-Depends: debhelper (>= 4.0.0), autotools-dev, libglib2.0-dev (>= 2.8),
+ libdbus-1-dev (>= 0.60), libconnsettings0-dev (>= 0.4), icd2-osso-ic-dev,
+ icd2-dev, libqt4-dev, libgconf2-dev (>> 2.6.4), libgq-gconf-dev
+Standards-Version: 3.6.2
+Section: libs
+
+Package: libconninet0-dev
+Section: libdevel
+Architecture: any
+Depends: libconninet0 (= ${Source-Version}), libdbus-1-dev (>= 0.60),
+ libglib2.0-dev (>= 2.8), libconnsettings0-dev (>= 0.4), libqt4-dev,
+ icd2-osso-ic-dev, icd2-dev, libgconf2-dev (>> 2.6.4), libgq-gconf-dev
+Description: Internet Connectivity support library development files
+ Internet Connectivity support library (libconninet) provides common
+ support functions for connecting to icd2 and accessing configuration
+ data.
+ .
+ This package contains the header files.
+
+Package: libconninet0
+Section: libs
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: Internet Connectivity support library
+ Internet Connectivity support library (libconninet) provides common
+ support functions for connecting to icd2 and accessing configuration
+ data.
+ .
+ This package contains the shared libraries.
+
+Package: libconninet0-dbg
+Section: libs
+Architecture: any
+Depends: libconninet0 (= ${Source-Version}), ${shlibs:Depends}, ${misc:Depends}
+Description: Debug symbols for the Internet Connectivity support library
+ Internet Connectivity support library (libconninet) debug symbols.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/3rdparty/libconninet/debian/copyright	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,19 @@
+libconninet - Internet Connectivity support library
+
+Copyright (C) 2009 Nokia Corporation. All rights reserved.
+
+Contact: Jukka Rissanen <jukka.rissanen@nokia.com>
+
+This library is free software; you can redistribute it and/or modify
+it under the terms of the GNU Lesser General Public License version 2.1 
+as published by the Free Software Foundation.
+
+This library is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public
+License along with this library; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+02110-1301 USA
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/3rdparty/libconninet/debian/libconninet0-dev.dirs	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,2 @@
+usr/lib
+usr/include
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/3rdparty/libconninet/debian/libconninet0-dev.files	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,4 @@
+usr/include/*
+usr/lib/lib*.so
+usr/lib/pkgconfig/*
+usr/share/pkgconfig/*
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/3rdparty/libconninet/debian/libconninet0.dirs	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,1 @@
+usr/lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/3rdparty/libconninet/debian/libconninet0.files	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,1 @@
+usr/lib/lib*.so.*
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/3rdparty/libconninet/debian/rules	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,123 @@
+#!/usr/bin/make -f
+# -*- makefile -*-
+# Sample debian/rules that uses debhelper.
+# This file was originally written by Joey Hess and Craig Small.
+# As a special exception, when this file is copied by dh-make into a
+# dh-make output file, you may use that output file without restriction.
+# This special exception was added by Craig Small in version 0.37 of dh-make.
+
+# Uncomment this to turn on verbose mode.
+#export DH_VERBOSE=1
+
+
+# These are used for cross-compiling and for saving the configure script
+# from having to guess our platform (since we know it already)
+DEB_HOST_GNU_TYPE   ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
+DEB_BUILD_GNU_TYPE  ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
+
+
+CFLAGS = -Wall -g
+
+ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
+	CFLAGS += -O0
+else
+	CFLAGS += -O2
+endif
+
+# shared library versions, option 1
+#version=2.0.5
+#major=2
+# option 2, assuming the library is created as src/.libs/libfoo.so.2.0.5 or so
+version=`ls src/.libs/lib*.so.* | \
+ awk '{if (match($$0,/[0-9]+\.[0-9]+\.[0-9]+$$/)) print substr($$0,RSTART)}'`
+major=`ls src/.libs/lib*.so.* | \
+ awk '{if (match($$0,/\.so\.[0-9]+$$/)) print substr($$0,RSTART+4)}'`
+
+configure: configure.ac debian/changelog
+	-./autogen.sh
+
+config.status: configure
+	dh_testdir
+	# Add here commands to configure the package.
+	CFLAGS="$(CFLAGS)" ./configure \
+		--host=$(DEB_HOST_GNU_TYPE) \
+		--build=$(DEB_BUILD_GNU_TYPE) \
+		--prefix=/usr \
+		--mandir=\$${prefix}/share/man \
+		--infodir=\$${prefix}/share/info
+
+
+build: build-stamp
+build-stamp:  config.status
+	dh_testdir
+
+	# Add here commands to compile the package.
+	$(MAKE)
+
+	touch build-stamp
+
+clean:
+	dh_testdir
+	dh_testroot
+	rm -f build-stamp 
+
+	# Add here commands to clean up after the build process.
+	-$(MAKE) distclean
+ifneq "$(wildcard /usr/share/misc/config.sub)" ""
+	cp -f /usr/share/misc/config.sub config.sub
+endif
+ifneq "$(wildcard /usr/share/misc/config.guess)" ""
+	cp -f /usr/share/misc/config.guess config.guess
+endif
+
+
+	dh_clean 
+
+install: build
+	dh_testdir
+	dh_testroot
+	dh_clean -k 
+	dh_installdirs
+
+	# Add here commands to install the package into debian/tmp
+	$(MAKE) install DESTDIR=$(CURDIR)/debian/tmp
+
+
+# Build architecture-independent files here.
+binary-indep: build install
+# We have nothing to do by default.
+
+# Build architecture-dependent files here.
+binary-arch: build install
+	dh_testdir
+	dh_testroot
+	dh_movefiles
+	dh_installchangelogs ChangeLog
+	dh_installdocs
+	dh_installexamples
+#	dh_install
+#	dh_installmenu
+#	dh_installdebconf	
+#	dh_installlogrotate
+#	dh_installemacsen
+#	dh_installpam
+#	dh_installmime
+#	dh_installinit
+#	dh_installcron
+#	dh_installinfo
+	dh_installman
+	dh_link
+	dh_strip --dbg-package=libconninet0
+	dh_compress
+	dh_fixperms
+#	dh_perl
+#	dh_python
+	dh_makeshlibs
+	dh_installdeb
+	dh_shlibdeps
+	dh_gencontrol
+	dh_md5sums
+	dh_builddeb
+
+binary: binary-indep binary-arch
+.PHONY: build clean binary-indep binary-arch binary install 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/3rdparty/libconninet/doxygen.cfg.in	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,1147 @@
+# Doxyfile 1.3.7
+
+# This file describes the settings to be used by the documentation system
+# doxygen (www.doxygen.org) for a project
+#
+# All text after a hash (#) is considered a comment and will be ignored
+# The format is:
+#       TAG = value [value, ...]
+# For lists items can also be appended using:
+#       TAG += value [value, ...]
+# Values that contain spaces should be placed between quotes (" ")
+
+#---------------------------------------------------------------------------
+# Project related configuration options
+#---------------------------------------------------------------------------
+
+# The PROJECT_NAME tag is a single word (or a sequence of words surrounded 
+# by quotes) that should identify the project.
+
+PROJECT_NAME           = "Internet Connectivity Support Library"
+
+# The PROJECT_NUMBER tag can be used to enter a project or revision number. 
+# This could be handy for archiving the generated documentation or 
+# if some version control system is used.
+
+PROJECT_NUMBER         = @VERSION@
+
+# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) 
+# base path where the generated documentation will be put. 
+# If a relative path is entered, it will be relative to the location 
+# where doxygen was started. If left blank the current directory will be used.
+
+OUTPUT_DIRECTORY       = doc
+
+# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create 
+# 2 levels of 10 sub-directories under the output directory of each output 
+# format and will distribute the generated files over these directories. 
+# Enabling this option can be useful when feeding doxygen a huge amount of source 
+# files, where putting all generated files in the same directory would otherwise 
+# cause performance problems for the file system.
+
+CREATE_SUBDIRS         = NO
+
+# The OUTPUT_LANGUAGE tag is used to specify the language in which all 
+# documentation generated by doxygen is written. Doxygen will use this 
+# information to generate all constant output in the proper language. 
+# The default language is English, other supported languages are: 
+# Brazilian, Catalan, Chinese, Chinese-Traditional, Croatian, Czech, Danish, Dutch, 
+# Finnish, French, German, Greek, Hungarian, Italian, Japanese, Japanese-en 
+# (Japanese with English messages), Korean, Korean-en, Norwegian, Polish, Portuguese, 
+# Romanian, Russian, Serbian, Slovak, Slovene, Spanish, Swedish, and Ukrainian.
+
+OUTPUT_LANGUAGE        = English
+
+# This tag can be used to specify the encoding used in the generated output. 
+# The encoding is not always determined by the language that is chosen, 
+# but also whether or not the output is meant for Windows or non-Windows users. 
+# In case there is a difference, setting the USE_WINDOWS_ENCODING tag to YES 
+# forces the Windows encoding (this is the default for the Windows binary), 
+# whereas setting the tag to NO uses a Unix-style encoding (the default for 
+# all platforms other than Windows).
+
+USE_WINDOWS_ENCODING   = NO
+
+# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will 
+# include brief member descriptions after the members that are listed in 
+# the file and class documentation (similar to JavaDoc). 
+# Set to NO to disable this.
+
+BRIEF_MEMBER_DESC      = YES
+
+# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend 
+# the brief description of a member or function before the detailed description. 
+# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the 
+# brief descriptions will be completely suppressed.
+
+REPEAT_BRIEF           = YES
+
+# This tag implements a quasi-intelligent brief description abbreviator 
+# that is used to form the text in various listings. Each string 
+# in this list, if found as the leading text of the brief description, will be 
+# stripped from the text and the result after processing the whole list, is used 
+# as the annotated text. Otherwise, the brief description is used as-is. If left 
+# blank, the following values are used ("$name" is automatically replaced with the 
+# name of the entity): "The $name class" "The $name widget" "The $name file" 
+# "is" "provides" "specifies" "contains" "represents" "a" "an" "the"
+
+ABBREVIATE_BRIEF       = 
+
+# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then 
+# Doxygen will generate a detailed section even if there is only a brief 
+# description.
+
+ALWAYS_DETAILED_SEC    = NO
+
+# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all inherited 
+# members of a class in the documentation of that class as if those members were 
+# ordinary class members. Constructors, destructors and assignment operators of 
+# the base classes will not be shown.
+
+INLINE_INHERITED_MEMB  = NO
+
+# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full 
+# path before files name in the file list and in the header files. If set 
+# to NO the shortest path that makes the file name unique will be used.
+
+FULL_PATH_NAMES        = NO
+
+# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag 
+# can be used to strip a user-defined part of the path. Stripping is 
+# only done if one of the specified strings matches the left-hand part of 
+# the path. The tag can be used to show relative paths in the file list. 
+# If left blank the directory from which doxygen is run is used as the 
+# path to strip.
+
+STRIP_FROM_PATH        = 
+
+# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of 
+# the path mentioned in the documentation of a class, which tells 
+# the reader which header file to include in order to use a class. 
+# If left blank only the name of the header file containing the class 
+# definition is used. Otherwise one should specify the include paths that 
+# are normally passed to the compiler using the -I flag.
+
+STRIP_FROM_INC_PATH    = 
+
+# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter 
+# (but less readable) file names. This can be useful is your file systems 
+# doesn't support long names like on DOS, Mac, or CD-ROM.
+
+SHORT_NAMES            = NO
+
+# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen 
+# will interpret the first line (until the first dot) of a JavaDoc-style 
+# comment as the brief description. If set to NO, the JavaDoc 
+# comments will behave just like the Qt-style comments (thus requiring an 
+# explicit @brief command for a brief description.
+
+JAVADOC_AUTOBRIEF      = YES
+
+# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen 
+# treat a multi-line C++ special comment block (i.e. a block of //! or /// 
+# comments) as a brief description. This used to be the default behaviour. 
+# The new default is to treat a multi-line C++ comment block as a detailed 
+# description. Set this tag to YES if you prefer the old behaviour instead.
+
+MULTILINE_CPP_IS_BRIEF = NO
+
+# If the DETAILS_AT_TOP tag is set to YES then Doxygen 
+# will output the detailed description near the top, like JavaDoc.
+# If set to NO, the detailed description appears after the member 
+# documentation.
+
+DETAILS_AT_TOP         = YES
+
+# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented 
+# member inherits the documentation from any documented member that it 
+# re-implements.
+
+INHERIT_DOCS           = YES
+
+# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC 
+# tag is set to YES, then doxygen will reuse the documentation of the first 
+# member in the group (if any) for the other members of the group. By default 
+# all members of a group must be documented explicitly.
+
+DISTRIBUTE_GROUP_DOC   = NO
+
+# The TAB_SIZE tag can be used to set the number of spaces in a tab. 
+# Doxygen uses this value to replace tabs by spaces in code fragments.
+
+TAB_SIZE               = 8
+
+# This tag can be used to specify a number of aliases that acts 
+# as commands in the documentation. An alias has the form "name=value". 
+# For example adding "sideeffect=\par Side Effects:\n" will allow you to 
+# put the command \sideeffect (or @sideeffect) in the documentation, which 
+# will result in a user-defined paragraph with heading "Side Effects:". 
+# You can put \n's in the value part of an alias to insert newlines.
+
+ALIASES                = 
+
+# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources 
+# only. Doxygen will then generate output that is more tailored for C. 
+# For instance, some of the names that are used will be different. The list 
+# of all members will be omitted, etc.
+
+OPTIMIZE_OUTPUT_FOR_C  = YES
+
+# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java sources 
+# only. Doxygen will then generate output that is more tailored for Java. 
+# For instance, namespaces will be presented as packages, qualified scopes 
+# will look different, etc.
+
+OPTIMIZE_OUTPUT_JAVA   = NO
+
+# Set the SUBGROUPING tag to YES (the default) to allow class member groups of 
+# the same type (for instance a group of public functions) to be put as a 
+# subgroup of that type (e.g. under the Public Functions section). Set it to 
+# NO to prevent subgrouping. Alternatively, this can be done per class using 
+# the \nosubgrouping command.
+
+SUBGROUPING            = YES
+
+#---------------------------------------------------------------------------
+# Build related configuration options
+#---------------------------------------------------------------------------
+
+# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in 
+# documentation are documented, even if no documentation was available. 
+# Private class members and static file members will be hidden unless 
+# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
+
+EXTRACT_ALL            = NO
+
+# If the EXTRACT_PRIVATE tag is set to YES all private members of a class 
+# will be included in the documentation.
+
+EXTRACT_PRIVATE        = NO
+
+# If the EXTRACT_STATIC tag is set to YES all static members of a file 
+# will be included in the documentation.
+
+EXTRACT_STATIC         = NO
+
+# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) 
+# defined locally in source files will be included in the documentation. 
+# If set to NO only classes defined in header files are included.
+
+EXTRACT_LOCAL_CLASSES  = YES
+
+# This flag is only useful for Objective-C code. When set to YES local 
+# methods, which are defined in the implementation section but not in 
+# the interface are included in the documentation. 
+# If set to NO (the default) only methods in the interface are included.
+
+EXTRACT_LOCAL_METHODS  = NO
+
+# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all 
+# undocumented members of documented classes, files or namespaces. 
+# If set to NO (the default) these members will be included in the 
+# various overviews, but no documentation section is generated. 
+# This option has no effect if EXTRACT_ALL is enabled.
+
+HIDE_UNDOC_MEMBERS     = YES
+
+# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all 
+# undocumented classes that are normally visible in the class hierarchy. 
+# If set to NO (the default) these classes will be included in the various 
+# overviews. This option has no effect if EXTRACT_ALL is enabled.
+
+HIDE_UNDOC_CLASSES     = NO
+
+# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all 
+# friend (class|struct|union) declarations. 
+# If set to NO (the default) these declarations will be included in the 
+# documentation.
+
+HIDE_FRIEND_COMPOUNDS  = NO
+
+# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any 
+# documentation blocks found inside the body of a function. 
+# If set to NO (the default) these blocks will be appended to the 
+# function's detailed documentation block.
+
+HIDE_IN_BODY_DOCS      = NO
+
+# The INTERNAL_DOCS tag determines if documentation 
+# that is typed after a \internal command is included. If the tag is set 
+# to NO (the default) then the documentation will be excluded. 
+# Set it to YES to include the internal documentation.
+
+INTERNAL_DOCS          = NO
+
+# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate 
+# file names in lower-case letters. If set to YES upper-case letters are also 
+# allowed. This is useful if you have classes or files whose names only differ 
+# in case and if your file system supports case sensitive file names. Windows 
+# users are advised to set this option to NO.
+
+CASE_SENSE_NAMES       = YES
+
+# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen 
+# will show members with their full class and namespace scopes in the 
+# documentation. If set to YES the scope will be hidden.
+
+HIDE_SCOPE_NAMES       = NO
+
+# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen 
+# will put a list of the files that are included by a file in the documentation 
+# of that file.
+
+SHOW_INCLUDE_FILES     = YES
+
+# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] 
+# is inserted in the documentation for inline members.
+
+INLINE_INFO            = YES
+
+# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen 
+# will sort the (detailed) documentation of file and class members 
+# alphabetically by member name. If set to NO the members will appear in 
+# declaration order.
+
+SORT_MEMBER_DOCS       = YES
+
+# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the 
+# brief documentation of file, namespace and class members alphabetically 
+# by member name. If set to NO (the default) the members will appear in 
+# declaration order.
+
+SORT_BRIEF_DOCS        = NO
+
+# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be 
+# sorted by fully-qualified names, including namespaces. If set to 
+# NO (the default), the class list will be sorted only by class name, 
+# not including the namespace part. 
+# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
+# Note: This option applies only to the class list, not to the 
+# alphabetical list.
+
+SORT_BY_SCOPE_NAME     = NO
+
+# The GENERATE_TODOLIST tag can be used to enable (YES) or 
+# disable (NO) the todo list. This list is created by putting \todo 
+# commands in the documentation.
+
+GENERATE_TODOLIST      = YES
+
+# The GENERATE_TESTLIST tag can be used to enable (YES) or 
+# disable (NO) the test list. This list is created by putting \test 
+# commands in the documentation.
+
+GENERATE_TESTLIST      = YES
+
+# The GENERATE_BUGLIST tag can be used to enable (YES) or 
+# disable (NO) the bug list. This list is created by putting \bug 
+# commands in the documentation.
+
+GENERATE_BUGLIST       = YES
+
+# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or 
+# disable (NO) the deprecated list. This list is created by putting 
+# \deprecated commands in the documentation.
+
+GENERATE_DEPRECATEDLIST= YES
+
+# The ENABLED_SECTIONS tag can be used to enable conditional 
+# documentation sections, marked by \if sectionname ... \endif.
+
+ENABLED_SECTIONS       = 
+
+# The MAX_INITIALIZER_LINES tag determines the maximum number of lines 
+# the initial value of a variable or define consists of for it to appear in 
+# the documentation. If the initializer consists of more lines than specified 
+# here it will be hidden. Use a value of 0 to hide initializers completely. 
+# The appearance of the initializer of individual variables and defines in the 
+# documentation can be controlled using \showinitializer or \hideinitializer 
+# command in the documentation regardless of this setting.
+
+MAX_INITIALIZER_LINES  = 30
+
+# Set the SHOW_USED_FILES tag to NO to disable the list of files generated 
+# at the bottom of the documentation of classes and structs. If set to YES the 
+# list will mention the files that were used to generate the documentation.
+
+SHOW_USED_FILES        = YES
+
+#---------------------------------------------------------------------------
+# configuration options related to warning and progress messages
+#---------------------------------------------------------------------------
+
+# The QUIET tag can be used to turn on/off the messages that are generated 
+# by doxygen. Possible values are YES and NO. If left blank NO is used.
+
+QUIET                  = NO
+
+# The WARNINGS tag can be used to turn on/off the warning messages that are 
+# generated by doxygen. Possible values are YES and NO. If left blank 
+# NO is used.
+
+WARNINGS               = YES
+
+# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings 
+# for undocumented members. If EXTRACT_ALL is set to YES then this flag will 
+# automatically be disabled.
+
+WARN_IF_UNDOCUMENTED   = YES
+
+# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for 
+# potential errors in the documentation, such as not documenting some 
+# parameters in a documented function, or documenting parameters that 
+# don't exist or using markup commands wrongly.
+
+WARN_IF_DOC_ERROR      = YES
+
+# The WARN_FORMAT tag determines the format of the warning messages that 
+# doxygen can produce. The string should contain the $file, $line, and $text 
+# tags, which will be replaced by the file and line number from which the 
+# warning originated and the warning text.
+
+WARN_FORMAT            = "$file:$line: $text"
+
+# The WARN_LOGFILE tag can be used to specify a file to which warning 
+# and error messages should be written. If left blank the output is written 
+# to stderr.
+
+WARN_LOGFILE           = 
+
+#---------------------------------------------------------------------------
+# configuration options related to the input files
+#---------------------------------------------------------------------------
+
+# The INPUT tag can be used to specify the files and/or directories that contain 
+# documented source files. You may enter file names like "myfile.cpp" or 
+# directories like "/usr/src/myproject". Separate the files or directories 
+# with spaces.
+
+INPUT                  = conic/conic.h \
+	conic/conicconnection.h \
+	conic/conicconnectionevent.h \
+	conic/conicevent.h \
+	conic/coniciap.h \
+	conic/conicstatisticsevent.h
+
+# If the value of the INPUT tag contains directories, you can use the 
+# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp 
+# and *.h) to filter out the source-files in the directories. If left 
+# blank the following patterns are tested: 
+# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx *.hpp 
+# *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm
+
+FILE_PATTERNS          = 
+
+# The RECURSIVE tag can be used to turn specify whether or not subdirectories 
+# should be searched for input files as well. Possible values are YES and NO. 
+# If left blank NO is used.
+
+RECURSIVE              = NO
+
+# The EXCLUDE tag can be used to specify files and/or directories that should 
+# excluded from the INPUT source files. This way you can easily exclude a 
+# subdirectory from a directory tree whose root is specified with the INPUT tag.
+
+EXCLUDE                = 
+
+# The EXCLUDE_SYMLINKS tag can be used select whether or not files or directories 
+# that are symbolic links (a Unix filesystem feature) are excluded from the input.
+
+EXCLUDE_SYMLINKS       = NO
+
+# If the value of the INPUT tag contains directories, you can use the 
+# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude 
+# certain files from those directories.
+
+EXCLUDE_PATTERNS       = 
+
+# The EXAMPLE_PATH tag can be used to specify one or more files or 
+# directories that contain example code fragments that are included (see 
+# the \include command).
+
+EXAMPLE_PATH           = 
+
+# If the value of the EXAMPLE_PATH tag contains directories, you can use the 
+# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp 
+# and *.h) to filter out the source-files in the directories. If left 
+# blank all files are included.
+
+EXAMPLE_PATTERNS       = 
+
+# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be 
+# searched for input files to be used with the \include or \dontinclude 
+# commands irrespective of the value of the RECURSIVE tag. 
+# Possible values are YES and NO. If left blank NO is used.
+
+EXAMPLE_RECURSIVE      = NO
+
+# The IMAGE_PATH tag can be used to specify one or more files or 
+# directories that contain image that are included in the documentation (see 
+# the \image command).
+
+IMAGE_PATH             = 
+
+# The INPUT_FILTER tag can be used to specify a program that doxygen should 
+# invoke to filter for each input file. Doxygen will invoke the filter program 
+# by executing (via popen()) the command <filter> <input-file>, where <filter> 
+# is the value of the INPUT_FILTER tag, and <input-file> is the name of an 
+# input file. Doxygen will then use the output that the filter program writes 
+# to standard output.
+
+INPUT_FILTER           = 
+
+# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using 
+# INPUT_FILTER) will be used to filter the input files when producing source 
+# files to browse (i.e. when SOURCE_BROWSER is set to YES).
+
+FILTER_SOURCE_FILES    = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to source browsing
+#---------------------------------------------------------------------------
+
+# If the SOURCE_BROWSER tag is set to YES then a list of source files will 
+# be generated. Documented entities will be cross-referenced with these sources. 
+# Note: To get rid of all source code in the generated output, make sure also 
+# VERBATIM_HEADERS is set to NO.
+
+SOURCE_BROWSER         = NO
+
+# Setting the INLINE_SOURCES tag to YES will include the body 
+# of functions and classes directly in the documentation.
+
+INLINE_SOURCES         = NO
+
+# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct 
+# doxygen to hide any special comment blocks from generated source code 
+# fragments. Normal C and C++ comments will always remain visible.
+
+STRIP_CODE_COMMENTS    = YES
+
+# If the REFERENCED_BY_RELATION tag is set to YES (the default) 
+# then for each documented function all documented 
+# functions referencing it will be listed.
+
+REFERENCED_BY_RELATION = YES
+
+# If the REFERENCES_RELATION tag is set to YES (the default) 
+# then for each documented function all documented entities 
+# called/used by that function will be listed.
+
+REFERENCES_RELATION    = YES
+
+# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen 
+# will generate a verbatim copy of the header file for each class for 
+# which an include is specified. Set to NO to disable this.
+
+VERBATIM_HEADERS       = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the alphabetical class index
+#---------------------------------------------------------------------------
+
+# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index 
+# of all compounds will be generated. Enable this if the project 
+# contains a lot of classes, structs, unions or interfaces.
+
+ALPHABETICAL_INDEX     = NO
+
+# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then 
+# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns 
+# in which this list will be split (can be a number in the range [1..20])
+
+COLS_IN_ALPHA_INDEX    = 5
+
+# In case all classes in a project start with a common prefix, all 
+# classes will be put under the same header in the alphabetical index. 
+# The IGNORE_PREFIX tag can be used to specify one or more prefixes that 
+# should be ignored while generating the index headers.
+
+IGNORE_PREFIX          = 
+
+#---------------------------------------------------------------------------
+# configuration options related to the HTML output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_HTML tag is set to YES (the default) Doxygen will 
+# generate HTML output.
+
+GENERATE_HTML          = YES
+
+# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. 
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
+# put in front of it. If left blank `html' will be used as the default path.
+
+HTML_OUTPUT            = html
+
+# The HTML_FILE_EXTENSION tag can be used to specify the file extension for 
+# each generated HTML page (for example: .htm,.php,.asp). If it is left blank 
+# doxygen will generate files with .html extension.
+
+HTML_FILE_EXTENSION    = .html
+
+# The HTML_HEADER tag can be used to specify a personal HTML header for 
+# each generated HTML page. If it is left blank doxygen will generate a 
+# standard header.
+
+HTML_HEADER            = 
+
+# The HTML_FOOTER tag can be used to specify a personal HTML footer for 
+# each generated HTML page. If it is left blank doxygen will generate a 
+# standard footer.
+
+HTML_FOOTER            = 
+
+# The HTML_STYLESHEET tag can be used to specify a user-defined cascading 
+# style sheet that is used by each HTML page. It can be used to 
+# fine-tune the look of the HTML output. If the tag is left blank doxygen 
+# will generate a default style sheet. Note that doxygen will try to copy 
+# the style sheet file to the HTML output directory, so don't put your own 
+# stylesheet in the HTML output directory as well, or it will be erased!
+
+HTML_STYLESHEET        = 
+
+# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, 
+# files or namespaces will be aligned in HTML using tables. If set to 
+# NO a bullet list will be used.
+
+HTML_ALIGN_MEMBERS     = YES
+
+# If the GENERATE_HTMLHELP tag is set to YES, additional index files 
+# will be generated that can be used as input for tools like the 
+# Microsoft HTML help workshop to generate a compressed HTML help file (.chm) 
+# of the generated HTML documentation.
+
+GENERATE_HTMLHELP      = NO
+
+# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can 
+# be used to specify the file name of the resulting .chm file. You 
+# can add a path in front of the file if the result should not be 
+# written to the html output directory.
+
+CHM_FILE               = 
+
+# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can 
+# be used to specify the location (absolute path including file name) of 
+# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run 
+# the HTML help compiler on the generated index.hhp.
+
+HHC_LOCATION           = 
+
+# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag 
+# controls if a separate .chi index file is generated (YES) or that 
+# it should be included in the master .chm file (NO).
+
+GENERATE_CHI           = NO
+
+# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag 
+# controls whether a binary table of contents is generated (YES) or a 
+# normal table of contents (NO) in the .chm file.
+
+BINARY_TOC             = NO
+
+# The TOC_EXPAND flag can be set to YES to add extra items for group members 
+# to the contents of the HTML help documentation and to the tree view.
+
+TOC_EXPAND             = NO
+
+# The DISABLE_INDEX tag can be used to turn on/off the condensed index at 
+# top of each HTML page. The value NO (the default) enables the index and 
+# the value YES disables it.
+
+DISABLE_INDEX          = NO
+
+# This tag can be used to set the number of enum values (range [1..20]) 
+# that doxygen will group on one line in the generated HTML documentation.
+
+ENUM_VALUES_PER_LINE   = 4
+
+# If the GENERATE_TREEVIEW tag is set to YES, a side panel will be
+# generated containing a tree-like index structure (just like the one that 
+# is generated for HTML Help). For this to work a browser that supports 
+# JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+, 
+# Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are 
+# probably better off using the HTML help feature.
+
+GENERATE_TREEVIEW      = NO
+
+# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be 
+# used to set the initial width (in pixels) of the frame in which the tree 
+# is shown.
+
+TREEVIEW_WIDTH         = 250
+
+#---------------------------------------------------------------------------
+# configuration options related to the LaTeX output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will 
+# generate Latex output.
+
+GENERATE_LATEX         = YES
+
+# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. 
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
+# put in front of it. If left blank `latex' will be used as the default path.
+
+LATEX_OUTPUT           = latex
+
+# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be 
+# invoked. If left blank `latex' will be used as the default command name.
+
+LATEX_CMD_NAME         = latex
+
+# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to 
+# generate index for LaTeX. If left blank `makeindex' will be used as the 
+# default command name.
+
+MAKEINDEX_CMD_NAME     = makeindex
+
+# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact 
+# LaTeX documents. This may be useful for small projects and may help to 
+# save some trees in general.
+
+COMPACT_LATEX          = NO
+
+# The PAPER_TYPE tag can be used to set the paper type that is used 
+# by the printer. Possible values are: a4, a4wide, letter, legal and 
+# executive. If left blank a4wide will be used.
+
+PAPER_TYPE             = a4wide
+
+# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX 
+# packages that should be included in the LaTeX output.
+
+EXTRA_PACKAGES         = 
+
+# The LATEX_HEADER tag can be used to specify a personal LaTeX header for 
+# the generated latex document. The header should contain everything until 
+# the first chapter. If it is left blank doxygen will generate a 
+# standard header. Notice: only use this tag if you know what you are doing!
+
+LATEX_HEADER           = 
+
+# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated 
+# is prepared for conversion to pdf (using ps2pdf). The pdf file will 
+# contain links (just like the HTML output) instead of page references 
+# This makes the output suitable for online browsing using a pdf viewer.
+
+PDF_HYPERLINKS         = YES
+
+# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of 
+# plain latex in the generated Makefile. Set this option to YES to get a 
+# higher quality PDF documentation.
+
+USE_PDFLATEX           = YES
+
+# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. 
+# command to the generated LaTeX files. This will instruct LaTeX to keep 
+# running if errors occur, instead of asking the user for help. 
+# This option is also used when generating formulas in HTML.
+
+LATEX_BATCHMODE        = NO
+
+# If LATEX_HIDE_INDICES is set to YES then doxygen will not 
+# include the index chapters (such as File Index, Compound Index, etc.) 
+# in the output.
+
+LATEX_HIDE_INDICES     = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the RTF output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output 
+# The RTF output is optimized for Word 97 and may not look very pretty with 
+# other RTF readers or editors.
+
+GENERATE_RTF           = NO
+
+# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. 
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
+# put in front of it. If left blank `rtf' will be used as the default path.
+
+RTF_OUTPUT             = rtf
+
+# If the COMPACT_RTF tag is set to YES Doxygen generates more compact 
+# RTF documents. This may be useful for small projects and may help to 
+# save some trees in general.
+
+COMPACT_RTF            = NO
+
+# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated 
+# will contain hyperlink fields. The RTF file will 
+# contain links (just like the HTML output) instead of page references. 
+# This makes the output suitable for online browsing using WORD or other 
+# programs which support those fields. 
+# Note: wordpad (write) and others do not support links.
+
+RTF_HYPERLINKS         = NO
+
+# Load stylesheet definitions from file. Syntax is similar to doxygen's 
+# config file, i.e. a series of assignments. You only have to provide 
+# replacements, missing definitions are set to their default value.
+
+RTF_STYLESHEET_FILE    = 
+
+# Set optional variables used in the generation of an rtf document. 
+# Syntax is similar to doxygen's config file.
+
+RTF_EXTENSIONS_FILE    = 
+
+#---------------------------------------------------------------------------
+# configuration options related to the man page output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_MAN tag is set to YES (the default) Doxygen will 
+# generate man pages
+
+GENERATE_MAN           = NO
+
+# The MAN_OUTPUT tag is used to specify where the man pages will be put. 
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
+# put in front of it. If left blank `man' will be used as the default path.
+
+MAN_OUTPUT             = man
+
+# The MAN_EXTENSION tag determines the extension that is added to 
+# the generated man pages (default is the subroutine's section .3)
+
+MAN_EXTENSION          = .3
+
+# If the MAN_LINKS tag is set to YES and Doxygen generates man output, 
+# then it will generate one additional man file for each entity 
+# documented in the real man page(s). These additional files 
+# only source the real man page, but without them the man command 
+# would be unable to find the correct page. The default is NO.
+
+MAN_LINKS              = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the XML output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_XML tag is set to YES Doxygen will 
+# generate an XML file that captures the structure of 
+# the code including all documentation.
+
+GENERATE_XML           = NO
+
+# The XML_OUTPUT tag is used to specify where the XML pages will be put. 
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
+# put in front of it. If left blank `xml' will be used as the default path.
+
+XML_OUTPUT             = xml
+
+# The XML_SCHEMA tag can be used to specify an XML schema, 
+# which can be used by a validating XML parser to check the 
+# syntax of the XML files.
+
+XML_SCHEMA             = 
+
+# The XML_DTD tag can be used to specify an XML DTD, 
+# which can be used by a validating XML parser to check the 
+# syntax of the XML files.
+
+XML_DTD                = 
+
+# If the XML_PROGRAMLISTING tag is set to YES Doxygen will 
+# dump the program listings (including syntax highlighting 
+# and cross-referencing information) to the XML output. Note that 
+# enabling this will significantly increase the size of the XML output.
+
+XML_PROGRAMLISTING     = YES
+
+#---------------------------------------------------------------------------
+# configuration options for the AutoGen Definitions output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will 
+# generate an AutoGen Definitions (see autogen.sf.net) file 
+# that captures the structure of the code including all 
+# documentation. Note that this feature is still experimental 
+# and incomplete at the moment.
+
+GENERATE_AUTOGEN_DEF   = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the Perl module output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_PERLMOD tag is set to YES Doxygen will 
+# generate a Perl module file that captures the structure of 
+# the code including all documentation. Note that this 
+# feature is still experimental and incomplete at the 
+# moment.
+
+GENERATE_PERLMOD       = NO
+
+# If the PERLMOD_LATEX tag is set to YES Doxygen will generate 
+# the necessary Makefile rules, Perl scripts and LaTeX code to be able 
+# to generate PDF and DVI output from the Perl module output.
+
+PERLMOD_LATEX          = NO
+
+# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be 
+# nicely formatted so it can be parsed by a human reader.  This is useful 
+# if you want to understand what is going on.  On the other hand, if this 
+# tag is set to NO the size of the Perl module output will be much smaller 
+# and Perl will parse it just the same.
+
+PERLMOD_PRETTY         = YES
+
+# The names of the make variables in the generated doxyrules.make file 
+# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. 
+# This is useful so different doxyrules.make files included by the same 
+# Makefile don't overwrite each other's variables.
+
+PERLMOD_MAKEVAR_PREFIX = 
+
+#---------------------------------------------------------------------------
+# Configuration options related to the preprocessor   
+#---------------------------------------------------------------------------
+
+# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will 
+# evaluate all C-preprocessor directives found in the sources and include 
+# files.
+
+ENABLE_PREPROCESSING   = YES
+
+# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro 
+# names in the source code. If set to NO (the default) only conditional 
+# compilation will be performed. Macro expansion can be done in a controlled 
+# way by setting EXPAND_ONLY_PREDEF to YES.
+
+MACRO_EXPANSION        = NO
+
+# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES 
+# then the macro expansion is limited to the macros specified with the 
+# PREDEFINED and EXPAND_AS_PREDEFINED tags.
+
+EXPAND_ONLY_PREDEF     = NO
+
+# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files 
+# in the INCLUDE_PATH (see below) will be search if a #include is found.
+
+SEARCH_INCLUDES        = YES
+
+# The INCLUDE_PATH tag can be used to specify one or more directories that 
+# contain include files that are not input files but should be processed by 
+# the preprocessor.
+
+INCLUDE_PATH           = 
+
+# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard 
+# patterns (like *.h and *.hpp) to filter out the header-files in the 
+# directories. If left blank, the patterns specified with FILE_PATTERNS will 
+# be used.
+
+INCLUDE_FILE_PATTERNS  = 
+
+# The PREDEFINED tag can be used to specify one or more macro names that 
+# are defined before the preprocessor is started (similar to the -D option of 
+# gcc). The argument of the tag is a list of macros of the form: name 
+# or name=definition (no spaces). If the definition and the = are 
+# omitted =1 is assumed.
+
+PREDEFINED             = 
+
+# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then 
+# this tag can be used to specify a list of macro names that should be expanded. 
+# The macro definition that is found in the sources will be used. 
+# Use the PREDEFINED tag if you want to use a different macro definition.
+
+EXPAND_AS_DEFINED      = 
+
+# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then 
+# doxygen's preprocessor will remove all function-like macros that are alone 
+# on a line, have an all uppercase name, and do not end with a semicolon. Such 
+# function macros are typically used for boiler-plate code, and will confuse the 
+# parser if not removed.
+
+SKIP_FUNCTION_MACROS   = YES
+
+#---------------------------------------------------------------------------
+# Configuration::additions related to external references   
+#---------------------------------------------------------------------------
+
+# The TAGFILES option can be used to specify one or more tagfiles. 
+# Optionally an initial location of the external documentation 
+# can be added for each tagfile. The format of a tag file without 
+# this location is as follows: 
+#   TAGFILES = file1 file2 ... 
+# Adding location for the tag files is done as follows: 
+#   TAGFILES = file1=loc1 "file2 = loc2" ... 
+# where "loc1" and "loc2" can be relative or absolute paths or 
+# URLs. If a location is present for each tag, the installdox tool 
+# does not have to be run to correct the links.
+# Note that each tag file must have a unique name
+# (where the name does NOT include the path)
+# If a tag file is not located in the directory in which doxygen 
+# is run, you must also specify the path to the tagfile here.
+
+TAGFILES               = 
+
+# When a file name is specified after GENERATE_TAGFILE, doxygen will create 
+# a tag file that is based on the input files it reads.
+
+GENERATE_TAGFILE       = 
+
+# If the ALLEXTERNALS tag is set to YES all external classes will be listed 
+# in the class index. If set to NO only the inherited external classes 
+# will be listed.
+
+ALLEXTERNALS           = NO
+
+# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed 
+# in the modules index. If set to NO, only the current project's groups will 
+# be listed.
+
+EXTERNAL_GROUPS        = YES
+
+# The PERL_PATH should be the absolute path and name of the perl script 
+# interpreter (i.e. the result of `which perl').
+
+PERL_PATH              = /usr/bin/perl
+
+#---------------------------------------------------------------------------
+# Configuration options related to the dot tool   
+#---------------------------------------------------------------------------
+
+# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will 
+# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base or 
+# super classes. Setting the tag to NO turns the diagrams off. Note that this 
+# option is superseded by the HAVE_DOT option below. This is only a fallback. It is 
+# recommended to install and use dot, since it yields more powerful graphs.
+
+CLASS_DIAGRAMS         = YES
+
+# If set to YES, the inheritance and collaboration graphs will hide 
+# inheritance and usage relations if the target is undocumented 
+# or is not a class.
+
+HIDE_UNDOC_RELATIONS   = YES
+
+# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is 
+# available from the path. This tool is part of Graphviz, a graph visualization 
+# toolkit from AT&T and Lucent Bell Labs. The other options in this section 
+# have no effect if this option is set to NO (the default)
+
+HAVE_DOT               = NO
+
+# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen 
+# will generate a graph for each documented class showing the direct and 
+# indirect inheritance relations. Setting this tag to YES will force the 
+# the CLASS_DIAGRAMS tag to NO.
+
+CLASS_GRAPH            = YES
+
+# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen 
+# will generate a graph for each documented class showing the direct and 
+# indirect implementation dependencies (inheritance, containment, and 
+# class references variables) of the class with other documented classes.
+
+COLLABORATION_GRAPH    = YES
+
+# If the UML_LOOK tag is set to YES doxygen will generate inheritance and 
+# collaboration diagrams in a style similar to the OMG's Unified Modeling 
+# Language.
+
+UML_LOOK               = NO
+
+# If set to YES, the inheritance and collaboration graphs will show the 
+# relations between templates and their instances.
+
+TEMPLATE_RELATIONS     = NO
+
+# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT 
+# tags are set to YES then doxygen will generate a graph for each documented 
+# file showing the direct and indirect include dependencies of the file with 
+# other documented files.
+
+INCLUDE_GRAPH          = YES
+
+# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and 
+# HAVE_DOT tags are set to YES then doxygen will generate a graph for each 
+# documented header file showing the documented files that directly or 
+# indirectly include this file.
+
+INCLUDED_BY_GRAPH      = YES
+
+# If the CALL_GRAPH and HAVE_DOT tags are set to YES then doxygen will 
+# generate a call dependency graph for every global function or class method. 
+# Note that enabling this option will significantly increase the time of a run. 
+# So in most cases it will be better to enable call graphs for selected 
+# functions only using the \callgraph command.
+
+CALL_GRAPH             = NO
+
+# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen 
+# will graphical hierarchy of all classes instead of a textual one.
+
+GRAPHICAL_HIERARCHY    = YES
+
+# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images 
+# generated by dot. Possible values are png, jpg, or gif
+# If left blank png will be used.
+
+DOT_IMAGE_FORMAT       = png
+
+# The tag DOT_PATH can be used to specify the path where the dot tool can be 
+# found. If left blank, it is assumed the dot tool can be found on the path.
+
+DOT_PATH               = 
+
+# The DOTFILE_DIRS tag can be used to specify one or more directories that 
+# contain dot files that are included in the documentation (see the 
+# \dotfile command).
+
+DOTFILE_DIRS           = 
+
+# The MAX_DOT_GRAPH_WIDTH tag can be used to set the maximum allowed width 
+# (in pixels) of the graphs generated by dot. If a graph becomes larger than 
+# this value, doxygen will try to truncate the graph, so that it fits within 
+# the specified constraint. Beware that most browsers cannot cope with very 
+# large images.
+
+MAX_DOT_GRAPH_WIDTH    = 1024
+
+# The MAX_DOT_GRAPH_HEIGHT tag can be used to set the maximum allows height 
+# (in pixels) of the graphs generated by dot. If a graph becomes larger than 
+# this value, doxygen will try to truncate the graph, so that it fits within 
+# the specified constraint. Beware that most browsers cannot cope with very 
+# large images.
+
+MAX_DOT_GRAPH_HEIGHT   = 1024
+
+# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the 
+# graphs generated by dot. A depth value of 3 means that only nodes reachable 
+# from the root by following a path via at most 3 edges will be shown. Nodes that 
+# lay further from the root node will be omitted. Note that setting this option to 
+# 1 or 2 may greatly reduce the computation time needed for large code bases. Also 
+# note that a graph may be further truncated if the graph's image dimensions are 
+# not sufficient to fit the graph (see MAX_DOT_GRAPH_WIDTH and MAX_DOT_GRAPH_HEIGHT). 
+# If 0 is used for the depth value (the default), the graph is not depth-constrained.
+
+MAX_DOT_GRAPH_DEPTH    = 0
+
+# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will 
+# generate a legend page explaining the meaning of the various boxes and 
+# arrows in the dot generated graphs.
+
+GENERATE_LEGEND        = YES
+
+# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will 
+# remove the intermediate dot files that are used to generate 
+# the various graphs.
+
+DOT_CLEANUP            = YES
+
+#---------------------------------------------------------------------------
+# Configuration::additions related to the search engine   
+#---------------------------------------------------------------------------
+
+# The SEARCHENGINE tag specifies whether or not a search engine should be 
+# used. If set to NO the values of all tags below this one will be ignored.
+
+SEARCHENGINE           = NO
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/3rdparty/libconninet/src/dbusdispatcher.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,611 @@
+/* * This file is part of conninet *
+ *
+ * Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ *
+ * Contact: Aapo Makela <aapo.makela@nokia.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public License
+ * version 2.1 as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA
+ */
+
+#include <QDebug>
+#include <QtCore>
+#include <poll.h>
+#include <dbus/dbus.h>
+#include <dbus/dbus-glib-lowlevel.h>
+#include <glib.h>
+#include "dbusdispatcher.h"
+
+namespace Maemo {
+
+/*!
+    \class DBusDispatcher
+
+    \brief DBusDispatcher is a class, which is able to send DBUS method call
+    messages and receive unicast signals from DBUS object.
+*/
+
+class DBusDispatcherPrivate
+{
+public:
+    DBusDispatcherPrivate(const QString& service,
+                          const QString& path,
+                          const QString& interface,
+                          const QString& signalPath)
+        : service(service), path(path), interface(interface),
+          signalPath(signalPath), connection(0)
+    {
+        memset(&signal_vtable, 0, sizeof(signal_vtable));
+    }
+
+    ~DBusDispatcherPrivate()
+    {
+        foreach(DBusPendingCall *call, pending_calls) {
+            dbus_pending_call_cancel(call);
+            dbus_pending_call_unref(call);
+        }
+    }
+
+    QString service;
+    QString path;
+    QString interface;
+    QString signalPath;
+    struct DBusConnection *connection;
+    QList<DBusPendingCall *> pending_calls;
+    struct DBusObjectPathVTable signal_vtable;
+};
+
+static bool constantVariantList(const QVariantList& variantList) {
+    // Special case, empty list == empty struct
+    if (variantList.isEmpty()) {
+        return false;
+    } else {        
+        QVariant::Type type = variantList[0].type();
+        // Iterate items in the list and check if they are same type
+        foreach(QVariant variant, variantList) {
+            if (variant.type() != type) {
+                return false;
+            }
+        }
+    }
+    return true;
+}
+
+static QString variantToSignature(const QVariant& argument,
+                                  bool constantList = true) {
+    switch (argument.type()) {
+        case QVariant::Bool:
+            return "b";
+        case QVariant::ByteArray:
+            return "ay";
+        case QVariant::Char:
+            return "y";
+        case QVariant::Int:
+            return "i";
+        case QVariant::UInt:
+            return "u";
+        case QVariant::StringList:
+            return "as";
+        case QVariant::String:
+            return "s";
+        case QVariant::LongLong:
+            return "x";
+        case QVariant::ULongLong:
+            return "t";
+        case QVariant::List:
+            {
+            QString signature;
+            QVariantList variantList = argument.toList();
+            if (!constantList) {
+                signature += DBUS_STRUCT_BEGIN_CHAR_AS_STRING;
+                foreach(QVariant listItem, variantList) {
+                    signature += variantToSignature(listItem);
+                }
+                signature += DBUS_STRUCT_END_CHAR_AS_STRING;
+            } else {
+                if (variantList.isEmpty())
+                    return "";
+                signature = "a" + variantToSignature(variantList[0]);
+            }
+
+            return signature;
+            }
+        default:
+            qDebug() << "Unsupported variant type: " << argument.type();
+            break;
+    }
+
+    return "";
+}
+
+static bool appendVariantToDBusMessage(const QVariant& argument,
+                                       DBusMessageIter *dbus_iter) {
+    int idx = 0;
+    DBusMessageIter array_iter;
+    QStringList str_list;
+    dbus_bool_t bool_data;
+    dbus_int32_t int32_data;
+    dbus_uint32_t uint32_data;
+    dbus_int64_t int64_data;
+    dbus_uint64_t uint64_data;
+    char *str_data;
+    char char_data;
+
+    switch (argument.type()) {
+
+        case QVariant::Bool:
+            bool_data = argument.toBool();
+            dbus_message_iter_append_basic(dbus_iter, DBUS_TYPE_BOOLEAN, 
+                                           &bool_data);
+            break;
+
+        case QVariant::ByteArray:
+            str_data = argument.toByteArray().data();
+            dbus_message_iter_open_container(dbus_iter, DBUS_TYPE_ARRAY,
+                                             DBUS_TYPE_BYTE_AS_STRING, &array_iter);
+            dbus_message_iter_append_fixed_array(&array_iter,
+                                                 DBUS_TYPE_BYTE,
+                                                 &str_data,
+                                                 argument.toByteArray().size());
+            dbus_message_iter_close_container(dbus_iter, &array_iter);
+            break;
+
+        case QVariant::Char:
+            char_data = argument.toChar().toAscii();
+            dbus_message_iter_append_basic(dbus_iter, DBUS_TYPE_BYTE, 
+                                           &char_data);
+            break;
+
+        case QVariant::Int:
+            int32_data = argument.toInt();
+            dbus_message_iter_append_basic(dbus_iter, DBUS_TYPE_INT32, 
+                                           &int32_data);
+            break;
+
+        case QVariant::String:
+            str_data = argument.toString().toLatin1().data();
+            dbus_message_iter_append_basic(dbus_iter, DBUS_TYPE_STRING,
+                                           &str_data);
+            break;
+
+        case QVariant::StringList:
+            str_list = argument.toStringList();
+            dbus_message_iter_open_container(dbus_iter, DBUS_TYPE_ARRAY,
+                                             "s", &array_iter);
+            for (idx = 0; idx < str_list.size(); idx++) {
+                str_data = str_list.at(idx).toLatin1().data();
+                dbus_message_iter_append_basic(&array_iter,
+                                               DBUS_TYPE_STRING,
+                                               &str_data);
+            }
+            dbus_message_iter_close_container(dbus_iter, &array_iter);
+            break;
+
+        case QVariant::UInt:
+            uint32_data = argument.toUInt();
+            dbus_message_iter_append_basic(dbus_iter, DBUS_TYPE_UINT32, 
+                                           &uint32_data);
+            break;
+
+        case QVariant::ULongLong:
+            uint64_data = argument.toULongLong();
+            dbus_message_iter_append_basic(dbus_iter, DBUS_TYPE_UINT64, 
+                                           &uint64_data);
+            break;
+
+        case QVariant::LongLong:
+            int64_data = argument.toLongLong();
+            dbus_message_iter_append_basic(dbus_iter, DBUS_TYPE_INT64, 
+                                           &int64_data);
+            break;
+
+        case QVariant::List:
+            {
+            QVariantList variantList = argument.toList();
+            bool constantList = constantVariantList(variantList);
+            DBusMessageIter array_iter;
+
+            // List is mapped either as an DBUS array (all items same type)
+            // DBUS struct (variable types) depending on constantList
+            if (constantList) {
+                // Resolve the signature for the first item
+                QString signature = "";
+                if (!variantList.isEmpty()) {
+                    signature = variantToSignature(
+                                variantList[0],
+                                constantVariantList(variantList[0].toList()));
+                }
+
+                // Mapped as DBUS array
+                dbus_message_iter_open_container(dbus_iter, DBUS_TYPE_ARRAY,
+                                                 signature.toAscii(),
+                                                 &array_iter);
+
+                foreach(QVariant listItem, variantList) {
+                    appendVariantToDBusMessage(listItem, &array_iter);
+                }
+
+                dbus_message_iter_close_container(dbus_iter, &array_iter);
+            } else {
+                // Mapped as DBUS struct
+                dbus_message_iter_open_container(dbus_iter, DBUS_TYPE_STRUCT,
+                                                 NULL,
+                                                 &array_iter);
+
+                foreach(QVariant listItem, variantList) {
+                    appendVariantToDBusMessage(listItem, &array_iter);
+                }
+
+                dbus_message_iter_close_container(dbus_iter, &array_iter);
+            }
+
+            break;
+            }
+        default:
+            qDebug() << "Unsupported variant type: " << argument.type();
+            break;
+    }
+
+    return true;
+}
+
+static QVariant getVariantFromDBusMessage(DBusMessageIter *iter) {
+    dbus_bool_t bool_data;
+    dbus_int32_t int32_data;
+    dbus_uint32_t uint32_data;
+    dbus_int64_t int64_data;
+    dbus_uint64_t uint64_data;
+    char *str_data;
+    char char_data;
+    int argtype = dbus_message_iter_get_arg_type(iter);
+
+    switch (argtype) {
+
+        case DBUS_TYPE_BOOLEAN:
+        {
+            dbus_message_iter_get_basic(iter, &bool_data);
+            QVariant variant((bool)bool_data);
+            return variant;
+        }
+
+        case DBUS_TYPE_ARRAY:
+        {
+            // Handle all arrays here
+            int elem_type = dbus_message_iter_get_element_type(iter);
+            DBusMessageIter array_iter;
+
+            dbus_message_iter_recurse(iter, &array_iter);
+
+            if (elem_type == DBUS_TYPE_BYTE) {
+                QByteArray byte_array;
+                do {
+                    dbus_message_iter_get_basic(&array_iter, &char_data);
+                    byte_array.append(char_data);
+                } while (dbus_message_iter_next(&array_iter));
+                QVariant variant(byte_array);
+                return variant;
+            } else if (elem_type == DBUS_TYPE_STRING) {
+                QStringList str_list;
+                do {
+                    dbus_message_iter_get_basic(&array_iter, &str_data);
+                    str_list.append(str_data);
+                } while (dbus_message_iter_next(&array_iter));
+                QVariant variant(str_list);
+                return variant;
+            } else {
+                QVariantList variantList;
+                do {
+                    variantList << getVariantFromDBusMessage(&array_iter);
+                } while (dbus_message_iter_next(&array_iter));
+                QVariant variant(variantList);
+                return variant;
+            }
+            break;
+        }
+
+        case DBUS_TYPE_BYTE:
+        {
+            dbus_message_iter_get_basic(iter, &char_data);
+            QChar ch(char_data);
+            QVariant variant(ch);
+            return variant;
+        }
+
+        case DBUS_TYPE_INT32:
+        {
+            dbus_message_iter_get_basic(iter, &int32_data);
+            QVariant variant((int)int32_data);
+            return variant;
+        }
+
+        case DBUS_TYPE_UINT32:
+        {
+            dbus_message_iter_get_basic(iter, &uint32_data);
+            QVariant variant((uint)uint32_data);
+            return variant;
+        }
+
+        case DBUS_TYPE_STRING:
+        {
+            dbus_message_iter_get_basic(iter, &str_data);
+            QString str(str_data);
+            QVariant variant(str);
+            return variant;
+        }
+
+        case DBUS_TYPE_INT64:
+        {
+            dbus_message_iter_get_basic(iter, &int64_data);
+            QVariant variant((qlonglong)int64_data);
+            return variant;
+        }
+
+        case DBUS_TYPE_UINT64:
+        {
+            dbus_message_iter_get_basic(iter, &uint64_data);
+            QVariant variant((qulonglong)uint64_data);
+            return variant;
+        }
+
+        case DBUS_TYPE_STRUCT:
+        {
+            // Handle all structs here
+            DBusMessageIter struct_iter;
+            dbus_message_iter_recurse(iter, &struct_iter);
+
+	    QVariantList variantList;
+	    do {
+	      variantList << getVariantFromDBusMessage(&struct_iter);
+	    } while (dbus_message_iter_next(&struct_iter));
+	    QVariant variant(variantList);
+	    return variant;
+        }
+
+        default:
+            qDebug() << "Unsupported DBUS type: " << argtype;
+    }
+
+    return QVariant();
+}
+
+static DBusHandlerResult signalHandler (DBusConnection *connection,
+                                        DBusMessage *message,
+                                        void *object_ref) {
+    (void)connection;
+    QString interface;
+    QString signal;
+    DBusDispatcher *dispatcher = (DBusDispatcher *)object_ref;
+
+    if (dbus_message_get_type(message) == DBUS_MESSAGE_TYPE_SIGNAL) {
+        interface = dbus_message_get_interface(message);
+        signal = dbus_message_get_member(message);
+        
+        QList<QVariant> arglist;
+        DBusMessageIter dbus_iter;
+
+        if (dbus_message_iter_init(message, &dbus_iter)) {
+            // Read return arguments
+            while (dbus_message_iter_get_arg_type (&dbus_iter) != DBUS_TYPE_INVALID) {
+                arglist << getVariantFromDBusMessage(&dbus_iter);
+                dbus_message_iter_next(&dbus_iter);
+            }
+        }
+
+        dispatcher->emitSignalReceived(interface, signal, arglist);
+        return DBUS_HANDLER_RESULT_HANDLED;
+    }
+    (void)message;
+    return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
+}
+
+DBusDispatcher::DBusDispatcher(const QString& service,
+                               const QString& path,
+                               const QString& interface,
+                               QObject *parent)
+ : QObject(parent),
+   d_ptr(new DBusDispatcherPrivate(service, path, interface, path)) {
+    setupDBus();
+}
+
+DBusDispatcher::DBusDispatcher(const QString& service,
+                               const QString& path,
+                               const QString& interface,
+                               const QString& signalPath,
+                               QObject *parent)
+ : QObject(parent),
+   d_ptr(new DBusDispatcherPrivate(service, path, interface, signalPath)) {
+    setupDBus();
+}
+
+DBusDispatcher::~DBusDispatcher()
+{
+    if (d_ptr->connection) {
+        dbus_connection_close(d_ptr->connection);
+        dbus_connection_unref(d_ptr->connection);
+    }
+    delete d_ptr;
+}
+
+void DBusDispatcher::setupDBus()
+{
+    d_ptr->connection = dbus_bus_get_private(DBUS_BUS_SYSTEM, NULL);
+
+    if (d_ptr->connection == NULL)
+        qDebug() << "Unable to get DBUS connection!";
+    else {
+        d_ptr->signal_vtable.message_function = signalHandler;
+
+	dbus_connection_set_exit_on_disconnect(d_ptr->connection, FALSE);
+        dbus_connection_setup_with_g_main(d_ptr->connection, NULL);
+        dbus_connection_register_object_path(d_ptr->connection, 
+                                             d_ptr->signalPath.toLatin1(),
+                                             &d_ptr->signal_vtable,
+                                             this);
+    }
+}
+
+static DBusMessage *prepareDBusCall(const QString& service,
+                                    const QString& path,
+                                    const QString& interface,
+                                    const QString& method, 
+                                    const QVariant& arg1 = QVariant(),
+                                    const QVariant& arg2 = QVariant(),
+                                    const QVariant& arg3 = QVariant(),
+                                    const QVariant& arg4 = QVariant(),
+                                    const QVariant& arg5 = QVariant(),
+                                    const QVariant& arg6 = QVariant(),
+                                    const QVariant& arg7 = QVariant(),
+                                    const QVariant& arg8 = QVariant()) 
+{
+    DBusMessage *message = dbus_message_new_method_call(service.toLatin1(),
+                                                        path.toLatin1(),
+                                                        interface.toLatin1(),
+                                                        method.toLatin1());
+    DBusMessageIter dbus_iter;
+
+    // Append variants to DBUS message
+    QList<QVariant> arglist;
+    if (arg1.isValid()) arglist << arg1;
+    if (arg2.isValid()) arglist << arg2;
+    if (arg3.isValid()) arglist << arg3;
+    if (arg4.isValid()) arglist << arg4;
+    if (arg5.isValid()) arglist << arg5;
+    if (arg6.isValid()) arglist << arg6;
+    if (arg7.isValid()) arglist << arg7;
+    if (arg8.isValid()) arglist << arg8;
+
+    dbus_message_iter_init_append (message, &dbus_iter);
+    
+    while (!arglist.isEmpty()) {
+        QVariant argument = arglist.takeFirst();
+        appendVariantToDBusMessage(argument, &dbus_iter);
+    }
+
+    return message;
+}
+
+QList<QVariant> DBusDispatcher::call(const QString& method, 
+                                     const QVariant& arg1,
+                                     const QVariant& arg2,
+                                     const QVariant& arg3,
+                                     const QVariant& arg4,
+                                     const QVariant& arg5,
+                                     const QVariant& arg6,
+                                     const QVariant& arg7,
+                                     const QVariant& arg8) {
+    DBusMessageIter dbus_iter;
+    DBusMessage *message = prepareDBusCall(d_ptr->service, d_ptr->path,
+                                           d_ptr->interface, method,
+                                           arg1, arg2, arg3, arg4, arg5,
+                                           arg6, arg7, arg8);
+    DBusMessage *reply = dbus_connection_send_with_reply_and_block(
+                                                    d_ptr->connection,
+                                                    message, -1, NULL);
+    dbus_message_unref(message);
+
+    QList<QVariant> replylist;
+    if (reply != NULL &&  dbus_message_iter_init(reply, &dbus_iter)) {
+        // Read return arguments
+        while (dbus_message_iter_get_arg_type (&dbus_iter) != DBUS_TYPE_INVALID) {
+            replylist << getVariantFromDBusMessage(&dbus_iter);
+            dbus_message_iter_next(&dbus_iter);
+        }
+    }
+    if (reply != NULL) dbus_message_unref(reply);
+    return replylist;
+}
+
+class PendingCallInfo {
+public:
+    QString method;
+    DBusDispatcher *dispatcher;
+    DBusDispatcherPrivate *priv;
+};
+
+static void freePendingCallInfo(void *memory) {
+    PendingCallInfo *info = (PendingCallInfo *)memory;
+    delete info;
+}
+
+static void pendingCallFunction (DBusPendingCall *pending,
+                                 void *memory) {
+    PendingCallInfo *info = (PendingCallInfo *)memory;
+    QString errorStr;
+    QList<QVariant> replyList;
+    DBusMessage *reply = dbus_pending_call_steal_reply (pending);
+
+    Q_ASSERT(reply != NULL);
+
+    if (dbus_message_get_type(reply) == DBUS_MESSAGE_TYPE_ERROR) {
+        errorStr = dbus_message_get_error_name (reply);
+    } else {
+        DBusMessageIter dbus_iter;
+        dbus_message_iter_init(reply, &dbus_iter);
+        // Read return arguments
+        while (dbus_message_iter_get_arg_type (&dbus_iter) != DBUS_TYPE_INVALID) {
+            replyList << getVariantFromDBusMessage(&dbus_iter);
+            dbus_message_iter_next(&dbus_iter);
+        }
+    }
+
+    info->priv->pending_calls.removeOne(pending);
+    info->dispatcher->emitCallReply(info->method, replyList, errorStr);
+    dbus_message_unref(reply);
+    dbus_pending_call_unref(pending);
+}
+
+bool DBusDispatcher::callAsynchronous(const QString& method, 
+                                      const QVariant& arg1,
+                                      const QVariant& arg2,
+                                      const QVariant& arg3,
+                                      const QVariant& arg4,
+                                      const QVariant& arg5,
+                                      const QVariant& arg6,
+                                      const QVariant& arg7,
+                                      const QVariant& arg8) {
+    DBusMessage *message = prepareDBusCall(d_ptr->service, d_ptr->path,
+                                           d_ptr->interface, method,
+                                           arg1, arg2, arg3, arg4, arg5,
+                                           arg6, arg7, arg8);
+    DBusPendingCall *call = NULL;
+    dbus_bool_t ret = dbus_connection_send_with_reply(d_ptr->connection,
+                                                      message, &call, -1);
+    PendingCallInfo *info = new PendingCallInfo;
+    info->method = method;
+    info->dispatcher = this;
+    info->priv = d_ptr;
+
+    dbus_pending_call_set_notify(call, pendingCallFunction, info, freePendingCallInfo);
+    d_ptr->pending_calls.append(call);
+    return (bool)ret;
+}
+
+void DBusDispatcher::emitSignalReceived(const QString& interface, 
+                                        const QString& signal,
+                                        const QList<QVariant>& args) {
+    emit signalReceived(interface, signal, args); }
+
+void DBusDispatcher::emitCallReply(const QString& method,
+                                   const QList<QVariant>& args,
+                                   const QString& error) {
+    emit callReply(method, args, error); }
+
+void DBusDispatcher::synchronousDispatch(int timeout_ms)
+{
+    dbus_connection_read_write_dispatch(d_ptr->connection, timeout_ms);
+}
+
+} // Maemo namespace
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/3rdparty/libconninet/src/dbusdispatcher.h	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,91 @@
+/* * This file is part of conn-dui-settings-inet *
+ *
+ * Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ *
+ * Contact: Aapo Makela <aapo.makela@nokia.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public License
+ * version 2.1 as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA
+ */
+
+#ifndef DBUSDISPATCHER_H
+#define DBUSDISPATCHER_H
+
+#include <QObject>
+#include <QVariant>
+
+namespace Maemo {
+
+class DBusDispatcherPrivate;
+class DBusDispatcher : public QObject
+{
+    Q_OBJECT
+
+public:
+    DBusDispatcher(const QString& service,
+                   const QString& path,
+                   const QString& interface,
+                   QObject *parent = 0);
+    DBusDispatcher(const QString& service,
+                   const QString& path,
+                   const QString& interface,
+                   const QString& signalPath,
+                   QObject *parent = 0);
+    ~DBusDispatcher();
+
+    QList<QVariant> call(const QString& method, 
+                         const QVariant& arg1 = QVariant(),
+                         const QVariant& arg2 = QVariant(),
+                         const QVariant& arg3 = QVariant(),
+                         const QVariant& arg4 = QVariant(),
+                         const QVariant& arg5 = QVariant(),
+                         const QVariant& arg6 = QVariant(),
+                         const QVariant& arg7 = QVariant(),
+                         const QVariant& arg8 = QVariant());
+    bool callAsynchronous(const QString& method, 
+                          const QVariant& arg1 = QVariant(),
+                          const QVariant& arg2 = QVariant(),
+                          const QVariant& arg3 = QVariant(),
+                          const QVariant& arg4 = QVariant(),
+                          const QVariant& arg5 = QVariant(),
+                          const QVariant& arg6 = QVariant(),
+                          const QVariant& arg7 = QVariant(),
+                          const QVariant& arg8 = QVariant());
+    void emitSignalReceived(const QString& interface, 
+                            const QString& signal,
+                            const QList<QVariant>& args);
+    void emitCallReply(const QString& method,
+                       const QList<QVariant>& args,
+                       const QString& error = "");
+    void synchronousDispatch(int timeout_ms);
+
+Q_SIGNALS:
+    void signalReceived(const QString& interface, 
+                        const QString& signal,
+                        const QList<QVariant>& args);
+    void callReply(const QString& method,
+                   const QList<QVariant>& args,
+                   const QString& error);
+
+protected:
+    void setupDBus();
+
+private:
+    DBusDispatcherPrivate *d_ptr;
+};
+
+}  // Maemo namespace
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/3rdparty/libconninet/src/iapconf.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,299 @@
+/*
+  libconninet - Internet Connectivity support library
+
+  Copyright (C) 2009-2010 Nokia Corporation. All rights reserved.
+
+  Contact: Aapo Makela <aapo.makela@nokia.com>
+
+  This library is free software; you can redistribute it and/or
+  modify it under the terms of the GNU Lesser General Public License
+  version 2.1 as published by the Free Software Foundation.
+
+  This library is distributed in the hope that it will be useful, but
+  WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+  Lesser General Public License for more details.
+
+  You should have received a copy of the GNU Lesser General Public
+  License along with this library; if not, write to the Free Software
+  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+  02110-1301 USA
+*/
+
+#include <stdlib.h>
+#include <string.h>
+#include <conn_settings.h>
+
+#include "iapconf.h"
+
+#define QSTRING_TO_CONST_CSTR(str) \
+    str.toUtf8().constData()
+
+namespace Maemo {
+
+class IAPConfPrivate {
+public:
+    ConnSettings *settings;
+
+    ConnSettingsValue *variantToValue(const QVariant &variant);
+    QVariant valueToVariant(ConnSettingsValue *value);
+};
+
+ConnSettingsValue *IAPConfPrivate::variantToValue(const QVariant &variant)
+{
+    // Convert variant to ConnSettingsValue
+    ConnSettingsValue *value = conn_settings_value_new();
+    if (value == 0) {
+        qWarning("IAPConf: Unable to create new ConnSettingsValue");
+        return 0;
+    }
+
+    switch(variant.type()) {
+        
+    case QVariant::Invalid:
+        value->type = CONN_SETTINGS_VALUE_INVALID;
+        break;
+    
+    case QVariant::String: {
+        char *valueStr = strdup(QSTRING_TO_CONST_CSTR(variant.toString()));
+        value->type = CONN_SETTINGS_VALUE_STRING;
+        value->value.string_val = valueStr;
+        break;
+    }
+    
+    case QVariant::Int:
+        value->type = CONN_SETTINGS_VALUE_INT;
+        value->value.int_val = variant.toInt();
+        break;
+    
+    case QMetaType::Float:
+    case QVariant::Double:
+        value->type = CONN_SETTINGS_VALUE_DOUBLE;
+        value->value.double_val = variant.toDouble();
+        break;
+    
+    case QVariant::Bool:
+        value->type = CONN_SETTINGS_VALUE_BOOL;
+        value->value.bool_val = variant.toBool() ? 1 : 0;
+        break;
+    
+    case QVariant::ByteArray: {
+        QByteArray array = variant.toByteArray();
+        value->type = CONN_SETTINGS_VALUE_BYTE_ARRAY;
+        value->value.byte_array.len = array.size();
+        value->value.byte_array.val = (unsigned char *)malloc(array.size());
+        memcpy(value->value.byte_array.val, array.constData(), array.size());
+        break;
+    }
+    
+    case QVariant::List: {
+        QVariantList list = variant.toList();
+        ConnSettingsValue **list_val = (ConnSettingsValue **)malloc(
+            (list.size() + 1) * sizeof(ConnSettingsValue *));
+
+        for (int idx = 0; idx < list.size(); idx++) {
+            list_val[idx] = variantToValue(list.at(idx));
+        }
+        list_val[list.size()] = 0;
+
+        value->type = CONN_SETTINGS_VALUE_LIST;
+        value->value.list_val = list_val;
+        break;
+    }
+    
+    default:
+        qWarning("IAPConf: Can not handle QVariant of type %d",
+                 variant.type());
+        conn_settings_value_destroy(value);
+        return 0;
+    }
+
+    return value;
+}
+
+QVariant IAPConfPrivate::valueToVariant(ConnSettingsValue *value)
+{
+    if (value == 0 || value->type == CONN_SETTINGS_VALUE_INVALID) {
+        return QVariant();
+    }
+
+    switch(value->type) {
+    
+    case CONN_SETTINGS_VALUE_BOOL:
+        return QVariant(value->value.bool_val ? true : false);
+    
+    case CONN_SETTINGS_VALUE_STRING:
+        return QVariant(QString(value->value.string_val));
+    
+    case CONN_SETTINGS_VALUE_DOUBLE:
+        return QVariant(value->value.double_val);
+    
+    case CONN_SETTINGS_VALUE_INT:
+        return QVariant(value->value.int_val);
+    
+    case CONN_SETTINGS_VALUE_LIST: {
+        // At least with GConf backend connsettings returns byte array as list
+        // of ints, first check for that case
+        if (value->value.list_val && value->value.list_val[0]) {
+            bool canBeConvertedToByteArray = true;
+            for (int idx = 0; value->value.list_val[idx]; idx++) {
+                ConnSettingsValue *val = value->value.list_val[idx];
+                if (val->type != CONN_SETTINGS_VALUE_INT
+                     || val->value.int_val > 255
+                     || val->value.int_val < 0) {
+                    canBeConvertedToByteArray = false;
+                    break;
+                }
+            }
+
+            if (canBeConvertedToByteArray) {
+                QByteArray array;
+                for (int idx = 0; value->value.list_val[idx]; idx++) {
+                    array.append(value->value.list_val[idx]->value.int_val);
+                }
+                return array;
+            }
+
+	    // Create normal list
+	    QVariantList list;
+	    for (int idx = 0; value->value.list_val[idx]; idx++) {
+	      list.append(valueToVariant(value->value.list_val[idx]));
+	    }
+	    return list;
+        }
+    }
+    
+    case CONN_SETTINGS_VALUE_BYTE_ARRAY:
+        return QByteArray::fromRawData((char *)value->value.byte_array.val, 
+                                       value->value.byte_array.len);
+    
+    default:
+        return QVariant();
+    }
+}
+
+// Public class implementation
+
+IAPConf::IAPConf(const QString &iap_id)
+    : d_ptr(new IAPConfPrivate)
+{
+    d_ptr->settings = conn_settings_open(CONN_SETTINGS_CONNECTION,
+                                         QSTRING_TO_CONST_CSTR(iap_id));
+    if (d_ptr->settings == 0) {
+        qWarning("IAPConf: Unable to open ConnSettings for %s", 
+                 QSTRING_TO_CONST_CSTR(iap_id));
+    }
+}
+
+IAPConf::~IAPConf()
+{
+    conn_settings_close(d_ptr->settings);
+    delete d_ptr;
+}
+
+void IAPConf::setValue(const QString& key, const QVariant& value)
+{
+    // Invalid value means unsetting the given key
+    if (!value.isValid()) {
+        int err = conn_settings_unset(d_ptr->settings, 
+                                      QSTRING_TO_CONST_CSTR(key));
+        if (err != CONN_SETTINGS_E_NO_ERROR) {
+            qWarning("IAPConf: unable to unset key %s: %s",
+                     QSTRING_TO_CONST_CSTR(key),
+                     conn_settings_error_text((ConnSettingsError)err));
+        }
+        return;
+    }
+
+    // Convert value to ConnSettingsValue
+    ConnSettingsValue *val = d_ptr->variantToValue(value);
+    if (val == 0) return;
+
+    // Set value and handle errors
+    int error = conn_settings_set(d_ptr->settings,
+                                  QSTRING_TO_CONST_CSTR(key),
+                                  val);
+    if (error != CONN_SETTINGS_E_NO_ERROR) {
+        qWarning("IAPConf: error in setting key %s: %s", 
+                 QSTRING_TO_CONST_CSTR(key), 
+                 conn_settings_error_text((ConnSettingsError)error));
+    }
+
+    // Destroy value
+    conn_settings_value_destroy(val);
+    return;
+}
+
+void IAPConf::set(const QString& key1, const QVariant& value1, 
+                  const QString& key2, const QVariant& value2, 
+                  const QString& key3, const QVariant& value3, 
+                  const QString& key4, const QVariant& value4, 
+                  const QString& key5, const QVariant& value5, 
+                  const QString& key6, const QVariant& value6, 
+                  const QString& key7, const QVariant& value7, 
+                  const QString& key8, const QVariant& value8, 
+                  const QString& key9, const QVariant& value9,
+                  const QString& key10, const QVariant& value10)
+{
+    if (!key1.isEmpty()) setValue(key1, value1);
+    if (!key2.isEmpty()) setValue(key2, value2);
+    if (!key3.isEmpty()) setValue(key3, value3);
+    if (!key4.isEmpty()) setValue(key4, value4);
+    if (!key5.isEmpty()) setValue(key5, value5);
+    if (!key6.isEmpty()) setValue(key6, value6);
+    if (!key7.isEmpty()) setValue(key7, value7);
+    if (!key8.isEmpty()) setValue(key8, value8);
+    if (!key9.isEmpty()) setValue(key9, value9);
+    if (!key10.isEmpty()) setValue(key10, value10);
+}
+
+QVariant IAPConf::value(const QString& key) const
+{
+    ConnSettingsValue *val = conn_settings_get(d_ptr->settings,
+                                               QSTRING_TO_CONST_CSTR(key));
+
+    QVariant variant = d_ptr->valueToVariant(val);
+    conn_settings_value_destroy(val);
+    return variant;
+}
+
+void IAPConf::clear(const char *default_path)
+{
+    Q_UNUSED(default_path); // default path is unused
+
+    int error = conn_settings_remove(d_ptr->settings);
+    if (error != CONN_SETTINGS_E_NO_ERROR) {
+        qWarning("IAPConf: Error when removing IAP: %s",
+                 conn_settings_error_text((ConnSettingsError)error));
+    }
+}
+
+void IAPConf::clearAll()
+{
+    ConnSettings *settings = conn_settings_open(CONN_SETTINGS_CONNECTION,
+                                                NULL);
+    conn_settings_remove(settings);
+    conn_settings_close(settings);
+}
+
+
+void IAPConf::getAll(QList<QString> &all_iaps, bool return_path)
+{
+    Q_UNUSED(return_path); // We don't use return path currently
+
+    // Go through all available connections and add them to the list
+    char **ids = conn_settings_list_ids(CONN_SETTINGS_CONNECTION);
+    if (ids == 0) {
+        // No ids found - nothing to do
+        return;
+    }
+
+    for (int idx = 0; ids[idx]; idx++) {
+        all_iaps.append(QString(ids[idx]));
+        free(ids[idx]);
+    }
+    free(ids);
+}
+
+
+} // namespace Maemo
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/3rdparty/libconninet/src/iapconf.h	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,84 @@
+/*
+  libconninet - Internet Connectivity support library
+
+  Copyright (C) 2009 Nokia Corporation. All rights reserved.
+
+  Contact: Aapo Makela <aapo.makela@nokia.com>
+
+  This library is free software; you can redistribute it and/or
+  modify it under the terms of the GNU Lesser General Public License
+  version 2.1 as published by the Free Software Foundation.
+
+  This library is distributed in the hope that it will be useful, but
+  WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+  Lesser General Public License for more details.
+
+  You should have received a copy of the GNU Lesser General Public
+  License along with this library; if not, write to the Free Software
+  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+  02110-1301 USA
+*/
+
+#ifndef IAPCONF_H
+#define IAPCONF_H
+
+#include <QString>
+#include <QVariant>
+
+namespace Maemo {
+
+class IAPConfPrivate;
+class IAPConf {
+public:
+    IAPConf(const QString &iap_id);
+    virtual ~IAPConf();
+
+    /**
+        Convenience method for setting multiple IAP values with one call.
+    */
+    void set(const QString& key1, const QVariant& value1, 
+             const QString& key2 = "", const QVariant& value2 = QVariant(), 
+             const QString& key3 = "", const QVariant& value3 = QVariant(), 
+             const QString& key4 = "", const QVariant& value4 = QVariant(), 
+             const QString& key5 = "", const QVariant& value5 = QVariant(), 
+             const QString& key6 = "", const QVariant& value6 = QVariant(), 
+             const QString& key7 = "", const QVariant& value7 = QVariant(), 
+             const QString& key8 = "", const QVariant& value8 = QVariant(), 
+             const QString& key9 = "", const QVariant& value9 = QVariant(),
+             const QString& key10 = "", const QVariant& value10 = QVariant());
+
+    /**
+        Set one IAP value.
+    */
+    void setValue(const QString& key, const QVariant& value);
+
+    /**
+        Get one IAP value.
+    */
+    QVariant value(const QString& key) const;
+
+    /**
+        Clear this IAP from GConf
+    */
+    void clear(const char *default_path=0);
+
+    /**
+        Clear all IAP specific information from GConf (including all IAPs).
+        DO NOT USE THIS FUNCTION IN ANYWHERE ELSE EXCEPT IN TEST CODE!
+    */
+    void clearAll();
+
+    /**
+        Return all the IAPs found in the system. If return_path is true,
+	then do not strip the IAP path away.
+    */
+    static void getAll(QList<QString> &all_iaps, bool return_path=false);
+
+private:
+    IAPConfPrivate *d_ptr;
+};
+
+} // namespace Maemo
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/3rdparty/libconninet/src/iapmonitor.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,110 @@
+/*
+  libconninet - Internet Connectivity support library
+
+  Copyright (C) 2009-2010 Nokia Corporation. All rights reserved.
+
+  Contact: Jukka Rissanen <jukka.rissanen@nokia.com>
+
+  This library is free software; you can redistribute it and/or
+  modify it under the terms of the GNU Lesser General Public License
+  version 2.1 as published by the Free Software Foundation.
+
+  This library is distributed in the hope that it will be useful, but
+  WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+  Lesser General Public License for more details.
+
+  You should have received a copy of the GNU Lesser General Public
+  License along with this library; if not, write to the Free Software
+  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+  02110-1301 USA
+*/
+
+#include <QStringList>
+
+#include <conn_settings.h>
+#include "iapmonitor.h"
+
+namespace Maemo {
+
+
+void conn_settings_notify_func (ConnSettingsType type,
+                                const char *id,
+                                const char *key,
+                                ConnSettingsValue *value,
+                                void *user_data);
+
+class IAPMonitorPrivate {
+private:
+    IAPMonitor *monitor;
+    ConnSettings *settings;
+
+public:
+
+    IAPMonitorPrivate(IAPMonitor *monitor)
+        : monitor(monitor)
+    {
+        settings = conn_settings_open(CONN_SETTINGS_CONNECTION, NULL);
+        conn_settings_add_notify(
+                        settings,
+                        (ConnSettingsNotifyFunc *)conn_settings_notify_func,
+                        this);
+    }
+
+    ~IAPMonitorPrivate()
+    {
+        conn_settings_del_notify(settings);
+        conn_settings_close(settings);
+    }
+
+    void iapAdded(const QString &iap)
+    {
+        monitor->iapAdded(iap);
+    }
+
+    void iapRemoved(const QString &iap)
+    {
+        monitor->iapRemoved(iap);
+    }
+};
+
+void conn_settings_notify_func (ConnSettingsType type,
+                                const char *id,
+                                const char *key,
+                                ConnSettingsValue *value,
+                                void *user_data)
+{    
+    if (type != CONN_SETTINGS_CONNECTION) return;
+    IAPMonitorPrivate *priv = (IAPMonitorPrivate *)user_data;
+
+    QString iapId(key);
+    iapId = iapId.split("/")[0];
+    if (value != 0) {
+        priv->iapAdded(iapId);
+    } else if (iapId == QString(key)) {
+        // IAP is removed only when the directory gets removed
+        priv->iapRemoved(iapId);
+    }
+}
+
+IAPMonitor::IAPMonitor()
+    : d_ptr(new IAPMonitorPrivate(this))
+{
+}
+
+IAPMonitor::~IAPMonitor()
+{
+    delete d_ptr;
+}
+
+void IAPMonitor::iapAdded(const QString &id)
+{
+    // By default do nothing
+}
+
+void IAPMonitor::iapRemoved(const QString &id)
+{
+    // By default do nothing
+}
+
+} // namespace Maemo
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/3rdparty/libconninet/src/iapmonitor.h	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,48 @@
+/*
+  libconninet - Internet Connectivity support library
+
+  Copyright (C) 2009-2010 Nokia Corporation. All rights reserved.
+
+  Contact: Jukka Rissanen <jukka.rissanen@nokia.com>
+
+  This library is free software; you can redistribute it and/or
+  modify it under the terms of the GNU Lesser General Public License
+  version 2.1 as published by the Free Software Foundation.
+
+  This library is distributed in the hope that it will be useful, but
+  WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+  Lesser General Public License for more details.
+
+  You should have received a copy of the GNU Lesser General Public
+  License along with this library; if not, write to the Free Software
+  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+  02110-1301 USA
+*/
+
+#ifndef IAPMONITOR_H
+#define IAPMONITOR_H
+
+#include <QString>
+
+namespace Maemo {
+
+class IAPMonitorPrivate;
+class IAPMonitor {
+public:
+    IAPMonitor();
+    ~IAPMonitor();
+
+protected:
+    virtual void iapAdded(const QString &id);
+    virtual void iapRemoved(const QString &id);
+
+private:
+    IAPMonitorPrivate *d_ptr;
+    Q_DECLARE_PRIVATE(IAPMonitor);
+};
+
+} // namespace Maemo
+
+#endif // IAPMONITOR_H
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/3rdparty/libconninet/src/maemo_icd.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,1316 @@
+/*
+  libconninet - Internet Connectivity support library
+  
+  Copyright (C) 2009 Nokia Corporation. All rights reserved.
+
+  Contact: Jukka Rissanen <jukka.rissanen@nokia.com>
+
+  This library is free software; you can redistribute it and/or
+  modify it under the terms of the GNU Lesser General Public License
+  version 2.1 as published by the Free Software Foundation.
+
+  This library is distributed in the hope that it will be useful, but
+  WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+  Lesser General Public License for more details.
+
+  You should have received a copy of the GNU Lesser General Public
+  License along with this library; if not, write to the Free Software
+  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+  02110-1301 USA
+*/
+
+#include <stdio.h>
+#include "maemo_icd.h"
+#include <QObject>
+#include <QTimer>
+#include <QCoreApplication>
+#include <QEventLoop>
+#include <QDebug>
+#include <dbus/dbus.h>
+#include <dbus/dbus-glib-lowlevel.h>
+
+#include <sys/time.h>
+#include <sys/types.h>
+#include <unistd.h>
+
+namespace Maemo {
+
+#undef PRINT_DEBUGINFO
+#ifdef PRINT_DEBUGINFO
+  static FILE *fdebug = NULL;
+#define PDEBUG(fmt, args...)						\
+  do {									\
+    struct timeval tv;							\
+    gettimeofday(&tv, 0);						\
+    fprintf(fdebug, "DEBUG[%d]:%ld.%ld:%s:%s():%d: " fmt,		\
+	    getpid(),							\
+	    tv.tv_sec, tv.tv_usec,					\
+	    __FILE__, __FUNCTION__, __LINE__, args);			\
+    fflush(fdebug);							\
+  } while(0)
+#else
+#define PDEBUG(fmt...)
+#endif
+
+
+/* Reference counting singleton class that creates a single connection
+ * to icd so that icd reference counting works as expected. This is
+ * needed because DBusDispatcher uses private dbus connections
+ * which come and go and icd cannot use that information to
+ * determine whether application quit or not. So we create one
+ * persistent connection that is only teared down when application
+ * quits or calls disconnect()
+ */
+class IcdRefCounting
+{
+public:
+    IcdRefCounting() : first_call(true) { }
+    void setup(enum icd_connection_flags flag);
+    void cleanup();
+
+private:
+    bool first_call;
+    struct DBusConnection *connection;
+};
+
+Q_GLOBAL_STATIC(IcdRefCounting, icdRefCounting);
+
+
+void IcdRefCounting::setup(enum icd_connection_flags flag)
+{
+    if (first_call) {
+	DBusMessage *msg = NULL;
+
+	connection = dbus_bus_get_private(DBUS_BUS_SYSTEM, NULL);
+	dbus_connection_set_exit_on_disconnect(connection, FALSE);
+	dbus_connection_setup_with_g_main(connection, NULL);
+
+	msg = dbus_message_new_method_call(ICD_DBUS_API_INTERFACE,
+					   ICD_DBUS_API_PATH,
+					   ICD_DBUS_API_INTERFACE,
+					   ICD_DBUS_API_CONNECT_REQ);
+	if (msg == NULL)
+	    goto out;
+
+	if (!dbus_message_append_args(msg,
+				      DBUS_TYPE_UINT32, &flag,
+				      DBUS_TYPE_INVALID))
+	    goto out;
+
+	if (!dbus_connection_send_with_reply(connection, msg,
+					     NULL, 60*1000))
+	    goto out;
+
+	first_call = false;
+	return;
+
+    out:
+	dbus_connection_close(connection);
+	dbus_connection_unref(connection);
+    }
+}
+
+void IcdRefCounting::cleanup()
+{
+    if (!first_call) {
+	dbus_connection_close(connection);
+	dbus_connection_unref(connection);
+	first_call = true;
+    }
+}
+
+
+class IcdPrivate
+{
+public:
+    IcdPrivate(Icd *myfriend)
+    {
+        init(10000, IcdNewDbusInterface, myfriend);
+    }
+
+    IcdPrivate(unsigned int timeout, Icd *myfriend)
+    {
+        init(timeout, IcdNewDbusInterface, myfriend);
+    }
+
+    IcdPrivate(unsigned int timeout, IcdDbusInterfaceVer ver, Icd *myfriend)
+    {
+        /* Note that the old Icd interface is currently disabled and
+	 * the new one is always used.
+	 */
+        init(timeout, IcdNewDbusInterface, myfriend);
+    }
+
+    ~IcdPrivate()
+    {
+      QObject::disconnect(mDBus, 
+			  SIGNAL(signalReceived(const QString&, 
+						const QString&,
+						const QList<QVariant>&)),
+			  icd,
+			  SLOT(icdSignalReceived(const QString&, 
+						 const QString&,
+						 const QList<QVariant>&)));
+
+      QObject::disconnect(mDBus,
+			  SIGNAL(callReply(const QString&,
+					   const QList<QVariant>&,
+					   const QString&)),
+			  icd,
+			  SLOT(icdCallReply(const QString&,
+					    const QList<QVariant>&,
+					    const QString&)));
+
+        delete mDBus;
+        mDBus = 0;
+    }
+
+    /* Icd2 dbus API functions */
+    QStringList scan(icd_scan_request_flags flags,
+		     QStringList &network_types,
+		     QList<IcdScanResult>& scan_results,
+		     QString& error);
+    void scanCancel();
+    bool connect(icd_connection_flags flags, IcdConnectResult& result);
+    bool connect(icd_connection_flags flags, QList<ConnectParams>& params,
+		 IcdConnectResult& result);
+    bool connect(icd_connection_flags flags, QString& iap, QString& result);
+    void select(uint flags);
+    void disconnect(uint connect_flags, QString& service_type,
+		    uint service_attrs, QString& service_id,
+		    QString& network_type, uint network_attrs,
+		    QByteArray& network_id);
+    void disconnect(uint connect_flags);
+
+    uint state(QString& service_type, uint service_attrs,
+	       QString& service_id, QString& network_type,
+	       uint network_attrs, QByteArray& network_id,
+	       IcdStateResult &state_result);
+    uint statistics(QString& service_type, uint service_attrs,
+		    QString& service_id, QString& network_type,
+		    uint network_attrs, QByteArray& network_id,
+		    IcdStatisticsResult& stats_result);
+    uint addrinfo(QString& service_type, uint service_attrs,
+		  QString& service_id, QString& network_type,
+		  uint network_attrs, QByteArray& network_id,
+		  IcdAddressInfoResult& addr_result);
+
+    uint state(QList<IcdStateResult>& state_results);
+    uint state_non_blocking(QList<IcdStateResult>& state_results);
+    uint statistics(QList<IcdStatisticsResult>& stats_results);
+    uint addrinfo(QList<IcdAddressInfoResult>& addr_results);
+    uint addrinfo_non_blocking(QList<IcdAddressInfoResult>& addr_results);
+
+    void signalReceived(const QString& interface, 
+                        const QString& signal,
+                        const QList<QVariant>& args);
+    void callReply(const QString& method, 
+                   const QList<QVariant>& args,
+                   const QString& error);
+
+    QString error() { return mError; }
+
+public:
+    DBusDispatcher *mDBus;
+    QString mMethod;
+    QString mInterface;
+    QString mSignal;
+    QString mError;
+    QList<QVariant> mArgs;
+    QList<QVariant> receivedSignals;
+    unsigned int timeout;
+    IcdDbusInterfaceVer icd_dbus_version;
+    Icd *icd;
+
+    void init(unsigned int dbus_timeout, IcdDbusInterfaceVer ver,
+	      Icd *myfriend)
+    {
+      if (ver == IcdNewDbusInterface) {
+	mDBus = new DBusDispatcher(ICD_DBUS_API_INTERFACE,
+				   ICD_DBUS_API_PATH,
+				   ICD_DBUS_API_INTERFACE);
+      } else {
+	mDBus = new DBusDispatcher(ICD_DBUS_SERVICE,
+				   ICD_DBUS_PATH,
+				   ICD_DBUS_INTERFACE);
+      }
+      icd_dbus_version = ver;
+
+      /* This connect has a side effect as it means that only one
+       * Icd object can exists in one time. This should be fixed!
+       */
+      QObject::connect(mDBus, 
+		       SIGNAL(signalReceived(const QString&, 
+					     const QString&,
+					     const QList<QVariant>&)),
+		       myfriend,
+		       SLOT(icdSignalReceived(const QString&, 
+					      const QString&,
+					      const QList<QVariant>&)));
+
+      QObject::connect(mDBus,
+		       SIGNAL(callReply(const QString&,
+					const QList<QVariant>&,
+					const QString&)),
+		       myfriend,
+		       SLOT(icdCallReply(const QString&,
+					 const QList<QVariant>&,
+					 const QString&)));
+
+      icd = myfriend;
+      timeout = dbus_timeout;
+
+#ifdef PRINT_DEBUGINFO
+      if (!fdebug) {
+	fdebug = fopen("/tmp/maemoicd.log", "a+");
+      }
+      PDEBUG("created %s\n", "IcdPrivate");
+#endif
+    }
+
+    void clearState()
+    {
+      mMethod.clear();
+      mInterface.clear();
+      mSignal.clear();
+      mError.clear();
+      mArgs.clear();
+      receivedSignals.clear();
+    }
+
+    bool doConnect(IcdConnectResult& result);
+    bool doConnect(QString& result);
+    bool doState();
+};
+
+
+void IcdPrivate::signalReceived(const QString& interface, 
+				const QString& signal,
+				const QList<QVariant>& args)
+{
+    // Signal handler, which simply records what has been signalled
+    mInterface = interface;
+    mSignal = signal;
+    mArgs = args;
+
+    //qDebug() << "signal" << signal << "received:" << args;
+    receivedSignals << QVariant(interface) << QVariant(signal) << QVariant(args);
+}
+
+
+void IcdPrivate::callReply(const QString& method, 
+			   const QList<QVariant>& /*args*/,
+			   const QString& error)
+{
+    mMethod = method;
+    mError = error;
+}
+
+
+static void get_scan_result(QList<QVariant>& args,
+			    IcdScanResult& ret)
+{
+    int i=0;
+
+    if (args.isEmpty())
+      return;
+
+    ret.status = args[i++].toUInt();
+    ret.timestamp = args[i++].toUInt();
+    ret.scan.service_type = args[i++].toString();
+    ret.service_name = args[i++].toString();
+    ret.scan.service_attrs = args[i++].toUInt();
+    ret.scan.service_id = args[i++].toString();
+    ret.service_priority = args[i++].toInt();
+    ret.scan.network_type = args[i++].toString();
+    ret.network_name = args[i++].toString();
+    ret.scan.network_attrs = args[i++].toUInt();
+    ret.scan.network_id = args[i++].toByteArray();
+    ret.network_priority = args[i++].toInt();
+    ret.signal_strength = args[i++].toInt();
+    ret.station_id = args[i++].toString();
+    ret.signal_dB = args[i++].toInt();
+}
+
+
+static void get_connect_result(QList<QVariant>& args,
+			       IcdConnectResult& ret)
+{
+    int i=0;
+
+    if (args.isEmpty())
+      return;
+
+    ret.connect.service_type = args[i++].toString();
+    ret.connect.service_attrs = args[i++].toInt();
+    ret.connect.service_id = args[i++].toString();
+    ret.connect.network_type = args[i++].toString();
+    ret.connect.network_attrs = args[i++].toInt();
+    ret.connect.network_id = args[i++].toByteArray();
+    ret.status = args[i++].toInt();
+}
+
+
+QStringList IcdPrivate::scan(icd_scan_request_flags flags,
+			     QStringList &network_types,
+			     QList<IcdScanResult>& scan_results,
+			     QString& error)
+{
+    QStringList scanned_types;
+    QTimer timer;
+    QVariant reply;
+    QVariantList vl;
+    bool last_result = false;
+    IcdScanResult result;
+    int all_waited;
+    
+    clearState();
+    reply = mDBus->call(ICD_DBUS_API_SCAN_REQ, (uint)flags);
+    if (reply.type() != QVariant::List)
+        return scanned_types;
+    vl = reply.toList();
+    if (vl.isEmpty()) {
+        error = "Scan did not return anything.";
+	return scanned_types;
+    }
+    reply = vl.first();
+    scanned_types = reply.toStringList();
+    //qDebug() << "Scanning:" << scanned_types;
+    all_waited = scanned_types.size();
+
+    timer.setSingleShot(true);
+    timer.start(timeout);
+
+    scan_results.clear();
+    while (!last_result) {
+	while (timer.isActive() && mInterface.isEmpty() && mError.isEmpty()) {
+	    QCoreApplication::processEvents(QEventLoop::AllEvents, 1000);
+	}
+
+	if (!timer.isActive()) {
+	    //qDebug() << "Timeout happened";
+	    break;
+	}
+
+	if (mSignal != ICD_DBUS_API_SCAN_SIG) {
+	    //qDebug() << "Received" << mSignal << "while waiting" << ICD_DBUS_API_SCAN_SIG << ", ignoring";
+	    mInterface.clear();
+	    continue;
+	}
+
+	if (mError.isEmpty()) {
+  	    QString msgInterface = receivedSignals.takeFirst().toString();
+	    QString msgSignal = receivedSignals.takeFirst().toString();
+	    QList<QVariant> msgArgs = receivedSignals.takeFirst().toList();
+	    //qDebug() << "Signal" << msgSignal << "received.";
+	    //qDebug() << "Params:" << msgArgs;
+
+	    while (!msgSignal.isEmpty()) {
+		get_scan_result(msgArgs, result);
+
+#if 0
+		qDebug() << "Received: " <<
+		    "status =" << result.status <<
+		    ", timestamp =" << result.timestamp <<
+		    ", service_type =" << result.scan.service_type <<
+		    ", service_name =" << result.service_name <<
+		    ", service_attrs =" << result.scan.service_attrs <<
+		    ", service_id =" << result.scan.service_id <<
+		    ", service_priority =" << result.service_priority <<
+		    ", network_type =" << result.scan.network_type <<
+		    ", network_name =" << result.network_name <<
+		    ", network_attrs =" << result.scan.network_attrs <<
+		    ", network_id =" << "-" <<
+		    ", network_priority =" << result.network_priority <<
+		    ", signal_strength =" << result.signal_strength <<
+		    ", station_id =" << result.station_id <<
+		    ", signal_dB =" << result.signal_dB;
+#endif
+
+		if (result.status == ICD_SCAN_COMPLETE) {
+		    //qDebug() << "waited =" << all_waited;
+		    if (--all_waited == 0) {
+		        last_result = true;
+			break;
+		    }
+		} else
+		    scan_results << result;
+
+		if (receivedSignals.isEmpty())
+		    break;
+
+		msgInterface = receivedSignals.takeFirst().toString();
+		msgSignal = receivedSignals.takeFirst().toString();
+		msgArgs = receivedSignals.takeFirst().toList();
+	    }
+	    mInterface.clear();
+
+	} else {
+	    qWarning() << "Error while scanning:" << mError;
+	    break;
+	}
+    }
+    timer.stop();
+
+    error = mError;
+    return scanned_types;
+}
+
+
+void IcdPrivate::scanCancel()
+{
+    mDBus->call(ICD_DBUS_API_SCAN_CANCEL);
+}
+
+
+bool IcdPrivate::doConnect(IcdConnectResult& result)
+{
+    QTimer timer;
+    bool status = false;
+
+    timer.setSingleShot(true);
+    timer.start(timeout);
+
+    //qDebug() << "Waiting" << ICD_DBUS_API_CONNECT_SIG << "signal";
+
+    while (timer.isActive() && mInterface.isEmpty() &&
+	mSignal != ICD_DBUS_API_CONNECT_SIG &&
+	mError.isEmpty()) {
+	QCoreApplication::processEvents(QEventLoop::AllEvents, 1000);
+    }
+
+    timer.stop();
+
+    if (mError.isEmpty()) {
+        if (!mArgs.isEmpty()) {
+	    get_connect_result(mArgs, result);
+	    status = true;
+	} else
+	    status = false;
+    } else
+	status = false;
+
+    return status;
+}
+
+
+bool IcdPrivate::connect(icd_connection_flags flags, IcdConnectResult& result)
+{
+    clearState();
+    //mDBus->callAsynchronous(ICD_DBUS_API_CONNECT_REQ, (uint)flags);
+    mDBus->call(ICD_DBUS_API_CONNECT_REQ, (uint)flags);
+    icdRefCounting()->setup(flags);
+    return doConnect(result);
+}
+
+
+bool IcdPrivate::connect(icd_connection_flags flags, QList<ConnectParams>& params,
+		IcdConnectResult& result)
+{
+    QVariantList varlist;
+    QVariantList varlist2;
+
+    foreach (ConnectParams param, params) {
+        QVariantList items;
+
+	items.append(QVariant(param.connect.service_type));
+	items.append(QVariant(param.connect.service_attrs));
+	items.append(QVariant(param.connect.service_id));
+	items.append(QVariant(param.connect.network_type));
+	items.append(QVariant(param.connect.network_attrs));
+	items.append(QVariant(param.connect.network_id));
+
+	varlist.append(items);
+    }
+
+    varlist2.append(QVariant(varlist));
+
+    clearState();
+    //mDBus->callAsynchronous(ICD_DBUS_API_CONNECT_REQ, (uint)flags, varlist2);
+    mDBus->call(ICD_DBUS_API_CONNECT_REQ, (uint)flags, varlist2);
+    icdRefCounting()->setup(flags);
+    return doConnect(result);
+}
+
+
+bool IcdPrivate::doConnect(QString& ret)
+{
+    QTimer timer;
+    bool status = false;
+
+    timer.setSingleShot(true);
+    timer.start(timeout);
+
+    while (timer.isActive() && mInterface.isEmpty() &&
+	mError.isEmpty()) {
+	QCoreApplication::processEvents(QEventLoop::AllEvents, 1000);
+    }
+
+    timer.stop();
+
+    if (mError.isEmpty()) {
+	if (!mArgs.isEmpty()) {
+	    status = true;
+	    //ret = mArgs[0];  // TODO correctly
+	} else
+	    status = false;
+    } else
+	status = false;
+
+    return status;
+}
+
+
+bool IcdPrivate::connect(icd_connection_flags flags, QString& iap, QString& result)
+{
+    clearState();
+    //mDBus->callAsynchronous(ICD_CONNECT_REQ, iap, (uint)flags);
+    mDBus->call(ICD_CONNECT_REQ, iap, (uint)flags);
+    icdRefCounting()->setup(flags);
+    return doConnect(result);
+}
+
+
+void IcdPrivate::select(uint flags)
+{
+    mDBus->call(ICD_DBUS_API_SELECT_REQ, flags);
+}
+
+
+void IcdPrivate::disconnect(uint flags, QString& service_type,
+		    uint service_attrs, QString& service_id,
+		    QString& network_type, uint network_attrs,
+		    QByteArray& network_id)
+{
+    clearState();
+    mDBus->call(ICD_DBUS_API_DISCONNECT_REQ, flags,
+		service_type, service_attrs, service_id,
+		network_type, network_attrs, network_id);
+    icdRefCounting()->cleanup();
+}
+
+
+void IcdPrivate::disconnect(uint flags)
+{
+    clearState();
+    mDBus->call(ICD_DBUS_API_DISCONNECT_REQ, flags);
+    icdRefCounting()->cleanup();
+}
+
+
+static void get_state_all_result(QList<QVariant>& args,
+				 IcdStateResult& ret)
+{
+    int i=0;
+
+    ret.params.service_type = args[i++].toString();
+    ret.params.service_attrs = args[i++].toUInt();
+    ret.params.service_id = args[i++].toString();
+    ret.params.network_type = args[i++].toString();
+    ret.params.network_attrs = args[i++].toUInt();
+    ret.params.network_id = args[i++].toByteArray();
+    ret.error = args[i++].toString();
+    ret.state = args[i++].toInt();
+}
+
+
+static void get_state_all_result2(QList<QVariant>& args,
+				 IcdStateResult& ret)
+{
+    int i=0;
+
+    ret.params.network_type = args[i++].toString();
+    ret.state = args[i++].toInt();
+
+    // Initialize the other values so that the caller can
+    // notice we only returned partial status
+    ret.params.service_type = QString();
+    ret.params.service_attrs = 0;
+    ret.params.service_id = QString();
+    ret.params.network_attrs = 0;
+    ret.params.network_id = QByteArray();
+    ret.error = QString();
+}
+
+
+uint IcdPrivate::state(QString& service_type, uint service_attrs,
+		       QString& service_id, QString& network_type,
+		       uint network_attrs, QByteArray& network_id,
+		       IcdStateResult& state_result)
+{
+    QTimer timer;
+    QVariant reply;
+    uint total_signals;
+    QVariantList vl;
+
+    clearState();
+
+    reply = mDBus->call(ICD_DBUS_API_STATE_REQ,
+			service_type, service_attrs, service_id,
+			network_type, network_attrs, network_id);
+    if (reply.type() != QVariant::List)
+        return 0;
+    vl = reply.toList();
+    if (vl.isEmpty())
+        return 0;
+    reply = vl.first();
+    total_signals = reply.toUInt();
+    if (!total_signals)
+        return 0;
+
+    timer.setSingleShot(true);
+    timer.start(timeout);
+
+    mInterface.clear();
+    while (timer.isActive() && mInterface.isEmpty()) {
+        QCoreApplication::processEvents(QEventLoop::AllEvents, 1000);
+
+	if (mSignal != ICD_DBUS_API_STATE_SIG) {
+            mInterface.clear();
+	    continue;
+	}
+    }
+
+    timer.stop();
+
+    if (mError.isEmpty()) {
+        if (!mArgs.isEmpty()) {
+	    if (mArgs.size()>2)
+	        get_state_all_result(mArgs, state_result);
+	    else {
+	        // We are not connected as we did not get the status we asked
+	        return 0;
+	    }
+	}
+    } else {
+        qWarning() << "Error:" << mError;
+    }
+
+    // The returned value should be one because we asked for one state
+    return total_signals;
+}
+
+
+uint IcdPrivate::state_non_blocking(QList<IcdStateResult>& state_results)
+{
+    QTimer timer;
+    QVariant reply;
+    QVariantList vl;
+    uint signals_left, total_signals;
+    IcdStateResult result;
+
+    PDEBUG("%s\n", "non blocking state");
+
+    clearState();
+    reply = mDBus->call(ICD_DBUS_API_STATE_REQ);
+    if (reply.type() != QVariant::List)
+        return 0;
+    vl = reply.toList();
+    if (vl.isEmpty())
+        return 0;
+    reply = vl.first();
+    signals_left = total_signals = reply.toUInt();
+    if (!signals_left)
+        return 0;
+
+    timer.setSingleShot(true);
+    timer.start(timeout);
+    state_results.clear();
+    mError.clear();
+    while (signals_left) {
+        mInterface.clear();
+	while (timer.isActive() && mInterface.isEmpty()) {
+	    QCoreApplication::processEvents(QEventLoop::AllEvents, 1000);
+	}
+
+	if (!timer.isActive()) {
+	    total_signals = 0;
+	    break;
+	}
+
+	if (mSignal != ICD_DBUS_API_STATE_SIG) {
+	    continue;
+	}
+
+	if (mError.isEmpty()) {
+	    if (!mArgs.isEmpty()) {
+	        if (mArgs.size()==2)
+	            get_state_all_result2(mArgs, result);
+		else
+	            get_state_all_result(mArgs, result);
+		state_results << result;
+	    }
+	    signals_left--;
+	} else {
+	    qWarning() << "Error:" << mError;
+	    break;
+	}
+    }
+    timer.stop();
+
+    PDEBUG("total_signals=%d\n", total_signals);
+    return total_signals;
+}
+
+
+/* Special version of the state() call which does not call event loop.
+ * Needed in order to fix NB#175098 where Qt4.7 webkit crashes because event
+ * loop is run when webkit does not expect it. This function is called from
+ * bearer management API syncStateWithInterface() in QNetworkSession
+ * constructor.
+ */
+uint IcdPrivate::state(QList<IcdStateResult>& state_results)
+{
+    QVariant reply;
+    QVariantList vl;
+    uint signals_left, total_signals;
+    IcdStateResult result;
+    time_t started;
+    int timeout_secs = timeout / 1000;
+
+    PDEBUG("%s\n", "state_results");
+
+    clearState();
+    reply = mDBus->call(ICD_DBUS_API_STATE_REQ);
+    if (reply.type() != QVariant::List)
+        return 0;
+    vl = reply.toList();
+    if (vl.isEmpty())
+        return 0;
+    reply = vl.first();
+    signals_left = total_signals = reply.toUInt();
+    if (!signals_left)
+        return 0;
+
+    started = time(0);
+    state_results.clear();
+    mError.clear();
+    while (signals_left) {
+        mInterface.clear();
+	while ((time(0)<=(started+timeout_secs)) && mInterface.isEmpty()) {
+	    mDBus->synchronousDispatch(1000);
+	}
+
+        if (time(0)>(started+timeout_secs)) {
+	    total_signals = 0;
+	    break;
+	}
+
+	if (mSignal != ICD_DBUS_API_STATE_SIG) {
+	    continue;
+	}
+
+	if (mError.isEmpty()) {
+	    if (!mArgs.isEmpty()) {
+	        if (mArgs.size()==2)
+	            get_state_all_result2(mArgs, result);
+		else
+	            get_state_all_result(mArgs, result);
+		state_results << result;
+	    }
+	    signals_left--;
+	} else {
+	    qWarning() << "Error:" << mError;
+	    break;
+	}
+    }
+
+    PDEBUG("total_signals=%d\n", total_signals);
+    return total_signals;
+}
+
+
+static void get_statistics_all_result(QList<QVariant>& args,
+				      IcdStatisticsResult& ret)
+{
+    int i=0;
+
+    if (args.isEmpty())
+      return;
+
+    ret.params.service_type = args[i++].toString();
+    ret.params.service_attrs = args[i++].toUInt();
+    ret.params.service_id = args[i++].toString();
+    ret.params.network_type = args[i++].toString();
+    ret.params.network_attrs = args[i++].toUInt();
+    ret.params.network_id = args[i++].toByteArray();
+    ret.time_active = args[i++].toUInt();
+    ret.signal_strength = (enum icd_nw_levels)args[i++].toUInt();
+    ret.bytes_sent = args[i++].toUInt();
+    ret.bytes_received = args[i++].toUInt();
+}
+
+
+uint IcdPrivate::statistics(QList<IcdStatisticsResult>& stats_results)
+{
+    QTimer timer;
+    QVariant reply;
+    QVariantList vl;
+    uint signals_left, total_signals;
+    IcdStatisticsResult result;
+
+    clearState();
+    reply = mDBus->call(ICD_DBUS_API_STATISTICS_REQ);
+    if (reply.type() != QVariant::List)
+        return 0;
+    vl = reply.toList();
+    if (vl.isEmpty())
+        return 0;
+    reply = vl.first();
+    if (reply.type() != QVariant::UInt)
+        return 0;
+    signals_left = total_signals = reply.toUInt();
+
+    if (!signals_left)
+        return 0;
+
+    timer.setSingleShot(true);
+    timer.start(timeout);
+    stats_results.clear();
+    while (signals_left) {
+	mInterface.clear();
+	while (timer.isActive() && mInterface.isEmpty()) {
+	    QCoreApplication::processEvents(QEventLoop::AllEvents, 1000);
+	}
+
+	if (!timer.isActive()) {
+	    total_signals = 0;
+	    break;
+	}
+
+	if (mSignal != ICD_DBUS_API_STATISTICS_SIG) {
+	    continue;
+	}
+
+	if (mError.isEmpty()) {
+  	    get_statistics_all_result(mArgs, result);
+	    stats_results << result;
+	    signals_left--;
+	} else {
+	    qWarning() << "Error:" << mError;
+	    break;
+	}
+    }
+    timer.stop();
+
+    return total_signals;
+}
+
+
+uint IcdPrivate::statistics(QString& service_type, uint service_attrs,
+			    QString& service_id, QString& network_type,
+			    uint network_attrs, QByteArray& network_id,
+			    IcdStatisticsResult& stats_result)
+{
+    QTimer timer;
+    QVariant reply;
+    uint total_signals;
+    QVariantList vl;
+
+    clearState();
+
+    reply = mDBus->call(ICD_DBUS_API_STATISTICS_REQ,
+			service_type, service_attrs, service_id,
+			network_type, network_attrs, network_id);
+    if (reply.type() != QVariant::List)
+        return 0;
+    vl = reply.toList();
+    if (vl.isEmpty())
+        return 0;
+    reply = vl.first();
+    total_signals = reply.toUInt();
+    if (!total_signals)
+        return 0;
+
+    timer.setSingleShot(true);
+    timer.start(timeout);
+
+    mInterface.clear();
+    while (timer.isActive() && mInterface.isEmpty()) {
+        QCoreApplication::processEvents(QEventLoop::AllEvents, 1000);
+
+	if (mSignal != ICD_DBUS_API_STATISTICS_SIG) {
+            mInterface.clear();
+	    continue;
+	}
+    }
+
+    timer.stop();
+
+    if (mError.isEmpty()) {
+        get_statistics_all_result(mArgs, stats_result);
+    } else {
+        qWarning() << "Error:" << mError;
+    }
+
+    // The returned value should be one because we asked for one statistics
+    return total_signals;
+}
+
+
+static void get_addrinfo_all_result(QList<QVariant>& args,
+				    IcdAddressInfoResult& ret)
+{
+    int i=0;
+
+    if (args.isEmpty())
+      return;
+
+    ret.params.service_type = args[i++].toString();
+    ret.params.service_attrs = args[i++].toUInt();
+    ret.params.service_id = args[i++].toString();
+    ret.params.network_type = args[i++].toString();
+    ret.params.network_attrs = args[i++].toUInt();
+    ret.params.network_id = args[i++].toByteArray();
+
+    QVariantList vl = args[i].toList();
+    QVariant reply = vl.first();
+    QList<QVariant> lst = reply.toList();
+    for (int k=0; k<lst.size()/6; k=k+6) {
+        IcdIPInformation ip_info;
+	ip_info.address = lst[k].toString();
+	ip_info.netmask = lst[k++].toString();
+	ip_info.default_gateway = lst[k++].toString();
+	ip_info.dns1 = lst[k++].toString();
+	ip_info.dns2 = lst[k++].toString();
+	ip_info.dns3 = lst[k++].toString();
+
+	ret.ip_info << ip_info;
+    }
+}
+
+
+/* Special version of the addrinfo() call which does not call event loop.
+ * Needed in order to fix NB#175098 where Qt4.7 webkit crashes because event
+ * loop is run when webkit does not expect it. This function is called from
+ * bearer management API syncStateWithInterface() in QNetworkSession
+ * constructor.
+ */
+uint IcdPrivate::addrinfo(QList<IcdAddressInfoResult>& addr_results)
+{
+    QVariant reply;
+    QVariantList vl;
+    uint signals_left, total_signals;
+    IcdAddressInfoResult result;
+    time_t started;
+    int timeout_secs = timeout / 1000;
+
+    PDEBUG("%s\n", "addr_results");
+
+    clearState();
+    reply = mDBus->call(ICD_DBUS_API_ADDRINFO_REQ);
+    if (reply.type() != QVariant::List)
+        return 0;
+    vl = reply.toList();
+    if (vl.isEmpty())
+        return 0;
+    reply = vl.first();
+    if (reply.type() != QVariant::UInt)
+        return 0;
+    signals_left = total_signals = reply.toUInt();
+    if (!signals_left)
+        return 0;
+
+    started = time(0);
+    addr_results.clear();
+    while (signals_left) {
+        mInterface.clear();
+	while ((time(0)<=(started+timeout_secs)) && mInterface.isEmpty()) {
+	    mDBus->synchronousDispatch(1000);
+	}
+
+        if (time(0)>(started+timeout_secs)) {
+	    total_signals = 0;
+	    break;
+	}
+
+	if (mSignal != ICD_DBUS_API_ADDRINFO_SIG) {
+	    continue;
+	}
+
+	if (mError.isEmpty()) {
+  	    get_addrinfo_all_result(mArgs, result);
+	    addr_results << result;
+	    signals_left--;
+	} else {
+	    qWarning() << "Error:" << mError;
+	    break;
+	}
+    }
+
+    PDEBUG("total_signals=%d\n", total_signals);
+    return total_signals;
+}
+
+uint IcdPrivate::addrinfo_non_blocking(QList<IcdAddressInfoResult>& addr_results)
+{
+    QTimer timer;
+    QVariant reply;
+    QVariantList vl;
+    uint signals_left, total_signals;
+    IcdAddressInfoResult result;
+
+    PDEBUG("%s\n", "non blocking addrinfo");
+
+    clearState();
+    reply = mDBus->call(ICD_DBUS_API_ADDRINFO_REQ);
+    if (reply.type() != QVariant::List)
+        return 0;
+    vl = reply.toList();
+    if (vl.isEmpty())
+        return 0;
+    reply = vl.first();
+    if (reply.type() != QVariant::UInt)
+        return 0;
+    signals_left = total_signals = reply.toUInt();
+    if (!signals_left)
+        return 0;
+
+    timer.setSingleShot(true);
+    timer.start(timeout);
+    addr_results.clear();
+    while (signals_left) {
+        mInterface.clear();
+	while (timer.isActive() && mInterface.isEmpty()) {
+	    QCoreApplication::processEvents(QEventLoop::AllEvents, 1000);
+	}
+
+	if (!timer.isActive()) {
+	    total_signals = 0;
+	    break;
+	}
+
+	if (mSignal != ICD_DBUS_API_ADDRINFO_SIG) {
+	    continue;
+	}
+
+	if (mError.isEmpty()) {
+  	    get_addrinfo_all_result(mArgs, result);
+	    addr_results << result;
+	    signals_left--;
+	} else {
+	    qWarning() << "Error:" << mError;
+	    break;
+	}
+    }
+    timer.stop();
+    PDEBUG("total_signals=%d\n", total_signals);
+    return total_signals;
+}
+
+
+uint IcdPrivate::addrinfo(QString& service_type, uint service_attrs,
+			  QString& service_id, QString& network_type,
+			  uint network_attrs, QByteArray& network_id,
+			  IcdAddressInfoResult& addr_result)
+{
+    QTimer timer;
+    QVariant reply;
+    uint total_signals;
+    QVariantList vl;
+
+    clearState();
+
+    reply = mDBus->call(ICD_DBUS_API_ADDRINFO_REQ,
+			service_type, service_attrs, service_id,
+			network_type, network_attrs, network_id);
+    if (reply.type() != QVariant::List)
+        return 0;
+    vl = reply.toList();
+    if (vl.isEmpty())
+        return 0;
+    reply = vl.first();
+    total_signals = reply.toUInt();
+
+    if (!total_signals)
+        return 0;
+
+    timer.setSingleShot(true);
+    timer.start(timeout);
+
+    mInterface.clear();
+    while (timer.isActive() && mInterface.isEmpty()) {
+        QCoreApplication::processEvents(QEventLoop::AllEvents, 1000);
+
+	if (mSignal != ICD_DBUS_API_ADDRINFO_SIG) {
+            mInterface.clear();
+	    continue;
+	}
+    }
+
+    timer.stop();
+
+    if (mError.isEmpty()) {
+        get_addrinfo_all_result(mArgs, addr_result);
+    } else {
+        qWarning() << "Error:" << mError;
+    }
+
+    // The returned value should be one because we asked for one addrinfo
+    return total_signals;
+}
+
+
+Icd::Icd(QObject *parent)
+  : QObject(parent), d(new IcdPrivate(this))
+{
+}
+
+Icd::Icd(unsigned int timeout, QObject *parent)
+  : QObject(parent), d(new IcdPrivate(timeout, this))
+{
+}
+
+Icd::Icd(unsigned int timeout, IcdDbusInterfaceVer ver, QObject *parent)
+  : QObject(parent), d(new IcdPrivate(timeout, ver, this))
+{
+}
+
+Icd::~Icd()
+{
+    delete d;
+}
+
+
+QStringList Icd::scan(icd_scan_request_flags flags,
+		      QStringList &network_types,
+		      QList<IcdScanResult>& scan_results,
+		      QString& error)
+{
+    return d->scan(flags, network_types, scan_results, error);
+}
+
+
+void Icd::scanCancel()
+{
+    d->scanCancel();
+}
+
+
+bool Icd::connect(icd_connection_flags flags, IcdConnectResult& result)
+{
+    return d->connect(flags, result);
+}
+
+
+bool Icd::connect(icd_connection_flags flags, QList<ConnectParams>& params,
+		  IcdConnectResult& result)
+{
+    return d->connect(flags, params, result);
+}
+
+
+bool Icd::connect(icd_connection_flags flags, QString& iap, QString& result)
+{
+    return d->connect(flags, iap, result);
+}
+
+
+void Icd::select(uint flags)
+{
+    d->select(flags);
+}
+
+
+void Icd::disconnect(uint connect_flags, QString& service_type,
+		     uint service_attrs, QString& service_id,
+		     QString& network_type, uint network_attrs,
+		     QByteArray& network_id)
+{
+    d->disconnect(connect_flags, service_type,
+		  service_attrs, service_id,
+		  network_type, network_attrs,
+		  network_id);
+}
+
+
+void Icd::disconnect(uint connect_flags)
+{
+    d->disconnect(connect_flags);
+}
+
+
+uint Icd::state(QString& service_type, uint service_attrs,
+		QString& service_id, QString& network_type,
+		uint network_attrs, QByteArray& network_id,
+		IcdStateResult &state_result)
+{
+    return d->state(service_type, service_attrs, service_id,
+		    network_type, network_attrs, network_id,
+		    state_result);
+}
+
+
+uint Icd::statistics(QString& service_type, uint service_attrs,
+		     QString& service_id, QString& network_type,
+		     uint network_attrs, QByteArray& network_id,
+		     IcdStatisticsResult& stats_result)
+{
+    return d->statistics(service_type, service_attrs, service_id,
+			 network_type, network_attrs, network_id,
+			 stats_result);
+}
+
+
+uint Icd::addrinfo(QString& service_type, uint service_attrs,
+		   QString& service_id, QString& network_type,
+		   uint network_attrs, QByteArray& network_id,
+		   IcdAddressInfoResult& addr_result)
+{
+    return d->addrinfo(service_type, service_attrs, service_id,
+		       network_type, network_attrs, network_id,
+		       addr_result);
+}
+
+
+uint Icd::state(QList<IcdStateResult>& state_results)
+{
+    return d->state(state_results);
+}
+
+uint Icd::state_non_blocking(QList<IcdStateResult>& state_results)
+{
+    return d->state_non_blocking(state_results);
+}
+
+uint Icd::statistics(QList<IcdStatisticsResult>& stats_results)
+{
+    return d->statistics(stats_results);
+}
+
+
+uint Icd::addrinfo(QList<IcdAddressInfoResult>& addr_results)
+{
+    return d->addrinfo(addr_results);
+}
+
+uint Icd::addrinfo_non_blocking(QList<IcdAddressInfoResult>& addr_results)
+{
+    return d->addrinfo_non_blocking(addr_results);
+}
+
+void Icd::icdSignalReceived(const QString& interface, 
+			 const QString& signal,
+			 const QList<QVariant>& args)
+{
+    d->signalReceived(interface, signal, args);
+}
+
+
+void Icd::icdCallReply(const QString& method, 
+		    const QList<QVariant>& args,
+		    const QString& error)
+{
+    d->callReply(method, args, error);
+}
+
+
+QString Icd::error()
+{
+    return d->error();
+}
+
+}  // Maemo namespace
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/3rdparty/libconninet/src/maemo_icd.h	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,182 @@
+/*
+  libconninet - Internet Connectivity support library
+  
+  Copyright (C) 2009 Nokia Corporation. All rights reserved.
+
+  Contact: Jukka Rissanen <jukka.rissanen@nokia.com>
+
+  This library is free software; you can redistribute it and/or
+  modify it under the terms of the GNU Lesser General Public License
+  version 2.1 as published by the Free Software Foundation.
+
+  This library is distributed in the hope that it will be useful, but
+  WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+  Lesser General Public License for more details.
+
+  You should have received a copy of the GNU Lesser General Public
+  License along with this library; if not, write to the Free Software
+  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+  02110-1301 USA
+*/
+
+#ifndef MAEMO_ICD_H
+#define MAEMO_ICD_H
+
+#include <QObject>
+#include <QStringList>
+#include <QByteArray>
+#include <QMetaType>
+#include <QtDBus>
+#include <QDBusArgument>
+
+#include <glib.h>
+#include <icd/dbus_api.h>
+#include <icd/osso-ic.h>
+#include <icd/osso-ic-dbus.h>
+
+#include "dbusdispatcher.h"
+#include <icd/network_api_defines.h>
+
+#define ICD_LONG_SCAN_TIMEOUT (30*1000)  /* 30sec */
+#define ICD_SHORT_SCAN_TIMEOUT (10*1000)  /* 10sec */
+#define ICD_SHORT_CONNECT_TIMEOUT (10*1000) /* 10sec */
+#define ICD_LONG_CONNECT_TIMEOUT (150*1000) /* 2.5min */
+
+namespace Maemo {
+
+struct CommonParams {
+	QString service_type;
+	uint service_attrs;
+	QString service_id;
+	QString network_type;
+	uint network_attrs;
+	QByteArray network_id;
+};
+
+struct ConnectParams {
+	struct CommonParams connect;
+};
+
+struct IcdScanResult {
+	uint status; // see #icd_scan_status
+	uint timestamp; // when last seen
+	QString service_name;
+	uint service_priority; // within a service type
+	QString network_name;
+	uint network_priority;
+	struct CommonParams scan;
+	uint signal_strength; // quality, 0 (none) - 10 (good)
+	QString station_id; // e.g. MAC address or similar id
+	uint signal_dB; // use signal strength above unless you know what you are doing
+
+	IcdScanResult() {
+		status = timestamp = scan.service_attrs = service_priority =
+			scan.network_attrs = network_priority = signal_strength =
+			signal_dB = 0;
+	}
+};
+
+struct IcdConnectResult {
+	struct CommonParams connect;
+	uint status;
+};
+
+struct IcdStateResult {
+	struct CommonParams params;
+	QString error;
+	uint state;
+};
+
+struct IcdStatisticsResult {
+	struct CommonParams params;
+	uint time_active;  // in seconds
+	enum icd_nw_levels signal_strength; // see network_api_defines.h in icd2-dev package
+	uint bytes_sent;
+	uint bytes_received;
+};
+
+struct IcdIPInformation {
+	QString address;
+	QString netmask;
+	QString default_gateway;
+	QString dns1;
+	QString dns2;
+	QString dns3;
+};
+
+struct IcdAddressInfoResult {
+	struct CommonParams params;
+	QList<IcdIPInformation> ip_info;
+};
+
+enum IcdDbusInterfaceVer {
+	IcdOldDbusInterface = 0,  // use the old OSSO-IC interface
+	IcdNewDbusInterface       // use the new Icd2 interface (default)
+};
+
+
+class IcdPrivate;
+class Icd : public QObject
+{
+    Q_OBJECT
+
+public:
+    Icd(QObject *parent = 0);
+    Icd(unsigned int timeout, QObject *parent = 0);
+    Icd(unsigned int timeout, IcdDbusInterfaceVer ver, QObject *parent = 0);
+    ~Icd();
+    QString error();  // returns last error string
+
+    /* Icd2 dbus API functions */
+    QStringList scan(icd_scan_request_flags flags,
+		     QStringList &network_types,
+		     QList<IcdScanResult>& scan_results,
+		     QString& error);
+    void scanCancel();
+    bool connect(icd_connection_flags flags, IcdConnectResult& result);
+    bool connect(icd_connection_flags flags, QList<ConnectParams>& params,
+		 IcdConnectResult& result);
+    bool connect(icd_connection_flags flags, QString& iap, QString& result);
+    void select(uint flags);
+    void disconnect(uint connect_flags, QString& service_type,
+		    uint service_attrs, QString& service_id,
+		    QString& network_type, uint network_attrs,
+		    QByteArray& network_id);
+    void disconnect(uint connect_flags);
+
+    uint state(QString& service_type, uint service_attrs,
+	       QString& service_id, QString& network_type,
+	       uint network_attrs, QByteArray& network_id,
+	       IcdStateResult &state_result);
+    uint statistics(QString& service_type, uint service_attrs,
+		    QString& service_id, QString& network_type,
+		    uint network_attrs, QByteArray& network_id,
+		    IcdStatisticsResult& stats_result);
+    uint addrinfo(QString& service_type, uint service_attrs,
+		  QString& service_id, QString& network_type,
+		  uint network_attrs, QByteArray& network_id,
+		  IcdAddressInfoResult& addr_result);
+
+    uint state(QList<IcdStateResult>& state_results);
+    uint state_non_blocking(QList<IcdStateResult>& state_results);
+    uint statistics(QList<IcdStatisticsResult>& stats_results);
+    uint addrinfo(QList<IcdAddressInfoResult>& addr_results);
+    uint addrinfo_non_blocking(QList<IcdAddressInfoResult>& addr_results);
+
+private Q_SLOTS:
+    void icdSignalReceived(const QString& interface, 
+                        const QString& signal,
+                        const QList<QVariant>& args);
+    void icdCallReply(const QString& method, 
+                   const QList<QVariant>& args,
+                   const QString& error);
+
+private:
+    IcdPrivate *d;
+    friend class IcdPrivate;
+};
+
+}  // Maemo namespace
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/3rdparty/libconninet/src/proxyconf.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,315 @@
+/*
+  libconninet - Internet Connectivity support library
+
+  Copyright (C) 2010 Nokia Corporation. All rights reserved.
+
+  Contact: Jukka Rissanen <jukka.rissanen@nokia.com>
+
+  This library is free software; you can redistribute it and/or
+  modify it under the terms of the GNU Lesser General Public License
+  version 2.1 as published by the Free Software Foundation.
+
+  This library is distributed in the hope that it will be useful, but
+  WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+  Lesser General Public License for more details.
+
+  You should have received a copy of the GNU Lesser General Public
+  License along with this library; if not, write to the Free Software
+  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+  02110-1301 USA
+*/
+
+#include <QDebug>
+#include <QWriteLocker>
+#include <QNetworkProxyFactory>
+#include <QNetworkProxy>
+#include <GConfItem>
+#include <gconf/gconf-client.h>
+#include "proxyconf.h"
+
+#define CONF_PROXY "/system/proxy"
+#define HTTP_PROXY "/system/http_proxy"
+
+
+namespace Maemo {
+
+class NetworkProxyFactory : QNetworkProxyFactory {
+public:
+    NetworkProxyFactory() { }
+    QList<QNetworkProxy> queryProxy(const QNetworkProxyQuery &query = QNetworkProxyQuery());
+};
+
+
+QList<QNetworkProxy> NetworkProxyFactory::queryProxy(const QNetworkProxyQuery &query)
+{
+    ProxyConf proxy_conf;
+
+    QList<QNetworkProxy> result = proxy_conf.flush(query);
+    if (result.isEmpty())
+        result << QNetworkProxy::NoProxy;
+
+    return result;
+}
+
+
+class ProxyConfPrivate {
+private:
+    // proxy values from gconf
+    QString mode;
+    bool use_http_host;
+    QString autoconfig_url;
+    QString http_proxy;
+    quint16 http_port;
+    QList<QVariant> ignore_hosts;
+    QString secure_host;
+    quint16 secure_port;
+    QString ftp_host;
+    quint16 ftp_port;
+    QString socks_host;
+    quint16 socks_port;
+    QString rtsp_host;
+    quint16 rtsp_port;
+
+    QVariant getValue(QString& name);
+    QVariant getHttpValue(QString& name);
+    QVariant getValue(const char *name);
+    QVariant getHttpValue(const char *name);
+    bool isHostExcluded(const QString &host);
+
+public:
+    QString prefix;
+    QString http_prefix;
+
+    void readProxyData();
+    QList<QNetworkProxy> flush(const QNetworkProxyQuery &query);
+};
+
+
+QVariant ProxyConfPrivate::getValue(QString& name)
+{
+    GConfItem item(prefix + name);
+    return item.value();
+}
+
+QVariant ProxyConfPrivate::getHttpValue(QString& name)
+{
+    GConfItem item(http_prefix + name);
+    return item.value();
+}
+
+
+QVariant ProxyConfPrivate::getValue(const char *name)
+{
+    QString n = QString(name);
+    return getValue(n);
+}
+
+QVariant ProxyConfPrivate::getHttpValue(const char *name)
+{
+    QString n = QString(name);
+    return getHttpValue(n);
+}
+
+
+#define GET(var, type)				\
+  do {						\
+    var = getValue(#var).to##type ();		\
+    /*qDebug()<<"var="<<var;*/			\
+  } while(0)
+
+#define GET2(var, name, type)			\
+  do {						\
+    var = getHttpValue(#name).to##type ();	\
+    /*qDebug()<<"var="<<var;*/			\
+  } while(0)
+
+
+void ProxyConfPrivate::readProxyData()
+{
+    /* Read the proxy settings from /system/proxy* */
+    GET2(http_proxy, host, String);
+    GET2(http_port, port, Int);
+    GET2(ignore_hosts, ignore_hosts, List);
+
+    GET(mode, String);
+    GET(autoconfig_url, String);
+    GET(secure_host, String);
+    GET(secure_port, Int);
+    GET(ftp_host, String);
+    GET(ftp_port, Int);
+    GET(socks_host, String);
+    GET(socks_port, Int);
+    GET(rtsp_host, String);
+    GET(rtsp_port, Int);
+
+    if (http_proxy.isEmpty())
+        use_http_host = false;
+    else
+        use_http_host = true;
+}
+
+
+bool ProxyConfPrivate::isHostExcluded(const QString &host)
+{
+    if (host.isEmpty())
+        return true;
+
+    if (ignore_hosts.isEmpty())
+        return false;
+
+    QHostAddress ipAddress;
+    bool isIpAddress = ipAddress.setAddress(host);
+
+    foreach (QVariant h, ignore_hosts) {
+        QString entry = h.toString();
+        if (isIpAddress && ipAddress.isInSubnet(QHostAddress::parseSubnet(entry))) {
+            return true;  // excluded
+        } else {
+            // do wildcard matching
+            QRegExp rx(entry, Qt::CaseInsensitive, QRegExp::Wildcard);
+            if (rx.exactMatch(host))
+                return true;
+        }
+    }
+
+    // host was not excluded
+    return false;
+}
+
+
+QList<QNetworkProxy> ProxyConfPrivate::flush(const QNetworkProxyQuery &query)
+{
+    QList<QNetworkProxy> result;
+
+#if 0
+    qDebug()<<"http_proxy" << http_proxy;
+    qDebug()<<"http_port" << http_port;
+    qDebug()<<"ignore_hosts" << ignore_hosts;
+    qDebug()<<"use_http_host" << use_http_host;
+    qDebug()<<"mode" << mode;
+    qDebug()<<"autoconfig_url" << autoconfig_url;
+    qDebug()<<"secure_host" << secure_host;
+    qDebug()<<"secure_port" << secure_port;
+    qDebug()<<"ftp_host" << ftp_host;
+    qDebug()<<"ftp_port" << ftp_port;
+    qDebug()<<"socks_host" << socks_host;
+    qDebug()<<"socks_port" << socks_port;
+    qDebug()<<"rtsp_host" << rtsp_host;
+    qDebug()<<"rtsp_port" << rtsp_port;
+#endif
+
+    if (isHostExcluded(query.peerHostName()))
+        return result;          // no proxy for this host
+
+    if (mode == "auto") {
+        // TODO: pac currently not supported, fix me
+        return result;
+    }
+
+    if (mode == "manual") {
+        bool isHttps = false;
+	QString protocol = query.protocolTag().toLower();
+
+	// try the protocol-specific proxy
+	QNetworkProxy protocolSpecificProxy;
+
+	if (protocol == QLatin1String("ftp")) {
+	    if (!ftp_host.isEmpty()) {
+	        protocolSpecificProxy.setType(QNetworkProxy::FtpCachingProxy);
+		protocolSpecificProxy.setHostName(ftp_host);
+		protocolSpecificProxy.setPort(ftp_port);
+	    }
+	} else if (protocol == QLatin1String("http")) {
+	    if (!http_proxy.isEmpty()) {
+	        protocolSpecificProxy.setType(QNetworkProxy::HttpProxy);
+		protocolSpecificProxy.setHostName(http_proxy);
+		protocolSpecificProxy.setPort(http_port);
+	    }
+	} else if (protocol == QLatin1String("https")) {
+	    isHttps = true;
+	    if (!secure_host.isEmpty()) {
+	        protocolSpecificProxy.setType(QNetworkProxy::HttpProxy);
+		protocolSpecificProxy.setHostName(secure_host);
+		protocolSpecificProxy.setPort(secure_port);
+	    }
+	}
+
+	if (protocolSpecificProxy.type() != QNetworkProxy::DefaultProxy)
+	    result << protocolSpecificProxy;
+
+
+        if (!socks_host.isEmpty()) {
+	    QNetworkProxy proxy;
+	    proxy.setType(QNetworkProxy::Socks5Proxy);
+	    proxy.setHostName(socks_host);
+	    proxy.setPort(socks_port);
+	    result << proxy;
+	}
+
+
+	// Add the HTTPS proxy if present (and if we haven't added yet)
+	if (!isHttps) {
+	    QNetworkProxy https;
+	    if (!secure_host.isEmpty()) {
+	        https.setType(QNetworkProxy::HttpProxy);
+		https.setHostName(secure_host);
+		https.setPort(secure_port);
+	    }
+
+	    if (https.type() != QNetworkProxy::DefaultProxy &&
+		https != protocolSpecificProxy)
+	        result << https;
+	}
+    }
+
+    return result;
+}
+
+
+ProxyConf::ProxyConf()
+    : d_ptr(new ProxyConfPrivate)
+{
+    g_type_init();
+    d_ptr->prefix = CONF_PROXY "/";
+    d_ptr->http_prefix = HTTP_PROXY "/";
+}
+
+ProxyConf::~ProxyConf()
+{
+    delete d_ptr;
+}
+
+
+QList<QNetworkProxy> ProxyConf::flush(const QNetworkProxyQuery &query)
+{
+    d_ptr->readProxyData();
+    return d_ptr->flush(query);
+}
+
+
+static int refcount = 0;
+static QReadWriteLock lock;
+
+void ProxyConf::update()
+{
+    QWriteLocker locker(&lock);
+    NetworkProxyFactory *factory = new NetworkProxyFactory();
+    QNetworkProxyFactory::setApplicationProxyFactory((QNetworkProxyFactory*)factory);
+    refcount++;
+}
+
+
+void ProxyConf::clear(void)
+{
+    QWriteLocker locker(&lock);
+    refcount--;
+    if (refcount == 0)
+        QNetworkProxyFactory::setApplicationProxyFactory(NULL);
+
+    if (refcount<0)
+        refcount = 0;
+}
+
+
+} // namespace Maemo
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/3rdparty/libconninet/src/proxyconf.h	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,53 @@
+/*
+  libconninet - Internet Connectivity support library
+
+  Copyright (C) 2010 Nokia Corporation. All rights reserved.
+
+  Contact: Jukka Rissanen <jukka.rissanen@nokia.com>
+
+  This library is free software; you can redistribute it and/or
+  modify it under the terms of the GNU Lesser General Public License
+  version 2.1 as published by the Free Software Foundation.
+
+  This library is distributed in the hope that it will be useful, but
+  WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+  Lesser General Public License for more details.
+
+  You should have received a copy of the GNU Lesser General Public
+  License along with this library; if not, write to the Free Software
+  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+  02110-1301 USA
+*/
+
+#ifndef PROXYCONF_H
+#define PROXYCONF_H
+
+#include <QString>
+#include <QNetworkProxy>
+
+namespace Maemo {
+
+class ProxyConfPrivate;
+class ProxyConf {
+private:
+    ProxyConfPrivate *d_ptr;
+
+public:
+    ProxyConf();
+    virtual ~ProxyConf();
+
+    QList<QNetworkProxy> flush(const QNetworkProxyQuery &query = QNetworkProxyQuery());  // read the proxies from db
+
+    /* Note that for each update() call there should be corresponding
+     * clear() call because the ProxyConf class implements a reference
+     * counting mechanism. The factory is removed only when there is
+     * no one using the factory any more.
+     */
+    static void update(void);          // this builds QNetworkProxy factory
+    static void clear(void);           // this removes QNetworkProxy factory
+};
+
+} // namespace Maemo
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/3rdparty/libconninet/tests/ut_dbusdispatcher.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,191 @@
+/* * This file is part of conn-dui-settings-inet *
+ *
+ * Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ *
+ * Contact: Aapo Makela <aapo.makela@nokia.com>
+ *
+ * This software, including documentation, is protected by copyright
+ * controlled by Nokia Corporation. All rights are reserved. Copying,
+ * including reproducing, storing, adapting or translating, any or all of
+ * this material requires the prior written consent of Nokia Corporation.
+ * This material also contains confidential information which may not be
+ * disclosed to others without the prior written consent of Nokia.
+ */
+
+#include <QtTest/QtTest>
+#include <QCoreApplication>
+#include <QEventLoop>
+#include <QDebug>
+#include <icd/dbus_api.h>
+
+#include <dbusdispatcher.h>
+
+class Ut_DBusDispatcher : public QObject
+{
+    Q_OBJECT
+
+private Q_SLOTS:
+    void init();
+    void cleanup();
+    void initTestCase();
+    void cleanupTestCase();
+
+    void simpleSignalReceived(const QString& interface, 
+                              const QString& signal,
+                              const QList<QVariant>& args);
+    void simpleCallReply(const QString& method, 
+                         const QList<QVariant>& args,
+                         const QString& error);
+    void simpleCall();
+
+    void complexCallReply(const QString& method, 
+                          const QList<QVariant>& args,
+                          const QString& error);
+    void complexCall();
+
+private:
+    Maemo::DBusDispatcher *mSubject;
+    QProcess *icd_stub;
+
+    QString mMethod;
+    QString mInterface;
+    QString mSignal;
+    QList<QVariant> mArgs;
+};
+
+void Ut_DBusDispatcher::init()
+{
+    mSubject = new Maemo::DBusDispatcher("com.nokia.icd2", "/com/nokia/icd2",
+					 "com.nokia.icd2");
+
+    // Start icd2 stub
+    icd_stub = new QProcess(this);
+    icd_stub->start("/usr/bin/icd2_stub.py");
+    QTest::qWait(1000);
+}
+
+void Ut_DBusDispatcher::cleanup()
+{
+    // Terminate icd2 stub
+    icd_stub->terminate();
+    icd_stub->waitForFinished();
+
+    delete mSubject;
+    mSubject = 0;
+}
+
+void Ut_DBusDispatcher::initTestCase()
+{
+} 
+
+void Ut_DBusDispatcher::cleanupTestCase()
+{
+}
+
+void Ut_DBusDispatcher::simpleSignalReceived(const QString& interface, 
+                                             const QString& signal,
+                                             const QList<QVariant>& args)
+{
+    // Signal handler, which simply records what has been signalled
+    mInterface = interface;
+    mSignal = signal;
+    mArgs = args;
+}
+
+void Ut_DBusDispatcher::simpleCallReply(const QString& method, 
+                                        const QList<QVariant>& args,
+                                        const QString& error)
+{
+    mMethod = method;
+
+    // Check that method matches and at least WLAN_INFRA is returned
+    QVERIFY(error.isEmpty());
+    QVERIFY(args[0].toStringList().contains("WLAN_INFRA"));
+}
+
+void Ut_DBusDispatcher::simpleCall()
+{
+    uint flags = 0;
+    QList<QVariant> reply;
+    int idx = 0;
+    QTimer timer;
+
+    // Connect signals
+    connect(mSubject, SIGNAL(signalReceived(const QString&, 
+                                            const QString&,
+                                            const QList<QVariant>&)),
+            this, SLOT(simpleSignalReceived(const QString&, 
+                                      const QString&,
+                                      const QList<QVariant>&)));
+    connect(mSubject, SIGNAL(callReply(const QString&,
+                                       const QList<QVariant>&,
+                                       const QString&)),
+            this, SLOT(simpleCallReply(const QString&,
+                                 const QList<QVariant>&,
+                                 const QString&)));
+
+    // Request scan and verify the call starts succesfully
+    QVERIFY(mSubject->callAsynchronous("scan_req", flags));
+
+    // Wait 1st scan signal for 10 secs
+    timer.setSingleShot(true);
+    timer.start(10000);
+    while (timer.isActive() && mInterface.isEmpty()) {
+        QCoreApplication::processEvents(QEventLoop::AllEvents, 1000);
+        idx++;
+    }
+    timer.stop();
+
+    // Sanity checks for the scan result
+    QVERIFY(mInterface == "com.nokia.icd2");    // interface is icd2
+    QVERIFY(mMethod == "scan_req");             // method is scan_req
+    QVERIFY(mSignal == "scan_result_sig");      // signal is scan result
+    QVERIFY(mArgs[0] == QVariant(0) ||
+	    mArgs[0] == QVariant(4));           // First argument is status
+                                                // (0 == NEW, 4 == COMPLETED)
+    //QVERIFY(mArgs.contains(QVariant("WLAN_INFRA"))); // WLAN scan result
+}
+
+void Ut_DBusDispatcher::complexCallReply(const QString& method, 
+                                         const QList<QVariant>& args,
+                                         const QString& error)
+{
+    mMethod = method;
+
+    // Check that method has not return arguments and error is not set
+    QVERIFY(error.isEmpty());
+    QVERIFY(args.isEmpty());
+}
+
+void Ut_DBusDispatcher::complexCall()
+{    
+    uint flags = ICD_CONNECTION_FLAG_UI_EVENT;
+    QList<QVariant> reply;
+    QVariantList networks;
+    QVariantList network1;
+
+    network1 << "" << (uint)0 << "" << "WLAN_INFRA" << (uint)0x05000011 << QByteArray("osso@46@net");
+    networks << QVariant(network1);
+
+    // Connect signal
+    connect(mSubject, SIGNAL(callReply(const QString&,
+                                       const QList<QVariant>&,
+                                       const QString&)),
+            this, SLOT(complexCallReply(const QString&,
+                                        const QList<QVariant>&,
+                                        const QString&)));
+
+    // Request connect and verify the call starts succesfully
+    QVERIFY(mSubject->callAsynchronous("connect_req", flags, networks));
+
+    QTest::qWait(1000);
+
+    // Sanity checks for the scan result
+    QVERIFY(mInterface == "com.nokia.icd2");    // interface is icd2
+    QVERIFY(mMethod == "connect_req");          // method connect_req
+}
+
+QTEST_MAIN(Ut_DBusDispatcher)
+
+#include "ut_dbusdispatcher.moc"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/3rdparty/libconninet/tests/ut_iapconf.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,186 @@
+/*
+  libconninet - Internet Connectivity support library
+
+  Copyright (C) 2009 Nokia Corporation. All rights reserved.
+
+  Contact: Aapo Makela <aapo.makela@nokia.com>
+
+  This library is free software; you can redistribute it and/or
+  modify it under the terms of the GNU Lesser General Public License
+  version 2.1 as published by the Free Software Foundation.
+
+  This library is distributed in the hope that it will be useful, but
+  WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+  Lesser General Public License for more details.
+
+  You should have received a copy of the GNU Lesser General Public
+  License along with this library; if not, write to the Free Software
+  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+  02110-1301 USA
+*/
+
+
+#include <QtTest/QtTest>
+#include <QDebug>
+
+#include <iapconf.h>
+
+class Ut_IAPConf : public QObject
+{
+    Q_OBJECT
+
+private Q_SLOTS:
+    void init();
+    void cleanup();
+    void initTestCase();
+    void cleanupTestCase();
+
+    void setupIAP();
+    void setupIAPContainingDot();
+    void unsetIAPValueIsNotValid();
+    void verifyAllIAPs();
+    void allForEmptyConfReturnsEmptyList();
+    void settingInvalidValueUnsetsKey();
+
+private:
+    Maemo::IAPConf *mSubject;
+};
+
+void Ut_IAPConf::init()
+{
+    mSubject = new Maemo::IAPConf("test_iap");
+}
+
+void Ut_IAPConf::cleanup()
+{
+    // Clear made settings
+    mSubject->clear();
+
+    delete mSubject;
+    mSubject = 0;
+}
+
+void Ut_IAPConf::initTestCase()
+{
+} 
+
+void Ut_IAPConf::cleanupTestCase()
+{
+}
+
+void Ut_IAPConf::setupIAP()
+{
+    // Set bunch of values
+    mSubject->set("ipv4_type", "AUTO",
+                  "wlan_wepkey1", "connt",
+                  "wlan_wepdefkey", 1,
+                  "wlan_ssid", QByteArray("CONNTEST-1"));
+
+    // Set one value
+    mSubject->setValue("type", "WLAN_INFRA");
+
+    // Check all values that they were set correctly
+    QVERIFY(mSubject->value("ipv4_type").toString() == "AUTO");
+    QVERIFY(mSubject->value("wlan_wepkey1").toString() == "connt");
+    QVERIFY(mSubject->value("wlan_wepdefkey").toInt() == 1);
+    QVERIFY(mSubject->value("wlan_ssid").toByteArray() == QByteArray("CONNTEST-1"));
+    QVERIFY(mSubject->value("type").toString() == "WLAN_INFRA");
+}
+
+void Ut_IAPConf::setupIAPContainingDot()
+{
+    delete mSubject;
+    mSubject = new Maemo::IAPConf("test.iap");
+
+    // Set and check one value
+    mSubject->setValue("type", "DUMMY");
+    QVERIFY(mSubject->value("type").toString() == "DUMMY");
+}
+
+void Ut_IAPConf::unsetIAPValueIsNotValid()
+{
+    QVariant invalidValue = mSubject->value("this_value_does_not_exist");
+    QVERIFY(invalidValue.isValid() == false);
+}
+
+void Ut_IAPConf::verifyAllIAPs()
+{
+    int count = 0, extras = 0;
+    QRegExp regexp("iap[1-3]");
+    Maemo::IAPConf iap1("iap1");
+    Maemo::IAPConf iap2("iap2");
+    Maemo::IAPConf iap3("iap3");
+
+    iap1.clear();
+    iap2.clear();
+    iap3.clear();
+
+    iap1.setValue("name", "iap1");
+    iap2.setValue("name", "iap2");
+    iap3.setValue("name", "iap3");
+
+    count = extras = 0;
+    QList<QString> iaps;
+    Maemo::IAPConf::getAll(iaps, true);
+    foreach (QString iap_path, iaps) {
+        QString iap_id = iap_path.section('/', 5);  /* This is the IAP id */
+	if (!iap_id.contains(regexp)) {
+	    extras++;
+	    continue;
+	}
+	Maemo::IAPConf iap(iap_id);
+	QString name = iap.value("name").toString();
+	QVERIFY(name == iap_id);
+	count++;
+    }
+    QCOMPARE(count, iaps.size()-extras);
+
+    iap1.clear();
+    iap2.clear();
+    iap3.clear();
+
+    iap1.setValue("name", "iap1");
+    iap2.setValue("name", "iap2");
+    iap3.setValue("name", "iap3");
+
+    count = extras = 0;
+    Maemo::IAPConf::getAll(iaps);
+    foreach (QString iap_id, iaps) {
+        if (!iap_id.contains(regexp)) {
+	    extras++;
+	    continue;
+	}
+	Maemo::IAPConf iap(iap_id);
+	QString name = iap.value("name").toString();
+	QVERIFY(name == iap_id);
+	count++;
+    }
+    QCOMPARE(count, iaps.size()-extras);
+}
+
+void Ut_IAPConf::allForEmptyConfReturnsEmptyList()
+{
+    // Clear everything in configuration
+    mSubject->clearAll();
+
+    // Get all for a list and check that it is empty
+    QStringList iaps;
+    mSubject->getAll(iaps);
+    QVERIFY(iaps.isEmpty());
+}
+
+void Ut_IAPConf::settingInvalidValueUnsetsKey()
+{
+    // Setup some IAP
+    setupIAP();
+
+    // Set invalid value to unset "wlan_wepdefkey" key and verify that the
+    // value is unset
+    mSubject->setValue("wlan_wepdefkey", QVariant());
+    QVERIFY(!mSubject->value("wlan_wepdefkey").isValid());
+}
+
+QTEST_MAIN(Ut_IAPConf)
+
+#include "ut_iapconf.moc"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/3rdparty/libconninet/tests/ut_iapmonitor.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,118 @@
+/*
+  libconninet - Internet Connectivity support library
+
+  Copyright (C) 2009-2010 Nokia Corporation. All rights reserved.
+
+  Contact: Jukka Rissanen <jukka.rissanen@nokia.com>
+
+  This library is free software; you can redistribute it and/or
+  modify it under the terms of the GNU Lesser General Public License
+  version 2.1 as published by the Free Software Foundation.
+
+  This library is distributed in the hope that it will be useful, but
+  WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+  Lesser General Public License for more details.
+
+  You should have received a copy of the GNU Lesser General Public
+  License along with this library; if not, write to the Free Software
+  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+  02110-1301 USA
+*/
+
+
+#include <QtTest/QtTest>
+#include <QDebug>
+
+#include <iapmonitor.h>
+#include <iapconf.h>
+
+static const char *iap_id = "test_monitor_1";
+
+class TestIAPMonitor : public Maemo::IAPMonitor
+{
+public:
+    QString addedIap;
+    QString removedIap;
+    
+protected:
+    virtual void iapAdded(const QString &id)
+    {
+        addedIap = id;
+    }
+
+    virtual void iapRemoved(const QString &id)
+    {
+        removedIap = id;
+    }
+};
+
+class Ut_IAPMonitor : public QObject
+{
+    Q_OBJECT
+
+private Q_SLOTS:
+    void init();
+    void cleanup();
+    void initTestCase();
+    void cleanupTestCase();
+
+    void check();
+
+private:
+    TestIAPMonitor *mon;
+    Maemo::IAPConf *iap;
+};
+
+void Ut_IAPMonitor::init()
+{
+    mon = new TestIAPMonitor;
+}
+
+void Ut_IAPMonitor::cleanup()
+{
+    delete mon;
+    mon = 0;
+}
+
+void Ut_IAPMonitor::initTestCase()
+{
+} 
+
+void Ut_IAPMonitor::cleanupTestCase()
+{
+}
+
+void Ut_IAPMonitor::check()
+{
+    QVERIFY(mon->addedIap.isEmpty());
+
+    iap = new Maemo::IAPConf(iap_id);
+    iap->set("ipv4_type", "AUTO",
+	    "wlan_wepkey1", "connt",
+	    "wlan_wepdefkey", 1,
+	    "wlan_ssid", QByteArray(iap_id));
+    
+    QCoreApplication::processEvents(QEventLoop::AllEvents, 1000);
+    QVERIFY(mon->addedIap == iap_id);
+    mon->addedIap.clear();
+
+    QVERIFY(mon->removedIap.isEmpty());
+
+    // Unset only one value and verify that IAP is not removed
+    iap->set("ipv4_type", QVariant());
+    QCoreApplication::processEvents(QEventLoop::AllEvents, 1000);
+    QVERIFY(mon->removedIap.isEmpty());
+
+    // Clear the whole IAP and check that it is removed
+    iap->clear();
+    delete iap;
+
+    QCoreApplication::processEvents(QEventLoop::AllEvents, 1000);
+
+    QVERIFY(mon->removedIap == iap_id);
+}
+
+QTEST_MAIN(Ut_IAPMonitor)
+
+#include "ut_iapmonitor.moc"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/3rdparty/libconninet/tests/ut_maemo_icd.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,274 @@
+/*
+ * Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ *
+ * Contact: Jukka Rissanen <jukka.rissanen@nokia.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public License
+ * version 2.1 as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA
+ */
+
+
+// !!!!
+// !!!! NOTE: THESE TEST DO NOT REALLY WORK YET BECAUSE OF MISSING
+// !!!!       FUNCTIONALITY IN ICD2 STUB. YOU HAVE BEEN WARNED.
+// !!!!
+
+
+#include <QtTest/QtTest>
+#include <QCoreApplication>
+#include <QEventLoop>
+#include <QDebug>
+#include <icd/dbus_api.h>
+
+#include "maemo_icd.h"
+
+class Ut_MaemoIcd : public QObject
+{
+    Q_OBJECT
+
+private Q_SLOTS:
+    void init();
+    void cleanup();
+    void initTestCase();
+    void cleanupTestCase();
+
+    void scan_req();
+    void scan_cancel_req();
+    void connect_req_default();
+    void state_req_all();
+    void state_req();
+    void statistics_req_all();
+    void statistics_req();
+    void addrinfo_req_all();
+    void addrinfo_req();
+
+private:
+    void disconnect_req_default(); // this is currently not run
+    void connect_req_specific();   // this is currently not run
+    QProcess *icd_stub;
+    bool connect_iap(Maemo::IcdConnectResult &connect_result,
+		     QString &result,
+		     QString &error,
+		     QString iap=QString());
+};
+
+
+QString create_error_str(Maemo::Icd &icd)
+{
+    return icd.error();
+}
+
+
+void Ut_MaemoIcd::init()
+{
+    icd_stub = new QProcess(this);
+    icd_stub->setStandardOutputFile("/tmp/ut_maemo_icd.log");
+    icd_stub->start("/usr/bin/icd2_stub.py");
+    QTest::qWait(1000);
+
+    // Set the statistics
+    QProcess dbus_send;
+    dbus_send.start("dbus-send --type=method_call --system "
+		    "--dest=com.nokia.icd2 /com/nokia/icd2 "
+		    "com.nokia.icd2.testing.set_statistics "
+		    "uint32:1024 uint32:256");
+    dbus_send.waitForFinished();
+
+}
+
+void Ut_MaemoIcd::cleanup()
+{
+    icd_stub->terminate();
+    icd_stub->waitForFinished();
+}
+
+void Ut_MaemoIcd::initTestCase()
+{
+} 
+
+void Ut_MaemoIcd::cleanupTestCase()
+{
+}
+
+void Ut_MaemoIcd::scan_req()
+{    
+    QList<Maemo::IcdScanResult> scanned;
+    QStringList scannedNetworkTypes;
+    QStringList networkTypesToScan;
+    QString error;
+    Maemo::Icd icd(ICD_SHORT_SCAN_TIMEOUT);
+
+    scannedNetworkTypes = icd.scan(ICD_SCAN_REQUEST_ACTIVE,
+				   networkTypesToScan,
+				   scanned,
+				   error);
+    QVERIFY(error.isEmpty());
+    QCOMPARE(scanned.size(), 3);
+    QVERIFY(scannedNetworkTypes[0] == "WLAN_INFRA");
+    QVERIFY(scannedNetworkTypes[1] == "DUN_GSM_PS");
+}
+
+void Ut_MaemoIcd::scan_cancel_req()
+{
+    Maemo::Icd icd;
+    icd.scanCancel();
+    // Not much to verify here
+}
+
+bool Ut_MaemoIcd::connect_iap(Maemo::IcdConnectResult &connect_result,
+			      QString &result,
+			      QString &error,
+			      QString iap)
+{
+    icd_connection_flags flags = ICD_CONNECTION_FLAG_USER_EVENT;
+    bool st;
+    Maemo::Icd icd(ICD_SHORT_CONNECT_TIMEOUT);
+
+    if (iap.isEmpty()) {
+      qDebug() << "connecting to default IAP";
+      st = icd.connect(flags, connect_result);
+    } else {
+      qDebug() << "connecting to" << iap;
+      st = icd.connect(flags, iap, result);
+    }
+
+    error = create_error_str(icd);
+    return st;
+}
+
+void Ut_MaemoIcd::connect_req_default()
+{
+    Maemo::IcdConnectResult connect_result;
+    QString result, error;
+    bool st;
+    st = connect_iap(connect_result, result, error);
+    QVERIFY2(st, error.toAscii().data());
+    result = connect_result.connect.network_id.data();
+    qDebug() << result;
+}
+
+
+void Ut_MaemoIcd::disconnect_req_default()
+{
+    icd_connection_flags flags = ICD_CONNECTION_FLAG_USER_EVENT;
+    bool st;
+    Maemo::Icd icd(ICD_SHORT_CONNECT_TIMEOUT);
+    icd.disconnect(flags);
+}
+
+
+void Ut_MaemoIcd::connect_req_specific()
+{
+    Maemo::IcdConnectResult connect_result;
+    QString result;
+    QString error;
+    bool st;
+    st = connect_iap(connect_result, result, error, "wpa2gx2.osso.net");
+    QVERIFY2(st, error.toAscii().data());
+    qDebug() << result;
+}
+
+
+void Ut_MaemoIcd::state_req_all()
+{
+    QList<Maemo::IcdStateResult> state_results;
+    Maemo::Icd icd;
+    int sig;
+    sig = icd.state(state_results);
+    QVERIFY2(sig==1, create_error_str(icd).toAscii().data());
+}
+
+
+void Ut_MaemoIcd::state_req()
+{
+    Maemo::IcdStateResult state_result;
+    Maemo::Icd icd;
+    int sig;
+    QString service_type, service_id;
+    QString network_type("WLAN_INFRA");
+    QByteArray network_id("wpa2gx2.osso.net");
+    sig = icd.state(service_type, 0, service_id,
+		    network_type, (uint)0x17a1, network_id,
+		    state_result);
+    QVERIFY2(sig==1, create_error_str(icd).toAscii().data());
+}
+
+
+void Ut_MaemoIcd::statistics_req_all()
+{
+    QList<Maemo::IcdStatisticsResult> stats_results;
+    Maemo::Icd icd;
+    int sig;
+    QString err;
+    sig = icd.statistics(stats_results);
+    err = create_error_str(icd);
+    if (!err.isEmpty())
+      QVERIFY2(sig==1, err.toAscii().data());
+    else
+      QCOMPARE(sig, 1);
+
+    for(int i=0; i<sig; i++) {
+        QVERIFY(stats_results[i].bytes_received == 1024);
+        QVERIFY(stats_results[i].bytes_sent == 256);
+    }
+}
+
+
+// Can be uncommented when needed function is enabled in Icd class
+void Ut_MaemoIcd::statistics_req()
+{
+    Maemo::IcdStatisticsResult stats_result;
+    Maemo::Icd icd;
+    int sig;
+    QString service_type, service_id;
+    QString network_type("WLAN_INFRA");
+    QByteArray network_id("wpa2gx2.osso.net");
+    sig = icd.statistics(service_type, 0, service_id,
+			 network_type, (uint)0x17a1, network_id,
+			 stats_result);
+    QVERIFY2(sig==1, create_error_str(icd).toAscii().data());
+    QVERIFY(stats_result.bytes_received == 1024);
+    QVERIFY(stats_result.bytes_sent == 256);
+}
+
+
+void Ut_MaemoIcd::addrinfo_req_all()
+{
+    QList<Maemo::IcdAddressInfoResult> addr_results;
+    Maemo::Icd icd;
+    int sig;
+    sig = icd.addrinfo(addr_results);
+    QVERIFY2(sig==1, create_error_str(icd).toAscii().data());
+}
+
+
+void Ut_MaemoIcd::addrinfo_req()
+{
+    Maemo::IcdAddressInfoResult addr_result;
+    Maemo::Icd icd;
+    int sig;
+    QString service_type, service_id;
+    QString network_type("WLAN_INFRA");
+    QByteArray network_id("wpa2gx2.osso.net");
+    sig = icd.addrinfo(service_type, 0, service_id,
+			 network_type, (uint)0x17a1, network_id,
+			 addr_result);
+    QVERIFY2(sig==1, create_error_str(icd).toAscii().data());
+}
+
+
+QTEST_MAIN(Ut_MaemoIcd)
+
+#include "ut_maemo_icd.moc"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/3rdparty/libconninet/tests/ut_proxyconf.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,400 @@
+/*
+  libconninet - Internet Connectivity support library
+
+  Copyright (C) 2010 Nokia Corporation. All rights reserved.
+
+  Contact: Jukka Rissanen <jukka.rissanen@nokia.com>
+
+  This library is free software; you can redistribute it and/or
+  modify it under the terms of the GNU Lesser General Public License
+  version 2.1 as published by the Free Software Foundation.
+
+  This library is distributed in the hope that it will be useful, but
+  WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+  Lesser General Public License for more details.
+
+  You should have received a copy of the GNU Lesser General Public
+  License along with this library; if not, write to the Free Software
+  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+  02110-1301 USA
+*/
+
+
+#include <QtTest/QtTest>
+#include <QDebug>
+#include <QNetworkProxy>
+#include <conn_settings.h>
+
+#include "../src/proxyconf.h"
+
+class Ut_ProxyConf : public QObject
+{
+    Q_OBJECT
+
+private Q_SLOTS:
+    void init();
+    void cleanup();
+    void initTestCase();
+    void cleanupTestCase();
+
+    // tests without the factory
+    void proxy_ftp_no_factory_ok_auto();
+    void proxy_ftp_no_factory_ok_manual();
+    void proxy_http_no_factory_ok_manual();
+    void proxy_https_no_factory_ok_manual();
+    void proxy_socks_no_factory_ok_manual();
+    void proxy_default_no_factory_ok_manual();
+
+    // tests using the factory
+    void proxy_ftp_factory_ok_auto();
+    void proxy_ftp_factory_ok_manual();
+    void proxy_http_factory_ok_manual();
+    void proxy_https_factory_ok_manual();
+    void proxy_socks_factory_ok_manual();
+    void proxy_http_factory_ok_manual_clear();
+    void proxy_default_factory_ok_manual();
+    void proxy_http_factory_ok_manual_ignore_list();
+    void proxy_default_factory_ok_manual_system();
+
+private:
+    Maemo::ProxyConf *pc;
+};
+
+
+void put(QString var, QString type, QString value)
+{
+    QProcess gconf;
+    if (value.isEmpty())
+        gconf.start(QString("gconftool-2 -u /system/proxy/"+var));
+    else
+        gconf.start(QString("gconftool-2 -s /system/proxy/"+var+" -t "+type+" "+value));
+    gconf.waitForFinished();
+}
+
+void put_http(QString var, QString type, QString value)
+{
+    QProcess gconf;
+    if (value.isEmpty())
+        gconf.start(QString("gconftool-2 -u /system/http_proxy/"+var));
+    else
+        gconf.start(QString("gconftool-2 -s /system/http_proxy/"+var+" -t "+type+" "+value));
+    gconf.waitForFinished();
+}
+
+void put_list(QString var, QString type, QList<QString> value)
+{
+    QProcess gconf;
+    QString values = "[";
+    foreach (QString str, value)
+        values = values + str + ",";
+    values.chop(1);
+    values = values + "]";
+
+    gconf.start(QString("gconftool-2 -s /system/http_proxy/"+var+" -t list --list-type="+type+" "+values));
+    gconf.waitForFinished();
+}
+
+
+void Ut_ProxyConf::init()
+{
+    put_http("host", "string", "my.proxy.com");
+    put_http("port", "int", "8080");
+
+    QList<QString> list;
+    list.append("foo.bar.com");
+    list.append("192.168.19.69");
+    list.append("192.168.20.0/24");
+    list.append("bar.foo.com");
+    put_list("ignore_hosts", "string", list);
+    put_http("use_http_host", "boolean", "true");
+
+    put("mode", "string", "auto");
+    put("autoconfig_url", "string", "http://foo.bar.com/autoconf");
+    put("secure_host", "string", "secure_host.com");
+    put("secure_port", "int", "112");
+
+    put("ftp_host", "string", "ftp.nuukia.com");
+    put("ftp_port", "int", "2000");
+    put("socks_host", "string", "socks.host.com");
+    put("socks_port", "int", "10080");
+    put("rtsp_host", "string", "rtsp.voice.com");
+    put("rtsp_port", "int", "1554");
+
+    pc = new Maemo::ProxyConf();
+}
+
+void Ut_ProxyConf::cleanup()
+{
+    delete pc;
+    pc = 0;
+}
+
+void Ut_ProxyConf::initTestCase()
+{
+} 
+
+void Ut_ProxyConf::cleanupTestCase()
+{
+}
+
+
+void Ut_ProxyConf::proxy_ftp_no_factory_ok_auto()
+{
+    QList<QNetworkProxy> nplist;
+    QNetworkProxyQuery query = QNetworkProxyQuery(QUrl("ftp://maps.google.com/"));
+
+    nplist = pc->flush(query);
+    QVERIFY(nplist.length()==0);
+}
+
+
+void Ut_ProxyConf::proxy_ftp_no_factory_ok_manual()
+{
+    QList<QNetworkProxy> nplist;
+    QNetworkProxyQuery query = QNetworkProxyQuery(QUrl("ftp://maps.google.com/"));
+
+    put("mode", "string", "manual");
+
+    nplist = pc->flush(query);
+    foreach (QNetworkProxy proxy, nplist) {
+      qDebug() << "proxy: " << proxy.hostName() << "port" << proxy.port();
+    }
+    QVERIFY(nplist.length()==3);
+    QVERIFY(nplist.first().type() == QNetworkProxy::FtpCachingProxy);
+}
+
+
+void Ut_ProxyConf::proxy_http_no_factory_ok_manual()
+{
+    QList<QNetworkProxy> nplist;
+    QNetworkProxyQuery query = QNetworkProxyQuery(QUrl("http://maps.google.com/"));
+
+    put("mode", "string", "manual");
+
+    nplist = pc->flush(query);
+    foreach (QNetworkProxy proxy, nplist) {
+      qDebug() << "proxy: " << proxy.hostName() << "port" << proxy.port();
+    }
+    QVERIFY(nplist.length()==3);
+    QVERIFY(nplist.first().type() == QNetworkProxy::HttpProxy);
+}
+
+
+void Ut_ProxyConf::proxy_https_no_factory_ok_manual()
+{
+    QList<QNetworkProxy> nplist;
+    QNetworkProxyQuery query = QNetworkProxyQuery(QUrl("https://maps.google.com/"));
+
+    put("mode", "string", "manual");
+
+    nplist = pc->flush(query);
+    foreach (QNetworkProxy proxy, nplist) {
+      qDebug() << "proxy: " << proxy.hostName() << "port" << proxy.port();
+    }
+    QVERIFY(nplist.length()==2);
+    QVERIFY(nplist.first().type() == QNetworkProxy::HttpProxy);
+}
+
+
+void Ut_ProxyConf::proxy_socks_no_factory_ok_manual()
+{
+    QList<QNetworkProxy> nplist;
+    QNetworkProxyQuery query = QNetworkProxyQuery(QUrl("http://maps.google.com/"));
+
+    put("mode", "string", "manual");
+    put_http("host", "string", "");
+
+    nplist = pc->flush(query);
+    foreach (QNetworkProxy proxy, nplist) {
+      qDebug() << "proxy: " << proxy.hostName() << "port" << proxy.port();
+    }
+    QVERIFY(nplist.length()==2);
+    QVERIFY(nplist.first().type() == QNetworkProxy::Socks5Proxy);
+}
+
+
+void Ut_ProxyConf::proxy_default_no_factory_ok_manual()
+{
+    QList<QNetworkProxy> nplist;
+    QNetworkProxyQuery query = QNetworkProxyQuery(QUrl("foobar://maps.google.com/"));
+
+    put("mode", "string", "manual");
+    put("socks_host", "string", "");
+    put("secure_host", "string", "");
+
+    nplist = pc->flush(query);
+    foreach (QNetworkProxy proxy, nplist) {
+      qDebug() << "proxy: " << proxy.hostName() << "port" << proxy.port();
+    }
+    QVERIFY(nplist.length()==0);
+}
+
+
+void Ut_ProxyConf::proxy_ftp_factory_ok_auto()
+{
+    QNetworkProxyQuery query = QNetworkProxyQuery(QUrl("ftp://maps.google.com/"));
+    Maemo::ProxyConf::update();
+    QList<QNetworkProxy> listOfProxies = QNetworkProxyFactory::proxyForQuery(query);
+    QVERIFY(listOfProxies.length()==1);
+    QVERIFY(listOfProxies.first().type() == QNetworkProxy::NoProxy);
+    Maemo::ProxyConf::clear();
+}
+
+
+void Ut_ProxyConf::proxy_ftp_factory_ok_manual()
+{
+    QNetworkProxyQuery query = QNetworkProxyQuery(QUrl("ftp://maps.google.com/"));
+    Maemo::ProxyConf::update();
+
+    put("mode", "string", "manual");
+
+    QList<QNetworkProxy> listOfProxies = QNetworkProxyFactory::proxyForQuery(query);
+
+    foreach (QNetworkProxy proxy, listOfProxies) {
+      qDebug() << "proxy: " << proxy.hostName() << "port" << proxy.port();
+    }
+    QVERIFY(listOfProxies.length()==3);
+    QVERIFY(listOfProxies.first().type() == QNetworkProxy::FtpCachingProxy);
+    Maemo::ProxyConf::clear();
+}
+
+
+void Ut_ProxyConf::proxy_http_factory_ok_manual()
+{
+    QNetworkProxyQuery query = QNetworkProxyQuery(QUrl("http://maps.google.com/"));
+    Maemo::ProxyConf::update();
+
+    put("mode", "string", "manual");
+
+    QList<QNetworkProxy> listOfProxies = QNetworkProxyFactory::proxyForQuery(query);
+
+    foreach (QNetworkProxy proxy, listOfProxies) {
+      qDebug() << "proxy: " << proxy.hostName() << "port" << proxy.port();
+    }
+    QVERIFY(listOfProxies.length()==3);
+    QVERIFY(listOfProxies.first().type() == QNetworkProxy::HttpProxy);
+    Maemo::ProxyConf::clear();
+}
+
+
+void Ut_ProxyConf::proxy_https_factory_ok_manual()
+{
+    QNetworkProxyQuery query = QNetworkProxyQuery(QUrl("https://maps.google.com/"));
+    Maemo::ProxyConf::update();
+
+    put("mode", "string", "manual");
+
+    QList<QNetworkProxy> listOfProxies = QNetworkProxyFactory::proxyForQuery(query);
+
+    foreach (QNetworkProxy proxy, listOfProxies) {
+      qDebug() << "proxy: " << proxy.hostName() << "port" << proxy.port();
+    }
+    QVERIFY(listOfProxies.length()==2);
+    QVERIFY(listOfProxies.first().type() == QNetworkProxy::HttpProxy);
+    Maemo::ProxyConf::clear();
+}
+
+
+void Ut_ProxyConf::proxy_socks_factory_ok_manual()
+{
+    QNetworkProxyQuery query = QNetworkProxyQuery(QUrl("http://maps.google.com/"));
+    Maemo::ProxyConf::update();
+
+    put("mode", "string", "manual");
+    put_http("host", "string", "");
+
+    QList<QNetworkProxy> listOfProxies = QNetworkProxyFactory::proxyForQuery(query);
+
+    foreach (QNetworkProxy proxy, listOfProxies) {
+      qDebug() << "proxy: " << proxy.hostName() << "port" << proxy.port();
+    }
+    QVERIFY(listOfProxies.length()==2);
+    QVERIFY(listOfProxies.first().type() == QNetworkProxy::Socks5Proxy);
+    Maemo::ProxyConf::clear();
+}
+
+
+void Ut_ProxyConf::proxy_http_factory_ok_manual_clear()
+{
+    QNetworkProxyQuery query = QNetworkProxyQuery(QUrl("http://maps.google.com/"));
+    Maemo::ProxyConf::update();
+
+    put("mode", "string", "manual");
+    put_http("host", "string", "192.168.1.1");
+
+    QList<QNetworkProxy> listOfProxies = QNetworkProxyFactory::proxyForQuery(query);
+
+    foreach (QNetworkProxy proxy, listOfProxies) {
+      qDebug() << "proxy: " << proxy.hostName() << "port" << proxy.port();
+    }
+    QVERIFY(listOfProxies.length()==3);
+    QVERIFY(listOfProxies.first().type() == QNetworkProxy::HttpProxy);
+
+    Maemo::ProxyConf::clear();
+    listOfProxies = QNetworkProxyFactory::proxyForQuery(query);
+    QVERIFY(listOfProxies.length()==1);
+    QVERIFY(listOfProxies.first().type() == QNetworkProxy::NoProxy);
+}
+
+
+void Ut_ProxyConf::proxy_default_factory_ok_manual()
+{
+    QNetworkProxyQuery query = QNetworkProxyQuery(QUrl("foobar://maps.google.com/"));
+    Maemo::ProxyConf::update();
+
+    put("mode", "string", "manual");
+    put("socks_host", "string", "");
+    put("secure_host", "string", "");
+
+    QList<QNetworkProxy> listOfProxies = QNetworkProxyFactory::proxyForQuery(query);
+
+    QVERIFY(listOfProxies.length()==1);
+    QVERIFY(listOfProxies.first().type() == QNetworkProxy::NoProxy);
+    Maemo::ProxyConf::clear();
+}
+
+
+void Ut_ProxyConf::proxy_http_factory_ok_manual_ignore_list()
+{
+    QNetworkProxyQuery query = QNetworkProxyQuery(QUrl("http://192.168.19.70/"));
+    Maemo::ProxyConf::update();
+
+    put("mode", "string", "manual");
+
+    QList<QNetworkProxy> listOfProxies = QNetworkProxyFactory::proxyForQuery(query);
+
+    foreach (QNetworkProxy proxy, listOfProxies) {
+      qDebug() << "proxy: " << proxy.hostName() << "port" << proxy.port();
+    }
+    QVERIFY(listOfProxies.length()==3);
+    QVERIFY(listOfProxies.first().type() == QNetworkProxy::HttpProxy);
+
+    query = QNetworkProxyQuery(QUrl("http://192.168.20.10/"));
+    listOfProxies = QNetworkProxyFactory::proxyForQuery(query);
+    QVERIFY(listOfProxies.length()==1);
+    QVERIFY(listOfProxies.first().type() == QNetworkProxy::NoProxy);
+    Maemo::ProxyConf::clear();
+}
+
+
+void Ut_ProxyConf::proxy_default_factory_ok_manual_system()
+{
+    QNetworkProxyQuery query = QNetworkProxyQuery(QUrl("http://maps.google.com/"));
+    Maemo::ProxyConf::update();
+
+    put("mode", "string", "manual");
+
+    QList<QNetworkProxy> listOfProxies = QNetworkProxyFactory::systemProxyForQuery(query);
+
+    QVERIFY(listOfProxies.length()==1);
+    QVERIFY(listOfProxies.first().type() == QNetworkProxy::NoProxy);
+    Maemo::ProxyConf::clear();
+}
+
+
+
+
+QTEST_MAIN(Ut_ProxyConf)
+
+#include "ut_proxyconf.moc"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/3rdparty/libgq.pri	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,9 @@
+INCLUDEPATH += $$PWD/libgq/gconf
+
+HEADERS += \
+    $$PWD/libgq/gconf/gconfitem.h \
+    $$PWD/libgq/gconf/GConfItem
+
+SOURCES += \
+    $$PWD/libgq/gconf/gconfitem.cpp
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/3rdparty/libgq/.gitignore	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,37 @@
+/Makefile.in
+/aclocal.m4
+/autom4te.cache/
+/config.guess
+/config.sub
+/configure
+/depcomp
+/gconf/Makefile.in
+/install-sh
+/ltmain.sh
+/missing
+/Makefile
+/config.log
+/config.status
+/gconf/.deps/
+/gconf/Makefile
+/libtool
+/confdefs.h
+/gconf/.libs/
+/gconf/libgq-gconf.la
+/gconf/gq-gconf.pc
+/gconf/moc_gconfitem_h.cpp
+/gconf/mocs.cpp
+/gconf/test-gconf
+/gconf/gconfitem_moc.cpp
+/gconf/test-gconf_moc.cpp
+/libgq-*.tar.gz
+/debian/libgq-gconf-dev/
+/debian/libgq-gconf0/
+/debian/tmp/
+/debian/libgq-gconf0-dbg/
+/debian/libgq-gconf-doc/
+/debian/*.debhelper.log
+/debian/*.substvars
+/debian/files
+/debian/*.debhelper
+/gconf/html/
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/3rdparty/libgq/Makefile.am	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,4 @@
+SUBDIRS = gconf
+
+dist-hook:
+	rm -rf `find $(distdir) -name '*_moc.cpp'`
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/3rdparty/libgq/README	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,6 @@
+This is libgq, a set of small libraries with Q wrappers for G things.
+
+* GConf
+
+The libgq-gconf library contains the GConfItem class for accessing
+GConf.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/3rdparty/libgq/autogen.sh	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,2 @@
+#! /bin/sh
+autoreconf --install --force -v
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/3rdparty/libgq/configure.ac	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,23 @@
+AC_INIT([libgq],[0.2],[marius.vollmer@nokia.com],[libgq])
+AC_CONFIG_SRCDIR([Makefile.am])
+AM_INIT_AUTOMAKE([-Wall -Werror tar-ustar foreign])
+
+AC_PROG_CXX
+AC_PROG_LIBTOOL
+
+PKG_CHECK_MODULES([QT],    [QtCore])
+PKG_CHECK_MODULES([QTEST], [QtTest])
+PKG_CHECK_MODULES([GLIB],  [glib-2.0])
+PKG_CHECK_MODULES([GCONF], [gconf-2.0])
+
+MOC=`pkg-config QtCore --variable=moc_location`
+RCC=`pkg-config QtCore --variable=exec_prefix`/bin/rcc
+
+AC_SUBST([MOC])
+AC_SUBST([RCC])
+
+AC_CONFIG_FILES([Makefile
+                 gconf/Makefile
+                 gconf/gq-gconf.pc])
+
+AC_OUTPUT
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/3rdparty/libgq/debian/README.scratchbox	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,28 @@
+This packages behaves a bit wierdly inside Scratchbox 1, by design.
+
+When building it with dpkg-buildpackage or equivalent, it will disable
+all devkits and adjust PATH.  This means that almost all build
+dependencies will come from your installed packages, and not from
+Scratchbox or the configured devkits.
+
+Since some of our packages do not work with Scratchboxes fakeroot
+(because the latter is too old), you should use the targets fakeroot
+instead.
+
+You can disable this behavior by setting SBOX_DONT_SANITIZE in the
+environment.
+
+When this package is build in a certain buildbot, it will go further
+and permantly change the Scratchbox target.  This should not happen to
+anyone but the buildbot, but there is a chance it will happen to you
+by accident.
+
+The buildbot is recognized via the $USER environment variable.  If it
+matches "bifh[0-9]", the permanent changes will be done.
+
+The permanent changes mostly consist of running apt-get dist-upgrade
+and making sure that the targets fakeroot is used.
+
+This weirdness is brought to you by:
+
+    http://maemo.gitorious.org/maemo-af/maemoify-tools
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/3rdparty/libgq/debian/changelog	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,31 @@
+libgq (0.4+0m6) unstable; urgency=low
+
+  * This entry has been added by BIFH queue processor
+    version has been changed to 0.4+0m6
+
+ -- Marius Vollmer <marius.vollmer@nokia.com>  Fri, 04 Jun 2010 18:28:43 +0300
+
+libgq (0.4) unstable; urgency=low
+
+  * Never release the GConf client, to avoid having to recreate it
+    immediately.  Might fix NB#164690.
+
+ -- Marius Vollmer <marius.vollmer@nokia.com>  Fri, 04 Jun 2010 18:10:50 +0300
+
+libgq (0.3) unstable; urgency=low
+
+  * Added autotools to Build-Depends.
+
+ -- Marius Vollmer <marius.vollmer@nokia.com>  Tue, 23 Feb 2010 12:04:45 +0200
+
+libgq (0.2) unstable; urgency=low
+
+  * Build fixes.
+
+ -- Marius Vollmer <marius.vollmer@nokia.com>  Wed, 16 Dec 2009 15:56:05 +0200
+
+libgq (0.1) unstable; urgency=low
+
+  * Initial release.
+
+ -- Marius Vollmer <marius.vollmer@nokia.com>  Wed, 16 Dec 2009 15:54:46 +0200
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/3rdparty/libgq/debian/compat	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,1 @@
+7
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/3rdparty/libgq/debian/control	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,43 @@
+Source: libgq
+Section: libs
+Priority: extra
+Maintainer: Marius Vollmer <marius.vollmer@nokia.com>
+Origin: maemo
+Build-Depends: debhelper (>= 7), libqt4-dev, doxygen, libgconf2-dev, libglib2.0-dev, autoconf, automake, libtool
+Vcs-Browser: http://gitorious.org/maemo-af/libgq
+Vcs-Git: git@gitorious.org:maemo-af/libgq.git
+
+Package: libgq-gconf0
+Architecture: any
+Depends: ${shlibs:Depends}
+Description: a Qt wrapper for GConf
+ This library contains the GConfItem class, for easy
+ access to GConf from Qt programs.
+ .
+ This package contains the shared run-time library.
+
+Package: libgq-gconf0-dbg
+Architecture: any
+Depends: libgq-gconf0 (= ${source:Version})
+Description: a Qt wrapper for GConf
+ This library contains the GConfItem class, for easy
+ access to GConf from Qt programs.
+ .
+ This package contains the debugging symbols.
+
+Package: libgq-gconf-dev
+Architecture: any
+Depends: libgq-gconf0 (= ${source:Version}), libqt4-dev, libgconf2-dev
+Description: a Qt wrapper for GConf
+ This library contains the GConfItem class, for easy
+ access to GConf from Qt programs.
+ .
+ This package contains the development files.
+
+Package: libgq-gconf-doc
+Architecture: all
+Description: a Qt wrapper for GConf
+ This library contains the GConfItem class, for easy
+ access to GConf from Qt programs.
+ .
+ This package contains the documentation.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/3rdparty/libgq/debian/copyright	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,8 @@
+Copyright (c) 2009 Nokia Corporation.
+
+This program, is free software; you can redistribute it and/or modify
+it under the terms of the GNU Lesser General Public License version
+2.1 as published by the Free Software Foundation.
+
+The full text of the LGPL 2.1 can be found in
+/usr/share/common-licenses.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/3rdparty/libgq/debian/fixup-scratchbox	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,79 @@
+#! /bin/sh
+
+# XXX - this needs to run under fakeroot...
+
+exec 3>&1 1>&2
+
+real_dpkg_checkbuilddeps () {
+  SBOX_REDIRECT_IGNORE=/usr/bin/perl /usr/bin/perl /usr/bin/dpkg-checkbuilddeps "$@"
+}
+
+finish () {
+  if ! real_dpkg_checkbuilddeps; then
+    echo "This package does not use any devkits."
+    echo "Please install all build dependencies as real packages."
+    echo >&3 FAIL
+  fi
+  exit 0
+}
+
+# The stamp file can not be in the source tree because then it would
+# end up in the source package, which is not what we want.  We put it
+# into /var/tmp so that it gets deleted when a new rootstrap is
+# extracted.
+
+STAMP=/var/tmp/SANITIZED.$(head debian/changelog | md5sum | cut -d' ' -f1)
+
+if [ -e $STAMP ]; then
+  exit 0;
+fi
+
+# Only do permanent changes if this is BIFH
+
+echo "$USER" | grep -q 'bifh[0-9]' || finish
+
+# prevent bash from killing the system
+rm -f /var/lib/bash/provide-sh
+
+# clean ~/.texmf-var to avoid trouble with stale things hiding there.
+rm -rf ~/.texmf-var/
+
+pfx="dpkg-checkbuilddeps: Unmet build dependencies:"
+deps=`real_dpkg_checkbuilddeps 2>&1 | grep "^$pfx" | \
+      sed -e "s/$pfx//" -e s'/([^)]*)//g' -e 's/|//'`
+deps="$deps build-essential automake autoconf libtool ed gawk diff dpkg-dev"
+for d in $deps; do
+  echo apt-get "$@" install $d
+  apt-get -o DPkg::Options::=--force-confold -q --force-yes --yes install $d
+done
+apt-get -o DPkg::Options::=--force-confold -q --force-yes --yes dist-upgrade
+
+# Make sure we get a fresh fakeroot installation
+
+# We can't seem to control the value of LD_PRELOAD well enough, so we
+# just copy the good version of libfakeroot over the bad one that
+# Scratchbox uses.  This will result in a good version of libfakeroot
+# talking to a bad version of faked, but that seems to work well
+# enough.  The protocol between the two is really simple and unlikely
+# to change even when new syscalls are wrapped.  And this is a
+# desperate hack anyway, so it's OK if there is blood all over the
+# floor from time to time.
+#
+# After we have overwritten libfakeroot, it no longer works with any
+# host binaries, such as the ones in /scratchbox/compilers/bin or
+# /scratchbox/tools/bin.  Thus, we must avoid running those when
+# fakerooted.
+#
+# We use "cp -l" here to avoid overwriting a library that is in use.
+#
+if [ "$(fakeroot -v)" = "fakeroot version 1.4.2" ]; then
+  apt-get -q --force-yes --yes --reinstall install fakeroot
+  cp -fl /usr/lib/libfakeroot/libfakeroot-sysv.so /usr/lib/libfakeroot-sysv/libfakeroot.so.0
+  cp -fl /usr/lib/libfakeroot/libfakeroot-tcp.so /usr/lib/libfakeroot-tcp/libfakeroot.so.0
+else
+  echo "We have $(fakeroot -v), hurray!"
+fi
+
+touch $STAMP
+
+finish
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/3rdparty/libgq/debian/libgq-gconf-dev.install	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,5 @@
+usr/include/gq/GConfItem
+usr/include/gq/gconfitem.h
+usr/lib/libgq-gconf.so
+usr/lib/libgq-gconf.a
+usr/lib/pkgconfig/gq-gconf.pc
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/3rdparty/libgq/debian/libgq-gconf-doc.install	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,1 @@
+gconf/html usr/share/doc/libgq-gconf-doc/
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/3rdparty/libgq/debian/libgq-gconf0.install	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,1 @@
+usr/lib/libgq-gconf.so.*
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/3rdparty/libgq/debian/rules	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,32 @@
+#! /usr/bin/make -f
+
+# Sanitize build environment when running inside Scratchbox 1
+ifneq (,$(wildcard /targets))
+   ifeq (,$(SBOX_DONT_SANITIZE))
+     export PATH:=/bin:/usr/bin
+     export MAKE:=make
+     ifeq (,$(FAKEROOTKEY))
+       export SBOX_REDIRECT_TO_DIRS:=/scratchbox/compilers/bin
+     else
+       export SBOX_REDIRECT_TO_DIRS:=
+     endif
+     ifneq (,$(shell debian/fixup-scratchbox))
+        $(error Error)
+     endif
+  endif
+endif
+
+override_dh_auto_configure:
+	./autogen.sh
+	dh_auto_configure
+
+override_dh_auto_build:
+	dh_auto_build
+	cd gconf && doxygen
+
+override_dh_strip:
+	dh_strip -plibgq-gconf0 --dbg-package=libgq-gconf0-dbg
+	dh_strip
+
+%:
+	dh $@
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/3rdparty/libgq/gconf/Doxyfile	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,1514 @@
+# Doxyfile 1.6.1
+
+# This file describes the settings to be used by the documentation system
+# doxygen (www.doxygen.org) for a project
+#
+# All text after a hash (#) is considered a comment and will be ignored
+# The format is:
+#       TAG = value [value, ...]
+# For lists items can also be appended using:
+#       TAG += value [value, ...]
+# Values that contain spaces should be placed between quotes (" ")
+
+#---------------------------------------------------------------------------
+# Project related configuration options
+#---------------------------------------------------------------------------
+
+# This tag specifies the encoding used for all characters in the config file
+# that follow. The default is UTF-8 which is also the encoding used for all
+# text before the first occurrence of this tag. Doxygen uses libiconv (or the
+# iconv built into libc) for the transcoding. See
+# http://www.gnu.org/software/libiconv for the list of possible encodings.
+
+DOXYFILE_ENCODING      = UTF-8
+
+# The PROJECT_NAME tag is a single word (or a sequence of words surrounded
+# by quotes) that should identify the project.
+
+PROJECT_NAME           = gq-gconf
+
+# The PROJECT_NUMBER tag can be used to enter a project or revision number.
+# This could be handy for archiving the generated documentation or
+# if some version control system is used.
+
+PROJECT_NUMBER         =
+
+# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
+# base path where the generated documentation will be put.
+# If a relative path is entered, it will be relative to the location
+# where doxygen was started. If left blank the current directory will be used.
+
+OUTPUT_DIRECTORY       = 
+
+# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create
+# 4096 sub-directories (in 2 levels) under the output directory of each output
+# format and will distribute the generated files over these directories.
+# Enabling this option can be useful when feeding doxygen a huge amount of
+# source files, where putting all generated files in the same directory would
+# otherwise cause performance problems for the file system.
+
+CREATE_SUBDIRS         = NO
+
+# The OUTPUT_LANGUAGE tag is used to specify the language in which all
+# documentation generated by doxygen is written. Doxygen will use this
+# information to generate all constant output in the proper language.
+# The default language is English, other supported languages are:
+# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional,
+# Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German,
+# Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English
+# messages), Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian,
+# Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrilic, Slovak,
+# Slovene, Spanish, Swedish, Ukrainian, and Vietnamese.
+
+OUTPUT_LANGUAGE        = English
+
+# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will
+# include brief member descriptions after the members that are listed in
+# the file and class documentation (similar to JavaDoc).
+# Set to NO to disable this.
+
+BRIEF_MEMBER_DESC      = YES
+
+# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend
+# the brief description of a member or function before the detailed description.
+# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
+# brief descriptions will be completely suppressed.
+
+REPEAT_BRIEF           = YES
+
+# This tag implements a quasi-intelligent brief description abbreviator
+# that is used to form the text in various listings. Each string
+# in this list, if found as the leading text of the brief description, will be
+# stripped from the text and the result after processing the whole list, is
+# used as the annotated text. Otherwise, the brief description is used as-is.
+# If left blank, the following values are used ("$name" is automatically
+# replaced with the name of the entity): "The $name class" "The $name widget"
+# "The $name file" "is" "provides" "specifies" "contains"
+# "represents" "a" "an" "the"
+
+ABBREVIATE_BRIEF       =
+
+# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
+# Doxygen will generate a detailed section even if there is only a brief
+# description.
+
+ALWAYS_DETAILED_SEC    = NO
+
+# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all
+# inherited members of a class in the documentation of that class as if those
+# members were ordinary class members. Constructors, destructors and assignment
+# operators of the base classes will not be shown.
+
+INLINE_INHERITED_MEMB  = NO
+
+# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full
+# path before files name in the file list and in the header files. If set
+# to NO the shortest path that makes the file name unique will be used.
+
+FULL_PATH_NAMES        = YES
+
+# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag
+# can be used to strip a user-defined part of the path. Stripping is
+# only done if one of the specified strings matches the left-hand part of
+# the path. The tag can be used to show relative paths in the file list.
+# If left blank the directory from which doxygen is run is used as the
+# path to strip.
+
+STRIP_FROM_PATH        =
+
+# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of
+# the path mentioned in the documentation of a class, which tells
+# the reader which header file to include in order to use a class.
+# If left blank only the name of the header file containing the class
+# definition is used. Otherwise one should specify the include paths that
+# are normally passed to the compiler using the -I flag.
+
+STRIP_FROM_INC_PATH    =
+
+# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter
+# (but less readable) file names. This can be useful is your file systems
+# doesn't support long names like on DOS, Mac, or CD-ROM.
+
+SHORT_NAMES            = NO
+
+# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen
+# will interpret the first line (until the first dot) of a JavaDoc-style
+# comment as the brief description. If set to NO, the JavaDoc
+# comments will behave just like regular Qt-style comments
+# (thus requiring an explicit @brief command for a brief description.)
+
+JAVADOC_AUTOBRIEF      = NO
+
+# If the QT_AUTOBRIEF tag is set to YES then Doxygen will
+# interpret the first line (until the first dot) of a Qt-style
+# comment as the brief description. If set to NO, the comments
+# will behave just like regular Qt-style comments (thus requiring
+# an explicit \brief command for a brief description.)
+
+QT_AUTOBRIEF           = NO
+
+# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen
+# treat a multi-line C++ special comment block (i.e. a block of //! or ///
+# comments) as a brief description. This used to be the default behaviour.
+# The new default is to treat a multi-line C++ comment block as a detailed
+# description. Set this tag to YES if you prefer the old behaviour instead.
+
+MULTILINE_CPP_IS_BRIEF = NO
+
+# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented
+# member inherits the documentation from any documented member that it
+# re-implements.
+
+INHERIT_DOCS           = YES
+
+# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce
+# a new page for each member. If set to NO, the documentation of a member will
+# be part of the file/class/namespace that contains it.
+
+SEPARATE_MEMBER_PAGES  = NO
+
+# The TAB_SIZE tag can be used to set the number of spaces in a tab.
+# Doxygen uses this value to replace tabs by spaces in code fragments.
+
+TAB_SIZE               = 8
+
+# This tag can be used to specify a number of aliases that acts
+# as commands in the documentation. An alias has the form "name=value".
+# For example adding "sideeffect=\par Side Effects:\n" will allow you to
+# put the command \sideeffect (or @sideeffect) in the documentation, which
+# will result in a user-defined paragraph with heading "Side Effects:".
+# You can put \n's in the value part of an alias to insert newlines.
+
+ALIASES                =
+
+# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C
+# sources only. Doxygen will then generate output that is more tailored for C.
+# For instance, some of the names that are used will be different. The list
+# of all members will be omitted, etc.
+
+OPTIMIZE_OUTPUT_FOR_C  = NO
+
+# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java
+# sources only. Doxygen will then generate output that is more tailored for
+# Java. For instance, namespaces will be presented as packages, qualified
+# scopes will look different, etc.
+
+OPTIMIZE_OUTPUT_JAVA   = NO
+
+# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran
+# sources only. Doxygen will then generate output that is more tailored for
+# Fortran.
+
+OPTIMIZE_FOR_FORTRAN   = NO
+
+# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL
+# sources. Doxygen will then generate output that is tailored for
+# VHDL.
+
+OPTIMIZE_OUTPUT_VHDL   = NO
+
+# Doxygen selects the parser to use depending on the extension of the files it parses.
+# With this tag you can assign which parser to use for a given extension.
+# Doxygen has a built-in mapping, but you can override or extend it using this tag.
+# The format is ext=language, where ext is a file extension, and language is one of
+# the parsers supported by doxygen: IDL, Java, Javascript, C#, C, C++, D, PHP,
+# Objective-C, Python, Fortran, VHDL, C, C++. For instance to make doxygen treat
+# .inc files as Fortran files (default is PHP), and .f files as C (default is Fortran),
+# use: inc=Fortran f=C. Note that for custom extensions you also need to set FILE_PATTERNS otherwise the files are not read by doxygen.
+
+EXTENSION_MAPPING      =
+
+# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want
+# to include (a tag file for) the STL sources as input, then you should
+# set this tag to YES in order to let doxygen match functions declarations and
+# definitions whose arguments contain STL classes (e.g. func(std::string); v.s.
+# func(std::string) {}). This also make the inheritance and collaboration
+# diagrams that involve STL classes more complete and accurate.
+
+BUILTIN_STL_SUPPORT    = NO
+
+# If you use Microsoft's C++/CLI language, you should set this option to YES to
+# enable parsing support.
+
+CPP_CLI_SUPPORT        = NO
+
+# Set the SIP_SUPPORT tag to YES if your project consists of sip sources only.
+# Doxygen will parse them like normal C++ but will assume all classes use public
+# instead of private inheritance when no explicit protection keyword is present.
+
+SIP_SUPPORT            = NO
+
+# For Microsoft's IDL there are propget and propput attributes to indicate getter
+# and setter methods for a property. Setting this option to YES (the default)
+# will make doxygen to replace the get and set methods by a property in the
+# documentation. This will only work if the methods are indeed getting or
+# setting a simple type. If this is not the case, or you want to show the
+# methods anyway, you should set this option to NO.
+
+IDL_PROPERTY_SUPPORT   = YES
+
+# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
+# tag is set to YES, then doxygen will reuse the documentation of the first
+# member in the group (if any) for the other members of the group. By default
+# all members of a group must be documented explicitly.
+
+DISTRIBUTE_GROUP_DOC   = NO
+
+# Set the SUBGROUPING tag to YES (the default) to allow class member groups of
+# the same type (for instance a group of public functions) to be put as a
+# subgroup of that type (e.g. under the Public Functions section). Set it to
+# NO to prevent subgrouping. Alternatively, this can be done per class using
+# the \nosubgrouping command.
+
+SUBGROUPING            = YES
+
+# When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum
+# is documented as struct, union, or enum with the name of the typedef. So
+# typedef struct TypeS {} TypeT, will appear in the documentation as a struct
+# with name TypeT. When disabled the typedef will appear as a member of a file,
+# namespace, or class. And the struct will be named TypeS. This can typically
+# be useful for C code in case the coding convention dictates that all compound
+# types are typedef'ed and only the typedef is referenced, never the tag name.
+
+TYPEDEF_HIDES_STRUCT   = NO
+
+# The SYMBOL_CACHE_SIZE determines the size of the internal cache use to
+# determine which symbols to keep in memory and which to flush to disk.
+# When the cache is full, less often used symbols will be written to disk.
+# For small to medium size projects (<1000 input files) the default value is
+# probably good enough. For larger projects a too small cache size can cause
+# doxygen to be busy swapping symbols to and from disk most of the time
+# causing a significant performance penality.
+# If the system has enough physical memory increasing the cache will improve the
+# performance by keeping more symbols in memory. Note that the value works on
+# a logarithmic scale so increasing the size by one will rougly double the
+# memory usage. The cache size is given by this formula:
+# 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0,
+# corresponding to a cache size of 2^16 = 65536 symbols
+
+SYMBOL_CACHE_SIZE      = 0
+
+#---------------------------------------------------------------------------
+# Build related configuration options
+#---------------------------------------------------------------------------
+
+# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in
+# documentation are documented, even if no documentation was available.
+# Private class members and static file members will be hidden unless
+# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
+
+EXTRACT_ALL            = NO
+
+# If the EXTRACT_PRIVATE tag is set to YES all private members of a class
+# will be included in the documentation.
+
+EXTRACT_PRIVATE        = NO
+
+# If the EXTRACT_STATIC tag is set to YES all static members of a file
+# will be included in the documentation.
+
+EXTRACT_STATIC         = NO
+
+# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs)
+# defined locally in source files will be included in the documentation.
+# If set to NO only classes defined in header files are included.
+
+EXTRACT_LOCAL_CLASSES  = YES
+
+# This flag is only useful for Objective-C code. When set to YES local
+# methods, which are defined in the implementation section but not in
+# the interface are included in the documentation.
+# If set to NO (the default) only methods in the interface are included.
+
+EXTRACT_LOCAL_METHODS  = NO
+
+# If this flag is set to YES, the members of anonymous namespaces will be
+# extracted and appear in the documentation as a namespace called
+# 'anonymous_namespace{file}', where file will be replaced with the base
+# name of the file that contains the anonymous namespace. By default
+# anonymous namespace are hidden.
+
+EXTRACT_ANON_NSPACES   = NO
+
+# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all
+# undocumented members of documented classes, files or namespaces.
+# If set to NO (the default) these members will be included in the
+# various overviews, but no documentation section is generated.
+# This option has no effect if EXTRACT_ALL is enabled.
+
+HIDE_UNDOC_MEMBERS     = NO
+
+# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all
+# undocumented classes that are normally visible in the class hierarchy.
+# If set to NO (the default) these classes will be included in the various
+# overviews. This option has no effect if EXTRACT_ALL is enabled.
+
+HIDE_UNDOC_CLASSES     = NO
+
+# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all
+# friend (class|struct|union) declarations.
+# If set to NO (the default) these declarations will be included in the
+# documentation.
+
+HIDE_FRIEND_COMPOUNDS  = NO
+
+# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any
+# documentation blocks found inside the body of a function.
+# If set to NO (the default) these blocks will be appended to the
+# function's detailed documentation block.
+
+HIDE_IN_BODY_DOCS      = NO
+
+# The INTERNAL_DOCS tag determines if documentation
+# that is typed after a \internal command is included. If the tag is set
+# to NO (the default) then the documentation will be excluded.
+# Set it to YES to include the internal documentation.
+
+INTERNAL_DOCS          = NO
+
+# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate
+# file names in lower-case letters. If set to YES upper-case letters are also
+# allowed. This is useful if you have classes or files whose names only differ
+# in case and if your file system supports case sensitive file names. Windows
+# and Mac users are advised to set this option to NO.
+
+CASE_SENSE_NAMES       = YES
+
+# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen
+# will show members with their full class and namespace scopes in the
+# documentation. If set to YES the scope will be hidden.
+
+HIDE_SCOPE_NAMES       = NO
+
+# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen
+# will put a list of the files that are included by a file in the documentation
+# of that file.
+
+SHOW_INCLUDE_FILES     = YES
+
+# If the INLINE_INFO tag is set to YES (the default) then a tag [inline]
+# is inserted in the documentation for inline members.
+
+INLINE_INFO            = YES
+
+# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen
+# will sort the (detailed) documentation of file and class members
+# alphabetically by member name. If set to NO the members will appear in
+# declaration order.
+
+SORT_MEMBER_DOCS       = YES
+
+# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the
+# brief documentation of file, namespace and class members alphabetically
+# by member name. If set to NO (the default) the members will appear in
+# declaration order.
+
+SORT_BRIEF_DOCS        = NO
+
+# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the (brief and detailed) documentation of class members so that constructors and destructors are listed first. If set to NO (the default) the constructors will appear in the respective orders defined by SORT_MEMBER_DOCS and SORT_BRIEF_DOCS. This tag will be ignored for brief docs if SORT_BRIEF_DOCS is set to NO and ignored for detailed docs if SORT_MEMBER_DOCS is set to NO.
+
+SORT_MEMBERS_CTORS_1ST = NO
+
+# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the
+# hierarchy of group names into alphabetical order. If set to NO (the default)
+# the group names will appear in their defined order.
+
+SORT_GROUP_NAMES       = NO
+
+# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be
+# sorted by fully-qualified names, including namespaces. If set to
+# NO (the default), the class list will be sorted only by class name,
+# not including the namespace part.
+# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
+# Note: This option applies only to the class list, not to the
+# alphabetical list.
+
+SORT_BY_SCOPE_NAME     = NO
+
+# The GENERATE_TODOLIST tag can be used to enable (YES) or
+# disable (NO) the todo list. This list is created by putting \todo
+# commands in the documentation.
+
+GENERATE_TODOLIST      = YES
+
+# The GENERATE_TESTLIST tag can be used to enable (YES) or
+# disable (NO) the test list. This list is created by putting \test
+# commands in the documentation.
+
+GENERATE_TESTLIST      = YES
+
+# The GENERATE_BUGLIST tag can be used to enable (YES) or
+# disable (NO) the bug list. This list is created by putting \bug
+# commands in the documentation.
+
+GENERATE_BUGLIST       = YES
+
+# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or
+# disable (NO) the deprecated list. This list is created by putting
+# \deprecated commands in the documentation.
+
+GENERATE_DEPRECATEDLIST= YES
+
+# The ENABLED_SECTIONS tag can be used to enable conditional
+# documentation sections, marked by \if sectionname ... \endif.
+
+ENABLED_SECTIONS       =
+
+# The MAX_INITIALIZER_LINES tag determines the maximum number of lines
+# the initial value of a variable or define consists of for it to appear in
+# the documentation. If the initializer consists of more lines than specified
+# here it will be hidden. Use a value of 0 to hide initializers completely.
+# The appearance of the initializer of individual variables and defines in the
+# documentation can be controlled using \showinitializer or \hideinitializer
+# command in the documentation regardless of this setting.
+
+MAX_INITIALIZER_LINES  = 30
+
+# Set the SHOW_USED_FILES tag to NO to disable the list of files generated
+# at the bottom of the documentation of classes and structs. If set to YES the
+# list will mention the files that were used to generate the documentation.
+
+SHOW_USED_FILES        = YES
+
+# If the sources in your project are distributed over multiple directories
+# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy
+# in the documentation. The default is NO.
+
+SHOW_DIRECTORIES       = NO
+
+# Set the SHOW_FILES tag to NO to disable the generation of the Files page.
+# This will remove the Files entry from the Quick Index and from the
+# Folder Tree View (if specified). The default is YES.
+
+SHOW_FILES             = YES
+
+# Set the SHOW_NAMESPACES tag to NO to disable the generation of the
+# Namespaces page.
+# This will remove the Namespaces entry from the Quick Index
+# and from the Folder Tree View (if specified). The default is YES.
+
+SHOW_NAMESPACES        = YES
+
+# The FILE_VERSION_FILTER tag can be used to specify a program or script that
+# doxygen should invoke to get the current version for each file (typically from
+# the version control system). Doxygen will invoke the program by executing (via
+# popen()) the command <command> <input-file>, where <command> is the value of
+# the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file
+# provided by doxygen. Whatever the program writes to standard output
+# is used as the file version. See the manual for examples.
+
+FILE_VERSION_FILTER    =
+
+# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed by
+# doxygen. The layout file controls the global structure of the generated output files
+# in an output format independent way. The create the layout file that represents
+# doxygen's defaults, run doxygen with the -l option. You can optionally specify a
+# file name after the option, if omitted DoxygenLayout.xml will be used as the name
+# of the layout file.
+
+LAYOUT_FILE            =
+
+#---------------------------------------------------------------------------
+# configuration options related to warning and progress messages
+#---------------------------------------------------------------------------
+
+# The QUIET tag can be used to turn on/off the messages that are generated
+# by doxygen. Possible values are YES and NO. If left blank NO is used.
+
+QUIET                  = NO
+
+# The WARNINGS tag can be used to turn on/off the warning messages that are
+# generated by doxygen. Possible values are YES and NO. If left blank
+# NO is used.
+
+WARNINGS               = YES
+
+# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings
+# for undocumented members. If EXTRACT_ALL is set to YES then this flag will
+# automatically be disabled.
+
+WARN_IF_UNDOCUMENTED   = YES
+
+# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for
+# potential errors in the documentation, such as not documenting some
+# parameters in a documented function, or documenting parameters that
+# don't exist or using markup commands wrongly.
+
+WARN_IF_DOC_ERROR      = YES
+
+# This WARN_NO_PARAMDOC option can be abled to get warnings for
+# functions that are documented, but have no documentation for their parameters
+# or return value. If set to NO (the default) doxygen will only warn about
+# wrong or incomplete parameter documentation, but not about the absence of
+# documentation.
+
+WARN_NO_PARAMDOC       = NO
+
+# The WARN_FORMAT tag determines the format of the warning messages that
+# doxygen can produce. The string should contain the $file, $line, and $text
+# tags, which will be replaced by the file and line number from which the
+# warning originated and the warning text. Optionally the format may contain
+# $version, which will be replaced by the version of the file (if it could
+# be obtained via FILE_VERSION_FILTER)
+
+WARN_FORMAT            = "$file:$line: $text"
+
+# The WARN_LOGFILE tag can be used to specify a file to which warning
+# and error messages should be written. If left blank the output is written
+# to stderr.
+
+WARN_LOGFILE           =
+
+#---------------------------------------------------------------------------
+# configuration options related to the input files
+#---------------------------------------------------------------------------
+
+# The INPUT tag can be used to specify the files and/or directories that contain
+# documented source files. You may enter file names like "myfile.cpp" or
+# directories like "/usr/src/myproject". Separate the files or directories
+# with spaces.
+
+INPUT                  = gconfitem.h gconfitem.cpp
+
+# This tag can be used to specify the character encoding of the source files
+# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is
+# also the default input encoding. Doxygen uses libiconv (or the iconv built
+# into libc) for the transcoding. See http://www.gnu.org/software/libiconv for
+# the list of possible encodings.
+
+INPUT_ENCODING         = UTF-8
+
+# If the value of the INPUT tag contains directories, you can use the
+# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
+# and *.h) to filter out the source-files in the directories. If left
+# blank the following patterns are tested:
+# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx
+# *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py *.f90
+
+FILE_PATTERNS          =
+
+# The RECURSIVE tag can be used to turn specify whether or not subdirectories
+# should be searched for input files as well. Possible values are YES and NO.
+# If left blank NO is used.
+
+RECURSIVE              = NO
+
+# The EXCLUDE tag can be used to specify files and/or directories that should
+# excluded from the INPUT source files. This way you can easily exclude a
+# subdirectory from a directory tree whose root is specified with the INPUT tag.
+
+EXCLUDE                =
+
+# The EXCLUDE_SYMLINKS tag can be used select whether or not files or
+# directories that are symbolic links (a Unix filesystem feature) are excluded
+# from the input.
+
+EXCLUDE_SYMLINKS       = NO
+
+# If the value of the INPUT tag contains directories, you can use the
+# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
+# certain files from those directories. Note that the wildcards are matched
+# against the file with absolute path, so to exclude all test directories
+# for example use the pattern */test/*
+
+EXCLUDE_PATTERNS       =
+
+# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
+# (namespaces, classes, functions, etc.) that should be excluded from the
+# output. The symbol name can be a fully qualified name, a word, or if the
+# wildcard * is used, a substring. Examples: ANamespace, AClass,
+# AClass::ANamespace, ANamespace::*Test
+
+EXCLUDE_SYMBOLS        =
+
+# The EXAMPLE_PATH tag can be used to specify one or more files or
+# directories that contain example code fragments that are included (see
+# the \include command).
+
+EXAMPLE_PATH           =
+
+# If the value of the EXAMPLE_PATH tag contains directories, you can use the
+# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
+# and *.h) to filter out the source-files in the directories. If left
+# blank all files are included.
+
+EXAMPLE_PATTERNS       =
+
+# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
+# searched for input files to be used with the \include or \dontinclude
+# commands irrespective of the value of the RECURSIVE tag.
+# Possible values are YES and NO. If left blank NO is used.
+
+EXAMPLE_RECURSIVE      = NO
+
+# The IMAGE_PATH tag can be used to specify one or more files or
+# directories that contain image that are included in the documentation (see
+# the \image command).
+
+IMAGE_PATH             =
+
+# The INPUT_FILTER tag can be used to specify a program that doxygen should
+# invoke to filter for each input file. Doxygen will invoke the filter program
+# by executing (via popen()) the command <filter> <input-file>, where <filter>
+# is the value of the INPUT_FILTER tag, and <input-file> is the name of an
+# input file. Doxygen will then use the output that the filter program writes
+# to standard output.
+# If FILTER_PATTERNS is specified, this tag will be
+# ignored.
+
+INPUT_FILTER           =
+
+# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
+# basis.
+# Doxygen will compare the file name with each pattern and apply the
+# filter if there is a match.
+# The filters are a list of the form:
+# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further
+# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER
+# is applied to all files.
+
+FILTER_PATTERNS        =
+
+# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
+# INPUT_FILTER) will be used to filter the input files when producing source
+# files to browse (i.e. when SOURCE_BROWSER is set to YES).
+
+FILTER_SOURCE_FILES    = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to source browsing
+#---------------------------------------------------------------------------
+
+# If the SOURCE_BROWSER tag is set to YES then a list of source files will
+# be generated. Documented entities will be cross-referenced with these sources.
+# Note: To get rid of all source code in the generated output, make sure also
+# VERBATIM_HEADERS is set to NO.
+
+SOURCE_BROWSER         = NO
+
+# Setting the INLINE_SOURCES tag to YES will include the body
+# of functions and classes directly in the documentation.
+
+INLINE_SOURCES         = NO
+
+# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct
+# doxygen to hide any special comment blocks from generated source code
+# fragments. Normal C and C++ comments will always remain visible.
+
+STRIP_CODE_COMMENTS    = YES
+
+# If the REFERENCED_BY_RELATION tag is set to YES
+# then for each documented function all documented
+# functions referencing it will be listed.
+
+REFERENCED_BY_RELATION = NO
+
+# If the REFERENCES_RELATION tag is set to YES
+# then for each documented function all documented entities
+# called/used by that function will be listed.
+
+REFERENCES_RELATION    = NO
+
+# If the REFERENCES_LINK_SOURCE tag is set to YES (the default)
+# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from
+# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will
+# link to the source code.
+# Otherwise they will link to the documentation.
+
+REFERENCES_LINK_SOURCE = YES
+
+# If the USE_HTAGS tag is set to YES then the references to source code
+# will point to the HTML generated by the htags(1) tool instead of doxygen
+# built-in source browser. The htags tool is part of GNU's global source
+# tagging system (see http://www.gnu.org/software/global/global.html). You
+# will need version 4.8.6 or higher.
+
+USE_HTAGS              = NO
+
+# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen
+# will generate a verbatim copy of the header file for each class for
+# which an include is specified. Set to NO to disable this.
+
+VERBATIM_HEADERS       = YES
+
+#---------------------------------------------------------------------------
+# configuration options related to the alphabetical class index
+#---------------------------------------------------------------------------
+
+# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index
+# of all compounds will be generated. Enable this if the project
+# contains a lot of classes, structs, unions or interfaces.
+
+ALPHABETICAL_INDEX     = NO
+
+# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then
+# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns
+# in which this list will be split (can be a number in the range [1..20])
+
+COLS_IN_ALPHA_INDEX    = 5
+
+# In case all classes in a project start with a common prefix, all
+# classes will be put under the same header in the alphabetical index.
+# The IGNORE_PREFIX tag can be used to specify one or more prefixes that
+# should be ignored while generating the index headers.
+
+IGNORE_PREFIX          =
+
+#---------------------------------------------------------------------------
+# configuration options related to the HTML output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_HTML tag is set to YES (the default) Doxygen will
+# generate HTML output.
+
+GENERATE_HTML          = YES
+
+# The HTML_OUTPUT tag is used to specify where the HTML docs will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `html' will be used as the default path.
+
+HTML_OUTPUT            = html
+
+# The HTML_FILE_EXTENSION tag can be used to specify the file extension for
+# each generated HTML page (for example: .htm,.php,.asp). If it is left blank
+# doxygen will generate files with .html extension.
+
+HTML_FILE_EXTENSION    = .html
+
+# The HTML_HEADER tag can be used to specify a personal HTML header for
+# each generated HTML page. If it is left blank doxygen will generate a
+# standard header.
+
+HTML_HEADER            =
+
+# The HTML_FOOTER tag can be used to specify a personal HTML footer for
+# each generated HTML page. If it is left blank doxygen will generate a
+# standard footer.
+
+HTML_FOOTER            =
+
+# The HTML_STYLESHEET tag can be used to specify a user-defined cascading
+# style sheet that is used by each HTML page. It can be used to
+# fine-tune the look of the HTML output. If the tag is left blank doxygen
+# will generate a default style sheet. Note that doxygen will try to copy
+# the style sheet file to the HTML output directory, so don't put your own
+# stylesheet in the HTML output directory as well, or it will be erased!
+
+HTML_STYLESHEET        =
+
+# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes,
+# files or namespaces will be aligned in HTML using tables. If set to
+# NO a bullet list will be used.
+
+HTML_ALIGN_MEMBERS     = YES
+
+# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
+# documentation will contain sections that can be hidden and shown after the
+# page has loaded. For this to work a browser that supports
+# JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox
+# Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari).
+
+HTML_DYNAMIC_SECTIONS  = NO
+
+# If the GENERATE_DOCSET tag is set to YES, additional index files
+# will be generated that can be used as input for Apple's Xcode 3
+# integrated development environment, introduced with OSX 10.5 (Leopard).
+# To create a documentation set, doxygen will generate a Makefile in the
+# HTML output directory. Running make will produce the docset in that
+# directory and running "make install" will install the docset in
+# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find
+# it at startup.
+# See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html for more information.
+
+GENERATE_DOCSET        = NO
+
+# When GENERATE_DOCSET tag is set to YES, this tag determines the name of the
+# feed. A documentation feed provides an umbrella under which multiple
+# documentation sets from a single provider (such as a company or product suite)
+# can be grouped.
+
+DOCSET_FEEDNAME        = "Doxygen generated docs"
+
+# When GENERATE_DOCSET tag is set to YES, this tag specifies a string that
+# should uniquely identify the documentation set bundle. This should be a
+# reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen
+# will append .docset to the name.
+
+DOCSET_BUNDLE_ID       = org.doxygen.Project
+
+# If the GENERATE_HTMLHELP tag is set to YES, additional index files
+# will be generated that can be used as input for tools like the
+# Microsoft HTML help workshop to generate a compiled HTML help file (.chm)
+# of the generated HTML documentation.
+
+GENERATE_HTMLHELP      = NO
+
+# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can
+# be used to specify the file name of the resulting .chm file. You
+# can add a path in front of the file if the result should not be
+# written to the html output directory.
+
+CHM_FILE               =
+
+# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can
+# be used to specify the location (absolute path including file name) of
+# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run
+# the HTML help compiler on the generated index.hhp.
+
+HHC_LOCATION           =
+
+# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag
+# controls if a separate .chi index file is generated (YES) or that
+# it should be included in the master .chm file (NO).
+
+GENERATE_CHI           = NO
+
+# If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING
+# is used to encode HtmlHelp index (hhk), content (hhc) and project file
+# content.
+
+CHM_INDEX_ENCODING     =
+
+# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag
+# controls whether a binary table of contents is generated (YES) or a
+# normal table of contents (NO) in the .chm file.
+
+BINARY_TOC             = NO
+
+# The TOC_EXPAND flag can be set to YES to add extra items for group members
+# to the contents of the HTML help documentation and to the tree view.
+
+TOC_EXPAND             = NO
+
+# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and QHP_VIRTUAL_FOLDER
+# are set, an additional index file will be generated that can be used as input for
+# Qt's qhelpgenerator to generate a Qt Compressed Help (.qch) of the generated
+# HTML documentation.
+
+GENERATE_QHP           = NO
+
+# If the QHG_LOCATION tag is specified, the QCH_FILE tag can
+# be used to specify the file name of the resulting .qch file.
+# The path specified is relative to the HTML output folder.
+
+QCH_FILE               =
+
+# The QHP_NAMESPACE tag specifies the namespace to use when generating
+# Qt Help Project output. For more information please see
+# http://doc.trolltech.com/qthelpproject.html#namespace
+
+QHP_NAMESPACE          =
+
+# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating
+# Qt Help Project output. For more information please see
+# http://doc.trolltech.com/qthelpproject.html#virtual-folders
+
+QHP_VIRTUAL_FOLDER     = doc
+
+# If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to add.
+# For more information please see
+# http://doc.trolltech.com/qthelpproject.html#custom-filters
+
+QHP_CUST_FILTER_NAME   =
+
+# The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the custom filter to add.For more information please see
+# <a href="http://doc.trolltech.com/qthelpproject.html#custom-filters">Qt Help Project / Custom Filters</a>.
+
+QHP_CUST_FILTER_ATTRS  =
+
+# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this project's
+# filter section matches.
+# <a href="http://doc.trolltech.com/qthelpproject.html#filter-attributes">Qt Help Project / Filter Attributes</a>.
+
+QHP_SECT_FILTER_ATTRS  =
+
+# If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can
+# be used to specify the location of Qt's qhelpgenerator.
+# If non-empty doxygen will try to run qhelpgenerator on the generated
+# .qhp file.
+
+QHG_LOCATION           =
+
+# The DISABLE_INDEX tag can be used to turn on/off the condensed index at
+# top of each HTML page. The value NO (the default) enables the index and
+# the value YES disables it.
+
+DISABLE_INDEX          = NO
+
+# This tag can be used to set the number of enum values (range [1..20])
+# that doxygen will group on one line in the generated HTML documentation.
+
+ENUM_VALUES_PER_LINE   = 4
+
+# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index
+# structure should be generated to display hierarchical information.
+# If the tag value is set to YES, a side panel will be generated
+# containing a tree-like index structure (just like the one that
+# is generated for HTML Help). For this to work a browser that supports
+# JavaScript, DHTML, CSS and frames is required (i.e. any modern browser).
+# Windows users are probably better off using the HTML help feature.
+
+GENERATE_TREEVIEW      = NO
+
+# By enabling USE_INLINE_TREES, doxygen will generate the Groups, Directories,
+# and Class Hierarchy pages using a tree view instead of an ordered list.
+
+USE_INLINE_TREES       = NO
+
+# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be
+# used to set the initial width (in pixels) of the frame in which the tree
+# is shown.
+
+TREEVIEW_WIDTH         = 250
+
+# Use this tag to change the font size of Latex formulas included
+# as images in the HTML documentation. The default is 10. Note that
+# when you change the font size after a successful doxygen run you need
+# to manually remove any form_*.png images from the HTML output directory
+# to force them to be regenerated.
+
+FORMULA_FONTSIZE       = 10
+
+# When the SEARCHENGINE tag is enable doxygen will generate a search box for the HTML output. The underlying search engine uses javascript
+# and DHTML and should work on any modern browser. Note that when using HTML help (GENERATE_HTMLHELP) or Qt help (GENERATE_QHP)
+# there is already a search function so this one should typically
+# be disabled.
+
+SEARCHENGINE           = YES
+
+#---------------------------------------------------------------------------
+# configuration options related to the LaTeX output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will
+# generate Latex output.
+
+GENERATE_LATEX         = NO
+
+# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `latex' will be used as the default path.
+
+LATEX_OUTPUT           = latex
+
+# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
+# invoked. If left blank `latex' will be used as the default command name.
+
+LATEX_CMD_NAME         = latex
+
+# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to
+# generate index for LaTeX. If left blank `makeindex' will be used as the
+# default command name.
+
+MAKEINDEX_CMD_NAME     = makeindex
+
+# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact
+# LaTeX documents. This may be useful for small projects and may help to
+# save some trees in general.
+
+COMPACT_LATEX          = NO
+
+# The PAPER_TYPE tag can be used to set the paper type that is used
+# by the printer. Possible values are: a4, a4wide, letter, legal and
+# executive. If left blank a4wide will be used.
+
+PAPER_TYPE             = a4wide
+
+# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX
+# packages that should be included in the LaTeX output.
+
+EXTRA_PACKAGES         =
+
+# The LATEX_HEADER tag can be used to specify a personal LaTeX header for
+# the generated latex document. The header should contain everything until
+# the first chapter. If it is left blank doxygen will generate a
+# standard header. Notice: only use this tag if you know what you are doing!
+
+LATEX_HEADER           =
+
+# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated
+# is prepared for conversion to pdf (using ps2pdf). The pdf file will
+# contain links (just like the HTML output) instead of page references
+# This makes the output suitable for online browsing using a pdf viewer.
+
+PDF_HYPERLINKS         = YES
+
+# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of
+# plain latex in the generated Makefile. Set this option to YES to get a
+# higher quality PDF documentation.
+
+USE_PDFLATEX           = YES
+
+# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode.
+# command to the generated LaTeX files. This will instruct LaTeX to keep
+# running if errors occur, instead of asking the user for help.
+# This option is also used when generating formulas in HTML.
+
+LATEX_BATCHMODE        = NO
+
+# If LATEX_HIDE_INDICES is set to YES then doxygen will not
+# include the index chapters (such as File Index, Compound Index, etc.)
+# in the output.
+
+LATEX_HIDE_INDICES     = NO
+
+# If LATEX_SOURCE_CODE is set to YES then doxygen will include source code with syntax highlighting in the LaTeX output. Note that which sources are shown also depends on other settings such as SOURCE_BROWSER.
+
+LATEX_SOURCE_CODE      = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the RTF output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output
+# The RTF output is optimized for Word 97 and may not look very pretty with
+# other RTF readers or editors.
+
+GENERATE_RTF           = NO
+
+# The RTF_OUTPUT tag is used to specify where the RTF docs will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `rtf' will be used as the default path.
+
+RTF_OUTPUT             = rtf
+
+# If the COMPACT_RTF tag is set to YES Doxygen generates more compact
+# RTF documents. This may be useful for small projects and may help to
+# save some trees in general.
+
+COMPACT_RTF            = NO
+
+# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated
+# will contain hyperlink fields. The RTF file will
+# contain links (just like the HTML output) instead of page references.
+# This makes the output suitable for online browsing using WORD or other
+# programs which support those fields.
+# Note: wordpad (write) and others do not support links.
+
+RTF_HYPERLINKS         = NO
+
+# Load stylesheet definitions from file. Syntax is similar to doxygen's
+# config file, i.e. a series of assignments. You only have to provide
+# replacements, missing definitions are set to their default value.
+
+RTF_STYLESHEET_FILE    =
+
+# Set optional variables used in the generation of an rtf document.
+# Syntax is similar to doxygen's config file.
+
+RTF_EXTENSIONS_FILE    =
+
+#---------------------------------------------------------------------------
+# configuration options related to the man page output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_MAN tag is set to YES (the default) Doxygen will
+# generate man pages
+
+GENERATE_MAN           = NO
+
+# The MAN_OUTPUT tag is used to specify where the man pages will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `man' will be used as the default path.
+
+MAN_OUTPUT             = man
+
+# The MAN_EXTENSION tag determines the extension that is added to
+# the generated man pages (default is the subroutine's section .3)
+
+MAN_EXTENSION          = .3
+
+# If the MAN_LINKS tag is set to YES and Doxygen generates man output,
+# then it will generate one additional man file for each entity
+# documented in the real man page(s). These additional files
+# only source the real man page, but without them the man command
+# would be unable to find the correct page. The default is NO.
+
+MAN_LINKS              = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the XML output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_XML tag is set to YES Doxygen will
+# generate an XML file that captures the structure of
+# the code including all documentation.
+
+GENERATE_XML           = NO
+
+# The XML_OUTPUT tag is used to specify where the XML pages will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `xml' will be used as the default path.
+
+XML_OUTPUT             = xml
+
+# The XML_SCHEMA tag can be used to specify an XML schema,
+# which can be used by a validating XML parser to check the
+# syntax of the XML files.
+
+XML_SCHEMA             =
+
+# The XML_DTD tag can be used to specify an XML DTD,
+# which can be used by a validating XML parser to check the
+# syntax of the XML files.
+
+XML_DTD                =
+
+# If the XML_PROGRAMLISTING tag is set to YES Doxygen will
+# dump the program listings (including syntax highlighting
+# and cross-referencing information) to the XML output. Note that
+# enabling this will significantly increase the size of the XML output.
+
+XML_PROGRAMLISTING     = YES
+
+#---------------------------------------------------------------------------
+# configuration options for the AutoGen Definitions output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will
+# generate an AutoGen Definitions (see autogen.sf.net) file
+# that captures the structure of the code including all
+# documentation. Note that this feature is still experimental
+# and incomplete at the moment.
+
+GENERATE_AUTOGEN_DEF   = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the Perl module output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_PERLMOD tag is set to YES Doxygen will
+# generate a Perl module file that captures the structure of
+# the code including all documentation. Note that this
+# feature is still experimental and incomplete at the
+# moment.
+
+GENERATE_PERLMOD       = NO
+
+# If the PERLMOD_LATEX tag is set to YES Doxygen will generate
+# the necessary Makefile rules, Perl scripts and LaTeX code to be able
+# to generate PDF and DVI output from the Perl module output.
+
+PERLMOD_LATEX          = NO
+
+# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be
+# nicely formatted so it can be parsed by a human reader.
+# This is useful
+# if you want to understand what is going on.
+# On the other hand, if this
+# tag is set to NO the size of the Perl module output will be much smaller
+# and Perl will parse it just the same.
+
+PERLMOD_PRETTY         = YES
+
+# The names of the make variables in the generated doxyrules.make file
+# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX.
+# This is useful so different doxyrules.make files included by the same
+# Makefile don't overwrite each other's variables.
+
+PERLMOD_MAKEVAR_PREFIX =
+
+#---------------------------------------------------------------------------
+# Configuration options related to the preprocessor
+#---------------------------------------------------------------------------
+
+# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will
+# evaluate all C-preprocessor directives found in the sources and include
+# files.
+
+ENABLE_PREPROCESSING   = YES
+
+# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro
+# names in the source code. If set to NO (the default) only conditional
+# compilation will be performed. Macro expansion can be done in a controlled
+# way by setting EXPAND_ONLY_PREDEF to YES.
+
+MACRO_EXPANSION        = NO
+
+# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES
+# then the macro expansion is limited to the macros specified with the
+# PREDEFINED and EXPAND_AS_DEFINED tags.
+
+EXPAND_ONLY_PREDEF     = NO
+
+# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files
+# in the INCLUDE_PATH (see below) will be search if a #include is found.
+
+SEARCH_INCLUDES        = YES
+
+# The INCLUDE_PATH tag can be used to specify one or more directories that
+# contain include files that are not input files but should be processed by
+# the preprocessor.
+
+INCLUDE_PATH           =
+
+# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
+# patterns (like *.h and *.hpp) to filter out the header-files in the
+# directories. If left blank, the patterns specified with FILE_PATTERNS will
+# be used.
+
+INCLUDE_FILE_PATTERNS  =
+
+# The PREDEFINED tag can be used to specify one or more macro names that
+# are defined before the preprocessor is started (similar to the -D option of
+# gcc). The argument of the tag is a list of macros of the form: name
+# or name=definition (no spaces). If the definition and the = are
+# omitted =1 is assumed. To prevent a macro definition from being
+# undefined via #undef or recursively expanded use the := operator
+# instead of the = operator.
+
+PREDEFINED             =
+
+# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then
+# this tag can be used to specify a list of macro names that should be expanded.
+# The macro definition that is found in the sources will be used.
+# Use the PREDEFINED tag if you want to use a different macro definition.
+
+EXPAND_AS_DEFINED      =
+
+# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then
+# doxygen's preprocessor will remove all function-like macros that are alone
+# on a line, have an all uppercase name, and do not end with a semicolon. Such
+# function macros are typically used for boiler-plate code, and will confuse
+# the parser if not removed.
+
+SKIP_FUNCTION_MACROS   = YES
+
+#---------------------------------------------------------------------------
+# Configuration::additions related to external references
+#---------------------------------------------------------------------------
+
+# The TAGFILES option can be used to specify one or more tagfiles.
+# Optionally an initial location of the external documentation
+# can be added for each tagfile. The format of a tag file without
+# this location is as follows:
+#
+# TAGFILES = file1 file2 ...
+# Adding location for the tag files is done as follows:
+#
+# TAGFILES = file1=loc1 "file2 = loc2" ...
+# where "loc1" and "loc2" can be relative or absolute paths or
+# URLs. If a location is present for each tag, the installdox tool
+# does not have to be run to correct the links.
+# Note that each tag file must have a unique name
+# (where the name does NOT include the path)
+# If a tag file is not located in the directory in which doxygen
+# is run, you must also specify the path to the tagfile here.
+
+TAGFILES               =
+
+# When a file name is specified after GENERATE_TAGFILE, doxygen will create
+# a tag file that is based on the input files it reads.
+
+GENERATE_TAGFILE       =
+
+# If the ALLEXTERNALS tag is set to YES all external classes will be listed
+# in the class index. If set to NO only the inherited external classes
+# will be listed.
+
+ALLEXTERNALS           = NO
+
+# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed
+# in the modules index. If set to NO, only the current project's groups will
+# be listed.
+
+EXTERNAL_GROUPS        = YES
+
+# The PERL_PATH should be the absolute path and name of the perl script
+# interpreter (i.e. the result of `which perl').
+
+PERL_PATH              = /usr/bin/perl
+
+#---------------------------------------------------------------------------
+# Configuration options related to the dot tool
+#---------------------------------------------------------------------------
+
+# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will
+# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base
+# or super classes. Setting the tag to NO turns the diagrams off. Note that
+# this option is superseded by the HAVE_DOT option below. This is only a
+# fallback. It is recommended to install and use dot, since it yields more
+# powerful graphs.
+
+CLASS_DIAGRAMS         = YES
+
+# You can define message sequence charts within doxygen comments using the \msc
+# command. Doxygen will then run the mscgen tool (see
+# http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the
+# documentation. The MSCGEN_PATH tag allows you to specify the directory where
+# the mscgen tool resides. If left empty the tool is assumed to be found in the
+# default search path.
+
+MSCGEN_PATH            =
+
+# If set to YES, the inheritance and collaboration graphs will hide
+# inheritance and usage relations if the target is undocumented
+# or is not a class.
+
+HIDE_UNDOC_RELATIONS   = YES
+
+# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
+# available from the path. This tool is part of Graphviz, a graph visualization
+# toolkit from AT&T and Lucent Bell Labs. The other options in this section
+# have no effect if this option is set to NO (the default)
+
+HAVE_DOT               = NO
+
+# By default doxygen will write a font called FreeSans.ttf to the output
+# directory and reference it in all dot files that doxygen generates. This
+# font does not include all possible unicode characters however, so when you need
+# these (or just want a differently looking font) you can specify the font name
+# using DOT_FONTNAME. You need need to make sure dot is able to find the font,
+# which can be done by putting it in a standard location or by setting the
+# DOTFONTPATH environment variable or by setting DOT_FONTPATH to the directory
+# containing the font.
+
+DOT_FONTNAME           = FreeSans
+
+# The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs.
+# The default size is 10pt.
+
+DOT_FONTSIZE           = 10
+
+# By default doxygen will tell dot to use the output directory to look for the
+# FreeSans.ttf font (which doxygen will put there itself). If you specify a
+# different font using DOT_FONTNAME you can set the path where dot
+# can find it using this tag.
+
+DOT_FONTPATH           =
+
+# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen
+# will generate a graph for each documented class showing the direct and
+# indirect inheritance relations. Setting this tag to YES will force the
+# the CLASS_DIAGRAMS tag to NO.
+
+CLASS_GRAPH            = YES
+
+# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen
+# will generate a graph for each documented class showing the direct and
+# indirect implementation dependencies (inheritance, containment, and
+# class references variables) of the class with other documented classes.
+
+COLLABORATION_GRAPH    = YES
+
+# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen
+# will generate a graph for groups, showing the direct groups dependencies
+
+GROUP_GRAPHS           = YES
+
+# If the UML_LOOK tag is set to YES doxygen will generate inheritance and
+# collaboration diagrams in a style similar to the OMG's Unified Modeling
+# Language.
+
+UML_LOOK               = NO
+
+# If set to YES, the inheritance and collaboration graphs will show the
+# relations between templates and their instances.
+
+TEMPLATE_RELATIONS     = NO
+
+# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT
+# tags are set to YES then doxygen will generate a graph for each documented
+# file showing the direct and indirect include dependencies of the file with
+# other documented files.
+
+INCLUDE_GRAPH          = YES
+
+# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and
+# HAVE_DOT tags are set to YES then doxygen will generate a graph for each
+# documented header file showing the documented files that directly or
+# indirectly include this file.
+
+INCLUDED_BY_GRAPH      = YES
+
+# If the CALL_GRAPH and HAVE_DOT options are set to YES then
+# doxygen will generate a call dependency graph for every global function
+# or class method. Note that enabling this option will significantly increase
+# the time of a run. So in most cases it will be better to enable call graphs
+# for selected functions only using the \callgraph command.
+
+CALL_GRAPH             = NO
+
+# If the CALLER_GRAPH and HAVE_DOT tags are set to YES then
+# doxygen will generate a caller dependency graph for every global function
+# or class method. Note that enabling this option will significantly increase
+# the time of a run. So in most cases it will be better to enable caller
+# graphs for selected functions only using the \callergraph command.
+
+CALLER_GRAPH           = NO
+
+# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen
+# will graphical hierarchy of all classes instead of a textual one.
+
+GRAPHICAL_HIERARCHY    = YES
+
+# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES
+# then doxygen will show the dependencies a directory has on other directories
+# in a graphical way. The dependency relations are determined by the #include
+# relations between the files in the directories.
+
+DIRECTORY_GRAPH        = YES
+
+# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
+# generated by dot. Possible values are png, jpg, or gif
+# If left blank png will be used.
+
+DOT_IMAGE_FORMAT       = png
+
+# The tag DOT_PATH can be used to specify the path where the dot tool can be
+# found. If left blank, it is assumed the dot tool can be found in the path.
+
+DOT_PATH               =
+
+# The DOTFILE_DIRS tag can be used to specify one or more directories that
+# contain dot files that are included in the documentation (see the
+# \dotfile command).
+
+DOTFILE_DIRS           =
+
+# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of
+# nodes that will be shown in the graph. If the number of nodes in a graph
+# becomes larger than this value, doxygen will truncate the graph, which is
+# visualized by representing a node as a red box. Note that doxygen if the
+# number of direct children of the root node in a graph is already larger than
+# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note
+# that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.
+
+DOT_GRAPH_MAX_NODES    = 50
+
+# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the
+# graphs generated by dot. A depth value of 3 means that only nodes reachable
+# from the root by following a path via at most 3 edges will be shown. Nodes
+# that lay further from the root node will be omitted. Note that setting this
+# option to 1 or 2 may greatly reduce the computation time needed for large
+# code bases. Also note that the size of a graph can be further restricted by
+# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction.
+
+MAX_DOT_GRAPH_DEPTH    = 0
+
+# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
+# background. This is disabled by default, because dot on Windows does not
+# seem to support this out of the box. Warning: Depending on the platform used,
+# enabling this option may lead to badly anti-aliased labels on the edges of
+# a graph (i.e. they become hard to read).
+
+DOT_TRANSPARENT        = NO
+
+# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output
+# files in one run (i.e. multiple -o and -T options on the command line). This
+# makes dot run faster, but since only newer versions of dot (>1.8.10)
+# support this, this feature is disabled by default.
+
+DOT_MULTI_TARGETS      = YES
+
+# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will
+# generate a legend page explaining the meaning of the various boxes and
+# arrows in the dot generated graphs.
+
+GENERATE_LEGEND        = YES
+
+# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will
+# remove the intermediate dot files that are used to generate
+# the various graphs.
+
+DOT_CLEANUP            = YES
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/3rdparty/libgq/gconf/GConfItem	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,1 @@
+#include "gconfitem.h"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/3rdparty/libgq/gconf/Makefile.am	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,37 @@
+AM_CXXFLAGS = $(QT_CFLAGS) $(GLIB_CFLAGS) $(GCONF_CFLAGS)
+LIBS += $(QT_LIBS) $(GLIB_LIBS) $(GCONF_LIBS)
+
+lib_LTLIBRARIES = libgq-gconf.la
+
+libgq_gconf_la_SOURCES = GConfItem \
+                         gconfitem.h \
+                         gconfitem.cpp \
+                         gconfitem_moc.cpp
+
+gqincludedir=$(includedir)/gq
+gqinclude_HEADERS = gconfitem.h GConfItem
+
+pkgconfigdir = $(libdir)/pkgconfig
+pkgconfig_DATA = gq-gconf.pc
+
+# Tests
+
+check_PROGRAMS = test-gconf
+
+test_gconf_SOURCES = test-gconf.h test-gconf.cpp test-gconf_moc.cpp
+test_gconf_CFLAGS = $(QTEST_CFLAGS)
+test_gconf_LDADD = libgq-gconf.la $(QTEST_LIBS)
+
+TESTS = run-test-gconf
+
+EXTRA_DIST = run-test-gconf
+
+# Moccing
+
+%_moc.cpp: %.h
+	$(MOC) -o "$@" "$<"
+
+clean-moc:
+	rm -f *_moc.cpp *_moc.lo
+
+clean-local: clean-moc
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/3rdparty/libgq/gconf/gconfitem.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,376 @@
+/* * This file is part of libgq *
+ *
+ * Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ *
+ * Contact: Marius Vollmer <marius.vollmer@nokia.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public License
+ * version 2.1 as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA
+ *
+ */
+
+#include <QString>
+#include <QStringList>
+#include <QByteArray>
+#include <QVariant>
+#include <QtDebug>
+
+#include "gconfitem.h"
+
+#include <glib.h>
+#include <gconf/gconf-value.h>
+#include <gconf/gconf-client.h>
+
+struct GConfItemPrivate {
+    QString key;
+    QVariant value;
+    guint notify_id;
+
+    static void notify_trampoline(GConfClient*, guint, GConfEntry *, gpointer);
+};
+
+/* We get the default client and never release it, on purpose, to
+   avoid disconnecting from the GConf daemon when a program happens to
+   not have any GConfItems for short periods of time.
+ */
+static GConfClient *
+get_gconf_client ()
+{
+  static bool initialized = false;
+  static GConfClient *client;
+
+  if (initialized)
+    return client;
+
+  g_type_init ();
+  client = gconf_client_get_default();
+  initialized = true;
+    
+  return client;
+}
+
+/* Sometimes I like being too clever...
+ */
+#define withClient(c) for (GConfClient *c = get_gconf_client (); c; c = NULL)
+
+static QByteArray convertKey (QString key)
+{
+    if (key.startsWith('/'))
+        return key.toUtf8();
+    else
+    {
+        qWarning() << "Using dot-separated key names with GConfItem is deprecated.";
+        qWarning() << "Please use" << '/' + key.replace('.', '/') << "instead of" << key;
+        return '/' + key.replace('.', '/').toUtf8();
+    }
+}
+
+static QString convertKey(const char *key)
+{
+    return QString::fromUtf8(key);
+}
+
+static QVariant convertValue(GConfValue *src)
+{
+    if (!src) {
+        return QVariant();
+    } else {
+        switch (src->type) {
+        case GCONF_VALUE_INVALID:
+            return QVariant(QVariant::Invalid);
+        case GCONF_VALUE_BOOL:
+            return QVariant((bool)gconf_value_get_bool(src));
+        case GCONF_VALUE_INT:
+            return QVariant(gconf_value_get_int(src));
+        case GCONF_VALUE_FLOAT:
+            return QVariant(gconf_value_get_float(src));
+        case GCONF_VALUE_STRING:
+            return QVariant(QString::fromUtf8(gconf_value_get_string(src)));
+        case GCONF_VALUE_LIST:
+            switch (gconf_value_get_list_type(src)) {
+            case GCONF_VALUE_STRING:
+                {
+                    QStringList result;
+                    for (GSList *elts = gconf_value_get_list(src); elts; elts = elts->next)
+                        result.append(QString::fromUtf8(gconf_value_get_string((GConfValue *)elts->data)));
+                    return QVariant(result);
+                }
+            default:
+                {
+                    QList<QVariant> result;
+                    for (GSList *elts = gconf_value_get_list(src); elts; elts = elts->next)
+                        result.append(convertValue((GConfValue *)elts->data));
+                    return QVariant(result);
+                }
+            }
+        case GCONF_VALUE_SCHEMA:
+        default:
+            return QVariant();
+        }
+    }
+}
+
+static GConfValue *convertString(const QString &str)
+{
+    GConfValue *v = gconf_value_new (GCONF_VALUE_STRING);
+    gconf_value_set_string (v, str.toUtf8().data());
+    return v;
+}
+
+static GConfValueType primitiveType (const QVariant &elt)
+{
+    switch(elt.type()) {
+    case QVariant::String:
+        return GCONF_VALUE_STRING;
+    case QVariant::Int:
+        return GCONF_VALUE_INT;
+    case QVariant::Double:
+        return GCONF_VALUE_FLOAT;
+    case QVariant::Bool:
+        return GCONF_VALUE_BOOL;
+    default:
+        return GCONF_VALUE_INVALID;
+    }
+}
+
+static GConfValueType uniformType(const QList<QVariant> &list)
+{
+    GConfValueType result = GCONF_VALUE_INVALID;
+
+    foreach (const QVariant &elt, list) {
+        GConfValueType elt_type = primitiveType (elt);
+
+        if (elt_type == GCONF_VALUE_INVALID)
+            return GCONF_VALUE_INVALID;
+
+        if (result == GCONF_VALUE_INVALID)
+            result = elt_type;
+        else if (result != elt_type)
+            return GCONF_VALUE_INVALID;
+    }
+
+    if (result == GCONF_VALUE_INVALID)
+        return GCONF_VALUE_STRING;  // empty list.
+    else
+        return result;
+}
+
+static int convertValue(const QVariant &src, GConfValue **valp)
+{
+    GConfValue *v;
+
+    switch(src.type()) {
+    case QVariant::Invalid:
+        v = NULL;
+        break;
+    case QVariant::Bool:
+        v = gconf_value_new (GCONF_VALUE_BOOL);
+        gconf_value_set_bool (v, src.toBool());
+        break;
+    case QVariant::Int:
+        v = gconf_value_new (GCONF_VALUE_INT);
+        gconf_value_set_int (v, src.toInt());
+        break;
+    case QVariant::Double:
+        v = gconf_value_new (GCONF_VALUE_FLOAT);
+        gconf_value_set_float (v, src.toDouble());
+        break;
+    case QVariant::String:
+        v = convertString(src.toString());
+        break;
+    case QVariant::StringList:
+        {
+            GSList *elts = NULL;
+            v = gconf_value_new(GCONF_VALUE_LIST);
+            gconf_value_set_list_type(v, GCONF_VALUE_STRING);
+            foreach (const QString &str, src.toStringList())
+                elts = g_slist_prepend(elts, convertString(str));
+            gconf_value_set_list_nocopy(v, g_slist_reverse(elts));
+            break;
+        }
+    case QVariant::List:
+        {
+            GConfValueType elt_type = uniformType(src.toList());
+            if (elt_type == GCONF_VALUE_INVALID)
+                v = NULL;
+            else
+            {
+                GSList *elts = NULL;
+                v = gconf_value_new(GCONF_VALUE_LIST);
+                gconf_value_set_list_type(v, elt_type);
+                foreach (const QVariant &elt, src.toList())
+                {
+                    GConfValue *val = NULL;
+                    convertValue(elt, &val);  // guaranteed to succeed.
+                    elts = g_slist_prepend(elts, val);
+                }
+                gconf_value_set_list_nocopy(v, g_slist_reverse(elts));
+            }
+            break;
+        }
+    default:
+        return 0;
+    }
+
+    *valp = v;
+    return 1;
+}
+
+void GConfItemPrivate::notify_trampoline (GConfClient*,
+                                             guint,
+                                             GConfEntry *,
+                                             gpointer data)
+{
+    GConfItem *item = (GConfItem *)data;
+    item->update_value (true);
+}
+
+void GConfItem::update_value (bool emit_signal)
+{
+    QVariant new_value;
+
+    withClient(client) {
+        GError *error = NULL;
+        QByteArray k = convertKey(priv->key);
+        GConfValue *v = gconf_client_get(client, k.data(), &error);
+
+        if (error) {
+            qWarning() << error->message;
+            g_error_free (error);
+            new_value = priv->value;
+        } else {
+            new_value = convertValue(v);
+            if (v)
+                gconf_value_free(v);
+        }
+    }
+
+    if (new_value != priv->value) {
+        priv->value = new_value;
+        if (emit_signal)
+            emit valueChanged();
+    }
+}
+
+QString GConfItem::key() const
+{
+    return priv->key;
+}
+
+QVariant GConfItem::value() const
+{
+    return priv->value;
+}
+
+QVariant GConfItem::value(const QVariant &def) const
+{
+    if (priv->value.isNull())
+        return def;
+    else
+        return priv->value;
+}
+
+void GConfItem::set(const QVariant &val)
+{
+    withClient(client) {
+        QByteArray k = convertKey(priv->key);
+        GConfValue *v;
+        if (convertValue(val, &v)) {
+            GError *error = NULL;
+
+            if (v) {
+                gconf_client_set(client, k.data(), v, &error);
+                gconf_value_free(v);
+            } else {
+                gconf_client_unset(client, k.data(), &error);
+            }
+
+            if (error) {
+                qWarning() << error->message;
+                g_error_free(error);
+            } else if (priv->value != val) {
+                priv->value = val;
+                emit valueChanged();
+            }
+
+        } else
+            qWarning() << "Can't store a" << val.typeName();
+    }
+}
+
+void GConfItem::unset() {
+    set(QVariant());
+}
+
+QList<QString> GConfItem::listDirs() const
+{
+    QList<QString> children;
+
+    withClient(client) {
+        QByteArray k = convertKey(priv->key);
+        GSList *dirs = gconf_client_all_dirs(client, k.data(), NULL);
+        for (GSList *d = dirs; d; d = d->next) {
+            children.append(convertKey((char *)d->data));
+            g_free (d->data);
+        }
+        g_slist_free (dirs);
+    }
+
+    return children;
+}
+
+QList<QString> GConfItem::listEntries() const
+{
+    QList<QString> children;
+
+    withClient(client) {
+        QByteArray k = convertKey(priv->key);
+        GSList *entries = gconf_client_all_entries(client, k.data(), NULL);
+        for (GSList *e = entries; e; e = e->next) {
+            children.append(convertKey(((GConfEntry *)e->data)->key));
+            gconf_entry_free ((GConfEntry *)e->data);
+        }
+        g_slist_free (entries);
+    }
+
+    return children;
+}
+
+GConfItem::GConfItem(const QString &key, QObject *parent)
+    : QObject (parent)
+{
+    priv = new GConfItemPrivate;
+    priv->key = key;
+    priv->notify_id = 0;
+    withClient(client) {
+        update_value (false);
+        QByteArray k = convertKey(priv->key);
+        gconf_client_add_dir (client, k.data(), GCONF_CLIENT_PRELOAD_ONELEVEL, NULL);
+        priv->notify_id = gconf_client_notify_add (client, k.data(),
+                                                   GConfItemPrivate::notify_trampoline, this,
+                                                   NULL, NULL);
+    }
+}
+
+GConfItem::~GConfItem()
+{
+    withClient(client) {
+        QByteArray k = convertKey(priv->key);
+        if (priv->notify_id)
+          gconf_client_notify_remove (client, priv->notify_id);
+        gconf_client_remove_dir (client, k.data(), NULL);
+    }
+    delete priv;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/3rdparty/libgq/gconf/gconfitem.h	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,147 @@
+/* * This file is part of libgq *
+ *
+ * Copyright (C) 2009 Nokia Corporation.
+ *
+ * Contact: Marius Vollmer <marius.vollmer@nokia.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public License
+ * version 2.1 as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA
+ *
+ */
+
+#ifndef GCONFITEM_H
+#define GCONFITEM_H
+
+#include <QVariant>
+#include <QStringList>
+#include <QObject>
+
+/*!
+
+  \brief GConfItem is a simple C++ wrapper for GConf.
+
+  Creating a GConfItem instance gives you access to a single GConf
+  key.  You can get and set its value, and connect to its
+  valueChanged() signal to be notified about changes.
+
+  The value of a GConf key is returned to you as a QVariant, and you
+  pass in a QVariant when setting the value.  GConfItem converts
+  between a QVariant and GConf values as needed, and according to the
+  following rules:
+
+  - A QVariant of type QVariant::Invalid denotes an unset GConf key.
+
+  - QVariant::Int, QVariant::Double, QVariant::Bool are converted to
+    and from the obvious equivalents.
+
+  - QVariant::String is converted to/from a GConf string and always
+    uses the UTF-8 encoding.  No other encoding is supported.
+
+  - QVariant::StringList is converted to a list of UTF-8 strings.
+
+  - QVariant::List (which denotes a QList<QVariant>) is converted
+    to/from a GConf list.  All elements of such a list must have the
+    same type, and that type must be one of QVariant::Int,
+    QVariant::Double, QVariant::Bool, or QVariant::String.  (A list of
+    strings is returned as a QVariant::StringList, however, when you
+    get it back.)
+
+  - Any other QVariant or GConf value is essentially ignored.
+
+  \warning GConfItem is as thread-safe as GConf.
+
+*/
+
+class GConfItem : public QObject
+{
+    Q_OBJECT
+
+ public:
+    /*! Initializes a GConfItem to access the GConf key denoted by
+        \a key.  Key names should follow the normal GConf conventions
+        like "/myapp/settings/first".
+
+        \param key    The name of the key.
+        \param parent Parent object
+    */
+    explicit GConfItem(const QString &key, QObject *parent = 0);
+
+    /*! Finalizes a GConfItem.
+     */
+    virtual ~GConfItem();
+
+    /*! Returns the key of this item, as given to the constructor.
+     */
+    QString key() const;
+
+    /*! Returns the current value of this item, as a QVariant.
+     */
+    QVariant value() const;
+
+    /*! Returns the current value of this item, as a QVariant.  If
+     *  there is no value for this item, return \a def instead.
+     */
+    QVariant value(const QVariant &def) const;
+
+    /*! Set the value of this item to \a val.  If \a val can not be
+        represented in GConf or GConf refuses to accept it for other
+        reasons, the current value is not changed and nothing happens.
+
+        When the new value is different from the old value, the
+        changedValue() signal is emitted on this GConfItem as part
+        of calling set(), but other GConfItem:s for the same key do
+        only receive a notification once the main loop runs.
+
+        \param val  The new value.
+    */
+    void set(const QVariant &val);
+
+    /*! Unset this item.  This is equivalent to
+
+        \code
+        item.set(QVariant(QVariant::Invalid));
+        \endcode
+     */
+    void unset();
+
+    /*! Return a list of the directories below this item.  The
+        returned strings are absolute key names like
+        "/myapp/settings".
+
+        A directory is a key that has children.  The same key might
+        also have a value, but that is confusing and best avoided.
+    */
+    QList<QString> listDirs() const;
+
+    /*! Return a list of entries below this item.  The returned
+        strings are absolute key names like "/myapp/settings/first".
+
+        A entry is a key that has a value.  The same key might also
+        have children, but that is confusing and is best avoided.
+    */
+    QList<QString> listEntries() const;
+
+ signals:
+    /*! Emitted when the value of this item has changed.
+     */
+    void valueChanged();
+
+ private:
+    friend struct GConfItemPrivate;
+    struct GConfItemPrivate *priv;
+
+    void update_value(bool emit_signal);
+};
+
+#endif // GCONFITEM_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/3rdparty/libgq/gconf/gq-gconf.pc.in	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,11 @@
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+
+Name: gq-gconf
+Description: Qt/GConf wrapper
+Version: @VERSION@
+Requires: QtCore
+Libs: -L${libdir} -lgq-gconf
+Cflags: -I${includedir}/gq
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/3rdparty/libgq/gconf/run-test-gconf	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,49 @@
+#!/bin/sh
+
+# please make sure that the en_US.UTF-8 locale is available!
+#   - apt-get install locales
+#   - make sure /etc/locale.gen contains the line "en_US.UTF-8 UTF-8"
+#   - run /usr/sbin/locale-gen
+LC_ALL=en_US.UTF-8
+export LC_ALL
+
+gconftool-2 -s -t bool /Test/Bool true
+VALUE=$(gconftool-2 -g /Test/Bool)
+if [ "$VALUE" != "true" ]; then
+    echo "GConf is not running, skipping all tests"
+    exit 77
+fi
+
+# Setup values expected by the external_values() test.
+
+gconftool-2 -s -t int /Test/Int 123
+gconftool-2 -s -t string /Test/String "Hello GConf"
+gconftool-2 -s -t float /Test/Double 3.5
+gconftool-2 -s -t list --list-type string /Test/StringList "[Hello,GConf,ÄÖÜ]"
+gconftool-2 -s -t list --list-type int /Test/IntList "[1,2,3,4]"
+gconftool-2 -s -t list --list-type float /Test/DoubleList "[3.5,3.5,3.5]"
+gconftool-2 -s -t list --list-type bool /Test/BoolList "[false,true,true,false]"
+gconftool-2 -u /Test/UnsetBefore
+gconftool-2 -s -t int /Test/UnsetAfter 100
+gconftool-2 -s -t int /Test/Dir/Entry 200
+
+./test-gconf $* || exit 1
+
+# Check what set_external() has left behind.
+
+compare() {
+  if [ "$1" != "$2" ]; then
+    echo "FAIL: '$1' != '$2'"
+    exit 1
+  fi
+}
+
+compare "`gconftool-2 -g /Test/Bool`" false
+compare "`gconftool-2 -g /Test/Int`" 54321
+compare "`gconftool-2 -g /Test/String`" "Good bye GConf"
+compare "`gconftool-2 -g /Test/Double`" -2.5
+compare "`gconftool-2 -g /Test/StringList`" "[Good,bye,GConf,äöü]"
+compare "`gconftool-2 -g /Test/IntList`" "[5,4,3,2,1]"
+compare "`gconftool-2 -g /Test/DoubleList`" "[-2.5,-2.5]"
+compare "`gconftool-2 -g /Test/BoolList`" "[false,false,true,true]"
+compare "`gconftool-2 -g /Test/UnsetAfter 2>&1`" 'No value set for `/Test/UnsetAfter'"'"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/3rdparty/libgq/gconf/test-gconf.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,299 @@
+#include "test-gconf.h"
+
+#define MYLOGLEVEL 2
+void myMessageOutput(QtMsgType type, const char *msg)
+{
+    switch (type) {
+    case QtDebugMsg:
+        if (MYLOGLEVEL <= 0)
+            fprintf(stderr, "Debug: %s\n", msg);
+        break;
+    case QtWarningMsg:
+        if (MYLOGLEVEL <= 1)
+            fprintf(stderr, "Warning: %s\n", msg);
+        break;
+    case QtCriticalMsg:
+        if (MYLOGLEVEL <= 2)
+            fprintf(stderr, "Critical: %s\n", msg);
+        break;
+    case QtFatalMsg:
+        if (MYLOGLEVEL <= 3)
+            fprintf(stderr, "Fatal: %s\n", msg);
+        abort();
+    }
+}
+
+//
+// Definition of testcases: Normal tests
+//
+
+void GConfItemTests::timeout()
+{
+    timed_out = true;
+    timer.stop();
+}
+
+// Before all tests
+void GConfItemTests::initTestCase()
+{
+    connect(&timer, SIGNAL(timeout()),
+            this, SLOT(timeout()));
+}
+
+// After all tests
+void GConfItemTests::cleanupTestCase()
+{
+}
+
+// Before each test
+void GConfItemTests::init()
+{
+    boolItem = new GConfItem("/Test/Bool");
+    intItem = new GConfItem("/Test/Int");
+    stringItem = new GConfItem("/Test/String");
+    doubleItem = new GConfItem("/Test/Double");
+    stringListItem = new GConfItem("/Test/StringList");
+    intListItem = new GConfItem("/Test/IntList");
+    doubleListItem = new GConfItem("/Test/DoubleList");
+    boolListItem = new GConfItem("/Test/BoolList");
+    unsetBeforeItem = new GConfItem("/Test/UnsetBefore");
+    unsetAfterItem = new GConfItem("/Test/UnsetAfter");
+    signalSpy = new SignalListener();
+    QObject::connect(boolItem, SIGNAL(valueChanged()), signalSpy, SLOT(valueChanged()));
+    QObject::connect(intItem, SIGNAL(valueChanged()), signalSpy, SLOT(valueChanged()));
+    QObject::connect(stringItem, SIGNAL(valueChanged()), signalSpy, SLOT(valueChanged()));
+    QObject::connect(doubleItem, SIGNAL(valueChanged()), signalSpy, SLOT(valueChanged()));
+    QObject::connect(stringListItem, SIGNAL(valueChanged()), signalSpy, SLOT(valueChanged()));
+    QObject::connect(intListItem, SIGNAL(valueChanged()), signalSpy, SLOT(valueChanged()));
+    QObject::connect(doubleListItem, SIGNAL(valueChanged()), signalSpy, SLOT(valueChanged()));
+    QObject::connect(boolListItem, SIGNAL(valueChanged()), signalSpy, SLOT(valueChanged()));
+}
+
+// After each test
+void GConfItemTests::cleanup()
+{
+    QObject::disconnect(boolItem, SIGNAL(valueChanged()), signalSpy, SLOT(valueChanged()));
+    QObject::disconnect(intItem, SIGNAL(valueChanged()), signalSpy, SLOT(valueChanged()));
+    QObject::disconnect(stringItem, SIGNAL(valueChanged()), signalSpy, SLOT(valueChanged()));
+    QObject::disconnect(doubleItem, SIGNAL(valueChanged()), signalSpy, SLOT(valueChanged()));
+    QObject::disconnect(stringListItem, SIGNAL(valueChanged()), signalSpy, SLOT(valueChanged()));
+    QObject::disconnect(intListItem, SIGNAL(valueChanged()), signalSpy, SLOT(valueChanged()));
+    QObject::disconnect(doubleListItem, SIGNAL(valueChanged()), signalSpy, SLOT(valueChanged()));
+    QObject::disconnect(boolListItem, SIGNAL(valueChanged()), signalSpy, SLOT(valueChanged()));
+    delete signalSpy;
+    delete boolItem;
+    delete intItem;
+    delete stringItem;
+    delete doubleItem;
+    delete stringListItem;
+    delete intListItem;
+    delete doubleListItem;
+    delete boolListItem;
+    delete unsetBeforeItem;
+    delete unsetAfterItem;
+
+    timer.stop();
+}
+
+void GConfItemTests::path()
+{
+    QCOMPARE(boolItem->key(), QString("/Test/Bool"));
+    QCOMPARE(intItem->key(), QString("/Test/Int"));
+    QCOMPARE(stringItem->key(), QString("/Test/String"));
+    QCOMPARE(doubleItem->key(), QString("/Test/Double"));
+    QCOMPARE(stringListItem->key(), QString("/Test/StringList"));
+    QCOMPARE(intListItem->key(), QString("/Test/IntList"));
+    QCOMPARE(doubleListItem->key(), QString("/Test/DoubleList"));
+    QCOMPARE(boolListItem->key(), QString("/Test/BoolList"));
+    QCOMPARE(unsetBeforeItem->key(), QString("/Test/UnsetBefore"));
+    QCOMPARE(unsetAfterItem->key(), QString("/Test/UnsetAfter"));
+}
+
+void GConfItemTests::external_values()
+{
+    // These values are set before this program starts.
+    QCOMPARE(boolItem->value().toBool(), true);
+    QCOMPARE(intItem->value().toInt(), 123);
+    QCOMPARE(stringItem->value().toString(), QString("Hello GConf"));
+    QCOMPARE(doubleItem->value().toDouble(), 3.5);
+    QCOMPARE(stringListItem->value().toStringList(), QStringList() << "Hello" << "GConf" << QString::fromUtf8("ÄÖÜ"));
+    QCOMPARE(intListItem->value().toList(), QList<QVariant>() << 1 << 2 << 3 << 4);
+    QCOMPARE(doubleListItem->value().toList(), QList<QVariant>() << 3.5 << 3.5 << 3.5);
+    QCOMPARE(boolListItem->value().toList(), QList<QVariant>() << false << true << true << false);
+    QCOMPARE(unsetBeforeItem->value().isValid(), false);
+    QCOMPARE(unsetAfterItem->value().isValid(), true);
+}
+
+void GConfItemTests::set_bool()
+{
+    signalSpy->numberOfCalls = 0;
+
+    boolItem->set(false);
+    QCOMPARE(boolItem->value().toBool(), false);
+    boolItem->set(true);
+    QCOMPARE(boolItem->value().toBool(), true);
+
+    QCOMPARE(signalSpy->numberOfCalls, 2);
+}
+
+void GConfItemTests::set_int()
+{
+    signalSpy->numberOfCalls = 0;
+
+    intItem->set(12);
+    QCOMPARE(intItem->value().toInt(), 12);
+    intItem->set(-5);
+    QCOMPARE(intItem->value().toInt(), -5);
+
+    QCOMPARE(signalSpy->numberOfCalls, 2);
+}
+
+void GConfItemTests::set_string()
+{
+    signalSpy->numberOfCalls = 0;
+
+    stringItem->set("Hi");
+    QCOMPARE(stringItem->value().toString(), QString("Hi"));
+
+    QCOMPARE(signalSpy->numberOfCalls, 1);
+}
+
+void GConfItemTests::set_unicode_string()
+{
+    signalSpy->numberOfCalls = 0;
+
+    stringItem->set(QString::fromUtf8("Höäü"));
+    QCOMPARE(stringItem->value().toString(), QString::fromUtf8("Höäü"));
+
+    QCOMPARE(signalSpy->numberOfCalls, 1);
+}
+
+void GConfItemTests::set_double()
+{
+    signalSpy->numberOfCalls = 0;
+
+    doubleItem->set(1.2345);
+    QCOMPARE(doubleItem->value().toDouble(), 1.2345);
+
+    QCOMPARE(signalSpy->numberOfCalls, 1);
+}
+
+void GConfItemTests::set_string_list()
+{
+    signalSpy->numberOfCalls = 0;
+
+    stringListItem->set(QStringList() << "one" << "two" << "three");
+    QCOMPARE(stringListItem->value().toStringList(), QStringList() << "one" << "two" << "three");
+
+    QCOMPARE(signalSpy->numberOfCalls, 1);
+}
+
+void GConfItemTests::set_int_list()
+{
+    signalSpy->numberOfCalls = 0;
+
+    intListItem->set(QList<QVariant>() << 10 << 11 << 12);
+    QCOMPARE(intListItem->value().toList(), QList<QVariant>() << 10 << 11 << 12);
+
+    QCOMPARE(signalSpy->numberOfCalls, 1);
+}
+
+void GConfItemTests::set_double_list()
+{
+    signalSpy->numberOfCalls = 0;
+
+    doubleListItem->set(QList<QVariant>() << 1.1 << 2.2 << 3.3);
+    QCOMPARE(doubleListItem->value().toList(), QList<QVariant>() << 1.1 << 2.2 << 3.3);
+
+    QCOMPARE(signalSpy->numberOfCalls, 1);
+}
+
+void GConfItemTests::set_bool_list()
+{
+    signalSpy->numberOfCalls = 0;
+
+    boolListItem->set(QList<QVariant>() << true << true << false);
+    QCOMPARE(boolListItem->value().toList(), QList<QVariant>() << true << true << false);
+
+    QCOMPARE(signalSpy->numberOfCalls, 1);
+}
+
+void GConfItemTests::unset ()
+{
+    signalSpy->numberOfCalls = 0;
+
+    boolItem->unset();
+    QCOMPARE(boolItem->value().isValid(), false);
+
+    QCOMPARE(signalSpy->numberOfCalls, 1);
+}
+
+void GConfItemTests::list_dirs ()
+{
+    GConfItem test("/Test");
+    QStringList dirs = test.listDirs();
+
+    QVERIFY (!dirs.contains("/Test/Bool"));
+    QVERIFY (!dirs.contains("/Test/Int"));
+    QVERIFY (!dirs.contains("/Test/String"));
+    QVERIFY (!dirs.contains("/Test/Double"));
+    QVERIFY (!dirs.contains("/Test/StringList"));
+    QVERIFY (!dirs.contains("/Test/IntList"));
+    QVERIFY (!dirs.contains("/Test/DoubleList"));
+    QVERIFY (!dirs.contains("/Test/BoolList"));
+    QVERIFY (!dirs.contains("/Test/UnsetBefore"));
+    QVERIFY (!dirs.contains("/Test/UnsetAfter"));
+    QVERIFY (dirs.contains("/Test/Dir"));
+}
+
+void GConfItemTests::list_entries ()
+{
+    GConfItem test("/Test");
+    QStringList entries = test.listEntries();
+
+    QVERIFY (!entries.contains("/Test/Bool"));  // has been unset above
+    QVERIFY (entries.contains("/Test/Int"));
+    QVERIFY (entries.contains("/Test/String"));
+    QVERIFY (entries.contains("/Test/Double"));
+    QVERIFY (entries.contains("/Test/StringList"));
+    QVERIFY (entries.contains("/Test/IntList"));
+    QVERIFY (entries.contains("/Test/DoubleList"));
+    QVERIFY (entries.contains("/Test/BoolList"));
+    QVERIFY (!entries.contains("/Test/UnsetBefore"));
+    QVERIFY (entries.contains("/Test/UnsetAfter"));
+    QVERIFY (!entries.contains("/Test/Dir"));
+}
+
+void GConfItemTests::get_default ()
+{
+    intItem->unset();
+    QCOMPARE(intItem->value(123).toInt(), 123);
+    intItem->set(234);
+    QCOMPARE(intItem->value(123).toInt(), 234);
+}
+
+void GConfItemTests::propagate ()
+{
+    GConfItem secondIntItem("/Test/Int");
+    secondIntItem.set(3000);
+    QVERIFY_TIMEOUT(2000, intItem->value() == secondIntItem.value());
+    QCOMPARE(signalSpy->numberOfCalls, 2);
+}
+
+void GConfItemTests::set_external()
+{
+    // This must be the last test case.  The values that are set here
+    // are checked after this program exits.
+
+    boolItem->set(false);
+    intItem->set(54321);
+    stringItem->set("Good bye GConf");
+    doubleItem->set(-2.5);
+    stringListItem->set(QStringList() << "Good" << "bye" << "GConf" << QString::fromUtf8("äöü"));
+    intListItem->set(QList<QVariant>() << 5 << 4 << 3 << 2 << 1);
+    doubleListItem->set(QList<QVariant>() << -2.5 << -2.5);
+    boolListItem->set(QList<QVariant>() << false << false << true << true);
+    unsetAfterItem->set(QVariant());
+}
+
+QTEST_MAIN(GConfItemTests);
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/3rdparty/libgq/gconf/test-gconf.h	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,86 @@
+#include <QObject>
+#include <QtTest/QtTest>
+#include <QDebug>
+
+#include "GConfItem"
+
+// Helper class for listening to signals
+class SignalListener : public QObject
+{
+    Q_OBJECT
+public:
+    int numberOfCalls;
+    SignalListener() : numberOfCalls(0) {
+    }
+
+public slots:
+    void valueChanged()
+    {
+        numberOfCalls++;
+    }
+};
+
+// Tests for the public API
+class GConfItemTests : public QObject
+{
+    Q_OBJECT
+
+    // Stored pointers etc.
+private:
+    GConfItem *boolItem;
+    GConfItem *intItem;
+    GConfItem *stringItem;
+    GConfItem *doubleItem;
+    GConfItem *stringListItem;
+    GConfItem *intListItem;
+    GConfItem *doubleListItem;
+    GConfItem *boolListItem;
+    GConfItem *unsetBeforeItem;
+    GConfItem *unsetAfterItem;
+
+    SignalListener *signalSpy;
+
+    QTimer timer;
+    bool timed_out;
+
+    // Tests
+private slots:
+    // Init and cleanup helper functions
+    void initTestCase();
+    void cleanupTestCase();
+    void init();
+    void cleanup();
+    void timeout ();
+
+    // Public API
+    void path();
+    void external_values();
+    void set_bool();
+    void set_int();
+    void set_string();
+    void set_unicode_string();
+    void set_double();
+    void set_string_list();
+    void set_int_list();
+    void set_double_list();
+    void set_bool_list();
+    void unset();
+    void get_default();
+    void list_dirs();
+    void list_entries();
+    void propagate();
+    void set_external();
+};
+
+// Useful if you need to process some events until a condition becomes
+// true.
+
+#define QVERIFY_TIMEOUT(msecs, expr)                                        \
+    do {                                                                    \
+        timed_out = false;                                                  \
+        timer.start(msecs);                                                 \
+        while (!timed_out && !(expr)) {                                     \
+            QCoreApplication::processEvents(QEventLoop::WaitForMoreEvents); \
+        }                                                                   \
+        QVERIFY((expr));                                                    \
+    } while(0)
--- a/src/3rdparty/phonon/CMakeLists.txt	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/3rdparty/phonon/CMakeLists.txt	Mon Oct 04 01:19:32 2010 +0300
@@ -94,7 +94,7 @@
    set( __KDE_HAVE_GCC_VISIBILITY ${__KDE_HAVE_GCC_VISIBILITY} CACHE BOOL "GCC support for hidden visibility")
 
    # get the gcc version
-   exec_program(${CMAKE_C_COMPILER} ARGS --version OUTPUT_VARIABLE _gcc_version_info)
+   exec_program(${CMAKE_C_COMPILER} ARGS ${CMAKE_C_COMPILER_ARG1} --version OUTPUT_VARIABLE _gcc_version_info)
 
    string (REGEX MATCH "[345]\\.[0-9]\\.[0-9]" _gcc_version "${_gcc_version_info}")
    # gcc on mac just reports: "gcc (GCC) 3.3 20030304 ..." without the patch level, handle this here:
@@ -152,8 +152,8 @@
 set(CMAKE_COLOR_MAKEFILE ON)
 
 set(PHONON_LIB_MAJOR_VERSION "4")
-set(PHONON_LIB_MINOR_VERSION "3")
-set(PHONON_LIB_PATCH_VERSION "80")
+set(PHONON_LIB_MINOR_VERSION "4")
+set(PHONON_LIB_PATCH_VERSION "0")
 set(PHONON_LIB_VERSION "${PHONON_LIB_MAJOR_VERSION}.4.0")
 set(PHONON_LIB_SOVERSION ${PHONON_LIB_MAJOR_VERSION})
 
--- a/src/3rdparty/phonon/gstreamer/mediaobject.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/3rdparty/phonon/gstreamer/mediaobject.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -219,9 +219,9 @@
         if ( status != GST_INSTALL_PLUGINS_STARTED_OK )
         {
             if( status == GST_INSTALL_PLUGINS_HELPER_MISSING )
-                setError(QString(tr("Missing codec helper script assistant.")), Phonon::FatalError );
+                setError(tr("Missing codec helper script assistant."), Phonon::FatalError );
             else
-                setError(QString(tr("Plugin codec installation failed for codec: %0"))
+                setError(tr("Plugin codec installation failed for codec: %0")
                         .arg(m_missingCodecs[0].split("|")[3]), error);
         }
         m_missingCodecs.clear();
@@ -232,7 +232,7 @@
             m_hasVideo = false;
             emit hasVideoChanged(false);
         }
-        setError(QString(tr("A required codec is missing. You need to install the following codec(s) to play this content: %0")).arg(codecs), error);
+        setError(tr("A required codec is missing. You need to install the following codec(s) to play this content: %0").arg(codecs), error);
         m_missingCodecs.clear();
 #endif
     }
--- a/src/3rdparty/phonon/mmf/abstractmediaplayer.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/3rdparty/phonon/mmf/abstractmediaplayer.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -16,6 +16,7 @@
 
 */
 
+#include <QResource>
 #include <QUrl>
 
 #include "abstractmediaplayer.h"
@@ -216,9 +217,10 @@
     TRACE_EXIT_0();
 }
 
-void MMF::AbstractMediaPlayer::open(const MediaSource &source, RFile& file)
+void MMF::AbstractMediaPlayer::open()
 {
-    TRACE_CONTEXT(AbstractMediaPlayer::setFileSource, EAudioApi);
+    TRACE_CONTEXT(AbstractMediaPlayer::open, EAudioApi);
+    const MediaSource source = m_parent->source();
     TRACE_ENTRY("state %d source.type %d", privateState(), source.type());
 
     close();
@@ -229,7 +231,9 @@
 
     switch (source.type()) {
     case MediaSource::LocalFile: {
-        symbianErr = openFile(file);
+        RFile *const file = m_parent->file();
+        Q_ASSERT(file);
+        symbianErr = openFile(*file);
         if (KErrNone != symbianErr)
             errorMessage = tr("Error opening file");
         break;
@@ -237,9 +241,10 @@
 
     case MediaSource::Url: {
         const QUrl url(source.url());
-
         if (url.scheme() == QLatin1String("file")) {
-            symbianErr = openFile(file);
+            RFile *const file = m_parent->file();
+            Q_ASSERT(file);
+            symbianErr = openFile(*file);
             if (KErrNone != symbianErr)
                 errorMessage = tr("Error opening file");
         } else {
@@ -251,6 +256,19 @@
         break;
     }
 
+    case MediaSource::Stream: {
+        QResource *const resource = m_parent->resource();
+        if (resource) {
+            m_buffer.Set(resource->data(), resource->size());
+            symbianErr = openDescriptor(m_buffer);
+            if (KErrNone != symbianErr)
+                errorMessage = tr("Error opening resource");
+        } else {
+            errorMessage = tr("Error opening source: resource not opened");
+        }
+        break;
+    }
+
     // Other source types are handled in MediaObject::createPlayer
 
     // Protection against adding new media types and forgetting to update this switch
--- a/src/3rdparty/phonon/mmf/abstractmediaplayer.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/3rdparty/phonon/mmf/abstractmediaplayer.h	Mon Oct 04 01:19:32 2010 +0300
@@ -47,7 +47,7 @@
     AbstractMediaPlayer(MediaObject *parent, const AbstractPlayer *player);
 
 public:
-    virtual void open(const Phonon::MediaSource&, RFile&);
+    virtual void open();
 
     // MediaObjectInterface
     virtual void play();
@@ -70,6 +70,7 @@
     virtual int setDeviceVolume(int mmfVolume) = 0;
     virtual int openFile(RFile& file) = 0;
     virtual int openUrl(const QString& url) = 0;
+    virtual int openDescriptor(const TDesC8 &des) = 0;
     virtual int bufferStatus() const = 0;
 
     void updateMetaData();
@@ -123,6 +124,9 @@
     bool                        m_prefinishMarkSent;
     bool                        m_aboutToFinishSent;
 
+    // Used for playback of resource files
+    TPtrC8                      m_buffer;
+
     QMultiMap<QString, QString> m_metaData;
 
 };
--- a/src/3rdparty/phonon/mmf/abstractplayer.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/3rdparty/phonon/mmf/abstractplayer.h	Mon Oct 04 01:19:32 2010 +0300
@@ -26,8 +26,6 @@
 
 #include "abstractvideooutput.h"
 
-class RFile;
-
 QT_BEGIN_NAMESPACE
 
 namespace Phonon
@@ -54,7 +52,7 @@
 public:
     AbstractPlayer(const AbstractPlayer *player);
 
-    virtual void open(const Phonon::MediaSource&, RFile&) = 0;
+    virtual void open() = 0;
     virtual void close() = 0;
 
     // MediaObjectInterface (implemented)
--- a/src/3rdparty/phonon/mmf/abstractvideoplayer.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/3rdparty/phonon/mmf/abstractvideoplayer.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -144,6 +144,12 @@
     return err;
 }
 
+int MMF::AbstractVideoPlayer::openDescriptor(const TDesC8 &des)
+{
+    TRAPD(err, m_player->OpenDesL(des));
+    return err;
+}
+
 int MMF::AbstractVideoPlayer::bufferStatus() const
 {
     int result = 0;
--- a/src/3rdparty/phonon/mmf/abstractvideoplayer.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/3rdparty/phonon/mmf/abstractvideoplayer.h	Mon Oct 04 01:19:32 2010 +0300
@@ -66,6 +66,7 @@
     virtual int setDeviceVolume(int mmfVolume);
     virtual int openFile(RFile &file);
     virtual int openUrl(const QString &url);
+    virtual int openDescriptor(const TDesC8 &des);
     virtual int bufferStatus() const;
     virtual void close();
 
--- a/src/3rdparty/phonon/mmf/audioplayer.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/3rdparty/phonon/mmf/audioplayer.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -137,6 +137,12 @@
     return 0;
 }
 
+int MMF::AudioPlayer::openDescriptor(const TDesC8 &des)
+{
+    TRAPD(err, m_player->OpenDesL(des));
+    return err;
+}
+
 int MMF::AudioPlayer::bufferStatus() const
 {
     int result = 0;
--- a/src/3rdparty/phonon/mmf/audioplayer.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/3rdparty/phonon/mmf/audioplayer.h	Mon Oct 04 01:19:32 2010 +0300
@@ -67,6 +67,7 @@
     virtual int setDeviceVolume(int mmfVolume);
     virtual int openFile(RFile& file);
     virtual int openUrl(const QString& url);
+    virtual int openDescriptor(const TDesC8 &des);
     virtual int bufferStatus() const;
     virtual void close();
 
--- a/src/3rdparty/phonon/mmf/dummyplayer.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/3rdparty/phonon/mmf/dummyplayer.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -92,7 +92,7 @@
     return 0;
 }
 
-void MMF::DummyPlayer::open(const Phonon::MediaSource &, RFile &)
+void MMF::DummyPlayer::open()
 {
 
 }
--- a/src/3rdparty/phonon/mmf/dummyplayer.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/3rdparty/phonon/mmf/dummyplayer.h	Mon Oct 04 01:19:32 2010 +0300
@@ -57,7 +57,7 @@
     virtual qint64 totalTime() const;
 
     // AbstractPlayer
-    virtual void open(const Phonon::MediaSource&, RFile&);
+    virtual void open();
     virtual void close();
     virtual void doSetTickInterval(qint32 interval);
 };
--- a/src/3rdparty/phonon/mmf/mediaobject.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/3rdparty/phonon/mmf/mediaobject.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -34,6 +34,7 @@
 #include "mediaobject.h"
 
 #include <QDir>
+#include <QResource>
 #include <QUrl>
 
 QT_BEGIN_NAMESPACE
@@ -52,6 +53,8 @@
 MMF::MediaObject::MediaObject(QObject *parent) : MMF::MediaNode::MediaNode(parent)
                                                , m_recognizerOpened(false)
                                                , m_nextSourceSet(false)
+                                               , m_file(0)
+                                               , m_resource(0)
 {
     m_player.reset(new DummyPlayer());
 
@@ -68,7 +71,12 @@
     TRACE_CONTEXT(MediaObject::~MediaObject, EAudioApi);
     TRACE_ENTRY_0();
 
-    m_file.Close();
+    delete m_resource;
+
+    if (m_file)
+        m_file->Close();
+    delete m_file;
+
     m_fileServer.Close();
     m_recognizer.Close();
 
@@ -122,12 +130,13 @@
 
         const QHBufC fileNameSymbian(QDir::toNativeSeparators(fileName));
 
-        m_file.Close();
-        TInt err = m_file.Open(m_fileServer, *fileNameSymbian, EFileRead | EFileShareReadersOnly);
+        Q_ASSERT(!m_file);
+        m_file = new RFile;
+        TInt err = m_file->Open(m_fileServer, *fileNameSymbian, EFileRead | EFileShareReadersOnly);
 
         if (KErrNone == err) {
             TDataRecognitionResult recognizerResult;
-            err = m_recognizer.RecognizeData(m_file, recognizerResult);
+            err = m_recognizer.RecognizeData(*m_file, recognizerResult);
             if (KErrNone == err) {
                 const TPtrC mimeType = recognizerResult.iDataType.Des();
                 result = Utils::mimeTypeToMediaType(mimeType);
@@ -142,6 +151,23 @@
     return result;
 }
 
+MMF::MediaType MMF::MediaObject::bufferMediaType(const uchar *data, qint64 size)
+{
+    TRACE_CONTEXT(MediaObject::bufferMediaType, EAudioInternal);
+    MediaType result = MediaTypeUnknown;
+    if (openRecognizer()) {
+        TDataRecognitionResult recognizerResult;
+        const TPtrC8 des(data, size);
+        const TInt err = m_recognizer.RecognizeData(KNullDesC, des, recognizerResult);
+        if (KErrNone == err) {
+            const TPtrC mimeType = recognizerResult.iDataType.Des();
+            result = Utils::mimeTypeToMediaType(mimeType);
+        } else {
+            TRACE("RApaLsSession::RecognizeData error %d", err);
+        }
+    }
+    return result;
+}
 
 //-----------------------------------------------------------------------------
 // MediaObjectInterface
@@ -228,9 +254,17 @@
 
 void MMF::MediaObject::switchToSource(const MediaSource &source)
 {
+    if (m_file)
+        m_file->Close();
+    delete m_file;
+    m_file = 0;
+
+    delete m_resource;
+    m_resource = 0;
+
     createPlayer(source);
     m_source = source;
-    m_player->open(m_source, m_file);
+    m_player->open();
     emit currentSourceChanged(m_source);
 }
 
@@ -272,8 +306,27 @@
 
     case MediaSource::Invalid:
     case MediaSource::Disc:
+        errorMessage = tr("Error opening source: type not supported");
+        break;
+
     case MediaSource::Stream:
-        errorMessage = tr("Error opening source: type not supported");
+        {
+            const QString fileName = source.url().toLocalFile();
+            if (fileName.startsWith(QLatin1String(":/")) || fileName.startsWith(QLatin1String("qrc://"))) {
+                Q_ASSERT(!m_resource);
+                m_resource = new QResource(fileName);
+                if (m_resource->isValid()) {
+                    if (m_resource->isCompressed())
+                        errorMessage = tr("Error opening source: resource is compressed");
+                    else
+		        mediaType = bufferMediaType(m_resource->data(), m_resource->size());
+		} else {
+                    errorMessage = tr("Error opening source: resource not valid");
+                }
+            } else {
+                errorMessage = tr("Error opening source: type not supported");
+            }
+        }
         break;
 
     case MediaSource::Empty:
@@ -374,6 +427,16 @@
     m_player->volumeChanged(volume);
 }
 
+RFile* MMF::MediaObject::file() const
+{
+    return m_file;
+}
+
+QResource* MMF::MediaObject::resource() const
+{
+    return m_resource;
+}
+
 //-----------------------------------------------------------------------------
 // MediaNode
 //-----------------------------------------------------------------------------
--- a/src/3rdparty/phonon/mmf/mediaobject.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/3rdparty/phonon/mmf/mediaobject.h	Mon Oct 04 01:19:32 2010 +0300
@@ -33,6 +33,8 @@
 
 QT_BEGIN_NAMESPACE
 
+class QResource;
+
 namespace Phonon
 {
 namespace MMF
@@ -87,6 +89,9 @@
 
     void setVideoOutput(AbstractVideoOutput* videoOutput);
 
+    RFile* file() const;
+    QResource* resource() const;
+
 public Q_SLOTS:
     void volumeChanged(qreal volume);
     void switchToNextSource();
@@ -117,6 +122,7 @@
 
     // Audio / video media type recognition
     MediaType fileMediaType(const QString& fileName);
+    MediaType bufferMediaType(const uchar *data, qint64 size);
     // TODO: urlMediaType function
 
     static qint64 toMilliSeconds(const TTimeIntervalMicroSeconds &);
@@ -132,9 +138,8 @@
     MediaSource                         m_nextSource;
     bool                                m_nextSourceSet;
 
-    // Storing the file handle here to work around KErrInUse error
-    // from MMF player utility OpenFileL functions
-    RFile                               m_file;
+    RFile*                              m_file;
+    QResource*                          m_resource;
 
     QScopedPointer<AbstractPlayer>      m_player;
 
--- a/src/3rdparty/phonon/phonon/mediasource.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/3rdparty/phonon/phonon/mediasource.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -58,6 +58,7 @@
             d->type = Stream;
             d->ioDevice = new QFile(filename);
             d->setStream(new IODeviceStream(d->ioDevice, d->ioDevice));
+            d->url =  QUrl::fromLocalFile(fileInfo.absoluteFilePath());
 #else
             d->type = Invalid;
 #endif //QT_NO_PHONON_ABSTRACTMEDIASTREAM
--- a/src/3rdparty/phonon/phonon/phononnamespace.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/3rdparty/phonon/phonon/phononnamespace.h	Mon Oct 04 01:19:32 2010 +0300
@@ -41,12 +41,12 @@
 /**
  * PHONON_VERSION is (major << 16) + (minor << 8) + patch.
  */
-#define PHONON_VERSION PHONON_VERSION_CHECK(4, 3, 1)
+#define PHONON_VERSION PHONON_VERSION_CHECK(4, 4, 0)
 
 /**
  * PHONON_VERSION_STR is "major.minor.patch". E.g. "4.2.1"
  */
-#define PHONON_VERSION_STR "4.3.1"
+#define PHONON_VERSION_STR "4.4.0"
 
 QT_BEGIN_HEADER
 QT_BEGIN_NAMESPACE
--- a/src/3rdparty/webkit/.tag	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/3rdparty/webkit/.tag	Mon Oct 04 01:19:32 2010 +0300
@@ -1,1 +1,1 @@
-669858f9bbd4913fd16c642090375c81acbfdb04
+72b1c38579ca1fdb3f242e29cd16e5bfb4925813
--- a/src/3rdparty/webkit/JavaScriptCore/ChangeLog	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/3rdparty/webkit/JavaScriptCore/ChangeLog	Mon Oct 04 01:19:32 2010 +0300
@@ -1,3 +1,90 @@
+2010-07-02  Peter Varga  <pvarga@inf.u-szeged.hu>
+
+        Reviewed by Oliver Hunt.
+
+        The alternativeFrameLocation value is wrong in the emitDisjunction function in
+        case of PatternTerm::TypeParentheticalAssertion. This value needs to be
+        computed from term.frameLocation instead of term.inputPosition. This mistake caused glibc
+        memory corruption in some cases.
+        Layout test added for checking of TypeParentheticalAssertion case.
+        https://bugs.webkit.org/show_bug.cgi?id=41458
+
+        * yarr/RegexInterpreter.cpp:
+        (JSC::Yarr::ByteCompiler::emitDisjunction):
+
+2010-07-03  Yong Li  <yoli@rim.com>
+
+        Reviewed by Darin Adler.
+
+        Make Arguments::MaxArguments clamping work for numbers >= 0x80000000 in
+        the interpreter as well as the JIT.
+
+        https://bugs.webkit.org/show_bug.cgi?id=41351
+        rdar://problem/8142141
+
+        * interpreter/Interpreter.cpp:
+        (JSC::Interpreter::privateExecute): Fix signed integer overflow problem
+        in op_load_varargs handling. 0xFFFFFFFF was read as -1.
+
+2010-07-04  Mark Rowe  <mrowe@apple.com>
+
+        Build fix after r62456.
+
+        * interpreter/Interpreter.cpp:
+        (JSC::Interpreter::privateExecute): Be slightly more consistent in using uint32_t to prevent
+        warnings about comparisons between signed and unsigned types, and attempts to call an overload
+        of std::min that doesn't exist.
+
+2010-07-02  Oliver Hunt  <oliver@apple.com>
+
+        Reviewed by Gavin Barraclough.
+
+        Clamp the number of arguments supported by function.apply
+        https://bugs.webkit.org/show_bug.cgi?id=41351
+        <rdar://problem/8142141>
+
+        Add clamping logic to function.apply similar to that
+        enforced by firefox.  We have a smaller clamp than
+        firefox as our calling convention means that stack
+        usage is proportional to argument count -- the firefox
+        limit is larger than you could actually call.
+
+        * interpreter/Interpreter.cpp:
+        (JSC::Interpreter::privateExecute):
+        * jit/JITStubs.cpp:
+        (JSC::DEFINE_STUB_FUNCTION):
+        * runtime/Arguments.h:
+        (JSC::Arguments::):
+
+2010-07-01  Oliver Hunt  <oliver@apple.com>
+
+        Reviewed by Geoff Garen.
+
+        Improve reentrancy logic in polymorphic cache stubs
+        <https://bugs.webkit.org/show_bug.cgi?id=41482>
+        <rdar://problem/8094380>
+
+        Make the polymorphic cache stubs handle reentrancy
+        better.
+
+        * jit/JITStubs.cpp:
+        (JSC::DEFINE_STUB_FUNCTION):
+        (JSC::getPolymorphicAccessStructureListSlot):
+
+2009-10-30  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        [Qt] Use the default timeout interval for JS as the HTML tokenizer delay for setHtml()
+
+        This ensures that long-running JavaScript (for example due to a modal alert() dialog),
+        will not trigger a deferred load after only 500ms (the default tokenizer delay) while
+        still giving a reasonable timeout (10 seconds) to prevent deadlock.
+
+        https://bugs.webkit.org/show_bug.cgi?id=29381
+
+        * runtime/TimeoutChecker.h: Add getter for the timeout interval
+
 2010-05-18  Anders Carlsson  <andersca@apple.com>
 
         Reviewed by Sam Weinig.
--- a/src/3rdparty/webkit/JavaScriptCore/interpreter/Interpreter.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/3rdparty/webkit/JavaScriptCore/interpreter/Interpreter.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2008, 2009 Apple Inc. All rights reserved.
+ * Copyright (C) 2008, 2009, 2010 Apple Inc. All rights reserved.
  * Copyright (C) 2008 Cameron Zwarich <cwzwarich@uwaterloo.ca>
  *
  * Redistribution and use in source and binary forms, with or without
@@ -3454,9 +3454,10 @@
         int argsOffset = vPC[2].u.operand;
         
         JSValue arguments = callFrame->r(argsOffset).jsValue();
-        int32_t argCount = 0;
+        uint32_t argCount = 0;
         if (!arguments) {
             argCount = (uint32_t)(callFrame->argumentCount()) - 1;
+            argCount = min<uint32_t>(argCount, Arguments::MaxArguments);
             int32_t sizeDelta = argsOffset + argCount + RegisterFile::CallFrameHeaderSize;
             Register* newEnd = callFrame->registers() + sizeDelta;
             if (!registerFile->grow(newEnd) || ((newEnd - callFrame->registers()) != sizeDelta)) {
@@ -3464,9 +3465,9 @@
                 goto vm_throw;
             }
             ASSERT(!callFrame->callee()->isHostFunction());
-            int32_t expectedParams = callFrame->callee()->jsExecutable()->parameterCount();
-            int32_t inplaceArgs = min(argCount, expectedParams);
-            int32_t i = 0;
+            uint32_t expectedParams = callFrame->callee()->jsExecutable()->parameterCount();
+            uint32_t inplaceArgs = min(argCount, expectedParams);
+            uint32_t i = 0;
             Register* argStore = callFrame->registers() + argsOffset;
 
             // First step is to copy the "expected" parameters from their normal location relative to the callframe
@@ -3483,6 +3484,7 @@
             if (asObject(arguments)->classInfo() == &Arguments::info) {
                 Arguments* args = asArguments(arguments);
                 argCount = args->numProvidedArguments(callFrame);
+                argCount = min<uint32_t>(argCount, Arguments::MaxArguments);
                 int32_t sizeDelta = argsOffset + argCount + RegisterFile::CallFrameHeaderSize;
                 Register* newEnd = callFrame->registers() + sizeDelta;
                 if (!registerFile->grow(newEnd) || ((newEnd - callFrame->registers()) != sizeDelta)) {
@@ -3493,6 +3495,7 @@
             } else if (isJSArray(&callFrame->globalData(), arguments)) {
                 JSArray* array = asArray(arguments);
                 argCount = array->length();
+                argCount = min<uint32_t>(argCount, Arguments::MaxArguments);
                 int32_t sizeDelta = argsOffset + argCount + RegisterFile::CallFrameHeaderSize;
                 Register* newEnd = callFrame->registers() + sizeDelta;
                 if (!registerFile->grow(newEnd) || ((newEnd - callFrame->registers()) != sizeDelta)) {
@@ -3503,6 +3506,7 @@
             } else if (asObject(arguments)->inherits(&JSArray::info)) {
                 JSObject* argObject = asObject(arguments);
                 argCount = argObject->get(callFrame, callFrame->propertyNames().length).toUInt32(callFrame);
+                argCount = min<uint32_t>(argCount, Arguments::MaxArguments);
                 int32_t sizeDelta = argsOffset + argCount + RegisterFile::CallFrameHeaderSize;
                 Register* newEnd = callFrame->registers() + sizeDelta;
                 if (!registerFile->grow(newEnd) || ((newEnd - callFrame->registers()) != sizeDelta)) {
@@ -3510,7 +3514,7 @@
                     goto vm_throw;
                 }
                 Register* argsBuffer = callFrame->registers() + argsOffset;
-                for (int32_t i = 0; i < argCount; ++i) {
+                for (uint32_t i = 0; i < argCount; ++i) {
                     argsBuffer[i] = asObject(arguments)->get(callFrame, i);
                     CHECK_FOR_EXCEPTION();
                 }
--- a/src/3rdparty/webkit/JavaScriptCore/jit/JITStubs.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/3rdparty/webkit/JavaScriptCore/jit/JITStubs.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -1330,17 +1330,18 @@
         if (stubInfo->accessType == access_get_by_id_self) {
             ASSERT(!stubInfo->stubRoutine);
             polymorphicStructureList = new PolymorphicAccessStructureList(CodeLocationLabel(), stubInfo->u.getByIdSelf.baseObjectStructure);
-            stubInfo->initGetByIdSelfList(polymorphicStructureList, 2);
+            stubInfo->initGetByIdSelfList(polymorphicStructureList, 1);
         } else {
             polymorphicStructureList = stubInfo->u.getByIdSelfList.structureList;
             listIndex = stubInfo->u.getByIdSelfList.listSize;
-            stubInfo->u.getByIdSelfList.listSize++;
         }
-
-        JIT::compileGetByIdSelfList(callFrame->scopeChain()->globalData, codeBlock, stubInfo, polymorphicStructureList, listIndex, asCell(baseValue)->structure(), ident, slot, slot.cachedOffset());
-
-        if (listIndex == (POLYMORPHIC_LIST_CACHE_SIZE - 1))
-            ctiPatchCallByReturnAddress(codeBlock, STUB_RETURN_ADDRESS, FunctionPtr(cti_op_get_by_id_generic));
+        if (listIndex < POLYMORPHIC_LIST_CACHE_SIZE) {
+            stubInfo->u.getByIdSelfList.listSize++;
+            JIT::compileGetByIdSelfList(callFrame->scopeChain()->globalData, codeBlock, stubInfo, polymorphicStructureList, listIndex, asCell(baseValue)->structure(), ident, slot, slot.cachedOffset());
+
+            if (listIndex == (POLYMORPHIC_LIST_CACHE_SIZE - 1))
+                ctiPatchCallByReturnAddress(codeBlock, STUB_RETURN_ADDRESS, FunctionPtr(cti_op_get_by_id_generic));
+        }
     } else
         ctiPatchCallByReturnAddress(callFrame->codeBlock(), STUB_RETURN_ADDRESS, FunctionPtr(cti_op_get_by_id_generic));
     return JSValue::encode(result);
@@ -1365,13 +1366,14 @@
     case access_get_by_id_proto_list:
         prototypeStructureList = stubInfo->u.getByIdProtoList.structureList;
         listIndex = stubInfo->u.getByIdProtoList.listSize;
-        stubInfo->u.getByIdProtoList.listSize++;
+        if (listIndex < POLYMORPHIC_LIST_CACHE_SIZE)
+            stubInfo->u.getByIdProtoList.listSize++;
         break;
     default:
         ASSERT_NOT_REACHED();
     }
     
-    ASSERT(listIndex < POLYMORPHIC_LIST_CACHE_SIZE);
+    ASSERT(listIndex <= POLYMORPHIC_LIST_CACHE_SIZE);
     return prototypeStructureList;
 }
 
@@ -1446,21 +1448,24 @@
 
         int listIndex;
         PolymorphicAccessStructureList* prototypeStructureList = getPolymorphicAccessStructureListSlot(stubInfo, listIndex);
-
-        JIT::compileGetByIdProtoList(callFrame->scopeChain()->globalData, callFrame, codeBlock, stubInfo, prototypeStructureList, listIndex, structure, slotBaseObject->structure(), propertyName, slot, offset);
-
-        if (listIndex == (POLYMORPHIC_LIST_CACHE_SIZE - 1))
-            ctiPatchCallByReturnAddress(codeBlock, STUB_RETURN_ADDRESS, FunctionPtr(cti_op_get_by_id_proto_list_full));
+        if (listIndex < POLYMORPHIC_LIST_CACHE_SIZE) {
+            JIT::compileGetByIdProtoList(callFrame->scopeChain()->globalData, callFrame, codeBlock, stubInfo, prototypeStructureList, listIndex, structure, slotBaseObject->structure(), propertyName, slot, offset);
+
+            if (listIndex == (POLYMORPHIC_LIST_CACHE_SIZE - 1))
+                ctiPatchCallByReturnAddress(codeBlock, STUB_RETURN_ADDRESS, FunctionPtr(cti_op_get_by_id_proto_list_full));
+        }
     } else if (size_t count = normalizePrototypeChain(callFrame, baseValue, slot.slotBase(), propertyName, offset)) {
         ASSERT(!asCell(baseValue)->structure()->isDictionary());
         int listIndex;
         PolymorphicAccessStructureList* prototypeStructureList = getPolymorphicAccessStructureListSlot(stubInfo, listIndex);
-
-        StructureChain* protoChain = structure->prototypeChain(callFrame);
-        JIT::compileGetByIdChainList(callFrame->scopeChain()->globalData, callFrame, codeBlock, stubInfo, prototypeStructureList, listIndex, structure, protoChain, count, propertyName, slot, offset);
-
-        if (listIndex == (POLYMORPHIC_LIST_CACHE_SIZE - 1))
-            ctiPatchCallByReturnAddress(codeBlock, STUB_RETURN_ADDRESS, FunctionPtr(cti_op_get_by_id_proto_list_full));
+        
+        if (listIndex < POLYMORPHIC_LIST_CACHE_SIZE) {
+            StructureChain* protoChain = structure->prototypeChain(callFrame);
+            JIT::compileGetByIdChainList(callFrame->scopeChain()->globalData, callFrame, codeBlock, stubInfo, prototypeStructureList, listIndex, structure, protoChain, count, propertyName, slot, offset);
+
+            if (listIndex == (POLYMORPHIC_LIST_CACHE_SIZE - 1))
+                ctiPatchCallByReturnAddress(codeBlock, STUB_RETURN_ADDRESS, FunctionPtr(cti_op_get_by_id_proto_list_full));
+        }
     } else
         ctiPatchCallByReturnAddress(codeBlock, STUB_RETURN_ADDRESS, FunctionPtr(cti_op_get_by_id_proto_fail));
 
@@ -2129,6 +2134,7 @@
     if (!arguments) {
         int providedParams = callFrame->registers()[RegisterFile::ArgumentCount].i() - 1;
         argCount = providedParams;
+        argCount = min(argCount, static_cast<uint32_t>(Arguments::MaxArguments));
         int32_t sizeDelta = argsOffset + argCount + RegisterFile::CallFrameHeaderSize;
         Register* newEnd = callFrame->registers() + sizeDelta;
         if (!registerFile->grow(newEnd) || ((newEnd - callFrame->registers()) != sizeDelta)) {
@@ -2164,6 +2170,7 @@
         if (asObject(arguments)->classInfo() == &Arguments::info) {
             Arguments* argsObject = asArguments(arguments);
             argCount = argsObject->numProvidedArguments(callFrame);
+            argCount = min(argCount, static_cast<uint32_t>(Arguments::MaxArguments));
             int32_t sizeDelta = argsOffset + argCount + RegisterFile::CallFrameHeaderSize;
             Register* newEnd = callFrame->registers() + sizeDelta;
             if (!registerFile->grow(newEnd) || ((newEnd - callFrame->registers()) != sizeDelta)) {
@@ -2174,6 +2181,7 @@
         } else if (isJSArray(&callFrame->globalData(), arguments)) {
             JSArray* array = asArray(arguments);
             argCount = array->length();
+            argCount = min(argCount, static_cast<uint32_t>(Arguments::MaxArguments));
             int32_t sizeDelta = argsOffset + argCount + RegisterFile::CallFrameHeaderSize;
             Register* newEnd = callFrame->registers() + sizeDelta;
             if (!registerFile->grow(newEnd) || ((newEnd - callFrame->registers()) != sizeDelta)) {
@@ -2184,6 +2192,7 @@
         } else if (asObject(arguments)->inherits(&JSArray::info)) {
             JSObject* argObject = asObject(arguments);
             argCount = argObject->get(callFrame, callFrame->propertyNames().length).toUInt32(callFrame);
+            argCount = min(argCount, static_cast<uint32_t>(Arguments::MaxArguments));
             int32_t sizeDelta = argsOffset + argCount + RegisterFile::CallFrameHeaderSize;
             Register* newEnd = callFrame->registers() + sizeDelta;
             if (!registerFile->grow(newEnd) || ((newEnd - callFrame->registers()) != sizeDelta)) {
--- a/src/3rdparty/webkit/JavaScriptCore/runtime/Arguments.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/3rdparty/webkit/JavaScriptCore/runtime/Arguments.h	Mon Oct 04 01:19:32 2010 +0300
@@ -55,6 +55,10 @@
 
     class Arguments : public JSObject {
     public:
+        // Use an enum because otherwise gcc insists on doing a memory
+        // read.
+        enum { MaxArguments = 0x10000 };
+
         enum NoParametersType { NoParameters };
 
         Arguments(CallFrame*);
--- a/src/3rdparty/webkit/JavaScriptCore/runtime/JSArray.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/3rdparty/webkit/JavaScriptCore/runtime/JSArray.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -948,10 +948,10 @@
 
 void JSArray::copyToRegisters(ExecState* exec, Register* buffer, uint32_t maxSize)
 {
-    ASSERT(m_storage->m_length == maxSize);
+    ASSERT(m_storage->m_length >= maxSize);
     UNUSED_PARAM(maxSize);
     JSValue* vector = m_storage->m_vector;
-    unsigned vectorEnd = min(m_storage->m_length, m_vectorLength);
+    unsigned vectorEnd = min(maxSize, m_vectorLength);
     unsigned i = 0;
     for (; i < vectorEnd; ++i) {
         JSValue& v = vector[i];
@@ -960,7 +960,7 @@
         buffer[i] = v;
     }
 
-    for (; i < m_storage->m_length; ++i)
+    for (; i < maxSize; ++i)
         buffer[i] = get(exec, i);
 }
 
--- a/src/3rdparty/webkit/JavaScriptCore/runtime/TimeoutChecker.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/3rdparty/webkit/JavaScriptCore/runtime/TimeoutChecker.h	Mon Oct 04 01:19:32 2010 +0300
@@ -40,6 +40,7 @@
         TimeoutChecker();
 
         void setTimeoutInterval(unsigned timeoutInterval) { m_timeoutInterval = timeoutInterval; }
+        unsigned timeoutInterval() const { return m_timeoutInterval; }
         
         unsigned ticksUntilNextCheck() { return m_ticksUntilNextCheck; }
         
--- a/src/3rdparty/webkit/JavaScriptCore/yarr/RegexInterpreter.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/3rdparty/webkit/JavaScriptCore/yarr/RegexInterpreter.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -1554,7 +1554,7 @@
                 }
 
                 case PatternTerm::TypeParentheticalAssertion: {
-                    unsigned alternativeFrameLocation = term.inputPosition + RegexStackSpaceForBackTrackInfoParentheticalAssertion;
+                    unsigned alternativeFrameLocation = term.frameLocation + RegexStackSpaceForBackTrackInfoParentheticalAssertion;
 
                     atomParentheticalAssertionBegin(term.parentheses.subpatternId, term.invertOrCapture, term.frameLocation, alternativeFrameLocation);
                     emitDisjunction(term.parentheses.disjunction, currentCountAlreadyChecked, 0);
--- a/src/3rdparty/webkit/VERSION	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/3rdparty/webkit/VERSION	Mon Oct 04 01:19:32 2010 +0300
@@ -4,4 +4,4 @@
 
 and has the sha1 checksum
 
-        669858f9bbd4913fd16c642090375c81acbfdb04
+        72b1c38579ca1fdb3f242e29cd16e5bfb4925813
--- a/src/3rdparty/webkit/WebCore/ChangeLog	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/3rdparty/webkit/WebCore/ChangeLog	Mon Oct 04 01:19:32 2010 +0300
@@ -1,3 +1,280 @@
+2010-08-10  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
+
+        Reviewed by Simon Hausmann.
+
+        Make sure NPAPI plugins get an initial setNPWindow on Mac
+
+        https://bugs.webkit.org/show_bug.cgi?id=43782
+
+        * plugins/mac/PluginViewMac.mm:
+
+2010-06-14  Andreas Kling  <andreas.kling@nokia.com>
+
+        Reviewed by Tor Arne Vestbø.
+
+        [Qt] Stack overflow when converting navigator object to QVariant
+        https://bugs.webkit.org/show_bug.cgi?id=40572
+
+        Protect against infinite recursion in JSValue->QVariant conversion.
+        This fixes a crash when trying to convert MimeType objects (they
+        recurse infinitely and on-the-fly via the enabledPlugin property.)
+
+        * bridge/qt/qt_runtime.cpp:
+        (JSC::Bindings::convertValueToQVariant):
+
+2010-03-30  Kent Tamura  <tkent@chromium.org>
+
+        Reviewed by Brady Eidson.
+
+        REGRESSION (r56439) - Crash when a renderer for a file upload control
+        with a selected file is recreated
+        https://bugs.webkit.org/show_bug.cgi?id=36723
+
+        RenderFileUploadControl::chooseIconForFiles was called before
+        m_fileChooser was initialized.
+
+        * platform/FileChooser.cpp:
+        (WebCore::FileChooser::FileChooser): Introduce m_isInitializing flag to
+          avoid FileChooserClient::repaint() call.
+        (WebCore::FileChooser::loadIcon):
+        (WebCore::FileChooser::iconLoaded):
+        * platform/FileChooser.h: Add a FielChooser parameter to
+          FileChooserClient::chooseIconForFiles().
+        * rendering/RenderFileUploadControl.cpp:
+        (WebCore::RenderFileUploadControl::chooseIconForFiles):
+        (WebCore::RenderFileUploadControl::paintObject): Add an assertion.
+        * rendering/RenderFileUploadControl.h:
+
+2010-07-06  Nikolas Zimmermann  <nzimmermann@rim.com>
+
+        Reviewed by Dirk Schulze.
+
+        <use> on <font-face> causes crashes, if SVGUseElement gets detached
+        https://bugs.webkit.org/show_bug.cgi?id=41621
+
+        Do not call removeFromMappedElementSheet() from the SVGFontFaceElement destructor,
+        as that can potentially cause the element to be reattached while destructing.
+
+        In order to fix the crash in the testcase, the order of calling the base-class detach
+        method in SVGUseElement and the instance/shadow tree destruction has to be reversed,
+        matching the order in removedFromDocument().
+
+        Test: svg/custom/use-font-face-crash.svg
+
+        * svg/SVGFontFaceElement.cpp:
+        (WebCore::SVGFontFaceElement::~SVGFontFaceElement): Remove removeFromMappedElementSheet() call.
+        * svg/SVGUseElement.cpp:
+        (WebCore::SVGUseElement::detach): Reverse order of calling base-class detach method and instance/shadow tree destruction.
+
+2010-07-06  Nikolas Zimmermann  <nzimmermann@rim.com>
+
+        Reviewed by Darin Adler.
+
+        <use> on <font-face> causes crashes, if SVGUseElement gets detached
+        https://bugs.webkit.org/show_bug.cgi?id=41621
+
+        Do not call removeFromMappedElementSheet() from the destructor, as the call to document()->updateStyleSelector() that can potentially
+        cause the element to be reattached while destructing. It's not needed at all, because removedFromDocument() is called before destruction,
+        which already calls removeFromMappedElementSheet() - at this point it's still safe to update the style selector.
+
+        The crash is reproducable when using <use> on <font-face>.
+
+        Test: svg/custom/use-font-face-crash.svg
+
+        * svg/SVGFontFaceElement.cpp:
+        (WebCore::SVGFontFaceElement::~SVGFontFaceElement):
+
+2010-07-05  Nikolas Zimmermann  <nzimmermann@rim.com>
+
+        Reviewed by Darin Adler.
+
+        Memory corruption with SVG <use> element
+        https://bugs.webkit.org/show_bug.cgi?id=40994
+
+        Fix race condition in svgAttributeChanged. Never call svgAttributeChanged() from attributeChanged()
+        when we're synchronizing SVG attributes. It leads to either unnecessary extra work being done or
+        crashes. Especially together with <polyline>/<polygon> which always synchronize the SVGAnimatedPoints
+        datastructure with the points attribute, no matter if there are changes are not. This should be
+        furhter optimized, but this fix is sane and fixes the root of the evil races.
+
+        Test: svg/custom/use-property-synchronization-crash.svg
+
+        * svg/SVGElement.cpp:
+        (WebCore::SVGElement::attributeChanged):
+
+2010-06-11  Abhishek Arya  <inferno@chromium.org>
+
+        Reviewed by David Hyatt.
+
+        Don't process floats if parent node is not a RenderBlock.
+        https://bugs.webkit.org/show_bug.cgi?id=40033
+
+        Test: svg/text/clear-floats-crash.svg
+
+        * rendering/RenderBlock.cpp:
+        (WebCore::RenderBlock::clearFloats):
+
+2010-06-23  Nikolas Zimmermann  <nzimmermann@rim.com>
+
+        Reviewed by Eric Seidel.
+
+        Reproducible crash in com.apple.WebCore 0x01ed3784 WebCore::RenderLineBoxList::appendLineBox(WebCore::InlineFlowBox*) + 36
+        https://bugs.webkit.org/show_bug.cgi?id=40953
+
+        REGRESSION (r58209-58231): Memory corruption with invalid SVG
+        https://bugs.webkit.org/show_bug.cgi?id=40173
+
+        Fix several crashes, all related to <foreignObject> and/or invalid SVG documents.
+        - Only allow <svg> nodes, as direct children of a <foreignObject>, not any other "partial" SVG content.
+        - Assure to create RenderSVGRoot objects for <svg> nodes in <foreignObject>, treat them as "outermost SVG elements".
+        - Never allow any partial SVG content to appear in any document. Only <svg> elements are allowed.
+
+        Tests: svg/custom/bug45331.svg
+               svg/foreignObject/disallowed-svg-nodes-as-direct-children.svg
+               svg/foreignObject/no-crash-with-svg-content-in-html-document.svg
+               svg/foreignObject/svg-document-as-direct-child.svg
+               svg/foreignObject/svg-document-in-html-document.svg
+               svg/foreignObject/text-tref-02-b.svg
+
+        * dom/Element.cpp: Added childShouldCreateRenderer, with ENABLE(SVG) guards.
+        (WebCore::Element::childShouldCreateRenderer): Only create a renderer for a SVG child, if we're a SVG element, or if the child is a <svg> element.
+        * dom/Element.h: Added childShouldCreateRenderer, with ENABLE(SVG) guards.
+        * svg/SVGForeignObjectElement.cpp:
+        (WebCore::SVGForeignObjectElement::childShouldCreateRenderer): Disallow arbitary SVG content, only <svg> elements are allowed as direct children of a <foreignObject>
+        * svg/SVGSVGElement.cpp:
+        (WebCore::SVGSVGElement::isOutermostSVG): Be sure to create RenderSVGRoot objects for <svg> elements inside <foreignObject>
+
+2010-06-10  Abhishek Arya  <inferno@chromium.org>
+
+        Reviewed by Dave Hyatt.
+
+        Do not render CSS Styles :first-letter and :first-line in a SVG text element context. 
+        https://bugs.webkit.org/show_bug.cgi?id=40031
+
+        Test: svg/text/text-style-invalid.svg
+
+        * rendering/RenderSVGText.cpp:
+        (WebCore::RenderSVGText::firstLineBlock):
+        (WebCore::RenderSVGText::updateFirstLetter):
+        * rendering/RenderSVGText.h:
+
+2010-07-01  Justin Schuh  <jschuh@chromium.org>
+
+        Reviewed by Dan Bernstein.
+
+        Prevent crash on counter destruction
+        https://bugs.webkit.org/show_bug.cgi?id=40032
+
+        Added counter destruction to RenderWidget::destroy()
+
+        Test: fast/css/counters/destroy-counter-crash.html
+
+        * rendering/RenderWidget.cpp:
+        (WebCore::RenderWidget::destroy):
+
+2010-06-29  Dan Bernstein  <mitz@apple.com>
+
+        Reviewed by Darin Adler.
+
+        <rdar://problem/7975842> Certain text is repeated after using splitText()
+
+        Tests: fast/text/setData-dirty-lines.html
+               fast/text/splitText-dirty-lines.html
+
+        * dom/CharacterData.cpp:
+        (WebCore::CharacterData::setData): Call RenderText::setTextWithOffset() rather than
+        setText(), because only the former correctly dirties line boxes.
+        * dom/Text.cpp:
+        (WebCore::Text::splitText): Ditto.
+
+2010-06-25  Dan Bernstein  <mitz@apple.com>
+
+        Reviewed by Sam Weinig.
+
+        <rdar://problem/8000667> Certain text is repeated before and after a line break
+
+        Test: fast/text/bidi-explicit-embedding-past-end.html
+
+        * platform/text/BidiResolver.h:
+        (WebCore::::createBidiRunsForLine): Committing explicit embedding past the end of the range
+        creates BidiRuns up to the end of the range, so at that point, we can stop iterating.
+
+2010-06-10  Tony Chang  <tony@chromium.org>
+
+        Reviewed by Kent Tamura.
+
+        crash when focus is changed while trying to focus next element
+        https://bugs.webkit.org/show_bug.cgi?id=40407
+
+        Test: fast/events/focus-change-crash.html
+
+        * dom/Element.cpp:
+        (WebCore::Element::focus):
+
+2010-07-01  Andreas Kling  <andreas.kling@nokia.com>
+
+        Reviewed by Tor Arne Vestbø.
+
+        [Qt] Clamp color stops passed to QGradient to 1.0
+        [https://bugs.webkit.org/show_bug.cgi?id=41484
+
+        Fixes an issue where color stops would be silently dropped from radial gradients.
+
+        * platform/graphics/qt/GradientQt.cpp:
+        (WebCore::Gradient::platformGradient):
+
+2010-07-07  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
+
+        Reviewed by Darin Adler.
+
+        Prevent assertion/duplicate loads for non-deferred subtitute-data loads
+
+        https://bugs.webkit.org/show_bug.cgi?id=30879
+
+        MainResourceLoader uses the member m_initialRequest to store requests for future
+        deferred loads. When doing the actual load in handleDataLoadNow(), we therefore
+        have to clear this request so that subsequent entries into the loader will not
+        start yet another load.
+
+        This can happen as a result of a PageGroupLoadDeferrer going out of scope when
+        returning from Chrome::runJavaScriptAlert(), which calls setDeferredLoading(false),
+        but only in the case of using both substitute-data and non-deferred main resource
+        load together. That's why two new DRT functions were added:
+
+         * queueLoadHTMLString()
+         * setDeferMainResourceLoad()
+
+        The change adds DRT hooks for Mac, Win and Qt for these two functions. For Mac
+        and Win the hook uses new SPI in WebDataSource. For Qt a new static member was
+        added to the FrameLoaderClientQt and accessed though DumpRenderTreeSupportQt.
+
+        Test: fast/loader/non-deferred-substitute-load.html
+
+        * loader/MainResourceLoader.cpp:
+        (WebCore::MainResourceLoader::handleDataLoadNow):
+
+2010-07-16  Antonio Gomes  <tonikitoo@webkit.org>
+
+        Reviewed by Simon Fraser.
+
+        Spatial navigation: do not consider outline for focusable element boundaries
+        https://bugs.webkit.org/show_bug.cgi?id=42474
+
+        Test: fast/events/spatial-navigation/snav-zero-margin-content.html
+
+        Currently in WebCore::renderRectRelativeToRootDocument function, we are calling
+        RenderObject::absoluteClippedOverflowRect to obtain the rect boundary of a given
+        renderer/element. This method deals with outline, which is out of elements boundary.
+        It makes spatial navigation to fail on common sites like google.gom: "Web, Images, Map, etc"
+        are inaccessible.
+
+        Patch replaces RenderObject::absoluteClippedOverflowRect by Node::getRect,
+        which returns only the absolute bounding box rect of the Element.
+
+        * page/SpatialNavigation.cpp:
+        (WebCore::renderRectRelativeToRootDocument):
+        (WebCore::checkNegativeCoordsForNode):
+
 2010-07-21  Kristian Amlie <kristian.amlie@nokia.com>
 
         Reviewed by Kenneth Rohde Christiansen.
--- a/src/3rdparty/webkit/WebCore/WebCore.pro	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/3rdparty/webkit/WebCore/WebCore.pro	Mon Oct 04 01:19:32 2010 +0300
@@ -83,7 +83,7 @@
     symbian: TARGET =$$TARGET$${QT_LIBINFIX}
 }
 moduleFile=$$PWD/../WebKit/qt/qt_webkit_version.pri
-include($$moduleFile)
+isEmpty(QT_BUILD_TREE):include($$moduleFile)
 VERSION = $${QT_WEBKIT_MAJOR_VERSION}.$${QT_WEBKIT_MINOR_VERSION}.$${QT_WEBKIT_PATCH_VERSION}
 
 unix {
@@ -2858,6 +2858,25 @@
     }
 }
 
+!symbian-abld:!symbian-sbsv2 {
+    modfile.files = $$moduleFile
+    modfile.path = $$[QMAKE_MKSPECS]/modules
+
+    INSTALLS += modfile
+} else {
+    # INSTALLS is not implemented in qmake's mmp generators, copy headers manually
+
+    inst_modfile.commands = $$QMAKE_COPY ${QMAKE_FILE_NAME} ${QMAKE_FILE_OUT}
+    inst_modfile.input = moduleFile
+    inst_modfile.output = $$[QMAKE_MKSPECS]/modules
+    inst_modfile.CONFIG = no_clean
+
+    QMAKE_EXTRA_COMPILERS += inst_modfile
+
+    install.depends += compiler_inst_modfile_make_all
+    QMAKE_EXTRA_TARGETS += install
+}
+
 include($$PWD/../WebKit/qt/Api/headers.pri)
 HEADERS += $$WEBKIT_API_HEADERS
 
@@ -2874,10 +2893,7 @@
         !isEmpty(INSTALL_LIBS): target.path = $$INSTALL_LIBS
         else: target.path = $$[QT_INSTALL_LIBS]
 
-        modfile.files = $$moduleFile
-        modfile.path = $$[QMAKE_MKSPECS]/modules
-
-        INSTALLS += target headers modfile
+        INSTALLS += target headers
     } else {
         # INSTALLS is not implemented in qmake's s60 generators, copy headers manually
         inst_headers.commands = $$QMAKE_COPY ${QMAKE_FILE_NAME} ${QMAKE_FILE_OUT}
@@ -2889,15 +2905,7 @@
 
         QMAKE_EXTRA_COMPILERS += inst_headers
 
-        inst_modfile.commands = $$inst_headers.commands
-        inst_modfile.input = moduleFile
-        inst_modfile.output = $$[QMAKE_MKSPECS]/modules
-        inst_modfile.CONFIG = no_clean
-
-        QMAKE_EXTRA_COMPILERS += inst_modfile
-
-        install.depends += compiler_inst_headers_make_all compiler_inst_modfile_make_all
-        QMAKE_EXTRA_TARGETS += install
+        install.depends += compiler_inst_headers_make_all
     }
 
     win32-*|wince* {
--- a/src/3rdparty/webkit/WebCore/bridge/qt/qt_runtime.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/3rdparty/webkit/WebCore/bridge/qt/qt_runtime.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -162,9 +162,11 @@
     return String; // I don't know.
 }
 
-QVariant convertValueToQVariant(ExecState* exec, JSValue value, QMetaType::Type hint, int *distance, HashSet<JSObject*>* visitedObjects)
+QVariant convertValueToQVariant(ExecState* exec, JSValue value, QMetaType::Type hint, int *distance, HashSet<JSObject*>* visitedObjects, int recursionLimit)
 {
-    if (!value)
+    --recursionLimit;
+
+    if (!value || !recursionLimit)
         return QVariant();
 
     JSObject* object = 0;
@@ -344,7 +346,7 @@
                 while(it != properties.end()) {
                     if (object->propertyIsEnumerable(exec, *it)) {
                         JSValue val = object->get(exec, *it);
-                        QVariant v = convertValueToQVariant(exec, val, QMetaType::Void, &objdist, visitedObjects);
+                        QVariant v = convertValueToQVariant(exec, val, QMetaType::Void, &objdist, visitedObjects, recursionLimit);
                         if (objdist >= 0) {
                             UString ustring = (*it).ustring();
                             QString id = QString((const QChar*)ustring.rep()->characters(), ustring.size());
@@ -368,7 +370,7 @@
                 qConvDebug() << "converting a " << len << " length Array";
                 for (int i = 0; i < len; ++i) {
                     JSValue val = rtarray->getConcreteArray()->valueAt(exec, i);
-                    result.append(convertValueToQVariant(exec, val, QMetaType::Void, &objdist, visitedObjects));
+                    result.append(convertValueToQVariant(exec, val, QMetaType::Void, &objdist, visitedObjects, recursionLimit));
                     if (objdist == -1) {
                         qConvDebug() << "Failed converting element at index " << i;
                         break; // Failed converting a list entry, so fail the array
@@ -387,7 +389,7 @@
                 qConvDebug() << "converting a " << len << " length Array";
                 for (int i = 0; i < len; ++i) {
                     JSValue val = array->get(exec, i);
-                    result.append(convertValueToQVariant(exec, val, QMetaType::Void, &objdist, visitedObjects));
+                    result.append(convertValueToQVariant(exec, val, QMetaType::Void, &objdist, visitedObjects, recursionLimit));
                     if (objdist == -1) {
                         qConvDebug() << "Failed converting element at index " << i;
                         break; // Failed converting a list entry, so fail the array
@@ -401,7 +403,7 @@
                 // Make a single length array
                 int objdist;
                 qConvDebug() << "making a single length variantlist";
-                QVariant var = convertValueToQVariant(exec, value, QMetaType::Void, &objdist, visitedObjects);
+                QVariant var = convertValueToQVariant(exec, value, QMetaType::Void, &objdist, visitedObjects, recursionLimit);
                 if (objdist != -1) {
                     QVariantList result;
                     result << var;
@@ -645,7 +647,7 @@
                     for (int i = 0; i < len; ++i) {
                         JSValue val = rtarray->getConcreteArray()->valueAt(exec, i);
                         int itemdist = -1;
-                        QVariant item = convertValueToQVariant(exec, val, QMetaType::QObjectStar, &itemdist, visitedObjects);
+                        QVariant item = convertValueToQVariant(exec, val, QMetaType::QObjectStar, &itemdist, visitedObjects, recursionLimit);
                         if (itemdist >= 0)
                             result.append(item.value<QObject*>());
                         else
@@ -664,7 +666,7 @@
                     for (int i = 0; i < len; ++i) {
                         JSValue val = array->get(exec, i);
                         int itemdist = -1;
-                        QVariant item = convertValueToQVariant(exec, val, QMetaType::QObjectStar, &itemdist, visitedObjects);
+                        QVariant item = convertValueToQVariant(exec, val, QMetaType::QObjectStar, &itemdist, visitedObjects, recursionLimit);
                         if (itemdist >= 0)
                             result.append(item.value<QObject*>());
                         else
@@ -679,7 +681,7 @@
                     // Make a single length array
                     QObjectList result;
                     int itemdist = -1;
-                    QVariant item = convertValueToQVariant(exec, value, QMetaType::QObjectStar, &itemdist, visitedObjects);
+                    QVariant item = convertValueToQVariant(exec, value, QMetaType::QObjectStar, &itemdist, visitedObjects, recursionLimit);
                     if (itemdist >= 0) {
                         result.append(item.value<QObject*>());
                         dist = 10;
@@ -696,7 +698,7 @@
                     for (int i = 0; i < len; ++i) {
                         JSValue val = rtarray->getConcreteArray()->valueAt(exec, i);
                         int itemdist = -1;
-                        QVariant item = convertValueToQVariant(exec, val, QMetaType::Int, &itemdist, visitedObjects);
+                        QVariant item = convertValueToQVariant(exec, val, QMetaType::Int, &itemdist, visitedObjects, recursionLimit);
                         if (itemdist >= 0)
                             result.append(item.value<int>());
                         else
@@ -715,7 +717,7 @@
                     for (int i = 0; i < len; ++i) {
                         JSValue val = array->get(exec, i);
                         int itemdist = -1;
-                        QVariant item = convertValueToQVariant(exec, val, QMetaType::Int, &itemdist, visitedObjects);
+                        QVariant item = convertValueToQVariant(exec, val, QMetaType::Int, &itemdist, visitedObjects, recursionLimit);
                         if (itemdist >= 0)
                             result.append(item.value<int>());
                         else
@@ -730,7 +732,7 @@
                     // Make a single length array
                     QList<int> result;
                     int itemdist = -1;
-                    QVariant item = convertValueToQVariant(exec, value, QMetaType::Int, &itemdist, visitedObjects);
+                    QVariant item = convertValueToQVariant(exec, value, QMetaType::Int, &itemdist, visitedObjects, recursionLimit);
                     if (itemdist >= 0) {
                         result.append(item.value<int>());
                         dist = 10;
@@ -757,7 +759,7 @@
                     }
 
                     // And then recurse with the autodetect flag
-                    ret = convertValueToQVariant(exec, value, QMetaType::Void, distance, visitedObjects);
+                    ret = convertValueToQVariant(exec, value, QMetaType::Void, distance, visitedObjects, recursionLimit);
                     dist = 10;
                 }
                 break;
@@ -777,8 +779,9 @@
 
 QVariant convertValueToQVariant(ExecState* exec, JSValue value, QMetaType::Type hint, int *distance)
 {
+    const int recursionLimit = 200;
     HashSet<JSObject*> visitedObjects;
-    return convertValueToQVariant(exec, value, hint, distance, &visitedObjects);
+    return convertValueToQVariant(exec, value, hint, distance, &visitedObjects, recursionLimit);
 }
 
 JSValue convertQVariantToValue(ExecState* exec, PassRefPtr<RootObject> root, const QVariant& variant)
--- a/src/3rdparty/webkit/WebCore/dom/CharacterData.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/3rdparty/webkit/WebCore/dom/CharacterData.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -46,15 +46,15 @@
     int oldLength = length();
     RefPtr<StringImpl> oldStr = m_data;
     m_data = dataImpl;
-    
+
     if ((!renderer() || !rendererIsNeeded(renderer()->style())) && attached()) {
         detach();
         attach();
     } else if (renderer())
-        toRenderText(renderer())->setText(m_data);
-    
+        toRenderText(renderer())->setTextWithOffset(m_data, 0, oldLength);
+
     dispatchModifiedEvent(oldStr.get());
-    
+
     document()->textRemoved(this, 0, oldLength);
 }
 
--- a/src/3rdparty/webkit/WebCore/dom/Element.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/3rdparty/webkit/WebCore/dom/Element.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -1311,8 +1311,12 @@
             return;
     }
 
-    if (Page* page = doc->page())
+    RefPtr<Node> protect;
+    if (Page* page = doc->page()) {
+        // Focus and change event handlers can cause us to lose our last ref.
+        protect = this;
         page->focusController()->setFocusedNode(this, doc->frame());
+    }
 
     // Setting the focused node above might have invalidated the layout due to scripts.
     doc->updateLayoutIgnorePendingStylesheets();
@@ -1535,4 +1539,15 @@
     return rareData()->m_idAttributeName;
 }
 
+#if ENABLE(SVG)
+bool Element::childShouldCreateRenderer(Node* child) const
+{
+    // Only create renderers for SVG elements whose parents are SVG elements, or for proper <svg xmlns="svgNS"> subdocuments.
+    if (child->isSVGElement())
+        return child->hasTagName(SVGNames::svgTag) || isSVGElement();
+
+    return Node::childShouldCreateRenderer(child);
+}
+#endif
+
 } // namespace WebCore
--- a/src/3rdparty/webkit/WebCore/dom/Element.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/3rdparty/webkit/WebCore/dom/Element.h	Mon Oct 04 01:19:32 2010 +0300
@@ -270,6 +270,10 @@
 
     virtual void dispatchFormControlChangeEvent() { }
 
+#if ENABLE(SVG)
+    virtual bool childShouldCreateRenderer(Node*) const; 
+#endif
+
 protected:
     Element(const QualifiedName&, Document*, ConstructionType);
 
--- a/src/3rdparty/webkit/WebCore/dom/Text.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/3rdparty/webkit/WebCore/dom/Text.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -77,7 +77,7 @@
         document()->textNodeSplit(this);
 
     if (renderer())
-        toRenderText(renderer())->setText(dataImpl());
+        toRenderText(renderer())->setTextWithOffset(dataImpl(), 0, oldStr->length());
 
     return newText.release();
 }
--- a/src/3rdparty/webkit/WebCore/loader/MainResourceLoader.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/3rdparty/webkit/WebCore/loader/MainResourceLoader.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -464,6 +464,10 @@
     KURL url = m_substituteData.responseURL();
     if (url.isEmpty())
         url = m_initialRequest.url();
+
+    // Clear the initial request here so that subsequent entries into the
+    // loader will not think there's still a deferred load left to do.
+    m_initialRequest = ResourceRequest();
         
     ResourceResponse response(url, m_substituteData.mimeType(), m_substituteData.content()->size(), m_substituteData.textEncoding(), "");
     didReceiveResponse(response);
--- a/src/3rdparty/webkit/WebCore/page/SpatialNavigation.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/3rdparty/webkit/WebCore/page/SpatialNavigation.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -102,14 +102,9 @@
 // FIXME: This function does not behave correctly with transformed frames.
 static IntRect renderRectRelativeToRootDocument(RenderObject* render)
 {
-    ASSERT(render);
-
-    IntRect rect(render->absoluteClippedOverflowRect());
+    ASSERT(render && render->node());
 
-    if (rect.isEmpty()) {
-        Element* e = static_cast<Element*>(render->node());
-        rect = e->getRect();
-    }
+    IntRect rect = render->node()->getRect();
 
     // In cases when the |render|'s associated node is in a scrollable inner
     // document, we only consider its scrollOffset if it is not offscreen.
@@ -516,7 +511,7 @@
 {
     ASSERT(node || node->renderer());
 
-    if (curRect.x() > 0 && curRect.y() > 0)
+    if (curRect.x() >= 0 && curRect.y() >= 0)
         return true;
 
     bool canBeScrolled = false;
--- a/src/3rdparty/webkit/WebCore/platform/FileChooser.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/3rdparty/webkit/WebCore/platform/FileChooser.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -39,9 +39,11 @@
 
 inline FileChooser::FileChooser(FileChooserClient* client, const Vector<String>& initialFilenames)
     : m_client(client)
+    , m_isInitializing(true)
 {
     m_filenames = initialFilenames;
     loadIcon();
+    m_isInitializing = false;
 }
 
 PassRefPtr<FileChooser> FileChooser::create(FileChooserClient* client, const Vector<String>& initialFilenames)
@@ -79,13 +81,13 @@
 void FileChooser::loadIcon()
 {
     if (m_filenames.size() && m_client)
-        m_client->chooseIconForFiles(m_filenames);
+        m_client->chooseIconForFiles(this, m_filenames);
 }
 
 void FileChooser::iconLoaded(PassRefPtr<Icon> icon)
 {
     m_icon = icon;
-    if (m_icon && m_client)
+    if (!m_isInitializing && m_icon && m_client)
         m_client->repaint();
 }
 
--- a/src/3rdparty/webkit/WebCore/platform/FileChooser.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/3rdparty/webkit/WebCore/platform/FileChooser.h	Mon Oct 04 01:19:32 2010 +0300
@@ -35,6 +35,7 @@
 
 namespace WebCore {
 
+class FileChooser;
 class Font;
 class Icon;
 
@@ -44,7 +45,7 @@
     virtual void repaint() = 0;
     virtual bool allowsMultipleFiles() = 0;
     virtual String acceptTypes() = 0;
-    virtual void chooseIconForFiles(const Vector<String>&) = 0;
+    virtual void chooseIconForFiles(FileChooser*, const Vector<String>&) = 0;
     virtual ~FileChooserClient();
 };
 
@@ -79,6 +80,7 @@
     FileChooserClient* m_client;
     Vector<String> m_filenames;
     RefPtr<Icon> m_icon;
+    bool m_isInitializing;
 };
 
 } // namespace WebCore
--- a/src/3rdparty/webkit/WebCore/platform/graphics/qt/GradientQt.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/3rdparty/webkit/WebCore/platform/graphics/qt/GradientQt.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -65,7 +65,7 @@
             lastStop = stopIterator->stop;
         if (m_radial && m_r0)
             lastStop = m_r0 / m_r1 + lastStop * (1.0f - m_r0 / m_r1);
-        m_gradient->setColorAt(lastStop, stopColor);
+        m_gradient->setColorAt(qMin(lastStop, qreal(1.0f)), stopColor);
         // Keep the lastStop as orginal value, since the following stopColor depend it
         lastStop = stopIterator->stop;
         ++stopIterator;
--- a/src/3rdparty/webkit/WebCore/platform/text/BidiResolver.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/3rdparty/webkit/WebCore/platform/text/BidiResolver.h	Mon Oct 04 01:19:32 2010 +0300
@@ -806,35 +806,33 @@
             break;
         }
 
-        if (pastEnd) {
-            if (eor == current) {
-                if (!reachedEndOfLine) {
-                    eor = endOfLine;
-                    switch (m_status.eor) {
-                        case LeftToRight:
-                        case RightToLeft:
-                        case ArabicNumber:
-                            m_direction = m_status.eor;
-                            break;
-                        case EuropeanNumber:
-                            m_direction = m_status.lastStrong == LeftToRight ? LeftToRight : EuropeanNumber;
-                            break;
-                        default:
-                            ASSERT(false);
-                    }
-                    appendRun();
+        if (pastEnd && eor == current) {
+            if (!reachedEndOfLine) {
+                eor = endOfLine;
+                switch (m_status.eor) {
+                    case LeftToRight:
+                    case RightToLeft:
+                    case ArabicNumber:
+                        m_direction = m_status.eor;
+                        break;
+                    case EuropeanNumber:
+                        m_direction = m_status.lastStrong == LeftToRight ? LeftToRight : EuropeanNumber;
+                        break;
+                    default:
+                        ASSERT(false);
                 }
-                current = end;
-                m_status = stateAtEnd.m_status;
-                sor = stateAtEnd.sor; 
-                eor = stateAtEnd.eor;
-                last = stateAtEnd.last;
-                reachedEndOfLine = stateAtEnd.reachedEndOfLine;
-                lastBeforeET = stateAtEnd.lastBeforeET;
-                emptyRun = stateAtEnd.emptyRun;
-                m_direction = OtherNeutral;
-                break;
+                appendRun();
             }
+            current = end;
+            m_status = stateAtEnd.m_status;
+            sor = stateAtEnd.sor; 
+            eor = stateAtEnd.eor;
+            last = stateAtEnd.last;
+            reachedEndOfLine = stateAtEnd.reachedEndOfLine;
+            lastBeforeET = stateAtEnd.lastBeforeET;
+            emptyRun = stateAtEnd.emptyRun;
+            m_direction = OtherNeutral;
+            break;
         }
 
         // set m_status.last as needed.
@@ -887,8 +885,21 @@
         }
 
         increment();
-        if (!m_currentExplicitEmbeddingSequence.isEmpty())
+        if (!m_currentExplicitEmbeddingSequence.isEmpty()) {
             commitExplicitEmbedding();
+            if (pastEnd) {
+                current = end;
+                m_status = stateAtEnd.m_status;
+                sor = stateAtEnd.sor; 
+                eor = stateAtEnd.eor;
+                last = stateAtEnd.last;
+                reachedEndOfLine = stateAtEnd.reachedEndOfLine;
+                lastBeforeET = stateAtEnd.lastBeforeET;
+                emptyRun = stateAtEnd.emptyRun;
+                m_direction = OtherNeutral;
+                break;
+            }
+        }
 
         if (emptyRun && (dirCurrent == RightToLeftEmbedding
                 || dirCurrent == LeftToRightEmbedding
--- a/src/3rdparty/webkit/WebCore/plugins/mac/PluginViewMac.mm	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/3rdparty/webkit/WebCore/plugins/mac/PluginViewMac.mm	Mon Oct 04 01:19:32 2010 +0300
@@ -227,7 +227,10 @@
 #endif
     }
 
-    show();
+    updatePluginWidget();
+
+    if (!m_plugin->quirks().contains(PluginQuirkDeferFirstSetWindowCall))
+        setNPWindowIfNeeded();
 
     // TODO: Implement null timer throttling depending on plugin activation
     m_nullEventTimer.set(new Timer<PluginView>(this, &PluginView::nullEventTimerFired));
--- a/src/3rdparty/webkit/WebCore/rendering/RenderBlock.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/3rdparty/webkit/WebCore/rendering/RenderBlock.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -2981,6 +2981,12 @@
             m_floatingObjects->clear();
     }
 
+    // We should not process floats if the parent node is not a RenderBlock. Otherwise, we will add 
+    // floats in an invalid context. This will cause a crash arising from a bad cast on the parent.
+    // See <rdar://problem/8049753>, where float property is applied on a text node in a SVG.
+    if (!parent() || !parent()->isRenderBlock())
+        return;
+
     // Attempt to locate a previous sibling with overhanging floats.  We skip any elements that are
     // out of flow (like floating/positioned elements), and we also skip over any objects that may have shifted
     // to avoid floats.
--- a/src/3rdparty/webkit/WebCore/rendering/RenderFileUploadControl.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/3rdparty/webkit/WebCore/rendering/RenderFileUploadControl.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -114,10 +114,10 @@
     return static_cast<HTMLInputElement*>(node())->accept();
 }
 
-void RenderFileUploadControl::chooseIconForFiles(const Vector<String>& filenames)
+void RenderFileUploadControl::chooseIconForFiles(FileChooser* chooser, const Vector<String>& filenames)
 {
     if (Chrome* chromePointer = chrome())
-        chromePointer->chooseIconForFiles(filenames, m_fileChooser);
+        chromePointer->chooseIconForFiles(filenames, chooser);
 }
 
 void RenderFileUploadControl::click()
@@ -195,6 +195,7 @@
 {
     if (style()->visibility() != VISIBLE)
         return;
+    ASSERT(m_fileChooser);
     
     // Push a clip.
     if (paintInfo.phase == PaintPhaseForeground || paintInfo.phase == PaintPhaseChildBlockBackgrounds) {
--- a/src/3rdparty/webkit/WebCore/rendering/RenderFileUploadControl.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/3rdparty/webkit/WebCore/rendering/RenderFileUploadControl.h	Mon Oct 04 01:19:32 2010 +0300
@@ -63,7 +63,7 @@
     void repaint() { RenderBlock::repaint(); }
     bool allowsMultipleFiles();
     String acceptTypes();
-    void chooseIconForFiles(const Vector<String>&);
+    void chooseIconForFiles(FileChooser*, const Vector<String>&);
 
     Chrome* chrome() const;
     int maxFilenameWidth() const;
--- a/src/3rdparty/webkit/WebCore/rendering/RenderSVGText.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/3rdparty/webkit/WebCore/rendering/RenderSVGText.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -225,6 +225,19 @@
     return repaintRect;
 }
 
+// Fix for <rdar://problem/8048875>. We should not render :first-line CSS Style
+// in a SVG text element context.
+RenderBlock* RenderSVGText::firstLineBlock() const
+{
+    return 0;
+}
+
+// Fix for <rdar://problem/8048875>. We should not render :first-letter CSS Style
+// in a SVG text element context.
+void RenderSVGText::updateFirstLetter()
+{
+}
+
 }
 
 #endif // ENABLE(SVG)
--- a/src/3rdparty/webkit/WebCore/rendering/RenderSVGText.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/3rdparty/webkit/WebCore/rendering/RenderSVGText.h	Mon Oct 04 01:19:32 2010 +0300
@@ -72,6 +72,9 @@
 
     virtual RootInlineBox* createRootInlineBox();
 
+    virtual RenderBlock* firstLineBlock() const;
+    virtual void updateFirstLetter();
+
     AffineTransform m_localTransform;
 };
 
--- a/src/3rdparty/webkit/WebCore/rendering/RenderWidget.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/3rdparty/webkit/WebCore/rendering/RenderWidget.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -27,6 +27,7 @@
 #include "AnimationController.h"
 #include "GraphicsContext.h"
 #include "HitTestResult.h"
+#include "RenderCounter.h"
 #include "RenderView.h"
 #include "RenderWidgetProtector.h"
 
@@ -114,6 +115,9 @@
     if (RenderView* v = view())
         v->removeWidget(this);
 
+    if (m_hasCounterNodeMap)
+        RenderCounter::destroyCounterNodes(this);
+    
     if (AXObjectCache::accessibilityEnabled()) {
         document()->axObjectCache()->childrenChanged(this->parent());
         document()->axObjectCache()->remove(this);
--- a/src/3rdparty/webkit/WebCore/svg/SVGElement.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/3rdparty/webkit/WebCore/svg/SVGElement.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -304,6 +304,15 @@
         return;
 
     StyledElement::attributeChanged(attr, preserveDecls);
+
+    // When an animated SVG property changes through SVG DOM, svgAttributeChanged() is called, not attributeChanged().
+    // Next time someone tries to access the XML attributes, the synchronization code starts. During that synchronization
+    // SVGAnimatedPropertySynchronizer may call NamedNodeMap::removeAttribute(), which in turn calls attributeChanged().
+    // At this point we're not allowed to call svgAttributeChanged() again - it may lead to extra work being done, or crashes
+    // see bug https://bugs.webkit.org/show_bug.cgi?id=40994.
+    if (m_synchronizingSVGAttributes)
+        return;
+
     svgAttributeChanged(attr->name());
 }
 
--- a/src/3rdparty/webkit/WebCore/svg/SVGFontFaceElement.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/3rdparty/webkit/WebCore/svg/SVGFontFaceElement.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -59,7 +59,6 @@
 
 SVGFontFaceElement::~SVGFontFaceElement()
 {
-    removeFromMappedElementSheet();
 }
 
 static int cssPropertyIdForSVGAttributeName(const QualifiedName& attrName)
--- a/src/3rdparty/webkit/WebCore/svg/SVGForeignObjectElement.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/3rdparty/webkit/WebCore/svg/SVGForeignObjectElement.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -125,6 +125,10 @@
 
 bool SVGForeignObjectElement::childShouldCreateRenderer(Node* child) const
 {
+    // Disallow arbitary SVG content. Only allow proper <svg xmlns="svgNS"> subdocuments.
+    if (child->isSVGElement())
+        return child->hasTagName(SVGNames::svgTag);
+
     // Skip over SVG rules which disallow non-SVG kids
     return StyledElement::childShouldCreateRenderer(child);
 }
--- a/src/3rdparty/webkit/WebCore/svg/SVGSVGElement.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/3rdparty/webkit/WebCore/svg/SVGSVGElement.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -538,6 +538,10 @@
     if (!parentNode())
         return true;
 
+    // We act like an outermost SVG element, if we're a direct child of a <foreignObject> element.
+    if (parentNode()->hasTagName(SVGNames::foreignObjectTag))
+        return true;
+
     // This is true whenever this is the outermost SVG, even if there are HTML elements outside it
     return !parentNode()->isSVGElement();
 }
--- a/src/3rdparty/webkit/WebCore/svg/SVGUseElement.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/3rdparty/webkit/WebCore/svg/SVGUseElement.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -572,8 +572,8 @@
 
 void SVGUseElement::detach()
 {
+    m_targetElementInstance = 0;
     SVGStyledTransformableElement::detach();
-    m_targetElementInstance = 0;
 }
 
 static bool isDirectReference(Node* n)
--- a/src/3rdparty/webkit/WebKit/qt/Api/qwebframe.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/3rdparty/webkit/WebKit/qt/Api/qwebframe.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -959,6 +959,10 @@
 
   The \a html is loaded immediately; external objects are loaded asynchronously.
 
+  If a script in the \a html runs longer than the default script timeout (currently 10 seconds),
+  for example due to being blocked by a modal JavaScript alert dialog, this method will return
+  as soon as possible after the timeout and any subsequent \a html will be loaded asynchronously.
+
   When using this method WebKit assumes that external resources such as JavaScript programs or style
   sheets are encoded in UTF-8 unless otherwise specified. For example, the encoding of an external
   script can be specified through the charset attribute of the HTML script tag. It is also possible
--- a/src/3rdparty/webkit/WebKit/qt/ChangeLog	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/3rdparty/webkit/WebKit/qt/ChangeLog	Mon Oct 04 01:19:32 2010 +0300
@@ -1,3 +1,84 @@
+2010-08-05  David Leong  <david.leong@nokia.com>
+
+        Reviewed by Simon Hausmann.
+
+        [Qt] Input mode states are not reset after entering a password field
+        https://bugs.webkit.org/show_bug.cgi?id=43530
+
+        Input mode hints are not reset if clicking on password <input> elements then
+        clicking on <textarea> elements
+
+        * WebCoreSupport/EditorClientQt.cpp:
+        (WebCore::EditorClientQt::setInputMethodState):
+        * tests/qwebview/resources/input_types.html:
+        * tests/qwebview/tst_qwebview.cpp:
+        (tst_QWebView::focusInputTypes):
+
+
+2010-07-27  Simon Hausmann  <simon.hausmann@nokia.com>
+
+        Reviewed by Tor Arne Vestbø.
+
+        [Qt] Incorrect input method hints
+        https://bugs.webkit.org/show_bug.cgi?id=43037
+
+        Properly set or reset all input method hints when
+        activating input fields.
+
+        * WebCoreSupport/EditorClientQt.cpp:
+        (WebCore::EditorClientQt::setInputMethodState):
+        * tests/qwebview/tst_qwebview.cpp:
+        (tst_QWebView::focusInputTypes): Extended unit test to verify that we
+        reset hints.
+
+2009-10-30  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        [Qt] Use the default timeout interval for JS as the HTML tokenizer delay for setHtml()
+
+        This ensures that long-running JavaScript (for example due to a modal alert() dialog),
+        will not trigger a deferred load after only 500ms (the default tokenizer delay) while
+        still giving a reasonable timeout (10 seconds) to prevent deadlock.
+
+        https://bugs.webkit.org/show_bug.cgi?id=29381
+
+        * Api/qwebframe.cpp: Document the behaviour
+        * WebCoreSupport/FrameLoaderClientQt.cpp: set the custom tokenizer delay for substitute loads
+        * tests/qwebframe/tst_qwebframe.cpp: Add test
+
+2010-07-07  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
+
+        Reviewed by Darin Adler.
+
+        Prevent assertion/duplicate loads for non-deferred subtitute-data loads
+
+        https://bugs.webkit.org/show_bug.cgi?id=30879
+
+        MainResourceLoader uses the member m_initialRequest to store requests for future
+        deferred loads. When doing the actual load in handleDataLoadNow(), we therefore
+        have to clear this request so that subsequent entries into the loader will not
+        start yet another load.
+
+        This can happen as a result of a PageGroupLoadDeferrer going out of scope when
+        returning from Chrome::runJavaScriptAlert(), which calls setDeferredLoading(false),
+        but only in the case of using both substitute-data and non-deferred main resource
+        load together. That's why two new DRT functions were added:
+
+         * queueLoadHTMLString()
+         * setDeferMainResourceLoad()
+
+        The change adds DRT hooks for Mac, Win and Qt for these two functions. For Mac
+        and Win the hook uses new SPI in WebDataSource. For Qt a new static member was
+        added to the FrameLoaderClientQt and accessed though DumpRenderTreeSupportQt.
+
+        * WebCoreSupport/DumpRenderTreeSupportQt.cpp:
+        (DumpRenderTreeSupportQt::setDeferMainResourceDataLoad):
+        * WebCoreSupport/DumpRenderTreeSupportQt.h:
+        * WebCoreSupport/FrameLoaderClientQt.cpp:
+        (WebCore::FrameLoaderClientQt::createDocumentLoader):
+        * WebCoreSupport/FrameLoaderClientQt.h:
+
 2010-07-23  David Boddie  <dboddie@trolltech.com>
 
         Reviewed by Simon Hausmann.
--- a/src/3rdparty/webkit/WebKit/qt/WebCoreSupport/EditorClientQt.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/3rdparty/webkit/WebKit/qt/WebCoreSupport/EditorClientQt.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -599,6 +599,13 @@
     QWebPageClient* webPageClient = m_page->d->client;
     if (webPageClient) {
 #if QT_VERSION >= 0x040600
+        // Make sure to reset input method hint
+        webPageClient->setInputMethodHint(Qt::ImhDialableCharactersOnly, false);
+        webPageClient->setInputMethodHint(Qt::ImhDigitsOnly, false);
+        webPageClient->setInputMethodHint(Qt::ImhEmailCharactersOnly, false);
+        webPageClient->setInputMethodHint(Qt::ImhUrlCharactersOnly, false);
+        webPageClient->setInputMethodHint(Qt::ImhHiddenText, false);
+
         HTMLInputElement* inputElement = 0;
         Frame* frame = m_page->d->page->focusController()->focusedOrMainFrame();
         if (frame && frame->document() && frame->document()->focusedNode())
@@ -606,20 +613,18 @@
                 inputElement = static_cast<HTMLInputElement*>(frame->document()->focusedNode());
 
         if (inputElement) {
-            if (!active) {
-                // Setting the Qt::WA_InputMethodEnabled attribute true and Qt::ImhHiddenText flag
-                // for password fields. The Qt platform is responsible for determining which widget
-                // will receive input method events for password fields.
-                active = inputElement->isPasswordField();
-                webPageClient->setInputMethodHint(Qt::ImhHiddenText, active);
-            } else {
-                // Set input method hints for "number", "tel", "email", and "url" input elements.
-                webPageClient->setInputMethodHint(Qt::ImhDialableCharactersOnly, inputElement->isTelephoneField());
-                webPageClient->setInputMethodHint(Qt::ImhDigitsOnly, inputElement->isNumberField());
-                webPageClient->setInputMethodHint(Qt::ImhEmailCharactersOnly, inputElement->isEmailField());
-                webPageClient->setInputMethodHint(Qt::ImhUrlCharactersOnly, inputElement->isUrlField());
-                webPageClient->setInputMethodHint(Qt::ImhHiddenText, inputElement->isPasswordField());
-            }
+            // Set input method hints for "number", "tel", "email", "url" and "password" input elements.
+            webPageClient->setInputMethodHint(Qt::ImhDialableCharactersOnly, inputElement->isTelephoneField());
+            webPageClient->setInputMethodHint(Qt::ImhDigitsOnly, inputElement->isNumberField());
+            webPageClient->setInputMethodHint(Qt::ImhEmailCharactersOnly, inputElement->isEmailField());
+            webPageClient->setInputMethodHint(Qt::ImhUrlCharactersOnly, inputElement->isUrlField());
+            // Setting the Qt::WA_InputMethodEnabled attribute true and Qt::ImhHiddenText flag
+            // for password fields. The Qt platform is responsible for determining which widget
+            // will receive input method events for password fields.
+            bool isPasswordField = inputElement->isPasswordField();
+            webPageClient->setInputMethodHint(Qt::ImhHiddenText, isPasswordField);
+            if (isPasswordField)
+                active = true;
         }
 
 #if defined(Q_WS_MAEMO_5) || defined(Q_OS_SYMBIAN)
--- a/src/3rdparty/webkit/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/3rdparty/webkit/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -38,6 +38,7 @@
 #include "FrameTree.h"
 #include "FrameView.h"
 #include "DocumentLoader.h"
+#include "JSDOMWindowBase.h"
 #include "MIMETypeRegistry.h"
 #include "ResourceResponse.h"
 #include "Page.h"
@@ -141,6 +142,8 @@
 namespace WebCore
 {
 
+bool FrameLoaderClientQt::deferMainResourceDataLoad = true;
+
 FrameLoaderClientQt::FrameLoaderClientQt()
     : m_frame(0)
     , m_webFrame(0)
@@ -812,8 +815,15 @@
 WTF::PassRefPtr<WebCore::DocumentLoader> FrameLoaderClientQt::createDocumentLoader(const WebCore::ResourceRequest& request, const SubstituteData& substituteData)
 {
     RefPtr<DocumentLoader> loader = DocumentLoader::create(request, substituteData);
-    if (substituteData.isValid())
+    if (!deferMainResourceDataLoad || substituteData.isValid()) {
         loader->setDeferMainResourceDataLoad(false);
+        // Use the default timeout interval for JS as the HTML tokenizer delay. This ensures
+        // that long-running JavaScript will still allow setHtml() to be synchronous, while
+        // still giving a reasonable timeout to prevent deadlock.
+        double delay = JSDOMWindowBase::commonJSGlobalData()->timeoutChecker.timeoutInterval() / 1000.0f;
+        m_frame->page()->setCustomHTMLTokenizerTimeDelay(delay);
+    } else
+        m_frame->page()->setCustomHTMLTokenizerTimeDelay(-1);
     return loader.release();
 }
 
--- a/src/3rdparty/webkit/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/3rdparty/webkit/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.h	Mon Oct 04 01:19:32 2010 +0300
@@ -211,6 +211,8 @@
 
         QString chooseFile(const QString& oldFile);
 
+        static bool deferMainResourceDataLoad;
+
     private:
         Frame *m_frame;
         QWebFrame *m_webFrame;
--- a/src/3rdparty/webkit/WebKit/qt/declarative/qdeclarativewebview.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/3rdparty/webkit/WebKit/qt/declarative/qdeclarativewebview.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -91,7 +91,6 @@
 
 void GraphicsWebView::mousePressEvent(QGraphicsSceneMouseEvent* event)
 {
-    setFocus();
     pressPoint = event->pos();
     if (pressTime) {
         pressTimer.start(pressTime, this);
@@ -101,6 +100,11 @@
         parent->setKeepMouseGrab(true);
     }
     QGraphicsWebView::mousePressEvent(event);
+
+    QWebHitTestResult hit = page()->mainFrame()->hitTestContent(pressPoint.toPoint());
+    if (hit.isContentEditable())
+        parent->forceActiveFocus();
+    setFocus();
 }
 
 void GraphicsWebView::mouseReleaseEvent(QGraphicsSceneMouseEvent* event)
@@ -139,6 +143,7 @@
 
 /*!
     \qmlclass WebView QDeclarativeWebView
+    \ingroup qml-view-elements
     \since 4.7
     \brief The WebView item allows you to add web content to a canvas.
     \inherits Item
--- a/src/3rdparty/webkit/WebKit/qt/qt_webkit_version.pri	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/3rdparty/webkit/WebKit/qt/qt_webkit_version.pri	Mon Oct 04 01:19:32 2010 +0300
@@ -2,4 +2,4 @@
 QT_WEBKIT_MAJOR_VERSION = 4
 QT_WEBKIT_MINOR_VERSION = 7
 QT_WEBKIT_PATCH_VERSION = 0
-QT_CONFIG *= webkit
+QT_CONFIG += webkit
--- a/src/3rdparty/webkit/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/3rdparty/webkit/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -598,6 +598,7 @@
     void setHtml();
     void setHtmlWithResource();
     void setHtmlWithBaseURL();
+    void setHtmlWithJSAlert();
     void ipv6HostEncoding();
     void metaData();
 #if !defined(Q_WS_MAEMO_5)
@@ -2485,6 +2486,33 @@
     QCOMPARE(m_view->page()->history()->count(), 0);
 }
 
+class MyPage : public QWebPage
+{
+public:
+    MyPage() :  QWebPage(), alerts(0) {}
+    int alerts;
+
+protected:
+    virtual void javaScriptAlert(QWebFrame*, const QString& msg)
+    {
+        alerts++;
+        QCOMPARE(msg, QString("foo"));
+        // Should not be enough to trigger deferred loading, since we've upped the HTML
+        // tokenizer delay in the Qt frameloader. See HTMLTokenizer::continueProcessing()
+        QTest::qWait(1000);
+    }
+};
+
+void tst_QWebFrame::setHtmlWithJSAlert()
+{
+    QString html("<html><head></head><body><script>alert('foo');</script><p>hello world</p></body></html>");
+    MyPage page;
+    m_view->setPage(&page);
+    page.mainFrame()->setHtml(html);
+    QCOMPARE(page.alerts, 1);
+    QCOMPARE(m_view->page()->mainFrame()->toHtml(), html);
+}
+
 class TestNetworkManager : public QNetworkAccessManager
 {
 public:
--- a/src/3rdparty/webkit/WebKit/qt/tests/qwebview/resources/input_types.html	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/3rdparty/webkit/WebKit/qt/tests/qwebview/resources/input_types.html	Mon Oct 04 01:19:32 2010 +0300
@@ -4,5 +4,6 @@
 <input type='tel' style='position: absolute; left: 10px; top: 100px; height: 50px; width: 100px;'/><br>
 <input type='number' style='position: absolute; left: 10px; top: 150px; height: 50px; width: 100px;'/><br>
 <input type='email' style='position: absolute; left: 10px; top: 200px; height: 50px; width: 100px;'/><br>
-<input type='url' style='position: absolute; left: 10px; top: 250px; height: 50px; width: 100px;'/><br>"
-</body></html>
\ No newline at end of file
+<input type='url' style='position: absolute; left: 10px; top: 250px; height: 50px; width: 100px;'/><br>
+<textarea style='position: absolute; left: 10px; top: 310px; height: 50px; width: 100px;' rows="2" cols="20">blah blah blah blah</textarea><br>
+</body></html>
--- a/src/3rdparty/webkit/WebKit/qt/tests/qwebview/tst_qwebview.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/3rdparty/webkit/WebKit/qt/tests/qwebview/tst_qwebview.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -264,26 +264,58 @@
 #else
     QVERIFY(webView->inputMethodHints() == Qt::ImhNone);
 #endif
+    QVERIFY(webView->testAttribute(Qt::WA_InputMethodEnabled));
 
     // 'password' field
     webView->fireMouseClick(QPoint(20, 60));
-    QVERIFY(webView->inputMethodHints() & Qt::ImhHiddenText);
+    QVERIFY(webView->inputMethodHints() == Qt::ImhHiddenText);
+    QVERIFY(webView->testAttribute(Qt::WA_InputMethodEnabled));
 
     // 'tel' field
     webView->fireMouseClick(QPoint(20, 110));
-    QVERIFY(webView->inputMethodHints() & Qt::ImhDialableCharactersOnly);
+    QVERIFY(webView->inputMethodHints() == Qt::ImhDialableCharactersOnly);
+    QVERIFY(webView->testAttribute(Qt::WA_InputMethodEnabled));
 
     // 'number' field
     webView->fireMouseClick(QPoint(20, 160));
-    QVERIFY(webView->inputMethodHints() & Qt::ImhDigitsOnly);
+    QVERIFY(webView->inputMethodHints() == Qt::ImhDigitsOnly);
+    QVERIFY(webView->testAttribute(Qt::WA_InputMethodEnabled));
 
     // 'email' field
     webView->fireMouseClick(QPoint(20, 210));
-    QVERIFY(webView->inputMethodHints() & Qt::ImhEmailCharactersOnly);
+    QVERIFY(webView->inputMethodHints() == Qt::ImhEmailCharactersOnly);
+    QVERIFY(webView->testAttribute(Qt::WA_InputMethodEnabled));
 
     // 'url' field
     webView->fireMouseClick(QPoint(20, 260));
-    QVERIFY(webView->inputMethodHints() & Qt::ImhUrlCharactersOnly);
+    QVERIFY(webView->inputMethodHints() == Qt::ImhUrlCharactersOnly);
+    QVERIFY(webView->testAttribute(Qt::WA_InputMethodEnabled));
+
+    // 'password' field
+    webView->fireMouseClick(QPoint(20, 60));
+    QVERIFY(webView->inputMethodHints() == Qt::ImhHiddenText);
+    QVERIFY(webView->testAttribute(Qt::WA_InputMethodEnabled));
+
+    // 'text' type
+    webView->fireMouseClick(QPoint(20, 10));
+#if defined(Q_WS_MAEMO_5) || defined(Q_WS_MAEMO_6) || defined(Q_OS_SYMBIAN)
+    QVERIFY(webView->inputMethodHints() & Qt::ImhNoAutoUppercase);
+    QVERIFY(webView->inputMethodHints() & Qt::ImhNoPredictiveText);
+#else
+    QVERIFY(webView->inputMethodHints() == Qt::ImhNone);
+#endif
+    QVERIFY(webView->testAttribute(Qt::WA_InputMethodEnabled));
+
+    // 'password' field
+    webView->fireMouseClick(QPoint(20, 60));
+    QVERIFY(webView->inputMethodHints() == Qt::ImhHiddenText);
+    QVERIFY(webView->testAttribute(Qt::WA_InputMethodEnabled));
+
+    qWarning("clicking on text area");
+    // 'text area' field
+    webView->fireMouseClick(QPoint(20, 320));
+    QVERIFY(webView->inputMethodHints() == Qt::ImhNone);
+    QVERIFY(webView->testAttribute(Qt::WA_InputMethodEnabled));
 
     delete webView;
 
--- a/src/corelib/codecs/qtextcodec_symbian.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/corelib/codecs/qtextcodec_symbian.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -53,8 +53,10 @@
     const char *aliases;
 };
 
-/* This table contains the known Symbian codecs aliases. It is ordered by charsetId.
-   It is required as symbian does not provide have aliases.
+/* This table contains the known Symbian codecs aliases.
+   It is required because symbian does not provide aliases for codecs.
+   It is also faster to have a name here than asking the system.
+   It is ordered by charsetId to allow binary search lookup
  */
 static const QSymbianCodecInitData codecsData[] = {
     { /*268439485*/ KCharacterSetIdentifierShiftJis,            17, "Shift_JIS\0MS_Kanji\0csShiftJIS\0MS_KANJI\0SJIS\0" },
--- a/src/corelib/concurrent/qtconcurrentexception.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/corelib/concurrent/qtconcurrentexception.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -66,7 +66,7 @@
     the Qt Concurrent functions will throw a QtConcurrent::UnhandledException
     in the receiver thread.
 
-    When using QFuture, transferred exceptions willl be thrown when calling the following functions:
+    When using QFuture, transferred exceptions will be thrown when calling the following functions:
     \list
     \o QFuture::waitForFinished()
     \o QFuture::result()
--- a/src/corelib/concurrent/qtconcurrentfilter.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/corelib/concurrent/qtconcurrentfilter.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -117,7 +117,7 @@
     function, and should merge the \e{intermediate} into the \e{result}
     variable. QtConcurrent::filteredReduced() guarantees that only one thread
     will call reduce at a time, so using a mutex to lock the result variable
-    is not neccesary. The QtConcurrent::ReduceOptions enum provides a way to
+    is not necessary. The QtConcurrent::ReduceOptions enum provides a way to
     control the order in which the reduction is done.
 
     \section1 Additional API Features
--- a/src/corelib/concurrent/qtconcurrentmap.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/corelib/concurrent/qtconcurrentmap.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -161,7 +161,7 @@
     function, and should merge the \e{intermediate} into the \e{result}
     variable.  QtConcurrent::mappedReduced() guarantees that only one thread
     will call reduce at a time, so using a mutex to lock the result variable
-    is not neccesary. The QtConcurrent::ReduceOptions enum provides a way to
+    is not necessary. The QtConcurrent::ReduceOptions enum provides a way to
     control the order in which the reduction is done. If
     QtConcurrent::UnorderedReduce is used (the default), the order is
     undefined, while QtConcurrent::OrderedReduce ensures that the reduction
--- a/src/corelib/concurrent/qtconcurrentresultstore.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/corelib/concurrent/qtconcurrentresultstore.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -236,7 +236,7 @@
     return resultCount;
 }
 
-// returns the insert index, calling this funciton with
+// returns the insert index, calling this function with
 // index equal to -1 returns the next available index.
 int ResultStoreBase::updateInsertIndex(int index, int _count)
 {
--- a/src/corelib/concurrent/qtconcurrentrun.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/corelib/concurrent/qtconcurrentrun.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -99,7 +99,7 @@
     functions; passing by pointer is useful for calling non-const member
     functions that modify the instance.
     
-    For example, calling QString::split() (a const member function) in a
+    For example, calling QByteArray::split() (a const member function) in a
     separate thread is done like this:
     
     \snippet doc/src/snippets/code/src_corelib_concurrent_qtconcurrentrun.cpp 4
--- a/src/corelib/corelib.pro	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/corelib/corelib.pro	Mon Oct 04 01:19:32 2010 +0300
@@ -36,7 +36,6 @@
     # Workaroud for problems with paging this dll
     MMP_RULES -= PAGED
     MMP_RULES *= UNPAGED
-    LIBS += -lflogger
 
     # Partial upgrade SIS file
     vendorinfo = \
@@ -54,39 +53,9 @@
     DEPLOYMENT = partial_upgrade $$DEPLOYMENT
 }
 
-mmx {
-    DEFINES += QT_HAVE_MMX
-}
-3dnow {
-    DEFINES += QT_HAVE_3DNOW
-}
-sse {
-    DEFINES += QT_HAVE_SSE
-    DEFINES += QT_HAVE_MMXEXT
-}
-sse2 {
-    DEFINES += QT_HAVE_SSE2
-}
-sse3 {
-    DEFINES += QT_HAVE_SSE3
-}
-ssse3 {
-    DEFINES += QT_HAVE_SSSE3
-}
-sse4_1 {
-    DEFINES += QT_HAVE_SSE4_1
-}
-sse4_2 {
-    DEFINES += QT_HAVE_SSE4_2
-}
-avx {
-    DEFINES += QT_HAVE_AVX
-}
-iwmmxt {
-    DEFINES += QT_HAVE_IWMMXT
-}
 neon {
     DEFINES += QT_HAVE_NEON
     QMAKE_CXXFLAGS *= -mfpu=neon
 }
 
+
--- a/src/corelib/global/global.pri	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/corelib/global/global.pri	Mon Oct 04 01:19:32 2010 +0300
@@ -19,7 +19,7 @@
 # Only used on platforms with CONFIG += precompile_header
 PRECOMPILED_HEADER = global/qt_pch.h
 
-linux*-g++*:!static {
+linux*:!static:!linux-armcc:!linux-gcce {
    QMAKE_LFLAGS += -Wl,-e,qt_core_boilerplate
    prog=$$quote(if (/program interpreter: (.*)]/) { print $1; })
    DEFINES += ELF_INTERPRETER=\\\"$$system(readelf -l /bin/ls | perl -n -e \'$$prog\')\\\"
--- a/src/corelib/global/qglobal.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/corelib/global/qglobal.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -81,7 +81,6 @@
 #if defined(Q_OS_SYMBIAN)
 #include <e32def.h>
 #include <e32debug.h>
-#include <flogger.h>
 #include <f32file.h>
 #include <e32math.h>
 # include "private/qcore_symbian_p.h"
@@ -1829,6 +1828,7 @@
     CDir* contents;
     TInt err = fileFinder.FindWildByDir(qt_S60Filter, qt_S60SystemInstallDir, contents);
     if (err == KErrNone) {
+        QScopedPointer<CDir> contentsDeleter(contents);
         err = contents->Sort(EDescending|ESortByName);
         if (err == KErrNone && contents->Count() > 0 && (*contents)[0].iName.Length() >= 12) {
             TInt major = (*contents)[0].iName[9] - '0';
@@ -1851,7 +1851,6 @@
                 }
             }
         }
-        delete contents;
     }
 
 #  ifdef Q_CC_NOKIAX86
@@ -1878,9 +1877,9 @@
     case SV_S60_5_0:
         return SV_9_4;
     case SV_S60_5_1:
-        return SV_9_4;
+        return SV_SF_2;
     case SV_S60_5_2:
-        return SV_9_4;
+        return SV_SF_3;
     default:
         return SV_Unknown;
     }
@@ -2222,20 +2221,6 @@
             RDebug::Print(format, hbuffer);
         }
         delete hbuffer;
-        _LIT( KLogDir, "QT" );
-        _LIT( KLogFile, "QT.log" );
-        _LIT( KLogStarting, "Starting: %S");
-        static bool logStarted;
-        if ( !logStarted ){
-            RProcess curProc;
-            TBuf<KMaxFullName + 20> procName;
-            TFullName fullName = curProc.FullName();
-            procName.Format(KLogStarting, &fullName);
-            RFileLogger::Write( KLogDir, KLogFile, EFileLoggingModeAppend, procName);
-            logStarted = true; 
-        }
-
-        RFileLogger::Write( KLogDir, KLogFile, EFileLoggingModeAppend, ptr );
 #else
         fprintf(stderr, "%s\n", buf);
         fflush(stderr);
@@ -2389,7 +2374,7 @@
     This syntax inserts a space between each item, and
     appends a newline at the end.
 
-    To supress the output at runtime, install your own message handler
+    To suppress the output at runtime, install your own message handler
     with qInstallMsgHandler().
 
     \sa qDebug(), qCritical(), qFatal(), qInstallMsgHandler(),
@@ -2425,7 +2410,7 @@
     A space is inserted between the items, and a newline is
     appended at the end.
 
-    To supress the output at runtime, install your own message handler
+    To suppress the output at runtime, install your own message handler
     with qInstallMsgHandler().
 
     \sa qDebug(), qWarning(), qFatal(), qInstallMsgHandler(),
@@ -2490,7 +2475,7 @@
     Example:
     \snippet doc/src/snippets/code/src_corelib_global_qglobal.cpp 30
 
-    To supress the output at runtime, install your own message handler
+    To suppress the output at runtime, install your own message handler
     with qInstallMsgHandler().
 
     \sa qDebug(), qCritical(), qWarning(), qInstallMsgHandler(),
@@ -2929,8 +2914,9 @@
     \relates <QtGlobal>
 
     You can use this macro to specify information about a custom type
-    \a Type. With accurate type information, Qt's \l{generic
-    containers} can choose appropriate storage methods and algorithms.
+    \a Type. With accurate type information, Qt's \l{Container Classes}
+    {generic containers} can choose appropriate storage methods and
+    algorithms.
 
     \a Flags can be one of the following:
 
--- a/src/corelib/global/qglobal.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/corelib/global/qglobal.h	Mon Oct 04 01:19:32 2010 +0300
@@ -981,9 +981,11 @@
 #  undef QT_DEPRECATED_VARIABLE
 #  undef QT_DEPRECATED_CONSTRUCTOR
 #elif defined(QT_DEPRECATED_WARNINGS)
+#  ifdef QT3_SUPPORT
 /* enable Qt3 support warnings as well */
-#  undef QT3_SUPPORT_WARNINGS
-#  define QT3_SUPPORT_WARNINGS
+#    undef QT3_SUPPORT_WARNINGS
+#    define QT3_SUPPORT_WARNINGS
+#  endif
 #  undef QT_DEPRECATED
 #  define QT_DEPRECATED Q_DECL_DEPRECATED
 #  undef QT_DEPRECATED_VARIABLE
--- a/src/corelib/global/qlibraryinfo.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/corelib/global/qlibraryinfo.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -66,6 +66,8 @@
 
 QT_BEGIN_NAMESPACE
 
+extern void qDumpCPUFeatures(); // in qsimd.cpp
+
 #ifndef QT_NO_SETTINGS
 
 struct QLibrarySettings
@@ -476,7 +478,7 @@
     \value PrefixPath The default prefix for all paths.
     \value DocumentationPath The location for documentation upon install.
     \value HeadersPath The location for all headers.
-    \value LibrariesPath The location of installed librarires.
+    \value LibrariesPath The location of installed libraries.
     \value BinariesPath The location of installed Qt binaries (tools and applications).
     \value PluginsPath The location of installed Qt plugins.
     \value ImportsPath The location of installed QML extensions to import.
@@ -508,6 +510,14 @@
            "Contact: Nokia Corporation (qt-info@nokia.com)\n"
            "\n"
            "Build key:           " QT_BUILD_KEY "\n"
+           "Compat build key:    "
+#ifdef QT_BUILD_KEY_COMPAT
+           "| " QT_BUILD_KEY_COMPAT " "
+#endif
+#ifdef QT_BUILD_KEY_COMPAT2
+           "| " QT_BUILD_KEY_COMPAT2 " "
+#endif
+           "|\n"
            "Build date:          %s\n"
            "Installation prefix: %s\n"
            "Library path:        %s\n"
@@ -517,6 +527,8 @@
            qt_configure_libraries_path_str + 12,
            qt_configure_headers_path_str + 12);
 
+    QT_PREPEND_NAMESPACE(qDumpCPUFeatures)();
+
 #ifdef QT_EVAL
     extern void qt_core_eval_init(uint);
     qt_core_eval_init(1);
--- a/src/corelib/io/qfileinfo.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/corelib/io/qfileinfo.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -797,12 +797,12 @@
     \bold{Note:} The QDir returned always corresponds to the object's
     parent directory, even if the QFileInfo represents a directory.
 
-    For each of the follwing, dir() returns a QDir for
+    For each of the following, dir() returns a QDir for
     \c{"~/examples/191697"}.
 
     \snippet doc/src/snippets/fileinfo/main.cpp 0
 
-    For each of the follwing, dir() returns a QDir for
+    For each of the following, dir() returns a QDir for
     \c{"."}.
 
     \snippet doc/src/snippets/fileinfo/main.cpp 1
--- a/src/corelib/io/qfilesystemwatcher_kqueue.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/corelib/io/qfilesystemwatcher_kqueue.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -295,12 +295,12 @@
                     path = idToPath.value(id);
                     if (path.isEmpty()) {
                         DEBUG() << "QKqueueFileSystemWatcherEngine: received a kevent for a file we're not watching";
-                        continue;
+                        goto process_next_event;
                     }
                 }
                 if (kev.filter != EVFILT_VNODE) {
                     DEBUG() << "QKqueueFileSystemWatcherEngine: received a kevent with the wrong filter";
-                    continue;
+                    goto process_next_event;
                 }
 
                 if ((kev.fflags & (NOTE_DELETE | NOTE_REVOKE | NOTE_RENAME)) != 0) {
@@ -337,6 +337,7 @@
             }
 
             // are there any more?
+process_next_event:
             r = kevent(kqfd, 0, 0, &kev, 1, &ZeroTimeout);
         } while (r > 0);
     }
--- a/src/corelib/io/qfsfileengine_win.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/corelib/io/qfsfileengine_win.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -1958,6 +1958,10 @@
                 OPEN_EXISTING,
                 FILE_ATTRIBUTE_NORMAL,
                 NULL);
+        // Since this is a special case, we check if the return value was NULL and if so
+        // we change it to INVALID_HANDLE_VALUE to follow the logic inside this function.
+        if(0 == handle)
+            handle = INVALID_HANDLE_VALUE;
 #endif
 
         if (handle == INVALID_HANDLE_VALUE) {
--- a/src/corelib/io/qprocess_symbian.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/corelib/io/qprocess_symbian.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -375,10 +375,9 @@
     // Nothing to do
 }
 
-// Called from ProcessManagerThread
+// Called from main thread
 QProcessActive::~QProcessActive()
 {
-    Cancel();
     process = NULL;
     pproc = NULL;
 }
@@ -482,10 +481,9 @@
     // Nothing to do
 }
 
-// Called from ProcessManagerThread
+// Called from main thread
 QProcessManagerMediator::~QProcessManagerMediator()
 {
-    Cancel();
     processManagerThread.Close();
     currentCommand = ENoCommand;
     currentObserver = NULL;
@@ -648,25 +646,36 @@
 QProcessManager::~QProcessManager()
 {
     QPROCESS_DEBUG_PRINT("QProcessManager::~QProcessManager()");
-    // Cancel death listening for all child processes
-    if (mediator) {
-        QMap<int, QProcessActive *>::Iterator it = children.begin();
-        while (it != children.end()) {
-            // Remove all monitors
-            QProcessActive *active = it.value();
-            mediator->remove(active);
+
+    // Check if manager thread is still alive. If this destructor is ran as part of global
+    // static cleanup, manager thread will most likely be terminated by kernel at this point,
+    // so trying to delete QProcessActives and QProcessMediators will panic as they
+    // will still be active. They can also no longer be canceled as the thread is already gone.
+    // In case manager thread has already died, we simply do nothing and let the deletion of
+    // the main heap at process exit take care of stray objects.
 
-            QPROCESS_DEBUG_PRINT("QProcessManager::~QProcessManager() removed listening for a process");
-            ++it;
+    if (managerThread.Handle() && managerThread.ExitType() == EExitPending) {
+        // Cancel death listening for all child processes
+        if (mediator) {
+            QMap<int, QProcessActive *>::Iterator it = children.begin();
+            while (it != children.end()) {
+                // Remove all monitors
+                QProcessActive *active = it.value();
+                mediator->remove(active);
+
+                QPROCESS_DEBUG_PRINT("QProcessManager::~QProcessManager() removed listening for a process");
+                ++it;
+            }
+
+            // Terminate process manager thread.
+            mediator->terminate();
+            delete mediator;
         }
 
-        // Terminate process manager thread.
-        mediator->terminate();
-        delete mediator;
+        qDeleteAll(children.values());
+        children.clear();
     }
 
-    qDeleteAll(children.values());
-    children.clear();
     managerThread.Close();
     managerMutex.Close();
 }
--- a/src/corelib/io/qtextstream.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/corelib/io/qtextstream.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -1991,7 +1991,7 @@
         return true;
     buf[i] = '\0';
 
-    // backward-compatibility. Old implmentation supported +nan/-nan
+    // backward-compatibility. Old implementation supported +nan/-nan
     // for some reason. QLocale only checks for lower-case
     // nan/+inf/-inf, so here we also check for uppercase and mixed
     // case versions.
--- a/src/corelib/io/qurl.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/corelib/io/qurl.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -4958,6 +4958,10 @@
     pairDelimiter(), and the key and value are delimited by
     valueDelimiter().
 
+    \note This method does not encode spaces (ASCII 0x20) as plus (+) signs,
+    like HTML forms do. If you need that kind of encoding, you must encode
+    the value yourself and use QUrl::setEncodedQueryItems.
+
     \sa setQueryDelimiters(), queryItems(), setEncodedQueryItems()
 */
 void QUrl::setQueryItems(const QList<QPair<QString, QString> > &query)
@@ -5028,6 +5032,10 @@
     character returned by valueDelimiter(). Each key/value pair is 
     delimited by the character returned by pairDelimiter().
 
+    \note This method does not encode spaces (ASCII 0x20) as plus (+) signs,
+    like HTML forms do. If you need that kind of encoding, you must encode
+    the value yourself and use QUrl::addEncodedQueryItem.
+
     \sa addEncodedQueryItem()
 */
 void QUrl::addQueryItem(const QString &key, const QString &value)
@@ -5084,6 +5092,10 @@
 /*!
     Returns the query string of the URL, as a map of keys and values.
 
+    \note This method does not decode spaces plus (+) signs as spaces (ASCII
+    0x20), like HTML forms do. If you need that kind of decoding, you must
+    use QUrl::encodedQueryItems and decode the data yourself.
+
     \sa setQueryItems(), setEncodedQuery()
 */
 QList<QPair<QString, QString> > QUrl::queryItems() const
@@ -5188,6 +5200,10 @@
     Returns the first query string value whose key is equal to \a key
     from the URL.
 
+    \note This method does not decode spaces plus (+) signs as spaces (ASCII
+    0x20), like HTML forms do. If you need that kind of decoding, you must
+    use QUrl::encodedQueryItemValue and decode the data yourself.
+
     \sa allQueryItemValues()
 */
 QString QUrl::queryItemValue(const QString &key) const
@@ -5232,6 +5248,10 @@
     Returns the a list of query string values whose key is equal to
     \a key from the URL.
 
+    \note This method does not decode spaces plus (+) signs as spaces (ASCII
+    0x20), like HTML forms do. If you need that kind of decoding, you must
+    use QUrl::allEncodedQueryItemValues and decode the data yourself.
+
     \sa queryItemValue()
 */
 QStringList QUrl::allQueryItemValues(const QString &key) const
@@ -5610,7 +5630,7 @@
     if ((options & QUrl::RemoveAuthority) != QUrl::RemoveAuthority) {
         bool doFileScheme = d->scheme == QLatin1String("file") && ourPath.startsWith(QLatin1Char('/'));
         QString tmp = d->authority(options);
-        if (!tmp.isEmpty() || doFileScheme) {
+        if (!tmp.isNull() || doFileScheme) {
             if (doFileScheme && !ourPath.startsWith(QLatin1Char('/')))
                 url += QLatin1Char('/');
             url += QLatin1String("//");
--- a/src/corelib/kernel/qbasictimer.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/corelib/kernel/qbasictimer.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -54,7 +54,8 @@
     This is a fast, lightweight, and low-level class used by Qt
     internally. We recommend using the higher-level QTimer class
     rather than this class if you want to use timers in your
-    applications.
+    applications. Note that this timer is a repeating timer that
+    will send subsequent timer events unless the stop() function is called.
 
     To use this class, create a QBasicTimer, and call its start()
     function with a timeout interval and with a pointer to a QObject
@@ -88,8 +89,8 @@
 /*!
     \fn bool QBasicTimer::isActive() const
 
-    Returns true if the timer is running, has not yet timed
-    out, and has not been stopped; otherwise returns false.
+    Returns true if the timer is running and has not been stopped; otherwise
+    returns false.
 
     \sa start() stop()
 */
--- a/src/corelib/kernel/qcoreapplication.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/corelib/kernel/qcoreapplication.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -2308,6 +2308,7 @@
     if (!coreappdata()->app_libpaths)
         coreappdata()->app_libpaths = new QStringList;
     *(coreappdata()->app_libpaths) = paths;
+    locker.unlock();
     QFactoryLoader::refreshAll();
 }
 
@@ -2341,6 +2342,7 @@
     if (!canonicalPath.isEmpty()
         && !coreappdata()->app_libpaths->contains(canonicalPath)) {
         coreappdata()->app_libpaths->prepend(canonicalPath);
+        locker.unlock();
         QFactoryLoader::refreshAll();
     }
 }
--- a/src/corelib/kernel/qeventdispatcher_symbian.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/corelib/kernel/qeventdispatcher_symbian.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -232,8 +232,12 @@
 
 void QTimerActiveObject::RunL()
 {
-    int error;
-    QT_TRYCATCH_ERROR(error, Run());
+    int error = KErrNone;
+    if (iStatus == KErrNone) {
+        QT_TRYCATCH_ERROR(error, Run());
+    } else {
+        error = iStatus.Int();
+    }
     // All Symbian error codes are negative.
     if (error < 0) {
         CActiveScheduler::Current()->Error(error);  // stop and report here, as this timer will be deleted on scope exit
@@ -423,7 +427,7 @@
                 //     ones that return -1 in select
                 // after loop update notifiers for all of them
 
-                // as we dont have "exception" notifier type
+                // as we don't have "exception" notifier type
                 // we should force monitoring fd_set of this
                 // type as well
 
--- a/src/corelib/kernel/qeventdispatcher_unix.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/corelib/kernel/qeventdispatcher_unix.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -331,7 +331,7 @@
     }
 #endif
 
-    firstTimerInfo = currentTimerInfo = 0;
+    firstTimerInfo = 0;
 }
 
 timeval QTimerInfoList::updateCurrentTime()
@@ -445,7 +445,7 @@
     // Find first waiting timer not already active
     QTimerInfo *t = 0;
     for (QTimerInfoList::const_iterator it = constBegin(); it != constEnd(); ++it) {
-        if (!(*it)->inTimerEvent) {
+        if (!(*it)->activateRef) {
             t = *it;
             break;
         }
@@ -474,7 +474,7 @@
     t->interval.tv_usec = (interval % 1000) * 1000;
     t->timeout = updateCurrentTime() + t->interval;
     t->obj = object;
-    t->inTimerEvent = false;
+    t->activateRef = 0;
 
     timerInsert(t);
 }
@@ -489,8 +489,8 @@
             removeAt(i);
             if (t == firstTimerInfo)
                 firstTimerInfo = 0;
-            if (t == currentTimerInfo)
-                currentTimerInfo = 0;
+            if (t->activateRef)
+                *(t->activateRef) = 0;
 
             // release the timer id
             if (!QObjectPrivate::get(t->obj)->inThreadChangeEvent)
@@ -515,8 +515,8 @@
             removeAt(i);
             if (t == firstTimerInfo)
                 firstTimerInfo = 0;
-            if (t == currentTimerInfo)
-                currentTimerInfo = 0;
+            if (t->activateRef)
+                *(t->activateRef) = 0;
 
             // release the timer id
             if (!QObjectPrivate::get(t->obj)->inThreadChangeEvent)
@@ -552,10 +552,7 @@
     bool firstTime = true;
     timeval currentTime;
     int n_act = 0, maxCount = count();
-
-    QTimerInfo *saveFirstTimerInfo = firstTimerInfo;
-    QTimerInfo *saveCurrentTimerInfo = currentTimerInfo;
-    firstTimerInfo = currentTimerInfo = 0;
+    firstTimerInfo = 0;
 
     while (maxCount--) {
         currentTime = updateCurrentTime();
@@ -567,7 +564,7 @@
         if (isEmpty())
             break;
 
-        currentTimerInfo = first();
+        QTimerInfo *currentTimerInfo = first();
         if (currentTime < currentTimerInfo->timeout)
             break; // no timer has expired
 
@@ -594,21 +591,19 @@
         if (currentTimerInfo->interval.tv_usec > 0 || currentTimerInfo->interval.tv_sec > 0)
             n_act++;
 
-        if (!currentTimerInfo->inTimerEvent) {
+        if (!currentTimerInfo->activateRef) {
             // send event, but don't allow it to recurse
-            currentTimerInfo->inTimerEvent = true;
+            currentTimerInfo->activateRef = &currentTimerInfo;
 
             QTimerEvent e(currentTimerInfo->id);
             QCoreApplication::sendEvent(currentTimerInfo->obj, &e);
 
             if (currentTimerInfo)
-                currentTimerInfo->inTimerEvent = false;
+                currentTimerInfo->activateRef = 0;
         }
     }
 
-    firstTimerInfo = saveFirstTimerInfo;
-    currentTimerInfo = saveCurrentTimerInfo;
-
+    firstTimerInfo = 0;
     return n_act;
 }
 
--- a/src/corelib/kernel/qeventdispatcher_unix_p.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/corelib/kernel/qeventdispatcher_unix_p.h	Mon Oct 04 01:19:32 2010 +0300
@@ -77,7 +77,7 @@
     timeval interval; // - timer interval
     timeval timeout;  // - when to sent event
     QObject *obj;     // - object to receive event
-    bool inTimerEvent;
+    QTimerInfo **activateRef; // - ref from activateTimers
 };
 
 class QTimerInfoList : public QList<QTimerInfo*>
@@ -92,7 +92,7 @@
 #endif
 
     // state variables used by activateTimers()
-    QTimerInfo *firstTimerInfo, *currentTimerInfo;
+    QTimerInfo *firstTimerInfo;
 
 public:
     QTimerInfoList();
--- a/src/corelib/kernel/qmetaobject.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/corelib/kernel/qmetaobject.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -1009,8 +1009,11 @@
     int argdepth = 0;
     int templdepth = 0;
     while (*d) {
-        if (argdepth == 1)
+        if (argdepth == 1) {
             d = qNormalizeType(d, templdepth, result);
+            if (!*d) //most likely an invalid signature.
+                break;
+        }
         if (*d == '(')
             ++argdepth;
         if (*d == ')')
--- a/src/corelib/kernel/qmetatype.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/corelib/kernel/qmetatype.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -1415,7 +1415,7 @@
 
     \snippet doc/src/snippets/code/src_corelib_kernel_qmetatype.cpp 4
 
-    This function is usefull to register typedefs so they can be used
+    This function is useful to register typedefs so they can be used
     by QMetaProperty, or in QueuedConnections
 
     \snippet doc/src/snippets/code/src_corelib_kernel_qmetatype.cpp 9
--- a/src/corelib/plugin/qlibrary.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/corelib/plugin/qlibrary.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -295,14 +295,6 @@
 
 #if defined(Q_OS_UNIX) && !defined(Q_OS_MAC) && !defined(Q_OS_SYMBIAN) && !defined(QT_NO_PLUGIN_CHECK)
 
-#if defined(Q_OS_FREEBSD) || defined(Q_OS_LINUX)
-#  define USE_MMAP
-QT_BEGIN_INCLUDE_NAMESPACE
-#  include <sys/types.h>
-#  include <sys/mman.h>
-QT_END_INCLUDE_NAMESPACE
-#endif // Q_OS_FREEBSD || Q_OS_LINUX
-
 static long qt_find_pattern(const char *s, ulong s_len,
                              const char *pattern, ulong p_len)
 {
@@ -363,34 +355,15 @@
     }
 
     QByteArray data;
-    char *filedata = 0;
-    ulong fdlen = 0;
-
-# ifdef USE_MMAP
-    char *mapaddr = 0;
-    size_t maplen = file.size();
-    mapaddr = (char *) mmap(mapaddr, maplen, PROT_READ, MAP_PRIVATE, file.handle(), 0);
-    if (mapaddr != MAP_FAILED) {
-        // mmap succeeded
-        filedata = mapaddr;
-        fdlen = maplen;
-    } else {
-        // mmap failed
-        if (qt_debug_component()) {
-            qWarning("mmap: %s", qPrintable(qt_error_string(errno)));
-        }
-        if (lib)
-            lib->errorString = QLibrary::tr("Could not mmap '%1': %2")
-                .arg(library)
-                .arg(qt_error_string());
-# endif // USE_MMAP
+    const char *filedata = 0;
+    ulong fdlen = file.size();
+    filedata = (char *) file.map(0, fdlen);
+    if (filedata == 0) {
         // try reading the data into memory instead
         data = file.readAll();
-        filedata = data.data();
+        filedata = data.constData();
         fdlen = data.size();
-# ifdef USE_MMAP
     }
-# endif // USE_MMAP
 
     // verify that the pattern is present in the plugin
     const char pattern[] = "pattern=QT_PLUGIN_VERIFICATION_DATA";
@@ -403,17 +376,6 @@
 
     if (!ret && lib)
         lib->errorString = QLibrary::tr("Plugin verification data mismatch in '%1'").arg(library);
-# ifdef USE_MMAP
-    if (mapaddr != MAP_FAILED && munmap(mapaddr, maplen) != 0) {
-        if (qt_debug_component())
-            qWarning("munmap: %s", qPrintable(qt_error_string(errno)));
-        if (lib)
-            lib->errorString = QLibrary::tr("Could not unmap '%1': %2")
-                .arg(library)
-                .arg( qt_error_string() );
-    }
-# endif // USE_MMAP
-
     file.close();
     return ret;
 }
@@ -790,10 +752,13 @@
             .arg(qt_version&0xff)
             .arg(debug ? QLatin1String("debug") : QLatin1String("release"));
     } else if (key != QT_BUILD_KEY
+               // we may have some compatibility keys, try them too:
 #ifdef QT_BUILD_KEY_COMPAT
-               // be sure to load plugins using an older but compatible build key
                && key != QT_BUILD_KEY_COMPAT
 #endif
+#ifdef QT_BUILD_KEY_COMPAT2
+               && key != QT_BUILD_KEY_COMPAT2
+#endif
                ) {
         if (qt_debug_component()) {
             qWarning("In %s:\n"
--- a/src/corelib/thread/qmutexpool.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/corelib/thread/qmutexpool.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -46,7 +46,7 @@
 
 QT_BEGIN_NAMESPACE
 
-// qt_global_mutexpool is here for backwards compatability only,
+// qt_global_mutexpool is here for backwards compatibility only,
 // use QMutexpool::instance() in new clode.
 Q_CORE_EXPORT QMutexPool *qt_global_mutexpool = 0;
 Q_GLOBAL_STATIC_WITH_ARGS(QMutexPool, globalMutexPool, (QMutex::Recursive))
--- a/src/corelib/tools/qbytearray.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/corelib/tools/qbytearray.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -1809,7 +1809,7 @@
     Replaces \a len bytes from index position \a pos with the zero terminated
     string \a after.
 
-    Notice: this can change the lenght of the byte array.
+    Notice: this can change the length of the byte array.
 */
 QByteArray &QByteArray::replace(int pos, int len, const char *after)
 {
--- a/src/corelib/tools/qbytearraymatcher.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/corelib/tools/qbytearraymatcher.h	Mon Oct 04 01:19:32 2010 +0300
@@ -78,7 +78,7 @@
     QByteArrayMatcherPrivate *d;
     QByteArray q_pattern;
 #ifdef Q_CC_RVCT
-// explicitely allow anonymous unions for RVCT to prevent compiler warnings
+// explicitly allow anonymous unions for RVCT to prevent compiler warnings
 #  pragma push
 #  pragma anon_unions
 #endif
--- a/src/corelib/tools/qeasingcurve.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/corelib/tools/qeasingcurve.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -91,6 +91,16 @@
     animation.setDuration(1000);
     animation.setEasingCurve(QEasingCurve::InOutQuad);
     \endcode
+
+    The ability to set an amplitude, overshoot, or period depends on the QEasingCurve type. Amplitude access
+    is available to curves that behave as springs such as elastic and bounce curves. Changing the amplitude changes
+    the height of the curve. Period access is only available to elastic curves and setting a higher period slows
+    the rate of bounce. Only curves that have "boomerang" behaviors such as the InBack, OutBack, InOutBack, and OutInBack 
+    have overshoot settings. These curves will interpolate beyond the end points and return to the end point, 
+    acting similar to a boomerang.
+
+    The \l{Easing Curves Example} contains samples of QEasingCurve types and lets you change the curve settings.
+
  */
 
 /*!
@@ -140,15 +150,15 @@
                         accelerating from zero velocity.
     \value OutQuart     \inlineimage qeasingcurve-outquart.png
                         \br
-                        Easing curve for a cubic (t^4) function:
+                        Easing curve for a quartic (t^4) function:
                         decelerating to zero velocity.
     \value InOutQuart   \inlineimage qeasingcurve-inoutquart.png
                         \br
-                        Easing curve for a cubic (t^4) function:
+                        Easing curve for a quartic (t^4) function:
                         acceleration until halfway, then deceleration.
     \value OutInQuart   \inlineimage qeasingcurve-outinquart.png
                         \br
-                        Easing curve for a cubic (t^4) function:
+                        Easing curve for a quartic (t^4) function:
                         deceleration until halfway, then acceleration.
     \value InQuint      \inlineimage qeasingcurve-inquint.png
                         \br
@@ -156,15 +166,15 @@
                         in: accelerating from zero velocity.
     \value OutQuint     \inlineimage qeasingcurve-outquint.png
                         \br
-                        Easing curve for a cubic (t^5) function:
+                        Easing curve for a quintic (t^5) function:
                         decelerating to zero velocity.
     \value InOutQuint   \inlineimage qeasingcurve-inoutquint.png
                         \br
-                        Easing curve for a cubic (t^5) function:
+                        Easing curve for a quintic (t^5) function:
                         acceleration until halfway, then deceleration.
     \value OutInQuint   \inlineimage qeasingcurve-outinquint.png
                         \br
-                        Easing curve for a cubic (t^5) function:
+                        Easing curve for a quintic (t^5) function:
                         deceleration until halfway, then acceleration.
     \value InSine       \inlineimage qeasingcurve-insine.png
                         \br
--- a/src/corelib/tools/qelapsedtimer_unix.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/corelib/tools/qelapsedtimer_unix.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -40,22 +40,58 @@
 ****************************************************************************/
 
 #include "qelapsedtimer.h"
-#include "qpair.h"
 #include <sys/time.h>
 #include <time.h>
 #include <unistd.h>
 
-#if !defined(QT_NO_CLOCK_MONOTONIC)
-# if defined(QT_BOOTSTRAPPED)
-#  define QT_NO_CLOCK_MONOTONIC
+#if defined(QT_NO_CLOCK_MONOTONIC) || defined(QT_BOOTSTRAPPED)
+// turn off the monotonic clock
+# ifdef _POSIX_MONOTONIC_CLOCK
+#  undef _POSIX_MONOTONIC_CLOCK
 # endif
+# define _POSIX_MONOTONIC_CLOCK -1
 #endif
 
 QT_BEGIN_NAMESPACE
 
-static qint64 fractionAdjustment()
+#if (_POSIX_MONOTONIC_CLOCK-0 != 0)
+static const bool monotonicClockChecked = true;
+static const bool monotonicClockAvailable = _POSIX_MONOTONIC_CLOCK > 0;
+#else
+static int monotonicClockChecked = false;
+static int monotonicClockAvailable = false;
+#endif
+
+#ifdef Q_CC_GNU
+# define is_likely(x) __builtin_expect((x), 1)
+#else
+# define is_likely(x) (x)
+#endif
+#define load_acquire(x) ((volatile const int&)(x))
+#define store_release(x,v) ((volatile int&)(x) = (v))
+
+static void unixCheckClockType()
 {
-    if (QElapsedTimer::isMonotonic()) {
+#if (_POSIX_MONOTONIC_CLOCK-0 == 0)
+    if (is_likely(load_acquire(monotonicClockChecked)))
+        return;
+
+# if defined(_SC_MONOTONIC_CLOCK)
+    // detect if the system support monotonic timers
+    long x = sysconf(_SC_MONOTONIC_CLOCK);
+    store_release(monotonicClockAvailable, x >= 200112L);
+# endif
+
+    store_release(monotonicClockChecked, true);
+#endif
+}
+
+static inline qint64 fractionAdjustment()
+{
+    // disabled, but otherwise indicates bad usage of QElapsedTimer
+    //Q_ASSERT(monotonicClockChecked);
+
+    if (monotonicClockAvailable) {
         // the monotonic timer is measured in nanoseconds
         // 1 ms = 1000000 ns
         return 1000*1000ull;
@@ -68,90 +104,73 @@
 
 bool QElapsedTimer::isMonotonic()
 {
-#if (_POSIX_MONOTONIC_CLOCK-0 > 0)
-    return true;
-#else
-    static int returnValue = 0;
-
-    if (returnValue == 0) {
-#  if (_POSIX_MONOTONIC_CLOCK-0 < 0) || !defined(_SC_MONOTONIC_CLOCK)
-        returnValue = -1;
-#  elif (_POSIX_MONOTONIC_CLOCK == 0)
-        // detect if the system support monotonic timers
-        long x = sysconf(_SC_MONOTONIC_CLOCK);
-        returnValue = (x >= 200112L) ? 1 : -1;
-#  endif
-    }
-
-    return returnValue != -1;
-#endif
+    unixCheckClockType();
+    return monotonicClockAvailable;
 }
 
 QElapsedTimer::ClockType QElapsedTimer::clockType()
 {
-    return isMonotonic() ? MonotonicClock : SystemTime;
+    unixCheckClockType();
+    return monotonicClockAvailable ? MonotonicClock : SystemTime;
 }
 
-static inline QPair<long, long> do_gettime()
+static inline void do_gettime(qint64 *sec, qint64 *frac)
 {
-#if (_POSIX_MONOTONIC_CLOCK-0 > 0)
-    timespec ts;
-    clock_gettime(CLOCK_MONOTONIC, &ts);
-    return qMakePair<long,long>(ts.tv_sec, ts.tv_nsec);
-#else
-#  if !defined(QT_NO_CLOCK_MONOTONIC) && !defined(QT_BOOTSTRAPPED)
-    if (QElapsedTimer::isMonotonic()) {
+#if (_POSIX_MONOTONIC_CLOCK-0 >= 0)
+    unixCheckClockType();
+    if (is_likely(monotonicClockAvailable)) {
         timespec ts;
         clock_gettime(CLOCK_MONOTONIC, &ts);
-        return qMakePair<long,long>(ts.tv_sec, ts.tv_nsec);
+        *sec = ts.tv_sec;
+        *frac = ts.tv_nsec;
+        return;
     }
-#  endif
+#endif
     // use gettimeofday
     timeval tv;
     ::gettimeofday(&tv, 0);
-    return qMakePair<long,long>(tv.tv_sec, tv.tv_usec);
-#endif
+    *sec = tv.tv_sec;
+    *frac = tv.tv_usec;
 }
 
 // used in qcore_unix.cpp and qeventdispatcher_unix.cpp
 timeval qt_gettime()
 {
-    QPair<long, long> r = do_gettime();
+    qint64 sec, frac;
+    do_gettime(&sec, &frac);
 
     timeval tv;
-    tv.tv_sec = r.first;
-    tv.tv_usec = r.second;
-    if (QElapsedTimer::isMonotonic())
+    tv.tv_sec = sec;
+    tv.tv_usec = frac;
+    if (monotonicClockAvailable)
         tv.tv_usec /= 1000;
 
     return tv;
 }
 
+static qint64 elapsedAndRestart(qint64 sec, qint64 frac,
+                                qint64 *nowsec, qint64 *nowfrac)
+{
+    do_gettime(nowsec, nowfrac);
+    sec = *nowsec - sec;
+    frac = *nowfrac - frac;
+    return sec * Q_INT64_C(1000) + frac / fractionAdjustment();
+}
+
 void QElapsedTimer::start()
 {
-    QPair<long, long> r = do_gettime();
-    t1 = r.first;
-    t2 = r.second;
+    do_gettime(&t1, &t2);
 }
 
 qint64 QElapsedTimer::restart()
 {
-    QPair<long, long> r = do_gettime();
-    qint64 oldt1 = t1;
-    qint64 oldt2 = t2;
-    t1 = r.first;
-    t2 = r.second;
-
-    r.first -= oldt1;
-    r.second -= oldt2;
-    return r.first * Q_INT64_C(1000) + r.second / fractionAdjustment();
+    return elapsedAndRestart(t1, t2, &t1, &t2);
 }
 
 qint64 QElapsedTimer::elapsed() const
 {
-    QElapsedTimer now;
-    now.start();
-    return msecsTo(now);
+    qint64 sec, frac;
+    return elapsedAndRestart(t1, t2, &sec, &frac);
 }
 
 qint64 QElapsedTimer::msecsSinceReference() const
--- a/src/corelib/tools/qhash.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/corelib/tools/qhash.h	Mon Oct 04 01:19:32 2010 +0300
@@ -589,10 +589,11 @@
 Q_INLINE_TEMPLATE QHash<Key, T> &QHash<Key, T>::operator=(const QHash<Key, T> &other)
 {
     if (d != other.d) {
-        other.d->ref.ref();
+        QHashData *o = other.d;
+        o->ref.ref();
         if (!d->ref.deref())
             freeData(d);
-        d = other.d;
+        d = o;
         if (!d->sharable)
             detach_helper();
     }
--- a/src/corelib/tools/qlinkedlist.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/corelib/tools/qlinkedlist.h	Mon Oct 04 01:19:32 2010 +0300
@@ -312,10 +312,11 @@
 QLinkedList<T> &QLinkedList<T>::operator=(const QLinkedList<T> &l)
 {
     if (d != l.d) {
-        l.d->ref.ref();
+        QLinkedListData *o = l.d;
+        o->ref.ref();
         if (!d->ref.deref())
             free(d);
-        d = l.d;
+        d = o;
         if (!d->sharable)
             detach_helper();
     }
--- a/src/corelib/tools/qlist.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/corelib/tools/qlist.h	Mon Oct 04 01:19:32 2010 +0300
@@ -424,10 +424,11 @@
 Q_INLINE_TEMPLATE QList<T> &QList<T>::operator=(const QList<T> &l)
 {
     if (d != l.d) {
-        l.d->ref.ref();
+        QListData::Data *o = l.d;
+        o->ref.ref();
         if (!d->ref.deref())
             free(d);
-        d = l.d;
+        d = o;
         if (!d->sharable)
             detach_helper();
     }
--- a/src/corelib/tools/qmap.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/corelib/tools/qmap.h	Mon Oct 04 01:19:32 2010 +0300
@@ -426,10 +426,11 @@
 Q_INLINE_TEMPLATE QMap<Key, T> &QMap<Key, T>::operator=(const QMap<Key, T> &other)
 {
     if (d != other.d) {
-        other.d->ref.ref();
+        QMapData* o = other.d;
+        o->ref.ref();
         if (!d->ref.deref())
             freeData(d);
-        d = other.d;
+        d = o;
         if (!d->sharable)
             detach_helper();
     }
--- a/src/corelib/tools/qpair.qdoc	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/corelib/tools/qpair.qdoc	Mon Oct 04 01:19:32 2010 +0300
@@ -35,7 +35,7 @@
     pair type is not available. It stores one value of type T1 and
     one value of type T2. It can be used as a return value for a
     function that needs to return two values, or as the value type of
-    a \l{generic container}.
+    a \l{Container classes}{generic container}.
 
     Here's an example of a QPair that stores one QString and one \c
     double value:
@@ -53,7 +53,7 @@
     requirements; these requirements are documented on a per-function
     basis.
 
-    \sa {Generic Containers}
+    \sa {Container Classes}
 */
 
 /*! \typedef QPair::first_type
--- a/src/corelib/tools/qshareddata.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/corelib/tools/qshareddata.h	Mon Oct 04 01:19:32 2010 +0300
@@ -95,9 +95,10 @@
         if (o.d != d) {
             if (o.d)
                 o.d->ref.ref();
-            if (d && !d->ref.deref())
-                delete d;
+            T *old = d;
             d = o.d;
+            if (old && !old->ref.deref())
+                delete old;
         }
         return *this;
     }
@@ -105,9 +106,10 @@
         if (o != d) {
             if (o)
                 o->ref.ref();
-            if (d && !d->ref.deref())
-                delete d;
+            T *old = d;
             d = o;
+            if (old && !old->ref.deref())
+                delete old;
         }
         return *this;
     }
@@ -174,9 +176,10 @@
         if (o.d != d) {
             if (o.d)
                 o.d->ref.ref();
-            if (d && !d->ref.deref())
-                delete d;
+            T *old = d;
             d = o.d;
+            if (old && !old->ref.deref())
+                delete old;
         }
         return *this;
     }
@@ -184,9 +187,10 @@
         if (o != d) {
             if (o)
                 o->ref.ref();
-            if (d && !d->ref.deref())
-                delete d;
+            T *old = d;
             d = o;
+            if (old && !old->ref.deref())
+                delete old;
         }
         return *this;
     }
--- a/src/corelib/tools/qsharedpointer.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/corelib/tools/qsharedpointer.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -67,8 +67,8 @@
 
     QSharedPointer and QWeakPointer are thread-safe and operate
     atomically on the pointer value. Different threads can also access
-    the same QSharedPointer or QWeakPointer object at the same time
-    without need for locking mechanisms.
+    the QSharedPointer or QWeakPointer pointing to the same object at
+    the same time without need for locking mechanisms.
 
     It should be noted that, while the pointer value can be accessed
     in this manner, QSharedPointer and QWeakPointer provide no
@@ -482,7 +482,7 @@
     becomes managed by this QSharedPointer and must not be passed to
     another QSharedPointer object or deleted outside this object.
 
-    The \a deleter paramter specifies the custom deleter for this
+    The \a deleter parameter specifies the custom deleter for this
     object. The custom deleter is called when the strong reference
     count drops to 0 instead of the operator delete(). This is useful,
     for instance, for calling deleteLater() in a QObject instead:
--- a/src/corelib/tools/qsimd.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/corelib/tools/qsimd.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -41,20 +41,42 @@
 
 #include "qsimd_p.h"
 #include <QByteArray>
+#include <stdio.h>
 
 #if defined(Q_OS_WINCE)
 #include <windows.h>
 #endif
 
+#if defined(Q_OS_WIN64) && !defined(Q_CC_GNU)
+#include <intrin.h>
+#endif
+
+#if defined(Q_OS_LINUX) && defined(__arm__)
+#include "private/qcore_unix_p.h"
+
+// the kernel header definitions for HWCAP_*
+// (the ones we need/may need anyway)
+
+// copied from <asm/hwcap.h> (ARM)
+#define HWCAP_IWMMXT    512
+#define HWCAP_CRUNCH    1024
+#define HWCAP_THUMBEE   2048
+#define HWCAP_NEON      4096
+#define HWCAP_VFPv3     8192
+#define HWCAP_VFPv3D16  16384
+
+// copied from <linux/auxvec.h>
+#define AT_HWCAP  16    /* arch dependent hints at CPU capabilities */
+
+#endif
+
 QT_BEGIN_NAMESPACE
 
-uint qDetectCPUFeatures()
+#if defined (Q_OS_WINCE)
+static inline uint detectProcessorFeatures()
 {
-    static uint features = 0xffffffff;
-    if (features != 0xffffffff)
-        return features;
+    uint features = 0;
 
-#if defined (Q_OS_WINCE)
 #if defined (ARM)
     if (IsProcessorFeaturePresent(PF_ARM_INTEL_WMMX)) {
         features = IWMMXT;
@@ -74,75 +96,98 @@
 #endif
     features = 0;
     return features;
-#elif defined(QT_HAVE_IWMMXT)
+}
+
+#elif defined(__arm__) || defined(__arm) || defined(QT_HAVE_IWMMXT) || defined(QT_HAVE_NEON)
+static inline uint detectProcessorFeatures()
+{
+    uint features = 0;
+
+#if defined(Q_OS_LINUX)
+    int auxv = ::qt_safe_open("/proc/self/auxv", O_RDONLY);
+    if (auxv != -1) {
+        unsigned long vector[64];
+        int nread;
+        while (features == 0) {
+            nread = ::qt_safe_read(auxv, (char *)vector, sizeof vector);
+            if (nread <= 0) {
+                // EOF or error
+                break;
+            }
+
+            int max = nread / (sizeof vector[0]);
+            for (int i = 0; i < max; i += 2)
+                if (vector[i] == AT_HWCAP) {
+                    if (vector[i+1] & HWCAP_IWMMXT)
+                        features |= IWMMXT;
+                    if (vector[i+1] & HWCAP_NEON)
+                        features |= NEON;
+                    break;
+                }
+        }
+
+        ::qt_safe_close(auxv);
+        return features;
+    }
+    // fall back if /proc/self/auxv wasn't found
+#endif
+
+#if defined(QT_HAVE_IWMMXT)
     // runtime detection only available when running as a previlegied process
-    static const bool doIWMMXT = !qgetenv("QT_NO_IWMMXT").toInt();
-    features = doIWMMXT ? IWMMXT : 0;
-    return features;
+    features = IWMMXT;
 #elif defined(QT_HAVE_NEON)
-    static const bool doNEON = !qgetenv("QT_NO_NEON").toInt();
-    features = doNEON ? NEON : 0;
+    features = NEON;
+#endif
+
     return features;
-#else
-    features = 0;
-#if defined(__x86_64__) || defined(Q_OS_WIN64)
-    features = MMX|SSE|SSE2|CMOV;
-#elif defined(__ia64__)
-    features = MMX|SSE|SSE2;
+}
+
 #elif defined(__i386__) || defined(_M_IX86)
+static inline uint detectProcessorFeatures()
+{
+    uint features = 0;
+
     unsigned int extended_result = 0;
+    unsigned int feature_result = 0;
     uint result = 0;
     /* see p. 118 of amd64 instruction set manual Vol3 */
 #if defined(Q_CC_GNU)
-    asm ("push %%ebx\n"
-         "pushf\n"
-         "pop %%eax\n"
-         "mov %%eax, %%ebx\n"
-         "xor $0x00200000, %%eax\n"
-         "push %%eax\n"
+    long cpuid_supported, tmp1;
+    asm ("pushf\n"
+         "pop %0\n"
+         "mov %0, %1\n"
+         "xor $0x00200000, %0\n"
+         "push %0\n"
          "popf\n"
          "pushf\n"
-         "pop %%eax\n"
-         "xor %%edx, %%edx\n"
-         "xor %%ebx, %%eax\n"
-         "jz 1f\n"
-
-         "mov $0x00000001, %%eax\n"
-         "cpuid\n"
-         "1:\n"
-         "pop %%ebx\n"
-         "mov %%edx, %0\n"
-        : "=r" (result)
-        :
-        : "%eax", "%ecx", "%edx"
-        );
+         "pop %0\n"
+         "xor %1, %0\n" // %eax is now 0 if CPUID is not supported
+         : "=a" (cpuid_supported), "=r" (tmp1)
+         );
+    if (cpuid_supported) {
+        asm ("xchg %%ebx, %2\n"
+             "cpuid\n"
+             "xchg %%ebx, %2\n"
+            : "=c" (feature_result), "=d" (result), "=&r" (tmp1)
+            : "a" (1));
 
-    asm ("push %%ebx\n"
-         "pushf\n"
-         "pop %%eax\n"
-         "mov %%eax, %%ebx\n"
-         "xor $0x00200000, %%eax\n"
-         "push %%eax\n"
-         "popf\n"
-         "pushf\n"
-         "pop %%eax\n"
-         "xor %%edx, %%edx\n"
-         "xor %%ebx, %%eax\n"
-         "jz 2f\n"
+        asm ("xchg %%ebx, %1\n"
+             "cpuid\n"
+             "cmp $0x80000000, %%eax\n"
+             "jnbe 1f\n"
+             "xor %0, %0\n"
+             "jmp 2f\n"
+             "1:\n"
+             "mov $0x80000001, %%eax\n"
+             "cpuid\n"
+             "2:\n"
+             "xchg %%ebx, %1\n"
+            : "=d" (extended_result), "=&r" (tmp1)
+            : "a" (0x80000000)
+            : "%ecx"
+            );
+    }
 
-         "mov $0x80000000, %%eax\n"
-         "cpuid\n"
-         "cmp $0x80000000, %%eax\n"
-         "jbe 2f\n"
-         "mov $0x80000001, %%eax\n"
-         "cpuid\n"
-         "2:\n"
-         "pop %%ebx\n"
-         "mov %%edx, %0\n"
-        : "=r" (extended_result)
-        :
-        : "%eax", "%ecx", "%edx"
-        );
 #elif defined (Q_OS_WIN)
     _asm {
         push eax
@@ -164,6 +209,7 @@
         mov eax, 1
         cpuid
         mov result, edx
+        mov feature_result, ecx
     skip:
         pop edx
         pop ecx
@@ -203,6 +249,7 @@
     }
 #endif
 
+
     // result now contains the standard feature bits
     if (result & (1u << 15))
         features |= CMOV;
@@ -218,44 +265,141 @@
         features |= SSE;
     if (result & (1u << 26))
         features |= SSE2;
-    if (extended_result & (1u))
+    if (feature_result & (1u))
         features |= SSE3;
-    if (extended_result & (1u << 9))
+    if (feature_result & (1u << 9))
         features |= SSSE3;
-    if (extended_result & (1u << 19))
+    if (feature_result & (1u << 19))
         features |= SSE4_1;
-    if (extended_result & (1u << 20))
+    if (feature_result & (1u << 20))
         features |= SSE4_2;
-    if (extended_result & (1u << 28))
+    if (feature_result & (1u << 28))
+        features |= AVX;
+
+    return features;
+}
+
+#elif defined(__x86_64) || defined(Q_OS_WIN64)
+static inline uint detectProcessorFeatures()
+{
+    uint features = MMX|SSE|SSE2|CMOV;
+    uint feature_result = 0;
+
+#if defined(Q_CC_GNU)
+    asm ("cpuid"
+        : "=c" (feature_result)
+        : "a" (1)
+        : "%ebx", "%edx"
+        );
+#elif defined (Q_OS_WIN64)
+    {
+       int info[4];
+       __cpuid(info, 1);
+       feature_result = info[2];
+    }
+#endif
+
+    if (feature_result & (1u))
+        features |= SSE3;
+    if (feature_result & (1u << 9))
+        features |= SSSE3;
+    if (feature_result & (1u << 19))
+        features |= SSE4_1;
+    if (feature_result & (1u << 20))
+        features |= SSE4_2;
+    if (feature_result & (1u << 28))
         features |= AVX;
 
-#endif // i386
-
-#if defined(QT_HAVE_MMX)
-    if (qgetenv("QT_NO_MMX").toInt())
-        features ^= MMX;
-#endif
-    if (qgetenv("QT_NO_MMXEXT").toInt())
-        features ^= MMXEXT;
+    return features;
+}
 
-#if defined(QT_HAVE_3DNOW)
-    if (qgetenv("QT_NO_3DNOW").toInt())
-        features ^= MMX3DNOW;
-#endif
-    if (qgetenv("QT_NO_3DNOWEXT").toInt())
-        features ^= MMX3DNOWEXT;
+#elif defined(__ia64__)
+static inline uint detectProcessorFeatures()
+{
+    return MMX|SSE|SSE2;
+}
 
-#if defined(QT_HAVE_SSE)
-    if (qgetenv("QT_NO_SSE").toInt())
-        features ^= SSE;
-#endif
-#if defined(QT_HAVE_SSE2)
-    if (qgetenv("QT_NO_SSE2").toInt())
-        features ^= SSE2;
+#else
+static inline uint detectProcessorFeatures()
+{
+    return 0;
+}
 #endif
 
+/*
+ * Use kdesdk/scripts/generate_string_table.pl to update the table below.
+ * Here's the data (don't forget the ONE leading space):
+ mmx
+ mmxext
+ mmx3dnow
+ mmx3dnowext
+ sse
+ sse2
+ cmov
+ iwmmxt
+ neon
+ sse3
+ ssse3
+ sse4.1
+ sse4.2
+ avx
+  */
+
+// begin generated
+static const char features_string[] =
+    " mmx\0"
+    " mmxext\0"
+    " mmx3dnow\0"
+    " mmx3dnowext\0"
+    " sse\0"
+    " sse2\0"
+    " cmov\0"
+    " iwmmxt\0"
+    " neon\0"
+    " sse3\0"
+    " ssse3\0"
+    " sse4.1\0"
+    " sse4.2\0"
+    " avx\0"
+    "\0";
+
+static const int features_indices[] = {
+       0,    5,   13,   23,   36,   41,   47,   53,
+      61,   67,   73,   80,   88,   96,   -1
+};
+// end generated
+
+const int features_count = (sizeof features_indices - 1) / (sizeof features_indices[0]);
+
+uint qDetectCPUFeatures()
+{
+    static QBasicAtomicInt features = Q_BASIC_ATOMIC_INITIALIZER(-1);
+    if (features != -1)
+        return features;
+
+    uint f = detectProcessorFeatures();
+    QByteArray disable = qgetenv("QT_NO_CPU_FEATURE");
+    if (!disable.isEmpty()) {
+        disable.prepend(' ');
+        for (int i = 0; i < features_count; ++i) {
+            if (disable.contains(features_string + features_indices[i]))
+                f &= ~(1 << i);
+        }
+    }
+
+    features = f;
     return features;
-#endif
+}
+
+void qDumpCPUFeatures()
+{
+    uint features = qDetectCPUFeatures();
+    printf("Processor features: ");
+    for (int i = 0; i < features_count; ++i) {
+        if (features & (1 << i))
+            printf("%s", features_string + features_indices[i]);
+    }
+    puts("");
 }
 
 QT_END_NAMESPACE
--- a/src/corelib/tools/qsimd_p.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/corelib/tools/qsimd_p.h	Mon Oct 04 01:19:32 2010 +0300
@@ -51,8 +51,13 @@
 #if defined(QT_NO_MAC_XARCH) || (defined(Q_OS_DARWIN) && (defined(__ppc__) || defined(__ppc64__)))
 // Disable MMX and SSE on Mac/PPC builds, or if the compiler
 // does not support -Xarch argument passing
+#undef QT_HAVE_SSE
 #undef QT_HAVE_SSE2
-#undef QT_HAVE_SSE
+#undef QT_HAVE_SSE3
+#undef QT_HAVE_SSSE3
+#undef QT_HAVE_SSE4_1
+#undef QT_HAVE_SSE4_2
+#undef QT_HAVE_AVX
 #undef QT_HAVE_3DNOW
 #undef QT_HAVE_MMX
 #endif
@@ -72,6 +77,28 @@
 #  include <emmintrin.h>
 #endif
 
+// SSE3 intrinsics
+#if defined(QT_HAVE_SSE3) && (defined(__SSE3__) || defined(Q_CC_MSVC))
+#include <pmmintrin.h>
+#endif
+
+// SSSE3 intrinsics
+#if defined(QT_HAVE_SSSE3) && (defined(__SSSE3__) || defined(Q_CC_MSVC))
+#include <tmmintrin.h>
+#endif
+
+// SSE4.1 and SSE4.2 intrinsics
+#if (defined(QT_HAVE_SSE4_1) || defined(QT_HAVE_SSE4_2)) && (defined(__SSE4_1__) || defined(Q_CC_MSVC))
+#include <smmintrin.h>
+#include <nmmintrin.h>
+#endif
+
+// AVX intrinsics
+#if defined(QT_HAVE_AVX) && (defined(__AVX__) || defined(Q_CC_MSVC))
+#include <immintrin.h>
+#endif
+
+
 #if !defined(QT_BOOTSTRAPPED) && (!defined(Q_CC_MSVC) || (defined(_M_X64) || _M_IX86_FP == 2))
 #define QT_ALWAYS_HAVE_SSE2
 #endif
@@ -129,7 +156,9 @@
 
 Q_CORE_EXPORT uint qDetectCPUFeatures();
 
-Q_CORE_EXPORT uint qDetectCPUFeatures();
+
+#define ALIGNMENT_PROLOGUE_16BYTES(ptr, i, length) \
+    for (; i < static_cast<int>(qMin(static_cast<quintptr>(length), ((4 - ((reinterpret_cast<quintptr>(ptr) >> 2) & 0x3)) & 0x3))); ++i)
 
 QT_END_NAMESPACE
 
--- a/src/corelib/tools/qstring.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/corelib/tools/qstring.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -173,19 +173,6 @@
     return 1;
 }
 
-// Unicode case-insensitive comparison
-static int ucstrcmp(const QChar *a, int alen, const QChar *b, int blen)
-{
-    if (a == b && alen == blen)
-        return 0;
-    int l = qMin(alen, blen);
-    while (l-- && *a == *b)
-        a++,b++;
-    if (l == -1)
-        return (alen-blen);
-    return a->unicode() - b->unicode();
-}
-
 // Unicode case-sensitive compare two same-sized strings
 static int ucstrncmp(const QChar *a, const QChar *b, int l)
 {
@@ -196,28 +183,71 @@
     return a->unicode() - b->unicode();
 }
 
+// Unicode case-sensitive comparison
+static int ucstrcmp(const QChar *a, int alen, const QChar *b, int blen)
+{
+    if (a == b && alen == blen)
+        return 0;
+    int l = qMin(alen, blen);
+    int cmp = ucstrncmp(a, b, l);
+    return cmp ? cmp : (alen-blen);
+}
+
 // Unicode case-insensitive compare two same-sized strings
 static int ucstrnicmp(const ushort *a, const ushort *b, int l)
 {
     return ucstricmp(a, a + l, b, b + l);
 }
 
+// Benchmarking indicates that doing memcmp is much slower than
+// executing the comparison ourselves.
+//
+// The profiling was done on a population of calls to qMemEquals, generated
+// during a run of the demo browser. The profile of the data (32-bit x86
+// Linux) was:
+//
+//  total number of comparisons: 21353
+//  longest string compared: 95
+//  average comparison length: 14.8786
+//  cache-line crosses: 5661 (13.3%)
+//  alignment histogram:
+//   0xXXX0 = 512 (1.2%) strings, 0 (0.0%) of which same-aligned
+//   0xXXX2 = 15087 (35.3%) strings, 5145 (34.1%) of which same-aligned
+//   0xXXX4 = 525 (1.2%) strings, 0 (0.0%) of which same-aligned
+//   0xXXX6 = 557 (1.3%) strings, 6 (1.1%) of which same-aligned
+//   0xXXX8 = 509 (1.2%) strings, 0 (0.0%) of which same-aligned
+//   0xXXXa = 24358 (57.0%) strings, 9901 (40.6%) of which same-aligned
+//   0xXXXc = 557 (1.3%) strings, 0 (0.0%) of which same-aligned
+//   0xXXXe = 601 (1.4%) strings, 15 (2.5%) of which same-aligned
+//   total  = 42706 (100%) strings, 15067 (35.3%) of which same-aligned
+//
+// 92% of the strings have alignment of 2 or 10, which is due to malloc on
+// 32-bit Linux returning values aligned to 8 bytes, and offsetof(array, QString::Data) == 18.
+//
+// The profile on 64-bit will be different since offsetof(array, QString::Data) == 26.
+//
+// The benchmark results were, for a Core-i7 @ 2.67 GHz 32-bit, compiled with -O3 -funroll-loops:
+//   16-bit loads only:           872,301 CPU ticks [Qt 4.5 / memcmp]
+//   32- and 16-bit loads:        773,362 CPU ticks [Qt 4.6]
+//   SSE2 "movdqu" 128-bit loads: 618,736 CPU ticks
+//   SSE3 "lddqu" 128-bit loads:  619,954 CPU ticks
+//   SSSE3 "palignr" corrections: 852,147 CPU ticks
+//   SSE4.2 "pcmpestrm":          738,702 CPU ticks
+//
+// The same benchmark on an Atom N450 @ 1.66 GHz, is:
+//  16-bit loads only:            2,185,882 CPU ticks
+//  32- and 16-bit loads:         1,805,060 CPU ticks
+//  SSE2 "movdqu" 128-bit loads:  2,529,843 CPU ticks
+//  SSE3 "lddqu" 128-bit loads:   2,514,858 CPU ticks
+//  SSSE3 "palignr" corrections:  2,160,325 CPU ticks
+//  SSE4.2 not available
+//
+// The conclusion we reach is that alignment the SSE2 unaligned code can gain
+// 20% improvement in performance in some systems, but suffers a penalty due
+// to the unaligned loads on others.
+
 static bool qMemEquals(const quint16 *a, const quint16 *b, int length)
 {
-    // Benchmarking indicates that doing memcmp is much slower than
-    // executing the comparison ourselves.
-    // To make it even faster, we do a 32-bit comparison, comparing
-    // twice the amount of data as a normal word-by-word comparison.
-    //
-    // Benchmarking results on a 2.33 GHz Core2 Duo, with a 64-QChar
-    // block of data, with 4194304 iterations (per iteration):
-    //    operation             usec            cpu ticks
-    //     memcmp                330               710
-    //     16-bit                 79             167-171
-    //  32-bit aligned            49             105-109
-    //
-    // Testing also indicates that unaligned 32-bit loads are as
-    // performant as 32-bit aligned.
     if (a == b || !length)
         return true;
 
@@ -6645,8 +6675,9 @@
     QString locale_arg;
     if (d.locale_occurrences > 0) {
         QLocale locale;
-        locale_arg = locale.d()->longLongToString(a, -1, base, fieldWidth,
-                                                  flags | QLocalePrivate::ThousandsGroup);
+        if (!locale.numberOptions() & QLocale::OmitGroupSeparator)
+            flags |= QLocalePrivate::ThousandsGroup;
+        locale_arg = locale.d()->longLongToString(a, -1, base, fieldWidth, flags);
     }
 
     return replaceArgEscapes(*this, d, fieldWidth, arg, locale_arg, fillChar);
@@ -6688,8 +6719,9 @@
     QString locale_arg;
     if (d.locale_occurrences > 0) {
         QLocale locale;
-        locale_arg = locale.d()->unsLongLongToString(a, -1, base, fieldWidth,
-                                                     flags | QLocalePrivate::ThousandsGroup);
+        if (!locale.numberOptions() & QLocale::OmitGroupSeparator)
+            flags |= QLocalePrivate::ThousandsGroup;
+        locale_arg = locale.d()->unsLongLongToString(a, -1, base, fieldWidth, flags);
     }
 
     return replaceArgEscapes(*this, d, fieldWidth, arg, locale_arg, fillChar);
@@ -6822,7 +6854,8 @@
     if (d.locale_occurrences > 0) {
         QLocale locale;
 
-        flags |= QLocalePrivate::ThousandsGroup;
+        if (!locale.numberOptions() & QLocale::OmitGroupSeparator)
+            flags |= QLocalePrivate::ThousandsGroup;
         locale_arg = locale.d()->doubleToString(a, prec, form, fieldWidth, flags);
     }
 
--- a/src/corelib/tools/qstring.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/corelib/tools/qstring.h	Mon Oct 04 01:19:32 2010 +0300
@@ -616,6 +616,7 @@
         ushort asciiCache : 1;
         ushort capacity : 1;
         ushort reserved : 11;
+        // ### Qt5: try to ensure that "array" is aligned to 16 bytes on both 32- and 64-bit
         ushort array[1];
     };
     static Data shared_null;
--- a/src/corelib/tools/qstringmatcher.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/corelib/tools/qstringmatcher.h	Mon Oct 04 01:19:32 2010 +0300
@@ -78,7 +78,7 @@
     QString q_pattern;
     Qt::CaseSensitivity q_cs;
 #ifdef Q_CC_RVCT
-// explicitely allow anonymous unions for RVCT to prevent compiler warnings
+// explicitly allow anonymous unions for RVCT to prevent compiler warnings
 #  pragma push
 #  pragma anon_unions
 #endif
--- a/src/corelib/tools/qtextboundaryfinder.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/corelib/tools/qtextboundaryfinder.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -244,7 +244,7 @@
   data required, it will use this instead of allocating its own buffer.
 
   \warning QTextBoundaryFinder does not create a copy of \a chars. It is the
-  application programmer's responsability to ensure the array is allocated for
+  application programmer's responsibility to ensure the array is allocated for
   as long as the QTextBoundaryFinder object stays alive. The same applies to
   \a buffer.
 */
--- a/src/corelib/tools/qvector.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/corelib/tools/qvector.h	Mon Oct 04 01:19:32 2010 +0300
@@ -377,10 +377,11 @@
 template <typename T>
 QVector<T> &QVector<T>::operator=(const QVector<T> &v)
 {
-    v.d->ref.ref();
+    QVectorData *o = v.d;
+    o->ref.ref();
     if (!d->ref.deref())
         free(p);
-    d = v.d;
+    d = o;
     if (!d->sharable)
         detach_helper();
     return *this;
--- a/src/corelib/xml/qxmlstream.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/corelib/xml/qxmlstream.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -1523,7 +1523,7 @@
         decoder = codec->makeDecoder();
     }
 
-    decoder->toUnicode(&readBuffer, rawReadBuffer.data(), nbytesread);
+    decoder->toUnicode(&readBuffer, rawReadBuffer.constData(), nbytesread);
 
     if(lockEncoding && decoder->hasFailure()) {
         raiseWellFormedError(QXmlStream::tr("Encountered incorrectly encoded content."));
--- a/src/dbus/qdbusargument.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/dbus/qdbusargument.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -825,7 +825,7 @@
     \snippet doc/src/snippets/code/src_qdbus_qdbusargument.cpp 6
 
     If the type you want to marshall is a QList, QVector or any of the
-    Qt's \l {Generic Containers} that take one template parameter,
+    Qt's \l {Container Classes} that take one template parameter,
     you need not declare an \c{operator<<} function for it, since
     QtDBus provides generic templates to do the job of marshalling
     the data. The same applies for STL's sequence containers, such
@@ -952,7 +952,7 @@
     \snippet doc/src/snippets/code/src_qdbus_qdbusargument.cpp 9
 
     If the type you want to demarshall is a QList, QVector or any of the
-    Qt's \l {Generic Containers} that take one template parameter, you
+    Qt's \l {Container Classes} that take one template parameter, you
     need not declare an \c{operator>>} function for it, since QtDBus
     provides generic templates to do the job of demarshalling the data.
     The same applies for STL's sequence containers, such as \c {std::list},
--- a/src/dbus/qdbusconnection.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/dbus/qdbusconnection.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -173,6 +173,9 @@
     The connection is then torn down using the disconnectFromBus()
     function.
 
+    Once disconnected, calling connectToBus() will not reestablish a
+    connection, you must create a new QDBusConnection instance.
+
     As a convenience for the two most common connection types, the
     sessionBus() and systemBus() functions return open connections to
     the session server daemon and the system server daemon,
@@ -209,6 +212,7 @@
     \value ExportScriptableSlots                export this object's scriptable slots
     \value ExportScriptableSignals              export this object's scriptable signals
     \value ExportScriptableProperties           export this object's scriptable properties
+    \value ExportScriptableInvokables           export this object's scriptable invokables
     \value ExportScriptableContents             shorthand form for ExportScriptableSlots |
                                                 ExportScriptableSignals |
                                                 ExportScriptableProperties
@@ -216,6 +220,7 @@
     \value ExportNonScriptableSlots             export this object's non-scriptable slots
     \value ExportNonScriptableSignals           export this object's non-scriptable signals
     \value ExportNonScriptableProperties        export this object's non-scriptable properties
+    \value ExportNonScriptableInvokables        export this object's non-scriptable invokables
     \value ExportNonScriptableContents          shorthand form for ExportNonScriptableSlots |
                                                 ExportNonScriptableSignals |
                                                 ExportNonScriptableProperties
@@ -223,8 +228,8 @@
     \value ExportAllSlots                       export all of this object's slots
     \value ExportAllSignals                     export all of this object's signals
     \value ExportAllProperties                  export all of this object's properties
+    \value ExportAllInvokables                  export all of this object's invokables
     \value ExportAllContents                    export all of this object's contents
-
     \value ExportChildObjects                   export this object's child objects
 
     \sa registerObject(), QDBusAbstractAdaptor, {usingadaptors.html}{Using adaptors}
@@ -853,10 +858,6 @@
 
 /*!
     Returns true if this QDBusConnection object is connected.
-
-    If it isn't connected, calling connectToBus() on the same
-    connection name will not make be connected. You need to call the
-    QDBusConnection constructor again.
 */
 bool QDBusConnection::isConnected() const
 {
@@ -916,7 +917,7 @@
 
 /*!
     Attempts to register the \a serviceName on the D-Bus server and
-    returns true if the registration succeded. The registration will
+    returns true if the registration succeeded. The registration will
     fail if the name is already registered by another application.
 
     \sa unregisterService(), QDBusConnectionInterface::registerService()
--- a/src/dbus/qdbusconnection.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/dbus/qdbusconnection.h	Mon Oct 04 01:19:32 2010 +0300
@@ -85,16 +85,19 @@
         ExportScriptableSlots = 0x10,
         ExportScriptableSignals = 0x20,
         ExportScriptableProperties = 0x40,
+        ExportScriptableInvokables = 0x80,
         ExportScriptableContents = 0xf0,
 
         ExportNonScriptableSlots = 0x100,
         ExportNonScriptableSignals = 0x200,
         ExportNonScriptableProperties = 0x400,
+        ExportNonScriptableInvokables = 0x800,
         ExportNonScriptableContents = 0xf00,
 
         ExportAllSlots = ExportScriptableSlots|ExportNonScriptableSlots,
         ExportAllSignals = ExportScriptableSignals|ExportNonScriptableSignals,
         ExportAllProperties = ExportScriptableProperties|ExportNonScriptableProperties,
+        ExportAllInvokables = ExportScriptableInvokables|ExportNonScriptableInvokables,
         ExportAllContents = ExportScriptableContents|ExportNonScriptableContents,
 
 #ifndef Q_QDOC
--- a/src/dbus/qdbusintegrator.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/dbus/qdbusintegrator.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -618,7 +618,7 @@
             continue;
 
         // check type:
-        if (mm.methodType() != QMetaMethod::Slot)
+        if (mm.methodType() != QMetaMethod::Slot && mm.methodType() != QMetaMethod::Method)
             continue;
 
         // check name:
@@ -682,10 +682,17 @@
         if (isAsync && metaTypes.count() > i + 1)
             continue;
 
-        if (isScriptable && (flags & QDBusConnection::ExportScriptableSlots) == 0)
-            continue;           // not exported
-        if (!isScriptable && (flags & QDBusConnection::ExportNonScriptableSlots) == 0)
-            continue;           // not exported
+        if (mm.methodType() == QMetaMethod::Slot) {
+            if (isScriptable && (flags & QDBusConnection::ExportScriptableSlots) == 0)
+                continue;           // scriptable slots not exported
+            if (!isScriptable && (flags & QDBusConnection::ExportNonScriptableSlots) == 0)
+                continue;           // non-scriptable slots not exported
+        } else {
+            if (isScriptable && (flags & QDBusConnection::ExportScriptableInvokables) == 0)
+                continue;           // scriptable invokables not exported
+            if (!isScriptable && (flags & QDBusConnection::ExportNonScriptableInvokables) == 0)
+                continue;           // non-scriptable invokables not exported
+        }
 
         // if we got here, this slot matched
         return idx;
@@ -707,6 +714,9 @@
     if (metaTypes[n] == QDBusMetaTypeId::message)
         --n;
 
+    if (msg.arguments().count() < n)
+        return 0;               // too few arguments
+
     // check that types match
     for (int i = 0; i < n; ++i)
         if (metaTypes.at(i + 1) != msg.arguments().at(i).userType() &&
@@ -1379,7 +1389,8 @@
         return;                 // internal filters have already run or an error has been sent
 
     // try the object itself:
-    if (node.flags & (QDBusConnection::ExportScriptableSlots|QDBusConnection::ExportNonScriptableSlots)) {
+    if (node.flags & (QDBusConnection::ExportScriptableSlots|QDBusConnection::ExportNonScriptableSlots) ||
+        node.flags & (QDBusConnection::ExportScriptableInvokables|QDBusConnection::ExportNonScriptableInvokables)) {
         bool interfaceFound = true;
         if (!msg.interface().isEmpty())
             interfaceFound = qDBusInterfaceInObject(node.obj, msg.interface());
--- a/src/dbus/qdbusinterface.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/dbus/qdbusinterface.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -277,7 +277,7 @@
             // signal relay from D-Bus world to Qt world
             QMetaObject::activate(q, metaObject, id, argv);
 
-        } else if (mm.methodType() == QMetaMethod::Slot) {
+        } else if (mm.methodType() == QMetaMethod::Slot || mm.methodType() == QMetaMethod::Method) {
             // method call relay from Qt world to D-Bus world
             // get D-Bus equivalent signature
             QString methodName = QLatin1String(metaObject->dbusNameForMethod(id));
--- a/src/dbus/qdbusserver.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/dbus/qdbusserver.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -100,7 +100,7 @@
 }
 
 /*!
-    Returns the address this server is assosiated with.
+    Returns the address this server is associated with.
 */
 QString QDBusServer::address() const
 {
--- a/src/dbus/qdbusxmlgenerator.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/dbus/qdbusxmlgenerator.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -133,7 +133,7 @@
         if (mm.methodType() == QMetaMethod::Signal)
             // adding a signal
             isSignal = true;
-        else if (mm.methodType() == QMetaMethod::Slot && mm.access() == QMetaMethod::Public)
+        else if (mm.access() == QMetaMethod::Public && (mm.methodType() == QMetaMethod::Slot || mm.methodType() == QMetaMethod::Method))
             isSignal = false;
         else
             continue;           // neither signal nor public slot
@@ -141,9 +141,9 @@
         if (isSignal && !(flags & (QDBusConnection::ExportScriptableSignals |
                                    QDBusConnection::ExportNonScriptableSignals)))
             continue;           // we're not exporting any signals
-        if (!isSignal && !(flags & (QDBusConnection::ExportScriptableSlots |
-                                    QDBusConnection::ExportNonScriptableSlots)))
-            continue;           // we're not exporting any slots
+        if (!isSignal && (!(flags & (QDBusConnection::ExportScriptableSlots | QDBusConnection::ExportNonScriptableSlots)) &&
+                          !(flags & (QDBusConnection::ExportScriptableInvokables | QDBusConnection::ExportNonScriptableInvokables))))
+            continue;           // we're not exporting any slots or invokables
 
         QString xml = QString::fromLatin1("    <%1 name=\"%2\">\n")
                       .arg(isSignal ? QLatin1String("signal") : QLatin1String("method"))
--- a/src/declarative/debugger/qdeclarativedebug.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/debugger/qdeclarativedebug.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -340,6 +340,8 @@
         if (!watch)
             return;
         emit watch->valueChanged(name, value);
+    } else if (type == "OBJECT_CREATED") {
+        emit q_func()->newObjects();
     }
 }
 
@@ -507,7 +509,7 @@
         QByteArray message;
         QDataStream ds(&message, QIODevice::WriteOnly);
         ds << QByteArray("FETCH_OBJECT") << queryId << object.debugId() 
-           << false;
+           << false << true;
         d->client->sendMessage(message);
     } else {
         query->m_state = QDeclarativeDebugQuery::Error;
@@ -530,7 +532,7 @@
         QByteArray message;
         QDataStream ds(&message, QIODevice::WriteOnly);
         ds << QByteArray("FETCH_OBJECT") << queryId << object.debugId() 
-           << true;
+           << true << true;
         d->client->sendMessage(message);
     } else {
         query->m_state = QDeclarativeDebugQuery::Error;
--- a/src/declarative/debugger/qdeclarativedebug_p.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/debugger/qdeclarativedebug_p.h	Mon Oct 04 01:19:32 2010 +0300
@@ -99,6 +99,9 @@
     bool resetBindingForObject(int objectDebugId, const QString &propertyName);
     bool setMethodBody(int objectDebugId, const QString &methodName, const QString &methodBody);
 
+Q_SIGNALS:
+    void newObjects();
+
 private:
     Q_DECLARE_PRIVATE(QDeclarativeEngineDebug)
 };
--- a/src/declarative/debugger/qdeclarativedebugservice.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/debugger/qdeclarativedebugservice.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -128,6 +128,8 @@
 
     if (d->connection) {
         qWarning("QDeclarativeDebugServer error: another client is already connected");
+        QTcpSocket *faultyConnection = d->tcpServer->nextPendingConnection();
+        delete faultyConnection;
         return;
     }
 
--- a/src/declarative/debugger/qpacketprotocol.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/debugger/qpacketprotocol.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -125,7 +125,7 @@
         QObject::connect(this, SIGNAL(invalidPacket()),
                          parent, SIGNAL(invalidPacket()));
         QObject::connect(dev, SIGNAL(readyRead()),
-                         this, SLOT(readyToRead()));
+                         this, SLOT(readyToRead()), Qt::QueuedConnection);
         QObject::connect(dev, SIGNAL(aboutToClose()),
                          this, SLOT(aboutToClose()));
         QObject::connect(dev, SIGNAL(bytesWritten(qint64)),
@@ -422,7 +422,7 @@
 
 /*!
   Creates a copy of \a other.  The initial stream positions are shared, but the
-  two packets are otherwise independant.
+  two packets are otherwise independent.
  */
 QPacket::QPacket(const QPacket & other)
 : QDataStream(), b(other.b), buf(0)
--- a/src/declarative/graphicsitems/qdeclarativeanchors.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/graphicsitems/qdeclarativeanchors.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -148,15 +148,6 @@
     return ret;
 }
 
-/*!
-    \internal
-    \class QDeclarativeAnchors
-    \since 4.7
-    \brief The QDeclarativeAnchors class provides a way to lay out items relative to other items.
-
-    \warning Currently, only anchoring to siblings or parent is supported.
-*/
-
 QDeclarativeAnchors::QDeclarativeAnchors(QObject *parent)
   : QObject(*new QDeclarativeAnchorsPrivate(0), parent)
 {
--- a/src/declarative/graphicsitems/qdeclarativeanimatedimage.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/graphicsitems/qdeclarativeanimatedimage.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -54,15 +54,11 @@
 QT_BEGIN_NAMESPACE
 
 /*!
-    \class QDeclarativeAnimatedImage
-    \internal
-*/
-
-/*!
     \qmlclass AnimatedImage QDeclarativeAnimatedImage
     \inherits Image
     \since 4.7
-
+    \ingroup basic-visual-elements
+    
     The AnimatedImage element provides for playing animations stored as images containing a series of frames,
     such as GIF files. 
     
--- a/src/declarative/graphicsitems/qdeclarativeborderimage.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/graphicsitems/qdeclarativeborderimage.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -56,6 +56,7 @@
     \brief The BorderImage element provides an image that can be used as a border.
     \inherits Item
     \since 4.7
+    \ingroup qm-basic-visual-elements
 
     A BorderImage breaks an image into 9 sections, as shown below:
 
@@ -78,12 +79,6 @@
     rectangular item.
  */
 
-/*!
-    \class QDeclarativeBorderImage BorderImage
-    \internal
-    \brief The QDeclarativeBorderImage class provides an image item that you can add to a QDeclarativeView.
-*/
-
 QDeclarativeBorderImage::QDeclarativeBorderImage(QDeclarativeItem *parent)
   : QDeclarativeImageBase(*(new QDeclarativeBorderImagePrivate), parent)
 {
--- a/src/declarative/graphicsitems/qdeclarativeevents.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/graphicsitems/qdeclarativeevents.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -45,6 +45,8 @@
 /*!
     \qmlclass KeyEvent QDeclarativeKeyEvent
     \since 4.7
+    \ingroup qml-event-elements
+    
     \brief The KeyEvent object provides information about a key event.
 
     For example, the following changes the Item's state property when the Enter
@@ -58,11 +60,6 @@
 */
 
 /*!
-    \internal
-    \class QDeclarativeKeyEvent
-*/
-
-/*!
     \qmlproperty int KeyEvent::key
 
     This property holds the code of the key that was pressed or released.
@@ -115,6 +112,8 @@
 /*!
     \qmlclass MouseEvent QDeclarativeMouseEvent
     \since 4.7
+    \ingroup qml-event-elements
+    
     \brief The MouseEvent object provides information about a mouse event.
 
     The position of the mouse can be found via the x and y properties.
--- a/src/declarative/graphicsitems/qdeclarativeflickable.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/graphicsitems/qdeclarativeflickable.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -54,7 +54,7 @@
 static const int FlickThreshold = 20;
 
 // Really slow flicks can be annoying.
-static const int minimumFlickVelocity = 200;
+static const int MinimumFlickVelocity = 75;
 
 QDeclarativeFlickableVisibleArea::QDeclarativeFlickableVisibleArea(QDeclarativeFlickable *parent)
     : QObject(parent), flickable(parent), m_xPosition(0.), m_widthRatio(0.)
@@ -345,6 +345,8 @@
 /*!
     \qmlclass Flickable QDeclarativeFlickable
     \since 4.7
+    \ingroup qml-basic-interaction-elements
+
     \brief The Flickable item provides a surface that can be "flicked".
     \inherits Item
 
@@ -651,6 +653,8 @@
     timeline.clear();
     hData.velocity = 0;
     vData.velocity = 0;
+    hData.dragStartOffset = 0;
+    vData.dragStartOffset = 0;
     lastPos = QPoint();
     QDeclarativeItemPrivate::start(lastPosTime);
     pressPos = event->pos();
@@ -673,7 +677,9 @@
     if (q->yflick()) {
         int dy = int(event->pos().y() - pressPos.y());
         if (qAbs(dy) > QApplication::startDragDistance() || QDeclarativeItemPrivate::elapsed(pressTime) > 200) {
-            qreal newY = dy + vData.pressPos;
+            if (!vMoved)
+                vData.dragStartOffset = dy;
+            qreal newY = dy + vData.pressPos - vData.dragStartOffset;
             const qreal minY = q->minYExtent();
             const qreal maxY = q->maxYExtent();
             if (newY > minY)
@@ -681,12 +687,15 @@
             if (newY < maxY && maxY - minY <= 0)
                 newY = maxY + (newY - maxY) / 2;
             if (boundsBehavior == QDeclarativeFlickable::StopAtBounds && (newY > minY || newY < maxY)) {
-                if (newY > minY)
+                rejectY = true;
+                if (newY < maxY) {
+                    newY = maxY;
+                    rejectY = false;
+                }
+                if (newY > minY) {
                     newY = minY;
-                else if (newY < maxY)
-                    newY = maxY;
-                else
-                    rejectY = true;
+                    rejectY = false;
+                }
             }
             if (!rejectY && stealMouse) {
                 vData.move.setValue(qRound(newY));
@@ -700,7 +709,9 @@
     if (q->xflick()) {
         int dx = int(event->pos().x() - pressPos.x());
         if (qAbs(dx) > QApplication::startDragDistance() || QDeclarativeItemPrivate::elapsed(pressTime) > 200) {
-            qreal newX = dx + hData.pressPos;
+            if (!hMoved)
+                hData.dragStartOffset = dx;
+            qreal newX = dx + hData.pressPos - hData.dragStartOffset;
             const qreal minX = q->minXExtent();
             const qreal maxX = q->maxXExtent();
             if (newX > minX)
@@ -708,12 +719,15 @@
             if (newX < maxX && maxX - minX <= 0)
                 newX = maxX + (newX - maxX) / 2;
             if (boundsBehavior == QDeclarativeFlickable::StopAtBounds && (newX > minX || newX < maxX)) {
-                if (newX > minX)
+                rejectX = true;
+                if (newX < maxX) {
+                    newX = maxX;
+                    rejectX = false;
+                }
+                if (newX > minX) {
                     newX = minX;
-                else if (newX < maxX)
-                    newX = maxX;
-                else
-                    rejectX = true;
+                    rejectX = false;
+                }
             }
             if (!rejectX && stealMouse) {
                 hData.move.setValue(qRound(newX));
@@ -771,23 +785,15 @@
     }
 
     vTime = timeline.time();
-    if (qAbs(vData.velocity) > 10 && qAbs(event->pos().y() - pressPos.y()) > FlickThreshold) {
-        qreal velocity = vData.velocity;
-        if (qAbs(velocity) < minimumFlickVelocity) // Minimum velocity to avoid annoyingly slow flicks.
-            velocity = velocity < 0 ? -minimumFlickVelocity : minimumFlickVelocity;
-        flickY(velocity);
-    } else {
+    if (qAbs(vData.velocity) > MinimumFlickVelocity && qAbs(event->pos().y() - pressPos.y()) > FlickThreshold)
+        flickY(vData.velocity);
+    else
         fixupY();
-    }
 
-    if (qAbs(hData.velocity) > 10 && qAbs(event->pos().x() - pressPos.x()) > FlickThreshold) {
-        qreal velocity = hData.velocity;
-        if (qAbs(velocity) < minimumFlickVelocity) // Minimum velocity to avoid annoyingly slow flicks.
-            velocity = velocity < 0 ? -minimumFlickVelocity : minimumFlickVelocity;
-        flickX(velocity);
-    } else {
+    if (qAbs(hData.velocity) > MinimumFlickVelocity && qAbs(event->pos().x() - pressPos.x()) > FlickThreshold)
+        flickX(hData.velocity);
+    else
         fixupX();
-    }
 
     lastPosTime.invalidate();
 
@@ -995,12 +1001,16 @@
 
     bool changed = false;
     if (newGeometry.width() != oldGeometry.width()) {
+        if (xflick())
+            changed = true;
         if (d->hData.viewSize < 0) {
             d->contentItem->setWidth(width());
             emit contentWidthChanged();
         }
     }
     if (newGeometry.height() != oldGeometry.height()) {
+        if (yflick())
+            changed = true;
         if (d->vData.viewSize < 0) {
             d->contentItem->setHeight(height());
             emit contentHeightChanged();
@@ -1021,7 +1031,7 @@
 
 void QDeclarativeFlickablePrivate::data_append(QDeclarativeListProperty<QObject> *prop, QObject *o)
 {
-    QDeclarativeItem *i = qobject_cast<QDeclarativeItem *>(o);
+    QGraphicsObject *i = qobject_cast<QGraphicsObject *>(o);
     if (i)
         i->setParentItem(static_cast<QDeclarativeFlickablePrivate*>(prop->data)->contentItem);
     else
@@ -1248,6 +1258,7 @@
     if (mouseEvent.type() == QEvent::GraphicsSceneMouseRelease) {
         d->clearDelayedPress();
         d->stealMouse = false;
+        d->pressed = false;
     }
     return false;
 }
@@ -1426,21 +1437,23 @@
         if (!d->flickingHorizontally)
            emit flickEnded();
     }
-    if (d->movingHorizontally) {
-        d->movingHorizontally = false;
-        d->hMoved = false;
-        emit movingChanged();
-        emit movingHorizontallyChanged();
-        if (!d->movingVertically)
-            emit movementEnded();
-    }
-    if (d->movingVertically) {
-        d->movingVertically = false;
-        d->vMoved = false;
-        emit movingChanged();
-        emit movingVerticallyChanged();
-        if (!d->movingHorizontally)
-            emit movementEnded();
+    if (!d->pressed && !d->stealMouse) {
+        if (d->movingHorizontally) {
+            d->movingHorizontally = false;
+            d->hMoved = false;
+            emit movingChanged();
+            emit movingHorizontallyChanged();
+            if (!d->movingVertically)
+                emit movementEnded();
+        }
+        if (d->movingVertically) {
+            d->movingVertically = false;
+            d->vMoved = false;
+            emit movingChanged();
+            emit movingVerticallyChanged();
+            if (!d->movingHorizontally)
+                emit movementEnded();
+        }
     }
     d->hData.smoothVelocity.setValue(0);
     d->vData.smoothVelocity.setValue(0);
--- a/src/declarative/graphicsitems/qdeclarativeflickable_p_p.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/graphicsitems/qdeclarativeflickable_p_p.h	Mon Oct 04 01:19:32 2010 +0300
@@ -96,6 +96,7 @@
         QDeclarativeTimeLineValueProxy<QDeclarativeFlickablePrivate> move;
         qreal viewSize;
         qreal pressPos;
+        qreal dragStartOffset;
         qreal velocity;
         qreal flickTarget;
         QDeclarativeFlickablePrivate::Velocity smoothVelocity;
--- a/src/declarative/graphicsitems/qdeclarativeflipable.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/graphicsitems/qdeclarativeflipable.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -70,6 +70,8 @@
 /*!
     \qmlclass Flipable QDeclarativeFlipable
     \since 4.7
+    \ingroup qml-basic-interaction-elements
+
     \brief The Flipable item provides a surface that can be flipped.
     \inherits Item
 
@@ -83,23 +85,20 @@
 
     \image flipable.gif
 
-    The \l Rotation element is used to specify the angle and axis of the flip,
-    and the \l State defines the changes in angle which produce the flipping
-    effect. Finally, the \l Transition creates the animation that changes the
-    angle over one second.
+    The \l Rotation element is used to specify the angle and axis of the flip.
+    When \c flipped is \c true, the item changes to the "back" state, where
+    the angle is changed to 180 degrees to produce the flipping effect. 
+    Finally, the \l Transition creates the animation that changes the
+    angle over one second: when the item changes between its "back" and 
+    default states, the NumberAnimation animates the angle between
+    its old and new values.
+
+    See the \l {QML States} and \l {QML Animation} documentation for more
+    details on state changes and how animations work within transitions.
     
     \sa {declarative/ui-components/flipable}{Flipable example}
 */
 
-/*!
-    \internal
-    \class QDeclarativeFlipable
-    \brief The Flipable item provides a surface that can be flipped.
-
-    Flipable is an item that can be visibly "flipped" between its front and
-    back sides.
-*/
-
 QDeclarativeFlipable::QDeclarativeFlipable(QDeclarativeItem *parent)
 : QDeclarativeItem(*(new QDeclarativeFlipablePrivate), parent)
 {
--- a/src/declarative/graphicsitems/qdeclarativefocuspanel.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/graphicsitems/qdeclarativefocuspanel.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -51,6 +51,8 @@
 /*!
    \qmlclass FocusPanel QDeclarativeFocusPanel
     \since 4.7
+    \ingroup qml-basic-interaction-elements
+
    \brief The FocusPanel item explicitly creates a focus panel.
    \inherits Item
 
@@ -59,11 +61,6 @@
     \l {qmlfocus}{keyboard focus documentation}.
 */
 
-/*!
-    \internal
-    \class QDeclarativeFocusPanel
-*/
-
 QDeclarativeFocusPanel::QDeclarativeFocusPanel(QDeclarativeItem *parent) :
     QDeclarativeItem(parent)
 {
--- a/src/declarative/graphicsitems/qdeclarativefocusscope.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/graphicsitems/qdeclarativefocusscope.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -48,6 +48,8 @@
 /*!
     \qmlclass FocusScope QDeclarativeFocusScope
     \since 4.7
+    \ingroup qml-basic-interaction-elements
+
     \brief The FocusScope object explicitly creates a focus scope.
     \inherits Item
 
@@ -58,11 +60,6 @@
     \sa {declarative/keyinteraction/focus}{Keyboard focus example}
 */
 
-/*!
-    \internal
-    \class QDeclarativeFocusScope
-*/
-
 QDeclarativeFocusScope::QDeclarativeFocusScope(QDeclarativeItem *parent) :
     QDeclarativeItem(parent)
 {
--- a/src/declarative/graphicsitems/qdeclarativegraphicswidget.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/graphicsitems/qdeclarativegraphicswidget.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -68,7 +68,6 @@
     delete d->_anchors; d->_anchors = 0;
 }
 
-/*! \internal */
 QDeclarativeAnchors *QDeclarativeGraphicsWidget::anchors()
 {
     Q_D(QDeclarativeGraphicsWidget);
@@ -85,54 +84,36 @@
     return _anchorLines;
 }
 
-/*!
-    \internal
-*/
 QDeclarativeAnchorLine QDeclarativeGraphicsWidget::left() const
 {
     Q_D(const QDeclarativeGraphicsWidget);
     return d->anchorLines()->left;
 }
 
-/*!
-    \internal
-*/
 QDeclarativeAnchorLine QDeclarativeGraphicsWidget::right() const
 {
     Q_D(const QDeclarativeGraphicsWidget);
     return d->anchorLines()->right;
 }
 
-/*!
-    \internal
-*/
 QDeclarativeAnchorLine QDeclarativeGraphicsWidget::horizontalCenter() const
 {
     Q_D(const QDeclarativeGraphicsWidget);
     return d->anchorLines()->hCenter;
 }
 
-/*!
-    \internal
-*/
 QDeclarativeAnchorLine QDeclarativeGraphicsWidget::top() const
 {
     Q_D(const QDeclarativeGraphicsWidget);
     return d->anchorLines()->top;
 }
 
-/*!
-    \internal
-*/
 QDeclarativeAnchorLine QDeclarativeGraphicsWidget::bottom() const
 {
     Q_D(const QDeclarativeGraphicsWidget);
     return d->anchorLines()->bottom;
 }
 
-/*!
-    \internal
-*/
 QDeclarativeAnchorLine QDeclarativeGraphicsWidget::verticalCenter() const
 {
     Q_D(const QDeclarativeGraphicsWidget);
--- a/src/declarative/graphicsitems/qdeclarativegridview.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/graphicsitems/qdeclarativegridview.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -64,7 +64,7 @@
     FxGridItem(QDeclarativeItem *i, QDeclarativeGridView *v) : item(i), view(v) {
         attached = static_cast<QDeclarativeGridViewAttached*>(qmlAttachedPropertiesObject<QDeclarativeGridView>(item));
         if (attached)
-            attached->m_view = view;
+            attached->setView(view);
     }
     ~FxGridItem() {}
 
@@ -1056,6 +1056,8 @@
 /*!
     \qmlclass GridView QDeclarativeGridView
     \since 4.7
+    \ingroup qml-view-elements
+
     \inherits Flickable
     \brief The GridView item provides a grid view of items provided by a model.
 
@@ -1085,13 +1087,15 @@
     \c portrait data directly.
 
     An improved grid view is shown below. The delegate is visually improved and is moved 
-    into a separate \c contactDelegate component. Also, the currently selected item is highlighted
-    with a blue \l Rectangle using the \l highlight property, and \c focus is set to \c true
-    to enable keyboard navigation for the grid view.
+    into a separate \c contactDelegate component.
     
     \snippet doc/src/snippets/declarative/gridview/gridview.qml classdocs advanced
     \image gridview-highlight.png
 
+    The currently selected item is highlighted with a blue \l Rectangle using the \l highlight property,
+    and \c focus is set to \c true to enable keyboard navigation for the grid view.
+    The grid view itself is a focus scope (see \l{qmlfocus#Acquiring Focus and Focus Scopes}{the focus documentation page} for more details).
+
     Delegates are instantiated as needed and may be destroyed at any time.
     State should \e never be stored in a delegate.
 
@@ -1276,6 +1280,11 @@
     if (QDeclarativeVisualDataModel *dataModel = qobject_cast<QDeclarativeVisualDataModel*>(d->model)) {
         dataModel->setDelegate(delegate);
         if (isComponentComplete()) {
+            for (int i = 0; i < d->visibleItems.count(); ++i)
+                d->releaseItem(d->visibleItems.at(i));
+            d->visibleItems.clear();
+            d->releaseItem(d->currentItem);
+            d->currentItem = 0;
             refill();
             d->moveReason = QDeclarativeGridViewPrivate::SetIndex;
             d->updateCurrent(d->currentIndex);
@@ -2203,7 +2212,7 @@
                 if (trackedPos < d->startPosition() + d->highlightRangeStart) {
                     pos = d->startPosition();
                 } else if (d->trackedItem->endRowPos() > d->endPosition() - d->size() + d->highlightRangeEnd) {
-                    pos = d->endPosition() - d->size();
+                    pos = d->endPosition() - d->size() + 1;
                     if (pos < d->startPosition())
                         pos = d->startPosition();
                 } else {
@@ -2217,14 +2226,14 @@
         } else {
             if (trackedPos < viewPos && d->currentItem->rowPos() < viewPos) {
                 pos = d->currentItem->rowPos() < trackedPos ? trackedPos : d->currentItem->rowPos();
-            } else if (d->trackedItem->endRowPos() > viewPos + d->size()
-                && d->currentItem->endRowPos() > viewPos + d->size()) {
-                if (d->trackedItem->endRowPos() < d->currentItem->endRowPos()) {
-                    pos = d->trackedItem->endRowPos() - d->size();
+            } else if (d->trackedItem->endRowPos() >= viewPos + d->size()
+                && d->currentItem->endRowPos() >= viewPos + d->size()) {
+                if (d->trackedItem->endRowPos() <= d->currentItem->endRowPos()) {
+                    pos = d->trackedItem->endRowPos() - d->size() + 1;
                     if (d->rowSize() > d->size())
                         pos = trackedPos;
                 } else {
-                    pos = d->currentItem->endRowPos() - d->size();
+                    pos = d->currentItem->endRowPos() - d->size() + 1;
                     if (d->rowSize() > d->size())
                         pos = d->currentItem->rowPos();
                 }
--- a/src/declarative/graphicsitems/qdeclarativegridview_p.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/graphicsitems/qdeclarativegridview_p.h	Mon Oct 04 01:19:32 2010 +0300
@@ -43,6 +43,7 @@
 #define QDECLARATIVEGRIDVIEW_H
 
 #include "private/qdeclarativeflickable_p.h"
+#include "private/qdeclarativeguard_p.h"
 
 QT_BEGIN_HEADER
 
@@ -220,8 +221,14 @@
         : QObject(parent), m_view(0), m_isCurrent(false), m_delayRemove(false) {}
     ~QDeclarativeGridViewAttached() {}
 
-    Q_PROPERTY(QDeclarativeGridView *view READ view CONSTANT)
+    Q_PROPERTY(QDeclarativeGridView *view READ view NOTIFY viewChanged)
     QDeclarativeGridView *view() { return m_view; }
+    void setView(QDeclarativeGridView *view) {
+        if (view != m_view) {
+            m_view = view;
+            emit viewChanged();
+        }
+    }
 
     Q_PROPERTY(bool isCurrentItem READ isCurrentItem NOTIFY currentItemChanged)
     bool isCurrentItem() const { return m_isCurrent; }
@@ -249,9 +256,10 @@
     void delayRemoveChanged();
     void add();
     void remove();
+    void viewChanged();
 
 public:
-    QDeclarativeGridView *m_view;
+    QDeclarativeGuard<QDeclarativeGridView> m_view;
     bool m_isCurrent : 1;
     bool m_delayRemove : 1;
 };
--- a/src/declarative/graphicsitems/qdeclarativeimage.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/graphicsitems/qdeclarativeimage.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -51,6 +51,8 @@
 /*!
     \qmlclass Image QDeclarativeImage
     \since 4.7
+    \ingroup qml-vasic-visual-elements
+
     \brief The Image element allows you to add bitmaps to a scene.
     \inherits Item
 
@@ -89,19 +91,6 @@
     \sa {declarative/imageelements/image}{Image example}, QDeclarativeImageProvider
 */
 
-/*!
-    \internal
-    \class QDeclarativeImage Image
-    \brief The QDeclarativeImage class provides an image item that you can add to a QDeclarativeView.
-
-    Example:
-    \qml
-    Image { source: "pics/star.png" }
-    \endqml
-
-    A QDeclarativeImage object can be instantiated in QML using the tag \l Image.
-*/
-
 QDeclarativeImage::QDeclarativeImage(QDeclarativeItem *parent)
     : QDeclarativeImageBase(*(new QDeclarativeImagePrivate), parent)
 {
@@ -329,7 +318,7 @@
     Unlike the \l {Item::}{width} and \l {Item::}{height} properties, which scale
     the painting of the image, this property sets the actual number of pixels
     stored for the loaded image so that large images do not use more
-    memory than necessary. For example, this ensures the image is memory is no
+    memory than necessary. For example, this ensures the image in memory is no
     larger than 1024x1024 pixels, regardless of the Image's \l {Item::}{width} and 
     \l {Item::}{height} values:
 
--- a/src/declarative/graphicsitems/qdeclarativeimagebase.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/graphicsitems/qdeclarativeimagebase.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -50,13 +50,6 @@
 
 QT_BEGIN_NAMESPACE
 
-
-/*!
-    \class QDeclarativeImageBase
-    \internal
-    \brief The base class for declarative images.
- */
-
 QDeclarativeImageBase::QDeclarativeImageBase(QDeclarativeImageBasePrivate &dd, QDeclarativeItem *parent)
   : QDeclarativeItem(dd, parent)
 {
@@ -150,7 +143,9 @@
         pixmapChange();
         update();
     } else {
+
         d->status = Loading;
+        emit statusChanged(d->status);
 
         d->pix.load(qmlEngine(this), d->url, d->sourcesize, d->async);
 
@@ -169,53 +164,35 @@
             d->pix.connectDownloadProgress(this, thisRequestProgress);
 
         } else {
-            QSize impsize = d->pix.implicitSize();
-            setImplicitWidth(impsize.width());
-            setImplicitHeight(impsize.height());
-
-            if (d->pix.isReady()) {
-                d->status = Ready;
-
-                if (!d->sourcesize.isValid())
-                    emit sourceSizeChanged();
-
-            } else {
-                d->status = Error;
-                qmlInfo(this) << d->pix.error();
-            }
-            d->progress = 1.0;
-            emit statusChanged(d->status);
-            emit progressChanged(d->progress);
-            pixmapChange();
-            update();
+            requestFinished();
         }
-
     }
-
-    emit statusChanged(d->status);
 }
 
 void QDeclarativeImageBase::requestFinished()
 {
     Q_D(QDeclarativeImageBase);
 
-    QSize impsize = d->pix.implicitSize();
-
     if (d->pix.isError()) {
         d->status = Error;
         qmlInfo(this) << d->pix.error();
+    } else {
+        d->status = Ready;
     }
 
-    setImplicitWidth(impsize.width());
-    setImplicitHeight(impsize.height());
+    d->progress = 1.0;
+
+    setImplicitWidth(d->pix.width());
+    setImplicitHeight(d->pix.height());
 
-    if (d->status == Loading)
-        d->status = Ready;
-    d->progress = 1.0;
+    if (d->sourcesize.width() != d->pix.width() || d->sourcesize.height() != d->pix.height()) {
+        d->sourcesize.setWidth(d->pix.width());
+        d->sourcesize.setHeight(d->pix.height());
+        emit sourceSizeChanged();
+    }
+
     emit statusChanged(d->status);
-    emit progressChanged(1.0);
-    if (!d->sourcesize.isValid())
-        emit sourceSizeChanged();
+    emit progressChanged(d->progress);
     pixmapChange();
     update();
 }
--- a/src/declarative/graphicsitems/qdeclarativeitem.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/graphicsitems/qdeclarativeitem.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -69,6 +69,7 @@
 
 /*!
     \qmlclass Transform QGraphicsTransform
+    \ingroup qml-transform-elements
     \since 4.7
     \brief The Transform elements provide a way of building advanced transformations on Items.
 
@@ -90,6 +91,7 @@
 
 /*!
     \qmlclass Translate QDeclarativeTranslate
+    \ingroup qml-transform-elements
     \since 4.7
     \brief The Translate object provides a way to move an Item without changing its x or y properties.
 
@@ -131,6 +133,7 @@
 
 /*!
     \qmlclass Scale QGraphicsScale
+    \ingroup qml-transform-elements
     \since 4.7
     \brief The Scale element provides a way to scale an Item.
 
@@ -172,6 +175,7 @@
 
 /*!
     \qmlclass Rotation QGraphicsRotation
+    \ingroup qml-transform-elements
     \since 4.7
     \brief The Rotation object provides a way to rotate an Item.
 
@@ -225,12 +229,6 @@
     The angle to rotate, in degrees clockwise.
 */
 
-/*!
-    \internal
-    \class QDeclarativeContents
-    \brief The QDeclarativeContents class gives access to the height and width of an item's contents.
-
-*/
 QDeclarativeContents::QDeclarativeContents(QDeclarativeItem *item) : m_item(item), m_x(0), m_y(0), m_width(0), m_height(0)
 {
     //### optimize
@@ -419,11 +417,12 @@
 
 /*!
     \qmlclass KeyNavigation QDeclarativeKeyNavigationAttached
+    \ingroup qml-basic-interaction-elements
     \since 4.7
     \brief The KeyNavigation attached property supports key navigation by arrow keys.
 
     It is common in key-based UIs to use arrow keys to navigate
-    between focussed items.  The KeyNavigation property provides a
+    between focused items.  The KeyNavigation property provides a
     convenient way of specifying which item will gain focus
     when an arrow key is pressed.  The following example provides
     key navigation for a 2x2 grid of items.
@@ -511,8 +510,10 @@
 void QDeclarativeKeyNavigationAttached::setLeft(QDeclarativeItem *i)
 {
     Q_D(QDeclarativeKeyNavigationAttached);
+    if (d->left == i)
+        return;
     d->left = i;
-    emit changed();
+    emit leftChanged();
 }
 
 QDeclarativeItem *QDeclarativeKeyNavigationAttached::right() const
@@ -524,8 +525,10 @@
 void QDeclarativeKeyNavigationAttached::setRight(QDeclarativeItem *i)
 {
     Q_D(QDeclarativeKeyNavigationAttached);
+    if (d->right == i)
+        return;
     d->right = i;
-    emit changed();
+    emit rightChanged();
 }
 
 QDeclarativeItem *QDeclarativeKeyNavigationAttached::up() const
@@ -537,8 +540,10 @@
 void QDeclarativeKeyNavigationAttached::setUp(QDeclarativeItem *i)
 {
     Q_D(QDeclarativeKeyNavigationAttached);
+    if (d->up == i)
+        return;
     d->up = i;
-    emit changed();
+    emit upChanged();
 }
 
 QDeclarativeItem *QDeclarativeKeyNavigationAttached::down() const
@@ -550,8 +555,10 @@
 void QDeclarativeKeyNavigationAttached::setDown(QDeclarativeItem *i)
 {
     Q_D(QDeclarativeKeyNavigationAttached);
+    if (d->down == i)
+        return;
     d->down = i;
-    emit changed();
+    emit downChanged();
 }
 
 QDeclarativeItem *QDeclarativeKeyNavigationAttached::tab() const
@@ -563,8 +570,10 @@
 void QDeclarativeKeyNavigationAttached::setTab(QDeclarativeItem *i)
 {
     Q_D(QDeclarativeKeyNavigationAttached);
+    if (d->tab == i)
+        return;
     d->tab = i;
-    emit changed();
+    emit tabChanged();
 }
 
 QDeclarativeItem *QDeclarativeKeyNavigationAttached::backtab() const
@@ -576,8 +585,10 @@
 void QDeclarativeKeyNavigationAttached::setBacktab(QDeclarativeItem *i)
 {
     Q_D(QDeclarativeKeyNavigationAttached);
+    if (d->backtab == i)
+        return;
     d->backtab = i;
-    emit changed();
+    emit backtabChanged();
 }
 
 /*!
@@ -713,6 +724,7 @@
 
 /*!
     \qmlclass Keys QDeclarativeKeysAttached
+    \ingroup qml-basic-interaction-elements
     \since 4.7
     \brief The Keys attached property provides key handling to Items.
 
@@ -1298,6 +1310,7 @@
 
 /*!
     \qmlclass Item QDeclarativeItem
+    \ingroup qml-basic-visual-elements
     \since 4.7
     \brief The Item is the most basic of all visual items in QML.
 
@@ -1420,11 +1433,6 @@
 */
 
 /*!
-    \fn void QDeclarativeItem::childrenChanged()
-    \internal
-*/
-
-/*!
     \fn void QDeclarativeItem::focusChanged(bool)
     \internal
 */
@@ -1714,7 +1722,6 @@
     specify it.
  */
 
-/*! \internal */
 QDeclarativeListProperty<QObject> QDeclarativeItemPrivate::data()
 {
     return QDeclarativeListProperty<QObject>(q_func(), 0, QDeclarativeItemPrivate::data_append);
@@ -1876,6 +1883,12 @@
         }
     }
 
+    for(int ii = 0; ii < d->changeListeners.count(); ++ii) {
+        const QDeclarativeItemPrivate::ChangeListener &change = d->changeListeners.at(ii);
+        if (change.types & QDeclarativeItemPrivate::Geometry)
+            change.listener->itemGeometryChanged(this, newGeometry, oldGeometry);
+    }
+
     if (newGeometry.x() != oldGeometry.x())
         emit xChanged();
     if (newGeometry.width() != oldGeometry.width())
@@ -1884,12 +1897,6 @@
         emit yChanged();
     if (newGeometry.height() != oldGeometry.height())
         emit heightChanged();
-
-    for(int ii = 0; ii < d->changeListeners.count(); ++ii) {
-        const QDeclarativeItemPrivate::ChangeListener &change = d->changeListeners.at(ii);
-        if (change.types & QDeclarativeItemPrivate::Geometry)
-            change.listener->itemGeometryChanged(this, newGeometry, oldGeometry);
-    }
 }
 
 void QDeclarativeItemPrivate::removeItemChangeListener(QDeclarativeItemChangeListener *listener, ChangeTypes types)
@@ -2399,21 +2406,9 @@
     Q_Q(QDeclarativeItem);
     if (!(flags & QGraphicsItem::ItemIsFocusScope) && parent)
         emit q->activeFocusChanged(flag);   //see also QDeclarativeItemPrivate::subFocusItemChange()
-
-    bool inScope = false;
-    QGraphicsItem *p = parent;
-    while (p) {
-        if (p->flags() & QGraphicsItem::ItemIsFocusScope) {
-            inScope = true;
-            break;
-        }
-        p = p->parentItem();
-    }
-    if (!inScope)
-        emit q->focusChanged(flag);
+    emit q->focusChanged(flag);
 }
 
-/*! \internal */
 QDeclarativeListProperty<QObject> QDeclarativeItemPrivate::resources()
 {
     return QDeclarativeListProperty<QObject>(q_func(), 0, QDeclarativeItemPrivate::resources_append,
@@ -2438,7 +2433,6 @@
   \sa {qmlstate}{States}
 */
 
-/*! \internal */
 QDeclarativeListProperty<QDeclarativeState> QDeclarativeItemPrivate::states()
 {
     return _states()->statesProperty();
@@ -2458,11 +2452,10 @@
   }
   \endqml
 
-  \sa {state-transitions}{Transitions}
+  \sa {qdeclarativeanimation.html#transitions}{QML Transitions}
 */
 
 
-/*! \internal */
 QDeclarativeListProperty<QDeclarativeTransition> QDeclarativeItemPrivate::transitions()
 {
     return _states()->transitionsProperty();
@@ -2482,7 +2475,7 @@
   Item {
     filter: [
       Blur { ... },
-      Relection { ... }
+      Reflection { ... }
       ...
     ]
   }
@@ -2504,7 +2497,9 @@
   This property holds whether clipping is enabled.
 
   if clipping is enabled, an item will clip its own painting, as well
-  as the painting of its children, to its bounding rectangle.
+  as the painting of its children, to its bounding rectangle. If you set
+  clipping during an item's paint operation, remember to re-set it to 
+  prevent clipping the rest of your scene.
 
   Non-rectangular clipping regions are not supported for performance reasons.
 */
@@ -2533,7 +2528,6 @@
   \sa {qmlstates}{States}
 */
 
-/*! \internal */
 QString QDeclarativeItemPrivate::state() const
 {
     if (!_stateGroup)
@@ -2542,7 +2536,6 @@
         return _stateGroup->state();
 }
 
-/*! \internal */
 void QDeclarativeItemPrivate::setState(const QString &state)
 {
     _states()->setState(state);
@@ -2728,12 +2721,12 @@
         }
         break;
     case ItemChildAddedChange:
-        if (d->_contents)
+        if (d->_contents && d->componentComplete)
             d->_contents->childAdded(qobject_cast<QDeclarativeItem*>(
                     value.value<QGraphicsItem*>()));
         break;
     case ItemChildRemovedChange:
-        if (d->_contents)
+        if (d->_contents && d->componentComplete)
             d->_contents->childRemoved(qobject_cast<QDeclarativeItem*>(
                     value.value<QGraphicsItem*>()));
         break;
@@ -2843,6 +2836,41 @@
 }
 
 /*!
+  \property QDeclarativeItem::anchors
+  \internal
+*/
+
+/*!
+  \property QDeclarativeItem::left
+  \internal
+*/
+
+/*!
+  \property QDeclarativeItem::right
+  \internal
+*/
+
+/*!
+  \property QDeclarativeItem::horizontalCenter
+  \internal
+*/
+
+/*!
+  \property QDeclarativeItem::top
+  \internal
+*/
+
+/*!
+  \property QDeclarativeItem::bottom
+  \internal
+*/
+
+/*!
+  \property QDeclarativeItem::verticalCenter
+  \internal
+*/
+
+/*!
   \property QDeclarativeItem::focus
   \internal
 */
@@ -2863,6 +2891,41 @@
 */
 
 /*!
+  \property QDeclarativeItem::baseline
+  \internal
+*/
+
+/*!
+  \property QDeclarativeItem::data
+  \internal
+*/
+
+/*!
+  \property QDeclarativeItem::resources
+  \internal
+*/
+
+/*!
+  \property QDeclarativeItem::state
+  \internal
+*/
+
+/*!
+  \property QDeclarativeItem::states
+  \internal
+*/
+
+/*!
+  \property QDeclarativeItem::transformOriginPoint
+  \internal
+*/
+
+/*!
+  \property QDeclarativeItem::transitions
+  \internal
+*/
+
+/*!
     \internal
     Return the width of the item
 */
@@ -3130,8 +3193,7 @@
 {
     Q_D(const QDeclarativeItem);
     return focusItem() == this ||
-           (d->flags & QGraphicsItem::ItemIsFocusScope && focusItem() != 0) ||
-           (!parentItem() && focusItem() != 0);
+           (d->flags & QGraphicsItem::ItemIsFocusScope && focusItem() != 0);
 }
 
 /*!
@@ -3151,10 +3213,8 @@
   }
   \endqml
 
-  For the purposes of this property, the top level item in the scene
-  is assumed to act like a focus scope, and to always have active focus
-  when the scene has focus. On a practical level, that means the following
-  QML will give active focus to \c input on startup.
+  For the purposes of this property, the scene as a whole is assumed to act like a focus scope.
+  On a practical level, that means the following QML will give active focus to \c input on startup.
 
   \qml
   Rectangle {
@@ -3180,7 +3240,7 @@
         p = p->parentItem();
     }
 
-    return hasActiveFocus() ? true : (!QGraphicsItem::parentItem() ? true : false);
+    return hasActiveFocus();
 }
 
 /*! \internal */
--- a/src/declarative/graphicsitems/qdeclarativeitem_p.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/graphicsitems/qdeclarativeitem_p.h	Mon Oct 04 01:19:32 2010 +0300
@@ -363,12 +363,12 @@
     Q_OBJECT
     Q_DECLARE_PRIVATE(QDeclarativeKeyNavigationAttached)
 
-    Q_PROPERTY(QDeclarativeItem *left READ left WRITE setLeft NOTIFY changed)
-    Q_PROPERTY(QDeclarativeItem *right READ right WRITE setRight NOTIFY changed)
-    Q_PROPERTY(QDeclarativeItem *up READ up WRITE setUp NOTIFY changed)
-    Q_PROPERTY(QDeclarativeItem *down READ down WRITE setDown NOTIFY changed)
-    Q_PROPERTY(QDeclarativeItem *tab READ tab WRITE setTab NOTIFY changed)
-    Q_PROPERTY(QDeclarativeItem *backtab READ backtab WRITE setBacktab NOTIFY changed)
+    Q_PROPERTY(QDeclarativeItem *left READ left WRITE setLeft NOTIFY leftChanged)
+    Q_PROPERTY(QDeclarativeItem *right READ right WRITE setRight NOTIFY rightChanged)
+    Q_PROPERTY(QDeclarativeItem *up READ up WRITE setUp NOTIFY upChanged)
+    Q_PROPERTY(QDeclarativeItem *down READ down WRITE setDown NOTIFY downChanged)
+    Q_PROPERTY(QDeclarativeItem *tab READ tab WRITE setTab NOTIFY tabChanged)
+    Q_PROPERTY(QDeclarativeItem *backtab READ backtab WRITE setBacktab NOTIFY backtabChanged)
     Q_PROPERTY(Priority priority READ priority WRITE setPriority NOTIFY priorityChanged)
 
     Q_ENUMS(Priority)
@@ -396,7 +396,12 @@
     static QDeclarativeKeyNavigationAttached *qmlAttachedProperties(QObject *);
 
 Q_SIGNALS:
-    void changed();
+    void leftChanged();
+    void rightChanged();
+    void upChanged();
+    void downChanged();
+    void tabChanged();
+    void backtabChanged();
     void priorityChanged();
 
 private:
--- a/src/declarative/graphicsitems/qdeclarativeitemsmodule.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/graphicsitems/qdeclarativeitemsmodule.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -142,7 +142,9 @@
     qmlRegisterType<QGraphicsScale>("Qt",4,7,"Scale");
     qmlRegisterType<QDeclarativeText>("Qt",4,7,"Text");
     qmlRegisterType<QDeclarativeTextEdit>("Qt",4,7,"TextEdit");
+#ifndef QT_NO_LINEEDIT
     qmlRegisterType<QDeclarativeTextInput>("Qt",4,7,"TextInput");
+#endif
     qmlRegisterType<QDeclarativeViewSection>("Qt",4,7,"ViewSection");
     qmlRegisterType<QDeclarativeVisualDataModel>("Qt",4,7,"VisualDataModel");
     qmlRegisterType<QDeclarativeVisualItemModel>("Qt",4,7,"VisualItemModel");
--- a/src/declarative/graphicsitems/qdeclarativelayoutitem.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/graphicsitems/qdeclarativelayoutitem.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -49,6 +49,7 @@
 
 /*!
     \qmlclass LayoutItem QDeclarativeLayoutItem
+    \ingroup qml-utility-elements
     \since 4.7
     \brief The LayoutItem element allows declarative UI elements to be placed inside Qt's Graphics View layouts.
 
@@ -65,13 +66,6 @@
 */
 
 /*!
-    \internal
-    \class QDeclarativeLayoutItem
-    \brief The QDeclarativeLayoutItem class allows you to place your QML UI elements inside Qt's Graphics View layouts.
-*/
-
-
-/*!
     \qmlproperty QSizeF LayoutItem::maximumSize
 
     The maximumSize property can be set to specify the maximum desired size of this LayoutItem
--- a/src/declarative/graphicsitems/qdeclarativelistview.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/graphicsitems/qdeclarativelistview.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -60,7 +60,7 @@
 {
     if (property != m_property) {
         m_property = property;
-        emit changed();
+        emit propertyChanged();
     }
 }
 
@@ -68,7 +68,7 @@
 {
     if (criteria != m_criteria) {
         m_criteria = criteria;
-        emit changed();
+        emit criteriaChanged();
     }
 }
 
@@ -96,7 +96,7 @@
     FxListItem(QDeclarativeItem *i, QDeclarativeListView *v) : item(i), section(0), view(v) {
         attached = static_cast<QDeclarativeListViewAttached*>(qmlAttachedPropertiesObject<QDeclarativeListView>(item));
         if (attached)
-            attached->m_view = view;
+            attached->setView(view);
     }
     ~FxListItem() {}
     qreal position() const {
@@ -105,12 +105,23 @@
         else
             return (view->orientation() == QDeclarativeListView::Vertical ? item->y() : item->x());
     }
+    qreal itemPosition() const {
+        return (view->orientation() == QDeclarativeListView::Vertical ? item->y() : item->x());
+    }
     qreal size() const {
         if (section)
-            return (view->orientation() == QDeclarativeListView::Vertical ? item->height()+section->height() : item->width()+section->height());
+            return (view->orientation() == QDeclarativeListView::Vertical ? item->height()+section->height() : item->width()+section->width());
         else
             return (view->orientation() == QDeclarativeListView::Vertical ? item->height() : item->width());
     }
+    qreal itemSize() const {
+        return (view->orientation() == QDeclarativeListView::Vertical ? item->height() : item->width());
+    }
+    qreal sectionSize() const {
+        if (section)
+            return (view->orientation() == QDeclarativeListView::Vertical ? section->height() : section->width());
+        return 0.0;
+    }
     qreal endPosition() const {
         return (view->orientation() == QDeclarativeListView::Vertical
                                         ? item->y() + (item->height() > 0 ? item->height() : 1)
@@ -131,6 +142,12 @@
             item->setX(pos);
         }
     }
+    void setSize(qreal size) {
+        if (view->orientation() == QDeclarativeListView::Vertical)
+            item->setHeight(size);
+        else
+            item->setWidth(size);
+    }
     bool contains(int x, int y) const {
         return (x >= item->x() && x < item->x() + item->width() &&
                 y >= item->y() && y < item->y() + item->height());
@@ -256,7 +273,12 @@
         if (!visibleItems.isEmpty()) {
             if (modelIndex < visibleIndex) {
                 int count = visibleIndex - modelIndex;
-                return (*visibleItems.constBegin())->position() - count * (averageSize + spacing);
+                qreal cs = 0;
+                if (modelIndex == currentIndex && currentItem) {
+                    cs = currentItem->size() + spacing;
+                    --count;
+                }
+                return (*visibleItems.constBegin())->position() - count * (averageSize + spacing) - cs;
             } else {
                 int idx = visibleItems.count() - 1;
                 while (idx >= 0 && visibleItems.at(idx)->index == -1)
@@ -575,9 +597,11 @@
                     listItem->attached->m_prevSection = item->attached->section();
                 else
                     listItem->attached->m_prevSection = sectionAt(modelIndex-1);
+            }
+            if (modelIndex < model->count()-1) {
                 if (FxListItem *item = visibleItem(modelIndex+1))
                     listItem->attached->m_nextSection = item->attached->section();
-                else if (modelIndex < model->count()-1)
+                else
                     listItem->attached->m_nextSection = sectionAt(modelIndex+1);
             }
         }
@@ -714,6 +738,11 @@
         if (visibleItems.count())
             visiblePos = (*visibleItems.constBegin())->position();
         updateAverage();
+        if (currentIndex >= 0 && currentItem && !visibleItem(currentIndex)) {
+            currentItem->setPosition(positionAt(currentIndex));
+            updateHighlight();
+        }
+
         if (sectionCriteria)
             updateCurrentSection();
         if (header)
@@ -883,8 +912,8 @@
         createHighlight();
     if (currentItem && autoHighlight && highlight && !movingHorizontally && !movingVertically) {
         // auto-update highlight
-        highlightPosAnimator->to = currentItem->position();
-        highlightSizeAnimator->to = currentItem->size();
+        highlightPosAnimator->to = currentItem->itemPosition();
+        highlightSizeAnimator->to = currentItem->itemSize();
         if (orient == QDeclarativeListView::Vertical) {
             if (highlight->item->width() == 0)
                 highlight->item->setWidth(currentItem->item->width());
@@ -981,11 +1010,11 @@
 void QDeclarativeListViewPrivate::updateCurrentSection()
 {
     if (!sectionCriteria || visibleItems.isEmpty()) {
-        currentSection = QString();
+        currentSection.clear();
         return;
     }
     int index = 0;
-    while (visibleItems.at(index)->endPosition() < position() && index < visibleItems.count())
+    while (index < visibleItems.count() && visibleItems.at(index)->endPosition() < position())
         ++index;
 
     if (index < visibleItems.count())
@@ -1019,7 +1048,7 @@
     if (oldCurrentItem && (!currentItem || oldCurrentItem->item != currentItem->item))
         oldCurrentItem->attached->setIsCurrentItem(false);
     if (currentItem) {
-        if (modelIndex == visibleIndex - 1) {
+        if (modelIndex == visibleIndex - 1 && visibleItems.count()) {
             // We can calculate exact postion in this case
             currentItem->setPosition(visibleItems.first()->position() - currentItem->size() - spacing);
         } else {
@@ -1170,9 +1199,9 @@
         }
         if (currentItem && haveHighlightRange && highlightRange == QDeclarativeListView::StrictlyEnforceRange) {
             updateHighlight();
-            qreal currPos = currentItem->position();
-            if (pos < currPos + currentItem->size() - highlightRangeEnd)
-                pos = currPos + currentItem->size() - highlightRangeEnd;
+            qreal currPos = currentItem->itemPosition();
+            if (pos < currPos + currentItem->itemSize() - highlightRangeEnd)
+                pos = currPos + currentItem->itemSize() - highlightRangeEnd;
             if (pos > currPos - highlightRangeStart)
                 pos = currPos - highlightRangeStart;
         }
@@ -1189,10 +1218,10 @@
     } else if (haveHighlightRange && highlightRange == QDeclarativeListView::StrictlyEnforceRange) {
         if (currentItem) {
             updateHighlight();
-            qreal pos = currentItem->position();
+            qreal pos = currentItem->itemPosition();
             qreal viewPos = position();
-            if (viewPos < pos + currentItem->size() - highlightRangeEnd)
-                viewPos = pos + currentItem->size() - highlightRangeEnd;
+            if (viewPos < pos + currentItem->itemSize() - highlightRangeEnd)
+                viewPos = pos + currentItem->itemSize() - highlightRangeEnd;
             if (viewPos > pos - highlightRangeStart)
                 viewPos = pos - highlightRangeStart;
 
@@ -1355,6 +1384,7 @@
 
 /*!
     \qmlclass ListView QDeclarativeListView
+    \ingroup qml-view-elements
     \since 4.7
     \inherits Flickable
     \brief The ListView item provides a list view of items provided by a model.
@@ -1385,14 +1415,16 @@
     the delegate is able to access the model's \c name and \c number data directly.
 
     An improved list view is shown below. The delegate is visually improved and is moved 
-    into a separate \c contactDelegate component. Also, the currently selected item is highlighted
-    with a blue \l Rectangle using the \l highlight property, and \c focus is set to \c true
-    to enable keyboard navigation for the list view.
+    into a separate \c contactDelegate component.
     
     \snippet doc/src/snippets/declarative/listview/listview.qml classdocs advanced
     \image listview-highlight.png
 
-    In a GridView, delegates are instantiated as needed and may be destroyed at any time.
+    The currently selected item is highlighted with a blue \l Rectangle using the \l highlight property,
+    and \c focus is set to \c true to enable keyboard navigation for the list view.
+    The list view itself is a focus scope (see \l{qmlfocus#Acquiring Focus and Focus Scopes}{the focus documentation page} for more details).
+
+    Delegates are instantiated as needed and may be destroyed at any time.
     State should \e never be stored in a delegate.
 
     \note Views do not enable \e clip automatically.  If the view
@@ -1616,6 +1648,8 @@
             for (int i = 0; i < d->visibleItems.count(); ++i)
                 d->releaseItem(d->visibleItems.at(i));
             d->visibleItems.clear();
+            d->releaseItem(d->currentItem);
+            d->currentItem = 0;
             refill();
             d->moveReason = QDeclarativeListViewPrivate::SetIndex;
             d->updateCurrent(d->currentIndex);
@@ -2335,6 +2369,10 @@
             d->minExtent += d->header->size();
         if (d->haveHighlightRange && d->highlightRange == StrictlyEnforceRange) {
             d->minExtent += d->highlightRangeStart;
+            if (d->sectionCriteria) {
+                if (d->visibleItem(0))
+                    d->minExtent -= d->visibleItem(0)->sectionSize();
+            }
             d->minExtent = qMax(d->minExtent, -(d->endPositionAt(0) - d->highlightRangeEnd + 1));
         }
         d->minExtentDirty = false;
@@ -2447,6 +2485,16 @@
     QDeclarativeFlickable::keyPressEvent(event);
 }
 
+void QDeclarativeListView::geometryChanged(const QRectF &newGeometry,
+                             const QRectF &oldGeometry)
+{
+    Q_D(QDeclarativeListView);
+    d->maxExtentDirty = true;
+    d->minExtentDirty = true;
+    QDeclarativeFlickable::geometryChanged(newGeometry, oldGeometry);
+}
+
+
 /*!
     \qmlmethod ListView::incrementCurrentIndex()
 
@@ -2572,6 +2620,11 @@
         d->moveReason = QDeclarativeListViewPrivate::Other;
         cancelFlick();
         d->setPosition(pos);
+        if (d->highlight) {
+            d->highlight->setPosition(d->currentItem->itemPosition());
+            d->highlight->setSize(d->currentItem->itemSize());
+            d->updateHighlight();
+        }
     }
     d->fixupPosition();
 }
@@ -2632,7 +2685,12 @@
     if (!d->trackedItem || !d->currentItem)
         return;
     if (d->moveReason == QDeclarativeListViewPrivate::SetIndex) {
-        const qreal trackedPos = qCeil(d->trackedItem->position());
+        qreal trackedPos = qCeil(d->trackedItem->position());
+        qreal trackedSize = d->trackedItem->size();
+        if (d->trackedItem != d->currentItem) {
+            trackedPos -= d->currentItem->sectionSize();
+            trackedSize += d->currentItem->sectionSize();
+        }
         const qreal viewPos = d->position();
         qreal pos = viewPos;
         if (d->haveHighlightRange) {
@@ -2645,28 +2703,28 @@
                 if (trackedPos < d->startPosition() + d->highlightRangeStart) {
                     pos = d->startPosition();
                 } else if (d->trackedItem->endPosition() > d->endPosition() - d->size() + d->highlightRangeEnd) {
-                    pos = d->endPosition() - d->size();
+                    pos = d->endPosition() - d->size() + 1;
                     if (pos < d->startPosition())
                         pos = d->startPosition();
                 } else {
                     if (trackedPos < viewPos + d->highlightRangeStart) {
                         pos = trackedPos - d->highlightRangeStart;
-                    } else if (trackedPos > viewPos + d->highlightRangeEnd - d->trackedItem->size()) {
-                        pos = trackedPos - d->highlightRangeEnd + d->trackedItem->size();
+                    } else if (trackedPos > viewPos + d->highlightRangeEnd - trackedSize) {
+                        pos = trackedPos - d->highlightRangeEnd + trackedSize;
                     }
                 }
             }
         } else {
             if (trackedPos < viewPos && d->currentItem->position() < viewPos) {
                 pos = d->currentItem->position() < trackedPos ? trackedPos : d->currentItem->position();
-            } else if (d->trackedItem->endPosition() > viewPos + d->size()
-                        && d->currentItem->endPosition() > viewPos + d->size()) {
-                if (d->trackedItem->endPosition() < d->currentItem->endPosition()) {
-                    pos = d->trackedItem->endPosition() - d->size();
-                    if (d->trackedItem->size() > d->size())
+            } else if (d->trackedItem->endPosition() >= viewPos + d->size()
+                        && d->currentItem->endPosition() >= viewPos + d->size()) {
+                if (d->trackedItem->endPosition() <= d->currentItem->endPosition()) {
+                    pos = d->trackedItem->endPosition() - d->size() + 1;
+                     if (trackedSize > d->size())
                         pos = trackedPos;
                 } else {
-                    pos = d->currentItem->endPosition() - d->size();
+                    pos = d->currentItem->endPosition() - d->size() + 1;
                     if (d->currentItem->size() > d->size())
                         pos = d->currentItem->position();
                 }
@@ -2899,14 +2957,18 @@
     }
 
     if (removedVisible && d->visibleItems.isEmpty()) {
-        d->visibleIndex = 0;
-        d->visiblePos = d->header ? d->header->size() : 0;
         d->timeline.clear();
-        d->setPosition(0);
         if (d->itemCount == 0) {
+            d->visibleIndex = 0;
+            d->visiblePos = d->header ? d->header->size() : 0;
+            d->setPosition(0);
             d->updateHeader();
             d->updateFooter();
             update();
+        } else {
+            if (modelIndex < d->visibleIndex)
+                d->visibleIndex = modelIndex+1;
+            d->visibleIndex = qMax(qMin(d->visibleIndex, d->itemCount-1), 0);
         }
     }
 
--- a/src/declarative/graphicsitems/qdeclarativelistview_p.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/graphicsitems/qdeclarativelistview_p.h	Mon Oct 04 01:19:32 2010 +0300
@@ -43,6 +43,7 @@
 #define QDECLARATIVELISTVIEW_H
 
 #include "private/qdeclarativeflickable_p.h"
+#include "private/qdeclarativeguard_p.h"
 
 QT_BEGIN_HEADER
 
@@ -53,8 +54,8 @@
 class Q_AUTOTEST_EXPORT QDeclarativeViewSection : public QObject
 {
     Q_OBJECT
-    Q_PROPERTY(QString property READ property WRITE setProperty NOTIFY changed)
-    Q_PROPERTY(SectionCriteria criteria READ criteria WRITE setCriteria NOTIFY changed)
+    Q_PROPERTY(QString property READ property WRITE setProperty NOTIFY propertyChanged)
+    Q_PROPERTY(SectionCriteria criteria READ criteria WRITE setCriteria NOTIFY criteriaChanged)
     Q_PROPERTY(QDeclarativeComponent *delegate READ delegate WRITE setDelegate NOTIFY delegateChanged)
     Q_ENUMS(SectionCriteria)
 public:
@@ -73,7 +74,8 @@
     QString sectionString(const QString &value);
 
 Q_SIGNALS:
-    void changed();
+    void propertyChanged();
+    void criteriaChanged();
     void delegateChanged();
 
 private:
@@ -244,6 +246,7 @@
     virtual qreal minXExtent() const;
     virtual qreal maxXExtent() const;
     virtual void keyPressEvent(QKeyEvent *);
+    virtual void geometryChanged(const QRectF &newGeometry,const QRectF &oldGeometry);
     virtual void componentComplete();
 
 private Q_SLOTS:
@@ -267,8 +270,14 @@
         : QObject(parent), m_view(0), m_isCurrent(false), m_delayRemove(false) {}
     ~QDeclarativeListViewAttached() {}
 
-    Q_PROPERTY(QDeclarativeListView *view READ view CONSTANT)
+    Q_PROPERTY(QDeclarativeListView *view READ view NOTIFY viewChanged)
     QDeclarativeListView *view() { return m_view; }
+    void setView(QDeclarativeListView *view) {
+        if (view != m_view) {
+            m_view = view;
+            emit viewChanged();
+        }
+    }
 
     Q_PROPERTY(bool isCurrentItem READ isCurrentItem NOTIFY currentItemChanged)
     bool isCurrentItem() const { return m_isCurrent; }
@@ -326,9 +335,10 @@
     void delayRemoveChanged();
     void add();
     void remove();
+    void viewChanged();
 
 public:
-    QDeclarativeListView *m_view;
+    QDeclarativeGuard<QDeclarativeListView> m_view;
     mutable QString m_section;
     QString m_prevSection;
     QString m_nextSection;
--- a/src/declarative/graphicsitems/qdeclarativeloader.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/graphicsitems/qdeclarativeloader.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -108,68 +108,87 @@
 
 /*!
     \qmlclass Loader QDeclarativeLoader
+    \ingroup qml-utility-elements
     \since 4.7
     \inherits Item
 
     \brief The Loader item allows dynamically loading an Item-based
     subtree from a URL or Component.
 
-    The Loader element instantiates an item from a component. The component to
-    be instantiated may be specified directly by the \l sourceComponent
-    property, or loaded from a URL via the \l source property.
+    Loader is used to dynamically load visual QML components. It can load a
+    QML file (using the \l source property) or a \l Component object (using 
+    the \l sourceComponent property). It is useful for delaying the creation 
+    of a component until it is required: for example, when a component should 
+    be created on demand, or when a component should not be created 
+    unnecessarily for performance reasons.
 
-    Loader can be used to delay the creation of a component until it
-    is required.  For example, this loads "Page1.qml" as a component
-    into the Loader element, when the \l MouseArea is clicked:
+    Here is a Loader that loads "Page1.qml" as a component when the 
+    \l MouseArea is clicked:
+
+    \snippet doc/src/snippets/declarative/loader/simple.qml 0
+
+    The loaded item can be accessed using the \l item property.
 
-    \code
-    import Qt 4.7
+    Loader is like any other visual item and must be positioned and sized 
+    accordingly to become visible. Once the component is loaded, the Loader 
+    is automatically resized to the size of the component.
 
-    Item {
-        width: 200; height: 200
+    If the \l source or \l sourceComponent changes, any previously instantiated
+    items are destroyed. Setting \l source to an empty string or setting
+    \l sourceComponent to \c undefined destroys the currently loaded item,
+    freeing resources and leaving the Loader empty.
+
 
-        MouseArea { 
-            anchors.fill: parent
-            onClicked: pageLoader.source = "Page1.qml"
-        }
+    \section2 Receiving signals from loaded items
+
+    Any signals emitted from the loaded item can be received using the 
+    \l Connections element. For example, the following \c application.qml
+    loads \c MyItem.qml, and is able to receive the \c message signal from
+    the loaded item through a \l Connections object:
 
-        Loader { id: pageLoader }
-    }
-    \endcode
+    \table
+    \row 
+    \o application.qml
+    \o MyItem.qml
+    \row
+    \o \snippet doc/src/snippets/declarative/loader/connections.qml 0
+    \o \snippet doc/src/snippets/declarative/loader/MyItem.qml 0
+    \endtable
 
-    Note that Loader is like any other graphical Item and needs to be positioned 
-    and sized accordingly to become visible. When a component is loaded, the 
-    Loader is automatically resized to the size of the component.
+    Alternatively, since \c MyItem.qml is loaded within the scope of the
+    Loader, it could also directly call any function defined in the Loader or
+    its parent \l Item.
+
+
+    \section2 Focus and key events
 
-    If the Loader source is changed, any previous items instantiated
-    will be destroyed.  Setting \l source to an empty string, or setting
-    sourceComponent to \e undefined
-    will destroy the currently instantiated items, freeing resources
-    and leaving the Loader empty.  For example:
+    Loader is a focus scope. Its \l {Item::}{focus} property must be set to 
+    \c true for any of its children to get the \e {active focus}. (See 
+    \l{qmlfocus#Acquiring Focus and Focus Scopes}{the focus documentation page} 
+    for more details.) Any key events received in the loaded item should likely
+    also be \l {KeyEvent::}{accepted} so they are not propagated to the Loader.
+
+    For example, the following \c application.qml loads \c KeyReader.qml when
+    the \l MouseArea is clicked.  Notice the \l {Item::}{focus} property is 
+    set to \c true for the Loader as well as the \l Item in the dynamically 
+    loaded object:
 
-    \code
-    pageLoader.source = ""
-    \endcode
-
-      or
+    \table
+    \row 
+    \o application.qml
+    \o KeyReader.qml
+    \row
+    \o \snippet doc/src/snippets/declarative/loader/focus.qml 0
+    \o \snippet doc/src/snippets/declarative/loader/KeyReader.qml 0
+    \endtable
 
-    \code
-    pageLoader.sourceComponent = undefined
-    \endcode
-
-    unloads "Page1.qml" and frees resources consumed by it.
+    Once \c KeyReader.qml is loaded, it accepts key events and sets 
+    \c event.accepted to \c true so that the event is not propagated to the
+    parent \l Rectangle.
 
     \sa {dynamic-object-creation}{Dynamic Object Creation}
 */
 
-/*!
-    \internal
-    \class QDeclarativeLoader
- */
-
-/*!
-    Create a new QDeclarativeLoader instance.
- */
 QDeclarativeLoader::QDeclarativeLoader(QDeclarativeItem *parent)
   : QDeclarativeItem(*(new QDeclarativeLoaderPrivate), parent)
 {
@@ -177,9 +196,6 @@
     d->flags |= QGraphicsItem::ItemIsFocusScope;
 }
 
-/*!
-    Destroy the loader instance.
- */
 QDeclarativeLoader::~QDeclarativeLoader()
 {
     Q_D(QDeclarativeLoader);
@@ -194,8 +210,13 @@
 
 /*!
     \qmlproperty url Loader::source
-    This property holds the URL of the QML component to
-    instantiate.
+    This property holds the URL of the QML component to instantiate.
+
+    Note the QML component must be an \l Item-based component. Loader cannot
+    load non-visual components.
+
+    To unload the currently loaded item, set this property to an empty string,
+    or set \l sourceComponent to \c undefined.
 
     \sa sourceComponent, status, progress
 */
@@ -254,7 +275,8 @@
     }
     \endqml
 
-    Note this value must hold a \l Component object; it cannot be a \l Item.
+    To unload the currently loaded item, set this property to an empty string,
+    or set \l sourceComponent to \c undefined.
 
     \sa source, progress
 */
@@ -473,7 +495,7 @@
 
 /*!
     \qmlproperty Item Loader::item
-    This property holds the top-level item created from source.
+    This property holds the top-level item that is currently loaded.
 */
 QGraphicsObject *QDeclarativeLoader::item() const
 {
--- a/src/declarative/graphicsitems/qdeclarativemousearea.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/graphicsitems/qdeclarativemousearea.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -180,6 +180,7 @@
 
 /*!
     \qmlclass MouseArea QDeclarativeMouseArea
+    \ingroup qml-basic-interaction-elements
     \since 4.7
     \brief The MouseArea item enables simple mouse handling.
     \inherits Item
@@ -316,16 +317,6 @@
     \l Flickable, \c onCanceled should be used in addition to onReleased.
 */
 
-/*!
-    \internal
-    \class QDeclarativeMouseArea
-    \brief The QDeclarativeMouseArea class provides a simple mouse handling abstraction for use within QML.
-
-    All QDeclarativeItem derived classes can do mouse handling but the QDeclarativeMouseArea class exposes mouse
-    handling data as properties and tracks flicking and dragging of the mouse.
-
-    A QDeclarativeMouseArea object can be instantiated in QML using the tag \l MouseArea.
- */
 QDeclarativeMouseArea::QDeclarativeMouseArea(QDeclarativeItem *parent)
   : QDeclarativeItem(*(new QDeclarativeMouseAreaPrivate), parent)
 {
@@ -689,7 +680,6 @@
         d->lastPos = mapFromScene(d->lastScenePos);
 }
 
-/*! \internal */
 QVariant QDeclarativeMouseArea::itemChange(GraphicsItemChange change,
                                        const QVariant &value)
 {
--- a/src/declarative/graphicsitems/qdeclarativepath.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/graphicsitems/qdeclarativepath.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -51,6 +51,7 @@
 
 /*!
     \qmlclass PathElement QDeclarativePathElement
+    \ingroup qml-view-elements
     \since 4.7
     \brief PathElement is the base path type.
 
@@ -61,12 +62,8 @@
 */
 
 /*!
-    \internal
-    \class QDeclarativePathElement
-*/
-
-/*!
     \qmlclass Path QDeclarativePath
+    \ingroup qml-view-elements
     \since 4.7
     \brief A Path object defines a path for use by \l PathView.
 
@@ -81,13 +78,6 @@
 
     \sa PathView, PathAttribute, PathPercent, PathLine, PathQuad, PathCubic
 */
-
-/*!
-    \internal
-    \class QDeclarativePath
-    \brief The QDeclarativePath class defines a path.
-    \sa QDeclarativePathView
-*/
 QDeclarativePath::QDeclarativePath(QObject *parent)
  : QObject(*(new QDeclarativePathPrivate), parent)
 {
@@ -474,6 +464,7 @@
 {
     if (_x != x) {
         _x = x;
+        emit xChanged();
         emit changed();
     }
 }
@@ -487,6 +478,7 @@
 {
     if (_y != y) {
         _y = y;
+        emit yChanged();
         emit changed();
     }
 }
@@ -495,6 +487,7 @@
 
 /*!
     \qmlclass PathAttribute QDeclarativePathAttribute
+    \ingroup qml-view-elements
     \since 4.7
     \brief The PathAttribute allows setting an attribute at a given position in a Path.
 
@@ -522,15 +515,6 @@
 */
 
 /*!
-    \internal
-    \class QDeclarativePathAttribute
-    \brief The QDeclarativePathAttribute class allows to set the value of an attribute at a given position in the path.
-
-    \sa QDeclarativePath
-*/
-
-
-/*!
     \qmlproperty string PathAttribute::name
     the name of the attribute to change.
 
@@ -576,6 +560,7 @@
 {
     if (_value != value) {
         _value = value;
+        emit valueChanged();
         emit changed();
     }
 }
@@ -584,6 +569,7 @@
 
 /*!
     \qmlclass PathLine QDeclarativePathLine
+    \ingroup qml-view-elements
     \since 4.7
     \brief The PathLine defines a straight line.
 
@@ -601,14 +587,6 @@
 */
 
 /*!
-    \internal
-    \class QDeclarativePathLine
-    \brief The QDeclarativePathLine class defines a straight line.
-
-    \sa QDeclarativePath
-*/
-
-/*!
     \qmlproperty real PathLine::x
     \qmlproperty real PathLine::y
 
@@ -624,6 +602,7 @@
 
 /*!
     \qmlclass PathQuad QDeclarativePathQuad
+    \ingroup qml-view-elements
     \since 4.7
     \brief The PathQuad defines a quadratic Bezier curve with a control point.
 
@@ -644,15 +623,6 @@
 */
 
 /*!
-    \internal
-    \class QDeclarativePathQuad
-    \brief The QDeclarativePathQuad class defines a quadratic Bezier curve with a control point.
-
-    \sa QDeclarativePath
-*/
-
-
-/*!
     \qmlproperty real PathQuad::x
     \qmlproperty real PathQuad::y
 
@@ -678,6 +648,7 @@
 {
     if (_controlX != x) {
         _controlX = x;
+        emit controlXChanged();
         emit changed();
     }
 }
@@ -695,6 +666,7 @@
 {
     if (_controlY != y) {
         _controlY = y;
+        emit controlYChanged();
         emit changed();
     }
 }
@@ -708,6 +680,7 @@
 
 /*!
    \qmlclass PathCubic QDeclarativePathCubic
+    \ingroup qml-view-elements
     \since 4.7
    \brief The PathCubic defines a cubic Bezier curve with two control points.
 
@@ -732,14 +705,6 @@
 */
 
 /*!
-    \internal
-    \class QDeclarativePathCubic
-    \brief The QDeclarativePathCubic class defines a cubic Bezier curve with two control points.
-
-    \sa QDeclarativePath
-*/
-
-/*!
     \qmlproperty real PathCubic::x
     \qmlproperty real PathCubic::y
 
@@ -761,6 +726,7 @@
 {
     if (_control1X != x) {
         _control1X = x;
+        emit control1XChanged();
         emit changed();
     }
 }
@@ -774,6 +740,7 @@
 {
     if (_control1Y != y) {
         _control1Y = y;
+        emit control1YChanged();
         emit changed();
     }
 }
@@ -793,6 +760,7 @@
 {
     if (_control2X != x) {
         _control2X = x;
+        emit control2XChanged();
         emit changed();
     }
 }
@@ -806,6 +774,7 @@
 {
     if (_control2Y != y) {
         _control2Y = y;
+        emit control2YChanged();
         emit changed();
     }
 }
@@ -819,6 +788,7 @@
 
 /*!
     \qmlclass PathPercent QDeclarativePathPercent
+    \ingroup qml-view-elements
     \since 4.7
     \brief The PathPercent manipulates the way a path is interpreted.
 
@@ -856,18 +826,6 @@
     \sa Path
 */
 
-/*!
-    \internal
-    \class QDeclarativePathPercent
-    \brief The QDeclarativePathPercent class manipulates the way a path is interpreted.
-
-    QDeclarativePathPercent allows you to bunch up items (or spread out items) along various
-    segments of a QDeclarativePathView's path.
-
-    \sa QDeclarativePath
-
-*/
-
 qreal QDeclarativePathPercent::value() const
 {
     return _value;
@@ -877,6 +835,7 @@
 {
     if (_value != value) {
         _value = value;
+        emit valueChanged();
         emit changed();
     }
 }
--- a/src/declarative/graphicsitems/qdeclarativepath_p.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/graphicsitems/qdeclarativepath_p.h	Mon Oct 04 01:19:32 2010 +0300
@@ -68,7 +68,7 @@
     Q_OBJECT
 
     Q_PROPERTY(QString name READ name WRITE setName NOTIFY nameChanged)
-    Q_PROPERTY(qreal value READ value WRITE setValue NOTIFY changed)
+    Q_PROPERTY(qreal value READ value WRITE setValue NOTIFY valueChanged)
 public:
     QDeclarativePathAttribute(QObject *parent=0) : QDeclarativePathElement(parent), _value(0) {}
 
@@ -81,6 +81,7 @@
 
 Q_SIGNALS:
     void nameChanged();
+    void valueChanged();
 
 private:
     QString _name;
@@ -91,8 +92,8 @@
 {
     Q_OBJECT
 
-    Q_PROPERTY(qreal x READ x WRITE setX NOTIFY changed)
-    Q_PROPERTY(qreal y READ y WRITE setY NOTIFY changed)
+    Q_PROPERTY(qreal x READ x WRITE setX NOTIFY xChanged)
+    Q_PROPERTY(qreal y READ y WRITE setY NOTIFY yChanged)
 public:
     QDeclarativeCurve(QObject *parent=0) : QDeclarativePathElement(parent), _x(0), _y(0) {}
 
@@ -104,6 +105,10 @@
 
     virtual void addToPath(QPainterPath &) {}
 
+Q_SIGNALS:
+    void xChanged();
+    void yChanged();
+
 private:
     qreal _x;
     qreal _y;
@@ -122,8 +127,8 @@
 {
     Q_OBJECT
 
-    Q_PROPERTY(qreal controlX READ controlX WRITE setControlX NOTIFY changed)
-    Q_PROPERTY(qreal controlY READ controlY WRITE setControlY NOTIFY changed)
+    Q_PROPERTY(qreal controlX READ controlX WRITE setControlX NOTIFY controlXChanged)
+    Q_PROPERTY(qreal controlY READ controlY WRITE setControlY NOTIFY controlYChanged)
 public:
     QDeclarativePathQuad(QObject *parent=0) : QDeclarativeCurve(parent), _controlX(0), _controlY(0) {}
 
@@ -135,6 +140,10 @@
 
     void addToPath(QPainterPath &path);
 
+Q_SIGNALS:
+    void controlXChanged();
+    void controlYChanged();
+
 private:
     qreal _controlX;
     qreal _controlY;
@@ -144,10 +153,10 @@
 {
     Q_OBJECT
 
-    Q_PROPERTY(qreal control1X READ control1X WRITE setControl1X NOTIFY changed)
-    Q_PROPERTY(qreal control1Y READ control1Y WRITE setControl1Y NOTIFY changed)
-    Q_PROPERTY(qreal control2X READ control2X WRITE setControl2X NOTIFY changed)
-    Q_PROPERTY(qreal control2Y READ control2Y WRITE setControl2Y NOTIFY changed)
+    Q_PROPERTY(qreal control1X READ control1X WRITE setControl1X NOTIFY control1XChanged)
+    Q_PROPERTY(qreal control1Y READ control1Y WRITE setControl1Y NOTIFY control1YChanged)
+    Q_PROPERTY(qreal control2X READ control2X WRITE setControl2X NOTIFY control2XChanged)
+    Q_PROPERTY(qreal control2Y READ control2Y WRITE setControl2Y NOTIFY control2YChanged)
 public:
     QDeclarativePathCubic(QObject *parent=0) : QDeclarativeCurve(parent), _control1X(0), _control1Y(0), _control2X(0), _control2Y(0) {}
 
@@ -165,23 +174,32 @@
 
     void addToPath(QPainterPath &path);
 
+Q_SIGNALS:
+    void control1XChanged();
+    void control1YChanged();
+    void control2XChanged();
+    void control2YChanged();
+
 private:
-    int _control1X;
-    int _control1Y;
-    int _control2X;
-    int _control2Y;
+    qreal _control1X;
+    qreal _control1Y;
+    qreal _control2X;
+    qreal _control2Y;
 };
 
 class Q_AUTOTEST_EXPORT QDeclarativePathPercent : public QDeclarativePathElement
 {
     Q_OBJECT
-    Q_PROPERTY(qreal value READ value WRITE setValue NOTIFY changed)
+    Q_PROPERTY(qreal value READ value WRITE setValue NOTIFY valueChanged)
 public:
     QDeclarativePathPercent(QObject *parent=0) : QDeclarativePathElement(parent) {}
 
     qreal value() const;
     void setValue(qreal value);
 
+signals:
+    void valueChanged();
+
 private:
     qreal _value;
 };
--- a/src/declarative/graphicsitems/qdeclarativepathview.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/graphicsitems/qdeclarativepathview.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -67,7 +67,7 @@
 static QDeclarativeOpenMetaObjectType *qPathViewAttachedType = 0;
 
 QDeclarativePathViewAttached::QDeclarativePathViewAttached(QObject *parent)
-: QObject(parent), m_view(0), m_onPath(false), m_isCurrent(false)
+: QObject(parent), m_percent(-1), m_view(0), m_onPath(false), m_isCurrent(false)
 {
     if (qPathViewAttachedType) {
         m_metaobject = new QDeclarativeOpenMetaObject(this, qPathViewAttachedType);
@@ -90,6 +90,26 @@
     m_metaobject->setValue(name, val);
 }
 
+
+void QDeclarativePathViewPrivate::init()
+{
+    Q_Q(QDeclarativePathView);
+    offset = 0;
+    q->setAcceptedMouseButtons(Qt::LeftButton);
+    q->setFlag(QGraphicsItem::ItemIsFocusScope);
+    q->setFiltersChildEvents(true);
+    q->connect(&tl, SIGNAL(updated()), q, SLOT(ticked()));
+    lastPosTime.invalidate();
+    static int timelineCompletedIdx = -1;
+    static int movementEndingIdx = -1;
+    if (timelineCompletedIdx == -1) {
+        timelineCompletedIdx = QDeclarativeTimeLine::staticMetaObject.indexOfSignal("completed()");
+        movementEndingIdx = QDeclarativePathView::staticMetaObject.indexOfSlot("movementEnding()");
+    }
+    QMetaObject::connect(&tl, timelineCompletedIdx,
+                         q, movementEndingIdx, Qt::DirectConnection);
+}
+
 QDeclarativeItem *QDeclarativePathViewPrivate::getItem(int modelIndex)
 {
     Q_Q(QDeclarativePathView);
@@ -144,8 +164,8 @@
 
 void QDeclarativePathViewPrivate::updateMappedRange()
 {
-    if (model && pathItems != -1 && pathItems < model->count())
-        mappedRange = qreal(pathItems)/model->count();
+    if (model && pathItems != -1 && pathItems < modelCount)
+        mappedRange = qreal(pathItems)/modelCount;
     else
         mappedRange = 1.0;
 }
@@ -154,13 +174,13 @@
 {
     qreal pos = -1.0;
 
-    if (model && index >= 0 && index < model->count()) {
+    if (model && index >= 0 && index < modelCount) {
         qreal start = 0.0;
         if (haveHighlightRange && highlightRangeMode != QDeclarativePathView::NoHighlightRange)
             start = highlightRangeStart;
         qreal globalPos = index + offset;
-        globalPos = qmlMod(globalPos, qreal(model->count())) / model->count();
-        if (pathItems != -1 && pathItems < model->count()) {
+        globalPos = qmlMod(globalPos, qreal(modelCount)) / modelCount;
+        if (pathItems != -1 && pathItems < modelCount) {
             globalPos += start * mappedRange;
             globalPos = qmlMod(globalPos, 1.0);
             if (globalPos < mappedRange)
@@ -222,21 +242,22 @@
         } else {
             qreal target = currentIndex;
 
+            offsetAdj = 0.0;
             tl.reset(moveHighlight);
             moveHighlight.setValue(highlightPosition);
 
             const int duration = highlightMoveDuration;
 
-            if (target - highlightPosition > model->count()/2) {
+            if (target - highlightPosition > modelCount/2) {
                 highlightUp = false;
-                qreal distance = model->count() - target + highlightPosition;
+                qreal distance = modelCount - target + highlightPosition;
                 tl.move(moveHighlight, 0.0, QEasingCurve(QEasingCurve::InQuad), int(duration * highlightPosition / distance));
-                tl.set(moveHighlight, model->count()-0.01);
-                tl.move(moveHighlight, target, QEasingCurve(QEasingCurve::OutQuad), int(duration * (model->count()-target) / distance));
-            } else if (target - highlightPosition <= -model->count()/2) {
+                tl.set(moveHighlight, modelCount-0.01);
+                tl.move(moveHighlight, target, QEasingCurve(QEasingCurve::OutQuad), int(duration * (modelCount-target) / distance));
+            } else if (target - highlightPosition <= -modelCount/2) {
                 highlightUp = true;
-                qreal distance = model->count() - highlightPosition + target;
-                tl.move(moveHighlight, model->count()-0.01, QEasingCurve(QEasingCurve::InQuad), int(duration * (model->count()-highlightPosition) / distance));
+                qreal distance = modelCount - highlightPosition + target;
+                tl.move(moveHighlight, modelCount-0.01, QEasingCurve(QEasingCurve::InQuad), int(duration * (modelCount-highlightPosition) / distance));
                 tl.set(moveHighlight, 0.0);
                 tl.move(moveHighlight, target, QEasingCurve(QEasingCurve::OutQuad), int(duration * target / distance));
             } else {
@@ -257,7 +278,7 @@
             end = highlightRangeEnd;
         }
 
-        qreal range = qreal(model->count());
+        qreal range = qreal(modelCount);
         // calc normalized position of highlight relative to offset
         qreal relativeHighlight = qmlMod(pos + offset, range) / range;
 
@@ -280,6 +301,9 @@
 void QDeclarativePathViewPrivate::updateItem(QDeclarativeItem *item, qreal percent)
 {
     if (QDeclarativePathViewAttached *att = attached(item)) {
+        if (qFuzzyCompare(att->m_percent, percent))
+            return;
+        att->m_percent = percent;
         foreach(const QString &attr, path->attributes())
             att->setValue(attr.toUtf8(), path->attributeAt(attr, percent));
     }
@@ -306,6 +330,7 @@
 
 /*!
     \qmlclass PathView QDeclarativePathView
+    \ingroup qml-view-elements
     \since 4.7
     \brief The PathView element lays out model-provided items on a path.
     \inherits Item
@@ -314,7 +339,7 @@
     and XmlListModel, or custom model classes defined in C++ that inherit from
     QAbstractListModel.
 
-    A ListView has a \l model, which defines the data to be displayed, and
+    The view has a \l model, which defines the data to be displayed, and
     a \l delegate, which defines how the data should be displayed.  
     The \l delegate is instantiated for each item on the \l path.
     The items may be flicked to move them along the path.
@@ -333,6 +358,9 @@
     opacity of the items as they rotate. This additional code can be seen in the
     PathAttribute documentation.)
 
+    The \c focus can be set to \c true to enable keyboard navigation.
+    The path view itself is a focus scope (see \l{qmlfocus#Acquiring Focus and Focus Scopes}{the focus documentation page} for more details).
+
     Delegates are instantiated as needed and may be destroyed at any time.
     State should \e never be stored in a delegate.
 
@@ -341,7 +369,7 @@
     to set \e {clip: true} in order to have the out of view items clipped
     nicely.
 
-    \sa Path
+    \sa Path, {declarative/modelviews/pathview}{PathView example}
 */
 
 QDeclarativePathView::QDeclarativePathView(QDeclarativeItem *parent)
@@ -403,7 +431,7 @@
 
     The model provides a set of data that is used to create the items for the view.
     For large or dynamic datasets the model is usually provided by a C++ model object.
-    Models can also be created directly in XML, using the ListModel element.
+    Models can also be created directly in QML, using the ListModel element.
 
     \sa {qmlmodels}{Data Models}
 */
@@ -449,16 +477,19 @@
         if (QDeclarativeVisualDataModel *dataModel = qobject_cast<QDeclarativeVisualDataModel*>(d->model))
             dataModel->setModel(model);
     }
+    d->modelCount = 0;
     if (d->model) {
         connect(d->model, SIGNAL(itemsInserted(int,int)), this, SLOT(itemsInserted(int,int)));
         connect(d->model, SIGNAL(itemsRemoved(int,int)), this, SLOT(itemsRemoved(int,int)));
         connect(d->model, SIGNAL(itemsMoved(int,int,int)), this, SLOT(itemsMoved(int,int,int)));
         connect(d->model, SIGNAL(modelReset()), this, SLOT(modelReset()));
         connect(d->model, SIGNAL(createdItem(int, QDeclarativeItem*)), this, SLOT(createdItem(int,QDeclarativeItem*)));
-    }
-    d->offset = qmlMod(d->offset, qreal(d->model->count()));
-    if (d->offset < 0)
-        d->offset = d->model->count() + d->offset;
+        d->modelCount = d->model->count();
+        if (d->model->count())
+            d->offset = qmlMod(d->offset, qreal(d->model->count()));
+        if (d->offset < 0)
+            d->offset = d->model->count() + d->offset;
+}
     d->regenerate();
     d->fixOffset();
     emit countChanged();
@@ -472,7 +503,7 @@
 int QDeclarativePathView::count() const
 {
     Q_D(const QDeclarativePathView);
-    return d->model ? d->model->count() : 0;
+    return d->model ? d->modelCount : 0;
 }
 
 /*!
@@ -520,11 +551,11 @@
 void QDeclarativePathView::setCurrentIndex(int idx)
 {
     Q_D(QDeclarativePathView);
-    if (d->model && d->model->count())
-        idx = qAbs(idx % d->model->count());
+    if (d->model && d->modelCount)
+        idx = qAbs(idx % d->modelCount);
     if (d->model && idx != d->currentIndex) {
-        if (d->model->count()) {
-            int itemIndex = (d->currentIndex - d->firstIndex + d->model->count()) % d->model->count();
+        if (d->modelCount) {
+            int itemIndex = (d->currentIndex - d->firstIndex + d->modelCount) % d->modelCount;
             if (itemIndex < d->items.count()) {
                 if (QDeclarativeItem *item = d->items.at(itemIndex)) {
                     if (QDeclarativePathViewAttached *att = d->attached(item))
@@ -535,10 +566,10 @@
         d->currentItem = 0;
         d->moveReason = QDeclarativePathViewPrivate::SetIndex;
         d->currentIndex = idx;
-        if (d->model->count()) {
+        if (d->modelCount) {
             if (d->haveHighlightRange && d->highlightRangeMode == QDeclarativePathView::StrictlyEnforceRange)
                 d->snapToCurrent();
-            int itemIndex = (idx - d->firstIndex + d->model->count()) % d->model->count();
+            int itemIndex = (idx - d->firstIndex + d->modelCount) % d->modelCount;
             if (itemIndex < d->items.count()) {
                 d->currentItem = d->items.at(itemIndex);
                 d->currentItem->setFocus(true);
@@ -575,10 +606,10 @@
 void QDeclarativePathView::decrementCurrentIndex()
 {
     Q_D(QDeclarativePathView);
-    if (d->model && d->model->count()) {
+    if (d->model && d->modelCount) {
         int idx = currentIndex()-1;
         if (idx < 0)
-            idx = d->model->count() - 1;
+            idx = d->modelCount - 1;
         setCurrentIndex(idx);
     }
 }
@@ -607,9 +638,9 @@
     Q_Q(QDeclarativePathView);
     if (offset != o) {
         if (isValid() && q->isComponentComplete()) {
-            offset = qmlMod(o, qreal(model->count()));
+            offset = qmlMod(o, qreal(modelCount));
             if (offset < 0)
-                offset += qreal(model->count());
+                offset += qreal(modelCount);
             q->refill();
         } else {
             offset = o;
@@ -618,6 +649,11 @@
     }
 }
 
+void QDeclarativePathViewPrivate::setAdjustedOffset(qreal o)
+{
+    setOffset(o+offsetAdj);
+}
+
 /*!
     \qmlproperty Component PathView::highlight
     This property holds the component to use as the highlight.
@@ -627,8 +663,8 @@
     so as to stay with the current item.
 
     The below example demonstrates how to make a simple highlight.  Note the use
-    of the PathView.onPath property to ensure that the highlight is hidden
-    when flicked off of the path.
+    of the \l{PathView::onPath}{PathView.onPath} attached property to ensure that
+    the highlight is hidden when flicked away from the path.
 
     \code
     Component {
@@ -680,6 +716,8 @@
     These properties set the preferred range of the highlight (current item)
     within the view.  The preferred values must be in the range 0.0-1.0.
 
+    If highlightRangeMode is set to \e PathView.NoHighlightRange
+
     If highlightRangeMode is set to \e PathView.ApplyRange the view will
     attempt to maintain the highlight within the range, however
     the highlight can move outside of the range at the ends of the path
@@ -848,6 +886,61 @@
 }
 
 /*!
+    \qmlproperty bool PathView::moving
+
+    This property holds whether the view is currently moving
+    due to the user either dragging or flicking the view.
+*/
+bool QDeclarativePathView::isMoving() const
+{
+    Q_D(const QDeclarativePathView);
+    return d->moving;
+}
+
+/*!
+    \qmlproperty bool PathView::flicking
+
+    This property holds whether the view is currently moving
+    due to the user flicking the view.
+*/
+bool QDeclarativePathView::isFlicking() const
+{
+    Q_D(const QDeclarativePathView);
+    return d->flicking;
+}
+
+/*!
+    \qmlsignal PathView::onMovementStarted()
+
+    This handler is called when the view begins moving due to user
+    interaction.
+*/
+
+/*!
+    \qmlsignal PathView::onMovementEnded()
+
+    This handler is called when the view stops moving due to user
+    interaction.  If a flick was generated, this handler will
+    be triggered once the flick stops.  If a flick was not
+    generated, the handler will be triggered when the
+    user stops dragging - i.e. a mouse or touch release.
+*/
+
+/*!
+    \qmlsignal PathView::onFlickStarted()
+
+    This handler is called when the view is flicked.  A flick
+    starts from the point that the mouse or touch is released,
+    while still in motion.
+*/
+
+/*!
+    \qmlsignal PathView::onFlickEnded()
+
+    This handler is called when the view stops moving due to a flick.
+*/
+
+/*!
     \qmlproperty Component PathView::delegate
 
     The delegate provides a template defining each item instantiated by the view.
@@ -964,7 +1057,11 @@
             return;
     }
 
-    d->stealMouse = false;
+    if (d->tl.isActive() && d->flicking)
+        d->stealMouse = true; // If we've been flicked then steal the click.
+    else
+        d->stealMouse = false;
+
     d->lastElapsed = 0;
     d->lastDist = 0;
     QDeclarativeItemPrivate::start(d->lastPosTime);
@@ -979,7 +1076,7 @@
 
     if (!d->stealMouse) {
         QPointF delta = event->pos() - d->startPoint;
-        if (qAbs(delta.x()) > QApplication::startDragDistance() && qAbs(delta.y()) > QApplication::startDragDistance())
+        if (qAbs(delta.x()) > QApplication::startDragDistance() || qAbs(delta.y()) > QApplication::startDragDistance())
             d->stealMouse = true;
     }
 
@@ -987,19 +1084,24 @@
         d->moveReason = QDeclarativePathViewPrivate::Mouse;
         qreal newPc;
         d->pointNear(event->pos(), &newPc);
-        qreal diff = (newPc - d->startPc)*d->model->count()*d->mappedRange;
+        qreal diff = (newPc - d->startPc)*d->modelCount*d->mappedRange;
         if (diff) {
             setOffset(d->offset + diff);
 
-            if (diff > d->model->count()/2)
-                diff -= d->model->count();
-            else if (diff < -d->model->count()/2)
-                diff += d->model->count();
+            if (diff > d->modelCount/2)
+                diff -= d->modelCount;
+            else if (diff < -d->modelCount/2)
+                diff += d->modelCount;
 
             d->lastElapsed = QDeclarativeItemPrivate::restart(d->lastPosTime);
             d->lastDist = diff;
             d->startPc = newPc;
         }
+        if (!d->moving) {
+            d->moving = true;
+            emit movingChanged();
+            emit movementStarted();
+        }
     }
 }
 
@@ -1013,15 +1115,15 @@
 
     qreal elapsed = qreal(d->lastElapsed + QDeclarativeItemPrivate::elapsed(d->lastPosTime)) / 1000.;
     qreal velocity = elapsed > 0. ? d->lastDist / elapsed : 0;
-    if (d->model && d->model->count() && qAbs(velocity) > 1.) {
-        qreal count = d->pathItems == -1 ? d->model->count() : d->pathItems;
+    if (d->model && d->modelCount && qAbs(velocity) > 1.) {
+        qreal count = d->pathItems == -1 ? d->modelCount : d->pathItems;
         if (qAbs(velocity) > count * 2) // limit velocity
             velocity = (velocity > 0 ? count : -count) * 2;
         // Calculate the distance to be travelled
         qreal v2 = velocity*velocity;
         qreal accel = d->deceleration/10;
         // + 0.25 to encourage moving at least one item in the flick direction
-        qreal dist = qMin(qreal(d->model->count()-1), qreal(v2 / (accel * 2.0) + 0.25));
+        qreal dist = qMin(qreal(d->modelCount-1), qreal(v2 / (accel * 2.0) + 0.25));
         if (d->haveHighlightRange && d->highlightRangeMode == QDeclarativePathView::StrictlyEnforceRange) {
             // round to nearest item.
             if (velocity > 0.)
@@ -1036,15 +1138,23 @@
                 accel = v2 / (2.0f * qAbs(dist));
             }
         }
+        d->offsetAdj = 0.0;
         d->moveOffset.setValue(d->offset);
         d->tl.accel(d->moveOffset, velocity, accel, dist);
         d->tl.callback(QDeclarativeTimeLineCallback(&d->moveOffset, d->fixOffsetCallback, d));
+        if (!d->flicking) {
+            d->flicking = true;
+            emit flickingChanged();
+            emit flickStarted();
+        }
     } else {
         d->fixOffset();
     }
 
     d->lastPosTime.invalidate();
     ungrabMouse();
+    if (!d->tl.isActive())
+        movementEnding();
 }
 
 bool QDeclarativePathView::sendMouseEvent(QGraphicsSceneMouseEvent *event)
@@ -1164,79 +1274,81 @@
             d->updateItem(item, 1.0);
             d->releaseItem(item);
             if (it == d->items.begin()) {
-                if (++d->firstIndex >= d->model->count())
+                if (++d->firstIndex >= d->modelCount)
                     d->firstIndex = 0;
             }
             it = d->items.erase(it);
         }
         ++idx;
-        if (idx >= d->model->count())
+        if (idx >= d->modelCount)
             idx = 0;
     }
 
-    // add items to beginning and end
-    int count = d->pathItems == -1 ? d->model->count() : qMin(d->pathItems, d->model->count());
-    if (d->items.count() < count) {
-        int idx = qRound(d->model->count() - d->offset) % d->model->count();
-        qreal startPos = 0.0;
-        if (d->haveHighlightRange && d->highlightRangeMode != QDeclarativePathView::NoHighlightRange)
-            startPos = d->highlightRangeStart;
-        if (d->firstIndex >= 0) {
-            startPos = d->positionOfIndex(d->firstIndex);
-            idx = (d->firstIndex + d->items.count()) % d->model->count();
-        }
-        qreal pos = d->positionOfIndex(idx);
-        while ((pos > startPos || !d->items.count()) && d->items.count() < count) {
-//            qDebug() << "append" << idx;
-            QDeclarativeItem *item = d->getItem(idx);
-            if (d->model->completePending())
-                item->setZValue(idx+1);
-            if (d->currentIndex == idx) {
-                item->setFocus(true);
-                if (QDeclarativePathViewAttached *att = d->attached(item))
-                    att->setIsCurrentItem(true);
-                currentVisible = true;
-                d->currentItemOffset = pos;
-                d->currentItem = item;
+    if (d->modelCount) {
+        // add items to beginning and end
+        int count = d->pathItems == -1 ? d->modelCount : qMin(d->pathItems, d->modelCount);
+        if (d->items.count() < count) {
+            int idx = qRound(d->modelCount - d->offset) % d->modelCount;
+            qreal startPos = 0.0;
+            if (d->haveHighlightRange && d->highlightRangeMode != QDeclarativePathView::NoHighlightRange)
+                startPos = d->highlightRangeStart;
+            if (d->firstIndex >= 0) {
+                startPos = d->positionOfIndex(d->firstIndex);
+                idx = (d->firstIndex + d->items.count()) % d->modelCount;
             }
-            if (d->items.count() == 0)
-                d->firstIndex = idx;
-            d->items.append(item);
-            d->updateItem(item, pos);
-            if (d->model->completePending())
-                d->model->completeItem();
-            ++idx;
-            if (idx >= d->model->count())
-                idx = 0;
-            pos = d->positionOfIndex(idx);
-        }
+            qreal pos = d->positionOfIndex(idx);
+            while ((pos > startPos || !d->items.count()) && d->items.count() < count) {
+    //            qDebug() << "append" << idx;
+                QDeclarativeItem *item = d->getItem(idx);
+                if (d->model->completePending())
+                    item->setZValue(idx+1);
+                if (d->currentIndex == idx) {
+                    item->setFocus(true);
+                    if (QDeclarativePathViewAttached *att = d->attached(item))
+                        att->setIsCurrentItem(true);
+                    currentVisible = true;
+                    d->currentItemOffset = pos;
+                    d->currentItem = item;
+                }
+                if (d->items.count() == 0)
+                    d->firstIndex = idx;
+                d->items.append(item);
+                d->updateItem(item, pos);
+                if (d->model->completePending())
+                    d->model->completeItem();
+                ++idx;
+                if (idx >= d->modelCount)
+                    idx = 0;
+                pos = d->positionOfIndex(idx);
+            }
 
-        idx = d->firstIndex - 1;
-        if (idx < 0)
-            idx = d->model->count() - 1;
-        pos = d->positionOfIndex(idx);
-        while (pos >= 0.0 && pos < startPos) {
-//            qDebug() << "prepend" << idx;
-            QDeclarativeItem *item = d->getItem(idx);
-            if (d->model->completePending())
-                item->setZValue(idx+1);
-            if (d->currentIndex == idx) {
-                item->setFocus(true);
-                if (QDeclarativePathViewAttached *att = d->attached(item))
-                    att->setIsCurrentItem(true);
-                currentVisible = true;
-                d->currentItemOffset = pos;
-                d->currentItem = item;
-            }
-            d->items.prepend(item);
-            d->updateItem(item, pos);
-            if (d->model->completePending())
-                d->model->completeItem();
-            d->firstIndex = idx;
             idx = d->firstIndex - 1;
             if (idx < 0)
-                idx = d->model->count() - 1;
+                idx = d->modelCount - 1;
             pos = d->positionOfIndex(idx);
+            while (pos >= 0.0 && pos < startPos) {
+    //            qDebug() << "prepend" << idx;
+                QDeclarativeItem *item = d->getItem(idx);
+                if (d->model->completePending())
+                    item->setZValue(idx+1);
+                if (d->currentIndex == idx) {
+                    item->setFocus(true);
+                    if (QDeclarativePathViewAttached *att = d->attached(item))
+                        att->setIsCurrentItem(true);
+                    currentVisible = true;
+                    d->currentItemOffset = pos;
+                    d->currentItem = item;
+                }
+                d->items.prepend(item);
+                d->updateItem(item, pos);
+                if (d->model->completePending())
+                    d->model->completeItem();
+                d->firstIndex = idx;
+                idx = d->firstIndex - 1;
+                if (idx < 0)
+                    idx = d->modelCount - 1;
+                pos = d->positionOfIndex(idx);
+            }
         }
     }
 
@@ -1252,6 +1364,8 @@
         if (QDeclarativePathViewAttached *att = d->attached(d->highlightItem))
             att->setOnPath(currentVisible);
     }
+    while (d->itemCache.count())
+        d->releaseItem(d->itemCache.takeLast());
 }
 
 void QDeclarativePathView::itemsInserted(int modelIndex, int count)
@@ -1261,16 +1375,25 @@
     if (!d->isValid() || !isComponentComplete())
         return;
 
-    QList<QDeclarativeItem *> removedItems = d->items;
+    d->itemCache += d->items;
     d->items.clear();
     if (modelIndex <= d->currentIndex) {
         d->currentIndex += count;
         emit currentIndexChanged();
+    } else if (d->offset != 0) {
+        d->offset += count;
+        d->offsetAdj += count;
     }
-    d->regenerate();
-    while (removedItems.count())
-        d->releaseItem(removedItems.takeLast());
-    d->updateCurrent();
+
+    d->modelCount = d->model->count();
+    if (d->flicking || d->moving) {
+        d->regenerate();
+        d->updateCurrent();
+    } else {
+        d->firstIndex = -1;
+        d->updateMappedRange();
+        d->scheduleLayout();
+    }
     emit countChanged();
 }
 
@@ -1278,7 +1401,7 @@
 {
     //XXX support animated removal
     Q_D(QDeclarativePathView);
-    if (!d->isValid() || !isComponentComplete())
+    if (!d->model || !d->modelCount || !d->model->isValid() || !d->path || !isComponentComplete())
         return;
 
     // fix current
@@ -1288,7 +1411,7 @@
         currentChanged = true;
     } else if (d->currentIndex >= modelIndex && d->currentIndex < modelIndex + count) {
         // current item has been removed.
-        d->currentIndex = qMin(modelIndex, d->model->count()-1);
+        d->currentIndex = qMin(modelIndex, d->modelCount-1);
         if (d->currentItem) {
             if (QDeclarativePathViewAttached *att = d->attached(d->currentItem))
                 att->setIsCurrentItem(true);
@@ -1296,15 +1419,21 @@
         currentChanged = true;
     }
 
-    QList<QDeclarativeItem *> removedItems = d->items;
+    d->itemCache += d->items;
     d->items.clear();
-    if (d->offset >= d->model->count())
-        d->offset = d->model->count() - 1;
 
+    if (modelIndex > d->currentIndex) {
+        if (d->offset >= count) {
+            d->offset -= count;
+            d->offsetAdj -= count;
+        }
+    }
+
+    d->modelCount = d->model->count();
     d->regenerate();
-    while (removedItems.count())
-        d->releaseItem(removedItems.takeLast());
     d->updateCurrent();
+    if (!d->modelCount)
+        update();
     if (currentChanged)
         emit currentIndexChanged();
     emit countChanged();
@@ -1335,6 +1464,7 @@
 void QDeclarativePathView::modelReset()
 {
     Q_D(QDeclarativePathView);
+    d->modelCount = d->model->count();
     d->regenerate();
     emit countChanged();
 }
@@ -1372,16 +1502,31 @@
     d->updateCurrent();
 }
 
+void QDeclarativePathView::movementEnding()
+{
+    Q_D(QDeclarativePathView);
+    if (d->flicking) {
+        d->flicking = false;
+        emit flickingChanged();
+        emit flickEnded();
+    }
+    if (d->moving && !d->stealMouse) {
+        d->moving = false;
+        emit movingChanged();
+        emit movementEnded();
+    }
+}
+
 // find the item closest to the snap position
 int QDeclarativePathViewPrivate::calcCurrentIndex()
 {
     int current = -1;
     if (model && items.count()) {
-        offset = qmlMod(offset, model->count());
+        offset = qmlMod(offset, modelCount);
         if (offset < 0)
-            offset += model->count();
-        current = qRound(qAbs(qmlMod(model->count() - offset, model->count())));
-        current = current % model->count();
+            offset += modelCount;
+        current = qRound(qAbs(qmlMod(modelCount - offset, modelCount)));
+        current = current % modelCount;
     }
 
     return current;
@@ -1397,7 +1542,7 @@
 
     int idx = calcCurrentIndex();
     if (model && idx != currentIndex) {
-        int itemIndex = (currentIndex - firstIndex + model->count()) % model->count();
+        int itemIndex = (currentIndex - firstIndex + modelCount) % modelCount;
         if (itemIndex < items.count()) {
             if (QDeclarativeItem *item = items.at(itemIndex)) {
                 if (QDeclarativePathViewAttached *att = attached(item))
@@ -1406,7 +1551,7 @@
         }
         currentIndex = idx;
         currentItem = 0;
-        itemIndex = (idx - firstIndex + model->count()) % model->count();
+        itemIndex = (idx - firstIndex + modelCount) % modelCount;
         if (itemIndex < items.count()) {
             currentItem = items.at(itemIndex);
             currentItem->setFocus(true);
@@ -1438,25 +1583,26 @@
 
 void QDeclarativePathViewPrivate::snapToCurrent()
 {
-    if (!model || model->count() <= 0)
+    if (!model || modelCount <= 0)
         return;
 
-    qreal targetOffset = model->count() - currentIndex;
+    qreal targetOffset = modelCount - currentIndex;
 
     moveReason = Other;
+    offsetAdj = 0.0;
     tl.reset(moveOffset);
     moveOffset.setValue(offset);
 
     const int duration = highlightMoveDuration;
 
-    if (targetOffset - offset > model->count()/2) {
-        qreal distance = model->count() - targetOffset + offset;
+    if (targetOffset - offset > modelCount/2) {
+        qreal distance = modelCount - targetOffset + offset;
         tl.move(moveOffset, 0.0, QEasingCurve(QEasingCurve::InQuad), int(duration * offset / distance));
-        tl.set(moveOffset, model->count());
-        tl.move(moveOffset, targetOffset, QEasingCurve(QEasingCurve::OutQuad), int(duration * (model->count()-targetOffset) / distance));
-    } else if (targetOffset - offset <= -model->count()/2) {
-        qreal distance = model->count() - offset + targetOffset;
-        tl.move(moveOffset, model->count(), QEasingCurve(QEasingCurve::InQuad), int(duration * (model->count()-offset) / distance));
+        tl.set(moveOffset, modelCount);
+        tl.move(moveOffset, targetOffset, QEasingCurve(QEasingCurve::OutQuad), int(duration * (modelCount-targetOffset) / distance));
+    } else if (targetOffset - offset <= -modelCount/2) {
+        qreal distance = modelCount - offset + targetOffset;
+        tl.move(moveOffset, modelCount, QEasingCurve(QEasingCurve::InQuad), int(duration * (modelCount-offset) / distance));
         tl.set(moveOffset, 0.0);
         tl.move(moveOffset, targetOffset, QEasingCurve(QEasingCurve::OutQuad), int(duration * targetOffset / distance));
     } else {
--- a/src/declarative/graphicsitems/qdeclarativepathview_p.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/graphicsitems/qdeclarativepathview_p.h	Mon Oct 04 01:19:32 2010 +0300
@@ -74,6 +74,9 @@
     Q_PROPERTY(qreal flickDeceleration READ flickDeceleration WRITE setFlickDeceleration NOTIFY flickDecelerationChanged)
     Q_PROPERTY(bool interactive READ isInteractive WRITE setInteractive NOTIFY interactiveChanged)
 
+    Q_PROPERTY(bool moving READ isMoving NOTIFY movingChanged)
+    Q_PROPERTY(bool flicking READ isFlicking NOTIFY flickingChanged)
+
     Q_PROPERTY(int count READ count NOTIFY countChanged)
     Q_PROPERTY(QDeclarativeComponent *delegate READ delegate WRITE setDelegate NOTIFY delegateChanged)
     Q_PROPERTY(int pathItemCount READ pathItemCount WRITE setPathItemCount NOTIFY pathItemCountChanged)
@@ -122,6 +125,9 @@
     bool isInteractive() const;
     void setInteractive(bool);
 
+    bool isMoving() const;
+    bool isFlicking() const;
+
     int count() const;
 
     QDeclarativeComponent *delegate() const;
@@ -151,9 +157,15 @@
     void pathItemCountChanged();
     void flickDecelerationChanged();
     void interactiveChanged();
+    void movingChanged();
+    void flickingChanged();
     void highlightChanged();
     void highlightItemChanged();
     void highlightMoveDurationChanged();
+    void movementStarted();
+    void movementEnded();
+    void flickStarted();
+    void flickEnded();
 
 protected:
     void mousePressEvent(QGraphicsSceneMouseEvent *event);
@@ -167,6 +179,7 @@
 private Q_SLOTS:
     void refill();
     void ticked();
+    void movementEnding();
     void itemsInserted(int index, int count);
     void itemsRemoved(int index, int count);
     void itemsMoved(int,int,int);
@@ -213,6 +226,7 @@
             emit pathChanged();
         }
     }
+    qreal m_percent;
 
 Q_SIGNALS:
     void currentItemChanged();
--- a/src/declarative/graphicsitems/qdeclarativepathview_p_p.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/graphicsitems/qdeclarativepathview_p_p.h	Mon Oct 04 01:19:32 2010 +0300
@@ -75,34 +75,29 @@
 public:
     QDeclarativePathViewPrivate()
       : path(0), currentIndex(0), currentItemOffset(0.0), startPc(0), lastDist(0)
-        , lastElapsed(0), mappedRange(1.0)
+        , lastElapsed(0), offset(0.0), offsetAdj(0.0), mappedRange(1.0)
         , stealMouse(false), ownModel(false), interactive(true), haveHighlightRange(true)
         , autoHighlight(true), highlightUp(false), layoutScheduled(false)
+        , moving(false), flicking(false)
         , dragMargin(0), deceleration(100)
-        , moveOffset(this, &QDeclarativePathViewPrivate::setOffset)
+        , moveOffset(this, &QDeclarativePathViewPrivate::setAdjustedOffset)
         , firstIndex(-1), pathItems(-1), requestedIndex(-1)
         , moveReason(Other), attType(0), highlightComponent(0), highlightItem(0)
         , moveHighlight(this, &QDeclarativePathViewPrivate::setHighlightPosition)
         , highlightPosition(0)
         , highlightRangeStart(0), highlightRangeEnd(0)
         , highlightRangeMode(QDeclarativePathView::StrictlyEnforceRange)
-        , highlightMoveDuration(300)
+        , highlightMoveDuration(300), modelCount(0)
     {
     }
 
-    void init() {
-        Q_Q(QDeclarativePathView);
-        offset = 0;
-        q->setAcceptedMouseButtons(Qt::LeftButton);
-        q->setFlag(QGraphicsItem::ItemIsFocusScope);
-        q->setFiltersChildEvents(true);
-        q->connect(&tl, SIGNAL(updated()), q, SLOT(ticked()));
-        lastPosTime.invalidate();
-    }
+    void init();
 
     void itemGeometryChanged(QDeclarativeItem *item, const QRectF &newGeometry, const QRectF &oldGeometry) {
         if ((newGeometry.size() != oldGeometry.size())
             && (!highlightItem || item != highlightItem)) {
+            if (QDeclarativePathViewAttached *att = attached(item))
+                att->m_percent = -1;
             scheduleLayout();
         }
     }
@@ -133,6 +128,7 @@
     static void fixOffsetCallback(void*);
     void fixOffset();
     void setOffset(qreal offset);
+    void setAdjustedOffset(qreal offset);
     void regenerate();
     void updateItem(QDeclarativeItem *, qreal);
     void snapToCurrent();
@@ -147,6 +143,7 @@
     qreal lastDist;
     int lastElapsed;
     qreal offset;
+    qreal offsetAdj;
     qreal mappedRange;
     bool stealMouse : 1;
     bool ownModel : 1;
@@ -155,6 +152,8 @@
     bool autoHighlight : 1;
     bool highlightUp : 1;
     bool layoutScheduled : 1;
+    bool moving : 1;
+    bool flicking : 1;
     QElapsedTimer lastPosTime;
     QPointF lastPos;
     qreal dragMargin;
@@ -165,6 +164,7 @@
     int pathItems;
     int requestedIndex;
     QList<QDeclarativeItem *> items;
+    QList<QDeclarativeItem *> itemCache;
     QDeclarativeGuard<QDeclarativeVisualModel> model;
     QVariant modelVariant;
     enum MovementReason { Other, SetIndex, Mouse };
@@ -178,6 +178,7 @@
     qreal highlightRangeEnd;
     QDeclarativePathView::HighlightRangeMode highlightRangeMode;
     int highlightMoveDuration;
+    int modelCount;
 };
 
 QT_END_NAMESPACE
--- a/src/declarative/graphicsitems/qdeclarativepositioners.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/graphicsitems/qdeclarativepositioners.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -61,16 +61,37 @@
     | QDeclarativeItemPrivate::Opacity
     | QDeclarativeItemPrivate::Destroyed;
 
-void QDeclarativeBasePositionerPrivate::watchChanges(QDeclarativeItem *other)
+void QDeclarativeBasePositionerPrivate::watchChanges(QGraphicsObject *other)
 {
-    QDeclarativeItemPrivate *otherPrivate = static_cast<QDeclarativeItemPrivate*>(QGraphicsItemPrivate::get(other));
-    otherPrivate->addItemChangeListener(this, watchedChanges);
+    if (QGraphicsItemPrivate::get(other)->isDeclarativeItem) {
+        QDeclarativeItemPrivate *otherPrivate = static_cast<QDeclarativeItemPrivate*>(QGraphicsItemPrivate::get(other));
+        otherPrivate->addItemChangeListener(this, watchedChanges);
+    } else {
+        Q_Q(QDeclarativeBasePositioner);
+        QObject::connect(other, SIGNAL(widthChanged()), q, SLOT(graphicsWidgetGeometryChanged()));
+        QObject::connect(other, SIGNAL(heightChanged()), q, SLOT(graphicsWidgetGeometryChanged()));
+        QObject::connect(other, SIGNAL(opacityChanged()), q, SLOT(graphicsWidgetGeometryChanged()));
+        QObject::connect(other, SIGNAL(visibleChanged()), q, SLOT(graphicsWidgetGeometryChanged()));
+    }
 }
 
-void QDeclarativeBasePositionerPrivate::unwatchChanges(QDeclarativeItem* other)
+void QDeclarativeBasePositionerPrivate::unwatchChanges(QGraphicsObject* other)
 {
-    QDeclarativeItemPrivate *otherPrivate = static_cast<QDeclarativeItemPrivate*>(QGraphicsItemPrivate::get(other));
-    otherPrivate->removeItemChangeListener(this, watchedChanges);
+    if (QGraphicsItemPrivate::get(other)->isDeclarativeItem) {
+        QDeclarativeItemPrivate *otherPrivate = static_cast<QDeclarativeItemPrivate*>(QGraphicsItemPrivate::get(other));
+        otherPrivate->removeItemChangeListener(this, watchedChanges);
+    } else {
+        Q_Q(QDeclarativeBasePositioner);
+        QObject::disconnect(other, SIGNAL(widthChanged()), q, SLOT(graphicsWidgetGeometryChanged()));
+        QObject::disconnect(other, SIGNAL(heightChanged()), q, SLOT(graphicsWidgetGeometryChanged()));
+        QObject::disconnect(other, SIGNAL(opacityChanged()), q, SLOT(graphicsWidgetGeometryChanged()));
+        QObject::disconnect(other, SIGNAL(visibleChanged()), q, SLOT(graphicsWidgetGeometryChanged()));
+    }
+}
+
+void QDeclarativeBasePositioner::graphicsWidgetGeometryChanged()
+{
+    prePositioning();
 }
 
 /*!
@@ -87,8 +108,7 @@
     You also need to set a PositionerType, to declare whether you are positioning the x, y or both
     for the child items. Depending on the chosen type, only x or y changes will be applied.
 
-    Note that the subclass is responsible for adding the
-    spacing in between items.
+    Note that the subclass is responsible for adding the spacing in between items.
 */
 QDeclarativeBasePositioner::QDeclarativeBasePositioner(PositionerType at, QDeclarativeItem *parent)
     : QDeclarativeItem(*(new QDeclarativeBasePositionerPrivate), parent)
@@ -174,16 +194,16 @@
     Q_D(QDeclarativeBasePositioner);
     if (change == ItemChildAddedChange){
         QGraphicsItem* item = value.value<QGraphicsItem*>();
-        QDeclarativeItem* child = 0;
+        QGraphicsObject* child = 0;
         if(item)
-            child = qobject_cast<QDeclarativeItem*>(item->toGraphicsObject());
+            child = item->toGraphicsObject();
         if (child)
             prePositioning();
     } else if (change == ItemChildRemovedChange) {
         QGraphicsItem* item = value.value<QGraphicsItem*>();
-        QDeclarativeItem* child = 0;
+        QGraphicsObject* child = 0;
         if(item)
-            child = qobject_cast<QDeclarativeItem*>(item->toGraphicsObject());
+            child = item->toGraphicsObject();
         if (child) {
             QDeclarativeBasePositioner::PositionedItem posItem(child);
             int idx = positionedItems.find(posItem);
@@ -194,7 +214,6 @@
             prePositioning();
         }
     }
-
     return QDeclarativeItem::itemChange(change, value);
 }
 
@@ -216,10 +235,10 @@
     QPODVector<PositionedItem,8> oldItems;
     positionedItems.copyAndClear(oldItems);
     for (int ii = 0; ii < children.count(); ++ii) {
-        QDeclarativeItem *child = qobject_cast<QDeclarativeItem *>(children.at(ii));
+        QGraphicsObject *child = children.at(ii)->toGraphicsObject();
         if (!child)
             continue;
-        QDeclarativeItemPrivate *childPrivate = static_cast<QDeclarativeItemPrivate*>(QGraphicsItemPrivate::get(child));
+        QGraphicsItemPrivate *childPrivate = static_cast<QGraphicsItemPrivate*>(QGraphicsItemPrivate::get(child));
         PositionedItem *item = 0;
         PositionedItem posItem(child);
         int wIdx = oldItems.find(posItem);
@@ -228,13 +247,13 @@
             positionedItems.append(posItem);
             item = &positionedItems[positionedItems.count()-1];
             item->isNew = true;
-            if (child->opacity() <= 0.0 || childPrivate->explicitlyHidden)
+            if (child->opacity() <= 0.0 || childPrivate->explicitlyHidden || !childPrivate->width() || !childPrivate->height())
                 item->isVisible = false;
         } else {
             item = &oldItems[wIdx];
             // Items are only omitted from positioning if they are explicitly hidden
             // i.e. their positioning is not affected if an ancestor is hidden.
-            if (child->opacity() <= 0.0 || childPrivate->explicitlyHidden) {
+            if (child->opacity() <= 0.0 || childPrivate->explicitlyHidden || !childPrivate->width() || !childPrivate->height()) {
                 item->isVisible = false;
             } else if (!item->isVisible) {
                 item->isVisible = true;
@@ -302,14 +321,9 @@
     d->moveActions.clear();
 }
 
-static inline bool isInvisible(QDeclarativeItem *child)
-{
-    QDeclarativeItemPrivate *childPrivate = static_cast<QDeclarativeItemPrivate*>(QGraphicsItemPrivate::get(child));
-    return child->opacity() == 0.0 || childPrivate->explicitlyHidden || !child->width() || !child->height();
-}
-
 /*!
   \qmlclass Column QDeclarativeColumn
+    \ingroup qml-positioning-elements
     \since 4.7
   \brief The Column item arranges its children vertically.
   \inherits Item
@@ -418,11 +432,6 @@
   \image spacing_b.png
 
 */
-/*!
-    \internal
-    \class QDeclarativeColumn
-    \brief The QDeclarativeColumn class lines up items vertically.
-*/
 QDeclarativeColumn::QDeclarativeColumn(QDeclarativeItem *parent)
 : QDeclarativeBasePositioner(Vertical, parent)
 {
@@ -434,15 +443,15 @@
 
     for (int ii = 0; ii < positionedItems.count(); ++ii) {
         const PositionedItem &child = positionedItems.at(ii);
-        if (!child.item || isInvisible(child.item))
+        if (!child.item || !child.isVisible)
             continue;
 
         if(child.item->y() != voffset)
             positionY(voffset, child);
 
-        contentSize->setWidth(qMax(contentSize->width(), child.item->width()));
+        contentSize->setWidth(qMax(contentSize->width(), QGraphicsItemPrivate::get(child.item)->width()));
 
-        voffset += child.item->height();
+        voffset += QGraphicsItemPrivate::get(child.item)->height();
         voffset += spacing();
     }
 
@@ -454,8 +463,8 @@
     QDeclarativeBasePositionerPrivate *d = static_cast<QDeclarativeBasePositionerPrivate*>(QDeclarativeBasePositionerPrivate::get(this));
     for (int ii = 0; ii < positionedItems.count(); ++ii) {
         const PositionedItem &child = positionedItems.at(ii);
-        if (child.item) {
-            QDeclarativeAnchors *anchors = QDeclarativeItemPrivate::get(child.item)->_anchors;
+        if (child.item && QGraphicsItemPrivate::get(child.item)->isDeclarativeItem) {
+            QDeclarativeAnchors *anchors = QDeclarativeItemPrivate::get(static_cast<QDeclarativeItem *>(child.item))->_anchors;
             if (anchors) {
                 QDeclarativeAnchors::Anchors usedAnchors = anchors->usedAnchors();
                 if (usedAnchors & QDeclarativeAnchors::TopAnchor ||
@@ -475,6 +484,7 @@
 
 /*!
   \qmlclass Row QDeclarativeRow
+    \ingroup qml-positioning-elements
   \since 4.7
   \brief The Row item arranges its children horizontally.
   \inherits Item
@@ -557,11 +567,6 @@
   \image spacing_b.png
 
 */
-/*!
-    \internal
-    \class QDeclarativeRow
-    \brief The QDeclarativeRow class lines up items horizontally.
-*/
 QDeclarativeRow::QDeclarativeRow(QDeclarativeItem *parent)
 : QDeclarativeBasePositioner(Horizontal, parent)
 {
@@ -573,15 +578,15 @@
 
     for (int ii = 0; ii < positionedItems.count(); ++ii) {
         const PositionedItem &child = positionedItems.at(ii);
-        if (!child.item || isInvisible(child.item))
+        if (!child.item || !child.isVisible)
             continue;
 
         if(child.item->x() != hoffset)
             positionX(hoffset, child);
 
-        contentSize->setHeight(qMax(contentSize->height(), child.item->height()));
+        contentSize->setHeight(qMax(contentSize->height(), QGraphicsItemPrivate::get(child.item)->height()));
 
-        hoffset += child.item->width();
+        hoffset += QGraphicsItemPrivate::get(child.item)->width();
         hoffset += spacing();
     }
 
@@ -593,8 +598,8 @@
     QDeclarativeBasePositionerPrivate *d = static_cast<QDeclarativeBasePositionerPrivate*>(QDeclarativeBasePositionerPrivate::get(this));
     for (int ii = 0; ii < positionedItems.count(); ++ii) {
         const PositionedItem &child = positionedItems.at(ii);
-        if (child.item) {
-            QDeclarativeAnchors *anchors = QDeclarativeItemPrivate::get(child.item)->_anchors;
+        if (child.item && QGraphicsItemPrivate::get(child.item)->isDeclarativeItem) {
+            QDeclarativeAnchors *anchors = QDeclarativeItemPrivate::get(static_cast<QDeclarativeItem *>(child.item))->_anchors;
             if (anchors) {
                 QDeclarativeAnchors::Anchors usedAnchors = anchors->usedAnchors();
                 if (usedAnchors & QDeclarativeAnchors::LeftAnchor ||
@@ -613,6 +618,7 @@
 
 /*!
   \qmlclass Grid QDeclarativeGrid
+    \ingroup qml-positioning-elements
   \since 4.7
   \brief The Grid item positions its children in a grid.
   \inherits Item
@@ -713,11 +719,6 @@
   \image spacing_b.png
 
 */
-/*!
-    \internal
-    \class QDeclarativeGrid
-    \brief The QDeclarativeGrid class lays out items in a grid.
-*/
 QDeclarativeGrid::QDeclarativeGrid(QDeclarativeItem *parent) :
     QDeclarativeBasePositioner(Both, parent), m_rows(-1), m_columns(-1), m_flow(LeftToRight)
 {
@@ -786,9 +787,17 @@
 
 void QDeclarativeGrid::doPositioning(QSizeF *contentSize)
 {
+
     int c = m_columns;
     int r = m_rows;
-    int numVisible = positionedItems.count();
+    //Is allocating the extra QPODVector too much overhead?
+    QPODVector<PositionedItem, 8> visibleItems;//we aren't concerned with invisible items
+    visibleItems.reserve(positionedItems.count());
+    for(int i=0; i<positionedItems.count(); i++)
+        if(positionedItems[i].item && positionedItems[i].isVisible)
+            visibleItems.append(positionedItems[i]);
+
+    int numVisible = visibleItems.count();
     if (m_columns <= 0 && m_rows <= 0){
         c = 4;
         r = (numVisible+3)/4;
@@ -809,15 +818,15 @@
                 if (i==0)
                     maxColWidth << 0;
 
-                if (childIndex == positionedItems.count())
-                    continue;
-                const PositionedItem &child = positionedItems.at(childIndex++);
-                if (!child.item || isInvisible(child.item))
-                    continue;
-                if (child.item->width() > maxColWidth[j])
-                    maxColWidth[j] = child.item->width();
-                if (child.item->height() > maxRowHeight[i])
-                    maxRowHeight[i] = child.item->height();
+                if (childIndex == visibleItems.count())
+                    break;
+
+                const PositionedItem &child = visibleItems.at(childIndex++);
+                QGraphicsItemPrivate *childPrivate = QGraphicsItemPrivate::get(child.item);
+                if (childPrivate->width() > maxColWidth[j])
+                    maxColWidth[j] = childPrivate->width();
+                if (childPrivate->height() > maxRowHeight[i])
+                    maxRowHeight[i] = childPrivate->height();
             }
         }
     } else {
@@ -829,14 +838,14 @@
                     maxColWidth << 0;
 
                 if (childIndex == positionedItems.count())
-                    continue;
-                const PositionedItem &child = positionedItems.at(childIndex++);
-                if (!child.item || isInvisible(child.item))
-                    continue;
-                if (child.item->width() > maxColWidth[j])
-                    maxColWidth[j] = child.item->width();
-                if (child.item->height() > maxRowHeight[i])
-                    maxRowHeight[i] = child.item->height();
+                    break;
+
+                const PositionedItem &child = visibleItems.at(childIndex++);
+                QGraphicsItemPrivate *childPrivate = QGraphicsItemPrivate::get(child.item);
+                if (childPrivate->width() > maxColWidth[j])
+                    maxColWidth[j] = childPrivate->width();
+                if (childPrivate->height() > maxRowHeight[i])
+                    maxRowHeight[i] = childPrivate->height();
             }
         }
     }
@@ -845,17 +854,15 @@
     int yoffset=0;
     int curRow =0;
     int curCol =0;
-    for (int i = 0; i < positionedItems.count(); ++i) {
-        const PositionedItem &child = positionedItems.at(i);
-        if (!child.item || isInvisible(child.item))
-            continue;
+    for (int i = 0; i < visibleItems.count(); ++i) {
+        const PositionedItem &child = visibleItems.at(i);
         if((child.item->x()!=xoffset)||(child.item->y()!=yoffset)){
             positionX(xoffset, child);
             positionY(yoffset, child);
         }
 
         if (m_flow == LeftToRight) {
-            contentSize->setWidth(qMax(contentSize->width(), xoffset + child.item->width()));
+            contentSize->setWidth(qMax(contentSize->width(), xoffset + QGraphicsItemPrivate::get(child.item)->width()));
             contentSize->setHeight(yoffset + maxRowHeight[curRow]);
 
             xoffset+=maxColWidth[curCol]+spacing();
@@ -869,7 +876,7 @@
                     break;
             }
         } else {
-            contentSize->setHeight(qMax(contentSize->height(), yoffset + child.item->height()));
+            contentSize->setHeight(qMax(contentSize->height(), yoffset + QGraphicsItemPrivate::get(child.item)->height()));
             contentSize->setWidth(xoffset + maxColWidth[curCol]);
 
             yoffset+=maxRowHeight[curRow]+spacing();
@@ -891,8 +898,8 @@
     QDeclarativeBasePositionerPrivate *d = static_cast<QDeclarativeBasePositionerPrivate*>(QDeclarativeBasePositionerPrivate::get(this));
     for (int ii = 0; ii < positionedItems.count(); ++ii) {
         const PositionedItem &child = positionedItems.at(ii);
-        if (child.item) {
-            QDeclarativeAnchors *anchors = QDeclarativeItemPrivate::get(child.item)->_anchors;
+        if (child.item && QGraphicsItemPrivate::get(child.item)->isDeclarativeItem) {
+            QDeclarativeAnchors *anchors = QDeclarativeItemPrivate::get(static_cast<QDeclarativeItem *>(child.item))->_anchors;
             if (anchors && (anchors->usedAnchors() || anchors->fill() || anchors->centerIn())) {
                 d->anchorConflict = true;
                 break;
@@ -905,6 +912,7 @@
 
 /*!
   \qmlclass Flow QDeclarativeFlow
+    \ingroup qml-positioning-elements
   \since 4.7
   \brief The Flow item arranges its children side by side, wrapping as necessary.
   \inherits Item
@@ -1023,17 +1031,18 @@
 
     for (int i = 0; i < positionedItems.count(); ++i) {
         const PositionedItem &child = positionedItems.at(i);
-        if (!child.item || isInvisible(child.item))
+        if (!child.item || !child.isVisible)
             continue;
 
+        QGraphicsItemPrivate *childPrivate = QGraphicsItemPrivate::get(child.item);
         if (d->flow == LeftToRight)  {
-            if (widthValid() && hoffset && hoffset + child.item->width() > width()) {
+            if (widthValid() && hoffset && hoffset + childPrivate->width() > width()) {
                 hoffset = 0;
                 voffset += linemax + spacing();
                 linemax = 0;
             }
         } else {
-            if (heightValid() && voffset && voffset + child.item->height() > height()) {
+            if (heightValid() && voffset && voffset + childPrivate->height() > height()) {
                 voffset = 0;
                 hoffset += linemax + spacing();
                 linemax = 0;
@@ -1045,17 +1054,17 @@
             positionY(voffset, child);
         }
 
-        contentSize->setWidth(qMax(contentSize->width(), hoffset + child.item->width()));
-        contentSize->setHeight(qMax(contentSize->height(), voffset + child.item->height()));
+        contentSize->setWidth(qMax(contentSize->width(), hoffset + childPrivate->width()));
+        contentSize->setHeight(qMax(contentSize->height(), voffset + childPrivate->height()));
 
         if (d->flow == LeftToRight)  {
-            hoffset += child.item->width();
+            hoffset += childPrivate->width();
             hoffset += spacing();
-            linemax = qMax(linemax, qCeil(child.item->height()));
+            linemax = qMax(linemax, qCeil(childPrivate->height()));
         } else {
-            voffset += child.item->height();
+            voffset += childPrivate->height();
             voffset += spacing();
-            linemax = qMax(linemax, qCeil(child.item->width()));
+            linemax = qMax(linemax, qCeil(childPrivate->width()));
         }
     }
 }
@@ -1065,8 +1074,8 @@
     Q_D(QDeclarativeFlow);
     for (int ii = 0; ii < positionedItems.count(); ++ii) {
         const PositionedItem &child = positionedItems.at(ii);
-        if (child.item) {
-            QDeclarativeAnchors *anchors = QDeclarativeItemPrivate::get(child.item)->_anchors;
+        if (child.item && QGraphicsItemPrivate::get(child.item)->isDeclarativeItem) {
+            QDeclarativeAnchors *anchors = QDeclarativeItemPrivate::get(static_cast<QDeclarativeItem *>(child.item))->_anchors;
             if (anchors && (anchors->usedAnchors() || anchors->fill() || anchors->centerIn())) {
                 d->anchorConflict = true;
                 break;
--- a/src/declarative/graphicsitems/qdeclarativepositioners_p.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/graphicsitems/qdeclarativepositioners_p.h	Mon Oct 04 01:19:32 2010 +0300
@@ -91,14 +91,16 @@
 
 protected Q_SLOTS:
     void prePositioning();
+    void graphicsWidgetGeometryChanged();
 
 protected:
     virtual void doPositioning(QSizeF *contentSize)=0;
     virtual void reportConflictingAnchors()=0;
-    struct PositionedItem {
-        PositionedItem(QDeclarativeItem *i) : item(i), isNew(false), isVisible(true) {}
+    class PositionedItem {
+    public :
+        PositionedItem(QGraphicsObject *i) : item(i), isNew(false), isVisible(true) {}
         bool operator==(const PositionedItem &other) const { return other.item == item; }
-        QDeclarativeItem *item;
+        QGraphicsObject *item;
         bool isNew;
         bool isVisible;
     };
--- a/src/declarative/graphicsitems/qdeclarativepositioners_p_p.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/graphicsitems/qdeclarativepositioners_p_p.h	Mon Oct 04 01:19:32 2010 +0300
@@ -94,8 +94,8 @@
     QDeclarativeTransitionManager addTransitionManager;
     QDeclarativeTransitionManager moveTransitionManager;
 
-    void watchChanges(QDeclarativeItem *other);
-    void unwatchChanges(QDeclarativeItem* other);
+    void watchChanges(QGraphicsObject *other);
+    void unwatchChanges(QGraphicsObject* other);
     bool queuedPositioning : 1;
     bool doingPositioning : 1;
     bool anchorConflict : 1;
@@ -123,6 +123,7 @@
         if (newGeometry.size() != oldGeometry.size())
             q->prePositioning();
     }
+
     virtual void itemVisibilityChanged(QDeclarativeItem *)
     {
         schedulePositioning();
--- a/src/declarative/graphicsitems/qdeclarativerectangle.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/graphicsitems/qdeclarativerectangle.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -84,6 +84,7 @@
 
 /*!
     \qmlclass GradientStop QDeclarativeGradientStop
+    \ingroup qml-basic-visual-elements
   \since 4.7
     \brief The GradientStop item defines the color at a position in a Gradient
 
@@ -105,6 +106,7 @@
 
 /*!
     \qmlclass Gradient QDeclarativeGradient
+    \ingroup qml-basic-visual-elements
   \since 4.7
     \brief The Gradient item defines a gradient fill.
 
@@ -152,6 +154,7 @@
 
 /*!
     \qmlclass Rectangle QDeclarativeRectangle
+    \ingroup qml-basic-visual-elements
   \since 4.7
     \brief The Rectangle item allows you to add rectangles to a scene.
     \inherits Item
@@ -177,11 +180,6 @@
 
 int QDeclarativeRectanglePrivate::doUpdateSlotIdx = -1;
 
-/*!
-    \internal
-    \class QDeclarativeRectangle
-    \brief The QDeclarativeRectangle class provides a rectangle item that you can add to a QDeclarativeView.
-*/
 QDeclarativeRectangle::QDeclarativeRectangle(QDeclarativeItem *parent)
   : QDeclarativeItem(*(new QDeclarativeRectanglePrivate), parent)
 {
--- a/src/declarative/graphicsitems/qdeclarativerepeater.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/graphicsitems/qdeclarativerepeater.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -62,6 +62,7 @@
 
 /*!
     \qmlclass Repeater QDeclarativeRepeater
+    \ingroup qml-utility-elements
     \since 4.7
     \inherits Item
 
@@ -133,35 +134,23 @@
     create items as they are required.
 
     Also, note that Repeater is \l {Item}-based, and can only repeat \l {Item}-derived objects. 
-    For example, it cannot be used to repeat QtObjects:
+    For example, it cannot be used to repeat QObjects:
     \badcode
     Item {
-        //XXX does not work! Can't repeat QtObject as it doesn't derive from Item.
+        //XXX does not work! Can't repeat QObject as it doesn't derive from Item.
         Repeater {
             model: 10
-            QtObject {}
+            QObject {}
         }
     }
     \endcode
  */
 
-/*!
-    \internal
-    \class QDeclarativeRepeater
- */
-
-/*!
-    Create a new QDeclarativeRepeater instance.
- */
 QDeclarativeRepeater::QDeclarativeRepeater(QDeclarativeItem *parent)
   : QDeclarativeItem(*(new QDeclarativeRepeaterPrivate), parent)
 {
 }
 
-/*!
-    Destroy the repeater instance.  All items it instantiated are also
-    destroyed.
- */
 QDeclarativeRepeater::~QDeclarativeRepeater()
 {
 }
@@ -245,8 +234,8 @@
         connect(d->model, SIGNAL(destroyingItem(QDeclarativeItem*)), this, SLOT(destroyingItem(QDeclarativeItem*)));
         */
         regenerate();
-        emit countChanged();
     }
+    emit countChanged();
 }
 
 /*!
@@ -300,18 +289,12 @@
 }
 
 
-/*!
-    \internal
- */
 void QDeclarativeRepeater::componentComplete()
 {
     QDeclarativeItem::componentComplete();
     regenerate();
 }
 
-/*!
-    \internal
- */
 QVariant QDeclarativeRepeater::itemChange(GraphicsItemChange change,
                                        const QVariant &value)
 {
@@ -334,9 +317,6 @@
     d->deletables.clear();
 }
 
-/*!
-    \internal
- */
 void QDeclarativeRepeater::regenerate()
 {
     Q_D(QDeclarativeRepeater);
@@ -377,6 +357,7 @@
             d->deletables.insert(modelIndex, item);
         }
     }
+    emit countChanged();
 }
 
 void QDeclarativeRepeater::itemsRemoved(int index, int count)
@@ -391,6 +372,7 @@
         else
             break;
     }
+    emit countChanged();
 }
 
 void QDeclarativeRepeater::itemsMoved(int from, int to, int count)
@@ -420,6 +402,7 @@
     if (!isComponentComplete())
         return;
     regenerate();
+    emit countChanged();
 }
 
 QT_END_NAMESPACE
--- a/src/declarative/graphicsitems/qdeclarativetext.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/graphicsitems/qdeclarativetext.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -162,7 +162,8 @@
 
 /*!
     \qmlclass Text QDeclarativeText
-  \since 4.7
+    \ingroup qml-basic-visual-elements
+    \since 4.7
     \brief The Text item allows you to add formatted text to a scene.
     \inherits Item
 
@@ -189,32 +190,6 @@
 
     \sa {declarative/text/fonts}{Fonts example}
 */
-
-/*!
-    \internal
-    \class QDeclarativeText
-    \qmlclass Text
-
-    \brief The QDeclarativeText class provides a formatted text item that you can add to a QDeclarativeView.
-
-    Text was designed for read-only text; it does not allow for any text editing.
-    It can display both plain and rich text. For example:
-
-    \qml
-    Text { text: "Hello World!"; font.family: "Helvetica"; font.pointSize: 24; color: "red" }
-    Text { text: "<b>Hello</b> <i>World!</i>" }
-    \endqml
-
-    \image text.png
-
-    If height and width are not explicitly set, Text will attempt to determine how
-    much room is needed and set it accordingly. Unless \c wrapMode is set, it will always
-    prefer width to height (all text will be placed on a single line).
-
-    The \c elide property can alternatively be used to fit a line of plain text to a set width.
-
-    A QDeclarativeText object can be instantiated in QML using the tag \c Text.
-*/
 QDeclarativeText::QDeclarativeText(QDeclarativeItem *parent)
   : QDeclarativeItem(*(new QDeclarativeTextPrivate), parent)
 {
@@ -1046,10 +1021,10 @@
 
     QAbstractTextDocumentLayout::PaintContext context;
 
+    QTextOption oldOption(doc->defaultTextOption());
     if (drawStyle) {
         context.palette.setColor(QPalette::Text, styleColor);
-        // ### Do we really want this?
-        QTextOption colorOption;
+        QTextOption colorOption(doc->defaultTextOption());
         colorOption.setFlags(QTextOption::SuppressColors);
         doc->setDefaultTextOption(colorOption);
     } else {
@@ -1057,7 +1032,7 @@
     }
     doc->documentLayout()->draw(&p, context);
     if (drawStyle)
-        doc->setDefaultTextOption(QTextOption());
+        doc->setDefaultTextOption(oldOption);
     return img;
 }
 
@@ -1217,7 +1192,7 @@
 
     if (!d->richText || !d->doc || d->doc->documentLayout()->anchorAt(event->pos()).isEmpty()) {
         event->setAccepted(false);
-        d->activeLink = QString();
+        d->activeLink.clear();
     } else {
         d->activeLink = d->doc->documentLayout()->anchorAt(event->pos());
     }
--- a/src/declarative/graphicsitems/qdeclarativetextedit.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/graphicsitems/qdeclarativetextedit.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -61,6 +61,7 @@
 
 /*!
     \qmlclass TextEdit QDeclarativeTextEdit
+    \ingroup qml-basic-visual-elements
     \since 4.7
     \brief The TextEdit item displays multiple lines of editable formatted text.
     \inherits Item
@@ -102,23 +103,6 @@
     \sa Text, TextInput, {declarative/text/textselection}{Text Selection example}
 */
 
-/*!
-    \internal
-    \class QDeclarativeTextEdit
-    \qmlclass TextEdit
-
-    \brief The QDeclarativeTextEdit class provides an editable formatted text item that you can add to a QDeclarativeView.
-
-    It can display both plain and rich text.
-
-    \image declarative-textedit.png
-
-    A QDeclarativeTextEdit object can be instantiated in QML using the tag \c &lt;TextEdit&gt;.
-*/
-
-/*!
-    Constructs a new QDeclarativeTextEdit.
-*/
 QDeclarativeTextEdit::QDeclarativeTextEdit(QDeclarativeItem *parent)
 : QDeclarativePaintedItem(*(new QDeclarativeTextEditPrivate), parent)
 {
--- a/src/declarative/graphicsitems/qdeclarativetextinput.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/graphicsitems/qdeclarativetextinput.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -51,10 +51,13 @@
 #include <QFontMetrics>
 #include <QPainter>
 
+#ifndef QT_NO_LINEEDIT
+
 QT_BEGIN_NAMESPACE
 
 /*!
     \qmlclass TextInput QDeclarativeTextInput
+    \ingroup qml-basic-visual-elements
     \since 4.7
     \brief The TextInput item displays an editable line of text.
     \inherits Item
@@ -274,8 +277,10 @@
     QPalette p = d->control->palette();
     p.setColor(QPalette::Highlight, d->selectionColor);
     d->control->setPalette(p);
-    clearCache();
-    update();
+    if (d->control->hasSelectedText()) {
+        clearCache();
+        update();
+    }
     emit selectionColorChanged(color);
 }
 
@@ -300,8 +305,10 @@
     QPalette p = d->control->palette();
     p.setColor(QPalette::HighlightedText, d->selectedTextColor);
     d->control->setPalette(p);
-    clearCache();
-    update();
+    if (d->control->hasSelectedText()) {
+        clearCache();
+        update();
+    }
     emit selectedTextColorChanged(color);
 }
 
@@ -430,8 +437,6 @@
 }
 
 /*!
-  \internal
-
   Returns a Rect which encompasses the cursor, but which may be larger than is
   required. Ignores custom cursor delegates.
 */
@@ -559,6 +564,7 @@
 
 /*!
     \qmlclass IntValidator QIntValidator
+    \ingroup qml-basic-visual-elements
 
     This element provides a validator for integer values.
 */
@@ -577,6 +583,7 @@
 
 /*!
     \qmlclass DoubleValidator QDoubleValidator
+    \ingroup qml-basic-visual-elements
 
     This element provides a validator for non-integer numbers.
 */
@@ -615,6 +622,7 @@
 
 /*!
     \qmlclass RegExpValidator QRegExpValidator
+    \ingroup qml-basic-visual-elements
 
     This element provides a validator, which counts as valid any string which
     matches a specified regular expression.
@@ -1227,8 +1235,12 @@
     Q_D(QDeclarativeTextInput);
     if(str.length() < 1)
         return;
+    d->control->setPasswordCharacter(str.constData()[0]);
+    EchoMode echoMode_ = echoMode();
+    if (echoMode_ == Password || echoMode_ == PasswordEchoOnEdit) {
+        updateSize();
+    }
     emit passwordCharacterChanged();
-    d->control->setPasswordCharacter(str.constData()[0]);
 }
 
 /*!
@@ -1537,3 +1549,5 @@
 
 QT_END_NAMESPACE
 
+#endif // QT_NO_LINEEDIT
+
--- a/src/declarative/graphicsitems/qdeclarativetextinput_p.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/graphicsitems/qdeclarativetextinput_p.h	Mon Oct 04 01:19:32 2010 +0300
@@ -48,6 +48,8 @@
 #include <QGraphicsSceneMouseEvent>
 #include <QIntValidator>
 
+#ifndef QT_NO_LINEEDIT
+
 QT_BEGIN_HEADER
 
 QT_BEGIN_NAMESPACE
@@ -263,4 +265,6 @@
 
 QT_END_HEADER
 
+#endif // QT_NO_LINEEDIT
+
 #endif // QDECLARATIVETEXTINPUT_H
--- a/src/declarative/graphicsitems/qdeclarativetextinput_p_p.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/graphicsitems/qdeclarativetextinput_p_p.h	Mon Oct 04 01:19:32 2010 +0300
@@ -62,6 +62,8 @@
 //
 // We mean it.
 
+#ifndef QT_NO_LINEEDIT
+
 QT_BEGIN_NAMESPACE
 
 class QDeclarativeTextInputPrivate : public QDeclarativePaintedItemPrivate
@@ -132,5 +134,7 @@
 
 QT_END_NAMESPACE
 
+#endif // QT_NO_LINEEDIT
+
 #endif
 
--- a/src/declarative/graphicsitems/qdeclarativetranslate.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/graphicsitems/qdeclarativetranslate.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -90,7 +90,7 @@
         return;
     d->x = x;
     update();
-    emit positionChanged();
+    emit xChanged();
 }
 
 /*!
@@ -113,24 +113,13 @@
         return;
     d->y = y;
     update();
-    emit positionChanged();
+    emit yChanged();
 }
 
-/*!
-    \internal
-*/
 void QDeclarativeTranslate::applyTo(QMatrix4x4 *matrix) const
 {
     Q_D(const QDeclarativeTranslate);
     matrix->translate(d->x, d->y, 0);
 }
 
-/*!
-    \fn QDeclarativeTranslate::positionChanged()
-
-    QDeclarativeTranslate emits this signal when its position changes.
-
-    \sa QDeclarativeTranslate::x, QDeclarativeTranslate::y
-*/
-
 QT_END_NAMESPACE
--- a/src/declarative/graphicsitems/qdeclarativetranslate_p.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/graphicsitems/qdeclarativetranslate_p.h	Mon Oct 04 01:19:32 2010 +0300
@@ -56,8 +56,8 @@
 {
     Q_OBJECT
 
-    Q_PROPERTY(qreal x READ x WRITE setX NOTIFY positionChanged)
-    Q_PROPERTY(qreal y READ y WRITE setY NOTIFY positionChanged)
+    Q_PROPERTY(qreal x READ x WRITE setX NOTIFY xChanged)
+    Q_PROPERTY(qreal y READ y WRITE setY NOTIFY yChanged)
 
 public:
     QDeclarativeTranslate(QObject *parent = 0);
@@ -72,7 +72,8 @@
     void applyTo(QMatrix4x4 *matrix) const;
 
 Q_SIGNALS:
-    void positionChanged();
+    void xChanged();
+    void yChanged();
 
 private:
     Q_DECLARE_PRIVATE(QDeclarativeTranslate)
--- a/src/declarative/graphicsitems/qdeclarativevisualitemmodel.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/graphicsitems/qdeclarativevisualitemmodel.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -78,7 +78,7 @@
 
     static void children_append(QDeclarativeListProperty<QDeclarativeItem> *prop, QDeclarativeItem *item) {
         QDeclarative_setParent_noEvent(item, prop->object);
-        static_cast<QDeclarativeVisualItemModelPrivate *>(prop->data)->children.append(item);
+        static_cast<QDeclarativeVisualItemModelPrivate *>(prop->data)->children.append(Item(item));
         static_cast<QDeclarativeVisualItemModelPrivate *>(prop->data)->itemAppended();
         static_cast<QDeclarativeVisualItemModelPrivate *>(prop->data)->emitChildrenChanged();
     }
@@ -88,12 +88,12 @@
     }
 
     static QDeclarativeItem *children_at(QDeclarativeListProperty<QDeclarativeItem> *prop, int index) {
-        return static_cast<QDeclarativeVisualItemModelPrivate *>(prop->data)->children.at(index);
+        return static_cast<QDeclarativeVisualItemModelPrivate *>(prop->data)->children.at(index).item;
     }
 
     void itemAppended() {
         Q_Q(QDeclarativeVisualItemModel);
-        QDeclarativeVisualItemModelAttached *attached = QDeclarativeVisualItemModelAttached::properties(children.last());
+        QDeclarativeVisualItemModelAttached *attached = QDeclarativeVisualItemModelAttached::properties(children.last().item);
         attached->setIndex(children.count()-1);
         emit q->itemsInserted(children.count()-1, 1);
         emit q->countChanged();
@@ -104,12 +104,31 @@
         emit q->childrenChanged();
     }
 
-    QList<QDeclarativeItem *> children;
+    int indexOf(QDeclarativeItem *item) const {
+        for (int i = 0; i < children.count(); ++i)
+            if (children.at(i).item == item)
+                return i;
+        return -1;
+    }
+
+    class Item {
+    public:
+        Item(QDeclarativeItem *i) : item(i), ref(0) {}
+
+        void addRef() { ++ref; }
+        bool deref() { return --ref == 0; }
+
+        QDeclarativeItem *item;
+        int ref;
+    };
+
+    QList<Item> children;
 };
 
 
 /*!
     \qmlclass VisualItemModel QDeclarativeVisualItemModel
+    \ingroup qml-working-with-data
   \since 4.7
     \brief The VisualItemModel allows items to be provided to a view.
 
@@ -182,14 +201,22 @@
 QDeclarativeItem *QDeclarativeVisualItemModel::item(int index, bool)
 {
     Q_D(QDeclarativeVisualItemModel);
-    return d->children.at(index);
+    QDeclarativeVisualItemModelPrivate::Item &item = d->children[index];
+    item.addRef();
+    return item.item;
 }
 
 QDeclarativeVisualModel::ReleaseFlags QDeclarativeVisualItemModel::release(QDeclarativeItem *item)
 {
-    if (item->scene())
-        item->scene()->removeItem(item);
-    QDeclarative_setParent_noEvent(item, this);
+    Q_D(QDeclarativeVisualItemModel);
+    int idx = d->indexOf(item);
+    if (idx >= 0) {
+        if (d->children[idx].deref()) {
+            if (item->scene())
+                item->scene()->removeItem(item);
+            QDeclarative_setParent_noEvent(item, this);
+        }
+    }
     return 0;
 }
 
@@ -208,27 +235,13 @@
     Q_D(QDeclarativeVisualItemModel);
     if (index < 0 || index >= d->children.count())
         return QString();
-    return QDeclarativeEngine::contextForObject(d->children.at(index))->contextProperty(name).toString();
-}
-
-QVariant QDeclarativeVisualItemModel::evaluate(int index, const QString &expression, QObject *objectContext)
-{
-    Q_D(QDeclarativeVisualItemModel);
-    if (index < 0 || index >= d->children.count())
-        return QVariant();
-    QDeclarativeContext *ccontext = qmlContext(this);
-    QDeclarativeContext *ctxt = new QDeclarativeContext(ccontext);
-    ctxt->setContextObject(d->children.at(index));
-    QDeclarativeExpression e(ctxt, objectContext, expression);
-    QVariant value = e.evaluate();
-    delete ctxt;
-    return value;
+    return QDeclarativeEngine::contextForObject(d->children.at(index).item)->contextProperty(name).toString();
 }
 
 int QDeclarativeVisualItemModel::indexOf(QDeclarativeItem *item, QObject *) const
 {
     Q_D(const QDeclarativeVisualItemModel);
-    return d->children.indexOf(item);
+    return d->indexOf(item);
 }
 
 QDeclarativeVisualItemModelAttached *QDeclarativeVisualItemModel::qmlAttachedProperties(QObject *obj)
@@ -418,6 +431,9 @@
 
     int propForRole(int) const;
     void setValue(int, const QVariant &);
+    bool hasValue(int id) const {
+        return m_meta->hasValue(id);
+    }
 
     void ensureProperties();
 
@@ -496,7 +512,7 @@
             QVariant value = model->m_listModelInterface->data(data->m_index, *it);
             return value;
         } else if (model->m_roles.count() == 1 && propName == "modelData") {
-            //for compatability with other lists, assign modelData if there is only a single role
+            //for compatibility with other lists, assign modelData if there is only a single role
             QVariant value = model->m_listModelInterface->data(data->m_index, model->m_roles.first());
             return value;
         }
@@ -615,6 +631,7 @@
 
 /*!
     \qmlclass VisualDataModel QDeclarativeVisualDataModel
+    \ingroup qml-working-with-data
     \brief The VisualDataModel encapsulates a model and delegate
 
     A VisualDataModel encapsulates a model and the delegate that will
@@ -697,6 +714,8 @@
         QObject::disconnect(d->m_abstractItemModel, SIGNAL(rowsMoved(const QModelIndex&,int,int,const QModelIndex&,int)),
                             this, SLOT(_q_rowsMoved(const QModelIndex&,int,int,const QModelIndex&,int)));
         QObject::disconnect(d->m_abstractItemModel, SIGNAL(modelReset()), this, SLOT(_q_modelReset()));
+        QObject::disconnect(d->m_abstractItemModel, SIGNAL(layoutChanged()), this, SLOT(_q_layoutChanged()));
+        d->m_abstractItemModel = 0;
     } else if (d->m_visualItemModel) {
         QObject::disconnect(d->m_visualItemModel, SIGNAL(itemsInserted(int,int)),
                          this, SIGNAL(itemsInserted(int,int)));
@@ -743,6 +762,7 @@
         QObject::connect(d->m_abstractItemModel, SIGNAL(rowsMoved(const QModelIndex&,int,int,const QModelIndex&,int)),
                             this, SLOT(_q_rowsMoved(const QModelIndex&,int,int,const QModelIndex&,int)));
         QObject::connect(d->m_abstractItemModel, SIGNAL(modelReset()), this, SLOT(_q_modelReset()));
+        QObject::connect(d->m_abstractItemModel, SIGNAL(layoutChanged()), this, SLOT(_q_layoutChanged()));
         d->m_metaDataCacheable = true;
         return;
     }
@@ -948,7 +968,7 @@
         Q_ASSERT(p->declarativeData);
         QDeclarativeData *d = static_cast<QDeclarativeData*>(p->declarativeData);
         if (d->ownContext && d->context)
-            d->context->clearExpressions();
+            d->context->clearContext();
 
         if (inPackage) {
             emit destroyingPackage(qobject_cast<QDeclarativePackage*>(obj));
@@ -1136,38 +1156,6 @@
     return val;
 }
 
-QVariant QDeclarativeVisualDataModel::evaluate(int index, const QString &expression, QObject *objectContext)
-{
-    Q_D(QDeclarativeVisualDataModel);
-    if (d->m_visualItemModel)
-        return d->m_visualItemModel->evaluate(index, expression, objectContext);
-
-    if ((!d->m_listModelInterface && !d->m_abstractItemModel) || !d->m_delegate)
-        return QVariant();
-
-    QVariant value;
-    QObject *nobj = d->m_cache.item(index);
-    if (nobj) {
-        QDeclarativeItem *item = qobject_cast<QDeclarativeItem *>(nobj);
-        if (item) {
-            QDeclarativeExpression e(qmlContext(item), objectContext, expression);
-            value = e.evaluate();
-        }
-    } else {
-        QDeclarativeContext *ccontext = d->m_context;
-        if (!ccontext) ccontext = qmlContext(this);
-        QDeclarativeContext *ctxt = new QDeclarativeContext(ccontext);
-        QDeclarativeVisualDataModelData *data = new QDeclarativeVisualDataModelData(index, this);
-        ctxt->setContextObject(data);
-        QDeclarativeExpression e(ctxt, objectContext, expression);
-        value = e.evaluate();
-        delete data;
-        delete ctxt;
-    }
-
-    return value;
-}
-
 int QDeclarativeVisualDataModel::indexOf(QDeclarativeItem *item, QObject *) const
 {
     QVariant val = QDeclarativeEngine::contextForObject(item)->contextProperty(QLatin1String("index"));
@@ -1190,11 +1178,13 @@
                 int role = roles.at(roleIdx);
                 int propId = data->propForRole(role);
                 if (propId != -1) {
-                    if (d->m_listModelInterface) {
-                        data->setValue(propId, d->m_listModelInterface->data(idx, QList<int>() << role).value(role));
-                    } else if (d->m_abstractItemModel) {
-                        QModelIndex index = d->m_abstractItemModel->index(idx, 0, d->m_root);
-                        data->setValue(propId, d->m_abstractItemModel->data(index, role));
+                    if (data->hasValue(propId)) {
+                        if (d->m_listModelInterface) {
+                            data->setValue(propId, d->m_listModelInterface->data(idx, QList<int>() << role).value(role));
+                        } else if (d->m_abstractItemModel) {
+                            QModelIndex index = d->m_abstractItemModel->index(idx, 0, d->m_root);
+                            data->setValue(propId, d->m_abstractItemModel->data(index, role));
+                        }
                     }
                 } else {
                     QString roleName;
@@ -1315,24 +1305,27 @@
 
 void QDeclarativeVisualDataModel::_q_rowsInserted(const QModelIndex &parent, int begin, int end)
 {
-    if (!parent.isValid())
+    Q_D(QDeclarativeVisualDataModel);
+    if (parent == d->m_root)
         _q_itemsInserted(begin, end - begin + 1);
 }
 
 void QDeclarativeVisualDataModel::_q_rowsRemoved(const QModelIndex &parent, int begin, int end)
 {
-    if (!parent.isValid())
+    Q_D(QDeclarativeVisualDataModel);
+    if (parent == d->m_root)
         _q_itemsRemoved(begin, end - begin + 1);
 }
 
 void QDeclarativeVisualDataModel::_q_rowsMoved(const QModelIndex &sourceParent, int sourceStart, int sourceEnd, const QModelIndex &destinationParent, int destinationRow)
 {
+    Q_D(QDeclarativeVisualDataModel);
     const int count = sourceEnd - sourceStart + 1;
-    if (!destinationParent.isValid() && !sourceParent.isValid()) {
+    if (destinationParent == d->m_root && sourceParent == d->m_root) {
         _q_itemsMoved(sourceStart, destinationRow, count);
-    } else if (!sourceParent.isValid()) {
+    } else if (sourceParent == d->m_root) {
         _q_itemsRemoved(sourceStart, count);
-    } else if (!destinationParent.isValid()) {
+    } else if (destinationParent == d->m_root) {
         _q_itemsInserted(destinationRow, count);
     }
 }
@@ -1340,10 +1333,16 @@
 void QDeclarativeVisualDataModel::_q_dataChanged(const QModelIndex &begin, const QModelIndex &end)
 {
     Q_D(QDeclarativeVisualDataModel);
-    if (!begin.parent().isValid())
+    if (begin.parent() == d->m_root)
         _q_itemsChanged(begin.row(), end.row() - begin.row() + 1, d->m_roles);
 }
 
+void QDeclarativeVisualDataModel::_q_layoutChanged()
+{
+    Q_D(QDeclarativeVisualDataModel);
+    _q_itemsChanged(0, count(), d->m_roles);
+}
+
 void QDeclarativeVisualDataModel::_q_modelReset()
 {
     emit modelReset();
--- a/src/declarative/graphicsitems/qdeclarativevisualitemmodel_p.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/graphicsitems/qdeclarativevisualitemmodel_p.h	Mon Oct 04 01:19:32 2010 +0300
@@ -79,7 +79,6 @@
     virtual ReleaseFlags release(QDeclarativeItem *item) = 0;
     virtual bool completePending() const = 0;
     virtual void completeItem() = 0;
-    virtual QVariant evaluate(int index, const QString &expression, QObject *objectContext) = 0;
     virtual QString stringValue(int, const QString &) { return QString(); }
 
     virtual int indexOf(QDeclarativeItem *item, QObject *objectContext) const = 0;
@@ -122,7 +121,6 @@
     virtual bool completePending() const;
     virtual void completeItem();
     virtual QString stringValue(int index, const QString &role);
-    virtual QVariant evaluate(int index, const QString &expression, QObject *objectContext);
 
     virtual int indexOf(QDeclarativeItem *item, QObject *objectContext) const;
 
@@ -177,7 +175,6 @@
     bool completePending() const;
     void completeItem();
     virtual QString stringValue(int index, const QString &role);
-    QVariant evaluate(int index, const QString &expression, QObject *objectContext);
 
     int indexOf(QDeclarativeItem *item, QObject *objectContext) const;
 
@@ -197,6 +194,7 @@
     void _q_rowsRemoved(const QModelIndex &,int,int);
     void _q_rowsMoved(const QModelIndex &, int, int, const QModelIndex &, int);
     void _q_dataChanged(const QModelIndex&,const QModelIndex&);
+    void _q_layoutChanged();
     void _q_modelReset();
     void _q_createdPackage(int index, QDeclarativePackage *package);
     void _q_destroyingPackage(QDeclarativePackage *package);
--- a/src/declarative/qml/parser/qdeclarativejslexer.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/qml/parser/qdeclarativejslexer.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -120,7 +120,7 @@
 
 void Lexer::setCode(const QString &c, int lineno)
 {
-    errmsg = QString();
+    errmsg.clear();
     yylineno = lineno;
     yycolumn = 1;
     restrKeyword = false;
@@ -677,9 +677,9 @@
                     setDone(Other);
                 } else
                     state = Start;
-                if (driver) driver->addComment(startpos, tokenLength(), startlineno, startcolumn);
+                if (driver) driver->addComment(startpos+2, tokenLength()-2, startlineno, startcolumn+2);
             } else if (current == 0) {
-                if (driver) driver->addComment(startpos, tokenLength(), startlineno, startcolumn);
+                if (driver) driver->addComment(startpos+2, tokenLength()-2, startlineno, startcolumn+2);
                 setDone(Eof);
             }
 
@@ -689,14 +689,14 @@
                 setDone(Bad);
                 err = UnclosedComment;
                 errmsg = QCoreApplication::translate("QDeclarativeParser", "Unclosed comment at end of file");
-                if (driver) driver->addComment(startpos, tokenLength(), startlineno, startcolumn);
+                if (driver) driver->addComment(startpos+2, tokenLength()-2, startlineno, startcolumn+2);
             } else if (isLineTerminator()) {
                 shiftWindowsLineBreak();
                 yylineno++;
             } else if (current == '*' && next1 == '/') {
                 state = Start;
                 shift(1);
-                if (driver) driver->addComment(startpos, tokenLength(), startlineno, startcolumn);
+                if (driver) driver->addComment(startpos+2, tokenLength()-3, startlineno, startcolumn+2);
             }
 
             break;
--- a/src/declarative/qml/qdeclarativecompiledbindings.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/qml/qdeclarativecompiledbindings.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -1628,7 +1628,7 @@
 
 /*!
 Clear the state associated with attempting to compile a specific binding.
-This does not clear the global "commited binding" states.
+This does not clear the global "committed binding" states.
 */
 void QDeclarativeBindingCompilerPrivate::resetInstanceState()
 {
@@ -1874,7 +1874,7 @@
                 return false;
 
             QDeclarativeImportedNamespace *ns = 0;
-            if (!engine->importDatabase.resolveType(imports, name.toUtf8(), &attachType, 0, 0, 0, &ns))
+            if (!imports.resolveType(name.toUtf8(), &attachType, 0, 0, 0, &ns))
                 return false;
             if (ns || !attachType || !attachType->attachedPropertiesType())
                 return false;
--- a/src/declarative/qml/qdeclarativecompiler.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/qml/qdeclarativecompiler.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -41,7 +41,6 @@
 
 #include "private/qdeclarativecompiler_p.h"
 
-#include "private/qdeclarativecompositetypedata_p.h"
 #include "private/qdeclarativeparser_p.h"
 #include "private/qdeclarativescriptparser_p.h"
 #include "qdeclarativepropertyvaluesource.h"
@@ -240,7 +239,7 @@
             if (!ok) COMPILE_EXCEPTION(v, tr("Invalid property assignment: color expected"));
             }
             break;
-#ifndef QT_NO_TEXTDATE
+#ifndef QT_NO_DATESTRING
         case QVariant::Date:
             {
             bool ok;
@@ -262,7 +261,7 @@
             if (!ok) COMPILE_EXCEPTION(v, tr("Invalid property assignment: datetime expected"));
             }
             break;
-#endif // QT_NO_TEXTDATE
+#endif // QT_NO_DATESTRING
         case QVariant::Point:
         case QVariant::PointF:
             {
@@ -416,7 +415,7 @@
             instr.storeColor.value = c.rgba();
             }
             break;
-#ifndef QT_NO_TEXTDATE
+#ifndef QT_NO_DATESTRING
         case QVariant::Date:
             {
             QDate d = QDeclarativeStringConverters::dateFromString(string);
@@ -450,7 +449,7 @@
             instr.storeDateTime.valueIndex = index;
             }
             break;
-#endif // QT_NO_TEXTDATE
+#endif // QT_NO_DATESTRING
         case QVariant::Point:
         case QVariant::PointF:
             {
@@ -562,7 +561,7 @@
     on a successful compiler.
 */
 bool QDeclarativeCompiler::compile(QDeclarativeEngine *engine,
-                                   QDeclarativeCompositeTypeData *unit,
+                                   QDeclarativeTypeData *unit,
                                    QDeclarativeCompiledData *out)
 {
     exceptions.clear();
@@ -573,10 +572,15 @@
     output = out;
 
     // Compile types
-    for (int ii = 0; ii < unit->types.count(); ++ii) {
-        QDeclarativeCompositeTypeData::TypeReference &tref = unit->types[ii];
+    const QList<QDeclarativeTypeData::TypeReference>  &resolvedTypes = unit->resolvedTypes();
+    QList<QDeclarativeScriptParser::TypeReference *> referencedTypes = unit->parser().referencedTypes();
+
+    for (int ii = 0; ii < resolvedTypes.count(); ++ii) {
         QDeclarativeCompiledData::TypeReference ref;
-        QDeclarativeScriptParser::TypeReference *parserRef = unit->data.referencedTypes().at(ii);
+
+        const QDeclarativeTypeData::TypeReference &tref = resolvedTypes.at(ii);
+        QDeclarativeScriptParser::TypeReference *parserRef = referencedTypes.at(ii);
+
         if (tref.type) {
             ref.type = tref.type;
             if (!ref.type->isCreatable()) {
@@ -585,33 +589,16 @@
                     err = tr( "Element is not creatable.");
                 COMPILE_EXCEPTION(parserRef->refObjects.first(), err);
             }
-        } else if (tref.unit) {
-            ref.component = tref.unit->toComponent(engine);
-
-            if (ref.component->isError()) {
-                QDeclarativeError error;
-                error.setUrl(output->url);
-                error.setDescription(QLatin1String("Unable to create type ") +
-                                     parserRef->name);
-                if (!parserRef->refObjects.isEmpty()) {
-                    QDeclarativeParser::Object *parserObject = parserRef->refObjects.first();
-                    error.setLine(parserObject->location.start.line);
-                    error.setColumn(parserObject->location.start.column);
-                }
-
-                exceptions << error;
-                exceptions << ref.component->errors();
-                reset(out);
-                return false;
-            }
-            ref.ref = tref.unit;
+        } else if (tref.typeData) {
+            ref.component = tref.typeData->component();
+            ref.ref = tref.typeData;
             ref.ref->addref();
         }
         ref.className = parserRef->name.toUtf8();
         out->types << ref;
     }
 
-    Object *root = unit->data.tree();
+    Object *root = unit->parser().tree();
     Q_ASSERT(root);
 
     this->engine = engine;
@@ -664,17 +651,18 @@
     QHash<QString, Object::ScriptBlock> importedScripts;
     QStringList importedScriptIndexes;
 
-    for (int ii = 0; ii < unit->scripts.count(); ++ii) {
-        QString scriptCode = QString::fromUtf8(unit->scripts.at(ii).resource->data);
-        Object::ScriptBlock::Pragmas pragmas = QDeclarativeScriptParser::extractPragmas(scriptCode);
+    foreach (const QDeclarativeTypeData::ScriptReference &script, unit->resolvedScripts()) {
+        QString scriptCode = script.script->scriptSource();
+        Object::ScriptBlock::Pragmas pragmas = script.script->pragmas();
+
+        Q_ASSERT(!importedScripts.contains(script.qualifier));
 
         if (!scriptCode.isEmpty()) {
-            Object::ScriptBlock &scriptBlock = importedScripts[unit->scripts.at(ii).qualifier];
-
-            scriptBlock.codes.append(scriptCode);
-            scriptBlock.lineNumbers.append(1);
-            scriptBlock.files.append(unit->scripts.at(ii).resource->url);
-            scriptBlock.pragmas.append(pragmas);
+            Object::ScriptBlock &scriptBlock = importedScripts[script.qualifier];
+
+            scriptBlock.code = scriptCode;
+            scriptBlock.file = script.script->finalUrl().toString();
+            scriptBlock.pragmas = pragmas;
         }
     }
 
@@ -703,7 +691,7 @@
     for (int ii = 0; ii < importedScriptIndexes.count(); ++ii) 
         output->importCache->add(importedScriptIndexes.at(ii), ii);
 
-    unit->imports.cache(output->importCache, engine);
+    unit->imports().populateCache(output->importCache, engine);
 
     Q_ASSERT(tree->metatype);
 
@@ -986,7 +974,7 @@
     }
 
     // Begin the class
-    if (obj->parserStatusCast != -1) {
+    if (tr.type && obj->parserStatusCast != -1) {
         QDeclarativeInstruction begin;
         begin.type = QDeclarativeInstruction::BeginObject;
         begin.begin.castValue = obj->parserStatusCast;
@@ -1070,6 +1058,7 @@
             store.storeSignal.value =
                 output->indexForString(v->value.asScript().trimmed());
             store.storeSignal.context = ctxt.stack;
+            store.storeSignal.name = output->indexForByteArray(prop->name);
             output->bytecode << store;
 
         }
@@ -1373,7 +1362,7 @@
             return p.name() != 0;
         } else {
             int idx = mo->indexOfProperty(prop->name.constData());
-            return idx != -1;
+            return idx != -1 && mo->property(idx).isScriptable();
         }
     }
 
@@ -1402,8 +1391,7 @@
 
         QDeclarativeType *type = 0;
         QDeclarativeImportedNamespace *typeNamespace = 0;
-        enginePrivate->importDatabase.resolveType(unit->imports, prop->name, 
-                                                  &type, 0, 0, 0, &typeNamespace);
+        unit->imports().resolveType(prop->name, &type, 0, 0, 0, &typeNamespace);
 
         if (typeNamespace) {
             // ### We might need to indicate that this property is a namespace 
@@ -1439,6 +1427,11 @@
             if (prop->index != -1) {
                 p = metaObject->property(prop->index);
                 Q_ASSERT(p.name());
+
+                if (!p.isScriptable()) {
+                    prop->index = -1;
+                    p = QMetaProperty();
+                }
             }
         }
 
@@ -1511,7 +1504,7 @@
         // Setup attached property data
 
         QDeclarativeType *type = 0;
-        enginePrivate->importDatabase.resolveTypeInNamespace(ns, prop->name, &type, 0, 0, 0);
+        unit->imports().resolveType(ns, prop->name, &type, 0, 0, 0);
 
         if (!type || !type->attachedPropertiesType()) 
             COMPILE_EXCEPTION(prop, tr("Non-existent attached object"));
@@ -1771,9 +1764,7 @@
     Q_ASSERT(prop->index != -1);
 
     if (QDeclarativeValueTypeFactory::isValueType(prop->type)) {
-        QDeclarativeEnginePrivate *ep =
-            static_cast<QDeclarativeEnginePrivate *>(QObjectPrivate::get(engine));
-        if (prop->type >= 0 /* QVariant == -1 */ && ep->valueTypes[prop->type]) {
+        if (prop->type >= 0 /* QVariant == -1 */ && enginePrivate->valueTypes[prop->type]) {
 
             if (prop->values.count()) {
                 if (prop->values.at(0)->location < prop->value->location) {
@@ -1787,7 +1778,7 @@
                 COMPILE_EXCEPTION(prop, tr( "Invalid property assignment: \"%1\" is a read-only property").arg(QString::fromUtf8(prop->name)));
             }
 
-            COMPILE_CHECK(buildValueTypeProperty(ep->valueTypes[prop->type],
+            COMPILE_CHECK(buildValueTypeProperty(enginePrivate->valueTypes[prop->type],
                                                  prop->value, obj, ctxt.incr()));
             obj->addValueTypeProperty(prop);
         } else {
@@ -1825,6 +1816,8 @@
         if (idx == -1)
             COMPILE_EXCEPTION(prop, tr("Cannot assign to non-existent property \"%1\"").arg(QString::fromUtf8(prop->name)));
         QMetaProperty p = type->metaObject()->property(idx);
+        if (!p.isScriptable())
+            COMPILE_EXCEPTION(prop, tr("Cannot assign to non-existent property \"%1\"").arg(QString::fromUtf8(prop->name)));
         prop->index = idx;
         prop->type = p.userType();
         prop->isValueTypeSubProperty = true;
@@ -2138,8 +2131,7 @@
 
     QString typeName = parts.at(0);
     QDeclarativeType *type = 0;
-    enginePrivate->importDatabase.resolveType(unit->imports, typeName.toUtf8(),
-                                              &type, 0, 0, 0, 0);
+    unit->imports().resolveType(typeName.toUtf8(), &type, 0, 0, 0, 0);
 
     if (!type || obj->typeName != type->qmlTypeName())
         return true;
@@ -2166,7 +2158,7 @@
     int dot = script.indexOf('.');
     if (dot > 0) {
         QDeclarativeType *type = 0;
-        enginePrivate->importDatabase.resolveType(unit->imports, script.left(dot), &type, 0, 0, 0, 0);
+        unit->imports().resolveType(script.left(dot), &type, 0, 0, 0, 0);
         if (!type)
             return -1;
         const QMetaObject *mo = type->metaObject();
@@ -2184,8 +2176,7 @@
 const QMetaObject *QDeclarativeCompiler::resolveType(const QByteArray& name) const
 {
     QDeclarativeType *qmltype = 0;
-    if (!enginePrivate->importDatabase.resolveType(unit->imports, name, &qmltype, 
-                                                   0, 0, 0, 0)) 
+    if (!unit->imports().resolveType(name, &qmltype, 0, 0, 0, 0)) 
         return 0;
     if (!qmltype)
         return 0;
@@ -2214,10 +2205,11 @@
         if (propNames.contains(prop.name))
             COMPILE_EXCEPTION(&prop, tr("Duplicate property name"));
 
-        if (QString::fromUtf8(prop.name).at(0).isUpper()) 
+        QString propName = QString::fromUtf8(prop.name);
+        if (propName.at(0).isUpper())
             COMPILE_EXCEPTION(&prop, tr("Property names cannot begin with an upper case letter"));
 
-        if (QDeclarativeEnginePrivate::get(engine)->globalClass->illegalNames().contains(prop.name))
+        if (enginePrivate->globalClass->illegalNames().contains(propName))
             COMPILE_EXCEPTION(&prop, tr("Illegal property name"));
 
         propNames.insert(prop.name);
@@ -2227,9 +2219,10 @@
         QByteArray name = obj->dynamicSignals.at(ii).name;
         if (methodNames.contains(name))
             COMPILE_EXCEPTION(obj, tr("Duplicate signal name"));
-        if (QString::fromUtf8(name).at(0).isUpper()) 
+        QString nameStr = QString::fromUtf8(name);
+        if (nameStr.at(0).isUpper())
             COMPILE_EXCEPTION(obj, tr("Signal names cannot begin with an upper case letter"));
-        if (QDeclarativeEnginePrivate::get(engine)->globalClass->illegalNames().contains(name))
+        if (enginePrivate->globalClass->illegalNames().contains(nameStr))
             COMPILE_EXCEPTION(obj, tr("Illegal signal name"));
         methodNames.insert(name);
     }
@@ -2237,9 +2230,10 @@
         QByteArray name = obj->dynamicSlots.at(ii).name;
         if (methodNames.contains(name))
             COMPILE_EXCEPTION(obj, tr("Duplicate method name"));
-        if (QString::fromUtf8(name).at(0).isUpper()) 
+        QString nameStr = QString::fromUtf8(name);
+        if (nameStr.at(0).isUpper())
             COMPILE_EXCEPTION(obj, tr("Method names cannot begin with an upper case letter"));
-        if (QDeclarativeEnginePrivate::get(engine)->globalClass->illegalNames().contains(name))
+        if (enginePrivate->globalClass->illegalNames().contains(nameStr))
             COMPILE_EXCEPTION(obj, tr("Illegal method name"));
         methodNames.insert(name);
     }
@@ -2340,17 +2334,18 @@
                 QByteArray customTypeName;
                 QDeclarativeType *qmltype = 0;
                 QUrl url;
-                if (!enginePrivate->importDatabase.resolveType(unit->imports, p.customType, &qmltype, 
-                                                               &url, 0, 0, 0)) 
+                if (!unit->imports().resolveType(p.customType, &qmltype, &url, 0, 0, 0)) 
                     COMPILE_EXCEPTION(&p, tr("Invalid property type"));
 
                 if (!qmltype) {
-                    QDeclarativeCompositeTypeData *tdata = enginePrivate->typeManager.get(url);
+                    QDeclarativeTypeData *tdata = enginePrivate->typeLoader.get(url);
                     Q_ASSERT(tdata);
-                    Q_ASSERT(tdata->status == QDeclarativeCompositeTypeData::Complete);
-
-                    QDeclarativeCompiledData *data = tdata->toCompiledComponent(engine);
+                    Q_ASSERT(tdata->isComplete());
+
+                    QDeclarativeCompiledData *data = tdata->compiledData();
                     customTypeName = data->root->className();
+                    data->release();
+                    tdata->release();
                 } else {
                     customTypeName = qmltype->typeName();
                 }
@@ -2416,17 +2411,20 @@
         builder.addSignal(p.name + "Changed()");
         QMetaPropertyBuilder propBuilder = 
             builder.addProperty(p.name, type, builder.methodCount() - 1);
-        propBuilder.setScriptable(true);
         propBuilder.setWritable(!readonly);
     }
 
-    if (mode == ResolveAliases) {
-        for (int ii = 0; ii < obj->dynamicProperties.count(); ++ii) {
-            const Object::DynamicProperty &p = obj->dynamicProperties.at(ii);
-
-            if (p.type == Object::DynamicProperty::Alias) {
+    for (int ii = 0; ii < obj->dynamicProperties.count(); ++ii) {
+        const Object::DynamicProperty &p = obj->dynamicProperties.at(ii);
+
+        if (p.type == Object::DynamicProperty::Alias) {
+            if (mode == ResolveAliases) {
                 ((QDeclarativeVMEMetaData *)dynamicData.data())->aliasCount++;
                 compileAlias(builder, dynamicData, obj, p);
+            } else {
+                // Need a fake signal so that the metaobject remains consistent across
+                // the resolve and non-resolve alias runs
+                builder.addSignal(p.name + "Changed()");
             }
         }
     }
@@ -2582,6 +2580,9 @@
             COMPILE_EXCEPTION(prop.defaultValue, tr("Invalid alias location"));
 
         QMetaProperty aliasProperty = idObject->metaObject()->property(propIdx);
+        if (!aliasProperty.isScriptable())
+            COMPILE_EXCEPTION(prop.defaultValue, tr("Invalid alias location"));
+
         writable = aliasProperty.isWritable();
 
         if (aliasProperty.isEnumType()) 
@@ -2618,7 +2619,6 @@
     builder.addSignal(prop.name + "Changed()");
     QMetaPropertyBuilder propBuilder = 
         builder.addProperty(prop.name, typeName.constData(), builder.methodCount() - 1);
-    propBuilder.setScriptable(true);
     propBuilder.setWritable(writable);
     return true;
 }
@@ -2745,7 +2745,7 @@
         expr.context = binding.bindingContext.object;
         expr.property = binding.property;
         expr.expression = binding.expression;
-        expr.imports = unit->imports;
+        expr.imports = unit->imports();
 
         int index = bindingCompiler.compile(expr, enginePrivate);
         if (index != -1) {
@@ -2765,6 +2765,7 @@
         bool isSharable = sharableTest.isSharable(expression);
         
         QDeclarativeRewrite::RewriteBinding rewriteBinding;
+        rewriteBinding.setName('$'+binding.property->name);
         expression = rewriteBinding(expression);
 
         quint32 length = expression.length();
--- a/src/declarative/qml/qdeclarativecompiler_p.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/qml/qdeclarativecompiler_p.h	Mon Oct 04 01:19:32 2010 +0300
@@ -56,13 +56,13 @@
 #include "qdeclarative.h"
 #include "qdeclarativeerror.h"
 #include "private/qdeclarativeinstruction_p.h"
-#include "private/qdeclarativecompositetypemanager_p.h"
 #include "private/qdeclarativeparser_p.h"
 #include "private/qdeclarativeengine_p.h"
 #include "private/qbitfield_p.h"
 #include "private/qdeclarativepropertycache_p.h"
 #include "private/qdeclarativeintegercache_p.h"
 #include "private/qdeclarativetypenamecache_p.h"
+#include "private/qdeclarativetypeloader_p.h"
 
 #include <QtCore/qbytearray.h>
 #include <QtCore/qset.h>
@@ -152,7 +152,7 @@
 public:
     QDeclarativeCompiler();
 
-    bool compile(QDeclarativeEngine *, QDeclarativeCompositeTypeData *, QDeclarativeCompiledData *);
+    bool compile(QDeclarativeEngine *, QDeclarativeTypeData *, QDeclarativeCompiledData *);
 
     bool isError() const;
     QList<QDeclarativeError> errors() const;
@@ -338,7 +338,7 @@
     QDeclarativeEngine *engine;
     QDeclarativeEnginePrivate *enginePrivate;
     QDeclarativeParser::Object *unitRoot;
-    QDeclarativeCompositeTypeData *unit;
+    QDeclarativeTypeData *unit;
 };
 QT_END_NAMESPACE
 
--- a/src/declarative/qml/qdeclarativecomponent.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/qml/qdeclarativecomponent.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -44,7 +44,6 @@
 
 #include "private/qdeclarativecompiler_p.h"
 #include "private/qdeclarativecontext_p.h"
-#include "private/qdeclarativecompositetypedata_p.h"
 #include "private/qdeclarativeengine_p.h"
 #include "private/qdeclarativevme_p.h"
 #include "qdeclarative.h"
@@ -54,6 +53,7 @@
 #include "private/qdeclarativeglobal_p.h"
 #include "private/qdeclarativescriptparser_p.h"
 #include "private/qdeclarativedebugtrace_p.h"
+#include "private/qdeclarativeenginedebug_p.h"
 
 #include <QStack>
 #include <QStringList>
@@ -104,6 +104,7 @@
 
 /*!
     \qmlclass Component QDeclarativeComponent
+    \ingroup qml-utility-elements
     \since 4.7
     \brief The Component element encapsulates a QML component definition.
 
@@ -115,24 +116,10 @@
     a small component within a QML file, or for defining a component that logically 
     belongs with other QML components within a file.
 
-    For example, here is a component that is used by multiple \l Loader objects:
-
-    \qml
-    Item {
-        Component {
-            id: redSquare
+    For example, here is a component that is used by multiple \l Loader objects.
+    It contains a top level \l Rectangle item:
 
-            Rectangle {
-                color: "red"
-                width: 10
-                height: 10
-            }
-        }
-
-        Loader { sourceComponent: redSquare }
-        Loader { sourceComponent: redSquare; x: 20 }
-    }
-    \endqml
+    \snippet doc/src/snippets/declarative/component.qml 0
 
     Notice that while a \l Rectangle by itself would be automatically 
     rendered and displayed, this is not the case for the above rectangle
@@ -141,12 +128,16 @@
     file, and is not loaded until requested (in this case, by the
     two \l Loader objects).
 
+    A Component cannot contain anything other
+    than an \c id and a single top level item. While the \c id is optional,
+    the top level item is not; you cannot define an empty component.
+
     The Component element is commonly used to provide graphical components
     for views. For example, the ListView::delegate property requires a Component
     to specify how each list item is to be displayed.
 
-    Component objects can also be dynamically generated using
-    \l{Qt::createComponent}{Qt.createComponent()}.
+    Component objects can also be dynamically created using
+    \l{QML:Qt::createComponent()}{Qt.createComponent()}.
 */
 
 /*!
@@ -202,10 +193,10 @@
     \value Null This QDeclarativeComponent has no data.  Call loadUrl() or setData() to add QML content.
     \value Ready This QDeclarativeComponent is ready and create() may be called.
     \value Loading This QDeclarativeComponent is loading network data.
-    \value Error An error has occured.  Call errors() to retrieve a list of \{QDeclarativeError}{errors}.
+    \value Error An error has occurred.  Call errors() to retrieve a list of \{QDeclarativeError}{errors}.
 */
 
-void QDeclarativeComponentPrivate::typeDataReady()
+void QDeclarativeComponentPrivate::typeDataReady(QDeclarativeTypeData *)
 {
     Q_Q(QDeclarativeComponent);
 
@@ -217,28 +208,25 @@
     emit q->statusChanged(q->status());
 }
 
-void QDeclarativeComponentPrivate::updateProgress(qreal p)
+void QDeclarativeComponentPrivate::typeDataProgress(QDeclarativeTypeData *, qreal p)
 {
     Q_Q(QDeclarativeComponent);
 
     progress = p;
+
     emit q->progressChanged(p);
 }
 
-void QDeclarativeComponentPrivate::fromTypeData(QDeclarativeCompositeTypeData *data)
+void QDeclarativeComponentPrivate::fromTypeData(QDeclarativeTypeData *data)
 {
-    url = data->imports.baseUrl();
-    QDeclarativeCompiledData *c = data->toCompiledComponent(engine);
+    url = data->finalUrl();
+    QDeclarativeCompiledData *c = data->compiledData();
 
     if (!c) {
-        Q_ASSERT(data->status == QDeclarativeCompositeTypeData::Error);
-
-        state.errors = data->errors;
-
+        Q_ASSERT(data->isError());
+        state.errors = data->errors();
     } else {
-
         cc = c;
-
     }
 
     data->release();
@@ -247,7 +235,7 @@
 void QDeclarativeComponentPrivate::clear()
 {
     if (typeData) {
-        typeData->remWaiter(this);
+        typeData->unregisterCallback(this);
         typeData->release();
         typeData = 0;
     }
@@ -279,7 +267,7 @@
     }
 
     if (d->typeData) {
-        d->typeData->remWaiter(d);
+        d->typeData->unregisterCallback(d);
         d->typeData->release();
     }
     if (d->cc)
@@ -451,19 +439,13 @@
 
     d->url = url;
 
-    QDeclarativeCompositeTypeData *typeData = 
-        QDeclarativeEnginePrivate::get(d->engine)->typeManager.getImmediate(data, url);
+    QDeclarativeTypeData *typeData = QDeclarativeEnginePrivate::get(d->engine)->typeLoader.get(data, url);
     
-    if (typeData->status == QDeclarativeCompositeTypeData::Waiting
-     || typeData->status == QDeclarativeCompositeTypeData::WaitingResources)
-    {
+    if (typeData->isCompleteOrError()) {
+        d->fromTypeData(typeData);
+    } else {
         d->typeData = typeData;
-        d->typeData->addWaiter(d);
-
-    } else {
-
-        d->fromTypeData(typeData);
-
+        d->typeData->registerCallback(d);
     }
 
     d->progress = 1.0;
@@ -509,18 +491,15 @@
         return;
     }
 
-    QDeclarativeCompositeTypeData *data = 
-        QDeclarativeEnginePrivate::get(d->engine)->typeManager.get(d->url);
+    QDeclarativeTypeData *data = QDeclarativeEnginePrivate::get(d->engine)->typeLoader.get(d->url);
 
-    if (data->status == QDeclarativeCompositeTypeData::Waiting
-     || data->status == QDeclarativeCompositeTypeData::WaitingResources)
-    {
-        d->typeData = data;
-        d->typeData->addWaiter(d);
-        d->progress = data->progress;
-    } else {
+    if (data->isCompleteOrError()) {
         d->fromTypeData(data);
         d->progress = 1.0;
+    } else {
+        d->typeData = data;
+        d->typeData->registerCallback(d);
+        d->progress = data->progress();
     }
 
     emit statusChanged(status());
@@ -528,7 +507,7 @@
 }
 
 /*!
-    Return the list of errors that occured during the last compile or create
+    Return the list of errors that occurred during the last compile or create
     operation.  An empty list is returned if isError() is not set.
 */
 QList<QDeclarativeError> QDeclarativeComponent::errors() const
@@ -607,6 +586,9 @@
     the \a parent value. Note that if the returned object is to be displayed, you 
     must provide a valid \a parent value or set the returned object's \l{Item::parent}{parent} 
     property, or else the object will not be visible.
+
+    Dynamically created instances can be deleted with the \c destroy() method.
+    See \l {Dynamic Object Management in QML} for more information.
 */
 
 /*!
@@ -625,10 +607,11 @@
         ctxt = d->engine->rootContext();
     if (!ctxt)
         return QScriptValue(QScriptValue::NullValue);
-    QObject* ret = create(ctxt);
-    if (!ret)
+    QObject* ret = beginCreate(ctxt);
+    if (!ret) {
+        completeCreate();
         return QScriptValue(QScriptValue::NullValue);
-
+    }
 
     if (parent) {
         ret->setParent(parent);
@@ -649,6 +632,7 @@
         if (needParent) 
             qWarning("QDeclarativeComponent: Created graphical object was not placed in the graphics scene.");
     }
+    completeCreate();
 
     QDeclarativeEnginePrivate *priv = QDeclarativeEnginePrivate::get(d->engine);
     QDeclarativeData::get(ret, true)->setImplicitDestructible();
@@ -771,8 +755,11 @@
 
     QObject *rv = begin(ctxt, ep, cc, start, count, &state, bindings);
 
-    if (rv && !context->isInternal && ep->isDebugging)
-        context->asQDeclarativeContextPrivate()->instances.append(rv);
+    if (ep->isDebugging && rv) {
+        if  (!context->isInternal)
+            context->asQDeclarativeContextPrivate()->instances.append(rv);
+        QDeclarativeEngineDebugServer::instance()->objectCreated(engine, rv);
+    }
 
     return rv;
 }
--- a/src/declarative/qml/qdeclarativecomponent.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/qml/qdeclarativecomponent.h	Mon Oct 04 01:19:32 2010 +0300
@@ -117,6 +117,7 @@
     Q_DISABLE_COPY(QDeclarativeComponent)
     friend class QDeclarativeVME;
     friend class QDeclarativeCompositeTypeData;
+    friend class QDeclarativeTypeData;
 };
 
 QT_END_NAMESPACE
--- a/src/declarative/qml/qdeclarativecomponent_p.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/qml/qdeclarativecomponent_p.h	Mon Oct 04 01:19:32 2010 +0300
@@ -56,7 +56,7 @@
 #include "qdeclarativecomponent.h"
 
 #include "private/qdeclarativeengine_p.h"
-#include "private/qdeclarativecompositetypemanager_p.h"
+#include "private/qdeclarativetypeloader_p.h"
 #include "private/qbitfield_p.h"
 #include "qdeclarativeerror.h"
 #include "qdeclarative.h"
@@ -74,7 +74,7 @@
 class QDeclarativeCompiledData;
 
 class QDeclarativeComponentAttached;
-class QDeclarativeComponentPrivate : public QObjectPrivate
+class QDeclarativeComponentPrivate : public QObjectPrivate, public QDeclarativeTypeData::TypeDataCallback
 {
     Q_DECLARE_PUBLIC(QDeclarativeComponent)
         
@@ -85,11 +85,11 @@
     QObject *beginCreate(QDeclarativeContextData *, const QBitField &);
     void completeCreate();
 
-    QDeclarativeCompositeTypeData *typeData;
-    void typeDataReady();
-    void updateProgress(qreal);
+    QDeclarativeTypeData *typeData;
+    virtual void typeDataReady(QDeclarativeTypeData *);
+    virtual void typeDataProgress(QDeclarativeTypeData *, qreal);
     
-    void fromTypeData(QDeclarativeCompositeTypeData *data);
+    void fromTypeData(QDeclarativeTypeData *data);
 
     QUrl url;
     qreal progress;
--- a/src/declarative/qml/qdeclarativecompositetypedata_p.h	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,161 +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 QtDeclarative 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 QDECLARATIVECOMPOSITETYPEDATA_P_H
-#define QDECLARATIVECOMPOSITETYPEDATA_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/qdeclarativeengine_p.h"
-
-#include <QtCore/qglobal.h>
-
-QT_BEGIN_NAMESPACE
-
-class QDeclarativeCompositeTypeResource;
-class QDeclarativeCompositeTypeData : public QDeclarativeRefCount
-{
-public:
-    QDeclarativeCompositeTypeData();
-    virtual ~QDeclarativeCompositeTypeData();
-
-    enum Status {
-        Invalid,
-        Complete,
-        Error,
-        Waiting,
-        WaitingResources
-    };
-    Status status;
-    enum ErrorType {
-        NoError,
-        AccessError,
-        GeneralError
-    };
-    ErrorType errorType;
-
-    QList<QDeclarativeError> errors;
-
-    QDeclarativeImports imports;
-
-    QList<QDeclarativeCompositeTypeData *> dependants;
-
-    // Return a QDeclarativeComponent if the QDeclarativeCompositeTypeData is not in the Waiting
-    // state.  The QDeclarativeComponent is owned by the QDeclarativeCompositeTypeData, so a
-    // reference should be kept to keep the QDeclarativeComponent alive.
-    QDeclarativeComponent *toComponent(QDeclarativeEngine *);
-    // Return a QDeclarativeCompiledData if possible, or 0 if an error
-    // occurs
-    QDeclarativeCompiledData *toCompiledComponent(QDeclarativeEngine *);
-
-    struct TypeReference
-    {
-        TypeReference();
-
-        QDeclarativeType *type;
-        QDeclarativeCompositeTypeData *unit;
-    };
-
-    struct ScriptReference 
-    {
-        ScriptReference();
-
-        QString qualifier;
-        QDeclarativeCompositeTypeResource *resource;
-    };
-
-    QList<TypeReference> types;
-    QList<ScriptReference> scripts;
-    QList<QDeclarativeCompositeTypeResource *> resources;
-
-    // Add or remove p as a waiter.  When the QDeclarativeCompositeTypeData becomes
-    // ready, the QDeclarativeComponentPrivate::typeDataReady() method will be invoked on
-    // p.  The waiter is automatically removed when the typeDataReady() method
-    // is invoked, so there is no need to call remWaiter() in this case.
-    void addWaiter(QDeclarativeComponentPrivate *p);
-    void remWaiter(QDeclarativeComponentPrivate *p);
-
-    qreal progress;
-
-private:
-    friend class QDeclarativeCompositeTypeManager;
-    friend class QDeclarativeCompiler;
-    friend class QDeclarativeDomDocument;
-
-    QDeclarativeScriptParser data;
-    QList<QDeclarativeComponentPrivate *> waiters;
-    QDeclarativeComponent *component;
-    QDeclarativeCompiledData *compiledComponent;
-};
-
-class QDeclarativeCompositeTypeResource : public QDeclarativeRefCount
-{
-public:
-    QDeclarativeCompositeTypeResource();
-    virtual ~QDeclarativeCompositeTypeResource();
-
-    enum Status {
-        Invalid,
-        Complete,
-        Error,
-        Waiting
-    };
-    Status status;
-
-    QList<QDeclarativeCompositeTypeData *> dependants;
-
-    QString url;
-    QByteArray data;
-};
-
-QT_END_NAMESPACE
-
-#endif // QDECLARATIVECOMPOSITETYPEDATA_P_H
-
--- a/src/declarative/qml/qdeclarativecompositetypemanager.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,776 +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 QtDeclarative 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 "private/qdeclarativecompositetypemanager_p.h"
-
-#include "private/qdeclarativecompositetypedata_p.h"
-#include "private/qdeclarativescriptparser_p.h"
-#include "qdeclarativeengine.h"
-#include "private/qdeclarativeengine_p.h"
-#include "qdeclarativecomponent.h"
-#include "private/qdeclarativecomponent_p.h"
-#include "private/qdeclarativecompiler_p.h"
-
-#include <QtNetwork/qnetworkreply.h>
-#include <QtCore/qdebug.h>
-#include <QtCore/qfile.h>
-
-QT_BEGIN_NAMESPACE
-
-QDeclarativeCompositeTypeData::QDeclarativeCompositeTypeData()
-: status(Invalid), errorType(NoError), component(0), compiledComponent(0)
-{
-}
-
-QDeclarativeCompositeTypeData::~QDeclarativeCompositeTypeData()
-{
-    for (int ii = 0; ii < dependants.count(); ++ii)
-        dependants.at(ii)->release();
-
-    for (int ii = 0; ii < resources.count(); ++ii)
-        resources.at(ii)->release();
-
-    if (compiledComponent)
-        compiledComponent->release();
-
-    if (component) 
-        delete component;
-}
-
-QDeclarativeCompositeTypeResource::QDeclarativeCompositeTypeResource()
-{
-}
-
-QDeclarativeCompositeTypeResource::~QDeclarativeCompositeTypeResource()
-{
-    for (int ii = 0; ii < dependants.count(); ++ii)
-        dependants.at(ii)->release();
-}
-
-void QDeclarativeCompositeTypeData::addWaiter(QDeclarativeComponentPrivate *p)
-{
-    waiters << p;
-}
-
-void QDeclarativeCompositeTypeData::remWaiter(QDeclarativeComponentPrivate *p)
-{
-    waiters.removeAll(p);
-}
-
-QDeclarativeComponent *QDeclarativeCompositeTypeData::toComponent(QDeclarativeEngine *engine)
-{
-    if (!component) {
-
-        QDeclarativeCompiledData *cc = toCompiledComponent(engine);
-        if (cc) {
-            component = new QDeclarativeComponent(engine, cc, -1, -1, 0);
-            cc->release();
-        } else {
-            component = new QDeclarativeComponent(engine, 0);
-            component->d_func()->url = imports.baseUrl();
-            component->d_func()->state.errors = errors;
-        }
-
-    }
-
-    return component;
-}
-
-QDeclarativeCompiledData *
-QDeclarativeCompositeTypeData::toCompiledComponent(QDeclarativeEngine *engine)
-{
-    if (status == Complete && !compiledComponent) {
-
-        // Build script imports
-        foreach (const QDeclarativeScriptParser::Import &import, data.imports()) {
-            if (import.type == QDeclarativeScriptParser::Import::Script) {
-                QString url = imports.baseUrl().resolved(QUrl(import.uri)).toString();
-
-                ScriptReference ref;
-                ref.qualifier = import.qualifier;
-
-                for (int ii = 0; ii < resources.count(); ++ii) {
-                    if (resources.at(ii)->url == url) {
-                        ref.resource = resources.at(ii);
-                        break;
-                    }
-                }
-
-                Q_ASSERT(ref.resource);
-
-                scripts << ref;
-            }
-        }
-
-        compiledComponent = new QDeclarativeCompiledData(engine);
-        compiledComponent->url = imports.baseUrl();
-        compiledComponent->name = compiledComponent->url.toString();
-
-        QDeclarativeCompiler compiler;
-        if (!compiler.compile(engine, this, compiledComponent)) {
-            status = Error;
-            errors = compiler.errors();
-            compiledComponent->release();
-            compiledComponent = 0;
-        }
-
-        // Data is no longer needed once we have a compiled component
-        data.clear();
-    }
-
-    if (compiledComponent)
-        compiledComponent->addref();
-
-    return compiledComponent;
-}
-
-QDeclarativeCompositeTypeData::TypeReference::TypeReference()
-: type(0), unit(0)
-{
-}
-
-QDeclarativeCompositeTypeData::ScriptReference::ScriptReference()
-: resource(0)
-{
-}
-
-QDeclarativeCompositeTypeManager::QDeclarativeCompositeTypeManager(QDeclarativeEngine *e)
-: engine(e), redirectCount(0)
-{
-}
-
-QDeclarativeCompositeTypeManager::~QDeclarativeCompositeTypeManager()
-{
-    for (Components::Iterator iter = components.begin(); iter != components.end();) {
-        (*iter)->release();
-        iter = components.erase(iter);
-    }
-    for (Resources::Iterator iter = resources.begin(); iter != resources.end();) {
-        (*iter)->release();
-        iter = resources.erase(iter);
-    }
-}
-
-QDeclarativeCompositeTypeData *QDeclarativeCompositeTypeManager::get(const QUrl &url)
-{
-    Redirects::Iterator redir = redirects.find(url);
-    if (redir != redirects.end())
-        return get(*redir);
-
-    QDeclarativeCompositeTypeData *unit = components.value(url);
-
-    if (!unit) {
-        unit = new QDeclarativeCompositeTypeData;
-        unit->status = QDeclarativeCompositeTypeData::Waiting;
-        unit->progress = 0.0;
-        unit->imports.setBaseUrl(url);
-        components.insert(url, unit);
-
-        loadSource(unit);
-    }
-
-    unit->addref();
-    return unit;
-}
-
-QDeclarativeCompositeTypeData *
-QDeclarativeCompositeTypeManager::getImmediate(const QByteArray &data, const QUrl &url)
-{
-    QDeclarativeCompositeTypeData *unit = new QDeclarativeCompositeTypeData;
-    unit->status = QDeclarativeCompositeTypeData::Waiting;
-    unit->imports.setBaseUrl(url);
-    setData(unit, data, url);
-    return unit;
-}
-
-void QDeclarativeCompositeTypeManager::clearCache()
-{
-    for (Components::Iterator iter = components.begin(); iter != components.end();) {
-        if ((*iter)->status != QDeclarativeCompositeTypeData::Waiting) {
-            (*iter)->release();
-            iter = components.erase(iter);
-        } else {
-            ++iter;
-        }
-    }
-
-    for (Resources::Iterator iter = resources.begin(); iter != resources.end();) {
-        if ((*iter)->status != QDeclarativeCompositeTypeResource::Waiting) {
-            (*iter)->release();
-            iter = resources.erase(iter);
-        } else {
-            ++iter;
-        }
-    }
-}
-
-#define TYPEMANAGER_MAXIMUM_REDIRECT_RECURSION 16
-
-void QDeclarativeCompositeTypeManager::replyFinished()
-{
-    QNetworkReply *reply = static_cast<QNetworkReply *>(sender());
-
-    QDeclarativeCompositeTypeData *unit = components.value(reply->url());
-    Q_ASSERT(unit);
-
-    redirectCount++;
-    if (redirectCount < TYPEMANAGER_MAXIMUM_REDIRECT_RECURSION) {
-        QVariant redirect = reply->attribute(QNetworkRequest::RedirectionTargetAttribute);
-        if (redirect.isValid()) {
-            QUrl url = reply->url().resolved(redirect.toUrl());
-            redirects.insert(reply->url(),url);
-            unit->imports.setBaseUrl(url);
-            components.remove(reply->url());
-            components.insert(url, unit);
-            reply->deleteLater();
-            reply = engine->networkAccessManager()->get(QNetworkRequest(url));
-            QObject::connect(reply, SIGNAL(finished()),
-                             this, SLOT(replyFinished()));
-            QObject::connect(reply, SIGNAL(downloadProgress(qint64,qint64)),
-                             this, SLOT(requestProgress(qint64,qint64)));
-            return;
-        }
-    }
-    redirectCount = 0;
-
-    if (reply->error() != QNetworkReply::NoError) {
-        QString errorDescription;
-        // ### - Fill in error
-        errorDescription = QLatin1String("Network error for URL ") + 
-                      reply->url().toString();
-
-        unit->status = QDeclarativeCompositeTypeData::Error;
-        // ### FIXME
-        QDeclarativeError error;
-        error.setDescription(errorDescription);
-        unit->errorType = QDeclarativeCompositeTypeData::AccessError;
-        unit->errors << error;
-        doComplete(unit);
-
-    } else {
-        QByteArray data = reply->readAll();
-
-        setData(unit, data, reply->url());
-    }
-
-    reply->deleteLater();
-}
-
-void QDeclarativeCompositeTypeManager::resourceReplyFinished()
-{
-    QNetworkReply *reply = static_cast<QNetworkReply *>(sender());
-
-    QDeclarativeCompositeTypeResource *resource = resources.value(reply->url());
-    Q_ASSERT(resource);
-
-    redirectCount++;
-    if (redirectCount < TYPEMANAGER_MAXIMUM_REDIRECT_RECURSION) {
-        QVariant redirect = reply->attribute(QNetworkRequest::RedirectionTargetAttribute);
-        if (redirect.isValid()) {
-            QUrl url = reply->url().resolved(redirect.toUrl());
-            redirects.insert(reply->url(),url);
-            resource->url = url.toString();
-            resources.remove(reply->url());
-            resources.insert(url, resource);
-            reply->deleteLater();
-            reply = engine->networkAccessManager()->get(QNetworkRequest(url));
-            QObject::connect(reply, SIGNAL(finished()),
-                             this, SLOT(resourceReplyFinished()));
-            return;
-        }
-    }
-    redirectCount = 0;
-
-    if (reply->error() != QNetworkReply::NoError) {
-
-        resource->status = QDeclarativeCompositeTypeResource::Error;
-
-    } else {
-
-        resource->status = QDeclarativeCompositeTypeResource::Complete;
-        resource->data = reply->readAll();
-
-    }
-
-    doComplete(resource);
-    reply->deleteLater();
-}
-
-void QDeclarativeCompositeTypeManager::loadResource(QDeclarativeCompositeTypeResource *resource)
-{
-    QUrl url(resource->url);
-
-    QString lf = QDeclarativeEnginePrivate::urlToLocalFileOrQrc(url);
-    if (!lf.isEmpty()) {
-
-        QFile file(lf);
-        if (file.open(QFile::ReadOnly)) {
-            resource->data = file.readAll();
-            resource->status = QDeclarativeCompositeTypeResource::Complete;
-        } else {
-            resource->status = QDeclarativeCompositeTypeResource::Error;
-        }
-    } else if (url.scheme().isEmpty()) {
-
-        // We can't open this, so just declare as an error
-        resource->status = QDeclarativeCompositeTypeResource::Error;
-    } else {
-
-        QNetworkReply *reply = 
-            engine->networkAccessManager()->get(QNetworkRequest(url));
-        QObject::connect(reply, SIGNAL(finished()),
-                         this, SLOT(resourceReplyFinished()));
-
-    }
-}
-
-void QDeclarativeCompositeTypeManager::loadSource(QDeclarativeCompositeTypeData *unit)
-{
-    QUrl url(unit->imports.baseUrl());
-
-    QString lf = QDeclarativeEnginePrivate::urlToLocalFileOrQrc(url);
-    if (!lf.isEmpty()) {
-
-        QFile file(lf);
-        if (file.open(QFile::ReadOnly)) {
-            QByteArray data = file.readAll();
-            setData(unit, data, url);
-            return; // success
-        }
-    } else if (!url.scheme().isEmpty()) {
-        QNetworkReply *reply = 
-            engine->networkAccessManager()->get(QNetworkRequest(url));
-        QObject::connect(reply, SIGNAL(finished()),
-                         this, SLOT(replyFinished()));
-        QObject::connect(reply, SIGNAL(downloadProgress(qint64,qint64)),
-                         this, SLOT(requestProgress(qint64,qint64)));
-        return; // waiting
-    }
-
-    // error happened
-    QString errorDescription;
-    // ### - Fill in error
-    errorDescription = QLatin1String("File error for URL ") + url.toString();
-    unit->status = QDeclarativeCompositeTypeData::Error;
-    // ### FIXME
-    QDeclarativeError error;
-    error.setDescription(errorDescription);
-    unit->errorType = QDeclarativeCompositeTypeData::AccessError;
-    unit->errors << error;
-    doComplete(unit);
-}
-
-void QDeclarativeCompositeTypeManager::requestProgress(qint64 received, qint64 total)
-{
-    if (total <= 0)
-        return;
-    QNetworkReply *reply = static_cast<QNetworkReply *>(sender());
-
-    QDeclarativeCompositeTypeData *unit = components.value(reply->url());
-    Q_ASSERT(unit);
-
-    unit->progress = qreal(received)/total;
-
-    foreach (QDeclarativeComponentPrivate *comp, unit->waiters)
-        comp->updateProgress(unit->progress);
-}
-
-void QDeclarativeCompositeTypeManager::setData(QDeclarativeCompositeTypeData *unit, 
-                                     const QByteArray &data,
-                                     const QUrl &url)
-{
-    bool ok = true;
-    if (!unit->data.parse(data, url)) {
-        ok = false;
-        unit->errors << unit->data.errors();
-    }
-
-    if (ok) {
-        compile(unit);
-    } else {
-        unit->status = QDeclarativeCompositeTypeData::Error;
-        unit->errorType = QDeclarativeCompositeTypeData::GeneralError;
-        doComplete(unit);
-    }
-}
-
-void QDeclarativeCompositeTypeManager::doComplete(QDeclarativeCompositeTypeData *unit)
-{
-    for (int ii = 0; ii < unit->dependants.count(); ++ii) {
-        checkComplete(unit->dependants.at(ii));
-        unit->dependants.at(ii)->release();
-    }
-    unit->dependants.clear();
-
-    while(!unit->waiters.isEmpty()) {
-        QDeclarativeComponentPrivate *p = unit->waiters.takeFirst();
-        p->typeDataReady();
-    }
-}
-
-void QDeclarativeCompositeTypeManager::doComplete(QDeclarativeCompositeTypeResource *resource)
-{
-    for (int ii = 0; ii < resource->dependants.count(); ++ii) {
-        checkComplete(resource->dependants.at(ii));
-        resource->dependants.at(ii)->release();
-    }
-    resource->dependants.clear();
-}
-
-void QDeclarativeCompositeTypeManager::checkComplete(QDeclarativeCompositeTypeData *unit)
-{
-    if (unit->status != QDeclarativeCompositeTypeData::Waiting
-     && unit->status != QDeclarativeCompositeTypeData::WaitingResources)
-        return;
-
-    int waiting = 0;
-    for (int ii = 0; ii < unit->resources.count(); ++ii) {
-        QDeclarativeCompositeTypeResource *r = unit->resources.at(ii);
-
-        if (!r)
-            continue;
-
-        if (r->status == QDeclarativeCompositeTypeResource::Error) {
-            unit->status = QDeclarativeCompositeTypeData::Error;
-            QDeclarativeError error;
-            error.setUrl(unit->imports.baseUrl());
-            error.setDescription(tr("Resource %1 unavailable").arg(r->url));
-            unit->errors << error;
-            doComplete(unit);
-            return;
-        } else if (r->status == QDeclarativeCompositeTypeResource::Waiting) {
-            waiting++;
-        }
-    }
-
-    if (waiting == 0) {
-        if (unit->status == QDeclarativeCompositeTypeData::WaitingResources) {
-            waiting += resolveTypes(unit);
-            if (unit->status != QDeclarativeCompositeTypeData::Error) {
-                if (waiting)
-                    unit->status = QDeclarativeCompositeTypeData::Waiting;
-            } else {
-                return;
-            }
-        } else {
-            for (int ii = 0; ii < unit->types.count(); ++ii) {
-                QDeclarativeCompositeTypeData *u = unit->types.at(ii).unit;
-
-                if (!u)
-                    continue;
-
-                if (u->status == QDeclarativeCompositeTypeData::Error) {
-                    unit->status = QDeclarativeCompositeTypeData::Error;
-                    unit->errors = u->errors;
-                    doComplete(unit);
-                    return;
-                } else if (u->status == QDeclarativeCompositeTypeData::Waiting
-                        || u->status == QDeclarativeCompositeTypeData::WaitingResources)
-                {
-                    waiting++;
-                }
-            }
-        }
-    }
-
-    if (!waiting) {
-        unit->status = QDeclarativeCompositeTypeData::Complete;
-        doComplete(unit);
-    }
-}
-
-int QDeclarativeCompositeTypeManager::resolveTypes(QDeclarativeCompositeTypeData *unit)
-{
-    // not called until all resources are loaded (they include import URLs)
-    int waiting = 0;
-
-    QDeclarativeEnginePrivate *ep = QDeclarativeEnginePrivate::get(engine);
-    QDeclarativeImportDatabase &importDatabase = ep->importDatabase;
-
-    // For local urls, add an implicit import "." as first (most overridden) lookup. 
-    // This will also trigger the loading of the qmldir and the import of any native 
-    // types from available plugins.
-    {
-        QDeclarativeDirComponents qmldircomponentsnetwork;
-        if (QDeclarativeCompositeTypeResource *resource
-            = resources.value(unit->imports.baseUrl().resolved(QUrl(QLatin1String("./qmldir"))))) {
-            QDeclarativeDirParser parser;
-            parser.setSource(QString::fromUtf8(resource->data));
-            parser.parse();
-            qmldircomponentsnetwork = parser.components();
-        }
-
-        importDatabase.addToImport(&unit->imports, qmldircomponentsnetwork, QLatin1String("."),
-                                   QString(), -1, -1, QDeclarativeScriptParser::Import::File,
-                                   0); // error ignored (just means no fallback)
-    }
-
-
-    foreach (QDeclarativeScriptParser::Import imp, unit->data.imports()) {
-        QDeclarativeDirComponents qmldircomponentsnetwork;
-        if (imp.type == QDeclarativeScriptParser::Import::Script)
-            continue;
-
-        if (imp.type == QDeclarativeScriptParser::Import::File && imp.qualifier.isEmpty()) {
-            QString importUrl = unit->imports.baseUrl().resolved(QUrl(imp.uri + QLatin1String("/qmldir"))).toString();
-            for (int ii = 0; ii < unit->resources.count(); ++ii) {
-                if (unit->resources.at(ii)->url == importUrl) {
-                    QDeclarativeDirParser parser;
-                    parser.setSource(QString::fromUtf8(unit->resources.at(ii)->data));
-                    parser.parse();
-                    qmldircomponentsnetwork = parser.components();
-                    break;
-                }
-            }
-        }
-
-
-        int vmaj = -1;
-        int vmin = -1;
-        if (!imp.version.isEmpty()) {
-            int dot = imp.version.indexOf(QLatin1Char('.'));
-            if (dot < 0) {
-                vmaj = imp.version.toInt();
-                vmin = 0;
-            } else {
-                vmaj = imp.version.left(dot).toInt();
-                vmin = imp.version.mid(dot+1).toInt();
-            }
-        }
-
-        QString errorString;
-        if (!importDatabase.addToImport(&unit->imports, qmldircomponentsnetwork, imp.uri, imp.qualifier, 
-                                        vmaj, vmin, imp.type, &errorString)) {
-            QDeclarativeError error;
-            error.setUrl(unit->imports.baseUrl());
-            error.setDescription(errorString);
-            error.setLine(imp.location.start.line);
-            error.setColumn(imp.location.start.column);
-            unit->status = QDeclarativeCompositeTypeData::Error;
-            unit->errorType = QDeclarativeCompositeTypeData::GeneralError;
-            unit->errors << error;
-            doComplete(unit);
-            return 0;
-        }
-    }
-
-
-    QList<QDeclarativeScriptParser::TypeReference*> types = unit->data.referencedTypes();
-
-    for (int ii = 0; ii < types.count(); ++ii) {
-        QDeclarativeScriptParser::TypeReference *parserRef = types.at(ii);
-        QByteArray typeName = parserRef->name.toUtf8();
-
-        QDeclarativeCompositeTypeData::TypeReference ref;
-
-        QUrl url;
-        int majorVersion;
-        int minorVersion;
-        QDeclarativeImportedNamespace *typeNamespace = 0;
-        QString errorString;
-        if (!importDatabase.resolveType(unit->imports, typeName, &ref.type, &url, &majorVersion, &minorVersion, 
-                                        &typeNamespace, &errorString) || typeNamespace) {
-            // Known to not be a type:
-            //  - known to be a namespace (Namespace {})
-            //  - type with unknown namespace (UnknownNamespace.SomeType {})
-            QDeclarativeError error;
-            error.setUrl(unit->imports.baseUrl());
-            QString userTypeName = QString::fromUtf8(typeName);
-            userTypeName.replace(QLatin1Char('/'),QLatin1Char('.'));
-            if (typeNamespace)
-                error.setDescription(tr("Namespace %1 cannot be used as a type").arg(userTypeName));
-            else
-                error.setDescription(tr("%1 %2").arg(userTypeName).arg(errorString));
-
-            if (!parserRef->refObjects.isEmpty()) {
-                QDeclarativeParser::Object *obj = parserRef->refObjects.first();
-                error.setLine(obj->location.start.line);
-                error.setColumn(obj->location.start.column);
-            }
-            unit->status = QDeclarativeCompositeTypeData::Error;
-            unit->errorType = QDeclarativeCompositeTypeData::GeneralError;
-            unit->errors << error;
-            doComplete(unit);
-            return 0;
-        }
-
-        if (ref.type) {
-            foreach (QDeclarativeParser::Object *obj, parserRef->refObjects) {
-               // store namespace for DOM
-               obj->majorVersion = majorVersion;
-               obj->minorVersion = minorVersion;
-            }
-            unit->types << ref;
-            continue;
-        }
-
-        Redirects::Iterator redir = redirects.find(url);
-        if (redir != redirects.end())
-            url = *redir;
-
-        QDeclarativeCompositeTypeData *urlUnit = components.value(url);
-
-        if (!urlUnit) {
-            urlUnit = new QDeclarativeCompositeTypeData;
-            urlUnit->status = QDeclarativeCompositeTypeData::Waiting;
-            urlUnit->imports.setBaseUrl(url);
-            components.insert(url, urlUnit);
-
-            loadSource(urlUnit);
-        }
-
-        ref.unit = urlUnit;
-        switch(urlUnit->status) {
-        case QDeclarativeCompositeTypeData::Invalid:
-        case QDeclarativeCompositeTypeData::Error:
-            unit->status = QDeclarativeCompositeTypeData::Error;
-            {
-                QDeclarativeError error;
-                error.setUrl(unit->imports.baseUrl());
-                error.setDescription(tr("Type %1 unavailable").arg(QString::fromUtf8(typeName)));
-                if (!parserRef->refObjects.isEmpty()) {
-                    QDeclarativeParser::Object *obj = parserRef->refObjects.first();
-                    error.setLine(obj->location.start.line);
-                    error.setColumn(obj->location.start.column);
-                }
-                unit->errors << error;
-            }
-            if (urlUnit->errorType != QDeclarativeCompositeTypeData::AccessError) 
-                unit->errors << urlUnit->errors;
-            doComplete(unit);
-            return 0;
-
-        case QDeclarativeCompositeTypeData::Complete:
-            break;
-
-        case QDeclarativeCompositeTypeData::Waiting:
-        case QDeclarativeCompositeTypeData::WaitingResources:
-            unit->addref();
-            ref.unit->dependants << unit;
-            waiting++;
-            break;
-        }
-
-        unit->types << ref;
-    }
-    return waiting;
-}
-
-// ### Check ref counting in here
-void QDeclarativeCompositeTypeManager::compile(QDeclarativeCompositeTypeData *unit)
-{
-    int waiting = 0;
-
-    QList<QUrl> resourceList = unit->data.referencedResources();
-
-    foreach (QDeclarativeScriptParser::Import imp, unit->data.imports()) {
-        if (imp.type == QDeclarativeScriptParser::Import::File && imp.qualifier.isEmpty()) {
-            QUrl importUrl = unit->imports.baseUrl().resolved(QUrl(imp.uri + QLatin1String("/qmldir")));
-            if (QDeclarativeEnginePrivate::urlToLocalFileOrQrc(importUrl).isEmpty()) {
-                // Import requires remote qmldir
-                resourceList.prepend(importUrl);
-            }
-        }
-    }
-
-    QUrl importUrl;
-    if (!unit->imports.baseUrl().scheme().isEmpty())
-        importUrl = unit->imports.baseUrl().resolved(QUrl(QLatin1String("qmldir")));
-    if (!importUrl.scheme().isEmpty() && QDeclarativeEnginePrivate::urlToLocalFileOrQrc(importUrl).isEmpty())
-        resourceList.prepend(importUrl);
-
-    for (int ii = 0; ii < resourceList.count(); ++ii) {
-        QUrl url = unit->imports.baseUrl().resolved(resourceList.at(ii));
-
-        QDeclarativeCompositeTypeResource *resource = resources.value(url);
-
-        if (!resource) {
-            resource = new QDeclarativeCompositeTypeResource;
-            resource->status = QDeclarativeCompositeTypeResource::Waiting;
-            resource->url = url.toString();
-            resources.insert(url, resource);
-
-            loadResource(resource);
-        }
-
-        switch(resource->status) {
-        case QDeclarativeCompositeTypeResource::Invalid:
-        case QDeclarativeCompositeTypeResource::Error:
-            unit->status = QDeclarativeCompositeTypeData::Error;
-            {
-                QDeclarativeError error;
-                error.setUrl(unit->imports.baseUrl());
-                error.setDescription(tr("Resource %1 unavailable").arg(resource->url));
-                unit->errors << error;
-            }
-            doComplete(unit);
-            return;
-
-        case QDeclarativeCompositeTypeData::Complete:
-            break;
-
-        case QDeclarativeCompositeTypeData::Waiting:
-            unit->addref();
-            resource->dependants << unit;
-            waiting++;
-            break;
-        }
-
-        resource->addref();
-        unit->resources << resource;
-    }
-
-    if (waiting == 0) {
-        waiting += resolveTypes(unit);
-        if (unit->status != QDeclarativeCompositeTypeData::Error) {
-            if (!waiting) {
-                unit->status = QDeclarativeCompositeTypeData::Complete;
-                doComplete(unit);
-            } else {
-                unit->status = QDeclarativeCompositeTypeData::Waiting;
-            }
-        }
-    } else {
-        unit->status = QDeclarativeCompositeTypeData::WaitingResources;
-    }
-}
-
-QT_END_NAMESPACE
--- a/src/declarative/qml/qdeclarativecompositetypemanager_p.h	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,120 +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 QtDeclarative 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 QDECLARATIVECOMPOSITETYPEMANAGER_P_H
-#define QDECLARATIVECOMPOSITETYPEMANAGER_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/qdeclarativescriptparser_p.h"
-#include "private/qdeclarativerefcount_p.h"
-#include "qdeclarativeerror.h"
-#include "qdeclarativeengine.h"
-
-#include <QtCore/qglobal.h>
-
-QT_BEGIN_NAMESPACE
-
-class QDeclarativeCompiledData;
-class QDeclarativeComponentPrivate;
-class QDeclarativeComponent;
-class QDeclarativeDomDocument;
-
-class QDeclarativeCompositeTypeData;
-class QDeclarativeCompositeTypeResource;
-
-class QDeclarativeCompositeTypeManager : public QObject
-{
-    Q_OBJECT
-public:
-    QDeclarativeCompositeTypeManager(QDeclarativeEngine *);
-    ~QDeclarativeCompositeTypeManager();
-
-    // Return a QDeclarativeCompositeTypeData for url.  The QDeclarativeCompositeTypeData may be 
-    // cached.
-    QDeclarativeCompositeTypeData *get(const QUrl &url);
-    // Return a QDeclarativeCompositeTypeData for data, with the provided base url.  The
-   //  QDeclarativeCompositeTypeData will not be cached.
-    QDeclarativeCompositeTypeData *getImmediate(const QByteArray &data, const QUrl &url);
-
-    // Clear cached types.  Only types that aren't in the Waiting state will
-    // be cleared.
-    void clearCache();
-
-private Q_SLOTS:
-    void replyFinished();
-    void resourceReplyFinished();
-    void requestProgress(qint64 received, qint64 total);
-
-private:
-    void loadSource(QDeclarativeCompositeTypeData *);
-    void loadResource(QDeclarativeCompositeTypeResource *);
-    void compile(QDeclarativeCompositeTypeData *);
-    void setData(QDeclarativeCompositeTypeData *, const QByteArray &, const QUrl &);
-
-    void doComplete(QDeclarativeCompositeTypeData *);
-    void doComplete(QDeclarativeCompositeTypeResource *);
-    void checkComplete(QDeclarativeCompositeTypeData *);
-    int resolveTypes(QDeclarativeCompositeTypeData *);
-
-    QDeclarativeEngine *engine;
-    typedef QHash<QUrl, QDeclarativeCompositeTypeData *> Components;
-    Components components;
-    typedef QHash<QUrl, QDeclarativeCompositeTypeResource *> Resources;
-    Resources resources;
-    typedef QHash<QUrl, QUrl> Redirects;
-    Redirects redirects;
-    int redirectCount;
-};
-
-QT_END_NAMESPACE
-
-#endif // QDECLARATIVECOMPOSITETYPEMANAGER_P_H
-
--- a/src/declarative/qml/qdeclarativecontext.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/qml/qdeclarativecontext.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -80,10 +80,12 @@
 
     \code
     QDeclarativeEngine engine;
+    QStringListModel modelData;
     QDeclarativeContext *context = new QDeclarativeContext(engine.rootContext());
-    context->setContextProperty("myModel", modelData);
+    context->setContextProperty("myModel", &modelData);
 
-    QDeclarativeComponent component(&engine, "ListView { model=myModel }");
+    QDeclarativeComponent component(&engine);
+    component.setData("import Qt 4.7\nListView { model: myModel }", QUrl());
     component.create(context);
     \endcode
 
@@ -104,12 +106,13 @@
         ...
     };
 
-    MyDataSet *myDataSet = new MyDataSet;
+    MyDataSet myDataSet;
     QDeclarativeEngine engine;
     QDeclarativeContext *context = new QDeclarativeContext(engine.rootContext());
-    context->setContextObject(myDataSet);
+    context->setContextObject(&myDataSet);
 
-    QDeclarativeComponent component(&engine, "ListView { model=myModel }");
+    QDeclarativeComponent component(&engine);
+    component.setData("import Qt 4.7\nListView { model: myModel }", QUrl());
     component.create(context);
     \endcode
 
@@ -530,8 +533,21 @@
     parent = 0;
 }
 
-void QDeclarativeContextData::clearExpressions()
+void QDeclarativeContextData::clearContext()
 {
+    if (engine) {
+        while (componentAttached) {
+            QDeclarativeComponentAttached *a = componentAttached;
+            componentAttached = a->next;
+            if (componentAttached) componentAttached->prev = &componentAttached;
+
+            a->next = 0;
+            a->prev = 0;
+
+            emit a->destruction();
+        }
+    }
+
     QDeclarativeAbstractExpression *expression = expressions;
     while (expression) {
         QDeclarativeAbstractExpression *nextExpression = expression->m_nextExpression;
@@ -552,7 +568,7 @@
 
     if (engine) invalidate();
 
-    clearExpressions();
+    clearContext();
 
     while (contextObjects) {
         QDeclarativeData *co = contextObjects;
@@ -644,14 +660,12 @@
     if (!engine) 
         return;
 
-    Q_ASSERT(script.codes.count() == 1);
-
     QDeclarativeEnginePrivate *enginePriv = QDeclarativeEnginePrivate::get(engine);
     QScriptEngine *scriptEngine = QDeclarativeEnginePrivate::getScriptEngine(engine);
 
-    const QString &code = script.codes.at(0);
-    const QString &url = script.files.at(0);
-    const QDeclarativeParser::Object::ScriptBlock::Pragmas &pragmas = script.pragmas.at(0);
+    const QString &code = script.code;
+    const QString &url = script.file;
+    const QDeclarativeParser::Object::ScriptBlock::Pragmas &pragmas = script.pragmas;
 
     Q_ASSERT(!url.isEmpty());
 
--- a/src/declarative/qml/qdeclarativecontext_p.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/qml/qdeclarativecontext_p.h	Mon Oct 04 01:19:32 2010 +0300
@@ -113,7 +113,7 @@
 public:
     QDeclarativeContextData();
     QDeclarativeContextData(QDeclarativeContext *);
-    void clearExpressions();
+    void clearContext();
     void destroy();
     void invalidate();
 
--- a/src/declarative/qml/qdeclarativedom.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/qml/qdeclarativedom.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -42,7 +42,6 @@
 #include "private/qdeclarativedom_p.h"
 #include "private/qdeclarativedom_p_p.h"
 
-#include "private/qdeclarativecompositetypedata_p.h"
 #include "private/qdeclarativecompiler_p.h"
 #include "private/qdeclarativeengine_p.h"
 #include "private/qdeclarativescriptparser_p.h"
@@ -145,37 +144,23 @@
     d->errors.clear();
     d->imports.clear();
 
-    QDeclarativeCompiledData *component = new QDeclarativeCompiledData(engine);
-    QDeclarativeCompiler compiler;
-
-    QDeclarativeCompositeTypeData *td = ((QDeclarativeEnginePrivate *)QDeclarativeEnginePrivate::get(engine))->typeManager.getImmediate(data, url);
+    QDeclarativeEnginePrivate *ep = QDeclarativeEnginePrivate::get(engine);
+    QDeclarativeTypeData *td = ep->typeLoader.get(data, url, QDeclarativeTypeLoader::PreserveParser);
 
-    if(td->status == QDeclarativeCompositeTypeData::Error) {
-        d->errors = td->errors;
+    if(td->isError()) {
+        d->errors = td->errors();
         td->release();
-        component->release();
         return false;
-    } else if(td->status == QDeclarativeCompositeTypeData::Waiting ||
-              td->status == QDeclarativeCompositeTypeData::WaitingResources) {
+    } else if(!td->isCompleteOrError()) {
         QDeclarativeError error;
         error.setDescription(QLatin1String("QDeclarativeDomDocument supports local types only"));
         d->errors << error;
         td->release();
-        component->release();
         return false;
     }
 
-    compiler.compile(engine, td, component);
-
-    if (compiler.isError()) {
-        d->errors = compiler.errors();
-        td->release();
-        component->release();
-        return false;
-    }
-
-    for (int i = 0; i < td->data.imports().size(); ++i) {
-        QDeclarativeScriptParser::Import parserImport = td->data.imports().at(i);
+    for (int i = 0; i < td->parser().imports().size(); ++i) {
+        QDeclarativeScriptParser::Import parserImport = td->parser().imports().at(i);
         QDeclarativeDomImport domImport;
         domImport.d->type = static_cast<QDeclarativeDomImportPrivate::Type>(parserImport.type);
         domImport.d->uri = parserImport.uri;
@@ -184,12 +169,12 @@
         d->imports += domImport;
     }
 
-    if (td->data.tree()) {
-        d->root = td->data.tree();
+    if (td->parser().tree()) {
+        d->root = td->parser().tree();
         d->root->addref();
     }
 
-    component->release();
+    td->release();
     return true;
 }
 
--- a/src/declarative/qml/qdeclarativeengine.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/qml/qdeclarativeengine.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -114,6 +114,7 @@
 
 /*!
   \qmlclass QtObject QObject
+  \ingroup qml-utility-elements
   \since 4.7
   \brief The QtObject element is the most basic element in QML.
 
@@ -184,11 +185,13 @@
 }
 
 /*!
-\keyword QmlGlobalQtObject
-\qmlclass Qt QDeclarativeEnginePrivate
+\qmlclass QML:Qt QDeclarativeEnginePrivate
+  \ingroup qml-utility-elements
 \brief The QML global Qt object provides useful enums and functions from Qt.
 
-The \c Qt object provides useful enums and functions from Qt, for use in all QML files. 
+\keyword QmlGlobalQtObject
+
+\brief The \c Qt object provides useful enums and functions from Qt, for use in all QML files. 
 
 The \c Qt object is not a QML element; it cannot be instantiated. It is a global object 
 with enums and functions.  To use it, call the members of the global \c Qt object directly. 
@@ -206,10 +209,9 @@
 
 \section1 Enums
 
-The Qt object contains all enums in the Qt namespace. For example, you can
-access the \c AlignLeft member of the \c Qt::AlignmentFlag enum with \c Qt.AlignLeft.
+The Qt object contains enums that declared into Qt's Meta-Object System. For example, you can access
+the \c Leftbutton member of the \c Qt::MouseButton enum with \c Qt.LeftButton.
 
-For a full list of enums, see the \l{Qt Namespace} documentation.
 
 \section1 Types
 The Qt object also contains helper functions for creating objects of specific
@@ -228,7 +230,7 @@
 
 \section1 Date/Time Formatters
 
-The Qt object contains several functions for formatting dates and times.
+The Qt object contains several functions for formatting QDateTime, QDate and QTime values.
 
 \list
     \o \l{QML:Qt::formatDateTime}{string Qt.formatDateTime(datetime date, variant format)}
@@ -241,7 +243,7 @@
 
 \section1 Dynamic Object Creation
 The following functions on the global object allow you to dynamically create QML
-items from files or strings. See \l{Dynamic Object Management} for an overview
+items from files or strings. See \l{Dynamic Object Management in QML} for an overview
 of their use.
 
 \list
@@ -257,7 +259,7 @@
   objectClass(0), valueTypeClass(0), globalClass(0), cleanup(0), erroredBindings(0),
   inProgressCreations(0), scriptEngine(this), workerScriptEngine(0), componentAttached(0),
   inBeginCreate(false), networkAccessManager(0), networkAccessManagerFactory(0),
-  typeManager(e), importDatabase(e), uniqueId(1)
+  typeLoader(e), importDatabase(e), uniqueId(1)
 {
     if (!qt_QmlQtModule_registered) {
         qt_QmlQtModule_registered = true;
@@ -301,7 +303,9 @@
         + QDir::separator() + QLatin1String("OfflineStorage");
 #endif
 
+#ifndef QT_NO_XMLSTREAMREADER
     qt_add_qmlxmlhttprequest(this);
+#endif
     qt_add_qmlsqldatabase(this);
     // XXX A Multimedia "Qt.Sound" class also needs to be made available,
     // XXX but we don't want a dependency in that cirection.
@@ -329,7 +333,7 @@
         qtObject.setProperty(QLatin1String("tint"), newFunction(QDeclarativeEnginePrivate::tint, 2));
     }
 
-#ifndef QT_NO_TEXTDATE
+#ifndef QT_NO_DATESTRING
     //date/time formatting
     qtObject.setProperty(QLatin1String("formatDate"),newFunction(QDeclarativeEnginePrivate::formatDate, 2));
     qtObject.setProperty(QLatin1String("formatTime"),newFunction(QDeclarativeEnginePrivate::formatTime, 2));
@@ -434,8 +438,6 @@
     pss.clear();
 }
 
-Q_GLOBAL_STATIC(QDeclarativeEngineDebugServer, qmlEngineDebugServer);
-
 void QDeclarativePrivate::qdeclarativeelement_destructor(QObject *o)
 {
     QObjectPrivate *p = QObjectPrivate::get(o);
@@ -477,9 +479,8 @@
 
     if (QCoreApplication::instance()->thread() == q->thread() &&
         QDeclarativeEngineDebugServer::isDebuggingEnabled()) {
-        qmlEngineDebugServer();
         isDebugging = true;
-        QDeclarativeEngineDebugServer::addEngine(q);
+        QDeclarativeEngineDebugServer::instance()->addEngine(q);
     }
 }
 
@@ -543,11 +544,11 @@
 {
     Q_D(QDeclarativeEngine);
     if (d->isDebugging)
-        QDeclarativeEngineDebugServer::remEngine(this);
+        QDeclarativeEngineDebugServer::instance()->remEngine(this);
 }
 
 /*! \fn void QDeclarativeEngine::quit()
-    This signal is emitted when the QDeclarativeEngine quits.
+    This signal is emitted when the QML loaded by the engine would like to quit.
  */
 
 /*! \fn void QDeclarativeEngine::warnings(const QList<QDeclarativeError> &warnings)
@@ -564,7 +565,7 @@
 void QDeclarativeEngine::clearComponentCache()
 {
     Q_D(QDeclarativeEngine);
-    d->typeManager.clearCache();
+    d->typeLoader.clearCache();
 }
 
 /*!
@@ -670,7 +671,7 @@
 {
     Q_D(QDeclarativeEngine);
     QMutexLocker locker(&d->mutex);
-    d->imageProviders.insert(providerId, provider);
+    d->imageProviders.insert(providerId, QSharedPointer<QDeclarativeImageProvider>(provider));
 }
 
 /*!
@@ -680,7 +681,7 @@
 {
     Q_D(const QDeclarativeEngine);
     QMutexLocker locker(&d->mutex);
-    return d->imageProviders.value(providerId);
+    return d->imageProviders.value(providerId).data();
 }
 
 /*!
@@ -694,13 +695,14 @@
 {
     Q_D(QDeclarativeEngine);
     QMutexLocker locker(&d->mutex);
-    delete d->imageProviders.take(providerId);
+    d->imageProviders.take(providerId);
 }
 
 QDeclarativeImageProvider::ImageType QDeclarativeEnginePrivate::getImageProviderType(const QUrl &url)
 {
     QMutexLocker locker(&mutex);
-    QDeclarativeImageProvider *provider = imageProviders.value(url.host());
+    QSharedPointer<QDeclarativeImageProvider> provider = imageProviders.value(url.host());
+    locker.unlock();
     if (provider)
         return provider->imageType();
     return static_cast<QDeclarativeImageProvider::ImageType>(-1);
@@ -710,7 +712,8 @@
 {
     QMutexLocker locker(&mutex);
     QImage image;
-    QDeclarativeImageProvider *provider = imageProviders.value(url.host());
+    QSharedPointer<QDeclarativeImageProvider> provider = imageProviders.value(url.host());
+    locker.unlock();
     if (provider)
         image = provider->requestImage(url.path().mid(1), size, req_size);
     return image;
@@ -720,7 +723,8 @@
 {
     QMutexLocker locker(&mutex);
     QPixmap pixmap;
-    QDeclarativeImageProvider *provider = imageProviders.value(url.host());
+    QSharedPointer<QDeclarativeImageProvider> provider = imageProviders.value(url.host());
+    locker.unlock();
     if (provider)
         pixmap = provider->requestPixmap(url.path().mid(1), size, req_size);
     return pixmap;
@@ -1104,29 +1108,20 @@
 \qmlmethod object Qt::createComponent(url)
 
 Returns a \l Component object created using the QML file at the specified \a url,
-or \c null if there was an error in creating the component.
+or \c null if an empty string was given.
+
+The returned component's \l Component::status property indicates whether the
+component was successfully created. If the status is \c Component.Error, 
+see \l Component::errorString() for an error description.
 
 Call \l {Component::createObject()}{Component.createObject()} on the returned
 component to create an object instance of the component.
 
-Here is an example. Notice it checks whether the component \l{Component::status}{status} is
-\c Component.Ready before calling \l {Component::createObject()}{createObject()}
-in case the QML file is loaded over a network and thus is not ready immediately.
+For example:
 
-\snippet doc/src/snippets/declarative/componentCreation.js vars
-\codeline
-\snippet doc/src/snippets/declarative/componentCreation.js func
-\snippet doc/src/snippets/declarative/componentCreation.js remote
-\snippet doc/src/snippets/declarative/componentCreation.js func-end
-\codeline
-\snippet doc/src/snippets/declarative/componentCreation.js finishCreation
+\snippet doc/src/snippets/declarative/createComponent-simple.qml 0
 
-If you are certain the QML file to be loaded is a local file, you could omit the \c finishCreation() 
-function and call \l {Component::createObject()}{createObject()} immediately:
-
-\snippet doc/src/snippets/declarative/componentCreation.js func
-\snippet doc/src/snippets/declarative/componentCreation.js local
-\snippet doc/src/snippets/declarative/componentCreation.js func-end
+See \l {Dynamic Object Management in QML} for more information on using this function.
 
 To create a QML object from an arbitrary string of QML (instead of a file),
 use \l{QML:Qt::createQmlObject()}{Qt.createQmlObject()}.
@@ -1177,6 +1172,8 @@
 Note that this function returns immediately, and therefore may not work if
 the \a qml string loads new components (that is, external QML files that have not yet been loaded).
 If this is the case, consider using \l{QML:Qt::createComponent()}{Qt.createComponent()} instead.
+
+See \l {Dynamic Object Management in QML} for more information on using this function.
 */
 
 QScriptValue QDeclarativeEnginePrivate::createQmlObject(QScriptContext *ctxt, QScriptEngine *engine)
@@ -1301,7 +1298,7 @@
 \qmlmethod string Qt::formatDate(datetime date, variant format)
 Returns the string representation of \c date, formatted according to \c format.
 */
-#ifndef QT_NO_TEXTDATE
+#ifndef QT_NO_DATESTRING
 QScriptValue QDeclarativeEnginePrivate::formatDate(QScriptContext*ctxt, QScriptEngine*engine)
 {
     int argCount = ctxt->argumentCount();
@@ -1442,7 +1439,7 @@
     }
     return engine->newVariant(qVariantFromValue(date.toString(enumFormat)));
 }
-#endif // QT_NO_TEXTDATE
+#endif // QT_NO_DATESTRING
 
 /*!
 \qmlmethod color Qt::rgba(real red, real green, real blue, real alpha)
@@ -1719,6 +1716,9 @@
 {
     Q_Q(QDeclarativeEngine);
     emit q->quit();
+    if (q->receivers(SIGNAL(quit())) == 0) {
+        qWarning("Signal QDeclarativeEngine::quit() emitted, but no receivers connected to handle it.");
+    }
 }
 
 static void dumpwarning(const QDeclarativeError &error)
@@ -2079,7 +2079,7 @@
     QByteArray name = data->root->className();
 
     QByteArray ptr = name + '*';
-    QByteArray lst = "QDeclarativeListProperty<" + name + ">";
+    QByteArray lst = "QDeclarativeListProperty<" + name + '>';
 
     int ptr_type = QMetaType::registerType(ptr.constData(), voidptr_destructor,
                                            voidptr_constructor);
@@ -2113,7 +2113,7 @@
 QObject *QDeclarativeEnginePrivate::toQObject(const QVariant &v, bool *ok) const
 {
     int t = v.userType();
-    if (m_compositeTypes.contains(t)) {
+    if (t == QMetaType::QObjectStar || m_compositeTypes.contains(t)) {
         if (ok) *ok = true;
         return *(QObject **)(v.constData());
     } else {
--- a/src/declarative/qml/qdeclarativeengine_p.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/qml/qdeclarativeengine_p.h	Mon Oct 04 01:19:32 2010 +0300
@@ -56,7 +56,7 @@
 #include "qdeclarativeengine.h"
 
 #include "private/qdeclarativeclassfactory_p.h"
-#include "private/qdeclarativecompositetypemanager_p.h"
+#include "private/qdeclarativetypeloader_p.h"
 #include "private/qdeclarativeimport_p.h"
 #include "private/qpodvector_p.h"
 #include "qdeclarative.h"
@@ -232,14 +232,14 @@
     mutable QNetworkAccessManager *networkAccessManager;
     mutable QDeclarativeNetworkAccessManagerFactory *networkAccessManagerFactory;
 
-    QHash<QString,QDeclarativeImageProvider*> imageProviders;
+    QHash<QString,QSharedPointer<QDeclarativeImageProvider> > imageProviders;
     QDeclarativeImageProvider::ImageType getImageProviderType(const QUrl &url);
     QImage getImageFromProvider(const QUrl &url, QSize *size, const QSize& req_size);
     QPixmap getPixmapFromProvider(const QUrl &url, QSize *size, const QSize& req_size);
 
     mutable QMutex mutex;
 
-    QDeclarativeCompositeTypeManager typeManager;
+    QDeclarativeTypeLoader typeLoader;
     QDeclarativeImportDatabase importDatabase;
 
     QString offlineStoragePath;
@@ -304,7 +304,7 @@
     static QScriptValue consoleLog(QScriptContext*, QScriptEngine*);
     static QScriptValue quit(QScriptContext*, QScriptEngine*);
 
-#ifndef QT_NO_TEXTDATE
+#ifndef QT_NO_DATESTRING
     static QScriptValue formatDate(QScriptContext*, QScriptEngine*);
     static QScriptValue formatTime(QScriptContext*, QScriptEngine*);
     static QScriptValue formatDateTime(QScriptContext*, QScriptEngine*);
--- a/src/declarative/qml/qdeclarativeenginedebug.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/qml/qdeclarativeenginedebug.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -58,7 +58,13 @@
 
 QT_BEGIN_NAMESPACE
 
-QList<QDeclarativeEngine *> QDeclarativeEngineDebugServer::m_engines;
+Q_GLOBAL_STATIC(QDeclarativeEngineDebugServer, qmlEngineDebugServer);
+
+QDeclarativeEngineDebugServer *QDeclarativeEngineDebugServer::instance()
+{
+    return qmlEngineDebugServer();
+}
+
 QDeclarativeEngineDebugServer::QDeclarativeEngineDebugServer(QObject *parent)
 : QDeclarativeDebugService(QLatin1String("QDeclarativeEngine"), parent),
     m_watch(new QDeclarativeWatcher(this))
@@ -182,7 +188,7 @@
 }
 
 void QDeclarativeEngineDebugServer::buildObjectDump(QDataStream &message, 
-                                           QObject *object, bool recur)
+                                           QObject *object, bool recur, bool dumpProperties)
 {
     message << objectData(object);
 
@@ -209,6 +215,8 @@
             continue;
         QDeclarativeBoundSignal *signal = QDeclarativeBoundSignal::cast(child);
         if (signal) {
+            if (!dumpProperties)
+                continue;
             QDeclarativeObjectProperty prop;
             prop.type = QDeclarativeObjectProperty::SignalProperty;
             prop.hasNotifySignal = false;
@@ -229,12 +237,17 @@
             fakeProperties << prop;
         } else {
             if (recur)
-                buildObjectDump(message, child, recur);
+                buildObjectDump(message, child, recur, dumpProperties);
             else
                 message << objectData(child);
         }
     }
 
+    if (!dumpProperties) {
+        message << 0;
+        return;
+    }
+
     message << (object->metaObject()->propertyCount() + fakeProperties.count());
 
     for (int ii = 0; ii < object->metaObject()->propertyCount(); ++ii) 
@@ -257,8 +270,7 @@
 
     QDeclarativeContextData *child = p->childContexts;
     while (child) {
-        if (!child->isInternal)
-            ++count;
+        ++count;
         child = child->nextChild;
     }
 
@@ -266,8 +278,7 @@
 
     child = p->childContexts;
     while (child) {
-        if (!child->isInternal) 
-            buildObjectList(message, child->asQDeclarativeContext());
+        buildObjectList(message, child->asQDeclarativeContext());
         child = child->nextChild;
     }
 
@@ -372,8 +383,9 @@
         int queryId;
         int objectId;
         bool recurse;
+        bool dumpProperties = true;
 
-        ds >> queryId >> objectId >> recurse;
+        ds >> queryId >> objectId >> recurse >> dumpProperties;
 
         QObject *object = QDeclarativeDebugService::objectForId(objectId);
 
@@ -382,7 +394,7 @@
         rs << QByteArray("FETCH_OBJECT_R") << queryId;
 
         if (object) 
-            buildObjectDump(rs, object, recurse);
+            buildObjectDump(rs, object, recurse, dumpProperties);
 
         sendMessage(reply);
     } else if (type == "WATCH_OBJECT") {
@@ -485,24 +497,22 @@
 
     if (object && context) {
 
+        QDeclarativeProperty property(object, propertyName, context);
         if (isLiteralValue) {
-            QDeclarativeProperty literalProperty(object, propertyName, context);
-            literalProperty.write(expression);
+            property.write(expression);
+        } else if (hasValidSignal(object, propertyName)) {
+            QDeclarativeExpression *declarativeExpression = new QDeclarativeExpression(context, object, expression.toString());
+            QDeclarativePropertyPrivate::setSignalExpression(property, declarativeExpression);
+        } else if (property.isProperty()) {
+            QDeclarativeBinding *binding = new QDeclarativeBinding(expression.toString(), object, context);
+            binding->setTarget(property);
+            binding->setNotifyOnValueChanged(true);
+            QDeclarativeAbstractBinding *oldBinding = QDeclarativePropertyPrivate::setBinding(property, binding);
+            if (oldBinding)
+                oldBinding->destroy();
+            binding->update();
         } else {
-            if (hasValidSignal(object, propertyName)) {
-                QDeclarativeProperty property(object, propertyName);
-                QDeclarativeExpression *declarativeExpression = new QDeclarativeExpression(context, object, expression.toString());
-                QDeclarativePropertyPrivate::setSignalExpression(property, declarativeExpression);
-            } else {
-                QDeclarativeBinding *binding = new QDeclarativeBinding(expression.toString(), object, context);
-                QDeclarativeProperty property(object, propertyName, context);
-                binding->setTarget(property);
-                binding->setNotifyOnValueChanged(true);
-                QDeclarativeAbstractBinding *oldBinding = QDeclarativePropertyPrivate::setBinding(property, binding);
-                if (oldBinding)
-                    oldBinding->destroy();
-                binding->update();
-            }
+            qWarning() << "QDeclarativeEngineDebugServer::setBinding: unable to set property" << propertyName << "on object" << object;
         }
     }
 }
@@ -594,4 +604,19 @@
     m_engines.removeAll(engine);
 }
 
+void QDeclarativeEngineDebugServer::objectCreated(QDeclarativeEngine *engine, QObject *object)
+{
+    Q_ASSERT(engine);
+    Q_ASSERT(m_engines.contains(engine));
+
+    int engineId = QDeclarativeDebugService::idForObject(engine);
+    int objectId = QDeclarativeDebugService::idForObject(object);
+
+    QByteArray reply;
+    QDataStream rs(&reply, QIODevice::WriteOnly);
+
+    rs << QByteArray("OBJECT_CREATED") << engineId << objectId;
+    sendMessage(reply);
+}
+
 QT_END_NAMESPACE
--- a/src/declarative/qml/qdeclarativeenginedebug_p.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/qml/qdeclarativeenginedebug_p.h	Mon Oct 04 01:19:32 2010 +0300
@@ -92,8 +92,11 @@
         bool hasNotifySignal;
     };
 
-    static void addEngine(QDeclarativeEngine *);
-    static void remEngine(QDeclarativeEngine *);
+    void addEngine(QDeclarativeEngine *);
+    void remEngine(QDeclarativeEngine *);
+    void objectCreated(QDeclarativeEngine *, QObject *);
+
+    static QDeclarativeEngineDebugServer *instance();
 
 protected:
     virtual void messageReceived(const QByteArray &);
@@ -103,7 +106,7 @@
 
 private:
     void buildObjectList(QDataStream &, QDeclarativeContext *);
-    void buildObjectDump(QDataStream &, QObject *, bool);
+    void buildObjectDump(QDataStream &, QObject *, bool, bool);
     QDeclarativeObjectData objectData(QObject *);
     QDeclarativeObjectProperty propertyData(QObject *, int);
     QVariant valueContents(const QVariant &defaultValue) const;
@@ -111,7 +114,7 @@
     void resetBinding(int objectId, const QString &propertyName);
     void setMethodBody(int objectId, const QString &method, const QString &body);
 
-    static QList<QDeclarativeEngine *> m_engines;
+    QList<QDeclarativeEngine *> m_engines;
     QDeclarativeWatcher *m_watch;
 };
 Q_DECLARATIVE_EXPORT QDataStream &operator<<(QDataStream &, const QDeclarativeEngineDebugServer::QDeclarativeObjectData &);
--- a/src/declarative/qml/qdeclarativeerror.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/qml/qdeclarativeerror.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -250,7 +250,9 @@
         if (f.open(QIODevice::ReadOnly)) {
             QByteArray data = f.readAll();
             QTextStream stream(data, QIODevice::ReadOnly);
+#ifndef QT_NO_TEXTCODEC
             stream.setCodec("UTF-8");
+#endif
             const QString code = stream.readAll();
             const QStringList lines = code.split(QLatin1Char('\n'));
 
--- a/src/declarative/qml/qdeclarativeexpression.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/qml/qdeclarativeexpression.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -143,16 +143,12 @@
 
     } else {
 
-#if !defined(Q_OS_SYMBIAN) //XXX Why doesn't this work?
         if (!dd->cachedPrograms.at(progIdx)) {
             dd->cachedPrograms[progIdx] = new QScriptProgram(expression, url, line);
         }
 
         expressionFunction = evalInObjectScope(ctxt, me, *dd->cachedPrograms.at(progIdx), 
                                                      &expressionContext);
-#else
-        expressionFunction = evalInObjectScope(ctxt, me, expression, &expressionContext);
-#endif
 
         expressionFunctionMode = ExplicitContext;
         expressionFunctionValid = true;
@@ -604,6 +600,7 @@
         scriptContext->pushScope(ep->globalClass->staticGlobalObject());
 
         QDeclarativeRewrite::RewriteBinding rewriteBinding;
+        rewriteBinding.setName(name);
         bool ok = true;
         const QString code = rewriteBinding(expression, &ok);
         if (ok) 
--- a/src/declarative/qml/qdeclarativeexpression_p.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/qml/qdeclarativeexpression_p.h	Mon Oct 04 01:19:32 2010 +0300
@@ -194,6 +194,7 @@
 
     QString url; // This is a QString for a reason.  QUrls are slooooooow...
     int line;
+    QByteArray name; //function name, hint for the debugger
 };
 
 QDeclarativeQtScriptExpression::DeleteWatcher::DeleteWatcher(QDeclarativeQtScriptExpression *data)
--- a/src/declarative/qml/qdeclarativeextensionplugin.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/qml/qdeclarativeextensionplugin.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -60,7 +60,7 @@
     \o Subclass QDeclarativeExtensionPlugin, implement registerTypes() method
     to register types using qmlRegisterType(), and export the class using the Q_EXPORT_PLUGIN2() macro
     \o Write an appropriate project file for the plugin
-    \o Create a \l{The qmldir file}{qmldir file} to describe the plugin
+    \o Create a \l{Writing a qmldir file}{qmldir file} to describe the plugin
     \endlist
 
     QML extension plugins can be used to provide either application-specific or
@@ -79,7 +79,7 @@
     \dots
 
     To make this class available as a QML type, create a plugin that registers
-    this type using qmlRegisterType(). For this example the plugin
+    this type with a specific \l {QML Modules}{module} using qmlRegisterType(). For this example the plugin
     module will be named \c com.nokia.TimeExample (as defined in the project
     file further below).
 
@@ -104,7 +104,7 @@
     ...
     \endcode    
 
-    Finally, a \l{The qmldir file}{qmldir file} is required in the \c com/nokia/TimeExample directory
+    Finally, a \l{Writing a qmldir file}{qmldir file} is required in the \c com/nokia/TimeExample directory
     that describes the plugin. This directory includes a \c Clock.qml file that
     should be bundled with the plugin, so it needs to be specified in the \c qmldir
     file:
--- a/src/declarative/qml/qdeclarativeimageprovider.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/qml/qdeclarativeimageprovider.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -59,13 +59,13 @@
 
     \list
     \o Loaded using QPixmaps rather than actual image files
-    \o Loaded asynchronously in a separate thread, if imageType() is \l ImageType::Image
+    \o Loaded asynchronously in a separate thread, if imageType() is \l{QDeclarativeImageProvider::ImageType}{ImageType::Image}
     \endlist
 
     To specify that an image should be loaded by an image provider, use the
     \bold {"image:"} scheme for the URL source of the image, followed by the 
     identifiers of the image provider and the requested image. For example:
-   
+
     \qml
     Image { source: "image://myimageprovider/image.png" }
     \endqml
@@ -83,7 +83,7 @@
     and "red", respectively:
 
     \snippet examples/declarative/cppextensions/imageprovider/imageprovider-example.qml 0
- 
+
     When these images are loaded by QML, it looks for a matching image provider
     and calls its requestImage() or requestPixmap() method (depending on its
     imageType()) to load the image. The method is called with the \c id 
@@ -112,7 +112,7 @@
     }
     \endcode
 
-    Now the images can be succesfully loaded in QML:
+    Now the images can be successfully loaded in QML:
 
     \image imageprovider.png
 
@@ -136,7 +136,7 @@
     main thread. In this case, if \l {Image::}{asynchronous} is set to 
     \c true, the value is ignored and the image is loaded
     synchronously.
-   
+
     \sa QDeclarativeEngine::addImageProvider()
 */
 
@@ -161,7 +161,9 @@
 }
 
 /*!
-   \internal
+    Destroys the QDeclarativeImageProvider
+
+    \note The destructor of your derived class need to be thread safe.
 */
 QDeclarativeImageProvider::~QDeclarativeImageProvider()
 {
@@ -212,9 +214,6 @@
     In all cases, \a size must be set to the original size of the image. This
     is used to set the \l {Item::}{width} and \l {Item::}{height} of image
     elements that should be automatically sized to the loaded image.
-
-    \note this method may be called by multiple threads, so ensure the
-    implementation of this method is reentrant.
 */
 QPixmap QDeclarativeImageProvider::requestPixmap(const QString &id, QSize *size, const QSize& requestedSize)
 {
--- a/src/declarative/qml/qdeclarativeimport.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/qml/qdeclarativeimport.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -109,6 +109,11 @@
     QHash<QString,QDeclarativeImportedNamespace* > set;
 };
 
+/*!
+\class QDeclarativeImports
+\brief The QDeclarativeImports class encapsulates one QML document's import statements.
+\internal
+*/
 QDeclarativeImports::QDeclarativeImports(const QDeclarativeImports &copy) 
 : d(copy.d)
 {
@@ -181,7 +186,7 @@
     return cache;
 }
 
-void QDeclarativeImports::cache(QDeclarativeTypeNameCache *cache, QDeclarativeEngine *engine) const
+void QDeclarativeImports::populateCache(QDeclarativeTypeNameCache *cache, QDeclarativeEngine *engine) const
 {
     const QDeclarativeImportedNamespace &set = d->unqualifiedset;
 
@@ -201,6 +206,67 @@
 
     cacheForNamespace(engine, set, cache);
 }
+
+/*!
+  \internal
+
+  The given (namespace qualified) \a type is resolved to either
+  \list
+  \o a QDeclarativeImportedNamespace stored at \a ns_return,
+  \o a QDeclarativeType stored at \a type_return, or
+  \o a component located at \a url_return.
+  \endlist
+
+  If any return pointer is 0, the corresponding search is not done.
+
+  \sa addImport()
+*/
+bool QDeclarativeImports::resolveType(const QByteArray& type, 
+                                      QDeclarativeType** type_return, QUrl* url_return, int *vmaj, int *vmin,
+                                      QDeclarativeImportedNamespace** ns_return, QString *errorString) const
+{
+    QDeclarativeImportedNamespace* ns = d->findNamespace(QString::fromUtf8(type));
+    if (ns) {
+        if (ns_return)
+            *ns_return = ns;
+        return true;
+    }
+    if (type_return || url_return) {
+        if (d->find(type,vmaj,vmin,type_return,url_return, errorString)) {
+            if (qmlImportTrace()) {
+                if (type_return && *type_return && url_return && !url_return->isEmpty())
+                    qDebug().nospace() << "QDeclarativeImports(" << qPrintable(baseUrl().toString()) << ")" << "::resolveType: " 
+                                       << type << " => " << (*type_return)->typeName() << " " << *url_return;
+                if (type_return && *type_return)
+                    qDebug().nospace() << "QDeclarativeImports(" << qPrintable(baseUrl().toString()) << ")" << "::resolveType: " 
+                                       << type << " => " << (*type_return)->typeName();
+                if (url_return && !url_return->isEmpty())
+                    qDebug().nospace() << "QDeclarativeImports(" << qPrintable(baseUrl().toString()) << ")" << "::resolveType: " 
+                                       << type << " => " << *url_return;
+            }
+            return true;
+        }
+    }
+    return false;
+}
+
+/*!
+  \internal
+
+  Searching \e only in the namespace \a ns (previously returned in a call to
+  resolveType(), \a type is found and returned to either
+  a QDeclarativeType stored at \a type_return, or
+  a component located at \a url_return.
+
+  If either return pointer is 0, the corresponding search is not done.
+*/
+bool QDeclarativeImports::resolveType(QDeclarativeImportedNamespace* ns, const QByteArray& type, 
+                                      QDeclarativeType** type_return, QUrl* url_return, 
+                                      int *vmaj, int *vmin) const
+{
+    return ns->find(type,vmaj,vmin,type_return,url_return);
+}
+
 bool QDeclarativeImportedNamespace::find_helper(int i, const QByteArray& type, int *vmajor, int *vminor,
                                  QDeclarativeType** type_return, QUrl* url_return,
                                  QUrl *base, bool *typeRecursionDetected)
@@ -280,15 +346,16 @@
 }
 
 bool QDeclarativeImportsPrivate::importExtension(const QString &absoluteFilePath, const QString &uri, 
-                                                  QDeclarativeImportDatabase *database, 
-                                                  QDeclarativeDirComponents* components, QString *errorString) 
+                                                 QDeclarativeImportDatabase *database, 
+                                                 QDeclarativeDirComponents* components, QString *errorString) 
 {
     QFile file(absoluteFilePath);
     QString filecontent;
     if (file.open(QFile::ReadOnly)) {
         filecontent = QString::fromUtf8(file.readAll());
         if (qmlImportTrace())
-            qDebug() << "QDeclarativeImportDatabase::add: loaded" << absoluteFilePath;
+            qDebug().nospace() << "QDeclarativeImports(" << qPrintable(base.toString()) << "::importExtension: "
+                               << "loaded " << absoluteFilePath;
     } else {
         if (errorString)
             *errorString = QDeclarativeImportDatabase::tr("module \"%1\" definition \"%2\" not readable").arg(uri).arg(absoluteFilePath);
@@ -338,7 +405,7 @@
     qSort(paths.begin(), paths.end(), greaterThan); // Ensure subdirs preceed their parents.
 
     QString stableRelativePath = dir;
-    foreach( QString path, paths) {
+    foreach(const QString &path, paths) {
         if (dir.startsWith(path)) {
             stableRelativePath = dir.mid(path.length()+1);
             break;
@@ -576,6 +643,10 @@
     return false;
 }
 
+/*!
+\class QDeclarativeImportDatabase
+\brief The QDeclarativeImportDatabase class manages the QML imports for a QDeclarativeEngine.
+*/
 QDeclarativeImportDatabase::QDeclarativeImportDatabase(QDeclarativeEngine *e)
 : engine(e)
 {
@@ -619,75 +690,19 @@
 
   The base URL must already have been set with Import::setBaseUrl().
 */
-bool QDeclarativeImportDatabase::addToImport(QDeclarativeImports* imports, 
-                                             const QDeclarativeDirComponents &qmldircomponentsnetwork, 
-                                             const QString& uri, const QString& prefix, int vmaj, int vmin, 
-                                             QDeclarativeScriptParser::Import::Type importType, 
-                                             QString *errorString) 
+bool QDeclarativeImports::addImport(QDeclarativeImportDatabase *importDb, 
+                                    const QString& uri, const QString& prefix, int vmaj, int vmin, 
+                                    QDeclarativeScriptParser::Import::Type importType, 
+                                    const QDeclarativeDirComponents &qmldircomponentsnetwork, 
+                                    QString *errorString) 
 {
     if (qmlImportTrace())
-        qDebug().nospace() << "QDeclarativeImportDatabase::addToImport " << imports << " " << uri << " " 
-                           << vmaj << '.' << vmin << " " 
+        qDebug().nospace() << "QDeclarativeImports(" << qPrintable(baseUrl().toString()) << ")" << "::addImport: " 
+                           << uri << " " << vmaj << '.' << vmin << " " 
                            << (importType==QDeclarativeScriptParser::Import::Library? "Library" : "File") 
                            << " as " << prefix;
 
-    bool ok = imports->d->add(qmldircomponentsnetwork, uri, prefix, vmaj, vmin, importType, this, errorString);
-    return ok;
-}
-
-/*!
-  \internal
-
-  Using the given \a imports, the given (namespace qualified) \a type is resolved to either
-  a QDeclarativeImportedNamespace stored at \a ns_return,
-  a QDeclarativeType stored at \a type_return, or
-  a component located at \a url_return.
-
-  If any return pointer is 0, the corresponding search is not done.
-
-  \sa addToImport()
-*/
-bool QDeclarativeImportDatabase::resolveType(const QDeclarativeImports& imports, const QByteArray& type, 
-                                             QDeclarativeType** type_return, QUrl* url_return, int *vmaj, int *vmin,
-                                             QDeclarativeImportedNamespace** ns_return, QString *errorString) const
-{
-    QDeclarativeImportedNamespace* ns = imports.d->findNamespace(QString::fromUtf8(type));
-    if (ns) {
-        if (ns_return)
-            *ns_return = ns;
-        return true;
-    }
-    if (type_return || url_return) {
-        if (imports.d->find(type,vmaj,vmin,type_return,url_return, errorString)) {
-            if (qmlImportTrace()) {
-                if (type_return && *type_return && url_return && !url_return->isEmpty())
-                    qDebug() << "QDeclarativeImportDatabase::resolveType" << type << '=' << (*type_return)->typeName() << *url_return;
-                if (type_return && *type_return)
-                    qDebug() << "QDeclarativeImportDatabase::resolveType" << type << '=' << (*type_return)->typeName();
-                if (url_return && !url_return->isEmpty())
-                    qDebug() << "QDeclarativeImportDatabase::resolveType" << type << '=' << *url_return;
-            }
-            return true;
-        }
-    }
-    return false;
-}
-
-/*!
-  \internal
-
-  Searching \e only in the namespace \a ns (previously returned in a call to
-  resolveType(), \a type is found and returned to either
-  a QDeclarativeType stored at \a type_return, or
-  a component located at \a url_return.
-
-  If either return pointer is 0, the corresponding search is not done.
-*/
-bool QDeclarativeImportDatabase::resolveTypeInNamespace(QDeclarativeImportedNamespace* ns, const QByteArray& type, 
-                                                        QDeclarativeType** type_return, QUrl* url_return, 
-                                                        int *vmaj, int *vmin) const
-{
-    return ns->find(type,vmaj,vmin,type_return,url_return);
+    return d->add(qmldircomponentsnetwork, uri, prefix, vmaj, vmin, importType, importDb, errorString);
 }
 
 /*!
@@ -834,7 +849,7 @@
 void QDeclarativeImportDatabase::addPluginPath(const QString& path)
 {
     if (qmlImportTrace())
-        qDebug() << "QDeclarativeImportDatabase::addPluginPath" << path;
+        qDebug().nospace() << "QDeclarativeImportDatabase::addPluginPath: " << path;
 
     QUrl url = QUrl(path);
     if (url.isRelative() || url.scheme() == QLatin1String("file")) {
@@ -848,7 +863,7 @@
 void QDeclarativeImportDatabase::addImportPath(const QString& path)
 {
     if (qmlImportTrace())
-        qDebug() << "QDeclarativeImportDatabase::addImportPath" << path;
+        qDebug().nospace() << "QDeclarativeImportDatabase::addImportPath: " << path;
 
     if (path.isEmpty())
         return;
@@ -882,7 +897,7 @@
 bool QDeclarativeImportDatabase::importPlugin(const QString &filePath, const QString &uri, QString *errorString)
 {
     if (qmlImportTrace())
-        qDebug() << "QDeclarativeImportDatabase::importPlugin" << uri << "from" << filePath;
+        qDebug().nospace() << "QDeclarativeImportDatabase::importPlugin: " << uri << " from " << filePath;
 
     QFileInfo fileInfo(filePath);
     const QString absoluteFilePath = fileInfo.absoluteFilePath();
--- a/src/declarative/qml/qdeclarativeimport_p.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/qml/qdeclarativeimport_p.h	Mon Oct 04 01:19:32 2010 +0300
@@ -65,9 +65,10 @@
 class QDeclarativeTypeNameCache;
 class QDeclarativeEngine;
 class QDir;
-
 class QDeclarativeImportedNamespace;
 class QDeclarativeImportsPrivate;
+class QDeclarativeImportDatabase;
+
 class QDeclarativeImports
 {
 public:
@@ -79,7 +80,24 @@
     void setBaseUrl(const QUrl &url);
     QUrl baseUrl() const;
 
-    void cache(QDeclarativeTypeNameCache *cache, QDeclarativeEngine *) const;
+    bool resolveType(const QByteArray& type,
+                     QDeclarativeType** type_return, QUrl* url_return,
+                     int *version_major, int *version_minor,
+                     QDeclarativeImportedNamespace** ns_return,
+                     QString *errorString = 0) const;
+    bool resolveType(QDeclarativeImportedNamespace*, 
+                     const QByteArray& type,
+                     QDeclarativeType** type_return, QUrl* url_return,
+                     int *version_major, int *version_minor) const;
+
+    bool addImport(QDeclarativeImportDatabase *, 
+                   const QString& uri, const QString& prefix, int vmaj, int vmin, 
+                   QDeclarativeScriptParser::Import::Type importType,
+                   const QDeclarativeDirComponents &qmldircomponentsnetwork, 
+                   QString *errorString);
+
+    void populateCache(QDeclarativeTypeNameCache *cache, QDeclarativeEngine *) const;
+
 private:
     friend class QDeclarativeImportDatabase;
     QDeclarativeImportsPrivate *d;
@@ -102,21 +120,6 @@
     void setPluginPathList(const QStringList &paths);
     void addPluginPath(const QString& path);
 
-
-    bool addToImport(QDeclarativeImports*, const QDeclarativeDirComponents &qmldircomponentsnetwork, 
-                     const QString& uri, const QString& prefix, int vmaj, int vmin, 
-                     QDeclarativeScriptParser::Import::Type importType,
-                     QString *errorString);
-    bool resolveType(const QDeclarativeImports&, const QByteArray& type,
-                     QDeclarativeType** type_return, QUrl* url_return,
-                     int *version_major, int *version_minor,
-                     QDeclarativeImportedNamespace** ns_return,
-                     QString *errorString = 0) const;
-    bool resolveTypeInNamespace(QDeclarativeImportedNamespace*, const QByteArray& type,
-                                QDeclarativeType** type_return, QUrl* url_return,
-                                int *version_major, int *version_minor ) const;
-
-
 private:
     friend class QDeclarativeImportsPrivate;
     QString resolvePlugin(const QDir &qmldirPath, const QString &qmldirPluginPath, 
--- a/src/declarative/qml/qdeclarativeinfo.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/qml/qdeclarativeinfo.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -53,6 +53,7 @@
 
 /*!
     \fn QDeclarativeInfo qmlInfo(const QObject *object)
+    \relates QDeclarativeEngine
 
     \brief Prints warnings messages that include the file and line number for QML types.
 
--- a/src/declarative/qml/qdeclarativeinstruction.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/qml/qdeclarativeinstruction.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -218,7 +218,7 @@
         qWarning().nospace() << idx << "\t\t" << line << "\t" << "DEFER" << "\t\t\t" << instr->defer.deferCount;
         break;
     default:
-        qWarning().nospace() << idx << "\t\t" << line << "\t" << "XXX UNKOWN INSTRUCTION" << "\t" << instr->type;
+        qWarning().nospace() << idx << "\t\t" << line << "\t" << "XXX UNKNOWN INSTRUCTION" << "\t" << instr->type;
         break;
     }
 #endif // QT_NO_DEBUG_STREAM
--- a/src/declarative/qml/qdeclarativeinstruction_p.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/qml/qdeclarativeinstruction_p.h	Mon Oct 04 01:19:32 2010 +0300
@@ -292,7 +292,8 @@
     struct StoreSignalInstruction {
         int signalIndex;
         int value;
-        int context;
+        short context;
+        int name;
     };
     struct AssignSignalObjectInstruction {
         int signal;
--- a/src/declarative/qml/qdeclarativelist.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/qml/qdeclarativelist.h	Mon Oct 04 01:19:32 2010 +0300
@@ -98,16 +98,16 @@
 
 private:
     static void qlist_append(QDeclarativeListProperty *p, T *v) {
-        ((QList<T *> *)p->data)->append(v);
+        reinterpret_cast<QList<T *> *>(p->data)->append(v);
     }
     static int qlist_count(QDeclarativeListProperty *p) {
-        return ((QList<T *> *)p->data)->count();
+        return reinterpret_cast<QList<T *> *>(p->data)->count();
     }
     static T *qlist_at(QDeclarativeListProperty *p, int idx) {
-        return ((QList<T *> *)p->data)->at(idx);
+        return reinterpret_cast<QList<T *> *>(p->data)->at(idx);
     }
     static void qlist_clear(QDeclarativeListProperty *p) {
-        return ((QList<T *> *)p->data)->clear();
+        return reinterpret_cast<QList<T *> *>(p->data)->clear();
     }
 };
 #endif
--- a/src/declarative/qml/qdeclarativemetatype_p.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/qml/qdeclarativemetatype_p.h	Mon Oct 04 01:19:32 2010 +0300
@@ -149,10 +149,8 @@
 private:
     friend class QDeclarativeTypePrivate;
     friend struct QDeclarativeMetaTypeData;
-    //friend int QDeclarativePrivate::registerType(const QDeclarativePrivate::RegisterInterface &);
-    //Q_DECLARATIVE_EXPORT friend int registerType(const QDeclarativePrivate::RegisterType &);
     Q_DECLARATIVE_EXPORT friend int registerType(const QDeclarativePrivate::RegisterType &);
-    friend int registerInterface(const QDeclarativePrivate::RegisterInterface &);
+    Q_DECLARATIVE_EXPORT friend int registerInterface(const QDeclarativePrivate::RegisterInterface &);
     QDeclarativeType(int, const QDeclarativePrivate::RegisterInterface &);
     QDeclarativeType(int, const QDeclarativePrivate::RegisterType &);
     ~QDeclarativeType();
--- a/src/declarative/qml/qdeclarativeobjectscriptclass.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/qml/qdeclarativeobjectscriptclass.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -192,7 +192,7 @@
     if (!(hints & ImplicitObject)) {
         local.coreIndex = -1;
         lastData = &local;
-        return QScriptClass::HandlesReadAccess | QScriptClass::HandlesWriteAccess;
+        return QScriptClass::HandlesWriteAccess;
     }
 
     return 0;
@@ -625,11 +625,12 @@
 
     char data[4 * sizeof(void *)];
     int type;
+    bool isObjectType;
 };
 }
 
 MetaCallArgument::MetaCallArgument()
-: type(QVariant::Invalid)
+: type(QVariant::Invalid), isObjectType(false)
 {
 }
 
@@ -744,12 +745,23 @@
         new (&data) QVariant();
         type = -1;
 
-        QVariant v = QDeclarativeEnginePrivate::get(engine)->scriptValueToVariant(value);
+        QDeclarativeEnginePrivate *priv = QDeclarativeEnginePrivate::get(engine);
+        QVariant v = priv->scriptValueToVariant(value);
         if (v.userType() == callType) {
             *((QVariant *)&data) = v;
         } else if (v.canConvert((QVariant::Type)callType)) {
             *((QVariant *)&data) = v;
             ((QVariant *)&data)->convert((QVariant::Type)callType);
+        } else if (const QMetaObject *mo = priv->rawMetaObjectForType(callType)) {
+            QObject *obj = priv->toQObject(v);
+            
+            if (obj) {
+                const QMetaObject *objMo = obj->metaObject();
+                while (objMo && objMo != mo) objMo = objMo->superClass();
+                if (!objMo) obj = 0;
+            }
+
+            *((QVariant *)&data) = QVariant(callType, &obj);
         } else {
             *((QVariant *)&data) = QVariant(callType, (void *)0);
         }
--- a/src/declarative/qml/qdeclarativeparser_p.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/qml/qdeclarativeparser_p.h	Mon Oct 04 01:19:32 2010 +0300
@@ -183,10 +183,9 @@
             };
             Q_DECLARE_FLAGS(Pragmas, Pragma)
 
-            QStringList codes;
-            QStringList files;
-            QList<int> lineNumbers;
-            QList<Pragmas> pragmas;
+            QString code;
+            QString file;
+            Pragmas pragmas;
         };
 
         // The bytes to cast instances by to get to the QDeclarativeParserStatus 
--- a/src/declarative/qml/qdeclarativeprivate.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/qml/qdeclarativeprivate.h	Mon Oct 04 01:19:32 2010 +0300
@@ -105,7 +105,7 @@
     template<class From, class To>
     struct StaticCastSelectorClass<From, To, sizeof(int)>
     {
-        static inline int cast() { return (int)((intptr_t)static_cast<To *>((From *)0x10000000)) - 0x10000000; }
+        static inline int cast() { return int(reinterpret_cast<intptr_t>(static_cast<To *>(reinterpret_cast<From *>(0x10000000)))) - 0x10000000; }
     };
 
     template<class From, class To>
@@ -119,7 +119,7 @@
 
         static inline int cast()
         {
-            return StaticCastSelectorClass<From, To, sizeof(check((From *)0))>::cast();
+            return StaticCastSelectorClass<From, To, sizeof(check(reinterpret_cast<From *>(0)))>::cast();
         }
     };
 
@@ -132,6 +132,7 @@
     template <typename T, bool hasMember>
     class has_attachedPropertiesMethod 
     {
+    public:
         typedef int yes_type;
         typedef char no_type;
 
@@ -139,7 +140,6 @@
         static yes_type check(ReturnType *(*)(QObject *));
         static no_type check(...);
 
-    public:
         static bool const value = sizeof(check(&T::qmlAttachedProperties)) == sizeof(yes_type);
     }; 
 
--- a/src/declarative/qml/qdeclarativeproperty.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/qml/qdeclarativeproperty.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -42,7 +42,6 @@
 #include "qdeclarativeproperty.h"
 #include "private/qdeclarativeproperty_p.h"
 
-#include "private/qdeclarativecompositetypedata_p.h"
 #include "qdeclarative.h"
 #include "private/qdeclarativebinding_p.h"
 #include "qdeclarativecontext.h"
@@ -640,7 +639,7 @@
     is assumed by the caller.
 
     \a flags is passed through to the binding and is used for the initial update (when
-    the binding sets the intial value, it will use these flags for the write).
+    the binding sets the initial value, it will use these flags for the write).
 */
 QDeclarativeAbstractBinding *
 QDeclarativePropertyPrivate::setBinding(const QDeclarativeProperty &that,
--- a/src/declarative/qml/qdeclarativepropertycache.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/qml/qdeclarativepropertycache.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -134,8 +134,9 @@
 
 void QDeclarativePropertyCache::clear()
 {
-    for (int ii = 0; ii < indexCache.count(); ++ii) 
-        indexCache.at(ii)->release();
+    for (int ii = 0; ii < indexCache.count(); ++ii) {
+        if (indexCache.at(ii)) indexCache.at(ii)->release();
+    }
 
     for (StringCache::ConstIterator iter = stringCache.begin(); 
             iter != stringCache.end(); ++iter)
@@ -156,14 +157,27 @@
     Q_ASSERT(metaObject);
 
     QDeclarativePropertyCache::Data rv;
-    int idx = metaObject->indexOfProperty(property.toUtf8());
-    if (idx != -1) {
-        rv.load(metaObject->property(idx));
-        return rv;
+    {
+        const QMetaObject *cmo = metaObject;
+        while (cmo) {
+            int idx = metaObject->indexOfProperty(property.toUtf8());
+            if (idx != -1) {
+                QMetaProperty p = metaObject->property(idx);
+                if (p.isScriptable()) {
+                    rv.load(metaObject->property(idx));
+                    return rv;
+                } else {
+                    while (cmo && cmo->propertyOffset() >= idx)
+                        cmo = cmo->superClass();
+                }
+            } else {
+                cmo = 0;
+            }
+        }
     }
 
     int methodCount = metaObject->methodCount();
-    for (int ii = methodCount - 1; ii >= 2; --ii) { // >=2 to block the destroyed signal
+    for (int ii = methodCount - 1; ii >= 3; --ii) { // >=3 to block the destroyed signal and deleteLater() slot
         QMetaMethod m = metaObject->method(ii);
         if (m.access() == QMetaMethod::Private)
             continue;
@@ -189,8 +203,9 @@
     cache->stringCache = stringCache;
     cache->identifierCache = identifierCache;
 
-    for (int ii = 0; ii < indexCache.count(); ++ii)
-        indexCache.at(ii)->addref();
+    for (int ii = 0; ii < indexCache.count(); ++ii) {
+        if (indexCache.at(ii)) indexCache.at(ii)->addref();
+    }
     for (StringCache::ConstIterator iter = stringCache.begin(); iter != stringCache.end(); ++iter)
         (*iter)->addref();
     for (IdentifierCache::ConstIterator iter = identifierCache.begin(); iter != identifierCache.end(); ++iter)
@@ -210,6 +225,9 @@
     indexCache.resize(propCount);
     for (int ii = propOffset; ii < propCount; ++ii) {
         QMetaProperty p = metaObject->property(ii);
+        if (!p.isScriptable()) 
+            continue;
+        
         QString propName = QString::fromUtf8(p.name());
 
         RData *data = new RData;
@@ -275,6 +293,10 @@
     indexCache.resize(propCount);
     for (int ii = propCount - 1; ii >= 0; --ii) {
         QMetaProperty p = metaObject->property(ii);
+        if (!p.isScriptable()) {
+            indexCache[ii] = 0;
+            continue;
+        }
         QString propName = QString::fromUtf8(p.name());
 
         RData *data = new RData;
@@ -294,7 +316,7 @@
     }
 
     int methodCount = metaObject->methodCount();
-    for (int ii = methodCount - 1; ii >= 2; --ii) { // >=2 to block the destroyed signal
+    for (int ii = methodCount - 1; ii >= 3; --ii) { // >=3 to block the destroyed signal and deleteLater() slot
         QMetaMethod m = metaObject->method(ii);
         if (m.access() == QMetaMethod::Private)
             continue;
--- a/src/declarative/qml/qdeclarativerewrite.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/qml/qdeclarativerewrite.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -102,7 +102,7 @@
     unsigned startOfStatement = node->firstSourceLocation().begin() - _position;
     unsigned endOfStatement = node->lastSourceLocation().end() - _position;
 
-    _writer->replace(startOfStatement, 0, QLatin1String("(function() { "));
+    _writer->replace(startOfStatement, 0, QLatin1String("(function ") + QString::fromUtf8(_name) + QLatin1String("() { "));
     _writer->replace(endOfStatement, 0, QLatin1String(" })"));
 
     if (rewriteDump()) {
--- a/src/declarative/qml/qdeclarativerewrite_p.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/qml/qdeclarativerewrite_p.h	Mon Oct 04 01:19:32 2010 +0300
@@ -78,10 +78,14 @@
 {
     unsigned _position;
     TextWriter *_writer;
+    QByteArray _name;
 
 public:
     QString operator()(const QString &code, bool *ok = 0);
 
+    //name of the function:  used for the debugger
+    void setName(const QByteArray &name) { _name = name; }
+
 protected:
     using AST::Visitor::visit;
 
--- a/src/declarative/qml/qdeclarativescriptparser.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/qml/qdeclarativescriptparser.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -387,7 +387,6 @@
 
         if (uri.endsWith(QLatin1String(".js"))) {
             import.type = QDeclarativeScriptParser::Import::Script;
-            _parser->_refUrls << QUrl(uri);
         } else {
             import.type = QDeclarativeScriptParser::Import::File;
         }
@@ -543,7 +542,7 @@
             QString typemodifier;
             if(node->typeModifier)
                 typemodifier = node->typeModifier->asString();
-            if (typemodifier == QString()) {
+            if (typemodifier.isEmpty()) {
                 type = Object::DynamicProperty::Custom;
             } else if(typemodifier == QLatin1String("list")) {
                 type = Object::DynamicProperty::CustomList;
@@ -760,7 +759,7 @@
     prop->listValueRange.offset = node->lbracketToken.offset;
     prop->listValueRange.length = node->rbracketToken.offset + node->rbracketToken.length - node->lbracketToken.offset;
 
-    // Store the positions of the comma token too, again for the DOM to be able to retreive it.
+    // Store the positions of the comma token too, again for the DOM to be able to retrieve it.
     prop->listCommaPositions = collectCommas(node->members);
 
     while (propertyCount--)
@@ -831,7 +830,9 @@
     _scriptFile = fileName;
 
     QTextStream stream(qmldata, QIODevice::ReadOnly);
+#ifndef QT_NO_TEXTCODEC
     stream.setCodec("UTF-8");
+#endif
     const QString code = stream.readAll();
 
     data = new QDeclarativeScriptParserJsASTData(fileName);
@@ -876,11 +877,6 @@
     return _refTypes;
 }
 
-QList<QUrl> QDeclarativeScriptParser::referencedResources() const
-{
-    return _refUrls;
-}
-
 Object *QDeclarativeScriptParser::tree() const
 {
     return root;
@@ -958,6 +954,217 @@
     return rv;
 }
 
+#define CHECK_LINE if(l.currentLineNo() != startLine) return rv;
+#define CHECK_TOKEN(t) if (token != QDeclarativeJSGrammar:: t) return rv;
+
+static const int uriTokens[] = {
+    QDeclarativeJSGrammar::T_IDENTIFIER, 
+    QDeclarativeJSGrammar::T_PROPERTY, 
+    QDeclarativeJSGrammar::T_SIGNAL, 
+    QDeclarativeJSGrammar::T_READONLY, 
+    QDeclarativeJSGrammar::T_ON, 
+    QDeclarativeJSGrammar::T_BREAK, 
+    QDeclarativeJSGrammar::T_CASE, 
+    QDeclarativeJSGrammar::T_CATCH, 
+    QDeclarativeJSGrammar::T_CONTINUE, 
+    QDeclarativeJSGrammar::T_DEFAULT, 
+    QDeclarativeJSGrammar::T_DELETE, 
+    QDeclarativeJSGrammar::T_DO, 
+    QDeclarativeJSGrammar::T_ELSE, 
+    QDeclarativeJSGrammar::T_FALSE, 
+    QDeclarativeJSGrammar::T_FINALLY, 
+    QDeclarativeJSGrammar::T_FOR, 
+    QDeclarativeJSGrammar::T_FUNCTION, 
+    QDeclarativeJSGrammar::T_IF, 
+    QDeclarativeJSGrammar::T_IN, 
+    QDeclarativeJSGrammar::T_INSTANCEOF, 
+    QDeclarativeJSGrammar::T_NEW, 
+    QDeclarativeJSGrammar::T_NULL, 
+    QDeclarativeJSGrammar::T_RETURN, 
+    QDeclarativeJSGrammar::T_SWITCH, 
+    QDeclarativeJSGrammar::T_THIS, 
+    QDeclarativeJSGrammar::T_THROW, 
+    QDeclarativeJSGrammar::T_TRUE, 
+    QDeclarativeJSGrammar::T_TRY, 
+    QDeclarativeJSGrammar::T_TYPEOF, 
+    QDeclarativeJSGrammar::T_VAR, 
+    QDeclarativeJSGrammar::T_VOID, 
+    QDeclarativeJSGrammar::T_WHILE, 
+    QDeclarativeJSGrammar::T_CONST, 
+    QDeclarativeJSGrammar::T_DEBUGGER, 
+    QDeclarativeJSGrammar::T_RESERVED_WORD, 
+    QDeclarativeJSGrammar::T_WITH, 
+
+    QDeclarativeJSGrammar::EOF_SYMBOL
+};
+static inline bool isUriToken(int token)
+{
+    const int *current = uriTokens;
+    while (*current != QDeclarativeJSGrammar::EOF_SYMBOL) {
+        if (*current == token)
+            return true;
+        ++current;
+    }
+    return false;
+}
+
+QDeclarativeScriptParser::JavaScriptMetaData QDeclarativeScriptParser::extractMetaData(QString &script)
+{
+    JavaScriptMetaData rv;
+
+    QDeclarativeParser::Object::ScriptBlock::Pragmas &pragmas = rv.pragmas;
+
+    const QString pragma(QLatin1String("pragma"));
+    const QString js(QLatin1String(".js"));
+    const QString library(QLatin1String("library"));
+
+    QDeclarativeJS::Lexer l(0);
+    l.setCode(script, 0);
+
+    int token = l.lex();
+
+    while (true) {
+        if (token != QDeclarativeJSGrammar::T_DOT)
+            return rv;
+
+        int startOffset = l.tokenOffset();
+        int startLine = l.currentLineNo();
+
+        token = l.lex();
+
+        CHECK_LINE;
+
+        if (token == QDeclarativeJSGrammar::T_IMPORT) {
+
+            // .import <URI> <Version> as <Identifier>
+            // .import <file.js> as <Identifier>
+
+            token = l.lex();
+
+            CHECK_LINE;
+
+            if (token == QDeclarativeJSGrammar::T_STRING_LITERAL) {
+
+                QString file(l.characterBuffer(), l.characterCount());
+                if (!file.endsWith(js))
+                    return rv;
+
+                token = l.lex();
+
+                CHECK_TOKEN(T_AS);
+                CHECK_LINE;
+
+                token = l.lex();
+
+                CHECK_TOKEN(T_IDENTIFIER);
+                CHECK_LINE;
+
+                int endOffset = l.tokenLength() + l.tokenOffset();
+
+                QString importId = script.mid(l.tokenOffset(), l.tokenLength());
+
+                if (!importId.at(0).isUpper())
+                    return rv;
+
+                token = l.lex();
+                if (l.currentLineNo() == startLine)
+                    return rv;
+
+                replaceWithSpace(script, startOffset, endOffset - startOffset);
+
+                Import import;
+                import.type = Import::Script;
+                import.uri = file;
+                import.qualifier = importId;
+
+                rv.imports << import;
+
+            } else {
+                // URI
+                QString uri;
+                QString version;
+
+                while (true) {
+                    if (!isUriToken(token))
+                        return rv;
+
+                    uri.append(QString(l.characterBuffer(), l.characterCount()));
+
+                    token = l.lex();
+                    CHECK_LINE;
+                    if (token != QDeclarativeJSGrammar::T_DOT)
+                        break;
+
+                    uri.append(QLatin1Char('.'));
+
+                    token = l.lex();
+                    CHECK_LINE;
+                }
+
+                CHECK_TOKEN(T_NUMERIC_LITERAL);
+                version = script.mid(l.tokenOffset(), l.tokenLength());
+
+                token = l.lex();
+
+                CHECK_TOKEN(T_AS);
+                CHECK_LINE;
+
+                token = l.lex();
+
+                CHECK_TOKEN(T_IDENTIFIER);
+                CHECK_LINE;
+
+                int endOffset = l.tokenLength() + l.tokenOffset();
+
+                QString importId = script.mid(l.tokenOffset(), l.tokenLength());
+
+                if (!importId.at(0).isUpper())
+                    return rv;
+
+                token = l.lex();
+                if (l.currentLineNo() == startLine)
+                    return rv;
+
+                replaceWithSpace(script, startOffset, endOffset - startOffset);
+
+                Import import;
+                import.type = Import::Library;
+                import.uri = uri;
+                import.version = version;
+                import.qualifier = importId;
+
+                rv.imports << import;
+            }
+
+        } else if (token == QDeclarativeJSGrammar::T_IDENTIFIER &&
+                   script.mid(l.tokenOffset(), l.tokenLength()) == pragma) {
+
+            token = l.lex();
+
+            CHECK_TOKEN(T_IDENTIFIER);
+            CHECK_LINE;
+
+            QString pragmaValue = script.mid(l.tokenOffset(), l.tokenLength());
+            int endOffset = l.tokenLength() + l.tokenOffset();
+
+            if (pragmaValue == QLatin1String("library")) {
+                pragmas |= QDeclarativeParser::Object::ScriptBlock::Shared;
+                replaceWithSpace(script, startOffset, endOffset - startOffset);
+            } else {
+                return rv;
+            }
+
+            token = l.lex();
+            if (l.currentLineNo() == startLine)
+                return rv;
+
+        } else {
+            return rv;
+        }
+    }
+    return rv;
+}
+
 void QDeclarativeScriptParser::clear()
 {
     if (root) {
--- a/src/declarative/qml/qdeclarativescriptparser_p.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/qml/qdeclarativescriptparser_p.h	Mon Oct 04 01:19:32 2010 +0300
@@ -103,7 +103,6 @@
     bool parse(const QByteArray &data, const QUrl &url = QUrl());
 
     QList<TypeReference*> referencedTypes() const;
-    QList<QUrl> referencedResources() const;
 
     QDeclarativeParser::Object *tree() const;
     QList<Import> imports() const;
@@ -112,7 +111,18 @@
 
     QList<QDeclarativeError> errors() const;
 
+    class JavaScriptMetaData {
+    public:
+        JavaScriptMetaData() 
+        : pragmas(QDeclarativeParser::Object::ScriptBlock::None) {}
+
+        QDeclarativeParser::Object::ScriptBlock::Pragmas pragmas;
+        QList<Import> imports;
+    };
+
     static QDeclarativeParser::Object::ScriptBlock::Pragmas extractPragmas(QString &);
+    static JavaScriptMetaData extractMetaData(QString &);
+
 
 // ### private:
     TypeReference *findOrCreateType(const QString &name);
@@ -127,7 +137,6 @@
     QDeclarativeParser::Object *root;
     QList<Import> _imports;
     QList<TypeReference*> _refTypes;
-    QList<QUrl> _refUrls;
     QString _scriptFile;
     QDeclarativeScriptParserJsASTData *data;
 };
--- a/src/declarative/qml/qdeclarativestringconverters.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/qml/qdeclarativestringconverters.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -106,14 +106,14 @@
         return QVariant(uint(qRound(s.toDouble(ok))));
     case QMetaType::QColor:
         return QVariant::fromValue(colorFromString(s, ok));
-#ifndef QT_NO_TEXTDATE
+#ifndef QT_NO_DATESTRING
     case QMetaType::QDate:
         return QVariant::fromValue(dateFromString(s, ok));
     case QMetaType::QTime:
         return QVariant::fromValue(timeFromString(s, ok));
     case QMetaType::QDateTime:
         return QVariant::fromValue(dateTimeFromString(s, ok));
-#endif // QT_NO_TEXTDATE
+#endif // QT_NO_DATESTRING
     case QMetaType::QPointF:
         return QVariant::fromValue(pointFFromString(s, ok));
     case QMetaType::QPoint:
@@ -152,7 +152,7 @@
     }
 }
 
-#ifndef QT_NO_TEXTDATE
+#ifndef QT_NO_DATESTRING
 QDate QDeclarativeStringConverters::dateFromString(const QString &s, bool *ok)
 {
     QDate d = QDate::fromString(s, Qt::ISODate);
@@ -173,7 +173,7 @@
     if (ok) *ok =  d.isValid();
     return d;
 }
-#endif // QT_NO_TEXTDATE
+#endif // QT_NO_DATESTRING
 
 //expects input of "x,y"
 QPointF QDeclarativeStringConverters::pointFFromString(const QString &s, bool *ok)
--- a/src/declarative/qml/qdeclarativestringconverters_p.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/qml/qdeclarativestringconverters_p.h	Mon Oct 04 01:19:32 2010 +0300
@@ -73,7 +73,7 @@
     QVariant Q_DECLARATIVE_EXPORT variantFromString(const QString &, int preferredType, bool *ok = 0);
 
     QColor Q_DECLARATIVE_EXPORT colorFromString(const QString &, bool *ok = 0);
-#ifndef QT_NO_TEXTDATE
+#ifndef QT_NO_DATESTRING
     QDate Q_DECLARATIVE_EXPORT dateFromString(const QString &, bool *ok = 0); 
     QTime Q_DECLARATIVE_EXPORT timeFromString(const QString &, bool *ok = 0);
     QDateTime Q_DECLARATIVE_EXPORT dateTimeFromString(const QString &, bool *ok = 0);
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/declarative/qml/qdeclarativetypeloader.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,1070 @@
+/****************************************************************************
+**
+** 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 QtDeclarative 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 "qdeclarativetypeloader_p.h"
+
+#include <private/qdeclarativeengine_p.h>
+#include <private/qdeclarativecompiler_p.h>
+#include <private/qdeclarativecomponent_p.h>
+
+#include <QtDeclarative/qdeclarativecomponent.h>
+#include <QtCore/qdebug.h>
+#include <QtCore/qdir.h>
+#include <QtCore/qfile.h>
+
+QT_BEGIN_NAMESPACE
+
+/*!
+\class QDeclarativeDataBlob
+\brief The QDeclarativeDataBlob encapsulates a data request that can be issued to a QDeclarativeDataLoader.
+\internal
+
+QDeclarativeDataBlob's are loaded by a QDeclarativeDataLoader.  The user creates the QDeclarativeDataBlob
+and then calls QDeclarativeDataLoader::load() or QDeclarativeDataLoader::loadWithStaticData() to load it.
+The QDeclarativeDataLoader invokes callbacks on the QDeclarativeDataBlob as data becomes available.
+*/
+
+/*!
+\enum QDeclarativeDataBlob::Status
+
+\o Null The blob has not yet been loaded by a QDeclarativeDataLoader
+\o Loading The blob is loading network data.  The QDeclarativeDataBlob::setData() callback has not yet been
+invoked or has not yet returned.
+\o WaitingForDependencies The blob is waiting for dependencies to be done before continueing.  This status
+only occurs after the QDeclarativeDataBlob::setData() callback has been made, and when the blob has outstanding
+dependencies.
+\o Complete The blob's data has been loaded and all dependencies are done.
+\o Error An error has been set on this blob.
+*/
+
+/*!
+\enum QDeclarativeDataBlob::Type
+\o QmlFile This is a QDeclarativeTypeData
+\o JavaScriptFile This is a QDeclarativeScriptData
+\o QmldirFile This is a QDeclarativeQmldirData
+*/
+
+/*!
+Create a new QDeclarativeDataBlob for \a url and of the provided \a type.
+*/
+QDeclarativeDataBlob::QDeclarativeDataBlob(const QUrl &url, Type type)
+: m_type(type), m_status(Null), m_progress(0), m_url(url), m_finalUrl(url), m_manager(0),
+  m_redirectCount(0), m_inCallback(false), m_isDone(false)
+{
+}
+
+/*!  \internal */
+QDeclarativeDataBlob::~QDeclarativeDataBlob()
+{
+    Q_ASSERT(m_waitingOnMe.isEmpty());
+
+    cancelAllWaitingFor();
+}
+
+/*!
+Returns the type provided to the constructor.
+*/
+QDeclarativeDataBlob::Type QDeclarativeDataBlob::type() const
+{
+    return m_type;
+}
+
+/*!
+Returns the blob's status.
+*/
+QDeclarativeDataBlob::Status QDeclarativeDataBlob::status() const
+{
+    return m_status;
+}
+
+/*!
+Returns true if the status is Null.
+*/
+bool QDeclarativeDataBlob::isNull() const
+{
+    return m_status == Null;
+}
+
+/*!
+Returns true if the status is Loading.
+*/
+bool QDeclarativeDataBlob::isLoading() const
+{
+    return m_status == Loading;
+}
+
+/*!
+Returns true if the status is WaitingForDependencies.
+*/
+bool QDeclarativeDataBlob::isWaiting() const
+{
+    return m_status == WaitingForDependencies;
+}
+
+/*!
+Returns true if the status is Complete.
+*/
+bool QDeclarativeDataBlob::isComplete() const
+{
+    return m_status == Complete;
+}
+
+/*!
+Returns true if the status is Error.
+*/
+bool QDeclarativeDataBlob::isError() const
+{
+    return m_status == Error;
+}
+
+/*!
+Returns true if the status is Complete or Error.
+*/
+bool QDeclarativeDataBlob::isCompleteOrError() const
+{
+    return isComplete() || isError();
+}
+
+/*!
+Returns the data download progress from 0 to 1.
+*/
+qreal QDeclarativeDataBlob::progress() const
+{
+    return m_progress;
+}
+
+/*!
+Returns the blob url passed to the constructor.  If a network redirect
+happens while fetching the data, this url remains the same.
+
+\sa finalUrl()
+*/
+QUrl QDeclarativeDataBlob::url() const
+{
+    return m_url;
+}
+
+/*!
+Returns the final url of the data.  Initially this is the same as
+url(), but if a network redirect happens while fetching the data, this url
+is updated to reflect the new location.
+*/
+QUrl QDeclarativeDataBlob::finalUrl() const
+{
+    return m_finalUrl;
+}
+
+/*!
+Return the errors on this blob.
+*/
+QList<QDeclarativeError> QDeclarativeDataBlob::errors() const
+{
+    return m_errors;
+}
+
+/*!
+Mark this blob as having \a errors.
+
+All outstanding dependencies will be cancelled.  Requests to add new dependencies 
+will be ignored.  Entry into the Error state is irreversable, although you can change the 
+specific errors by additional calls to setError.
+*/
+void QDeclarativeDataBlob::setError(const QDeclarativeError &errors)
+{
+    QList<QDeclarativeError> l;
+    l << errors;
+    setError(l);
+}
+
+/*!
+\override
+*/
+void QDeclarativeDataBlob::setError(const QList<QDeclarativeError> &errors)
+{
+    m_status = Error;
+    m_errors = errors;
+
+    cancelAllWaitingFor();
+
+    if (!m_inCallback)
+        tryDone();
+}
+
+/*! 
+Wait for \a blob to become complete or to error.  If \a blob is already 
+complete or in error, or this blob is already complete, this has no effect.
+*/
+void QDeclarativeDataBlob::addDependency(QDeclarativeDataBlob *blob)
+{
+    Q_ASSERT(status() != Null);
+
+    if (!blob ||
+        blob->status() == Error || blob->status() == Complete ||
+        status() == Error || status() == Complete ||
+        m_waitingFor.contains(blob))
+        return;
+
+    blob->addref();
+    m_status = WaitingForDependencies;
+    m_waitingFor.append(blob);
+    blob->m_waitingOnMe.append(this);
+}
+
+/*!
+\fn void QDeclarativeDataBlob::dataReceived(const QByteArray &data)
+
+Invoked when data for the blob is received.  Implementors should use this callback
+to determine a blob's dependencies.  Within this callback you may call setError()
+or addDependency().
+*/
+
+/*!
+Invoked once data has either been received or a network error occurred, and all 
+dependencies are complete.
+
+You can set an error in this method, but you cannot add new dependencies.  Implementors
+should use this callback to finalize processing of data.
+
+The default implementation does nothing.
+*/
+void QDeclarativeDataBlob::done()
+{
+}
+
+/*!
+Invoked if there is a network error while fetching this blob.
+
+The default implementation sets an appropriate QDeclarativeError.
+*/
+void QDeclarativeDataBlob::networkError(QNetworkReply::NetworkError networkError)
+{
+    Q_UNUSED(networkError);
+
+    QDeclarativeError error;
+    error.setUrl(m_finalUrl);
+
+    const char *errorString = 0;
+    switch (networkError) {
+        default:
+            errorString = "Network error";
+            break;
+        case QNetworkReply::ConnectionRefusedError:
+            errorString = "Connection refused";
+            break;
+        case QNetworkReply::RemoteHostClosedError:
+            errorString = "Remote host closed the connection";
+            break;
+        case QNetworkReply::HostNotFoundError:
+            errorString = "Host not found";
+            break;
+        case QNetworkReply::TimeoutError:
+            errorString = "Timeout";
+            break;
+        case QNetworkReply::ProxyConnectionRefusedError:
+        case QNetworkReply::ProxyConnectionClosedError:
+        case QNetworkReply::ProxyNotFoundError:
+        case QNetworkReply::ProxyTimeoutError:
+        case QNetworkReply::ProxyAuthenticationRequiredError:
+        case QNetworkReply::UnknownProxyError:
+            errorString = "Proxy error";
+            break;
+        case QNetworkReply::ContentAccessDenied:
+            errorString = "Access denied";
+            break;
+        case QNetworkReply::ContentNotFoundError:
+            errorString = "File not found";
+            break;
+        case QNetworkReply::AuthenticationRequiredError:
+            errorString = "Authentication required";
+            break;
+    };
+
+    error.setDescription(QLatin1String(errorString));
+
+    setError(error);
+}
+
+/*! 
+Called if \a blob, which was previously waited for, has an error.
+
+The default implementation does nothing.
+*/
+void QDeclarativeDataBlob::dependencyError(QDeclarativeDataBlob *blob)
+{
+    Q_UNUSED(blob);
+}
+
+/*!
+Called if \a blob, which was previously waited for, has completed.
+
+The default implementation does nothing.
+*/
+void QDeclarativeDataBlob::dependencyComplete(QDeclarativeDataBlob *blob)
+{
+    Q_UNUSED(blob);
+}
+
+/*! 
+Called when all blobs waited for have completed.  This occurs regardless of 
+whether they are in error, or complete state.  
+
+The default implementation does nothing.
+*/
+void QDeclarativeDataBlob::allDependenciesDone()
+{
+}
+
+/*!
+Called when the download progress of this blob changes.  \a progress goes
+from 0 to 1.
+*/
+void QDeclarativeDataBlob::downloadProgressChanged(qreal progress)
+{
+    Q_UNUSED(progress);
+}
+
+void QDeclarativeDataBlob::tryDone()
+{
+    if (status() != Loading && m_waitingFor.isEmpty() && !m_isDone) {
+        if (status() != Error)
+            m_status = Complete;
+
+        m_isDone = true;
+        done();
+        notifyAllWaitingOnMe();
+    }
+}
+
+void QDeclarativeDataBlob::cancelAllWaitingFor()
+{
+    while (m_waitingFor.count()) {
+        QDeclarativeDataBlob *blob = m_waitingFor.takeLast();
+
+        Q_ASSERT(blob->m_waitingOnMe.contains(this));
+
+        blob->m_waitingOnMe.removeOne(this);
+
+        blob->release();
+    }
+}
+
+void QDeclarativeDataBlob::notifyAllWaitingOnMe()
+{
+    while (m_waitingOnMe.count()) {
+        QDeclarativeDataBlob *blob = m_waitingOnMe.takeLast();
+
+        Q_ASSERT(blob->m_waitingFor.contains(this));
+
+        blob->notifyComplete(this);
+    }
+}
+
+void QDeclarativeDataBlob::notifyComplete(QDeclarativeDataBlob *blob)
+{
+    Q_ASSERT(m_waitingFor.contains(blob));
+    Q_ASSERT(blob->status() == Error || blob->status() == Complete);
+
+    m_inCallback = true;
+
+    if (blob->status() == Error) {
+        dependencyError(blob);
+    } else if (blob->status() == Complete) {
+        dependencyComplete(blob);
+    }
+
+    m_waitingFor.removeOne(blob);
+    blob->release();
+
+    if (!isError() && m_waitingFor.isEmpty()) 
+        allDependenciesDone();
+
+    m_inCallback = false;
+
+    tryDone();
+}
+
+/*!
+\class QDeclarativeDataLoader
+\brief The QDeclarativeDataLoader class abstracts loading files and their dependecies over the network.
+\internal
+
+The QDeclarativeDataLoader class is provided for the exclusive use of the QDeclarativeTypeLoader class.
+
+Clients create QDeclarativeDataBlob instances and submit them to the QDeclarativeDataLoader class
+through the QDeclarativeDataLoader::load() or QDeclarativeDataLoader::loadWithStaticData() methods.
+The loader then fetches the data over the network or from the local file system in an efficient way.
+QDeclarativeDataBlob is an abstract class, so should always be specialized.
+
+Once data is received, the QDeclarativeDataBlob::dataReceived() method is invoked on the blob.  The
+derived class should use this callback to process the received data.  Processing of the data can 
+result in an error being set (QDeclarativeDataBlob::setError()), or one or more dependencies being
+created (QDeclarativeDataBlob::addDependency()).  Dependencies are other QDeclarativeDataBlob's that
+are required before processing can fully complete.
+
+To complete processing, the QDeclarativeDataBlob::done() callback is invoked.  done() is called when
+one of these three preconditions are met.
+
+1.  The QDeclarativeDataBlob has no dependencies.
+2.  The QDeclarativeDataBlob has an error set.
+3.  All the QDeclarativeDataBlob's dependencies are themselves "done()".
+
+Thus QDeclarativeDataBlob::done() will always eventually be called, even if the blob has an error set.
+*/
+
+/*!
+Create a new QDeclarativeDataLoader for \a engine.
+*/
+QDeclarativeDataLoader::QDeclarativeDataLoader(QDeclarativeEngine *engine)
+: m_engine(engine)
+{
+}
+
+/*! \internal */
+QDeclarativeDataLoader::~QDeclarativeDataLoader()
+{
+    for (NetworkReplies::Iterator iter = m_networkReplies.begin(); iter != m_networkReplies.end(); ++iter) 
+        (*iter)->release();
+}
+
+/*!
+Load the provided \a blob from the network or filesystem.
+*/
+void QDeclarativeDataLoader::load(QDeclarativeDataBlob *blob)
+{
+    Q_ASSERT(blob->status() == QDeclarativeDataBlob::Null);
+    Q_ASSERT(blob->m_manager == 0);
+
+    blob->m_status = QDeclarativeDataBlob::Loading;
+
+    if (blob->m_url.isEmpty()) {
+        QDeclarativeError error;
+        error.setDescription(QLatin1String("Invalid null URL"));
+        blob->setError(error);
+        return;
+    }
+
+    QString lf = QDeclarativeEnginePrivate::urlToLocalFileOrQrc(blob->m_url);
+
+    if (!lf.isEmpty()) {
+        QFile file(lf);
+        if (file.open(QFile::ReadOnly)) {
+            QByteArray data = file.readAll();
+
+            blob->m_progress = 1.;
+            blob->downloadProgressChanged(1.);
+
+            setData(blob, data);
+        } else {
+            blob->networkError(QNetworkReply::ContentNotFoundError);
+        }
+
+    } else {
+
+        blob->m_manager = this;
+        QNetworkReply *reply = m_engine->networkAccessManager()->get(QNetworkRequest(blob->m_url));
+        QObject::connect(reply, SIGNAL(downloadProgress(qint64,qint64)), 
+                         this, SLOT(networkReplyProgress(qint64,qint64)));
+        QObject::connect(reply, SIGNAL(finished()), 
+                         this, SLOT(networkReplyFinished()));
+        m_networkReplies.insert(reply, blob);
+
+        blob->addref();
+    }
+}
+
+#define DATALOADER_MAXIMUM_REDIRECT_RECURSION 16
+
+void QDeclarativeDataLoader::networkReplyFinished()
+{
+    QNetworkReply *reply = static_cast<QNetworkReply *>(sender());
+    reply->deleteLater();
+
+    QDeclarativeDataBlob *blob = m_networkReplies.take(reply);
+
+    Q_ASSERT(blob);
+
+    blob->m_redirectCount++;
+
+    if (blob->m_redirectCount < DATALOADER_MAXIMUM_REDIRECT_RECURSION) {
+        QVariant redirect = reply->attribute(QNetworkRequest::RedirectionTargetAttribute);
+        if (redirect.isValid()) {
+            QUrl url = reply->url().resolved(redirect.toUrl());
+            blob->m_finalUrl = url;
+
+            QNetworkReply *reply = m_engine->networkAccessManager()->get(QNetworkRequest(url));
+            QObject::connect(reply, SIGNAL(finished()), this, SLOT(networkReplyFinished()));
+            m_networkReplies.insert(reply, blob);
+            return;
+        }
+    }
+
+    if (reply->error()) {
+        blob->networkError(reply->error());
+    } else {
+        QByteArray data = reply->readAll();
+        setData(blob, data);
+    }
+
+    blob->release();
+}
+
+void QDeclarativeDataLoader::networkReplyProgress(qint64 bytesReceived, qint64 bytesTotal)
+{
+    QNetworkReply *reply = static_cast<QNetworkReply *>(sender());
+    QDeclarativeDataBlob *blob = m_networkReplies.value(reply);
+
+    Q_ASSERT(blob);
+
+    if (bytesTotal != 0) {
+        blob->m_progress = bytesReceived / bytesTotal;
+        blob->downloadProgressChanged(blob->m_progress);
+    }
+}
+
+/*!
+Load the provided \a blob with \a data.  The blob's URL is not used by the data loader in this case.
+*/
+void QDeclarativeDataLoader::loadWithStaticData(QDeclarativeDataBlob *blob, const QByteArray &data)
+{
+    Q_ASSERT(blob->status() == QDeclarativeDataBlob::Null);
+    Q_ASSERT(blob->m_manager == 0);
+    
+    blob->m_status = QDeclarativeDataBlob::Loading;
+
+    setData(blob, data);
+}
+
+/*!
+Return the QDeclarativeEngine associated with this loader
+*/
+QDeclarativeEngine *QDeclarativeDataLoader::engine() const
+{
+    return m_engine;
+}
+
+void QDeclarativeDataLoader::setData(QDeclarativeDataBlob *blob, const QByteArray &data)
+{
+    blob->m_inCallback = true;
+
+    blob->dataReceived(data);
+
+    if (!blob->isError() && !blob->isWaiting())
+        blob->allDependenciesDone();
+
+    if (blob->status() != QDeclarativeDataBlob::Error) 
+        blob->m_status = QDeclarativeDataBlob::WaitingForDependencies;
+
+    blob->m_inCallback = false;
+
+    blob->tryDone();
+}
+
+/*!
+\class QDeclarativeTypeLoader
+*/
+QDeclarativeTypeLoader::QDeclarativeTypeLoader(QDeclarativeEngine *engine)
+: QDeclarativeDataLoader(engine)
+{
+}
+
+QDeclarativeTypeLoader::~QDeclarativeTypeLoader()
+{
+    clearCache();
+}
+
+/*!
+Return a QDeclarativeTypeData for \a url.  The QDeclarativeTypeData may be cached.
+*/
+QDeclarativeTypeData *QDeclarativeTypeLoader::get(const QUrl &url)
+{
+    Q_ASSERT(!url.isRelative() && 
+            (QDeclarativeEnginePrivate::urlToLocalFileOrQrc(url).isEmpty() || 
+             !QDir::isRelativePath(QDeclarativeEnginePrivate::urlToLocalFileOrQrc(url))));
+
+    QDeclarativeTypeData *typeData = m_typeCache.value(url);
+
+    if (!typeData) {
+        typeData = new QDeclarativeTypeData(url, None, this);
+        m_typeCache.insert(url, typeData);
+        QDeclarativeDataLoader::load(typeData);
+    }
+
+    typeData->addref();
+    return typeData;
+}
+
+/*!
+Return a QDeclarativeTypeData for \a data with the provided base \a url.  The 
+QDeclarativeTypeData will not be cached.
+*/
+QDeclarativeTypeData *QDeclarativeTypeLoader::get(const QByteArray &data, const QUrl &url, Options options)
+{
+    QDeclarativeTypeData *typeData = new QDeclarativeTypeData(url, options, this);
+    QDeclarativeDataLoader::loadWithStaticData(typeData, data);
+    return typeData;
+}
+
+/*!
+Return a QDeclarativeScriptData for \a url.  The QDeclarativeScriptData may be cached.
+*/
+QDeclarativeScriptData *QDeclarativeTypeLoader::getScript(const QUrl &url)
+{
+    Q_ASSERT(!url.isRelative() && 
+            (QDeclarativeEnginePrivate::urlToLocalFileOrQrc(url).isEmpty() || 
+             !QDir::isRelativePath(QDeclarativeEnginePrivate::urlToLocalFileOrQrc(url))));
+
+    QDeclarativeScriptData *scriptData = m_scriptCache.value(url);
+
+    if (!scriptData) {
+        scriptData = new QDeclarativeScriptData(url);
+        m_scriptCache.insert(url, scriptData);
+        QDeclarativeDataLoader::load(scriptData);
+    }
+
+    scriptData->addref();
+    return scriptData;
+}
+
+/*!
+Return a QDeclarativeQmldirData for \a url.  The QDeclarativeQmldirData may be cached.
+*/
+QDeclarativeQmldirData *QDeclarativeTypeLoader::getQmldir(const QUrl &url)
+{
+    Q_ASSERT(!url.isRelative() && 
+            (QDeclarativeEnginePrivate::urlToLocalFileOrQrc(url).isEmpty() || 
+             !QDir::isRelativePath(QDeclarativeEnginePrivate::urlToLocalFileOrQrc(url))));
+
+    QDeclarativeQmldirData *qmldirData = m_qmldirCache.value(url);
+
+    if (!qmldirData) {
+        qmldirData = new QDeclarativeQmldirData(url);
+        m_qmldirCache.insert(url, qmldirData);
+        QDeclarativeDataLoader::load(qmldirData);
+    }
+
+    qmldirData->addref();
+    return qmldirData;
+}
+
+void QDeclarativeTypeLoader::clearCache()
+{
+    for (TypeCache::Iterator iter = m_typeCache.begin(); iter != m_typeCache.end(); ++iter) 
+        (*iter)->release();
+    for (ScriptCache::Iterator iter = m_scriptCache.begin(); iter != m_scriptCache.end(); ++iter) 
+        (*iter)->release();
+    for (QmldirCache::Iterator iter = m_qmldirCache.begin(); iter != m_qmldirCache.end(); ++iter) 
+        (*iter)->release();
+
+    m_typeCache.clear();
+    m_scriptCache.clear();
+    m_qmldirCache.clear();
+}
+
+
+QDeclarativeTypeData::QDeclarativeTypeData(const QUrl &url, QDeclarativeTypeLoader::Options options, 
+                                           QDeclarativeTypeLoader *manager)
+: QDeclarativeDataBlob(url, QmlFile), m_options(options), m_typesResolved(false), 
+  m_compiledData(0), m_component(0), m_typeLoader(manager)
+{
+}
+
+QDeclarativeTypeData::~QDeclarativeTypeData()
+{
+    for (int ii = 0; ii < m_scripts.count(); ++ii) 
+        m_scripts.at(ii).script->release();
+    for (int ii = 0; ii < m_qmldirs.count(); ++ii) 
+        m_qmldirs.at(ii)->release();
+    for (int ii = 0; ii < m_types.count(); ++ii) 
+        if (m_types.at(ii).typeData) m_types.at(ii).typeData->release();
+    if (m_compiledData)
+        m_compiledData->release();
+}
+
+QDeclarativeTypeLoader *QDeclarativeTypeData::typeLoader() const
+{
+    return m_typeLoader;
+}
+
+const QDeclarativeImports &QDeclarativeTypeData::imports() const
+{
+    return m_imports;
+}
+
+const QDeclarativeScriptParser &QDeclarativeTypeData::parser() const
+{
+    return scriptParser;
+}
+
+const QList<QDeclarativeTypeData::TypeReference> &QDeclarativeTypeData::resolvedTypes() const
+{
+    return m_types;
+}
+
+const QList<QDeclarativeTypeData::ScriptReference> &QDeclarativeTypeData::resolvedScripts() const
+{
+    return m_scripts;
+}
+
+QDeclarativeCompiledData *QDeclarativeTypeData::compiledData() const
+{
+    if (m_compiledData) 
+        m_compiledData->addref();
+
+    return m_compiledData;
+}
+
+QDeclarativeComponent *QDeclarativeTypeData::component() const
+{
+    if (!m_component) {
+
+        if (m_compiledData) {
+            m_component = new QDeclarativeComponent(typeLoader()->engine(), m_compiledData, -1, -1, 0);
+        } else {
+            m_component = new QDeclarativeComponent(typeLoader()->engine());
+            QDeclarativeComponentPrivate::get(m_component)->url = finalUrl();
+            QDeclarativeComponentPrivate::get(m_component)->state.errors = errors();
+        }
+
+    }
+
+    return m_component;
+}
+
+void QDeclarativeTypeData::registerCallback(TypeDataCallback *callback)
+{
+    Q_ASSERT(!m_callbacks.contains(callback));
+    m_callbacks.append(callback);
+}
+
+void QDeclarativeTypeData::unregisterCallback(TypeDataCallback *callback)
+{
+    Q_ASSERT(m_callbacks.contains(callback));
+    m_callbacks.removeOne(callback);
+    Q_ASSERT(!m_callbacks.contains(callback));
+}
+
+void QDeclarativeTypeData::done()
+{
+    addref();
+
+    // Check all script dependencies for errors
+    for (int ii = 0; !isError() && ii < m_scripts.count(); ++ii) {
+        const ScriptReference &script = m_scripts.at(ii);
+        Q_ASSERT(script.script->isCompleteOrError());
+        if (script.script->isError()) {
+            QList<QDeclarativeError> errors = script.script->errors();
+            QDeclarativeError error;
+            error.setUrl(finalUrl());
+            error.setLine(script.location.line);
+            error.setColumn(script.location.column);
+            error.setDescription(typeLoader()->tr("Script %1 unavailable").arg(script.script->url().toString()));
+            errors.prepend(error);
+            setError(errors);
+        }
+    }
+
+    // Check all type dependencies for errors
+    for (int ii = 0; !isError() && ii < m_types.count(); ++ii) {
+        const TypeReference &type = m_types.at(ii);
+        Q_ASSERT(!type.typeData || type.typeData->isCompleteOrError());
+        if (type.typeData && type.typeData->isError()) {
+            QString typeName = scriptParser.referencedTypes().at(ii)->name;
+
+            QList<QDeclarativeError> errors = type.typeData->errors();
+            QDeclarativeError error;
+            error.setUrl(finalUrl());
+            error.setLine(type.location.line);
+            error.setColumn(type.location.column);
+            error.setDescription(typeLoader()->tr("Type %1 unavailable").arg(typeName));
+            errors.prepend(error);
+            setError(errors);
+        }
+    }
+
+    // Compile component
+    if (!isError()) 
+        compile();
+
+    if (!(m_options & QDeclarativeTypeLoader::PreserveParser))
+        scriptParser.clear();
+
+    // Notify callbacks
+    while (!m_callbacks.isEmpty()) {
+        TypeDataCallback *callback = m_callbacks.takeFirst();
+        callback->typeDataReady(this);
+    }
+
+    release();
+}
+
+void QDeclarativeTypeData::dataReceived(const QByteArray &data)
+{
+    if (!scriptParser.parse(data, finalUrl())) {
+        setError(scriptParser.errors());
+        return;
+    }
+
+    m_imports.setBaseUrl(finalUrl());
+
+    foreach (const QDeclarativeScriptParser::Import &import, scriptParser.imports()) {
+        if (import.type == QDeclarativeScriptParser::Import::File && import.qualifier.isEmpty()) {
+            QUrl importUrl = finalUrl().resolved(QUrl(import.uri + QLatin1String("/qmldir")));
+            if (QDeclarativeEnginePrivate::urlToLocalFileOrQrc(importUrl).isEmpty()) {
+                QDeclarativeQmldirData *data = typeLoader()->getQmldir(importUrl);
+                addDependency(data);
+                m_qmldirs << data;
+            }
+        } else if (import.type == QDeclarativeScriptParser::Import::Script) {
+            QUrl scriptUrl = finalUrl().resolved(QUrl(import.uri));
+            QDeclarativeScriptData *data = typeLoader()->getScript(scriptUrl);
+            addDependency(data);
+
+            ScriptReference ref;
+            ref.location = import.location.start;
+            ref.qualifier = import.qualifier;
+            ref.script = data;
+            m_scripts << ref;
+
+        }
+    }
+
+    if (!finalUrl().scheme().isEmpty()) {
+        QUrl importUrl = finalUrl().resolved(QUrl(QLatin1String("qmldir")));
+        if (QDeclarativeEnginePrivate::urlToLocalFileOrQrc(importUrl).isEmpty()) {
+            QDeclarativeQmldirData *data = typeLoader()->getQmldir(importUrl);
+            addDependency(data);
+            m_qmldirs << data;
+        }
+    }
+}
+
+void QDeclarativeTypeData::allDependenciesDone()
+{
+    if (!m_typesResolved) {
+        resolveTypes();
+        m_typesResolved = true;
+    }
+}
+
+void QDeclarativeTypeData::downloadProgressChanged(qreal p)
+{
+    for (int ii = 0; ii < m_callbacks.count(); ++ii) {
+        TypeDataCallback *callback = m_callbacks.at(ii);
+        callback->typeDataProgress(this, p);
+    }
+}
+
+void QDeclarativeTypeData::compile()
+{
+    Q_ASSERT(m_compiledData == 0);
+
+    m_compiledData = new QDeclarativeCompiledData(typeLoader()->engine());
+    m_compiledData->url = m_imports.baseUrl();
+    m_compiledData->name = m_compiledData->url.toString();
+
+    QDeclarativeCompiler compiler;
+    if (!compiler.compile(typeLoader()->engine(), this, m_compiledData)) {
+        setError(compiler.errors());
+        m_compiledData->release();
+        m_compiledData = 0;
+    }
+}
+
+void QDeclarativeTypeData::resolveTypes()
+{
+    QDeclarativeEnginePrivate *ep = QDeclarativeEnginePrivate::get(m_typeLoader->engine());
+    QDeclarativeImportDatabase *importDatabase = &ep->importDatabase;
+
+    // For local urls, add an implicit import "." as first (most overridden) lookup. 
+    // This will also trigger the loading of the qmldir and the import of any native 
+    // types from available plugins.
+    if (QDeclarativeQmldirData *qmldir = qmldirForUrl(finalUrl().resolved(QUrl(QLatin1String("./qmldir"))))) {
+        m_imports.addImport(importDatabase, QLatin1String("."),
+                            QString(), -1, -1, QDeclarativeScriptParser::Import::File, 
+                            qmldir->dirComponents(), 0);
+    } else {
+        m_imports.addImport(importDatabase, QLatin1String("."), 
+                            QString(), -1, -1, QDeclarativeScriptParser::Import::File, 
+                            QDeclarativeDirComponents(), 0);
+    }
+
+    foreach (const QDeclarativeScriptParser::Import &import, scriptParser.imports()) {
+        QDeclarativeDirComponents qmldircomponentsnetwork;
+        if (import.type == QDeclarativeScriptParser::Import::Script)
+            continue;
+
+        if (import.type == QDeclarativeScriptParser::Import::File && import.qualifier.isEmpty()) {
+            QUrl qmldirUrl = finalUrl().resolved(QUrl(import.uri + QLatin1String("/qmldir")));
+            if (QDeclarativeQmldirData *qmldir = qmldirForUrl(qmldirUrl)) 
+                qmldircomponentsnetwork = qmldir->dirComponents();
+        }
+
+        int vmaj = -1;
+        int vmin = -1;
+
+        if (!import.version.isEmpty()) {
+            int dot = import.version.indexOf(QLatin1Char('.'));
+            if (dot < 0) {
+                vmaj = import.version.toInt();
+                vmin = 0;
+            } else {
+                vmaj = import.version.left(dot).toInt();
+                vmin = import.version.mid(dot+1).toInt();
+            }
+        }
+
+        QString errorString;
+        if (!m_imports.addImport(importDatabase, import.uri, import.qualifier,
+                                 vmaj, vmin, import.type, qmldircomponentsnetwork, &errorString)) {
+            QDeclarativeError error;
+            error.setUrl(m_imports.baseUrl());
+            error.setDescription(errorString);
+            error.setLine(import.location.start.line);
+            error.setColumn(import.location.start.column);
+
+            setError(error);
+            return;
+        }
+    }
+
+    foreach (QDeclarativeScriptParser::TypeReference *parserRef, scriptParser.referencedTypes()) {
+        QByteArray typeName = parserRef->name.toUtf8();
+
+        TypeReference ref;
+
+        QUrl url;
+        int majorVersion;
+        int minorVersion;
+        QDeclarativeImportedNamespace *typeNamespace = 0;
+        QString errorString;
+
+        if (!m_imports.resolveType(typeName, &ref.type, &url, &majorVersion, &minorVersion,
+                                   &typeNamespace, &errorString) || typeNamespace) {
+            // Known to not be a type:
+            //  - known to be a namespace (Namespace {})
+            //  - type with unknown namespace (UnknownNamespace.SomeType {})
+            QDeclarativeError error;
+            error.setUrl(m_imports.baseUrl());
+            QString userTypeName = parserRef->name;
+            userTypeName.replace(QLatin1Char('/'),QLatin1Char('.'));
+            if (typeNamespace)
+                error.setDescription(typeLoader()->tr("Namespace %1 cannot be used as a type").arg(userTypeName));
+            else
+                error.setDescription(typeLoader()->tr("%1 %2").arg(userTypeName).arg(errorString));
+
+            if (!parserRef->refObjects.isEmpty()) {
+                QDeclarativeParser::Object *obj = parserRef->refObjects.first();
+                error.setLine(obj->location.start.line);
+                error.setColumn(obj->location.start.column);
+            }
+            
+            setError(error);
+            return;
+        }
+
+        if (ref.type) {
+            foreach (QDeclarativeParser::Object *obj, parserRef->refObjects) {
+               // store namespace for DOM
+               obj->majorVersion = majorVersion;
+               obj->minorVersion = minorVersion;
+            }
+        } else {
+            ref.typeData = typeLoader()->get(url);
+            addDependency(ref.typeData);
+        }
+
+        if (parserRef->refObjects.count())
+            ref.location = parserRef->refObjects.first()->location.start;
+
+        m_types << ref;
+    }
+}
+
+QDeclarativeQmldirData *QDeclarativeTypeData::qmldirForUrl(const QUrl &url)
+{
+    for (int ii = 0; ii < m_qmldirs.count(); ++ii) {
+        if (m_qmldirs.at(ii)->url() == url)
+            return m_qmldirs.at(ii);
+    }
+    return 0;
+}
+
+QDeclarativeScriptData::QDeclarativeScriptData(const QUrl &url)
+: QDeclarativeDataBlob(url, JavaScriptFile), m_pragmas(QDeclarativeParser::Object::ScriptBlock::None)
+{
+}
+
+QDeclarativeParser::Object::ScriptBlock::Pragmas QDeclarativeScriptData::pragmas() const
+{
+    return m_pragmas;
+}
+
+QString QDeclarativeScriptData::scriptSource() const
+{
+    return m_source;
+}
+
+void QDeclarativeScriptData::dataReceived(const QByteArray &data)
+{
+    m_source = QString::fromUtf8(data);
+    m_pragmas = QDeclarativeScriptParser::extractPragmas(m_source);
+}
+
+QDeclarativeQmldirData::QDeclarativeQmldirData(const QUrl &url)
+: QDeclarativeDataBlob(url, QmldirFile)
+{
+}
+
+const QDeclarativeDirComponents &QDeclarativeQmldirData::dirComponents() const
+{
+    return m_components;
+}
+
+void QDeclarativeQmldirData::dataReceived(const QByteArray &data)
+{
+    QDeclarativeDirParser parser;
+    parser.setSource(QString::fromUtf8(data));
+    parser.parse();
+    m_components = parser.components();
+}
+
+QT_END_NAMESPACE
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/declarative/qml/qdeclarativetypeloader_p.h	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,321 @@
+/****************************************************************************
+**
+** 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 QtDeclarative 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 QDECLARATIVETYPELOADER_P_H
+#define QDECLARATIVETYPELOADER_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 <QtCore/qobject.h>
+#include <QtNetwork/qnetworkreply.h>
+#include <QtDeclarative/qdeclarativeerror.h>
+#include <QtDeclarative/qdeclarativeengine.h>
+#include <private/qdeclarativescriptparser_p.h>
+#include <private/qdeclarativedirparser_p.h>
+#include <private/qdeclarativeimport_p.h>
+
+QT_BEGIN_NAMESPACE
+
+class QDeclarativeScriptData;
+class QDeclarativeQmldirData;
+class QDeclarativeTypeLoader;
+class QDeclarativeCompiledData;
+class QDeclarativeComponentPrivate;
+class QDeclarativeTypeData;
+class QDeclarativeDataLoader;
+
+class Q_AUTOTEST_EXPORT QDeclarativeDataBlob : public QDeclarativeRefCount
+{
+public:
+    enum Status {
+        Null,                    // Prior to QDeclarativeDataLoader::load()
+        Loading,                 // Prior to data being received and dataReceived() being called
+        WaitingForDependencies,  // While there are outstanding addDependency()s
+        Complete,                // Finished
+        Error,                   // Error
+    };
+
+    enum Type {
+        QmlFile,
+        JavaScriptFile,
+        QmldirFile
+    };
+
+    QDeclarativeDataBlob(const QUrl &, Type);
+    virtual ~QDeclarativeDataBlob();
+
+    Type type() const;
+
+    Status status() const;
+    bool isNull() const;
+    bool isLoading() const;
+    bool isWaiting() const;
+    bool isComplete() const;
+    bool isError() const;
+    bool isCompleteOrError() const;
+
+    qreal progress() const;
+
+    QUrl url() const;
+    QUrl finalUrl() const;
+
+    QList<QDeclarativeError> errors() const;
+
+    void setError(const QDeclarativeError &);
+    void setError(const QList<QDeclarativeError> &errors);
+
+    void addDependency(QDeclarativeDataBlob *);
+
+protected:
+    virtual void dataReceived(const QByteArray &) = 0;
+
+    virtual void done();
+    virtual void networkError(QNetworkReply::NetworkError);
+
+    virtual void dependencyError(QDeclarativeDataBlob *);
+    virtual void dependencyComplete(QDeclarativeDataBlob *);
+    virtual void allDependenciesDone();
+    
+    virtual void downloadProgressChanged(qreal);
+
+private:
+    friend class QDeclarativeDataLoader;
+    void tryDone();
+    void cancelAllWaitingFor();
+    void notifyAllWaitingOnMe();
+    void notifyComplete(QDeclarativeDataBlob *);
+
+    Type m_type;
+    Status m_status;
+    qreal m_progress;
+
+    QUrl m_url;
+    QUrl m_finalUrl;
+
+    // List of QDeclarativeDataBlob's that are waiting for me to complete.
+    QList<QDeclarativeDataBlob *> m_waitingOnMe;     
+
+    // List of QDeclarativeDataBlob's that I am waiting for to complete.
+    QList<QDeclarativeDataBlob *> m_waitingFor;
+
+    // Manager that is currently fetching data for me
+    QDeclarativeDataLoader *m_manager;
+    int m_redirectCount:30;
+    bool m_inCallback:1;
+    bool m_isDone:1;
+
+    QList<QDeclarativeError> m_errors;
+};
+
+class Q_AUTOTEST_EXPORT QDeclarativeDataLoader : public QObject
+{
+    Q_OBJECT
+public:
+    QDeclarativeDataLoader(QDeclarativeEngine *);
+    ~QDeclarativeDataLoader();
+
+    void load(QDeclarativeDataBlob *);
+    void loadWithStaticData(QDeclarativeDataBlob *, const QByteArray &);
+
+    QDeclarativeEngine *engine() const;
+
+private slots:
+    void networkReplyFinished();
+    void networkReplyProgress(qint64,qint64);
+
+private:
+    void setData(QDeclarativeDataBlob *, const QByteArray &);
+
+    QDeclarativeEngine *m_engine;
+    typedef QHash<QNetworkReply *, QDeclarativeDataBlob *> NetworkReplies;
+    NetworkReplies m_networkReplies;
+};
+
+
+class Q_AUTOTEST_EXPORT QDeclarativeTypeLoader : public QDeclarativeDataLoader
+{
+    Q_OBJECT
+public:
+    QDeclarativeTypeLoader(QDeclarativeEngine *);
+    ~QDeclarativeTypeLoader();
+
+    enum Option {
+        None,
+        PreserveParser
+    };
+    Q_DECLARE_FLAGS(Options, Option)
+
+    QDeclarativeTypeData *get(const QUrl &url);
+    QDeclarativeTypeData *get(const QByteArray &, const QUrl &url, Options = None);
+    void clearCache();
+
+    QDeclarativeScriptData *getScript(const QUrl &);
+    QDeclarativeQmldirData *getQmldir(const QUrl &);
+private:
+    typedef QHash<QUrl, QDeclarativeTypeData *> TypeCache;
+    typedef QHash<QUrl, QDeclarativeScriptData *> ScriptCache;
+    typedef QHash<QUrl, QDeclarativeQmldirData *> QmldirCache;
+
+    TypeCache m_typeCache;
+    ScriptCache m_scriptCache;
+    QmldirCache m_qmldirCache;
+};
+
+Q_DECLARE_OPERATORS_FOR_FLAGS(QDeclarativeTypeLoader::Options)
+
+class Q_AUTOTEST_EXPORT QDeclarativeTypeData : public QDeclarativeDataBlob
+{
+public:
+    struct TypeReference
+    {
+        TypeReference() : type(0), typeData(0) {}
+
+        QDeclarativeParser::Location location;
+        QDeclarativeType *type;
+        QDeclarativeTypeData *typeData;
+    };
+
+    struct ScriptReference
+    {
+        ScriptReference() : script(0) {}
+
+        QDeclarativeParser::Location location;
+        QString qualifier;
+        QDeclarativeScriptData *script;
+    };
+
+    QDeclarativeTypeData(const QUrl &, QDeclarativeTypeLoader::Options, QDeclarativeTypeLoader *);
+    ~QDeclarativeTypeData();
+
+    QDeclarativeTypeLoader *typeLoader() const;
+
+    const QDeclarativeImports &imports() const;
+    const QDeclarativeScriptParser &parser() const;
+
+    const QList<TypeReference> &resolvedTypes() const;
+    const QList<ScriptReference> &resolvedScripts() const;
+
+    QDeclarativeCompiledData *compiledData() const;
+    QDeclarativeComponent *component() const;
+
+    // Used by QDeclarativeComponent to get notifications
+    struct TypeDataCallback {
+        ~TypeDataCallback() {}
+        virtual void typeDataProgress(QDeclarativeTypeData *, qreal) {}
+        virtual void typeDataReady(QDeclarativeTypeData *) {}
+    };
+    void registerCallback(TypeDataCallback *);
+    void unregisterCallback(TypeDataCallback *);
+
+protected:
+    virtual void done();
+    virtual void dataReceived(const QByteArray &);
+    virtual void allDependenciesDone();
+    virtual void downloadProgressChanged(qreal);
+
+private:
+    void resolveTypes();
+    void compile();
+
+    QDeclarativeTypeLoader::Options m_options;
+
+    QDeclarativeQmldirData *qmldirForUrl(const QUrl &);
+
+    QDeclarativeScriptParser scriptParser;
+    QDeclarativeImports m_imports;
+
+    QList<ScriptReference> m_scripts;
+    QList<QDeclarativeQmldirData *> m_qmldirs;
+
+    QList<TypeReference> m_types;
+    bool m_typesResolved:1;
+
+    QDeclarativeCompiledData *m_compiledData;
+    mutable QDeclarativeComponent *m_component;
+
+    QList<TypeDataCallback *> m_callbacks;
+   
+    QDeclarativeTypeLoader *m_typeLoader;
+};
+
+class Q_AUTOTEST_EXPORT QDeclarativeScriptData : public QDeclarativeDataBlob
+{
+public:
+    QDeclarativeScriptData(const QUrl &);
+
+    QDeclarativeParser::Object::ScriptBlock::Pragmas pragmas() const;
+    QString scriptSource() const;
+
+protected:
+    virtual void dataReceived(const QByteArray &);
+
+private:
+    QDeclarativeParser::Object::ScriptBlock::Pragmas m_pragmas;
+    QString m_source;
+};
+
+class Q_AUTOTEST_EXPORT QDeclarativeQmldirData : public QDeclarativeDataBlob
+{
+public:
+    QDeclarativeQmldirData(const QUrl &);
+
+    const QDeclarativeDirComponents &dirComponents() const;
+
+protected:
+    virtual void dataReceived(const QByteArray &);
+
+private:
+    QDeclarativeDirComponents m_components;
+
+};
+
+QT_END_NAMESPACE
+
+#endif // QDECLARATIVETYPELOADER_P_H
--- a/src/declarative/qml/qdeclarativevaluetypescriptclass.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/qml/qdeclarativevaluetypescriptclass.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -168,7 +168,7 @@
 
         ref->type->read(ref->object, ref->property);
         QMetaProperty p = ref->type->metaObject()->property(m_lastIndex);
-        if (p.isEnumType() && (QMetaType::Type)v.type() == QMetaType::QReal) 
+        if (p.isEnumType() && (QMetaType::Type)v.type() == QMetaType::Double) 
             v = v.toInt();
         p.write(ref->type, v);
         ref->type->write(ref->object, ref->property, 0);
--- a/src/declarative/qml/qdeclarativevme.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/qml/qdeclarativevme.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -621,14 +621,15 @@
         case QDeclarativeInstruction::StoreSignal:
             {
                 QObject *target = stack.top();
-                QObject *context = stack.at(stack.count() - 1 - instr.assignBinding.context);
-                
+                QObject *context = stack.at(stack.count() - 1 - instr.storeSignal.context);
+
                 QMetaMethod signal = target->metaObject()->method(instr.storeSignal.signalIndex);
 
                 QDeclarativeBoundSignal *bs = new QDeclarativeBoundSignal(target, signal, target);
                 QDeclarativeExpression *expr = 
                     new QDeclarativeExpression(ctxt, context, primitives.at(instr.storeSignal.value));
                 expr->setSourceLocation(comp->name, instr.line);
+                static_cast<QDeclarativeExpressionPrivate *>(QObjectPrivate::get(expr))->name = datas.at(instr.storeSignal.name);
                 bs->setExpression(expr);
             }
             break;
--- a/src/declarative/qml/qdeclarativevmemetaobject.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/qml/qdeclarativevmemetaobject.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -707,11 +707,19 @@
 
 void QDeclarativeVMEMetaObject::writeVarProperty(int id, const QVariant &value)
 {
-    if (value.userType() == QMetaType::QObjectStar) 
+    bool needActivate = false;
+    if (value.userType() == QMetaType::QObjectStar) {
+        QObject *o = qvariant_cast<QObject *>(value);
+        needActivate = (data[id].dataType() != QMetaType::QObjectStar || data[id].asQObject() != o);
         data[id].setValue(qvariant_cast<QObject *>(value));
-    else
+    } else {
+        needActivate = (data[id].dataType() != qMetaTypeId<QVariant>() || 
+                        data[id].asQVariant().userType() != value.userType() || 
+                        data[id].asQVariant() != value);
         data[id].setValue(value);
-    activate(object, methodOffset + id, 0);
+    }
+    if (needActivate)
+        activate(object, methodOffset + id, 0);
 }
 
 void QDeclarativeVMEMetaObject::listChanged(int id)
--- a/src/declarative/qml/qdeclarativeworkerscript.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/qml/qdeclarativeworkerscript.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -514,6 +514,7 @@
 
 /*!
     \qmlclass WorkerScript QDeclarativeWorkerScript
+  \ingroup qml-utility-elements
     \brief The WorkerScript element enables the use of threads in QML.
 
     Use WorkerScript to run operations in a new thread.
--- a/src/declarative/qml/qdeclarativexmlhttprequest.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/qml/qdeclarativexmlhttprequest.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -58,6 +58,8 @@
 #include <QtCore/qstack.h>
 #include <QtCore/qdebug.h>
 
+#ifndef QT_NO_XMLSTREAMREADER
+
 // From DOM-Level-3-Core spec
 // http://www.w3.org/TR/DOM-Level-3-Core/core.html
 #define INDEX_SIZE_ERR 1
@@ -963,8 +965,9 @@
     QScriptValue send(QScriptValue *me, const QByteArray &);
     QScriptValue abort(QScriptValue *me);
 
-    QString responseBody() const;
+    QString responseBody();
     const QByteArray & rawResponseBody() const;
+    bool receivedXml() const;
 private slots:
     void downloadProgress(qint64);
     void error(QNetworkReply::NetworkError);
@@ -987,6 +990,15 @@
     HeadersList m_headersList;
     void fillHeadersList();
 
+    bool m_gotXml;
+    QByteArray m_mime;
+    QByteArray m_charset;
+    QTextCodec *m_textCodec;
+#ifndef QT_NO_TEXTCODEC
+    QTextCodec* findTextCodec() const;
+#endif
+    void readEncoding();
+
     QScriptValue m_me; // Set to the data object while a send() is ongoing (to access the callback)
 
     QScriptValue dispatchCallback(QScriptValue *me);
@@ -1004,7 +1016,7 @@
 
 QDeclarativeXMLHttpRequest::QDeclarativeXMLHttpRequest(QNetworkAccessManager *manager)
 : m_state(Unsent), m_errorFlag(false), m_sendFlag(false),
-  m_redirectCount(0), m_network(0), m_nam(manager)
+  m_redirectCount(0), m_gotXml(false), m_textCodec(0), m_network(0), m_nam(manager)
 {
 }
 
@@ -1275,6 +1287,7 @@
         if (cbv.isError()) printError(cbv);
     }
     m_responseEntityBody.append(m_network->readAll());
+    readEncoding();
 
     if (xhrDump()) {
         qWarning().nospace() << "XMLHttpRequest: RESPONSE " << qPrintable(m_url.toString());
@@ -1300,13 +1313,71 @@
 }
 
 
-QString QDeclarativeXMLHttpRequest::responseBody() const
+void QDeclarativeXMLHttpRequest::readEncoding()
+{
+    foreach (const HeaderPair &header, m_headersList) {
+        if (header.first == "content-type") {
+            int separatorIdx = header.second.indexOf(';');
+            if (separatorIdx == -1) {
+                m_mime == header.second;
+            } else {
+                m_mime = header.second.mid(0, separatorIdx);
+                int charsetIdx = header.second.indexOf("charset=");
+                if (charsetIdx != -1) {
+                    charsetIdx += 8;
+                    separatorIdx = header.second.indexOf(';', charsetIdx);
+                    m_charset = header.second.mid(charsetIdx, separatorIdx >= 0 ? separatorIdx : header.second.length());
+                }
+            }
+            break;
+        }
+    }
+
+    if (m_mime.isEmpty() || m_mime == "text/xml" || m_mime == "application/xml" || m_mime.endsWith("+xml")) 
+        m_gotXml = true;
+}
+
+bool QDeclarativeXMLHttpRequest::receivedXml() const
+{
+    return m_gotXml;
+}
+
+
+#ifndef QT_NO_TEXTCODEC
+QTextCodec* QDeclarativeXMLHttpRequest::findTextCodec() const
 {
-    QXmlStreamReader reader(m_responseEntityBody);
-    reader.readNext();
-    QTextCodec *codec = QTextCodec::codecForName(reader.documentEncoding().toString().toUtf8());
-    if (codec)
-        return codec->toUnicode(m_responseEntityBody);
+    QTextCodec *codec = 0;
+
+    if (!m_charset.isEmpty()) 
+        codec = QTextCodec::codecForName(m_charset);
+
+    if (!codec && m_gotXml) {
+        QXmlStreamReader reader(m_responseEntityBody);
+        reader.readNext();
+        codec = QTextCodec::codecForName(reader.documentEncoding().toString().toUtf8());
+    }
+
+    if (!codec && m_mime == "text/html") 
+        codec = QTextCodec::codecForHtml(m_responseEntityBody, 0);
+
+    if (!codec)
+        codec = QTextCodec::codecForUtfText(m_responseEntityBody, 0);
+
+    if (!codec)
+        codec = QTextCodec::codecForName("UTF-8");
+    return codec;
+}
+#endif
+
+
+QString QDeclarativeXMLHttpRequest::responseBody()
+{
+#ifndef QT_NO_TEXTCODEC
+    if (!m_textCodec)
+        m_textCodec = findTextCodec();
+    if (m_textCodec)
+        return m_textCodec->toUnicode(m_responseEntityBody);
+#endif
 
     return QString::fromUtf8(m_responseEntityBody);
 }
@@ -1568,7 +1639,8 @@
     if (!request) 
         THROW_REFERENCE("Not an XMLHttpRequest object");
 
-    if (request->readyState() != QDeclarativeXMLHttpRequest::Loading &&
+    if (!request->receivedXml() ||
+        request->readyState() != QDeclarativeXMLHttpRequest::Loading &&
         request->readyState() != QDeclarativeXMLHttpRequest::Done)
         return engine->nullValue();
     else  
@@ -1662,4 +1734,6 @@
 
 QT_END_NAMESPACE
 
+#endif // QT_NO_XMLSTREAMREADER
+
 #include <qdeclarativexmlhttprequest.moc>
--- a/src/declarative/qml/qdeclarativexmlhttprequest_p.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/qml/qdeclarativexmlhttprequest_p.h	Mon Oct 04 01:19:32 2010 +0300
@@ -56,6 +56,8 @@
 
 #include <QtCore/qglobal.h>
 
+#ifndef QT_NO_XMLSTREAMREADER
+
 QT_BEGIN_NAMESPACE
 
 class QScriptEngine;
@@ -63,5 +65,7 @@
 
 QT_END_NAMESPACE
 
+#endif // QT_NO_XMLSTREAMREADER
+
 #endif // QDECLARATIVEXMLHTTPREQUEST_P_H
 
--- a/src/declarative/qml/qmetaobjectbuilder.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/qml/qmetaobjectbuilder.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -205,7 +205,7 @@
             (const QByteArray& _name, const QByteArray& _type, int notifierIdx=-1)
         : name(_name),
           type(QMetaObject::normalizedType(_type.constData())),
-          flags(Readable | Writable), notifySignal(-1)
+          flags(Readable | Writable | Scriptable), notifySignal(-1)
     {
         if (notifierIdx >= 0) {
             flags |= Notify;
@@ -1142,7 +1142,7 @@
     if (!parameterNames.isEmpty()) {
         QByteArray names;
         bool first = true;
-        foreach (QByteArray name, parameterNames) {
+        foreach (const QByteArray &name, parameterNames) {
             if (first)
                 first = false;
             else
@@ -2187,7 +2187,7 @@
 
 /*!
     Returns true if the property is scriptable; otherwise returns false.
-    This default value is false.
+    This default value is true.
 
     \sa setScriptable(), isDesignable(), isStored()
 */
--- a/src/declarative/qml/qml.pri	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/qml/qml.pri	Mon Oct 04 01:19:32 2010 +0300
@@ -24,7 +24,7 @@
     $$PWD/qdeclarativestringconverters.cpp \
     $$PWD/qdeclarativeclassfactory.cpp \
     $$PWD/qdeclarativeparserstatus.cpp \
-    $$PWD/qdeclarativecompositetypemanager.cpp \
+    $$PWD/qdeclarativetypeloader.cpp \
     $$PWD/qdeclarativeinfo.cpp \
     $$PWD/qdeclarativeerror.cpp \
     $$PWD/qdeclarativescriptparser.cpp \
@@ -94,8 +94,7 @@
     $$PWD/qdeclarativeproperty_p.h \
     $$PWD/qdeclarativecontext_p.h \
     $$PWD/qdeclarativeinclude_p.h \
-    $$PWD/qdeclarativecompositetypedata_p.h \
-    $$PWD/qdeclarativecompositetypemanager_p.h \
+    $$PWD/qdeclarativetypeloader_p.h \
     $$PWD/qdeclarativelist.h \
     $$PWD/qdeclarativelist_p.h \
     $$PWD/qdeclarativedata_p.h \
--- a/src/declarative/util/qdeclarativeanimation.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/util/qdeclarativeanimation.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -74,6 +74,7 @@
 
 /*!
     \qmlclass Animation QDeclarativeAbstractAnimation
+  \ingroup qml-animation-transition
     \since 4.7
     \brief The Animation element is the base of all QML animations.
 
@@ -83,11 +84,6 @@
     element directly will result in an error.
 */
 
-/*!
-    \class QDeclarativeAbstractAnimation
-    \internal
-*/
-
 QDeclarativeAbstractAnimation::QDeclarativeAbstractAnimation(QObject *parent)
 : QObject(*(new QDeclarativeAbstractAnimationPrivate), parent)
 {
@@ -336,7 +332,7 @@
     stopped - either by setting the \c running property to false, or by calling
     the \c stop() method.
 
-    In the following example, the rectangle will spin indefinately.
+    In the following example, the rectangle will spin indefinitely.
 
     \code
     Rectangle {
@@ -554,6 +550,7 @@
 
 /*!
     \qmlclass PauseAnimation QDeclarativePauseAnimation
+  \ingroup qml-animation-transition
     \since 4.7
     \inherits Animation
     \brief The PauseAnimation element provides a pause for an animation.
@@ -572,12 +569,6 @@
 
     \sa {QML Animation}, {declarative/animation/basics}{Animation basics example}
 */
-/*!
-    \internal
-    \class QDeclarativePauseAnimation
-*/
-
-
 QDeclarativePauseAnimation::QDeclarativePauseAnimation(QObject *parent)
 : QDeclarativeAbstractAnimation(*(new QDeclarativePauseAnimationPrivate), parent)
 {
@@ -630,6 +621,7 @@
 
 /*!
     \qmlclass ColorAnimation QDeclarativeColorAnimation
+  \ingroup qml-animation-transition
     \since 4.7
     \inherits PropertyAnimation
     \brief The ColorAnimation element animates changes in color values.
@@ -645,21 +637,17 @@
 
     Like any other animation element, a ColorAnimation can be applied in a
     number of ways, including transitions, behaviors and property value 
-    sources. The \l PropertyAnimation documentation shows a variety of methods
+    sources. The \l {QML Animation} documentation shows a variety of methods
     for creating animations.
 
-    When used in a transition, ColorAnimation will by default animate
-    all properties of type color that have changed. If a \l{PropertyAnimation::}{property} 
-    or \l{PropertyAnimation::}{properties} are explicitly set for the animation, 
+    For convenience, when a ColorAnimation is used in a \l Transition, it will 
+    animate any \c color properties that have been modified during the state 
+    change. If a \l{PropertyAnimation::}{property} or 
+    \l{PropertyAnimation::}{properties} are explicitly set for the animation, 
     then those are used instead.
 
     \sa {QML Animation}, {declarative/animation/basics}{Animation basics example}
 */
-/*!
-    \internal
-    \class QDeclarativeColorAnimation
-*/
-
 QDeclarativeColorAnimation::QDeclarativeColorAnimation(QObject *parent)
 : QDeclarativePropertyAnimation(parent)
 {
@@ -690,9 +678,12 @@
     }
     \endqml
 
-    If this value is not set and the ColorAnimation is defined within
-    a \l Transition, it defaults to the value defined in the starting 
-    state of the \l Transition.
+    If the ColorAnimation is defined within a \l Transition or \l Behavior,
+    this value defaults to the value defined in the starting state of the
+    \l Transition, or the current value of the property at the moment the 
+    \l Behavior is triggered.
+
+    \sa {QML Animation}
 */
 QColor QDeclarativeColorAnimation::from() const
 {
@@ -710,9 +701,12 @@
 
     This property holds the color value at which the animation should end.
 
-    If this value is not set and the ColorAnimation is defined within
-    a \l Transition or \l Behavior, it defaults to the value defined in the end 
-    state of the \l Transition or \l Behavior.
+    If the ColorAnimation is defined within a \l Transition or \l Behavior,
+    this value defaults to the value defined in the end state of the
+    \l Transition, or the value of the property change that triggered the
+    \l Behavior.
+
+    \sa {QML Animation}
 */
 QColor QDeclarativeColorAnimation::to() const
 {
@@ -729,6 +723,7 @@
 
 /*!
     \qmlclass ScriptAction QDeclarativeScriptAction
+  \ingroup qml-animation-transition
     \since 4.7
     \inherits Animation
     \brief The ScriptAction element allows scripts to be run during an animation.
@@ -765,10 +760,6 @@
 
     \sa StateChangeScript
 */
-/*!
-    \internal
-    \class QDeclarativeScriptAction
-*/
 QDeclarativeScriptAction::QDeclarativeScriptAction(QObject *parent)
     :QDeclarativeAbstractAnimation(*(new QDeclarativeScriptActionPrivate), parent)
 {
@@ -877,37 +868,50 @@
 
 /*!
     \qmlclass PropertyAction QDeclarativePropertyAction
+  \ingroup qml-animation-transition
     \since 4.7
     \inherits Animation
     \brief The PropertyAction element allows immediate property changes during animation.
 
-    PropertyAction is used to specify an immediate property change
-    during an animation. The property change is not animated.
-
-    For example, to explicitly set \c {theImage.smooth = true} during a \l Transition:
-    \code
+    PropertyAction is used to specify an immediate property change during an 
+    animation. The property change is not animated.
+
+    It is useful for setting non-animated property values during an animation.
+
+    For example, here is a SequentialAnimation that sets the image's
+    \l {Image::}{smooth} property to \c true, animates the width of the image,
+    then sets \l {Image::}{smooth} back to \c false:
+
+    \snippet doc/src/snippets/declarative/propertyaction.qml standalone
+
+    PropertyAction is also useful for setting the exact point at which a property 
+    change should occur during a \l Transition. For example, if PropertyChanges 
+    was used in a \l State to rotate an item around a particular 
+    \l {Item::}{transformOrigin}, it might be implemented like this:
+
+    \snippet doc/src/snippets/declarative/propertyaction.qml transition
+
+    However, with this code, the \c transformOrigin is not set until \e after
+    the animation, as a \l State is taken to define the values at the \e end of
+    a transition. The animation would rotate at the default \c transformOrigin,
+    then jump to \c Item.BottomRight. To fix this, insert a PropertyChanges 
+    before the RotationAnimation begins:
+
+    \qml
     transitions: Transition {
-        ...
-        PropertyAction { target: theImage; property: "smooth"; value: true }
-        ...
+        SequentialAnimation {
+            PropertyAction { target: rect; property: "transformOrigin" }
+            RotationAnimation { ... }
+        }
     }
-    \endcode
-
-    Or, to set \c theWebView.url to the value set for the destination state:
-    \code
-    transitions: Transition {
-        ...
-        PropertyAction { target: theWebView; property: "url" }
-        ...
-    }
-    \endcode
-
-
-    \sa QtDeclarative
-*/
-/*!
-    \internal
-    \class QDeclarativePropertyAction
+    \endqml
+    
+    This immediately sets the \c transformOrigin property to the value defined
+    in the end state of the \l Transition (i.e. the value defined in the 
+    PropertyChanges object) so that the rotation animation begins with the
+    correct transform origin.
+
+    \sa {QML Animation}, QtDeclarative
 */
 QDeclarativePropertyAction::QDeclarativePropertyAction(QObject *parent)
 : QDeclarativeAbstractAnimation(*(new QDeclarativePropertyActionPrivate), parent)
@@ -939,7 +943,7 @@
     if (d->target == o)
         return;
     d->target = o;
-    emit targetChanged(d->target, d->propertyName);
+    emit targetChanged();
 }
 
 QString QDeclarativePropertyAction::property() const
@@ -954,7 +958,7 @@
     if (d->propertyName == n)
         return;
     d->propertyName = n;
-    emit targetChanged(d->target, d->propertyName);
+    emit propertyChanged();
 }
 
 /*!
@@ -1008,7 +1012,11 @@
 /*!
     \qmlproperty any PropertyAction::value
     This property holds the value to be set on the property.
-    If not set, then the value defined for the end state of the transition.
+
+    If the PropertyAction is defined within a \l Transition or \l Behavior,
+    this value defaults to the value defined in the end state of the
+    \l Transition, or the value of the property change that triggered the
+    \l Behavior.
 */
 QVariant QDeclarativePropertyAction::value() const
 {
@@ -1128,6 +1136,7 @@
 
 /*!
     \qmlclass NumberAnimation QDeclarativeNumberAnimation
+  \ingroup qml-animation-transition
     \since 4.7
     \inherits PropertyAnimation
     \brief The NumberAnimation element animates changes in qreal-type values.
@@ -1143,7 +1152,7 @@
 
     Like any other animation element, a NumberAnimation can be applied in a
     number of ways, including transitions, behaviors and property value 
-    sources. The \l PropertyAnimation documentation shows a variety of methods
+    sources. The \l {QML Animation} documentation shows a variety of methods
     for creating animations.
 
     Note that NumberAnimation may not animate smoothly if there are irregular
@@ -1152,12 +1161,6 @@
 
     \sa {QML Animation}, {declarative/animation/basics}{Animation basics example}
 */
-
-/*!
-    \internal
-    \class QDeclarativeNumberAnimation
-*/
-
 QDeclarativeNumberAnimation::QDeclarativeNumberAnimation(QObject *parent)
 : QDeclarativePropertyAnimation(parent)
 {
@@ -1183,7 +1186,7 @@
 
 /*!
     \qmlproperty real NumberAnimation::from
-    This property holds the starting number value.
+    This property holds the starting value for the animation.
 
     For example, the following animation is not applied until the \c x value
     has reached 100:
@@ -1198,9 +1201,12 @@
     }
     \endqml
 
-    If this value is not set and the NumberAnimation is defined within
-    a \l Transition, it defaults to the value defined in the start 
-    state of the \l Transition.
+    If the NumberAnimation is defined within a \l Transition or \l Behavior,
+    this value defaults to the value defined in the starting state of the
+    \l Transition, or the current value of the property at the moment the 
+    \l Behavior is triggered.
+
+    \sa {QML Animation}
 */
 
 qreal QDeclarativeNumberAnimation::from() const
@@ -1216,11 +1222,14 @@
 
 /*!
     \qmlproperty real NumberAnimation::to
-    This property holds the ending number value.
-
-    If this value is not set and the NumberAnimation is defined within
-    a \l Transition or \l Behavior, it defaults to the value defined in the end 
-    state of the \l Transition or \l Behavior.
+    This property holds the end value for the animation.
+
+    If the NumberAnimation is defined within a \l Transition or \l Behavior,
+    this value defaults to the value defined in the end state of the
+    \l Transition, or the value of the property change that triggered the
+    \l Behavior.
+
+    \sa {QML Animation}
 */
 qreal QDeclarativeNumberAnimation::to() const
 {
@@ -1237,6 +1246,7 @@
 
 /*!
     \qmlclass Vector3dAnimation QDeclarativeVector3dAnimation
+    \ingroup qml-animation-transition
     \since 4.7
     \inherits PropertyAnimation
     \brief The Vector3dAnimation element animates changes in QVector3d values.
@@ -1244,14 +1254,13 @@
     Vector3dAnimation is a specialized PropertyAnimation that defines an 
     animation to be applied when a Vector3d value changes.
 
+    Like any other animation element, a Vector3dAnimation can be applied in a
+    number of ways, including transitions, behaviors and property value 
+    sources. The \l {QML Animation} documentation shows a variety of methods
+    for creating animations.
+
     \sa {QML Animation}, {declarative/animation/basics}{Animation basics example}
 */
-
-/*!
-    \internal
-    \class QDeclarativeVector3dAnimation
-*/
-
 QDeclarativeVector3dAnimation::QDeclarativeVector3dAnimation(QObject *parent)
 : QDeclarativePropertyAnimation(parent)
 {
@@ -1267,10 +1276,14 @@
 
 /*!
     \qmlproperty real Vector3dAnimation::from
-    This property holds the starting value.
-
-    If this value is not set, it defaults to the value defined in the start 
-    state of the \l Transition.
+    This property holds the starting value for the animation.
+
+    If the Vector3dAnimation is defined within a \l Transition or \l Behavior,
+    this value defaults to the value defined in the starting state of the
+    \l Transition, or the current value of the property at the moment the 
+    \l Behavior is triggered.
+
+    \sa {QML Animation}
 */
 QVector3D QDeclarativeVector3dAnimation::from() const
 {
@@ -1285,10 +1298,14 @@
 
 /*!
     \qmlproperty real Vector3dAnimation::to
-    This property holds the ending value.
-
-    If this value is not set, it defaults to the value defined in the end 
-    state of the \l Transition or \l Behavior.
+    This property holds the end value for the animation.
+
+    If the Vector3dAnimation is defined within a \l Transition or \l Behavior,
+    this value defaults to the value defined in the end state of the
+    \l Transition, or the value of the property change that triggered the
+    \l Behavior.
+
+    \sa {QML Animation}
 */
 QVector3D QDeclarativeVector3dAnimation::to() const
 {
@@ -1305,6 +1322,7 @@
 
 /*!
     \qmlclass RotationAnimation QDeclarativeRotationAnimation
+  \ingroup qml-animation-transition
     \since 4.7
     \inherits PropertyAnimation
     \brief The RotationAnimation element animates changes in rotation values.
@@ -1323,25 +1341,25 @@
 
     \snippet doc/src/snippets/declarative/rotationanimation.qml 0
     
-    Notice the RotationAnimation did not need to set a \l {RotationAnimation::}{target}
+    Notice the RotationAnimation did not need to set a \l target
     value. As a convenience, when used in a transition, RotationAnimation will rotate all
     properties named "rotation" or "angle". You can override this by providing
     your own properties via \l {PropertyAnimation::properties}{properties} or 
     \l {PropertyAnimation::property}{property}.
 
+    Also, note the \l Rectangle will be rotated around its default
+    \l {Item::}{transformOrigin} (which is \c Item.Center). To use a different
+    transform origin, set the origin in the PropertyChanges object and apply
+    the change at the start of the animation using PropertyAction. See the
+    PropertyAction documentation for more details.
+
     Like any other animation element, a RotationAnimation can be applied in a
     number of ways, including transitions, behaviors and property value 
-    sources. The \l PropertyAnimation documentation shows a variety of methods
+    sources. The \l {QML Animation} documentation shows a variety of methods
     for creating animations.
 
     \sa {QML Animation}, {declarative/animation/basics}{Animation basics example}
 */
-
-/*!
-    \internal
-    \class QDeclarativeRotationAnimation
-*/
-
 QVariant _q_interpolateShortestRotation(qreal &f, qreal &t, qreal progress)
 {
     qreal newt = t;
@@ -1394,7 +1412,7 @@
 
 /*!
     \qmlproperty real RotationAnimation::from
-    This property holds the starting number value.
+    This property holds the starting value for the animation.
 
     For example, the following animation is not applied until the \c angle value
     has reached 100:
@@ -1409,8 +1427,12 @@
     }
     \endqml
 
-    If this value is not set, it defaults to the value defined in the start 
-    state of the \l Transition.
+    If the RotationAnimation is defined within a \l Transition or \l Behavior,
+    this value defaults to the value defined in the starting state of the
+    \l Transition, or the current value of the property at the moment the 
+    \l Behavior is triggered.
+
+    \sa {QML Animation}
 */
 qreal QDeclarativeRotationAnimation::from() const
 {
@@ -1425,10 +1447,14 @@
 
 /*!
     \qmlproperty real RotationAnimation::to
-    This property holds the ending value.
-
-    If this value is not set, it defaults to the value defined in the end 
-    state of the \l Transition or \l Behavior.
+    This property holds the end value for the animation..
+
+    If the RotationAnimation is defined within a \l Transition or \l Behavior,
+    this value defaults to the value defined in the end state of the
+    \l Transition, or the value of the property change that triggered the
+    \l Behavior.
+
+    \sa {QML Animation}
 */
 qreal QDeclarativeRotationAnimation::to() const
 {
@@ -1534,6 +1560,7 @@
 
 /*!
     \qmlclass SequentialAnimation QDeclarativeSequentialAnimation
+  \ingroup qml-animation-transition
     \since 4.7
     \inherits Animation
     \brief The SequentialAnimation element allows animations to be run sequentially.
@@ -1554,9 +1581,13 @@
 
     Like any other animation element, a SequentialAnimation can be applied in a
     number of ways, including transitions, behaviors and property value 
-    sources. The \l PropertyAnimation documentation shows a variety of methods
+    sources. The \l {QML Animation} documentation shows a variety of methods
     for creating animations.
 
+    \note Once an animation has been grouped into a SequentialAnimation or 
+    ParallelAnimation, it cannot be individually started and stopped; the
+    SequentialAnimation or ParallelAnimation must be started and stopped as a group.
+    
     \sa ParallelAnimation, {QML Animation}, {declarative/animation/basics}{Animation basics example}
 */
 
@@ -1603,6 +1634,7 @@
 
 /*!
     \qmlclass ParallelAnimation QDeclarativeParallelAnimation
+  \ingroup qml-animation-transition
     \since 4.7
     \inherits Animation
     \brief The ParallelAnimation element allows animations to be run in parallel.
@@ -1619,16 +1651,15 @@
 
     Like any other animation element, a ParallelAnimation can be applied in a
     number of ways, including transitions, behaviors and property value 
-    sources. The \l PropertyAnimation documentation shows a variety of methods
+    sources. The \l {QML Animation} documentation shows a variety of methods
     for creating animations.
 
+    \note Once an animation has been grouped into a SequentialAnimation or 
+    ParallelAnimation, it cannot be individually started and stopped; the
+    SequentialAnimation or ParallelAnimation must be started and stopped as a group.
+
     \sa SequentialAnimation, {QML Animation}, {declarative/animation/basics}{Animation basics example}
 */
-/*!
-    \internal
-    \class QDeclarativeParallelAnimation
-*/
-
 QDeclarativeParallelAnimation::QDeclarativeParallelAnimation(QObject *parent) :
     QDeclarativeAnimationGroup(parent)
 {
@@ -1717,6 +1748,7 @@
 
 /*!
     \qmlclass PropertyAnimation QDeclarativePropertyAnimation
+  \ingroup qml-animation-transition
     \since 4.7
     \inherits Animation
     \brief The PropertyAnimation element animates changes in property values.
@@ -1829,8 +1861,14 @@
 
 /*!
     \qmlproperty real PropertyAnimation::from
-    This property holds the starting value.
-    If not set, then the value defined in the start state of the transition.
+    This property holds the starting value for the animation.
+
+    If the PropertyAnimation is defined within a \l Transition or \l Behavior,
+    this value defaults to the value defined in the starting state of the
+    \l Transition, or the current value of the property at the moment the 
+    \l Behavior is triggered.
+
+    \sa {QML Animation}
 */
 QVariant QDeclarativePropertyAnimation::from() const
 {
@@ -1850,8 +1888,14 @@
 
 /*!
     \qmlproperty real PropertyAnimation::to
-    This property holds the ending value.
-    If not set, then the value defined in the end state of the transition or \l Behavior.
+    This property holds the end value for the animation.
+
+    If the PropertyAnimation is defined within a \l Transition or \l Behavior,
+    this value defaults to the value defined in the end state of the
+    \l Transition, or the value of the property change that triggered the
+    \l Behavior.
+
+    \sa {QML Animation}
 */
 QVariant QDeclarativePropertyAnimation::to() const
 {
@@ -1929,15 +1973,15 @@
         \o \inlineimage qeasingcurve-inquart.png
     \row
         \o \c Easing.OutQuart
-        \o Easing curve for a cubic (t^4) function: decelerating from zero velocity.
+        \o Easing curve for a quartic (t^4) function: decelerating from zero velocity.
         \o \inlineimage qeasingcurve-outquart.png
     \row
         \o \c Easing.InOutQuart
-        \o Easing curve for a cubic (t^4) function: acceleration until halfway, then deceleration.
+        \o Easing curve for a quartic (t^4) function: acceleration until halfway, then deceleration.
         \o \inlineimage qeasingcurve-inoutquart.png
     \row
         \o \c Easing.OutInQuart
-        \o Easing curve for a cubic (t^4) function: deceleration until halfway, then acceleration.
+        \o Easing curve for a quartic (t^4) function: deceleration until halfway, then acceleration.
         \o \inlineimage qeasingcurve-outinquart.png
     \row
         \o \c Easing.InQuint
@@ -1945,15 +1989,15 @@
         \o \inlineimage qeasingcurve-inquint.png
     \row
         \o \c Easing.OutQuint
-        \o Easing curve for a cubic (t^5) function: decelerating from zero velocity.
+        \o Easing curve for a quintic (t^5) function: decelerating from zero velocity.
         \o \inlineimage qeasingcurve-outquint.png
     \row
         \o \c Easing.InOutQuint
-        \o Easing curve for a cubic (t^5) function: acceleration until halfway, then deceleration.
+        \o Easing curve for a quintic (t^5) function: acceleration until halfway, then deceleration.
         \o \inlineimage qeasingcurve-inoutquint.png
     \row
         \o \c Easing.OutInQuint
-        \o Easing curve for a cubic (t^5) function: deceleration until halfway, then acceleration.
+        \o Easing curve for a quintic (t^5) function: deceleration until halfway, then acceleration.
         \o \inlineimage qeasingcurve-outinquint.png
     \row
         \o \c Easing.InSine
@@ -2096,7 +2140,7 @@
     if (d->target == o)
         return;
     d->target = o;
-    emit targetChanged(d->target, d->propertyName);
+    emit targetChanged();
 }
 
 QString QDeclarativePropertyAnimation::property() const
@@ -2111,7 +2155,7 @@
     if (d->propertyName == n)
         return;
     d->propertyName = n;
-    emit targetChanged(d->target, d->propertyName);
+    emit propertyChanged();
 }
 
 QString QDeclarativePropertyAnimation::properties() const
@@ -2378,18 +2422,20 @@
         d->actions = &data->actions;
     } else {
         delete data;
+        d->va->setFromSourcedValue(0);  //clear previous data
+        d->va->setAnimValue(0, QAbstractAnimation::DeleteWhenStopped);  //clear previous data
         d->actions = 0;
     }
 }
 
 /*!
     \qmlclass ParentAnimation QDeclarativeParentAnimation
+  \ingroup qml-animation-transition
     \since 4.7
     \inherits Animation
     \brief The ParentAnimation element animates changes in parent values.
 
-    ParentAnimation defines an animation to applied when a ParentChange
-    occurs. This allows parent changes to be smoothly animated.
+    ParentAnimation is used to animate a parent change for an \l Item.
 
     For example, the following ParentChange changes \c blueRect to become
     a child of \c redRect when it is clicked. The inclusion of the 
@@ -2407,17 +2453,18 @@
     to animate the parent change via another item that does not have clipping
     enabled. Such an item can be set using the \l via property.
 
-    By default, when used in a transition, ParentAnimation animates all parent 
-    changes. This can be overriden by setting a specific target item using the
+    For convenience, when a ParentAnimation is used in a \l Transition, it will 
+    animate any ParentChange that has occurred during the state change. 
+    This can be overridden by setting a specific target item using the
     \l target property.
 
+    Like any other animation element, a ParentAnimation can be applied in a
+    number of ways, including transitions, behaviors and property value 
+    sources. The \l {QML Animation} documentation shows a variety of methods
+    for creating animations.
+
     \sa {QML Animation}, {declarative/animation/basics}{Animation basics example}
 */
-
-/*!
-    \internal
-    \class QDeclarativeParentAnimation
-*/
 QDeclarativeParentAnimation::QDeclarativeParentAnimation(QObject *parent)
     : QDeclarativeAnimationGroup(*(new QDeclarativeParentAnimationPrivate), parent)
 {
@@ -2469,7 +2516,10 @@
     \qmlproperty Item ParentAnimation::newParent
     The new parent to animate to.
 
-    If not set, then the parent defined in the end state of the transition.
+    If the ParentAnimation is defined within a \l Transition or \l Behavior,
+    this value defaults to the value defined in the end state of the
+    \l Transition, or the value of the property change that triggered the
+    \l Behavior.
 */
 QDeclarativeItem *QDeclarativeParentAnimation::newParent() const
 {
@@ -2738,18 +2788,28 @@
 
 /*!
     \qmlclass AnchorAnimation QDeclarativeAnchorAnimation
+  \ingroup qml-animation-transition
     \since 4.7
     \inherits Animation
     \brief The AnchorAnimation element animates changes in anchor values.
 
-    AnchorAnimation is used to animate an AnchorChange. It will anchor all
-    anchor changes specified in a \l State.
+    AnchorAnimation is used to animate an anchor change. 
 
     In the following snippet we animate the addition of a right anchor to a \l Rectangle:
 
     \snippet doc/src/snippets/declarative/anchoranimation.qml 0
 
-    \sa AnchorChanges
+    For convenience, when an AnchorAnimation is used in a \l Transition, it will 
+    animate any AnchorChanges that have occurred during the state change. 
+    This can be overridden by setting a specific target item using the
+    \l target property.
+
+    Like any other animation element, an AnchorAnimation can be applied in a
+    number of ways, including transitions, behaviors and property value 
+    sources. The \l {QML Animation} documentation shows a variety of methods
+    for creating animations.
+
+    \sa {QML Animation}, AnchorChanges
 */
 
 QDeclarativeAnchorAnimation::QDeclarativeAnchorAnimation(QObject *parent)
--- a/src/declarative/util/qdeclarativeanimation_p.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/util/qdeclarativeanimation_p.h	Mon Oct 04 01:19:32 2010 +0300
@@ -74,7 +74,7 @@
     Q_PROPERTY(bool running READ isRunning WRITE setRunning NOTIFY runningChanged)
     Q_PROPERTY(bool paused READ isPaused WRITE setPaused NOTIFY pausedChanged)
     Q_PROPERTY(bool alwaysRunToEnd READ alwaysRunToEnd WRITE setAlwaysRunToEnd NOTIFY alwaysRunToEndChanged)
-    Q_PROPERTY(int loops READ loops WRITE setLoops NOTIFY loopsChanged)
+    Q_PROPERTY(int loops READ loops WRITE setLoops NOTIFY loopCountChanged)
     Q_CLASSINFO("DefaultMethod", "start()")
 
 public:
@@ -197,7 +197,7 @@
     Q_DECLARE_PRIVATE(QDeclarativePropertyAction)
 
     Q_PROPERTY(QObject *target READ target WRITE setTarget NOTIFY targetChanged)
-    Q_PROPERTY(QString property READ property WRITE setProperty NOTIFY targetChanged)
+    Q_PROPERTY(QString property READ property WRITE setProperty NOTIFY propertyChanged)
     Q_PROPERTY(QString properties READ properties WRITE setProperties NOTIFY propertiesChanged)
     Q_PROPERTY(QDeclarativeListProperty<QObject> targets READ targets)
     Q_PROPERTY(QDeclarativeListProperty<QObject> exclude READ exclude)
@@ -225,7 +225,8 @@
 Q_SIGNALS:
     void valueChanged(const QVariant &);
     void propertiesChanged(const QString &);
-    void targetChanged(QObject *, const QString &);
+    void targetChanged();
+    void propertyChanged();
 
 protected:
     virtual void transition(QDeclarativeStateActions &actions,
@@ -246,7 +247,7 @@
     Q_PROPERTY(QVariant to READ to WRITE setTo NOTIFY toChanged)
     Q_PROPERTY(QEasingCurve easing READ easing WRITE setEasing NOTIFY easingChanged)
     Q_PROPERTY(QObject *target READ target WRITE setTarget NOTIFY targetChanged)
-    Q_PROPERTY(QString property READ property WRITE setProperty NOTIFY targetChanged)
+    Q_PROPERTY(QString property READ property WRITE setProperty NOTIFY propertyChanged)
     Q_PROPERTY(QString properties READ properties WRITE setProperties NOTIFY propertiesChanged)
     Q_PROPERTY(QDeclarativeListProperty<QObject> targets READ targets)
     Q_PROPERTY(QDeclarativeListProperty<QObject> exclude READ exclude)
@@ -292,15 +293,16 @@
     void toChanged(QVariant);
     void easingChanged(const QEasingCurve &);
     void propertiesChanged(const QString &);
-    void targetChanged(QObject *, const QString &);
+    void targetChanged();
+    void propertyChanged();
 };
 
 class Q_AUTOTEST_EXPORT QDeclarativeColorAnimation : public QDeclarativePropertyAnimation
 {
     Q_OBJECT
     Q_DECLARE_PRIVATE(QDeclarativePropertyAnimation)
-    Q_PROPERTY(QColor from READ from WRITE setFrom NOTIFY fromChanged)
-    Q_PROPERTY(QColor to READ to WRITE setTo NOTIFY toChanged)
+    Q_PROPERTY(QColor from READ from WRITE setFrom)
+    Q_PROPERTY(QColor to READ to WRITE setTo)
 
 public:
     QDeclarativeColorAnimation(QObject *parent=0);
@@ -318,8 +320,8 @@
     Q_OBJECT
     Q_DECLARE_PRIVATE(QDeclarativePropertyAnimation)
 
-    Q_PROPERTY(qreal from READ from WRITE setFrom NOTIFY fromChanged)
-    Q_PROPERTY(qreal to READ to WRITE setTo NOTIFY toChanged)
+    Q_PROPERTY(qreal from READ from WRITE setFrom)
+    Q_PROPERTY(qreal to READ to WRITE setTo)
 
 public:
     QDeclarativeNumberAnimation(QObject *parent=0);
@@ -343,8 +345,8 @@
     Q_OBJECT
     Q_DECLARE_PRIVATE(QDeclarativePropertyAnimation)
 
-    Q_PROPERTY(QVector3D from READ from WRITE setFrom NOTIFY fromChanged)
-    Q_PROPERTY(QVector3D to READ to WRITE setTo NOTIFY toChanged)
+    Q_PROPERTY(QVector3D from READ from WRITE setFrom)
+    Q_PROPERTY(QVector3D to READ to WRITE setTo)
 
 public:
     QDeclarativeVector3dAnimation(QObject *parent=0);
@@ -364,8 +366,8 @@
     Q_DECLARE_PRIVATE(QDeclarativeRotationAnimation)
     Q_ENUMS(RotationDirection)
 
-    Q_PROPERTY(qreal from READ from WRITE setFrom NOTIFY fromChanged)
-    Q_PROPERTY(qreal to READ to WRITE setTo NOTIFY toChanged)
+    Q_PROPERTY(qreal from READ from WRITE setFrom)
+    Q_PROPERTY(qreal to READ to WRITE setTo)
     Q_PROPERTY(RotationDirection direction READ direction WRITE setDirection NOTIFY directionChanged)
 
 public:
--- a/src/declarative/util/qdeclarativebehavior.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/util/qdeclarativebehavior.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -72,6 +72,7 @@
 
 /*!
     \qmlclass Behavior QDeclarativeBehavior
+  \ingroup qml-animation-transition
     \since 4.7
     \brief The Behavior element allows you to specify a default animation for a property change.
 
@@ -84,12 +85,15 @@
 
     \snippet doc/src/snippets/declarative/behavior.qml 0
 
-    To run multiple animations within a Behavior, use ParallelAnimation or
+    Note that a property cannot have more than one assigned Behavior. To provide
+    multiple animations within a Behavior, use ParallelAnimation or
     SequentialAnimation.
 
-    Note that a property cannot have more than one assigned Behavior.
+    If a \l{QML States}{state change} has a \l Transition that matches the same property as a
+    Behavior, the \l Transition animation overrides the Behavior for that
+    state change.
 
-    \sa {Property Behaviors}, {declarative/animation/behaviors}{Behavior example}, QtDeclarative
+    \sa {QML Animation}, {declarative/animation/behaviors}{Behavior example}, QtDeclarative
 */
 
 
--- a/src/declarative/util/qdeclarativebind.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/util/qdeclarativebind.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -72,6 +72,7 @@
 
 /*!
     \qmlclass Binding QDeclarativeBind
+    \ingroup qml-working-with-data
     \since 4.7
     \brief The Binding element allows arbitrary property bindings to be created.
 
@@ -94,18 +95,7 @@
     immediately pushed onto the new target.
 
     \sa QtDeclarative
-    */
-/*!
-    \internal
-    \class QDeclarativeBind
-    \brief The QDeclarativeBind class allows arbitrary property bindings to be created.
-
-    Simple bindings are usually earier to do in-place rather than creating a
-    QDeclarativeBind item. For that reason, QDeclarativeBind is usually used to transfer property information
-    from Qml to C++.
-
-    \sa cppqml
-    */
+*/
 QDeclarativeBind::QDeclarativeBind(QObject *parent)
     : QObject(*(new QDeclarativeBindPrivate), parent)
 {
--- a/src/declarative/util/qdeclarativeconnections.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/util/qdeclarativeconnections.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -71,6 +71,7 @@
 
 /*!
     \qmlclass Connections QDeclarativeConnections
+  \ingroup qml-utility-elements
   \since 4.7
     \brief A Connections element describes generalized connections to signals.
 
@@ -123,13 +124,6 @@
 
     \sa QtDeclarative
 */
-
-/*!
-    \internal
-    \class QDeclarativeConnections
-    \brief The QDeclarativeConnections class describes generalized connections to signals.
-
-*/
 QDeclarativeConnections::QDeclarativeConnections(QObject *parent) :
     QObject(*(new QDeclarativeConnectionsPrivate), parent)
 {
--- a/src/declarative/util/qdeclarativefontloader.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/util/qdeclarativefontloader.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -78,6 +78,7 @@
 
 /*!
     \qmlclass FontLoader QDeclarativeFontLoader
+  \ingroup qml-utility-elements
     \since 4.7
     \brief The FontLoader element allows fonts to be loaded by name or URL.
 
@@ -129,6 +130,7 @@
 
     d->status = Loading;
     emit statusChanged();
+    emit sourceChanged();
 #ifndef QT_NO_LOCALFILE_OPTIMIZED_QML
     QString lf = QDeclarativeEnginePrivate::urlToLocalFileOrQrc(d->url);
     if (!lf.isEmpty()) {
--- a/src/declarative/util/qdeclarativefontloader_p.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/util/qdeclarativefontloader_p.h	Mon Oct 04 01:19:32 2010 +0300
@@ -82,6 +82,7 @@
     void replyFinished();
 
 Q_SIGNALS:
+    void sourceChanged();
     void nameChanged();
     void statusChanged();
 };
--- a/src/declarative/util/qdeclarativelistmodel.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/util/qdeclarativelistmodel.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -58,9 +58,6 @@
 
 QT_BEGIN_NAMESPACE
 
-#define DATA_ROLE_ID 1
-#define DATA_ROLE_NAME "data"
-
 QDeclarativeListModelParser::ListInstruction *QDeclarativeListModelParser::ListModelData::instructions() const
 {
     return (QDeclarativeListModelParser::ListInstruction *)((char *)this + sizeof(ListModelData));
@@ -68,6 +65,7 @@
 
 /*!
     \qmlclass ListModel QDeclarativeListModel
+    \ingroup qml-working-with-data
     \since 4.7
     \brief The ListModel element defines a free-form list data source.
 
@@ -108,9 +106,9 @@
     
     \snippet doc/src/snippets/declarative/listmodel-modify.qml delegate
 
-    When creating content dynamically, note that the set of available properties cannot be changed
-    except by first clearing the model. Whatever properties are first added to the model are then the
-    only permitted properties in the model until it is cleared.
+    Note that when creating content dynamically the set of available properties cannot be changed
+    once set. Whatever properties are first added to the model are the
+    only permitted properties in the model.
 
 
     \section2 Using threaded list models with WorkerScript
@@ -129,7 +127,7 @@
 
     \snippet examples/declarative/threading/threadedlistmodel/dataloader.js 0
 
-    The application's \tt Timer object periodically sends a message to the
+working-with-data
     worker script by calling \l WorkerScript::sendMessage(). When this message
     is received, \l {WorkerScript::onMessage}{WorkerScript.onMessage()} is invoked in
     \tt dataloader.js, which appends the current time to the list model.
@@ -283,8 +281,7 @@
 /*!
     \qmlmethod ListModel::clear()
 
-    Deletes all content from the model. The properties are cleared such that
-    different properties may be set on subsequent additions.
+    Deletes all content from the model.
 
     \sa append() remove()
 */
@@ -570,7 +567,7 @@
             QList<QDeclarativeCustomParserProperty> props = node.properties();
             for(int jj = 0; jj < props.count(); ++jj) {
                 const QDeclarativeCustomParserProperty &nodeProp = props.at(jj);
-                if (nodeProp.name() == "") {
+                if (nodeProp.name().isEmpty()) {
                     error(nodeProp, QDeclarativeListModel::tr("ListElement: cannot contain nested elements"));
                     return false;
                 }
@@ -658,7 +655,7 @@
 
     for(int ii = 0; ii < customProps.count(); ++ii) {
         const QDeclarativeCustomParserProperty &prop = customProps.at(ii);
-        if(prop.name() != "") { // isn't default property
+        if(!prop.name().isEmpty()) { // isn't default property
             error(prop, QDeclarativeListModel::tr("ListModel: undefined property '%1'").arg(QString::fromUtf8(prop.name())));
             return QByteArray();
         }
@@ -770,6 +767,7 @@
 
 /*!
     \qmlclass ListElement
+    \ingroup qml-working-with-data
     \since 4.7
     \brief The ListElement element defines a data item in a ListModel.
 
@@ -945,13 +943,14 @@
 }
 
 NestedListModel::NestedListModel(QDeclarativeListModel *base)
-    : _root(0), m_listModel(base), _rolesOk(false)
+    : _root(0), m_ownsRoot(false), m_listModel(base), _rolesOk(false)
 {
 }
 
 NestedListModel::~NestedListModel()
 {
-    delete _root;
+    if (m_ownsRoot)
+        delete _root;
 }
 
 QVariant NestedListModel::valueForNode(ModelNode *node, bool *hasNested) const
@@ -1051,8 +1050,8 @@
     _rolesOk = false;
     roleStrings.clear();
 
-    delete _root;
-    _root = 0;
+    if (_root)
+        _root->clear();
 }
 
 void NestedListModel::remove(int index)
@@ -1067,8 +1066,10 @@
 
 bool NestedListModel::insert(int index, const QScriptValue& valuemap)
 {
-    if (!_root)
+    if (!_root) {
         _root = new ModelNode;
+        m_ownsRoot = true;
+    }
 
     ModelNode *mn = new ModelNode;
     mn->setObjectValue(valuemap);
@@ -1099,8 +1100,10 @@
 
 bool NestedListModel::append(const QScriptValue& valuemap)
 {
-    if (!_root)
+    if (!_root) {
         _root = new ModelNode;
+        m_ownsRoot = true;
+    }
     ModelNode *mn = new ModelNode;
     mn->setObjectValue(valuemap);
     _root->values << qVariantFromValue(mn);
@@ -1205,16 +1208,22 @@
 
 ModelNode::~ModelNode()
 {
-    qDeleteAll(properties.values());
+    clear();
+    if (modelCache) { modelCache->m_nested->_root = 0/* ==this */; delete modelCache; modelCache = 0; }
+    if (objectCache) { delete objectCache; objectCache = 0; }
+}
 
+void ModelNode::clear()
+{
     ModelNode *node;
     for (int ii = 0; ii < values.count(); ++ii) {
         node = qvariant_cast<ModelNode *>(values.at(ii));
         if (node) { delete node; node = 0; }
     }
+    values.clear();
 
-    if (modelCache) { modelCache->m_nested->_root = 0/* ==this */; delete modelCache; modelCache = 0; }
-    if (objectCache) { delete objectCache; objectCache = 0; }
+    qDeleteAll(properties.values());
+    properties.clear();
 }
 
 void ModelNode::setObjectValue(const QScriptValue& valuemap) {
--- a/src/declarative/util/qdeclarativelistmodel_p_p.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/util/qdeclarativelistmodel_p_p.h	Mon Oct 04 01:19:32 2010 +0300
@@ -130,6 +130,7 @@
     void checkRoles() const;
 
     ModelNode *_root;
+    bool m_ownsRoot;
     QDeclarativeListModel *m_listModel;
 
 private:
@@ -157,6 +158,8 @@
     QList<QVariant> values;
     QHash<QString, ModelNode *> properties;
 
+    void clear();
+
     QDeclarativeListModel *model(const NestedListModel *model) {
         if (!modelCache) { 
             modelCache = new QDeclarativeListModel;
--- a/src/declarative/util/qdeclarativelistmodelworkeragent.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/util/qdeclarativelistmodelworkeragent.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -187,12 +187,17 @@
     s->data = data;
     s->list = m_copy;
     data.changes.clear();
+
+    mutex.lock();
     QCoreApplication::postEvent(this, s);
+    syncDone.wait(&mutex);
+    mutex.unlock();
 }
 
 bool QDeclarativeListModelWorkerAgent::event(QEvent *e)
 {
     if (e->type() == QEvent::User) {
+        QMutexLocker locker(&mutex);
         Sync *s = static_cast<Sync *>(e);
 
         const QList<Change> &changes = s->data.changes;
@@ -202,13 +207,18 @@
 
             FlatListModel *orig = m_orig->m_flat;
             FlatListModel *copy = s->list->m_flat;
-            if (!orig || !copy) 
+            if (!orig || !copy) {
+                syncDone.wakeAll();
                 return QObject::event(e);
-            
+            }
+
             orig->m_roles = copy->m_roles;
             orig->m_strings = copy->m_strings;
             orig->m_values = copy->m_values;
 
+            syncDone.wakeAll();
+            locker.unlock();
+
             for (int ii = 0; ii < changes.count(); ++ii) {
                 const Change &change = changes.at(ii);
                 switch (change.type) {
@@ -229,6 +239,8 @@
 
             if (cc)
                 emit m_orig->countChanged();
+        } else {
+            syncDone.wakeAll();
         }
     }
 
--- a/src/declarative/util/qdeclarativelistmodelworkeragent_p.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/util/qdeclarativelistmodelworkeragent_p.h	Mon Oct 04 01:19:32 2010 +0300
@@ -57,6 +57,8 @@
 
 #include <QtScript/qscriptvalue.h>
 #include <QtGui/qevent.h>
+#include <QMutex>
+#include <QWaitCondition>
 
 QT_BEGIN_HEADER
 
@@ -142,6 +144,8 @@
     QAtomicInt m_ref;
     QDeclarativeListModel *m_orig;
     QDeclarativeListModel *m_copy;
+    QMutex mutex;
+    QWaitCondition syncDone;
 };
 
 QT_END_NAMESPACE
--- a/src/declarative/util/qdeclarativeopenmetaobject.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/util/qdeclarativeopenmetaobject.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -161,6 +161,12 @@
         prop.second = true;
     }
 
+    inline bool hasData(int idx) const {
+        if (idx >= data.count())
+            return false;
+        return data[idx].second;
+    }
+
     bool autoCreate;
     QDeclarativeOpenMetaObject *q;
     QAbstractDynamicMetaObject *parent;
@@ -295,6 +301,12 @@
     activate(d->object, id + d->type->d->signalOffset, 0);
 }
 
+// returns true if this value has been initialized by a call to either value() or setValue()
+bool QDeclarativeOpenMetaObject::hasValue(int id) const
+{
+    return d->hasData(id);
+}
+
 void QDeclarativeOpenMetaObject::setCached(bool c)
 {
     if (c == d->cacheProperties || !d->type->d->engine)
--- a/src/declarative/util/qdeclarativeopenmetaobject_p.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/util/qdeclarativeopenmetaobject_p.h	Mon Oct 04 01:19:32 2010 +0300
@@ -91,6 +91,7 @@
     void setValue(int, const QVariant &);
     QVariant &operator[](const QByteArray &);
     QVariant &operator[](int);
+    bool hasValue(int) const;
 
     int count() const;
     QByteArray name(int) const;
--- a/src/declarative/util/qdeclarativepackage.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/util/qdeclarativepackage.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -48,6 +48,7 @@
 
 /*!
     \qmlclass Package QDeclarativePackage
+    \ingroup qml-working-with-data
     \brief Package provides a collection of named items.
 
     The Package class is used in conjunction with
--- a/src/declarative/util/qdeclarativepixmapcache.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/util/qdeclarativepixmapcache.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -70,6 +70,16 @@
 
 QT_BEGIN_NAMESPACE
 
+// The cache limit describes the maximum "junk" in the cache.
+// These are the same defaults as QPixmapCache
+#if defined(Q_OS_SYMBIAN)
+static int cache_limit = 1024 * 1024; // 1048 KB cache limit for symbian
+#elif defined(Q_WS_QWS) || defined(Q_WS_WINCE)
+static int cache_limit = 2048 * 1024; // 2048 KB cache limit for embedded
+#else
+static int cache_limit = 10240 * 1024; // 10 MB cache limit for desktop
+#endif
+
 class QDeclarativePixmapReader;
 class QDeclarativePixmapData;
 class QDeclarativePixmapReply : public QObject
@@ -145,7 +155,7 @@
 private:
     friend class QDeclarativePixmapReaderThreadObject;
     void processJobs();
-    void processJob(QDeclarativePixmapReply *);
+    void processJob(QDeclarativePixmapReply *, const QUrl &, const QSize &);
     void networkRequestDone(QNetworkReply *);
 
     QList<QDeclarativePixmapReply*> jobs;
@@ -424,23 +434,24 @@
             QDeclarativePixmapReply *runningJob = jobs.takeLast();
             runningJob->loading = true;
 
+            QUrl url = runningJob->data->url;
+            QSize requestSize = runningJob->data->requestSize;
             locker.unlock();
-            processJob(runningJob);
+            processJob(runningJob, url, requestSize);
             locker.relock();
         }
     }
 }
 
-void QDeclarativePixmapReader::processJob(QDeclarativePixmapReply *runningJob)
+void QDeclarativePixmapReader::processJob(QDeclarativePixmapReply *runningJob, const QUrl &url, 
+                                          const QSize &requestSize)
 {
-    QUrl url = runningJob->data->url;
-
     // fetch
     if (url.scheme() == QLatin1String("image")) {
         // Use QmlImageProvider
         QSize readSize;
         QDeclarativeEnginePrivate *ep = QDeclarativeEnginePrivate::get(engine);
-        QImage image = ep->getImageFromProvider(url, &readSize, runningJob->data->requestSize);
+        QImage image = ep->getImageFromProvider(url, &readSize, requestSize);
 
         QDeclarativePixmapReply::ReadError errorCode = QDeclarativePixmapReply::NoError;
         QString errorStr;
@@ -462,7 +473,7 @@
             QFile f(lf);
             QSize readSize;
             if (f.open(QIODevice::ReadOnly)) {
-                if (!readImage(url, &f, &image, &errorStr, &readSize, runningJob->data->requestSize))
+                if (!readImage(url, &f, &image, &errorStr, &readSize, requestSize))
                     errorCode = QDeclarativePixmapReply::Loading;
             } else {
                 errorStr = QDeclarativePixmap::tr("Cannot open: %1").arg(url.toString());
@@ -515,6 +526,7 @@
     mutex.lock();
     if (reply->loading) {
         cancelled.append(reply);
+        reply->data = 0;
         // XXX 
         if (threadObject) threadObject->processJobs();
     } else {
@@ -580,6 +592,8 @@
     QHash<QDeclarativePixmapKey, QDeclarativePixmapData *> m_cache;
 
 private:
+    void shrinkCache(int remove);
+
     QDeclarativePixmapData *m_unreferencedPixmaps;
     QDeclarativePixmapData *m_lastUnreferencedPixmap;
 
@@ -613,7 +627,9 @@
 
     m_unreferencedCost += data->cost();
 
-    if (m_timerId == -1)
+    shrinkCache(-1); // Shrink the cache incase it has become larger than cache_limit
+
+    if (m_timerId == -1 && m_unreferencedPixmaps) 
         m_timerId = startTimer(CACHE_EXPIRE_TIME * 1000);
 }
 
@@ -636,11 +652,9 @@
     m_unreferencedCost -= data->cost();
 }
 
-void QDeclarativePixmapStore::timerEvent(QTimerEvent *)
+void QDeclarativePixmapStore::shrinkCache(int remove)
 {
-    int removalCost = m_unreferencedCost / CACHE_REMOVAL_FRACTION;
-
-    while (removalCost > 0 && m_lastUnreferencedPixmap) {
+    while ((remove > 0 || m_unreferencedCost > cache_limit) && m_lastUnreferencedPixmap) {
         QDeclarativePixmapData *data = m_lastUnreferencedPixmap;
         Q_ASSERT(data->nextUnreferenced == 0);
 
@@ -649,10 +663,18 @@
         data->prevUnreferencedPtr = 0;
         data->prevUnreferenced = 0;
 
-        removalCost -= data->cost();
+        remove -= data->cost();
+        m_unreferencedCost -= data->cost();
         data->removeFromCache();
         delete data;
     }
+}
+
+void QDeclarativePixmapStore::timerEvent(QTimerEvent *)
+{
+    int removalCost = m_unreferencedCost / CACHE_REMOVAL_FRACTION;
+
+    shrinkCache(removalCost);
 
     if (m_unreferencedPixmaps == 0) {
         killTimer(m_timerId);
@@ -702,7 +724,7 @@
 
 int QDeclarativePixmapData::cost() const
 {
-    return pixmap.width() * pixmap.height() * pixmap.depth();
+    return (pixmap.width() * pixmap.height() * pixmap.depth()) / 8;
 }
 
 void QDeclarativePixmapData::addref()
@@ -719,7 +741,6 @@
 
     if (refCount == 0) {
         if (reply) {
-            reply->data = 0;
             reply->reader->cancel(reply);
             reply = 0;
         }
--- a/src/declarative/util/qdeclarativepropertychanges.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/util/qdeclarativepropertychanges.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -61,51 +61,34 @@
 
 /*!
     \qmlclass PropertyChanges QDeclarativePropertyChanges
+    \ingroup qml-state-elements
     \since 4.7
     \brief The PropertyChanges element describes new property bindings or values for a state.
 
-    PropertyChanges provides a state change that modifies the properties of an item.
+    PropertyChanges is used to define the property values or bindings in a 
+    \l State. This enables an item's property values to be changed when it
+    \l {QML States}{changes between states}.
 
-    Here is a property change that modifies the text and color of a \l Text element
-    when it is clicked:
+    To create a PropertyChanges object, specify the \l target item whose 
+    properties are to be modified, and define the new property values or
+    bindings. For example:
     
-    \qml
-    Text {
-        id: myText
-        width: 100; height: 100
-        text: "Hello"
-        color: "blue"
-
-        states: State {
-            name: "myState"
+    \snippet doc/src/snippets/declarative/propertychanges.qml import 
+    \codeline
+    \snippet doc/src/snippets/declarative/propertychanges.qml 0
 
-            PropertyChanges {
-                target: myText
-                text: "Goodbye"
-                color: "red"
-            }
-        }
-
-        MouseArea { anchors.fill: parent; onClicked: myText.state = 'myState' }
-    }
-    \endqml
-
-    By default, PropertyChanges will establish new bindings where appropriate.
-    For example, the following creates a new binding for myItem's \c height property.
+    When the mouse is pressed, the \l Rectangle changes to the \e resized
+    state. In this state, the PropertyChanges object sets the rectangle's 
+    color to blue and the \c height value to that of \c container.height.
 
-    \qml
-    PropertyChanges {
-        target: myItem
-        height: parent.height
-    }
-    \endqml
-
-    If you don't want a binding to be established (and instead just want to assign
-    the value of the binding at the time the state is entered),
-    you should set the PropertyChange's \l{PropertyChanges::explicit}{explicit}
+    Note this automatically binds \c rect.height to \c container.height 
+    in the \e resized state. If a property binding should not be
+    established, and the height should just be set to the value of
+    \c container.height at the time of the state change, set the \l explicit
     property to \c true.
-    
-    State-specific script for signal handlers can also be specified:
+   
+    A PropertyChanges object can also override the default signal handler
+    for an object to implement a signal handler specific to the new state:
 
     \qml
     PropertyChanges {
@@ -114,47 +97,36 @@
     }
     \endqml
 
-    You can reset a property in a state change by assigning \c undefined. In the following
-    example we reset \c theText's width when we enter state1. This will give the text its
-    natural width (which is the whole string on one line).
+    \note PropertyChanges can be used to change anchor margins, but not other anchor
+    values; use AnchorChanges for this instead. Similarly, to change an \l Item's
+    \l {Item::}{parent} value, use ParentChanges instead.
+
 
-    \qml
-    import Qt 4.7
+    \section2 Resetting property values
+
+    The \c undefined value can be used to reset the property value for a state.
+    In the following example, when \c theText changes to the \e widerText
+    state, its \c width property is reset, giving the text its natural width
+    and displaying the whole string on a single line.
 
-    Rectangle {
-        width: 640
-        height: 480
-        Text {
-            id: theText
-            width: 50
-            wrapMode: Text.WordWrap
-            text: "a text string that is longer than 50 pixels"
-        }
+    \snippet doc/src/snippets/declarative/propertychanges.qml reset
+
+
+    \section2 Immediate property changes in transitions
 
-        states: State {
-            name: "state1"
-            PropertyChanges {
-                target: theText
-                width: undefined
-            }
-        }
-    }
-    \endqml
+    When \l Transitions are used to animate state changes, they animate 
+    properties from their values in the current state to those defined in the
+    new state (as defined by PropertyChanges objects). However, 
+    it is sometimes desirable to set a property value \e immediately during a 
+    \l Transition, without animation; in these cases, the PropertyAction 
+    element can be used to force an immediate property change.
 
-    Anchor margins should be changed with PropertyChanges, but other anchor changes or changes to
-    an Item's parent should be done using the associated change elements
-    (ParentChange and AnchorChanges, respectively).
+    See the PropertyAction documentation for more details.
 
     \sa {declarative/animation/states}{states example}, {qmlstate}{States}, QtDeclarative
 */
 
 /*!
-    \internal
-    \class QDeclarativePropertyChanges
-    \brief The QDeclarativePropertyChanges class describes new property values for a state.
-*/
-
-/*!
     \qmlproperty Object PropertyChanges::target
     This property holds the object which contains the properties to be changed.
 */
@@ -396,12 +368,12 @@
 
 /*!
     \qmlproperty bool PropertyChanges::restoreEntryValues
-    
-    Whether or not the previous values should be restored when
-    leaving the state. By default, restoreEntryValues is true.
 
-    By setting restoreEntryValues to false, you can create a temporary state
-    that has permanent effects on property values.
+    This property holds whether the previous values should be restored when
+    leaving the state. 
+
+    The default value is \c true. Setting this value to \c false creates a
+    temporary state that has permanent effects on property values.
 */
 bool QDeclarativePropertyChanges::restoreEntryValues() const
 {
--- a/src/declarative/util/qdeclarativepropertymap.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/util/qdeclarativepropertymap.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -104,22 +104,25 @@
     The following example shows how you might declare data in C++ and then
     access it in QML.
 
-    Setup in C++:
+    In the C++ file:
     \code
-    //create our data
+    // create our data
     QDeclarativePropertyMap ownerData;
     ownerData.insert("name", QVariant(QString("John Smith")));
     ownerData.insert("phone", QVariant(QString("555-5555")));
 
-    //expose it to the UI layer
-    QDeclarativeContext *ctxt = view->rootContext();
-    ctxt->setProperty("owner", &data);
+    // expose it to the UI layer
+    QDeclarativeView view;
+    QDeclarativeContext *ctxt = view.rootContext();
+    ctxt->setContextProperty("owner", &ownerData);
+
+    view.setSource(QUrl::fromLocalFile("main.qml"));
+    view.show();
     \endcode
 
-    Then, in QML:
+    Then, in \c main.qml:
     \code
-    Text { text: owner.name }
-    Text { text: owner.phone }
+    Text { text: owner.name + " " + owner.phone }
     \endcode
 
     The binding is dynamic - whenever a key's value is updated, anything bound to that
--- a/src/declarative/util/qdeclarativesmoothedanimation.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/util/qdeclarativesmoothedanimation.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -249,6 +249,7 @@
 
 /*!
     \qmlclass SmoothedAnimation QDeclarativeSmoothedAnimation
+    \ingroup qml-animation-transition
     \since 4.7
     \inherits NumberAnimation
     \brief The SmoothedAnimation element allows a property to smoothly track a value.
@@ -287,7 +288,7 @@
 
     Like any other animation element, a SmoothedAnimation can be applied in a
     number of ways, including transitions, behaviors and property value 
-    sources. The \l PropertyAnimation documentation shows a variety of methods
+    sources. The \l {QML Animation} documentation shows a variety of methods
     for creating animations.
 
     \sa SpringAnimation, NumberAnimation, {QML Animation}, {declarative/animation/basics}{Animation basics example}
@@ -375,7 +376,7 @@
 
     \list
     \o SmoothedAnimation.Eased (default) - the animation will smoothly decelerate, and then reverse direction
-    \o SmoothedAnimation.Immediate - the animation will immediately begin accelerating in the reverse direction, begining with a velocity of 0
+    \o SmoothedAnimation.Immediate - the animation will immediately begin accelerating in the reverse direction, beginning with a velocity of 0
     \o SmoothedAnimation.Sync - the property is immediately set to the target value
     \endlist
 */
--- a/src/declarative/util/qdeclarativespringanimation.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/util/qdeclarativespringanimation.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -54,36 +54,32 @@
 QT_BEGIN_NAMESPACE
 
 
-
-class QDeclarativeSpringAnimationPrivate : public QDeclarativeAbstractAnimationPrivate
+class QDeclarativeSpringAnimationPrivate : public QDeclarativePropertyAnimationPrivate
 {
     Q_DECLARE_PUBLIC(QDeclarativeSpringAnimation)
 public:
-    QDeclarativeSpringAnimationPrivate()
-        : currentValue(0), to(0), from(0), maxVelocity(0), lastTime(0)
-        , mass(1.0), spring(0.), damping(0.), velocity(0), epsilon(0.01)
-        , modulus(0.0), useMass(false), haveModulus(false), enabled(true)
-        , fromDefined(false), toDefined(false)
-        , mode(Track), clock(this) {}
+
 
-    qreal currentValue;
-    qreal to;
-    qreal from;
+    struct SpringAnimation {
+        SpringAnimation()
+            : currentValue(0), to(0), velocity(0){}
+        qreal currentValue;
+        qreal to;
+        qreal velocity;
+    };
+    QHash<QDeclarativeProperty, SpringAnimation> activeAnimations;
+
     qreal maxVelocity;
     qreal velocityms;
     int lastTime;
     qreal mass;
     qreal spring;
     qreal damping;
-    qreal velocity;
     qreal epsilon;
     qreal modulus;
 
     bool useMass : 1;
     bool haveModulus : 1;
-    bool enabled : 1;
-    bool fromDefined : 1;
-    bool toDefined : 1;
 
     enum Mode {
         Track,
@@ -92,38 +88,68 @@
     };
     Mode mode;
 
-    void tick(int);
+    QDeclarativeSpringAnimationPrivate()
+          : maxVelocity(0), velocityms(0), lastTime(0)
+          , mass(1.0), spring(0.), damping(0.), epsilon(0.01)
+          , modulus(0.0), useMass(false), haveModulus(false)
+          , mode(Track), clock(0)
+    { }
+
+    void tick(int time);
+    bool animate(const QDeclarativeProperty &property, SpringAnimation &animation, int elapsed);
     void updateMode();
 
-    QTickAnimationProxy<QDeclarativeSpringAnimationPrivate, &QDeclarativeSpringAnimationPrivate::tick> clock;
+    typedef QTickAnimationProxy<QDeclarativeSpringAnimationPrivate, &QDeclarativeSpringAnimationPrivate::tick> Clock;
+    Clock *clock;
 };
 
 void QDeclarativeSpringAnimationPrivate::tick(int time)
 {
     if (mode == Track) {
-        clock.stop();
+        clock->stop();
         return;
     }
-
     int elapsed = time - lastTime;
     if (!elapsed)
         return;
-    qreal srcVal = to;
+
+    if (mode == Spring) {
+        if (elapsed < 16) // capped at 62fps.
+            return;
+        int count = elapsed / 16;
+        lastTime = time - (elapsed - count * 16);
+    } else {
+        lastTime = time;
+    }
+
+    QMutableHashIterator<QDeclarativeProperty, SpringAnimation> it(activeAnimations);
+    while (it.hasNext()) {
+        it.next();
+        if (animate(it.key(), it.value(), elapsed))
+            it.remove();
+    }
+
+    if (activeAnimations.isEmpty())
+        clock->stop();
+}
+
+bool QDeclarativeSpringAnimationPrivate::animate(const QDeclarativeProperty &property, SpringAnimation &animation, int elapsed)
+{
+
+    qreal srcVal = animation.to;
 
     bool stop = false;
 
     if (haveModulus) {
-        currentValue = fmod(currentValue, modulus);
+        animation.currentValue = fmod(animation.currentValue, modulus);
         srcVal = fmod(srcVal, modulus);
     }
     if (mode == Spring) {
-        if (elapsed < 16) // capped at 62fps.
-            return;
         // Real men solve the spring DEs using RK4.
         // We'll do something much simpler which gives a result that looks fine.
         int count = elapsed / 16;
         for (int i = 0; i < count; ++i) {
-            qreal diff = srcVal - currentValue;
+            qreal diff = srcVal - animation.currentValue;
             if (haveModulus && qAbs(diff) > modulus / 2) {
                 if (diff < 0)
                     diff += modulus;
@@ -131,32 +157,31 @@
                     diff -= modulus;
             }
             if (useMass)
-                velocity = velocity + (spring * diff - damping * velocity) / mass;
+                animation.velocity = animation.velocity + (spring * diff - damping * animation.velocity) / mass;
             else
-                velocity = velocity + spring * diff - damping * velocity;
+                animation.velocity = animation.velocity + spring * diff - damping * animation.velocity;
             if (maxVelocity > 0.) {
                 // limit velocity
-                if (velocity > maxVelocity)
-                    velocity = maxVelocity;
-                else if (velocity < -maxVelocity)
-                    velocity = -maxVelocity;
+                if (animation.velocity > maxVelocity)
+                    animation.velocity = maxVelocity;
+                else if (animation.velocity < -maxVelocity)
+                    animation.velocity = -maxVelocity;
             }
-            currentValue += velocity * 16.0 / 1000.0;
+            animation.currentValue += animation.velocity * 16.0 / 1000.0;
             if (haveModulus) {
-                currentValue = fmod(currentValue, modulus);
-                if (currentValue < 0.0)
-                    currentValue += modulus;
+                animation.currentValue = fmod(animation.currentValue, modulus);
+                if (animation.currentValue < 0.0)
+                    animation.currentValue += modulus;
             }
         }
-        if (qAbs(velocity) < epsilon && qAbs(srcVal - currentValue) < epsilon) {
-            velocity = 0.0;
-            currentValue = srcVal;
+        if (qAbs(animation.velocity) < epsilon && qAbs(srcVal - animation.currentValue) < epsilon) {
+            animation.velocity = 0.0;
+            animation.currentValue = srcVal;
             stop = true;
         }
-        lastTime = time - (elapsed - count * 16);
     } else {
         qreal moveBy = elapsed * velocityms;
-        qreal diff = srcVal - currentValue;
+        qreal diff = srcVal - animation.currentValue;
         if (haveModulus && qAbs(diff) > modulus / 2) {
             if (diff < 0)
                 diff += modulus;
@@ -164,33 +189,31 @@
                 diff -= modulus;
         }
         if (diff > 0) {
-            currentValue += moveBy;
+            animation.currentValue += moveBy;
             if (haveModulus)
-                currentValue = fmod(currentValue, modulus);
-            if (currentValue > to) {
-                currentValue = to;
+                animation.currentValue = fmod(animation.currentValue, modulus);
+            if (animation.currentValue > animation.to) {
+                animation.currentValue = animation.to;
                 stop = true;
             }
         } else {
-            currentValue -= moveBy;
-            if (haveModulus && currentValue < 0.0)
-                currentValue = fmod(currentValue, modulus) + modulus;
-            if (currentValue < to) {
-                currentValue = to;
+            animation.currentValue -= moveBy;
+            if (haveModulus && animation.currentValue < 0.0)
+                animation.currentValue = fmod(animation.currentValue, modulus) + modulus;
+            if (animation.currentValue < animation.to) {
+                animation.currentValue = animation.to;
                 stop = true;
             }
         }
-        lastTime = time;
     }
 
-    qreal old_to = to;
+    qreal old_to = animation.to;
 
-    QDeclarativePropertyPrivate::write(defaultProperty, currentValue,
+    QDeclarativePropertyPrivate::write(property, animation.currentValue,
                                        QDeclarativePropertyPrivate::BypassInterceptor |
                                        QDeclarativePropertyPrivate::DontRemoveBinding);
 
-    if (stop && old_to == to) // do not stop if we got restarted
-        clock.stop();
+    return (stop && old_to == animation.to); // do not stop if we got restarted
 }
 
 void QDeclarativeSpringAnimationPrivate::updateMode()
@@ -205,6 +228,8 @@
 
 /*!
     \qmlclass SpringAnimation QDeclarativeSpringAnimation
+    \ingroup qml-animation-transition
+    \inherits Animation
     \since 4.7
 
     \brief The SpringAnimation element allows a property to track a value in a spring-like motion.
@@ -223,86 +248,23 @@
 
     Like any other animation element, a SpringAnimation can be applied in a
     number of ways, including transitions, behaviors and property value 
-    sources. The \l PropertyAnimation documentation shows a variety of methods
+    sources. The \l {QML Animation} documentation shows a variety of methods
     for creating animations.
 
     \sa SmoothedAnimation, {QML Animation}, {declarative/animation/basics}{Animation basics example}, {declarative/toys/clocks}{Clocks example}
 */
 
 QDeclarativeSpringAnimation::QDeclarativeSpringAnimation(QObject *parent)
-: QDeclarativeAbstractAnimation(*(new QDeclarativeSpringAnimationPrivate),parent)
+: QDeclarativeNumberAnimation(*(new QDeclarativeSpringAnimationPrivate),parent)
 {
+    Q_D(QDeclarativeSpringAnimation);
+    d->clock = new QDeclarativeSpringAnimationPrivate::Clock(d, this);
 }
 
 QDeclarativeSpringAnimation::~QDeclarativeSpringAnimation()
 {
 }
 
-void QDeclarativeSpringAnimation::setTarget(const QDeclarativeProperty &property)
-{
-    Q_D(QDeclarativeSpringAnimation);
-    d->defaultProperty = property;
-    d->currentValue = property.read().toReal();
-    if (!d->avoidPropertyValueSourceStart) {
-        setRunning(true);
-    }
-}
-
-qreal QDeclarativeSpringAnimation::to() const
-{
-    Q_D(const QDeclarativeSpringAnimation);
-    return d->toDefined ? d->to : 0;
-}
-
-/*!
-    \qmlproperty real SpringAnimation::to
-
-    This property holds the value at which the animation will end.
-
-    If not set, the animation will continue until it reaches the
-    value that is being tracked.
-*/
-
-void QDeclarativeSpringAnimation::setTo(qreal value)
-{
-    Q_D(QDeclarativeSpringAnimation);
-    if (d->to == value)
-        return;
-
-    d->to = value;
-    d->toDefined = true;
-    d->lastTime = 0;
-    emit toChanged(value);
-}
-
-qreal QDeclarativeSpringAnimation::from() const
-{
-    Q_D(const QDeclarativeSpringAnimation);
-    return d->fromDefined ? d->from : 0;
-}
-
-/*!
-    \qmlproperty real SpringAnimation::from
-
-    This property holds the value from which the animation will begin.
-
-    If not set, the animation will start whenever the tracked value has
-    changed, regardless of its value.
-*/
-
-void QDeclarativeSpringAnimation::setFrom(qreal value)
-{
-    Q_D(QDeclarativeSpringAnimation);
-    if (d->from == value)
-        return;
-
-    d->currentValue = d->from = value;
-    d->fromDefined = true;
-    d->lastTime = 0;
-    emit fromChanged(value);
-}
-
-
 /*!
     \qmlproperty real SpringAnimation::velocity
 
@@ -452,17 +414,25 @@
     Q_D(QDeclarativeSpringAnimation);
     Q_UNUSED(direction);
 
-    if (d->clock.state() != QAbstractAnimation::Running)
+    if (d->clock->state() != QAbstractAnimation::Running) {
         d->lastTime = 0;
+    }
+
+    QDeclarativeNumberAnimation::transition(actions, modified, direction);
+
+    if (!d->actions)
+        return;
 
-    if (!actions.isEmpty()) {
-        for (int i = 0; i < actions.size(); ++i) {
-            if (!d->toDefined)
-                d->to = actions.at(i).toValue.toReal();
-            if (!d->fromDefined)
-                d->currentValue = actions.at(i).fromValue.toReal();
-            if (d->mode != QDeclarativeSpringAnimationPrivate::Track)
-                modified << d->defaultProperty;
+    if (!d->actions->isEmpty()) {
+        for (int i = 0; i < d->actions->size(); ++i) {
+            const QDeclarativeProperty &property = d->actions->at(i).property;
+            QDeclarativeSpringAnimationPrivate::SpringAnimation &animation
+                    = d->activeAnimations[property];
+            animation.to = d->actions->at(i).toValue.toReal();
+            if (d->fromIsDefined)
+                animation.currentValue = d->actions->at(i).fromValue.toReal();
+            else
+                animation.currentValue = property.read().toReal();
         }
     }
 }
@@ -471,7 +441,7 @@
 QAbstractAnimation *QDeclarativeSpringAnimation::qtAnimation()
 {
     Q_D(QDeclarativeSpringAnimation);
-    return &d->clock;
+    return d->clock;
 }
 
 QT_END_NAMESPACE
--- a/src/declarative/util/qdeclarativespringanimation_p.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/util/qdeclarativespringanimation_p.h	Mon Oct 04 01:19:32 2010 +0300
@@ -54,14 +54,12 @@
 QT_MODULE(Declarative)
 
 class QDeclarativeSpringAnimationPrivate;
-class Q_AUTOTEST_EXPORT QDeclarativeSpringAnimation : public QDeclarativeAbstractAnimation
+class Q_AUTOTEST_EXPORT QDeclarativeSpringAnimation : public QDeclarativeNumberAnimation
 {
     Q_OBJECT
     Q_DECLARE_PRIVATE(QDeclarativeSpringAnimation)
     Q_INTERFACES(QDeclarativePropertyValueSource)
 
-    Q_PROPERTY(qreal to READ to WRITE setTo NOTIFY toChanged)
-    Q_PROPERTY(qreal from READ from WRITE setFrom NOTIFY fromChanged)
     Q_PROPERTY(qreal velocity READ velocity WRITE setVelocity)
     Q_PROPERTY(qreal spring READ spring WRITE setSpring)
     Q_PROPERTY(qreal damping READ damping WRITE setDamping)
@@ -73,14 +71,6 @@
     QDeclarativeSpringAnimation(QObject *parent=0);
     ~QDeclarativeSpringAnimation();
 
-    virtual void setTarget(const QDeclarativeProperty &);
-
-    qreal to() const;
-    void setTo(qreal value);
-
-    qreal from() const;
-    void setFrom(qreal value);
-
     qreal velocity() const;
     void setVelocity(qreal velocity);
 
@@ -99,9 +89,6 @@
     qreal modulus() const;
     void setModulus(qreal modulus);
 
-    bool enabled() const;
-    void setEnabled(bool enabled);
-
     virtual void transition(QDeclarativeStateActions &actions,
                             QDeclarativeProperties &modified,
                             TransitionDirection direction);
@@ -110,8 +97,6 @@
     virtual QAbstractAnimation *qtAnimation();
 
 Q_SIGNALS:
-    void toChanged(qreal);
-    void fromChanged(qreal);
     void modulusChanged();
     void massChanged();
     void syncChanged();
--- a/src/declarative/util/qdeclarativestate.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/util/qdeclarativestate.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -123,9 +123,6 @@
     return false;
 }
 
-/*!
-    \internal
-*/
 QDeclarativeStateOperation::QDeclarativeStateOperation(QObjectPrivate &dd, QObject *parent)
     : QObject(dd, parent)
 {
@@ -133,6 +130,7 @@
 
 /*!
     \qmlclass State QDeclarativeState
+    \ingroup qml-state-elements
     \since 4.7
     \brief The State element defines configurations of objects and properties.
 
@@ -154,28 +152,15 @@
 
     Notice the default state is referred to using an empty string ("").
 
-    States are commonly used together with \l {state-transitions}{Transitions} to provide
+    States are commonly used together with \l {Transitions} to provide
     animations when state changes occur.
 
     \note Setting the state of an object from within another state of the same object is
     not allowed.
 
-    \sa {declarative/animation/states}{states example}, {qmlstates}{States}, {state-transitions}{Transitions}, QtDeclarative
+    \sa {declarative/animation/states}{states example}, {qmlstates}{States},
+    {qdeclarativeanimation.html#transitions}{QML Transitions}, QtDeclarative
 */
-
-/*!
-    \internal
-    \class QDeclarativeState
-    \brief The QDeclarativeState class allows you to define configurations of objects and properties.
-
-
-    QDeclarativeState allows you to specify a state as a set of batched changes from the default
-    configuration.
-
-    \sa {states-transitions}{States and Transitions}
-*/
-
-
 QDeclarativeState::QDeclarativeState(QObject *parent)
 : QObject(*(new QDeclarativeStatePrivate), parent)
 {
@@ -229,20 +214,7 @@
     be applied. For example, the following \l Rectangle changes in and out of the "hidden"
     state when the \l MouseArea is pressed:
 
-    \qml
-    Rectangle {
-        id: myRect
-        width: 100; height: 100
-        color: "red"
-
-        MouseArea { id: mouseArea; anchors.fill: parent }
-
-        states: State {
-            name: "hidden"; when: mouseArea.pressed
-            PropertyChanges { target: myRect; opacity: 0 }
-        }
-    }
-    \endqml
+    \snippet doc/src/snippets/declarative/state-when.qml 0
 
     If multiple states in a group have \c when clauses that evaluate to \c true at the same time,
     the first matching state will be applied. For example, in the following snippet
@@ -358,8 +330,10 @@
     if (!extends.isEmpty()) {
         QList<QDeclarativeState *> states = group->states();
         for (int ii = 0; ii < states.count(); ++ii)
-            if (states.at(ii)->name() == extends)
+            if (states.at(ii)->name() == extends) {
+                qmlExecuteDeferred(states.at(ii));
                 applyList = static_cast<QDeclarativeStatePrivate*>(states.at(ii)->d_func())->generateActionList(group);
+            }
     }
 
     foreach(QDeclarativeStateOperation *op, operations)
--- a/src/declarative/util/qdeclarativestategroup.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/util/qdeclarativestategroup.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -88,6 +88,7 @@
 
 /*!
    \qmlclass StateGroup QDeclarativeStateGroup
+    \ingroup qml-state-elements
    \since 4.7
    \brief The StateGroup element provides state support for non-Item elements.
 
@@ -112,7 +113,7 @@
    }
    \endqml
 
-   \sa {qmlstate}{States} {state-transitions}{Transitions}, {QtDeclarative}
+   \sa {qmlstate}{States} {Transitions}, {QtDeclarative}
 */
 
 QDeclarativeStateGroup::QDeclarativeStateGroup(QObject *parent)
@@ -204,7 +205,7 @@
   }
   \endqml
 
-  \sa {state-transitions}{Transitions}
+  \sa {Transitions}
 */
 QDeclarativeListProperty<QDeclarativeTransition> QDeclarativeStateGroup::transitionsProperty()
 {
@@ -271,7 +272,7 @@
         return;
     } else if (!d->currentState.isEmpty()) {
         QString cs = d->currentState;
-        d->currentState = QString();
+        d->currentState.clear();
         d->setCurrentStateInternal(cs, true);
     }
 }
@@ -313,7 +314,7 @@
         }
     }
     if (revert) {
-        bool rv = currentState != QString();
+        bool rv = !currentState.isEmpty();
         q->setState(QString());
         return rv;
     } else {
--- a/src/declarative/util/qdeclarativestateoperations.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/util/qdeclarativestateoperations.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -161,6 +161,7 @@
 /*!
     \preliminary
     \qmlclass ParentChange QDeclarativeParentChange
+    \ingroup qml-state-elements
     \brief The ParentChange element allows you to reparent an Item in a state change.
 
     ParentChange reparents an item while preserving its visual appearance (position, size,
@@ -589,6 +590,7 @@
 
 /*!
     \qmlclass StateChangeScript QDeclarativeStateChangeScript
+    \ingroup qml-state-elements
     \brief The StateChangeScript element allows you to run a script in a state.
 
     A StateChangeScript is run upon entering a state. You can optionally use
@@ -693,6 +695,7 @@
 
 /*!
     \qmlclass AnchorChanges QDeclarativeAnchorChanges
+    \ingroup qml-state-elements
     \brief The AnchorChanges element allows you to change the anchors of an item in a state.
 
     The AnchorChanges element is used to modify the anchors of an item in a \l State.
@@ -1424,6 +1427,7 @@
     if (!d->target)
         return;
 
+    //### should this (saving "from" values) be moved to saveCurrentValues()?
     d->fromX = d->target->x();
     d->fromY = d->target->y();
     d->fromWidth = d->target->width();
@@ -1483,22 +1487,8 @@
         return;
 
     QDeclarativeItemPrivate *targetPrivate = QDeclarativeItemPrivate::get(d->target);
-    //restore previous anchors
-    if (d->rewindLeft.anchorLine != QDeclarativeAnchorLine::Invalid)
-        targetPrivate->anchors()->setLeft(d->rewindLeft);
-    if (d->rewindRight.anchorLine != QDeclarativeAnchorLine::Invalid)
-        targetPrivate->anchors()->setRight(d->rewindRight);
-    if (d->rewindHCenter.anchorLine != QDeclarativeAnchorLine::Invalid)
-        targetPrivate->anchors()->setHorizontalCenter(d->rewindHCenter);
-    if (d->rewindTop.anchorLine != QDeclarativeAnchorLine::Invalid)
-        targetPrivate->anchors()->setTop(d->rewindTop);
-    if (d->rewindBottom.anchorLine != QDeclarativeAnchorLine::Invalid)
-        targetPrivate->anchors()->setBottom(d->rewindBottom);
-    if (d->rewindVCenter.anchorLine != QDeclarativeAnchorLine::Invalid)
-        targetPrivate->anchors()->setVerticalCenter(d->rewindVCenter);
-    if (d->rewindBaseline.anchorLine != QDeclarativeAnchorLine::Invalid)
-        targetPrivate->anchors()->setBaseline(d->rewindBaseline);
 
+    //restore previous values (but not previous bindings, i.e. anchors)
     d->target->setX(d->rewindX);
     d->target->setY(d->rewindY);
     if (targetPrivate->widthValid) {
--- a/src/declarative/util/qdeclarativesystempalette.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/util/qdeclarativesystempalette.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -58,6 +58,7 @@
 
 /*!
     \qmlclass SystemPalette QDeclarativeSystemPalette
+    \ingroup qml-utility-elements
     \since 4.7
     \brief The SystemPalette element provides access to the Qt palettes.
 
--- a/src/declarative/util/qdeclarativetimeline.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/util/qdeclarativetimeline.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -524,7 +524,7 @@
 
     Following operations on \a timeLineValue in this timeline will be scheduled after
     all the currently scheduled actions on \a syncTo are complete.  In
-    psuedo-code this is equivalent to:
+    pseudo-code this is equivalent to:
     \code
     QDeclarativeTimeLine::pause(timeLineValue, min(0, length_of(syncTo) - length_of(timeLineValue)))
     \endcode
@@ -549,7 +549,7 @@
     Synchronize the end point of \a timeLineValue to the endpoint of the longest
     action cursrently scheduled in the timeline.
 
-    In psuedo-code, this is equivalent to:
+    In pseudo-code, this is equivalent to:
     \code
     QDeclarativeTimeLine::pause(timeLineValue, length_of(timeline) - length_of(timeLineValue))
     \endcode
--- a/src/declarative/util/qdeclarativetimer.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/util/qdeclarativetimer.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -70,14 +70,16 @@
 
 /*!
     \qmlclass Timer QDeclarativeTimer
+    \ingroup qml-utility-elements
     \since 4.7
     \brief The Timer item triggers a handler at a specified interval.
 
-    A timer can be used to trigger an action either once, or repeatedly
+    A Timer can be used to trigger an action either once, or repeatedly
     at a given interval.
 
-    Here is a timer that shows the current date and time, and updates
-    the text every 500 milliseconds:
+    Here is a Timer that shows the current date and time, and updates
+    the text every 500 milliseconds. It uses the JavaScript \c Date
+    object to access the current time.
 
     \qml
     import Qt 4.7
@@ -88,9 +90,7 @@
             onTriggered: time.text = Date().toString()
         }
 
-        Text {
-            id: time
-        }
+        Text { id: time }
     }
     \endqml
 
--- a/src/declarative/util/qdeclarativetransition.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/util/qdeclarativetransition.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -53,6 +53,7 @@
 
 /*!
     \qmlclass Transition QDeclarativeTransition
+    \ingroup qml-animation-transition
     \since 4.7
     \brief The Transition element defines animated transitions that occur on state changes.
 
@@ -60,31 +61,42 @@
 
     For example, the following \l Rectangle has two states: the default state, and
     an added "moved" state. In the "moved state, the rectangle's position changes 
-    to (50, 50).  The added \l Transition specifies that when the rectangle
+    to (50, 50).  The added Transition specifies that when the rectangle
     changes between the default and the "moved" state, any changes
     to the \c x and \c y properties should be animated, using an \c Easing.InOutQuad.
-   
+
     \snippet doc/src/snippets/declarative/transition.qml 0
 
-    To specify multiple transitions, specify \l Item::transitions as a list:
+    Notice the example does not require \l{PropertyAnimation::}{to} and 
+    \l{PropertyAnimation::}{from} values for the NumberAnimation. As a convenience,
+    these properties are automatically set to the values of \c x and \c y before
+    and after the state change; the \c from values are provided by
+    the current values of \c x and \c y, and the \c to values are provided by
+    the PropertyChanges object. If you wish, you can provide \l{PropertyAnimation::}{to} and 
+    \l{PropertyAnimation::}{from} values anyway to override the default values.
+
+    By default, a Transition's animations are applied for any state change in the 
+    parent item. The  Transition \l {Transition::}{from} and \l {Transition::}{to} 
+    values can be set to restrict the animations to only be applied when changing 
+    from one particular state to another.
+
+    To define multiple transitions, specify \l Item::transitions as a list:
 
     \qml
     Item {
         ...
         transitions: [
-            Transition { ... }
+            Transition { ... },
             Transition { ... }
         ]
     }
     \endqml
 
-    \sa {declarative/animation/states}{states example}, {qmlstates}{States}, {state-transitions}{Transitions}, {QtDeclarative}
-*/
+    If a state change has a Transition that matches the same property as a
+    \l Behavior, the Transition animation overrides the \l Behavior for that
+    state change.
 
-/*!
-    \internal
-    \class QDeclarativeTransition
-    \brief The QDeclarativeTransition class allows you to define animated transitions that occur on state changes.
+    \sa {QML Animation}, {declarative/animation/states}{states example}, {qmlstates}{States}, {QtDeclarative}
 */
 
 //ParallelAnimationWrapper allows us to do a "callback" when the animation finishes, rather than connecting
--- a/src/declarative/util/qdeclarativetransitionmanager.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/util/qdeclarativetransitionmanager.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -176,7 +176,7 @@
                 if (action.event->isReversable()) {
                     action.event->clearBindings();
                     action.event->rewind();
-                    action.event->clearBindings();
+                    action.event->clearBindings();  //### shouldn't be needed
                 }
                 continue;
             }
--- a/src/declarative/util/qdeclarativeview.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/util/qdeclarativeview.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -365,7 +365,7 @@
     \value Null This QDeclarativeView has no source set.
     \value Ready This QDeclarativeView has loaded and created the QML component.
     \value Loading This QDeclarativeView is loading network data.
-    \value Error An error has occured.  Call errorDescription() to retrieve a description.
+    \value Error An error has occurred.  Call errorDescription() to retrieve a description.
 */
 
 /*! \enum QDeclarativeView::ResizeMode
@@ -391,7 +391,7 @@
 }
 
 /*!
-    Return the list of errors that occured during the last compile or create
+    Return the list of errors that occurred during the last compile or create
     operation.  An empty list is returned if isError() is not set.
 */
 QList<QDeclarativeError> QDeclarativeView::errors() const
--- a/src/declarative/util/qdeclarativexmllistmodel.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/util/qdeclarativexmllistmodel.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -72,6 +72,7 @@
 
 /*!
     \qmlclass XmlRole QDeclarativeXmlListModelRole
+    \ingroup qml-working-with-data
   \since 4.7
     \brief The XmlRole element allows you to specify a role for an XmlListModel.
 
@@ -465,8 +466,6 @@
     QList<QDeclarativeXmlListModelRole *> roleObjects;
     static void append_role(QDeclarativeListProperty<QDeclarativeXmlListModelRole> *list, QDeclarativeXmlListModelRole *role);
     static void clear_role(QDeclarativeListProperty<QDeclarativeXmlListModelRole> *list);
-    static void removeAt_role(QDeclarativeListProperty<QDeclarativeXmlListModelRole> *list, int i);
-    static void insert_role(QDeclarativeListProperty<QDeclarativeXmlListModelRole> *list, int i, QDeclarativeXmlListModelRole *role);
     QList<QList<QVariant> > data;
     int redirectCount;
 };
@@ -499,12 +498,8 @@
 }
 
 /*!
-    \class QDeclarativeXmlListModel
-    \internal
-*/
-
-/*!
     \qmlclass XmlListModel QDeclarativeXmlListModel
+    \ingroup qml-working-with-data
   \since 4.7
     \brief The XmlListModel element is used to specify a model using XPath expressions.
 
@@ -560,7 +555,7 @@
     ListView {
         width: 180; height: 300
         model: xmlModel
-        delegate: Text { text: title + " (" + pubDate + ")" }
+        delegate: Text { text: title + ": " + pubDate }
     }
     \endqml
 
@@ -855,6 +850,12 @@
     return d->progress;
 }
 
+/*!
+    \qmlmethod void XmlListModel::errorString()
+
+    Returns a string description of the last error that occurred
+    if \l status is XmlListModel::Error.
+*/
 QString QDeclarativeXmlListModel::errorString() const
 {
     Q_D(const QDeclarativeXmlListModel);
--- a/src/declarative/util/qlistmodelinterface.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/declarative/util/qlistmodelinterface.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -71,7 +71,7 @@
 */
 
 /*! \fn QHash<int,QVariant> QListModelInterface::data(int index, const QList<int>& roles) const
-  Returns the data at the given \a index for the specifed \a roles.
+  Returns the data at the given \a index for the specified \a roles.
 */
 
 /*! \fn bool QListModelInterface::setData(int index, const QHash<int,QVariant>& values)
--- a/src/gui/dialogs/qfiledialog_mac.mm	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/dialogs/qfiledialog_mac.mm	Mon Oct 04 01:19:32 2010 +0300
@@ -119,6 +119,7 @@
 - (QString)removeExtensions:(const QString &)filter;
 - (void)createTextField;
 - (void)createPopUpButton:(const QString &)selectedFilter hideDetails:(BOOL)hideDetails;
+- (QStringList)findStrippedFilterWithVisualFilterName:(QString)name;
 - (void)createAccessory;
 
 @end
@@ -127,8 +128,6 @@
 
 - (id)initWithAcceptMode:(QT_PREPEND_NAMESPACE(QFileDialog::AcceptMode))acceptMode
     title:(const QString &)title
-    nameFilters:(const QStringList &)nameFilters
-    selectedNameFilter:(const QString &)selectedNameFilter
     hideNameFilterDetails:(bool)hideNameFilterDetails
     qDirFilter:(QT_PREPEND_NAMESPACE(QDir::Filters))qDirFilter
     fileOptions:(QT_PREPEND_NAMESPACE(QFileDialog::Options))fileOptions
@@ -158,8 +157,10 @@
     mPriv = priv;
     mLastFilterCheckPath = new QString;
     mQDirFilterEntryList = new QStringList;
-    mNameFilterDropDownList = new QStringList(nameFilters);
-    mSelectedNameFilter = new QStringList(qt_clean_filter_list(selectedNameFilter));
+    mNameFilterDropDownList = new QStringList(priv->nameFilters);
+    QString selectedVisualNameFilter = priv->qFileDialogUi->fileTypeCombo->currentText();
+    mSelectedNameFilter = new QStringList([self findStrippedFilterWithVisualFilterName:selectedVisualNameFilter]);
+
     QFileInfo sel(selectFile);
     if (sel.isDir()){
         mCurrentDir = [qt_mac_QStringToNSString(sel.absoluteFilePath()) retain];
@@ -168,8 +169,9 @@
         mCurrentDir = [qt_mac_QStringToNSString(sel.absolutePath()) retain];
         mCurrentSelection = new QString(sel.absoluteFilePath());
     }
+
     [mSavePanel setTitle:qt_mac_QStringToNSString(title)];
-    [self createPopUpButton:selectedNameFilter hideDetails:hideNameFilterDetails];
+    [self createPopUpButton:selectedVisualNameFilter hideDetails:hideNameFilterDetails];
     [self createTextField];
     [self createAccessory];
     [mSavePanel setAccessoryView:mNameFilterDropDownList->size() > 1 ? mAccessoryView : nil];
@@ -350,7 +352,7 @@
     // This mDelegate function is called when the _name_ filter changes.
     Q_UNUSED(sender);
     QString selection = mNameFilterDropDownList->value([mPopUpButton indexOfSelectedItem]);
-    *mSelectedNameFilter = QT_PREPEND_NAMESPACE(qt_clean_filter_list)(selection);
+    *mSelectedNameFilter = [self findStrippedFilterWithVisualFilterName:selection];
     [mSavePanel validateVisibleColumns];
     [self updateProperties];
     if (mPriv)
@@ -499,6 +501,15 @@
     }
 }
 
+- (QStringList) findStrippedFilterWithVisualFilterName:(QString)name
+{
+    for (int i=0; i<mNameFilterDropDownList->size(); ++i) {
+        if (mNameFilterDropDownList->at(i).startsWith(name))
+            return qt_clean_filter_list(mNameFilterDropDownList->at(i));
+    }
+    return QStringList();
+}
+
 - (void)createAccessory
 {
     NSRect accessoryRect = { { 0.0, 0.0 }, { 450.0, 33.0 } };
@@ -782,9 +793,11 @@
             const QtMacFilterName &fn = fileDialogPrivate->filterInfo.filters.at(
                                                        fileDialogPrivate->filterInfo.currentSelection);
             QStringList reg = fn.regexp.split(QLatin1String(";"), QString::SkipEmptyParts);
-            QString r = reg.first();
-            r  = r.right(r.length()-1);      // Strip the *
-            base += r;                        //"." + QString::number(s->menuType);
+            if (reg.count()) {
+                QString r = reg.first();
+                r  = r.right(r.length()-1);      // Strip the *
+                base += r;                        //"." + QString::number(s->menuType);
+            }
             NavDialogSetSaveFileName(p->context, QCFString::toCFStringRef(base));
         }
 #ifdef DEBUG_FILEDIALOG_FILTERS
@@ -1037,8 +1050,6 @@
     QT_MANGLE_NAMESPACE(QNSOpenSavePanelDelegate) *delegate = [[QT_MANGLE_NAMESPACE(QNSOpenSavePanelDelegate) alloc]
         initWithAcceptMode:acceptMode
         title:q->windowTitle()
-        nameFilters:q->nameFilters()
-        selectedNameFilter:q->selectedNameFilter()
         hideNameFilterDetails:q->testOption(QFileDialog::HideNameFilterDetails)
         qDirFilter:model->filter()
         fileOptions:opts
--- a/src/gui/dialogs/qfontdialog_mac.mm	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/dialogs/qfontdialog_mac.mm	Mon Oct 04 01:19:32 2010 +0300
@@ -131,6 +131,7 @@
 - (QFont)qtFont;
 - (void)finishOffWithCode:(NSInteger)result;
 - (void)cleanUpAfterMyself;
+- (void)setSubwindowStacking;
 @end
 
 static QFont qfontForCocoaFont(NSFont *cocoaFont, const QFont &resolveFont)
@@ -187,6 +188,12 @@
         [cancelButton setTarget:self];
     }
 
+    mQtFont = new QFont();
+    return self;
+}
+
+- (void)setSubwindowStacking
+{
 #ifdef QT_MAC_USE_COCOA
     // Stack the native dialog in front of its parent, if any:
     QFontDialog *q = mPriv->fontDialog();
@@ -199,9 +206,6 @@
         }
     }
 #endif
-
-    mQtFont = new QFont();
-    return self;
 }
 
 - (void)dealloc
@@ -610,6 +614,7 @@
         [ourPanel setFrame:frameRect display:NO];
         [ourPanel center];
     }
+    [del setSubwindowStacking];
     NSString *title = @"Select font";
     [ourPanel setTitle:title];
 }
--- a/src/gui/egl/qegl_x11.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/egl/qegl_x11.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -165,7 +165,7 @@
         if (chosenVisualInfo) {
             // Skip size checks if implementation supports non-matching visual
             // and config (http://bugreports.qt.nokia.com/browse/QTBUG-9444).
-            if (QEgl::hasExtension("EGL_NV_post_convert_replication"))
+            if (QEgl::hasExtension("EGL_NV_post_convert_rounding"))
                 return visualId;
 
             int visualRedSize = countBits(chosenVisualInfo->red_mask);
--- a/src/gui/embedded/qkbdlinuxinput_qws.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/embedded/qkbdlinuxinput_qws.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -138,7 +138,7 @@
             // record the original mode so we can restore it again in the destructor.
             ::ioctl(m_tty_fd, KDGKBMODE, &m_orig_kbmode);
 
-            // setting this tranlation mode is even needed in INPUT mode to prevent
+            // setting this translation mode is even needed in INPUT mode to prevent
             // the shell from also interpreting codes, if the process has a tty
             // attached: e.g. Ctrl+C wouldn't copy, but kill the application.
             ::ioctl(m_tty_fd, KDSKBMODE, K_MEDIUMRAW);
--- a/src/gui/embedded/qkbdqnx_qws.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/embedded/qkbdqnx_qws.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -150,7 +150,7 @@
 
     // figure out whether it's a press
     bool isPress = packet.data.key_cap & KEY_DOWN;
-    // figure out wheter the key is still pressed and the key event is repeated
+    // figure out whether the key is still pressed and the key event is repeated
     bool isRepeat = packet.data.key_cap & KEY_REPEAT;
 
     Qt::Key key = Qt::Key_unknown;
--- a/src/gui/graphicsview/qgraphicsgridlayout.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/graphicsview/qgraphicsgridlayout.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -641,7 +641,8 @@
     Q_D(const QGraphicsGridLayout);
     qreal left, top, right, bottom;
     getContentsMargins(&left, &top, &right, &bottom);
-    return d->engine.sizeHint(d->styleInfo(), which , constraint) + QSizeF(left + right, top + bottom);
+    const QSizeF extraMargins(left + right, top + bottom);
+    return d->engine.sizeHint(d->styleInfo(), which , constraint - extraMargins) + extraMargins;
 }
 
 
--- a/src/gui/graphicsview/qgraphicsitem.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/graphicsview/qgraphicsitem.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -1453,9 +1453,10 @@
 #ifndef QT_NO_GESTURES
     if (d_ptr->isObject && !d_ptr->gestureContext.isEmpty()) {
         QGraphicsObject *o = static_cast<QGraphicsObject *>(this);
-        QGestureManager *manager = QGestureManager::instance();
-        foreach (Qt::GestureType type, d_ptr->gestureContext.keys())
-            manager->cleanupCachedGestures(o, type);
+        if (QGestureManager *manager = QGestureManager::instance()) {
+            foreach (Qt::GestureType type, d_ptr->gestureContext.keys())
+                manager->cleanupCachedGestures(o, type);
+        }
     }
 #endif
 
@@ -3258,8 +3259,12 @@
     QGraphicsItem *p = parent;
     while (p) {
         if (p->flags() & QGraphicsItem::ItemIsFocusScope) {
+            QGraphicsItem *oldFocusScopeItem = p->d_ptr->focusScopeItem;
             p->d_ptr->focusScopeItem = q_ptr;
             if (!p->focusItem() && !focusFromShow) {
+                if (oldFocusScopeItem)
+                    oldFocusScopeItem->d_ptr->focusScopeItemChange(false);
+                focusScopeItemChange(true);
                 // If you call setFocus on a child of a focus scope that
                 // doesn't currently have a focus item, then stop.
                 return;
@@ -3930,7 +3935,7 @@
     Returns a list of graphics transforms that currently apply to this item.
 
     QGraphicsTransform is for applying and controlling a chain of individual
-    transformation operations on an item. It's particularily useful in
+    transformation operations on an item. It's particularly useful in
     animations, where each transform operation needs to be interpolated
     independently, or differently.
 
@@ -3957,7 +3962,7 @@
     an item, you can call setTransform().
 
     QGraphicsTransform is for applying and controlling a chain of individual
-    transformation operations on an item. It's particularily useful in
+    transformation operations on an item. It's particularly useful in
     animations, where each transform operation needs to be interpolated
     independently, or differently.
 
@@ -5151,7 +5156,7 @@
     The bounding region describes a coarse outline of the item's visual
     contents. Although it's expensive to calculate, it's also more precise
     than boundingRect(), and it can help to avoid unnecessary repainting when
-    an item is updated. This is particularily efficient for thin items (e.g.,
+    an item is updated. This is particularly efficient for thin items (e.g.,
     lines or simple polygons). You can tune the granularity for the bounding
     region by calling setBoundingRegionGranularity(). The default granularity
     is 0; in which the item's bounding region is the same as its bounding
@@ -5594,6 +5599,7 @@
 */
 void QGraphicsItemPrivate::focusScopeItemChange(bool isSubFocusItem)
 {
+    Q_UNUSED(isSubFocusItem);
 }
 
 /*!
@@ -5660,9 +5666,6 @@
             return;
     }
 
-    if (d_ptr->discardUpdateRequest())
-        return;
-
     if (d_ptr->scene)
         d_ptr->scene->d_func()->markDirty(this, rect);
 }
@@ -7752,6 +7755,24 @@
 }
 
 /*!
+    \property QGraphicsObject::children
+    \since 4.7
+    \internal
+*/
+
+/*!
+    \property QGraphicsObject::width
+    \since 4.7
+    \internal
+*/
+
+/*!
+    \property QGraphicsObject::height
+    \since 4.7
+    \internal
+*/
+
+/*!
   \property QGraphicsObject::parent
   \brief the parent of the item
 
--- a/src/gui/graphicsview/qgraphicslayoutitem.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/graphicsview/qgraphicslayoutitem.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -48,6 +48,7 @@
 #include "qgraphicslayoutitem.h"
 #include "qgraphicslayoutitem_p.h"
 #include "qwidget.h"
+#include "qgraphicswidget.h"
 
 #include <QtDebug>
 
@@ -139,9 +140,11 @@
     if (!sizeHintCacheDirty && cachedConstraint == constraint)
         return cachedSizeHints;
 
+    const bool hasConstraint = constraint.width() >= 0 || constraint.height() >= 0;
+
     for (int i = 0; i < Qt::NSizeHints; ++i) {
         cachedSizeHints[i] = constraint;
-        if (userSizeHints)
+        if (userSizeHints && !hasConstraint)
             combineSize(cachedSizeHints[i], userSizeHints[i]);
     }
 
@@ -259,6 +262,52 @@
     q->updateGeometry();
 }
 
+
+bool QGraphicsLayoutItemPrivate::hasHeightForWidth() const
+{
+    Q_Q(const QGraphicsLayoutItem);
+    if (isLayout) {
+        const QGraphicsLayout *l = static_cast<const QGraphicsLayout *>(q);
+        for (int i = l->count() - 1; i >= 0; --i) {
+            if (QGraphicsLayoutItemPrivate::get(l->itemAt(i))->hasHeightForWidth())
+                return true;
+        }
+    } else if (QGraphicsItem *item = q->graphicsItem()) {
+        if (item->isWidget()) {
+            QGraphicsWidget *w = static_cast<QGraphicsWidget *>(item);
+            if (w->layout()) {
+                return QGraphicsLayoutItemPrivate::get(w->layout())->hasHeightForWidth();
+            }
+        }
+    }
+    return q->sizePolicy().hasHeightForWidth();
+}
+
+bool QGraphicsLayoutItemPrivate::hasWidthForHeight() const
+{
+    // enable this code when we add QSizePolicy::hasWidthForHeight() (For 4.8)
+#if 1
+    return false;
+#else
+    Q_Q(const QGraphicsLayoutItem);
+    if (isLayout) {
+        const QGraphicsLayout *l = static_cast<const QGraphicsLayout *>(q);
+        for (int i = l->count() - 1; i >= 0; --i) {
+            if (QGraphicsLayoutItemPrivate::get(l->itemAt(i))->hasWidthForHeight())
+                return true;
+        }
+    } else if (QGraphicsItem *item = q->graphicsItem()) {
+        if (item->isWidget()) {
+            QGraphicsWidget *w = static_cast<QGraphicsWidget *>(item);
+            if (w->layout()) {
+                return QGraphicsLayoutItemPrivate::get(w->layout())->hasWidthForHeight();
+            }
+        }
+    }
+    return q->sizePolicy().hasWidthForHeight();
+#endif
+}
+
 /*!
     \class QGraphicsLayoutItem
     \brief The QGraphicsLayoutItem class can be inherited to allow your custom
--- a/src/gui/graphicsview/qgraphicslayoutitem_p.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/graphicsview/qgraphicslayoutitem_p.h	Mon Oct 04 01:19:32 2010 +0300
@@ -65,6 +65,9 @@
 public:
     virtual ~QGraphicsLayoutItemPrivate();
     QGraphicsLayoutItemPrivate(QGraphicsLayoutItem *parent, bool isLayout);
+    static QGraphicsLayoutItemPrivate *get(QGraphicsLayoutItem *q) { return q->d_func();}
+    static const QGraphicsLayoutItemPrivate *get(const QGraphicsLayoutItem *q) { return q->d_func();}
+
     void init();
     QSizeF *effectiveSizeHints(const QSizeF &constraint) const;
     QGraphicsItem *parentItem() const;
@@ -73,6 +76,9 @@
     enum SizeComponent { Width, Height };
     void setSizeComponent(Qt::SizeHint which, SizeComponent component, qreal value);
 
+    bool hasHeightForWidth() const;
+    bool hasWidthForHeight() const;
+
     QSizePolicy sizePolicy;
     QGraphicsLayoutItem *parent;
 
--- a/src/gui/graphicsview/qgraphicslinearlayout.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/graphicsview/qgraphicslinearlayout.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -528,7 +528,8 @@
     Q_D(const QGraphicsLinearLayout);
     qreal left, top, right, bottom;
     getContentsMargins(&left, &top, &right, &bottom);
-    return d->engine.sizeHint(d->styleInfo(), which , constraint) + QSizeF(left + right, top + bottom);
+    const QSizeF extraMargins(left + right, top + bottom);
+    return d->engine.sizeHint(d->styleInfo(), which , constraint - extraMargins) + extraMargins;
 }
 
 /*!
--- a/src/gui/graphicsview/qgraphicsscene.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/graphicsview/qgraphicsscene.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -831,6 +831,11 @@
 #endif //QT_NO_IM
     }
 
+    // This handles the case that the item has been removed from the
+    // scene in response to the FocusOut event.
+    if (item && item->scene() != q)
+        item = 0;
+
     if (item)
         focusItem = item;
     updateInputMethodSensitivityInViews();
@@ -1069,7 +1074,7 @@
 /*!
     Returns all items for the screen position in \a event.
 */
-QList<QGraphicsItem *> QGraphicsScenePrivate::itemsAtPosition(const QPoint &screenPos,
+QList<QGraphicsItem *> QGraphicsScenePrivate::itemsAtPosition(const QPoint &/*screenPos*/,
                                                               const QPointF &scenePos,
                                                               QWidget *widget) const
 {
@@ -1078,16 +1083,12 @@
     if (!view)
         return q->items(scenePos, Qt::IntersectsItemShape, Qt::DescendingOrder, QTransform());
 
-    const QRectF pointRect(QPointF(widget->mapFromGlobal(screenPos)), QSizeF(1, 1));
+    const QRectF pointRect(scenePos, QSizeF(1, 1));
     if (!view->isTransformed())
         return q->items(pointRect, Qt::IntersectsItemShape, Qt::DescendingOrder);
 
     const QTransform viewTransform = view->viewportTransform();
-    if (viewTransform.type() <= QTransform::TxScale) {
-        return q->items(viewTransform.inverted().mapRect(pointRect), Qt::IntersectsItemShape,
-                        Qt::DescendingOrder, viewTransform);
-    }
-    return q->items(viewTransform.inverted().map(pointRect), Qt::IntersectsItemShape,
+    return q->items(pointRect, Qt::IntersectsItemShape,
                     Qt::DescendingOrder, viewTransform);
 }
 
@@ -5121,7 +5122,9 @@
                 q->update(itemBoundingRect.translated(item->d_ptr->sceneTransform.dx(),
                                                       item->d_ptr->sceneTransform.dy()));
             } else {
-                q->update(item->d_ptr->sceneTransform.mapRect(itemBoundingRect));
+                QRectF rect = item->d_ptr->sceneTransform.mapRect(itemBoundingRect);
+                if (!rect.isEmpty())
+                    q->update(rect);
             }
         } else {
             QRectF dirtyRect;
@@ -5735,16 +5738,11 @@
             }
 
             if (sceneTouchEvent->deviceType() == QTouchEvent::TouchScreen) {
-                // on touch-screens, combine this touch point with the closest one we find if it
-                // is a a direct descendent or ancestor (
+                // on touch-screens, combine this touch point with the closest one we find
                 int closestTouchPointId = findClosestTouchPointId(touchPoint.scenePos());
                 QGraphicsItem *closestItem = itemForTouchPointId.value(closestTouchPointId);
-                if (!item
-                    || (closestItem
-                        && (item->isAncestorOf(closestItem)
-                            || closestItem->isAncestorOf(item)))) {
+                if (!item || (closestItem && cachedItemsUnderMouse.contains(closestItem)))
                     item = closestItem;
-                }
             }
             if (!item)
                 continue;
--- a/src/gui/graphicsview/qgraphicstransform.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/graphicsview/qgraphicstransform.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -267,6 +267,7 @@
         return;
     d->xScale = scale;
     update();
+    emit xScaleChanged();
     emit scaleChanged();
 }
 
@@ -293,6 +294,7 @@
         return;
     d->yScale = scale;
     update();
+    emit yScaleChanged();
     emit scaleChanged();
 }
 
@@ -319,6 +321,7 @@
         return;
     d->zScale = scale;
     update();
+    emit zScaleChanged();
     emit scaleChanged();
 }
 
@@ -342,6 +345,27 @@
 */
 
 /*!
+    \fn QGraphicsScale::xScaleChanged()
+    \since 4.7
+
+    This signal is emitted whenever the \l xScale property changes.
+*/
+
+/*!
+    \fn QGraphicsScale::yScaleChanged()
+    \since 4.7
+
+    This signal is emitted whenever the \l yScale property changes.
+*/
+
+/*!
+    \fn QGraphicsScale::zScaleChanged()
+    \since 4.7
+
+    This signal is emitted whenever the \l zScale property changes.
+*/
+
+/*!
     \fn QGraphicsScale::scaleChanged()
 
     This signal is emitted whenever the xScale, yScale, or zScale
--- a/src/gui/graphicsview/qgraphicstransform.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/graphicsview/qgraphicstransform.h	Mon Oct 04 01:19:32 2010 +0300
@@ -85,9 +85,9 @@
     Q_OBJECT
 
     Q_PROPERTY(QVector3D origin READ origin WRITE setOrigin NOTIFY originChanged)
-    Q_PROPERTY(qreal xScale READ xScale WRITE setXScale NOTIFY scaleChanged)
-    Q_PROPERTY(qreal yScale READ yScale WRITE setYScale NOTIFY scaleChanged)
-    Q_PROPERTY(qreal zScale READ zScale WRITE setZScale NOTIFY scaleChanged)
+    Q_PROPERTY(qreal xScale READ xScale WRITE setXScale NOTIFY xScaleChanged)
+    Q_PROPERTY(qreal yScale READ yScale WRITE setYScale NOTIFY yScaleChanged)
+    Q_PROPERTY(qreal zScale READ zScale WRITE setZScale NOTIFY zScaleChanged)
 public:
     QGraphicsScale(QObject *parent = 0);
     ~QGraphicsScale();
@@ -108,6 +108,9 @@
 
 Q_SIGNALS:
     void originChanged();
+    void xScaleChanged();
+    void yScaleChanged();
+    void zScaleChanged();
     void scaleChanged();
 
 private:
--- a/src/gui/graphicsview/qgraphicsview.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/graphicsview/qgraphicsview.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -2596,9 +2596,11 @@
 
     // Convert scene rects to viewport rects.
     foreach (const QRectF &rect, rects) {
-        QRect xrect = transform.mapRect(rect).toRect();
+        QRect xrect = transform.mapRect(rect).toAlignedRect();
         if (!(d->optimizationFlags & DontAdjustForAntialiasing))
             xrect.adjust(-2, -2, 2, 2);
+        else
+            xrect.adjust(-1, -1, 1, 1);
         if (!viewportRect.intersects(xrect))
             continue;
         dirtyViewportRects << xrect;
--- a/src/gui/graphicsview/qgraphicswidget.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/graphicsview/qgraphicswidget.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -385,12 +385,12 @@
         if (wd->inSetPos) {
             //set the new pos
             d->geom.moveTopLeft(pos());
+            emit geometryChanged();
             return;
         }
     }
     QSizeF oldSize = size();
     QGraphicsLayoutItem::setGeometry(newGeom);
-    emit geometryChanged();
     // Send resize event
     bool resized = newGeom.size() != oldSize;
     if (resized) {
@@ -403,6 +403,7 @@
             emit heightChanged();
         QApplication::sendEvent(this, &re);
     }
+    emit geometryChanged();
 }
 
 /*!
@@ -936,7 +937,9 @@
 QFont QGraphicsWidget::font() const
 {
     Q_D(const QGraphicsWidget);
-    return d->font;
+    QFont fnt = d->font;
+    fnt.resolve(fnt.resolve() | d->inheritedFontResolveMask);
+    return fnt;
 }
 void QGraphicsWidget::setFont(const QFont &font)
 {
--- a/src/gui/graphicsview/qgraphicswidget_p.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/graphicsview/qgraphicswidget_p.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -254,7 +254,10 @@
 
 void QGraphicsWidgetPrivate::resolveFont(uint inheritedMask)
 {
+    Q_Q(QGraphicsWidget);
     inheritedFontResolveMask = inheritedMask;
+    if (QGraphicsWidget *p = q->parentWidget())
+        inheritedFontResolveMask |= p->d_func()->inheritedFontResolveMask;
     QFont naturalFont = naturalWidgetFont();
     QFont resolvedFont = font.resolve(naturalFont);
     updateFont(resolvedFont);
--- a/src/gui/graphicsview/qgridlayoutengine.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/graphicsview/qgridlayoutengine.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -250,6 +250,7 @@
 
         sumAvailable = targetSize - totalBox.q_preferredSize;
         if (sumAvailable > 0.0) {
+            qreal sumCurrentAvailable = sumAvailable;
             bool somethingHasAMaximumSize = false;
 
             qreal sumPreferredSizes = 0.0;
@@ -308,12 +309,12 @@
                         qreal ultimateFactor = (stretch * ultimateSumPreferredSizes
                                                 / sumStretches)
                                                - (box.q_preferredSize);
-                        qreal transitionalFactor = sumAvailable
+                        qreal transitionalFactor = sumCurrentAvailable
                                                    * (ultimatePreferredSize - box.q_preferredSize)
                                                    / (ultimateSumPreferredSizes
                                                       - sumPreferredSizes);
 
-                        qreal alpha = qMin(sumAvailable,
+                        qreal alpha = qMin(sumCurrentAvailable,
                                            ultimateSumPreferredSizes - sumPreferredSizes);
                         qreal beta = ultimateSumPreferredSizes - sumPreferredSizes;
 
@@ -321,7 +322,7 @@
                                       + ((beta - alpha) * transitionalFactor)) / beta;
                     }
                     sumFactors += factors[i];
-                    if (desired < sumAvailable)
+                    if (desired < sumCurrentAvailable)
                         somethingHasAMaximumSize = true;
 
                     newSizes[i] = -1.0;
@@ -337,12 +338,12 @@
                         continue;
 
                     const QGridLayoutBox &box = boxes.at(start + i);
-                    qreal avail = sumAvailable * factors[i] / sumFactors;
+                    qreal avail = sumCurrentAvailable * factors[i] / sumFactors;
                     if (sizes[i] + avail >= box.q_maximumSize) {
                         newSizes[i] = box.q_maximumSize;
-                        sumAvailable -= box.q_maximumSize - sizes[i];
+                        sumCurrentAvailable -= box.q_maximumSize - sizes[i];
                         sumFactors -= factors[i];
-                        keepGoing = (sumAvailable > 0.0);
+                        keepGoing = (sumCurrentAvailable > 0.0);
                         if (!keepGoing)
                             break;
                     }
@@ -352,7 +353,7 @@
             for (int i = 0; i < n; ++i) {
                 if (newSizes[i] < 0.0) {
                     qreal delta = (sumFactors == 0.0) ? 0.0
-                                                      : sumAvailable * factors[i] / sumFactors;
+                                                      : sumCurrentAvailable * factors[i] / sumFactors;
                     newSizes[i] = sizes[i] + delta;
                 }
             }
@@ -545,6 +546,24 @@
                                            : sizePolicy.verticalPolicy();
 }
 
+/*
+  returns true if the size policy returns true for either hasHeightForWidth()
+  or hasWidthForHeight()
+ */
+bool QGridLayoutItem::hasDynamicConstraint() const
+{
+    return QGraphicsLayoutItemPrivate::get(q_layoutItem)->hasHeightForWidth()
+        || QGraphicsLayoutItemPrivate::get(q_layoutItem)->hasWidthForHeight();
+}
+
+Qt::Orientation QGridLayoutItem::dynamicConstraintOrientation() const
+{
+    if (QGraphicsLayoutItemPrivate::get(q_layoutItem)->hasHeightForWidth())
+        return Qt::Vertical;
+    else //if (QGraphicsLayoutItemPrivate::get(q_layoutItem)->hasWidthForHeight())
+        return Qt::Horizontal;
+}
+
 QSizePolicy::ControlTypes QGridLayoutItem::controlTypes(LayoutSide /* side */) const
 {
     return q_layoutItem->sizePolicy().controlType();
@@ -613,7 +632,14 @@
         qreal cellWidth = width;
         qreal cellHeight = height;
 
-        QSizeF size = effectiveMaxSize().boundedTo(QSizeF(cellWidth, cellHeight));
+        QSize constraint;
+        if (hasDynamicConstraint()) {
+            if (dynamicConstraintOrientation() == Qt::Vertical)
+                constraint.setWidth(cellWidth);
+            else
+                constraint.setHeight(cellHeight);
+        }
+        QSizeF size = effectiveMaxSize(constraint).boundedTo(QSizeF(cellWidth, cellHeight));
         width = size.width();
         height = size.height();
 
@@ -675,13 +701,13 @@
     Note that effectiveSizeHint does not take sizePolicy into consideration,
     (since it only evaluates the hints, as the name implies)
 */
-QSizeF QGridLayoutItem::effectiveMaxSize() const
+QSizeF QGridLayoutItem::effectiveMaxSize(const QSizeF &constraint) const
 {
-    QSizeF size;
+    QSizeF size = constraint;
     bool vGrow = (sizePolicy(Qt::Vertical) & QSizePolicy::GrowFlag) == QSizePolicy::GrowFlag;
     bool hGrow = (sizePolicy(Qt::Horizontal) & QSizePolicy::GrowFlag) == QSizePolicy::GrowFlag;
     if (!vGrow || !hGrow) {
-        QSizeF pref = layoutItem()->effectiveSizeHint(Qt::PreferredSize);
+        QSizeF pref = layoutItem()->effectiveSizeHint(Qt::PreferredSize, constraint);
         if (!vGrow)
             size.setHeight(pref.height());
         if (!hGrow)
@@ -689,7 +715,7 @@
     }
 
     if (!size.isValid()) {
-        QSizeF maxSize = layoutItem()->effectiveSizeHint(Qt::MaximumSize);
+        QSizeF maxSize = layoutItem()->effectiveSizeHint(Qt::MaximumSize, constraint);
         if (size.width() == -1)
             size.setWidth(maxSize.width());
         if (size.height() == -1)
@@ -1010,6 +1036,7 @@
     q_cachedEffectiveLastRows[Ver] = -1;
     q_cachedDataForStyleInfo.invalidate();
     q_cachedSize = QSizeF();
+    q_cachedConstraintOrientation = UnknownConstraint;
 }
 
 static void visualRect(QRectF *geom, Qt::LayoutDirection dir, const QRectF &contentsRect)
@@ -1074,10 +1101,13 @@
 }
 
 QSizeF QGridLayoutEngine::sizeHint(const QLayoutStyleInfo &styleInfo, Qt::SizeHint which,
-                                   const QSizeF & /* constraint */) const
+                                   const QSizeF &constraint) const
 {
     ensureColumnAndRowData(styleInfo);
 
+    if (hasDynamicConstraint())
+        return dynamicallyConstrainedSizeHint(which, constraint);
+
     switch (which) {
     case Qt::MinimumSize:
         return QSizeF(q_totalBoxes[Hor].q_minimumSize, q_totalBoxes[Ver].q_minimumSize);
@@ -1375,7 +1405,11 @@
                         box = &multiCell.q_box;
                         multiCell.q_stretch = itemStretch;
                     }
-                    box->combine(item->box(orientation));
+                    // Items with constraints are not included in the orientation that
+                    // they are constrained (since it depends on the hfw/constraint function).
+                    // They must be combined at a later stage.
+                    if (!item->hasDynamicConstraint() || orientation != item->dynamicConstraintOrientation())
+                        box->combine(item->box(orientation));
 
                     if (effectiveRowSpan == 1) {
                         QSizePolicy::ControlTypes controls = item->controlTypes(top);
@@ -1532,6 +1566,138 @@
     q_cachedDataForStyleInfo = styleInfo;
 }
 
+QSizeF QGridLayoutEngine::dynamicallyConstrainedSizeHint(Qt::SizeHint which,
+                                                         const QSizeF &constraint) const
+{
+    Q_ASSERT(hasDynamicConstraint());
+    if (constraint.width() < 0 && constraint.height() < 0) {
+        // Process the hfw / wfh items that we did not process in fillRowData()
+        const Qt::Orientation constraintOrient = constraintOrientation();
+
+        QGridLayoutRowData rowData = constraintOrient == Qt::Vertical ? q_rowData : q_columnData;
+        for (int i = q_items.count() - 1; i >= 0; --i) {
+            QGridLayoutItem *item = q_items.at(i);
+            if (item->hasDynamicConstraint()) {
+                QGridLayoutBox box = item->box(constraintOrient);
+                QGridLayoutBox &rowBox = rowData.boxes[item->firstRow(constraintOrient)];
+                rowBox.combine(box);
+            }
+        }
+
+        QGridLayoutBox totalBoxes[2];
+        if (constraintOrient == Qt::Vertical) {
+            totalBoxes[Hor] = q_columnData.totalBox(0, columnCount());
+            totalBoxes[Ver] = rowData.totalBox(0, rowCount());
+        } else {
+            totalBoxes[Hor] = rowData.totalBox(0, columnCount());
+            totalBoxes[Ver] = q_rowData.totalBox(0, rowCount());
+        }
+        return QSizeF(totalBoxes[Hor].q_sizes(which), totalBoxes[Ver].q_sizes(which));
+    }
+
+
+    Q_ASSERT(constraint.width() >= 0 || constraint.height() >= 0);
+    q_xx.resize(columnCount());
+    q_yy.resize(rowCount());
+    q_widths.resize(columnCount());
+    q_heights.resize(rowCount());
+    q_descents.resize(rowCount());
+
+
+    const Qt::Orientation orientation = constraintOrientation();
+    QGridLayoutRowData *colData;
+    QGridLayoutRowData constrainedRowData;
+    QGridLayoutBox *totalBox;
+    qreal *sizes;
+    qreal *pos;
+    qreal *descents;
+    qreal targetSize;
+    qreal cCount;
+    qreal rCount;
+
+    if (orientation == Qt::Vertical) {
+        // height for width
+        colData = &q_columnData;
+        totalBox = &q_totalBoxes[Hor];
+        sizes = q_widths.data();
+        pos = q_xx.data();
+        descents = 0;
+        targetSize = constraint.width();
+        cCount = columnCount();
+        rCount = rowCount();
+        constrainedRowData = q_rowData;
+    } else {
+        // width for height
+        colData = &q_rowData;
+        totalBox = &q_totalBoxes[Ver];
+        sizes = q_heights.data();
+        pos = q_yy.data();
+        descents = q_descents.data();
+        targetSize = constraint.height();
+        cCount = rowCount();
+        rCount = columnCount();
+        constrainedRowData = q_columnData;
+    }
+    colData->calculateGeometries(0, cCount, targetSize, pos, sizes, descents, *totalBox);
+    for (int i = q_items.count() - 1; i >= 0; --i) {
+        QGridLayoutItem *item = q_items.at(i);
+
+        if (item->hasDynamicConstraint()) {
+            const qreal size = sizes[item->firstColumn(orientation)];
+            QGridLayoutBox box = item->box(orientation, size);
+            QGridLayoutBox &rowBox = constrainedRowData.boxes[item->firstRow(orientation)];
+            rowBox.combine(box);
+        }
+    }
+    const qreal newSize = constrainedRowData.totalBox(0, rCount).q_sizes(which);
+
+    return (orientation == Qt::Vertical) ? QSizeF(targetSize, newSize) : QSizeF(newSize, targetSize);
+}
+
+
+/**
+   returns false if the layout has contradicting constraints (i.e. some items with a horizontal
+   constraint and other items with a vertical constraint)
+ */
+bool QGridLayoutEngine::ensureDynamicConstraint() const
+{
+    if (q_cachedConstraintOrientation == UnknownConstraint) {
+        for (int i = q_items.count() - 1; i >= 0; --i) {
+            QGridLayoutItem *item = q_items.at(i);
+            if (item->hasDynamicConstraint()) {
+                Qt::Orientation itemConstraintOrientation = item->dynamicConstraintOrientation();
+                if (q_cachedConstraintOrientation == UnknownConstraint) {
+                    q_cachedConstraintOrientation = itemConstraintOrientation;
+                } else if (q_cachedConstraintOrientation != itemConstraintOrientation) {
+                    q_cachedConstraintOrientation = UnfeasibleConstraint;
+                    qWarning("QGridLayoutEngine: Unfeasible, cannot mix horizontal and"
+                             " vertical constraint in the same layout");
+                    return false;
+                }
+            }
+        }
+        if (q_cachedConstraintOrientation == UnknownConstraint)
+            q_cachedConstraintOrientation = NoConstraint;
+    }
+    return true;
+}
+
+bool QGridLayoutEngine::hasDynamicConstraint() const
+{
+    if (!ensureDynamicConstraint())
+        return false;
+    return q_cachedConstraintOrientation != NoConstraint;
+}
+
+/*
+ * return value is only valid if hasConstraint() returns true
+ */
+Qt::Orientation QGridLayoutEngine::constraintOrientation() const
+{
+    (void)ensureDynamicConstraint();
+    return (Qt::Orientation)q_cachedConstraintOrientation;
+}
+
 void QGridLayoutEngine::ensureGeometries(const QLayoutStyleInfo &styleInfo,
                                          const QSizeF &size) const
 {
@@ -1544,10 +1710,74 @@
     q_widths.resize(columnCount());
     q_heights.resize(rowCount());
     q_descents.resize(rowCount());
-    q_columnData.calculateGeometries(0, columnCount(), size.width(), q_xx.data(), q_widths.data(),
-                                     0, q_totalBoxes[Hor]);
-    q_rowData.calculateGeometries(0, rowCount(), size.height(), q_yy.data(), q_heights.data(),
-                                  q_descents.data(), q_totalBoxes[Ver]);
+
+
+    Qt::Orientation orientation = Qt::Vertical;
+    if (hasDynamicConstraint())
+        orientation = constraintOrientation();
+
+    /*
+      In order to do hfw we need to first distribute the columns, then the rows.
+      In order to do wfh we need to first distribute the rows, then the columns.
+
+      If there is no constraint, the order of distributing the rows or columns first is irrelevant.
+      We choose horizontal just to keep the same behaviour as before (however, there shouldn't
+      be any behaviour difference).
+ */
+
+    QGridLayoutRowData *colData;
+    QGridLayoutRowData rowData;
+    qreal *widths;
+    qreal *heights;
+    qreal *xx;
+    qreal *yy;
+    qreal *xdescents = 0;
+    qreal *ydescents = 0;
+    qreal cCount;
+    qreal rCount;
+    QSizeF oSize = size;
+    if (orientation == Qt::Vertical) {
+        // height for width
+        colData = &q_columnData;
+        rowData = q_rowData;
+        widths = q_widths.data();
+        heights = q_heights.data();
+        xx = q_xx.data();
+        yy = q_yy.data();
+        cCount = columnCount();
+        rCount = rowCount();
+        ydescents = q_descents.data();
+    } else {
+        // width for height
+        colData = &q_rowData;
+        rowData = q_columnData;
+        widths = q_heights.data();
+        heights = q_widths.data();
+        xx = q_yy.data();
+        yy = q_xx.data();
+        cCount = rowCount();
+        rCount = columnCount();
+        xdescents = q_descents.data();
+        oSize.transpose();
+    }
+
+    colData->calculateGeometries(0, cCount, oSize.width(), xx, widths,
+                                 xdescents, q_totalBoxes[orientation == Qt::Horizontal]);
+    for (int i = q_items.count() - 1; i >= 0; --i) {
+        QGridLayoutItem *item = q_items.at(i);
+        const int col = item->firstColumn(orientation);
+        const int row = item->firstRow(orientation);
+        if (item->hasDynamicConstraint()) {
+            const qreal sz = widths[col];
+            QGridLayoutBox box = item->box(orientation, sz);
+            rowData.boxes[row].combine(box);
+        }
+    }
+
+    QGridLayoutBox &totalBox = q_totalBoxes[orientation == Qt::Vertical];
+    totalBox = rowData.totalBox(0, rCount);
+    rowData.calculateGeometries(0, rCount, oSize.height(), yy, heights,
+                                 ydescents, totalBox);
 
     q_cachedSize = size;
 }
--- a/src/gui/graphicsview/qgridlayoutengine_p.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/graphicsview/qgridlayoutengine_p.h	Mon Oct 04 01:19:32 2010 +0300
@@ -91,6 +91,14 @@
     Bottom
 };
 
+enum {
+    NoConstraint,
+    HorizontalConstraint,
+    VerticalConstraint,
+    UnknownConstraint,      // need to update cache
+    UnfeasibleConstraint    // not feasible, it be has some items with Vertical and others with Horizontal constraints
+};
+
 template <typename T>
 class QLayoutParameter
 {
@@ -270,6 +278,10 @@
     inline void setAlignment(Qt::Alignment alignment) { q_alignment = alignment; }
 
     QSizePolicy::Policy sizePolicy(Qt::Orientation orientation) const;
+
+    bool hasDynamicConstraint() const;
+    Qt::Orientation dynamicConstraintOrientation() const;
+
     QSizePolicy::ControlTypes controlTypes(LayoutSide side) const;
     QSizeF sizeHint(Qt::SizeHint which, const QSizeF &constraint = QSizeF()) const;
     QGridLayoutBox box(Qt::Orientation orientation, qreal constraint = -1.0) const;
@@ -280,7 +292,7 @@
     void setGeometry(const QRectF &rect);
     void transpose();
     void insertOrRemoveRows(int row, int delta, Qt::Orientation orientation = Qt::Vertical);
-    QSizeF effectiveMaxSize() const;
+    QSizeF effectiveMaxSize(const QSizeF &constraint) const;
 
 #ifdef QT_DEBUG
     void dump(int indent = 0) const;
@@ -372,6 +384,14 @@
                     int column, int rowSpan, int columnSpan) const;
     QSizeF sizeHint(const QLayoutStyleInfo &styleInfo, Qt::SizeHint which,
                     const QSizeF &constraint) const;
+
+    // heightForWidth / widthForHeight support
+    QSizeF dynamicallyConstrainedSizeHint(Qt::SizeHint which, const QSizeF &constraint) const;
+    bool ensureDynamicConstraint() const;
+    bool hasDynamicConstraint() const;
+    Qt::Orientation constraintOrientation() const;
+
+
     QSizePolicy::ControlTypes controlTypes(LayoutSide side) const;
     void transpose();
     void setVisualDirection(Qt::LayoutDirection direction);
@@ -405,6 +425,7 @@
     // Lazily computed from the above user input
     mutable int q_cachedEffectiveFirstRows[NOrientations];
     mutable int q_cachedEffectiveLastRows[NOrientations];
+    mutable quint8 q_cachedConstraintOrientation : 2;
 
     // Layout item input
     mutable QLayoutStyleInfo q_cachedDataForStyleInfo;
--- a/src/gui/gui.pro	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/gui.pro	Mon Oct 04 01:19:32 2010 +0300
@@ -77,21 +77,29 @@
     DEPLOYMENT = partial_upgrade $$DEPLOYMENT
 }
 
+neon:*-g++* {
+    DEFINES += QT_HAVE_NEON
+    QMAKE_CXXFLAGS *= -mfpu=neon
+    HEADERS += $$NEON_HEADERS
+    SOURCES += $$NEON_SOURCES
+
+    DRAWHELPER_NEON_ASM_FILES = $$NEON_ASM
+
+    neon_compiler.commands = $$QMAKE_CXX -c
+    neon_compiler.commands += $(CXXFLAGS) $(INCPATH) ${QMAKE_FILE_IN} -o ${QMAKE_FILE_OUT}
+    neon_compiler.dependency_type = TYPE_C
+    neon_compiler.output = ${QMAKE_VAR_OBJECTS_DIR}${QMAKE_FILE_BASE}$${first(QMAKE_EXT_OBJ)}
+    neon_compiler.input = DRAWHELPER_NEON_ASM_FILES
+    neon_compiler.variable_out = OBJECTS
+    neon_compiler.name = compiling[neon] ${QMAKE_FILE_IN}
+    silent:neon_compiler.commands = @echo compiling[neon] ${QMAKE_FILE_IN} && $$neon_compiler.commands
+    QMAKE_EXTRA_COMPILERS += neon_compiler
+}
+
 contains(QMAKE_MAC_XARCH, no) {
     DEFINES += QT_NO_MAC_XARCH
 } else {
-    mmx:DEFINES += QT_HAVE_MMX
-    3dnow:DEFINES += QT_HAVE_3DNOW
-    sse:DEFINES += QT_HAVE_SSE QT_HAVE_MMXEXT
-    sse2:DEFINES += QT_HAVE_SSE2
-    sse3:DEFINES += QT_HAVE_SSE3
-    ssse3:DEFINES += QT_HAVE_SSSE3
-    sse4_1:DEFINES += QT_HAVE_SSE4_1
-    sse4_2:DEFINES += QT_HAVE_SSE4_2
-    avx:DEFINES += QT_HAVE_AVX
-    iwmmxt:DEFINES += QT_HAVE_IWMMXT
-
-    win32-g++*|!win32:!*-icc* {
+    win32-g++*|!win32:!win32-icc*:!macx-icc* {
         mmx {
             mmx_compiler.commands = $$QMAKE_CXX -c -Winline
 
@@ -187,6 +195,25 @@
             silent:sse2_compiler.commands = @echo compiling[sse2] ${QMAKE_FILE_IN} && $$sse2_compiler.commands
             QMAKE_EXTRA_COMPILERS += sse2_compiler
         }
+        ssse3 {
+            ssse3_compiler.commands = $$QMAKE_CXX -c -Winline
+
+            mac {
+                ssse3_compiler.commands += -Xarch_i386 -mssse3
+                ssse3_compiler.commands += -Xarch_x86_64 -mssse3
+            } else {
+                ssse3_compiler.commands += -mssse3
+            }
+
+            ssse3_compiler.commands += $(CXXFLAGS) $(INCPATH) ${QMAKE_FILE_IN} -o ${QMAKE_FILE_OUT}
+            ssse3_compiler.dependency_type = TYPE_C
+            ssse3_compiler.output = ${QMAKE_VAR_OBJECTS_DIR}${QMAKE_FILE_BASE}$${first(QMAKE_EXT_OBJ)}
+            ssse3_compiler.input = SSSE3_SOURCES
+            ssse3_compiler.variable_out = OBJECTS
+            ssse3_compiler.name = compiling[ssse3] ${QMAKE_FILE_IN}
+            silent:ssse3_compiler.commands = @echo compiling[ssse3] ${QMAKE_FILE_IN} && $$ssse3_compiler.commands
+            QMAKE_EXTRA_COMPILERS += ssse3_compiler
+        }
         iwmmxt {
             iwmmxt_compiler.commands = $$QMAKE_CXX -c -Winline
             iwmmxt_compiler.commands += -mcpu=iwmmxt
@@ -205,6 +232,7 @@
         3dnow:sse: SOURCES += $$SSE3DNOW_SOURCES
         sse: SOURCES += $$SSE_SOURCES
         sse2: SOURCES += $$SSE2_SOURCES
+        ssse3: SOURCES += $$SSSE3_SOURCES
         iwmmxt: SOURCES += $$IWMMXT_SOURCES
     }
 }
--- a/src/gui/image/image.pri	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/image/image.pri	Mon Oct 04 01:19:32 2010 +0300
@@ -94,4 +94,6 @@
 contains(QT_CONFIG, gif):include($$PWD/qgifhandler.pri)
 
 # SIMD
+NEON_SOURCES += image/qimage_neon.cpp
 SSE2_SOURCES += image/qimage_sse2.cpp
+SSSE3_SOURCES += image/qimage_ssse3.cpp
--- a/src/gui/image/qimage.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/image/qimage.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -3354,7 +3354,7 @@
 
 
 // first index source, second dest
-static const Image_Converter converter_map[QImage::NImageFormats][QImage::NImageFormats] =
+static Image_Converter converter_map[QImage::NImageFormats][QImage::NImageFormats] =
 {
     {
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
@@ -3761,6 +3761,22 @@
         inplace_converter_map[QImage::Format_ARGB32][QImage::Format_ARGB32_Premultiplied] = convert_ARGB_to_ARGB_PM_inplace_sse2;
     }
 #endif
+#ifdef QT_HAVE_SSSE3
+    if (features & SSSE3) {
+        extern void convert_RGB888_to_RGB32_ssse3(QImageData *dest, const QImageData *src, Qt::ImageConversionFlags);
+        converter_map[QImage::Format_RGB888][QImage::Format_RGB32] = convert_RGB888_to_RGB32_ssse3;
+        converter_map[QImage::Format_RGB888][QImage::Format_ARGB32] = convert_RGB888_to_RGB32_ssse3;
+        converter_map[QImage::Format_RGB888][QImage::Format_ARGB32_Premultiplied] = convert_RGB888_to_RGB32_ssse3;
+    }
+#endif
+#ifdef QT_HAVE_NEON
+    if (features & NEON) {
+        extern void convert_RGB888_to_RGB32_neon(QImageData *dest, const QImageData *src, Qt::ImageConversionFlags);
+        converter_map[QImage::Format_RGB888][QImage::Format_RGB32] = convert_RGB888_to_RGB32_neon;
+        converter_map[QImage::Format_RGB888][QImage::Format_ARGB32] = convert_RGB888_to_RGB32_neon;
+        converter_map[QImage::Format_RGB888][QImage::Format_ARGB32_Premultiplied] = convert_RGB888_to_RGB32_neon;
+    }
+#endif
 }
 
 /*!
@@ -4821,7 +4837,7 @@
         QIMAGE_SANITYCHECK_MEMORY(res);
         for (int i = 0; i < d->height; i++) {
             uint *q = (uint*)res.scanLine(i);
-            uint *p = (uint*)scanLine(i);
+            uint *p = (uint*)constScanLine(i);
             uint *end = p + d->width;
             while (p < end) {
                 *q = ((*p << 16) & 0xff0000) | ((*p >> 16) & 0xff) | (*p & 0xff00ff00);
@@ -4835,7 +4851,7 @@
         QIMAGE_SANITYCHECK_MEMORY(res);
         for (int i = 0; i < d->height; i++) {
             ushort *q = (ushort*)res.scanLine(i);
-            const ushort *p = (const ushort*)scanLine(i);
+            const ushort *p = (const ushort*)constScanLine(i);
             const ushort *end = p + d->width;
             while (p < end) {
                 *q = ((*p << 11) & 0xf800) | ((*p >> 11) & 0x1f) | (*p & 0x07e0);
@@ -4848,12 +4864,15 @@
         res = QImage(d->width, d->height, d->format);
         QIMAGE_SANITYCHECK_MEMORY(res);
         for (int i = 0; i < d->height; i++) {
-            quint8 *p = (quint8*)scanLine(i);
+            const quint8 *p = constScanLine(i);
+            quint8 *q = res.scanLine(i);
             const quint8 *end = p + d->width * sizeof(qargb8565);
             while (p < end) {
-                quint16 *q = reinterpret_cast<quint16*>(p + 1);
-                *q = ((*q << 11) & 0xf800) | ((*q >> 11) & 0x1f) | (*q & 0x07e0);
+                q[0] = p[0];
+                q[1] = (p[1] & 0xe0) | (p[2] >> 3);
+                q[2] = (p[2] & 0x07) | (p[1] << 3);
                 p += sizeof(qargb8565);
+                q += sizeof(qargb8565);
             }
         }
         break;
@@ -4862,7 +4881,7 @@
         QIMAGE_SANITYCHECK_MEMORY(res);
         for (int i = 0; i < d->height; i++) {
             qrgb666 *q = reinterpret_cast<qrgb666*>(res.scanLine(i));
-            const qrgb666 *p = reinterpret_cast<const qrgb666*>(scanLine(i));
+            const qrgb666 *p = reinterpret_cast<const qrgb666*>(constScanLine(i));
             const qrgb666 *end = p + d->width;
             while (p < end) {
                 const QRgb rgb = quint32(*p++);
@@ -4874,12 +4893,15 @@
         res = QImage(d->width, d->height, d->format);
         QIMAGE_SANITYCHECK_MEMORY(res);
         for (int i = 0; i < d->height; i++) {
-            qargb6666 *q = reinterpret_cast<qargb6666*>(res.scanLine(i));
-            const qargb6666 *p = reinterpret_cast<const qargb6666*>(scanLine(i));
-            const qargb6666 *end = p + d->width;
+            const quint8 *p = constScanLine(i);
+            const quint8 *end = p + d->width * sizeof(qargb6666);
+            quint8 *q = res.scanLine(i);
             while (p < end) {
-                const QRgb rgb = quint32(*p++);
-                *q++ = qRgba(qBlue(rgb), qGreen(rgb), qRed(rgb), qAlpha(rgb));
+                q[0] = (p[1] >> 4) | ((p[2] & 0x3) << 4) | (p[0] & 0xc0);
+                q[1] = (p[1] & 0xf) | (p[0] << 4);
+                q[2] = (p[2] & 0xfc) | ((p[0] >> 4) & 0x3);
+                p += sizeof(qargb6666);
+                q += sizeof(qargb6666);
             }
         }
         break;
@@ -4887,11 +4909,11 @@
         res = QImage(d->width, d->height, d->format);
         QIMAGE_SANITYCHECK_MEMORY(res);
         for (int i = 0; i < d->height; i++) {
-            ushort *q = (ushort*)res.scanLine(i);
-            const ushort *p = (const ushort*)scanLine(i);
-            const ushort *end = p + d->width;
+            quint16 *q = (quint16*)res.scanLine(i);
+            const quint16 *p = (const quint16*)constScanLine(i);
+            const quint16 *end = p + d->width;
             while (p < end) {
-                *q = ((*p << 10) & 0x7800) | ((*p >> 10) & 0x1f) | (*p & 0x83e0);
+                *q = ((*p << 10) & 0x7c00) | ((*p >> 10) & 0x1f) | (*p & 0x3e0);
                 p++;
                 q++;
             }
@@ -4901,12 +4923,15 @@
         res = QImage(d->width, d->height, d->format);
         QIMAGE_SANITYCHECK_MEMORY(res);
         for (int i = 0; i < d->height; i++) {
-            quint8 *p = (quint8*)scanLine(i);
+            const quint8 *p = constScanLine(i);
+            quint8 *q = res.scanLine(i);
             const quint8 *end = p + d->width * sizeof(qargb8555);
             while (p < end) {
-                quint16 *q = reinterpret_cast<quint16*>(p + 1);
-                *q = ((*q << 10) & 0x7800) | ((*q >> 10) & 0x1f) | (*q & 0x83e0);
+                q[0] = p[0];
+                q[1] = (p[1] & 0xe0) | (p[2] >> 2);
+                q[2] = (p[2] & 0x03) | ((p[1] << 2) & 0x7f);
                 p += sizeof(qargb8555);
+                q += sizeof(qargb8555);
             }
         }
         break;
@@ -4914,8 +4939,8 @@
         res = QImage(d->width, d->height, d->format);
         QIMAGE_SANITYCHECK_MEMORY(res);
         for (int i = 0; i < d->height; i++) {
-            quint8 *q = reinterpret_cast<quint8*>(res.scanLine(i));
-            const quint8 *p = reinterpret_cast<const quint8*>(scanLine(i));
+            quint8 *q = res.scanLine(i);
+            const quint8 *p = constScanLine(i);
             const quint8 *end = p + d->width * sizeof(qrgb888);
             while (p < end) {
                 q[0] = p[2];
@@ -4927,32 +4952,17 @@
         }
         break;
     case Format_RGB444:
-        res = QImage(d->width, d->height, d->format);
-        QIMAGE_SANITYCHECK_MEMORY(res);
-        for (int i = 0; i < d->height; i++) {
-            quint8 *q = reinterpret_cast<quint8*>(res.scanLine(i));
-            const quint8 *p = reinterpret_cast<const quint8*>(scanLine(i));
-            const quint8 *end = p + d->width * sizeof(qrgb444);
-            while (p < end) {
-                q[0] = (p[0] & 0xf0) | ((p[1] & 0x0f) << 8);
-                q[1] = ((p[0] & 0x0f) >> 8) | (p[1] & 0xf0);
-                q += sizeof(qrgb444);
-                p += sizeof(qrgb444);
-            }
-        }
-        break;
     case Format_ARGB4444_Premultiplied:
         res = QImage(d->width, d->height, d->format);
         QIMAGE_SANITYCHECK_MEMORY(res);
         for (int i = 0; i < d->height; i++) {
-            quint8 *q = reinterpret_cast<quint8*>(res.scanLine(i));
-            const quint8 *p = reinterpret_cast<const quint8*>(scanLine(i));
-            const quint8 *end = p + d->width * sizeof(qargb4444);
+            quint16 *q = reinterpret_cast<quint16*>(res.scanLine(i));
+            const quint16 *p = reinterpret_cast<const quint16*>(constScanLine(i));
+            const quint16 *end = p + d->width;
             while (p < end) {
-                q[0] = (p[0] & 0xf0) | ((p[1] & 0x0f) << 8);
-                q[1] = ((p[0] & 0x0f) >> 8) | (p[1] & 0xf0);
-                q += sizeof(qargb4444);
-                p += sizeof(qargb4444);
+                *q = (*p & 0xf0f0) | ((*p & 0x0f) << 8) | ((*p & 0xf00) >> 8);
+                p++;
+                q++;
             }
         }
         break;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/gui/image/qimage_neon.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,114 @@
+/****************************************************************************
+**
+** 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 <qimage.h>
+#include <private/qimage_p.h>
+#include <private/qsimd_p.h>
+
+#ifdef QT_HAVE_NEON
+
+QT_BEGIN_NAMESPACE
+
+Q_GUI_EXPORT void QT_FASTCALL qt_convert_rgb888_to_rgb32_neon(quint32 *dst, const uchar *src, int len)
+{
+    if (!len)
+        return;
+
+    const quint32 *const end = dst + len;
+
+    // align dst on 64 bits
+    const int offsetToAlignOn8Bytes = (reinterpret_cast<quintptr>(dst) >> 2) & 0x1;
+    for (int i = 0; i < offsetToAlignOn8Bytes; ++i) {
+        *dst++ = qRgb(src[0], src[1], src[2]);
+        src += 3;
+    }
+
+    if ((len - offsetToAlignOn8Bytes) >= 8) {
+        const quint32 *const simdEnd = end - 7;
+        register uint8x8_t fullVector asm ("d3") = vdup_n_u8(0xff);
+        do {
+#if Q_BYTE_ORDER == Q_BIG_ENDIAN
+            asm volatile (
+                "vld3.8     { d4, d5, d6 }, [%[SRC]] !\n\t"
+                "vst4.8     { d3, d4, d5, d6 }, [%[DST],:64] !\n\t"
+                : [DST]"+r" (dst), [SRC]"+r" (src)
+                : "w"(fullVector)
+                : "memory", "d4", "d5", "d6"
+            );
+#else
+            asm volatile (
+                "vld3.8     { d0, d1, d2 }, [%[SRC]] !\n\t"
+                "vswp d0, d2\n\t"
+                "vst4.8     { d0, d1, d2, d3 }, [%[DST],:64] !\n\t"
+                : [DST]"+r" (dst), [SRC]"+r" (src)
+                : "w"(fullVector)
+                : "memory", "d0", "d1", "d2"
+            );
+#endif
+        } while (dst < simdEnd);
+    }
+
+    while (dst != end) {
+        *dst++ = qRgb(src[0], src[1], src[2]);
+        src += 3;
+    }
+}
+
+void convert_RGB888_to_RGB32_neon(QImageData *dest, const QImageData *src, Qt::ImageConversionFlags)
+{
+    Q_ASSERT(src->format == QImage::Format_RGB888);
+    Q_ASSERT(dest->format == QImage::Format_RGB32 || dest->format == QImage::Format_ARGB32 || dest->format == QImage::Format_ARGB32_Premultiplied);
+    Q_ASSERT(src->width == dest->width);
+    Q_ASSERT(src->height == dest->height);
+
+    const uchar *src_data = (uchar *) src->data;
+    quint32 *dest_data = (quint32 *) dest->data;
+
+    for (int i = 0; i < src->height; ++i) {
+        qt_convert_rgb888_to_rgb32_neon(dest_data, src_data, src->width);
+        src_data += src->bytes_per_line;
+        dest_data = (quint32 *)((uchar*)dest_data + dest->bytes_per_line);
+    }
+}
+
+QT_END_NAMESPACE
+
+#endif // QT_HAVE_NEON
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/gui/image/qimage_ssse3.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,149 @@
+/****************************************************************************
+**
+** 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 <qimage.h>
+#include <private/qimage_p.h>
+#include <private/qsimd_p.h>
+
+#ifdef QT_HAVE_SSSE3
+
+QT_BEGIN_NAMESPACE
+
+// Convert a scanline of RGB888 (src) to RGB32 (dst)
+// src must be at least len * 3 bytes
+// dst must be at least len * 4 bytes
+Q_GUI_EXPORT void QT_FASTCALL qt_convert_rgb888_to_rgb32_ssse3(quint32 *dst, const uchar *src, int len)
+{
+    quint32 *const end = dst + len;
+
+    // Prologue, align dst to 16 bytes. The alignement is done on dst because it has 4 store()
+    // for each 3 load() of src.
+    const int offsetToAlignOn16Bytes = (4 - ((reinterpret_cast<quintptr>(dst) >> 2) & 0x3)) & 0x3;
+    const int prologLength = qMin(len, offsetToAlignOn16Bytes);
+
+    for (int i = 0; i < prologLength; ++i) {
+        *dst++ = qRgb(src[0], src[1], src[2]);
+        src += 3;
+    }
+
+    // Mask the 4 first colors of the RGB888 vector
+    const __m128i shuffleMask = _mm_set_epi8(0xff, 9, 10, 11, 0xff, 6, 7, 8, 0xff, 3, 4, 5, 0xff, 0, 1, 2);
+
+    // Mask the 4 last colors of a RGB888 vector with an offset of 1 (so the last 3 bytes are RGB)
+    const __m128i shuffleMaskEnd = _mm_set_epi8(0xff, 13, 14, 15, 0xff, 10, 11, 12, 0xff, 7, 8, 9, 0xff, 4, 5, 6);
+
+    // Mask to have alpha = 0xff
+    const __m128i alphaMask = _mm_set1_epi32(0xff000000);
+
+    __m128i *inVectorPtr = (__m128i *)src;
+    __m128i *dstVectorPtr = (__m128i *)dst;
+
+    const int simdRoundCount = (len - prologLength) / 16; // one iteration in the loop converts 16 pixels
+    for (int i = 0; i < simdRoundCount; ++i) {
+        /*
+         RGB888 has 5 pixels per vector, + 1 byte from the next pixel. The idea here is
+         to load vectors of RGB888 and use palignr to select a vector out of two vectors.
+
+         After 3 loads of RGB888 and 3 stores of RGB32, we have 4 pixels left in the last
+         vector of RGB888, we can mask it directly to get a last store or RGB32. After that,
+         the first next byte is a R, and we can loop for the next 16 pixels.
+
+         The conversion itself is done with a byte permutation (pshufb).
+         */
+        __m128i firstSrcVector = _mm_lddqu_si128(inVectorPtr);
+        __m128i outputVector = _mm_shuffle_epi8(firstSrcVector, shuffleMask);
+        _mm_store_si128(dstVectorPtr, _mm_or_si128(outputVector, alphaMask));
+        ++inVectorPtr;
+        ++dstVectorPtr;
+
+        // There are 4 unused bytes left in srcVector, we need to load the next 16 bytes
+        // and load the next input with palignr
+        __m128i secondSrcVector = _mm_lddqu_si128(inVectorPtr);
+        __m128i srcVector = _mm_alignr_epi8(secondSrcVector, firstSrcVector, 12);
+        outputVector = _mm_shuffle_epi8(srcVector, shuffleMask);
+        _mm_store_si128(dstVectorPtr, _mm_or_si128(outputVector, alphaMask));
+        ++inVectorPtr;
+        ++dstVectorPtr;
+        firstSrcVector = secondSrcVector;
+
+        // We now have 8 unused bytes left in firstSrcVector
+        secondSrcVector = _mm_lddqu_si128(inVectorPtr);
+        srcVector = _mm_alignr_epi8(secondSrcVector, firstSrcVector, 8);
+        outputVector = _mm_shuffle_epi8(srcVector, shuffleMask);
+        _mm_store_si128(dstVectorPtr, _mm_or_si128(outputVector, alphaMask));
+        ++inVectorPtr;
+        ++dstVectorPtr;
+
+        // There are now 12 unused bytes in firstSrcVector.
+        // We can mask them directly, almost there.
+        outputVector = _mm_shuffle_epi8(secondSrcVector, shuffleMaskEnd);
+        _mm_store_si128(dstVectorPtr, _mm_or_si128(outputVector, alphaMask));
+        ++dstVectorPtr;
+    }
+    src = (uchar *)inVectorPtr;
+    dst = (quint32 *)dstVectorPtr;
+
+    while (dst != end) {
+        *dst++ = qRgb(src[0], src[1], src[2]);
+        src += 3;
+    }
+}
+
+void convert_RGB888_to_RGB32_ssse3(QImageData *dest, const QImageData *src, Qt::ImageConversionFlags)
+{
+    Q_ASSERT(src->format == QImage::Format_RGB888);
+    Q_ASSERT(dest->format == QImage::Format_RGB32 || dest->format == QImage::Format_ARGB32 || dest->format == QImage::Format_ARGB32_Premultiplied);
+    Q_ASSERT(src->width == dest->width);
+    Q_ASSERT(src->height == dest->height);
+
+    const uchar *src_data = (uchar *) src->data;
+    quint32 *dest_data = (quint32 *) dest->data;
+
+    for (int i = 0; i < src->height; ++i) {
+        qt_convert_rgb888_to_rgb32_ssse3(dest_data, src_data, src->width);
+        src_data += src->bytes_per_line;
+        dest_data = (quint32 *)((uchar*)dest_data + dest->bytes_per_line);
+    }
+}
+
+QT_END_NAMESPACE
+
+#endif // QT_HAVE_SSSE3
--- a/src/gui/image/qjpeghandler.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/image/qjpeghandler.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -45,6 +45,7 @@
 #include <qvariant.h>
 #include <qvector.h>
 #include <qbuffer.h>
+#include <private/qsimd_p.h>
 
 #include <stdio.h>      // jpeglib needs this to be pre-included
 #include <setjmp.h>
@@ -75,6 +76,19 @@
 
 QT_BEGIN_NAMESPACE
 
+void QT_FASTCALL convert_rgb888_to_rgb32_C(quint32 *dst, const uchar *src, int len)
+{
+    // Expand 24->32 bpp.
+    for (int i = 0; i < len; ++i) {
+        *dst++ = qRgb(src[0], src[1], src[2]);
+        src += 3;
+    }
+}
+
+typedef void (QT_FASTCALL *Rgb888ToRgb32Converter)(quint32 *dst, const uchar *src, int len);
+
+static Rgb888ToRgb32Converter rgb888ToRgb32ConverterPtr = convert_rgb888_to_rgb32_C;
+
 struct my_error_mgr : public jpeg_error_mgr {
     jmp_buf setjmp_buffer;
 };
@@ -393,13 +407,9 @@
                     continue;   // Haven't reached the starting line yet.
 
                 if (info->output_components == 3) {
-                    // Expand 24->32 bpp.
                     uchar *in = rows[0] + clip.x() * 3;
                     QRgb *out = (QRgb*)outImage->scanLine(y);
-                    for (int i = 0; i < clip.width(); ++i) {
-                        *out++ = qRgb(in[0], in[1], in[2]);
-                        in += 3;
-                    }
+                    rgb888ToRgb32ConverterPtr(out, in, clip.width());
                 } else if (info->out_color_space == JCS_CMYK) {
                     // Convert CMYK->RGB.
                     uchar *in = rows[0] + clip.x() * 4;
@@ -793,6 +803,22 @@
 QJpegHandler::QJpegHandler()
     : d(new QJpegHandlerPrivate(this))
 {
+    const uint features = qDetectCPUFeatures();
+    Q_UNUSED(features);
+#if defined(QT_HAVE_NEON)
+    // from qimage_neon.cpp
+    Q_GUI_EXPORT void QT_FASTCALL qt_convert_rgb888_to_rgb32_neon(quint32 *dst, const uchar *src, int len);
+
+    if (features & NEON)
+        rgb888ToRgb32ConverterPtr = qt_convert_rgb888_to_rgb32_neon;
+#endif // QT_HAVE_NEON
+#if defined(QT_HAVE_SSSE3)
+    // from qimage_ssse3.cpp
+    Q_GUI_EXPORT void QT_FASTCALL qt_convert_rgb888_to_rgb32_ssse3(quint32 *dst, const uchar *src, int len);
+
+    if (features & SSSE3)
+        rgb888ToRgb32ConverterPtr = qt_convert_rgb888_to_rgb32_ssse3;
+#endif // QT_HAVE_SSSE3
 }
 
 QJpegHandler::~QJpegHandler()
--- a/src/gui/image/qpixmap.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/image/qpixmap.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -830,15 +830,17 @@
         return false;
 
     QFileInfo info(fileName);
-    if (!info.exists())
-        return false;
-
     QString key = QLatin1Literal("qt_pixmap")
                   % info.absoluteFilePath()
                   % HexString<uint>(info.lastModified().toTime_t())
                   % HexString<quint64>(info.size())
                   % HexString<uint>(data ? data->pixelType() : QPixmapData::PixmapType);
 
+    // Note: If no extension is provided, we try to match the 
+    // file against known plugin extensions
+    if (!info.completeSuffix().isEmpty() && !info.exists())
+        return false;
+
     if (QPixmapCache::find(key, *this))
         return true;
 
--- a/src/gui/image/qpixmap_s60.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/image/qpixmap_s60.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -63,6 +63,42 @@
 const uchar qt_pixmap_bit_mask[] = { 0x01, 0x02, 0x04, 0x08,
                                      0x10, 0x20, 0x40, 0x80 };
 
+static bool cleanup_function_registered = false;
+static QS60PixmapData *firstPixmap = 0;
+
+void qt_symbian_register_pixmap(QS60PixmapData *pd)
+{
+    if(!cleanup_function_registered) {
+        qAddPostRoutine(qt_symbian_release_pixmaps);
+        cleanup_function_registered = true;
+    }
+
+    pd->next = firstPixmap;
+    pd->prev = 0;
+    if (firstPixmap)
+        firstPixmap->prev = pd;
+    firstPixmap = pd;
+}
+
+void qt_symbian_unregister_pixmap(QS60PixmapData *pd)
+{
+    if (pd->next)
+        pd->next->prev = pd->prev;
+    if (pd->prev)
+        pd->prev->next = pd->next;
+    else
+        firstPixmap = pd->next;
+}
+
+void qt_symbian_release_pixmaps()
+{
+    // Scan all QS60PixmapData objects in the system and destroy them.
+    QS60PixmapData *pd = firstPixmap;
+    while (pd != 0) {
+        pd->release();
+        pd = pd->next;
+    }
+}
 
 /*
     \class QSymbianFbsClient
@@ -356,15 +392,18 @@
     cfbsBitmap(0),
     pengine(0),
     bytes(0),
-    formatLocked(false)
+    formatLocked(false),
+    next(0),
+    prev(0)
 {
-
+    qt_symbian_register_pixmap(this);
 }
 
 QS60PixmapData::~QS60PixmapData()
 {
     release();
     delete symbianBitmapDataAccess;
+    qt_symbian_unregister_pixmap(this);
 }
 
 void QS60PixmapData::resize(int width, int height)
--- a/src/gui/image/qpixmap_s60_p.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/image/qpixmap_s60_p.h	Mon Oct 04 01:19:32 2010 +0300
@@ -63,6 +63,11 @@
 
 class QSymbianBitmapDataAccess;
 
+class QS60PixmapData;
+void qt_symbian_register_pixmap(QS60PixmapData *pd);
+void qt_symbian_unregister_pixmap(QS60PixmapData *pd);
+void qt_symbian_release_pixmaps();
+
 class QSymbianFbsHeapLock
 {
 public:
@@ -120,6 +125,13 @@
 
     bool formatLocked;
 
+    QS60PixmapData *next;
+    QS60PixmapData *prev;
+
+    friend void qt_symbian_register_pixmap(QS60PixmapData *pd);
+    friend void qt_symbian_unregister_pixmap(QS60PixmapData *pd);
+    friend void qt_symbian_release_pixmaps();
+
     friend class QPixmap;
     friend class QS60WindowSurface;
     friend class QS60PaintEngine;
--- a/src/gui/image/qpnghandler.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/image/qpnghandler.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -389,7 +389,7 @@
 
     while (num_text--) {
         QString key, value;
-#if defined(PNG_iTXt_SUPPORTED)
+#if defined(PNG_iTXt_SUPPORTED) && !defined(QT_NO_TEXTCODEC)
         if (text_ptr->lang) {
             QTextCodec *codec = QTextCodec::codecForName(text_ptr->lang);
             if (codec) {
--- a/src/gui/inputmethod/qcoefepinputcontext_p.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/inputmethod/qcoefepinputcontext_p.h	Mon Oct 04 01:19:32 2010 +0300
@@ -66,10 +66,10 @@
 
 QT_BEGIN_NAMESPACE
 
-class QCoeFepInputContext : public QInputContext,
-                            public MCoeFepAwareTextEditor,
-                            public MCoeFepAwareTextEditor_Extension1,
-                            public MObjectProvider
+class Q_AUTOTEST_EXPORT QCoeFepInputContext : public QInputContext,
+                                              public MCoeFepAwareTextEditor,
+                                              public MCoeFepAwareTextEditor_Extension1,
+                                              public MObjectProvider
 {
     Q_OBJECT
 
@@ -84,6 +84,7 @@
     void update();
 
     bool filterEvent(const QEvent *event);
+    bool symbianFilterEvent(QWidget *keyWidget, const QSymbianEvent *event);
     void mouseHandler( int x, QMouseEvent *event);
     bool isComposing() const { return !m_preeditString.isEmpty(); }
 
@@ -151,9 +152,10 @@
     int m_inlinePosition;
     MFepInlineTextFormatRetriever *m_formatRetriever;
     MFepPointerEventHandlerDuringInlineEdit *m_pointerHandler;
-    int m_cursorPos;
     QBasicTimer m_tempPreeditStringTimeout;
     bool m_hasTempPreeditString;
+
+    friend class tst_QInputContext;
 };
 
 QT_END_NAMESPACE
--- a/src/gui/inputmethod/qcoefepinputcontext_s60.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/inputmethod/qcoefepinputcontext_s60.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -47,6 +47,7 @@
 #include <qgraphicsview.h>
 #include <qgraphicsscene.h>
 #include <qgraphicswidget.h>
+#include <qsymbianevent.h>
 #include <private/qcore_symbian_p.h>
 
 #include <fepitfr.h>
@@ -79,7 +80,6 @@
       m_inlinePosition(0),
       m_formatRetriever(0),
       m_pointerHandler(0),
-      m_cursorPos(0),
       m_hasTempPreeditString(false)
 {
     m_fepState->SetObjectProvider(this);
@@ -237,11 +237,17 @@
             break;
         }
 
+        QString widgetText = focusWidget()->inputMethodQuery(Qt::ImSurroundingText).toString();
+        int maxLength = focusWidget()->inputMethodQuery(Qt::ImMaximumTextLength).toInt();
+        if (!keyEvent->text().isEmpty() && widgetText.size() + m_preeditString.size() >= maxLength) {
+            // Don't send key events with string content if the widget is "full".
+            return true;
+        }
+
         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_cursorPos = focusWidget()->inputMethodQuery(Qt::ImCursorPosition).toInt();
             m_preeditString = keyEvent->text();
             QList<QInputMethodEvent::Attribute> attributes;
             QInputMethodEvent imEvent(m_preeditString, attributes);
@@ -282,6 +288,18 @@
     return false;
 }
 
+bool QCoeFepInputContext::symbianFilterEvent(QWidget *keyWidget, const QSymbianEvent *event)
+{
+    Q_UNUSED(keyWidget);
+    if (event->type() == QSymbianEvent::CommandEvent)
+        // A command basically means the same as a button being pushed. With Qt buttons
+        // that would normally result in a reset of the input method due to the focus change.
+        // This should also happen for commands.
+        reset();
+
+    return false;
+}
+
 void QCoeFepInputContext::timerEvent(QTimerEvent *timerEvent)
 {
     if (timerEvent->timerId() == m_tempPreeditStringTimeout.timerId())
@@ -297,10 +315,6 @@
         return;
 
     commitCurrentString(false);
-
-    //update cursor position, now this pre-edit text has been committed.
-    //this prevents next keypress overwriting it (QTBUG-11673)
-    m_cursorPos = focusWidget()->inputMethodQuery(Qt::ImCursorPosition).toInt();
 }
 
 void QCoeFepInputContext::mouseHandler( int x, QMouseEvent *event)
@@ -364,10 +378,10 @@
 
     commitTemporaryPreeditString();
 
-    bool numbersOnly = hints & ImhDigitsOnly || hints & ImhFormattedNumbersOnly
-            || hints & ImhDialableCharactersOnly;
-    bool noOnlys = !(numbersOnly || hints & ImhUppercaseOnly
-            || hints & ImhLowercaseOnly);
+    const bool anynumbermodes = hints & (ImhDigitsOnly | ImhFormattedNumbersOnly | ImhDialableCharactersOnly);
+    const bool anytextmodes = hints & (ImhUppercaseOnly | ImhLowercaseOnly | ImhEmailCharactersOnly | ImhUrlCharactersOnly);
+    const bool numbersOnly = anynumbermodes && !anytextmodes;
+    const bool noOnlys = !(hints & ImhExclusiveInputMask);
     TInt flags;
     Qt::InputMethodHints oldHints = hints;
 
@@ -379,8 +393,7 @@
     }
     if (!noOnlys) {
         // Make sure that the preference is within the permitted set.
-        if (hints & ImhPreferNumbers && !(hints & ImhDigitsOnly || hints & ImhFormattedNumbersOnly
-                || hints & ImhDialableCharactersOnly)) {
+        if (hints & ImhPreferNumbers && !anynumbermodes) {
             hints &= ~ImhPreferNumbers;
         } else if (hints & ImhPreferUppercase && !(hints & ImhUppercaseOnly)) {
             hints &= ~ImhPreferUppercase;
@@ -393,8 +406,7 @@
                 hints |= ImhPreferLowercase;
             } else if (hints & ImhUppercaseOnly) {
                 hints |= ImhPreferUppercase;
-            } else if (hints & ImhDigitsOnly || hints & ImhFormattedNumbersOnly
-                    || hints & ImhDialableCharactersOnly) {
+            } else if (numbersOnly) {
                 hints |= ImhPreferNumbers;
             }
         }
@@ -408,13 +420,21 @@
         m_fepState->SetCurrentInputMode(EAknEditorTextInputMode);
     }
     flags = 0;
-    if (numbersOnly) {
+    if (noOnlys || (anynumbermodes && anytextmodes)) {
+        flags = EAknEditorAllInputModes;
+    }
+    else if (anynumbermodes) {
         flags |= EAknEditorNumericInputMode;
+        if (QSysInfo::s60Version() > QSysInfo::SV_S60_5_0
+            && ((hints & ImhFormattedNumbersOnly) || (hints & ImhDialableCharactersOnly))) {
+            //workaround - the * key does not launch the symbols menu, making it impossible to use these modes unless text mode is enabled.
+            flags |= EAknEditorTextInputMode;
+        }
     }
-    if (hints & ImhUppercaseOnly || hints & ImhLowercaseOnly) {
+    else if (anytextmodes) {
         flags |= EAknEditorTextInputMode;
     }
-    if (flags == 0) {
+    else {
         flags = EAknEditorAllInputModes;
     }
     m_fepState->SetPermittedInputModes(flags);
@@ -461,24 +481,33 @@
     if (hints & ImhNoPredictiveText || hints & ImhHiddenText) {
         flags |= EAknEditorFlagNoT9;
     }
+    // if alphanumeric input, or if multiple incompatible number modes are selected;
+    // then make all symbols available in numeric mode too.
+    if (!numbersOnly || ((hints & ImhFormattedNumbersOnly) && (hints & ImhDialableCharactersOnly)))
+        flags |= EAknEditorFlagUseSCTNumericCharmap;
     m_fepState->SetFlags(flags);
     ReportAknEdStateEvent(MAknEdStateObserver::EAknEdwinStateFlagsUpdate);
 
-    if (hints & ImhFormattedNumbersOnly) {
+    if (hints & ImhDialableCharactersOnly) {
+        // This is first, because if (ImhDialableCharactersOnly | ImhFormattedNumbersOnly)
+        // is specified, this one is more natural (# key enters a #)
+        flags = EAknEditorStandardNumberModeKeymap;
+    } else if (hints & ImhFormattedNumbersOnly) {
+        // # key enters decimal point
         flags = EAknEditorCalculatorNumberModeKeymap;
     } else if (hints & ImhDigitsOnly) {
+        // This is last, because it is most restrictive (# key is inactive)
         flags = EAknEditorPlainNumberModeKeymap;
     } else {
-        // ImhDialableCharactersOnly is the fallback as well, so we don't need to check for
-        // that flag.
         flags = EAknEditorStandardNumberModeKeymap;
     }
     m_fepState->SetNumericKeymap(static_cast<TAknEditorNumericKeymap>(flags));
 
-    if (hints & ImhEmailCharactersOnly) {
+    if (hints & ImhUrlCharactersOnly) {
+        // URL characters is everything except space, so a superset of the other restrictions
+        m_fepState->SetSpecialCharacterTableResourceId(R_AVKON_URL_SPECIAL_CHARACTER_TABLE_DIALOG);
+    } else if (hints & ImhEmailCharactersOnly) {
         m_fepState->SetSpecialCharacterTableResourceId(R_AVKON_EMAIL_ADDR_SPECIAL_CHARACTER_TABLE_DIALOG);
-    } else if (hints & ImhUrlCharactersOnly) {
-        m_fepState->SetSpecialCharacterTableResourceId(R_AVKON_URL_SPECIAL_CHARACTER_TABLE_DIALOG);
     } else {
         m_fepState->SetSpecialCharacterTableResourceId(R_AVKON_SPECIAL_CHARACTER_TABLE_DIALOG);
     }
@@ -581,8 +610,6 @@
 
     commitTemporaryPreeditString();
 
-    m_cursorPos = w->inputMethodQuery(Qt::ImCursorPosition).toInt();
-    
     QList<QInputMethodEvent::Attribute> attributes;
 
     m_cursorVisibility = aCursorVisibility ? 1 : 0;
@@ -597,9 +624,10 @@
     // Let's remove the selected text if aInitialInlineText is empty and there is selected text
     if (m_preeditString.isEmpty()) {
         int anchor = w->inputMethodQuery(Qt::ImAnchorPosition).toInt();
-        int replacementLength = qAbs(m_cursorPos-anchor);
+        int cursorPos = w->inputMethodQuery(Qt::ImCursorPosition).toInt();
+        int replacementLength = qAbs(cursorPos-anchor);
         if (replacementLength > 0) {
-            int replacementStart = m_cursorPos < anchor ? 0 : -replacementLength;
+            int replacementStart = cursorPos < anchor ? 0 : -replacementLength;
             QList<QInputMethodEvent::Attribute> clearSelectionAttributes;
             QInputMethodEvent clearSelectionEvent(QLatin1String(""), clearSelectionAttributes);
             clearSelectionEvent.setCommitString(QLatin1String(""), replacementStart, replacementLength);
@@ -632,8 +660,13 @@
                                                    m_inlinePosition,
                                                    m_cursorVisibility,
                                                    QVariant()));
-    m_preeditString = qt_TDesC2QString(aNewInlineText);
-    QInputMethodEvent event(m_preeditString, attributes);
+    QString newPreeditString = qt_TDesC2QString(aNewInlineText);
+    QInputMethodEvent event(newPreeditString, attributes);
+    if (newPreeditString.isEmpty() && m_preeditString.isEmpty()) {
+        // In Symbian world this means "erase last character".
+        event.setCommitString(QLatin1String(""), -1, 1);
+    }
+    m_preeditString = newPreeditString;
     sendEvent(event);
 }
 
@@ -803,25 +836,13 @@
 
 void QCoeFepInputContext::commitCurrentString(bool cancelFepTransaction)
 {
-    int longPress = 0;
-
-    if (m_preeditString.size() == 0) {
-        QWidget *w = focusWidget();
-        if (!cancelFepTransaction && w) {
-            // We must replace the last character only if the input box has already accepted one 
-            if (w->inputMethodQuery(Qt::ImCursorPosition).toInt() != m_cursorPos)
-                longPress = 1;
-        }
-    }
-
     QList<QInputMethodEvent::Attribute> attributes;
     QInputMethodEvent event(QLatin1String(""), attributes);
-    event.setCommitString(m_preeditString, 0-longPress, longPress);
+    event.setCommitString(m_preeditString, 0, 0);
     m_preeditString.clear();
     sendEvent(event);
 
     m_hasTempPreeditString = false;
-    longPress = 0;
 
     if (cancelFepTransaction) {
         CCoeFep* fep = CCoeEnv::Static()->Fep();
--- a/src/gui/itemviews/qabstractitemview.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/itemviews/qabstractitemview.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -2270,9 +2270,11 @@
             } else {
                 d->selectionModel->setCurrentIndex(newCurrent, command);
                 d->pressedPosition = visualRect(newCurrent).center() + d->offset();
-                // We copy the same behaviour as for mousePressEvent().
-                QRect rect(d->pressedPosition - d->offset(), QSize(1, 1));
-                setSelection(rect, command);
+                if (newCurrent.isValid()) {
+                    // We copy the same behaviour as for mousePressEvent().
+                    QRect rect(d->pressedPosition - d->offset(), QSize(1, 1));
+                    setSelection(rect, command);
+                }
             }
             event->accept();
             return;
--- a/src/gui/itemviews/qlistview.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/itemviews/qlistview.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -2782,7 +2782,10 @@
         y = info.bounds.y() + info.spacing;
         items.reserve(rowCount() - hiddenCount());
     } else {
-        const QListViewItem item = items.at(info.first - 1);
+        int idx = info.first - 1;
+        while (idx > 0 && !items.at(idx).isValid())
+            --idx;
+        const QListViewItem &item = items.at(idx);
         x = item.x;
         y = item.y;
         if (info.flow == QListView::LeftToRight)
@@ -2913,6 +2916,8 @@
         else
             contentsSize.rwidth() += info.spacing;
     }
+    if (rect.size().isEmpty())
+        return;
     // resize tree
     int insertFrom = info.first;
     if (done || info.first == 0) {
--- a/src/gui/itemviews/qsortfilterproxymodel.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/itemviews/qsortfilterproxymodel.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -774,7 +774,7 @@
     if (model->rowCount(source_parent) == delta_item_count) {
         // Items were inserted where there were none before.
         // If it was new rows make sure to create mappings for columns so that a
-        // valid mapping can be retreived later and vice-versa.
+        // valid mapping can be retrieved later and vice-versa.
 
         QVector<int> &orthogonal_proxy_to_source = (orient == Qt::Horizontal) ? m->source_rows : m->source_columns;
         QVector<int> &orthogonal_source_to_proxy = (orient == Qt::Horizontal) ? m->proxy_rows : m->proxy_columns;
--- a/src/gui/kernel/qaction_p.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/kernel/qaction_p.h	Mon Oct 04 01:19:32 2010 +0300
@@ -112,11 +112,11 @@
     //for soft keys management
     uint forceEnabledInSoftkeys : 1;
     uint menuActionSoftkeys : 1;
+    int iconVisibleInMenu : 3;  // Only has values -1, 0, and 1
 
-    QAction::MenuRole menuRole : 3;
-    QAction::SoftKeyRole softKeyRole : 2;
-    QAction::Priority priority : 14;
-    int iconVisibleInMenu : 3;  // Only has values -1, 0, and 1
+    QAction::MenuRole menuRole;
+    QAction::SoftKeyRole softKeyRole;
+    QAction::Priority priority;
 
     QList<QWidget *> widgets;
 #ifndef QT_NO_GRAPHICSVIEW
--- a/src/gui/kernel/qapplication.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/kernel/qapplication.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -474,7 +474,7 @@
 static int drag_time = 500;
 #ifdef Q_OS_SYMBIAN
 // The screens are a bit too small to for your thumb when using only 4 pixels drag distance.
-static int drag_distance = 8;
+static int drag_distance = 12;
 #else
 static int drag_distance = 4;
 #endif
@@ -1055,6 +1055,18 @@
     QApplicationPrivate::is_app_closing = true;
     QApplicationPrivate::is_app_running = false;
 
+    // delete all widgets
+    if (QWidgetPrivate::allWidgets) {
+        QWidgetSet *mySet = QWidgetPrivate::allWidgets;
+        QWidgetPrivate::allWidgets = 0;
+        for (QWidgetSet::ConstIterator it = mySet->constBegin(); it != mySet->constEnd(); ++it) {
+            register QWidget *w = *it;
+            if (!w->parent())                        // window
+                w->destroy(true, true);
+        }
+        delete mySet;
+    }
+
     delete qt_desktopWidget;
     qt_desktopWidget = 0;
 
@@ -1075,18 +1087,6 @@
     delete QWidgetPrivate::mapper;
     QWidgetPrivate::mapper = 0;
 
-    // delete all widgets
-    if (QWidgetPrivate::allWidgets) {
-        QWidgetSet *mySet = QWidgetPrivate::allWidgets;
-        QWidgetPrivate::allWidgets = 0;
-        for (QWidgetSet::ConstIterator it = mySet->constBegin(); it != mySet->constEnd(); ++it) {
-            register QWidget *w = *it;
-            if (!w->parent())                        // window
-                w->destroy(true, true);
-        }
-        delete mySet;
-    }
-
     delete QApplicationPrivate::app_pal;
     QApplicationPrivate::app_pal = 0;
     delete QApplicationPrivate::sys_pal;
@@ -2540,6 +2540,13 @@
         sendSpontaneousEvent(w, &activationChange);
     }
 
+#ifdef QT_MAC_USE_COCOA
+    // In case the user clicked on a child window, we need to
+    // reestablish the stacking order of the window so
+    // it pops in front of other child windows in cocoa:
+    qt_cocoaStackChildWindowOnTopOfOtherChildren(window);
+#endif
+
     for(int i = 0; i < toBeDeactivated.size(); ++i) {
         QWidget *w = toBeDeactivated.at(i);
         sendSpontaneousEvent(w, &windowDeactivate);
@@ -5791,10 +5798,12 @@
 #ifndef QT_NO_GESTURES
 QGestureManager* QGestureManager::instance()
 {
-    QApplicationPrivate *qAppPriv = QApplicationPrivate::instance();
-    if (!qAppPriv->gestureManager)
-        qAppPriv->gestureManager = new QGestureManager(qApp);
-    return qAppPriv->gestureManager;
+    if (QApplicationPrivate *qAppPriv = QApplicationPrivate::instance()) {
+        if (!qAppPriv->gestureManager)
+            qAppPriv->gestureManager = new QGestureManager(qApp);
+        return qAppPriv->gestureManager;
+    }
+    return 0;
 }
 #endif // QT_NO_GESTURES
 
--- a/src/gui/kernel/qapplication.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/kernel/qapplication.h	Mon Oct 04 01:19:32 2010 +0300
@@ -412,6 +412,9 @@
 #if defined(QT_RX71_MULTITOUCH)
     Q_PRIVATE_SLOT(d_func(), void _q_readRX71MultiTouchEvents())
 #endif
+#if defined(Q_OS_SYMBIAN)
+    Q_PRIVATE_SLOT(d_func(), void _q_aboutToQuit())
+#endif
 };
 
 QT_END_NAMESPACE
--- a/src/gui/kernel/qapplication_mac.mm	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/kernel/qapplication_mac.mm	Mon Oct 04 01:19:32 2010 +0300
@@ -737,9 +737,6 @@
 */
 static void qt_mac_update_child_gl_widgets(QWidget *widget)
 {
-    if (widget->isWindow())
-        return;
-
     // Update all OpenGL child widgets for the given widget.
     QList<QWidgetPrivate::GlWidgetInfo> &glWidgets = qt_widget_private(widget)->glWidgets;
     QList<QWidgetPrivate::GlWidgetInfo>::iterator end = glWidgets.end();
--- a/src/gui/kernel/qapplication_p.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/kernel/qapplication_p.h	Mon Oct 04 01:19:32 2010 +0300
@@ -519,6 +519,7 @@
     int symbianHandleCommand(const QSymbianEvent *symbianEvent);
     int symbianResourceChange(const QSymbianEvent *symbianEvent);
 
+    void _q_aboutToQuit();
 #endif
 #if defined(Q_WS_WIN) || defined(Q_WS_X11) || defined (Q_WS_QWS) || defined(Q_WS_MAC)
     void sendSyntheticEnterLeave(QWidget *widget);
@@ -603,7 +604,7 @@
 #endif
 
 #ifdef Q_OS_SYMBIAN
-    static QHash<TInt, TUint> scanCodeCache;
+    QHash<TInt, TUint> scanCodeCache;
 #endif
 
     static QApplicationPrivate *self;
--- a/src/gui/kernel/qapplication_s60.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/kernel/qapplication_s60.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -87,6 +87,10 @@
 #include <hal.h>
 #include <hal_data.h>
 
+#ifdef SYMBIAN_GRAPHICS_WSERV_QT_EFFECTS
+#include <graphics/wstfxconst.h>
+#endif
+
 QT_BEGIN_NAMESPACE
 
 // Goom Events through Window Server
@@ -112,6 +116,63 @@
     return qt_s60Data();
 }
 
+#ifdef Q_WS_S60
+void QS60Data::setStatusPaneAndButtonGroupVisibility(bool statusPaneVisible, bool buttonGroupVisible)
+{
+    bool buttonGroupVisibilityChanged = false;
+    if (CEikButtonGroupContainer *const b = buttonGroupContainer()) {
+        buttonGroupVisibilityChanged = (b->IsVisible() != buttonGroupVisible);
+        b->MakeVisible(buttonGroupVisible);
+    }
+    bool statusPaneVisibilityChanged = false;
+    if (CEikStatusPane *const s = statusPane()) {
+        statusPaneVisibilityChanged = (s->IsVisible() != statusPaneVisible);
+        s->MakeVisible(statusPaneVisible);
+    }
+    if (buttonGroupVisibilityChanged  || statusPaneVisibilityChanged) {
+        const QSize size = qt_TRect2QRect(static_cast<CEikAppUi*>(S60->appUi())->ClientRect()).size();
+        const QSize oldSize; // note that QDesktopWidget::resizeEvent ignores the QResizeEvent contents
+        QResizeEvent event(size, oldSize);
+        QApplication::instance()->sendEvent(QApplication::desktop(), &event);
+    }
+    if (buttonGroupVisibilityChanged  && !statusPaneVisibilityChanged && QApplication::activeWindow())
+        // Ensure that control rectangle is updated
+        static_cast<QSymbianControl *>(QApplication::activeWindow()->winId())->handleClientAreaChange();
+}
+#endif
+
+void QS60Data::controlVisibilityChanged(CCoeControl *control, bool visible)
+{
+    if (QWidgetPrivate::mapper && QWidgetPrivate::mapper->contains(control)) {
+        QWidget *const widget = QWidgetPrivate::mapper->value(control);
+        QWidget *const window = widget->window();
+        if (QTLWExtra *topData = qt_widget_private(window)->maybeTopData()) {
+            QWidgetBackingStoreTracker &backingStore = topData->backingStore;
+            if (visible) {
+                if (backingStore.data()) {
+                    backingStore.registerWidget(widget);
+                } else {
+#ifdef SYMBIAN_GRAPHICS_WSERV_QT_EFFECTS
+                    S60->wsSession().SendEffectCommand(ETfxCmdRestoreLayer);
+#endif
+                    backingStore.create(window);
+                    backingStore.registerWidget(widget);
+                    qt_widget_private(widget)->invalidateBuffer(widget->rect());
+                    widget->repaint();
+                }
+            } else {
+#ifdef  SYMBIAN_GRAPHICS_WSERV_QT_EFFECTS
+                S60->wsSession().SendEffectCommand(ETfxCmdDeallocateLayer);
+#endif
+                backingStore.unregisterWidget(widget);
+                // In order to ensure that any resources used by the window surface
+                // are immediately freed, we flush the WSERV command buffer.
+                S60->wsSession().Flush();
+            }
+        }
+    }
+}
+
 bool qt_nograb()                                // application no-grab option
 {
 #if defined(QT_DEBUG)
@@ -207,8 +268,6 @@
 }
 
 
-QHash<TInt, TUint> QApplicationPrivate::scanCodeCache;
-
 static Qt::KeyboardModifiers mapToQtModifiers(TUint s60Modifiers)
 {
     Qt::KeyboardModifiers result = Qt::NoModifier;
@@ -355,7 +414,7 @@
 {
     if (!desktop)
     {
-        if (isWindowOwning or !qwidget->parentWidget())
+        if (isWindowOwning || !qwidget->parentWidget())
             CreateWindowL(S60->windowGroup());
         else
             /**
@@ -378,10 +437,42 @@
 
         DrawableWindow()->SetPointerGrab(ETrue);
     }
+
+#ifdef SYMBIAN_GRAPHICS_WSERV_QT_EFFECTS
+    if (OwnsWindow()) {
+        TTfxWindowPurpose windowPurpose(ETfxPurposeNone);
+        switch (qwidget->windowType()) {
+        case Qt::Dialog:
+            windowPurpose = ETfxPurposeDialogWindow;
+            break;
+        case Qt::Popup:
+            windowPurpose = ETfxPurposePopupWindow;
+            break;
+        case Qt::Tool:
+            windowPurpose = ETfxPurposeToolWindow;
+            break;
+        case Qt::ToolTip:
+            windowPurpose = ETfxPurposeToolTipWindow;
+            break;
+        case Qt::SplashScreen:
+            windowPurpose = ETfxPurposeSplashScreenWindow;
+            break;
+        default:
+            windowPurpose = (isWindowOwning || !qwidget->parentWidget())
+                            ? ETfxPurposeWindow : ETfxPurposeChildWindow;
+            break;
+        }
+        Window().SetPurpose(windowPurpose);
+    }
+#endif
 }
 
 QSymbianControl::~QSymbianControl()
 {
+    // Ensure backing store is deleted before the top-level
+    // window is destroyed
+    qt_widget_private(qwidget)->topData()->backingStore.destroy();
+
     if (S60->curWin == this)
         S60->curWin = 0;
     if (!QApplicationPrivate::is_app_closing) {
@@ -621,251 +712,302 @@
 
 TKeyResponse QSymbianControl::OfferKeyEvent(const TKeyEvent& keyEvent, TEventCode type)
 {
-    switch (type) {
-    //case EEventKeyDown: // <-- Intentionally left out. See below.
-    case EEventKeyUp:
-    case EEventKey:
-    {
+    /*
+      S60 has a confusing way of delivering key events. There are three types of
+      events: EEventKey, EEventKeyDown and EEventKeyUp. When a key is pressed,
+      EEventKeyDown is first generated, followed by EEventKey. Then, when the key is
+      released, EEventKeyUp is generated.
+      However, it is possible that only the EEventKey is generated alone, typically
+      in relation to virtual keyboards. In that case we need to take care to
+      generate both press and release events in Qt, since applications expect that.
+      We do this by having three states for each used scan code, depending on the
+      events received. See the switch below for what happens in each state
+      transition.
+    */
+
+    if (type != EEventKeyDown)
+        if (handleVirtualMouse(keyEvent, type) == EKeyWasConsumed)
+            return EKeyWasConsumed;
+
+    TKeyResponse ret = EKeyWasNotConsumed;
+#define GET_RETURN(x) (ret = ((x) == EKeyWasConsumed) ? EKeyWasConsumed : ret)
+
+    // This top level switch corresponds to the states, and the inner switches
+    // correspond to the transitions.
+    QS60Data::ScanCodeState &scanCodeState = S60->scanCodeStates[keyEvent.iScanCode];
+    switch (scanCodeState) {
+    case QS60Data::Unpressed:
+        switch (type) {
+        case EEventKeyDown:
+            scanCodeState = QS60Data::KeyDown;
+            break;
+        case EEventKey:
+            GET_RETURN(sendSymbianKeyEvent(keyEvent, QEvent::KeyPress));
+            GET_RETURN(sendSymbianKeyEvent(keyEvent, QEvent::KeyRelease));
+            break;
+        case EEventKeyUp:
+            // No action.
+            break;
+        }
+        break;
+    case QS60Data::KeyDown:
+        switch (type) {
+        case EEventKeyDown:
+            // This should never happen, just stay in this state to be safe.
+            break;
+        case EEventKey:
+            GET_RETURN(sendSymbianKeyEvent(keyEvent, QEvent::KeyPress));
+            scanCodeState = QS60Data::KeyDownAndKey;
+            break;
+        case EEventKeyUp:
+            scanCodeState = QS60Data::Unpressed;
+            break;
+        }
+        break;
+    case QS60Data::KeyDownAndKey:
+        switch (type) {
+        case EEventKeyDown:
+            // This should never happen, just stay in this state to be safe.
+            break;
+        case EEventKey:
+            GET_RETURN(sendSymbianKeyEvent(keyEvent, QEvent::KeyRelease));
+            GET_RETURN(sendSymbianKeyEvent(keyEvent, QEvent::KeyPress));
+            break;
+        case EEventKeyUp:
+            GET_RETURN(sendSymbianKeyEvent(keyEvent, QEvent::KeyRelease));
+            scanCodeState = QS60Data::Unpressed;
+            break;
+        }
+        break;
+    }
+    return ret;
+
+#undef GET_RETURN
+}
+
+TKeyResponse QSymbianControl::sendSymbianKeyEvent(const TKeyEvent &keyEvent, QEvent::Type type)
+{
+    // Because S60 does not generate keysyms for EKeyEventDown and EKeyEventUp
+    // events, we need to cache the keysyms from the EKeyEvent events. This is what
+    // resolveS60ScanCode does.
+    TUint s60Keysym = QApplicationPrivate::resolveS60ScanCode(keyEvent.iScanCode,
+            keyEvent.iCode);
+    int keyCode;
+    if (s60Keysym == EKeyNull){ //some key events have 0 in iCode, for them iScanCode should be used
+        keyCode = qt_keymapper_private()->mapS60ScanCodesToQt(keyEvent.iScanCode);
+    } else if (s60Keysym >= 0x20 && s60Keysym < ENonCharacterKeyBase) {
+        // Normal characters keys.
+        keyCode = s60Keysym;
+    } else {
+        // Special S60 keys.
+        keyCode = qt_keymapper_private()->mapS60KeyToQt(s60Keysym);
+    }
+
+    Qt::KeyboardModifiers mods = mapToQtModifiers(keyEvent.iModifiers);
+    QKeyEventEx qKeyEvent(type, keyCode, mods, qt_keymapper_private()->translateKeyEvent(keyCode, mods),
+            (keyEvent.iRepeats != 0), 1, keyEvent.iScanCode, s60Keysym, keyEvent.iModifiers);
+    QWidget *widget;
+    widget = QWidget::keyboardGrabber();
+    if (!widget) {
+        if (QApplicationPrivate::popupWidgets != 0) {
+            widget = QApplication::activePopupWidget()->focusWidget();
+            if (!widget) {
+                widget = QApplication::activePopupWidget();
+            }
+        } else {
+            widget = QApplicationPrivate::focus_widget;
+            if (!widget) {
+                widget = qwidget;
+            }
+        }
+    }
+
+    QEventDispatcherS60 *dispatcher;
+    // It is theoretically possible for someone to install a different event dispatcher.
+    if ((dispatcher = qobject_cast<QEventDispatcherS60 *>(widget->d_func()->threadData->eventDispatcher)) != 0) {
+        if (dispatcher->excludeUserInputEvents()) {
+            dispatcher->saveInputEvent(this, widget, new QKeyEventEx(qKeyEvent));
+            return EKeyWasConsumed;
+        }
+    }
+    return sendKeyEvent(widget, &qKeyEvent);
+}
+
+TKeyResponse QSymbianControl::handleVirtualMouse(const TKeyEvent& keyEvent,TEventCode type)
+{
 #ifndef QT_NO_CURSOR
-        if (S60->mouseInteractionEnabled && S60->virtualMouseRequired) {
-            //translate keys to pointer
-            if ((keyEvent.iScanCode >= EStdKeyLeftArrow && keyEvent.iScanCode <= EStdKeyDownArrow) ||
+    if (S60->mouseInteractionEnabled && S60->virtualMouseRequired) {
+        //translate keys to pointer
+        if ((keyEvent.iScanCode >= EStdKeyLeftArrow && keyEvent.iScanCode <= EStdKeyDownArrow) ||
                 (keyEvent.iScanCode >= EStdKeyDevice10 && keyEvent.iScanCode <= EStdKeyDevice13) ||
                 keyEvent.iScanCode == EStdKeyDevice3) {
-                QPoint pos = QCursor::pos();
-                TPointerEvent fakeEvent;
-                fakeEvent.iType = (TPointerEvent::TType)(-1);
-                fakeEvent.iModifiers = keyEvent.iModifiers;
-                TInt x = pos.x();
-                TInt y = pos.y();
-                if (type == EEventKeyUp) {
-                    S60->virtualMouseAccelTimeout.start();
-                    switch (keyEvent.iScanCode) {
-                    case EStdKeyLeftArrow:
-                        S60->virtualMousePressedKeys &= ~QS60Data::Left;
-                        break;
-                    case EStdKeyRightArrow:
-                        S60->virtualMousePressedKeys &= ~QS60Data::Right;
-                        break;
-                    case EStdKeyUpArrow:
-                        S60->virtualMousePressedKeys &= ~QS60Data::Up;
-                        break;
-                    case EStdKeyDownArrow:
-                        S60->virtualMousePressedKeys &= ~QS60Data::Down;
-                        break;
-                    // diagonal keys (named aliases don't exist in 3.1 SDK)
-                    case EStdKeyDevice10:
-                        S60->virtualMousePressedKeys &= ~QS60Data::LeftUp;
-                        break;
-                    case EStdKeyDevice11:
-                        S60->virtualMousePressedKeys &= ~QS60Data::RightUp;
-                        break;
-                    case EStdKeyDevice12:
-                        S60->virtualMousePressedKeys &= ~QS60Data::RightDown;
-                        break;
-                    case EStdKeyDevice13:
-                        S60->virtualMousePressedKeys &= ~QS60Data::LeftDown;
-                        break;
-                    case EStdKeyDevice3: //select
-                        if (S60->virtualMousePressedKeys & QS60Data::Select)
-                            fakeEvent.iType = TPointerEvent::EButton1Up;
-                        S60->virtualMousePressedKeys &= ~QS60Data::Select;
-                        break;
-                    }
-                }
-                else if (type == EEventKey) {
-                    int dx = 0;
-                    int dy = 0;
-                    if (keyEvent.iScanCode != EStdKeyDevice3) {
-                        m_doubleClickTimer.invalidate();
-                        //reset mouse accelleration after a short time with no moves
-                        const int maxTimeBetweenKeyEventsMs = 500;
-                        if (S60->virtualMouseAccelTimeout.isValid() &&
-                            S60->virtualMouseAccelTimeout.hasExpired(maxTimeBetweenKeyEventsMs)) {
-                            S60->virtualMouseAccelDX = 0;
-                            S60->virtualMouseAccelDY = 0;
-                        }
-                        S60->virtualMouseAccelTimeout.invalidate();
-                    }
-                    switch (keyEvent.iScanCode) {
-                    case EStdKeyLeftArrow:
-                        S60->virtualMousePressedKeys |= QS60Data::Left;
-                        dx = -1;
-                        fakeEvent.iType = TPointerEvent::EMove;
-                        break;
-                    case EStdKeyRightArrow:
-                        S60->virtualMousePressedKeys |= QS60Data::Right;
-                        dx = 1;
-                        fakeEvent.iType = TPointerEvent::EMove;
-                        break;
-                    case EStdKeyUpArrow:
-                        S60->virtualMousePressedKeys |= QS60Data::Up;
-                        dy = -1;
-                        fakeEvent.iType = TPointerEvent::EMove;
-                        break;
-                    case EStdKeyDownArrow:
-                        S60->virtualMousePressedKeys |= QS60Data::Down;
-                        dy = 1;
-                        fakeEvent.iType = TPointerEvent::EMove;
-                        break;
-                    case EStdKeyDevice10:
-                        S60->virtualMousePressedKeys |= QS60Data::LeftUp;
-                        dx = -1;
-                        dy = -1;
-                        fakeEvent.iType = TPointerEvent::EMove;
-                        break;
-                    case EStdKeyDevice11:
-                        S60->virtualMousePressedKeys |= QS60Data::RightUp;
-                        dx = 1;
-                        dy = -1;
-                        fakeEvent.iType = TPointerEvent::EMove;
-                        break;
-                    case EStdKeyDevice12:
-                        S60->virtualMousePressedKeys |= QS60Data::RightDown;
-                        dx = 1;
-                        dy = 1;
-                        fakeEvent.iType = TPointerEvent::EMove;
-                        break;
-                    case EStdKeyDevice13:
-                        S60->virtualMousePressedKeys |= QS60Data::LeftDown;
-                        dx = -1;
-                        dy = 1;
-                        fakeEvent.iType = TPointerEvent::EMove;
-                        break;
-                    case EStdKeyDevice3:
-                        // Platform bug. If you start pressing several keys simultaneously (for
-                        // example for drag'n'drop), Symbian starts producing spurious up and
-                        // down messages for some keys. Therefore, make sure we have a clean slate
-                        // of pressed keys before starting a new button press.
-                        if (S60->virtualMousePressedKeys & QS60Data::Select) {
-                            return EKeyWasConsumed;
-                        } else {
-                            S60->virtualMousePressedKeys |= QS60Data::Select;
-                            fakeEvent.iType = TPointerEvent::EButton1Down;
-                            if (m_doubleClickTimer.isValid()
-                                && !m_doubleClickTimer.hasExpired(QApplication::doubleClickInterval())) {
-                                fakeEvent.iModifiers |= EModifierDoubleClick;
-                                m_doubleClickTimer.invalidate();
-                            } else {
-                                m_doubleClickTimer.start();
-                            }
-                        }
-                        break;
-                    }
-                    if (dx) {
-                        int cdx = S60->virtualMouseAccelDX;
-                        //reset accel on change of sign, else double accel
-                        if (dx * cdx <= 0)
-                            cdx = dx;
-                        else
-                            cdx *= 4;
-                        //cap accelleration
-                        if (dx * cdx > S60->virtualMouseMaxAccel)
-                            cdx = dx * S60->virtualMouseMaxAccel;
-                        //move mouse position
-                        x += cdx;
-                        S60->virtualMouseAccelDX = cdx;
-                    }
-
-                    if (dy) {
-                        int cdy = S60->virtualMouseAccelDY;
-                        if (dy * cdy <= 0)
-                            cdy = dy;
-                        else
-                            cdy *= 4;
-                        if (dy * cdy > S60->virtualMouseMaxAccel)
-                            cdy = dy * S60->virtualMouseMaxAccel;
-                        y += cdy;
-                        S60->virtualMouseAccelDY = cdy;
-                    }
-                }
-                //clip to screen size (window server allows a sprite hotspot to be outside the screen)
-                if (x < 0)
-                    x = 0;
-                else if (x >= S60->screenWidthInPixels)
-                    x = S60->screenWidthInPixels - 1;
-                if (y < 0)
-                    y = 0;
-                else if (y >= S60->screenHeightInPixels)
-                    y = S60->screenHeightInPixels - 1;
-                TPoint epos(x, y);
-                TPoint cpos = epos - PositionRelativeToScreen();
-                fakeEvent.iPosition = cpos;
-                fakeEvent.iParentPosition = epos;
-                if(fakeEvent.iType != -1)
-                    HandlePointerEvent(fakeEvent);
-                return EKeyWasConsumed;
-            }
-        }
-#endif
-        // S60 has a confusing way of delivering key events. There are three types of
-        // events: EKeyEvent, EKeyEventDown and EKeyEventUp. When a key is pressed, the
-        // two first events are generated. When releasing the key, the last one is
-        // generated.
-        // Because S60 does not generate keysyms for EKeyEventDown and EKeyEventUp events,
-        // we need to do some special tricks to map it to the Qt way. First, we completely
-        // discard EKeyEventDown events, since they are redundant. Second, since
-        // EKeyEventUp does not give us a keysym, we need to cache the keysyms from
-        // the EKeyEvent events. This is what resolveS60ScanCode does.
-
-
-        // ### hackish way to send Qt application to background when pressing right softkey
-        /*
-        if( keyEvent.iScanCode == EStdKeyDevice1 ) {
-            S60->window_group->SetOrdinalPosition(-1);
-            qApp->setActiveWindow(0);
-            return EKeyWasNotConsumed;
-        }
-        */
-
-        TUint s60Keysym = QApplicationPrivate::resolveS60ScanCode(keyEvent.iScanCode,
-                keyEvent.iCode);
-        int keyCode;
-        if (s60Keysym == EKeyNull){ //some key events have 0 in iCode, for them iScanCode should be used
-            keyCode = qt_keymapper_private()->mapS60ScanCodesToQt(keyEvent.iScanCode);
-        } else if (s60Keysym >= 0x20 && s60Keysym < ENonCharacterKeyBase) {
-            // Normal characters keys.
-            keyCode = s60Keysym;
-        } else {
-            // Special S60 keys.
-            keyCode = qt_keymapper_private()->mapS60KeyToQt(s60Keysym);
-        }
-
-        Qt::KeyboardModifiers mods = mapToQtModifiers(keyEvent.iModifiers);
-        QKeyEventEx qKeyEvent(type == EEventKeyUp ? QEvent::KeyRelease : QEvent::KeyPress, keyCode,
-                mods, qt_keymapper_private()->translateKeyEvent(keyCode, mods),
-                (keyEvent.iRepeats != 0), 1, keyEvent.iScanCode, s60Keysym, keyEvent.iModifiers);
-//        WId wid = reinterpret_cast<RWindowGroup *>(keyEvent.Handle())->Child();
-//        if (!wid)
-//             Could happen if window isn't shown yet.
-//            return EKeyWasNotConsumed;
-        QWidget *widget;
-        widget = QWidget::keyboardGrabber();
-        if (!widget) {
-            if (QApplicationPrivate::popupWidgets != 0) {
-                widget = QApplication::activePopupWidget()->focusWidget();
-                if (!widget) {
-                    widget = QApplication::activePopupWidget();
-                }
-            } else {
-                widget = QApplicationPrivate::focus_widget;
-                if (!widget) {
-                    widget = qwidget;
+            QPoint pos = QCursor::pos();
+            TPointerEvent fakeEvent;
+            fakeEvent.iType = (TPointerEvent::TType)(-1);
+            fakeEvent.iModifiers = keyEvent.iModifiers;
+            TInt x = pos.x();
+            TInt y = pos.y();
+            if (type == EEventKeyUp) {
+                S60->virtualMouseAccelTimeout.start();
+                switch (keyEvent.iScanCode) {
+                case EStdKeyLeftArrow:
+                    S60->virtualMousePressedKeys &= ~QS60Data::Left;
+                    break;
+                case EStdKeyRightArrow:
+                    S60->virtualMousePressedKeys &= ~QS60Data::Right;
+                    break;
+                case EStdKeyUpArrow:
+                    S60->virtualMousePressedKeys &= ~QS60Data::Up;
+                    break;
+                case EStdKeyDownArrow:
+                    S60->virtualMousePressedKeys &= ~QS60Data::Down;
+                    break;
+                // diagonal keys (named aliases don't exist in 3.1 SDK)
+                case EStdKeyDevice10:
+                    S60->virtualMousePressedKeys &= ~QS60Data::LeftUp;
+                    break;
+                case EStdKeyDevice11:
+                    S60->virtualMousePressedKeys &= ~QS60Data::RightUp;
+                    break;
+                case EStdKeyDevice12:
+                    S60->virtualMousePressedKeys &= ~QS60Data::RightDown;
+                    break;
+                case EStdKeyDevice13:
+                    S60->virtualMousePressedKeys &= ~QS60Data::LeftDown;
+                    break;
+                case EStdKeyDevice3: //select
+                    if (S60->virtualMousePressedKeys & QS60Data::Select)
+                        fakeEvent.iType = TPointerEvent::EButton1Up;
+                    S60->virtualMousePressedKeys &= ~QS60Data::Select;
+                    break;
                 }
             }
-        }
+            else if (type == EEventKey) {
+                int dx = 0;
+                int dy = 0;
+                if (keyEvent.iScanCode != EStdKeyDevice3) {
+                    m_doubleClickTimer.invalidate();
+                    //reset mouse accelleration after a short time with no moves
+                    const int maxTimeBetweenKeyEventsMs = 500;
+                    if (S60->virtualMouseAccelTimeout.isValid() &&
+                            S60->virtualMouseAccelTimeout.hasExpired(maxTimeBetweenKeyEventsMs)) {
+                        S60->virtualMouseAccelDX = 0;
+                        S60->virtualMouseAccelDY = 0;
+                    }
+                    S60->virtualMouseAccelTimeout.invalidate();
+                }
+                switch (keyEvent.iScanCode) {
+                case EStdKeyLeftArrow:
+                    S60->virtualMousePressedKeys |= QS60Data::Left;
+                    dx = -1;
+                    fakeEvent.iType = TPointerEvent::EMove;
+                    break;
+                case EStdKeyRightArrow:
+                    S60->virtualMousePressedKeys |= QS60Data::Right;
+                    dx = 1;
+                    fakeEvent.iType = TPointerEvent::EMove;
+                    break;
+                case EStdKeyUpArrow:
+                    S60->virtualMousePressedKeys |= QS60Data::Up;
+                    dy = -1;
+                    fakeEvent.iType = TPointerEvent::EMove;
+                    break;
+                case EStdKeyDownArrow:
+                    S60->virtualMousePressedKeys |= QS60Data::Down;
+                    dy = 1;
+                    fakeEvent.iType = TPointerEvent::EMove;
+                    break;
+                case EStdKeyDevice10:
+                    S60->virtualMousePressedKeys |= QS60Data::LeftUp;
+                    dx = -1;
+                    dy = -1;
+                    fakeEvent.iType = TPointerEvent::EMove;
+                    break;
+                case EStdKeyDevice11:
+                    S60->virtualMousePressedKeys |= QS60Data::RightUp;
+                    dx = 1;
+                    dy = -1;
+                    fakeEvent.iType = TPointerEvent::EMove;
+                    break;
+                case EStdKeyDevice12:
+                    S60->virtualMousePressedKeys |= QS60Data::RightDown;
+                    dx = 1;
+                    dy = 1;
+                    fakeEvent.iType = TPointerEvent::EMove;
+                    break;
+                case EStdKeyDevice13:
+                    S60->virtualMousePressedKeys |= QS60Data::LeftDown;
+                    dx = -1;
+                    dy = 1;
+                    fakeEvent.iType = TPointerEvent::EMove;
+                    break;
+                case EStdKeyDevice3:
+                    // Platform bug. If you start pressing several keys simultaneously (for
+                    // example for drag'n'drop), Symbian starts producing spurious up and
+                    // down messages for some keys. Therefore, make sure we have a clean slate
+                    // of pressed keys before starting a new button press.
+                    if (S60->virtualMousePressedKeys & QS60Data::Select) {
+                        return EKeyWasConsumed;
+                    } else {
+                        S60->virtualMousePressedKeys |= QS60Data::Select;
+                        fakeEvent.iType = TPointerEvent::EButton1Down;
+                        if (m_doubleClickTimer.isValid()
+                                && !m_doubleClickTimer.hasExpired(QApplication::doubleClickInterval())) {
+                            fakeEvent.iModifiers |= EModifierDoubleClick;
+                            m_doubleClickTimer.invalidate();
+                        } else {
+                            m_doubleClickTimer.start();
+                        }
+                    }
+                    break;
+                }
+                if (dx) {
+                    int cdx = S60->virtualMouseAccelDX;
+                    //reset accel on change of sign, else double accel
+                    if (dx * cdx <= 0)
+                        cdx = dx;
+                    else
+                        cdx *= 4;
+                    //cap accelleration
+                    if (dx * cdx > S60->virtualMouseMaxAccel)
+                        cdx = dx * S60->virtualMouseMaxAccel;
+                    //move mouse position
+                    x += cdx;
+                    S60->virtualMouseAccelDX = cdx;
+                }
 
-        QEventDispatcherS60 *dispatcher;
-        // It is theoretically possible for someone to install a different event dispatcher.
-        if ((dispatcher = qobject_cast<QEventDispatcherS60 *>(widget->d_func()->threadData->eventDispatcher)) != 0) {
-            if (dispatcher->excludeUserInputEvents()) {
-                dispatcher->saveInputEvent(this, widget, new QKeyEventEx(qKeyEvent));
-                return EKeyWasConsumed;
+                if (dy) {
+                    int cdy = S60->virtualMouseAccelDY;
+                    if (dy * cdy <= 0)
+                        cdy = dy;
+                    else
+                        cdy *= 4;
+                    if (dy * cdy > S60->virtualMouseMaxAccel)
+                        cdy = dy * S60->virtualMouseMaxAccel;
+                    y += cdy;
+                    S60->virtualMouseAccelDY = cdy;
+                }
             }
+            //clip to screen size (window server allows a sprite hotspot to be outside the screen)
+            if (x < 0)
+                x = 0;
+            else if (x >= S60->screenWidthInPixels)
+                x = S60->screenWidthInPixels - 1;
+            if (y < 0)
+                y = 0;
+            else if (y >= S60->screenHeightInPixels)
+                y = S60->screenHeightInPixels - 1;
+            TPoint epos(x, y);
+            TPoint cpos = epos - PositionRelativeToScreen();
+            fakeEvent.iPosition = cpos;
+            fakeEvent.iParentPosition = epos;
+            if(fakeEvent.iType != -1)
+                HandlePointerEvent(fakeEvent);
+            return EKeyWasConsumed;
         }
-        return sendKeyEvent(widget, &qKeyEvent);
     }
-    }
+#endif
+
     return EKeyWasNotConsumed;
 }
 
@@ -963,7 +1105,7 @@
         if (QApplicationPrivate::runtime_graphics_system) {
             QRuntimeWindowSurface *rtSurface =
                     static_cast<QRuntimeWindowSurface*>(qwidget->windowSurface());
-            s60Surface = static_cast<QS60WindowSurface *>(rtSurface->m_windowSurface);
+            s60Surface = static_cast<QS60WindowSurface *>(rtSurface->m_windowSurface.data());
         } else
 #endif
             s60Surface = static_cast<QS60WindowSurface *>(qwidget->windowSurface());
@@ -971,19 +1113,22 @@
         CFbsBitmap *bitmap = s60Surface->symbianBitmap();
         CWindowGc &gc = SystemGc();
 
-        switch(qwidget->d_func()->extraData()->nativePaintMode) {
+        QWExtra::NativePaintMode nativePaintMode = qwidget->d_func()->extraData()->nativePaintMode;
+        if(qwidget->d_func()->paintOnScreen())
+            nativePaintMode = QWExtra::Disable;
+
+        switch(nativePaintMode) {
         case QWExtra::Disable:
             // Do nothing
             break;
-
         case QWExtra::Blit:
             if (qwidget->d_func()->isOpaque)
                 gc.SetDrawMode(CGraphicsContext::EDrawModeWriteAlpha);
             gc.BitBlt(controlRect.iTl, bitmap, backingStoreRect);
             break;
-
         case QWExtra::ZeroFill:
-            if (Window().DisplayMode() == EColor16MA) {
+            if (Window().DisplayMode() == EColor16MA
+                || Window().DisplayMode() == Q_SYMBIAN_ECOLOR16MAP) {
                 gc.SetBrushStyle(CGraphicsContext::ESolidBrush);
                 gc.SetDrawMode(CGraphicsContext::EDrawModeWriteAlpha);
                 gc.SetBrushColor(TRgb::Color16MA(0));
@@ -993,7 +1138,6 @@
                 gc.Clear(controlRect);
             };
             break;
-
         default:
             Q_ASSERT(false);
         }
@@ -1096,30 +1240,36 @@
         qwidget->d_func()->setWindowTitle_sys(qwidget->windowTitle());
 #ifdef Q_WS_S60
         // If widget is fullscreen/minimized, hide status pane and button container otherwise show them.
-        CEikStatusPane *statusPane = S60->statusPane();
-        CEikButtonGroupContainer *buttonGroup = S60->buttonGroupContainer();
-        TBool visible = !(qwidget->windowState() & (Qt::WindowFullScreen | Qt::WindowMinimized));
-        if (statusPane)
-            statusPane->MakeVisible(visible);
-        if (buttonGroup) {
-            // Visibility
-            const TBool isFullscreen = qwidget->windowState() & Qt::WindowFullScreen;
-            const TBool cbaVisibilityHint = qwidget->windowFlags() & Qt::WindowSoftkeysVisibleHint;
-            buttonGroup->MakeVisible(visible || (isFullscreen && cbaVisibilityHint));
-        }
+        const bool visible = !(qwidget->windowState() & (Qt::WindowFullScreen | Qt::WindowMinimized));
+        const bool statusPaneVisibility = visible;
+        const bool isFullscreen = qwidget->windowState() & Qt::WindowFullScreen;
+        const bool cbaVisibilityHint = qwidget->windowFlags() & Qt::WindowSoftkeysVisibleHint;
+        const bool buttonGroupVisibility = (visible || (isFullscreen && cbaVisibilityHint));
+        S60->setStatusPaneAndButtonGroupVisibility(statusPaneVisibility, buttonGroupVisibility);
 #endif
     } else if (QApplication::activeWindow() == qwidget->window()) {
-        if (CCoeEnv::Static()->AppUi()->IsDisplayingMenuOrDialog() || S60->menuBeingConstructed) {
-            QWidget *fw = QApplication::focusWidget();
-            if (fw) {
-                QFocusEvent event(QEvent::FocusOut, Qt::PopupFocusReason);
-                QCoreApplication::sendEvent(fw, &event);
+        bool focusedControlFound = false;
+        WId winId = 0;
+        for (QWidget *w = qwidget->parentWidget(); w && (winId = w->internalWinId()); w = w->parentWidget()) {
+            if (winId->IsFocused() && winId->IsVisible()) {
+                focusedControlFound = true;
+                break;
+            } else if (w->isWindow())
+                break;
+        }
+        if (!focusedControlFound) {
+            if (CCoeEnv::Static()->AppUi()->IsDisplayingMenuOrDialog() || S60->menuBeingConstructed) {
+                QWidget *fw = QApplication::focusWidget();
+                if (fw) {
+                    QFocusEvent event(QEvent::FocusOut, Qt::PopupFocusReason);
+                    QCoreApplication::sendEvent(fw, &event);
+                }
+                m_symbianPopupIsOpen = true;
+                return;
             }
-            m_symbianPopupIsOpen = true;
-            return;
+
+            QApplication::setActiveWindow(0);
         }
-
-        QApplication::setActiveWindow(0);
     }
     // else { We don't touch the active window unless we were explicitly activated or deactivated }
 }
@@ -1211,6 +1361,11 @@
     }
 }
 
+bool QSymbianControl::isControlActive()
+{
+    return IsActivated() ? true : false;
+}
+
 /*!
     \typedef QApplication::QS60MainApplicationFactory
     \since 4.6
@@ -1261,7 +1416,7 @@
         // framework destruction.
         TTrapHandler *origTrapHandler = User::TrapHandler();
 
-        // The S60 framework has not been initalized. We need to do it.
+        // The S60 framework has not been initialized. We need to do it.
         TApaApplicationFactory factory(S60->s60ApplicationFactory ?
                 S60->s60ApplicationFactory : newS60Application);
         CApaCommandLine* commandLine = 0;
@@ -1375,6 +1530,8 @@
             S60->avkonComponentsSupportTransparency = (value==1) ? true : false;
         }
     }
+    delete repository;
+    repository = 0;
 #endif
 
 #ifdef QT_KEYPAD_NAVIGATION
@@ -1416,6 +1573,10 @@
     systemFont.setFamily(systemFont.defaultFamily());
     QApplicationPrivate::setSystemFont(systemFont);
 
+#ifdef SYMBIAN_GRAPHICS_WSERV_QT_EFFECTS
+    QObject::connect(qApp, SIGNAL(aboutToQuit()), qApp, SLOT(_q_aboutToQuit()));
+#endif
+
 /*
  ### Commented out for now as parameter handling not needed in SOS(yet). Code below will break testlib with -o flag
     int argc = priv->argc;
@@ -1439,7 +1600,7 @@
 */
 
     // Register WId with the metatype system.  This is to enable
-    // QWidgetPrivate::create_sys to used delayed slot invokation in order
+    // QWidgetPrivate::create_sys to used delayed slot invocation in order
     // to destroy WId objects during reparenting.
     qRegisterMetaType<WId>("WId");
 }
@@ -1505,6 +1666,9 @@
 
 void QApplicationPrivate::enterModal_sys(QWidget *widget)
 {
+#ifdef SYMBIAN_GRAPHICS_WSERV_QT_EFFECTS
+    S60->wsSession().SendEffectCommand(ETfxCmdAppModalModeEnter);
+#endif
     if (widget) {
         static_cast<QSymbianControl *>(widget->effectiveWinId())->FadeBehindPopup(ETrue);
         // Modal partial screen dialogs (like queries) capture pointer events.
@@ -1520,6 +1684,9 @@
 
 void QApplicationPrivate::leaveModal_sys(QWidget *widget)
 {
+#ifdef SYMBIAN_GRAPHICS_WSERV_QT_EFFECTS
+    S60->wsSession().SendEffectCommand(ETfxCmdAppModalModeExit);
+#endif
     if (widget) {
         static_cast<QSymbianControl *>(widget->effectiveWinId())->FadeBehindPopup(EFalse);
         // ### FixMe: Add specialized behaviour for fullscreen modal dialogs
@@ -1810,27 +1977,10 @@
             if (callSymbianEventFilters(symbianEvent))
                 return 1;
             const TWsVisibilityChangedEvent *visChangedEvent = event->VisibilityChanged();
-            QWidget *w = QWidgetPrivate::mapper->value(control);
-            QWidget *const window = w->window();
-            if (!window->d_func()->maybeTopData())
-                break;
-            QRefCountedWidgetBackingStore &backingStore = window->d_func()->maybeTopData()->backingStore;
-            if (visChangedEvent->iFlags & TWsVisibilityChangedEvent::ENotVisible) {
-                backingStore.widgetHidden(w);
-                // In order to ensure that any resources used by the window surface
-                // are immediately freed, we flush the WSERV command buffer.
-                S60->wsSession().Flush();
-            } else if (visChangedEvent->iFlags & TWsVisibilityChangedEvent::EPartiallyVisible) {
-                if (backingStore.data()) {
-                    backingStore.widgetShown(w);
-                } else {
-                    // Create backing store with an initial reference count of 1
-                    backingStore.create(window);
-                    backingStore.widgetShown(w);
-                    w->d_func()->invalidateBuffer(w->rect());
-                    w->repaint();
-                }
-            }
+            if (visChangedEvent->iFlags & TWsVisibilityChangedEvent::ENotVisible)
+                S60->controlVisibilityChanged(control, false);
+            else if (visChangedEvent->iFlags & TWsVisibilityChangedEvent::EPartiallyVisible)
+                S60->controlVisibilityChanged(control, true);
             return 1;
         }
         break;
@@ -1884,13 +2034,6 @@
             if (switchToSwRendering) {
                 QRuntimeGraphicsSystem *gs =
                    static_cast<QRuntimeGraphicsSystem*>(QApplicationPrivate::graphics_system);
-
-                uint memoryUsage = gs->memoryUsage();
-                uint memoryForFullscreen = ( S60->screenDepth / 8 )
-                                           * S60->screenWidthInPixels
-                                           * S60->screenHeightInPixels;
-
-                S60->memoryLimitForHwRendering = memoryUsage - memoryForFullscreen;
                 gs->setGraphicsSystem(QLatin1String("raster"));
             }
         }
@@ -1906,8 +2049,7 @@
         if(QApplicationPrivate::runtime_graphics_system) {
             QRuntimeGraphicsSystem *gs =
                    static_cast<QRuntimeGraphicsSystem*>(QApplicationPrivate::graphics_system);
-            gs->setGraphicsSystem(QLatin1String("openvg"), S60->memoryLimitForHwRendering);
-            S60->memoryLimitForHwRendering = 0;
+            gs->setGraphicsSystem(QLatin1String("openvg"));
         }
 #endif
         break;
@@ -2076,13 +2218,18 @@
 
 TUint QApplicationPrivate::resolveS60ScanCode(TInt scanCode, TUint keysym)
 {
+    if (!scanCode)
+        return keysym;
+
+    QApplicationPrivate *d = QApplicationPrivate::instance();
+
     if (keysym) {
         // If keysym is specified, cache it.
-        scanCodeCache.insert(scanCode, keysym);
+        d->scanCodeCache.insert(scanCode, keysym);
         return keysym;
     } else {
         // If not, retrieve the cached version.
-        return scanCodeCache[scanCode];
+        return d->scanCodeCache[scanCode];
     }
 }
 
@@ -2202,6 +2349,14 @@
 
 #endif // QT_NO_CURSOR
 
+void QApplicationPrivate::_q_aboutToQuit()
+{
+#ifdef SYMBIAN_GRAPHICS_WSERV_QT_EFFECTS
+    // Send the shutdown tfx command
+    S60->wsSession().SendEffectCommand(ETfxCmdAppShutDown);
+#endif
+}
+
 QS60ThreadLocalData::QS60ThreadLocalData()
 {
     CCoeEnv *env = CCoeEnv::Static();
--- a/src/gui/kernel/qapplication_win.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/kernel/qapplication_win.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -716,8 +716,10 @@
         if (QWidget *w = static_cast<QWidget *>(o))
             qt_set_windows_updateScrollBar(w);
     }
+#ifndef QT_NO_SCROLLBAR
     if (qobject_cast<QScrollBar*>(widget))
         widget->updateGeometry();
+#endif
 }
 
 
@@ -1499,6 +1501,7 @@
 
     switch (message) {
 #ifndef Q_WS_WINCE
+#ifndef QT_NO_SESSIONMANAGER
     case WM_QUERYENDSESSION: {
         if (sm_smActive) // bogus message from windows
             RETURN(true);
@@ -1531,6 +1534,7 @@
 
         RETURN(0);
     }
+#endif
     case WM_DISPLAYCHANGE:
         if (QApplication::type() == QApplication::Tty)
             break;
@@ -2236,6 +2240,7 @@
             }
             break;
 
+#ifndef QT_NO_CONTEXTMENU
             case WM_CONTEXTMENU:
             {
                 // it's not VK_APPS or Shift+F10, but a click in the NC area
@@ -2264,6 +2269,7 @@
             }
             break;
 #endif
+#endif
 
         case WM_IME_STARTCOMPOSITION:
         case WM_IME_ENDCOMPOSITION:
--- a/src/gui/kernel/qclipboard_x11.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/kernel/qclipboard_x11.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -456,7 +456,8 @@
         XCheckIfEvent(X11->display, &ev, &qt_init_timestamp_scanner, (XPointer)&data);
         if (data.timestamp == CurrentTime) {
             setupOwner();
-            int dummy = 0;
+            // We need this value just for completeness, we don't use it.
+            long dummy = 0;
             Window ownerId = owner->internalWinId();
             XChangeProperty(X11->display, ownerId,
                             ATOM(CLIP_TEMPORARY), XA_INTEGER, 32,
--- a/src/gui/kernel/qcocoamenuloader_mac.mm	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/kernel/qcocoamenuloader_mac.mm	Mon Oct 04 01:19:32 2010 +0300
@@ -255,5 +255,10 @@
         qApp->quit();
     }
 }
+
+ - (void)orderFrontCharacterPalette:(id)sender
+ {
+     [NSApp orderFrontCharacterPalette:sender];
+ }
 @end
 #endif // QT_MAC_USE_COCOA
--- a/src/gui/kernel/qcocoamenuloader_mac_p.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/kernel/qcocoamenuloader_mac_p.h	Mon Oct 04 01:19:32 2010 +0300
@@ -88,6 +88,7 @@
 - (IBAction)hide:(id)sender;
 - (IBAction)qtDispatcherToQAction:(id)sender;
 - (void)qtUpdateMenubar;
+- (void)orderFrontCharacterPalette:(id)sender;
 @end
 
 #endif // QT_MAC_USE_COCOA
--- a/src/gui/kernel/qcocoasharedwindowmethods_mac_p.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/kernel/qcocoasharedwindowmethods_mac_p.h	Mon Oct 04 01:19:32 2010 +0300
@@ -58,6 +58,8 @@
 extern Qt::MouseButton cocoaButton2QtButton(NSInteger buttonNum); // qcocoaview.mm
 extern QPointer<QWidget> qt_button_down; //qapplication_mac.cpp
 extern const QStringList& qEnabledDraggedTypes(); // qmime_mac.cpp
+extern void qt_event_request_window_change(QWidget *); // qapplication_mac.mm
+extern void qt_mac_send_posted_gl_updates(QWidget *widget); // qapplication_mac.mm
 
 Q_GLOBAL_STATIC(QPointer<QWidget>, currentDragTarget);
 
@@ -227,6 +229,19 @@
     [self release];
 }
 
+- (void)setInitialFirstResponder:(NSView *)view
+{
+    // This method is called the first time the window is placed on screen and
+    // is the earliest point in time we can connect OpenGL contexts to NSViews.
+    QWidget *qwidget = [[QT_MANGLE_NAMESPACE(QCocoaWindowDelegate) sharedDelegate] qt_qwidgetForWindow:self];
+    if (qwidget) {
+        qt_event_request_window_change(qwidget);
+        qt_mac_send_posted_gl_updates(qwidget);
+    }
+
+    [super setInitialFirstResponder:view];
+}
+
 - (BOOL)makeFirstResponder:(NSResponder *)responder
 {
     // For some reason Cocoa wants to flip the first responder
--- a/src/gui/kernel/qcocoawindowdelegate_mac.mm	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/kernel/qcocoawindowdelegate_mac.mm	Mon Oct 04 01:19:32 2010 +0300
@@ -394,5 +394,25 @@
     }
     return NO;
 }
+
+- (void)syncContentViewFrame: (NSNotification *)notification
+{
+    NSView *cView = [notification object];
+    if (cView) {
+        NSWindow *window = [cView window];
+        QWidget *qwidget = m_windowHash->value(window);
+        if (qwidget) {
+            QWidgetData *widgetData = qt_qwidget_data(qwidget);
+            NSRect rect = [cView frame];
+            const QSize newSize(rect.size.width, rect.size.height);
+            const QSize &oldSize = widgetData->crect.size();
+            if (newSize != oldSize) {
+                [self syncSizeForWidget:qwidget toSize:newSize fromSize:oldSize];
+            }
+        }
+
+    }
+}
+
 @end
 #endif// QT_MAC_USE_COCOA
--- a/src/gui/kernel/qcocoawindowdelegate_mac_p.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/kernel/qcocoawindowdelegate_mac_p.h	Mon Oct 04 01:19:32 2010 +0300
@@ -105,5 +105,6 @@
 - (NSSize)closestAcceptableSizeForWidget:(QWidget *)qwidget
         window:(NSWindow *)window withNewSize:(NSSize)proposedSize;
 - (QWidget *)qt_qwidgetForWindow:(NSWindow *)window;
+- (void)syncContentViewFrame: (NSNotification *)notification;
 @end
 #endif
--- a/src/gui/kernel/qdesktopwidget_s60.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/kernel/qdesktopwidget_s60.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -103,6 +103,10 @@
 
     rects->resize(QDesktopWidgetPrivate::screenCount);
     workrects->resize(QDesktopWidgetPrivate::screenCount);
+
+    (*rects)[0].setRect(0, 0, S60->screenWidthInPixels, S60->screenHeightInPixels);
+    QRect wr = qt_TRect2QRect(static_cast<CEikAppUi*>(S60->appUi())->ClientRect());
+    (*workrects)[0].setRect(wr.x(), wr.y(), wr.width(), wr.height());
 }
 
 void QDesktopWidgetPrivate::cleanup()
@@ -146,17 +150,23 @@
     return this;
 }
 
-const QRect QDesktopWidget::availableGeometry(int /* screen */) const
+const QRect QDesktopWidget::availableGeometry(int screen) const
 {
-    TRect clientRect = static_cast<CEikAppUi*>(S60->appUi())->ClientRect();
-    return qt_TRect2QRect(clientRect);
+    Q_D(const QDesktopWidget);
+    if (screen < 0 || screen >= d->screenCount)
+        screen = d->primaryScreen;
+
+    return d->workrects->at(screen);
 }
 
-const QRect QDesktopWidget::screenGeometry(int /* screen */) const
+const QRect QDesktopWidget::screenGeometry(int screen) const
 {
     Q_D(const QDesktopWidget);
-    return QRect(0, 0, S60->screenWidthInPixels, S60->screenHeightInPixels);
-    }
+    if (screen < 0 || screen >= d->screenCount)
+        screen = d->primaryScreen;
+
+    return d->rects->at(screen);
+}
 
 int QDesktopWidget::screenNumber(const QWidget * /* widget */) const
 {
--- a/src/gui/kernel/qevent.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/kernel/qevent.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -3627,7 +3627,7 @@
     \brief The QTouchEvent class contains parameters that describe a touch event.
     \since 4.6
     \ingroup events
-    \ingroup multitouch
+    \ingroup touch
 
     \section1 Enabling Touch Events
 
@@ -3641,7 +3641,7 @@
 
     Similarly to QMouseEvent, Qt automatically grabs each touch point on the first press inside a
     widget, and the widget will receive all updates for the touch point until it is released.
-    Note that it is possible for a widget to receive events for multiple touch points, and that
+    Note that it is possible for a widget to receive events for numerous touch points, and that
     multiple widgets may be receiving touch events at the same time.
 
     \section1 Event Handling
@@ -3717,7 +3717,7 @@
 
     \i As mentioned above, enabling touch events means multiple widgets can be receiving touch
     events simultaneously. Combined with the default QWidget::event() handling for QTouchEvents,
-    this gives you great flexibility in designing multi-touch user interfaces. Be aware of the
+    this gives you great flexibility in designing touch user interfaces. Be aware of the
     implications. For example, it is possible that the user is moving a QSlider with one finger and
     pressing a QPushButton with another. The signals emitted by these widgets will be
     interleaved.
@@ -3729,7 +3729,7 @@
 
     \i QTouchEvents are not affected by a \l{QWidget::grabMouse()}{mouse grab} or an
     \l{QApplication::activePopupWidget()}{active pop-up widget}. The behavior of QTouchEvents is
-    undefined when opening a pop-up or grabbing the mouse while there are multiple active touch
+    undefined when opening a pop-up or grabbing the mouse while there are more than one active touch
     points.
 
     \endlist
@@ -4281,6 +4281,11 @@
     QGestureEvent::accept() for each of them, or an event filter consumes the
     event.
 
+    \section1 Further Reading
+
+    For an overview of gesture handling in Qt and information on using gestures
+    in your applications, see the \l{Gestures Programming} document.
+
     \sa QGesture, QGestureRecognizer,
         QWidget::grabGesture(), QGraphicsObject::grabGesture()
 */
--- a/src/gui/kernel/qeventdispatcher_mac.mm	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/kernel/qeventdispatcher_mac.mm	Mon Oct 04 01:19:32 2010 +0300
@@ -785,7 +785,7 @@
     // the stacking order of the windows while doing so, we put
     // up a block that is used in QCocoaWindow and QCocoaPanel:
     int stackSize = cocoaModalSessionStack.size();
-    for (int i=stackSize-1; i>=0; --i) {
+    for (int i=0; i<stackSize; ++i) {
         QCocoaModalSessionInfo &info = cocoaModalSessionStack[i];
         if (info.session) {
             [NSApp endModalSession:info.session];
@@ -822,14 +822,15 @@
             QBoolBlocker block1(blockSendPostedEvents, true);
             info.nswindow = window;
             [(NSWindow*) info.nswindow retain];
-            // When creating a modal session cocoa will rearrange the windows.
-            // In order to avoid windows to be put behind another we need to
-            // keep the window level.
-            int level = [window level];
+            int levelBeforeEnterModal = [window level];
             info.session = [NSApp beginModalSessionForWindow:window];
-            [window setLevel:level];
+            // Make sure we don't stack the window lower that it was before
+            // entering modal, in case it e.g. had the stays-on-top flag set:
+            if (levelBeforeEnterModal > [window level])
+                [window setLevel:levelBeforeEnterModal];
         }
         currentModalSessionCached = info.session;
+        cleanupModalSessionsNeeded = false;
     }
     return currentModalSessionCached;
 }
@@ -881,6 +882,10 @@
     for (int i=stackSize-1; i>=0; --i) {
         QCocoaModalSessionInfo &info = cocoaModalSessionStack[i];
         if (info.widget) {
+            // This session has a widget, and is therefore not marked
+            // as stopped. So just make it current. There might still be other
+            // stopped sessions on the stack, but those will be stopped on
+            // a later "cleanup" call.
             currentModalSessionCached = info.session;
             break;
         }
@@ -926,6 +931,7 @@
             if (i == stackSize-1) {
                 // The top sessions ended. Interrupt the event dispatcher
                 // to start spinning the correct session immidiatly: 
+                currentModalSessionCached = 0;
                 cleanupModalSessionsNeeded = true;
                 QEventDispatcherMac::instance()->interrupt();
             }
--- a/src/gui/kernel/qgesture.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/kernel/qgesture.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -59,6 +59,9 @@
     the QGestureRecognizer object that is registered with the application; see
     QGestureRecognizer::registerRecognizer().
 
+    For an overview of gesture handling in Qt and information on using gestures
+    in your applications, see the \l{Gestures Programming} document.
+
     \section1 Gesture Properties
 
     The class has a list of properties that can be queried by the user to get
@@ -219,7 +222,10 @@
 
     \image pangesture.png
 
-    \sa {Gestures Programming}, QPinchGesture, QSwipeGesture
+    For an overview of gesture handling in Qt and information on using gestures
+    in your applications, see the \l{Gestures Programming} document.
+
+    \sa QPinchGesture, QSwipeGesture
 */
 
 /*!
@@ -306,14 +312,17 @@
     \class QPinchGesture
     \since 4.6
     \brief The QPinchGesture class describes a pinch gesture made my the user.
-    \ingroup multitouch
+    \ingroup touch
     \ingroup gestures
 
-    A pinch gesture is a form of multitouch user input in which the user typically
+    A pinch gesture is a form of touch user input in which the user typically
     touches two points on the input device with a thumb and finger, before moving
     them closer together or further apart to change the scale factor, zoom, or level
     of detail of the user interface.
 
+    For an overview of gesture handling in Qt and information on using gestures
+    in your applications, see the \l{Gestures Programming} document.
+
     \image pinchgesture.png
 
     Instead of repeatedly applying the same pinching gesture, the user may
@@ -322,7 +331,7 @@
     will continue to be delivered to the target object, containing an instance
     of QPinchGesture in the Qt::GestureUpdated state.
 
-    \sa {Gestures Programming}, QPanGesture, QSwipeGesture
+    \sa QPanGesture, QSwipeGesture
 */
 
 /*!
@@ -389,7 +398,7 @@
     \brief the current scale factor
 
     The scale factor measures the scale factor associated with the distance
-    between two of the user's inputs on a multitouch device.
+    between two of the user's inputs on a touch device.
 
     \sa totalScaleFactor, lastScaleFactor
 */
@@ -572,7 +581,10 @@
 
     \image swipegesture.png
 
-    \sa {Gestures Programming}, QPanGesture, QPinchGesture
+    For an overview of gesture handling in Qt and information on using gestures
+    in your applications, see the \l{Gestures Programming} document.
+
+    \sa QPanGesture, QPinchGesture
 */
 
 /*!
@@ -667,7 +679,10 @@
     \brief The QTapGesture class describes a tap gesture made by the user.
     \ingroup gestures
 
-    \sa {Gestures Programming}, QPanGesture, QPinchGesture
+    For an overview of gesture handling in Qt and information on using gestures
+    in your applications, see the \l{Gestures Programming} document.
+
+    \sa QPanGesture, QPinchGesture
 */
 
 /*!
@@ -700,7 +715,10 @@
     gesture made by the user.
     \ingroup gestures
 
-    \sa {Gestures Programming}, QPanGesture, QPinchGesture
+    For an overview of gesture handling in Qt and information on using gestures
+    in your applications, see the \l{Gestures Programming} document.
+
+    \sa QPanGesture, QPinchGesture
 */
 
 /*!
--- a/src/gui/kernel/qgesturemanager.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/kernel/qgesturemanager.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -129,7 +129,12 @@
 void QGestureManager::unregisterGestureRecognizer(Qt::GestureType type)
 {
     QList<QGestureRecognizer *> list = m_recognizers.values(type);
-    m_recognizers.remove(type);
+    while (QGestureRecognizer *recognizer = m_recognizers.take(type)) {
+        if (!m_obsoleteGestures.contains(recognizer)) {
+            // inserting even an empty QSet will cause the recognizer to be deleted on destruction of the manager
+            m_obsoleteGestures.insert(recognizer, QSet<QGesture *>());
+        }
+    }
     foreach (QGesture *g, m_gestureToRecognizer.keys()) {
         QGestureRecognizer *recognizer = m_gestureToRecognizer.value(g);
         if (list.contains(recognizer)) {
@@ -590,8 +595,9 @@
             if (gesture->hasHotSpot()) {
                 // guess the target widget using the hotspot of the gesture
                 QPoint pt = gesture->hotSpot().toPoint();
-                if (QWidget *w = qApp->topLevelAt(pt)) {
-                    target = w->childAt(w->mapFromGlobal(pt));
+                if (QWidget *topLevel = qApp->topLevelAt(pt)) {
+                    QWidget *child = topLevel->childAt(topLevel->mapFromGlobal(pt));
+                    target = child ? child : topLevel;
                 }
             } else {
                 // or use the context of the gesture
--- a/src/gui/kernel/qgesturerecognizer.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/kernel/qgesturerecognizer.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -62,6 +62,9 @@
    need to use this class directly. Instances will be created behind the scenes by the
    framework.
 
+   For an overview of gesture handling in Qt and information on using gestures
+   in your applications, see the \l{Gestures Programming} document.
+
    \section1 Recognizing Gestures
 
    The process of recognizing gestures involves filtering input events sent to specific
--- a/src/gui/kernel/qpalette.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/kernel/qpalette.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -868,11 +868,21 @@
 
     Returns true (slowly) if this palette is different from \a p;
     otherwise returns false (usually quickly).
+
+    \note The current ColorGroup is not taken into account when
+    comparing palettes
+
+    \sa operator==()
 */
 
 /*!
     Returns true (usually quickly) if this palette is equal to \a p;
     otherwise returns false (slowly).
+
+    \note The current ColorGroup is not taken into account when
+    comparing palettes
+
+    \sa operator!=()
 */
 bool QPalette::operator==(const QPalette &p) const
 {
--- a/src/gui/kernel/qt_cocoa_helpers_mac.mm	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/kernel/qt_cocoa_helpers_mac.mm	Mon Oct 04 01:19:32 2010 +0300
@@ -685,9 +685,11 @@
     unsigned int info = 0;
     if ([event type] == NSKeyDown) {
         NSString *characters = [event characters];
-        unichar value = [characters characterAtIndex:0];
-        qt_keymapper_private()->updateKeyMap(0, key_event, (void *)&value);
-        info = value;
+        if ([characters length]) {
+            unichar value = [characters characterAtIndex:0];
+            qt_keymapper_private()->updateKeyMap(0, key_event, (void *)&value);
+            info = value;
+        }
     }
 
     // Redirect keys to alien widgets.
@@ -1527,6 +1529,22 @@
         [theWindow display];
     }
 }
+
+void qt_cocoaStackChildWindowOnTopOfOtherChildren(QWidget *childWidget)
+{
+    if (!childWidget)
+        return;
+
+    QWidget *parent = childWidget->parentWidget();
+    if (childWidget->isWindow() && parent) {
+        if ([[qt_mac_window_for(parent) childWindows] containsObject:qt_mac_window_for(childWidget)]) {
+            QWidgetPrivate *d = qt_widget_private(childWidget);
+            d->setSubWindowStacking(false);
+            d->setSubWindowStacking(true);
+        }
+    }
+}
+
 #endif // QT_MAC_USE_COCOA
 
 QT_END_NAMESPACE
--- a/src/gui/kernel/qt_cocoa_helpers_mac_p.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/kernel/qt_cocoa_helpers_mac_p.h	Mon Oct 04 01:19:32 2010 +0300
@@ -148,6 +148,7 @@
 // These methods exists only for supporting unified mode.
 void macDrawRectOnTop(void * /*OSWindowRef */ window);
 void macSyncDrawingOnFirstInvocation(void * /*OSWindowRef */window);
+void qt_cocoaStackChildWindowOnTopOfOtherChildren(QWidget *widget);
 #endif
 void qt_mac_menu_collapseSeparators(void * /*NSMenu */ menu, bool collapse);
 bool qt_dispatchKeyEvent(void * /*NSEvent * */ keyEvent, QWidget *widgetToGetEvent);
--- a/src/gui/kernel/qt_s60_p.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/kernel/qt_s60_p.h	Mon Oct 04 01:19:32 2010 +0300
@@ -87,7 +87,7 @@
 //this macro exists because EColor16MAP enum value doesn't exist in Symbian OS 9.2
 #define Q_SYMBIAN_ECOLOR16MAP TDisplayMode(13)
 
-class QS60ThreadLocalData
+class Q_AUTOTEST_EXPORT QS60ThreadLocalData
 {
 public:
     QS60ThreadLocalData();
@@ -141,8 +141,15 @@
     int supportsPremultipliedAlpha : 1;
     int avkonComponentsSupportTransparency : 1;
     int menuBeingConstructed : 1;
-    int memoryLimitForHwRendering;
     QApplication::QS60MainApplicationFactory s60ApplicationFactory; // typedef'ed pointer type
+
+    enum ScanCodeState {
+        Unpressed,
+        KeyDown,
+        KeyDownAndKey
+    };
+    QHash<TInt, ScanCodeState> scanCodeStates;
+
     static inline void updateScreenSize();
     inline RWsSession& wsSession();
     static inline RWindowGroup& windowGroup();
@@ -155,14 +162,16 @@
     static inline CAknTitlePane* titlePane();
     static inline CAknContextPane* contextPane();
     static inline CEikButtonGroupContainer* buttonGroupContainer();
+    static void setStatusPaneAndButtonGroupVisibility(bool statusPaneVisible, bool buttonGroupVisible);
 #endif
+    static void controlVisibilityChanged(CCoeControl *control, bool visible);
 
 #ifdef Q_OS_SYMBIAN
     TTrapHandler *s60InstalledTrapHandler;
 #endif
 };
 
-QS60Data* qGlobalS60Data();
+Q_AUTOTEST_EXPORT QS60Data* qGlobalS60Data();
 #define S60 qGlobalS60Data()
 
 class QAbstractLongTapObserver
@@ -202,6 +211,8 @@
 
     void setFocusSafely(bool focus);
 
+    bool isControlActive();
+
 #ifdef Q_WS_S60
     void FadeBehindPopup(bool fade){ popupFader.FadeBehindPopup( this, this, fade); }
     void HandleStatusPaneSizeChange();
@@ -223,7 +234,9 @@
 private:
     void HandlePointerEvent(const TPointerEvent& aPointerEvent);
     TKeyResponse OfferKeyEvent(const TKeyEvent& aKeyEvent,TEventCode aType);
+    TKeyResponse sendSymbianKeyEvent(const TKeyEvent &keyEvent, QEvent::Type type);
     TKeyResponse sendKeyEvent(QWidget *widget, QKeyEvent *keyEvent);
+    TKeyResponse handleVirtualMouse(const TKeyEvent& keyEvent,TEventCode type);
     bool sendMouseEvent(QWidget *widget, QMouseEvent *mEvent);
     void sendMouseEvent(
             QWidget *receiver,
@@ -236,6 +249,8 @@
 #ifdef QT_SYMBIAN_SUPPORTS_ADVANCED_POINTER
     void translateAdvancedPointerEvent(const TAdvancedPointerEvent *event);
 #endif
+
+public:
     void handleClientAreaChange();
 
 private:
@@ -278,7 +293,6 @@
   supportsPremultipliedAlpha(0),
   avkonComponentsSupportTransparency(0),
   menuBeingConstructed(0),
-  memoryLimitForHwRendering(0),
   s60ApplicationFactory(0)
 #ifdef Q_OS_SYMBIAN
   ,s60InstalledTrapHandler(0)
--- a/src/gui/kernel/qwidget.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/kernel/qwidget.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -162,41 +162,74 @@
 extern bool qt_sendSpontaneousEvent(QObject*, QEvent*); // qapplication.cpp
 extern QDesktopWidget *qt_desktopWidget; // qapplication.cpp
 
-QRefCountedWidgetBackingStore::QRefCountedWidgetBackingStore()
+/*!
+    \internal
+    \class QWidgetBackingStoreTracker
+    \brief Class which allows tracking of which widgets are using a given backing store
+
+    QWidgetBackingStoreTracker is a thin wrapper around a QWidgetBackingStore pointer,
+    which maintains a list of the QWidgets which are currently using the backing
+    store.  This list is modified via the registerWidget and unregisterWidget functions.
+ */
+
+QWidgetBackingStoreTracker::QWidgetBackingStoreTracker()
     :   m_ptr(0)
 {
 
 }
 
-QRefCountedWidgetBackingStore::~QRefCountedWidgetBackingStore()
+QWidgetBackingStoreTracker::~QWidgetBackingStoreTracker()
 {
     delete m_ptr;
 }
 
-void QRefCountedWidgetBackingStore::create(QWidget *widget)
+/*!
+    \internal
+    Destroy the contained QWidgetBackingStore, if not null, and clear the list of
+    widgets using the backing store, then create a new QWidgetBackingStore, providing
+    the QWidget.
+ */
+void QWidgetBackingStoreTracker::create(QWidget *widget)
 {
     destroy();
     m_ptr = new QWidgetBackingStore(widget);
 }
 
-void QRefCountedWidgetBackingStore::destroy()
+/*!
+    \internal
+    Destroy the contained QWidgetBackingStore, if not null, and clear the list of
+    widgets using the backing store.
+ */
+void QWidgetBackingStoreTracker::destroy()
 {
     delete m_ptr;
     m_ptr = 0;
-    m_visibleWidgets.clear();
-}
-
-void QRefCountedWidgetBackingStore::widgetShown(QWidget *w)
+    m_widgets.clear();
+}
+
+/*!
+    \internal
+    Add the widget to the list of widgets currently using the backing store.
+    If the widget was already in the list, this function is a no-op.
+ */
+void QWidgetBackingStoreTracker::registerWidget(QWidget *w)
 {
     Q_ASSERT(m_ptr);
     Q_ASSERT(w->internalWinId());
     Q_ASSERT(qt_widget_private(w)->maybeBackingStore() == m_ptr);
-    m_visibleWidgets.insert(w);
-}
-
-void QRefCountedWidgetBackingStore::widgetHidden(QWidget *w)
-{
-    if (m_visibleWidgets.remove(w) && m_visibleWidgets.isEmpty()) {
+    m_widgets.insert(w);
+}
+
+/*!
+    \internal
+    Remove the widget from the list of widgets currently using the backing store.
+    If the widget was in the list, and removing it causes the list to be empty,
+    the backing store is deleted.
+    If the widget was not in the list, this function is a no-op.
+ */
+void QWidgetBackingStoreTracker::unregisterWidget(QWidget *w)
+{
+    if (m_widgets.remove(w) && m_widgets.isEmpty()) {
         delete m_ptr;
         m_ptr = 0;
     }
@@ -1241,7 +1274,16 @@
     q->setAttribute(Qt::WA_WState_Hidden);
 
     //give potential windows a bigger "pre-initial" size; create_sys() will give them a new size later
+#ifdef Q_OS_SYMBIAN
+    if (isGLWidget) {
+        // Don't waste GPU mem for unnecessary large egl surface
+        data.crect = QRect(0,0,2,2);
+    } else {
+        data.crect = parentWidget ? QRect(0,0,100,30) : QRect(0,0,360,640);
+    }
+#else
     data.crect = parentWidget ? QRect(0,0,100,30) : QRect(0,0,640,480);
+#endif
 
     focus_next = focus_prev = q;
 
@@ -4822,6 +4864,8 @@
     has been called for the parent do not inherit the parent's layout
     direction.
 
+    This method no longer affects text layout direction since Qt 4.7.
+
     \sa QApplication::layoutDirection
 */
 void QWidget::setLayoutDirection(Qt::LayoutDirection direction)
@@ -9924,7 +9968,7 @@
         desktopWidget = parent;
     bool newParent = (parent != parentWidget()) || !wasCreated || desktopWidget;
 
-#if defined(Q_WS_X11) || defined(Q_WS_WIN) || defined(Q_WS_MAC)
+#if defined(Q_WS_X11) || defined(Q_WS_WIN) || defined(Q_WS_MAC) || defined(Q_OS_SYMBIAN)
     if (newParent && parent && !desktopWidget) {
         if (testAttribute(Qt::WA_NativeWindow) && !qApp->testAttribute(Qt::AA_DontCreateNativeWidgetSiblings))
             parent->d_func()->enforceNativeChildren();
@@ -10578,7 +10622,7 @@
     }
     case Qt::WA_PaintOnScreen:
         d->updateIsOpaque();
-#if defined(Q_WS_WIN) || defined(Q_WS_X11) || defined(Q_WS_MAC)
+#if defined(Q_WS_WIN) || defined(Q_WS_X11) || defined(Q_WS_MAC) || defined(Q_OS_SYMBIAN)
         // Recreate the widget if it's already created as an alien widget and
         // WA_PaintOnScreen is enabled. Paint on screen widgets must have win id.
         // So must their children.
@@ -12045,8 +12089,8 @@
 {
     Q_D(QWidget);
     if (d->gestureContext.remove(gesture)) {
-        QGestureManager *manager = QGestureManager::instance();
-        manager->cleanupCachedGestures(this, gesture);
+        if (QGestureManager *manager = QGestureManager::instance())
+            manager->cleanupCachedGestures(this, gesture);
     }
 }
 #endif // QT_NO_GESTURES
--- a/src/gui/kernel/qwidget_mac.mm	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/kernel/qwidget_mac.mm	Mon Oct 04 01:19:32 2010 +0300
@@ -2796,10 +2796,14 @@
 
     if (QWidget *parent = q->parentWidget()) {
         if (parent->testAttribute(Qt::WA_WState_Created)) {
-            if (set)
-                [qt_mac_window_for(parent) addChildWindow:qt_mac_window_for(q) ordered:NSWindowAbove];
-            else
+            if (set) {
+                if (parent->isVisible()) {
+                    NSWindow *childwin = qt_mac_window_for(q);
+                    [qt_mac_window_for(parent) addChildWindow:childwin ordered:NSWindowAbove];
+                }
+            } else {
                 [qt_mac_window_for(parent) removeChildWindow:qt_mac_window_for(q)];
+            }
         }
     }
 
@@ -2807,10 +2811,12 @@
     for (int i=0; i<widgets.size(); ++i) {
         QWidget *child = widgets.at(i);
         if (child->isWindow() && child->testAttribute(Qt::WA_WState_Created) && child->isVisibleTo(q)) {
-            if (set)
-                [qt_mac_window_for(q) addChildWindow:qt_mac_window_for(child) ordered:NSWindowAbove];
-            else
+            if (set) {
+                NSWindow *childwin = qt_mac_window_for(child);
+                [qt_mac_window_for(q) addChildWindow:childwin ordered:NSWindowAbove];
+            } else {
                 [qt_mac_window_for(q) removeChildWindow:qt_mac_window_for(child)];
+            }
         }
     }
 }
--- a/src/gui/kernel/qwidget_p.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/kernel/qwidget_p.h	Mon Oct 04 01:19:32 2010 +0300
@@ -110,18 +110,18 @@
 
 class QStyle;
 
-class Q_AUTOTEST_EXPORT QRefCountedWidgetBackingStore
+class Q_AUTOTEST_EXPORT QWidgetBackingStoreTracker
 {
 
 public:
-    QRefCountedWidgetBackingStore();
-    ~QRefCountedWidgetBackingStore();
+    QWidgetBackingStoreTracker();
+    ~QWidgetBackingStoreTracker();
 
     void create(QWidget *tlw);
     void destroy();
 
-    void widgetShown(QWidget *w);
-    void widgetHidden(QWidget *w);
+    void registerWidget(QWidget *w);
+    void unregisterWidget(QWidget *w);
 
     inline QWidgetBackingStore* data()
     {
@@ -144,11 +144,11 @@
     }
 
 private:
-    Q_DISABLE_COPY(QRefCountedWidgetBackingStore)
+    Q_DISABLE_COPY(QWidgetBackingStoreTracker)
 
 private:
     QWidgetBackingStore* m_ptr;
-    QSet<QWidget *> m_visibleWidgets;
+    QSet<QWidget *> m_widgets;
 };
 
 struct QTLWExtra {
@@ -157,7 +157,7 @@
     // Regular pointers (keep them together to avoid gaps on 64 bits architectures).
     QIcon *icon; // widget icon
     QPixmap *iconPixmap;
-    QRefCountedWidgetBackingStore backingStore;
+    QWidgetBackingStoreTracker backingStore;
     QWindowSurface *windowSurface;
     QPainter *sharedPainter;
 
--- a/src/gui/kernel/qwidget_s60.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/kernel/qwidget_s60.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -366,7 +366,7 @@
 
         // Symbian windows are always created in an inactive state
         // We perform this assignment for the case where the window is being re-created
-        // as aa result of a call to setParent_sys, on either this widget or one of its
+        // as a result of a call to setParent_sys, on either this widget or one of its
         // ancestors.
         extra->activated = 0;
 
@@ -410,7 +410,7 @@
 
         // Symbian windows are always created in an inactive state
         // We perform this assignment for the case where the window is being re-created
-        // as aa result of a call to setParent_sys, on either this widget or one of its
+        // as a result of a call to setParent_sys, on either this widget or one of its
         // ancestors.
         extra->activated = 0;
 
@@ -482,14 +482,13 @@
              activateSymbianWindow();
 
          QSymbianControl *id = static_cast<QSymbianControl *>(q->internalWinId());
+         const bool isFullscreen = q->windowState() & Qt::WindowFullScreen;
 
 #ifdef Q_WS_S60
         // Lazily initialize the S60 screen furniture when the first window is shown.
-        if (!QApplication::testAttribute(Qt::AA_S60DontConstructApplicationPanes)
+        if (q->isWindow() && !QApplication::testAttribute(Qt::AA_S60DontConstructApplicationPanes)
                 && !S60->buttonGroupContainer() && !S60->statusPane()) {
 
-            bool isFullscreen = q->windowState() & Qt::WindowFullScreen;
-
             if (!q->testAttribute(Qt::WA_DontShowOnScreen)) {
 
                 // Create the status pane and CBA here
@@ -504,23 +503,26 @@
                     // Can't use AppUi directly because it privately inherits from MEikStatusPaneObserver.
                     QSymbianControl *desktopControl = static_cast<QSymbianControl *>(QApplication::desktop()->winId());
                     S60->statusPane()->SetObserver(desktopControl);
-
-                    // Hide the status pane if fullscreen OR
-                    // Fill client area if maximized OR
-                    // Put window below status pane unless the window has an explicit position.
                     if (isFullscreen) {
-                        S60->statusPane()->MakeVisible(false);
-                    } else if (q->windowState() & Qt::WindowMaximized) {
-                        TRect r = static_cast<CEikAppUi*>(S60->appUi())->ClientRect();
-                        id->SetExtent(r.iTl, r.Size());
-                    } else if (!q->testAttribute(Qt::WA_Moved)) {
-                        id->SetPosition(static_cast<CEikAppUi*>(S60->appUi())->ClientRect().iTl);
+                        const bool cbaVisible = S60->buttonGroupContainer() && S60->buttonGroupContainer()->IsVisible();
+                        S60->setStatusPaneAndButtonGroupVisibility(false, cbaVisible);
                     }
                 }
             }
         }
 #endif
 
+        // Fill client area if maximized OR
+        // Put window below status pane unless the window has an explicit position.
+        if (!isFullscreen) {
+            if (q->windowState() & Qt::WindowMaximized) {
+                TRect r = static_cast<CEikAppUi*>(S60->appUi())->ClientRect();
+                id->SetExtent(r.iTl, r.Size());
+            } else if (!q->testAttribute(Qt::WA_Moved)) {
+                id->SetPosition(static_cast<CEikAppUi*>(S60->appUi())->ClientRect().iTl);
+            }
+        }
+
         id->MakeVisible(true);
 
         if(q->isWindow())
@@ -684,6 +686,12 @@
     QSymbianControl *old_winid = static_cast<QSymbianControl *>(wasCreated ? data.winid : 0);
     if ((q->windowType() == Qt::Desktop))
         old_winid = 0;
+
+    // old_winid may not have received a 'not visible' visibility
+    // changed event before being destroyed; make sure that it is
+    // removed from the backing store's list of visible windows.
+    S60->controlVisibilityChanged(old_winid, false);
+
     setWinId(0);
 
     // hide and reparent our own window away. Otherwise we might get
@@ -948,7 +956,10 @@
     Q_Q(QWidget);
     if (q->testAttribute(Qt::WA_WState_Created) && q->windowType() != Qt::Desktop) {
         RWindow *rwindow = static_cast<RWindow *>(q->effectiveWinId()->DrawableWindow());
-        rwindow->EnableAdvancedPointers();
+        QSymbianControl *window = static_cast<QSymbianControl *>(q->effectiveWinId());
+        //Enabling advanced pointer events for controls that already have active windows causes a panic.
+        if (!window->isControlActive())
+            rwindow->EnableAdvancedPointers();
     }
 #endif
 }
@@ -1113,15 +1124,10 @@
         // The window decoration visibility has to be changed before doing actual window state
         // change since in that order the availableGeometry will return directly the right size and
         // we will avoid unnecessarty redraws
-        CEikStatusPane *statusPane = S60->statusPane();
-        CEikButtonGroupContainer *buttonGroup = S60->buttonGroupContainer();
-        TBool visible = !(newstate & (Qt::WindowFullScreen | Qt::WindowMinimized));
-        if (statusPane)
-            statusPane->MakeVisible(visible);
-        if (buttonGroup) {
-            // Visibility
-            buttonGroup->MakeVisible(visible || (isFullscreen && cbaRequested));
-        }
+        const bool visible = !(newstate & (Qt::WindowFullScreen | Qt::WindowMinimized));
+        const bool statusPaneVisibility = visible;
+        const bool buttonGroupVisibility = (visible || (isFullscreen && cbaRequested));
+        S60->setStatusPaneAndButtonGroupVisibility(statusPaneVisibility, buttonGroupVisibility);
 #endif // Q_WS_S60
 
         // Ensure the initial size is valid, since we store it as normalGeometry below.
@@ -1133,8 +1139,10 @@
 
         const bool cbaVisibilityHint = windowFlags() & Qt::WindowSoftkeysVisibleHint;
         if (newstate & Qt::WindowFullScreen && !cbaVisibilityHint) {
+            setAttribute(Qt::WA_OutsideWSRange, false);
             window->SetExtentToWholeScreen();
         } else if (newstate & Qt::WindowMaximized || ((newstate & Qt::WindowFullScreen) && cbaVisibilityHint)) {
+            setAttribute(Qt::WA_OutsideWSRange, false);
             TRect maxExtent = qt_QRect2TRect(qApp->desktop()->availableGeometry(this));
             window->SetExtent(maxExtent.iTl, maxExtent.Size());
         } else {
@@ -1143,7 +1151,7 @@
             // accurate because it did not consider the status pane. This means that when returning
             // normal mode after showing the status pane, the geometry would overlap so we should
             // move it if it never had an explicit position.
-            if (!wasMoved && statusPane && visible) {
+            if (!wasMoved && S60->statusPane() && visible) {
                 TPoint tl = static_cast<CEikAppUi*>(S60->appUi())->ClientRect().iTl;
                 normalGeometry.setTopLeft(QPoint(tl.iX, tl.iY));
             }
--- a/src/gui/kernel/qwidget_win.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/kernel/qwidget_win.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -166,7 +166,7 @@
     qt_tablet_widget = new QWidget(0);
     qt_tablet_widget->createWinId();
     qt_tablet_widget->setObjectName(QLatin1String("Qt internal tablet widget"));
-    // We dont need this internal widget to appear in QApplication::topLevelWidgets()
+    // We don't need this internal widget to appear in QApplication::topLevelWidgets()
     if (QWidgetPrivate::allWidgets)
         QWidgetPrivate::allWidgets->remove(qt_tablet_widget);
     LOGCONTEXT lcMine;
@@ -1547,7 +1547,7 @@
 {
     if (data.window_flags & Qt::MSWindowsFixedSizeDialogHint)
         return false;
-    // if the user explicitely asked for the maximize button, we try to add
+    // if the user explicitly asked for the maximize button, we try to add
     // it even if the window has fixed size.
     if (data.window_flags & Qt::CustomizeWindowHint &&
         data.window_flags & Qt::WindowMaximizeButtonHint)
--- a/src/gui/painting/painting.pri	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/painting/painting.pri	Mon Oct 04 01:19:32 2010 +0300
@@ -212,6 +212,7 @@
     SSE3DNOW_SOURCES += painting/qdrawhelper_sse3dnow.cpp
     SSE_SOURCES += painting/qdrawhelper_sse.cpp
     SSE2_SOURCES += painting/qdrawhelper_sse2.cpp
+    SSSE3_SOURCES += painting/qdrawhelper_ssse3.cpp
     IWMMXT_SOURCES += painting/qdrawhelper_iwmmxt.cpp
 }
 
@@ -246,23 +247,8 @@
         QMAKE_CXXFLAGS.ARMCC *= -O3
 }
 
-neon:*-g++* {
-    DEFINES += QT_HAVE_NEON
-    HEADERS += painting/qdrawhelper_neon_p.h
-    SOURCES += painting/qdrawhelper_neon.cpp
-    QMAKE_CXXFLAGS *= -mfpu=neon
-
-    DRAWHELPER_NEON_ASM_FILES = ../3rdparty/pixman/pixman-arm-neon-asm.S painting/qdrawhelper_neon_asm.S
-
-    neon_compiler.commands = $$QMAKE_CXX -c
-    neon_compiler.commands += $(CXXFLAGS) $(INCPATH) ${QMAKE_FILE_IN} -o ${QMAKE_FILE_OUT}
-    neon_compiler.dependency_type = TYPE_C
-    neon_compiler.output = ${QMAKE_VAR_OBJECTS_DIR}${QMAKE_FILE_BASE}$${first(QMAKE_EXT_OBJ)}
-    neon_compiler.input = DRAWHELPER_NEON_ASM_FILES
-    neon_compiler.variable_out = OBJECTS
-    neon_compiler.name = compiling[neon] ${QMAKE_FILE_IN}
-    silent:neon_compiler.commands = @echo compiling[neon] ${QMAKE_FILE_IN} && $$neon_compiler.commands
-    QMAKE_EXTRA_COMPILERS += neon_compiler
-}
+NEON_SOURCES += painting/qdrawhelper_neon.cpp
+NEON_HEADERS += painting/qdrawhelper_neon_p.h
+NEON_ASM += ../3rdparty/pixman/pixman-arm-neon-asm.S painting/qdrawhelper_neon_asm.S
 
 include($$PWD/../../3rdparty/zlib_dependency.pri)
--- a/src/gui/painting/qbackingstore.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/painting/qbackingstore.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -352,7 +352,7 @@
     // Always flush repainted areas.
     dirtyOnScreen += toClean;
 
-#ifdef Q_WS_QWS
+#if defined(Q_WS_QWS) && !defined(Q_BACKINGSTORE_SUBSURFACES)
     toClean.translate(tlwOffset);
 #endif
 
@@ -1294,7 +1294,12 @@
 #ifdef Q_BACKINGSTORE_SUBSURFACES
         QWindowSurface *subSurface = w->windowSurface();
         BeginPaintInfo beginPaintInfo;
-        beginPaint(toBePainted, w, subSurface, &beginPaintInfo, false);
+
+        QPoint off = w->mapTo(tlw, QPoint());
+        toBePainted.translate(off);
+        beginPaint(toBePainted, w, subSurface, &beginPaintInfo, true);
+        toBePainted.translate(-off);
+
         if (beginPaintInfo.nothingToPaint)
             continue;
 
--- a/src/gui/painting/qblendfunctions.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/painting/qblendfunctions.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -254,10 +254,10 @@
     }
 }
 
-static void qt_blend_rgb16_on_rgb16(uchar *dst, int dbpl,
-                                    const uchar *src, int sbpl,
-                                    int w, int h,
-                                    int const_alpha)
+void qt_blend_rgb16_on_rgb16(uchar *dst, int dbpl,
+                             const uchar *src, int sbpl,
+                             int w, int h,
+                             int const_alpha)
 {
 #ifdef QT_DEBUG_DRAW
     printf("qt_blend_rgb16_on_rgb16: dst=(%p, %d), src=(%p, %d), dim=(%d, %d) alpha=%d\n",
--- a/src/gui/painting/qdrawhelper.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/painting/qdrawhelper.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -46,7 +46,6 @@
 #include <private/qdrawhelper_armv6_p.h>
 #include <private/qdrawhelper_neon_p.h>
 #include <private/qmath_p.h>
-#include <private/qsimd_p.h>
 #include <qmath.h>
 
 QT_BEGIN_NAMESPACE
@@ -656,6 +655,46 @@
     return buffer;
 }
 
+/** \internal
+  interpolate 4 argb pixels with the distx and disty factor.
+  distx and disty bust be between 0 and 16
+ */
+static inline uint interpolate_4_pixels_16(uint tl, uint tr, uint bl, uint br, int distx, int disty, int idistx, int idisty)
+{
+    uint tlrb = ((tl & 0x00ff00ff) * idistx * idisty);
+    uint tlag = (((tl & 0xff00ff00) >> 8) * idistx * idisty);
+    uint trrb = ((tr & 0x00ff00ff) * distx * idisty);
+    uint trag = (((tr & 0xff00ff00) >> 8) * distx * idisty);
+    uint blrb = ((bl & 0x00ff00ff) * idistx * disty);
+    uint blag = (((bl & 0xff00ff00) >> 8) * idistx * disty);
+    uint brrb = ((br & 0x00ff00ff) * distx * disty);
+    uint brag = (((br & 0xff00ff00) >> 8) * distx * disty);
+    return (((tlrb + trrb + blrb + brrb) >> 8) & 0x00ff00ff) | ((tlag + trag + blag + brag) & 0xff00ff00);
+}
+
+
+template<TextureBlendType blendType>
+Q_STATIC_TEMPLATE_FUNCTION inline void fetchTransformedBilinear_pixelBounds(int max, int l1, int l2, int &v1, int &v2)
+{
+    if (blendType == BlendTransformedBilinearTiled) {
+        v1 %= max;
+        if (v1 < 0) v1 += max;
+        v2 = v1 + 1;
+        v2 %= max;
+    } else {
+        if (v1 < l1) {
+            v2 = v1 = l1;
+        } else if (v1 >= l2) {
+            v2 = v1 = l2;
+        } else {
+            v2 = v1 + 1;
+        }
+    }
+
+    Q_ASSERT(v1 >= 0 && v1 < max);
+    Q_ASSERT(v2 >= 0 && v2 < max);
+}
+
 template<TextureBlendType blendType, QImage::Format format> /* blendType = BlendTransformedBilinear or BlendTransformedBilinearTiled */
 Q_STATIC_TEMPLATE_FUNCTION
 const uint * QT_FASTCALL fetchTransformedBilinear(uint *buffer, const Operator *, const QSpanData *data,
@@ -676,8 +715,8 @@
 
     int image_x1 = data->texture.x1;
     int image_y1 = data->texture.y1;
-    int image_x2 = data->texture.x2;
-    int image_y2 = data->texture.y2;
+    int image_x2 = data->texture.x2 - 1;
+    int image_y2 = data->texture.y2 - 1;
 
     const qreal cx = x + 0.5;
     const qreal cy = y + 0.5;
@@ -696,64 +735,230 @@
 
         fx -= half_point;
         fy -= half_point;
-        while (b < end) {
-            int x1 = (fx >> 16);
-            int x2;
+
+        if (fdy == 0) { //simple scale, no rotation
             int y1 = (fy >> 16);
             int y2;
-
-            if (blendType == BlendTransformedBilinearTiled) {
-                x1 %= image_width;
-                if (x1 < 0) x1 += image_width;
-                x2 = x1 + 1;
-                x2 %= image_width;
-
-                y1 %= image_height;
-                if (y1 < 0) y1 += image_height;
-                y2 = y1 + 1;
-                y2 %= image_height;
-            } else {
-                if (x1 < image_x1) {
-                    x2 = x1 = image_x1;
-                } else if (x1 >= image_x2 - 1) {
-                    x2 = x1 = image_x2 - 1;
+            fetchTransformedBilinear_pixelBounds<blendType>(image_height, image_y1, image_y2, y1, y2);
+            const uchar *s1 = data->texture.scanLine(y1);
+            const uchar *s2 = data->texture.scanLine(y2);
+
+            if (fdx <= fixed_scale && fdx > 0) { // scale up on X
+                int disty = (fy & 0x0000ffff) >> 8;
+                int idisty = 256 - disty;
+                int x = fx >> 16;
+
+                // The idea is first to do the interpolation between the row s1 and the row s2
+                // into an intermediate buffer, then we interpolate between two pixel of this buffer.
+
+                // intermediate_buffer[0] is a buffer of red-blue component of the pixel, in the form 0x00RR00BB
+                // intermediate_buffer[1] is the alpha-green component of the pixel, in the form 0x00AA00GG
+                quint32 intermediate_buffer[2][buffer_size + 2];
+                // count is the size used in the intermediate_buffer.
+                int count = qCeil(length * data->m11) + 2; //+1 for the last pixel to interpolate with, and +1 for rounding errors.
+                Q_ASSERT(count <= buffer_size + 2); //length is supposed to be <= buffer_size and data->m11 < 1 in this case
+                int f = 0;
+                int lim = count;
+                if (blendType == BlendTransformedBilinearTiled) {
+                    x %= image_width;
+                    if (x < 0) x += image_width;
                 } else {
-                    x2 = x1 + 1;
+                    lim = qMin(count, image_x2-x+1);
+                    if (x < image_x1) {
+                        Q_ASSERT(x <= image_x2);
+                        uint t = fetch(s1, image_x1, data->texture.colorTable);
+                        uint b = fetch(s2, image_x1, data->texture.colorTable);
+                        quint32 rb = (((t & 0xff00ff) * idisty + (b & 0xff00ff) * disty) >> 8) & 0xff00ff;
+                        quint32 ag = ((((t>>8) & 0xff00ff) * idisty + ((b>>8) & 0xff00ff) * disty) >> 8) & 0xff00ff;
+                        do {
+                            intermediate_buffer[0][f] = rb;
+                            intermediate_buffer[1][f] = ag;
+                            f++;
+                            x++;
+                        } while (x < image_x1 && f < lim);
+                    }
+                }
+
+#if defined(QT_ALWAYS_HAVE_SSE2)
+                if (blendType != BlendTransformedBilinearTiled &&
+                        (format == QImage::Format_ARGB32_Premultiplied || format == QImage::Format_RGB32)) {
+
+                    const __m128i disty_ = _mm_set1_epi16(disty);
+                    const __m128i idisty_ = _mm_set1_epi16(idisty);
+                    const __m128i colorMask = _mm_set1_epi32(0x00ff00ff);
+
+                    lim -= 3;
+                    for (; f < lim; x += 4, f += 4) {
+                        // Load 4 pixels from s1, and split the alpha-green and red-blue component
+                        __m128i top = _mm_loadu_si128((__m128i*)((const uint *)(s1)+x));
+                        __m128i topAG = _mm_srli_epi16(top, 8);
+                        __m128i topRB = _mm_and_si128(top, colorMask);
+                        // Multiplies each colour component by idisty
+                        topAG = _mm_mullo_epi16 (topAG, idisty_);
+                        topRB = _mm_mullo_epi16 (topRB, idisty_);
+
+                        // Same for the s2 vector
+                        __m128i bottom = _mm_loadu_si128((__m128i*)((const uint *)(s2)+x));
+                        __m128i bottomAG = _mm_srli_epi16(bottom, 8);
+                        __m128i bottomRB = _mm_and_si128(bottom, colorMask);
+                        bottomAG = _mm_mullo_epi16 (bottomAG, disty_);
+                        bottomRB = _mm_mullo_epi16 (bottomRB, disty_);
+
+                        // Add the values, and shift to only keep 8 significant bits per colors
+                        __m128i rAG =_mm_add_epi16(topAG, bottomAG);
+                        rAG = _mm_srli_epi16(rAG, 8);
+                        _mm_storeu_si128((__m128i*)(&intermediate_buffer[1][f]), rAG);
+                        __m128i rRB =_mm_add_epi16(topRB, bottomRB);
+                        rRB = _mm_srli_epi16(rRB, 8);
+                        _mm_storeu_si128((__m128i*)(&intermediate_buffer[0][f]), rRB);
+                    }
+                }
+#endif
+                for (; f < count; f++) { // Same as above but without sse2
+                    if (blendType == BlendTransformedBilinearTiled) {
+                        if (x >= image_width) x -= image_width;
+                    } else {
+                        x = qMin(x, image_x2);
+                    }
+
+                    uint t = fetch(s1, x, data->texture.colorTable);
+                    uint b = fetch(s2, x, data->texture.colorTable);
+
+                    intermediate_buffer[0][f] = (((t & 0xff00ff) * idisty + (b & 0xff00ff) * disty) >> 8) & 0xff00ff;
+                    intermediate_buffer[1][f] = ((((t>>8) & 0xff00ff) * idisty + ((b>>8) & 0xff00ff) * disty) >> 8) & 0xff00ff;
+                    x++;
                 }
-                if (y1 < image_y1) {
-                    y2 = y1 = image_y1;
-                } else if (y1 >= image_y2 - 1) {
-                    y2 = y1 = image_y2 - 1;
-                } else {
-                    y2 = y1 + 1;
+                // Now interpolate the values from the intermediate_buffer to get the final result.
+                fx &= fixed_scale - 1;
+                Q_ASSERT((fx >> 16) == 0);
+                while (b < end) {
+                    register int x1 = (fx >> 16);
+                    register int x2 = x1 + 1;
+                    Q_ASSERT(x1 >= 0);
+                    Q_ASSERT(x2 < count);
+
+                    register int distx = (fx & 0x0000ffff) >> 8;
+                    register int idistx = 256 - distx;
+                    int rb = ((intermediate_buffer[0][x1] * idistx + intermediate_buffer[0][x2] * distx) >> 8) & 0xff00ff;
+                    int ag = (intermediate_buffer[1][x1] * idistx + intermediate_buffer[1][x2] * distx) & 0xff00ff00;
+                    *b = rb | ag;
+                    b++;
+                    fx += fdx;
+                }
+            } else if ((fdx < 0 && fdx > -(fixed_scale / 8)) || fabs(data->m22) < (1./8.)) { // scale up more than 8x
+                int y1 = (fy >> 16);
+                int y2;
+                fetchTransformedBilinear_pixelBounds<blendType>(image_height, image_y1, image_y2, y1, y2);
+                const uchar *s1 = data->texture.scanLine(y1);
+                const uchar *s2 = data->texture.scanLine(y2);
+                int disty = (fy & 0x0000ffff) >> 8;
+                int idisty = 256 - disty;
+                while (b < end) {
+                    int x1 = (fx >> 16);
+                    int x2;
+                    fetchTransformedBilinear_pixelBounds<blendType>(image_width, image_x1, image_x2, x1, x2);
+                    uint tl = fetch(s1, x1, data->texture.colorTable);
+                    uint tr = fetch(s1, x2, data->texture.colorTable);
+                    uint bl = fetch(s2, x1, data->texture.colorTable);
+                    uint br = fetch(s2, x2, data->texture.colorTable);
+
+                    int distx = (fx & 0x0000ffff) >> 8;
+                    int idistx = 256 - distx;
+
+                    uint xtop = INTERPOLATE_PIXEL_256(tl, idistx, tr, distx);
+                    uint xbot = INTERPOLATE_PIXEL_256(bl, idistx, br, distx);
+                    *b = INTERPOLATE_PIXEL_256(xtop, idisty, xbot, disty);
+
+                    fx += fdx;
+                    ++b;
+                }
+            } else { //scale down
+                int y1 = (fy >> 16);
+                int y2;
+                fetchTransformedBilinear_pixelBounds<blendType>(image_height, image_y1, image_y2, y1, y2);
+                const uchar *s1 = data->texture.scanLine(y1);
+                const uchar *s2 = data->texture.scanLine(y2);
+                int disty = (fy & 0x0000ffff) >> 12;
+                int idisty = 16 - disty;
+                while (b < end) {
+                    int x1 = (fx >> 16);
+                    int x2;
+                    fetchTransformedBilinear_pixelBounds<blendType>(image_width, image_x1, image_x2, x1, x2);
+                    uint tl = fetch(s1, x1, data->texture.colorTable);
+                    uint tr = fetch(s1, x2, data->texture.colorTable);
+                    uint bl = fetch(s2, x1, data->texture.colorTable);
+                    uint br = fetch(s2, x2, data->texture.colorTable);
+                    int distx = (fx & 0x0000ffff) >> 12;
+                    int idistx = 16 - distx;
+                    *b = interpolate_4_pixels_16(tl, tr, bl, br, distx, disty, idistx, idisty);
+                    fx += fdx;
+                    ++b;
                 }
             }
-
-            Q_ASSERT(x1 >= 0 && x1 < image_width);
-            Q_ASSERT(x2 >= 0 && x2 < image_width);
-            Q_ASSERT(y1 >= 0 && y1 < image_height);
-            Q_ASSERT(y2 >= 0 && y2 < image_height);
-
-            const uchar *s1 = data->texture.scanLine(y1);
-            const uchar *s2 = data->texture.scanLine(y2);
-
-            uint tl = fetch(s1, x1, data->texture.colorTable);
-            uint tr = fetch(s1, x2, data->texture.colorTable);
-            uint bl = fetch(s2, x1, data->texture.colorTable);
-            uint br = fetch(s2, x2, data->texture.colorTable);
-
-            int distx = (fx & 0x0000ffff) >> 8;
-            int disty = (fy & 0x0000ffff) >> 8;
-            int idistx = 256 - distx;
-            int idisty = 256 - disty;
-
-            uint xtop = INTERPOLATE_PIXEL_256(tl, idistx, tr, distx);
-            uint xbot = INTERPOLATE_PIXEL_256(bl, idistx, br, distx);
-            *b = INTERPOLATE_PIXEL_256(xtop, idisty, xbot, disty);
-
-            fx += fdx;
-            fy += fdy;
-            ++b;
+        } else { //rotation
+            if (fabs(data->m11) > 8 || fabs(data->m22) > 8) {
+                //if we are zooming more than 8 times, we use 8bit precision for the position.
+                while (b < end) {
+                    int x1 = (fx >> 16);
+                    int x2;
+                    int y1 = (fy >> 16);
+                    int y2;
+
+                    fetchTransformedBilinear_pixelBounds<blendType>(image_width, image_x1, image_x2, x1, x2);
+                    fetchTransformedBilinear_pixelBounds<blendType>(image_height, image_y1, image_y2, y1, y2);
+
+                    const uchar *s1 = data->texture.scanLine(y1);
+                    const uchar *s2 = data->texture.scanLine(y2);
+
+                    uint tl = fetch(s1, x1, data->texture.colorTable);
+                    uint tr = fetch(s1, x2, data->texture.colorTable);
+                    uint bl = fetch(s2, x1, data->texture.colorTable);
+                    uint br = fetch(s2, x2, data->texture.colorTable);
+
+                    int distx = (fx & 0x0000ffff) >> 8;
+                    int disty = (fy & 0x0000ffff) >> 8;
+                    int idistx = 256 - distx;
+                    int idisty = 256 - disty;
+
+                    uint xtop = INTERPOLATE_PIXEL_256(tl, idistx, tr, distx);
+                    uint xbot = INTERPOLATE_PIXEL_256(bl, idistx, br, distx);
+                    *b = INTERPOLATE_PIXEL_256(xtop, idisty, xbot, disty);
+
+                    fx += fdx;
+                    fy += fdy;
+                    ++b;
+                }
+            } else {
+                //we are zooming less than 8x, use 4bit precision
+                while (b < end) {
+                    int x1 = (fx >> 16);
+                    int x2;
+                    int y1 = (fy >> 16);
+                    int y2;
+
+                    fetchTransformedBilinear_pixelBounds<blendType>(image_width, image_x1, image_x2, x1, x2);
+                    fetchTransformedBilinear_pixelBounds<blendType>(image_height, image_y1, image_y2, y1, y2);
+
+                    const uchar *s1 = data->texture.scanLine(y1);
+                    const uchar *s2 = data->texture.scanLine(y2);
+
+                    uint tl = fetch(s1, x1, data->texture.colorTable);
+                    uint tr = fetch(s1, x2, data->texture.colorTable);
+                    uint bl = fetch(s2, x1, data->texture.colorTable);
+                    uint br = fetch(s2, x2, data->texture.colorTable);
+
+                    int distx = (fx & 0x0000ffff) >> 12;
+                    int disty = (fy & 0x0000ffff) >> 12;
+                    int idistx = 16 - distx;
+                    int idisty = 16 - disty;
+
+                    *b = interpolate_4_pixels_16(tl, tr, bl, br, distx, disty, idistx, idisty);
+
+                    fx += fdx;
+                    fy += fdy;
+                    ++b;
+                }
+            }
         }
     } else {
         const qreal fdx = data->m11;
@@ -779,37 +984,8 @@
             int idistx = 256 - distx;
             int idisty = 256 - disty;
 
-            if (blendType == BlendTransformedBilinearTiled) {
-                x1 %= image_width;
-                if (x1 < 0) x1 += image_width;
-                x2 = x1 + 1;
-                x2 %= image_width;
-
-                y1 %= image_height;
-                if (y1 < 0) y1 += image_height;
-                y2 = y1 + 1;
-                y2 %= image_height;
-            } else {
-                if (x1 < 0) {
-                    x2 = x1 = 0;
-                } else if (x1 >= image_width - 1) {
-                    x2 = x1 = image_width - 1;
-                } else {
-                    x2 = x1 + 1;
-                }
-                if (y1 < 0) {
-                    y2 = y1 = 0;
-                } else if (y1 >= image_height - 1) {
-                    y2 = y1 = image_height - 1;
-                } else {
-                    y2 = y1 + 1;
-                }
-            }
-
-            Q_ASSERT(x1 >= 0 && x1 < image_width);
-            Q_ASSERT(x2 >= 0 && x2 < image_width);
-            Q_ASSERT(y1 >= 0 && y1 < image_height);
-            Q_ASSERT(y2 >= 0 && y2 < image_height);
+            fetchTransformedBilinear_pixelBounds<blendType>(image_width, image_x1, image_x2, x1, x2);
+            fetchTransformedBilinear_pixelBounds<blendType>(image_height, image_y1, image_y2, y1, y2);
 
             const uchar *s1 = data->texture.scanLine(y1);
             const uchar *s2 = data->texture.scanLine(y2);
@@ -1309,12 +1485,12 @@
     }\
 }
 
-static void QT_FASTCALL comp_func_solid_Clear(uint *dest, int length, uint, uint const_alpha)
+void QT_FASTCALL comp_func_solid_Clear(uint *dest, int length, uint, uint const_alpha)
 {
     comp_func_Clear_impl(dest, length, const_alpha);
 }
 
-static void QT_FASTCALL comp_func_Clear(uint *dest, const uint *, int length, uint const_alpha)
+void QT_FASTCALL comp_func_Clear(uint *dest, const uint *, int length, uint const_alpha)
 {
     comp_func_Clear_impl(dest, length, const_alpha);
 }
@@ -1323,7 +1499,7 @@
   result = s
   dest = s * ca + d * cia
 */
-static void QT_FASTCALL comp_func_solid_Source(uint *dest, int length, uint color, uint const_alpha)
+void QT_FASTCALL comp_func_solid_Source(uint *dest, int length, uint color, uint const_alpha)
 {
     if (const_alpha == 255) {
         QT_MEMFILL_UINT(dest, length, color);
@@ -1338,7 +1514,7 @@
     }
 }
 
-static void QT_FASTCALL comp_func_Source(uint *dest, const uint *src, int length, uint const_alpha)
+void QT_FASTCALL comp_func_Source(uint *dest, const uint *src, int length, uint const_alpha)
 {
     if (const_alpha == 255) {
         ::memcpy(dest, src, length * sizeof(uint));
@@ -1352,11 +1528,11 @@
     }
 }
 
-static void QT_FASTCALL comp_func_solid_Destination(uint *, int, uint, uint)
-{
-}
-
-static void QT_FASTCALL comp_func_Destination(uint *, const uint *, int, uint)
+void QT_FASTCALL comp_func_solid_Destination(uint *, int, uint, uint)
+{
+}
+
+void QT_FASTCALL comp_func_Destination(uint *, const uint *, int, uint)
 {
 }
 
@@ -1366,7 +1542,7 @@
        = s * ca + d * (sia * ca + cia)
        = s * ca + d * (1 - sa*ca)
 */
-static void QT_FASTCALL comp_func_solid_SourceOver(uint *dest, int length, uint color, uint const_alpha)
+void QT_FASTCALL comp_func_solid_SourceOver(uint *dest, int length, uint color, uint const_alpha)
 {
     if ((const_alpha & qAlpha(color)) == 255) {
         QT_MEMFILL_UINT(dest, length, color);
@@ -1381,7 +1557,7 @@
     }
 }
 
-static void QT_FASTCALL comp_func_SourceOver(uint *dest, const uint *src, int length, uint const_alpha)
+void QT_FASTCALL comp_func_SourceOver(uint *dest, const uint *src, int length, uint const_alpha)
 {
     PRELOAD_INIT2(dest, src)
     if (const_alpha == 255) {
@@ -1407,7 +1583,7 @@
   dest = (d + s * dia) * ca + d * cia
        = d + s * dia * ca
 */
-static void QT_FASTCALL comp_func_solid_DestinationOver(uint *dest, int length, uint color, uint const_alpha)
+void QT_FASTCALL comp_func_solid_DestinationOver(uint *dest, int length, uint color, uint const_alpha)
 {
     if (const_alpha != 255)
         color = BYTE_MUL(color, const_alpha);
@@ -1419,7 +1595,7 @@
     }
 }
 
-static void QT_FASTCALL comp_func_DestinationOver(uint *dest, const uint *src, int length, uint const_alpha)
+void QT_FASTCALL comp_func_DestinationOver(uint *dest, const uint *src, int length, uint const_alpha)
 {
     PRELOAD_INIT2(dest, src)
     if (const_alpha == 255) {
@@ -1442,7 +1618,7 @@
   result = s * da
   dest = s * da * ca + d * cia
 */
-static void QT_FASTCALL comp_func_solid_SourceIn(uint *dest, int length, uint color, uint const_alpha)
+void QT_FASTCALL comp_func_solid_SourceIn(uint *dest, int length, uint color, uint const_alpha)
 {
     PRELOAD_INIT(dest)
     if (const_alpha == 255) {
@@ -1461,7 +1637,7 @@
     }
 }
 
-static void QT_FASTCALL comp_func_SourceIn(uint *dest, const uint *src, int length, uint const_alpha)
+void QT_FASTCALL comp_func_SourceIn(uint *dest, const uint *src, int length, uint const_alpha)
 {
     PRELOAD_INIT2(dest, src)
     if (const_alpha == 255) {
@@ -1485,7 +1661,7 @@
   dest = d * sa * ca + d * cia
        = d * (sa * ca + cia)
 */
-static void QT_FASTCALL comp_func_solid_DestinationIn(uint *dest, int length, uint color, uint const_alpha)
+void QT_FASTCALL comp_func_solid_DestinationIn(uint *dest, int length, uint color, uint const_alpha)
 {
     uint a = qAlpha(color);
     if (const_alpha != 255) {
@@ -1498,7 +1674,7 @@
     }
 }
 
-static void QT_FASTCALL comp_func_DestinationIn(uint *dest, const uint *src, int length, uint const_alpha)
+void QT_FASTCALL comp_func_DestinationIn(uint *dest, const uint *src, int length, uint const_alpha)
 {
     PRELOAD_INIT2(dest, src)
     if (const_alpha == 255) {
@@ -1521,7 +1697,7 @@
   dest = s * dia * ca + d * cia
 */
 
-static void QT_FASTCALL comp_func_solid_SourceOut(uint *dest, int length, uint color, uint const_alpha)
+void QT_FASTCALL comp_func_solid_SourceOut(uint *dest, int length, uint color, uint const_alpha)
 {
     PRELOAD_INIT(dest)
     if (const_alpha == 255) {
@@ -1540,7 +1716,7 @@
     }
 }
 
-static void QT_FASTCALL comp_func_SourceOut(uint *dest, const uint *src, int length, uint const_alpha)
+void QT_FASTCALL comp_func_SourceOut(uint *dest, const uint *src, int length, uint const_alpha)
 {
     PRELOAD_INIT2(dest, src)
     if (const_alpha == 255) {
@@ -1564,7 +1740,7 @@
   dest = d * sia * ca + d * cia
        = d * (sia * ca + cia)
 */
-static void QT_FASTCALL comp_func_solid_DestinationOut(uint *dest, int length, uint color, uint const_alpha)
+void QT_FASTCALL comp_func_solid_DestinationOut(uint *dest, int length, uint color, uint const_alpha)
 {
     uint a = qAlpha(~color);
     if (const_alpha != 255)
@@ -1576,7 +1752,7 @@
     }
 }
 
-static void QT_FASTCALL comp_func_DestinationOut(uint *dest, const uint *src, int length, uint const_alpha)
+void QT_FASTCALL comp_func_DestinationOut(uint *dest, const uint *src, int length, uint const_alpha)
 {
     PRELOAD_INIT2(dest, src)
     if (const_alpha == 255) {
@@ -1600,7 +1776,7 @@
        = s*ca * da + d * (sia*ca + cia)
        = s*ca * da + d * (1 - sa*ca)
 */
-static void QT_FASTCALL comp_func_solid_SourceAtop(uint *dest, int length, uint color, uint const_alpha)
+void QT_FASTCALL comp_func_solid_SourceAtop(uint *dest, int length, uint color, uint const_alpha)
 {
     if (const_alpha != 255) {
         color = BYTE_MUL(color, const_alpha);
@@ -1613,7 +1789,7 @@
     }
 }
 
-static void QT_FASTCALL comp_func_SourceAtop(uint *dest, const uint *src, int length, uint const_alpha)
+void QT_FASTCALL comp_func_SourceAtop(uint *dest, const uint *src, int length, uint const_alpha)
 {
     PRELOAD_INIT2(dest, src)
     if (const_alpha == 255) {
@@ -1638,7 +1814,7 @@
   dest = d*sa*ca + s*dia*ca + d *cia
        = s*ca * dia + d * (sa*ca + cia)
 */
-static void QT_FASTCALL comp_func_solid_DestinationAtop(uint *dest, int length, uint color, uint const_alpha)
+void QT_FASTCALL comp_func_solid_DestinationAtop(uint *dest, int length, uint color, uint const_alpha)
 {
     uint a = qAlpha(color);
     if (const_alpha != 255) {
@@ -1653,7 +1829,7 @@
     }
 }
 
-static void QT_FASTCALL comp_func_DestinationAtop(uint *dest, const uint *src, int length, uint const_alpha)
+void QT_FASTCALL comp_func_DestinationAtop(uint *dest, const uint *src, int length, uint const_alpha)
 {
     PRELOAD_INIT2(dest, src)
     if (const_alpha == 255) {
@@ -1681,7 +1857,7 @@
        = s*ca * dia + d * (sia*ca + cia)
        = s*ca * dia + d * (1 - sa*ca)
 */
-static void QT_FASTCALL comp_func_solid_XOR(uint *dest, int length, uint color, uint const_alpha)
+void QT_FASTCALL comp_func_solid_XOR(uint *dest, int length, uint color, uint const_alpha)
 {
     if (const_alpha != 255)
         color = BYTE_MUL(color, const_alpha);
@@ -1695,7 +1871,7 @@
     }
 }
 
-static void QT_FASTCALL comp_func_XOR(uint *dest, const uint *src, int length, uint const_alpha)
+void QT_FASTCALL comp_func_XOR(uint *dest, const uint *src, int length, uint const_alpha)
 {
     PRELOAD_INIT2(dest, src)
     if (const_alpha == 255) {
@@ -1715,11 +1891,6 @@
     }
 }
 
-static const uint AMASK = 0xff000000;
-static const uint RMASK = 0x00ff0000;
-static const uint GMASK = 0x0000ff00;
-static const uint BMASK = 0x000000ff;
-
 struct QFullCoverage {
     inline void store(uint *dest, const uint src) const
     {
@@ -1762,14 +1933,12 @@
     for (int i = 0; i < length; ++i) {
         PRELOAD_COND(dest)
         uint d = dest[i];
-#define MIX(mask) (qMin(((qint64(s)&mask) + (qint64(d)&mask)), qint64(mask)))
-        d = (MIX(AMASK) | MIX(RMASK) | MIX(GMASK) | MIX(BMASK));
-#undef MIX
+        d = comp_func_Plus_one_pixel(d, s);
         coverage.store(&dest[i], d);
     }
 }
 
-static void QT_FASTCALL comp_func_solid_Plus(uint *dest, int length, uint color, uint const_alpha)
+void QT_FASTCALL comp_func_solid_Plus(uint *dest, int length, uint color, uint const_alpha)
 {
     if (const_alpha == 255)
         comp_func_solid_Plus_impl(dest, length, color, QFullCoverage());
@@ -1786,15 +1955,13 @@
         uint d = dest[i];
         uint s = src[i];
 
-#define MIX(mask) (qMin(((qint64(s)&mask) + (qint64(d)&mask)), qint64(mask)))
-        d = (MIX(AMASK) | MIX(RMASK) | MIX(GMASK) | MIX(BMASK));
-#undef MIX
+        d = comp_func_Plus_one_pixel(d, s);
 
         coverage.store(&dest[i], d);
     }
 }
 
-static void QT_FASTCALL comp_func_Plus(uint *dest, const uint *src, int length, uint const_alpha)
+void QT_FASTCALL comp_func_Plus(uint *dest, const uint *src, int length, uint const_alpha)
 {
     if (const_alpha == 255)
         comp_func_Plus_impl(dest, src, length, QFullCoverage());
@@ -1835,7 +2002,7 @@
     }
 }
 
-static void QT_FASTCALL comp_func_solid_Multiply(uint *dest, int length, uint color, uint const_alpha)
+void QT_FASTCALL comp_func_solid_Multiply(uint *dest, int length, uint color, uint const_alpha)
 {
     if (const_alpha == 255)
         comp_func_solid_Multiply_impl(dest, length, color, QFullCoverage());
@@ -1866,7 +2033,7 @@
     }
 }
 
-static void QT_FASTCALL comp_func_Multiply(uint *dest, const uint *src, int length, uint const_alpha)
+void QT_FASTCALL comp_func_Multiply(uint *dest, const uint *src, int length, uint const_alpha)
 {
     if (const_alpha == 255)
         comp_func_Multiply_impl(dest, src, length, QFullCoverage());
@@ -1903,7 +2070,7 @@
     }
 }
 
-static void QT_FASTCALL comp_func_solid_Screen(uint *dest, int length, uint color, uint const_alpha)
+void QT_FASTCALL comp_func_solid_Screen(uint *dest, int length, uint color, uint const_alpha)
 {
     if (const_alpha == 255)
         comp_func_solid_Screen_impl(dest, length, color, QFullCoverage());
@@ -1934,7 +2101,7 @@
     }
 }
 
-static void QT_FASTCALL comp_func_Screen(uint *dest, const uint *src, int length, uint const_alpha)
+void QT_FASTCALL comp_func_Screen(uint *dest, const uint *src, int length, uint const_alpha)
 {
     if (const_alpha == 255)
         comp_func_Screen_impl(dest, src, length, QFullCoverage());
@@ -1982,7 +2149,7 @@
     }
 }
 
-static void QT_FASTCALL comp_func_solid_Overlay(uint *dest, int length, uint color, uint const_alpha)
+void QT_FASTCALL comp_func_solid_Overlay(uint *dest, int length, uint color, uint const_alpha)
 {
     if (const_alpha == 255)
         comp_func_solid_Overlay_impl(dest, length, color, QFullCoverage());
@@ -2013,7 +2180,7 @@
     }
 }
 
-static void QT_FASTCALL comp_func_Overlay(uint *dest, const uint *src, int length, uint const_alpha)
+void QT_FASTCALL comp_func_Overlay(uint *dest, const uint *src, int length, uint const_alpha)
 {
     if (const_alpha == 255)
         comp_func_Overlay_impl(dest, src, length, QFullCoverage());
@@ -2055,7 +2222,7 @@
     }
 }
 
-static void QT_FASTCALL comp_func_solid_Darken(uint *dest, int length, uint color, uint const_alpha)
+void QT_FASTCALL comp_func_solid_Darken(uint *dest, int length, uint color, uint const_alpha)
 {
     if (const_alpha == 255)
         comp_func_solid_Darken_impl(dest, length, color, QFullCoverage());
@@ -2086,7 +2253,7 @@
     }
 }
 
-static void QT_FASTCALL comp_func_Darken(uint *dest, const uint *src, int length, uint const_alpha)
+void QT_FASTCALL comp_func_Darken(uint *dest, const uint *src, int length, uint const_alpha)
 {
     if (const_alpha == 255)
         comp_func_Darken_impl(dest, src, length, QFullCoverage());
@@ -2128,7 +2295,7 @@
     }
 }
 
-static void QT_FASTCALL comp_func_solid_Lighten(uint *dest, int length, uint color, uint const_alpha)
+void QT_FASTCALL comp_func_solid_Lighten(uint *dest, int length, uint color, uint const_alpha)
 {
     if (const_alpha == 255)
         comp_func_solid_Lighten_impl(dest, length, color, QFullCoverage());
@@ -2159,7 +2326,7 @@
     }
 }
 
-static void QT_FASTCALL comp_func_Lighten(uint *dest, const uint *src, int length, uint const_alpha)
+void QT_FASTCALL comp_func_Lighten(uint *dest, const uint *src, int length, uint const_alpha)
 {
     if (const_alpha == 255)
         comp_func_Lighten_impl(dest, src, length, QFullCoverage());
@@ -2211,7 +2378,7 @@
     }
 }
 
-static void QT_FASTCALL comp_func_solid_ColorDodge(uint *dest, int length, uint color, uint const_alpha)
+void QT_FASTCALL comp_func_solid_ColorDodge(uint *dest, int length, uint color, uint const_alpha)
 {
     if (const_alpha == 255)
         comp_func_solid_ColorDodge_impl(dest, length, color, QFullCoverage());
@@ -2242,7 +2409,7 @@
     }
 }
 
-static void QT_FASTCALL comp_func_ColorDodge(uint *dest, const uint *src, int length, uint const_alpha)
+void QT_FASTCALL comp_func_ColorDodge(uint *dest, const uint *src, int length, uint const_alpha)
 {
     if (const_alpha == 255)
         comp_func_ColorDodge_impl(dest, src, length, QFullCoverage());
@@ -2294,7 +2461,7 @@
     }
 }
 
-static void QT_FASTCALL comp_func_solid_ColorBurn(uint *dest, int length, uint color, uint const_alpha)
+void QT_FASTCALL comp_func_solid_ColorBurn(uint *dest, int length, uint color, uint const_alpha)
 {
     if (const_alpha == 255)
         comp_func_solid_ColorBurn_impl(dest, length, color, QFullCoverage());
@@ -2325,7 +2492,7 @@
     }
 }
 
-static void QT_FASTCALL comp_func_ColorBurn(uint *dest, const uint *src, int length, uint const_alpha)
+void QT_FASTCALL comp_func_ColorBurn(uint *dest, const uint *src, int length, uint const_alpha)
 {
     if (const_alpha == 255)
         comp_func_ColorBurn_impl(dest, src, length, QFullCoverage());
@@ -2374,7 +2541,7 @@
     }
 }
 
-static void QT_FASTCALL comp_func_solid_HardLight(uint *dest, int length, uint color, uint const_alpha)
+void QT_FASTCALL comp_func_solid_HardLight(uint *dest, int length, uint color, uint const_alpha)
 {
     if (const_alpha == 255)
         comp_func_solid_HardLight_impl(dest, length, color, QFullCoverage());
@@ -2405,7 +2572,7 @@
     }
 }
 
-static void QT_FASTCALL comp_func_HardLight(uint *dest, const uint *src, int length, uint const_alpha)
+void QT_FASTCALL comp_func_HardLight(uint *dest, const uint *src, int length, uint const_alpha)
 {
     if (const_alpha == 255)
         comp_func_HardLight_impl(dest, src, length, QFullCoverage());
@@ -2465,7 +2632,7 @@
     }
 }
 
-static void QT_FASTCALL comp_func_solid_SoftLight(uint *dest, int length, uint color, uint const_alpha)
+void QT_FASTCALL comp_func_solid_SoftLight(uint *dest, int length, uint color, uint const_alpha)
 {
     if (const_alpha == 255)
         comp_func_solid_SoftLight_impl(dest, length, color, QFullCoverage());
@@ -2496,7 +2663,7 @@
     }
 }
 
-static void QT_FASTCALL comp_func_SoftLight(uint *dest, const uint *src, int length, uint const_alpha)
+void QT_FASTCALL comp_func_SoftLight(uint *dest, const uint *src, int length, uint const_alpha)
 {
     if (const_alpha == 255)
         comp_func_SoftLight_impl(dest, src, length, QFullCoverage());
@@ -2538,7 +2705,7 @@
     }
 }
 
-static void QT_FASTCALL comp_func_solid_Difference(uint *dest, int length, uint color, uint const_alpha)
+void QT_FASTCALL comp_func_solid_Difference(uint *dest, int length, uint color, uint const_alpha)
 {
     if (const_alpha == 255)
         comp_func_solid_Difference_impl(dest, length, color, QFullCoverage());
@@ -2569,7 +2736,7 @@
     }
 }
 
-static void QT_FASTCALL comp_func_Difference(uint *dest, const uint *src, int length, uint const_alpha)
+void QT_FASTCALL comp_func_Difference(uint *dest, const uint *src, int length, uint const_alpha)
 {
     if (const_alpha == 255)
         comp_func_Difference_impl(dest, src, length, QFullCoverage());
@@ -2605,7 +2772,7 @@
     }
 }
 
-static void QT_FASTCALL comp_func_solid_Exclusion(uint *dest, int length, uint color, uint const_alpha)
+void QT_FASTCALL comp_func_solid_Exclusion(uint *dest, int length, uint color, uint const_alpha)
 {
     if (const_alpha == 255)
         comp_func_solid_Exclusion_impl(dest, length, color, QFullCoverage());
@@ -2636,7 +2803,7 @@
     }
 }
 
-static void QT_FASTCALL comp_func_Exclusion(uint *dest, const uint *src, int length, uint const_alpha)
+void QT_FASTCALL comp_func_Exclusion(uint *dest, const uint *src, int length, uint const_alpha)
 {
     if (const_alpha == 255)
         comp_func_Exclusion_impl(dest, src, length, QFullCoverage());
@@ -2649,30 +2816,30 @@
 #  pragma pop
 #endif
 
-static void QT_FASTCALL rasterop_solid_SourceOrDestination(uint *dest,
-                                                           int length,
-                                                           uint color,
-                                                           uint const_alpha)
+void QT_FASTCALL rasterop_solid_SourceOrDestination(uint *dest,
+                                                    int length,
+                                                    uint color,
+                                                    uint const_alpha)
 {
     Q_UNUSED(const_alpha);
     while (length--)
         *dest++ |= color;
 }
 
-static void QT_FASTCALL rasterop_SourceOrDestination(uint *dest,
-                                                     const uint *src,
-                                                     int length,
-                                                     uint const_alpha)
+void QT_FASTCALL rasterop_SourceOrDestination(uint *dest,
+                                              const uint *src,
+                                              int length,
+                                              uint const_alpha)
 {
     Q_UNUSED(const_alpha);
     while (length--)
         *dest++ |= *src++;
 }
 
-static void QT_FASTCALL rasterop_solid_SourceAndDestination(uint *dest,
-                                                            int length,
-                                                            uint color,
-                                                            uint const_alpha)
+void QT_FASTCALL rasterop_solid_SourceAndDestination(uint *dest,
+                                                     int length,
+                                                     uint color,
+                                                     uint const_alpha)
 {
     Q_UNUSED(const_alpha);
     color |= 0xff000000;
@@ -2680,10 +2847,10 @@
         *dest++ &= color;
 }
 
-static void QT_FASTCALL rasterop_SourceAndDestination(uint *dest,
-                                                      const uint *src,
-                                                      int length,
-                                                      uint const_alpha)
+void QT_FASTCALL rasterop_SourceAndDestination(uint *dest,
+                                               const uint *src,
+                                               int length,
+                                               uint const_alpha)
 {
     Q_UNUSED(const_alpha);
     while (length--) {
@@ -2692,10 +2859,10 @@
     }
 }
 
-static void QT_FASTCALL rasterop_solid_SourceXorDestination(uint *dest,
-                                                            int length,
-                                                            uint color,
-                                                            uint const_alpha)
+void QT_FASTCALL rasterop_solid_SourceXorDestination(uint *dest,
+                                                     int length,
+                                                     uint color,
+                                                     uint const_alpha)
 {
     Q_UNUSED(const_alpha);
     color &= 0x00ffffff;
@@ -2703,10 +2870,10 @@
         *dest++ ^= color;
 }
 
-static void QT_FASTCALL rasterop_SourceXorDestination(uint *dest,
-                                                      const uint *src,
-                                                      int length,
-                                                      uint const_alpha)
+void QT_FASTCALL rasterop_SourceXorDestination(uint *dest,
+                                               const uint *src,
+                                               int length,
+                                               uint const_alpha)
 {
     Q_UNUSED(const_alpha);
     while (length--) {
@@ -2715,10 +2882,10 @@
     }
 }
 
-static void QT_FASTCALL rasterop_solid_NotSourceAndNotDestination(uint *dest,
-                                                                  int length,
-                                                                  uint color,
-                                                                  uint const_alpha)
+void QT_FASTCALL rasterop_solid_NotSourceAndNotDestination(uint *dest,
+                                                           int length,
+                                                           uint color,
+                                                           uint const_alpha)
 {
     Q_UNUSED(const_alpha);
     color = ~color;
@@ -2728,10 +2895,10 @@
     }
 }
 
-static void QT_FASTCALL rasterop_NotSourceAndNotDestination(uint *dest,
-                                                            const uint *src,
-                                                            int length,
-                                                            uint const_alpha)
+void QT_FASTCALL rasterop_NotSourceAndNotDestination(uint *dest,
+                                                     const uint *src,
+                                                     int length,
+                                                     uint const_alpha)
 {
     Q_UNUSED(const_alpha);
     while (length--) {
@@ -2740,10 +2907,10 @@
     }
 }
 
-static void QT_FASTCALL rasterop_solid_NotSourceOrNotDestination(uint *dest,
-                                                                 int length,
-                                                                 uint color,
-                                                                 uint const_alpha)
+void QT_FASTCALL rasterop_solid_NotSourceOrNotDestination(uint *dest,
+                                                          int length,
+                                                          uint color,
+                                                          uint const_alpha)
 {
     Q_UNUSED(const_alpha);
     color = ~color | 0xff000000;
@@ -2753,10 +2920,10 @@
     }
 }
 
-static void QT_FASTCALL rasterop_NotSourceOrNotDestination(uint *dest,
-                                                           const uint *src,
-                                                           int length,
-                                                           uint const_alpha)
+void QT_FASTCALL rasterop_NotSourceOrNotDestination(uint *dest,
+                                                    const uint *src,
+                                                    int length,
+                                                    uint const_alpha)
 {
     Q_UNUSED(const_alpha);
     while (length--) {
@@ -2765,10 +2932,10 @@
     }
 }
 
-static void QT_FASTCALL rasterop_solid_NotSourceXorDestination(uint *dest,
-                                                               int length,
-                                                               uint color,
-                                                               uint const_alpha)
+void QT_FASTCALL rasterop_solid_NotSourceXorDestination(uint *dest,
+                                                        int length,
+                                                        uint color,
+                                                        uint const_alpha)
 {
     Q_UNUSED(const_alpha);
     color = ~color & 0x00ffffff;
@@ -2778,10 +2945,10 @@
     }
 }
 
-static void QT_FASTCALL rasterop_NotSourceXorDestination(uint *dest,
-                                                         const uint *src,
-                                                         int length,
-                                                         uint const_alpha)
+void QT_FASTCALL rasterop_NotSourceXorDestination(uint *dest,
+                                                  const uint *src,
+                                                  int length,
+                                                  uint const_alpha)
 {
     Q_UNUSED(const_alpha);
     while (length--) {
@@ -2790,25 +2957,25 @@
     }
 }
 
-static void QT_FASTCALL rasterop_solid_NotSource(uint *dest, int length,
-                                                 uint color, uint const_alpha)
+void QT_FASTCALL rasterop_solid_NotSource(uint *dest, int length,
+                                          uint color, uint const_alpha)
 {
     Q_UNUSED(const_alpha);
     qt_memfill(dest, ~color | 0xff000000, length);
 }
 
-static void QT_FASTCALL rasterop_NotSource(uint *dest, const uint *src,
-                                           int length, uint const_alpha)
+void QT_FASTCALL rasterop_NotSource(uint *dest, const uint *src,
+                                    int length, uint const_alpha)
 {
     Q_UNUSED(const_alpha);
     while (length--)
         *dest++ = ~(*src++) | 0xff000000;
 }
 
-static void QT_FASTCALL rasterop_solid_NotSourceAndDestination(uint *dest,
-                                                               int length,
-                                                               uint color,
-                                                               uint const_alpha)
+void QT_FASTCALL rasterop_solid_NotSourceAndDestination(uint *dest,
+                                                        int length,
+                                                        uint color,
+                                                        uint const_alpha)
 {
     Q_UNUSED(const_alpha);
     color = ~color | 0xff000000;
@@ -2818,10 +2985,10 @@
     }
 }
 
-static void QT_FASTCALL rasterop_NotSourceAndDestination(uint *dest,
-                                                         const uint *src,
-                                                         int length,
-                                                         uint const_alpha)
+void QT_FASTCALL rasterop_NotSourceAndDestination(uint *dest,
+                                                  const uint *src,
+                                                  int length,
+                                                  uint const_alpha)
 {
     Q_UNUSED(const_alpha);
     while (length--) {
@@ -2830,10 +2997,10 @@
     }
 }
 
-static void QT_FASTCALL rasterop_solid_SourceAndNotDestination(uint *dest,
-                                                               int length,
-                                                               uint color,
-                                                               uint const_alpha)
+void QT_FASTCALL rasterop_solid_SourceAndNotDestination(uint *dest,
+                                                        int length,
+                                                        uint color,
+                                                        uint const_alpha)
 {
     Q_UNUSED(const_alpha);
     while (length--) {
@@ -2842,10 +3009,10 @@
     }
 }
 
-static void QT_FASTCALL rasterop_SourceAndNotDestination(uint *dest,
-                                                         const uint *src,
-                                                         int length,
-                                                         uint const_alpha)
+void QT_FASTCALL rasterop_SourceAndNotDestination(uint *dest,
+                                                  const uint *src,
+                                                  int length,
+                                                  uint const_alpha)
 {
     Q_UNUSED(const_alpha);
     while (length--) {
@@ -5168,239 +5335,6 @@
         blend_tiled_generic<RegularSpans>(count, spans, userData);
 }
 
-
-template <SpanMethod spanMethod, TextureBlendType blendType>  /* blendType must be either BlendTransformedBilinear or BlendTransformedBilinearTiled */
-Q_STATIC_TEMPLATE_FUNCTION void blend_transformed_bilinear_argb(int count, const QSpan *spans, void *userData)
-{
-    QSpanData *data = reinterpret_cast<QSpanData *>(userData);
-    if (data->texture.format != QImage::Format_ARGB32_Premultiplied
-        && data->texture.format != QImage::Format_RGB32) {
-        blend_src_generic<spanMethod>(count, spans, userData);
-        return;
-    }
-
-    CompositionFunction func = functionForMode[data->rasterBuffer->compositionMode];
-    uint buffer[buffer_size];
-
-    const int image_x1 = data->texture.x1;
-    const int image_y1 = data->texture.y1;
-    const int image_x2 = data->texture.x2;
-    const int image_y2 = data->texture.y2;
-    const int image_width = data->texture.width;
-    const int image_height = data->texture.height;
-    const int scanline_offset = data->texture.bytesPerLine / 4;
-
-    if (data->fast_matrix) {
-        // The increment pr x in the scanline
-        int fdx = (int)(data->m11 * fixed_scale);
-        int fdy = (int)(data->m12 * fixed_scale);
-
-        while (count--) {
-            void *t = data->rasterBuffer->scanLine(spans->y);
-
-            uint *target = ((uint *)t) + spans->x;
-            uint *image_bits = (uint *)data->texture.imageData;
-
-            const qreal cx = spans->x + 0.5;
-            const qreal cy = spans->y + 0.5;
-
-            int x = int((data->m21 * cy
-                         + data->m11 * cx + data->dx) * fixed_scale) - half_point;
-            int y = int((data->m22 * cy
-                         + data->m12 * cx + data->dy) * fixed_scale) - half_point;
-
-            int length = spans->len;
-            const int coverage = (data->texture.const_alpha * spans->coverage) >> 8;
-            while (length) {
-                int l = qMin(length, buffer_size);
-                const uint *end = buffer + l;
-                uint *b = buffer;
-                while (b < end) {
-                    int x1 = (x >> 16);
-                    int x2;
-                    int y1 = (y >> 16);
-                    int y2;
-
-                    if (blendType == BlendTransformedBilinearTiled) {
-                        x1 %= image_width;
-                        if (x1 < 0) x1 += image_width;
-                        x2 = x1 + 1;
-                        x2 %= image_width;
-
-                        y1 %= image_height;
-                        if (y1 < 0) y1 += image_height;
-                        y2 = y1 + 1;
-                        y2 %= image_height;
-
-                        Q_ASSERT(x1 >= 0 && x1 < image_width);
-                        Q_ASSERT(x2 >= 0 && x2 < image_width);
-                        Q_ASSERT(y1 >= 0 && y1 < image_height);
-                        Q_ASSERT(y2 >= 0 && y2 < image_height);
-                    } else {
-                        if (x1 < image_x1) {
-                            x2 = x1 = image_x1;
-                        } else if (x1 >= image_x2 - 1) {
-                            x2 = x1 = image_x2 - 1;
-                        } else {
-                            x2 = x1 + 1;
-                        }
-                        if (y1 < image_y1) {
-                            y2 = y1 = image_y1;
-                        } else if (y1 >= image_y2 - 1) {
-                            y2 = y1 = image_y2 - 1;
-                        } else {
-                            y2 = y1 + 1;
-                        }
-                    }
-
-                    int y1_offset = y1 * scanline_offset;
-                    int y2_offset = y2 * scanline_offset;
-
-#if defined(Q_IRIX_GCC3_3_WORKAROUND)
-                    uint tl = gccBug(image_bits[y1_offset + x1]);
-                    uint tr = gccBug(image_bits[y1_offset + x2]);
-                    uint bl = gccBug(image_bits[y2_offset + x1]);
-                    uint br = gccBug(image_bits[y2_offset + x2]);
-#else
-                    uint tl = image_bits[y1_offset + x1];
-                    uint tr = image_bits[y1_offset + x2];
-                    uint bl = image_bits[y2_offset + x1];
-                    uint br = image_bits[y2_offset + x2];
-#endif
-
-                    int distx = (x & 0x0000ffff) >> 8;
-                    int disty = (y & 0x0000ffff) >> 8;
-                    int idistx = 256 - distx;
-                    int idisty = 256 - disty;
-
-                    uint xtop = INTERPOLATE_PIXEL_256(tl, idistx, tr, distx);
-                    uint xbot = INTERPOLATE_PIXEL_256(bl, idistx, br, distx);
-                    *b = INTERPOLATE_PIXEL_256(xtop, idisty, xbot, disty);
-                    ++b;
-
-                    x += fdx;
-                    y += fdy;
-                }
-                if (spanMethod == RegularSpans)
-                    func(target, buffer, l, coverage);
-                else
-                    drawBufferSpan(data, buffer, buffer_size,
-                                   spans->x + spans->len - length,
-                                   spans->y, l, coverage);
-                target += l;
-                length -= l;
-            }
-            ++spans;
-        }
-    } else {
-        const qreal fdx = data->m11;
-        const qreal fdy = data->m12;
-        const qreal fdw = data->m13;
-
-        while (count--) {
-            void *t = data->rasterBuffer->scanLine(spans->y);
-
-            uint *target = ((uint *)t) + spans->x;
-            uint *image_bits = (uint *)data->texture.imageData;
-
-            const qreal cx = spans->x + 0.5;
-            const qreal cy = spans->y + 0.5;
-
-            qreal x = data->m21 * cy + data->m11 * cx + data->dx;
-            qreal y = data->m22 * cy + data->m12 * cx + data->dy;
-            qreal w = data->m23 * cy + data->m13 * cx + data->m33;
-
-            int length = spans->len;
-            const int coverage = (data->texture.const_alpha * spans->coverage) >> 8;
-            while (length) {
-                int l = qMin(length, buffer_size);
-                const uint *end = buffer + l;
-                uint *b = buffer;
-                while (b < end) {
-                    const qreal iw = w == 0 ? 1 : 1 / w;
-                    const qreal px = x * iw - 0.5;
-                    const qreal py = y * iw - 0.5;
-
-                    int x1 = int(px) - (px < 0);
-                    int x2;
-                    int y1 = int(py) - (py < 0);
-                    int y2;
-
-                    int distx = int((px - x1) * 256);
-                    int disty = int((py - y1) * 256);
-                    int idistx = 256 - distx;
-                    int idisty = 256 - disty;
-
-                    if (blendType == BlendTransformedBilinearTiled) {
-                        x1 %= image_width;
-                        if (x1 < 0) x1 += image_width;
-                        x2 = x1 + 1;
-                        x2 %= image_width;
-
-                        y1 %= image_height;
-                        if (y1 < 0) y1 += image_height;
-                        y2 = y1 + 1;
-                        y2 %= image_height;
-
-                        Q_ASSERT(x1 >= 0 && x1 < image_width);
-                        Q_ASSERT(x2 >= 0 && x2 < image_width);
-                        Q_ASSERT(y1 >= 0 && y1 < image_height);
-                        Q_ASSERT(y2 >= 0 && y2 < image_height);
-                    } else {
-                        if (x1 < image_x1) {
-                            x2 = x1 = image_x1;
-                        } else if (x1 >= image_x2 - 1) {
-                            x2 = x1 = image_x2 - 1;
-                        } else {
-                            x2 = x1 + 1;
-                        }
-                        if (y1 < image_y1) {
-                            y2 = y1 = image_y1;
-                        } else if (y1 >= image_y2 - 1) {
-                            y2 = y1 = image_y2 - 1;
-                        } else {
-                            y2 = y1 + 1;
-                        }
-                    }
-
-                    int y1_offset = y1 * scanline_offset;
-                    int y2_offset = y2 * scanline_offset;
-
-#if defined(Q_IRIX_GCC3_3_WORKAROUND)
-                    uint tl = gccBug(image_bits[y1_offset + x1]);
-                    uint tr = gccBug(image_bits[y1_offset + x2]);
-                    uint bl = gccBug(image_bits[y2_offset + x1]);
-                    uint br = gccBug(image_bits[y2_offset + x2]);
-#else
-                    uint tl = image_bits[y1_offset + x1];
-                    uint tr = image_bits[y1_offset + x2];
-                    uint bl = image_bits[y2_offset + x1];
-                    uint br = image_bits[y2_offset + x2];
-#endif
-
-                    uint xtop = INTERPOLATE_PIXEL_256(tl, idistx, tr, distx);
-                    uint xbot = INTERPOLATE_PIXEL_256(bl, idistx, br, distx);
-                    *b = INTERPOLATE_PIXEL_256(xtop, idisty, xbot, disty);
-                    ++b;
-
-                    x += fdx;
-                    y += fdy;
-                    w += fdw;
-                }
-                if (spanMethod == RegularSpans)
-                    func(target, buffer, l, coverage);
-                else
-                    drawBufferSpan(data, buffer, buffer_size,
-                                   spans->x + spans->len - length,
-                                   spans->y, l, coverage);
-                target += l;
-                length -= l;
-            }
-            ++spans;
-        }
-    }
-}
-
 template <class DST, class SRC>
 Q_STATIC_TEMPLATE_FUNCTION void blendTransformedBilinear(int count, const QSpan *spans,
                                      void *userData)
@@ -6651,7 +6585,7 @@
         SPANFUNC_POINTER(blend_src_generic, RegularSpans), // Indexed8
         SPANFUNC_POINTER(blend_src_generic, RegularSpans), // RGB32
         SPANFUNC_POINTER(blend_src_generic, RegularSpans), // ARGB32
-        blend_transformed_bilinear_argb<RegularSpans, BlendTransformedBilinear>, // ARGB32_Premultiplied
+        SPANFUNC_POINTER(blend_src_generic, RegularSpans), // ARGB32_Premultiplied
         blend_transformed_bilinear_rgb565,
         blend_transformed_bilinear_argb8565,
         blend_transformed_bilinear_rgb666,
@@ -6670,7 +6604,7 @@
         SPANFUNC_POINTER(blend_src_generic, RegularSpans), // Indexed8
         SPANFUNC_POINTER(blend_src_generic, RegularSpans), // RGB32
         SPANFUNC_POINTER(blend_src_generic, RegularSpans), // ARGB32
-        blend_transformed_bilinear_argb<RegularSpans, BlendTransformedBilinearTiled>, // ARGB32_Premultiplied
+        SPANFUNC_POINTER(blend_src_generic, RegularSpans), // ARGB32_Premultiplied
         SPANFUNC_POINTER(blend_src_generic, RegularSpans), // RGB16
         SPANFUNC_POINTER(blend_src_generic, RegularSpans), // ARGB8565_Premultiplied
         SPANFUNC_POINTER(blend_src_generic, RegularSpans), // RGB666
@@ -6769,7 +6703,7 @@
         blend_src_generic<CallbackSpans>,   // Indexed8
         blend_src_generic<CallbackSpans>,   // RGB32
         blend_src_generic<CallbackSpans>,   // ARGB32
-        blend_transformed_bilinear_argb<CallbackSpans, BlendTransformedBilinear>, // ARGB32_Premultiplied
+        blend_src_generic<CallbackSpans>, // ARGB32_Premultiplied
         blend_src_generic<CallbackSpans>,   // RGB16
         blend_src_generic<CallbackSpans>,   // ARGB8565_Premultiplied
         blend_src_generic<CallbackSpans>,   // RGB666
@@ -6788,7 +6722,7 @@
         blend_src_generic<CallbackSpans>,   // Indexed8
         blend_src_generic<CallbackSpans>,   // RGB32
         blend_src_generic<CallbackSpans>,   // ARGB32
-        blend_transformed_bilinear_argb<CallbackSpans, BlendTransformedBilinearTiled>, // ARGB32_Premultiplied
+        blend_src_generic<CallbackSpans>, // ARGB32_Premultiplied
         blend_src_generic<CallbackSpans>,   // RGB16
         blend_src_generic<CallbackSpans>,   // ARGB8565_Premultiplied
         blend_src_generic<CallbackSpans>,   // RGB666
@@ -7775,6 +7709,7 @@
 #ifdef QT_HAVE_MMX
     if (features & MMX) {
         functionForModeAsm = qt_functionForMode_MMX;
+
         functionForModeSolidAsm = qt_functionForModeSolid_MMX;
         qDrawHelper[QImage::Format_ARGB32_Premultiplied].blendColor = qt_blend_color_argb_mmx;
 #ifdef QT_HAVE_3DNOW
@@ -7804,6 +7739,55 @@
 
 #ifdef QT_HAVE_SSE
     if (features & SSE) {
+        extern void qt_blend_rgb32_on_rgb32_sse(uchar *destPixels, int dbpl,
+                                                const uchar *srcPixels, int sbpl,
+                                                int w, int h,
+                                                int const_alpha);
+        extern void qt_blend_argb32_on_argb32_sse(uchar *destPixels, int dbpl,
+                                                  const uchar *srcPixels, int sbpl,
+                                                  int w, int h,
+                                                  int const_alpha);
+
+        qBlendFunctions[QImage::Format_RGB32][QImage::Format_RGB32] = qt_blend_rgb32_on_rgb32_sse;
+        qBlendFunctions[QImage::Format_ARGB32_Premultiplied][QImage::Format_RGB32] = qt_blend_rgb32_on_rgb32_sse;
+        qBlendFunctions[QImage::Format_RGB32][QImage::Format_ARGB32_Premultiplied] = qt_blend_argb32_on_argb32_sse;
+        qBlendFunctions[QImage::Format_ARGB32_Premultiplied][QImage::Format_ARGB32_Premultiplied] = qt_blend_argb32_on_argb32_sse;
+    }
+#endif // SSE
+
+#ifdef QT_HAVE_SSE2
+    if (features & SSE2) {
+        extern void qt_blend_rgb32_on_rgb32_sse2(uchar *destPixels, int dbpl,
+                                                 const uchar *srcPixels, int sbpl,
+                                                 int w, int h,
+                                                 int const_alpha);
+        extern void qt_blend_argb32_on_argb32_sse2(uchar *destPixels, int dbpl,
+                                                   const uchar *srcPixels, int sbpl,
+                                                   int w, int h,
+                                                   int const_alpha);
+
+        qBlendFunctions[QImage::Format_RGB32][QImage::Format_RGB32] = qt_blend_rgb32_on_rgb32_sse2;
+        qBlendFunctions[QImage::Format_ARGB32_Premultiplied][QImage::Format_RGB32] = qt_blend_rgb32_on_rgb32_sse2;
+        qBlendFunctions[QImage::Format_RGB32][QImage::Format_ARGB32_Premultiplied] = qt_blend_argb32_on_argb32_sse2;
+        qBlendFunctions[QImage::Format_ARGB32_Premultiplied][QImage::Format_ARGB32_Premultiplied] = qt_blend_argb32_on_argb32_sse2;
+    }
+
+#ifdef QT_HAVE_SSSE3
+    if (features & SSSE3) {
+        extern void qt_blend_argb32_on_argb32_ssse3(uchar *destPixels, int dbpl,
+                                                    const uchar *srcPixels, int sbpl,
+                                                    int w, int h,
+                                                    int const_alpha);
+
+        qBlendFunctions[QImage::Format_RGB32][QImage::Format_ARGB32_Premultiplied] = qt_blend_argb32_on_argb32_ssse3;
+        qBlendFunctions[QImage::Format_ARGB32_Premultiplied][QImage::Format_ARGB32_Premultiplied] = qt_blend_argb32_on_argb32_ssse3;
+    }
+#endif // SSSE3
+
+#endif // SSE2
+
+#ifdef QT_HAVE_SSE
+    if (features & SSE) {
         functionForModeAsm = qt_functionForMode_SSE;
         functionForModeSolidAsm = qt_functionForModeSolid_SSE;
         qDrawHelper[QImage::Format_ARGB32_Premultiplied].blendColor = qt_blend_color_argb_sse;
@@ -7819,47 +7803,27 @@
 #ifdef QT_HAVE_SSE2
         if (features & SSE2) {
             extern void QT_FASTCALL comp_func_SourceOver_sse2(uint *destPixels,
-                                                  const uint *srcPixels,
-                                                  int length,
-                                                  uint const_alpha);
+                                                              const uint *srcPixels,
+                                                              int length,
+                                                              uint const_alpha);
             extern void QT_FASTCALL comp_func_solid_SourceOver_sse2(uint *destPixels, int length, uint color, uint const_alpha);
+            extern void QT_FASTCALL comp_func_Plus_sse2(uint *dst, const uint *src, int length, uint const_alpha);
+            extern void QT_FASTCALL comp_func_Source_sse2(uint *dst, const uint *src, int length, uint const_alpha);
 
             functionForModeAsm[0] = comp_func_SourceOver_sse2;
+            functionForModeAsm[QPainter::CompositionMode_Source] = comp_func_Source_sse2;
+            functionForModeAsm[QPainter::CompositionMode_Plus] = comp_func_Plus_sse2;
             functionForModeSolidAsm[0] = comp_func_solid_SourceOver_sse2;
-
-            extern void qt_blend_rgb32_on_rgb32_sse2(uchar *destPixels, int dbpl,
-                                                     const uchar *srcPixels, int sbpl,
-                                                     int w, int h,
-                                                     int const_alpha);
-            extern void qt_blend_argb32_on_argb32_sse2(uchar *destPixels, int dbpl,
-                                                       const uchar *srcPixels, int sbpl,
-                                                       int w, int h,
-                                                       int const_alpha);
-
-            qBlendFunctions[QImage::Format_RGB32][QImage::Format_RGB32] = qt_blend_rgb32_on_rgb32_sse2;
-            qBlendFunctions[QImage::Format_ARGB32_Premultiplied][QImage::Format_RGB32] = qt_blend_rgb32_on_rgb32_sse2;
-            qBlendFunctions[QImage::Format_RGB32][QImage::Format_ARGB32_Premultiplied] = qt_blend_argb32_on_argb32_sse2;
-            qBlendFunctions[QImage::Format_ARGB32_Premultiplied][QImage::Format_ARGB32_Premultiplied] = qt_blend_argb32_on_argb32_sse2;
-        } else
+        }
 #endif
-        {
-            extern void qt_blend_rgb32_on_rgb32_sse(uchar *destPixels, int dbpl,
-                                                    const uchar *srcPixels, int sbpl,
-                                                    int w, int h,
-                                                    int const_alpha);
-            extern void qt_blend_argb32_on_argb32_sse(uchar *destPixels, int dbpl,
-                                                      const uchar *srcPixels, int sbpl,
-                                                      int w, int h,
-                                                      int const_alpha);
-
-
-            qBlendFunctions[QImage::Format_RGB32][QImage::Format_RGB32] = qt_blend_rgb32_on_rgb32_sse;
-            qBlendFunctions[QImage::Format_ARGB32_Premultiplied][QImage::Format_RGB32] = qt_blend_rgb32_on_rgb32_sse;
-            qBlendFunctions[QImage::Format_RGB32][QImage::Format_ARGB32_Premultiplied] = qt_blend_argb32_on_argb32_sse;
-            qBlendFunctions[QImage::Format_ARGB32_Premultiplied][QImage::Format_ARGB32_Premultiplied] = qt_blend_argb32_on_argb32_sse;
-        }
-}
-#endif // SSE
+    }
+#elif defined(QT_HAVE_SSE2)
+    // this is the special case when SSE2 is usable but MMX/SSE is not usable (e.g.: Windows x64 + visual studio)
+    if (features & SSE2) {
+        functionForModeAsm = qt_functionForMode_onlySSE2;
+        functionForModeSolidAsm = qt_functionForModeSolid_onlySSE2;
+    }
+#endif
 
 #ifdef QT_HAVE_IWMMXT
     if (features & IWMMXT) {
@@ -7889,6 +7853,7 @@
             qBlendFunctions[QImage::Format_ARGB32_Premultiplied][QImage::Format_ARGB32_Premultiplied] = qt_blend_argb32_on_argb32_neon;
             qBlendFunctions[QImage::Format_RGB16][QImage::Format_ARGB32_Premultiplied] = qt_blend_argb32_on_rgb16_neon;
             qBlendFunctions[QImage::Format_ARGB32_Premultiplied][QImage::Format_RGB16] = qt_blend_rgb16_on_argb32_neon;
+            qBlendFunctions[QImage::Format_RGB16][QImage::Format_RGB16] = qt_blend_rgb16_on_rgb16_neon;
 
             qScaleFunctions[QImage::Format_RGB16][QImage::Format_ARGB32_Premultiplied] = qt_scale_image_argb32_on_rgb16_neon;
             qScaleFunctions[QImage::Format_RGB16][QImage::Format_RGB16] = qt_scale_image_rgb16_on_rgb16_neon;
@@ -7900,11 +7865,13 @@
 
             functionForMode_C[QPainter::CompositionMode_SourceOver] = qt_blend_argb32_on_argb32_scanline_neon;
             functionForModeSolid_C[QPainter::CompositionMode_SourceOver] = comp_func_solid_SourceOver_neon;
+            functionForMode_C[QPainter::CompositionMode_Plus] = comp_func_Plus_neon;
             destFetchProc[QImage::Format_RGB16] = qt_destFetchRGB16_neon;
             destStoreProc[QImage::Format_RGB16] = qt_destStoreRGB16_neon;
 
             qMemRotateFunctions[QImage::Format_RGB16][0] = qt_memrotate90_16_neon;
             qMemRotateFunctions[QImage::Format_RGB16][2] = qt_memrotate270_16_neon;
+            qt_memfill32 = qt_memfill32_neon;
         }
 #endif
 
@@ -7919,17 +7886,8 @@
 
         functionForModeSolid = functionForModeSolidAsm;
     }
-    if (functionForModeAsm) {
-        const int destinationMode = QPainter::CompositionMode_Destination;
-        functionForModeAsm[destinationMode] = functionForMode_C[destinationMode];
-
-        // use the default qdrawhelper implementation for the
-        // extended composition modes
-        for (int mode = 12; mode < numCompositionFunctions; ++mode)
-            functionForModeAsm[mode] = functionForMode_C[mode];
-
+    if (functionForModeAsm)
         functionForMode = functionForModeAsm;
-    }
 
     qt_build_pow_tables();
 }
--- a/src/gui/painting/qdrawhelper_iwmmxt.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/painting/qdrawhelper_iwmmxt.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -106,14 +106,35 @@
     comp_func_DestinationOver<QIWMMXTIntrinsics>,
     comp_func_Clear<QIWMMXTIntrinsics>,
     comp_func_Source<QIWMMXTIntrinsics>,
-    0,
+    comp_func_Destination,
     comp_func_SourceIn<QIWMMXTIntrinsics>,
     comp_func_DestinationIn<QIWMMXTIntrinsics>,
     comp_func_SourceOut<QIWMMXTIntrinsics>,
     comp_func_DestinationOut<QIWMMXTIntrinsics>,
     comp_func_SourceAtop<QIWMMXTIntrinsics>,
     comp_func_DestinationAtop<QIWMMXTIntrinsics>,
-    comp_func_XOR<QIWMMXTIntrinsics>
+    comp_func_XOR<QIWMMXTIntrinsics>,
+    comp_func_Plus,
+    comp_func_Multiply,
+    comp_func_Screen,
+    comp_func_Overlay,
+    comp_func_Darken,
+    comp_func_Lighten,
+    comp_func_ColorDodge,
+    comp_func_ColorBurn,
+    comp_func_HardLight,
+    comp_func_SoftLight,
+    comp_func_Difference,
+    comp_func_Exclusion,
+    rasterop_SourceOrDestination,
+    rasterop_SourceAndDestination,
+    rasterop_SourceXorDestination,
+    rasterop_NotSourceAndNotDestination,
+    rasterop_NotSourceOrNotDestination,
+    rasterop_NotSourceXorDestination,
+    rasterop_NotSource,
+    rasterop_NotSourceAndDestination,
+    rasterop_SourceAndNotDestination
 };
 
 void qt_blend_color_argb_iwmmxt(int count, const QSpan *spans, void *userData)
--- a/src/gui/painting/qdrawhelper_mmx.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/painting/qdrawhelper_mmx.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -77,7 +77,7 @@
     comp_func_DestinationOver<QMMXIntrinsics>,
     comp_func_Clear<QMMXIntrinsics>,
     comp_func_Source<QMMXIntrinsics>,
-    0,
+    comp_func_Destination,
     comp_func_SourceIn<QMMXIntrinsics>,
     comp_func_DestinationIn<QMMXIntrinsics>,
     comp_func_SourceOut<QMMXIntrinsics>,
@@ -85,6 +85,27 @@
     comp_func_SourceAtop<QMMXIntrinsics>,
     comp_func_DestinationAtop<QMMXIntrinsics>,
     comp_func_XOR<QMMXIntrinsics>,
+    comp_func_Plus,
+    comp_func_Multiply,
+    comp_func_Screen,
+    comp_func_Overlay,
+    comp_func_Darken,
+    comp_func_Lighten,
+    comp_func_ColorDodge,
+    comp_func_ColorBurn,
+    comp_func_HardLight,
+    comp_func_SoftLight,
+    comp_func_Difference,
+    comp_func_Exclusion,
+    rasterop_SourceOrDestination,
+    rasterop_SourceAndDestination,
+    rasterop_SourceXorDestination,
+    rasterop_NotSourceAndNotDestination,
+    rasterop_NotSourceOrNotDestination,
+    rasterop_NotSourceXorDestination,
+    rasterop_NotSource,
+    rasterop_NotSourceAndDestination,
+    rasterop_SourceAndNotDestination
 };
 
 void qt_blend_color_argb_mmx(int count, const QSpan *spans, void *userData)
--- a/src/gui/painting/qdrawhelper_mmx3dnow.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/painting/qdrawhelper_mmx3dnow.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -85,14 +85,35 @@
     comp_func_DestinationOver<QMMX3DNOWIntrinsics>,
     comp_func_Clear<QMMX3DNOWIntrinsics>,
     comp_func_Source<QMMX3DNOWIntrinsics>,
-    0,
+    comp_func_Destination,
     comp_func_SourceIn<QMMX3DNOWIntrinsics>,
     comp_func_DestinationIn<QMMX3DNOWIntrinsics>,
     comp_func_SourceOut<QMMX3DNOWIntrinsics>,
     comp_func_DestinationOut<QMMX3DNOWIntrinsics>,
     comp_func_SourceAtop<QMMX3DNOWIntrinsics>,
     comp_func_DestinationAtop<QMMX3DNOWIntrinsics>,
-    comp_func_XOR<QMMX3DNOWIntrinsics>
+    comp_func_XOR<QMMX3DNOWIntrinsics>,
+    comp_func_Plus,
+    comp_func_Multiply,
+    comp_func_Screen,
+    comp_func_Overlay,
+    comp_func_Darken,
+    comp_func_Lighten,
+    comp_func_ColorDodge,
+    comp_func_ColorBurn,
+    comp_func_HardLight,
+    comp_func_SoftLight,
+    comp_func_Difference,
+    comp_func_Exclusion,
+    rasterop_SourceOrDestination,
+    rasterop_SourceAndDestination,
+    rasterop_SourceXorDestination,
+    rasterop_NotSourceAndNotDestination,
+    rasterop_NotSourceOrNotDestination,
+    rasterop_NotSourceXorDestination,
+    rasterop_NotSource,
+    rasterop_NotSourceAndDestination,
+    rasterop_SourceAndNotDestination
 };
 
 void qt_blend_color_argb_mmx3dnow(int count, const QSpan *spans, void *userData)
--- a/src/gui/painting/qdrawhelper_neon.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/painting/qdrawhelper_neon.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -51,6 +51,44 @@
 
 QT_BEGIN_NAMESPACE
 
+void qt_memfill32_neon(quint32 *dest, quint32 value, int count)
+{
+    const int epilogueSize = count % 16;
+    if (count >= 16) {
+        quint32 *const neonEnd = dest + count - epilogueSize;
+        register uint32x4_t valueVector1 asm ("q0") = vdupq_n_u32(value);
+        register uint32x4_t valueVector2 asm ("q1") = valueVector1;
+        while (dest != neonEnd) {
+            asm volatile (
+                "vst2.32     { d0, d1, d2, d3 }, [%[DST]] !\n\t"
+                "vst2.32     { d0, d1, d2, d3 }, [%[DST]] !\n\t"
+                : [DST]"+r" (dest)
+                : [VALUE1]"w"(valueVector1), [VALUE2]"w"(valueVector2)
+                : "memory"
+            );
+        }
+    }
+
+    switch (epilogueSize)
+    {
+    case 15:     *dest++ = value;
+    case 14:     *dest++ = value;
+    case 13:     *dest++ = value;
+    case 12:     *dest++ = value;
+    case 11:     *dest++ = value;
+    case 10:     *dest++ = value;
+    case 9:      *dest++ = value;
+    case 8:      *dest++ = value;
+    case 7:      *dest++ = value;
+    case 6:      *dest++ = value;
+    case 5:      *dest++ = value;
+    case 4:      *dest++ = value;
+    case 3:      *dest++ = value;
+    case 2:      *dest++ = value;
+    case 1:      *dest++ = value;
+    }
+}
+
 static inline uint16x8_t qvdiv_255_u16(uint16x8_t x, uint16x8_t half)
 {
     // result = (x + (x >> 8) + 0x80) >> 8
@@ -129,6 +167,14 @@
                                          const uint32_t *dst,
                                          const uint32_t *src);
 
+extern "C" void
+pixman_composite_src_0565_0565_asm_neon (int32_t   w,
+                                         int32_t   h,
+                                         uint16_t *dst,
+                                         int32_t   dst_stride,
+                                         uint16_t *src,
+                                         int32_t   src_stride);
+
 // qblendfunctions.cpp
 void qt_blend_argb32_on_rgb16_const_alpha(uchar *destPixels, int dbpl,
                                           const uchar *srcPixels, int sbpl,
@@ -162,6 +208,96 @@
     pixman_composite_src_0565_8888_asm_neon(w, h, dst, dbpl, src, sbpl);
 }
 
+// qblendfunctions.cpp
+void qt_blend_rgb16_on_rgb16(uchar *dst, int dbpl,
+                             const uchar *src, int sbpl,
+                             int w, int h,
+                             int const_alpha);
+
+template <int N>
+static inline void scanLineBlit16(quint16 *dst, quint16 *src, int dstride)
+{
+    if (N >= 2) {
+        ((quint32 *)dst)[0] = ((quint32 *)src)[0];
+        __builtin_prefetch(dst + dstride, 1, 0);
+    }
+    for (int i = 1; i < N/2; ++i)
+        ((quint32 *)dst)[i] = ((quint32 *)src)[i];
+    if (N & 1)
+        dst[N-1] = src[N-1];
+}
+
+template <int Width>
+static inline void blockBlit16(quint16 *dst, quint16 *src, int dstride, int sstride, int h)
+{
+    union {
+        quintptr address;
+        quint16 *pointer;
+    } u;
+
+    u.pointer = dst;
+
+    if (u.address & 2) {
+        while (h--) {
+            // align dst
+            dst[0] = src[0];
+            if (Width > 1)
+                scanLineBlit16<Width-1>(dst + 1, src + 1, dstride);
+            dst += dstride;
+            src += sstride;
+        }
+    } else {
+        while (h--) {
+            scanLineBlit16<Width>(dst, src, dstride);
+
+            dst += dstride;
+            src += sstride;
+        }
+    }
+}
+
+void qt_blend_rgb16_on_rgb16_neon(uchar *destPixels, int dbpl,
+                                  const uchar *srcPixels, int sbpl,
+                                  int w, int h,
+                                  int const_alpha)
+{
+    // testing show that the default memcpy is faster for widths 150 and up
+    if (const_alpha != 256 || w >= 150) {
+        qt_blend_rgb16_on_rgb16(destPixels, dbpl, srcPixels, sbpl, w, h, const_alpha);
+        return;
+    }
+
+    int dstride = dbpl / 2;
+    int sstride = sbpl / 2;
+
+    quint16 *dst = (quint16 *) destPixels;
+    quint16 *src = (quint16 *) srcPixels;
+
+    switch (w) {
+#define BLOCKBLIT(n) case n: blockBlit16<n>(dst, src, dstride, sstride, h); return;
+    BLOCKBLIT(1);
+    BLOCKBLIT(2);
+    BLOCKBLIT(3);
+    BLOCKBLIT(4);
+    BLOCKBLIT(5);
+    BLOCKBLIT(6);
+    BLOCKBLIT(7);
+    BLOCKBLIT(8);
+    BLOCKBLIT(9);
+    BLOCKBLIT(10);
+    BLOCKBLIT(11);
+    BLOCKBLIT(12);
+    BLOCKBLIT(13);
+    BLOCKBLIT(14);
+    BLOCKBLIT(15);
+#undef BLOCKBLIT
+    default:
+        break;
+    }
+
+    pixman_composite_src_0565_0565_asm_neon (w, h, dst, dstride, src, sstride);
+}
+
 extern "C" void blend_8_pixels_argb32_on_rgb16_neon(quint16 *dst, const quint32 *src, int const_alpha);
 
 void qt_blend_argb32_on_rgb16_neon(uchar *destPixels, int dbpl,
@@ -622,6 +758,61 @@
     }
 }
 
+void QT_FASTCALL comp_func_Plus_neon(uint *dst, const uint *src, int length, uint const_alpha)
+{
+    if (const_alpha == 255) {
+        uint *const end = dst + length;
+        uint *const neonEnd = end - 3;
+
+        while (dst < neonEnd) {
+            asm volatile (
+                "vld2.8     { d0, d1 }, [%[SRC]] !\n\t"
+                "vld2.8     { d2, d3 }, [%[DST]]\n\t"
+                "vqadd.u8 q0, q0, q1\n\t"
+                "vst2.8     { d0, d1 }, [%[DST]] !\n\t"
+                : [DST]"+r" (dst), [SRC]"+r" (src)
+                :
+                : "memory", "d0", "d1", "d2", "d3", "q0", "q1"
+            );
+        }
+
+        while (dst != end) {
+            *dst = comp_func_Plus_one_pixel(*dst, *src);
+            ++dst;
+            ++src;
+        }
+    } else {
+        int x = 0;
+        const int one_minus_const_alpha = 255 - const_alpha;
+        const uint16x8_t constAlphaVector = vdupq_n_u16(const_alpha);
+        const uint16x8_t oneMinusconstAlphaVector = vdupq_n_u16(one_minus_const_alpha);
+
+        const uint16x8_t half = vdupq_n_u16(0x80);
+        for (; x < length - 3; x += 4) {
+            const uint32x4_t src32 = vld1q_u32((uint32_t *)&src[x]);
+            const uint8x16_t src8 = vreinterpretq_u8_u32(src32);
+            uint8x16_t dst8 = vld1q_u8((uint8_t *)&dst[x]);
+            uint8x16_t result = vqaddq_u8(dst8, src8);
+
+            uint16x8_t result_low = vmovl_u8(vget_low_u8(result));
+            uint16x8_t result_high = vmovl_u8(vget_high_u8(result));
+
+            uint16x8_t dst_low = vmovl_u8(vget_low_u8(dst8));
+            uint16x8_t dst_high = vmovl_u8(vget_high_u8(dst8));
+
+            result_low = qvinterpolate_pixel_255(result_low, constAlphaVector, dst_low, oneMinusconstAlphaVector, half);
+            result_high = qvinterpolate_pixel_255(result_high, constAlphaVector, dst_high, oneMinusconstAlphaVector, half);
+
+            const uint32x2_t result32_low = vreinterpret_u32_u8(vmovn_u16(result_low));
+            const uint32x2_t result32_high = vreinterpret_u32_u8(vmovn_u16(result_high));
+            vst1q_u32((uint32_t *)&dst[x], vcombine_u32(result32_low, result32_high));
+        }
+
+        for (; x < length; ++x)
+            dst[x] = comp_func_Plus_one_pixel_const_alpha(dst[x], src[x], const_alpha, one_minus_const_alpha);
+    }
+}
+
 static const int tileSize = 32;
 
 extern "C" void qt_rotate90_16_neon(quint16 *dst, const quint16 *src, int sstride, int dstride, int count);
--- a/src/gui/painting/qdrawhelper_neon_p.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/painting/qdrawhelper_neon_p.h	Mon Oct 04 01:19:32 2010 +0300
@@ -84,6 +84,11 @@
                                    int w, int h,
                                    int const_alpha);
 
+void qt_blend_rgb16_on_rgb16_neon(uchar *destPixels, int dbpl,
+                                  const uchar *srcPixels, int sbpl,
+                                  int w, int h,
+                                  int const_alpha);
+
 void qt_alphamapblit_quint16_neon(QRasterBuffer *rasterBuffer,
                                   int x, int y, quint32 color,
                                   const uchar *bitmap,
@@ -120,6 +125,7 @@
                                             const QTransform &targetRectTransform,
                                             int const_alpha);
 
+void qt_memfill32_neon(quint32 *dest, quint32 value, int count);
 void qt_memrotate90_16_neon(const uchar *srcPixels, int w, int h, int sbpl, uchar *destPixels, int dbpl);
 void qt_memrotate270_16_neon(const uchar *srcPixels, int w, int h, int sbpl, uchar *destPixels, int dbpl);
 
@@ -131,6 +137,7 @@
                                         int x, int y, const uint *buffer, int length);
 
 void QT_FASTCALL comp_func_solid_SourceOver_neon(uint *destPixels, int length, uint color, uint const_alpha);
+void QT_FASTCALL comp_func_Plus_neon(uint *dst, const uint *src, int length, uint const_alpha);
 
 #endif // QT_HAVE_NEON
 
--- a/src/gui/painting/qdrawhelper_p.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/painting/qdrawhelper_p.h	Mon Oct 04 01:19:32 2010 +0300
@@ -62,6 +62,7 @@
 #define QT_FT_END_HEADER
 #endif
 #include "private/qrasterdefs_p.h"
+#include <private/qsimd_p.h>
 
 #ifdef Q_WS_QWS
 #include "QtGui/qscreen_qws.h"
@@ -69,13 +70,6 @@
 
 QT_BEGIN_NAMESPACE
 
-#if defined(Q_OS_MAC) && (defined(__ppc__) || defined(__ppc64__))
-#undef QT_HAVE_MMX
-#undef QT_HAVE_SSE
-#undef QT_HAVE_SSE2
-#undef QT_HAVE_3DNOW
-#endif
-
 #if defined(Q_CC_MSVC) && _MSCVER <= 1300 && !defined(Q_CC_INTEL)
 #define Q_STATIC_TEMPLATE_SPECIALIZATION static
 #else
@@ -91,6 +85,11 @@
 #  define Q_STATIC_INLINE_FUNCTION static inline
 #endif
 
+static const uint AMASK = 0xff000000;
+static const uint RMASK = 0x00ff0000;
+static const uint GMASK = 0x0000ff00;
+static const uint BMASK = 0x000000ff;
+
 /*******************************************************************************
  * QSpan
  *
@@ -309,18 +308,61 @@
     void adjustSpanMethods();
 };
 
+#if defined(Q_CC_RVCT)
+#  pragma push
+#  pragma arm
+#endif
+Q_STATIC_INLINE_FUNCTION uint INTERPOLATE_PIXEL_255(uint x, uint a, uint y, uint b) {
+    uint t = (x & 0xff00ff) * a + (y & 0xff00ff) * b;
+    t = (t + ((t >> 8) & 0xff00ff) + 0x800080) >> 8;
+    t &= 0xff00ff;
 
-Q_STATIC_INLINE_FUNCTION uint BYTE_MUL_RGB16(uint x, uint a) {
-    a += 1;
-    uint t = (((x & 0x07e0)*a) >> 8) & 0x07e0;
-    t |= (((x & 0xf81f)*(a>>2)) >> 6) & 0xf81f;
-    return t;
+    x = ((x >> 8) & 0xff00ff) * a + ((y >> 8) & 0xff00ff) * b;
+    x = (x + ((x >> 8) & 0xff00ff) + 0x800080);
+    x &= 0xff00ff00;
+    x |= t;
+    return x;
+}
+#if defined(Q_CC_RVCT)
+#  pragma pop
+#endif
+
+#if QT_POINTER_SIZE == 8 // 64-bit versions
+
+Q_STATIC_INLINE_FUNCTION uint INTERPOLATE_PIXEL_256(uint x, uint a, uint y, uint b) {
+    quint64 t = (((quint64(x)) | ((quint64(x)) << 24)) & 0x00ff00ff00ff00ff) * a;
+    t += (((quint64(y)) | ((quint64(y)) << 24)) & 0x00ff00ff00ff00ff) * b;
+    t >>= 8;
+    t &= 0x00ff00ff00ff00ff;
+    return (uint(t)) | (uint(t >> 24));
 }
 
-Q_STATIC_INLINE_FUNCTION uint BYTE_MUL_RGB16_32(uint x, uint a) {
-    uint t = (((x & 0xf81f07e0) >> 5)*a) & 0xf81f07e0;
-    t |= (((x & 0x07e0f81f)*a) >> 5) & 0x07e0f81f;
-    return t;
+Q_STATIC_INLINE_FUNCTION uint BYTE_MUL(uint x, uint a) {
+    quint64 t = (((quint64(x)) | ((quint64(x)) << 24)) & 0x00ff00ff00ff00ff) * a;
+    t = (t + ((t >> 8) & 0xff00ff00ff00ff) + 0x80008000800080) >> 8;
+    t &= 0x00ff00ff00ff00ff;
+    return (uint(t)) | (uint(t >> 24));
+}
+
+Q_STATIC_INLINE_FUNCTION uint PREMUL(uint x) {
+    uint a = x >> 24;
+    quint64 t = (((quint64(x)) | ((quint64(x)) << 24)) & 0x00ff00ff00ff00ff) * a;
+    t = (t + ((t >> 8) & 0xff00ff00ff00ff) + 0x80008000800080) >> 8;
+    t &= 0x000000ff00ff00ff;
+    return (uint(t)) | (uint(t >> 24)) | (a << 24);
+}
+
+#else // 32-bit versions
+
+Q_STATIC_INLINE_FUNCTION uint INTERPOLATE_PIXEL_256(uint x, uint a, uint y, uint b) {
+    uint t = (x & 0xff00ff) * a + (y & 0xff00ff) * b;
+    t >>= 8;
+    t &= 0xff00ff;
+
+    x = ((x >> 8) & 0xff00ff) * a + ((y >> 8) & 0xff00ff) * b;
+    x &= 0xff00ff00;
+    x |= t;
+    return x;
 }
 
 #if defined(Q_CC_RVCT)
@@ -354,6 +396,21 @@
     x |= t | (a << 24);
     return x;
 }
+#endif
+
+
+Q_STATIC_INLINE_FUNCTION uint BYTE_MUL_RGB16(uint x, uint a) {
+    a += 1;
+    uint t = (((x & 0x07e0)*a) >> 8) & 0x07e0;
+    t |= (((x & 0xf81f)*(a>>2)) >> 6) & 0xf81f;
+    return t;
+}
+
+Q_STATIC_INLINE_FUNCTION uint BYTE_MUL_RGB16_32(uint x, uint a) {
+    uint t = (((x & 0xf81f07e0) >> 5)*a) & 0xf81f07e0;
+    t |= (((x & 0x07e0f81f)*a) >> 5) & 0x07e0f81f;
+    return t;
+}
 
 #define INV_PREMUL(p)                                   \
     (qAlpha(p) == 0 ? 0 :                               \
@@ -1842,70 +1899,6 @@
     return (b << 3) | (b >> 2);
 }
 
-#if 1
-Q_STATIC_INLINE_FUNCTION uint INTERPOLATE_PIXEL_256(uint x, uint a, uint y, uint b) {
-    uint t = (x & 0xff00ff) * a + (y & 0xff00ff) * b;
-    t >>= 8;
-    t &= 0xff00ff;
-
-    x = ((x >> 8) & 0xff00ff) * a + ((y >> 8) & 0xff00ff) * b;
-    x &= 0xff00ff00;
-    x |= t;
-    return x;
-}
-
-#if defined(Q_CC_RVCT)
-#  pragma push
-#  pragma arm
-#endif
-Q_STATIC_INLINE_FUNCTION uint INTERPOLATE_PIXEL_255(uint x, uint a, uint y, uint b) {
-    uint t = (x & 0xff00ff) * a + (y & 0xff00ff) * b;
-    t = (t + ((t >> 8) & 0xff00ff) + 0x800080) >> 8;
-    t &= 0xff00ff;
-
-    x = ((x >> 8) & 0xff00ff) * a + ((y >> 8) & 0xff00ff) * b;
-    x = (x + ((x >> 8) & 0xff00ff) + 0x800080);
-    x &= 0xff00ff00;
-    x |= t;
-    return x;
-}
-#if defined(Q_CC_RVCT)
-#  pragma pop
-#endif
-#else
-// possible implementation for 64 bit
-Q_STATIC_INLINE_FUNCTION uint INTERPOLATE_PIXEL_256(uint x, uint a, uint y, uint b) {
-    ulong t = (((ulong(x)) | ((ulong(x)) << 24)) & 0x00ff00ff00ff00ff) * a;
-    t += (((ulong(y)) | ((ulong(y)) << 24)) & 0x00ff00ff00ff00ff) * b;
-    t >>= 8;
-    t &= 0x00ff00ff00ff00ff;
-    return (uint(t)) | (uint(t >> 24));
-}
-
-Q_STATIC_INLINE_FUNCTION uint INTERPOLATE_PIXEL_255(uint x, uint a, uint y, uint b) {
-    ulong t = (((ulong(x)) | ((ulong(x)) << 24)) & 0x00ff00ff00ff00ff) * a;
-    t += (((ulong(y)) | ((ulong(y)) << 24)) & 0x00ff00ff00ff00ff) * b;
-    t = (t + ((t >> 8) & 0xff00ff00ff00ff) + 0x80008000800080);
-    t &= 0x00ff00ff00ff00ff;
-    return (uint(t)) | (uint(t >> 24));
-}
-
-Q_STATIC_INLINE_FUNCTION uint BYTE_MUL(uint x, uint a) {
-    ulong t = (((ulong(x)) | ((ulong(x)) << 24)) & 0x00ff00ff00ff00ff) * a;
-    t = (t + ((t >> 8) & 0xff00ff00ff00ff) + 0x80008000800080);
-    t &= 0x00ff00ff00ff00ff;
-    return (uint(t)) | (uint(t >> 24));
-}
-
-Q_STATIC_INLINE_FUNCTION uint PREMUL(uint x) {
-    uint a = x >> 24;
-    ulong t = (((ulong(x)) | ((ulong(x)) << 24)) & 0x00ff00ff00ff00ff) * a;
-    t = (t + ((t >> 8) & 0xff00ff00ff00ff) + 0x80008000800080);
-    t &= 0x00ff00ff00ff00ff;
-    return (uint(t)) | (uint(t >> 24)) | 0xff000000;
-}
-#endif
-
 const uint qt_bayer_matrix[16][16] = {
     { 0x1, 0xc0, 0x30, 0xf0, 0xc, 0xcc, 0x3c, 0xfc,
       0x3, 0xc3, 0x33, 0xf3, 0xf, 0xcf, 0x3f, 0xff},
@@ -1945,6 +1938,100 @@
     ((((argb >> 24) * alpha) >> 8) << 24) | (argb & 0x00ffffff)
 
 
+#if QT_POINTER_SIZE == 8 // 64-bit versions
+#define AMIX(mask) (qMin(((qint64(s)&mask) + (qint64(d)&mask)), qint64(mask)))
+#define MIX(mask) (qMin(((qint64(s)&mask) + (qint64(d)&mask)), qint64(mask)))
+#else // 32 bits
+// The mask for alpha can overflow over 32 bits
+#define AMIX(mask) quint32(qMin(((qint64(s)&mask) + (qint64(d)&mask)), qint64(mask)))
+#define MIX(mask) (qMin(((quint32(s)&mask) + (quint32(d)&mask)), quint32(mask)))
+#endif
+
+inline int comp_func_Plus_one_pixel_const_alpha(uint d, const uint s, const uint const_alpha, const uint one_minus_const_alpha)
+{
+    const int result = (AMIX(AMASK) | MIX(RMASK) | MIX(GMASK) | MIX(BMASK));
+    return INTERPOLATE_PIXEL_255(result, const_alpha, d, one_minus_const_alpha);
+}
+
+inline int comp_func_Plus_one_pixel(uint d, const uint s)
+{
+    const int result = (AMIX(AMASK) | MIX(RMASK) | MIX(GMASK) | MIX(BMASK));
+    return result;
+}
+
+#undef MIX
+#undef AMIX
+
+// prototypes of all the composition functions
+void QT_FASTCALL comp_func_SourceOver(uint *dest, const uint *src, int length, uint const_alpha);
+void QT_FASTCALL comp_func_DestinationOver(uint *dest, const uint *src, int length, uint const_alpha);
+void QT_FASTCALL comp_func_Clear(uint *dest, const uint *, int length, uint const_alpha);
+void QT_FASTCALL comp_func_Source(uint *dest, const uint *src, int length, uint const_alpha);
+void QT_FASTCALL comp_func_Destination(uint *, const uint *, int, uint);
+void QT_FASTCALL comp_func_SourceIn(uint *dest, const uint *src, int length, uint const_alpha);
+void QT_FASTCALL comp_func_DestinationIn(uint *dest, const uint *src, int length, uint const_alpha);
+void QT_FASTCALL comp_func_SourceOut(uint *dest, const uint *src, int length, uint const_alpha);
+void QT_FASTCALL comp_func_DestinationOut(uint *dest, const uint *src, int length, uint const_alpha);
+void QT_FASTCALL comp_func_SourceAtop(uint *dest, const uint *src, int length, uint const_alpha);
+void QT_FASTCALL comp_func_DestinationAtop(uint *dest, const uint *src, int length, uint const_alpha);
+void QT_FASTCALL comp_func_XOR(uint *dest, const uint *src, int length, uint const_alpha);
+void QT_FASTCALL comp_func_Plus(uint *dest, const uint *src, int length, uint const_alpha);
+void QT_FASTCALL comp_func_Multiply(uint *dest, const uint *src, int length, uint const_alpha);
+void QT_FASTCALL comp_func_Screen(uint *dest, const uint *src, int length, uint const_alpha);
+void QT_FASTCALL comp_func_Overlay(uint *dest, const uint *src, int length, uint const_alpha);
+void QT_FASTCALL comp_func_Darken(uint *dest, const uint *src, int length, uint const_alpha);
+void QT_FASTCALL comp_func_Lighten(uint *dest, const uint *src, int length, uint const_alpha);
+void QT_FASTCALL comp_func_ColorDodge(uint *dest, const uint *src, int length, uint const_alpha);
+void QT_FASTCALL comp_func_ColorBurn(uint *dest, const uint *src, int length, uint const_alpha);
+void QT_FASTCALL comp_func_HardLight(uint *dest, const uint *src, int length, uint const_alpha);
+void QT_FASTCALL comp_func_SoftLight(uint *dest, const uint *src, int length, uint const_alpha);
+void QT_FASTCALL comp_func_Difference(uint *dest, const uint *src, int length, uint const_alpha);
+void QT_FASTCALL comp_func_Exclusion(uint *dest, const uint *src, int length, uint const_alpha);
+void QT_FASTCALL rasterop_SourceOrDestination(uint *dest, const uint *src, int length, uint const_alpha);
+void QT_FASTCALL rasterop_SourceAndDestination(uint *dest, const uint *src, int length, uint const_alpha);
+void QT_FASTCALL rasterop_SourceXorDestination(uint *dest, const uint *src, int length, uint const_alpha);
+void QT_FASTCALL rasterop_NotSourceAndNotDestination(uint *dest, const uint *src, int length, uint const_alpha);
+void QT_FASTCALL rasterop_NotSourceOrNotDestination(uint *dest, const uint *src, int length, uint const_alpha);
+void QT_FASTCALL rasterop_NotSourceXorDestination(uint *dest, const uint *src, int length, uint const_alpha);
+void QT_FASTCALL rasterop_NotSource(uint *dest, const uint *src, int length, uint const_alpha);
+void QT_FASTCALL rasterop_NotSourceAndDestination(uint *dest, const uint *src, int length, uint const_alpha);
+void QT_FASTCALL rasterop_SourceAndNotDestination(uint *dest, const uint *src, int length, uint const_alpha);
+
+// prototypes of all the solid composition functions
+void QT_FASTCALL comp_func_solid_SourceOver(uint *dest, int length, uint color, uint const_alpha);
+void QT_FASTCALL comp_func_solid_DestinationOver(uint *dest, int length, uint color, uint const_alpha);
+void QT_FASTCALL comp_func_solid_Clear(uint *dest, int length, uint color, uint const_alpha);
+void QT_FASTCALL comp_func_solid_Source(uint *dest, int length, uint color, uint const_alpha);
+void QT_FASTCALL comp_func_solid_Destination(uint *dest, int length, uint color, uint const_alpha);
+void QT_FASTCALL comp_func_solid_SourceIn(uint *dest, int length, uint color, uint const_alpha);
+void QT_FASTCALL comp_func_solid_DestinationIn(uint *dest, int length, uint color, uint const_alpha);
+void QT_FASTCALL comp_func_solid_SourceOut(uint *dest, int length, uint color, uint const_alpha);
+void QT_FASTCALL comp_func_solid_DestinationOut(uint *dest, int length, uint color, uint const_alpha);
+void QT_FASTCALL comp_func_solid_SourceAtop(uint *dest, int length, uint color, uint const_alpha);
+void QT_FASTCALL comp_func_solid_DestinationAtop(uint *dest, int length, uint color, uint const_alpha);
+void QT_FASTCALL comp_func_solid_XOR(uint *dest, int length, uint color, uint const_alpha);
+void QT_FASTCALL comp_func_solid_Plus(uint *dest, int length, uint color, uint const_alpha);
+void QT_FASTCALL comp_func_solid_Multiply(uint *dest, int length, uint color, uint const_alpha);
+void QT_FASTCALL comp_func_solid_Screen(uint *dest, int length, uint color, uint const_alpha);
+void QT_FASTCALL comp_func_solid_Overlay(uint *dest, int length, uint color, uint const_alpha);
+void QT_FASTCALL comp_func_solid_Darken(uint *dest, int length, uint color, uint const_alpha);
+void QT_FASTCALL comp_func_solid_Lighten(uint *dest, int length, uint color, uint const_alpha);
+void QT_FASTCALL comp_func_solid_ColorDodge(uint *dest, int length, uint color, uint const_alpha);
+void QT_FASTCALL comp_func_solid_ColorBurn(uint *dest, int length, uint color, uint const_alpha);
+void QT_FASTCALL comp_func_solid_HardLight(uint *dest, int length, uint color, uint const_alpha);
+void QT_FASTCALL comp_func_solid_SoftLight(uint *dest, int length, uint color, uint const_alpha);
+void QT_FASTCALL comp_func_solid_Difference(uint *dest, int length, uint color, uint const_alpha);
+void QT_FASTCALL comp_func_solid_Exclusion(uint *dest, int length, uint color, uint const_alpha);
+void QT_FASTCALL rasterop_solid_SourceOrDestination(uint *dest, int length, uint color, uint const_alpha);
+void QT_FASTCALL rasterop_solid_SourceAndDestination(uint *dest, int length, uint color, uint const_alpha);
+void QT_FASTCALL rasterop_solid_SourceXorDestination(uint *dest, int length, uint color, uint const_alpha);
+void QT_FASTCALL rasterop_solid_NotSourceAndNotDestination(uint *dest, int length, uint color, uint const_alpha);
+void QT_FASTCALL rasterop_solid_NotSourceOrNotDestination(uint *dest, int length, uint color, uint const_alpha);
+void QT_FASTCALL rasterop_solid_NotSourceXorDestination(uint *dest, int length, uint color, uint const_alpha);
+void QT_FASTCALL rasterop_solid_NotSource(uint *dest, int length, uint color, uint const_alpha);
+void QT_FASTCALL rasterop_solid_NotSourceAndDestination(uint *dest, int length, uint color, uint const_alpha);
+void QT_FASTCALL rasterop_solid_SourceAndNotDestination(uint *dest, int length, uint color, uint const_alpha);
+
 QT_END_NAMESPACE
 
 #endif // QDRAWHELPER_P_H
--- a/src/gui/painting/qdrawhelper_sse.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/painting/qdrawhelper_sse.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -77,14 +77,35 @@
     comp_func_DestinationOver<QSSEIntrinsics>,
     comp_func_Clear<QSSEIntrinsics>,
     comp_func_Source<QSSEIntrinsics>,
-    0,
+    comp_func_Destination,
     comp_func_SourceIn<QSSEIntrinsics>,
     comp_func_DestinationIn<QSSEIntrinsics>,
     comp_func_SourceOut<QSSEIntrinsics>,
     comp_func_DestinationOut<QSSEIntrinsics>,
     comp_func_SourceAtop<QSSEIntrinsics>,
     comp_func_DestinationAtop<QSSEIntrinsics>,
-    comp_func_XOR<QSSEIntrinsics>
+    comp_func_XOR<QSSEIntrinsics>,
+    comp_func_Plus,
+    comp_func_Multiply,
+    comp_func_Screen,
+    comp_func_Overlay,
+    comp_func_Darken,
+    comp_func_Lighten,
+    comp_func_ColorDodge,
+    comp_func_ColorBurn,
+    comp_func_HardLight,
+    comp_func_SoftLight,
+    comp_func_Difference,
+    comp_func_Exclusion,
+    rasterop_SourceOrDestination,
+    rasterop_SourceAndDestination,
+    rasterop_SourceXorDestination,
+    rasterop_NotSourceAndNotDestination,
+    rasterop_NotSourceOrNotDestination,
+    rasterop_NotSourceXorDestination,
+    rasterop_NotSource,
+    rasterop_NotSourceAndDestination,
+    rasterop_SourceAndNotDestination
 };
 
 void qt_blend_color_argb_sse(int count, const QSpan *spans, void *userData)
--- a/src/gui/painting/qdrawhelper_sse2.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/painting/qdrawhelper_sse2.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -43,7 +43,6 @@
 
 #ifdef QT_HAVE_SSE2
 
-#include <private/qsimd_p.h>
 #include <private/qdrawingprimitive_sse2_p.h>
 #include <private/qpaintengine_raster_p.h>
 
@@ -112,9 +111,7 @@
                 int x = 0;
 
                 // First, align dest to 16 bytes:
-                const int offsetToAlignOn16Bytes = (4 - ((reinterpret_cast<quintptr>(dst) >> 2) & 0x3)) & 0x3;
-                const int prologLength = qMin(w, offsetToAlignOn16Bytes);
-                for (; x < prologLength; ++x) {
+                ALIGNMENT_PROLOGUE_16BYTES(dst, x, w) {
                     quint32 s = src[x];
                     s = BYTE_MUL(s, const_alpha);
                     dst[x] = INTERPOLATE_PIXEL_255(src[x], const_alpha, dst[x], one_minus_const_alpha);
@@ -145,7 +142,6 @@
 
 void QT_FASTCALL comp_func_SourceOver_sse2(uint *destPixels, const uint *srcPixels, int length, uint const_alpha)
 {
-    Q_ASSERT(const_alpha >= 0);
     Q_ASSERT(const_alpha < 256);
 
     const quint32 *src = (const quint32 *) srcPixels;
@@ -164,6 +160,85 @@
     }
 }
 
+void QT_FASTCALL comp_func_Plus_sse2(uint *dst, const uint *src, int length, uint const_alpha)
+{
+    int x = 0;
+
+    if (const_alpha == 255) {
+        // 1) Prologue: align destination on 16 bytes
+        ALIGNMENT_PROLOGUE_16BYTES(dst, x, length)
+            dst[x] = comp_func_Plus_one_pixel(dst[x], src[x]);
+
+        // 2) composition with SSE2
+        for (; x < length - 3; x += 4) {
+            const __m128i srcVector = _mm_loadu_si128((__m128i *)&src[x]);
+            const __m128i dstVector = _mm_load_si128((__m128i *)&dst[x]);
+
+            const __m128i result = _mm_adds_epu8(srcVector, dstVector);
+            _mm_store_si128((__m128i *)&dst[x], result);
+        }
+
+        // 3) Epilogue:
+        for (; x < length; ++x)
+            dst[x] = comp_func_Plus_one_pixel(dst[x], src[x]);
+    } else {
+        const int one_minus_const_alpha = 255 - const_alpha;
+        const __m128i constAlphaVector = _mm_set1_epi16(const_alpha);
+        const __m128i oneMinusConstAlpha =  _mm_set1_epi16(one_minus_const_alpha);
+
+        // 1) Prologue: align destination on 16 bytes
+        ALIGNMENT_PROLOGUE_16BYTES(dst, x, length)
+            dst[x] = comp_func_Plus_one_pixel_const_alpha(dst[x], src[x], const_alpha, one_minus_const_alpha);
+
+        const __m128i half = _mm_set1_epi16(0x80);
+        const __m128i colorMask = _mm_set1_epi32(0x00ff00ff);
+        // 2) composition with SSE2
+        for (; x < length - 3; x += 4) {
+            const __m128i srcVector = _mm_loadu_si128((__m128i *)&src[x]);
+            const __m128i dstVector = _mm_load_si128((__m128i *)&dst[x]);
+
+            __m128i result = _mm_adds_epu8(srcVector, dstVector);
+            INTERPOLATE_PIXEL_255_SSE2(result, result, dstVector, constAlphaVector, oneMinusConstAlpha, colorMask, half)
+            _mm_store_si128((__m128i *)&dst[x], result);
+        }
+
+        // 3) Epilogue:
+        for (; x < length; ++x)
+            dst[x] = comp_func_Plus_one_pixel_const_alpha(dst[x], src[x], const_alpha, one_minus_const_alpha);
+    }
+}
+
+void QT_FASTCALL comp_func_Source_sse2(uint *dst, const uint *src, int length, uint const_alpha)
+{
+    if (const_alpha == 255) {
+        ::memcpy(dst, src, length * sizeof(uint));
+    } else {
+        const int ialpha = 255 - const_alpha;
+
+        int x = 0;
+
+        // 1) prologue, align on 16 bytes
+        ALIGNMENT_PROLOGUE_16BYTES(dst, x, length)
+            dst[x] = INTERPOLATE_PIXEL_255(src[x], const_alpha, dst[x], ialpha);
+
+        // 2) interpolate pixels with SSE2
+        const __m128i half = _mm_set1_epi16(0x80);
+        const __m128i colorMask = _mm_set1_epi32(0x00ff00ff);
+        const __m128i constAlphaVector = _mm_set1_epi16(const_alpha);
+        const __m128i oneMinusConstAlpha =  _mm_set1_epi16(ialpha);
+        for (; x < length - 3; x += 4) {
+            const __m128i srcVector = _mm_loadu_si128((__m128i *)&src[x]);
+            __m128i dstVector = _mm_load_si128((__m128i *)&dst[x]);
+            INTERPOLATE_PIXEL_255_SSE2(dstVector, srcVector, dstVector, constAlphaVector, oneMinusConstAlpha, colorMask, half)
+            _mm_store_si128((__m128i *)&dst[x], dstVector);
+        }
+
+        // 3) Epilogue
+        for (; x < length; ++x)
+            dst[x] = INTERPOLATE_PIXEL_255(src[x], const_alpha, dst[x], ialpha);
+    }
+}
+
 void qt_memfill32_sse2(quint32 *dest, quint32 value, int count)
 {
     if (count < 7) {
@@ -236,6 +311,78 @@
     }
 }
 
+CompositionFunctionSolid qt_functionForModeSolid_onlySSE2[numCompositionFunctions] = {
+    comp_func_solid_SourceOver_sse2,
+    comp_func_solid_DestinationOver,
+    comp_func_solid_Clear,
+    comp_func_solid_Source,
+    comp_func_solid_Destination,
+    comp_func_solid_SourceIn,
+    comp_func_solid_DestinationIn,
+    comp_func_solid_SourceOut,
+    comp_func_solid_DestinationOut,
+    comp_func_solid_SourceAtop,
+    comp_func_solid_DestinationAtop,
+    comp_func_solid_XOR,
+    comp_func_solid_Plus,
+    comp_func_solid_Multiply,
+    comp_func_solid_Screen,
+    comp_func_solid_Overlay,
+    comp_func_solid_Darken,
+    comp_func_solid_Lighten,
+    comp_func_solid_ColorDodge,
+    comp_func_solid_ColorBurn,
+    comp_func_solid_HardLight,
+    comp_func_solid_SoftLight,
+    comp_func_solid_Difference,
+    comp_func_solid_Exclusion,
+    rasterop_solid_SourceOrDestination,
+    rasterop_solid_SourceAndDestination,
+    rasterop_solid_SourceXorDestination,
+    rasterop_solid_NotSourceAndNotDestination,
+    rasterop_solid_NotSourceOrNotDestination,
+    rasterop_solid_NotSourceXorDestination,
+    rasterop_solid_NotSource,
+    rasterop_solid_NotSourceAndDestination,
+    rasterop_solid_SourceAndNotDestination
+};
+
+CompositionFunction qt_functionForMode_onlySSE2[numCompositionFunctions] = {
+    comp_func_SourceOver_sse2,
+    comp_func_DestinationOver,
+    comp_func_Clear,
+    comp_func_Source_sse2,
+    comp_func_Destination,
+    comp_func_SourceIn,
+    comp_func_DestinationIn,
+    comp_func_SourceOut,
+    comp_func_DestinationOut,
+    comp_func_SourceAtop,
+    comp_func_DestinationAtop,
+    comp_func_XOR,
+    comp_func_Plus_sse2,
+    comp_func_Multiply,
+    comp_func_Screen,
+    comp_func_Overlay,
+    comp_func_Darken,
+    comp_func_Lighten,
+    comp_func_ColorDodge,
+    comp_func_ColorBurn,
+    comp_func_HardLight,
+    comp_func_SoftLight,
+    comp_func_Difference,
+    comp_func_Exclusion,
+    rasterop_SourceOrDestination,
+    rasterop_SourceAndDestination,
+    rasterop_SourceXorDestination,
+    rasterop_NotSourceAndNotDestination,
+    rasterop_NotSourceOrNotDestination,
+    rasterop_NotSourceXorDestination,
+    rasterop_NotSource,
+    rasterop_NotSourceAndDestination,
+    rasterop_SourceAndNotDestination
+};
+
 void qt_memfill16_sse2(quint16 *dest, quint16 value, int count)
 {
     if (count < 3) {
--- a/src/gui/painting/qdrawhelper_sse3dnow.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/painting/qdrawhelper_sse3dnow.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -85,14 +85,35 @@
     comp_func_DestinationOver<QSSE3DNOWIntrinsics>,
     comp_func_Clear<QSSE3DNOWIntrinsics>,
     comp_func_Source<QSSE3DNOWIntrinsics>,
-    0,
+    comp_func_Destination,
     comp_func_SourceIn<QSSE3DNOWIntrinsics>,
     comp_func_DestinationIn<QSSE3DNOWIntrinsics>,
     comp_func_SourceOut<QSSE3DNOWIntrinsics>,
     comp_func_DestinationOut<QSSE3DNOWIntrinsics>,
     comp_func_SourceAtop<QSSE3DNOWIntrinsics>,
     comp_func_DestinationAtop<QSSE3DNOWIntrinsics>,
-    comp_func_XOR<QSSE3DNOWIntrinsics>
+    comp_func_XOR<QSSE3DNOWIntrinsics>,
+    comp_func_Plus,
+    comp_func_Multiply,
+    comp_func_Screen,
+    comp_func_Overlay,
+    comp_func_Darken,
+    comp_func_Lighten,
+    comp_func_ColorDodge,
+    comp_func_ColorBurn,
+    comp_func_HardLight,
+    comp_func_SoftLight,
+    comp_func_Difference,
+    comp_func_Exclusion,
+    rasterop_SourceOrDestination,
+    rasterop_SourceAndDestination,
+    rasterop_SourceXorDestination,
+    rasterop_NotSourceAndNotDestination,
+    rasterop_NotSourceOrNotDestination,
+    rasterop_NotSourceXorDestination,
+    rasterop_NotSource,
+    rasterop_NotSourceAndDestination,
+    rasterop_SourceAndNotDestination
 };
 
 void qt_blend_color_argb_sse3dnow(int count, const QSpan *spans, void *userData)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/gui/painting/qdrawhelper_ssse3.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,252 @@
+/****************************************************************************
+**
+** 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 <private/qdrawhelper_x86_p.h>
+
+#ifdef QT_HAVE_SSSE3
+
+#include <private/qdrawingprimitive_sse2_p.h>
+
+QT_BEGIN_NAMESPACE
+
+inline static void blend_pixel(quint32 &dst, const quint32 src)
+{
+    if (src >= 0xff000000)
+        dst = src;
+    else if (src != 0)
+        dst = src + BYTE_MUL(dst, qAlpha(~src));
+}
+
+
+/* The instruction palignr uses direct arguments, so we have to generate the code fo the different
+   shift (4, 8, 12). Checking the alignment inside the loop is unfortunatelly way too slow.
+ */
+#define BLENDING_LOOP(palignrOffset, length)\
+    for (; x < length-3; x += 4) { \
+        const __m128i srcVectorLastLoaded = _mm_load_si128((__m128i *)&src[x - minusOffsetToAlignSrcOn16Bytes + 4]);\
+        const __m128i srcVector = _mm_alignr_epi8(srcVectorLastLoaded, srcVectorPrevLoaded, palignrOffset); \
+        const __m128i srcVectorAlpha = _mm_and_si128(srcVector, alphaMask); \
+        if (_mm_movemask_epi8(_mm_cmpeq_epi32(srcVectorAlpha, alphaMask)) == 0xffff) { \
+            _mm_store_si128((__m128i *)&dst[x], srcVector); \
+        } else if (_mm_movemask_epi8(_mm_cmpeq_epi32(srcVectorAlpha, nullVector)) != 0xffff) { \
+            __m128i alphaChannel = _mm_shuffle_epi8(srcVector, alphaShuffleMask); \
+            alphaChannel = _mm_sub_epi16(one, alphaChannel); \
+            const __m128i dstVector = _mm_load_si128((__m128i *)&dst[x]); \
+            __m128i destMultipliedByOneMinusAlpha; \
+            BYTE_MUL_SSE2(destMultipliedByOneMinusAlpha, dstVector, alphaChannel, colorMask, half); \
+            const __m128i result = _mm_add_epi8(srcVector, destMultipliedByOneMinusAlpha); \
+            _mm_store_si128((__m128i *)&dst[x], result); \
+        } \
+        srcVectorPrevLoaded = srcVectorLastLoaded;\
+    }
+
+
+#define BLEND_SOURCE_OVER_ARGB32_FIRST_ROW_SSSE3(dst, src, length, nullVector, half, one, colorMask, alphaMask) { \
+    int x = 0; \
+\
+    /* First, get dst aligned. */ \
+    const int offsetToAlignOn16Bytes = (4 - ((reinterpret_cast<quintptr>(dst) >> 2) & 0x3)) & 0x3;\
+    const int prologLength = qMin(length, offsetToAlignOn16Bytes);\
+\
+    for (; x < prologLength; ++x) {\
+        blend_pixel(dst[x], src[x]); \
+    } \
+\
+    const int minusOffsetToAlignSrcOn16Bytes = (reinterpret_cast<quintptr>(&(src[x])) >> 2) & 0x3;\
+\
+    if (!minusOffsetToAlignSrcOn16Bytes) {\
+        /* src is aligned, usual algorithm but with aligned operations.\
+           See the SSE2 version for more documentation on the algorithm itself. */\
+        const __m128i alphaShuffleMask = _mm_set_epi8(0xff,15,0xff,15,0xff,11,0xff,11,0xff,7,0xff,7,0xff,3,0xff,3);\
+        for (; x < length-3; x += 4) { \
+            const __m128i srcVector = _mm_load_si128((__m128i *)&src[x]); \
+            const __m128i srcVectorAlpha = _mm_and_si128(srcVector, alphaMask); \
+            if (_mm_movemask_epi8(_mm_cmpeq_epi32(srcVectorAlpha, alphaMask)) == 0xffff) { \
+                _mm_store_si128((__m128i *)&dst[x], srcVector); \
+            } else if (_mm_movemask_epi8(_mm_cmpeq_epi32(srcVectorAlpha, nullVector)) != 0xffff) { \
+                __m128i alphaChannel = _mm_shuffle_epi8(srcVector, alphaShuffleMask); \
+                alphaChannel = _mm_sub_epi16(one, alphaChannel); \
+                const __m128i dstVector = _mm_load_si128((__m128i *)&dst[x]); \
+                __m128i destMultipliedByOneMinusAlpha; \
+                BYTE_MUL_SSE2(destMultipliedByOneMinusAlpha, dstVector, alphaChannel, colorMask, half); \
+                const __m128i result = _mm_add_epi8(srcVector, destMultipliedByOneMinusAlpha); \
+                _mm_store_si128((__m128i *)&dst[x], result); \
+            } \
+        } /* end for() */\
+    } else if ((length - x) >= 8) {\
+        /* We are at the first line, so "x - minusOffsetToAlignSrcOn16Bytes" could go before src, and\
+           generate an invalid access. */\
+\
+        /* We use two vectors to extract the src: prevLoaded for the first pixels, lastLoaded for the current pixels. */\
+        __m128i srcVectorPrevLoaded;\
+        if (minusOffsetToAlignSrcOn16Bytes > prologLength) {\
+            /* We go forward 4 pixels to avoid reading before src. */\
+            for (; x < prologLength + 4; ++x)\
+                blend_pixel(dst[x], src[x]); \
+        }\
+        srcVectorPrevLoaded = _mm_load_si128((__m128i *)&src[x - minusOffsetToAlignSrcOn16Bytes]);\
+        const int palignrOffset = minusOffsetToAlignSrcOn16Bytes << 2;\
+\
+        const __m128i alphaShuffleMask = _mm_set_epi8(0xff,15,0xff,15,0xff,11,0xff,11,0xff,7,0xff,7,0xff,3,0xff,3);\
+        switch (palignrOffset) {\
+        case 4:\
+            BLENDING_LOOP(4, length)\
+            break;\
+        case 8:\
+            BLENDING_LOOP(8, length)\
+            break;\
+        case 12:\
+            BLENDING_LOOP(12, length)\
+            break;\
+        }\
+    }\
+    for (; x < length; ++x) \
+        blend_pixel(dst[x], src[x]); \
+}
+
+// Basically blend src over dst with the const alpha defined as constAlphaVector.
+// nullVector, half, one, colorMask are constant accross the whole image/texture, and should be defined as:
+//const __m128i nullVector = _mm_set1_epi32(0);
+//const __m128i half = _mm_set1_epi16(0x80);
+//const __m128i one = _mm_set1_epi16(0xff);
+//const __m128i colorMask = _mm_set1_epi32(0x00ff00ff);
+//const __m128i alphaMask = _mm_set1_epi32(0xff000000);
+//
+// The computation being done is:
+// result = s + d * (1-alpha)
+// with shortcuts if fully opaque or fully transparent.
+#define BLEND_SOURCE_OVER_ARGB32_MAIN_SSSE3(dst, src, length, nullVector, half, one, colorMask, alphaMask) { \
+    int x = 0; \
+\
+    /* First, get dst aligned. */ \
+    ALIGNMENT_PROLOGUE_16BYTES(dst, x, length) { \
+        blend_pixel(dst[x], src[x]); \
+    } \
+\
+    const int minusOffsetToAlignSrcOn16Bytes = (reinterpret_cast<quintptr>(&(src[x])) >> 2) & 0x3;\
+\
+    if (!minusOffsetToAlignSrcOn16Bytes) {\
+        /* src is aligned, usual algorithm but with aligned operations.\
+           See the SSE2 version for more documentation on the algorithm itself. */\
+        const __m128i alphaShuffleMask = _mm_set_epi8(0xff,15,0xff,15,0xff,11,0xff,11,0xff,7,0xff,7,0xff,3,0xff,3);\
+        for (; x < length-3; x += 4) { \
+            const __m128i srcVector = _mm_load_si128((__m128i *)&src[x]); \
+            const __m128i srcVectorAlpha = _mm_and_si128(srcVector, alphaMask); \
+            if (_mm_movemask_epi8(_mm_cmpeq_epi32(srcVectorAlpha, alphaMask)) == 0xffff) { \
+                _mm_store_si128((__m128i *)&dst[x], srcVector); \
+            } else if (_mm_movemask_epi8(_mm_cmpeq_epi32(srcVectorAlpha, nullVector)) != 0xffff) { \
+                __m128i alphaChannel = _mm_shuffle_epi8(srcVector, alphaShuffleMask); \
+                alphaChannel = _mm_sub_epi16(one, alphaChannel); \
+                const __m128i dstVector = _mm_load_si128((__m128i *)&dst[x]); \
+                __m128i destMultipliedByOneMinusAlpha; \
+                BYTE_MUL_SSE2(destMultipliedByOneMinusAlpha, dstVector, alphaChannel, colorMask, half); \
+                const __m128i result = _mm_add_epi8(srcVector, destMultipliedByOneMinusAlpha); \
+                _mm_store_si128((__m128i *)&dst[x], result); \
+            } \
+        } /* end for() */\
+    } else if ((length - x) >= 8) {\
+        /* We use two vectors to extract the src: prevLoaded for the first pixels, lastLoaded for the current pixels. */\
+        __m128i srcVectorPrevLoaded = _mm_load_si128((__m128i *)&src[x - minusOffsetToAlignSrcOn16Bytes]);\
+        const int palignrOffset = minusOffsetToAlignSrcOn16Bytes << 2;\
+\
+        const __m128i alphaShuffleMask = _mm_set_epi8(0xff,15,0xff,15,0xff,11,0xff,11,0xff,7,0xff,7,0xff,3,0xff,3);\
+        switch (palignrOffset) {\
+        case 4:\
+            BLENDING_LOOP(4, length)\
+            break;\
+        case 8:\
+            BLENDING_LOOP(8, length)\
+            break;\
+        case 12:\
+            BLENDING_LOOP(12, length)\
+            break;\
+        }\
+    }\
+    for (; x < length; ++x) \
+        blend_pixel(dst[x], src[x]); \
+}
+
+void qt_blend_argb32_on_argb32_ssse3(uchar *destPixels, int dbpl,
+                                     const uchar *srcPixels, int sbpl,
+                                     int w, int h,
+                                     int const_alpha)
+{
+    const quint32 *src = (const quint32 *) srcPixels;
+    quint32 *dst = (quint32 *) destPixels;
+    if (const_alpha == 256) {
+        const __m128i alphaMask = _mm_set1_epi32(0xff000000);
+        const __m128i nullVector = _mm_setzero_si128();
+        const __m128i half = _mm_set1_epi16(0x80);
+        const __m128i one = _mm_set1_epi16(0xff);
+        const __m128i colorMask = _mm_set1_epi32(0x00ff00ff);
+
+        // We have to unrol the first row in order to deal with the load on unaligned data
+        // prior to the src pointer.
+        BLEND_SOURCE_OVER_ARGB32_FIRST_ROW_SSSE3(dst, src, w, nullVector, half, one, colorMask, alphaMask);
+        dst = (quint32 *)(((uchar *) dst) + dbpl);
+        src = (const quint32 *)(((const uchar *) src) + sbpl);
+
+        for (int y = 1; y < h; ++y) {
+            BLEND_SOURCE_OVER_ARGB32_MAIN_SSSE3(dst, src, w, nullVector, half, one, colorMask, alphaMask);
+            dst = (quint32 *)(((uchar *) dst) + dbpl);
+            src = (const quint32 *)(((const uchar *) src) + sbpl);
+        }
+    } else if (const_alpha != 0) {
+        // dest = (s + d * sia) * ca + d * cia
+        //      = s * ca + d * (sia * ca + cia)
+        //      = s * ca + d * (1 - sa*ca)
+        const_alpha = (const_alpha * 255) >> 8;
+        const __m128i nullVector = _mm_setzero_si128();
+        const __m128i half = _mm_set1_epi16(0x80);
+        const __m128i one = _mm_set1_epi16(0xff);
+        const __m128i colorMask = _mm_set1_epi32(0x00ff00ff);
+        const __m128i constAlphaVector = _mm_set1_epi16(const_alpha);
+        for (int y = 0; y < h; ++y) {
+            BLEND_SOURCE_OVER_ARGB32_WITH_CONST_ALPHA_SSE2(dst, src, w, nullVector, half, one, colorMask, constAlphaVector)
+            dst = (quint32 *)(((uchar *) dst) + dbpl);
+            src = (const quint32 *)(((const uchar *) src) + sbpl);
+        }
+    }
+}
+
+QT_END_NAMESPACE
+
+#endif // QT_HAVE_SSSE3
--- a/src/gui/painting/qdrawhelper_x86_p.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/painting/qdrawhelper_x86_p.h	Mon Oct 04 01:19:32 2010 +0300
@@ -122,6 +122,9 @@
                                  const uchar *srcPixels, int sbpl,
                                  int w, int h,
                                  int const_alpha);
+
+extern CompositionFunction qt_functionForMode_onlySSE2[];
+extern CompositionFunctionSolid qt_functionForModeSolid_onlySSE2[];
 #endif // QT_HAVE_SSE2
 
 #ifdef QT_HAVE_IWMMXT
--- a/src/gui/painting/qdrawingprimitive_sse2_p.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/painting/qdrawingprimitive_sse2_p.h	Mon Oct 04 01:19:32 2010 +0300
@@ -143,9 +143,7 @@
     int x = 0; \
 \
     /* First, get dst aligned. */ \
-    const int offsetToAlignOn16Bytes = (4 - ((reinterpret_cast<quintptr>(dst) >> 2) & 0x3)) & 0x3;\
-    const int prologLength = qMin(length, offsetToAlignOn16Bytes);\
-    for (; x < prologLength; ++x) { \
+    ALIGNMENT_PROLOGUE_16BYTES(dst, x, length) { \
         uint s = src[x]; \
         if (s >= 0xff000000) \
             dst[x] = s; \
@@ -202,9 +200,7 @@
 { \
     int x = 0; \
 \
-    const int offsetToAlignOn16Bytes = (4 - ((reinterpret_cast<quintptr>(dst) >> 2) & 0x3)) & 0x3;\
-    const int prologLength = qMin(length, offsetToAlignOn16Bytes);\
-    for (; x < prologLength; ++x) { \
+    ALIGNMENT_PROLOGUE_16BYTES(dst, x, length) { \
         quint32 s = src[x]; \
         if (s != 0) { \
             s = BYTE_MUL(s, const_alpha); \
--- a/src/gui/painting/qgraphicssystem_runtime.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/painting/qgraphicssystem_runtime.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -53,10 +53,8 @@
 static int qt_pixmap_serial = 0;
 
 #define READBACK(f)                                         \
-    m_graphicsSystem->decreaseMemoryUsage(memoryUsage());   \
     f                                                       \
-    readBackInfo();                                         \
-    m_graphicsSystem->increaseMemoryUsage(memoryUsage());   \
+    readBackInfo();
 
 
 class QDeferredGraphicsSystemChange : public QObject
@@ -252,16 +250,8 @@
     return m_data;
 }
 
-uint QRuntimePixmapData::memoryUsage() const
-{
-    if(is_null || d == 0)
-        return 0;
-    return w * h * (d / 8);
-}
-
-
 QRuntimeWindowSurface::QRuntimeWindowSurface(const QRuntimeGraphicsSystem *gs, QWidget *window)
-    : QWindowSurface(window), m_windowSurface(0), m_pendingWindowSurface(0), m_graphicsSystem(gs)
+    : QWindowSurface(window), m_graphicsSystem(gs)
 {
 
 }
@@ -269,7 +259,6 @@
 QRuntimeWindowSurface::~QRuntimeWindowSurface()
 {
     m_graphicsSystem->removeWindowSurface(this);
-    delete m_windowSurface;
 }
 
 QPaintDevice *QRuntimeWindowSurface::paintDevice()
@@ -288,16 +277,13 @@
 #ifdef QT_DEBUG
         qDebug() << "QRuntimeWindowSurface::flush() - destroy pending window surface";
 #endif
-        delete m_pendingWindowSurface;
-        m_pendingWindowSurface = 0;
+        m_pendingWindowSurface.reset();
     }
 }
 
 void QRuntimeWindowSurface::setGeometry(const QRect &rect)
 {
-    m_graphicsSystem->decreaseMemoryUsage(memoryUsage());
     m_windowSurface->setGeometry(rect);
-    m_graphicsSystem->increaseMemoryUsage(memoryUsage());
 }
 
 bool QRuntimeWindowSurface::scroll(const QRegion &area, int dx, int dy)
@@ -330,27 +316,21 @@
     return m_windowSurface->offset(widget);
 }
 
-uint QRuntimeWindowSurface::memoryUsage() const
-{
-    QPaintDevice *pdev = m_windowSurface->paintDevice();
-    if (pdev && pdev->depth() != 0)
-        return pdev->width() * pdev->height() * (pdev->depth()/8);
-
-    return 0;
-}
-
 QRuntimeGraphicsSystem::QRuntimeGraphicsSystem()
-    : m_memoryUsage(0), m_windowSurfaceDestroyPolicy(DestroyImmediately),
-	m_graphicsSystem(0), m_graphicsSystemChangeMemoryLimit(0)
+    : m_windowSurfaceDestroyPolicy(DestroyImmediately),
+      m_graphicsSystem(0)
 {
     QApplicationPrivate::graphics_system_name = QLatin1String("runtime");
     QApplicationPrivate::runtime_graphics_system = true;
 
+#ifdef QT_DEFAULT_RUNTIME_SYSTEM
+    m_graphicsSystemName = QLatin1String(QT_DEFAULT_RUNTIME_SYSTEM);
+    if (m_graphicsSystemName.isNull())
+#endif
+        m_graphicsSystemName = QLatin1String("raster");
+
 #ifdef Q_OS_SYMBIAN
-    m_graphicsSystemName = QLatin1String("openvg");
     m_windowSurfaceDestroyPolicy = DestroyAfterFirstFlush;
-#else
-    m_graphicsSystemName = QLatin1String("raster");
 #endif
 
     m_graphicsSystem = QGraphicsSystemFactory::create(m_graphicsSystemName);
@@ -373,51 +353,30 @@
 {
     Q_ASSERT(m_graphicsSystem);
     QRuntimeWindowSurface *rtSurface = new QRuntimeWindowSurface(this, widget);
-    rtSurface->m_windowSurface = m_graphicsSystem->createWindowSurface(widget);
+    rtSurface->m_windowSurface.reset(m_graphicsSystem->createWindowSurface(widget));
     widget->setWindowSurface(rtSurface);
     m_windowSurfaces << rtSurface;
-    increaseMemoryUsage(rtSurface->memoryUsage());
     return rtSurface;
 }
 
-/*!
-    Sets graphics system when resource memory consumption is under /a memoryUsageLimit.
-*/
-void QRuntimeGraphicsSystem::setGraphicsSystem(const QString &name, uint memoryUsageLimit)
-{
-#ifdef QT_DEBUG
-    qDebug() << "QRuntimeGraphicsSystem::setGraphicsSystem( "<< name <<", " << memoryUsageLimit << ")";
-    qDebug() << "        current approximated graphics system memory usage " << memoryUsage() << " bytes";
-#endif
-    if (memoryUsage() >= memoryUsageLimit) {
-        m_graphicsSystemChangeMemoryLimit = memoryUsageLimit;
-        m_pendingGraphicsSystemName = name;
-    } else {
-        setGraphicsSystem(name);
-    }
-}
-
 void QRuntimeGraphicsSystem::setGraphicsSystem(const QString &name)
 {
     if (m_graphicsSystemName == name)
         return;
 #ifdef QT_DEBUG
     qDebug() << "QRuntimeGraphicsSystem::setGraphicsSystem( " << name << " )";
-    qDebug() << "        current approximated graphics system memory usage "<< memoryUsage() << " bytes";
 #endif
-    delete m_graphicsSystem;
+    QGraphicsSystem *oldSystem = m_graphicsSystem;
     m_graphicsSystem = QGraphicsSystemFactory::create(name);
     m_graphicsSystemName = name;
 
     Q_ASSERT(m_graphicsSystem);
 
-    m_graphicsSystemChangeMemoryLimit = 0;
     m_pendingGraphicsSystemName = QString();
 
     for (int i = 0; i < m_pixmapDatas.size(); ++i) {
         QRuntimePixmapData *proxy = m_pixmapDatas.at(i);
         QPixmapData *newData = m_graphicsSystem->createPixmapData(proxy->m_data);
-        // ### TODO Optimize. Openvg and s60raster graphics systems could switch internal ARGB32_PRE QImage buffers.
         newData->fromImage(proxy->m_data->toImage(), Qt::NoOpaqueDetection);
         delete proxy->m_data;
         proxy->m_data = newData;
@@ -428,58 +387,26 @@
         QRuntimeWindowSurface *proxy = m_windowSurfaces.at(i);
         QWidget *widget = proxy->m_windowSurface->window();
 
-        if(m_windowSurfaceDestroyPolicy == DestroyImmediately) {
-            delete proxy->m_windowSurface;
-            proxy->m_pendingWindowSurface = 0;
-        } else {
-            proxy->m_pendingWindowSurface = proxy->m_windowSurface;
-        }
+        if(m_windowSurfaceDestroyPolicy == DestroyAfterFirstFlush)
+            proxy->m_pendingWindowSurface.reset(proxy->m_windowSurface.take());
 
-        proxy->m_windowSurface = m_graphicsSystem->createWindowSurface(widget);
+        proxy->m_windowSurface.reset(m_graphicsSystem->createWindowSurface(widget));
         qt_widget_private(widget)->invalidateBuffer(widget->rect());
     }
+
+    delete oldSystem;
 }
 
 void QRuntimeGraphicsSystem::removePixmapData(QRuntimePixmapData *pixmapData) const
 {
     int index = m_pixmapDatas.lastIndexOf(pixmapData);
     m_pixmapDatas.removeAt(index);
-    decreaseMemoryUsage(pixmapData->memoryUsage(), true);
 }
 
 void QRuntimeGraphicsSystem::removeWindowSurface(QRuntimeWindowSurface *windowSurface) const
 {
     int index = m_windowSurfaces.lastIndexOf(windowSurface);
     m_windowSurfaces.removeAt(index);
-    decreaseMemoryUsage(windowSurface->memoryUsage(), true);
-}
-
-void QRuntimeGraphicsSystem::increaseMemoryUsage(uint amount) const
-{
-    m_memoryUsage += amount;
-
-    if (m_graphicsSystemChangeMemoryLimit &&
-        m_memoryUsage < m_graphicsSystemChangeMemoryLimit) {
-
-        QRuntimeGraphicsSystem *gs = const_cast<QRuntimeGraphicsSystem*>(this);
-        QDeferredGraphicsSystemChange *deferredChange =
-                    new QDeferredGraphicsSystemChange(gs, m_pendingGraphicsSystemName);
-        deferredChange->launch();
-    }
-}
-
-void QRuntimeGraphicsSystem::decreaseMemoryUsage(uint amount, bool persistent) const
-{
-    m_memoryUsage -= amount;
-
-    if (persistent && m_graphicsSystemChangeMemoryLimit &&
-        m_memoryUsage < m_graphicsSystemChangeMemoryLimit) {
-
-        QRuntimeGraphicsSystem *gs = const_cast<QRuntimeGraphicsSystem*>(this);
-        QDeferredGraphicsSystemChange *deferredChange =
-                    new QDeferredGraphicsSystemChange(gs, m_pendingGraphicsSystemName);
-        deferredChange->launch();
-    }
 }
 
 #include "qgraphicssystem_runtime.moc"
--- a/src/gui/painting/qgraphicssystem_runtime_p.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/painting/qgraphicssystem_runtime_p.h	Mon Oct 04 01:19:32 2010 +0300
@@ -104,8 +104,6 @@
 
     virtual QPixmapData *runtimeData() const;
 
-    virtual uint memoryUsage() const;
-
 private:
     const QRuntimeGraphicsSystem *m_graphicsSystem;
 
@@ -131,10 +129,8 @@
 
     virtual QPoint offset(const QWidget *widget) const;
 
-    virtual uint memoryUsage() const;
-
-    QWindowSurface *m_windowSurface;
-    QWindowSurface *m_pendingWindowSurface;
+    QScopedPointer<QWindowSurface> m_windowSurface;
+    QScopedPointer<QWindowSurface> m_pendingWindowSurface;
 
 private:
     const QRuntimeGraphicsSystem *m_graphicsSystem;
@@ -159,7 +155,6 @@
     void removePixmapData(QRuntimePixmapData *pixmapData) const;
     void removeWindowSurface(QRuntimeWindowSurface *windowSurface) const;
 
-    void setGraphicsSystem(const QString &name, uint memoryUsageLimit);
     void setGraphicsSystem(const QString &name);
     QString graphicsSystemName() const { return m_graphicsSystemName; }
 
@@ -170,22 +165,14 @@
 
     int windowSurfaceDestroyPolicy() const { return m_windowSurfaceDestroyPolicy; }
 
-    uint memoryUsage() const { return m_memoryUsage; }
 
 private:
-
-    void increaseMemoryUsage(uint amount) const;
-    void decreaseMemoryUsage(uint amount, bool persistent = false) const;
-
-private:
-    mutable uint m_memoryUsage;
     int m_windowSurfaceDestroyPolicy;
     QGraphicsSystem *m_graphicsSystem;
     mutable QList<QRuntimePixmapData *> m_pixmapDatas;
     mutable QList<QRuntimeWindowSurface *> m_windowSurfaces;
     QString m_graphicsSystemName;
 
-    uint m_graphicsSystemChangeMemoryLimit;
     QString m_pendingGraphicsSystemName;
 
     friend class QRuntimePixmapData;
--- a/src/gui/painting/qgrayraster.c	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/painting/qgrayraster.c	Mon Oct 04 01:19:32 2010 +0300
@@ -956,53 +956,49 @@
                               const QT_FT_Vector*  control2,
                               const QT_FT_Vector*  to )
   {
-    TPos        dx, dy, da, db;
     int         top, level;
     int*        levels;
     QT_FT_Vector*  arc;
+    int         mid_x = ( DOWNSCALE( ras.x ) + to->x +
+                          3 * (control1->x + control2->x ) ) / 8;
+    int         mid_y = ( DOWNSCALE( ras.y ) + to->y +
+                          3 * (control1->y + control2->y ) ) / 8;
+    TPos        dx = DOWNSCALE( ras.x ) + to->x - ( mid_x << 1 );
+    TPos        dy = DOWNSCALE( ras.y ) + to->y - ( mid_y << 1 );
 
 
-    dx = DOWNSCALE( ras.x ) + to->x - ( control1->x << 1 );
     if ( dx < 0 )
       dx = -dx;
-    dy = DOWNSCALE( ras.y ) + to->y - ( control1->y << 1 );
     if ( dy < 0 )
       dy = -dy;
     if ( dx < dy )
       dx = dy;
-    da = dx;
-
-    dx = DOWNSCALE( ras.x ) + to->x - 3 * ( control1->x + control2->x );
-    if ( dx < 0 )
-      dx = -dx;
-    dy = DOWNSCALE( ras.y ) + to->y - 3 * ( control1->x + control2->y );
-    if ( dy < 0 )
-      dy = -dy;
-    if ( dx < dy )
-      dx = dy;
-    db = dx;
 
     level = 1;
-    da    = da / ras.cubic_level;
-    db    = db / ras.conic_level;
-    while ( da > 0 || db > 0 )
+    dx /= ras.cubic_level;
+    while ( dx > 0 )
     {
-      da >>= 2;
-      db >>= 3;
+      dx >>= 2;
       level++;
     }
 
     if ( level <= 1 )
     {
-      TPos   to_x, to_y, mid_x, mid_y;
+      TPos   to_x, to_y;
 
 
       to_x  = UPSCALE( to->x );
       to_y  = UPSCALE( to->y );
+
+      /* Recalculation of midpoint is needed only if */
+      /* UPSCALE and DOWNSCALE have any effect.      */
+
+#if ( PIXEL_BITS != 6 )
       mid_x = ( ras.x + to_x +
                 3 * UPSCALE( control1->x + control2->x ) ) / 8;
       mid_y = ( ras.y + to_y +
                 3 * UPSCALE( control1->y + control2->y ) ) / 8;
+#endif
 
       gray_render_line( RAS_VAR_ mid_x, mid_y );
       gray_render_line( RAS_VAR_ to_x, to_y );
@@ -1359,10 +1355,6 @@
   /* <Input>                                                               */
   /*    outline        :: A pointer to the source target.                  */
   /*                                                                       */
-  /*    func_interface :: A table of `emitters', i.e,. function pointers   */
-  /*                      called during decomposition to indicate path     */
-  /*                      operations.                                      */
-  /*                                                                       */
   /*    user           :: A typeless pointer which is passed to each       */
   /*                      emitter during the decomposition.  It can be     */
   /*                      used to store the state during the               */
@@ -1373,15 +1365,10 @@
   /*                                                                       */
   static
   int  QT_FT_Outline_Decompose( const QT_FT_Outline*        outline,
-                             const QT_FT_Outline_Funcs*  func_interface,
                              void*                    user )
   {
 #undef SCALED
-#if 0
-#define SCALED( x )  ( ( (x) << shift ) - delta )
-#else
 #define SCALED( x )  (x)
-#endif
 
     QT_FT_Vector   v_last;
     QT_FT_Vector   v_control;
@@ -1396,12 +1383,6 @@
     int   error;
     char  tag;       /* current point's state           */
 
-#if 0
-    int   shift = func_interface->shift;
-    TPos  delta = func_interface->delta;
-#endif
-
-
     first = 0;
 
     for ( n = 0; n < outline->n_contours; n++ )
@@ -1455,7 +1436,7 @@
         tags--;
       }
 
-      error = func_interface->move_to( &v_start, user );
+      error = gray_move_to( &v_start, user );
       if ( error )
         goto Exit;
 
@@ -1475,7 +1456,7 @@
             vec.x = SCALED( point->x );
             vec.y = SCALED( point->y );
 
-            error = func_interface->line_to( &vec, user );
+            error = gray_line_to( &vec, user );
             if ( error )
               goto Exit;
             continue;
@@ -1502,7 +1483,7 @@
 
               if ( tag == QT_FT_CURVE_TAG_ON )
               {
-                error = func_interface->conic_to( &v_control, &vec,
+                error = gray_conic_to( &v_control, &vec,
                                                   user );
                 if ( error )
                   goto Exit;
@@ -1515,7 +1496,7 @@
               v_middle.x = ( v_control.x + vec.x ) / 2;
               v_middle.y = ( v_control.y + vec.y ) / 2;
 
-              error = func_interface->conic_to( &v_control, &v_middle,
+              error = gray_conic_to( &v_control, &v_middle,
                                                 user );
               if ( error )
                 goto Exit;
@@ -1524,7 +1505,7 @@
               goto Do_Conic;
             }
 
-            error = func_interface->conic_to( &v_control, &v_start,
+            error = gray_conic_to( &v_control, &v_start,
                                               user );
             goto Close;
           }
@@ -1555,20 +1536,20 @@
               vec.x = SCALED( point->x );
               vec.y = SCALED( point->y );
 
-              error = func_interface->cubic_to( &vec1, &vec2, &vec, user );
+              error = gray_cubic_to( &vec1, &vec2, &vec, user );
               if ( error )
                 goto Exit;
               continue;
             }
 
-            error = func_interface->cubic_to( &vec1, &vec2, &v_start, user );
+            error = gray_cubic_to( &vec1, &vec2, &v_start, user );
             goto Close;
           }
         }
       }
 
       /* close the contour with a line segment */
-      error = func_interface->line_to( &v_start, user );
+      error = gray_line_to( &v_start, user );
 
    Close:
       if ( error )
@@ -1596,22 +1577,11 @@
   static int
   gray_convert_glyph_inner( RAS_ARG )
   {
-    static
-    const QT_FT_Outline_Funcs  func_interface =
-    {
-      (QT_FT_Outline_MoveTo_Func) gray_move_to,
-      (QT_FT_Outline_LineTo_Func) gray_line_to,
-      (QT_FT_Outline_ConicTo_Func)gray_conic_to,
-      (QT_FT_Outline_CubicTo_Func)gray_cubic_to,
-      0,
-      0
-    };
-
     volatile int  error = 0;
 
     if ( qt_ft_setjmp( ras.jump_buffer ) == 0 )
     {
-      error = QT_FT_Outline_Decompose( &ras.outline, &func_interface, &ras );
+      error = QT_FT_Outline_Decompose( &ras.outline, &ras );
       gray_record_cell( RAS_VAR );
     }
     else
--- a/src/gui/painting/qpaintengine_x11.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/painting/qpaintengine_x11.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -1916,6 +1916,8 @@
     int sh = qRound(sr.height());
 
     QPixmap pixmap = qt_toX11Pixmap(px);
+    if(pixmap.isNull())
+        return;
 
     if ((d->xinfo && d->xinfo->screen() != pixmap.x11Info().screen())
         || (pixmap.x11Info().screen() != DefaultScreen(X11->display))) {
--- a/src/gui/painting/qpaintengineex.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/painting/qpaintengineex.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -831,7 +831,7 @@
 
     int point_count = 0;
     x.points[0] = qt_curves_for_arc(r, 0, -360, x.points + 1, &point_count);
-    QVectorPath vp((qreal *) pts, 13, qpaintengineex_ellipse_types, QVectorPath::EllipseHint);
+    QVectorPath vp((qreal *) pts, point_count, qpaintengineex_ellipse_types, QVectorPath::EllipseHint);
     draw(vp);
 }
 
--- a/src/gui/painting/qpainter.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/painting/qpainter.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -90,6 +90,15 @@
                     const QRectF &_r, int tf, const QTextOption *option, const QString& str, QRectF *brect,
                     int tabstops, int* tabarray, int tabarraylen,
                     QPainter *painter);
+static void drawTextItemDecoration(QPainter *painter, const QPointF &pos, const QFontEngine *fe,
+                                   QTextCharFormat::UnderlineStyle underlineStyle,
+                                   const QTextItem::RenderFlags flags, qreal width,
+                                   const QTextCharFormat &charFormat);
+// Helper function to calculate left most position, width and flags for decoration drawing
+static void drawDecorationForGlyphs(QPainter *painter, const glyph_t *glyphArray,
+                                    const QFixedPoint *positions, int glyphCount,
+                                    QFontEngine *fontEngine, const QFont &font,
+                                    const QTextCharFormat &charFormat);
 
 static inline QGradient::CoordinateMode coordinateMode(const QBrush &brush)
 {
@@ -687,9 +696,9 @@
 
         skip = false;
 
-        QBrush penBrush = s->pen.brush();
-        Qt::BrushStyle brushStyle = s->brush.style();
-        Qt::BrushStyle penBrushStyle = penBrush.style();
+        QBrush penBrush = (qpen_style(s->pen) == Qt::NoPen) ? QBrush(Qt::NoBrush) : qpen_brush(s->pen);
+        Qt::BrushStyle brushStyle = qbrush_style(s->brush);
+        Qt::BrushStyle penBrushStyle = qbrush_style(penBrush);
         alpha = (penBrushStyle != Qt::NoBrush
                  && (penBrushStyle < Qt::LinearGradientPattern && penBrush.color().alpha() != 255)
                  && !penBrush.isOpaque())
@@ -5853,10 +5862,14 @@
         return;
     }
 
-    if (d->extended->type() == QPaintEngine::OpenGL2 && !staticText_d->untransformedCoordinates) {
+    bool paintEngineSupportsTransformations = d->extended->type() == QPaintEngine::OpenGL2
+                                           || d->extended->type() == QPaintEngine::OpenVG
+                                           || d->extended->type() == QPaintEngine::OpenGL;
+
+    if (paintEngineSupportsTransformations && !staticText_d->untransformedCoordinates) {
         staticText_d->untransformedCoordinates = true;
         staticText_d->needsRelayout = true;
-    } else if (d->extended->type() != QPaintEngine::OpenGL2 && staticText_d->untransformedCoordinates) {
+    } else if (!paintEngineSupportsTransformations && staticText_d->untransformedCoordinates) {
         staticText_d->untransformedCoordinates = false;
         staticText_d->needsRelayout = true;
     }
@@ -5895,7 +5908,7 @@
 
     // Recreate the layout of the static text because the matrix or font has changed
     if (staticTextNeedsReinit)
-        staticText_d->init();    
+        staticText_d->init();
 
     if (transformedPosition != staticText_d->position) { // Translate to actual position
         QFixed fx = QFixed::fromReal(transformedPosition.x());
@@ -5923,6 +5936,10 @@
             currentColor = item->color;
         }
         d->extended->drawStaticTextItem(item);
+
+        drawDecorationForGlyphs(this, item->glyphs, item->glyphPositions,
+                                item->numGlyphs, item->fontEngine, staticText_d->font,
+                                QTextCharFormat());
     }
     if (currentColor != oldPen.color())
         setPen(oldPen);
@@ -6290,14 +6307,14 @@
     return pixmap;
 }
 
-static void drawTextItemDecoration(QPainter *painter, const QPointF &pos, const QTextItemInt &ti)
-{
-    QTextCharFormat::UnderlineStyle underlineStyle = ti.underlineStyle;
+static void drawTextItemDecoration(QPainter *painter, const QPointF &pos, const QFontEngine *fe,
+                                   QTextCharFormat::UnderlineStyle underlineStyle,
+                                   const QTextItem::RenderFlags flags, qreal width,
+                                   const QTextCharFormat &charFormat)
+{
     if (underlineStyle == QTextCharFormat::NoUnderline
-        && !(ti.flags & (QTextItem::StrikeOut | QTextItem::Overline)))
-        return;
-
-    QFontEngine *fe = ti.fontEngine;
+        && !(flags & (QTextItem::StrikeOut | QTextItem::Overline)))
+        return;
 
     const QPen oldPen = painter->pen();
     const QBrush oldBrush = painter->brush();
@@ -6307,7 +6324,7 @@
     pen.setWidthF(fe->lineThickness().toReal());
     pen.setCapStyle(Qt::FlatCap);
 
-    QLineF line(pos.x(), pos.y(), pos.x() + ti.width.toReal(), pos.y());
+    QLineF line(pos.x(), pos.y(), pos.x() + width, pos.y());
 
     const qreal underlineOffset = fe->underlinePosition().toReal();
     // deliberately ceil the offset to avoid the underline coming too close to
@@ -6322,21 +6339,21 @@
         painter->save();
         painter->translate(0, pos.y() + 1);
 
-        QColor uc = ti.charFormat.underlineColor();
+        QColor uc = charFormat.underlineColor();
         if (uc.isValid())
             pen.setColor(uc);
 
         // Adapt wave to underlineOffset or pen width, whatever is larger, to make it work on all platforms
         const QPixmap wave = generateWavyPixmap(qMax(underlineOffset, pen.widthF()), pen);
-        const int descent = (int) ti.descent.toReal();
+        const int descent = (int) fe->descent().toReal();
 
         painter->setBrushOrigin(painter->brushOrigin().x(), 0);
-        painter->fillRect(pos.x(), 0, qCeil(ti.width.toReal()), qMin(wave.height(), descent), wave);
+        painter->fillRect(pos.x(), 0, qCeil(width), qMin(wave.height(), descent), wave);
         painter->restore();
     } else if (underlineStyle != QTextCharFormat::NoUnderline) {
         QLineF underLine(line.x1(), underlinePos, line.x2(), underlinePos);
 
-        QColor uc = ti.charFormat.underlineColor();
+        QColor uc = charFormat.underlineColor();
         if (uc.isValid())
             pen.setColor(uc);
 
@@ -6348,14 +6365,14 @@
     pen.setStyle(Qt::SolidLine);
     pen.setColor(oldPen.color());
 
-    if (ti.flags & QTextItem::StrikeOut) {
+    if (flags & QTextItem::StrikeOut) {
         QLineF strikeOutLine = line;
         strikeOutLine.translate(0., - fe->ascent().toReal() / 3.);
         painter->setPen(pen);
         painter->drawLine(strikeOutLine);
     }
 
-    if (ti.flags & QTextItem::Overline) {
+    if (flags & QTextItem::Overline) {
         QLineF overLine = line;
         overLine.translate(0., - fe->ascent().toReal());
         painter->setPen(pen);
@@ -6366,6 +6383,50 @@
     painter->setBrush(oldBrush);
 }
 
+static void drawDecorationForGlyphs(QPainter *painter, const glyph_t *glyphArray,
+                                    const QFixedPoint *positions, int glyphCount,
+                                    QFontEngine *fontEngine, const QFont &font,
+                                    const QTextCharFormat &charFormat)
+{
+    if (!(font.underline() || font.strikeOut() || font.overline()))
+        return;
+
+    QFixed leftMost;
+    QFixed rightMost;
+    QFixed baseLine;
+    for (int i=0; i<glyphCount; ++i) {
+        glyph_metrics_t gm = fontEngine->boundingBox(glyphArray[i]);
+        if (i == 0 || leftMost > positions[i].x)
+            leftMost = positions[i].x;
+
+        // We don't support glyphs that do not share a common baseline. If this turns out to
+        // be a relevant use case, then we need to find clusters of glyphs that share a baseline
+        // and do a drawTextItemDecorations call per cluster.
+        if (i == 0 || baseLine < positions[i].y)
+            baseLine = positions[i].y;
+
+        // We use the advance rather than the actual bounds to match the algorithm in drawText()
+        if (i == 0 || rightMost < positions[i].x + gm.xoff)
+            rightMost = positions[i].x + gm.xoff;
+    }
+
+    QFixed width = rightMost - leftMost;
+    QTextItem::RenderFlags flags = 0;
+
+    if (font.underline())
+        flags |= QTextItem::Underline;
+    if (font.overline())
+        flags |= QTextItem::Overline;
+    if (font.strikeOut())
+        flags |= QTextItem::StrikeOut;
+
+    drawTextItemDecoration(painter, QPointF(leftMost.toReal(), baseLine.toReal()),
+                           fontEngine,
+                           font.underline() ? QTextCharFormat::SingleUnderline
+                                            : QTextCharFormat::NoUnderline, flags,
+                           width.toReal(), charFormat);
+}
+
 void QPainter::drawTextItem(const QPointF &p, const QTextItem &_ti)
 {
 #ifdef QT_DEBUG_DRAW
@@ -6496,7 +6557,8 @@
         else
             d->engine->drawTextItem(p, ti);
     }
-    drawTextItemDecoration(this, p, ti);
+    drawTextItemDecoration(this, p, ti.fontEngine, ti.underlineStyle, ti.flags, ti.width.toReal(),
+                           ti.charFormat);
 
     if (d->state->renderHints != oldRenderHints) {
         d->state->renderHints = oldRenderHints;
@@ -8966,7 +9028,7 @@
 {
     Q_D(QPainter);
 
-    if (!d->engine)
+    if (!d->engine || pixmap.isNull())
         return;
 
 #ifndef QT_NO_DEBUG
--- a/src/gui/painting/qwindowsurface_qws.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/painting/qwindowsurface_qws.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -882,7 +882,11 @@
         const QVector<QRect> rects = rgn.rects();
         const QColor blank = Qt::transparent;
         for (QVector<QRect>::const_iterator it = rects.begin(); it != rects.end(); ++it) {
-            p.fillRect(*it, blank);
+            QRect r = *it;
+#ifdef Q_BACKINGSTORE_SUBSURFACES
+            r.translate(painterOffset());
+#endif
+            p.fillRect(r, blank);
         }
     }
     QWSWindowSurface::beginPaint(rgn);
--- a/src/gui/painting/qwindowsurface_s60.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/painting/qwindowsurface_s60.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -67,15 +67,13 @@
 
     TDisplayMode mode = S60->screenDevice()->DisplayMode();
     bool isOpaque = qt_widget_private(widget)->isOpaque;
-    if (mode == EColor16MA && isOpaque) {
-        mode = EColor16MU; // Faster since 16MU -> 16MA is typically accelerated
-    } else if (mode == EColor16MU && !isOpaque) {
+    if (isOpaque) {
+        mode = EColor16MU;
+    } else  {
         if (QSysInfo::symbianVersion() >= QSysInfo::SV_SF_3)
-            mode = Q_SYMBIAN_ECOLOR16MAP; // Symbian^3 has hw support for ARGB32_PRE
+            mode = Q_SYMBIAN_ECOLOR16MAP; // Symbian^3 WServ has support for ARGB32_PRE
         else
             mode = EColor16MA; // Symbian prior to Symbian^3 sw accelerates EColor16MA
-    } else if (QSysInfo::symbianVersion() >= QSysInfo::SV_SF_3 && !isOpaque) {
-        mode = Q_SYMBIAN_ECOLOR16MAP; // Symbian^3 has hw support for ARGB32_PRE
     }
 
     // We create empty CFbsBitmap here -> it will be resized in setGeometry
--- a/src/gui/s60framework/qs60mainapplication.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/s60framework/qs60mainapplication.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -136,16 +136,25 @@
     return KNullDesC();
 }
 
+/*!
+  \internal
+*/
 void QS60MainApplication::PreDocConstructL()
 {
     QS60MainApplicationBase::PreDocConstructL();
 }
 
+/*!
+  \internal
+*/
 CDictionaryStore *QS60MainApplication::OpenIniFileLC(RFs &aFs) const
 {
     return QS60MainApplicationBase::OpenIniFileLC(aFs);
 }
 
+/*!
+  \internal
+*/
 void QS60MainApplication::NewAppServerL(CApaAppServer *&aAppServer)
 {
     QS60MainApplicationBase::NewAppServerL(aAppServer);
--- a/src/gui/s60framework/qs60mainappui.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/s60framework/qs60mainappui.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -281,76 +281,121 @@
     }
 }
 
+/*!
+  \internal
+*/
 void QS60MainAppUi::Exit()
 {
     QS60MainAppUiBase::Exit();
 }
 
+/*!
+  \internal
+*/
 void QS60MainAppUi::SetFadedL(TBool aFaded)
 {
     QS60MainAppUiBase::SetFadedL(aFaded);
 }
 
+/*!
+  \internal
+*/
 TRect QS60MainAppUi::ApplicationRect() const
 {
     return QS60MainAppUiBase::ApplicationRect();
 }
 
+/*!
+  \internal
+*/
 void QS60MainAppUi::HandleScreenDeviceChangedL()
 {
     QS60MainAppUiBase::HandleScreenDeviceChangedL();
 }
 
+/*!
+  \internal
+*/
 void QS60MainAppUi::HandleApplicationSpecificEventL(TInt aType, const TWsEvent &aEvent)
 {
     QS60MainAppUiBase::HandleApplicationSpecificEventL(aType, aEvent);
 }
 
+/*!
+  \internal
+*/
 TTypeUid::Ptr QS60MainAppUi::MopSupplyObject(TTypeUid aId)
 {
     return QS60MainAppUiBase::MopSupplyObject(aId);
 }
 
+/*!
+  \internal
+*/
 void QS60MainAppUi::ProcessCommandL(TInt aCommand)
 {
     QS60MainAppUiBase::ProcessCommandL(aCommand);
 }
 
+/*!
+  \internal
+*/
 TErrorHandlerResponse QS60MainAppUi::HandleError (TInt aError, const SExtendedError &aExtErr, TDes &aErrorText, TDes &aContextText)
 {
     return QS60MainAppUiBase::HandleError(aError, aExtErr, aErrorText, aContextText);
 }
 
+/*!
+  \internal
+*/
 void QS60MainAppUi::HandleViewDeactivation(const TVwsViewId &aViewIdToBeDeactivated, const TVwsViewId &aNewlyActivatedViewId)
 {
     QS60MainAppUiBase::HandleViewDeactivation(aViewIdToBeDeactivated, aNewlyActivatedViewId);
 }
 
+/*!
+  \internal
+*/
 void QS60MainAppUi::PrepareToExit()
 {
     QS60MainAppUiBase::PrepareToExit();
 }
 
+/*!
+  \internal
+*/
 void QS60MainAppUi::HandleTouchPaneSizeChange()
 {
     QS60MainAppUiBase::HandleTouchPaneSizeChange();
 }
 
+/*!
+  \internal
+*/
 void QS60MainAppUi::HandleSystemEventL(const TWsEvent &aEvent)
 {
     QS60MainAppUiBase::HandleSystemEventL(aEvent);
 }
 
+/*!
+  \internal
+*/
 void QS60MainAppUi::Reserved_MtsmPosition()
 {
     QS60MainAppUiBase::Reserved_MtsmPosition();
 }
 
+/*!
+  \internal
+*/
 void QS60MainAppUi::Reserved_MtsmObject()
 {
     QS60MainAppUiBase::Reserved_MtsmObject();
 }
 
+/*!
+  \internal
+*/
 void QS60MainAppUi::HandleForegroundEventL(TBool aForeground)
 {
     QS60MainAppUiBase::HandleForegroundEventL(aForeground);
--- a/src/gui/s60framework/qs60maindocument.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/s60framework/qs60maindocument.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -105,11 +105,17 @@
     return (static_cast <CEikAppUi*>(new(ELeave)QS60MainAppUi));
 }
 
+/*!
+  \internal
+ */
 CFileStore *QS60MainDocument::OpenFileL(TBool aDoOpen, const TDesC &aFilename, RFs &aFs)
 {
     return QS60MainDocumentBase::OpenFileL(aDoOpen, aFilename, aFs);
 }
 
+/*!
+  \internal
+ */
 void QS60MainDocument::OpenFileL(CFileStore *&aFileStore, RFile &aFile)
 {
     QS60MainDocumentBase::OpenFileL(aFileStore, aFile);
--- a/src/gui/styles/qcleanlooksstyle.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/styles/qcleanlooksstyle.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -2157,7 +2157,7 @@
             }
 
             if (button->features & QStyleOptionButton::HasMenu)
-                ir = ir.adjusted(0, 0, -pixelMetric(PM_MenuButtonIndicator, button, widget), 0);
+                ir = ir.adjusted(0, 0, -proxy()->pixelMetric(PM_MenuButtonIndicator, button, widget), 0);
             proxy()->drawItemText(painter, ir, tf, button->palette, (button->state & State_Enabled),
                          button->text, QPalette::ButtonText);
         }
@@ -4014,8 +4014,8 @@
             switch (subControl) {
             case SC_SliderHandle: {
                 if (slider->orientation == Qt::Horizontal) {
-                    rect.setHeight(pixelMetric(PM_SliderThickness));
-                    rect.setWidth(pixelMetric(PM_SliderLength));
+                    rect.setHeight(proxy()->pixelMetric(PM_SliderThickness));
+                    rect.setWidth(proxy()->pixelMetric(PM_SliderLength));
                     int centerY = slider->rect.center().y() - rect.height() / 2;
                     if (slider->tickPosition & QSlider::TicksAbove)
                         centerY += tickSize;
@@ -4023,8 +4023,8 @@
                         centerY -= tickSize;
                     rect.moveTop(centerY);
                 } else {
-                    rect.setWidth(pixelMetric(PM_SliderThickness));
-                    rect.setHeight(pixelMetric(PM_SliderLength));
+                    rect.setWidth(proxy()->pixelMetric(PM_SliderThickness));
+                    rect.setHeight(proxy()->pixelMetric(PM_SliderLength));
                     int centerX = slider->rect.center().x() - rect.width() / 2;
                     if (slider->tickPosition & QSlider::TicksAbove)
                         centerX += tickSize;
--- a/src/gui/styles/qgtkstyle.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/styles/qgtkstyle.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -836,7 +836,10 @@
 
     case PE_PanelItemViewItem:
         if (const QStyleOptionViewItemV4 *vopt = qstyleoption_cast<const QStyleOptionViewItemV4 *>(option)) {
-            if (vopt->backgroundBrush.style() != Qt::NoBrush) {
+            uint resolve_mask = vopt->palette.resolve();
+            if (vopt->backgroundBrush.style() != Qt::NoBrush
+                    || (resolve_mask & (1 << QPalette::Base)))
+            {
                 QPointF oldBO = painter->brushOrigin();
                 painter->setBrushOrigin(vopt->rect.topLeft());
                 painter->fillRect(vopt->rect, vopt->backgroundBrush);
--- a/src/gui/styles/qmacstyle_mac.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/styles/qmacstyle_mac.h	Mon Oct 04 01:19:32 2010 +0300
@@ -60,6 +60,8 @@
 #define Q_GUI_EXPORT_STYLE_MAC Q_GUI_EXPORT
 #endif
 
+class QPushButton;
+class QStyleOptionButton;
 class QMacStylePrivate;
 class Q_GUI_EXPORT_STYLE_MAC QMacStyle : public QWindowsStyle
 {
@@ -133,6 +135,8 @@
     Q_DISABLE_COPY(QMacStyle)
 
     QMacStylePrivate *d;
+
+    friend bool qt_mac_buttonIsRenderedFlat(const QPushButton *pushButton, const QStyleOptionButton *option);
 };
 
 #endif // Q_WS_MAC
--- a/src/gui/styles/qmacstyle_mac.mm	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/styles/qmacstyle_mac.mm	Mon Oct 04 01:19:32 2010 +0300
@@ -1059,6 +1059,16 @@
     }
 }
 
+bool qt_mac_buttonIsRenderedFlat(const QPushButton *pushButton, const QStyleOptionButton *option)
+{
+    QMacStyle *macStyle = qobject_cast<QMacStyle *>(pushButton->style());
+    if (!macStyle)
+        return false;
+    HIThemeButtonDrawInfo bdi;
+    macStyle->d->initHIThemePushButton(option, pushButton, kThemeStateActive, &bdi);
+    return bdi.kind == kThemeBevelButton;
+}
+
 /**
     Creates a HIThemeButtonDrawInfo structure that specifies the correct button
     kind and other details to use for drawing the given combobox. Which button
@@ -1430,6 +1440,9 @@
 
 bool QMacStylePrivate::animatable(QMacStylePrivate::Animates as, const QWidget *w) const
 {
+    if (!w)
+        return false;
+
     if (as == AquaPushButton) {
         QPushButton *pb = const_cast<QPushButton *>(static_cast<const QPushButton *>(w));
         if (w->window()->isActiveWindow() && pb && !mouseDown) {
--- a/src/gui/styles/qmacstyle_mac_p.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/styles/qmacstyle_mac_p.h	Mon Oct 04 01:19:32 2010 +0300
@@ -150,6 +150,8 @@
         return sizes[controlSize]; \
     } while (0)
 
+bool qt_mac_buttonIsRenderedFlat(const QPushButton *pushButton, const QStyleOptionButton *option);
+
 class QMacStylePrivate : public QObject
 {
     Q_OBJECT
--- a/src/gui/styles/qs60style.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/styles/qs60style.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -154,6 +154,9 @@
 {
     clearCaches(); //deletes also background image
     deleteThemePalette();
+#ifdef Q_WS_S60
+    removeAnimations();
+#endif
 }
 
 void QS60StylePrivate::drawSkinElement(SkinElements element, QPainter *painter,
@@ -1097,8 +1100,7 @@
             }
             State mflags = bflags;
             if (toolBtn->state & State_Sunken) {
-                if (toolBtn->activeSubControls & SC_ToolButton)
-                    bflags |= State_Sunken;
+                bflags |= State_Sunken;
                 mflags |= State_Sunken;
             }
 
@@ -1114,11 +1116,6 @@
                 if (bflags & (State_Sunken | State_On | State_Raised | State_Enabled)) {
                     tool.rect = button.unite(menuRect);
                     tool.state = bflags;
-                    const QToolButton *toolButtonWidget = qobject_cast<const QToolButton *>(widget);
-                    const QS60StylePrivate::SkinElements element =
-                        ((toolButtonWidget && toolButtonWidget->isDown()) || (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) {
@@ -2174,9 +2171,12 @@
     case PE_PanelButtonBevel:
     case PE_FrameButtonBevel:
         if (QS60StylePrivate::canDrawThemeBackground(option->palette.base(), widget)) {
-            const bool isPressed = option->state & State_Sunken;
-            const QS60StylePrivate::SkinElements skinElement =
-                isPressed ? QS60StylePrivate::SE_ButtonPressed : QS60StylePrivate::SE_ButtonNormal;
+            const bool isPressed = (option->state & State_Sunken) || (option->state & State_On);
+            QS60StylePrivate::SkinElements skinElement;
+            if (element == PE_PanelButtonTool)
+                skinElement = isPressed ? QS60StylePrivate::SE_ToolBarButtonPressed : QS60StylePrivate::SE_ToolBarButton;
+            else
+                skinElement = isPressed ? QS60StylePrivate::SE_ButtonPressed : QS60StylePrivate::SE_ButtonNormal;
             QS60StylePrivate::drawSkinElement(skinElement, painter, option->rect, flags);
         } else {
             commonStyleDraws = true;
@@ -2340,16 +2340,20 @@
                     tableView = true;
 
                 QS60StylePrivate::SkinElements element;
+                bool themeGraphicDefined = false;
                 QRect elementRect = option->rect;
 
                 //draw item is drawn as pressed, if it already has focus.
                 if (isPressed && (hasFocus || isSelected)) {
+                    themeGraphicDefined = true;
                     element = tableView ? QS60StylePrivate::SE_TableItemPressed : QS60StylePrivate::SE_ListItemPressed;
                 } else if (hasFocus || (isSelected && selectionBehavior != QAbstractItemView::SelectItems)) {
                     element = QS60StylePrivate::SE_ListHighlight;
                     elementRect = highlightRect;
+                    themeGraphicDefined = true;
                 }
-                QS60StylePrivate::drawSkinElement(element, painter, elementRect, flags);
+                if (themeGraphicDefined)
+                    QS60StylePrivate::drawSkinElement(element, painter, elementRect, flags);
             } else {
                 QCommonStyle::drawPrimitive(element, option, painter, widget);
             }
--- a/src/gui/styles/qs60style_p.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/styles/qs60style_p.h	Mon Oct 04 01:19:32 2010 +0300
@@ -571,6 +571,7 @@
     void startAnimation(QS60StyleEnums::SkinParts animation);
     void stopAnimation(QS60StyleEnums::SkinParts animation);
     static QS60StyleAnimation* animationDefinition(QS60StyleEnums::SkinParts part);
+    static void removeAnimations();
 
 #endif
 
--- a/src/gui/styles/qs60style_s60.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/styles/qs60style_s60.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -1152,6 +1152,12 @@
     setActiveLayout();
 }
 
+void QS60StylePrivate::removeAnimations()
+{
+    //currently only one animation in the list.
+    m_animations()->removeFirst();
+}
+
 QColor QS60StylePrivate::s60Color(QS60StyleEnums::ColorLists list,
     int index, const QStyleOption *option)
 {
--- a/src/gui/styles/qstyle.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/styles/qstyle.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -325,7 +325,7 @@
     control over size of header items and row and column sizes.
 
     \sa QStyleOption, QStylePainter, {Styles Example},
-        {Styles &amp Style Aware Widgets}, QStyledItemDelegate
+        {Styles and Style Aware Widgets}, QStyledItemDelegate
 */
 
 /*!
--- a/src/gui/styles/qstylesheetstyle.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/styles/qstylesheetstyle.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -4094,7 +4094,7 @@
     if (pe1 != PseudoElement_None) {
         QRenderRule subRule = renderRule(w, opt, pe1);
         if (subRule.bg != 0 || subRule.hasDrawable()) {
-            //We test subRule.bg dirrectly because hasBackground() would return false for background:none.
+            //We test subRule.bg directly because hasBackground() would return false for background:none.
             //But we still don't want the default drawning in that case (example for QScrollBar::add-page) (task 198926)
             subRule.drawRule(p, opt->rect);
         } else if (fallback) {
@@ -4283,6 +4283,13 @@
         }
     break;
 
+    case PE_FrameMenu:
+        if (rule.hasDrawable()) {
+            // Drawn by PE_PanelMenu
+            return;
+        }
+        break;
+
     case PE_PanelMenuBar:
     if (rule.hasDrawable()) {
         // Drawn by PE_Widget
--- a/src/gui/text/qfont_s60.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/text/qfont_s60.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -40,15 +40,26 @@
 ****************************************************************************/
 
 #include "qfont.h"
+#include "qfont_p.h"
 #include <private/qt_s60_p.h>
 #include <private/qpixmap_s60_p.h>
 #include "qmutex.h"
 
 QT_BEGIN_NAMESPACE
 
-#if 1
 #ifdef QT_NO_FREETYPE
 Q_GLOBAL_STATIC(QMutex, lastResortFamilyMutex);
+Q_GLOBAL_STATIC_WITH_INITIALIZER(QStringList, fontFamiliesOnFontServer, {
+    QSymbianFbsHeapLock lock(QSymbianFbsHeapLock::Unlock);
+    const int numTypeFaces = S60->screenDevice()->NumTypefaces();
+    for (int i = 0; i < numTypeFaces; i++) {
+        TTypefaceSupport typefaceSupport;
+        S60->screenDevice()->TypefaceSupport(typefaceSupport, i);
+        const QString familyName((const QChar *)typefaceSupport.iTypeface.iName.Ptr(), typefaceSupport.iTypeface.iName.Length());
+        x->append(familyName);
+    }
+    lock.relock();
+});
 #endif // QT_NO_FREETYPE
 
 QString QFont::lastResortFamily() const
@@ -70,7 +81,7 @@
         lock.relock();
     }
     return family;
-#else
+#else // QT_NO_FREETYPE
     // For the FreeType case we just hard code the face name, since otherwise on
     // East Asian systems we may get a name for a stroke based (non-ttf) font.
 
@@ -82,15 +93,24 @@
     return QLatin1String(isJapaneseOrChineseSystem?"Heisei Kaku Gothic S60":"Series 60 Sans");
 #endif // QT_NO_FREETYPE
 }
-#else // 0
-QString QFont::lastResortFamily() const
-{
-    return QLatin1String("Series 60 Sans");
-}
-#endif // 0
 
 QString QFont::defaultFamily() const
 {
+#ifdef QT_NO_FREETYPE
+    switch(d->request.styleHint) {
+        case QFont::SansSerif: {
+            static const char* const preferredSansSerif[] = {"Nokia Sans S60", "Series 60 Sans"};
+            for (int i = 0; i < sizeof preferredSansSerif / sizeof preferredSansSerif[0]; ++i) {
+                const QString sansSerif = QLatin1String(preferredSansSerif[i]);
+                if (fontFamiliesOnFontServer()->contains(sansSerif))
+                    return sansSerif;
+            }
+        }
+        // No break. Intentional fall through.
+        default:
+            return lastResortFamily();
+    }
+#endif // QT_NO_FREETYPE
     return lastResortFamily();
 }
 
--- a/src/gui/text/qfontengine.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/text/qfontengine.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -874,8 +874,8 @@
 
     enum {
         Invalid,
+        AppleRoman,
         Symbol,
-        AppleRoman,
         Unicode11,
         Unicode,
         MicrosoftUnicode,
@@ -939,7 +939,7 @@
         return 0;
 
 resolveTable:
-    *isSymbolFont = (score == Symbol);
+    *isSymbolFont = (symbolTable > -1);
 
     unsigned int unicode_table = qFromBigEndian<quint32>(maps + 8*tableToUse + 4);
 
@@ -1093,6 +1093,18 @@
     return *qt_grayPalette();
 }
 
+QFixed QFontEngine::lastRightBearing(const QGlyphLayout &glyphs, bool round)
+{
+    if (glyphs.numGlyphs >= 1) {
+        glyph_t glyph = glyphs.glyphs[glyphs.numGlyphs - 1];
+        glyph_metrics_t gi = boundingBox(glyph);
+        if (gi.isValid())
+            return round ? QFixed(qRound(gi.xoff - gi.x - gi.width))
+                         : QFixed(gi.xoff - gi.x - gi.width);
+    }
+    return 0;
+}
+
 // ------------------------------------------------------------------
 // The box font engine
 // ------------------------------------------------------------------
--- a/src/gui/text/qfontengine_ft.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/text/qfontengine_ft.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -94,6 +94,13 @@
 #define Y_SIZE(face,i) ((face)->available_sizes[i].height << 6)
 #endif
 
+/* FreeType 2.1.10 starts to provide FT_GlyphSlot_Embolden */
+#if (FREETYPE_MAJOR*10000+FREETYPE_MINOR*100+FREETYPE_PATCH) >= 20110
+#define Q_FT_GLYPHSLOT_EMBOLDEN(slot)   FT_GlyphSlot_Embolden(slot)
+#else
+#define Q_FT_GLYPHSLOT_EMBOLDEN(slot)
+#endif
+
 #define FLOOR(x)    ((x) & -64)
 #define CEIL(x)	    (((x)+63) & -64)
 #define TRUNC(x)    ((x) >> 6)
@@ -794,7 +801,7 @@
     }
 
     FT_GlyphSlot slot = face->glyph;
-    if (embolden) FT_GlyphSlot_Embolden(slot);
+    if (embolden) Q_FT_GLYPHSLOT_EMBOLDEN(slot);
     int left  = slot->metrics.horiBearingX;
     int right = slot->metrics.horiBearingX + slot->metrics.width;
     int top    = slot->metrics.horiBearingY;
@@ -940,7 +947,7 @@
         return 0;
 
     FT_GlyphSlot slot = face->glyph;
-    if (embolden) FT_GlyphSlot_Embolden(slot);
+    if (embolden) Q_FT_GLYPHSLOT_EMBOLDEN(slot);
     FT_Library library = qt_getFreetype();
 
     info.xOff = TRUNC(ROUND(slot->advance.x));
@@ -1558,8 +1565,6 @@
         FT_Face face = freetype->face;
         for ( int i = 0; i < len; ++i ) {
             unsigned int uc = getChar(str, i, len);
-            if (mirrored)
-                uc = QChar::mirroredChar(uc);
             glyphs->glyphs[glyph_pos] = uc < QFreetypeFace::cmapCacheSize ? freetype->cmapCache[uc] : 0;
             if ( !glyphs->glyphs[glyph_pos] ) {
                 glyph_t glyph;
--- a/src/gui/text/qfontengine_mac.mm	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/text/qfontengine_mac.mm	Mon Oct 04 01:19:32 2010 +0300
@@ -349,11 +349,32 @@
                                             int *nglyphs, QTextEngine::ShaperFlags flags) const
 {
     *nglyphs = len;
+    QCFType<CFStringRef> cfstring;
+
     QVarLengthArray<CGGlyph> cgGlyphs(len);
     CTFontGetGlyphsForCharacters(ctfont, (const UniChar*)str, cgGlyphs.data(), len);
 
-    for (int i = 0; i < len; ++i)
-        glyphs->glyphs[i] = cgGlyphs[i];
+    for (int i = 0; i < len; ++i) {
+        if (cgGlyphs[i]) {
+            glyphs->glyphs[i] = cgGlyphs[i];
+	} else {
+            if (!cfstring)
+                cfstring = CFStringCreateWithCharactersNoCopy(0, reinterpret_cast<const UniChar *>(str), len, kCFAllocatorNull);
+            QCFType<CTFontRef> substituteFont = CTFontCreateForString(ctfont, cfstring, CFRangeMake(i, 1));
+            CGGlyph substituteGlyph = 0;
+            CTFontGetGlyphsForCharacters(substituteFont, (const UniChar*)str + i, &substituteGlyph, 1);
+            if (substituteGlyph) {
+                const uint fontIndex = (fontIndexForFont(substituteFont) << 24);
+                glyphs->glyphs[i] = substituteGlyph | fontIndex;
+                if (!(flags & QTextEngine::GlyphIndicesOnly)) {
+                    CGSize advance;
+                    CTFontGetAdvancesForGlyphs(substituteFont, kCTFontHorizontalOrientation, &substituteGlyph, &advance, 1);
+                    glyphs->advances_x[i] = QFixed::fromReal(advance.width);
+                    glyphs->advances_y[i] = QFixed::fromReal(advance.height);
+                }
+            }
+        }
+    }
 
     if (flags & QTextEngine::GlyphIndicesOnly)
         return true;
@@ -362,9 +383,14 @@
     CTFontGetAdvancesForGlyphs(ctfont, kCTFontHorizontalOrientation, cgGlyphs.data(), advances.data(), len);
 
     for (int i = 0; i < len; ++i) {
+        if (glyphs->glyphs[i] & 0xff000000)
+            continue;
         glyphs->advances_x[i] = QFixed::fromReal(advances[i].width);
         glyphs->advances_y[i] = QFixed::fromReal(advances[i].height);
-        if (fontDef.styleStrategy & QFont::ForceIntegerMetrics) {
+    }
+
+    if (fontDef.styleStrategy & QFont::ForceIntegerMetrics) {
+        for (int i = 0; i < len; ++i) {
             glyphs->advances_x[i] = glyphs->advances_x[i].round();
             glyphs->advances_y[i] = glyphs->advances_y[i].round();
         }
@@ -429,12 +455,13 @@
 glyph_metrics_t QCoreTextFontEngine::boundingBox(const QGlyphLayout &glyphs)
 {
     QFixed w;
+    bool round = fontDef.styleStrategy & QFont::ForceIntegerMetrics;
+
     for (int i = 0; i < glyphs.numGlyphs; ++i) {
-        w += (fontDef.styleStrategy & QFont::ForceIntegerMetrics)
-             ? glyphs.effectiveAdvance(i).round()
-             : glyphs.effectiveAdvance(i);
+        w += round ? glyphs.effectiveAdvance(i).round()
+                   : glyphs.effectiveAdvance(i);
     }
-    return glyph_metrics_t(0, -(ascent()), w, ascent()+descent(), w, 0);
+    return glyph_metrics_t(0, -(ascent()), w - lastRightBearing(glyphs, round), ascent()+descent(), w, 0);
 }
 glyph_metrics_t QCoreTextFontEngine::boundingBox(glyph_t glyph)
 {
@@ -1454,12 +1481,12 @@
 glyph_metrics_t QFontEngineMac::boundingBox(const QGlyphLayout &glyphs)
 {
     QFixed w;
+    bool round = fontDef.styleStrategy & QFont::ForceIntegerMetrics;
     for (int i = 0; i < glyphs.numGlyphs; ++i) {
-        w += (fontDef.styleStrategy & QFont::ForceIntegerMetrics)
-             ? glyphs.effectiveAdvance(i).round()
-             : glyphs.effectiveAdvance(i);
+        w += round ? glyphs.effectiveAdvance(i).round()
+                   : glyphs.effectiveAdvance(i);
     }
-    return glyph_metrics_t(0, -(ascent()), w, ascent()+descent(), w, 0);
+    return glyph_metrics_t(0, -(ascent()), w - lastRightBearing(glyphs, round), ascent()+descent(), w, 0);
 }
 
 glyph_metrics_t QFontEngineMac::boundingBox(glyph_t glyph)
--- a/src/gui/text/qfontengine_p.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/text/qfontengine_p.h	Mon Oct 04 01:19:32 2010 +0300
@@ -253,6 +253,7 @@
 
 protected:
     static const QVector<QRgb> &grayPalette();
+    QFixed lastRightBearing(const QGlyphLayout &glyphs, bool round = false);
 
 private:
     struct GlyphCacheEntry {
--- a/src/gui/text/qfontengine_qpf.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/text/qfontengine_qpf.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -578,8 +578,6 @@
     if (symbol) {
         for (int i = 0; i < len; ++i) {
             unsigned int uc = getChar(str, i, len);
-            if (mirrored)
-                uc = QChar::mirroredChar(uc);
             glyphs->glyphs[glyph_pos] = getTrueTypeGlyphIndex(cmap, uc);
             if(!glyphs->glyphs[glyph_pos] && uc < 0x100)
                 glyphs->glyphs[glyph_pos] = getTrueTypeGlyphIndex(cmap, uc + 0xf000);
--- a/src/gui/text/qfontengine_qws.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/text/qfontengine_qws.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -557,7 +557,7 @@
     QFixed w = 0;
     for (int i = 0; i < glyphs.numGlyphs; ++i)
         w += glyphs.effectiveAdvance(i);
-    return glyph_metrics_t(0, -ascent(), w, ascent()+descent()+1, w, 0);
+    return glyph_metrics_t(0, -ascent(), w - lastRightBearing(glyphs), ascent()+descent()+1, w, 0);
 }
 
 glyph_metrics_t QFontEngineQPF1::boundingBox(glyph_t glyph)
--- a/src/gui/text/qfontengine_s60.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/text/qfontengine_s60.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -166,6 +166,11 @@
     return reinterpret_cast<const uchar *>(m_cmapTable.constData());
 }
 
+bool QSymbianTypeFaceExtras::isSymbolCMap() const
+{
+    return m_symbolCMap;
+}
+
 CFont *QSymbianTypeFaceExtras::fontOwner() const
 {
     return m_cFont;
@@ -256,7 +261,7 @@
     for (int i = 0; i < len; ++i) {
         const unsigned int uc = getChar(characters, i, len);
         *g++ = QFontEngine::getTrueTypeGlyphIndex(cmap,
-        		isRtl ? QChar::mirroredChar(uc) : uc);
+                        (isRtl && !m_extras->isSymbolCMap()) ? QChar::mirroredChar(uc) : uc);
     }
 
     glyphs->numGlyphs = g - glyphs->glyphs;
@@ -345,7 +350,7 @@
     for (int i = 0; i < glyphs.numGlyphs; ++i)
         w += glyphs.effectiveAdvance(i);
 
-    return glyph_metrics_t(0, -ascent(), w, ascent()+descent()+1, w, 0);
+    return glyph_metrics_t(0, -ascent(), w - lastRightBearing(glyphs), ascent()+descent()+1, w, 0);
 }
 
 glyph_metrics_t QFontEngineS60::boundingBox_const(glyph_t glyph) const
@@ -374,7 +379,10 @@
 
 QFixed QFontEngineS60::ascent() const
 {
-    return m_originalFont->FontMaxAscent();
+    // Workaround for QTBUG-8013
+    // Stroke based fonts may return an incorrect FontMaxAscent of 0.
+    const QFixed ascent = m_originalFont->FontMaxAscent();
+    return (ascent > 0) ? ascent : QFixed::fromReal(m_originalFontSizeInPixels) - descent();
 }
 
 QFixed QFontEngineS60::descent() const
--- a/src/gui/text/qfontengine_s60_p.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/text/qfontengine_s60_p.h	Mon Oct 04 01:19:32 2010 +0300
@@ -83,6 +83,7 @@
     bool getSfntTableData(uint tag, uchar *buffer, uint *length) const;
     const uchar *cmap() const;
     CFont *fontOwner() const;
+    bool isSymbolCMap() const;
 
 private:
     CFont* m_cFont;
--- a/src/gui/text/qfontengine_win.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/text/qfontengine_win.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -487,7 +487,7 @@
     for (int i = 0; i < glyphs.numGlyphs; ++i)
         w += glyphs.effectiveAdvance(i);
 
-    return glyph_metrics_t(0, -tm.tmAscent, w, tm.tmHeight, w, 0);
+    return glyph_metrics_t(0, -tm.tmAscent, w - lastRightBearing(glyphs), tm.tmHeight, w, 0);
 }
 
 #ifndef Q_WS_WINCE
--- a/src/gui/text/qstatictext.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/text/qstatictext.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -109,10 +109,18 @@
     QPainter::drawStaticText() and can change from call to call with a minimal impact on
     performance.
 
-    QStaticText will attempt to guess the format of the input text using Qt::mightBeRichText().
-    To force QStaticText to display its contents as either plain text or rich text, use the
-    function QStaticText::setTextFormat() and pass in, respectively, Qt::PlainText and
-    Qt::RichText.
+    For extra convenience, it is possible to apply formatting to the text using the HTML subset
+    supported by QTextDocument. QStaticText will attempt to guess the format of the input text using
+    Qt::mightBeRichText(), and interpret it as rich text if this function returns true. To force
+    QStaticText to display its contents as either plain text or rich text, use the function
+    QStaticText::setTextFormat() and pass in, respectively, Qt::PlainText and Qt::RichText.
+
+    QStaticText can only represent text, so only HTML tags which alter the layout or appearance of
+    the text will be respected. Adding an image to the input HTML, for instance, will cause the
+    image to be included as part of the layout, affecting the positions of the text glyphs, but it
+    will not be displayed. The result will be an empty area the size of the image in the output.
+    Similarly, using tables will cause the text to be laid out in table format, but the borders
+    will not be drawn.
 
     If it's the first time the static text is drawn, or if the static text, or the painter's font
     has been altered since the last time it was drawn, the text's layout has to be
@@ -392,9 +400,9 @@
 
 QStaticTextPrivate::QStaticTextPrivate(const QStaticTextPrivate &other)
     : text(other.text), font(other.font), textWidth(other.textWidth), matrix(other.matrix),
-      items(0), itemCount(0), glyphPool(0), positionPool(0), charPool(0), needsRelayout(true),
-      useBackendOptimizations(other.useBackendOptimizations), textFormat(other.textFormat),
-      untransformedCoordinates(other.untransformedCoordinates)
+      items(0), itemCount(0), glyphPool(0), positionPool(0), charPool(0), textOption(other.textOption),
+      needsRelayout(true), useBackendOptimizations(other.useBackendOptimizations),
+      textFormat(other.textFormat), untransformedCoordinates(other.untransformedCoordinates)
 {
 }
 
@@ -472,7 +480,12 @@
             memcpy(charsDestination, ti.chars, sizeof(QChar) * currentItem.numChars);
 
             m_items.append(currentItem);
-        }                
+        }
+
+        virtual void drawPolygon(const QPointF *, int , PolygonDrawMode )
+        {
+            /* intentionally empty */
+        }
 
         virtual bool begin(QPaintDevice *)  { return true; }
         virtual bool end() { return true; }
--- a/src/gui/text/qtextcontrol.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/text/qtextcontrol.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -1101,14 +1101,6 @@
                 }
             }
             break;
-        case QEvent::LayoutDirectionChange: {
-            if (contextWidget) {
-                QTextOption opt = document()->defaultTextOption();
-                opt.setTextDirection(contextWidget->layoutDirection());
-                document()->setDefaultTextOption(opt);
-            }
-        }
-            // FALL THROUGH
         default:
             break;
     }
--- a/src/gui/text/qtextengine.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/text/qtextengine.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -923,6 +923,13 @@
         si.width += glyphs.advances_x[i];
 }
 
+static inline bool hasCaseChange(const QScriptItem &si)
+{
+    return si.analysis.flags == QScriptAnalysis::SmallCaps ||
+           si.analysis.flags == QScriptAnalysis::Uppercase ||
+           si.analysis.flags == QScriptAnalysis::Lowercase;
+}
+
 #if defined(Q_WS_WINCE) //TODO
 // set the glyph attributes heuristically. Assumes a 1 to 1 relationship between chars and glyphs
 // and no reordering.
@@ -1050,14 +1057,15 @@
     if (option.useDesignMetrics())
 	flags |= DesignMetrics;
 
-    attributes(); // pre-initialize char attributes
+    // pre-initialize char attributes
+    if (! attributes())
+        return;
 
     const int len = length(item);
     int num_glyphs = length(item);
     const QChar *str = layoutData->string.unicode() + si.position;
     ushort upperCased[256];
-    if (si.analysis.flags == QScriptAnalysis::SmallCaps || si.analysis.flags == QScriptAnalysis::Uppercase
-            || si.analysis.flags == QScriptAnalysis::Lowercase) {
+    if (hasCaseChange(si)) {
         ushort *uc = upperCased;
         if (len > 256)
             uc = new ushort[len];
@@ -1071,7 +1079,14 @@
     }
 
     while (true) {
-        ensureSpace(num_glyphs);
+        if (! ensureSpace(num_glyphs)) {
+            // If str is converted to uppercase/lowercase form with a new buffer,
+            // we need to delete that buffer before return for error
+            const ushort *uc = reinterpret_cast<const ushort *>(str);
+            if (hasCaseChange(si) && uc != upperCased)
+                delete [] uc;
+            return;
+        }
         num_glyphs = layoutData->glyphLayout.numGlyphs - layoutData->used;
 
         QGlyphLayout g = availableGlyphs(&si);
@@ -1092,9 +1107,7 @@
     layoutData->used += si.num_glyphs;
 
     const ushort *uc = reinterpret_cast<const ushort *>(str);
-    if ((si.analysis.flags == QScriptAnalysis::SmallCaps || si.analysis.flags == QScriptAnalysis::Uppercase
-         || si.analysis.flags == QScriptAnalysis::Lowercase)
-        && uc != upperCased)
+    if (hasCaseChange(si) && uc != upperCased)
         delete [] uc;
 }
 #endif
@@ -1133,8 +1146,7 @@
     entire_shaper_item.item.bidiLevel = si.analysis.bidiLevel;
 
     HB_UChar16 upperCased[256]; // XXX what about making this 4096, so we don't have to extend it ever.
-    if (si.analysis.flags == QScriptAnalysis::SmallCaps || si.analysis.flags == QScriptAnalysis::Uppercase
-            || si.analysis.flags == QScriptAnalysis::Lowercase) {
+    if (hasCaseChange(si)) {
         HB_UChar16 *uc = upperCased;
         if (entire_shaper_item.item.length > 256)
             uc = new HB_UChar16[entire_shaper_item.item.length];
@@ -1156,17 +1168,24 @@
         entire_shaper_item.shaperFlags |= HB_ShaperFlag_UseDesignMetrics;
 
     entire_shaper_item.num_glyphs = qMax(layoutData->glyphLayout.numGlyphs - layoutData->used, int(entire_shaper_item.item.length));
-    ensureSpace(entire_shaper_item.num_glyphs);
+    if (! ensureSpace(entire_shaper_item.num_glyphs)) {
+        if (hasCaseChange(si))
+            delete [] const_cast<HB_UChar16 *>(entire_shaper_item.string);
+        return;
+    }
     QGlyphLayout initialGlyphs = availableGlyphs(&si).mid(0, entire_shaper_item.num_glyphs);
 
     if (!stringToGlyphs(&entire_shaper_item, &initialGlyphs, font)) {
-        ensureSpace(entire_shaper_item.num_glyphs);
+        if (! ensureSpace(entire_shaper_item.num_glyphs)) {
+            if (hasCaseChange(si))
+                delete [] const_cast<HB_UChar16 *>(entire_shaper_item.string);
+            return;
+        }
         initialGlyphs = availableGlyphs(&si).mid(0, entire_shaper_item.num_glyphs);
 
         if (!stringToGlyphs(&entire_shaper_item, &initialGlyphs, font)) {
             // ############ if this happens there's a bug in the fontengine
-            if ((si.analysis.flags == QScriptAnalysis::SmallCaps || si.analysis.flags == QScriptAnalysis::Uppercase
-                    || si.analysis.flags == QScriptAnalysis::Lowercase) && entire_shaper_item.string != upperCased)
+            if (hasCaseChange(si) && entire_shaper_item.string != upperCased)
                 delete [] const_cast<HB_UChar16 *>(entire_shaper_item.string);
             return;
         }
@@ -1231,7 +1250,11 @@
         remaining_glyphs -= shaper_item.initialGlyphCount;
 
         do {
-            ensureSpace(glyph_pos + shaper_item.num_glyphs + remaining_glyphs);
+            if (! ensureSpace(glyph_pos + shaper_item.num_glyphs + remaining_glyphs)) {
+                if (hasCaseChange(si))
+                    delete [] const_cast<HB_UChar16 *>(entire_shaper_item.string);
+                return;
+            }
 
             const QGlyphLayout g = availableGlyphs(&si).mid(glyph_pos);
             moveGlyphData(g.mid(shaper_item.num_glyphs), g.mid(shaper_item.initialGlyphCount), remaining_glyphs);
@@ -1271,8 +1294,7 @@
 
     layoutData->used += si.num_glyphs;
 
-    if ((si.analysis.flags == QScriptAnalysis::SmallCaps || si.analysis.flags == QScriptAnalysis::Uppercase)
-        && entire_shaper_item.string != upperCased)
+    if (hasCaseChange(si) && entire_shaper_item.string != upperCased)
         delete [] const_cast<HB_UChar16 *>(entire_shaper_item.string);
 }
 
@@ -1317,7 +1339,8 @@
         return (HB_CharAttributes *) layoutData->memory;
 
     itemize();
-    ensureSpace(layoutData->string.length());
+    if (! ensureSpace(layoutData->string.length()))
+        return NULL;
 
     QVarLengthArray<HB_ScriptItem> hbScriptItems(layoutData->items.size());
 
@@ -1538,14 +1561,19 @@
 int QTextEngine::findItem(int strPos) const
 {
     itemize();
-
-    // ##### use binary search
-    int item;
-    for (item = layoutData->items.size()-1; item > 0; --item) {
-        if (layoutData->items[item].position <= strPos)
-            break;
+    int left = 0;
+    int right = layoutData->items.size()-1;
+    while(left <= right) {
+        int middle = ((right-left)/2)+left;
+        if (strPos > layoutData->items[middle].position)
+            left = middle+1;
+        else if(strPos < layoutData->items[middle].position)
+            right = middle-1;
+        else {
+            return middle;
+        }
     }
-    return item;
+    return right;
 }
 
 QFixed QTextEngine::width(int from, int len) const
@@ -1618,7 +1646,6 @@
 
     for (int i = 0; i < layoutData->items.size(); i++) {
         const QScriptItem *si = layoutData->items.constData() + i;
-        QFontEngine *fe = fontEngine(*si);
 
         int pos = si->position;
         int ilen = length(i);
@@ -1648,6 +1675,7 @@
                 while (charFrom < ilen && logClusters[charFrom] == glyphStart)
                     charFrom++;
             if (charFrom < ilen) {
+                QFontEngine *fe = fontEngine(*si);
                 glyphStart = logClusters[charFrom];
                 int charEnd = from + len - 1 - pos;
                 if (charEnd >= ilen)
@@ -1666,11 +1694,6 @@
                     gm.yoff += m.yoff;
                 }
             }
-
-            glyph_t glyph = glyphs.glyphs[logClusters[ilen - 1]];
-            glyph_metrics_t gi = fe->boundingBox(glyph);
-            if (gi.isValid())
-                gm.width -= qRound(gi.xoff - gi.x - gi.width);
         }
     }
     return gm;
@@ -1864,7 +1887,10 @@
 
     // don't include trailing white spaces when doing justification
     int line_length = line.length;
-    const HB_CharAttributes *a = attributes()+line.from;
+    const HB_CharAttributes *a = attributes();
+    if (! a)
+        return;
+    a += line.from;
     while (line_length && a[line_length-1].whiteSpace)
         --line_length;
     // subtract one char more, as we can't justfy after the last character
@@ -2045,7 +2071,7 @@
     memory_on_stack = false;
     used = 0;
     hasBidi = false;
-    inLayout = false;
+    layoutState = LayoutEmpty;
     haveCharAttributes = false;
     logClustersPtr = 0;
     available_glyphs = 0;
@@ -2079,7 +2105,7 @@
     }
     used = 0;
     hasBidi = false;
-    inLayout = false;
+    layoutState = LayoutEmpty;
     haveCharAttributes = false;
 }
 
@@ -2090,12 +2116,12 @@
     memory = 0;
 }
 
-void QTextEngine::LayoutData::reallocate(int totalGlyphs)
+bool QTextEngine::LayoutData::reallocate(int totalGlyphs)
 {
     Q_ASSERT(totalGlyphs >= glyphLayout.numGlyphs);
     if (memory_on_stack && available_glyphs >= totalGlyphs) {
         glyphLayout.grow(glyphLayout.data(), totalGlyphs);
-        return;
+        return true;
     }
 
     int space_charAttributes = sizeof(HB_CharAttributes)*string.length()/sizeof(void*) + 1;
@@ -2103,11 +2129,21 @@
     int space_glyphs = QGlyphLayout::spaceNeededForGlyphLayout(totalGlyphs)/sizeof(void*) + 2;
 
     int newAllocated = space_charAttributes + space_glyphs + space_logClusters;
-    Q_ASSERT(newAllocated >= allocated);
+    // These values can be negative if the length of string/glyphs causes overflow,
+    // we can't layout such a long string all at once, so return false here to
+    // indicate there is a failure
+    if (space_charAttributes < 0 || space_logClusters < 0 || space_glyphs < 0 || newAllocated < allocated) {
+        layoutState = LayoutFailed;
+        return false;
+    }
+
     void **newMem = memory;
     newMem = (void **)::realloc(memory_on_stack ? 0 : memory, newAllocated*sizeof(void *));
-    Q_CHECK_PTR(newMem);
-    if (memory_on_stack && newMem)
+    if (!newMem) {
+        layoutState = LayoutFailed;
+        return false;
+    }
+    if (memory_on_stack)
         memcpy(newMem, memory, allocated*sizeof(void *));
     memory = newMem;
     memory_on_stack = false;
@@ -2124,6 +2160,7 @@
     glyphLayout.grow(reinterpret_cast<char *>(m), totalGlyphs);
 
     allocated = newAllocated;
+    return true;
 }
 
 // grow to the new size, copying the existing data to the new layout
@@ -2155,7 +2192,7 @@
     } else {
         layoutData->used = 0;
         layoutData->hasBidi = false;
-        layoutData->inLayout = false;
+        layoutData->layoutState = LayoutEmpty;
         layoutData->haveCharAttributes = false;
     }
     for (int i = 0; i < lines.size(); ++i) {
@@ -2226,6 +2263,9 @@
     case ',':
     case '?':
     case '!':
+    case '@':
+    case '#':
+    case '$':
     case ':':
     case ';':
     case '-':
@@ -2246,6 +2286,7 @@
     case '*':
     case '\'':
     case '"':
+    case '`':
     case '~':
     case '|':
         return true;
@@ -2314,6 +2355,9 @@
                 shape(i);
 
             HB_CharAttributes *attributes = const_cast<HB_CharAttributes *>(this->attributes());
+            if (!attributes)
+                return QString();
+
             unsigned short *logClusters = this->logClusters(&si);
             QGlyphLayout glyphs = shapedGlyphs(&si);
 
@@ -2385,6 +2429,8 @@
         return QString();
 
     const HB_CharAttributes *attributes = this->attributes();
+    if (!attributes)
+        return QString();
 
     if (mode == Qt::ElideRight) {
         QFixed currentWidth;
--- a/src/gui/text/qtextengine_p.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/text/qtextengine_p.h	Mon Oct 04 01:19:32 2010 +0300
@@ -416,6 +416,11 @@
 
 class Q_GUI_EXPORT QTextEngine {
 public:
+    enum LayoutState {
+        LayoutEmpty,
+        InLayout,
+        LayoutFailed,
+    };
     struct LayoutData {
         LayoutData(const QString &str, void **stack_memory, int mem_size);
         LayoutData();
@@ -428,11 +433,11 @@
         QGlyphLayout glyphLayout;
         mutable int used;
         uint hasBidi : 1;
-        uint inLayout : 1;
+        uint layoutState : 2;
         uint memory_on_stack : 1;
         bool haveCharAttributes;
         QString string;
-        void reallocate(int totalGlyphs);
+        bool reallocate(int totalGlyphs);
     };
 
     QTextEngine(LayoutData *data);
@@ -520,9 +525,10 @@
         return layoutData->glyphLayout.mid(si->glyph_data_offset, si->num_glyphs);
     }
 
-    inline void ensureSpace(int nGlyphs) const {
+    inline bool ensureSpace(int nGlyphs) const {
         if (layoutData->glyphLayout.numGlyphs - layoutData->used < nGlyphs)
-            layoutData->reallocate((((layoutData->used + nGlyphs)*3/2 + 15) >> 4) << 4);
+            return layoutData->reallocate((((layoutData->used + nGlyphs)*3/2 + 15) >> 4) << 4);
+        return true;
     }
 
     void freeMemory();
--- a/src/gui/text/qtextlayout.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/text/qtextlayout.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -74,6 +74,8 @@
 
     int pos = line.length;
     const HB_CharAttributes *attributes = eng->attributes();
+    if (!attributes)
+        return QFixed();
     while (pos > 0 && attributes[line.from + pos - 1].whiteSpace)
         --pos;
     return eng->width(line.from + pos, line.length - pos);
@@ -601,7 +603,7 @@
 void QTextLayout::beginLayout()
 {
 #ifndef QT_NO_DEBUG
-    if (d->layoutData && d->layoutData->inLayout) {
+    if (d->layoutData && d->layoutData->layoutState == QTextEngine::InLayout) {
         qWarning("QTextLayout::beginLayout: Called while already doing layout");
         return;
     }
@@ -609,7 +611,7 @@
     d->invalidate();
     d->clearLineData();
     d->itemize();
-    d->layoutData->inLayout = true;
+    d->layoutData->layoutState = QTextEngine::InLayout;
 }
 
 /*!
@@ -618,7 +620,7 @@
 void QTextLayout::endLayout()
 {
 #ifndef QT_NO_DEBUG
-    if (!d->layoutData || !d->layoutData->inLayout) {
+    if (!d->layoutData || d->layoutData->layoutState == QTextEngine::LayoutEmpty) {
         qWarning("QTextLayout::endLayout: Called without beginLayout()");
         return;
     }
@@ -627,7 +629,7 @@
     if (l && d->lines.at(l-1).length < 0) {
         QTextLine(l-1, d).setNumColumns(INT_MAX);
     }
-    d->layoutData->inLayout = false;
+    d->layoutData->layoutState = QTextEngine::LayoutEmpty;
     if (!d->cacheGlyphs)
         d->freeMemory();
 }
@@ -757,11 +759,14 @@
 QTextLine QTextLayout::createLine()
 {
 #ifndef QT_NO_DEBUG
-    if (!d->layoutData || !d->layoutData->inLayout) {
+    if (!d->layoutData || d->layoutData->layoutState == QTextEngine::LayoutEmpty) {
         qWarning("QTextLayout::createLine: Called without layouting");
         return QTextLine();
     }
 #endif
+    if (d->layoutData->layoutState == QTextEngine::LayoutFailed)
+        return QTextLine();
+
     int l = d->lines.size();
     if (l && d->lines.at(l-1).length < 0) {
         QTextLine(l-1, d).setNumColumns(INT_MAX);
@@ -1212,7 +1217,7 @@
 
         bool hasText = (selection.format.foreground().style() != Qt::NoBrush);
         bool hasBackground= (selection.format.background().style() != Qt::NoBrush);
-        
+
         if (hasBackground) {
             selection.format.setProperty(ObjectSelectionBrush, selection.format.property(QTextFormat::BackgroundBrush));
             // don't just clear the property, set an empty brush that overrides a potential
@@ -1704,14 +1709,18 @@
             return glyphs.glyphs[logClusters[currentPosition - 1]];
         }
 
+        inline void adjustRightBearing(glyph_t glyph)
+        {
+            qreal rb;
+            fontEngine->getGlyphBearings(glyph, 0, &rb);
+            rightBearing = qMin(QFixed(), QFixed::fromReal(rb));
+        }
+
         inline void adjustRightBearing()
         {
             if (currentPosition <= 0)
                 return;
-
-            qreal rb;
-            fontEngine->getGlyphBearings(currentGlyph(), 0, &rb);
-            rightBearing = qMin(QFixed(), QFixed::fromReal(rb));
+            adjustRightBearing(currentGlyph());
         }
 
         inline void resetRightBearing()
@@ -1722,7 +1731,7 @@
     };
 
 inline bool LineBreakHelper::checkFullOtherwiseExtend(QScriptLine &line)
-{        
+{
     LB_DEBUG("possible break width %f, spacew=%f", tmpData.textWidth.toReal(), spaceData.textWidth.toReal());
 
     QFixed newWidth = calculateNewWidth(line);
@@ -1788,19 +1797,31 @@
     bool breakany = (wrapMode == QTextOption::WrapAnywhere);
     lbh.manualWrap = (wrapMode == QTextOption::ManualWrap || wrapMode == QTextOption::NoWrap);
 
-    // #### binary search!
     int item = -1;
-    int newItem;
-    for (newItem = eng->layoutData->items.size()-1; newItem > 0; --newItem) {
-        if (eng->layoutData->items[newItem].position <= line.from)
+    int newItem = -1;
+    int left = 0;
+    int right = eng->layoutData->items.size()-1;
+    while(left <= right) {
+        int middle = ((right-left)/2)+left;
+        if (line.from > eng->layoutData->items[middle].position)
+            left = middle+1;
+        else if(line.from < eng->layoutData->items[middle].position)
+            right = middle-1;
+        else {
+            newItem = middle;
             break;
+        }
     }
+    if (newItem == -1)
+        newItem = right;
 
     LB_DEBUG("from: %d: item=%d, total %d, width available %f", line.from, newItem, eng->layoutData->items.size(), line.width.toReal());
 
     Qt::Alignment alignment = eng->option.alignment();
 
     const HB_CharAttributes *attributes = eng->attributes();
+    if (!attributes)
+        return;
     lbh.currentPosition = line.from;
     int end = 0;
     lbh.logClusters = eng->layoutData->logClustersPtr;
@@ -1814,6 +1835,8 @@
             if (!current.num_glyphs) {
                 eng->shape(item);
                 attributes = eng->attributes();
+                if (!attributes)
+                    return;
                 lbh.logClusters = eng->layoutData->logClustersPtr;
             }
             lbh.currentPosition = qMax(line.from, current.position);
@@ -1892,6 +1915,9 @@
         } else {
             lbh.whiteSpaceOrObject = false;
             bool sb_or_ws = false;
+            glyph_t previousGlyph = 0;
+            if (lbh.currentPosition > 0 && lbh.logClusters[lbh.currentPosition - 1] <lbh.glyphs.numGlyphs)
+                previousGlyph = lbh.currentGlyph(); // needed to calculate right bearing later
             do {
                 addNextCluster(lbh.currentPosition, end, lbh.tmpData, lbh.glyphCount,
                                current, lbh.logClusters, lbh.glyphs);
@@ -1935,9 +1961,17 @@
             // We ignore the right bearing if the minimum negative bearing is too little to
             // expand the text beyond the edge.
             if (sb_or_ws|breakany) {
+                QFixed rightBearing = lbh.rightBearing; // store previous right bearing
+#if !defined(Q_WS_MAC)
                 if (lbh.calculateNewWidth(line) - lbh.minimumRightBearing > line.width)
+#endif
                     lbh.adjustRightBearing();
                 if (lbh.checkFullOtherwiseExtend(line)) {
+                    // we are too wide, fix right bearing
+                    if (rightBearing <= 0)
+                        lbh.rightBearing = rightBearing; // take from cache
+                    else if (previousGlyph > 0)
+                        lbh.adjustRightBearing(previousGlyph);
                     if (!breakany) {
                         line.textWidth += lbh.softHyphenWidth;
                     }
@@ -1951,7 +1985,7 @@
     }
     LB_DEBUG("reached end of line");
     lbh.checkFullOtherwiseExtend(line);
-found:       
+found:
     if (lbh.rightBearing > 0 && !lbh.whiteSpaceOrObject) // If right bearing has not yet been adjusted
         lbh.adjustRightBearing();
     line.textAdvance = line.textWidth;
--- a/src/gui/text/qtextobject.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/text/qtextobject.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -1156,6 +1156,10 @@
     if (dir != Qt::LayoutDirectionAuto)
         return dir;
 
+    dir = p->defaultTextOption.textDirection();
+    if (dir != Qt::LayoutDirectionAuto)
+        return dir;
+
     const QString buffer = p->buffer();
 
     const int pos = position();
--- a/src/gui/util/qcompleter.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/util/qcompleter.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -921,10 +921,12 @@
 void QCompleterPrivate::_q_fileSystemModelDirectoryLoaded(const QString &path)
 {
     Q_Q(QCompleter);
+#ifndef QT_NO_LINEEDIT
     QLineEdit *lineEdit = qobject_cast<QLineEdit *>(widget);
     //the path given by QFileSystemModel does not end with /
     if (lineEdit && !lineEdit->text().isEmpty() && !q->completionPrefix().isEmpty() && q->completionPrefix() != path + QLatin1Char('/'))
         q->complete();
+#endif
 }
 
 /*!
--- a/src/gui/util/qdesktopservices_s60.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/util/qdesktopservices_s60.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -223,6 +223,7 @@
     TApaTask task = taskList.FindApp(KUidBrowser);
     if (task.Exists()){
         // Switch to existing browser instance
+        task.BringToForeground();
         HBufC8* param8 = HBufC8::NewLC(buf16->Length());
         param8->Des().Append(buf16->Des());
         task.SendMessage(TUid::Uid( 0 ), *param8); // Uid is not used
--- a/src/gui/util/qdesktopservices_x11.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/util/qdesktopservices_x11.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -71,10 +71,12 @@
     if (launch(url, QLatin1String("xdg-open")))
         return true;
 
-    if (X11->desktopEnvironment == DE_GNOME && launch(url, QLatin1String("gnome-open"))) {
+    // Use the X11->desktopEnvironment value if X11 is non-NULL,
+    //  otherwise just attempt to launch command regardless of the desktop environment
+    if ((!X11 || (X11 && X11->desktopEnvironment == DE_GNOME)) && launch(url, QLatin1String("gnome-open"))) {
         return true;
     } else {
-        if (X11->desktopEnvironment == DE_KDE && launch(url, QLatin1String("kfmclient exec")))
+        if ((!X11 || (X11 && X11->desktopEnvironment == DE_KDE)) && launch(url, QLatin1String("kfmclient exec")))
             return true;
     }
 
@@ -104,10 +106,12 @@
     if (launch(url, QString::fromLocal8Bit(getenv("BROWSER"))))
         return true;
 
-    if (X11->desktopEnvironment == DE_GNOME && launch(url, QLatin1String("gnome-open"))) {
+    // Use the X11->desktopEnvironment value if X11 is non-NULL,
+    //  otherwise just attempt to launch command regardless of the desktop environment
+    if ((!X11 || (X11 && X11->desktopEnvironment == DE_GNOME)) && launch(url, QLatin1String("gnome-open"))) {
         return true;
     } else {
-        if (X11->desktopEnvironment == DE_KDE && launch(url, QLatin1String("kfmclient openURL")))
+        if ((!X11 || (X11 && X11->desktopEnvironment == DE_KDE)) && launch(url, QLatin1String("kfmclient openURL")))
             return true;
     }
 
--- a/src/gui/widgets/qcocoamenu_mac.mm	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/widgets/qcocoamenu_mac.mm	Mon Oct 04 01:19:32 2010 +0300
@@ -188,6 +188,18 @@
     return NO;
 }
 
+- (NSInteger)indexOfItemWithTarget:(id)anObject andAction:(SEL)actionSelector
+{
+     NSInteger index = [super indexOfItemWithTarget:anObject andAction:actionSelector];
+     static SEL selForOFCP = NSSelectorFromString(@"orderFrontCharacterPalette:");
+     if (index == -1 && selForOFCP == actionSelector) {
+         // Check if the 'orderFrontCharacterPalette' SEL exists for QCocoaMenuLoader object
+         QT_MANGLE_NAMESPACE(QCocoaMenuLoader) *loader = [NSApp QT_MANGLE_NAMESPACE(qt_qcocoamenuLoader)];
+         return [super indexOfItemWithTarget:loader andAction:actionSelector];
+     }
+     return index;
+}
+
 @end
 
 QT_BEGIN_NAMESPACE
--- a/src/gui/widgets/qcocoamenu_mac_p.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/widgets/qcocoamenu_mac_p.h	Mon Oct 04 01:19:32 2010 +0300
@@ -76,6 +76,7 @@
 }
 - (id)initWithQMenu:(QMenu*)menu;
 - (BOOL)menuHasKeyEquivalent:(NSMenu *)menu forEvent:(NSEvent *)event target:(id *)target action:(SEL *)action;
+- (NSInteger)indexOfItemWithTarget:(id)anObject andAction:(SEL)actionSelector;
 @end
 #endif
 
--- a/src/gui/widgets/qcombobox.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/widgets/qcombobox.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -910,7 +910,7 @@
     interaction. The highlighted() signal is emitted when the user
     highlights an item in the combobox popup list. All three signals
     exist in two versions, one with a QString argument and one with an
-    \c int argument. If the user selectes or highlights a pixmap, only
+    \c int argument. If the user selects or highlights a pixmap, only
     the \c int signals are emitted. Whenever the text of an editable
     combobox is changed the editTextChanged() signal is emitted.
 
--- a/src/gui/widgets/qcommandlinkbutton.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/widgets/qcommandlinkbutton.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -349,7 +349,7 @@
     QStyleOptionButton option;
     initStyleOption(&option);
 
-    //Enable command link appearence on Vista
+    //Enable command link appearance on Vista
     option.features |= QStyleOptionButton::CommandLinkButton;
     option.text = QString();
     option.icon = QIcon(); //we draw this ourselves
--- a/src/gui/widgets/qdatetimeedit.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/widgets/qdatetimeedit.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -248,7 +248,7 @@
 
 /*!
   \property QDateTimeEdit::date
-  \brief the QDate that is set in the QDateTimeEdit
+  \brief the QDate that is set in the widget
 
   By default, this property contains a date that refers to January 1, 2000.
 
@@ -279,7 +279,7 @@
 
 /*!
   \property QDateTimeEdit::time
-  \brief the QTime that is set in the QDateTimeEdit
+  \brief the QTime that is set in the widget
 
   By default, this property contains a time of 00:00:00 and 0 milliseconds.
 
@@ -754,6 +754,7 @@
   Sets the given \a calendarWidget as the widget to be used for the calendar
   pop-up. The editor does not automatically take ownership of the calendar widget.
 
+  \note calendarPopup must be set to true before setting the calendar widget.
   \sa calendarPopup
 */
 void QDateTimeEdit::setCalendarWidget(QCalendarWidget *calendarWidget)
@@ -1554,13 +1555,6 @@
 {
 }
 
-/*!
-    \property QTimeEdit::time
-    \brief the QTime that is shown in the widget
-
-    By default, this property contains a time of 00:00:00 and 0 milliseconds.
-*/
-
 
 /*!
   \class QDateEdit
@@ -1615,13 +1609,6 @@
 {
 }
 
-/*!
-    \property QDateEdit::date
-    \brief the QDate that is shown in the widget
-
-    By default, this property contains a date referring to January 1, 2000.
-*/
-
 
 // --- QDateTimeEditPrivate ---
 
--- a/src/gui/widgets/qdatetimeedit.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/widgets/qdatetimeedit.h	Mon Oct 04 01:19:32 2010 +0300
@@ -206,7 +206,6 @@
 class Q_GUI_EXPORT QTimeEdit : public QDateTimeEdit
 {
     Q_OBJECT
-    Q_PROPERTY(QTime time READ time WRITE setTime NOTIFY timeChanged USER true)
 public:
     QTimeEdit(QWidget *parent = 0);
     QTimeEdit(const QTime &time, QWidget *parent = 0);
@@ -215,7 +214,6 @@
 class Q_GUI_EXPORT QDateEdit : public QDateTimeEdit
 {
     Q_OBJECT
-    Q_PROPERTY(QDate date READ date WRITE setDate NOTIFY dateChanged USER true)
 public:
     QDateEdit(QWidget *parent = 0);
     QDateEdit(const QDate &date, QWidget *parent = 0);
--- a/src/gui/widgets/qlinecontrol.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/widgets/qlinecontrol.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -419,7 +419,7 @@
 
 
     int c = m_cursor; // cursor position after insertion of commit string
-    if (event->replacementStart() == 0)
+    if (event->replacementStart() <= 0)
         c += event->commitString().length() + qMin(-event->replacementStart(), event->replacementLength());
 
     m_cursor += event->replacementStart();
--- a/src/gui/widgets/qlineedit.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/widgets/qlineedit.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -1949,7 +1949,8 @@
     if (d->control->hasSelectedText() || (d->cursorVisible && !d->control->inputMask().isEmpty() && !d->control->isReadOnly())){
         flags |= QLineControl::DrawSelections;
         // Palette only used for selections/mask and may not be in sync
-        if(d->control->palette() != pal)
+        if (d->control->palette() != pal
+           || d->control->palette().currentColorGroup() != pal.currentColorGroup())
             d->control->setPalette(pal);
     }
 
--- a/src/gui/widgets/qmainwindowlayout.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/widgets/qmainwindowlayout.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -943,7 +943,7 @@
 #ifdef Q_WS_MAC
     if (layoutState.mainWindow->unifiedTitleAndToolBarOnMac()) {
         // If we hit this case, someone has pressed the "toolbar button" which will
-        // toggle the unified toolbar visiblity, because that's what the user wants.
+        // toggle the unified toolbar visibility, because that's what the user wants.
         // We might be in a situation where someone has hidden all the toolbars
         // beforehand (maybe in construction), but now they've hit this button and
         // and are expecting the items to show. What do we do?
--- a/src/gui/widgets/qmainwindowlayout_mac.mm	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/widgets/qmainwindowlayout_mac.mm	Mon Oct 04 01:19:32 2010 +0300
@@ -48,6 +48,7 @@
 #include <Carbon/Carbon.h>
 #else
 #include <private/qcocoatoolbardelegate_mac_p.h>
+#import  <private/qcocoawindowdelegate_mac_p.h>
 #endif
 
 QT_BEGIN_NAMESPACE
@@ -337,6 +338,17 @@
 #endif
 
     layoutState.mainWindow->setUpdatesEnabled(false);  // reduces a little bit of flicker, not all though
+#if defined(QT_MAC_USE_COCOA)
+    QMacCocoaAutoReleasePool pool;
+    NSView *cView = [qt_mac_window_for(layoutState.mainWindow) contentView];
+    if (useMacToolbar) {
+        [cView setPostsFrameChangedNotifications:YES];
+        [[NSNotificationCenter defaultCenter] addObserver: [QT_MANGLE_NAMESPACE(QCocoaWindowDelegate) sharedDelegate]
+                                                 selector: @selector(syncContentViewFrame:)
+                                                     name: NSViewFrameDidChangeNotification
+                                                   object: cView];
+    }
+#endif
     if (!useMacToolbar) {
         macWindowToolbarShow(layoutState.mainWindow, false);
         // Move everything out of the HIToolbar into the main toolbar.
@@ -356,6 +368,14 @@
         }
         syncUnifiedToolbarVisibility();
     }
+#if defined(QT_MAC_USE_COCOA)
+    if (!useMacToolbar) {
+        [cView setPostsFrameChangedNotifications:NO];
+        [[NSNotificationCenter defaultCenter] removeObserver: [QT_MANGLE_NAMESPACE(QCocoaWindowDelegate) sharedDelegate]
+                                                        name: NSViewFrameDidChangeNotification
+                                                      object: cView];
+    }
+#endif
     layoutState.mainWindow->setUpdatesEnabled(true);
 }
 
--- a/src/gui/widgets/qmenu.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/widgets/qmenu.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -262,7 +262,7 @@
     const int deskFw = style->pixelMetric(QStyle::PM_MenuDesktopFrameWidth, &opt, q);
     const int tearoffHeight = tearoff ? style->pixelMetric(QStyle::PM_MenuTearoffHeight, &opt, q) : 0;
 
-    //for compatability now - will have to refactor this away..
+    //for compatibility now - will have to refactor this away
     tabWidth = 0;
     maxIconWidth = 0;
     hasCheckableItems = false;
@@ -1154,7 +1154,7 @@
 
 bool QMenuPrivate::hasMouseMoved(const QPoint &globalPos)
 {
-    //determines if the mouse has moved (ie its intial position has
+    //determines if the mouse has moved (ie its initial position has
     //changed by more than QApplication::startDragDistance()
     //or if there were at least 6 mouse motions)
     return motions > 6 ||
--- a/src/gui/widgets/qmenubar.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/widgets/qmenubar.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -102,7 +102,7 @@
     QStylePainter p(this);
     QStyleOptionToolButton opt;
     initStyleOption(&opt);
-    // We do not need to draw both extention arrows
+    // We do not need to draw both extension arrows
     opt.features &= ~QStyleOptionToolButton::HasMenu;
     p.drawComplexControl(QStyle::CC_ToolButton, opt);
 }
--- a/src/gui/widgets/qprintpreviewwidget.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/widgets/qprintpreviewwidget.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -469,7 +469,7 @@
     \o Create the QPrintPreviewWidget
 
     Construct the QPrintPreviewWidget either by passing in an
-    exisiting QPrinter object, or have QPrintPreviewWidget create a
+    existing QPrinter object, or have QPrintPreviewWidget create a
     default constructed QPrinter object for you.
 
     \o Connect the paintRequested() signal to a slot.
--- a/src/gui/widgets/qpushbutton.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/widgets/qpushbutton.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -687,11 +687,11 @@
 /*! \reimp */
 bool QPushButton::hitButton(const QPoint &pos) const
 {
-    // This is only required if we are using the native style, so check that first.
-        QMacStyle *macStyle = qobject_cast<QMacStyle *>(style());
-    // If this is a flat button we just bail out.
-    if(isFlat() || (0 == macStyle))
+    QStyleOptionButton opt;
+    initStyleOption(&opt);
+    if (qt_mac_buttonIsRenderedFlat(this, &opt))
         return QAbstractButton::hitButton(pos);
+
     // Now that we know we are using the native style, let's proceed.
     Q_D(const QPushButton);
     QPushButtonPrivate *nonConst = const_cast<QPushButtonPrivate *>(d);
--- a/src/gui/widgets/qtoolbarextension.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/widgets/qtoolbarextension.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -75,7 +75,7 @@
     QStylePainter p(this);
     QStyleOptionToolButton opt;
     initStyleOption(&opt);
-    // We do not need to draw both extention arrows
+    // We do not need to draw both extension arrows
     opt.features &= ~QStyleOptionToolButton::HasMenu;
     p.drawComplexControl(QStyle::CC_ToolButton, opt);
 }
--- a/src/imports/folderlistmodel/qdeclarativefolderlistmodel.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/imports/folderlistmodel/qdeclarativefolderlistmodel.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -94,6 +94,7 @@
 
 /*!
     \qmlclass FolderListModel QDeclarativeFolderListModel
+    \ingroup qml-working-with-data
     \brief The FolderListModel provides a model of the contents of a folder in a filesystem.
 
     FolderListModel provides access to the local filesystem.  The \e folder property
--- a/src/imports/gestures/qdeclarativegesturearea.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/imports/gestures/qdeclarativegesturearea.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -79,6 +79,8 @@
 
 /*!
     \qmlclass GestureArea QDeclarativeGestureArea
+    \ingroup qml-basic-interaction-elements
+
     \brief The GestureArea item enables simple gesture handling.
     \inherits Item
 
--- a/src/imports/particles/qdeclarativeparticles.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/imports/particles/qdeclarativeparticles.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -154,6 +154,7 @@
 
 /*!
     \qmlclass ParticleMotionLinear QDeclarativeParticleMotionLinear
+    \ingroup qml-particle-elements
     \since 4.7
     \brief The ParticleMotionLinear object moves particles linearly.
 
@@ -164,14 +165,6 @@
 
     It has no further properties.
 */
-
-/*!
-    \internal
-    \class QDeclarativeParticleMotionLinear
-    \ingroup group_effects
-    \brief The QDeclarativeParticleMotionLinear class moves the particles linearly.
-*/
-
 void QDeclarativeParticleMotionLinear::advance(QDeclarativeParticle &p, int interval)
 {
     p.x += interval * p.x_velocity;
@@ -180,6 +173,7 @@
 
 /*!
     \qmlclass ParticleMotionGravity QDeclarativeParticleMotionGravity
+    \ingroup qml-particle-elements
     \since 4.7
     \brief The ParticleMotionGravity object moves particles towards a point.
 
@@ -194,14 +188,6 @@
 */
 
 /*!
-    \internal
-    \class QDeclarativeParticleMotionGravity
-    \ingroup group_effects
-    \brief The QDeclarativeParticleMotionGravity class moves the particles towards a point.
-
-*/
-
-/*!
     \qmlproperty real ParticleMotionGravity::xattractor
     \qmlproperty real ParticleMotionGravity::yattractor
     These properties hold the x and y coordinates of the point attracting the particles.
@@ -271,6 +257,7 @@
 
 /*!
     \qmlclass ParticleMotionWander QDeclarativeParticleMotionWander
+    \ingroup qml-particle-elements
     \since 4.7
     \brief The ParticleMotionWander object moves particles in a somewhat random fashion.
 
@@ -308,16 +295,6 @@
 */
 
 /*!
-    \internal
-    \class QDeclarativeParticleMotionWander
-    \ingroup group_effects
-    \brief The QDeclarativeParticleMotionWander class moves particles in a somewhat random fashion.
-
-    The particles will continue roughly in the original direction, however will randomly
-    drift to each side.
-*/
-
-/*!
     \qmlproperty real ParticleMotionWander::xvariance
     \qmlproperty real ParticleMotionWander::yvariance
 
@@ -634,6 +611,7 @@
 
 /*!
     \qmlclass Particles QDeclarativeParticles
+    \ingroup qml-particle-elements
     \since 4.7
     \brief The Particles object generates and moves particles.
     \inherits Item
@@ -705,13 +683,6 @@
     \image particles.gif
 */
 
-/*!
-    \internal
-    \class QDeclarativeParticles
-    \ingroup group_effects
-    \brief The QDeclarativeParticles class generates and moves particles.
-*/
-
 QDeclarativeParticles::QDeclarativeParticles(QDeclarativeItem *parent)
     : QDeclarativeItem(*(new QDeclarativeParticlesPrivate), parent)
 {
--- a/src/multimedia/audio/qaudiodeviceinfo_alsa_p.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/multimedia/audio/qaudiodeviceinfo_alsa_p.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -431,21 +431,24 @@
 
     while (*n != NULL) {
         name = snd_device_name_get_hint(*n, "NAME");
-        descr = snd_device_name_get_hint(*n, "DESC");
-        io = snd_device_name_get_hint(*n, "IOID");
-        if((name != NULL) && (descr != NULL) && ((io == NULL) || (io == filter))) {
-            QString deviceName = QLatin1String(name);
-            QString deviceDescription = QLatin1String(descr);
-            allDevices.append(deviceName.toLocal8Bit().constData());
-            if(deviceDescription.contains(QLatin1String("Default Audio Device")))
-                devices.append(deviceName.toLocal8Bit().constData());
+        if (name != 0 && qstrcmp(name, "null") != 0) {
+            descr = snd_device_name_get_hint(*n, "DESC");
+            io = snd_device_name_get_hint(*n, "IOID");
+
+            if ((descr != NULL) && ((io == NULL) || (io == filter))) {
+                QString deviceName = QLatin1String(name);
+                QString deviceDescription = QLatin1String(descr);
+                allDevices.append(deviceName.toLocal8Bit().constData());
+                if (deviceDescription.contains(QLatin1String("Default Audio Device")))
+                    devices.append(deviceName.toLocal8Bit().constData());
+            }
+
+            free(name);
+            if (descr != NULL)
+                free(descr);
+            if (io != NULL)
+                free(io);
         }
-        if(name != NULL)
-            free(name);
-        if(descr != NULL)
-            free(descr);
-        if(io != NULL)
-            free(io);
         ++n;
     }
     snd_device_name_free_hint(hints);
--- a/src/multimedia/video/qvideosurfaceformat.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/multimedia/video/qvideosurfaceformat.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -252,7 +252,7 @@
 
 bool QVideoSurfaceFormat::isValid() const
 {
-    return d->pixelFormat == QVideoFrame::Format_Invalid && d->frameSize.isValid();
+    return d->pixelFormat != QVideoFrame::Format_Invalid && d->frameSize.isValid();
 }
 
 /*!
--- a/src/network/access/qhttpnetworkconnection.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/network/access/qhttpnetworkconnection.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -653,6 +653,8 @@
         // is the reply associated the currently processing of this channel?
         if (channels[i].reply == reply) {
             channels[i].reply = 0;
+            channels[i].request = QHttpNetworkRequest();
+            channels[i].resendCurrent = false;
 
             if (!reply->isFinished() && !channels[i].alreadyPipelinedRequests.isEmpty()) {
                 // the reply had to be prematurely removed, e.g. it was not finished
--- a/src/network/access/qhttpnetworkconnectionchannel.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/network/access/qhttpnetworkconnectionchannel.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -647,8 +647,10 @@
     // finished request.
     // Note that this may trigger a segfault at some other point. But then we can fix the underlying
     // problem.
-    if (!resendCurrent)
+    if (!resendCurrent) {
+        request = QHttpNetworkRequest();
         reply = 0;
+    }
 
     // move next from pipeline to current request
     if (!alreadyPipelinedRequests.isEmpty()) {
--- a/src/network/access/qnetworkaccessmanager.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/network/access/qnetworkaccessmanager.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -201,7 +201,7 @@
     deleteResource())
 
     \value CustomOperation      custom operation (created with
-    sendCustomRequest())
+    sendCustomRequest())    \since 4.7
 
     \omitvalue UnknownOperation
 
--- a/src/network/access/qnetworkrequest.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/network/access/qnetworkrequest.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -105,7 +105,8 @@
 
 /*!
     \enum QNetworkRequest::Attribute
-
+    \since 4.7
+    
     Attribute codes for the QNetworkRequest and QNetworkReply.
 
     Attributes are extra meta-data that are used to control the
@@ -174,21 +175,21 @@
         When using this flag with sequential upload data, the ContentLengthHeader
         header must be set.
 
-     \value HttpPipeliningAllowedAttribute
+    \value HttpPipeliningAllowedAttribute
         Requests only, type: QVariant::Bool (default: false)
         Indicates whether the QNetworkAccessManager code is
         allowed to use HTTP pipelining with this request.
 
-     \value HttpPipeliningWasUsedAttribute
+    \value HttpPipeliningWasUsedAttribute
         Replies only, type: QVariant::Bool
         Indicates whether the HTTP pipelining was used for receiving
         this reply.
 
     \value CustomVerbAttribute
        Requests only, type: QVariant::ByteArray
-        Holds the value for the custom HTTP verb to send (destined for usage
-        of other verbs than GET, POST, PUT and DELETE). This verb is set
-        when calling QNetworkAccessManager::sendCustomRequest().
+       Holds the value for the custom HTTP verb to send (destined for usage
+       of other verbs than GET, POST, PUT and DELETE). This verb is set
+       when calling QNetworkAccessManager::sendCustomRequest().
 
     \value CookieLoadControlAttribute
         Requests only, type: QVariant::Int (default: QNetworkRequest::Automatic)
@@ -198,45 +199,42 @@
         XMLHttpRequest where withCredentials has not been set explicitly to true by the
         Javascript that created the request.
 
-        See http://www.w3.org/TR/XMLHttpRequest2/#credentials-flag for more information.
+        See \l{http://www.w3.org/TR/XMLHttpRequest2/#credentials-flag}{here} for more information.
 
-        \since 4.7
+        (This value was introduced in 4.7.)
 
-     \value CookieSaveControlAttribute
+
+    \value CookieSaveControlAttribute
         Requests only, type: QVariant::Int (default: QNetworkRequest::Automatic)
         Indicates whether to save 'Cookie' headers received from the server in reply
         to the request.
-
         This attribute is set to false by QtWebKit when creating a cross-origin
         XMLHttpRequest where withCredentials has not been set explicitly to true by the
         Javascript that created the request.
 
-        See http://www.w3.org/TR/XMLHttpRequest2/#credentials-flag for more information.
+        See \l{http://www.w3.org/TR/XMLHttpRequest2/#credentials-flag} {here} for more information.
 
-        \since 4.7
+        (This value was introduced in 4.7.)
 
-     \value AuthenticationReuseAttribute
+    \value AuthenticationReuseAttribute
         Requests only, type: QVariant::Int (default: QNetworkRequest::Automatic)
         Indicates whether to use cached authorization credentials in the request,
         if available. If this is set to QNetworkRequest::Manual and the authentication
         mechanism is 'Basic' or 'Digest', Qt will not send an an 'Authorization' HTTP
         header with any cached credentials it may have for the request's URL.
-
         This attribute is set to QNetworkRequest::Manual by QtWebKit when creating a cross-origin
         XMLHttpRequest where withCredentials has not been set explicitly to true by the
         Javascript that created the request.
 
-        See http://www.w3.org/TR/XMLHttpRequest2/#credentials-flag for more information.
+        See \l{http://www.w3.org/TR/XMLHttpRequest2/#credentials-flag} {here} for more information.
 
-        \since 4.7
+        (This value was introduced in 4.7.)
 
     \omitvalue MaximumDownloadBufferSizeAttribute
-        \since 4.7
-        \internal
+        (This value was introduced in 4.7.)
 
     \omitvalue DownloadBufferAttribute
-        \since 4.7
-        \internal
+        (This value was introduced in 4.7.)
 
     \value User
         Special type. Additional information can be passed in
--- a/src/network/bearer/qnetworkconfigmanager.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/network/bearer/qnetworkconfigmanager.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -45,16 +45,45 @@
 #include "qbearerengine_p.h"
 
 #include <QtCore/qstringlist.h>
+#include <QtCore/qcoreapplication.h>
 
 #ifndef QT_NO_BEARERMANAGEMENT
 
 QT_BEGIN_NAMESPACE
 
-Q_GLOBAL_STATIC(QNetworkConfigurationManagerPrivate, connManager);
+#define Q_GLOBAL_STATIC_QAPP_DESTRUCTION(TYPE, NAME)                    \
+    Q_GLOBAL_STATIC_INIT(TYPE, NAME);                                   \
+    static void NAME##_cleanup()                                        \
+    {                                                                   \
+        delete this_##NAME.pointer;                                     \
+        this_##NAME.pointer = 0;                                        \
+        this_##NAME.destroyed = true;                                   \
+    }                                                                   \
+    static TYPE *NAME()                                                 \
+    {                                                                   \
+        if (!this_##NAME.pointer && !this_##NAME.destroyed) {           \
+            TYPE *x = new TYPE;                                         \
+            if (!this_##NAME.pointer.testAndSetOrdered(0, x))           \
+                delete x;                                               \
+            else                                                        \
+                qAddPostRoutine(NAME##_cleanup);                        \
+        }                                                               \
+        return this_##NAME.pointer;                                     \
+    }
+
+Q_GLOBAL_STATIC_QAPP_DESTRUCTION(QNetworkConfigurationManagerPrivate, connManager);
 
 QNetworkConfigurationManagerPrivate *qNetworkConfigurationManagerPrivate()
 {
-    return connManager();
+    static bool initialized = false;
+
+    QNetworkConfigurationManagerPrivate *m = connManager();
+    if (!initialized) {
+        initialized = true;
+        m->updateConfigurations();
+    }
+
+    return m;
 }
 
 /*!
@@ -178,7 +207,7 @@
 QNetworkConfigurationManager::QNetworkConfigurationManager( QObject* parent )
     : QObject(parent)
 {
-    QNetworkConfigurationManagerPrivate *priv = connManager();
+    QNetworkConfigurationManagerPrivate *priv = qNetworkConfigurationManagerPrivate();
 
     connect(priv, SIGNAL(configurationAdded(QNetworkConfiguration)),
             this, SIGNAL(configurationAdded(QNetworkConfiguration)));
--- a/src/network/bearer/qnetworkconfigmanager_p.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/network/bearer/qnetworkconfigmanager_p.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -63,9 +63,7 @@
 :   pollTimer(0), mutex(QMutex::Recursive), forcedPolling(0), firstUpdate(true)
 {
     qRegisterMetaType<QNetworkConfiguration>("QNetworkConfiguration");
-
-    moveToThread(QCoreApplicationPrivate::mainThread());
-    updateConfigurations();
+    qRegisterMetaType<QNetworkConfigurationPrivatePointer>("QNetworkConfigurationPrivatePointer");
 }
 
 QNetworkConfigurationManagerPrivate::~QNetworkConfigurationManagerPrivate()
@@ -150,25 +148,29 @@
              end = engine->accessPointConfigurations.end(); it != end; ++it) {
             QNetworkConfigurationPrivatePointer ptr = it.value();
 
-            const QString bearerName = ptr->bearerName();
             QMutexLocker configLocker(&ptr->mutex);
+            QNetworkConfiguration::BearerType bearerType = ptr->bearerType;
 
             if ((ptr->state & QNetworkConfiguration::Discovered) ==
                 QNetworkConfiguration::Discovered) {
                 if (!defaultConfiguration) {
                     defaultConfiguration = ptr;
                 } else {
+                    QMutexLocker defaultConfigLocker(&defaultConfiguration->mutex);
+
                     if (defaultConfiguration->state == ptr->state) {
-                        if (defaultConfiguration->bearerName() == QLatin1String("Ethernet")) {
+                        switch (defaultConfiguration->bearerType) {
+                        case QNetworkConfiguration::BearerEthernet:
                             // do nothing
-                        } else if (defaultConfiguration->bearerName() == QLatin1String("WLAN")) {
-                            // ethernet beats wlan
-                            if (bearerName == QLatin1String("Ethernet"))
-                                defaultConfiguration = ptr;
-                        } else {
-                            // ethernet and wlan beats other
-                            if (bearerName == QLatin1String("Ethernet") ||
-                                bearerName == QLatin1String("WLAN")) {
+                            break;
+                        case QNetworkConfiguration::BearerWLAN:
+                            // Ethernet beats WLAN
+                            defaultConfiguration = ptr;
+                            break;
+                        default:
+                            // Ethernet and WLAN beats other
+                            if (bearerType == QNetworkConfiguration::BearerEthernet ||
+                                bearerType == QNetworkConfiguration::BearerWLAN) {
                                 defaultConfiguration = ptr;
                             }
                         }
@@ -354,6 +356,13 @@
         if (sender())
             return;
 
+        if (thread() != QCoreApplicationPrivate::mainThread()) {
+            if (thread() != QThread::currentThread())
+                return;
+
+            moveToThread(QCoreApplicationPrivate::mainThread());
+        }
+
         updating = false;
 
 #ifndef QT_NO_LIBRARY
--- a/src/network/bearer/qnetworkconfiguration.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/network/bearer/qnetworkconfiguration.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -183,6 +183,23 @@
 */
 
 /*!
+    \enum QNetworkConfiguration::BearerType
+
+    Specifies the type of bearer used by a configuration.
+
+    \value BearerUnknown    The type of bearer is unknown or unspecified. The bearerTypeName()
+                            function may return additional information.
+    \value BearerEthernet   The configuration is for an Ethernet interfaces.
+    \value BearerWLAN       The configuration is for a Wireless LAN interface.
+    \value Bearer2G         The configuration is for a CSD, GPRS, HSCSD, EDGE or cdmaOne interface.
+    \value BearerCDMA2000   The configuration is for CDMA interface.
+    \value BearerWCDMA      The configuration is for W-CDMA/UMTS interface.
+    \value BearerHSPA       The configuration is for High Speed Packet Access (HSPA) interface.
+    \value BearerBluetooth  The configuration is for a Bluetooth interface.
+    \value BearerWiMAX      The configuration is for a WiMAX interface.
+*/
+
+/*!
     Constructs an invalid configuration object.
 
     \sa isValid()
@@ -383,53 +400,113 @@
 }
 
 /*!
-    Returns the type of bearer. The string is not translated and
-    therefore can not be shown to the user. The subsequent table presents the currently known
-    bearer types:
+    \fn QString QNetworkConfiguration::bearerName() const
+    \deprecated
+
+    This function is deprecated.  It is equivalent to calling bearerTypeName(), however
+    bearerType() should be used in preference.
+*/
+
+/*!
+    Returns the type of bearer used by this network configuration.
+
+    If the bearer type is \l {QNetworkConfiguration::BearerUnknown}{unknown} the bearerTypeName()
+    function can be used to retrieve a textural type name for the bearer.
+
+    An invalid network configuration always returns the BearerUnknown value.
+*/
+QNetworkConfiguration::BearerType QNetworkConfiguration::bearerType() const
+{
+    if (!isValid())
+        return BearerUnknown;
+
+    QMutexLocker locker(&d->mutex);
+
+    return d->bearerType;
+}
+
+/*!
+    Returns the type of bearer used by this network configuration as a string.
+
+    The string is not translated and therefore can not be shown to the user. The subsequent table
+    shows the fixed mappings between BearerType and the bearer type name for known types.  If the
+    BearerType is unknown this function may return additional information if it is available;
+    otherwise an empty string will be returned.
 
     \table
-        \header 
+        \header
+            \o BearerType
             \o Value
-            \o Description
-        \row
-            \o Unknown
-            \o The session is based on an unknown or unspecified bearer type.
         \row
-            \o Ethernet
-            \o The session is based on Ethernet.
+            \o BearerUnknown
+            \o
+            \o The session is based on an unknown or unspecified bearer type. The value of the
+               string returned describes the bearer type.
         \row
+            \o BearerEthernet
+            \o Ethernet
+        \row
+            \o BearerWLAN
             \o WLAN
-            \o The session is based on Wireless LAN.
         \row
+            \o Bearer2G
             \o 2G
-            \o The session uses CSD, GPRS, HSCSD, EDGE or cdmaOne.
-        \row 
+        \row
+            \o BearerCDMA2000
             \o CDMA2000
-            \o The session uses CDMA.
         \row
+            \o BearerWCDMA
             \o WCDMA
-            \o The session uses W-CDMA/UMTS.
         \row
+            \o BearerHSPA
             \o HSPA
-            \o The session uses High Speed Packet Access.
         \row
+            \o BearerBluetooth
             \o Bluetooth
-            \o The session uses Bluetooth.
         \row
+            \o BearerWiMAX
             \o WiMAX
-            \o The session uses WiMAX.
     \endtable
 
-    This function returns an empty string if this is an invalid configuration,
-    a network configuration of type \l QNetworkConfiguration::ServiceNetwork or
+    This function returns an empty string if this is an invalid configuration, a network
+    configuration of type \l QNetworkConfiguration::ServiceNetwork or
     \l QNetworkConfiguration::UserChoice.
+
+    \sa bearerType()
 */
-QString QNetworkConfiguration::bearerName() const
+QString QNetworkConfiguration::bearerTypeName() const
 {
     if (!isValid())
         return QString();
 
-    return d->bearerName();
+    QMutexLocker locker(&d->mutex);
+
+    if (d->type == QNetworkConfiguration::ServiceNetwork ||
+        d->type == QNetworkConfiguration::UserChoice)
+        return QString();
+
+    switch (d->bearerType) {
+    case BearerUnknown:
+        return d->bearerTypeName();
+    case BearerEthernet:
+        return QLatin1String("Ethernet");
+    case BearerWLAN:
+        return QLatin1String("WLAN");
+    case Bearer2G:
+        return QLatin1String("2G");
+    case BearerCDMA2000:
+        return QLatin1String("CDMA2000");
+    case BearerWCDMA:
+        return QLatin1String("WCDMA");
+    case BearerHSPA:
+        return QLatin1String("HSPA");
+    case BearerBluetooth:
+        return QLatin1String("Bluetooth");
+    case BearerWiMAX:
+        return QLatin1String("WiMAX");
+    }
+
+    return QLatin1String("Unknown");
 }
 
 QT_END_NAMESPACE
--- a/src/network/bearer/qnetworkconfiguration.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/network/bearer/qnetworkconfiguration.h	Mon Oct 04 01:19:32 2010 +0300
@@ -103,10 +103,35 @@
 
     Q_DECLARE_FLAGS(StateFlags, StateFlag)
 
+#ifndef QT_MOBILITY_BEARER
+    enum BearerType {
+        BearerUnknown,
+        BearerEthernet,
+        BearerWLAN,
+        Bearer2G,
+        BearerCDMA2000,
+        BearerWCDMA,
+        BearerHSPA,
+        BearerBluetooth,
+        BearerWiMAX
+    };
+#endif
+
     StateFlags state() const;
     Type type() const;
     Purpose purpose() const;
+
+#ifndef QT_MOBILITY_BEARER
+#ifdef QT_DEPRECATED
+    // Required to maintain source compatibility with Qt Mobility.
+    QT_DEPRECATED inline QString bearerName() const { return bearerTypeName(); }
+#endif
+    BearerType bearerType() const;
+    QString bearerTypeName() const;
+#else
     QString bearerName() const;
+#endif
+
     QString identifier() const;
     bool isRoamingAvailable() const;
     QList<QNetworkConfiguration> children() const;
--- a/src/network/bearer/qnetworkconfiguration_p.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/network/bearer/qnetworkconfiguration_p.h	Mon Oct 04 01:19:32 2010 +0300
@@ -68,6 +68,7 @@
     QNetworkConfigurationPrivate ()
     :   mutex(QMutex::Recursive), type(QNetworkConfiguration::Invalid),
         purpose(QNetworkConfiguration::UnknownPurpose),
+        bearerType(QNetworkConfiguration::BearerUnknown),
         isValid(false), roamingSupported(false)
     {
     }
@@ -78,24 +79,22 @@
         serviceNetworkMembers.clear(); 
     }
 
-    virtual QString bearerName() const
+    virtual QString bearerTypeName() const
     {
-        QMutexLocker locker(&mutex);
-
-        return bearer;
+        return QLatin1String("Unknown");
     }
 
     QMap<unsigned int, QNetworkConfigurationPrivatePointer> serviceNetworkMembers;
 
     mutable QMutex mutex;
 
-    QString bearer;
     QString name;
     QString id;
 
     QNetworkConfiguration::StateFlags state;
     QNetworkConfiguration::Type type;
     QNetworkConfiguration::Purpose purpose;
+    QNetworkConfiguration::BearerType bearerType;
 
     bool isValid;
     bool roamingSupported;
--- a/src/network/bearer/qnetworksession.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/network/bearer/qnetworksession.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -629,8 +629,10 @@
     If the session is based on a service network configuration the number of 
     sent bytes across all active member configurations are returned.
 
-    This function may not always be supported on all platforms and returns
-    0. The platform capability can be detected via QNetworkConfigurationManager::DataStatistics.
+    This function may not always be supported on all platforms and returns 0.
+    The platform capability can be detected via QNetworkConfigurationManager::DataStatistics.
+
+    \note On some platforms this function may run the main event loop.
 */
 quint64 QNetworkSession::bytesWritten() const
 {
@@ -646,8 +648,10 @@
     If the session is based on a service network configuration the number of 
     sent bytes across all active member configurations are returned.
 
-    This function may not always be supported on all platforms and returns
-    0. The platform capability can be detected via QNetworkConfigurationManager::DataStatistics.
+    This function may not always be supported on all platforms and returns 0.
+    The platform capability can be detected via QNetworkConfigurationManager::DataStatistics.
+
+    \note On some platforms this function may run the main event loop.
 */
 quint64 QNetworkSession::bytesReceived() const
 {
--- a/src/network/bearer/qnetworksession.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/network/bearer/qnetworksession.h	Mon Oct 04 01:19:32 2010 +0300
@@ -89,11 +89,7 @@
         OperationNotSupportedError,
         InvalidConfigurationError
     };
-#ifndef QT_MOBILITY_BEARER
-    QNetworkSession(const QNetworkConfiguration& connConfig, QObject* parent =0);
-#else
 	explicit QNetworkSession(const QNetworkConfiguration& connConfig, QObject* parent =0);
-#endif
     virtual ~QNetworkSession();
 
     bool isOpen() const;
--- a/src/network/kernel/qauthenticator.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/network/kernel/qauthenticator.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -52,10 +52,13 @@
 #include <qstring.h>
 #include <qdatetime.h>
 
+//#define NTLMV1_CLIENT
 
 QT_BEGIN_NAMESPACE
 
+#ifdef NTLMV1_CLIENT
 #include "../../3rdparty/des/des.cpp"
+#endif
 
 static QByteArray qNtlmPhase1();
 static QByteArray qNtlmPhase3(QAuthenticatorPrivate *ctx, const QByteArray& phase2data);
@@ -203,17 +206,29 @@
 void QAuthenticator::setUser(const QString &user)
 {
     detach();
-
     int separatorPosn = 0;
-    separatorPosn = user.indexOf(QLatin1String("\\"));
 
-    if (separatorPosn == -1) {
-        //No domain name present
+    switch(d->method) {
+    case QAuthenticatorPrivate::DigestMd5:
+    case QAuthenticatorPrivate::Ntlm:
+        if((separatorPosn = user.indexOf(QLatin1String("\\"))) != -1)
+        {
+            //domain name is present
+            d->realm = user.left(separatorPosn);
+            d->user = user.mid(separatorPosn + 1);
+        } else if((separatorPosn = user.indexOf(QLatin1String("@"))) != -1) {
+            //domain name is present
+            d->realm = user.mid(separatorPosn + 1);
+            d->user = user.left(separatorPosn);
+        } else {
+            d->user = user;
+            d->realm.clear();
+        }
+        break;
+    // For other auth mechanisms, domain name will be part of username
+    default:
         d->user = user;
-    } else {
-        //domain name is present
-        d->realm = user.left(separatorPosn);
-        d->user = user.mid(separatorPosn+1);
+        break;
     }
 }
 
@@ -1178,11 +1193,9 @@
 }
 
 // caller has to ensure a valid targetInfoBuff
-static bool qExtractServerTime(const QByteArray& targetInfoBuff,
-                               quint64 *serverTime)
+static QByteArray qExtractServerTime(const QByteArray& targetInfoBuff)
 {
-    Q_ASSERT(serverTime != 0);
-    bool retValue = false;
+    QByteArray timeArray;
     QDataStream ds(targetInfoBuff);
     ds.setByteOrder(QDataStream::LittleEndian);
 
@@ -1193,19 +1206,16 @@
     ds >> avLen;
     while(avId != 0) {
         if(avId == AVTIMESTAMP) {
-            QByteArray timeArray(avLen, 0);
+            timeArray.resize(avLen);
             //avLen size of QByteArray is allocated
             ds.readRawData(timeArray.data(), avLen);
-            bool ok;
-            *serverTime = timeArray.toHex().toLongLong(&ok, 16);
-            retValue = true;
             break;
         }
         ds.skipRawData(avLen);
         ds >> avId;
         ds >> avLen;
     }
-    return retValue;
+    return timeArray;
 }
 
 static QByteArray qEncodeNtlmv2Response(const QAuthenticatorPrivate *ctx,
@@ -1228,9 +1238,17 @@
     ds.writeRawData(reserved1.constData(), reserved1.size());
 
     quint64 time = 0;
+    QByteArray timeArray;
+
+    if(ch.targetInfo.len)
+    {
+        timeArray = qExtractServerTime(ch.targetInfoBuff);
+    }
 
     //if server sends time, use it instead of current time
-    if(!(ch.targetInfo.len && qExtractServerTime(ch.targetInfoBuff, &time))) {
+    if(timeArray.size()) {
+        ds.writeRawData(timeArray.constData(), timeArray.size());
+    } else {
         QDateTime currentTime(QDate::currentDate(),
                               QTime::currentTime(), Qt::UTC);
 
@@ -1242,8 +1260,8 @@
 
         // represented as 100 nano seconds
         time = Q_UINT64_C(time * 10000000);
+        ds << time;
     }
-    ds << time;
 
     //8 byte client challenge
     QByteArray clientCh = clientChallenge(ctx);
--- a/src/network/kernel/qhostinfo.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/network/kernel/qhostinfo.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -647,7 +647,7 @@
     work();
 }
 
-// This function returns immediatly when we had a result in the cache, else it will later emit a signal
+// This function returns immediately when we had a result in the cache, else it will later emit a signal
 QHostInfo qt_qhostinfo_lookup(const QString &name, QObject *receiver, const char *member, bool *valid, int *id)
 {
     *valid = false;
--- a/src/network/kernel/qhostinfo_unix.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/network/kernel/qhostinfo_unix.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -247,7 +247,10 @@
 #ifndef QT_NO_IPV6
             else if (node->ai_family == AF_INET6) {
                 QHostAddress addr;
-                addr.setAddress(((sockaddr_in6 *) node->ai_addr)->sin6_addr.s6_addr);
+                sockaddr_in6 *sa6 = (sockaddr_in6 *) node->ai_addr;
+                addr.setAddress(sa6->sin6_addr.s6_addr);
+                if (sa6->sin6_scope_id)
+                    addr.setScopeId(QString::number(sa6->sin6_scope_id));
                 if (!addresses.contains(addr))
                     addresses.append(addr);
             }
--- a/src/network/socket/qabstractsocket.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/network/socket/qabstractsocket.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -1380,7 +1380,7 @@
 #endif
     } else {
         if (d->threadData->eventDispatcher) {
-            // this internal API for QHostInfo either immediatly gives us the desired
+            // this internal API for QHostInfo either immediately gives us the desired
             // QHostInfo from cache or later calls the _q_startConnecting slot.
             bool immediateResultValid = false;
             QHostInfo hostInfo = qt_qhostinfo_lookup(hostName,
--- a/src/network/socket/qlocalsocket_win.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/network/socket/qlocalsocket_win.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -306,7 +306,7 @@
 /*!
     \internal
     Sets the correct size of the read buffer after a read operation.
-    Returns false, if an error occured or the connection dropped.
+    Returns false, if an error occurred or the connection dropped.
  */
 bool QLocalSocketPrivate::completeAsyncRead()
 {
--- a/src/network/socket/qnativesocketengine_unix.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/network/socket/qnativesocketengine_unix.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -352,10 +352,13 @@
         memset(&sockAddrIPv6, 0, sizeof(sockAddrIPv6));
         sockAddrIPv6.sin6_family = AF_INET6;
         sockAddrIPv6.sin6_port = htons(port);
+
+        QString scopeid = addr.scopeId();
+        bool ok;
+        sockAddrIPv6.sin6_scope_id = scopeid.toInt(&ok);
 #ifndef QT_NO_IPV6IFNAME
-        sockAddrIPv6.sin6_scope_id = ::if_nametoindex(addr.scopeId().toLatin1().data());
-#else
-        sockAddrIPv6.sin6_scope_id = addr.scopeId().toInt();
+        if (!ok)
+            sockAddrIPv6.sin6_scope_id = ::if_nametoindex(scopeid.toLatin1());
 #endif
         Q_IPV6ADDR ip6 = addr.toIPv6Address();
         memcpy(&sockAddrIPv6.sin6_addr.s6_addr, &ip6, sizeof(ip6));
@@ -562,7 +565,7 @@
 #else
     int acceptedDescriptor = qt_safe_accept(socketDescriptor, 0, 0);
 #endif
-    //check if we have vaild descriptor at all
+    //check if we have valid descriptor at all
     if(acceptedDescriptor > 0) {
         // Ensure that the socket is closed on exec*()
         ::fcntl(acceptedDescriptor, F_SETFD, FD_CLOEXEC);
--- a/src/network/socket/qnativesocketengine_win.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/network/socket/qnativesocketengine_win.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -207,6 +207,7 @@
     if (address.protocol() == QAbstractSocket::IPv6Protocol) {
         memset(sockAddrIPv6, 0, sizeof(qt_sockaddr_in6));
         sockAddrIPv6->sin6_family = AF_INET6;
+        sockAddrIPv6->sin6_scope_id = address.scopeId().toInt();
         WSAHtons(socketDescriptor, port, &(sockAddrIPv6->sin6_port));
         Q_IPV6ADDR tmp = address.toIPv6Address();
         memcpy(&(sockAddrIPv6->sin6_addr.qt_s6_addr), &tmp, sizeof(tmp));
--- a/src/network/ssl/qsslsocket.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/network/ssl/qsslsocket.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -210,7 +210,7 @@
     valid. On failure, QSslSocket will emit the QSslSocket::sslErrors()
     signal. This mode is the default for clients.
 
-    \value AutoVerifyPeer QSslSocket will automaticaly use QueryPeer for
+    \value AutoVerifyPeer QSslSocket will automatically use QueryPeer for
     server sockets and VerifyPeer for client sockets.
 
     \sa QSslSocket::peerVerifyMode()
@@ -1966,6 +1966,11 @@
     QMutexLocker locker(&globalData()->mutex);
     const QSslConfigurationPrivate *global = globalData()->config.constData();
 
+    if (!global) {
+        ptr = 0;
+        return;
+    }
+
     ptr->ref = 1;
     ptr->peerCertificate = global->peerCertificate;
     ptr->peerCertificateChain = global->peerCertificateChain;
--- a/src/network/ssl/qsslsocket_openssl.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/network/ssl/qsslsocket_openssl.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -750,7 +750,7 @@
             ptrCertCloseStore(hSystemStore, 0);
         }
     }
-#elif defined(Q_OS_UNIX)
+#elif defined(Q_OS_UNIX) && !defined(Q_OS_SYMBIAN)
     systemCerts.append(QSslCertificate::fromPath(QLatin1String("/var/ssl/certs/*.pem"), QSsl::Pem, QRegExp::Wildcard)); // AIX
     systemCerts.append(QSslCertificate::fromPath(QLatin1String("/usr/local/ssl/certs/*.pem"), QSsl::Pem, QRegExp::Wildcard)); // Solaris
     systemCerts.append(QSslCertificate::fromPath(QLatin1String("/opt/openssl/certs/*.pem"), QSsl::Pem, QRegExp::Wildcard)); // HP-UX
@@ -1288,6 +1288,11 @@
     if (hostname.midRef(hostname.indexOf(QLatin1Char('.'))) != cn.midRef(firstCnDot))
         return false;
 
+    // Check if the hostname is an IP address, if so then wildcards are not allowed
+    QHostAddress addr(hostname);
+    if (!addr.isNull())
+        return false;
+
     // Ok, I guess this was a wildcard CN and the hostname matches.
     return true;
 }
--- a/src/network/ssl/qsslsocket_openssl_symbols.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/network/ssl/qsslsocket_openssl_symbols.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -761,74 +761,95 @@
 //==============================================================================
 QDateTime q_getTimeFromASN1(const ASN1_TIME *aTime)
 {
-    char lBuffer[24];
-    char *pBuffer = lBuffer;
-
     size_t lTimeLength = aTime->length;
     char *pString = (char *) aTime->data;
 
     if (aTime->type == V_ASN1_UTCTIME) {
+
+        char lBuffer[24];
+        char *pBuffer = lBuffer;
+
         if ((lTimeLength < 11) || (lTimeLength > 17))
             return QDateTime();
 
         memcpy(pBuffer, pString, 10);
         pBuffer += 10;
         pString += 10;
-    } else {
-        if (lTimeLength < 13)
-            return QDateTime();
+
+        if ((*pString == 'Z') || (*pString == '-') || (*pString == '+')) {
+            *pBuffer++ = '0';
+            *pBuffer++ = '0';
+        } else {
+            *pBuffer++ = *pString++;
+            *pBuffer++ = *pString++;
+            // Skip any fractional seconds...
+            if (*pString == '.') {
+                pString++;
+                while ((*pString >= '0') && (*pString <= '9'))
+                    pString++;
+            }
+        }
 
-        memcpy(pBuffer, pString, 12);
-        pBuffer += 12;
-        pString += 12;
-    }
+        *pBuffer++ = 'Z';
+        *pBuffer++ = '\0';
+
+        time_t lSecondsFromUCT;
+        if (*pString == 'Z') {
+            lSecondsFromUCT = 0;
+        } else {
+            if ((*pString != '+') && (*pString != '-'))
+                return QDateTime();
+
+            lSecondsFromUCT = ((pString[1] - '0') * 10 + (pString[2] - '0')) * 60;
+            lSecondsFromUCT += (pString[3] - '0') * 10 + (pString[4] - '0');
+            lSecondsFromUCT *= 60;
+            if (*pString == '-')
+                lSecondsFromUCT = -lSecondsFromUCT;
+        }
 
-    if ((*pString == 'Z') || (*pString == '-') || (*pString == '+')) {
-        *pBuffer++ = '0';
-        *pBuffer++ = '0';
+        tm lTime;
+        lTime.tm_sec = ((lBuffer[10] - '0') * 10) + (lBuffer[11] - '0');
+        lTime.tm_min = ((lBuffer[8] - '0') * 10) + (lBuffer[9] - '0');
+        lTime.tm_hour = ((lBuffer[6] - '0') * 10) + (lBuffer[7] - '0');
+        lTime.tm_mday = ((lBuffer[4] - '0') * 10) + (lBuffer[5] - '0');
+        lTime.tm_mon = (((lBuffer[2] - '0') * 10) + (lBuffer[3] - '0')) - 1;
+        lTime.tm_year = ((lBuffer[0] - '0') * 10) + (lBuffer[1] - '0');
+        if (lTime.tm_year < 50)
+            lTime.tm_year += 100; // RFC 2459
+
+        QDate resDate(lTime.tm_year + 1900, lTime.tm_mon + 1, lTime.tm_mday);
+        QTime resTime(lTime.tm_hour, lTime.tm_min, lTime.tm_sec);
+
+        QDateTime result(resDate, resTime, Qt::UTC);
+        result = result.addSecs(lSecondsFromUCT);
+        return result;
+
+    } else if (aTime->type == V_ASN1_GENERALIZEDTIME) {
+
+        if (lTimeLength < 15)
+            return QDateTime(); // hopefully never triggered
+
+        // generalized time is always YYYYMMDDHHMMSSZ (RFC 2459, section 4.1.2.5.2)
+        tm lTime;
+        lTime.tm_sec = ((pString[12] - '0') * 10) + (pString[13] - '0');
+        lTime.tm_min = ((pString[10] - '0') * 10) + (pString[11] - '0');
+        lTime.tm_hour = ((pString[8] - '0') * 10) + (pString[9] - '0');
+        lTime.tm_mday = ((pString[6] - '0') * 10) + (pString[7] - '0');
+        lTime.tm_mon = (((pString[4] - '0') * 10) + (pString[5] - '0'));
+        lTime.tm_year = ((pString[0] - '0') * 1000) + ((pString[1] - '0') * 100) +
+                        ((pString[2] - '0') * 10) + (pString[3] - '0');
+
+        QDate resDate(lTime.tm_year, lTime.tm_mon, lTime.tm_mday);
+        QTime resTime(lTime.tm_hour, lTime.tm_min, lTime.tm_sec);
+
+        QDateTime result(resDate, resTime, Qt::UTC);
+        return result;
+
     } else {
-        *pBuffer++ = *pString++;
-        *pBuffer++ = *pString++;
-        // Skip any fractional seconds...
-        if (*pString == '.') {
-            pString++;
-            while ((*pString >= '0') && (*pString <= '9'))
-                pString++;
-        }
+        qWarning("unsupported date format detected");
+        return QDateTime();
     }
 
-    *pBuffer++ = 'Z';
-    *pBuffer++ = '\0';
-
-    time_t lSecondsFromUCT;
-    if (*pString == 'Z') {
-        lSecondsFromUCT = 0;
-    } else {
-        if ((*pString != '+') && (*pString != '-'))
-            return QDateTime();
-
-        lSecondsFromUCT = ((pString[1] - '0') * 10 + (pString[2] - '0')) * 60;
-        lSecondsFromUCT += (pString[3] - '0') * 10 + (pString[4] - '0');
-        lSecondsFromUCT *= 60;
-        if (*pString == '-')
-            lSecondsFromUCT = -lSecondsFromUCT;
-    }
-
-    tm lTime;
-    lTime.tm_sec = ((lBuffer[10] - '0') * 10) + (lBuffer[11] - '0');
-    lTime.tm_min = ((lBuffer[8] - '0') * 10) + (lBuffer[9] - '0');
-    lTime.tm_hour = ((lBuffer[6] - '0') * 10) + (lBuffer[7] - '0');
-    lTime.tm_mday = ((lBuffer[4] - '0') * 10) + (lBuffer[5] - '0');
-    lTime.tm_mon = (((lBuffer[2] - '0') * 10) + (lBuffer[3] - '0')) - 1;
-    lTime.tm_year = ((lBuffer[0] - '0') * 10) + (lBuffer[1] - '0');
-    if (lTime.tm_year < 50)
-        lTime.tm_year += 100; // RFC 2459
-
-    QDate resDate(lTime.tm_year + 1900, lTime.tm_mon + 1, lTime.tm_mday);
-    QTime resTime(lTime.tm_hour, lTime.tm_min, lTime.tm_sec);
-    QDateTime result(resDate, resTime, Qt::UTC);
-    result = result.addSecs(lSecondsFromUCT);
-    return result;
 }
 
 QT_END_NAMESPACE
--- a/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -90,7 +90,10 @@
 
 QT_BEGIN_NAMESPACE
 
-//#define QT_GL_NO_SCISSOR_TEST
+#if defined(Q_OS_SYMBIAN)
+#define QT_GL_NO_SCISSOR_TEST
+#endif
+
 #if defined(Q_WS_WIN)
 extern Q_GUI_EXPORT bool qt_cleartype_enabled;
 #endif
@@ -374,12 +377,12 @@
         dx = ceilf(dx - 0.5f);
         dy = ceilf(dy - 0.5f);
     }
-
+#ifndef Q_OS_SYMBIAN
     if (addOffset) {
         dx += 0.49f;
         dy += 0.49f;
     }
-
+#endif
     pmvMatrix[0][0] = (wfactor * transform.m11())  - transform.m13();
     pmvMatrix[1][0] = (wfactor * transform.m21())  - transform.m23();
     pmvMatrix[2][0] = (wfactor * dx) - transform.m33();
@@ -686,7 +689,12 @@
     const QPointF* const points = reinterpret_cast<const QPointF*>(path.points());
 
     // ### Remove before release...
-    static bool do_vectorpath_cache = qgetenv("QT_OPENGL_NO_PATH_CACHE").isEmpty();
+#ifdef Q_OS_SYMBIAN
+    // ### There are some unresolved issues in Symbian vector path caching.
+    static bool do_vectorpath_cache = false;
+#else
+    static bool do_vectorpath_cache = true;
+#endif
 
     // Check to see if there's any hints
     if (path.shape() == QVectorPath::RectangleHint) {
--- a/src/opengl/gl2paintengineex/qtriangulator.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/opengl/gl2paintengineex/qtriangulator.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -65,7 +65,11 @@
 
 // Quick sort.
 template <class T, class LessThan>
+#ifdef Q_CC_RVCT // RVCT 2.2 doesn't see recursive _static_ template function
+void sort(T *array, int count, LessThan lessThan)
+#else
 static void sort(T *array, int count, LessThan lessThan)
+#endif
 {
     // If the number of elements fall below some threshold, use insertion sort.
     const int INSERTION_SORT_LIMIT = 7; // About 7 is fastest on my computer...
@@ -122,7 +126,11 @@
 
 // Quick sort.
 template <class T>
+#ifdef Q_CC_RVCT
+void sort(T *array, int count) // RVCT 2.2 doesn't see recursive _static_ template function
+#else
 static void sort(T *array, int count)
+#endif
 {
     // If the number of elements fall below some threshold, use insertion sort.
     const int INSERTION_SORT_LIMIT = 25; // About 25 is fastest on my computer...
--- a/src/opengl/opengl.pro	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/opengl/opengl.pro	Mon Oct 04 01:19:32 2010 +0300
@@ -11,18 +11,18 @@
 
 include(../qbase.pri)
 
-!win32:!embedded:!mac:CONFIG	   += x11
+!win32:!embedded:!mac:!symbian:CONFIG	   += x11
 contains(QT_CONFIG, opengl):CONFIG += opengl
 contains(QT_CONFIG, opengles1):CONFIG += opengles1
 contains(QT_CONFIG, opengles2):CONFIG += opengles2
 contains(QT_CONFIG, egl):CONFIG += egl
 
 HEADERS += qgl.h \
-	   qgl_p.h \
-	   qglcolormap.h \
-	   qglpixelbuffer.h \
+           qgl_p.h \
+           qglcolormap.h \
+           qglpixelbuffer.h \
            qglpixelbuffer_p.h \
-	   qglframebufferobject.h  \
+           qglframebufferobject.h  \
            qglframebufferobject_p.h  \
            qglextensions_p.h \
            qglpaintdevice_p.h \
@@ -30,9 +30,9 @@
 
 
 SOURCES	+= qgl.cpp \
-	   qglcolormap.cpp \
-	   qglpixelbuffer.cpp \
-	   qglframebufferobject.cpp \
+           qglcolormap.cpp \
+           qglpixelbuffer.cpp \
+           qglframebufferobject.cpp \
            qglextensions.cpp \
            qglpaintdevice.cpp \
            qglbuffer.cpp \
@@ -119,7 +119,7 @@
 win32:!wince*: {
     DEFINES += QT_NO_EGL
     SOURCES += qgl_win.cpp \
-	       qglpixelbuffer_win.cpp
+	           qglpixelbuffer_win.cpp
 }
 wince*: {
     SOURCES += qgl_wince.cpp \
@@ -147,4 +147,14 @@
     }
 }
 
+symbian {
+    SOURCES += qgl_symbian.cpp \
+               qglpixelbuffer_egl.cpp \
+               qgl_egl.cpp
+
+    HEADERS += qgl_egl_p.h
+
+    symbian:TARGET.UID3 = 0x2002131A
+}
+
 INCLUDEPATH += ../3rdparty/harfbuzz/src
--- a/src/opengl/qgl.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/opengl/qgl.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -96,7 +96,7 @@
 
 QT_BEGIN_NAMESPACE
 
-#if defined(Q_WS_X11) || defined(Q_WS_MAC) || defined(Q_WS_QWS)
+#if defined(Q_WS_X11) || defined(Q_WS_MAC) || defined(Q_WS_QWS) || defined(Q_OS_SYMBIAN)
 QGLExtensionFuncs QGLContextPrivate::qt_extensionFuncs;
 #endif
 
@@ -1688,6 +1688,10 @@
     workaround_needsFullClearOnEveryFrame = false;
     workaround_brokenFBOReadBack = false;
     workaroundsCached = false;
+
+    workaround_brokenTextureFromPixmap = false;
+    workaround_brokenTextureFromPixmap_init = false;
+
     for (int i = 0; i < QT_GL_VERTEX_ARRAY_TRACKED_COUNT; ++i)
         vertexAttributeArraysEnabledState[i] = false;
 }
@@ -1991,7 +1995,7 @@
     option helps preserve this default behavior.
 
     \omitvalue CanFlipNativePixmapBindOption Used by x11 from pixmap to choose
-    wether or not it can bind the pixmap upside down or not.
+    whether or not it can bind the pixmap upside down or not.
 
     \omitvalue MemoryManagedBindOption Used by paint engines to
     indicate that the pixmap should be memory managed along side with
@@ -2099,11 +2103,8 @@
 #ifdef QT_NO_EGL
 void QGLContextPrivate::swapRegion(const QRegion *)
 {
-    static bool firstWarning = true;
-    if (firstWarning) {
-        qWarning() << "::swapRegion called but not supported!";
-        firstWarning = false;
-    }
+    Q_Q(QGLContext);
+    q->swapBuffers();
 }
 #endif
 
@@ -2260,7 +2261,7 @@
     }
 }
 
-#if defined(Q_WS_X11) || defined(Q_WS_MAC) || defined(Q_WS_QWS)
+#if defined(Q_WS_X11) || defined(Q_WS_MAC) || defined(Q_WS_QWS) || defined(Q_OS_SYMBIAN)
 QGLExtensionFuncs& QGLContextPrivate::extensionFuncs(const QGLContext *)
 {
     return qt_extensionFuncs;
@@ -2283,11 +2284,19 @@
 QGLTexture *QGLContextPrivate::bindTexture(const QImage &image, GLenum target, GLint format,
                                            QGLContext::BindOptions options)
 {
+    Q_Q(QGLContext);
+
     const qint64 key = image.cacheKey();
     QGLTexture *texture = textureCacheLookup(key, target);
     if (texture) {
-        glBindTexture(target, texture->id);
-        return texture;
+        if (image.paintingActive()) {
+            // A QPainter is active on the image - take the safe route and replace the texture.
+            q->deleteTexture(texture->id);
+            texture = 0;
+        } else {
+            glBindTexture(target, texture->id);
+            return texture;
+        }
     }
 
     if (!texture)
@@ -2553,14 +2562,19 @@
     }
 #else
     Q_UNUSED(pd);
-    Q_UNUSED(q);
 #endif
 
     const qint64 key = pixmap.cacheKey();
     QGLTexture *texture = textureCacheLookup(key, target);
     if (texture) {
-        glBindTexture(target, texture->id);
-        return texture;
+        if (pixmap.paintingActive()) {
+            // A QPainter is active on the pixmap - take the safe route and replace the texture.
+            q->deleteTexture(texture->id);
+            texture = 0;
+        } else {
+            glBindTexture(target, texture->id);
+            return texture;
+        }
     }
 
 #if defined(Q_WS_X11)
@@ -2570,11 +2584,27 @@
         && xinfo && xinfo->screen() == pixmap.x11Info().screen()
         && target == GL_TEXTURE_2D)
     {
-        texture = bindTextureFromNativePixmap(const_cast<QPixmap*>(&pixmap), key, options);
-        if (texture) {
-            texture->options |= QGLContext::MemoryManagedBindOption;
-            texture->boundPixmap = pd;
-            boundPixmaps.insert(pd, QPixmap(pixmap));
+        if (!workaround_brokenTextureFromPixmap_init) {
+            workaround_brokenTextureFromPixmap_init = true;
+
+            const QByteArray versionString(reinterpret_cast<const char*>(glGetString(GL_VERSION)));
+            const int pos = versionString.indexOf("NVIDIA ");
+
+            if (pos >= 0) {
+                const QByteArray nvidiaVersionString = versionString.mid(pos + strlen("NVIDIA "));
+
+                if (nvidiaVersionString.startsWith("195") || nvidiaVersionString.startsWith("256"))
+                    workaround_brokenTextureFromPixmap = true;
+            }
+        }
+
+        if (!workaround_brokenTextureFromPixmap) {
+            texture = bindTextureFromNativePixmap(const_cast<QPixmap*>(&pixmap), key, options);
+            if (texture) {
+                texture->options |= QGLContext::MemoryManagedBindOption;
+                texture->boundPixmap = pd;
+                boundPixmaps.insert(pd, QPixmap(pixmap));
+            }
         }
     }
 #endif
@@ -4177,6 +4207,34 @@
         d->glcx->d_ptr->clearDrawable();
 #  endif
     }
+#elif defined(Q_OS_SYMBIAN)
+    // prevents errors on some systems, where we get a flush to a
+    // hidden widget
+    if (e->type() == QEvent::Hide) {
+        makeCurrent();
+        glFinish();
+        doneCurrent();
+    } else if (e->type() == QEvent::ParentChange) {
+        // if we've reparented a window that has the current context
+        // bound, we need to rebind that context to the new window id
+        if (d->glcx == QGLContext::currentContext())
+            makeCurrent();
+
+        if (testAttribute(Qt::WA_TranslucentBackground))
+            setContext(new QGLContext(d->glcx->requestedFormat(), this));
+    }
+
+    // A re-parent is likely to destroy the Symbian window and re-create it. It is important
+    // that we free the EGL surface _before_ the winID changes - otherwise we can leak.
+    if (e->type() == QEvent::ParentAboutToChange)
+        d->glcx->d_func()->destroyEglSurfaceForDevice();
+
+    if ((e->type() == QEvent::ParentChange) || (e->type() == QEvent::WindowStateChange)) {
+        // The window may have been re-created during re-parent or state change - if so, the EGL
+        // surface will need to be re-created.
+        d->recreateEglSurface();
+    }
+
 #endif
 
     return QWidget::event(e);
@@ -4384,6 +4442,11 @@
     Q_D(QGLWidget);
     if (!isValid())
         return;
+#ifdef Q_OS_SYMBIAN
+    // Crashes on Symbian if trying to render to invisible surfaces
+    if (!isVisible() && d->glcx->device()->devType() == QInternal::Widget)
+        return;
+#endif
     makeCurrent();
 #ifndef QT_OPENGL_ES
     if (d->glcx->deviceIsPixmap())
@@ -5196,6 +5259,8 @@
         glExtensions |= FragmentProgram;
     if (extensions.match("GL_ARB_fragment_shader"))
         glExtensions |= FragmentShader;
+    if (extensions.match("GL_ARB_ES2_compatibility"))
+        glExtensions |= ES2Compatibility;
     if (extensions.match("GL_ARB_texture_mirrored_repeat"))
         glExtensions |= MirroredRepeat;
     if (extensions.match("GL_EXT_framebuffer_object"))
@@ -5216,6 +5281,7 @@
     glExtensions |= FramebufferObject;
     glExtensions |= GenerateMipmap;
     glExtensions |= FragmentShader;
+    glExtensions |= ES2Compatibility;
 #endif
 #if defined(QT_OPENGL_ES_1)
     if (extensions.match("GL_OES_framebuffer_object"))
--- a/src/opengl/qgl_egl.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/opengl/qgl_egl.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -230,7 +230,7 @@
 void QGLContextPrivate::destroyEglSurfaceForDevice()
 {
     if (eglSurface != EGL_NO_SURFACE) {
-#ifdef Q_WS_X11
+#if defined(Q_WS_X11) || defined(Q_OS_SYMBIAN)
         // Make sure we don't call eglDestroySurface on a surface which
         // was created for a different winId. This applies only to QGLWidget
         // paint device, so make sure this is the one we're operating on
@@ -240,6 +240,7 @@
             if (QGLWidget *wgl = qobject_cast<QGLWidget *>(w)) {
                 if (wgl->d_func()->eglSurfaceWindowId != wgl->winId()) {
                     qWarning("WARNING: Potential EGL surface leak! Not destroying surface.");
+                    eglSurface = EGL_NO_SURFACE;
                     return;
                 }
             }
--- a/src/opengl/qgl_mac.mm	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/opengl/qgl_mac.mm	Mon Oct 04 01:19:32 2010 +0300
@@ -697,9 +697,17 @@
         QWidget *w = (QWidget *)d->paintDevice;
         NSView *view = qt_mac_nativeview_for(w);
 
-        // ideally we would use QWidget::isVisible(), but we get "invalid drawable" errors
-        if (![(NSWindow *)qt_mac_window_for(w) isVisible])
-            return;
+        // Trying to attach the GL context to the NSView will fail with
+        // "invalid drawable" if done too soon, but we have to make sure
+        // the connection is made before the first paint event. Using
+        // the NSView do to this check fails as the NSView is visible
+        // before it's safe to connect, and using the NSWindow fails as
+        // the NSWindow will become visible after the first paint event.
+        // This leaves us with the QWidget, who's visible state seems
+        // to match the point in time when it's safe to connect.
+        if (!w || !w->isVisible())
+            return; // Not safe to attach GL context to view yet
+
         if ([static_cast<NSOpenGLContext *>(d->cx) view] != view && ![view isHidden])
             [static_cast<NSOpenGLContext *>(d->cx) setView:view];
     } else if (d->paintDevice->devType() == QInternal::Pixmap) {
@@ -804,17 +812,22 @@
 static CFBundleRef qt_getOpenGLBundle()
 {
     CFBundleRef bundle = 0;
+    CFStringRef urlString = QCFString::toCFStringRef(QLatin1String("/System/Library/Frameworks/OpenGL.framework"));
     QCFType<CFURLRef> url = CFURLCreateWithFileSystemPath(kCFAllocatorDefault,
-                 QCFString::toCFStringRef(QLatin1String("/System/Library/Frameworks/OpenGL.framework")), kCFURLPOSIXPathStyle, false);
+                 urlString, kCFURLPOSIXPathStyle, false);
     if (url)
         bundle = CFBundleCreate(kCFAllocatorDefault, url);
+    CFRelease(urlString);
     return bundle;
 }
 
 void *QGLContext::getProcAddress(const QString &proc) const
 {
-    return CFBundleGetFunctionPointerForName(QCFType<CFBundleRef>(qt_getOpenGLBundle()),
-                                             QCFString(proc));
+    CFStringRef procName = QCFString(proc).toCFStringRef(proc);
+    void *result = CFBundleGetFunctionPointerForName(QCFType<CFBundleRef>(qt_getOpenGLBundle()),
+                                             procName);
+    CFRelease(procName);
+    return result;
 }
 #ifndef QT_MAC_USE_COCOA
 /*****************************************************************************
--- a/src/opengl/qgl_p.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/opengl/qgl_p.h	Mon Oct 04 01:19:32 2010 +0300
@@ -167,6 +167,9 @@
 #if defined(Q_WS_X11) && !defined(QT_NO_EGL)
                        , eglSurfaceWindowId(0)
 #endif
+#if defined(Q_OS_SYMBIAN)
+                       , eglSurfaceWindowId(0)
+#endif
     {
         isGLWidget = 1;
     }
@@ -208,6 +211,10 @@
 #elif defined(Q_WS_QWS)
     QWSGLWindowSurface *wsurf;
 #endif
+#ifdef Q_OS_SYMBIAN
+    void recreateEglSurface();
+    WId eglSurfaceWindowId;
+#endif
 };
 
 class QGLContextResource;
@@ -277,7 +284,8 @@
         DDSTextureCompression   = 0x00008000,
         ETC1TextureCompression  = 0x00010000,
         PVRTCTextureCompression = 0x00020000,
-        FragmentShader          = 0x00040000
+        FragmentShader          = 0x00040000,
+        ES2Compatibility        = 0x00080000
     };
     Q_DECLARE_FLAGS(Extensions, Extension)
 
@@ -393,6 +401,9 @@
     uint workaround_brokenFBOReadBack : 1;
     uint workaroundsCached : 1;
 
+    uint workaround_brokenTextureFromPixmap : 1;
+    uint workaround_brokenTextureFromPixmap_init : 1;
+
     QPaintDevice *paintDevice;
     QColor transpColor;
     QGLContext *q_ptr;
@@ -414,7 +425,7 @@
     static inline QGLExtensionFuncs& extensionFuncs(const QGLContext *ctx) { return ctx->d_ptr->group->extensionFuncs(); }
 #endif
 
-#if defined(Q_WS_X11) || defined(Q_WS_MAC) || defined(Q_WS_QWS)
+#if defined(Q_WS_X11) || defined(Q_WS_MAC) || defined(Q_WS_QWS) || defined(Q_OS_SYMBIAN)
     static QGLExtensionFuncs qt_extensionFuncs;
     static Q_OPENGL_EXPORT QGLExtensionFuncs& extensionFuncs(const QGLContext *);
 #endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/opengl/qgl_symbian.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,362 @@
+/****************************************************************************
+**
+** 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 "qgl.h"
+#include <coemain.h>
+#include <coecntrl.h>
+#include <w32std.h>
+#include <private/qpixmap_s60_p.h>
+#include <private/qimagepixmapcleanuphooks_p.h>
+#include <private/qgl_p.h>
+#include <private/qpaintengine_opengl_p.h>
+#include <private/qwidget_p.h> // to access QWExtra
+#include "qgl_egl_p.h"
+#include "qcolormap.h"
+#include <QDebug>
+
+QT_BEGIN_NAMESPACE
+
+// Turn off "direct to window" rendering if EGL cannot support it.
+#if !defined(EGL_RENDER_BUFFER) || !defined(EGL_SINGLE_BUFFER)
+#if defined(QGL_DIRECT_TO_WINDOW)
+#undef QGL_DIRECT_TO_WINDOW
+#endif
+#endif
+
+// Determine if preserved window contents should be used.
+#if !defined(EGL_SWAP_BEHAVIOR) || !defined(EGL_BUFFER_PRESERVED)
+#if !defined(QGL_NO_PRESERVED_SWAP)
+#define QGL_NO_PRESERVED_SWAP 1
+#endif
+#endif
+
+/*
+    QGLTemporaryContext implementation
+*/
+
+
+class QGLTemporaryContextPrivate
+{
+public:
+    bool initialized;
+    RWindow *window;
+    EGLContext context;
+    EGLSurface surface;
+    EGLDisplay display;
+};
+
+QGLTemporaryContext::QGLTemporaryContext(bool, QWidget *)
+    : d(new QGLTemporaryContextPrivate)
+{
+    d->initialized = false;
+    d->window = 0;
+    d->context = 0;
+    d->surface = 0;
+
+    d->display = d->display = QEgl::display();
+
+    EGLConfig config;
+    int numConfigs = 0;
+    EGLint attribs[] = {
+        EGL_SURFACE_TYPE, EGL_WINDOW_BIT,
+#ifdef QT_OPENGL_ES_2
+        EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT,
+#endif
+        EGL_NONE
+    };
+
+    eglChooseConfig(d->display, attribs, &config, 1, &numConfigs);
+    if (!numConfigs) {
+        qWarning("QGLTemporaryContext: No EGL configurations available.");
+        return;
+    }
+
+    d->window = new RWindow(CCoeEnv::Static()->WsSession());
+    d->window->Construct(CCoeEnv::Static()->RootWin(),(uint)this);
+
+    d->surface = eglCreateWindowSurface(d->display, config, (EGLNativeWindowType) d->window, NULL);
+
+    if (d->surface == EGL_NO_SURFACE) {
+        qWarning("QGLTemporaryContext: Error creating EGL surface.");
+        delete d->window;
+        d->window = 0;
+        return;
+    }
+
+    EGLint contextAttribs[] = {
+#ifdef QT_OPENGL_ES_2
+        EGL_CONTEXT_CLIENT_VERSION, 2,
+#endif
+        EGL_NONE
+    };
+    d->context = eglCreateContext(d->display, config, 0, contextAttribs);
+    if (d->context != EGL_NO_CONTEXT
+        && eglMakeCurrent(d->display, d->surface, d->surface, d->context))
+    {
+        d->initialized = true;
+    } else {
+        qWarning("QGLTemporaryContext: Error creating EGL context.");
+        d->window = 0;
+        return;
+    }
+}
+
+QGLTemporaryContext::~QGLTemporaryContext()
+{
+    if (d->initialized) {
+        eglMakeCurrent(d->display, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT);
+        eglDestroyContext(d->display, d->context);
+        eglDestroySurface(d->display, d->surface);
+        delete d->window;
+    }
+}
+
+bool QGLFormat::hasOpenGLOverlays()
+{
+    return false;
+}
+
+// Chooses the EGL config and creates the EGL context
+bool QGLContext::chooseContext(const QGLContext* shareContext) // almost same as in qgl_x11egl.cpp
+{
+    Q_D(QGLContext);
+
+    if (!device())
+        return false;
+
+    int devType = device()->devType();
+
+    if ((devType != QInternal::Widget) && (devType != QInternal::Pbuffer)) {
+        qWarning("WARNING: Creating a QGLContext not supported on device type %d", devType);
+        return false;
+    }
+
+    // Get the display and initialize it.
+    if (d->eglContext == 0) {
+        d->eglContext = new QEglContext();
+        d->ownsEglContext = true;
+        d->eglContext->setApi(QEgl::OpenGL);
+
+	    // If the device is a widget with WA_TranslucentBackground set, make sure the glFormat
+        // has the alpha channel option set:
+        if (devType == QInternal::Widget) {
+            QWidget* widget = static_cast<QWidget*>(device());
+            if (widget->testAttribute(Qt::WA_TranslucentBackground))
+                d->glFormat.setAlpha(true);
+        }
+
+        // Construct the configuration we need for this surface.
+        QEglProperties configProps;
+        configProps.setDeviceType(devType);
+        configProps.setPaintDeviceFormat(device());
+        configProps.setRenderableType(QEgl::OpenGL);
+        configProps.setValue(EGL_SURFACE_TYPE, EGL_WINDOW_BIT|EGL_SWAP_BEHAVIOR_PRESERVED_BIT);
+
+        qt_eglproperties_set_glformat(configProps, d->glFormat);
+
+        if (!d->eglContext->chooseConfig(configProps, QEgl::BestPixelFormat)) {
+            delete d->eglContext;
+            d->eglContext = 0;
+            return false;
+        }
+
+        // Create a new context for the configuration.
+        QEglContext* eglSharedContext = shareContext ? shareContext->d_func()->eglContext : 0;
+        if (!d->eglContext->createContext(eglSharedContext)) {
+            delete d->eglContext;
+            d->eglContext = 0;
+            return false;
+        }
+        d->sharing = d->eglContext->isSharing();
+        if (d->sharing && shareContext)
+            const_cast<QGLContext *>(shareContext)->d_func()->sharing = true;
+	}
+
+    // Inform the higher layers about the actual format properties
+    qt_glformat_from_eglconfig(d->glFormat, d->eglContext->config());
+
+    // Do don't create the EGLSurface for everything.
+    //    QWidget - yes, create the EGLSurface and store it in QGLContextPrivate::eglSurface
+    //    QGLWidget - yes, create the EGLSurface and store it in QGLContextPrivate::eglSurface
+    //    QGLPixelBuffer - no, it creates the surface itself and stores it in QGLPixelBufferPrivate::pbuf
+
+    if (devType == QInternal::Widget) {
+        if (d->eglSurface != EGL_NO_SURFACE)
+            eglDestroySurface(d->eglContext->display(), d->eglSurface);
+
+        d->eglSurface = QEgl::createSurface(device(), d->eglContext->config());
+
+#if !defined(QGL_NO_PRESERVED_SWAP)
+        eglGetError();  // Clear error state first.
+        eglSurfaceAttrib(QEgl::display(), d->eglSurface,
+                EGL_SWAP_BEHAVIOR, EGL_BUFFER_PRESERVED);
+        if (eglGetError() != EGL_SUCCESS) {
+            qWarning("QGLContext: could not enable preserved swap");
+        }
+#endif
+
+        setWindowCreated(true);
+    }
+
+    return true;
+}
+
+void QGLWidget::resizeEvent(QResizeEvent *)
+{
+    Q_D(QGLWidget);
+    if (!isValid())
+        return;
+
+    if (QGLContext::currentContext())
+        doneCurrent();
+
+    // Symbian needs to recreate the surface on resize.
+    d->recreateEglSurface();
+
+    makeCurrent();
+    if (!d->glcx->initialized())
+        glInit();
+    resizeGL(width(), height());
+    //handle overlay
+}
+
+const QGLContext* QGLWidget::overlayContext() const
+{
+    return 0;
+}
+
+void QGLWidget::makeOverlayCurrent()
+{
+    //handle overlay
+}
+
+void QGLWidget::updateOverlayGL()
+{
+    //handle overlay
+}
+
+void QGLWidget::setContext(QGLContext *context, const QGLContext* shareContext, bool deleteOldContext)
+{
+    Q_D(QGLWidget);
+    if (context == 0) {
+        qWarning("QGLWidget::setContext: Cannot set null context");
+        return;
+    }
+    if (!context->deviceIsPixmap() && context->device() != this) {
+        qWarning("QGLWidget::setContext: Context must refer to this widget");
+        return;
+    }
+
+    if (d->glcx)
+        d->glcx->doneCurrent();
+    QGLContext* oldcx = d->glcx;
+    d->glcx = context;
+
+    bool createFailed = false;
+    if (!d->glcx->isValid()) {
+        // Create the QGLContext here, which in turn chooses the EGL config
+        // and creates the EGL context:
+        if (!d->glcx->create(shareContext ? shareContext : oldcx))
+            createFailed = true;
+    }
+    if (createFailed) {
+        if (deleteOldContext)
+            delete oldcx;
+        return;
+    }
+
+    d->eglSurfaceWindowId = winId(); // Remember the window id we created the surface for
+}
+
+void QGLWidgetPrivate::init(QGLContext *context, const QGLWidget* shareWidget)
+{
+    Q_Q(QGLWidget);
+
+    initContext(context, shareWidget);
+
+    if(q->isValid() && glcx->format().hasOverlay()) {
+        //no overlay
+        qWarning("QtOpenGL ES doesn't currently support overlays");
+    }
+}
+
+void QGLWidgetPrivate::cleanupColormaps()
+{
+}
+
+const QGLColormap & QGLWidget::colormap() const
+{
+    return d_func()->cmap;
+}
+
+void QGLWidget::setColormap(const QGLColormap &)
+{
+}
+
+void QGLWidgetPrivate::recreateEglSurface()
+{
+    Q_Q(QGLWidget);
+
+    WId currentId = q->winId();
+
+    if (glcx->d_func()->eglSurface != EGL_NO_SURFACE) {
+        eglDestroySurface(glcx->d_func()->eglContext->display(),
+                                                glcx->d_func()->eglSurface);
+    }
+
+    glcx->d_func()->eglSurface = QEgl::createSurface(glcx->device(),
+                                       glcx->d_func()->eglContext->config());
+
+#if !defined(QGL_NO_PRESERVED_SWAP)
+        eglGetError();  // Clear error state first.
+        eglSurfaceAttrib(QEgl::display(), glcx->d_func()->eglSurface,
+                                    EGL_SWAP_BEHAVIOR, EGL_BUFFER_PRESERVED);
+        if (eglGetError() != EGL_SUCCESS) {
+            qWarning("QGLContext: could not enable preserved swap");
+        }
+#endif
+
+    eglSurfaceWindowId = currentId;
+}
+
+QT_END_NAMESPACE
+
--- a/src/opengl/qgl_win.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/opengl/qgl_win.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -1042,7 +1042,7 @@
         iAttributes[i++] = WGL_DRAW_TO_WINDOW_ARB;
         iAttributes[i++] = TRUE;
         iAttributes[i++] = WGL_COLOR_BITS_ARB;
-        iAttributes[i++] = 32;
+        iAttributes[i++] = 24;
         iAttributes[i++] = WGL_DOUBLE_BUFFER_ARB;
         iAttributes[i++] = d->glFormat.doubleBuffer();
         if (d->glFormat.stereo()) {
--- a/src/opengl/qglbuffer.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/opengl/qglbuffer.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -416,7 +416,7 @@
 
     \sa release(), create()
 */
-bool QGLBuffer::bind() const
+bool QGLBuffer::bind()
 {
 #ifndef QT_NO_DEBUG
     if (!isCreated())
@@ -448,7 +448,7 @@
 
     \sa bind()
 */
-void QGLBuffer::release() const
+void QGLBuffer::release()
 {
 #ifndef QT_NO_DEBUG
     if (!isCreated())
--- a/src/opengl/qglbuffer.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/opengl/qglbuffer.h	Mon Oct 04 01:19:32 2010 +0300
@@ -101,8 +101,8 @@
 
     void destroy();
 
-    bool bind() const;
-    void release() const;
+    bool bind();
+    void release();
 
     static void release(QGLBuffer::Type type);
 
--- a/src/opengl/qglextensions.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/opengl/qglextensions.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -255,6 +255,10 @@
     glFramebufferTextureLayerEXT = (_glFramebufferTextureLayerEXT) ctx->getProcAddress(QLatin1String("glFramebufferTextureLayerEXT"));
     glFramebufferTextureFaceEXT = (_glFramebufferTextureFaceEXT) ctx->getProcAddress(QLatin1String("glFramebufferTextureFaceEXT"));
 
+    // Must at least have the FragmentShader extension to continue.
+    if (!(QGLExtensions::glExtensions() & QGLExtensions::FragmentShader))
+        return false;
+
     glCreateShader = (_glCreateShader) ctx->getProcAddress(QLatin1String("glCreateShader"));
     if (glCreateShader) {
         glShaderSource = (_glShaderSource) ctx->getProcAddress(QLatin1String("glShaderSource"));
--- a/src/opengl/qglframebufferobject.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/opengl/qglframebufferobject.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -445,11 +445,11 @@
         GLint maxSamples;
         glGetIntegerv(GL_MAX_SAMPLES_EXT, &maxSamples);
 
-        samples = qBound(1, int(samples), int(maxSamples));
+        samples = qBound(0, int(samples), int(maxSamples));
 
         glGenRenderbuffers(1, &color_buffer);
         glBindRenderbuffer(GL_RENDERBUFFER_EXT, color_buffer);
-        if (glRenderbufferStorageMultisampleEXT) {
+        if (glRenderbufferStorageMultisampleEXT && samples > 0) {
             glRenderbufferStorageMultisampleEXT(GL_RENDERBUFFER_EXT, samples,
                 internal_format, size.width(), size.height());
         } else {
--- a/src/opengl/qglshaderprogram.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/opengl/qglshaderprogram.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -97,6 +97,10 @@
     to just features that are present in GLSL/ES, and avoid
     standard variable names that only work on the desktop.
 
+    If the \c{GL_ARB_ES2_compatibility} extension is present,
+    then the above prefix is not added because the desktop OpenGL
+    implementation supports precision qualifiers.
+
     \section1 Simple shader example
 
     \snippet doc/src/snippets/code/src_opengl_qglshaderprogram.cpp 1
@@ -394,8 +398,10 @@
             srclen.append(GLint(headerLen));
         }
 #ifdef QGL_DEFINE_QUALIFIERS
-        src.append(qualifierDefines);
-        srclen.append(GLint(sizeof(qualifierDefines) - 1));
+        if (!(QGLExtensions::glExtensions() & QGLExtensions::ES2Compatibility)) {
+            src.append(qualifierDefines);
+            srclen.append(GLint(sizeof(qualifierDefines) - 1));
+        }
 #endif
 #ifdef QGL_REDEFINE_HIGHP
         if (d->shaderType == Fragment) {
@@ -2121,7 +2127,7 @@
     Q_D(QGLShaderProgram);
     Q_UNUSED(d);
     if (location != -1) {
-        GLfloat values[4] = {GLfloat(size.width()), GLfloat(size.width())};
+        GLfloat values[4] = {GLfloat(size.width()), GLfloat(size.height())};
         glUniform2fv(location, 1, values);
     }
 }
--- a/src/opengl/qpixmapdata_gl.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/opengl/qpixmapdata_gl.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -367,7 +367,7 @@
 }
 
 void QGLPixmapData::fromImage(const QImage &image,
-                              Qt::ImageConversionFlags /*flags*/)
+                              Qt::ImageConversionFlags flags)
 {
     if (image.size() == QSize(w, h))
         setSerialNumber(++qt_gl_pixmap_serial);
@@ -381,7 +381,9 @@
         if (qApp->desktop()->depth() == 16)
             format = QImage::Format_RGB16;
 
-        if (image.hasAlphaChannel() && const_cast<QImage &>(image).data_ptr()->checkForAlphaPixels())
+        if (image.hasAlphaChannel()
+            && ((flags & Qt::NoOpaqueDetection)
+                || const_cast<QImage &>(image).data_ptr()->checkForAlphaPixels()))
             format = QImage::Format_ARGB32_Premultiplied;;
 
         m_source = image.convertToFormat(format);
--- a/src/opengl/qwindowsurface_gl.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/opengl/qwindowsurface_gl.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -199,6 +199,7 @@
         return widget;
     }
 
+    // destroys the share widget and prevents recreation
     void cleanup() {
         QGLWidget *w = widget;
         cleanedUp = true;
@@ -206,6 +207,20 @@
         delete w;
     }
 
+    // destroys the share widget, but allows it to be recreated later on
+    void destroy() {
+        if (cleanedUp)
+            return;
+
+        QGLWidget *w = widget;
+
+        // prevent potential recursions
+        cleanedUp = true;
+        widget = 0;
+        delete w;
+        cleanedUp = false;
+    }
+
     static bool cleanedUp;
 
 private:
@@ -233,6 +248,10 @@
     return _qt_gl_share_widget()->shareWidget();
 }
 
+void qt_destroy_gl_share_widget()
+{
+    _qt_gl_share_widget()->destroy();
+}
 
 struct QGLWindowSurfacePrivate
 {
@@ -407,6 +426,20 @@
 
 void QGLWindowSurface::beginPaint(const QRegion &)
 {
+    if (! context())
+        return;
+
+    int clearFlags = 0;
+
+    if (context()->d_func()->workaround_needsFullClearOnEveryFrame)
+        clearFlags = GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT;
+    else if (context()->format().alpha())
+        clearFlags = GL_COLOR_BUFFER_BIT;
+
+    if (clearFlags) {
+        glClearColor(0.0, 0.0, 0.0, 0.0);
+        glClear(clearFlags);
+    }
 }
 
 void QGLWindowSurface::endPaint(const QRegion &rgn)
@@ -494,10 +527,9 @@
                 }
             }
 #endif
-            if (d_ptr->paintedRegion.boundingRect() != geometry()) {
-                // Emits warning if not supported. Should never happen unless
-                // setPartialUpdateSupport(true) has been called.
-                context()->d_func()->swapRegion(&d_ptr->paintedRegion);
+            if (d_ptr->paintedRegion.boundingRect() != geometry() && 
+                hasPartialUpdateSupport()) {
+                context()->d_func()->swapRegion(&d_ptr->paintedRegion);             
             } else
                 context()->swapBuffers();
 
--- a/src/opengl/qwindowsurface_gl_p.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/opengl/qwindowsurface_gl_p.h	Mon Oct 04 01:19:32 2010 +0300
@@ -67,6 +67,7 @@
 struct QGLWindowSurfacePrivate;
 
 Q_OPENGL_EXPORT QGLWidget* qt_gl_share_widget();
+Q_OPENGL_EXPORT void qt_destroy_gl_share_widget();
 
 class QGLWindowSurfaceGLPaintDevice : public QGLPaintDevice
 {
--- a/src/openvg/qpaintengine_vg.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/openvg/qpaintengine_vg.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -77,6 +77,9 @@
 
 #if !defined(QVG_NO_DRAW_GLYPHS)
 
+// use the same rounding as in qrasterizer.cpp (6 bit fixed point)
+static const qreal aliasedCoordinateDelta = 0.5 - 0.015625;
+
 Q_DECL_IMPORT extern int qt_defaultDpiX();
 Q_DECL_IMPORT extern int qt_defaultDpiY();
 
@@ -102,6 +105,7 @@
 
 class QVGPaintEnginePrivate : public QPaintEngineExPrivate
 {
+    Q_DECLARE_PUBLIC(QVGPaintEngine)
 public:
     // Extra blending modes from VG_KHR_advanced_blending extension.
     // Use the QT_VG prefix to avoid conflicts with any definitions
@@ -132,7 +136,7 @@
         QT_VG_BLEND_XOR_KHR           = 0x2026
     };
 
-    QVGPaintEnginePrivate();
+    QVGPaintEnginePrivate(QVGPaintEngine *q_ptr);
     ~QVGPaintEnginePrivate();
 
     void init();
@@ -153,6 +157,7 @@
     void setBrushTransform(const QBrush& brush, VGMatrixMode mode);
     void setupColorRamp(const QGradient *grad, VGPaint paint);
     void setImageOptions();
+    void systemStateChanged();
 #if !defined(QVG_SCISSOR_CLIP)
     void ensureMask(QVGPaintEngine *engine, int width, int height);
     void modifyMask
@@ -281,6 +286,9 @@
 
     // Clear all lazily-set modes.
     void clearModes();
+
+private:
+    QVGPaintEngine *q;
 };
 
 inline void QVGPaintEnginePrivate::setImageMode(VGImageMode mode)
@@ -332,7 +340,7 @@
     imageQuality = (VGImageQuality)0;
 }
 
-QVGPaintEnginePrivate::QVGPaintEnginePrivate()
+QVGPaintEnginePrivate::QVGPaintEnginePrivate(QVGPaintEngine *q_ptr) : q(q_ptr)
 {
     init();
 }
@@ -1431,7 +1439,7 @@
 }
 
 QVGPaintEngine::QVGPaintEngine()
-    : QPaintEngineEx(*new QVGPaintEnginePrivate)
+    : QPaintEngineEx(*new QVGPaintEnginePrivate(this))
 {
 }
 
@@ -2974,6 +2982,11 @@
     }
 }
 
+void QVGPaintEnginePrivate::systemStateChanged()
+{
+    q->updateScissor();
+}
+
 static void drawVGImage(QVGPaintEnginePrivate *d,
                         const QRectF& r, VGImage vgImg,
                         const QSize& imageSize, const QRectF& sr)
@@ -3432,9 +3445,10 @@
     // Set the transformation to use for drawing the current glyphs.
     QTransform glyphTransform(d->pathTransform);
     if (d->transform.type() <= QTransform::TxTranslate) {
-        // Prevent blurriness of unscaled, unrotated text by using integer coordinates.
-        // Using ceil(x-0.5) instead of qRound() or int-cast, behave like other paint engines.
-        glyphTransform.translate(ceil(p.x() - 0.5), ceil(p.y() - 0.5));
+        // Prevent blurriness of unscaled, unrotated text by forcing integer coordinates.
+        glyphTransform.translate(
+                floor(p.x() + glyphTransform.dx() + aliasedCoordinateDelta) - glyphTransform.dx(),
+                floor(p.y() - glyphTransform.dy() + aliasedCoordinateDelta) + glyphTransform.dy());
     } else {
         glyphTransform.translate(p.x(), p.y());
     }
@@ -3596,6 +3610,7 @@
         d->maskIsSet = false;
         d->scissorMask = false;
         d->maskRect = QRect();
+        d->scissorDirty = true;
         clipEnabledChanged();
     }
 
--- a/src/openvg/qpixmapdata_vg.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/openvg/qpixmapdata_vg.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -47,6 +47,9 @@
 #endif
 #include "qvg_p.h"
 #include "qvgimagepool_p.h"
+#include <QBuffer>
+#include <QImageReader>
+#include <QtGui/private/qimage_p.h>
 
 QT_BEGIN_NAMESPACE
 
@@ -152,11 +155,59 @@
 void QVGPixmapData::fromImage
         (const QImage &image, Qt::ImageConversionFlags flags)
 {
+    QImage img = image;
+    createPixmapForImage(img, flags, false);
+}
+
+void QVGPixmapData::fromImageReader(QImageReader *imageReader,
+                                 Qt::ImageConversionFlags flags)
+{
+    QImage image = imageReader->read();
+    if (image.isNull())
+        return;
+
+    createPixmapForImage(image, flags, true);
+}
+
+bool QVGPixmapData::fromFile(const QString &filename, const char *format,
+                          Qt::ImageConversionFlags flags)
+{
+    QImage image = QImageReader(filename, format).read();
+    if (image.isNull())
+        return false;
+
+    createPixmapForImage(image, flags, true);
+
+    return !isNull();
+}
+
+bool QVGPixmapData::fromData(const uchar *buffer, uint len, const char *format,
+                      Qt::ImageConversionFlags flags)
+{
+    QByteArray a = QByteArray::fromRawData(reinterpret_cast<const char *>(buffer), len);
+    QBuffer b(&a);
+    b.open(QIODevice::ReadOnly);
+    QImage image = QImageReader(&b, format).read();
+    if (image.isNull())
+        return false;
+
+    createPixmapForImage(image, flags, true);
+
+    return !isNull();
+}
+
+void QVGPixmapData::createPixmapForImage(QImage &image, Qt::ImageConversionFlags flags, bool inPlace)
+{
     if (image.size() == QSize(w, h))
         setSerialNumber(++qt_vg_pixmap_serial);
     else
         resize(image.width(), image.height());
-    source = image.convertToFormat(sourceFormat(), flags);
+
+    if (inPlace && image.data_ptr()->convertInPlace(sourceFormat(), flags))
+        source = image;
+    else
+        source = image.convertToFormat(sourceFormat());
+
     recreate = true;
 }
 
--- a/src/openvg/qpixmapdata_vg_p.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/openvg/qpixmapdata_vg_p.h	Mon Oct 04 01:19:32 2010 +0300
@@ -64,6 +64,7 @@
 
 class QEglContext;
 class QVGImagePool;
+class QImageReader;
 
 #if !defined(QT_NO_EGL)
 class QVGPixmapData;
@@ -87,6 +88,12 @@
 
     void resize(int width, int height);
     void fromImage(const QImage &image, Qt::ImageConversionFlags flags);
+    void fromImageReader(QImageReader *imageReader,
+                          Qt::ImageConversionFlags flags);
+    bool fromFile(const QString &filename, const char *format,
+                          Qt::ImageConversionFlags flags);
+    bool fromData(const uchar *buffer, uint len, const char *format,
+                          Qt::ImageConversionFlags flags);
 
     void fill(const QColor &color);
     bool hasAlphaChannel() const;
@@ -126,6 +133,7 @@
 
 protected:
     int metric(QPaintDevice::PaintDeviceMetric metric) const;
+    void createPixmapForImage(QImage &image, Qt::ImageConversionFlags flags, bool inPlace);
 
 #if defined(Q_OS_SYMBIAN)
     void cleanup();
--- a/src/plugins/bearer/bearer.pro	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/plugins/bearer/bearer.pro	Mon Oct 04 01:19:32 2010 +0300
@@ -5,7 +5,7 @@
         SUBDIRS += icd
     } else {
         SUBDIRS += generic
-        !mac:SUBDIRS += connman networkmanager 
+        linux*:SUBDIRS += connman networkmanager
     }
 }
 
--- a/src/plugins/bearer/connman/connman.pro	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/plugins/bearer/connman/connman.pro	Mon Oct 04 01:19:32 2010 +0300
@@ -4,12 +4,14 @@
 QT = core network dbus
 
 HEADERS += qconnmanservice_linux_p.h \
+           qofonoservice_linux_p.h \
            qconnmanengine.h \
            ../qnetworksession_impl.h \
            ../qbearerengine_impl.h
 
 SOURCES += main.cpp \
            qconnmanservice_linux.cpp \
+           qofonoservice_linux.cpp \
            qconnmanengine.cpp \
            ../qnetworksession_impl.cpp
 
--- a/src/plugins/bearer/connman/qconnmanengine.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/plugins/bearer/connman/qconnmanengine.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -41,6 +41,7 @@
 
 #include "qconnmanengine.h"
 #include "qconnmanservice_linux_p.h"
+#include "qofonoservice_linux_p.h"
 #include "../qnetworksession_impl.h"
 
 #include <QtNetwork/private/qnetworkconfiguration_p.h>
@@ -109,7 +110,6 @@
 QList<QNetworkConfigurationPrivate *> QConnmanEngine::getConfigurations()
 {
     QMutexLocker locker(&mutex);
-  //  foundConfigurations.clear();
     getNetworkListing();
     QList<QNetworkConfigurationPrivate *> fetchedConfigurations;
     QNetworkConfigurationPrivate* cpPriv = 0;
@@ -125,12 +125,12 @@
         config->type = cpPriv->type;
         config->roamingSupported = cpPriv->roamingSupported;
         config->purpose = cpPriv->purpose;
-        config->bearer = cpPriv->bearer;
+        config->bearerType = cpPriv->bearerType;
 
         fetchedConfigurations.append(config);
+        delete config;
     }
     return fetchedConfigurations;
-//    return foundConfigurations;
 }
 
 void QConnmanEngine::getNetworkListing()
@@ -148,8 +148,6 @@
     }
 }
 
-
-
 void QConnmanEngine::doRequestUpdate()
 {
     connmanManager->requestScan("");
@@ -169,30 +167,6 @@
     return accessPointConfigurations.contains(id);
 }
 
-QString QConnmanEngine::bearerName(const QString &id)
-{
-    QMutexLocker locker(&mutex);
-    QConnmanServiceInterface serv(serviceFromId(id));
-    QString connectionType = serv.getType();
-
-    if (connectionType == "ethernet")
-        return QLatin1String("Ethernet");
-    else if (connectionType == "wifi")
-        return QLatin1String("WLAN");
-    else if (connectionType == "cellular") {
-        QString mode = serv.getMode();
-        if(mode == "gprs" || mode == "edge") {
-            return QLatin1String("2G");
-        } else if(mode == "umts") {
-            return QLatin1String("WCDMA");
-        }
-    }
-    else if (connectionType == "wimax")
-        return QLatin1String("WIMAX");
-
-    return QString();
-}
-
 void QConnmanEngine::connectToId(const QString &id)
 {
     QMutexLocker locker(&mutex);
@@ -208,11 +182,24 @@
 void QConnmanEngine::disconnectFromId(const QString &id)
 {
     QMutexLocker locker(&mutex);
-    QConnmanServiceInterface serv(serviceFromId(id));
+    QString servicePath = serviceFromId(id);
+    QConnmanServiceInterface serv(servicePath);
     if(!serv.isValid()) {
         emit connectionError(id, DisconnectionError);
     } else {
-        serv.disconnect();
+        if(serv.getType() != "cellular") {
+            serv.disconnect();
+        } else {
+            QOfonoManagerInterface ofonoManager(0);
+            QString modemPath = ofonoManager.currentModem().path();
+            QOfonoDataConnectionManagerInterface dc(modemPath,0);
+            foreach(const QDBusObjectPath dcPath,dc.getPrimaryContexts()) {
+                if(dcPath.path().contains(servicePath.section("_",-1))) {
+                    QOfonoPrimaryDataContextInterface primaryContext(dcPath.path(),0);
+                    primaryContext.setActive(false);
+                }
+            }
+        }
     }
 }
 
@@ -336,6 +323,9 @@
     QMutexLocker locker(&mutex);
     QConnmanNetworkInterface network(netPath, this);
     foreach(QString service,connmanManager->getServices()) {
+
+        QString devicePath = netPath.section("/",5,5);
+
         QConnmanServiceInterface serv(service,this);
         if(serv.getName() == network.getName()
             && network.getSignalStrength() == serv.getSignalStrength()) {
@@ -345,11 +335,9 @@
     return QString();
 }
 
-
 void QConnmanEngine::propertyChangedContext(const QString &path,const QString &item, const QDBusVariant &value)
 {
     Q_UNUSED(path);
-//    qDebug() << __FUNCTION__ << path << item << value.variant();
 
     QMutexLocker locker(&mutex);
     if(item == "Services") {
@@ -378,17 +366,6 @@
                     technologies.insert(listPath, tech);
                 }
             }
-
-            foreach(const QString old, oldtech.keys()) {
-                if(!newlist.contains(old)) {
-                    QConnmanTechnologyInterface *tech = oldtech.value(old);
-                    disconnect(tech,SIGNAL(propertyChangedContext(QString,QString,QDBusVariant)),
-                               this,SLOT(technologyPropertyChangedContext(QString,QString,QDBusVariant)));
-
-                    technologies.remove(old);
-                    getNetworkListing();
-                }
-            }
         }
     }
     if(item == "State") {
@@ -418,6 +395,9 @@
 {
     QMutexLocker locker(&mutex);
     if(item == "Networks") {
+
+        QConnmanNetworkInterface network(devpath, this);
+
         QDBusArgument arg = qvariant_cast<QDBusArgument>(value.variant());
         QStringList remainingNetworks  = qdbus_cast<QStringList>(arg);
         QString devicetype;
@@ -476,6 +456,12 @@
       }
       if(value.variant().toString() == "offline") {
           deviceMap.remove(path);
+          QConnmanTechnologyInterface tech(path);
+          disconnect(&tech,SIGNAL(propertyChangedContext(QString,QString,QDBusVariant)),
+                     this,SLOT(technologyPropertyChangedContext(QString,QString,QDBusVariant)));
+
+          technologies.remove(path);
+          getNetworkListing();
       }
   }
 }
@@ -525,10 +511,18 @@
     QMutexLocker locker(&mutex);
     QConnmanServiceInterface serv(service);
     QNetworkConfiguration::StateFlags flag = QNetworkConfiguration::Defined;
-    if(serv.isFavorite()) {
-        flag = ( flag | QNetworkConfiguration::Discovered);
+    if( serv.getType() == "cellular") {
+        if(serv.isSetupRequired()) {
+            flag = ( flag | QNetworkConfiguration::Defined);
+        } else {
+            flag = ( flag | QNetworkConfiguration::Discovered);
+        }
     } else {
-        flag = QNetworkConfiguration::Undefined;
+        if(serv.isFavorite()) {
+            flag = ( flag | QNetworkConfiguration::Discovered);
+        } else {
+            flag = QNetworkConfiguration::Undefined;
+        }
     }
 
     if(serv.getState() == "ready" || serv.getState() == "online") {
@@ -538,25 +532,69 @@
     return flag;
 }
 
-QString QConnmanEngine::typeToBearer(const QString &type)
+QNetworkConfiguration::BearerType QConnmanEngine::typeToBearer(const QString &type)
 {
-    QMutexLocker locker(&mutex);
-    if(type == "wifi")
-        return "WLAN";
-    if(type == "ethernet")
-        return "Ethernet";
-    if(type == "bluetooth")
-        return "Bluetooth";
-    if(type == "cellular") {
-        return "Cellular";
-        // not handled: CDMA2000 HSPA
+    if (type == "wifi")
+        return QNetworkConfiguration::BearerWLAN;
+    if (type == "ethernet")
+        return QNetworkConfiguration::BearerEthernet;
+    if (type == "bluetooth")
+        return QNetworkConfiguration::BearerBluetooth;
+    if (type == "cellular") {
+        return ofonoTechToBearerType(type);
     }
-    if(type == "wimax")
-        return "WiMax";
+    if (type == "wimax")
+        return QNetworkConfiguration::BearerWiMAX;
+
 //    if(type == "gps")
 //    if(type == "vpn")
 
-    return "Unknown";
+    return QNetworkConfiguration::BearerUnknown;
+}
+
+QNetworkConfiguration::BearerType QConnmanEngine::ofonoTechToBearerType(const QString &/*type*/)
+{
+    QOfonoManagerInterface ofonoManager(this);
+    QOfonoNetworkRegistrationInterface ofonoNetwork(ofonoManager.currentModem().path(),this);
+
+    if(ofonoNetwork.isValid()) {
+        foreach(const QDBusObjectPath op,ofonoNetwork.getOperators() ) {
+            QOfonoNetworkOperatorInterface opIface(op.path(),this);
+
+            foreach(const QString opTech, opIface.getTechnologies()) {
+
+                if(opTech == "gsm") {
+                    return QNetworkConfiguration::Bearer2G;
+                }
+                if(opTech == "edge"){
+                    return QNetworkConfiguration::BearerCDMA2000; //wrong, I know
+                }
+                if(opTech == "umts"){
+                    return QNetworkConfiguration::BearerWCDMA;
+                }
+                if(opTech == "hspa"){
+                    return QNetworkConfiguration::BearerHSPA;
+                }
+                if(opTech == "lte"){
+                    return QNetworkConfiguration::BearerWiMAX; //not exact
+                }
+            }
+        }
+    }
+    return QNetworkConfiguration::BearerUnknown;
+}
+
+bool QConnmanEngine::isRoamingAllowed(const QString &context)
+{
+    QOfonoManagerInterface ofonoManager(this);
+    QString modemPath = ofonoManager.currentModem().path();
+    QOfonoDataConnectionManagerInterface dc(modemPath,this);
+    foreach(const QDBusObjectPath dcPath,dc.getPrimaryContexts()) {
+        if(dcPath.path().contains(context.section("_",-1))) {
+            return dc.isRoamingAllowed();
+        }
+    }
+    return false;
 }
 
 void QConnmanEngine::removeConfiguration(const QString &id)
@@ -587,7 +625,6 @@
 
 void QConnmanEngine::addServiceConfiguration(const QString &servicePath)
 {
-
     QMutexLocker locker(&mutex);
     QConnmanServiceInterface *serv;
     serv = new QConnmanServiceInterface(servicePath);
@@ -612,15 +649,30 @@
 
         QString networkName = serv->getName();
 
-        if(serv->getType() == "Cellular") {
-            networkName = serv->getAPN();
+        const QString connectionType = serv->getType();
+        if (connectionType == "ethernet") {
+            cpPriv->bearerType = QNetworkConfiguration::BearerEthernet;
+        } else if (connectionType == "wifi") {
+            cpPriv->bearerType = QNetworkConfiguration::BearerWLAN;
+        } else if (connectionType == "cellular") {
+            cpPriv->bearerType = ofonoTechToBearerType("cellular");
+            if(servicePath.isEmpty()) {
+                networkName = serv->getAPN();
+                if(networkName.isEmpty()) {
+                    networkName = serv->getName();
+                }
+            }
+            cpPriv->roamingSupported = isRoamingAllowed(servicePath);
+        } else if (connectionType == "wimax") {
+            cpPriv->bearerType = QNetworkConfiguration::BearerWiMAX;
+        } else {
+            cpPriv->bearerType = QNetworkConfiguration::BearerUnknown;
         }
 
         cpPriv->name = networkName;
         cpPriv->isValid = true;
         cpPriv->id = id;
         cpPriv->type = QNetworkConfiguration::InternetAccessPoint;
-        cpPriv->bearer = bearerName(id);
 
         if(serv->getSecurity() == "none") {
             cpPriv->purpose = QNetworkConfiguration::PublicPurpose;
@@ -638,7 +690,6 @@
         foundConfigurations.append(cpPriv);
         configInterfaces[cpPriv->id] = device.getInterface();
 
-
         locker.unlock();
         emit configurationAdded(ptr);
         locker.relock();
@@ -649,6 +700,8 @@
 void QConnmanEngine::addNetworkConfiguration(const QString &networkPath)
 {
     QMutexLocker locker(&mutex);
+    if(networkPath.isNull())
+        return;
 
     QConnmanNetworkInterface *network;
     network = new QConnmanNetworkInterface(networkPath, this);
@@ -662,12 +715,12 @@
         id = QString::number(qHash(networkPath));
     } else {
         id = QString::number(qHash(servicePath));
-            serv = new QConnmanServiceInterface(servicePath,this);
-            connect(serv,SIGNAL(propertyChangedContext(QString,QString,QDBusVariant)),
-                    this,SLOT(servicePropertyChangedContext(QString,QString, QDBusVariant)));
+        serv = new QConnmanServiceInterface(servicePath,this);
+        connect(serv,SIGNAL(propertyChangedContext(QString,QString,QDBusVariant)),
+                this,SLOT(servicePropertyChangedContext(QString,QString, QDBusVariant)));
     }
 
-    if (!accessPointConfigurations.contains(id)) {
+    if (!id.isEmpty() && !accessPointConfigurations.contains(id)) {
 
         knownNetworks[device.getType()].append(networkPath);
 
@@ -683,31 +736,30 @@
         if(networkName.isEmpty())
             networkName = "Hidden Network";
 
-        QString bearerName;
+        QNetworkConfiguration::BearerType bearerType;
 
         if(servicePath.isEmpty()) {
             QString devicePath = networkPath.section("/",0,5);
+
             QConnmanDeviceInterface device(devicePath,this);
-            bearerName = typeToBearer(device.getType());
+            bearerType = typeToBearer(device.getType());
         } else {
-            bearerName = typeToBearer(serv->getType());
-        }
-
-        if(bearerName == "Cellular") {
-            QString mode = serv->getMode();
-            if(mode == "gprs" || mode == "edge") {
-                bearerName = "2G";
-            } else if(mode == "umts") {
-                bearerName = "WCDMA";
+            if(serv->getType() == "cellular") {
+                bearerType = ofonoTechToBearerType("cellular");
+                if(servicePath.isEmpty()) {
+                    networkName = serv->getName();
+                }
+                cpPriv->roamingSupported = isRoamingAllowed(servicePath);
+            } else {
+                bearerType = typeToBearer(serv->getType());
             }
-            networkName = serv->getAPN();
         }
 
         cpPriv->name = networkName;
         cpPriv->isValid = true;
         cpPriv->id = id;
         cpPriv->type = QNetworkConfiguration::InternetAccessPoint;
-        cpPriv->bearer = bearerName;
+        cpPriv->bearerType = bearerType;
 
         if(network->getWifiSecurity() == "none") {
             cpPriv->purpose = QNetworkConfiguration::PublicPurpose;
@@ -729,7 +781,9 @@
         emit configurationAdded(ptr);
         locker.relock();
         emit updateCompleted();
-    }
+    } /*else {
+        qDebug() << "Not added~~~~~~~~~~~";
+    }*/
 }
 
 bool QConnmanEngine::requiresPolling() const
@@ -765,7 +819,19 @@
     if(!serv.isValid()) {
         emit connectionError(identifier, QBearerEngineImpl::InterfaceLookupError);
     } else {
-        serv.connect();
+        if(serv.getType() != "cellular") {
+            serv.connect();
+        } else {
+            QOfonoManagerInterface ofonoManager(0);
+            QString modemPath = ofonoManager.currentModem().path();
+            QOfonoDataConnectionManagerInterface dc(modemPath,0);
+            foreach(const QDBusObjectPath dcPath,dc.getPrimaryContexts()) {
+                if(dcPath.path().contains(servicePath.section("_",-1))) {
+                    QOfonoPrimaryDataContextInterface primaryContext(dcPath.path(),0);
+                    primaryContext.setActive(true);
+                }
+            }
+        }
     }
 }
 
--- a/src/plugins/bearer/connman/qconnmanengine.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/plugins/bearer/connman/qconnmanengine.h	Mon Oct 04 01:19:32 2010 +0300
@@ -80,8 +80,6 @@
     virtual QString getInterfaceFromId(const QString &id);
     bool hasIdentifier(const QString &id);
 
-    virtual QString bearerName(const QString &id);
-
     virtual void connectToId(const QString &id);
     virtual void disconnectFromId(const QString &id);
 
@@ -125,7 +123,7 @@
     QString networkFromId(const QString &id);
 
     QNetworkConfiguration::StateFlags getStateForService(const QString &service);
-    QString typeToBearer(const QString &type);
+    QNetworkConfiguration::BearerType typeToBearer(const QString &type);
 
     void removeConfiguration(const QString &servicePath);
     void addServiceConfiguration(const QString &servicePath);
@@ -139,7 +137,8 @@
     QMap<QString,QStringList> deviceMap; //tech path,  device path
     QMap<QString, QString> serviceNetworks; //service, network
 
-
+    QNetworkConfiguration::BearerType ofonoTechToBearerType(const QString &type);
+    bool isRoamingAllowed(const QString &context);
 protected:
     bool requiresPolling() const;
     QConnmanConnectThread *connThread;
--- a/src/plugins/bearer/connman/qconnmanservice_linux.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/plugins/bearer/connman/qconnmanservice_linux.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -53,6 +53,8 @@
 
 #include "qconnmanservice_linux_p.h"
 
+#ifndef QT_NO_BEARERMANAGEMENT
+#ifndef QT_NO_DBUS
 
 QT_BEGIN_NAMESPACE
 static QDBusConnection dbusConnection = QDBusConnection::systemBus();
@@ -129,8 +131,10 @@
 
 QVariantMap QConnmanManagerInterface::getProperties()
 {
-    QDBusReply<QVariantMap > reply =  this->call(QLatin1String("GetProperties"));
-    return reply.value();
+    if(this->isValid()) {
+        QDBusReply<QVariantMap > reply =  this->call(QLatin1String("GetProperties"));
+        return reply.value();
+    } else return QVariantMap();
 }
 
 QString QConnmanManagerInterface::getState()
@@ -477,9 +481,7 @@
     QVariantMap map = getProperties();
     if (map.contains(property)) {
         var = map.value(property);
-    } else {
-        qDebug() <<__FUNCTION__<< "Could not find" << property;
-    }
+    } 
     return var;
 }
 
@@ -518,8 +520,6 @@
 
 void QConnmanServiceInterface::connectNotify(const char *signal)
 {
-//    qWarning() << __FUNCTION__ << signal << this->path();
-
     if (QLatin1String(signal) == SIGNAL(propertyChanged(QString,QDBusVariant))) {
         dbusConnection.connect(QLatin1String(CONNMAN_SERVICE),
                                this->path(),
@@ -551,8 +551,12 @@
 
 QVariantMap QConnmanServiceInterface::getProperties()
 {
-    QDBusReply<QVariantMap> reply =  this->call(QLatin1String("GetProperties"));
-    return reply.value();
+    if(this->isValid()) {
+        QDBusReply<QVariantMap> reply =  this->call(QLatin1String("GetProperties"));
+        return reply.value();
+    }
+    else
+        return QVariantMap();
 }
 
 QVariant QConnmanServiceInterface::getProperty(const QString &property)
@@ -561,9 +565,7 @@
     QVariantMap map = getProperties();
     if (map.contains(property)) {
         var = map.value(property);
-    } else {
-//        qDebug() <<__FUNCTION__<< "Could not find" << property;
-    }
+    } 
     return var;
 }
 
@@ -725,6 +727,99 @@
     return qdbus_cast<QVariantMap >(var);
 }
 
+QString QConnmanServiceInterface::getMethod()
+{
+    QVariant var;
+    QVariantMap map = getEthernet();
+    QMapIterator<QString,QVariant> it(map);
+    while(it.hasNext()) {
+        it.next();
+        if(it.key() == "Method") {
+            return it.value().toString();
+        }
+    }
+ return QString();
+}
+
+QString QConnmanServiceInterface::getInterface()
+{
+    QVariant var;
+    QVariantMap map = getEthernet();
+
+    QMapIterator<QString,QVariant> it(map);
+    while(it.hasNext()) {
+        it.next();
+        if(it.key() == "Interface") {
+            return it.value().toString();
+        }
+    }
+
+    return QString();
+}
+
+QString QConnmanServiceInterface::getMacAddress()
+{
+    QVariant var;
+    QVariantMap map = getEthernet();
+
+    QMapIterator<QString,QVariant> it(map);
+    while(it.hasNext()) {
+        it.next();
+        if(it.key() == "Address") {
+            return it.value().toString();
+        }
+    }
+    return QString();
+}
+
+quint16 QConnmanServiceInterface::getMtu()
+{
+    quint16 mtu=0;
+    QVariant var;
+    QVariantMap map = getEthernet();
+
+    QMapIterator<QString,QVariant> it(map);
+    while(it.hasNext()) {
+        it.next();
+        if(it.key() == "MTU") {
+            return it.value().toUInt();
+        }
+    }
+    return mtu;
+}
+
+quint16 QConnmanServiceInterface::getSpeed()
+{
+    quint16 speed=0;
+    QVariant var;
+    QVariantMap map = getEthernet();
+
+    QMapIterator<QString,QVariant> it(map);
+    while(it.hasNext()) {
+        it.next();
+        if(it.key() == "Speed") {
+            return it.value().toUInt();
+        }
+    }
+    return speed;
+}
+
+QString QConnmanServiceInterface::getDuplex()
+{
+    QVariant var;
+    QVariantMap map = getEthernet();
+
+    QMapIterator<QString,QVariant> it(map);
+    while(it.hasNext()) {
+        it.next();
+        if(it.key() == "Duplex") {
+            return it.value().toString();
+        }
+    }
+    return QString();
+}
+
+
 bool QConnmanServiceInterface::isOfflineMode()
 {
     QVariant var = getProperty("OfflineMode");
@@ -889,12 +984,17 @@
 
 quint32 QConnmanCounterInterface::getReceivedByteCount()
 {
-return 0;
+    return 0;
 }
 
 quint32 QConnmanCounterInterface::getTransmittedByteCount()
 {
-return 0;
+    return 0;
+}
+
+quint64 QConnmanCounterInterface::getTimeOnline()
+{
+    return 0;
 }
 
 /////////////////////////////////////////
@@ -950,15 +1050,7 @@
 
 bool QConnmanDeviceInterface::setProperty(const QString &name, const QDBusVariant &value)
 {
-
-//    QList<QVariant> args;
-    qWarning() << __FUNCTION__ << name << value.variant();
-//    args << qVariantFromValue(name);
-//    args << qVariantFromValue(value);
-
     QDBusMessage reply = this->call(QLatin1String("SetProperty"),name, qVariantFromValue(value));
-qWarning() << reply.errorMessage();
-
     return true;
 }
 
@@ -1047,7 +1139,6 @@
     << qVariantFromValue(QDBusVariant(powered));
 
     QDBusMessage reply = this->callWithArgumentList(QDBus::AutoDetect,QLatin1String("SetProperty"),args);
-    qWarning() << reply.errorMessage() << reply.errorName();
     return true;
 }
 
@@ -1063,10 +1154,12 @@
 void QConnmanDBusHelper::propertyChanged(const QString &item, const QDBusVariant &var)
 {
     QDBusMessage msg = this->message();
-//    qWarning() << sender();
- //   qWarning()  << msg.interface() << msg.path() << item << var.variant() <<"\n";
     Q_EMIT propertyChangedContext(msg.path() ,item, var);
 }
 
 /////////////////
 QT_END_NAMESPACE
+
+#endif // QT_NO_DBUS
+#endif // QT_NO_BEARERMANAGEMENT
+
--- a/src/plugins/bearer/connman/qconnmanservice_linux_p.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/plugins/bearer/connman/qconnmanservice_linux_p.h	Mon Oct 04 01:19:32 2010 +0300
@@ -65,6 +65,9 @@
 #include <QtDBus/QDBusContext>
 #include <QMap>
 
+#ifndef QT_NO_BEARERMANAGEMENT
+#ifndef QT_NO_DBUS
+
 #ifndef __CONNMAN_DBUS_H
 
 #define	CONNMAN_SERVICE     "org.moblin.connman"
@@ -249,6 +252,13 @@
     QVariantMap getProxy();
     QVariantMap getEthernet();
 
+    QString getMethod();
+    QString getInterface();
+    QString getMacAddress();
+    quint16 getMtu();
+    quint16 getSpeed();
+    QString getDuplex();
+
     bool isOfflineMode();
     QStringList getServices();
 
@@ -321,6 +331,7 @@
     QString getInterface();
     quint32 getReceivedByteCount();
     quint32 getTransmittedByteCount();
+    quint64 getTimeOnline();
 
 private:
     QConnmanCounterInterfacePrivate *d;
@@ -378,4 +389,7 @@
 
 QT_END_NAMESPACE
 
+#endif // QT_NO_DBUS
+#endif // QT_NO_BEARERMANAGEMENT
+
 #endif //QCONNMANSERVICE_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/plugins/bearer/connman/qofonoservice_linux.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,940 @@
+/****************************************************************************
+**
+** 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 plugins 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 <QList>
+#include <QtDBus/QtDBus>
+#include <QtDBus/QDBusConnection>
+#include <QtDBus/QDBusError>
+#include <QtDBus/QDBusInterface>
+#include <QtDBus/QDBusMessage>
+#include <QtDBus/QDBusReply>
+#include <QtDBus/QDBusPendingCallWatcher>
+#include <QtDBus/QDBusObjectPath>
+#include <QtDBus/QDBusPendingCall>
+
+#include "qofonoservice_linux_p.h"
+
+
+QT_BEGIN_NAMESPACE
+static QDBusConnection dbusConnection = QDBusConnection::systemBus();
+
+
+QOfonoManagerInterface::QOfonoManagerInterface( QObject *parent)
+        : QDBusAbstractInterface(QLatin1String(OFONO_SERVICE),
+                                 QLatin1String(OFONO_MANAGER_PATH),
+                                 OFONO_MANAGER_INTERFACE,
+                                 QDBusConnection::systemBus(), parent)
+{
+}
+
+QOfonoManagerInterface::~QOfonoManagerInterface()
+{
+}
+
+QList <QDBusObjectPath> QOfonoManagerInterface::getModems()
+{
+    QVariant var = getProperty("Modems");
+    return qdbus_cast<QList<QDBusObjectPath> >(var);
+}
+
+QDBusObjectPath QOfonoManagerInterface::currentModem()
+{
+    QList<QDBusObjectPath> modems = getModems();
+    foreach(const QDBusObjectPath modem, modems) {
+        QOfonoModemInterface device(modem.path());
+        if(device.isPowered() && device.isOnline())
+        return modem;;
+    }
+    return QDBusObjectPath();
+}
+
+
+void QOfonoManagerInterface::connectNotify(const char *signal)
+{
+if (QLatin1String(signal) == SIGNAL(propertyChanged(QString,QDBusVariant))) {
+        if(!connection().connect(QLatin1String(OFONO_SERVICE),
+                               QLatin1String(OFONO_MANAGER_PATH),
+                               QLatin1String(OFONO_MANAGER_INTERFACE),
+                               QLatin1String("PropertyChanged"),
+                               this,SIGNAL(propertyChanged(const QString &, const QDBusVariant & )))) {
+            qWarning() << "PropertyCHanged not connected";
+        }
+    }
+
+    if (QLatin1String(signal) == SIGNAL(propertyChangedContext(QString,QString,QDBusVariant))) {
+        QOfonoDBusHelper *helper;
+        helper = new QOfonoDBusHelper(this);
+
+        dbusConnection.connect(QLatin1String(OFONO_SERVICE),
+                               QLatin1String(OFONO_MANAGER_PATH),
+                               QLatin1String(OFONO_MANAGER_INTERFACE),
+                               QLatin1String("PropertyChanged"),
+                               helper,SLOT(propertyChanged(QString,QDBusVariant)));
+
+
+        QObject::connect(helper,SIGNAL(propertyChangedContext(const QString &,const QString &,const QDBusVariant &)),
+                this,SIGNAL(propertyChangedContext(const QString &,const QString &,const QDBusVariant &)));
+    }
+}
+
+void QOfonoManagerInterface::disconnectNotify(const char *signal)
+{
+    if (QLatin1String(signal) == SIGNAL(propertyChanged(QString,QVariant))) {
+
+    }
+}
+
+QVariant QOfonoManagerInterface::getProperty(const QString &property)
+{
+    QVariantMap map = getProperties();
+    if (map.contains(property)) {
+        return map.value(property);
+    } else {
+        qDebug() << Q_FUNC_INFO << "does not contain" << property;
+    }
+    return QVariant();
+}
+
+QVariantMap QOfonoManagerInterface::getProperties()
+{
+    QDBusReply<QVariantMap > reply = this->call(QLatin1String("GetProperties"));
+    if(reply.isValid())
+        return reply.value();
+    else
+        return QVariantMap();
+}
+
+QOfonoDBusHelper::QOfonoDBusHelper(QObject * parent)
+        : QObject(parent)
+{
+}
+
+QOfonoDBusHelper::~QOfonoDBusHelper()
+{
+}
+
+void QOfonoDBusHelper::propertyChanged(const QString &item, const QDBusVariant &var)
+{
+    QDBusMessage msg = this->message();
+    Q_EMIT propertyChangedContext(msg.path() ,item, var);
+}
+
+
+QOfonoModemInterface::QOfonoModemInterface(const QString &dbusPathName, QObject *parent)
+    : QDBusAbstractInterface(QLatin1String(OFONO_SERVICE),
+                             dbusPathName,
+                             OFONO_MODEM_INTERFACE,
+                             QDBusConnection::systemBus(), parent)
+{
+}
+
+QOfonoModemInterface::~QOfonoModemInterface()
+{
+}
+
+bool QOfonoModemInterface::isPowered()
+{
+    QVariant var = getProperty("Powered");
+    return qdbus_cast<bool>(var);
+}
+
+bool QOfonoModemInterface::isOnline()
+{
+    QVariant var = getProperty("Online");
+    return qdbus_cast<bool>(var);
+}
+
+QString QOfonoModemInterface::getName()
+{
+    QVariant var = getProperty("Name");
+    return qdbus_cast<QString>(var);
+}
+
+QString QOfonoModemInterface::getManufacturer()
+{
+    QVariant var = getProperty("Manufacturer");
+    return qdbus_cast<QString>(var);
+
+}
+
+QString QOfonoModemInterface::getModel()
+{
+
+    QVariant var = getProperty("Model");
+    return qdbus_cast<QString>(var);
+}
+
+QString QOfonoModemInterface::getRevision()
+{
+    QVariant var = getProperty("Revision");
+    return qdbus_cast<QString>(var);
+
+}
+QString QOfonoModemInterface::getSerial()
+{
+    QVariant var = getProperty("Serial");
+    return qdbus_cast<QString>(var);
+
+}
+
+QStringList QOfonoModemInterface::getFeatures()
+{
+    //sms, sim
+    QVariant var = getProperty("Features");
+    return qdbus_cast<QStringList>(var);
+}
+
+QStringList QOfonoModemInterface::getInterfaces()
+{
+    QVariant var = getProperty("Interfaces");
+    return qdbus_cast<QStringList>(var);
+}
+
+QString QOfonoModemInterface::defaultInterface()
+{
+    foreach(const QString &modem,getInterfaces()) {
+     return modem;
+    }
+    return QString();
+}
+
+
+void QOfonoModemInterface::connectNotify(const char *signal)
+{
+    if (QLatin1String(signal) == SIGNAL(propertyChanged(QString,QDBusVariant))) {
+            if(!connection().connect(QLatin1String(OFONO_SERVICE),
+                                   this->path(),
+                                   QLatin1String(OFONO_MODEM_INTERFACE),
+                                   QLatin1String("PropertyChanged"),
+                                   this,SIGNAL(propertyChanged(const QString &, const QDBusVariant & )))) {
+                qWarning() << "PropertyCHanged not connected";
+            }
+        }
+
+        if (QLatin1String(signal) == SIGNAL(propertyChangedContext(QString,QString,QDBusVariant))) {
+            QOfonoDBusHelper *helper;
+            helper = new QOfonoDBusHelper(this);
+
+            dbusConnection.connect(QLatin1String(OFONO_SERVICE),
+                                   this->path(),
+                                   QLatin1String(OFONO_MODEM_INTERFACE),
+                                   QLatin1String("PropertyChanged"),
+                                   helper,SLOT(propertyChanged(QString,QDBusVariant)));
+
+
+            QObject::connect(helper,SIGNAL(propertyChangedContext(const QString &,const QString &,const QDBusVariant &)),
+                    this,SIGNAL(propertyChangedContext(const QString &,const QString &,const QDBusVariant &)));
+        }}
+
+void QOfonoModemInterface::disconnectNotify(const char *signal)
+{
+    if (QLatin1String(signal) == SIGNAL(propertyChanged(QString,QVariant))) {
+
+    }
+}
+
+QVariantMap QOfonoModemInterface::getProperties()
+{
+    QDBusReply<QVariantMap > reply = this->call(QLatin1String("GetProperties"));
+    return reply.value();
+}
+
+QVariant QOfonoModemInterface::getProperty(const QString &property)
+{
+    QVariant var;
+    QVariantMap map = getProperties();
+    if (map.contains(property)) {
+        var = map.value(property);
+    } else {
+        qDebug() << Q_FUNC_INFO << "does not contain" << property;
+    }
+    return var;
+}
+
+
+QOfonoNetworkRegistrationInterface::QOfonoNetworkRegistrationInterface(const QString &dbusPathName, QObject *parent)
+    : QDBusAbstractInterface(QLatin1String(OFONO_SERVICE),
+                             dbusPathName,
+                             OFONO_NETWORK_REGISTRATION_INTERFACE,
+                             QDBusConnection::systemBus(), parent)
+{
+}
+
+QOfonoNetworkRegistrationInterface::~QOfonoNetworkRegistrationInterface()
+{
+}
+
+QString QOfonoNetworkRegistrationInterface::getStatus()
+{
+    /*
+                "unregistered"  Not registered to any network
+                "registered"    Registered to home network
+                "searching"     Not registered, but searching
+                "denied"        Registration has been denied
+                "unknown"       Status is unknown
+                "roaming"       Registered, but roaming*/
+    QVariant var = getProperty("Status");
+    return qdbus_cast<QString>(var);
+}
+
+quint16 QOfonoNetworkRegistrationInterface::getLac()
+{
+    QVariant var = getProperty("LocationAreaCode");
+    return var.value<quint16>();
+}
+
+
+quint32 QOfonoNetworkRegistrationInterface::getCellId()
+{
+    QVariant var = getProperty("CellId");
+    return var.value<quint32>();
+}
+
+QString QOfonoNetworkRegistrationInterface::getTechnology()
+{
+    // "gsm", "edge", "umts", "hspa","lte"
+    QVariant var = getProperty("Technology");
+    return qdbus_cast<QString>(var);
+}
+
+QString QOfonoNetworkRegistrationInterface::getOperatorName()
+{
+    QVariant var = getProperty("Name");
+    return qdbus_cast<QString>(var);
+}
+
+int QOfonoNetworkRegistrationInterface::getSignalStrength()
+{
+    QVariant var = getProperty("Strength");
+    return qdbus_cast<int>(var);
+
+}
+
+QString QOfonoNetworkRegistrationInterface::getBaseStation()
+{
+    QVariant var = getProperty("BaseStation");
+    return qdbus_cast<QString>(var);
+}
+
+QList <QDBusObjectPath> QOfonoNetworkRegistrationInterface::getOperators()
+{
+    QVariant var = getProperty("Operators");
+    return qdbus_cast<QList <QDBusObjectPath> >(var);
+}
+
+void QOfonoNetworkRegistrationInterface::connectNotify(const char *signal)
+{
+if (QLatin1String(signal) == SIGNAL(propertyChanged(QString,QDBusVariant))) {
+        if(!connection().connect(QLatin1String(OFONO_SERVICE),
+                               this->path(),
+                               QLatin1String(OFONO_NETWORK_REGISTRATION_INTERFACE),
+                               QLatin1String("PropertyChanged"),
+                               this,SIGNAL(propertyChanged(const QString &, const QDBusVariant & )))) {
+            qWarning() << "PropertyCHanged not connected";
+        }
+    }
+
+    if (QLatin1String(signal) == SIGNAL(propertyChangedContext(QString,QString,QDBusVariant))) {
+        QOfonoDBusHelper *helper;
+        helper = new QOfonoDBusHelper(this);
+
+        dbusConnection.connect(QLatin1String(OFONO_SERVICE),
+                               this->path(),
+                               QLatin1String(OFONO_NETWORK_REGISTRATION_INTERFACE),
+                               QLatin1String("PropertyChanged"),
+                               helper,SLOT(propertyChanged(QString,QDBusVariant)));
+
+
+        QObject::connect(helper,SIGNAL(propertyChangedContext(const QString &,const QString &,const QDBusVariant &)),
+                this,SIGNAL(propertyChangedContext(const QString &,const QString &,const QDBusVariant &)));
+    }
+}
+
+void QOfonoNetworkRegistrationInterface::disconnectNotify(const char *signal)
+{
+    if (QLatin1String(signal) == SIGNAL(propertyChanged(QString,QVariant))) {
+
+    }
+}
+
+QVariant QOfonoNetworkRegistrationInterface::getProperty(const QString &property)
+{
+    QVariant var;
+    QVariantMap map = getProperties();
+    if (map.contains(property)) {
+        var = map.value(property);
+    } else {
+        qDebug() << Q_FUNC_INFO << "does not contain" << property;
+    }
+    return var;
+}
+
+QVariantMap QOfonoNetworkRegistrationInterface::getProperties()
+{
+    QDBusReply<QVariantMap > reply =  this->call(QLatin1String("GetProperties"));
+    return reply.value();
+}
+
+
+
+QOfonoNetworkOperatorInterface::QOfonoNetworkOperatorInterface(const QString &dbusPathName, QObject *parent)
+    : QDBusAbstractInterface(QLatin1String(OFONO_SERVICE),
+                             dbusPathName,
+                             OFONO_NETWORK_OPERATOR_INTERFACE,
+                             QDBusConnection::systemBus(), parent)
+{
+}
+
+QOfonoNetworkOperatorInterface::~QOfonoNetworkOperatorInterface()
+{
+}
+
+QString QOfonoNetworkOperatorInterface::getName()
+{
+    QVariant var = getProperty("Name");
+    return qdbus_cast<QString>(var);
+}
+
+QString QOfonoNetworkOperatorInterface::getStatus()
+{
+    // "unknown", "available", "current" and "forbidden"
+    QVariant var = getProperty("Status");
+    return qdbus_cast<QString>(var);
+}
+
+QString QOfonoNetworkOperatorInterface::getMcc()
+{
+    QVariant var = getProperty("MobileCountryCode");
+    return qdbus_cast<QString>(var);
+}
+
+QString QOfonoNetworkOperatorInterface::getMnc()
+{
+    QVariant var = getProperty("MobileNetworkCode");
+    return qdbus_cast<QString>(var);
+}
+
+QStringList QOfonoNetworkOperatorInterface::getTechnologies()
+{
+    QVariant var = getProperty("Technologies");
+    return qdbus_cast<QStringList>(var);
+}
+
+void QOfonoNetworkOperatorInterface::connectNotify(const char *signal)
+{
+if (QLatin1String(signal) == SIGNAL(propertyChanged(QString,QDBusVariant))) {
+        if(!connection().connect(QLatin1String(OFONO_SERVICE),
+                               this->path(),
+                               QLatin1String(OFONO_NETWORK_OPERATOR_INTERFACE),
+                               QLatin1String("PropertyChanged"),
+                               this,SIGNAL(propertyChanged(const QString &, const QDBusVariant & )))) {
+            qWarning() << "PropertyCHanged not connected";
+        }
+    }
+
+    if (QLatin1String(signal) == SIGNAL(propertyChangedContext(QString,QString,QDBusVariant))) {
+        QOfonoDBusHelper *helper;
+        helper = new QOfonoDBusHelper(this);
+
+        dbusConnection.connect(QLatin1String(OFONO_SERVICE),
+                               this->path(),
+                               QLatin1String(OFONO_NETWORK_OPERATOR_INTERFACE),
+                               QLatin1String("PropertyChanged"),
+                               helper,SLOT(propertyChanged(QString,QDBusVariant)));
+
+
+        QObject::connect(helper,SIGNAL(propertyChangedContext(const QString &,const QString &,const QDBusVariant &)),
+                this,SIGNAL(propertyChangedContext(const QString &,const QString &,const QDBusVariant &)));
+    }
+}
+
+void QOfonoNetworkOperatorInterface::disconnectNotify(const char *signal)
+{
+    if (QLatin1String(signal) == SIGNAL(propertyChanged(QString,QVariant))) {
+
+    }
+}
+
+QVariant QOfonoNetworkOperatorInterface::getProperty(const QString &property)
+{
+    QVariant var;
+    QVariantMap map = getProperties();
+    if (map.contains(property)) {
+        var = map.value(property);
+    } else {
+        qDebug() << Q_FUNC_INFO << "does not contain" << property;
+    }
+    return var;
+}
+
+QVariantMap QOfonoNetworkOperatorInterface::getProperties()
+{
+    QDBusReply<QVariantMap > reply =  this->call(QLatin1String("GetProperties"));
+    return reply.value();
+}
+
+QOfonoSimInterface::QOfonoSimInterface(const QString &dbusPathName, QObject *parent)
+    : QDBusAbstractInterface(QLatin1String(OFONO_SERVICE),
+                             dbusPathName,
+                             OFONO_SIM_MANAGER_INTERFACE,
+                             QDBusConnection::systemBus(), parent)
+{
+}
+
+QOfonoSimInterface::~QOfonoSimInterface()
+{
+}
+
+bool QOfonoSimInterface::isPresent()
+{
+    QVariant var = getProperty("Present");
+    return qdbus_cast<bool>(var);
+}
+
+QString QOfonoSimInterface::getHomeMcc()
+{
+    QVariant var = getProperty("MobileCountryCode");
+    return qdbus_cast<QString>(var);
+}
+
+QString QOfonoSimInterface::getHomeMnc()
+{
+    QVariant var = getProperty("MobileNetworkCode");
+    return qdbus_cast<QString>(var);
+}
+
+//    QStringList subscriberNumbers();
+//    QMap<QString,QString> serviceNumbers();
+QString QOfonoSimInterface::pinRequired()
+{
+    QVariant var = getProperty("PinRequired");
+    return qdbus_cast<QString>(var);
+}
+
+QString QOfonoSimInterface::lockedPins()
+{
+    QVariant var = getProperty("LockedPins");
+    return qdbus_cast<QString>(var);
+}
+
+QString QOfonoSimInterface::cardIdentifier()
+{
+    QVariant var = getProperty("CardIdentifier");
+    return qdbus_cast<QString>(var);
+}
+
+void QOfonoSimInterface::connectNotify(const char *signal)
+{
+if (QLatin1String(signal) == SIGNAL(propertyChanged(QString,QDBusVariant))) {
+        if(!connection().connect(QLatin1String(OFONO_SERVICE),
+                               this->path(),
+                               QLatin1String(OFONO_SIM_MANAGER_INTERFACE),
+                               QLatin1String("PropertyChanged"),
+                               this,SIGNAL(propertyChanged(const QString &, const QDBusVariant & )))) {
+            qWarning() << "PropertyCHanged not connected";
+        }
+    }
+
+    if (QLatin1String(signal) == SIGNAL(propertyChangedContext(QString,QString,QDBusVariant))) {
+        QOfonoDBusHelper *helper;
+        helper = new QOfonoDBusHelper(this);
+
+        dbusConnection.connect(QLatin1String(OFONO_SERVICE),
+                               this->path(),
+                               QLatin1String(OFONO_SIM_MANAGER_INTERFACE),
+                               QLatin1String("PropertyChanged"),
+                               helper,SLOT(propertyChanged(QString,QDBusVariant)));
+
+
+        QObject::connect(helper,SIGNAL(propertyChangedContext(const QString &,const QString &,const QDBusVariant &)),
+                this,SIGNAL(propertyChangedContext(const QString &,const QString &,const QDBusVariant &)));
+    }
+}
+
+void QOfonoSimInterface::disconnectNotify(const char *signal)
+{
+    if (QLatin1String(signal) == SIGNAL(propertyChanged(QString,QVariant))) {
+
+    }
+}
+
+QVariant QOfonoSimInterface::getProperty(const QString &property)
+{
+    QVariant var;
+    QVariantMap map = getProperties();
+    if (map.contains(property)) {
+        var = map.value(property);
+    } else {
+        qDebug() << Q_FUNC_INFO << "does not contain" << property;
+    }
+    return var;
+}
+
+QVariantMap QOfonoSimInterface::getProperties()
+{
+    QDBusReply<QVariantMap > reply =  this->call(QLatin1String("GetProperties"));
+    return reply.value();
+}
+
+QOfonoDataConnectionManagerInterface::QOfonoDataConnectionManagerInterface(const QString &dbusPathName, QObject *parent)
+    : QDBusAbstractInterface(QLatin1String(OFONO_SERVICE),
+                             dbusPathName,
+                             OFONO_DATA_CONNECTION_MANAGER_INTERFACE,
+                             QDBusConnection::systemBus(), parent)
+{
+}
+
+QOfonoDataConnectionManagerInterface::~QOfonoDataConnectionManagerInterface()
+{
+}
+
+QList<QDBusObjectPath> QOfonoDataConnectionManagerInterface::getPrimaryContexts()
+{
+    QVariant var = getProperty("PrimaryContexts");
+    return qdbus_cast<QList<QDBusObjectPath> >(var);
+}
+
+bool QOfonoDataConnectionManagerInterface::isAttached()
+{
+    QVariant var = getProperty("Attached");
+    return qdbus_cast<bool>(var);
+}
+
+bool QOfonoDataConnectionManagerInterface::isRoamingAllowed()
+{
+    QVariant var = getProperty("RoamingAllowed");
+    return qdbus_cast<bool>(var);
+}
+
+bool QOfonoDataConnectionManagerInterface::isPowered()
+{
+    QVariant var = getProperty("Powered");
+    return qdbus_cast<bool>(var);
+}
+
+void QOfonoDataConnectionManagerInterface::connectNotify(const char *signal)
+{
+if (QLatin1String(signal) == SIGNAL(propertyChanged(QString,QDBusVariant))) {
+        if(!connection().connect(QLatin1String(OFONO_SERVICE),
+                               this->path(),
+                               QLatin1String(OFONO_DATA_CONNECTION_MANAGER_INTERFACE),
+                               QLatin1String("PropertyChanged"),
+                               this,SIGNAL(propertyChanged(const QString &, const QDBusVariant & )))) {
+            qWarning() << "PropertyCHanged not connected";
+        }
+    }
+
+    if (QLatin1String(signal) == SIGNAL(propertyChangedContext(QString,QString,QDBusVariant))) {
+        QOfonoDBusHelper *helper;
+        helper = new QOfonoDBusHelper(this);
+
+        dbusConnection.connect(QLatin1String(OFONO_SERVICE),
+                               this->path(),
+                               QLatin1String(OFONO_DATA_CONNECTION_MANAGER_INTERFACE),
+                               QLatin1String("PropertyChanged"),
+                               helper,SLOT(propertyChanged(QString,QDBusVariant)));
+
+
+        QObject::connect(helper,SIGNAL(propertyChangedContext(const QString &,const QString &,const QDBusVariant &)),
+                this,SIGNAL(propertyChangedContext(const QString &,const QString &,const QDBusVariant &)));
+    }
+}
+
+void QOfonoDataConnectionManagerInterface::disconnectNotify(const char *signal)
+{
+    if (QLatin1String(signal) == SIGNAL(propertyChanged(QString,QVariant))) {
+
+    }
+}
+
+QVariant QOfonoDataConnectionManagerInterface::getProperty(const QString &property)
+{
+    QVariant var;
+    QVariantMap map = getProperties();
+    if (map.contains(property)) {
+        var = map.value(property);
+    } else {
+        qDebug() << Q_FUNC_INFO << "does not contain" << property;
+    }
+    return var;
+}
+
+QVariantMap QOfonoDataConnectionManagerInterface::getProperties()
+{
+    QDBusReply<QVariantMap > reply =  this->call(QLatin1String("GetProperties"));
+    return reply.value();
+}
+
+QOfonoPrimaryDataContextInterface::QOfonoPrimaryDataContextInterface(const QString &dbusPathName, QObject *parent)
+    : QDBusAbstractInterface(QLatin1String(OFONO_SERVICE),
+                             dbusPathName,
+                             OFONO_DATA_CONTEXT_INTERFACE,
+                             QDBusConnection::systemBus(), parent)
+{
+}
+
+QOfonoPrimaryDataContextInterface::~QOfonoPrimaryDataContextInterface()
+{
+}
+
+bool QOfonoPrimaryDataContextInterface::isActive()
+{
+    QVariant var = getProperty("Active");
+    return qdbus_cast<bool>(var);
+}
+
+QString QOfonoPrimaryDataContextInterface::getApName()
+{
+    QVariant var = getProperty("AccessPointName");
+    return qdbus_cast<QString>(var);
+}
+
+QString QOfonoPrimaryDataContextInterface::getType()
+{
+    QVariant var = getProperty("Type");
+    return qdbus_cast<QString>(var);
+}
+
+QString QOfonoPrimaryDataContextInterface::getName()
+{
+    QVariant var = getProperty("Name");
+    return qdbus_cast<QString>(var);
+}
+
+QVariantMap QOfonoPrimaryDataContextInterface::getSettings()
+{
+    QVariant var = getProperty("Settings");
+    return qdbus_cast<QVariantMap>(var);
+}
+
+QString QOfonoPrimaryDataContextInterface::getInterface()
+{
+    QVariant var = getProperty("Interface");
+    return qdbus_cast<QString>(var);
+}
+
+QString QOfonoPrimaryDataContextInterface::getAddress()
+{
+    QVariant var = getProperty("Address");
+    return qdbus_cast<QString>(var);
+}
+
+bool QOfonoPrimaryDataContextInterface::setActive(bool on)
+{
+//    this->setProperty("Active", QVariant(on));
+
+    return setProp("Active", qVariantFromValue(on));
+}
+
+bool QOfonoPrimaryDataContextInterface::setApn(const QString &name)
+{
+    return setProp("AccessPointName", QVariant::fromValue(name));
+}
+
+void QOfonoPrimaryDataContextInterface::connectNotify(const char *signal)
+{
+if (QLatin1String(signal) == SIGNAL(propertyChanged(QString,QDBusVariant))) {
+        if(!connection().connect(QLatin1String(OFONO_SERVICE),
+                               this->path(),
+                               QLatin1String(OFONO_DATA_CONTEXT_INTERFACE),
+                               QLatin1String("PropertyChanged"),
+                               this,SIGNAL(propertyChanged(const QString &, const QDBusVariant & )))) {
+            qWarning() << "PropertyCHanged not connected";
+        }
+    }
+
+    if (QLatin1String(signal) == SIGNAL(propertyChangedContext(QString,QString,QDBusVariant))) {
+        QOfonoDBusHelper *helper;
+        helper = new QOfonoDBusHelper(this);
+
+        dbusConnection.connect(QLatin1String(OFONO_SERVICE),
+                               this->path(),
+                               QLatin1String(OFONO_DATA_CONTEXT_INTERFACE),
+                               QLatin1String("PropertyChanged"),
+                               helper,SLOT(propertyChanged(QString,QDBusVariant)));
+
+
+        QObject::connect(helper,SIGNAL(propertyChangedContext(const QString &,const QString &,const QDBusVariant &)),
+                this,SIGNAL(propertyChangedContext(const QString &,const QString &,const QDBusVariant &)));
+    }
+}
+
+void QOfonoPrimaryDataContextInterface::disconnectNotify(const char *signal)
+{
+    if (QLatin1String(signal) == SIGNAL(propertyChanged(QString,QVariant))) {
+
+    }
+}
+
+QVariant QOfonoPrimaryDataContextInterface::getProperty(const QString &property)
+{
+    QVariant var;
+    QVariantMap map = getProperties();
+    if (map.contains(property)) {
+        var = map.value(property);
+    } else {
+        qDebug() << Q_FUNC_INFO << "does not contain" << property;
+    }
+    return var;
+}
+
+QVariantMap QOfonoPrimaryDataContextInterface::getProperties()
+{
+    QDBusReply<QVariantMap > reply =  this->call(QLatin1String("GetProperties"));
+    return reply.value();
+}
+
+bool QOfonoPrimaryDataContextInterface::setProp(const QString &property, const QVariant &var)
+{
+    QList<QVariant> args;
+    args << qVariantFromValue(property) << qVariantFromValue(QDBusVariant(var));
+
+    QDBusMessage reply = this->callWithArgumentList(QDBus::AutoDetect,
+                                                    QLatin1String("SetProperty"),
+                                                    args);
+    bool ok = true;
+    if(reply.type() != QDBusMessage::ReplyMessage) {
+        qWarning() << reply.errorMessage();
+        ok = false;
+    }
+    qWarning() << reply.errorMessage();
+    return ok;
+}
+
+QOfonoSmsInterface::QOfonoSmsInterface(const QString &dbusPathName, QObject *parent)
+    : QDBusAbstractInterface(QLatin1String(OFONO_SERVICE),
+                             dbusPathName,
+                             OFONO_SMS_MANAGER_INTERFACE,
+                             QDBusConnection::systemBus(), parent)
+{
+}
+
+QOfonoSmsInterface::~QOfonoSmsInterface()
+{
+}
+
+void QOfonoSmsInterface::connectNotify(const char *signal)
+{
+    if (QLatin1String(signal) == SIGNAL(propertyChanged(QString,QDBusVariant))) {
+        if(!connection().connect(QLatin1String(OFONO_SERVICE),
+                                 this->path(),
+                                 QLatin1String(OFONO_SMS_MANAGER_INTERFACE),
+                                 QLatin1String("PropertyChanged"),
+                                 this,SIGNAL(propertyChanged(const QString &, const QDBusVariant & )))) {
+            qWarning() << "PropertyCHanged not connected";
+        }
+    }
+
+    if (QLatin1String(signal) == SIGNAL(propertyChangedContext(QString,QString,QDBusVariant))) {
+        QOfonoDBusHelper *helper;
+        helper = new QOfonoDBusHelper(this);
+
+        dbusConnection.connect(QLatin1String(OFONO_SERVICE),
+                               this->path(),
+                               QLatin1String(OFONO_SMS_MANAGER_INTERFACE),
+                               QLatin1String("PropertyChanged"),
+                               helper,SLOT(propertyChanged(QString,QDBusVariant)));
+
+
+        QObject::connect(helper,SIGNAL(propertyChangedContext(const QString &,const QString &,const QDBusVariant &)),
+                         this,SIGNAL(propertyChangedContext(const QString &,const QString &,const QDBusVariant &)));
+    }
+
+    if (QLatin1String(signal) == SIGNAL(immediateMessage(QString,QVariantMap))) {
+        if(!connection().connect(QLatin1String(OFONO_SERVICE),
+                                 this->path(),
+                                 QLatin1String(OFONO_SMS_MANAGER_INTERFACE),
+                                 QLatin1String("ImmediateMessage"),
+                                 this,SIGNAL(immediateMessage(QString,QVariantMap )))) {
+            qWarning() << "PropertyCHanged not connected";
+        }
+    }
+
+    if (QLatin1String(signal) == SIGNAL(incomingMessage(QString,QVariantMap))) {
+        if(!connection().connect(QLatin1String(OFONO_SERVICE),
+                                 this->path(),
+                                 QLatin1String(OFONO_SMS_MANAGER_INTERFACE),
+                                 QLatin1String("IncomingMessage"),
+                                 this,SIGNAL(incomingMessage(QString,QVariantMap)))) {
+            qWarning() << "PropertyCHanged not connected";
+        }
+    }
+}
+
+void QOfonoSmsInterface::disconnectNotify(const char *signal)
+{
+    if (QLatin1String(signal) == SIGNAL(propertyChanged(QString,QVariant))) {
+
+    }
+}
+
+QVariant QOfonoSmsInterface::getProperty(const QString &property)
+{
+    QVariant var;
+    QVariantMap map = getProperties();
+    if (map.contains(property)) {
+        var = map.value(property);
+    } else {
+        qDebug() << Q_FUNC_INFO << "does not contain" << property;
+    }
+    return var;
+}
+
+QVariantMap QOfonoSmsInterface::getProperties()
+{
+    QDBusReply<QVariantMap > reply = this->call(QLatin1String("GetProperties"));
+    return reply.value();
+}
+
+void QOfonoSmsInterface::sendMessage(const QString &to, const QString &message)
+{
+    QDBusReply<QString> reply =  this->call(QLatin1String("SendMessage"),
+                                            QVariant::fromValue(to),
+                                            QVariant::fromValue(message));
+    bool ok = true;
+    if(reply.error().type() == QDBusError::InvalidArgs) {
+        qWarning() << reply.error().message();
+        ok = false;
+    }
+}
+
+QT_END_NAMESPACE
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/plugins/bearer/connman/qofonoservice_linux_p.h	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,332 @@
+/****************************************************************************
+**
+** 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 plugins 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 QOFONOSERVICE_H
+#define QOFONOSERVICE_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 <QtDBus/QtDBus>
+#include <QtDBus/QDBusConnection>
+#include <QtDBus/QDBusError>
+#include <QtDBus/QDBusInterface>
+#include <QtDBus/QDBusMessage>
+#include <QtDBus/QDBusReply>
+
+#include <QtDBus/QDBusPendingCallWatcher>
+#include <QtDBus/QDBusObjectPath>
+#include <QtDBus/QDBusContext>
+#include <QMap>
+
+#define OFONO_SERVICE	                         "org.ofono"
+#define OFONO_MANAGER_INTERFACE                  "org.ofono.Manager"
+#define OFONO_MANAGER_PATH                       "/"
+#define OFONO_MODEM_INTERFACE                    "org.ofono.Modem"
+#define OFONO_NETWORK_REGISTRATION_INTERFACE     "org.ofono.NetworkRegistration"
+#define OFONO_NETWORK_OPERATOR_INTERFACE         "org.ofono.NetworkOperator"
+#define OFONO_DATA_CONNECTION_MANAGER_INTERFACE  "org.ofono.DataConnectionManager"
+#define OFONO_SIM_MANAGER_INTERFACE              "org.ofono.SimManager"
+#define OFONO_DATA_CONTEXT_INTERFACE             "org.ofono.PrimaryDataContext"
+
+#define OFONO_SMS_MANAGER_INTERFACE              "org.ofono.SmsManager"
+#define OFONO_PHONEBOOK_INTERFACE                "org.ofono.Phonebook"
+#define OFONO_MESSAGE_WAITING_INTERFACE          "org.ofono.MessageWaiting"
+
+
+
+QT_BEGIN_NAMESPACE
+
+QT_END_NAMESPACE
+
+
+QT_BEGIN_NAMESPACE
+
+class QOfonoManagerInterface : public  QDBusAbstractInterface
+{
+    Q_OBJECT
+
+public:
+
+    QOfonoManagerInterface( QObject *parent = 0);
+    ~QOfonoManagerInterface();
+
+     QDBusObjectPath path() const;
+
+    QVariantMap getProperties();
+    bool setProperty(const QString &name, const QDBusVariant &value);
+    QList <QDBusObjectPath> getModems();
+    QDBusObjectPath currentModem();
+
+Q_SIGNALS:
+    void propertyChanged(const QString &, const QDBusVariant &value);
+    void propertyChangedContext(const QString &,const QString &,const QDBusVariant &);
+protected:
+    void connectNotify(const char *signal);
+    void disconnectNotify(const char *signal);
+    QVariant getProperty(const QString &);
+
+};
+
+
+class QOfonoDBusHelper: public QObject, protected QDBusContext
+ {
+     Q_OBJECT
+ public:
+    QOfonoDBusHelper(QObject *parent = 0);
+    ~QOfonoDBusHelper();
+
+ public slots:
+    void propertyChanged(const QString &, const QDBusVariant &);
+ Q_SIGNALS:
+    void propertyChangedContext(const QString &,const QString &,const QDBusVariant &);
+};
+
+class QOfonoModemInterface : public QDBusAbstractInterface
+{
+    Q_OBJECT
+
+public:
+
+    QOfonoModemInterface(const QString &dbusModemPathName, QObject *parent = 0);
+    ~QOfonoModemInterface();
+
+    QVariantMap getProperties();
+    //properties
+    bool isPowered();
+    bool isOnline();
+    QString getName();
+    QString getManufacturer();
+    QString getModel();
+    QString getRevision();
+    QString getSerial();
+
+    QStringList getFeatures(); //sms, sim
+    QStringList getInterfaces();
+    QString defaultInterface();
+
+protected:
+    void connectNotify(const char *signal);
+    void disconnectNotify(const char *signal);
+    QVariant getProperty(const QString &);
+Q_SIGNALS:
+    void propertyChanged(const QString &, const QDBusVariant &value);
+    void propertyChangedContext(const QString &,const QString &,const QDBusVariant &);
+};
+
+
+class QOfonoNetworkRegistrationInterface : public QDBusAbstractInterface
+{
+    Q_OBJECT
+
+public:
+
+    QOfonoNetworkRegistrationInterface(const QString &dbusModemPathName, QObject *parent = 0);
+    ~QOfonoNetworkRegistrationInterface();
+
+    QVariantMap getProperties();
+
+    //properties
+    QString getStatus();
+    quint16 getLac();
+    quint32 getCellId();
+    QString getTechnology();
+    QString getOperatorName();
+    int getSignalStrength();
+    QString getBaseStation();
+    QList <QDBusObjectPath> getOperators();
+
+protected:
+    void connectNotify(const char *signal);
+    void disconnectNotify(const char *signal);
+    QVariant getProperty(const QString &);
+Q_SIGNALS:
+    void propertyChanged(const QString &, const QDBusVariant &value);
+    void propertyChangedContext(const QString &,const QString &,const QDBusVariant &);
+
+};
+
+class QOfonoNetworkOperatorInterface : public QDBusAbstractInterface
+{
+    Q_OBJECT
+
+public:
+//modem or operator paths
+    QOfonoNetworkOperatorInterface(const QString &dbusPathName, QObject *parent = 0);
+    ~QOfonoNetworkOperatorInterface();
+
+    QVariantMap getProperties();
+
+    //properties
+    QString getName();
+    QString getStatus();// "unknown", "available", "current" and "forbidden"
+    QString getMcc();
+    QString getMnc();
+    QStringList getTechnologies();
+
+protected:
+    void connectNotify(const char *signal);
+    void disconnectNotify(const char *signal);
+    QVariant getProperty(const QString &);
+};
+
+class QOfonoSimInterface : public QDBusAbstractInterface
+{
+    Q_OBJECT
+
+public:
+
+    QOfonoSimInterface(const QString &dbusModemPathName, QObject *parent = 0);
+    ~QOfonoSimInterface();
+
+    QVariantMap getProperties();
+
+    //properties
+    bool isPresent();
+    QString getHomeMcc();
+    QString getHomeMnc();
+//    QStringList subscriberNumbers();
+//    QMap<QString,QString> serviceNumbers();
+    QString pinRequired();
+    QString lockedPins();
+    QString cardIdentifier();
+
+protected:
+    void connectNotify(const char *signal);
+    void disconnectNotify(const char *signal);
+    QVariant getProperty(const QString &);
+};
+
+
+class QOfonoDataConnectionManagerInterface : public QDBusAbstractInterface
+{
+    Q_OBJECT
+
+public:
+
+    QOfonoDataConnectionManagerInterface(const QString &dbusPathName, QObject *parent = 0);
+    ~QOfonoDataConnectionManagerInterface();
+
+    QVariantMap getProperties();
+
+    //properties
+    QList<QDBusObjectPath> getPrimaryContexts();
+    bool isAttached();
+    bool isRoamingAllowed();
+    bool isPowered();
+
+    bool setPower(bool on);
+
+protected:
+    void connectNotify(const char *signal);
+    void disconnectNotify(const char *signal);
+    QVariant getProperty(const QString &);
+};
+
+
+class QOfonoPrimaryDataContextInterface : public QDBusAbstractInterface
+{
+    Q_OBJECT
+
+public:
+
+    QOfonoPrimaryDataContextInterface(const QString &dbusPathName, QObject *parent = 0);
+    ~QOfonoPrimaryDataContextInterface();
+
+    QVariantMap getProperties();
+
+    //properties
+    bool isActive();
+    QString getApName();
+    QString getType();
+    QString getName();
+    QVariantMap getSettings();
+    QString getInterface();
+    QString getAddress();
+
+    bool setActive(bool on);
+    bool setApn(const QString &name);
+
+protected:
+    void connectNotify(const char *signal);
+    void disconnectNotify(const char *signal);
+    QVariant getProperty(const QString &);
+    bool setProp(const QString &, const QVariant &var);
+};
+
+class QOfonoSmsInterface : public QDBusAbstractInterface
+{
+    Q_OBJECT
+
+public:
+
+    QOfonoSmsInterface(const QString &dbusModemPathName, QObject *parent = 0);
+    ~QOfonoSmsInterface();
+
+    QVariantMap getProperties();
+    void sendMessage(const QString &to, const QString &message);
+
+    //properties
+    QString  serviceCenterAddress();
+    bool useDeliveryReports();
+    QString bearer();
+
+protected:
+    void connectNotify(const char *signal);
+    void disconnectNotify(const char *signal);
+    QVariant getProperty(const QString &);
+
+Q_SIGNALS:
+    void propertyChanged(const QString &, const QDBusVariant &value);
+    void propertyChangedContext(const QString &,const QString &,const QDBusVariant &);
+    void immediateMessage(const QString &message, const QVariantMap &info);
+    void incomingMessage(const QString &message, const QVariantMap &info);
+};
+
+#endif //QOFONOSERVICE_H
--- a/src/plugins/bearer/corewlan/qcorewlanengine.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/plugins/bearer/corewlan/qcorewlanengine.h	Mon Oct 04 01:19:32 2010 +0300
@@ -68,8 +68,6 @@
     QString getInterfaceFromId(const QString &id);
     bool hasIdentifier(const QString &id);
 
-    QString bearerName(const QString &id);
-
     void connectToId(const QString &id);
     void disconnectFromId(const QString &id);
 
--- a/src/plugins/bearer/corewlan/qcorewlanengine.mm	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/plugins/bearer/corewlan/qcorewlanengine.mm	Mon Oct 04 01:19:32 2010 +0300
@@ -264,7 +264,7 @@
         ptr->id = id;
         ptr->state = state;
         ptr->type = QNetworkConfiguration::InternetAccessPoint;
-        ptr->bearer = QLatin1String("WLAN");
+        ptr->bearerType = QNetworkConfiguration::BearerWLAN;
         ptr->purpose = purpose;
 
         fetchedConfigurations.append( ptr);
@@ -305,50 +305,53 @@
         SCDynamicStoreRef dynRef = SCDynamicStoreCreate(kCFAllocatorSystemDefault, (CFStringRef)@"Qt corewlan", nil, nil);
         NSDictionary * airportPlist = (NSDictionary *)SCDynamicStoreCopyValue(dynRef, (CFStringRef)[NSString stringWithFormat:@"Setup:/Network/Interface/%@/AirPort", nsInterfaceName]);
         CFRelease(dynRef);
-
-        NSDictionary *prefNetDict = [airportPlist objectForKey:@"PreferredNetworks"];
+        if(airportPlist != nil) {
+            NSDictionary *prefNetDict = [airportPlist objectForKey:@"PreferredNetworks"];
 
-        NSArray *thisSsidarray = [prefNetDict valueForKey:@"SSID_STR"];
-        for(NSString *ssidkey in thisSsidarray) {
-            QString thisSsid = qt_mac_NSStringToQString(ssidkey);
-            if(!userProfiles.contains(thisSsid)) {
-                QMap <QString,QString> map;
-                map.insert(thisSsid, qt_mac_NSStringToQString(nsInterfaceName));
-                userProfiles.insert(thisSsid, map);
+            NSArray *thisSsidarray = [prefNetDict valueForKey:@"SSID_STR"];
+            for(NSString *ssidkey in thisSsidarray) {
+                QString thisSsid = qt_mac_NSStringToQString(ssidkey);
+                if(!userProfiles.contains(thisSsid)) {
+                    QMap <QString,QString> map;
+                    map.insert(thisSsid, qt_mac_NSStringToQString(nsInterfaceName));
+                    userProfiles.insert(thisSsid, map);
+                }
             }
+            CFRelease(airportPlist);
         }
-        CFRelease(airportPlist);
 
         // 802.1X user profiles
         QString userProfilePath = QDir::homePath() + "/Library/Preferences/com.apple.eap.profiles.plist";
         NSDictionary* eapDict = [[[NSDictionary alloc] initWithContentsOfFile:qt_mac_QStringToNSString(userProfilePath)] autorelease];
-        NSString *profileStr= @"Profiles";
-        NSString *nameStr = @"UserDefinedName";
-        NSString *networkSsidStr = @"Wireless Network";
-        for (id profileKey in eapDict) {
-            if ([profileStr isEqualToString:profileKey]) {
-                NSDictionary *itemDict = [eapDict objectForKey:profileKey];
-                for (id itemKey in itemDict) {
+        if(eapDict != nil) {
+            NSString *profileStr= @"Profiles";
+            NSString *nameStr = @"UserDefinedName";
+            NSString *networkSsidStr = @"Wireless Network";
+            for (id profileKey in eapDict) {
+                if ([profileStr isEqualToString:profileKey]) {
+                    NSDictionary *itemDict = [eapDict objectForKey:profileKey];
+                    for (id itemKey in itemDict) {
 
-                    NSInteger dictSize = [itemKey count];
-                    id objects[dictSize];
-                    id keys[dictSize];
+                        NSInteger dictSize = [itemKey count];
+                        id objects[dictSize];
+                        id keys[dictSize];
 
-                    [itemKey getObjects:objects andKeys:keys];
-                    QString networkName;
-                    QString ssid;
-                    for(int i = 0; i < dictSize; i++) {
-                        if([nameStr isEqualToString:keys[i]]) {
-                            networkName = qt_mac_NSStringToQString(objects[i]);
-                        }
-                        if([networkSsidStr isEqualToString:keys[i]]) {
-                            ssid = qt_mac_NSStringToQString(objects[i]);
-                        }
-                        if(!userProfiles.contains(networkName)
-                            && !ssid.isEmpty()) {
-                            QMap<QString,QString> map;
-                            map.insert(ssid, qt_mac_NSStringToQString(nsInterfaceName));
-                            userProfiles.insert(networkName, map);
+                        [itemKey getObjects:objects andKeys:keys];
+                        QString networkName;
+                        QString ssid;
+                        for(int i = 0; i < dictSize; i++) {
+                            if([nameStr isEqualToString:keys[i]]) {
+                                networkName = qt_mac_NSStringToQString(objects[i]);
+                            }
+                            if([networkSsidStr isEqualToString:keys[i]]) {
+                                ssid = qt_mac_NSStringToQString(objects[i]);
+                            }
+                            if(!userProfiles.contains(networkName)
+                                && !ssid.isEmpty()) {
+                                QMap<QString,QString> map;
+                                map.insert(ssid, qt_mac_NSStringToQString(nsInterfaceName));
+                                userProfiles.insert(networkName, map);
+                            }
                         }
                     }
                 }
@@ -789,8 +792,8 @@
                 changed = true;
             }
 
-            if (ptr->bearer != cpPriv->bearer) {
-                ptr->bearer = cpPriv->bearer;
+            if (ptr->bearerType != cpPriv->bearerType) {
+                ptr->bearerType = cpPriv->bearerType;
                 changed = true;
             }
 
@@ -855,6 +858,8 @@
 
     NSString *filePath = @"/Library/Preferences/SystemConfiguration/com.apple.airport.preferences.plist";
     NSDictionary* plistDict = [[[NSDictionary alloc] initWithContentsOfFile:filePath] autorelease];
+    if(plistDict == nil)
+        return timestamp;
     NSString *input = @"KnownNetworks";
     NSString *timeStampStr = @"_timeStamp";
 
@@ -864,9 +869,13 @@
         if ([input isEqualToString:key]) {
 
             NSDictionary *knownNetworksDict = [plistDict objectForKey:key];
+            if(knownNetworksDict == nil)
+                return timestamp;
             for (id networkKey in knownNetworksDict) {
                 bool isFound = false;
                 NSDictionary *itemDict = [knownNetworksDict objectForKey:networkKey];
+                if(itemDict == nil)
+                    return timestamp;
                 NSInteger dictSize = [itemDict count];
                 id objects[dictSize];
                 id keys[dictSize];
--- a/src/plugins/bearer/generic/qgenericengine.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/plugins/bearer/generic/qgenericengine.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -69,7 +69,7 @@
 QT_BEGIN_NAMESPACE
 
 #ifndef QT_NO_NETWORKINTERFACE
-static QString qGetInterfaceType(const QString &interface)
+static QNetworkConfiguration::BearerType qGetInterfaceType(const QString &interface)
 {
 #ifdef Q_OS_WIN32
     unsigned long oid;
@@ -78,10 +78,10 @@
     NDIS_MEDIUM medium;
     NDIS_PHYSICAL_MEDIUM physicalMedium;
 
-    HANDLE handle = CreateFile((TCHAR *)QString("\\\\.\\%1").arg(interface).utf16(), 0,
+    HANDLE handle = CreateFile((TCHAR *)QString::fromLatin1("\\\\.\\%1").arg(interface).utf16(), 0,
                                FILE_SHARE_READ, 0, OPEN_EXISTING, 0, 0);
     if (handle == INVALID_HANDLE_VALUE)
-        return QLatin1String("Unknown");
+        return QNetworkConfiguration::BearerUnknown;
 
     oid = OID_GEN_MEDIA_SUPPORTED;
     bytesWritten = 0;
@@ -89,7 +89,7 @@
                                   &medium, sizeof(medium), &bytesWritten, 0);
     if (!result) {
         CloseHandle(handle);
-        return QLatin1String("Unknown");
+        return QNetworkConfiguration::BearerUnknown;
     }
 
     oid = OID_GEN_PHYSICAL_MEDIUM;
@@ -100,9 +100,9 @@
         CloseHandle(handle);
 
         if (medium == NdisMedium802_3)
-            return QLatin1String("Ethernet");
+            return QNetworkConfiguration::BearerEthernet;
         else
-            return QLatin1String("Unknown");
+            return QNetworkConfiguration::BearerUnknown;
     }
 
     CloseHandle(handle);
@@ -110,16 +110,16 @@
     if (medium == NdisMedium802_3) {
         switch (physicalMedium) {
         case NdisPhysicalMediumWirelessLan:
-            return QLatin1String("WLAN");
+            return QNetworkConfiguration::BearerWLAN;
         case NdisPhysicalMediumBluetooth:
-            return QLatin1String("Bluetooth");
+            return QNetworkConfiguration::BearerBluetooth;
         case NdisPhysicalMediumWiMax:
-            return QLatin1String("WiMAX");
+            return QNetworkConfiguration::BearerWiMAX;
         default:
 #ifdef BEARER_MANAGEMENT_DEBUG
             qDebug() << "Physical Medium" << physicalMedium;
 #endif
-            return QLatin1String("Ethernet");
+            return QNetworkConfiguration::BearerEthernet;
         }
     }
 
@@ -135,12 +135,12 @@
     close(sock);
 
     if (result >= 0 && request.ifr_hwaddr.sa_family == ARPHRD_ETHER)
-        return QLatin1String("Ethernet");
+        return QNetworkConfiguration::BearerEthernet;
 #else
     Q_UNUSED(interface);
 #endif
 
-    return QLatin1String("Unknown");
+    return QNetworkConfiguration::BearerUnknown;
 }
 #endif
 
@@ -214,7 +214,7 @@
             continue;
 
         // ignore WLAN interface handled in separate engine
-        if (qGetInterfaceType(interface.name()) == QLatin1String("WLAN"))
+        if (qGetInterfaceType(interface.name()) == QNetworkConfiguration::BearerWLAN)
             continue;
 
         uint identifier;
@@ -277,7 +277,7 @@
             ptr->id = id;
             ptr->state = state;
             ptr->type = QNetworkConfiguration::InternetAccessPoint;
-            ptr->bearer = qGetInterfaceType(interface.name());
+            ptr->bearerType = qGetInterfaceType(interface.name());
 
             accessPointConfigurations.insert(id, ptr);
             configurationInterface.insert(id, interface.name());
--- a/src/plugins/bearer/generic/qgenericengine.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/plugins/bearer/generic/qgenericengine.h	Mon Oct 04 01:19:32 2010 +0300
@@ -65,8 +65,6 @@
     QString getInterfaceFromId(const QString &id);
     bool hasIdentifier(const QString &id);
 
-    QString bearerName(const QString &id);
-
     void connectToId(const QString &id);
     void disconnectFromId(const QString &id);
 
--- a/src/plugins/bearer/icd/icd.pro	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/plugins/bearer/icd/icd.pro	Mon Oct 04 01:19:32 2010 +0300
@@ -3,8 +3,8 @@
 
 QT += network dbus
 
-QMAKE_CXXFLAGS += $$QT_CFLAGS_ICD
-LIBS += $$QT_LIBS_ICD
+QMAKE_CXXFLAGS *= $$QT_CFLAGS_DBUS $$QT_CFLAGS_CONNSETTINGS
+LIBS += $$QT_LIBS_CONNSETTINGS
 
 HEADERS += qicdengine.h \
            qnetworksession_impl.h
@@ -15,6 +15,9 @@
 
 #DEFINES += BEARER_MANAGEMENT_DEBUG
 
+include(../../../3rdparty/libconninet.pri)
+include(../../../3rdparty/libgq.pri)
+
 QTDIR_build:DESTDIR = $$QT_BUILD_TREE/plugins/bearer
 target.path += $$[QT_INSTALL_PLUGINS]/bearer
 INSTALLS += target
--- a/src/plugins/bearer/icd/qicdengine.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/plugins/bearer/icd/qicdengine.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -60,16 +60,11 @@
 {
 }
 
-QString IcdNetworkConfigurationPrivate::bearerName() const
+QString IcdNetworkConfigurationPrivate::bearerTypeName() const
 {
-    if (iap_type == QLatin1String("WLAN_INFRA") ||
-        iap_type == QLatin1String("WLAN_ADHOC")) {
-        return QLatin1String("WLAN");
-    } else if (iap_type == QLatin1String("GPRS")) {
-        return QLatin1String("HSPA");
-    } else {
-        return iap_type;
-    }
+    QMutexLocker locker(&mutex);
+
+    return iap_type;
 }
 
 /* The IapAddTimer is a helper class that makes sure we update
@@ -222,7 +217,7 @@
 }
 
 QIcdEngine::QIcdEngine(QObject *parent)
-:   QBearerEngine(parent), iapMonitor(new IapMonitor), m_dbusInterface(0),
+:   QBearerEngine(parent), iapMonitor(0), m_dbusInterface(0),
     firstUpdate(true), m_scanGoingOn(false)
 {
 }
@@ -263,6 +258,7 @@
     startListeningStateSignalsForAllConnections();
 
     /* Turn on IAP add/remove monitoring */
+    iapMonitor = new IapMonitor;
     iapMonitor->setup(this);
 
     /* We create a default configuration which is a pseudo config */
@@ -279,6 +275,8 @@
     userChoiceConfigurations.insert(cpPriv->id, ptr);
 
     doRequestUpdate();
+
+    getIcdInitialState();
 }
 
 static inline QString network_attrs_to_security(uint network_attrs)
@@ -400,6 +398,7 @@
                     ptr->mutex.lock();
                     ptr->id = iap_id;
                     toIcdConfig(ptr)->iap_type = iap_type;
+                    ptr->bearerType = bearerTypeFromIapType(iap_type);
                     toIcdConfig(ptr)->network_attrs = getNetworkAttrs(true, iap_id, iap_type, QString());
                     toIcdConfig(ptr)->network_id = ssid;
                     toIcdConfig(ptr)->service_id = saved_iap.value("service_id").toString();
@@ -424,6 +423,7 @@
                 cpPriv->isValid = true;
                 cpPriv->id = iap_id;
                 cpPriv->iap_type = iap_type;
+                cpPriv->bearerType = bearerTypeFromIapType(iap_type);
                 cpPriv->network_attrs = getNetworkAttrs(true, iap_id, iap_type, QString());
                 cpPriv->service_id = saved_iap.value("service_id").toString();
                 cpPriv->service_type = saved_iap.value("service_type").toString();
@@ -480,6 +480,7 @@
             ptr->isValid = true;
             if (toIcdConfig(ptr)->iap_type != iap_type) {
                 toIcdConfig(ptr)->iap_type = iap_type;
+                ptr->bearerType = bearerTypeFromIapType(iap_type);
                 update_needed = true;
             }
             if (iap_type.startsWith(QLatin1String("WLAN"))) {
@@ -522,8 +523,6 @@
 
 void QIcdEngine::doRequestUpdate(QList<Maemo::IcdScanResult> scanned)
 {
-    QMutexLocker locker(&mutex);
-
     /* Contains all known iap_ids from storage */
     QList<QString> knownConfigs = accessPointConfigurations.keys();
 
@@ -580,6 +579,7 @@
             cpPriv->network_id = ssid;
             cpPriv->network_attrs = getNetworkAttrs(true, iap_id, iap_type, QString());
             cpPriv->iap_type = iap_type;
+            cpPriv->bearerType = bearerTypeFromIapType(iap_type);
             cpPriv->service_id = saved_ap.value("service_id").toString();
             cpPriv->service_type = saved_ap.value("service_type").toString();
             cpPriv->type = QNetworkConfiguration::InternetAccessPoint;
@@ -588,9 +588,9 @@
             QNetworkConfigurationPrivatePointer ptr(cpPriv);
             accessPointConfigurations.insert(iap_id, ptr);
 
-            locker.unlock();
+            mutex.unlock();
             emit configurationAdded(ptr);
-            locker.relock();
+            mutex.lock();
 
 #ifdef BEARER_MANAGEMENT_DEBUG
             qDebug("IAP: %s, name: %s, ssid: %s, added to known list",
@@ -625,7 +625,11 @@
                         changed = true;
                     }
 
-                    if (ptr->state != QNetworkConfiguration::Discovered) {
+                    /* If this config is the current active one, we do not set it
+                     * to discovered.
+                     */
+                    if ((ptr->state != QNetworkConfiguration::Discovered) &&
+                        (ptr->state != QNetworkConfiguration::Active)) {
                         ptr->state = QNetworkConfiguration::Discovered;
                         changed = true;
                     }
@@ -643,9 +647,9 @@
                     ptr->mutex.unlock();
 
                     if (changed) {
-                        locker.unlock();
+                        mutex.unlock();
                         emit configurationChanged(ptr);
-                        locker.relock();
+                        mutex.lock();
                     }
 
                     if (!ap.scan.network_type.startsWith(QLatin1String("WLAN")))
@@ -688,6 +692,7 @@
                     cpPriv->id = scanned_ssid.data();  // Note: id is now ssid, it should be set to IAP id if the IAP is saved
                     cpPriv->network_id = scanned_ssid;
                     cpPriv->iap_type = ap.scan.network_type;
+                    cpPriv->bearerType = bearerTypeFromIapType(cpPriv->iap_type);
                     cpPriv->network_attrs = ap.scan.network_attrs;
                     cpPriv->service_id = ap.scan.service_id;
                     cpPriv->service_type = ap.scan.service_type;
@@ -703,9 +708,9 @@
                     QNetworkConfigurationPrivatePointer ptr(cpPriv);
                     accessPointConfigurations.insert(ptr->id, ptr);
 
-                    locker.unlock();
+                    mutex.unlock();
                     emit configurationAdded(ptr);
-                    locker.relock();
+                    mutex.lock();
                 } else {
                     knownConfigs.removeOne(scanned_ssid);
                 }
@@ -733,9 +738,9 @@
                     ptr->state = QNetworkConfiguration::Defined;
 
                     configLocker.unlock();
-                    locker.unlock();
+                    mutex.unlock();
                     emit configurationChanged(ptr);
-                    locker.relock();
+                    mutex.lock();
                 }
             }
         }
@@ -744,9 +749,9 @@
         foreach (const QString &oldIface, knownConfigs) {
             QNetworkConfigurationPrivatePointer ptr = accessPointConfigurations.take(oldIface);
             if (ptr) {
-                locker.unlock();
+                mutex.unlock();
                 emit configurationRemoved(ptr);
-                locker.relock();
+                mutex.lock();
                 //if we would have SNAP support we would have to remove the references
                 //from existing ServiceNetworks to the removed access point configuration
             }
@@ -762,9 +767,9 @@
     }
 
     if (!firstUpdate) {
-        locker.unlock();
+        mutex.unlock();
         emit updateCompleted();
-        locker.relock();
+        mutex.lock();
     }
 
     if (firstUpdate)
@@ -781,18 +786,54 @@
 
 void QIcdEngine::startListeningStateSignalsForAllConnections()
 {
-    QMutexLocker locker(&mutex);
-
     // Start listening ICD_DBUS_API_STATE_SIG signals
     m_dbusInterface->connection().connect(ICD_DBUS_API_INTERFACE,
                                           ICD_DBUS_API_PATH,
                                           ICD_DBUS_API_INTERFACE,
                                           ICD_DBUS_API_STATE_SIG,
                                           this, SLOT(connectionStateSignalsSlot(QDBusMessage)));
+}
 
-    // Calling ICD_DBUS_API_STATE_REQ makes sure that initial state will be updated immediately
-    m_gettingInitialConnectionState = true;
-    m_dbusInterface->call(ICD_DBUS_API_STATE_REQ);
+void QIcdEngine::getIcdInitialState()
+{
+    /* Instead of requesting ICD status asynchronously, we ask it synchronously.
+     * It ensures that we always get right icd status BEFORE initialize() ends.
+     * If not, initialize()  might end before we got icd status and
+     * QNetworkConfigurationManager::updateConfigurations()
+     * call from user might also end before receiving icd status.
+     * In such case, we come up to a bug:
+     * QNetworkConfigurationManagerPrivate::isOnline() will be false even
+     * if we are connected.
+     */
+    Maemo::Icd icd;
+    QList<Maemo::IcdStateResult> state_results;
+    QNetworkConfigurationPrivatePointer ptr;
+
+    if (icd.state(state_results) && !state_results.isEmpty()) {
+
+        if (!(state_results.first().params.network_attrs == 0 &&
+              state_results.first().params.network_id.isEmpty())) {
+
+            switch (state_results.first().state) {
+            case ICD_STATE_CONNECTED:
+                m_onlineIapId = state_results.first().params.network_id;
+
+                ptr = accessPointConfigurations.value(m_onlineIapId);
+                if (ptr) {
+                    QMutexLocker configLocker(&ptr->mutex);
+                    ptr->state = QNetworkConfiguration::Active;
+                    configLocker.unlock();
+
+                    mutex.unlock();
+                    emit configurationChanged(ptr);
+                    mutex.lock();
+                }
+                break;
+            default:
+                break;
+            }
+        }
+    }
 }
 
 void QIcdEngine::connectionStateSignalsSlot(QDBusMessage msg)
@@ -817,12 +858,12 @@
             ptr->type = QNetworkConfiguration::InternetAccessPoint;
             if (ptr->state != QNetworkConfiguration::Active) {
                 ptr->state = QNetworkConfiguration::Active;
-                if (!m_gettingInitialConnectionState) {
-                    configLocker.unlock();
-                    locker.unlock();
-                    emit configurationChanged(ptr);
-                    locker.relock();
-                }
+
+                configLocker.unlock();
+                locker.unlock();
+                emit configurationChanged(ptr);
+                locker.relock();
+
                 m_onlineIapId = iapid;
             }
         } else {
@@ -843,22 +884,21 @@
             ptr->type = QNetworkConfiguration::InternetAccessPoint;
             if (ptr->state == QNetworkConfiguration::Active) {
                 ptr->state = QNetworkConfiguration::Discovered;
-                if (!m_gettingInitialConnectionState) {
-                    configLocker.unlock();
-                    locker.unlock();
-                    emit configurationChanged(ptr);
-                    locker.relock();
+
+                configLocker.unlock();
+                locker.unlock();
+                emit configurationChanged(ptr);
+                locker.relock();
 
-                    // Note: If ICD switches used IAP from one to another:
-                    //       1) new IAP is reported to be online first
-                    //       2) old IAP is reported to be offline then
-                    // => Device can be reported to be offline only
-                    //    if last known online IAP is reported to be disconnected
-                    if (iapid == m_onlineIapId) {
-                        // It's known that there is only one global ICD connection
-                        // => Because ICD state was reported to be DISCONNECTED, Device is offline
-                        m_onlineIapId.clear();
-                    }
+                // Note: If ICD switches used IAP from one to another:
+                //       1) new IAP is reported to be online first
+                //       2) old IAP is reported to be offline then
+                // => Device can be reported to be offline only
+                //    if last known online IAP is reported to be disconnected
+                if (iapid == m_onlineIapId) {
+                    // It's known that there is only one global ICD connection
+                    // => Because ICD state was reported to be DISCONNECTED, Device is offline
+                    m_onlineIapId.clear();
                 }
             }
         } else {
@@ -879,8 +919,6 @@
     locker.unlock();
     emit iapStateChanged(iapid, icd_connection_state);
     locker.relock();
-
-    m_gettingInitialConnectionState = false;
 }
 
 void QIcdEngine::requestUpdate()
@@ -906,8 +944,6 @@
 
 void QIcdEngine::cancelAsyncConfigurationUpdate()
 {
-    QMutexLocker locker(&mutex);
-
     if (!m_scanGoingOn) {
         return;
     }
@@ -947,7 +983,9 @@
     if (icd_scan_status == ICD_SCAN_COMPLETE) {
         m_typesToBeScanned.removeOne(arguments[6].toString());
         if (!m_typesToBeScanned.count()) {
+            locker.unlock();
             finishAsyncConfigurationUpdate();
+            locker.relock();
         }
     } else {
         Maemo::IcdScanResult scanResult;
@@ -977,7 +1015,8 @@
         m_scanTimer.stop();
         m_dbusInterface->call(ICD_DBUS_API_SCAN_CANCEL);
     }
-    iapMonitor->cleanup();
+    if (iapMonitor)
+        iapMonitor->cleanup();
 }
 
 bool QIcdEngine::hasIdentifier(const QString &id)
--- a/src/plugins/bearer/icd/qicdengine.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/plugins/bearer/icd/qicdengine.h	Mon Oct 04 01:19:32 2010 +0300
@@ -54,13 +54,25 @@
 class IapMonitor;
 class QDBusInterface;
 
+inline QNetworkConfiguration::BearerType bearerTypeFromIapType(const QString &iapType)
+{
+    if (iapType == QLatin1String("WLAN_INFRA") ||
+        iapType == QLatin1String("WLAN_ADHOC")) {
+        return QNetworkConfiguration::BearerWLAN;
+    } else if (iapType == QLatin1String("GPRS")) {
+        return QNetworkConfiguration::BearerHSPA;
+    } else {
+        return QNetworkConfiguration::BearerUnknown;
+    }
+}
+
 class IcdNetworkConfigurationPrivate : public QNetworkConfigurationPrivate
 {
 public:
     IcdNetworkConfigurationPrivate();
     ~IcdNetworkConfigurationPrivate();
 
-    QString bearerName() const;
+    virtual QString bearerTypeName() const;
 
     // In Maemo the id field (defined in QNetworkConfigurationPrivate)
     // is the IAP id (which typically is UUID)
@@ -114,13 +126,13 @@
         QMutexLocker locker(&mutex);
 
         accessPointConfigurations.insert(ptr->id, ptr);
+
+        locker.unlock();
         emit configurationAdded(ptr);
     }
 
     inline void changedSessionConfiguration(QNetworkConfigurationPrivatePointer ptr)
     {
-        QMutexLocker locker(&mutex);
-
         emit configurationChanged(ptr);
     }
 
@@ -132,14 +144,15 @@
     void iapStateChanged(const QString& iapid, uint icd_connection_state);
 
 private Q_SLOTS:
-    void doRequestUpdate(QList<Maemo::IcdScanResult> scanned = QList<Maemo::IcdScanResult>());
-    void cancelAsyncConfigurationUpdate();
     void finishAsyncConfigurationUpdate();
     void asyncUpdateConfigurationsSlot(QDBusMessage msg);
     void connectionStateSignalsSlot(QDBusMessage msg);
 
 private:
     void startListeningStateSignalsForAllConnections();
+    void doRequestUpdate(QList<Maemo::IcdScanResult> scanned = QList<Maemo::IcdScanResult>());
+    void cancelAsyncConfigurationUpdate();
+    void getIcdInitialState();
 
 private:
     IapMonitor *iapMonitor;
@@ -150,7 +163,6 @@
     QList<Maemo::IcdScanResult> m_scanResult;
 
     bool firstUpdate;
-    bool m_gettingInitialConnectionState;
     bool m_scanGoingOn;
 };
 
--- a/src/plugins/bearer/icd/qnetworksession_impl.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/plugins/bearer/icd/qnetworksession_impl.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -235,7 +235,7 @@
 }
 
 
-quint64 QNetworkSessionPrivateImpl::getStatistics(bool sent) const
+QNetworkSessionPrivateImpl::Statistics QNetworkSessionPrivateImpl::getStatistics() const
 {
     /* This could be also implemented by using the Maemo::Icd::statistics()
      * that gets the statistics data for a specific IAP. Change if
@@ -243,56 +243,51 @@
      */
     Maemo::Icd icd;
     QList<Maemo::IcdStatisticsResult> stats_results;
-    quint64 counter_rx = 0, counter_tx = 0;
+    Statistics stats = { 0, 0, 0};
 
-    if (!icd.statistics(stats_results)) {
-	return 0;
-    }
+    if (!icd.statistics(stats_results))
+        return stats;
 
     foreach (const Maemo::IcdStatisticsResult &res, stats_results) {
-	if (res.params.network_attrs & ICD_NW_ATTR_IAPNAME) {
-	    /* network_id is the IAP UUID */
-	    if (QString(res.params.network_id.data()) == activeConfig.identifier()) {
-		counter_tx = res.bytes_sent;
-		counter_rx = res.bytes_received;
-	    }
-	} else {
-	    /* We probably will never get to this branch */
-        IcdNetworkConfigurationPrivate *icdConfig =
-            toIcdConfig(privateConfiguration(activeConfig));
+        if (res.params.network_attrs & ICD_NW_ATTR_IAPNAME) {
+            /* network_id is the IAP UUID */
+            if (QString(res.params.network_id.data()) == activeConfig.identifier()) {
+                stats.txData = res.bytes_sent;
+                stats.rxData = res.bytes_received;
+                stats.activeTime = res.time_active;
+            }
+        } else {
+            /* We probably will never get to this branch */
+            IcdNetworkConfigurationPrivate *icdConfig =
+                toIcdConfig(privateConfiguration(activeConfig));
 
-        icdConfig->mutex.lock();
-        if (res.params.network_id == icdConfig->network_id) {
-            counter_tx = res.bytes_sent;
-            counter_rx = res.bytes_received;
-	    }
-        icdConfig->mutex.unlock();
-	}
+            icdConfig->mutex.lock();
+            if (res.params.network_id == icdConfig->network_id) {
+                stats.txData = res.bytes_sent;
+                stats.rxData = res.bytes_received;
+                stats.activeTime = res.time_active;
+            }
+            icdConfig->mutex.unlock();
+        }
     }
 
-    if (sent)
-	return counter_tx;
-    else
-	return counter_rx;
+    return stats;
 }
 
 
 quint64 QNetworkSessionPrivateImpl::bytesWritten() const
 {
-    return getStatistics(true);
+    return getStatistics().txData;
 }
 
 quint64 QNetworkSessionPrivateImpl::bytesReceived() const
 {
-    return getStatistics(false);
+    return getStatistics().rxData;
 }
 
 quint64 QNetworkSessionPrivateImpl::activeTime() const
 {
-    if (startTime.isNull()) {
-        return 0;
-    }
-    return startTime.secsTo(QDateTime::currentDateTime());
+    return getStatistics().activeTime;
 }
 
 
@@ -323,6 +318,7 @@
     cpPriv->purpose = fromPriv->purpose;
     cpPriv->network_id = fromPriv->network_id;
     cpPriv->iap_type = fromPriv->iap_type;
+    cpPriv->bearerType = fromPriv->bearerType;
     cpPriv->network_attrs = fromPriv->network_attrs;
     cpPriv->service_type = fromPriv->service_type;
     cpPriv->service_id = fromPriv->service_id;
@@ -343,8 +339,6 @@
     isOpen = false;
     opened = false;
 
-    connect(&manager, SIGNAL(updateCompleted()), this, SLOT(networkConfigurationsChanged()));
-
     connect(engine, SIGNAL(iapStateChanged(const QString&, uint)),
             this, SLOT(iapStateChanged(const QString&, uint)));
 
@@ -448,6 +442,7 @@
             ptr->id = toIcdConfig(ptr)->network_id;
             toIcdConfig(ptr)->network_attrs = state_results.first().params.network_attrs;
             toIcdConfig(ptr)->iap_type = state_results.first().params.network_type;
+            ptr->bearerType = bearerTypeFromIapType(toIcdConfig(ptr)->iap_type);
             toIcdConfig(ptr)->service_type = state_results.first().params.service_type;
             toIcdConfig(ptr)->service_id = state_results.first().params.service_id;
             toIcdConfig(ptr)->service_attrs = state_results.first().params.service_attrs;
@@ -463,14 +458,15 @@
 			else
                 ptr->name = ptr->id;
 
+            const QString identifier = ptr->id;
+
+            configLocker.unlock();
+
             // Add the new active configuration to manager or update the old config
-            if (!engine->hasIdentifier(ptr->id)) {
-                configLocker.unlock();
+            if (!engine->hasIdentifier(identifier))
                 engine->addSessionConfiguration(ptr);
-            } else {
-                configLocker.unlock();
+            else
                 engine->changedSessionConfiguration(ptr);
-            }
         }
         break;
 
@@ -824,6 +820,7 @@
             icdConfig->name = name;
 
         icdConfig->iap_type = rep.arguments().at(3).toString(); // connect_result.connect.network_type;
+        icdConfig->bearerType = bearerTypeFromIapType(icdConfig->iap_type);
         icdConfig->isValid = true;
         icdConfig->state = QNetworkConfiguration::Active;
         icdConfig->type = QNetworkConfiguration::InternetAccessPoint;
@@ -891,12 +888,12 @@
 	    state = QNetworkSession::Closing;
 	    emit stateChanged(state);
 
+	    // we fake a disconnection, session error is sent
+	    updateState(QNetworkSession::Disconnected);
+
 	    opened = false;
 	    isOpen = false;
 
-	    // we fake a disconnection, session error is not sent
-	    updateState(QNetworkSession::Disconnected);
-
 	    icd.disconnect(ICD_CONNECTION_FLAG_APPLICATION_EVENT);
 	    startTime = QDateTime();
         } else {
--- a/src/plugins/bearer/icd/qnetworksession_impl.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/plugins/bearer/icd/qnetworksession_impl.h	Mon Oct 04 01:19:32 2010 +0300
@@ -170,6 +170,12 @@
     QNetworkConfigurationManager manager;
     QIcdEngine *engine;
 
+    struct Statistics {
+        quint64 txData;
+        quint64 rxData;
+        quint64 activeTime;
+    };
+
     // The config set on QNetworkSession.
     QNetworkConfiguration config;
 
@@ -186,7 +192,7 @@
     friend class IcdListener;
     void updateState(QNetworkSession::State);
     void updateIdentifier(const QString &newId);
-    quint64 getStatistics(bool sent) const;
+    Statistics getStatistics() const;
     void cleanupSession(void);
 
     void updateProxyInformation();
--- a/src/plugins/bearer/nativewifi/qnativewifiengine.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/plugins/bearer/nativewifi/qnativewifiengine.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -206,7 +206,7 @@
                 ptr->id = id;
                 ptr->state = state;
                 ptr->type = QNetworkConfiguration::InternetAccessPoint;
-                ptr->bearer = QLatin1String("WLAN");
+                ptr->bearerType = QNetworkConfiguration::BearerWLAN;
 
                 accessPointConfigurations.insert(id, ptr);
 
@@ -350,11 +350,6 @@
     return false;
 }
 
-/*QString QNativeWifiEngine::bearerName(const QString &)
-{
-    return QLatin1String("WLAN");
-}*/
-
 void QNativeWifiEngine::connectToId(const QString &id)
 {
     QMutexLocker locker(&mutex);
--- a/src/plugins/bearer/nativewifi/qnativewifiengine.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/plugins/bearer/nativewifi/qnativewifiengine.h	Mon Oct 04 01:19:32 2010 +0300
@@ -75,8 +75,6 @@
     QString getInterfaceFromId(const QString &id);
     bool hasIdentifier(const QString &id);
 
-    //QString bearerName(const QString &id);
-
     void connectToId(const QString &id);
     void disconnectFromId(const QString &id);
 
--- a/src/plugins/bearer/networkmanager/qnetworkmanagerengine.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/plugins/bearer/networkmanager/qnetworkmanagerengine.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -104,14 +104,23 @@
     QMutexLocker locker(&mutex);
 
     // Get current list of access points.
-    foreach (const QDBusObjectPath &devicePath, interface->getDevices())
+    foreach (const QDBusObjectPath &devicePath, interface->getDevices()) {
+        locker.unlock();
         deviceAdded(devicePath);
+        locker.relock();
+    }
 
     // Get connections.
-    foreach (const QDBusObjectPath &settingsPath, systemSettings->listConnections())
+    foreach (const QDBusObjectPath &settingsPath, systemSettings->listConnections()) {
+        locker.unlock();
         newConnection(settingsPath, systemSettings);
-    foreach (const QDBusObjectPath &settingsPath, userSettings->listConnections())
+        locker.relock();
+    }
+    foreach (const QDBusObjectPath &settingsPath, userSettings->listConnections()) {
+        locker.unlock();
         newConnection(settingsPath, userSettings);
+        locker.relock();
+    }
 
     // Get active connections.
     foreach (const QDBusObjectPath &acPath, interface->activeConnections()) {
@@ -132,11 +141,6 @@
     return interface->isValid();
 }
 
-void QNetworkManagerEngine::doRequestUpdate()
-{
-    emit updateCompleted();
-}
-
 QString QNetworkManagerEngine::getInterfaceFromId(const QString &id)
 {
     QMutexLocker locker(&mutex);
@@ -181,30 +185,6 @@
     return false;
 }
 
-QString QNetworkManagerEngine::bearerName(const QString &id)
-{
-    QMutexLocker locker(&mutex);
-
-    QNetworkManagerSettingsConnection *connection = connectionFromId(id);
-
-    if (!connection)
-        return QString();
-
-    QNmSettingsMap map = connection->getSettings();
-    const QString connectionType = map.value("connection").value("type").toString();
-
-    if (connectionType == "802-3-ethernet")
-        return QLatin1String("Ethernet");
-    else if (connectionType == "802-11-wireless")
-        return QLatin1String("WLAN");
-    else if (connectionType == "gsm")
-        return QLatin1String("2G");
-    else if (connectionType == "cdma")
-        return QLatin1String("CDMA2000");
-    else
-        return QString();
-}
-
 void QNetworkManagerEngine::connectToId(const QString &id)
 {
     QMutexLocker locker(&mutex);
@@ -257,9 +237,7 @@
 
 void QNetworkManagerEngine::requestUpdate()
 {
-    QMutexLocker locker(&mutex);
-
-    QTimer::singleShot(0, this, SLOT(doRequestUpdate()));
+    QMetaObject::invokeMethod(this, "updateCompleted", Qt::QueuedConnection);
 }
 
 void QNetworkManagerEngine::interfacePropertiesChanged(const QString &path,
@@ -385,13 +363,10 @@
 
 void QNetworkManagerEngine::deviceAdded(const QDBusObjectPath &path)
 {
-    QMutexLocker locker(&mutex);
-
     QNetworkManagerInterfaceDevice device(path.path());
     if (device.deviceType() == DEVICE_TYPE_802_11_WIRELESS) {
         QNetworkManagerInterfaceDeviceWireless *wirelessDevice =
             new QNetworkManagerInterfaceDeviceWireless(device.connectionInterface()->path());
-        wirelessDevices.insert(path.path(), wirelessDevice);
 
         wirelessDevice->setConnections();
         connect(wirelessDevice, SIGNAL(accessPointAdded(QString,QDBusObjectPath)),
@@ -403,6 +378,10 @@
 
         foreach (const QDBusObjectPath &apPath, wirelessDevice->getAccessPoints())
             newAccessPoint(QString(), apPath);
+
+        mutex.lock();
+        wirelessDevices.insert(path.path(), wirelessDevice);
+        mutex.unlock();
     }
 }
 
@@ -611,7 +590,7 @@
         ptr->purpose = QNetworkConfiguration::PublicPurpose;
     }
     ptr->state = QNetworkConfiguration::Undefined;
-    ptr->bearer = QLatin1String("WLAN");
+    ptr->bearerType = QNetworkConfiguration::BearerWLAN;
 
     accessPointConfigurations.insert(ptr->id, ptr);
 
@@ -709,8 +688,6 @@
                                                                      const QString &settingsPath,
                                                                      const QNmSettingsMap &map)
 {
-    QMutexLocker locker(&mutex);
-
     QNetworkConfigurationPrivate *cpPriv = new QNetworkConfigurationPrivate;
     cpPriv->name = map.value("connection").value("id").toString();
     cpPriv->isValid = true;
@@ -724,7 +701,7 @@
     const QString connectionType = map.value("connection").value("type").toString();
 
     if (connectionType == QLatin1String("802-3-ethernet")) {
-        cpPriv->bearer = QLatin1String("Ethernet");
+        cpPriv->bearerType = QNetworkConfiguration::BearerEthernet;
         cpPriv->purpose = QNetworkConfiguration::PublicPurpose;
 
         foreach (const QDBusObjectPath &devicePath, interface->getDevices()) {
@@ -739,7 +716,7 @@
             }
         }
     } else if (connectionType == QLatin1String("802-11-wireless")) {
-        cpPriv->bearer = QLatin1String("WLAN");
+        cpPriv->bearerType = QNetworkConfiguration::BearerWLAN;
 
         const QString connectionSsid = map.value("802-11-wireless").value("ssid").toString();
         const QString connectionSecurity = map.value("802-11-wireless").value("security").toString();
@@ -759,17 +736,17 @@
                     QNetworkConfigurationPrivatePointer ptr =
                         accessPointConfigurations.take(accessPointId);
 
-                    locker.unlock();
+                    mutex.unlock();
                     emit configurationRemoved(ptr);
-                    locker.relock();
+                    mutex.lock();
                 }
                 break;
             }
         }
     } else if (connectionType == "gsm") {
-        cpPriv->bearer = QLatin1String("2G");
+        cpPriv->bearerType = QNetworkConfiguration::Bearer2G;
     } else if (connectionType == "cdma") {
-        cpPriv->bearer = QLatin1String("CDMA2000");
+        cpPriv->bearerType = QNetworkConfiguration::BearerCDMA2000;
     }
 
     return cpPriv;
@@ -777,8 +754,6 @@
 
 QNetworkManagerSettingsConnection *QNetworkManagerEngine::connectionFromId(const QString &id) const
 {
-    QMutexLocker locker(&mutex);
-
     for (int i = 0; i < connections.count(); ++i) {
         QNetworkManagerSettingsConnection *connection = connections.at(i);
         const QString service = connection->connectionInterface()->service();
--- a/src/plugins/bearer/networkmanager/qnetworkmanagerengine.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/plugins/bearer/networkmanager/qnetworkmanagerengine.h	Mon Oct 04 01:19:32 2010 +0300
@@ -78,8 +78,6 @@
     QString getInterfaceFromId(const QString &id);
     bool hasIdentifier(const QString &id);
 
-    QString bearerName(const QString &id);
-
     void connectToId(const QString &id);
     void disconnectFromId(const QString &id);
 
@@ -118,8 +116,6 @@
     void removeAccessPoint(const QString &path, const QDBusObjectPath &objectPath);
     void updateAccessPoint(const QMap<QString, QVariant> &map);
 
-    void doRequestUpdate();
-
 private:
     QNetworkConfigurationPrivate *parseConnection(const QString &service,
                                                   const QString &settingsPath,
--- a/src/plugins/bearer/networkmanager/qnetworkmanagerservice.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/plugins/bearer/networkmanager/qnetworkmanagerservice.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -718,146 +718,80 @@
 
 NMDeviceType QNetworkManagerSettingsConnection::getType()
 {
-    QNmSettingsMap::const_iterator i = d->settingsMap.find(QLatin1String("connection"));
-    while (i != d->settingsMap.end() && i.key() == QLatin1String("connection")) {
-        QMap<QString,QVariant> innerMap = i.value();
-        QMap<QString,QVariant>::const_iterator ii = innerMap.find(QLatin1String("type"));
-        while (ii != innerMap.end() && ii.key() == QLatin1String("type")) {
-            QString devType = ii.value().toString();
-            if (devType == QLatin1String("802-3-ethernet")) {
-                return 	DEVICE_TYPE_802_3_ETHERNET;
-            }
-            if (devType == QLatin1String("802-11-wireless")) {
-                return 	DEVICE_TYPE_802_11_WIRELESS;
-            }
-            ii++;
-        }
-        i++;
-    }
-    return 	DEVICE_TYPE_UNKNOWN;
+    const QString devType =
+        d->settingsMap.value(QLatin1String("connection")).value(QLatin1String("type")).toString();
+
+    if (devType == QLatin1String("802-3-ethernet"))
+        return DEVICE_TYPE_802_3_ETHERNET;
+    else if (devType == QLatin1String("802-11-wireless"))
+        return DEVICE_TYPE_802_11_WIRELESS;
+    else
+        return DEVICE_TYPE_UNKNOWN;
 }
 
 bool QNetworkManagerSettingsConnection::isAutoConnect()
 {
-    QNmSettingsMap::const_iterator i = d->settingsMap.find(QLatin1String("connection"));
-    while (i != d->settingsMap.end() && i.key() == QLatin1String("connection")) {
-        QMap<QString,QVariant> innerMap = i.value();
-        QMap<QString,QVariant>::const_iterator ii = innerMap.find(QLatin1String("autoconnect"));
-        while (ii != innerMap.end() && ii.key() == QLatin1String("autoconnect")) {
-            return ii.value().toBool();
-            ii++;
-        }
-        i++;
-    }
-    return true; //default networkmanager is autoconnect
+    const QVariant autoConnect =
+        d->settingsMap.value(QLatin1String("connection")).value(QLatin1String("autoconnect"));
+
+    // NetworkManager default is to auto connect
+    if (!autoConnect.isValid())
+        return true;
+
+    return autoConnect.toBool();
 }
 
 quint64 QNetworkManagerSettingsConnection::getTimestamp()
 {
-    QNmSettingsMap::const_iterator i = d->settingsMap.find(QLatin1String("connection"));
-    while (i != d->settingsMap.end() && i.key() == QLatin1String("connection")) {
-        QMap<QString,QVariant> innerMap = i.value();
-        QMap<QString,QVariant>::const_iterator ii = innerMap.find(QLatin1String("timestamp"));
-        while (ii != innerMap.end() && ii.key() == QLatin1String("timestamp")) {
-            return ii.value().toUInt();
-            ii++;
-        }
-        i++;
-    }
-    return 	0;
+    qDebug() << d->settingsMap.value(QLatin1String("connection"));
+
+    return d->settingsMap.value(QLatin1String("connection"))
+                         .value(QLatin1String("timestamp")).toUInt();
 }
 
 QString QNetworkManagerSettingsConnection::getId()
 {
-    QNmSettingsMap::const_iterator i = d->settingsMap.find(QLatin1String("connection"));
-    while (i != d->settingsMap.end() && i.key() == QLatin1String("connection")) {
-        QMap<QString,QVariant> innerMap = i.value();
-        QMap<QString,QVariant>::const_iterator ii = innerMap.find(QLatin1String("id"));
-        while (ii != innerMap.end() && ii.key() == QLatin1String("id")) {
-            return ii.value().toString();
-            ii++;
-        }
-        i++;
-    }
-    return 	QString();
+    return d->settingsMap.value(QLatin1String("connection")).value(QLatin1String("id")).toString();
 }
 
 QString QNetworkManagerSettingsConnection::getUuid()
 {
-    QNmSettingsMap::const_iterator i = d->settingsMap.find(QLatin1String("connection"));
-    while (i != d->settingsMap.end() && i.key() == QLatin1String("connection")) {
-        QMap<QString,QVariant> innerMap = i.value();
-        QMap<QString,QVariant>::const_iterator ii = innerMap.find(QLatin1String("uuid"));
-        while (ii != innerMap.end() && ii.key() == QLatin1String("uuid")) {
-            return ii.value().toString();
-            ii++;
-        }
-        i++;
-    }
+    const QString id = d->settingsMap.value(QLatin1String("connection"))
+                                     .value(QLatin1String("uuid")).toString();
+
     // is no uuid, return the connection path
-    return 	d->connectionInterface->path();
+    return id.isEmpty() ? d->connectionInterface->path() : id;
 }
 
 QString QNetworkManagerSettingsConnection::getSsid()
 {
-    QNmSettingsMap::const_iterator i = d->settingsMap.find(QLatin1String("802-11-wireless"));
-    while (i != d->settingsMap.end() && i.key() == QLatin1String("802-11-wireless")) {
-        QMap<QString,QVariant> innerMap = i.value();
-        QMap<QString,QVariant>::const_iterator ii = innerMap.find(QLatin1String("ssid"));
-        while (ii != innerMap.end() && ii.key() == QLatin1String("ssid")) {
-            return ii.value().toString();
-            ii++;
-        }
-        i++;
-    }
-    return 	QString();
+    return d->settingsMap.value(QLatin1String("802-11-wireless"))
+                         .value(QLatin1String("ssid")).toString();
 }
 
 QString QNetworkManagerSettingsConnection::getMacAddress()
 {
-    if(getType() == DEVICE_TYPE_802_3_ETHERNET) {
-        QNmSettingsMap::const_iterator i = d->settingsMap.find(QLatin1String("802-3-ethernet"));
-        while (i != d->settingsMap.end() && i.key() == QLatin1String("802-3-ethernet")) {
-            QMap<QString,QVariant> innerMap = i.value();
-            QMap<QString,QVariant>::const_iterator ii = innerMap.find(QLatin1String("mac-address"));
-            while (ii != innerMap.end() && ii.key() == QLatin1String("mac-address")) {
-                return ii.value().toString();
-                ii++;
-            }
-            i++;
-        }
-    }
+    NMDeviceType type = getType();
 
-    else if(getType() == DEVICE_TYPE_802_11_WIRELESS) {
-        QNmSettingsMap::const_iterator i = d->settingsMap.find(QLatin1String("802-11-wireless"));
-        while (i != d->settingsMap.end() && i.key() == QLatin1String("802-11-wireless")) {
-            QMap<QString,QVariant> innerMap = i.value();
-            QMap<QString,QVariant>::const_iterator ii = innerMap.find(QLatin1String("mac-address"));
-            while (ii != innerMap.end() && ii.key() == QLatin1String("mac-address")) {
-                return ii.value().toString();
-                ii++;
-            }
-            i++;
-        }
+    if (type == DEVICE_TYPE_802_3_ETHERNET) {
+        return d->settingsMap.value(QLatin1String("802-3-ethernet"))
+                             .value(QLatin1String("mac-address")).toString();
+    } else if (type == DEVICE_TYPE_802_11_WIRELESS) {
+        return d->settingsMap.value(QLatin1String("802-11-wireless"))
+                             .value(QLatin1String("mac-address")).toString();
+    } else {
+        return QString();
     }
-    return 	QString();
 }
 
-QStringList  QNetworkManagerSettingsConnection::getSeenBssids()
+QStringList QNetworkManagerSettingsConnection::getSeenBssids()
 {
- if(getType() == DEVICE_TYPE_802_11_WIRELESS) {
-        QNmSettingsMap::const_iterator i = d->settingsMap.find(QLatin1String("802-11-wireless"));
-        while (i != d->settingsMap.end() && i.key() == QLatin1String("802-11-wireless")) {
-            QMap<QString,QVariant> innerMap = i.value();
-            QMap<QString,QVariant>::const_iterator ii = innerMap.find(QLatin1String("seen-bssids"));
-            while (ii != innerMap.end() && ii.key() == QLatin1String("seen-bssids")) {
-                return ii.value().toStringList();
-                ii++;
-            }
-            i++;
-        }
+    if (getType() == DEVICE_TYPE_802_11_WIRELESS) {
+        return d->settingsMap.value(QLatin1String("802-11-wireless"))
+                             .value(QLatin1String("seen-bssids")).toStringList();
+    } else {
+        return QStringList();
     }
- return QStringList();
 }
 
 class QNetworkManagerConnectionActivePrivate
--- a/src/plugins/bearer/nla/qnlaengine.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/plugins/bearer/nla/qnlaengine.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -119,7 +119,7 @@
 }
 #endif
 
-static QString qGetInterfaceType(const QString &interface)
+static QNetworkConfiguration::BearerType qGetInterfaceType(const QString &interface)
 {
 #ifdef Q_OS_WINCE
     Q_UNUSED(interface)
@@ -130,10 +130,10 @@
     NDIS_MEDIUM medium;
     NDIS_PHYSICAL_MEDIUM physicalMedium;
 
-    HANDLE handle = CreateFile((TCHAR *)QString(QLatin1String("\\\\.\\%1")).arg(interface).utf16(),
-                               0, FILE_SHARE_READ, 0, OPEN_EXISTING, 0, 0);
+    HANDLE handle = CreateFile((TCHAR *)QString::fromLatin1("\\\\.\\%1").arg(interface).utf16(), 0,
+                               FILE_SHARE_READ, 0, OPEN_EXISTING, 0, 0);
     if (handle == INVALID_HANDLE_VALUE)
-        return QLatin1String("Unknown");
+        return QNetworkConfiguration::BearerUnknown;
 
     oid = OID_GEN_MEDIA_SUPPORTED;
     bytesWritten = 0;
@@ -141,7 +141,7 @@
                                   &medium, sizeof(medium), &bytesWritten, 0);
     if (!result) {
         CloseHandle(handle);
-        return QLatin1String("Unknown");
+        return QNetworkConfiguration::BearerUnknown;
     }
 
     oid = OID_GEN_PHYSICAL_MEDIUM;
@@ -152,9 +152,9 @@
         CloseHandle(handle);
 
         if (medium == NdisMedium802_3)
-            return QLatin1String("Ethernet");
+            return QNetworkConfiguration::BearerEthernet;
         else
-            return QLatin1String("Unknown");
+            return QNetworkConfiguration::BearerUnknown;
     }
 
     CloseHandle(handle);
@@ -162,16 +162,16 @@
     if (medium == NdisMedium802_3) {
         switch (physicalMedium) {
         case NdisPhysicalMediumWirelessLan:
-            return QLatin1String("WLAN");
+            return QNetworkConfiguration::BearerWLAN;
         case NdisPhysicalMediumBluetooth:
-            return QLatin1String("Bluetooth");
+            return QNetworkConfiguration::BearerBluetooth;
         case NdisPhysicalMediumWiMax:
-            return QLatin1String("WiMAX");
+            return QNetworkConfiguration::BearerWiMAX;
         default:
 #ifdef BEARER_MANAGEMENT_DEBUG
             qDebug() << "Physical Medium" << physicalMedium;
 #endif
-            return QLatin1String("Ethernet");
+            return QNetworkConfiguration::BearerEthernet;
         }
     }
 
@@ -181,7 +181,7 @@
 
 #endif
 
-    return QLatin1String("Unknown");
+    return QNetworkConfiguration::BearerUnknown;
 }
 
 class QNlaThread : public QThread
@@ -374,10 +374,9 @@
 #endif
         break;
     case NLA_CONNECTIVITY:
-        if (blob->data.connectivity.internet == NLA_INTERNET_YES)
-            cpPriv->internet = true;
-        else
-            cpPriv->internet = false;
+#ifdef BEARER_MANAGEMENT_DEBUG
+        qDebug("%s: unhandled header type NLA_CONNECTIVITY", __FUNCTION__);
+#endif
         break;
     case NLA_ICS:
 #ifdef BEARER_MANAGEMENT_DEBUG
@@ -438,8 +437,10 @@
         } while (offset != 0 && offset < querySet->lpBlob->cbSize);
     }
 
-    if (QNlaEngine *engine = qobject_cast<QNlaEngine *>(parent()))
-        cpPriv->bearer = engine->bearerName(cpPriv->id);
+    if (QNlaEngine *engine = qobject_cast<QNlaEngine *>(parent())) {
+        const QString interface = engine->getInterfaceFromId(cpPriv->id);
+        cpPriv->bearerType = qGetInterfaceType(interface);
+    }
 
     return cpPriv;
 }
@@ -586,16 +587,6 @@
     return configurationInterface.contains(id.toUInt());
 }
 
-QString QNlaEngine::bearerName(const QString &id)
-{
-    QString interface = getInterfaceFromId(id);
-
-    if (interface.isEmpty())
-        return QString();
-
-    return qGetInterfaceType(interface);
-}
-
 void QNlaEngine::connectToId(const QString &id)
 {
     emit connectionError(id, OperationNotSupported);
--- a/src/plugins/bearer/nla/qnlaengine.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/plugins/bearer/nla/qnlaengine.h	Mon Oct 04 01:19:32 2010 +0300
@@ -85,8 +85,6 @@
     QString getInterfaceFromId(const QString &id);
     bool hasIdentifier(const QString &id);
 
-    QString bearerName(const QString &id);
-
     void connectToId(const QString &id);
     void disconnectFromId(const QString &id);
 
--- a/src/plugins/bearer/symbian/3_1/3_1.pro	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/plugins/bearer/symbian/3_1/3_1.pro	Mon Oct 04 01:19:32 2010 +0300
@@ -1,5 +1,9 @@
 include(../symbian.pri)
 
-LIBS += -lapengine
+is_using_gnupoc {
+    LIBS += -lapengine
+} else {
+    LIBS += -lAPEngine
+}
 TARGET = $${TARGET}_3_1
 TARGET.UID3 = 0x2002131C
--- a/src/plugins/bearer/symbian/qnetworksession_impl.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/plugins/bearer/symbian/qnetworksession_impl.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -48,6 +48,14 @@
 #include <stdapis/sys/socket.h>
 #include <stdapis/net/if.h>
 
+#ifdef SNAP_FUNCTIONALITY_AVAILABLE
+#include <cmmanager.h>
+#endif
+
+#if defined(OCC_FUNCTIONALITY_AVAILABLE) && defined(SNAP_FUNCTIONALITY_AVAILABLE)
+#include <extendedconnpref.h>
+#endif
+
 #ifndef QT_NO_BEARERMANAGEMENT
 
 QT_BEGIN_NAMESPACE
@@ -102,19 +110,20 @@
     // Cancel possible RConnection::Start()
     Cancel();
     iSocketServ.Close();
-    
+
     // Close global 'Open C' RConnection
     // Clears also possible unsetdefaultif() flags.
     setdefaultif(0);
-    
+
     iConnectionMonitor.Close();
     iOpenCLibrary.Close();
 #ifdef QT_BEARERMGMT_SYMBIAN_DEBUG
-    qDebug() << "QNS this : " << QString::number((uint)this) << " - destroyed (and setdefaultif(0))";
+    qDebug() << "QNS this : " << QString::number((uint)this)
+             << " - destroyed (and setdefaultif(0))";
 #endif
 }
 
-void QNetworkSessionPrivateImpl::configurationStateChanged(TUint32 accessPointId, TUint32 connMonId, QNetworkSession::State newState)
+void QNetworkSessionPrivateImpl::configurationStateChanged(quint32 accessPointId, quint32 connMonId, QNetworkSession::State newState)
 {
     if (iHandleStateNotificationsFromManager) {
 #ifdef QT_BEARERMGMT_SYMBIAN_DEBUG
@@ -146,62 +155,67 @@
     }
 }
 
+void QNetworkSessionPrivateImpl::configurationAdded(QNetworkConfigurationPrivatePointer config)
+{
+    Q_UNUSED(config);
+    // If session is based on service network, some other app may create new access points
+    // to the SNAP --> synchronize session's state with that of interface's.
+    if (!publicConfig.isValid() || publicConfig.type() != QNetworkConfiguration::ServiceNetwork)
+        return;
+
+#ifdef QT_BEARERMGMT_SYMBIAN_DEBUG
+        qDebug() << "QNS this : " << QString::number((uint)this) << " - "
+                 << "configurationAdded IAP: "
+                 << toSymbianConfig(privateConfiguration(config))->numericIdentifier();
+#endif
+
+        syncStateWithInterface();
+}
+
+// Function sets the state of the session to match the state
+// of the underlying interface (the configuration this session is based on)
 void QNetworkSessionPrivateImpl::syncStateWithInterface()
 {
     if (!publicConfig.isValid())
         return;
 
-    if (iFirstSync && publicConfig.isValid()) {
-        QObject::connect(engine, SIGNAL(configurationStateChanged(TUint32, TUint32, QNetworkSession::State)),
-                         this, SLOT(configurationStateChanged(TUint32, TUint32, QNetworkSession::State)));
+    if (iFirstSync) {
+        QObject::connect(engine,
+                         SIGNAL(configurationStateChanged(quint32,quint32,QNetworkSession::State)),
+                         this,
+                         SLOT(configurationStateChanged(quint32,quint32,QNetworkSession::State)));
         // Listen to configuration removals, so that in case the configuration
         // this session is based on is removed, session knows to enter Invalid -state.
         QObject::connect(engine, SIGNAL(configurationRemoved(QNetworkConfigurationPrivatePointer)),
                          this, SLOT(configurationRemoved(QNetworkConfigurationPrivatePointer)));
+        // Connect to configuration additions, so that in case a configuration is added
+        // in a SNAP this session is based on, the session knows to synch its state with its
+        // interface.
+        QObject::connect(engine, SIGNAL(configurationAdded(QNetworkConfigurationPrivatePointer)),
+                         this, SLOT(configurationAdded(QNetworkConfigurationPrivatePointer)));
     }
     // Start listening IAP state changes from QNetworkConfigurationManagerPrivate
     iHandleStateNotificationsFromManager = true;    
 
-    // Check open connections to see if there is already
-    // an open connection to selected IAP or SNAP
-    TUint count;
-    TRequestStatus status;
-    iConnectionMonitor.GetConnectionCount(count, status);
-    User::WaitForRequest(status);
-    if (status.Int() != KErrNone) {
-        return;
-    }
-
-    TUint numSubConnections;
-    TUint connectionId;
-    for (TUint i = 1; i <= count; i++) {
-        TInt ret = iConnectionMonitor.GetConnectionInfo(i, connectionId, numSubConnections);
-        if (ret == KErrNone) {
-            TUint apId;
-            iConnectionMonitor.GetUintAttribute(connectionId, 0, KIAPId, apId, status);
-            User::WaitForRequest(status);
-            if (status.Int() == KErrNone) {
-                TInt connectionStatus;
-                iConnectionMonitor.GetIntAttribute(connectionId, 0, KConnectionStatus, connectionStatus, status);
-                User::WaitForRequest(status);
-                if (connectionStatus == KLinkLayerOpen) {
-                    if (state != QNetworkSession::Closing) {
-                        if (newState(QNetworkSession::Connected, apId)) {
-                            return;
-                        }
-                    }
-                }
-            }
-        }
-    }
-
-    if (state != QNetworkSession::Connected) {
-        if ((publicConfig.state() & QNetworkConfiguration::Discovered) ==
-            QNetworkConfiguration::Discovered) {
-            newState(QNetworkSession::Disconnected);
-        } else {
-            newState(QNetworkSession::NotAvailable);
-        }
+    // Check what is the state of the configuration this session is based on
+    // and set the session in appropriate state.
+#ifdef QT_BEARERMGMT_SYMBIAN_DEBUG
+    qDebug() << "QNS this : " << QString::number((uint)this) << " - "
+             << "syncStateWithInterface() state of publicConfig is: " << publicConfig.state();
+#endif
+    switch (publicConfig.state()) {
+    case QNetworkConfiguration::Active:
+        newState(QNetworkSession::Connected);
+        break;
+    case QNetworkConfiguration::Discovered:
+        newState(QNetworkSession::Disconnected);
+        break;
+    case QNetworkConfiguration::Defined:
+        newState(QNetworkSession::NotAvailable);
+        break;
+    case QNetworkConfiguration::Undefined:
+    default:
+        newState(QNetworkSession::Invalid);
     }
 }
 
@@ -253,7 +267,8 @@
              << "currentInterface() requested, state: " << state
              << "publicConfig validity: " << publicConfig.isValid();
     if (activeInterface.isValid())
-        qDebug() << "interface is: " << activeInterface.humanReadableName();
+        qDebug() << "QNS this : " << QString::number((uint)this) << " - "
+                 << "interface is: " << activeInterface.humanReadableName();
 #endif
 
     if (!publicConfig.isValid() || state != QNetworkSession::Connected) {
@@ -382,7 +397,7 @@
             SymbianNetworkConfigurationPrivate *symbianConfig =
                 toSymbianConfig(privateConfiguration(publicConfig));
 
-#ifdef OCC_FUNCTIONALITY_AVAILABLE
+#if defined(OCC_FUNCTIONALITY_AVAILABLE) && defined(SNAP_FUNCTIONALITY_AVAILABLE)
             // With One Click Connectivity (Symbian^3 onwards) it is possible
             // to connect silently, without any popups.
             TConnPrefList pref;
@@ -412,7 +427,7 @@
         SymbianNetworkConfigurationPrivate *symbianConfig =
             toSymbianConfig(privateConfiguration(publicConfig));
 
-#ifdef OCC_FUNCTIONALITY_AVAILABLE
+#if defined(OCC_FUNCTIONALITY_AVAILABLE) && defined(SNAP_FUNCTIONALITY_AVAILABLE)
         // On Symbian^3 if service network is not reachable, it triggers a UI (aka EasyWLAN) where
         // user can create new IAPs. To detect this, we need to store the number of IAPs
         // there was before connection was started.
@@ -519,7 +534,7 @@
     
     Cancel(); // closes iConnection
     iSocketServ.Close();
-    
+
     // Close global 'Open C' RConnection. If OpenC supports,
     // close the defaultif for good to avoid difficult timing
     // and bouncing issues of network going immediately back up
@@ -906,6 +921,14 @@
     if (iapId == 0) {
         _LIT(KSetting, "IAP\\Id");
         iConnection.GetIntSetting(KSetting, iapId);
+#ifdef SNAP_FUNCTIONALITY_AVAILABLE
+        // Check if this is an Easy WLAN configuration. On Symbian^3 RConnection may report
+        // the used configuration as 'EasyWLAN' IAP ID if someone has just opened the configuration
+        // from WLAN Scan dialog, _and_ that connection is still up. We need to find the
+        // real matching configuration. Function alters the Easy WLAN ID to real IAP ID (only if
+        // easy WLAN):
+        easyWlanTrueIapId(iapId);
+#endif
     }
 
 #ifdef SNAP_FUNCTIONALITY_AVAILABLE
@@ -944,12 +967,18 @@
                 }
             }
         } else {
-#ifdef OCC_FUNCTIONALITY_AVAILABLE
-            // On Symbian^3 (only, not earlier or Symbian^4) if the SNAP was not reachable, it triggers
-            // user choice type of activity (EasyWLAN). As a result, a new IAP may be created, and
-            // hence if was not found yet. Therefore update configurations and see if there is something new.
+#ifdef SNAP_FUNCTIONALITY_AVAILABLE
+            // On Symbian^3 (only, not earlier or Symbian^4) if the SNAP was not reachable, it
+            // triggers user choice type of activity (EasyWLAN). As a result, a new IAP may be
+            // created, and hence if was not found yet. Therefore update configurations and see if
+            // there is something new.
+
             // 1. Update knowledge from the databases.
-            engine->requestUpdate();
+            if (thread() != engine->thread())
+                QMetaObject::invokeMethod(engine, "requestUpdate", Qt::BlockingQueuedConnection);
+            else
+                engine->requestUpdate();
+
             // 2. Check if new configuration was created during connection creation
             QList<QString> knownConfigs = engine->accessPointConfigurationIdentifiers();
 #ifdef QT_BEARERMGMT_SYMBIAN_DEBUG
@@ -982,7 +1011,7 @@
             qDebug() << "QNS this : " << QString::number((uint)this) << " - "
                     << "configuration was not found, returning invalid.";
 #endif
-#endif // OCC_FUNCTIONALITY_AVAILABLE
+#endif
             // Given IAP Id was not found from known IAPs array
             return QNetworkConfiguration();
         }
@@ -1002,7 +1031,12 @@
             } else {
                 // Check if new (WLAN) IAP was created in IAP/SNAP dialog
                 // 1. Sync internal configurations array to commsdb first
-                engine->updateConfigurations();
+                if (thread() != engine->thread()) {
+                    QMetaObject::invokeMethod(engine, "requestUpdate",
+                                              Qt::BlockingQueuedConnection);
+                } else {
+                    engine->requestUpdate();
+                }
                 // 2. Check if new configuration was created during connection creation
                 QStringList knownConfigs = engine->accessPointConfigurationIdentifiers();
                 if (knownConfigs.count() > iKnownConfigsBeforeConnectionStart.count()) {
@@ -1044,6 +1078,11 @@
             TInt error = KErrNone;
             QNetworkConfiguration newActiveConfig = activeConfiguration();
             if (!newActiveConfig.isValid()) {
+                // RConnection startup was successfull but no configuration
+                // was found. That indicates that user has chosen to create a
+                // new WLAN configuration (from scan results), but that new
+                // configuration does not have access to Internet (Internet
+                // Connectivity Test, ICT, failed).
                 error = KErrGeneral;
             } else {
                 // Use name of the IAP to open global 'Open C' RConnection
@@ -1053,16 +1092,24 @@
                 strcpy(ifr.ifr_name, nameAsByteArray.constData());
                 error = setdefaultif(&ifr);
             }
-            
             if (error != KErrNone) {
                 isOpen = false;
                 isOpening = false;
                 iError = QNetworkSession::UnknownSessionError;
                 QT_TRYCATCH_LEAVING(emit QNetworkSessionPrivate::error(iError));
-                Cancel();
                 if (ipConnectionNotifier) {
                     ipConnectionNotifier->StopNotifications();
                 }
+                if (!newActiveConfig.isValid()) {
+                    // No valid configuration, bail out.
+                    // Status updates from QNCM won't be received correctly
+                    // because there is no configuration to associate them with so transit here.
+                    iConnection.Close();
+                    newState(QNetworkSession::Closing);
+                    newState(QNetworkSession::Disconnected);
+                } else {
+                    Cancel();
+                }
                 QT_TRYCATCH_LEAVING(syncStateWithInterface());
                 return;
             }
@@ -1117,7 +1164,9 @@
             isOpening = false;
             activeConfig = QNetworkConfiguration();
             serviceConfig = QNetworkConfiguration();
-            if (publicConfig.state() == QNetworkConfiguration::Undefined ||
+            if (statusCode == KErrCancel) {
+                iError = QNetworkSession::SessionAbortedError;
+            } else if (publicConfig.state() == QNetworkConfiguration::Undefined ||
                 publicConfig.state() == QNetworkConfiguration::Defined) {
                 iError = QNetworkSession::InvalidConfigurationError;
             } else {
@@ -1300,7 +1349,7 @@
                     }
                 }
             }
-#ifdef OCC_FUNCTIONALITY_AVAILABLE
+#ifdef SNAP_FUNCTIONALITY_AVAILABLE
             // If the retVal is not true here, it means that the status update may apply to an IAP outside of
             // SNAP (session is based on SNAP but follows IAP outside of it), which may occur on Symbian^3 EasyWlan.
             if (retVal == false && activeConfig.isValid() &&
@@ -1430,6 +1479,64 @@
         }
 }
 
+#if defined(SNAP_FUNCTIONALITY_AVAILABLE)
+bool QNetworkSessionPrivateImpl::easyWlanTrueIapId(TUint32 &trueIapId) const
+{
+    RCmManager iCmManager;
+    TRAPD(err, iCmManager.OpenL());
+    if (err != KErrNone)
+        return false;
+
+    // Check if this is easy wlan id in the first place
+    if (trueIapId != iCmManager.EasyWlanIdL()) {
+        iCmManager.Close();
+        return false;
+    }
+
+    iCmManager.Close();
+
+    // Loop through all connections that connection monitor is aware
+    // and check for IAPs based on easy WLAN
+    TRequestStatus status;
+    TUint connectionCount;
+    iConnectionMonitor.GetConnectionCount(connectionCount, status);
+    User::WaitForRequest(status);
+    TUint connectionId;
+    TUint subConnectionCount;
+    TUint apId;
+    if (status.Int() == KErrNone) {
+        for (TUint i = 1; i <= connectionCount; i++) {
+            iConnectionMonitor.GetConnectionInfo(i, connectionId, subConnectionCount);
+            iConnectionMonitor.GetUintAttribute(connectionId, subConnectionCount,
+                                                KIAPId, apId, status);
+            User::WaitForRequest(status);
+            if (apId == trueIapId) {
+                TBuf<50>easyWlanNetworkName;
+                iConnectionMonitor.GetStringAttribute(connectionId, 0, KNetworkName,
+                                                      easyWlanNetworkName, status);
+                User::WaitForRequest(status);
+                if (status.Int() != KErrNone)
+                    continue;
+
+                const QString ssid = QString::fromUtf16(easyWlanNetworkName.Ptr(),
+                                                            easyWlanNetworkName.Length());
+
+                QNetworkConfigurationPrivatePointer ptr = engine->configurationFromSsid(ssid);
+                if (ptr) {
+#ifdef QT_BEARERMGMT_SYMBIAN_DEBUG
+                    qDebug() << "QNCM easyWlanTrueIapId(), found true IAP ID: "
+                             << toSymbianConfig(ptr)->numericIdentifier();
+#endif
+                    trueIapId = toSymbianConfig(ptr)->numericIdentifier();
+                    return true;
+                }
+            }
+        }
+    }
+    return false;
+}
+#endif
+
 ConnectionProgressNotifier::ConnectionProgressNotifier(QNetworkSessionPrivateImpl& owner, RConnection& connection)
     : CActive(CActive::EPriorityUserInput), iOwner(owner), iConnection(connection)
 {
--- a/src/plugins/bearer/symbian/qnetworksession_impl.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/plugins/bearer/symbian/qnetworksession_impl.h	Mon Oct 04 01:19:32 2010 +0300
@@ -64,9 +64,6 @@
 #ifdef SNAP_FUNCTIONALITY_AVAILABLE
     #include <comms-infras/cs_mobility_apiext.h>
 #endif
-#ifdef OCC_FUNCTIONALITY_AVAILABLE
-    #include <extendedconnpref.h>
-#endif
 
 QT_BEGIN_NAMESPACE
 
@@ -132,9 +129,11 @@
     void DoCancel();
     
 private Q_SLOTS:
-    void configurationStateChanged(TUint32 accessPointId, TUint32 connMonId, QNetworkSession::State newState);
+    void configurationStateChanged(quint32 accessPointId, quint32 connMonId,
+                                   QNetworkSession::State newState);
     void configurationRemoved(QNetworkConfigurationPrivatePointer config);
-    
+    void configurationAdded(QNetworkConfigurationPrivatePointer config);
+
 private:
     TUint iapClientCount(TUint aIAPId) const;
     quint64 transferredData(TUint dataType) const;
@@ -146,6 +145,11 @@
     QNetworkInterface interface(TUint iapId) const;
 #endif
 
+#if defined(SNAP_FUNCTIONALITY_AVAILABLE)
+    bool easyWlanTrueIapId(TUint32 &trueIapId) const;
+#endif
+
+
 private: // data
     SymbianEngine *engine;
 
--- a/src/plugins/bearer/symbian/symbian.pri	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/plugins/bearer/symbian/symbian.pri	Mon Oct 04 01:19:32 2010 +0300
@@ -14,8 +14,6 @@
 symbian-abld:INCLUDEPATH += $$QT_BUILD_TREE/include/QtNetwork/private
 
 LIBS += -lcommdb \
-        -lapsettingshandlerui \
-        -lconnmon \
         -lcentralrepository \
         -lesock \
         -linsock \
@@ -23,6 +21,14 @@
         -lefsrv \
         -lnetmeta
 
+is_using_gnupoc {
+    LIBS += -lconnmon \
+            -lapsettingshandlerui
+} else {
+    LIBS += -lConnMon \
+            -lApSettingsHandlerUI
+}
+
 QTDIR_build:DESTDIR = $$QT_BUILD_TREE/plugins/bearer
 target.path += $$[QT_INSTALL_PLUGINS]/bearer
 INSTALLS += target
--- a/src/plugins/bearer/symbian/symbian.pro	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/plugins/bearer/symbian/symbian.pro	Mon Oct 04 01:19:32 2010 +0300
@@ -1,42 +1,5 @@
 TEMPLATE = subdirs
 
-QT += network
-
-HEADERS += symbianengine.h \
-           qnetworksession_impl.h
-
-SOURCES += symbianengine.cpp \
-           qnetworksession_impl.cpp \
-           main.cpp
-
-symbian {
-    TARGET.UID3=0x20021319
-  #  exists($${EPOCROOT}epoc32/release/winscw/udeb/cmmanager.lib)| \
-  #  exists($${EPOCROOT}epoc32/release/armv5/lib/cmmanager.lib) {
-        message("Building with SNAP support")
-        DEFINES += SNAP_FUNCTIONALITY_AVAILABLE
-        LIBS += -lcmmanager
-  #  } else {
-  #      message("Building without SNAP support")
-  #      LIBS += -lapengine
-  #  }
-}
-
-INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE
-symbian-abld:INCLUDEPATH += $$QT_BUILD_TREE/include/QtNetwork/private
-
-LIBS += -lcommdb \
-        -lApSettingsHandlerUI \
-        -lConnMon \
-        -lcentralrepository \
-        -lesock \
-        -linsock \
-        -lecom \
-        -lefsrv \
-        -lnetmeta
-
-QTDIR_build:DESTDIR = $$QT_BUILD_TREE/plugins/bearer
-target.path += $$[QT_INSTALL_PLUGINS]/bearer
-INSTALLS += target
-SUBDIRS += 3_1 3_2 symbian_3
-
+#QTP: build only for symbian_3
+#SUBDIRS += 3_1 3_2 symbian_3
+SUBDIRS += symbian_3
\ No newline at end of file
--- a/src/plugins/bearer/symbian/symbian_3/symbian_3.pro	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/plugins/bearer/symbian/symbian_3/symbian_3.pro	Mon Oct 04 01:19:32 2010 +0300
@@ -1,19 +1,23 @@
 include(../symbian.pri)
 
 symbian {
-    exists($${EPOCROOT}epoc32/release/winscw/udeb/cmmanager.lib)| \
-    exists($${EPOCROOT}epoc32/release/armv5/lib/cmmanager.lib) {
+   # exists($${EPOCROOT}epoc32/release/winscw/udeb/cmmanager.lib)| \
+   # exists($${EPOCROOT}epoc32/release/armv5/lib/cmmanager.lib) {
         DEFINES += SNAP_FUNCTIONALITY_AVAILABLE
         LIBS += -lcmmanager
 
-        exists($$MW_LAYER_PUBLIC_EXPORT_PATH(extendedconnpref.h)) {
+        exists($$prependEpocroot($$MW_LAYER_PUBLIC_EXPORT_PATH(extendedconnpref.h))) {
             DEFINES += OCC_FUNCTIONALITY_AVAILABLE
             LIBS += -lextendedconnpref
         }
-    } else {
+   # } else {
         # Fall back to 3_1 implementation on platforms that do not have cmmanager
-        LIBS += -lapengine
-    }
+   #     is_using_gnupoc {
+   #         LIBS += -lapengine
+   #     } else {
+   #         LIBS += -lAPEngine
+   #     }
+   # }
 }
 
 TARGET.UID3 = 0x20021319
--- a/src/plugins/bearer/symbian/symbianengine.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/plugins/bearer/symbian/symbianengine.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -65,7 +65,7 @@
 #else
     #include <ApAccessPointItem.h>
     #include <ApDataHandler.h>
-    #include <ApUtils.h> 
+    #include <ApUtils.h>
 #endif
 
 #ifndef QT_NO_BEARERMANAGEMENT
@@ -75,7 +75,7 @@
 static const int KUserChoiceIAPId = 0;
 
 SymbianNetworkConfigurationPrivate::SymbianNetworkConfigurationPrivate()
-:   bearer(BearerUnknown), numericId(0), connectionId(0)
+:   numericId(0), connectionId(0)
 {
 }
 
@@ -83,32 +83,6 @@
 {
 }
 
-QString SymbianNetworkConfigurationPrivate::bearerName() const
-{
-    QMutexLocker locker(&mutex);
-
-    switch (bearer) {
-    case BearerEthernet:
-        return QLatin1String("Ethernet");
-    case BearerWLAN:
-        return QLatin1String("WLAN");
-    case Bearer2G:
-        return QLatin1String("2G");
-    case BearerCDMA2000:
-        return QLatin1String("CDMA2000");
-    case BearerWCDMA:
-        return QLatin1String("WCDMA");
-    case BearerHSPA:
-        return QLatin1String("HSPA");
-    case BearerBluetooth:
-        return QLatin1String("Bluetooth");
-    case BearerWiMAX:
-        return QLatin1String("WiMAX");
-    default:
-        return QString();
-    }
-}
-
 SymbianEngine::SymbianEngine(QObject *parent)
 :   QBearerEngine(parent), CActive(CActive::EPriorityHigh), iFirstUpdate(true), iInitOk(true),
     iUpdatePending(false)
@@ -146,7 +120,7 @@
 
     SymbianNetworkConfigurationPrivate *cpPriv = new SymbianNetworkConfigurationPrivate;
     cpPriv->name = "UserChoice";
-    cpPriv->bearer = SymbianNetworkConfigurationPrivate::BearerUnknown;
+    cpPriv->bearerType = QNetworkConfiguration::BearerUnknown;
     cpPriv->state = QNetworkConfiguration::Discovered;
     cpPriv->isValid = true;
     cpPriv->id = QString::number(qHash(KUserChoiceIAPId));
@@ -270,7 +244,7 @@
     QList<QString> knownConfigs = accessPointConfigurations.keys();
     QList<QString> knownSnapConfigs = snapConfigurations.keys();
 
-#ifdef SNAP_FUNCTIONALITY_AVAILABLE    
+#ifdef SNAP_FUNCTIONALITY_AVAILABLE
     // S60 version is >= Series60 3rd Edition Feature Pack 2
     TInt error = KErrNone;
     
@@ -291,14 +265,17 @@
             if (error == KErrNone) {
                 QNetworkConfigurationPrivatePointer ptr(cpPriv);
                 accessPointConfigurations.insert(ptr->id, ptr);
-
-                mutex.unlock();
-                // Emit configuration added. Connected slots may throw execptions
-                // which propagate here --> must be converted to leaves (standard
-                // std::exception would cause any TRAP trapping this function to terminate
-                // program).
-                QT_TRYCATCH_LEAVING(emit configurationAdded(ptr));
-                mutex.lock();
+                if (!iFirstUpdate) {
+                    // Emit configuration added. Connected slots may throw execptions
+                    // which propagate here --> must be converted to leaves (standard
+                    // std::exception would cause any TRAP trapping this function to terminate
+                    // program).
+                    QT_TRYCATCH_LEAVING(updateActiveAccessPoints());
+                    updateStatesToSnaps();
+                    mutex.unlock();
+                    QT_TRYCATCH_LEAVING(emit configurationAdded(ptr));
+                    mutex.lock();
+                }
             }
         }
         CleanupStack::PopAndDestroy(&connectionMethod);
@@ -311,7 +288,17 @@
     iCmManager.AllDestinationsL(destinations);
     for(int i = 0; i < destinations.Count(); i++) {
         RCmDestination destination;
-        destination = iCmManager.DestinationL(destinations[i]);
+
+        // Some destinatsions require ReadDeviceData -capability (MMS/WAP)
+        // The below function will leave in these cases. Don't. Proceed to
+        // next destination (if any).
+        TRAPD(error, destination = iCmManager.DestinationL(destinations[i]));
+        if (error == KErrPermissionDenied) {
+            continue;
+        } else {
+            User::LeaveIfError(error);
+        }
+
         CleanupClosePushL(destination);
         QString ident = QT_BEARERMGMT_CONFIGURATION_SNAP_PREFIX +
                         QString::number(qHash(destination.Id()));
@@ -319,12 +306,12 @@
             knownSnapConfigs.removeOne(ident);
         } else {
             SymbianNetworkConfigurationPrivate *cpPriv = new SymbianNetworkConfigurationPrivate;
-    
+
             HBufC *pName = destination.NameLC();
             QT_TRYCATCH_LEAVING(cpPriv->name = QString::fromUtf16(pName->Ptr(),pName->Length()));
             CleanupStack::PopAndDestroy(pName);
             pName = NULL;
-    
+
             cpPriv->isValid = true;
             cpPriv->id = ident;
             cpPriv->numericId = destination.Id();
@@ -336,10 +323,13 @@
 
             QNetworkConfigurationPrivatePointer ptr(cpPriv);
             snapConfigurations.insert(ident, ptr);
-
-            mutex.unlock();
-            QT_TRYCATCH_LEAVING(emit configurationAdded(ptr));
-            mutex.lock();
+            if (!iFirstUpdate) {
+                QT_TRYCATCH_LEAVING(updateActiveAccessPoints());
+                updateStatesToSnaps();
+                mutex.unlock();
+                QT_TRYCATCH_LEAVING(emit configurationAdded(ptr));
+                mutex.lock();
+            }
         }
 
         // Loop through all connection methods in this SNAP
@@ -352,19 +342,23 @@
             QString iface = QT_BEARERMGMT_CONFIGURATION_IAP_PREFIX+QString::number(qHash(iapId));
             // Check that IAP can be found from accessPointConfigurations list
             QNetworkConfigurationPrivatePointer ptr = accessPointConfigurations.value(iface);
-            if (ptr) {
-                knownConfigs.removeOne(iface);
-            } else {
+            if (!ptr) {
                 SymbianNetworkConfigurationPrivate *cpPriv = NULL;
                 TRAP(error, cpPriv = configFromConnectionMethodL(connectionMethod));
                 if (error == KErrNone) {
                     ptr = QNetworkConfigurationPrivatePointer(cpPriv);
                     accessPointConfigurations.insert(ptr->id, ptr);
 
-                    mutex.unlock();
-                    QT_TRYCATCH_LEAVING(emit configurationAdded(ptr));
-                    mutex.lock();
+                    if (!iFirstUpdate) {
+                        QT_TRYCATCH_LEAVING(updateActiveAccessPoints());
+                        updateStatesToSnaps();
+                        mutex.unlock();
+                        QT_TRYCATCH_LEAVING(emit configurationAdded(ptr));
+                        mutex.lock();
+                    }
                 }
+            } else {
+                knownConfigs.removeOne(iface);
             }
 
             if (ptr) {
@@ -387,6 +381,9 @@
             privSNAP->roamingSupported = privSNAP->serviceNetworkMembers.count() > 1;
 
             snapConfigLocker.unlock();
+
+            updateStatesToSnaps();
+
             mutex.unlock();
             QT_TRYCATCH_LEAVING(emit configurationChanged(privSNAP));
             mutex.lock();
@@ -395,7 +392,6 @@
         CleanupStack::PopAndDestroy(&destination);
     }
     CleanupStack::PopAndDestroy(&destinations);
-    
 #else
     // S60 version is < Series60 3rd Edition Feature Pack 2
     CCommsDbTableView* pDbTView = ipCommsDB->OpenTableLC(TPtrC(IAP));
@@ -413,10 +409,13 @@
             if (readNetworkConfigurationValuesFromCommsDb(apId, cpPriv)) {
                 QNetworkConfigurationPrivatePointer ptr(cpPriv);
                 accessPointConfigurations.insert(ident, ptr);
-
-                mutex.unlock();
-                QT_TRYCATCH_LEAVING(emit configurationAdded(ptr));
-                mutex.lock();
+                if (!iFirstUpdate) {
+                    QT_TRYCATCH_LEAVING(updateActiveAccessPoints());
+                    updateStatesToSnaps();
+                    mutex.unlock();
+                    QT_TRYCATCH_LEAVING(emit configurationAdded(ptr));
+                    mutex.lock();
+                }
             } else {
                 delete cpPriv;
             }
@@ -425,8 +424,9 @@
     }
     CleanupStack::PopAndDestroy(pDbTView);
 #endif
+
     QT_TRYCATCH_LEAVING(updateActiveAccessPoints());
-    
+
     foreach (const QString &oldIface, knownConfigs) {
         //remove non existing IAP
         QNetworkConfigurationPrivatePointer ptr = accessPointConfigurations.take(oldIface);
@@ -468,6 +468,10 @@
     stopCommsDatabaseNotifications();
     TRAP_IGNORE(defaultConfig = defaultConfigurationL());
     startCommsDatabaseNotifications();
+
+#ifdef SNAP_FUNCTIONALITY_AVAILABLE
+    updateStatesToSnaps();
+#endif
 }
 
 #ifdef SNAP_FUNCTIONALITY_AVAILABLE
@@ -487,25 +491,25 @@
     TUint32 bearerId = connectionMethod.GetIntAttributeL(CMManager::ECmCommsDBBearerType);
     switch (bearerId) {
     case KCommDbBearerCSD:
-        cpPriv->bearer = SymbianNetworkConfigurationPrivate::Bearer2G;
+        cpPriv->bearerType = QNetworkConfiguration::Bearer2G;
         break;
     case KCommDbBearerWcdma:
-        cpPriv->bearer = SymbianNetworkConfigurationPrivate::BearerWCDMA;
+        cpPriv->bearerType = QNetworkConfiguration::BearerWCDMA;
         break;
     case KCommDbBearerLAN:
-        cpPriv->bearer = SymbianNetworkConfigurationPrivate::BearerEthernet;
+        cpPriv->bearerType = QNetworkConfiguration::BearerEthernet;
         break;
     case KCommDbBearerVirtual:
-        cpPriv->bearer = SymbianNetworkConfigurationPrivate::BearerUnknown;
+        cpPriv->bearerType = QNetworkConfiguration::BearerUnknown;
         break;
     case KCommDbBearerPAN:
-        cpPriv->bearer = SymbianNetworkConfigurationPrivate::BearerUnknown;
+        cpPriv->bearerType = QNetworkConfiguration::BearerUnknown;
         break;
     case KCommDbBearerWLAN:
-        cpPriv->bearer = SymbianNetworkConfigurationPrivate::BearerWLAN;
+        cpPriv->bearerType = QNetworkConfiguration::BearerWLAN;
         break;
     default:
-        cpPriv->bearer = SymbianNetworkConfigurationPrivate::BearerUnknown;
+        cpPriv->bearerType = QNetworkConfiguration::BearerUnknown;
         break;
     }
     
@@ -589,28 +593,28 @@
     apNetworkConfiguration->roamingSupported = false;
     switch (pAPItem->BearerTypeL()) {
     case EApBearerTypeCSD:      
-        apNetworkConfiguration->bearer = SymbianNetworkConfigurationPrivate::Bearer2G;
+        apNetworkConfiguration->bearerType = QNetworkConfiguration::Bearer2G;
         break;
     case EApBearerTypeGPRS:
-        apNetworkConfiguration->bearer = SymbianNetworkConfigurationPrivate::Bearer2G;
+        apNetworkConfiguration->bearerType = QNetworkConfiguration::Bearer2G;
         break;
     case EApBearerTypeHSCSD:
-        apNetworkConfiguration->bearer = SymbianNetworkConfigurationPrivate::BearerHSPA;
+        apNetworkConfiguration->bearerType = QNetworkConfiguration::BearerHSPA;
         break;
     case EApBearerTypeCDMA:
-        apNetworkConfiguration->bearer = SymbianNetworkConfigurationPrivate::BearerCDMA2000;
+        apNetworkConfiguration->bearerType = QNetworkConfiguration::BearerCDMA2000;
         break;
     case EApBearerTypeWLAN:
-        apNetworkConfiguration->bearer = SymbianNetworkConfigurationPrivate::BearerWLAN;
+        apNetworkConfiguration->bearerType = QNetworkConfiguration::BearerWLAN;
         break;
     case EApBearerTypeLAN:
-        apNetworkConfiguration->bearer = SymbianNetworkConfigurationPrivate::BearerEthernet;
+        apNetworkConfiguration->bearerType = QNetworkConfiguration::BearerEthernet;
         break;
     case EApBearerTypeLANModem:
-        apNetworkConfiguration->bearer = SymbianNetworkConfigurationPrivate::BearerEthernet;
+        apNetworkConfiguration->bearerType = QNetworkConfiguration::BearerEthernet;
         break;
     default:
-        apNetworkConfiguration->bearer = SymbianNetworkConfigurationPrivate::BearerUnknown;
+        apNetworkConfiguration->bearerType = QNetworkConfiguration::BearerUnknown;
         break;
     }
     
@@ -688,15 +692,21 @@
             User::WaitForRequest(status);
             QString ident = QT_BEARERMGMT_CONFIGURATION_IAP_PREFIX+QString::number(qHash(apId));
             QNetworkConfigurationPrivatePointer ptr = accessPointConfigurations.value(ident);
-#ifdef OCC_FUNCTIONALITY_AVAILABLE
+#ifdef SNAP_FUNCTIONALITY_AVAILABLE
             if (!ptr) {
                 // If IAP was not found, check if the update was about EasyWLAN
                 ptr = configurationFromEasyWlan(apId, connectionId);
+                // Change the ident correspondingly
+                if (ptr) {
+                    ident = QT_BEARERMGMT_CONFIGURATION_IAP_PREFIX +
+                            QString::number(qHash(toSymbianConfig(ptr)->numericIdentifier()));
+                }
             }
 #endif
             if (ptr) {
                 iConnectionMonitor.GetIntAttribute(connectionId, subConnectionCount, KConnectionStatus, connectionStatus, status);
-                User::WaitForRequest(status);          
+                User::WaitForRequest(status);
+
                 if (connectionStatus == KLinkLayerOpen) {
                     online = true;
                     inactiveConfigs.removeOne(ident);
@@ -834,38 +844,38 @@
 
         SymbianNetworkConfigurationPrivate *p = toSymbianConfig(ptr);
 
-        if (p->bearer >= SymbianNetworkConfigurationPrivate::Bearer2G &&
-            p->bearer <= SymbianNetworkConfigurationPrivate::BearerHSPA) {
+        if (p->bearerType >= QNetworkConfiguration::Bearer2G &&
+            p->bearerType <= QNetworkConfiguration::BearerHSPA) {
             switch (bearerInfo) {
             case EBearerInfoCSD:
-                p->bearer = SymbianNetworkConfigurationPrivate::Bearer2G;
+                p->bearerType = QNetworkConfiguration::Bearer2G;
                 break;
             case EBearerInfoWCDMA:
-                p->bearer = SymbianNetworkConfigurationPrivate::BearerWCDMA;
+                p->bearerType = QNetworkConfiguration::BearerWCDMA;
                 break;
             case EBearerInfoCDMA2000:
-                p->bearer = SymbianNetworkConfigurationPrivate::BearerCDMA2000;
+                p->bearerType = QNetworkConfiguration::BearerCDMA2000;
                 break;
             case EBearerInfoGPRS:
-                p->bearer = SymbianNetworkConfigurationPrivate::Bearer2G;
+                p->bearerType = QNetworkConfiguration::Bearer2G;
                 break;
             case EBearerInfoHSCSD:
-                p->bearer = SymbianNetworkConfigurationPrivate::Bearer2G;
+                p->bearerType = QNetworkConfiguration::Bearer2G;
                 break;
             case EBearerInfoEdgeGPRS:
-                p->bearer = SymbianNetworkConfigurationPrivate::Bearer2G;
+                p->bearerType = QNetworkConfiguration::Bearer2G;
                 break;
             case EBearerInfoWcdmaCSD:
-                p->bearer = SymbianNetworkConfigurationPrivate::BearerWCDMA;
+                p->bearerType = QNetworkConfiguration::BearerWCDMA;
                 break;
             case EBearerInfoHSDPA:
-                p->bearer = SymbianNetworkConfigurationPrivate::BearerHSPA;
+                p->bearerType = QNetworkConfiguration::BearerHSPA;
                 break;
             case EBearerInfoHSUPA:
-                p->bearer = SymbianNetworkConfigurationPrivate::BearerHSPA;
+                p->bearerType = QNetworkConfiguration::BearerHSPA;
                 break;
             case EBearerInfoHSxPA:
-                p->bearer = SymbianNetworkConfigurationPrivate::BearerHSPA;
+                p->bearerType = QNetworkConfiguration::BearerHSPA;
                 break;
             }
         }
@@ -1044,7 +1054,7 @@
 
             QString ident = QT_BEARERMGMT_CONFIGURATION_IAP_PREFIX+QString::number(qHash(apId));
             QNetworkConfigurationPrivatePointer ptr = accessPointConfigurations.value(ident);
-#ifdef OCC_FUNCTIONALITY_AVAILABLE
+#ifdef SNAP_FUNCTIONALITY_AVAILABLE
             if (!ptr) {
                 // Check if status was regarding EasyWLAN
                 ptr = configurationFromEasyWlan(apId, connectionId);
@@ -1069,7 +1079,7 @@
             User::WaitForRequest(status);
             QString ident = QT_BEARERMGMT_CONFIGURATION_IAP_PREFIX+QString::number(qHash(apId));
             QNetworkConfigurationPrivatePointer ptr = accessPointConfigurations.value(ident);
-#ifdef OCC_FUNCTIONALITY_AVAILABLE
+#ifdef SNAP_FUNCTIONALITY_AVAILABLE
             if (!ptr) {
                 // Check for EasyWLAN
                 ptr = configurationFromEasyWlan(apId, connectionId);
@@ -1161,6 +1171,8 @@
                 QT_TRYCATCH_LEAVING(changeConfigurationStateAtMaxTo(ptr, QNetworkConfiguration::Defined));
             }
         }
+        // Something has in IAPs, update states to SNAPs
+        updateStatesToSnaps();
         }
         break;
 
@@ -1177,7 +1189,7 @@
         User::WaitForRequest(status);
         QString ident = QT_BEARERMGMT_CONFIGURATION_IAP_PREFIX+QString::number(qHash(apId));
         QNetworkConfigurationPrivatePointer ptr = accessPointConfigurations.value(ident);
-#ifdef OCC_FUNCTIONALITY_AVAILABLE
+#ifdef SNAP_FUNCTIONALITY_AVAILABLE
         if (!ptr) {
             // If IAP was not found, check if the update was about EasyWLAN
             ptr = configurationFromEasyWlan(apId, connectionId);
@@ -1198,11 +1210,39 @@
     }
 }
 
-#ifdef OCC_FUNCTIONALITY_AVAILABLE
+/*
+    Returns the network configuration that matches the given SSID.
+*/
+QNetworkConfigurationPrivatePointer SymbianEngine::configurationFromSsid(const QString &ssid)
+{
+    QMutexLocker locker(&mutex);
+
+    // Browser through all items and check their name for match
+    QHash<QString, QNetworkConfigurationPrivatePointer>::ConstIterator i =
+        accessPointConfigurations.constBegin();
+    while (i != accessPointConfigurations.constEnd()) {
+        QNetworkConfigurationPrivatePointer ptr = i.value();
+
+        QMutexLocker configLocker(&ptr->mutex);
+
+        if (ptr->name == ssid) {
+#ifdef QT_BEARERMGMT_SYMBIAN_DEBUG
+            qDebug() << "QNCM EasyWlan uses real SSID: " << ssid;
+#endif
+            return ptr;
+        }
+        ++i;
+    }
+
+    return QNetworkConfigurationPrivatePointer();
+}
+
+#ifdef SNAP_FUNCTIONALITY_AVAILABLE
 // Tries to derive configuration from EasyWLAN.
 // First checks if the interface brought up was EasyWLAN, then derives the real SSID,
 // and looks up configuration based on that one.
-QNetworkConfigurationPrivatePointer SymbianEngine::configurationFromEasyWlan(TUint32 apId, TUint connectionId)
+QNetworkConfigurationPrivatePointer SymbianEngine::configurationFromEasyWlan(TUint32 apId,
+                                                                             TUint connectionId)
 {
     if (apId == iCmManager.EasyWlanIdL()) {
         TRequestStatus status;
@@ -1211,11 +1251,12 @@
                                                easyWlanNetworkName, status );
         User::WaitForRequest(status);
         if (status.Int() == KErrNone) {
-            QString realSSID = QString::fromUtf16(easyWlanNetworkName.Ptr(), easyWlanNetworkName.Length());
+            const QString realSSID = QString::fromUtf16(easyWlanNetworkName.Ptr(),
+                                                        easyWlanNetworkName.Length());
 
             // Browser through all items and check their name for match
-            QHash<QString, QExplicitlySharedDataPointer<QNetworkConfigurationPrivate> >::const_iterator i =
-                    accessPointConfigurations.constBegin();
+            QHash<QString, QNetworkConfigurationPrivatePointer>::ConstIterator i =
+                accessPointConfigurations.constBegin();
             while (i != accessPointConfigurations.constEnd()) {
                 QNetworkConfigurationPrivatePointer ptr = i.value();
 
--- a/src/plugins/bearer/symbian/symbianengine.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/plugins/bearer/symbian/symbianengine.h	Mon Oct 04 01:19:32 2010 +0300
@@ -73,23 +73,9 @@
 class SymbianNetworkConfigurationPrivate : public QNetworkConfigurationPrivate
 {
 public:
-    enum Bearer {
-        BearerEthernet,
-        BearerWLAN,
-        Bearer2G,
-        BearerCDMA2000,
-        BearerWCDMA,
-        BearerHSPA,
-        BearerBluetooth,
-        BearerWiMAX,
-        BearerUnknown = -1
-    };
-
     SymbianNetworkConfigurationPrivate();
     ~SymbianNetworkConfigurationPrivate();
 
-    QString bearerName() const;
-
     inline TUint32 numericIdentifier() const
     {
         QMutexLocker locker(&mutex);
@@ -110,8 +96,6 @@
 
     QString mappingName;
 
-    Bearer bearer;
-
     // So called IAP id from the platform. Remains constant as long as the
     // platform is aware of the configuration ie. it is stored in the databases
     // --> does not depend on whether connections are currently open or not.
@@ -154,10 +138,15 @@
 
     QStringList accessPointConfigurationIdentifiers();
 
+    QNetworkConfigurationPrivatePointer configurationFromSsid(const QString &ssid);
+
+    // For QNetworkSessionPrivateImpl to indicate about state changes
+    void configurationStateChangeReport(TUint32 accessPointId, QNetworkSession::State newState);
+
 Q_SIGNALS:
     void onlineStateChanged(bool isOnline);
     
-    void configurationStateChanged(TUint32 accessPointId, TUint32 connMonId,
+    void configurationStateChanged(quint32 accessPointId, quint32 connMonId,
                                    QNetworkSession::State newState);
     
 public Q_SLOTS:
@@ -203,11 +192,9 @@
 private:
     // MConnectionMonitorObserver
     void EventL(const CConnMonEventBase& aEvent);
-    // For QNetworkSessionPrivate to indicate about state changes
-    void configurationStateChangeReport(TUint32 accessPointId,
-                                   QNetworkSession::State newState);
-#ifdef OCC_FUNCTIONALITY_AVAILABLE
-    QNetworkConfigurationPrivatePointer configurationFromEasyWlan(TUint32 apId, TUint connectionId);
+#ifdef SNAP_FUNCTIONALITY_AVAILABLE
+    QNetworkConfigurationPrivatePointer configurationFromEasyWlan(TUint32 apId,
+                                                                  TUint connectionId);
 #endif
 
 private: // Data
@@ -227,7 +214,6 @@
 
     friend class QNetworkSessionPrivate;
     friend class AccessPointsAvailabilityScanner;
-    friend class QNetworkSessionPrivateImpl;
 
 #ifdef SNAP_FUNCTIONALITY_AVAILABLE
     RCmManager iCmManager;
--- a/src/plugins/gfxdrivers/directfb/qdirectfbpaintengine.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/plugins/gfxdrivers/directfb/qdirectfbpaintengine.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -167,7 +167,6 @@
 static QCache<qint64, CachedImage> imageCache(4*1024*1024); // 4 MB
 #endif
 
-#if defined QT_DIRECTFB_WARN_ON_RASTERFALLBACKS || defined QT_DIRECTFB_DISABLE_RASTERFALLBACKS || defined QT_DEBUG
 #define VOID_ARG() static_cast<bool>(false)
 enum PaintOperation {
     DRAW_RECTS = 0x0001, DRAW_LINES = 0x0002, DRAW_IMAGE = 0x0004,
@@ -178,88 +177,81 @@
     DRAW_STATICTEXT = 0x8000, ALL = 0xffff
 };
 
-#ifdef QT_DEBUG
-static void initRasterFallbacksMasks(int *warningMask, int *disableMask)
+enum { RasterWarn = 1, RasterDisable = 2 };
+static inline uint rasterFallbacksMask(PaintOperation op)
 {
-    struct {
-        const char *name;
-        PaintOperation operation;
-    } const operations[] = {
-        { "DRAW_RECTS", DRAW_RECTS },
-        { "DRAW_LINES", DRAW_LINES },
-        { "DRAW_IMAGE", DRAW_IMAGE },
-        { "DRAW_PIXMAP", DRAW_PIXMAP },
-        { "DRAW_TILED_PIXMAP", DRAW_TILED_PIXMAP },
-        { "STROKE_PATH", STROKE_PATH },
-        { "DRAW_PATH", DRAW_PATH },
-        { "DRAW_POINTS", DRAW_POINTS },
-        { "DRAW_ELLIPSE", DRAW_ELLIPSE },
-        { "DRAW_POLYGON", DRAW_POLYGON },
-        { "DRAW_TEXT", DRAW_TEXT },
-        { "FILL_PATH", FILL_PATH },
-        { "FILL_RECT", FILL_RECT },
-        { "DRAW_COLORSPANS", DRAW_COLORSPANS },
-        { "DRAW_ROUNDED_RECT", DRAW_ROUNDED_RECT },
-        { "ALL", ALL },
-        { 0, ALL }
-    };
+    uint ret = 0;
+#ifdef QT_DIRECTFB_WARN_ON_RASTERFALLBACKS
+    if (op & QT_DIRECTFB_WARN_ON_RASTERFALLBACKS)
+        ret |= RasterWarn;
+#endif
+#ifdef QT_DIRECTFB_DISABLE_RASTERFALLBACKS
+    if (op & QT_DIRECTFB_DISABLE_RASTERFALLBACKS)
+        ret |= RasterDisable;
+#endif
+    static int warningMask = -1;
+    static int disableMask = -1;
+    if (warningMask < 0) {
+        struct {
+            const char *name;
+            PaintOperation operation;
+        } const operations[] = {
+            { "DRAW_RECTS", DRAW_RECTS },
+            { "DRAW_LINES", DRAW_LINES },
+            { "DRAW_IMAGE", DRAW_IMAGE },
+            { "DRAW_PIXMAP", DRAW_PIXMAP },
+            { "DRAW_TILED_PIXMAP", DRAW_TILED_PIXMAP },
+            { "STROKE_PATH", STROKE_PATH },
+            { "DRAW_PATH", DRAW_PATH },
+            { "DRAW_POINTS", DRAW_POINTS },
+            { "DRAW_ELLIPSE", DRAW_ELLIPSE },
+            { "DRAW_POLYGON", DRAW_POLYGON },
+            { "DRAW_TEXT", DRAW_TEXT },
+            { "FILL_PATH", FILL_PATH },
+            { "FILL_RECT", FILL_RECT },
+            { "DRAW_COLORSPANS", DRAW_COLORSPANS },
+            { "DRAW_ROUNDED_RECT", DRAW_ROUNDED_RECT },
+            { "ALL", ALL },
+            { 0, ALL }
+        };
 
-    QStringList warning = QString::fromLatin1(qgetenv("QT_DIRECTFB_WARN_ON_RASTERFALLBACKS")).toUpper().split(QLatin1Char('|'),
-                                                                                                              QString::SkipEmptyParts);
-    QStringList disable = QString::fromLatin1(qgetenv("QT_DIRECTFB_DISABLE_RASTERFALLBACKS")).toUpper().split(QLatin1Char('|'),
-                                                                                                              QString::SkipEmptyParts);
-    *warningMask = 0;
-    *disableMask = 0;
-    if (!warning.isEmpty() || !disable.isEmpty()) {
-        for (int i=0; operations[i].name; ++i) {
-            const QString name = QString::fromLatin1(operations[i].name);
-            int idx = warning.indexOf(name);
-            if (idx != -1) {
-                *warningMask |= operations[i].operation;
-                warning.erase(warning.begin() + idx);
-            }
-            idx = disable.indexOf(name);
-            if (idx != -1) {
-                *disableMask |= operations[i].operation;
-                disable.erase(disable.begin() + idx);
+        QStringList warning = QString::fromLatin1(qgetenv("QT_DIRECTFB_WARN_ON_RASTERFALLBACKS")).toUpper().split(QLatin1Char('|'),
+                                                                                                                  QString::SkipEmptyParts);
+        QStringList disable = QString::fromLatin1(qgetenv("QT_DIRECTFB_DISABLE_RASTERFALLBACKS")).toUpper().split(QLatin1Char('|'),
+                                                                                                                  QString::SkipEmptyParts);
+        warningMask = 0;
+        disableMask = 0;
+        if (!warning.isEmpty() || !disable.isEmpty()) {
+            for (int i=0; operations[i].name; ++i) {
+                const QString name = QString::fromLatin1(operations[i].name);
+                int idx = warning.indexOf(name);
+                if (idx != -1) {
+                    warningMask |= operations[i].operation;
+                    warning.erase(warning.begin() + idx);
+                }
+                idx = disable.indexOf(name);
+                if (idx != -1) {
+                    disableMask |= operations[i].operation;
+                    disable.erase(disable.begin() + idx);
+                }
             }
         }
-    }
-    if (!warning.isEmpty()) {
-        qWarning("QDirectFBPaintEngine QT_DIRECTFB_WARN_ON_RASTERFALLBACKS Unknown operation(s): %s",
-                 qPrintable(warning.join(QLatin1String("|"))));
+        if (!warning.isEmpty()) {
+            qWarning("QDirectFBPaintEngine QT_DIRECTFB_WARN_ON_RASTERFALLBACKS Unknown operation(s): %s",
+                     qPrintable(warning.join(QLatin1String("|"))));
+        }
+        if (!disable.isEmpty()) {
+            qWarning("QDirectFBPaintEngine QT_DIRECTFB_DISABLE_RASTERFALLBACKS Unknown operation(s): %s",
+                     qPrintable(disable.join(QLatin1String("|"))));
+        }
     }
-    if (!disable.isEmpty()) {
-        qWarning("QDirectFBPaintEngine QT_DIRECTFB_DISABLE_RASTERFALLBACKS Unknown operation(s): %s",
-                 qPrintable(disable.join(QLatin1String("|"))));
-    }
-
+    if (op & warningMask)
+        ret |= RasterWarn;
+    if (op & disableMask)
+        ret |= RasterDisable;
+    return ret;
 }
-#endif
 
-static inline int rasterFallbacksMask(bool warn)
-{
-#ifdef QT_DIRECTFB_WARN_ON_RASTERFALLBACKS
-    if (warn)
-        return QT_DIRECTFB_WARN_ON_RASTERFALLBACKS;
-#endif
-#ifdef QT_DIRECTFB_DISABLE_RASTERFALLBACKS
-    if (!warn)
-        return QT_DIRECTFB_DISABLE_RASTERFALLBACKS;
-#endif
-#ifndef QT_DEBUG
-    return 0;
-#else
-    static int warnMask = -1;
-    static int disableMask = -1;
-    if (warnMask == -1)
-        initRasterFallbacksMasks(&warnMask, &disableMask);
-    return warn ? warnMask : disableMask;
-#endif
-}
-#endif
-
-#if defined QT_DIRECTFB_WARN_ON_RASTERFALLBACKS || defined QT_DEBUG
 template <typename device, typename T1, typename T2, typename T3>
 static void rasterFallbackWarn(const char *msg, const char *func, const device *dev,
                                uint transformationType, bool simplePen,
@@ -267,16 +259,14 @@
                                const char *nameOne, const T1 &one,
                                const char *nameTwo, const T2 &two,
                                const char *nameThree, const T3 &three);
-#endif
 
-#if defined QT_DEBUG || (defined QT_DIRECTFB_WARN_ON_RASTERFALLBACKS && defined QT_DIRECTFB_DISABLE_RASTERFALLBACKS)
 #define RASTERFALLBACK(op, one, two, three)                             \
     {                                                                   \
-        const bool disable = op & rasterFallbacksMask(false);           \
-        if (op & rasterFallbacksMask(true))                             \
-            rasterFallbackWarn(disable                                  \
-                               ? "Disabled raster engine operation"     \
-                               : "Falling back to raster engine for",   \
+        static const uint rasterFallbacks = rasterFallbacksMask(op);    \
+        switch (rasterFallbacks) {                                      \
+        case 0: break;                                                  \
+        case RasterWarn:                                                \
+            rasterFallbackWarn("Falling back to raster engine for",     \
                                __FUNCTION__,                            \
                                state()->painter->device(),              \
                                d_func()->transformationType,            \
@@ -284,26 +274,20 @@
                                d_func()->clipType,                      \
                                d_func()->compositionModeStatus,         \
                                #one, one, #two, two, #three, three);    \
-        if (disable)                                                    \
+            break;                                                      \
+        case RasterDisable|RasterWarn:                                  \
+            rasterFallbackWarn("Disabled raster engine operation",      \
+                               __FUNCTION__,                            \
+                               state()->painter->device(),              \
+                               d_func()->transformationType,            \
+                               d_func()->simplePen,                     \
+                               d_func()->clipType,                      \
+                               d_func()->compositionModeStatus,         \
+                               #one, one, #two, two, #three, three);    \
+        case RasterDisable:                                             \
             return;                                                     \
+        }                                                               \
     }
-#elif defined QT_DIRECTFB_DISABLE_RASTERFALLBACKS
-#define RASTERFALLBACK(op, one, two, three)                             \
-    if (op & rasterFallbacksMask(false))                                \
-        return;
-#elif defined QT_DIRECTFB_WARN_ON_RASTERFALLBACKS
-#define RASTERFALLBACK(op, one, two, three)                             \
-    if (op & rasterFallbacksMask(true))                                 \
-        rasterFallbackWarn("Falling back to raster engine for",         \
-                           __FUNCTION__, state()->painter->device(),    \
-                           d_func()->transformationType,                \
-                           d_func()->simplePen,                         \
-                           d_func()->clipType,                          \
-                           d_func()->compositionModeStatus,             \
-                           #one, one, #two, two, #three, three);
-#else
-#define RASTERFALLBACK(op, one, two, three)
-#endif
 
 template <class T>
 static inline void drawLines(const T *lines, int n, const QTransform &transform, IDirectFBSurface *surface);
@@ -1362,7 +1346,6 @@
     }
 }
 
-#if defined QT_DIRECTFB_WARN_ON_RASTERFALLBACKS || defined QT_DEBUG
 template <typename T> inline const T *ptr(const T &t) { return &t; }
 template <> inline const bool* ptr<bool>(const bool &) { return 0; }
 template <typename device, typename T1, typename T2, typename T3>
@@ -1403,8 +1386,6 @@
     qWarning("%s", qPrintable(out));
 }
 
-#endif // QT_DIRECTFB_WARN_ON_RASTERFALLBACKS
-
 QT_END_NAMESPACE
 
 #endif // QT_NO_QWS_DIRECTFB
--- a/src/plugins/graphicssystems/opengl/opengl.pro	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/plugins/graphicssystems/opengl/opengl.pro	Mon Oct 04 01:19:32 2010 +0300
@@ -9,3 +9,5 @@
 
 target.path += $$[QT_INSTALL_PLUGINS]/graphicssystems
 INSTALLS += target
+
+symbian: TARGET.UID3 = 0x2002131B
--- a/src/qbase.pri	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/qbase.pri	Mon Oct 04 01:19:32 2010 +0300
@@ -168,13 +168,25 @@
 
 TARGET = $$qtLibraryTarget($$TARGET$$QT_LIBINFIX) #do this towards the end
 
+qtPrepareTool(QMAKE_LUPDATE, lupdate)
+qtPrepareTool(QMAKE_LRELEASE, lrelease)
+
 moc_dir.name = moc_location
 moc_dir.variable = QMAKE_MOC
 
 uic_dir.name = uic_location
 uic_dir.variable = QMAKE_UIC
 
-QMAKE_PKGCONFIG_VARIABLES += moc_dir uic_dir
+rcc_dir.name = rcc_location
+rcc_dir.variable = QMAKE_RCC
+
+lupdate_dir.name = lupdate_location
+lupdate_dir.variable = QMAKE_LUPDATE
+
+lrelease_dir.name = lrelease_location
+lrelease_dir.variable = QMAKE_LRELEASE
+
+QMAKE_PKGCONFIG_VARIABLES += moc_dir uic_dir rcc_dir lupdate_dir lrelease_dir
 
 include(qt_targets.pri)
 
--- a/src/qt3support/widgets/q3gridview.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/qt3support/widgets/q3gridview.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -84,7 +84,7 @@
   size in a potentially scrollable canvas. If you need rows and
   columns with different sizes, use a Q3Table instead. If you need a
   simple list of items, use a Q3ListBox. If you need to present
-  hierachical data use a Q3ListView, and if you need random objects
+  hierarichal data use a Q3ListView, and if you need random objects
   at random positions, consider using either a Q3IconView or a
   Q3Canvas.
 */
--- a/src/s60installs/bwins/QtCoreu.def	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/s60installs/bwins/QtCoreu.def	Mon Oct 04 01:19:32 2010 +0300
@@ -3122,7 +3122,7 @@
 	?reset@QIODevice@@UAE_NXZ @ 3121 NONAME ; bool QIODevice::reset(void)
 	?reset@QMetaProperty@@QBE_NPAVQObject@@@Z @ 3122 NONAME ; bool QMetaProperty::reset(class QObject *) const
 	?reset@QTextStream@@QAEXXZ @ 3123 NONAME ; void QTextStream::reset(void)
-	?resetCurrentSender@QObjectPrivate@@SAXPAVQObject@@PAUSender@1@1@Z @ 3124 NONAME ABSENT ; void QObjectPrivate::resetCurrentSender(class QObject *, struct QObjectPrivate::Sender *, struct QObjectPrivate::Sender *)
+	?resetCurrentSender@QObjectPrivate@@SAXPAVQObject@@PAUSender@1@1@Z @ 3124 NONAME ; void QObjectPrivate::resetCurrentSender(class QObject *, struct QObjectPrivate::Sender *, struct QObjectPrivate::Sender *)
 	?resetDeleteWatch@QObjectPrivate@@SAXPAV1@PAHH@Z @ 3125 NONAME ; void QObjectPrivate::resetDeleteWatch(class QObjectPrivate *, int *, int)
 	?resetStatus@QDataStream@@QAEXXZ @ 3126 NONAME ; void QDataStream::resetStatus(void)
 	?resetStatus@QTextStream@@QAEXXZ @ 3127 NONAME ; void QTextStream::resetStatus(void)
@@ -3281,7 +3281,7 @@
 	?setCoords@QRectF@@QAEXMMMM@Z @ 3280 NONAME ; void QRectF::setCoords(float, float, float, float)
 	?setCurrent@QDir@@SA_NABVQString@@@Z @ 3281 NONAME ; bool QDir::setCurrent(class QString const &)
 	?setCurrentPath@QFSFileEngine@@SA_NABVQString@@@Z @ 3282 NONAME ; bool QFSFileEngine::setCurrentPath(class QString const &)
-	?setCurrentSender@QObjectPrivate@@SAPAUSender@1@PAVQObject@@PAU21@@Z @ 3283 NONAME ABSENT ; struct QObjectPrivate::Sender * QObjectPrivate::setCurrentSender(class QObject *, struct QObjectPrivate::Sender *)
+	?setCurrentSender@QObjectPrivate@@SAPAUSender@1@PAVQObject@@PAU21@@Z @ 3283 NONAME ; struct QObjectPrivate::Sender * QObjectPrivate::setCurrentSender(class QObject *, struct QObjectPrivate::Sender *)
 	?setCurrentTime@QAbstractAnimation@@QAEXH@Z @ 3284 NONAME ; void QAbstractAnimation::setCurrentTime(int)
 	?setCurrentTime@QTimeLine@@QAEXH@Z @ 3285 NONAME ; void QTimeLine::setCurrentTime(int)
 	?setCurveShape@QTimeLine@@QAEXW4CurveShape@1@@Z @ 3286 NONAME ; void QTimeLine::setCurveShape(enum QTimeLine::CurveShape)
@@ -4417,71 +4417,69 @@
 	?QBasicAtomicInt_testAndSetRelease@@YA_NPCHHH@Z @ 4416 NONAME ; bool QBasicAtomicInt_testAndSetRelease(int volatile *, int, int)
 	?QBasicAtomicInt_fetchAndStoreAcquire@@YAHPCHH@Z @ 4417 NONAME ; int QBasicAtomicInt_fetchAndStoreAcquire(int volatile *, int)
 	?QBasicAtomicInt_fetchAndAddAcquire@@YAHPCHH@Z @ 4418 NONAME ; int QBasicAtomicInt_fetchAndAddAcquire(int volatile *, int)
-	??0QString@@QAE@PBVQChar@@@Z @ 4419 NONAME ; QString::QString(class QChar const *)
-	??0QTextDecoder@@QAE@PBVQTextCodec@@V?$QFlags@W4ConversionFlag@QTextCodec@@@@@Z @ 4420 NONAME ; QTextDecoder::QTextDecoder(class QTextCodec const *, class QFlags<enum QTextCodec::ConversionFlag>)
-	??0QTextEncoder@@QAE@PBVQTextCodec@@V?$QFlags@W4ConversionFlag@QTextCodec@@@@@Z @ 4421 NONAME ; QTextEncoder::QTextEncoder(class QTextCodec const *, class QFlags<enum QTextCodec::ConversionFlag>)
-	??0QVariant@@QAE@ABVQEasingCurve@@@Z @ 4422 NONAME ; QVariant::QVariant(class QEasingCurve const &)
-	??5@YAAAVQDataStream@@AAV0@AAVQEasingCurve@@@Z @ 4423 NONAME ; class QDataStream & operator>>(class QDataStream &, class QEasingCurve &)
-	??6@YAAAVQDataStream@@AAV0@ABVQEasingCurve@@@Z @ 4424 NONAME ; class QDataStream & operator<<(class QDataStream &, class QEasingCurve const &)
-	??8QElapsedTimer@@QBE_NABV0@@Z @ 4425 NONAME ; bool QElapsedTimer::operator==(class QElapsedTimer const &) const
-	??9QElapsedTimer@@QBE_NABV0@@Z @ 4426 NONAME ; bool QElapsedTimer::operator!=(class QElapsedTimer const &) const
-	??M@YA_NABVQElapsedTimer@@0@Z @ 4427 NONAME ; bool operator<(class QElapsedTimer const &, class QElapsedTimer const &)
-	?append@QListData@@QAEPAPAXH@Z @ 4428 NONAME ; void * * QListData::append(int)
-	?clearHistory@QStateMachinePrivate@@QAEXXZ @ 4429 NONAME ; void QStateMachinePrivate::clearHistory(void)
-	?clockType@QElapsedTimer@@SA?AW4ClockType@1@XZ @ 4430 NONAME ; enum QElapsedTimer::ClockType QElapsedTimer::clockType(void)
-	?currentDateTimeUtc@QDateTime@@SA?AV1@XZ @ 4431 NONAME ; class QDateTime QDateTime::currentDateTimeUtc(void)
-	?currentMSecsSinceEpoch@QDateTime@@SA_JXZ @ 4432 NONAME ; long long QDateTime::currentMSecsSinceEpoch(void)
-	?detach@QListData@@QAEPAUData@1@H@Z @ 4433 NONAME ; struct QListData::Data * QListData::detach(int)
-	?detach_grow@QListData@@QAEPAUData@1@PAHH@Z @ 4434 NONAME ; struct QListData::Data * QListData::detach_grow(int *, int)
-	?elapsed@QElapsedTimer@@QBE_JXZ @ 4435 NONAME ; long long QElapsedTimer::elapsed(void) const
-	?fromMSecsSinceEpoch@QDateTime@@SA?AV1@_J@Z @ 4436 NONAME ; class QDateTime QDateTime::fromMSecsSinceEpoch(long long)
-	?hasExpired@QElapsedTimer@@QBE_N_J@Z @ 4437 NONAME ; bool QElapsedTimer::hasExpired(long long) const
-	?invalidate@QElapsedTimer@@QAEXXZ @ 4438 NONAME ; void QElapsedTimer::invalidate(void)
-	?isMonotonic@QElapsedTimer@@SA_NXZ @ 4439 NONAME ; bool QElapsedTimer::isMonotonic(void)
-	?isSharedWith@QByteArray@@QBE_NABV1@@Z @ 4440 NONAME ; bool QByteArray::isSharedWith(class QByteArray const &) const
-	?isSharedWith@QString@@QBE_NABV1@@Z @ 4441 NONAME ; bool QString::isSharedWith(class QString const &) const
-	?isValid@QElapsedTimer@@QBE_NXZ @ 4442 NONAME ; bool QElapsedTimer::isValid(void) const
-	?makeDecoder@QTextCodec@@QBEPAVQTextDecoder@@V?$QFlags@W4ConversionFlag@QTextCodec@@@@@Z @ 4443 NONAME ; class QTextDecoder * QTextCodec::makeDecoder(class QFlags<enum QTextCodec::ConversionFlag>) const
-	?makeEncoder@QTextCodec@@QBEPAVQTextEncoder@@V?$QFlags@W4ConversionFlag@QTextCodec@@@@@Z @ 4444 NONAME ; class QTextEncoder * QTextCodec::makeEncoder(class QFlags<enum QTextCodec::ConversionFlag>) const
-	?msecsSinceReference@QElapsedTimer@@QBE_JXZ @ 4445 NONAME ; long long QElapsedTimer::msecsSinceReference(void) const
-	?msecsTo@QElapsedTimer@@QBE_JABV1@@Z @ 4446 NONAME ; long long QElapsedTimer::msecsTo(class QElapsedTimer const &) const
-	?qDecodeDataUrl@@YA?AU?$QPair@VQString@@VQByteArray@@@@ABVQUrl@@@Z @ 4447 NONAME ; struct QPair<class QString, class QByteArray> qDecodeDataUrl(class QUrl const &)
-	?qDetectCPUFeatures@@YAIXZ @ 4448 NONAME ; unsigned int qDetectCPUFeatures(void)
+	?validCodecs@QTextCodec@@CA_NXZ @ 4419 NONAME ; bool QTextCodec::validCodecs(void)
+	?clearHistory@QStateMachinePrivate@@QAEXXZ @ 4420 NONAME ; void QStateMachinePrivate::clearHistory(void)
+	?nativeArguments@QProcess@@QBE?AVQString@@XZ @ 4421 NONAME ; class QString QProcess::nativeArguments(void) const
+	?detach@QListData@@QAEPAUData@1@H@Z @ 4422 NONAME ; struct QListData::Data * QListData::detach(int)
+	?trUtf8@QEventDispatcherSymbian@@SA?AVQString@@PBD0H@Z @ 4423 NONAME ; class QString QEventDispatcherSymbian::trUtf8(char const *, char const *, int)
+	?destroyed@QAbstractDeclarativeData@@2P6AXPAV1@PAVQObject@@@ZA @ 4424 NONAME ; void (*QAbstractDeclarativeData::destroyed)(class QAbstractDeclarativeData *, class QObject *)
+	??M@YA_NABVQElapsedTimer@@0@Z @ 4425 NONAME ; bool operator<(class QElapsedTimer const &, class QElapsedTimer const &)
+	?clockType@QElapsedTimer@@SA?AW4ClockType@1@XZ @ 4426 NONAME ; enum QElapsedTimer::ClockType QElapsedTimer::clockType(void)
+	?isHighSurrogate@QChar@@SA_NI@Z @ 4427 NONAME ; bool QChar::isHighSurrogate(unsigned int)
+	?start@QElapsedTimer@@QAEXXZ @ 4428 NONAME ; void QElapsedTimer::start(void)
+	??0QVariant@@QAE@ABVQEasingCurve@@@Z @ 4429 NONAME ; QVariant::QVariant(class QEasingCurve const &)
+	?isValid@QElapsedTimer@@QBE_NXZ @ 4430 NONAME ; bool QElapsedTimer::isValid(void) const
+	?qt_metacast@QEventDispatcherSymbian@@UAEPAXPBD@Z @ 4431 NONAME ; void * QEventDispatcherSymbian::qt_metacast(char const *)
+	?toMSecsSinceEpoch@QDateTime@@QBE_JXZ @ 4432 NONAME ; long long QDateTime::toMSecsSinceEpoch(void) const
+	?hasExpired@QElapsedTimer@@QBE_N_J@Z @ 4433 NONAME ; bool QElapsedTimer::hasExpired(long long) const
+	?makeEncoder@QTextCodec@@QBEPAVQTextEncoder@@V?$QFlags@W4ConversionFlag@QTextCodec@@@@@Z @ 4434 NONAME ; class QTextEncoder * QTextCodec::makeEncoder(class QFlags<enum QTextCodec::ConversionFlag>) const
+	??9QElapsedTimer@@QBE_NABV0@@Z @ 4435 NONAME ; bool QElapsedTimer::operator!=(class QElapsedTimer const &) const
+	?setRawData@QString@@QAEAAV1@PBVQChar@@H@Z @ 4436 NONAME ; class QString & QString::setRawData(class QChar const *, int)
+	?registerTypedef@QMetaType@@SAHPBDH@Z @ 4437 NONAME ; int QMetaType::registerTypedef(char const *, int)
+	??8QElapsedTimer@@QBE_NABV0@@Z @ 4438 NONAME ; bool QElapsedTimer::operator==(class QElapsedTimer const &) const
+	?makeDecoder@QTextCodec@@QBEPAVQTextDecoder@@V?$QFlags@W4ConversionFlag@QTextCodec@@@@@Z @ 4439 NONAME ; class QTextDecoder * QTextCodec::makeDecoder(class QFlags<enum QTextCodec::ConversionFlag>) const
+	?metaObject@QEventDispatcherSymbian@@UBEPBUQMetaObject@@XZ @ 4440 NONAME ; struct QMetaObject const * QEventDispatcherSymbian::metaObject(void) const
+	?transitions@QState@@QBE?AV?$QList@PAVQAbstractTransition@@@@XZ @ 4441 NONAME ; class QList<class QAbstractTransition *> QState::transitions(void) const
+	?qDetectCPUFeatures@@YAIXZ @ 4442 NONAME ; unsigned int qDetectCPUFeatures(void)
+	?isSharedWith@QString@@QBE_NABV1@@Z @ 4443 NONAME ; bool QString::isSharedWith(class QString const &) const
+	?parentChanged@QAbstractDeclarativeData@@2P6AXPAV1@PAVQObject@@1@ZA @ 4444 NONAME ; void (*QAbstractDeclarativeData::parentChanged)(class QAbstractDeclarativeData *, class QObject *, class QObject *)
+	?currentMSecsSinceEpoch@QDateTime@@SA_JXZ @ 4445 NONAME ; long long QDateTime::currentMSecsSinceEpoch(void)
+	?staticMetaObject@QEventDispatcherSymbian@@2UQMetaObject@@B @ 4446 NONAME ; struct QMetaObject const QEventDispatcherSymbian::staticMetaObject
+	?msecsTo@QElapsedTimer@@QBE_JABV1@@Z @ 4447 NONAME ; long long QElapsedTimer::msecsTo(class QElapsedTimer const &) const
+	?toEasingCurve@QVariant@@QBE?AVQEasingCurve@@XZ @ 4448 NONAME ; class QEasingCurve QVariant::toEasingCurve(void) const
 	?registerStreamOperators@QMetaType@@SAXHP6AXAAVQDataStream@@PBX@ZP6AX0PAX@Z@Z @ 4449 NONAME ; void QMetaType::registerStreamOperators(int, void (*)(class QDataStream &, void const *), void (*)(class QDataStream &, void *))
-	?registerTypedef@QMetaType@@SAHPBDH@Z @ 4450 NONAME ; int QMetaType::registerTypedef(char const *, int)
-	?replace@QByteArray@@QAEAAV1@HHPBDH@Z @ 4451 NONAME ; class QByteArray & QByteArray::replace(int, int, char const *, int)
-	?restart@QElapsedTimer@@QAE_JXZ @ 4452 NONAME ; long long QElapsedTimer::restart(void)
-	?secsTo@QElapsedTimer@@QBE_JABV1@@Z @ 4453 NONAME ; long long QElapsedTimer::secsTo(class QElapsedTimer const &) const
-	?setMSecsSinceEpoch@QDateTime@@QAEX_J@Z @ 4454 NONAME ; void QDateTime::setMSecsSinceEpoch(long long)
-	?start@QElapsedTimer@@QAEXXZ @ 4455 NONAME ; void QElapsedTimer::start(void)
-	?toEasingCurve@QVariant@@QBE?AVQEasingCurve@@XZ @ 4456 NONAME ; class QEasingCurve QVariant::toEasingCurve(void) const
-	?toMSecsSinceEpoch@QDateTime@@QBE_JXZ @ 4457 NONAME ; long long QDateTime::toMSecsSinceEpoch(void) const
-	?transitions@QState@@QBE?AV?$QList@PAVQAbstractTransition@@@@XZ @ 4458 NONAME ; class QList<class QAbstractTransition *> QState::transitions(void) const
-	?validCodecs@QTextCodec@@CA_NXZ @ 4459 NONAME ; bool QTextCodec::validCodecs(void)
-	?destroyed@QDeclarativeData@@2P6AXPAV1@PAVQObject@@@ZA @ 4460 NONAME ABSENT ; void (*QDeclarativeData::destroyed)(class QDeclarativeData *, class QObject *)
-	?parentChanged@QDeclarativeData@@2P6AXPAV1@PAVQObject@@1@ZA @ 4461 NONAME ABSENT ; void (*QDeclarativeData::parentChanged)(class QDeclarativeData *, class QObject *, class QObject *)
-	?parentChanged@QAbstractDeclarativeData@@2P6AXPAV1@PAVQObject@@1@ZA @ 4462 NONAME ; void (*QAbstractDeclarativeData::parentChanged)(class QAbstractDeclarativeData *, class QObject *, class QObject *)
-	?destroyed@QAbstractDeclarativeData@@2P6AXPAV1@PAVQObject@@@ZA @ 4463 NONAME ; void (*QAbstractDeclarativeData::destroyed)(class QAbstractDeclarativeData *, class QObject *)
-	?selectThread@QEventDispatcherSymbian@@AAEAAVQSelectThread@@XZ @ 4464 NONAME ; class QSelectThread & QEventDispatcherSymbian::selectThread(void)
-	?setRawData@QByteArray@@QAEAAV1@PBDI@Z @ 4465 NONAME ; class QByteArray & QByteArray::setRawData(char const *, unsigned int)
-	?setRawData@QString@@QAEAAV1@PBVQChar@@H@Z @ 4466 NONAME ; class QString & QString::setRawData(class QChar const *, int)
-	?getStaticMetaObject@QEventDispatcherSymbian@@SAABUQMetaObject@@XZ @ 4467 NONAME ; struct QMetaObject const & QEventDispatcherSymbian::getStaticMetaObject(void)
-	?isHighSurrogate@QChar@@SA_NI@Z @ 4468 NONAME ; bool QChar::isHighSurrogate(unsigned int)
-	?isLowSurrogate@QChar@@SA_NI@Z @ 4469 NONAME ; bool QChar::isLowSurrogate(unsigned int)
-	?metaObject@QEventDispatcherSymbian@@UBEPBUQMetaObject@@XZ @ 4470 NONAME ; struct QMetaObject const * QEventDispatcherSymbian::metaObject(void) const
-	?msecsTo@QDateTime@@QBE_JABV1@@Z @ 4471 NONAME ; long long QDateTime::msecsTo(class QDateTime const &) const
-	?qt_metacall@QEventDispatcherSymbian@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 4472 NONAME ; int QEventDispatcherSymbian::qt_metacall(enum QMetaObject::Call, int, void * *)
-	?qt_metacast@QEventDispatcherSymbian@@UAEPAXPBD@Z @ 4473 NONAME ; void * QEventDispatcherSymbian::qt_metacast(char const *)
-	?requiresSurrogates@QChar@@SA_NI@Z @ 4474 NONAME ; bool QChar::requiresSurrogates(unsigned int)
-	?symbianInit@QCoreApplicationPrivate@@QAEXXZ @ 4475 NONAME ; void QCoreApplicationPrivate::symbianInit(void)
-	?tr@QEventDispatcherSymbian@@SA?AVQString@@PBD0@Z @ 4476 NONAME ; class QString QEventDispatcherSymbian::tr(char const *, char const *)
-	?tr@QEventDispatcherSymbian@@SA?AVQString@@PBD0H@Z @ 4477 NONAME ; class QString QEventDispatcherSymbian::tr(char const *, char const *, int)
-	?trUtf8@QEventDispatcherSymbian@@SA?AVQString@@PBD0@Z @ 4478 NONAME ; class QString QEventDispatcherSymbian::trUtf8(char const *, char const *)
-	?trUtf8@QEventDispatcherSymbian@@SA?AVQString@@PBD0H@Z @ 4479 NONAME ; class QString QEventDispatcherSymbian::trUtf8(char const *, char const *, int)
-	?staticMetaObject@QEventDispatcherSymbian@@2UQMetaObject@@B @ 4480 NONAME ; struct QMetaObject const QEventDispatcherSymbian::staticMetaObject
+	?replace@QByteArray@@QAEAAV1@HHPBDH@Z @ 4450 NONAME ; class QByteArray & QByteArray::replace(int, int, char const *, int)
+	?elapsed@QElapsedTimer@@QBE_JXZ @ 4451 NONAME ; long long QElapsedTimer::elapsed(void) const
+	??0QTextEncoder@@QAE@PBVQTextCodec@@V?$QFlags@W4ConversionFlag@QTextCodec@@@@@Z @ 4452 NONAME ; QTextEncoder::QTextEncoder(class QTextCodec const *, class QFlags<enum QTextCodec::ConversionFlag>)
+	??6@YAAAVQDataStream@@AAV0@ABVQEasingCurve@@@Z @ 4453 NONAME ; class QDataStream & operator<<(class QDataStream &, class QEasingCurve const &)
+	?qDecodeDataUrl@@YA?AU?$QPair@VQString@@VQByteArray@@@@ABVQUrl@@@Z @ 4454 NONAME ; struct QPair<class QString, class QByteArray> qDecodeDataUrl(class QUrl const &)
+	?trUtf8@QEventDispatcherSymbian@@SA?AVQString@@PBD0@Z @ 4455 NONAME ; class QString QEventDispatcherSymbian::trUtf8(char const *, char const *)
+	?setNativeArguments@QProcess@@QAEXABVQString@@@Z @ 4456 NONAME ; void QProcess::setNativeArguments(class QString const &)
+	?msecsTo@QDateTime@@QBE_JABV1@@Z @ 4457 NONAME ; long long QDateTime::msecsTo(class QDateTime const &) const
+	?tr@QEventDispatcherSymbian@@SA?AVQString@@PBD0H@Z @ 4458 NONAME ; class QString QEventDispatcherSymbian::tr(char const *, char const *, int)
+	?setMSecsSinceEpoch@QDateTime@@QAEX_J@Z @ 4459 NONAME ; void QDateTime::setMSecsSinceEpoch(long long)
+	?tr@QEventDispatcherSymbian@@SA?AVQString@@PBD0@Z @ 4460 NONAME ; class QString QEventDispatcherSymbian::tr(char const *, char const *)
+	?isSharedWith@QByteArray@@QBE_NABV1@@Z @ 4461 NONAME ; bool QByteArray::isSharedWith(class QByteArray const &) const
+	?secsTo@QElapsedTimer@@QBE_JABV1@@Z @ 4462 NONAME ; long long QElapsedTimer::secsTo(class QElapsedTimer const &) const
+	??5@YAAAVQDataStream@@AAV0@AAVQEasingCurve@@@Z @ 4463 NONAME ; class QDataStream & operator>>(class QDataStream &, class QEasingCurve &)
+	??0QString@@QAE@PBVQChar@@@Z @ 4464 NONAME ; QString::QString(class QChar const *)
+	?append@QListData@@QAEPAPAXH@Z @ 4465 NONAME ; void * * QListData::append(int)
+	?getStaticMetaObject@QEventDispatcherSymbian@@SAABUQMetaObject@@XZ @ 4466 NONAME ; struct QMetaObject const & QEventDispatcherSymbian::getStaticMetaObject(void)
+	?peek@QIODevicePrivate@@UAE?AVQByteArray@@_J@Z @ 4467 NONAME ; class QByteArray QIODevicePrivate::peek(long long)
+	?detach_grow@QListData@@QAEPAUData@1@PAHH@Z @ 4468 NONAME ; struct QListData::Data * QListData::detach_grow(int *, int)
+	?symbianInit@QCoreApplicationPrivate@@QAEXXZ @ 4469 NONAME ; void QCoreApplicationPrivate::symbianInit(void)
+	??0QTextDecoder@@QAE@PBVQTextCodec@@V?$QFlags@W4ConversionFlag@QTextCodec@@@@@Z @ 4470 NONAME ; QTextDecoder::QTextDecoder(class QTextCodec const *, class QFlags<enum QTextCodec::ConversionFlag>)
+	?requiresSurrogates@QChar@@SA_NI@Z @ 4471 NONAME ; bool QChar::requiresSurrogates(unsigned int)
+	?isLowSurrogate@QChar@@SA_NI@Z @ 4472 NONAME ; bool QChar::isLowSurrogate(unsigned int)
+	?qt_metacall@QEventDispatcherSymbian@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 4473 NONAME ; int QEventDispatcherSymbian::qt_metacall(enum QMetaObject::Call, int, void * *)
+	?setRawData@QByteArray@@QAEAAV1@PBDI@Z @ 4474 NONAME ; class QByteArray & QByteArray::setRawData(char const *, unsigned int)
+	?fromMSecsSinceEpoch@QDateTime@@SA?AV1@_J@Z @ 4475 NONAME ; class QDateTime QDateTime::fromMSecsSinceEpoch(long long)
+	?invalidate@QElapsedTimer@@QAEXXZ @ 4476 NONAME ; void QElapsedTimer::invalidate(void)
+	?restart@QElapsedTimer@@QAE_JXZ @ 4477 NONAME ; long long QElapsedTimer::restart(void)
+	?currentDateTimeUtc@QDateTime@@SA?AV1@XZ @ 4478 NONAME ; class QDateTime QDateTime::currentDateTimeUtc(void)
+	?isMonotonic@QElapsedTimer@@SA_NXZ @ 4479 NONAME ; bool QElapsedTimer::isMonotonic(void)
+	?peek@QIODevicePrivate@@UAE_JPAD_J@Z @ 4480 NONAME ; long long QIODevicePrivate::peek(char *, long long)
 	?textDirection@QLocale@@QBE?AW4LayoutDirection@Qt@@XZ @ 4481 NONAME ; enum Qt::LayoutDirection QLocale::textDirection(void) const
-	?nativeArguments@QProcess@@QBE?AVQString@@XZ @ 4482 NONAME ; class QString QProcess::nativeArguments(void) const
-	?setNativeArguments@QProcess@@QAEXABVQString@@@Z @ 4483 NONAME ; void QProcess::setNativeArguments(class QString const &)
-	?peek@QIODevicePrivate@@UAE?AVQByteArray@@_J@Z @ 4484 NONAME ; class QByteArray QIODevicePrivate::peek(long long)
-	?peek@QIODevicePrivate@@UAE_JPAD_J@Z @ 4485 NONAME ; long long QIODevicePrivate::peek(char *, long long)
+	?msecsSinceReference@QElapsedTimer@@QBE_JXZ @ 4482 NONAME ; long long QElapsedTimer::msecsSinceReference(void) const
+	?selectThread@QEventDispatcherSymbian@@AAEAAVQSelectThread@@XZ @ 4483 NONAME ; class QSelectThread & QEventDispatcherSymbian::selectThread(void)
 
--- a/src/s60installs/bwins/QtDeclarativeu.def	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/s60installs/bwins/QtDeclarativeu.def	Mon Oct 04 01:19:32 2010 +0300
@@ -1677,11 +1677,12 @@
 	?setMethodBody@QDeclarativeEngineDebug@@QAE_NHABVQString@@0@Z @ 1676 NONAME ; bool QDeclarativeEngineDebug::setMethodBody(int, class QString const &, class QString const &)
 	?resetBindingForObject@QDeclarativeEngineDebug@@QAE_NHABVQString@@@Z @ 1677 NONAME ; bool QDeclarativeEngineDebug::resetBindingForObject(int, class QString const &)
 	?forceActiveFocus@QDeclarativeItem@@QAEXXZ @ 1678 NONAME ; void QDeclarativeItem::forceActiveFocus(void)
-	?qmlregister@QDeclarativePrivate@@YAHW4RegistrationType@1@PAX@Z @ 1679 NONAME ; int QDeclarativePrivate::qmlregister(enum QDeclarativePrivate::RegistrationType, void *)
-	?engine@QDeclarativeView@@QBEPAVQDeclarativeEngine@@XZ @ 1680 NONAME ; class QDeclarativeEngine * QDeclarativeView::engine(void) const
-	?activeFocusChanged@QDeclarativeItem@@IAEX_N@Z @ 1681 NONAME ; void QDeclarativeItem::activeFocusChanged(bool)
-	?focusScopeItemChange@QDeclarativeItemPrivate@@UAEX_N@Z @ 1682 NONAME ; void QDeclarativeItemPrivate::focusScopeItemChange(bool)
+	?activeFocusChanged@QDeclarativeItem@@IAEX_N@Z @ 1679 NONAME ; void QDeclarativeItem::activeFocusChanged(bool)
+	?focusScopeItemChange@QDeclarativeItemPrivate@@UAEX_N@Z @ 1680 NONAME ; void QDeclarativeItemPrivate::focusScopeItemChange(bool)
+	?hasActiveFocus@QDeclarativeItem@@QBE_NXZ @ 1681 NONAME ; bool QDeclarativeItem::hasActiveFocus(void) const
+	?engine@QDeclarativeView@@QBEPAVQDeclarativeEngine@@XZ @ 1682 NONAME ; class QDeclarativeEngine * QDeclarativeView::engine(void) const
 	?rootContext@QDeclarativeView@@QBEPAVQDeclarativeContext@@XZ @ 1683 NONAME ; class QDeclarativeContext * QDeclarativeView::rootContext(void) const
 	?rootContext@QDeclarativeEngine@@QBEPAVQDeclarativeContext@@XZ @ 1684 NONAME ; class QDeclarativeContext * QDeclarativeEngine::rootContext(void) const
-	?hasActiveFocus@QDeclarativeItem@@QBE_NXZ @ 1685 NONAME ; bool QDeclarativeItem::hasActiveFocus(void) const
+	?qmlregister@QDeclarativePrivate@@YAHW4RegistrationType@1@PAX@Z @ 1685 NONAME ; int QDeclarativePrivate::qmlregister(enum QDeclarativePrivate::RegistrationType, void *)
+	?hasValue@QDeclarativeOpenMetaObject@@QBE_NH@Z @ 1686 NONAME ; bool QDeclarativeOpenMetaObject::hasValue(int) const
 
--- a/src/s60installs/bwins/QtGuiu.def	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/s60installs/bwins/QtGuiu.def	Mon Oct 04 01:19:32 2010 +0300
@@ -4148,7 +4148,7 @@
 	?ensureSceneTransformRecursive@QGraphicsItemPrivate@@QAEXPAPAVQGraphicsItem@@@Z @ 4147 NONAME ; void QGraphicsItemPrivate::ensureSceneTransformRecursive(class QGraphicsItem * *)
 	?ensureSequentialSiblingIndex@QGraphicsItemPrivate@@QAEXXZ @ 4148 NONAME ; void QGraphicsItemPrivate::ensureSequentialSiblingIndex(void)
 	?ensureSortedChildren@QGraphicsItemPrivate@@QAEXXZ @ 4149 NONAME ; void QGraphicsItemPrivate::ensureSortedChildren(void)
-	?ensureSpace@QTextEngine@@QBEXH@Z @ 4150 NONAME ; void QTextEngine::ensureSpace(int) const
+	?ensureSpace@QTextEngine@@QBEXH@Z @ 4150 NONAME ABSENT ; void QTextEngine::ensureSpace(int) const
 	?ensureVisible@QGraphicsItem@@QAEXABVQRectF@@HH@Z @ 4151 NONAME ; void QGraphicsItem::ensureVisible(class QRectF const &, int, int)
 	?ensureVisible@QGraphicsItem@@QAEXMMMMHH@Z @ 4152 NONAME ; void QGraphicsItem::ensureVisible(float, float, float, float, int, int)
 	?ensureVisible@QGraphicsView@@QAEXABVQRectF@@HH@Z @ 4153 NONAME ; void QGraphicsView::ensureVisible(class QRectF const &, int, int)
@@ -8181,7 +8181,7 @@
 	?rowsInserted@QTreeView@@MAEXABVQModelIndex@@HH@Z @ 8180 NONAME ; void QTreeView::rowsInserted(class QModelIndex const &, int, int)
 	?rowsRemoved@QTreeView@@IAEXABVQModelIndex@@HH@Z @ 8181 NONAME ; void QTreeView::rowsRemoved(class QModelIndex const &, int, int)
 	?rubberBandSelectionMode@QGraphicsView@@QBE?AW4ItemSelectionMode@Qt@@XZ @ 8182 NONAME ; enum Qt::ItemSelectionMode QGraphicsView::rubberBandSelectionMode(void) const
-	?s60AdjustedPosition@QDialog@@AAE_NXZ @ 8183 NONAME ABSENT ; bool QDialog::s60AdjustedPosition(void)
+	?symbianAdjustedPosition@QDialog@@AAE_NXZ @ 8183 NONAME ; bool QDialog::symbianAdjustedPosition(void)
 	?s60UpdateIsOpaque@QWidgetPrivate@@QAEXXZ @ 8184 NONAME ; void QWidgetPrivate::s60UpdateIsOpaque(void)
 	?saturation@QColor@@QBEHXZ @ 8185 NONAME ; int QColor::saturation(void) const
 	?saturationF@QColor@@QBEMXZ @ 8186 NONAME ; float QColor::saturationF(void) const
@@ -12372,7 +12372,7 @@
 	?staticMetaObject@QBoxLayout@@2UQMetaObject@@B @ 12371 NONAME ; struct QMetaObject const QBoxLayout::staticMetaObject
 	?qt_tab_all_widgets@@3_NA @ 12372 NONAME ; bool qt_tab_all_widgets
 	?staticMetaObject@QSpinBox@@2UQMetaObject@@B @ 12373 NONAME ; struct QMetaObject const QSpinBox::staticMetaObject
-	?scanCodeCache@QApplicationPrivate@@0V?$QHash@HI@@A @ 12374 NONAME ; class QHash<int, unsigned int> QApplicationPrivate::scanCodeCache
+	?scanCodeCache@QApplicationPrivate@@0V?$QHash@HI@@A @ 12374 NONAME ABSENT ; class QHash<int, unsigned int> QApplicationPrivate::scanCodeCache
 	?staticMetaObject@QItemSelectionModel@@2UQMetaObject@@B @ 12375 NONAME ; struct QMetaObject const QItemSelectionModel::staticMetaObject
 	?staticMetaObject@QItemDelegate@@2UQMetaObject@@B @ 12376 NONAME ; struct QMetaObject const QItemDelegate::staticMetaObject
 	?staticMetaObject@QPushButton@@2UQMetaObject@@B @ 12377 NONAME ; struct QMetaObject const QPushButton::staticMetaObject
@@ -12548,9 +12548,9 @@
 	?timerEvent@QS60Style@@MAEXPAVQTimerEvent@@@Z @ 12547 NONAME ; void QS60Style::timerEvent(class QTimerEvent *)
 	?updateAncestorFlags@QGraphicsItemPrivate@@QAEXXZ @ 12548 NONAME ; void QGraphicsItemPrivate::updateAncestorFlags(void)
 	?updateChildWithGraphicsEffectFlagRecursively@QGraphicsItemPrivate@@QAEXXZ @ 12549 NONAME ; void QGraphicsItemPrivate::updateChildWithGraphicsEffectFlagRecursively(void)
-	?isOpacityNull@QGraphicsItemPrivate@@SA_NM@Z @ 12550 NONAME ; bool QGraphicsItemPrivate::isOpacityNull(float)
-	?isOpacityNull@QGraphicsItemPrivate@@QBE_NXZ @ 12551 NONAME ; bool QGraphicsItemPrivate::isOpacityNull(void) const
-	?api@QEglContext@@QBE?AW4API@QEgl@@XZ @ 12552 NONAME ABSENT ; enum QEgl::API QEglContext::api(void) const
+	?api@QEglContext@@QBE?AW4API@QEgl@@XZ @ 12550 NONAME ; enum QEgl::API QEglContext::api(void) const
+	?display@QEglContext@@SAHXZ @ 12551 NONAME ABSENT ; int QEglContext::display(void)
+	?isOpacityNull@QGraphicsItemPrivate@@SA_NM@Z @ 12552 NONAME ; bool QGraphicsItemPrivate::isOpacityNull(float)
 	?chooseConfig@QEglContext@@QAE_NABVQEglProperties@@W4PixelFormatMatch@QEgl@@@Z @ 12553 NONAME ; bool QEglContext::chooseConfig(class QEglProperties const &, enum QEgl::PixelFormatMatch)
 	?destroySurface@QEglContext@@QAEXH@Z @ 12554 NONAME ; void QEglContext::destroySurface(int)
 	?lazyDoneCurrent@QEglContext@@QAE_NXZ @ 12555 NONAME ; bool QEglContext::lazyDoneCurrent(void)
@@ -12559,343 +12559,333 @@
 	?configAttrib@QEglContext@@QBE_NHPAH@Z @ 12558 NONAME ABSENT ; bool QEglContext::configAttrib(int, int *) const
 	??0QEglProperties@@QAE@ABV0@@Z @ 12559 NONAME ; QEglProperties::QEglProperties(class QEglProperties const &)
 	?config@QEglContext@@QBEHXZ @ 12560 NONAME ; int QEglContext::config(void) const
-	?openDisplay@QEglContext@@QAE_NPAVQPaintDevice@@@Z @ 12561 NONAME ABSENT ; bool QEglContext::openDisplay(class QPaintDevice *)
+	?clearFocusHelper@QGraphicsItemPrivate@@QAEX_N@Z @ 12561 NONAME ; void QGraphicsItemPrivate::clearFocusHelper(bool)
 	?error@QEglContext@@SAHXZ @ 12562 NONAME ABSENT ; int QEglContext::error(void)
 	?swapBuffers@QEglContext@@QAE_NH@Z @ 12563 NONAME ; bool QEglContext::swapBuffers(int)
-	?setApi@QEglContext@@QAEXW4API@QEgl@@@Z @ 12564 NONAME ; void QEglContext::setApi(enum QEgl::API)
-	?makeCurrent@QEglContext@@QAE_NH@Z @ 12565 NONAME ; bool QEglContext::makeCurrent(int)
-	?createSurface@QEglContext@@QAEHPAVQPaintDevice@@PBVQEglProperties@@@Z @ 12566 NONAME ; int QEglContext::createSurface(class QPaintDevice *, class QEglProperties const *)
-	?dumpAllConfigs@QEglContext@@QAEXXZ @ 12567 NONAME ABSENT ; void QEglContext::dumpAllConfigs(void)
-	?reduceConfiguration@QEglProperties@@QAE_NXZ @ 12568 NONAME ; bool QEglProperties::reduceConfiguration(void)
-	?removeValue@QEglProperties@@QAE_NH@Z @ 12569 NONAME ; bool QEglProperties::removeValue(int)
-	?toString@QEglProperties@@QBE?AVQString@@XZ @ 12570 NONAME ; class QString QEglProperties::toString(void) const
-	?dumpAllConfigs@QEglProperties@@SAXXZ @ 12571 NONAME ABSENT ; void QEglProperties::dumpAllConfigs(void)
-	?defaultDisplay@QEglContext@@SAHPAVQPaintDevice@@@Z @ 12572 NONAME ABSENT ; int QEglContext::defaultDisplay(class QPaintDevice *)
-	?configProperties@QEglContext@@QBE?AVQEglProperties@@H@Z @ 12573 NONAME ABSENT ; class QEglProperties QEglContext::configProperties(int) const
-	?properties@QEglProperties@@QBEPBHXZ @ 12574 NONAME ; int const * QEglProperties::properties(void) const
-	??0QEglContext@@QAE@XZ @ 12575 NONAME ; QEglContext::QEglContext(void)
-	??1QEglContext@@QAE@XZ @ 12576 NONAME ; QEglContext::~QEglContext(void)
-	?isValid@QEglContext@@QBE_NXZ @ 12577 NONAME ; bool QEglContext::isValid(void) const
-	?value@QEglProperties@@QBEHH@Z @ 12578 NONAME ; int QEglProperties::value(int) const
-	?clearError@QEglContext@@SAXXZ @ 12579 NONAME ABSENT ; void QEglContext::clearError(void)
-	??0QEglProperties@@QAE@H@Z @ 12580 NONAME ; QEglProperties::QEglProperties(int)
-	?setValue@QEglProperties@@QAEXHH@Z @ 12581 NONAME ; void QEglProperties::setValue(int, int)
-	?setPaintDeviceFormat@QEglProperties@@QAEXPAVQPaintDevice@@@Z @ 12582 NONAME ; void QEglProperties::setPaintDeviceFormat(class QPaintDevice *)
-	?destroy@QEglContext@@QAEXXZ @ 12583 NONAME ABSENT ; void QEglContext::destroy(void)
-	?setRenderableType@QEglProperties@@QAEXW4API@QEgl@@@Z @ 12584 NONAME ; void QEglProperties::setRenderableType(enum QEgl::API)
-	?setContext@QEglContext@@QAEXH@Z @ 12585 NONAME ; void QEglContext::setContext(int)
-	?waitClient@QEglContext@@QAEXXZ @ 12586 NONAME ABSENT ; void QEglContext::waitClient(void)
-	?isEmpty@QEglProperties@@QBE_NXZ @ 12587 NONAME ; bool QEglProperties::isEmpty(void) const
-	?getDisplay@QEglContext@@CAHPAVQPaintDevice@@@Z @ 12588 NONAME ABSENT ; int QEglContext::getDisplay(class QPaintDevice *)
-	?isSharing@QEglContext@@QBE_NXZ @ 12589 NONAME ; bool QEglContext::isSharing(void) const
-	?isCurrent@QEglContext@@QBE_NXZ @ 12590 NONAME ; bool QEglContext::isCurrent(void) const
-	??0QEglProperties@@QAE@XZ @ 12591 NONAME ; QEglProperties::QEglProperties(void)
-	?extensions@QEglContext@@SA?AVQString@@XZ @ 12592 NONAME ABSENT ; class QString QEglContext::extensions(void)
-	?setCurrentContext@QEglContext@@CAXW4API@QEgl@@PAV1@@Z @ 12593 NONAME ; void QEglContext::setCurrentContext(enum QEgl::API, class QEglContext *)
-	??1QEglProperties@@QAE@XZ @ 12594 NONAME ; QEglProperties::~QEglProperties(void)
-	?createContext@QEglContext@@QAE_NPAV1@PBVQEglProperties@@@Z @ 12595 NONAME ; bool QEglContext::createContext(class QEglContext *, class QEglProperties const *)
-	?setConfig@QEglContext@@QAEXH@Z @ 12596 NONAME ; void QEglContext::setConfig(int)
-	?hasExtension@QEglContext@@SA_NPBD@Z @ 12597 NONAME ABSENT ; bool QEglContext::hasExtension(char const *)
-	?doneCurrent@QEglContext@@QAE_NXZ @ 12598 NONAME ; bool QEglContext::doneCurrent(void)
-	?display@QEglContext@@QBEHXZ @ 12599 NONAME ABSENT ; int QEglContext::display(void) const
-	?setPixelFormat@QEglProperties@@QAEXW4Format@QImage@@@Z @ 12600 NONAME ; void QEglProperties::setPixelFormat(enum QImage::Format)
-	?currentContext@QEglContext@@CAPAV1@W4API@QEgl@@@Z @ 12601 NONAME ; class QEglContext * QEglContext::currentContext(enum QEgl::API)
-	?errorString@QEglContext@@SA?AVQString@@H@Z @ 12602 NONAME ABSENT ; class QString QEglContext::errorString(int)
-	?removeAllApplicationFonts@QFontDatabase@@SA_NXZ @ 12603 NONAME ; bool QFontDatabase::removeAllApplicationFonts()
-	??0FileInfo@QZipReader@@QAE@XZ @ 12604 NONAME ; QZipReader::FileInfo::FileInfo(void)
-	??0QAbstractScrollAreaPrivate@@QAE@XZ @ 12605 NONAME ; QAbstractScrollAreaPrivate::QAbstractScrollAreaPrivate(void)
-	??0QGraphicsViewPrivate@@QAE@XZ @ 12606 NONAME ; QGraphicsViewPrivate::QGraphicsViewPrivate(void)
-	??0QKeySequence@@QAE@ABVQString@@W4SequenceFormat@0@@Z @ 12607 NONAME ; QKeySequence::QKeySequence(class QString const &, enum QKeySequence::SequenceFormat)
-	??0QStaticText@@QAE@ABV0@@Z @ 12608 NONAME ; QStaticText::QStaticText(class QStaticText const &)
-	??0QStaticText@@QAE@ABVQString@@ABVQSizeF@@@Z @ 12609 NONAME ABSENT ; QStaticText::QStaticText(class QString const &, class QSizeF const &)
-	??0QStaticText@@QAE@XZ @ 12610 NONAME ; QStaticText::QStaticText(void)
-	??0QStaticTextItem@@QAE@XZ @ 12611 NONAME ; QStaticTextItem::QStaticTextItem(void)
-	??0QZipReader@@QAE@ABVQString@@V?$QFlags@W4OpenModeFlag@QIODevice@@@@@Z @ 12612 NONAME ; QZipReader::QZipReader(class QString const &, class QFlags<enum QIODevice::OpenModeFlag>)
-	??0QZipReader@@QAE@PAVQIODevice@@@Z @ 12613 NONAME ; QZipReader::QZipReader(class QIODevice *)
-	??1FileInfo@QZipReader@@QAE@XZ @ 12614 NONAME ; QZipReader::FileInfo::~FileInfo(void)
-	??1QAbstractScrollAreaPrivate@@UAE@XZ @ 12615 NONAME ; QAbstractScrollAreaPrivate::~QAbstractScrollAreaPrivate(void)
-	??1QGraphicsViewPrivate@@UAE@XZ @ 12616 NONAME ; QGraphicsViewPrivate::~QGraphicsViewPrivate(void)
-	??1QStaticText@@QAE@XZ @ 12617 NONAME ; QStaticText::~QStaticText(void)
-	??1QStaticTextItem@@QAE@XZ @ 12618 NONAME ; QStaticTextItem::~QStaticTextItem(void)
-	??1QZipReader@@QAE@XZ @ 12619 NONAME ; QZipReader::~QZipReader(void)
-	??4FileInfo@QZipReader@@QAEAAU01@ABU01@@Z @ 12620 NONAME ; struct QZipReader::FileInfo & QZipReader::FileInfo::operator=(struct QZipReader::FileInfo const &)
-	??4QStaticText@@QAEAAV0@ABV0@@Z @ 12621 NONAME ; class QStaticText & QStaticText::operator=(class QStaticText const &)
-	??8QStaticText@@QBE_NABV0@@Z @ 12622 NONAME ; bool QStaticText::operator==(class QStaticText const &) const
-	??9QStaticText@@QBE_NABV0@@Z @ 12623 NONAME ; bool QStaticText::operator!=(class QStaticText const &) const
-	??_EQAbstractScrollAreaPrivate@@UAE@I@Z @ 12624 NONAME ; QAbstractScrollAreaPrivate::~QAbstractScrollAreaPrivate(unsigned int)
-	??_EQGraphicsViewPrivate@@UAE@I@Z @ 12625 NONAME ; QGraphicsViewPrivate::~QGraphicsViewPrivate(unsigned int)
-	?_q_hslide@QAbstractScrollAreaPrivate@@QAEXH@Z @ 12626 NONAME ; void QAbstractScrollAreaPrivate::_q_hslide(int)
+	?canKeypadNavigate@QWidgetPrivate@@SA_NW4Orientation@Qt@@@Z @ 12564 NONAME ; bool QWidgetPrivate::canKeypadNavigate(enum Qt::Orientation)
+	?removeAllApplicationFonts@QFontDatabase@@SA_NXZ @ 12565 NONAME ; bool QFontDatabase::removeAllApplicationFonts(void)
+	?setApi@QEglContext@@QAEXW4API@QEgl@@@Z @ 12566 NONAME ; void QEglContext::setApi(enum QEgl::API)
+	?updateDisplayText@QLineControl@@AAEX_N@Z @ 12567 NONAME ; void QLineControl::updateDisplayText(bool)
+	?makeCurrent@QEglContext@@QAE_NH@Z @ 12568 NONAME ; bool QEglContext::makeCurrent(int)
+	?isPixmapCached@QImagePixmapCleanupHooks@@SA_NABVQPixmap@@@Z @ 12569 NONAME ; bool QImagePixmapCleanupHooks::isPixmapCached(class QPixmap const &)
+	?createSurface@QEglContext@@QAEHPAVQPaintDevice@@PBVQEglProperties@@@Z @ 12570 NONAME ; int QEglContext::createSurface(class QPaintDevice *, class QEglProperties const *)
+	?dumpAllConfigs@QEglContext@@QAEXXZ @ 12571 NONAME ABSENT ; void QEglContext::dumpAllConfigs(void)
+	?reduceConfiguration@QEglProperties@@QAE_NXZ @ 12572 NONAME ; bool QEglProperties::reduceConfiguration(void)
+	?nativeDisplay@QEglContext@@CAHXZ @ 12573 NONAME ABSENT ; int QEglContext::nativeDisplay(void)
+	?getGlyphBearings@QFontEngine@@UAEXIPAM0@Z @ 12574 NONAME ; void QFontEngine::getGlyphBearings(unsigned int, float *, float *)
+	?removeValue@QEglProperties@@QAE_NH@Z @ 12575 NONAME ; bool QEglProperties::removeValue(int)
+	?toString@QEglProperties@@QBE?AVQString@@XZ @ 12576 NONAME ; class QString QEglProperties::toString(void) const
+	?isOpacityNull@QGraphicsItemPrivate@@QBE_NXZ @ 12577 NONAME ; bool QGraphicsItemPrivate::isOpacityNull(void) const
+	?dumpAllConfigs@QEglProperties@@SAXXZ @ 12578 NONAME ABSENT ; void QEglProperties::dumpAllConfigs(void)
+	?inTabWidget@QWidgetPrivate@@SA_NPAVQWidget@@@Z @ 12579 NONAME ; bool QWidgetPrivate::inTabWidget(class QWidget *)
+	?configProperties@QEglContext@@QBE?AVQEglProperties@@H@Z @ 12580 NONAME ABSENT ; class QEglProperties QEglContext::configProperties(int) const
+	?properties@QEglProperties@@QBEPBHXZ @ 12581 NONAME ; int const * QEglProperties::properties(void) const
+	?destroyContext@QEglContext@@QAEXXZ @ 12582 NONAME ; void QEglContext::destroyContext(void)
+	??0QEglContext@@QAE@XZ @ 12583 NONAME ; QEglContext::QEglContext(void)
+	??1QEglContext@@QAE@XZ @ 12584 NONAME ; QEglContext::~QEglContext(void)
+	?isValid@QEglContext@@QBE_NXZ @ 12585 NONAME ; bool QEglContext::isValid(void) const
+	?value@QEglProperties@@QBEHH@Z @ 12586 NONAME ; int QEglProperties::value(int) const
+	?clearError@QEglContext@@SAXXZ @ 12587 NONAME ABSENT ; void QEglContext::clearError(void)
+	??0QEglProperties@@QAE@H@Z @ 12588 NONAME ; QEglProperties::QEglProperties(int)
+	?setValue@QEglProperties@@QAEXHH@Z @ 12589 NONAME ; void QEglProperties::setValue(int, int)
+	?setPaintDeviceFormat@QEglProperties@@QAEXPAVQPaintDevice@@@Z @ 12590 NONAME ; void QEglProperties::setPaintDeviceFormat(class QPaintDevice *)
+	?isImageCached@QImagePixmapCleanupHooks@@SA_NABVQImage@@@Z @ 12591 NONAME ; bool QImagePixmapCleanupHooks::isImageCached(class QImage const &)
+	?setRenderableType@QEglProperties@@QAEXW4API@QEgl@@@Z @ 12592 NONAME ; void QEglProperties::setRenderableType(enum QEgl::API)
+	?setContext@QEglContext@@QAEXH@Z @ 12593 NONAME ; void QEglContext::setContext(int)
+	?waitClient@QEglContext@@QAEXXZ @ 12594 NONAME ABSENT ; void QEglContext::waitClient(void)
+	?isEmpty@QEglProperties@@QBE_NXZ @ 12595 NONAME ; bool QEglProperties::isEmpty(void) const
+	?dpy@QEglContext@@0HA @ 12596 NONAME ABSENT ; int QEglContext::dpy
+	?isSharing@QEglContext@@QBE_NXZ @ 12597 NONAME ; bool QEglContext::isSharing(void) const
+	?isCurrent@QEglContext@@QBE_NXZ @ 12598 NONAME ; bool QEglContext::isCurrent(void) const
+	??0QEglProperties@@QAE@XZ @ 12599 NONAME ; QEglProperties::QEglProperties(void)
+	?extensions@QEglContext@@SA?AVQString@@XZ @ 12600 NONAME ABSENT ; class QString QEglContext::extensions(void)
+	?setCurrentContext@QEglContext@@CAXW4API@QEgl@@PAV1@@Z @ 12601 NONAME ; void QEglContext::setCurrentContext(enum QEgl::API, class QEglContext *)
+	??1QEglProperties@@QAE@XZ @ 12602 NONAME ; QEglProperties::~QEglProperties(void)
+	?createContext@QEglContext@@QAE_NPAV1@PBVQEglProperties@@@Z @ 12603 NONAME ; bool QEglContext::createContext(class QEglContext *, class QEglProperties const *)
+	?setConfig@QEglContext@@QAEXH@Z @ 12604 NONAME ; void QEglContext::setConfig(int)
+	?hasExtension@QEglContext@@SA_NPBD@Z @ 12605 NONAME ABSENT ; bool QEglContext::hasExtension(char const *)
+	?doneCurrent@QEglContext@@QAE_NXZ @ 12606 NONAME ; bool QEglContext::doneCurrent(void)
+	?setPixelFormat@QEglProperties@@QAEXW4Format@QImage@@@Z @ 12607 NONAME ; void QEglProperties::setPixelFormat(enum QImage::Format)
+	?currentContext@QEglContext@@CAPAV1@W4API@QEgl@@@Z @ 12608 NONAME ; class QEglContext * QEglContext::currentContext(enum QEgl::API)
+	?setFocusHelper@QGraphicsItemPrivate@@QAEXW4FocusReason@Qt@@_N1@Z @ 12609 NONAME ; void QGraphicsItemPrivate::setFocusHelper(enum Qt::FocusReason, bool, bool)
+	?errorString@QEglContext@@SA?AVQString@@H@Z @ 12610 NONAME ABSENT ; class QString QEglContext::errorString(int)
+	?positionInBlock@QTextCursor@@QBEHXZ @ 12611 NONAME ; int QTextCursor::positionInBlock(void) const
+	?height@QGraphicsItemPrivate@@UBEMXZ @ 12612 NONAME ; float QGraphicsItemPrivate::height(void) const
+	?clearUndoRedoStacks@QTextDocument@@QAEXW4Stacks@1@@Z @ 12613 NONAME ; void QTextDocument::clearUndoRedoStacks(enum QTextDocument::Stacks)
+	?mapToViewRect@QGraphicsViewPrivate@@QBE?AVQRect@@PBVQGraphicsItem@@ABVQRectF@@@Z @ 12614 NONAME ; class QRect QGraphicsViewPrivate::mapToViewRect(class QGraphicsItem const *, class QRectF const &) const
+	?findItems@QGraphicsViewPrivate@@QBE?AV?$QList@PAVQGraphicsItem@@@@ABVQRegion@@PA_NABVQTransform@@@Z @ 12615 NONAME ; class QList<class QGraphicsItem *> QGraphicsViewPrivate::findItems(class QRegion const &, bool *, class QTransform const &) const
+	?constScanLine@QImage@@QBEPBEH@Z @ 12616 NONAME ; unsigned char const * QImage::constScanLine(int) const
+	?text@QStaticText@@QBE?AVQString@@XZ @ 12617 NONAME ; class QString QStaticText::text(void) const
+	?updateLastCenterPoint@QGraphicsViewPrivate@@QAEXXZ @ 12618 NONAME ; void QGraphicsViewPrivate::updateLastCenterPoint(void)
+	?sideWidget@QWizard@@QBEPAVQWidget@@XZ @ 12619 NONAME ; class QWidget * QWizard::sideWidget(void) const
+	?verticalScroll@QGraphicsViewPrivate@@QBE_JXZ @ 12620 NONAME ; long long QGraphicsViewPrivate::verticalScroll(void) const
+	?fileInfoList@QZipReader@@QBE?AV?$QList@UFileInfo@QZipReader@@@@XZ @ 12621 NONAME ; class QList<struct QZipReader::FileInfo> QZipReader::fileInfoList(void) const
+	?setSideWidget@QWizard@@QAEXPAVQWidget@@@Z @ 12622 NONAME ; void QWizard::setSideWidget(class QWidget *)
+	?paste@QLineControl@@QAEXW4Mode@QClipboard@@@Z @ 12623 NONAME ; void QLineControl::paste(enum QClipboard::Mode)
+	?performanceHint@QStaticText@@QBE?AW4PerformanceHint@1@XZ @ 12624 NONAME ; enum QStaticText::PerformanceHint QStaticText::performanceHint(void) const
+	?frameStartIndex@QPaintBuffer@@QBEHH@Z @ 12625 NONAME ; int QPaintBuffer::frameStartIndex(int) const
+	??0QAbstractScrollAreaPrivate@@QAE@XZ @ 12626 NONAME ; QAbstractScrollAreaPrivate::QAbstractScrollAreaPrivate(void)
 	?_q_setViewportCursor@QGraphicsViewPrivate@@QAEXABVQCursor@@@Z @ 12627 NONAME ; void QGraphicsViewPrivate::_q_setViewportCursor(class QCursor const &)
-	?_q_showOrHideScrollBars@QAbstractScrollAreaPrivate@@QAEXXZ @ 12628 NONAME ; void QAbstractScrollAreaPrivate::_q_showOrHideScrollBars(void)
-	?_q_unsetViewportCursor@QGraphicsViewPrivate@@QAEXXZ @ 12629 NONAME ; void QGraphicsViewPrivate::_q_unsetViewportCursor(void)
-	?_q_vslide@QAbstractScrollAreaPrivate@@QAEXH@Z @ 12630 NONAME ; void QAbstractScrollAreaPrivate::_q_vslide(int)
-	?allocStyleOptionsArray@QGraphicsViewPrivate@@QAEPAVQStyleOptionGraphicsItem@@H@Z @ 12631 NONAME ; class QStyleOptionGraphicsItem * QGraphicsViewPrivate::allocStyleOptionsArray(int)
-	?anchorAt@QPlainTextEdit@@QBE?AVQString@@ABVQPoint@@@Z @ 12632 NONAME ; class QString QPlainTextEdit::anchorAt(class QPoint const &) const
-	?assign@QKeySequence@@AAEHABVQString@@W4SequenceFormat@1@@Z @ 12633 NONAME ; int QKeySequence::assign(class QString const &, enum QKeySequence::SequenceFormat)
-	?autoFillBackground@QGraphicsWidget@@QBE_NXZ @ 12634 NONAME ; bool QGraphicsWidget::autoFillBackground(void) const
-	?canKeypadNavigate@QWidgetPrivate@@SA_NW4Orientation@Qt@@@Z @ 12635 NONAME ; bool QWidgetPrivate::canKeypadNavigate(enum Qt::Orientation)
-	?centerView@QGraphicsViewPrivate@@QAEXW4ViewportAnchor@QGraphicsView@@@Z @ 12636 NONAME ; void QGraphicsViewPrivate::centerView(enum QGraphicsView::ViewportAnchor)
-	?clearUndoRedoStacks@QTextDocument@@QAEXW4Stacks@1@@Z @ 12637 NONAME ; void QTextDocument::clearUndoRedoStacks(enum QTextDocument::Stacks)
-	?close@QZipReader@@QAEXXZ @ 12638 NONAME ; void QZipReader::close(void)
-	?constBits@QImage@@QBEPBEXZ @ 12639 NONAME ; unsigned char const * QImage::constBits(void) const
-	?constScanLine@QImage@@QBEPBEH@Z @ 12640 NONAME ; unsigned char const * QImage::constScanLine(int) const
-	?contentsOffset@QAbstractScrollAreaPrivate@@UBE?AVQPoint@@XZ @ 12641 NONAME ; class QPoint QAbstractScrollAreaPrivate::contentsOffset(void) const
-	?convertFromImage@QPixmap@@QAE_NABVQImage@@V?$QFlags@W4ImageConversionFlag@Qt@@@@@Z @ 12642 NONAME ; bool QPixmap::convertFromImage(class QImage const &, class QFlags<enum Qt::ImageConversionFlag>)
-	?count@QZipReader@@QBEHXZ @ 12643 NONAME ; int QZipReader::count(void) const
-	?create@Fragment@QPainter@@SA?AV12@ABVQPointF@@ABVQRectF@@MMMM@Z @ 12644 NONAME ABSENT ; class QPainter::Fragment QPainter::Fragment::create(class QPointF const &, class QRectF const &, float, float, float, float)
-	?detach@QStaticText@@AAEXXZ @ 12645 NONAME ; void QStaticText::detach(void)
-	?directoryLoaded@QFileSystemModel@@IAEXABVQString@@@Z @ 12646 NONAME ; void QFileSystemModel::directoryLoaded(class QString const &)
-	?dispatchPendingUpdateRequests@QGraphicsViewPrivate@@QAEXXZ @ 12647 NONAME ; void QGraphicsViewPrivate::dispatchPendingUpdateRequests(void)
-	?drawPixmapFragments@QPaintEngineEx@@UAEXPBVFragment@QPainter@@HABVQPixmap@@V?$QFlags@W4FragmentHint@QPainter@@@@@Z @ 12648 NONAME ABSENT ; void QPaintEngineEx::drawPixmapFragments(class QPainter::Fragment const *, int, class QPixmap const &, class QFlags<enum QPainter::FragmentHint>)
-	?drawPixmapFragments@QPainter@@QAEXPBVFragment@1@HABVQPixmap@@V?$QFlags@W4FragmentHint@QPainter@@@@@Z @ 12649 NONAME ABSENT ; void QPainter::drawPixmapFragments(class QPainter::Fragment const *, int, class QPixmap const &, class QFlags<enum QPainter::FragmentHint>)
-	?drawStaticText@QPainter@@QAEXABVQPoint@@ABVQStaticText@@@Z @ 12650 NONAME ; void QPainter::drawStaticText(class QPoint const &, class QStaticText const &)
-	?drawStaticText@QPainter@@QAEXABVQPointF@@ABVQStaticText@@@Z @ 12651 NONAME ; void QPainter::drawStaticText(class QPointF const &, class QStaticText const &)
-	?drawStaticText@QPainter@@QAEXHHABVQStaticText@@@Z @ 12652 NONAME ; void QPainter::drawStaticText(int, int, class QStaticText const &)
-	?entryInfoAt@QZipReader@@QBE?AUFileInfo@1@H@Z @ 12653 NONAME ; struct QZipReader::FileInfo QZipReader::entryInfoAt(int) const
-	?exists@QZipReader@@QBE_NXZ @ 12654 NONAME ; bool QZipReader::exists(void) const
-	?extractAll@QZipReader@@QBE_NABVQString@@@Z @ 12655 NONAME ; bool QZipReader::extractAll(class QString const &) const
-	?fileData@QZipReader@@QBE?AVQByteArray@@ABVQString@@@Z @ 12656 NONAME ; class QByteArray QZipReader::fileData(class QString const &) const
-	?fileInfoList@QZipReader@@QBE?AV?$QList@UFileInfo@QZipReader@@@@XZ @ 12657 NONAME ; class QList<struct QZipReader::FileInfo> QZipReader::fileInfoList(void) const
-	?findItems@QGraphicsViewPrivate@@QBE?AV?$QList@PAVQGraphicsItem@@@@ABVQRegion@@PA_NABVQTransform@@@Z @ 12658 NONAME ; class QList<class QGraphicsItem *> QGraphicsViewPrivate::findItems(class QRegion const &, bool *, class QTransform const &) const
-	?fixup@QIntValidator@@UBEXAAVQString@@@Z @ 12659 NONAME ; void QIntValidator::fixup(class QString &) const
-	?freeStyleOptionsArray@QGraphicsViewPrivate@@QAEXPAVQStyleOptionGraphicsItem@@@Z @ 12660 NONAME ; void QGraphicsViewPrivate::freeStyleOptionsArray(class QStyleOptionGraphicsItem *)
-	?getPixmapCursor@QApplicationPrivate@@QAE?AVQPixmap@@W4CursorShape@Qt@@@Z @ 12661 NONAME ; class QPixmap QApplicationPrivate::getPixmapCursor(enum Qt::CursorShape)
-	?getSubRange@QBezier@@QBE?AV1@MM@Z @ 12662 NONAME ; class QBezier QBezier::getSubRange(float, float) const
-	?hasSelectedText@QLabel@@QBE_NXZ @ 12663 NONAME ; bool QLabel::hasSelectedText(void) const
-	?horizontalScroll@QGraphicsViewPrivate@@QBE_JXZ @ 12664 NONAME ; long long QGraphicsViewPrivate::horizontalScroll(void) const
-	?inTabWidget@QWidgetPrivate@@SA_NPAVQWidget@@@Z @ 12665 NONAME ; bool QWidgetPrivate::inTabWidget(class QWidget *)
-	?init@QAbstractScrollAreaPrivate@@QAEXXZ @ 12666 NONAME ; void QAbstractScrollAreaPrivate::init(void)
-	?isImageCached@QImagePixmapCleanupHooks@@SA_NABVQImage@@@Z @ 12667 NONAME ; bool QImagePixmapCleanupHooks::isImageCached(class QImage const &)
-	?isPixmapCached@QImagePixmapCleanupHooks@@SA_NABVQPixmap@@@Z @ 12668 NONAME ; bool QImagePixmapCleanupHooks::isPixmapCached(class QPixmap const &)
-	?isReadable@QZipReader@@QBE_NXZ @ 12669 NONAME ; bool QZipReader::isReadable(void) const
-	?isValidColor@QColor@@SA_NABVQString@@@Z @ 12670 NONAME ; bool QColor::isValidColor(class QString const &)
-	?layoutChildren@QAbstractScrollAreaPrivate@@QAEXXZ @ 12671 NONAME ; void QAbstractScrollAreaPrivate::layoutChildren(void)
-	?mapBy@QBezier@@QBE?AV1@ABVQTransform@@@Z @ 12672 NONAME ; class QBezier QBezier::mapBy(class QTransform const &) const
-	?mapRectFromScene@QGraphicsViewPrivate@@QBE?AVQRectF@@ABV2@@Z @ 12673 NONAME ; class QRectF QGraphicsViewPrivate::mapRectFromScene(class QRectF const &) const
-	?mapRectToScene@QGraphicsViewPrivate@@QBE?AVQRectF@@ABVQRect@@@Z @ 12674 NONAME ; class QRectF QGraphicsViewPrivate::mapRectToScene(class QRect const &) const
-	?mapToScene@QGraphicsViewPrivate@@QBE?AVQPointF@@ABV2@@Z @ 12675 NONAME ; class QPointF QGraphicsViewPrivate::mapToScene(class QPointF const &) const
-	?mapToScene@QGraphicsViewPrivate@@QBE?AVQRectF@@ABV2@@Z @ 12676 NONAME ; class QRectF QGraphicsViewPrivate::mapToScene(class QRectF const &) const
-	?mapToViewRect@QGraphicsViewPrivate@@QBE?AVQRect@@PBVQGraphicsItem@@ABVQRectF@@@Z @ 12677 NONAME ; class QRect QGraphicsViewPrivate::mapToViewRect(class QGraphicsItem const *, class QRectF const &) const
-	?mapToViewRegion@QGraphicsViewPrivate@@QBE?AVQRegion@@PBVQGraphicsItem@@ABVQRectF@@@Z @ 12678 NONAME ; class QRegion QGraphicsViewPrivate::mapToViewRegion(class QGraphicsItem const *, class QRectF const &) const
-	?maximumSize@QStaticText@@QBE?AVQSizeF@@XZ @ 12679 NONAME ABSENT ; class QSizeF QStaticText::maximumSize(void) const
-	?mouseMoveEventHandler@QGraphicsViewPrivate@@QAEXPAVQMouseEvent@@@Z @ 12680 NONAME ; void QGraphicsViewPrivate::mouseMoveEventHandler(class QMouseEvent *)
-	?performanceHint@QStaticText@@QBE?AW4PerformanceHint@1@XZ @ 12681 NONAME ; enum QStaticText::PerformanceHint QStaticText::performanceHint(void) const
-	?populate@QTextureGlyphCache@@QAEXPAVQFontEngine@@HPBIPBUQFixedPoint@@@Z @ 12682 NONAME ; void QTextureGlyphCache::populate(class QFontEngine *, int, unsigned int const *, struct QFixedPoint const *)
-	?populateSceneDragDropEvent@QGraphicsViewPrivate@@QAEXPAVQGraphicsSceneDragDropEvent@@PAVQDropEvent@@@Z @ 12683 NONAME ; void QGraphicsViewPrivate::populateSceneDragDropEvent(class QGraphicsSceneDragDropEvent *, class QDropEvent *)
-	?positionInBlock@QTextCursor@@QBEHXZ @ 12684 NONAME ; int QTextCursor::positionInBlock(void) const
-	?prepare@QStaticText@@QAEXABVQTransform@@ABVQFont@@@Z @ 12685 NONAME ; void QStaticText::prepare(class QTransform const &, class QFont const &)
-	?processPendingUpdates@QGraphicsViewPrivate@@QAEXXZ @ 12686 NONAME ; void QGraphicsViewPrivate::processPendingUpdates(void)
-	?q_func@QAbstractScrollAreaPrivate@@AAEPAVQAbstractScrollArea@@XZ @ 12687 NONAME ; class QAbstractScrollArea * QAbstractScrollAreaPrivate::q_func(void)
-	?q_func@QAbstractScrollAreaPrivate@@ABEPBVQAbstractScrollArea@@XZ @ 12688 NONAME ; class QAbstractScrollArea const * QAbstractScrollAreaPrivate::q_func(void) const
-	?q_func@QGraphicsViewPrivate@@AAEPAVQGraphicsView@@XZ @ 12689 NONAME ; class QGraphicsView * QGraphicsViewPrivate::q_func(void)
-	?q_func@QGraphicsViewPrivate@@ABEPBVQGraphicsView@@XZ @ 12690 NONAME ; class QGraphicsView const * QGraphicsViewPrivate::q_func(void) const
-	?qt_draw_glyphs@@YAXPAVQPainter@@PBIPBVQPointF@@H@Z @ 12691 NONAME ; void qt_draw_glyphs(class QPainter *, unsigned int const *, class QPointF const *, int)
-	?recalculateContentSize@QGraphicsViewPrivate@@QAEXXZ @ 12692 NONAME ; void QGraphicsViewPrivate::recalculateContentSize(void)
-	?render@QWidgetPrivate@@QAEXPAVQPaintDevice@@ABVQPoint@@ABVQRegion@@V?$QFlags@W4RenderFlag@QWidget@@@@_N@Z @ 12693 NONAME ; void QWidgetPrivate::render(class QPaintDevice *, class QPoint const &, class QRegion const &, class QFlags<enum QWidget::RenderFlag>, bool)
-	?replaceScrollBar@QAbstractScrollAreaPrivate@@QAEXPAVQScrollBar@@W4Orientation@Qt@@@Z @ 12694 NONAME ; void QAbstractScrollAreaPrivate::replaceScrollBar(class QScrollBar *, enum Qt::Orientation)
-	?replayLastMouseEvent@QGraphicsViewPrivate@@QAEXXZ @ 12695 NONAME ; void QGraphicsViewPrivate::replayLastMouseEvent(void)
-	?rubberBandRegion@QGraphicsViewPrivate@@QBE?AVQRegion@@PBVQWidget@@ABVQRect@@@Z @ 12696 NONAME ; class QRegion QGraphicsViewPrivate::rubberBandRegion(class QWidget const *, class QRect const &) const
-	?scrollBarPolicyChanged@QAbstractScrollAreaPrivate@@UAEXW4Orientation@Qt@@W4ScrollBarPolicy@3@@Z @ 12697 NONAME ; void QAbstractScrollAreaPrivate::scrollBarPolicyChanged(enum Qt::Orientation, enum Qt::ScrollBarPolicy)
-	?selectedText@QLabel@@QBE?AVQString@@XZ @ 12698 NONAME ; class QString QLabel::selectedText(void) const
-	?selectionStart@QLabel@@QBEHXZ @ 12699 NONAME ; int QLabel::selectionStart(void) const
-	?setAutoFillBackground@QGraphicsWidget@@QAEX_N@Z @ 12700 NONAME ; void QGraphicsWidget::setAutoFillBackground(bool)
-	?setColorFromString@QColor@@AAE_NABVQString@@@Z @ 12701 NONAME ; bool QColor::setColorFromString(class QString const &)
-	?setMaximumSize@QStaticText@@QAEXABVQSizeF@@@Z @ 12702 NONAME ABSENT ; void QStaticText::setMaximumSize(class QSizeF const &)
-	?setPerformanceHint@QStaticText@@QAEXW4PerformanceHint@1@@Z @ 12703 NONAME ; void QStaticText::setPerformanceHint(enum QStaticText::PerformanceHint)
-	?setSelection@QLabel@@QAEXHH@Z @ 12704 NONAME ; void QLabel::setSelection(int, int)
-	?setText@QStaticText@@QAEXABVQString@@@Z @ 12705 NONAME ; void QStaticText::setText(class QString const &)
-	?setTextFormat@QStaticText@@QAEXW4TextFormat@Qt@@@Z @ 12706 NONAME ; void QStaticText::setTextFormat(enum Qt::TextFormat)
-	?setUserData@QStaticTextItem@@QAEXPAVQStaticTextUserData@@@Z @ 12707 NONAME ; void QStaticTextItem::setUserData(class QStaticTextUserData *)
-	?size@QStaticText@@QBE?AVQSizeF@@XZ @ 12708 NONAME ; class QSizeF QStaticText::size(void) const
-	?status@QZipReader@@QBE?AW4Status@1@XZ @ 12709 NONAME ; enum QZipReader::Status QZipReader::status(void) const
-	?storeDragDropEvent@QGraphicsViewPrivate@@QAEXPBVQGraphicsSceneDragDropEvent@@@Z @ 12710 NONAME ; void QGraphicsViewPrivate::storeDragDropEvent(class QGraphicsSceneDragDropEvent const *)
-	?storeMouseEvent@QGraphicsViewPrivate@@QAEXPAVQMouseEvent@@@Z @ 12711 NONAME ; void QGraphicsViewPrivate::storeMouseEvent(class QMouseEvent *)
-	?text@QStaticText@@QBE?AVQString@@XZ @ 12712 NONAME ; class QString QStaticText::text(void) const
-	?textFormat@QStaticText@@QBE?AW4TextFormat@Qt@@XZ @ 12713 NONAME ; enum Qt::TextFormat QStaticText::textFormat(void) const
-	?translateTouchEvent@QGraphicsViewPrivate@@SAXPAV1@PAVQTouchEvent@@@Z @ 12714 NONAME ; void QGraphicsViewPrivate::translateTouchEvent(class QGraphicsViewPrivate *, class QTouchEvent *)
-	?updateAll@QGraphicsViewPrivate@@QAEXXZ @ 12715 NONAME ; void QGraphicsViewPrivate::updateAll(void)
-	?updateInputMethodSensitivity@QGraphicsViewPrivate@@QAEXXZ @ 12716 NONAME ; void QGraphicsViewPrivate::updateInputMethodSensitivity(void)
-	?updateLastCenterPoint@QGraphicsViewPrivate@@QAEXXZ @ 12717 NONAME ; void QGraphicsViewPrivate::updateLastCenterPoint(void)
-	?updateRect@QGraphicsViewPrivate@@QAE_NABVQRect@@@Z @ 12718 NONAME ; bool QGraphicsViewPrivate::updateRect(class QRect const &)
-	?updateRegion@QGraphicsViewPrivate@@QAE_NABVQRegion@@@Z @ 12719 NONAME ABSENT ; bool QGraphicsViewPrivate::updateRegion(class QRegion const &)
-	?updateScroll@QGraphicsViewPrivate@@QAEXXZ @ 12720 NONAME ; void QGraphicsViewPrivate::updateScroll(void)
-	?verticalScroll@QGraphicsViewPrivate@@QBE_JXZ @ 12721 NONAME ; long long QGraphicsViewPrivate::verticalScroll(void) const
-	?viewportEvent@QAbstractScrollAreaPrivate@@QAE_NPAVQEvent@@@Z @ 12722 NONAME ; bool QAbstractScrollAreaPrivate::viewportEvent(class QEvent *)
-	?visibilityChanged@QToolBar@@IAEX_N@Z @ 12723 NONAME ; void QToolBar::visibilityChanged(bool)
-	??0FileInfo@QZipReader@@QAE@ABU01@@Z @ 12724 NONAME ; QZipReader::FileInfo::FileInfo(struct QZipReader::FileInfo const &)
-	??0QStaticText@@QAE@ABVQString@@@Z @ 12725 NONAME ; QStaticText::QStaticText(class QString const &)
-	?append@QGraphicsItemPrivate@@SAXPAV?$QDeclarativeListProperty@VQGraphicsObject@@@@PAVQGraphicsObject@@@Z @ 12726 NONAME ABSENT ; void QGraphicsItemPrivate::append(class QDeclarativeListProperty<class QGraphicsObject> *, class QGraphicsObject *)
-	?bitPlaneCount@QImage@@QBEHXZ @ 12727 NONAME ; int QImage::bitPlaneCount(void) const
-	?childrenChanged@QGraphicsObject@@IAEXXZ @ 12728 NONAME ; void QGraphicsObject::childrenChanged(void)
-	?childrenList@QGraphicsItemPrivate@@QAE?AV?$QDeclarativeListProperty@VQGraphicsObject@@@@XZ @ 12729 NONAME ; class QDeclarativeListProperty<class QGraphicsObject> QGraphicsItemPrivate::childrenList(void)
-	?clearFocusHelper@QGraphicsItemPrivate@@QAEX_N@Z @ 12730 NONAME ; void QGraphicsItemPrivate::clearFocusHelper(bool)
-	?commandDescription@QPaintBuffer@@QBE?AVQString@@H@Z @ 12731 NONAME ; class QString QPaintBuffer::commandDescription(int) const
-	?create@PixmapFragment@QPainter@@SA?AV12@ABVQPointF@@ABVQRectF@@MMMM@Z @ 12732 NONAME ; class QPainter::PixmapFragment QPainter::PixmapFragment::create(class QPointF const &, class QRectF const &, float, float, float, float)
-	?device@QZipReader@@QBEPAVQIODevice@@XZ @ 12733 NONAME ; class QIODevice * QZipReader::device(void) const
-	?drawPixmapFragments@QPaintEngineEx@@UAEXPBVPixmapFragment@QPainter@@HABVQPixmap@@V?$QFlags@W4PixmapFragmentHint@QPainter@@@@@Z @ 12734 NONAME ; void QPaintEngineEx::drawPixmapFragments(class QPainter::PixmapFragment const *, int, class QPixmap const &, class QFlags<enum QPainter::PixmapFragmentHint>)
-	?drawPixmapFragments@QPainter@@QAEXPBVPixmapFragment@1@HABVQPixmap@@V?$QFlags@W4PixmapFragmentHint@QPainter@@@@@Z @ 12735 NONAME ; void QPainter::drawPixmapFragments(class QPainter::PixmapFragment const *, int, class QPixmap const &, class QFlags<enum QPainter::PixmapFragmentHint>)
-	?frameEndIndex@QPaintBuffer@@QBEHH@Z @ 12736 NONAME ; int QPaintBuffer::frameEndIndex(int) const
-	?frameStartIndex@QPaintBuffer@@QBEHH@Z @ 12737 NONAME ; int QPaintBuffer::frameStartIndex(int) const
-	?geometryChanged@QGraphicsWidget@@IAEXXZ @ 12738 NONAME ; void QGraphicsWidget::geometryChanged(void)
-	?getGlyphBearings@QFontEngine@@UAEXIPAM0@Z @ 12739 NONAME ; void QFontEngine::getGlyphBearings(unsigned int, float *, float *)
-	?height@QGraphicsItemPrivate@@UBEMXZ @ 12740 NONAME ; float QGraphicsItemPrivate::height(void) const
-	?heightChanged@QGraphicsObject@@IAEXXZ @ 12741 NONAME ; void QGraphicsObject::heightChanged(void)
-	?horizontalAdvance@QTextLine@@QBEMXZ @ 12742 NONAME ; float QTextLine::horizontalAdvance(void) const
-	?isValid@FileInfo@QZipReader@@QBE_NXZ @ 12743 NONAME ; bool QZipReader::FileInfo::isValid(void) const
-	?layoutChanged@QGraphicsWidget@@IAEXXZ @ 12744 NONAME ; void QGraphicsWidget::layoutChanged(void)
-	?pageAdded@QWizard@@IAEXH@Z @ 12745 NONAME ; void QWizard::pageAdded(int)
-	?pageRemoved@QWizard@@IAEXH@Z @ 12746 NONAME ; void QWizard::pageRemoved(int)
-	?paste@QLineControl@@QAEXW4Mode@QClipboard@@@Z @ 12747 NONAME ; void QLineControl::paste(enum QClipboard::Mode)
-	?paste@QTextControl@@QAEXW4Mode@QClipboard@@@Z @ 12748 NONAME ; void QTextControl::paste(enum QClipboard::Mode)
-	?placeholderText@QLineEdit@@QBE?AVQString@@XZ @ 12749 NONAME ; class QString QLineEdit::placeholderText(void) const
-	?prependGraphicsTransform@QGraphicsItemPrivate@@QAEXPAVQGraphicsTransform@@@Z @ 12750 NONAME ; void QGraphicsItemPrivate::prependGraphicsTransform(class QGraphicsTransform *)
-	?processCommands@QPaintBuffer@@QBEHPAVQPainter@@HH@Z @ 12751 NONAME ; int QPaintBuffer::processCommands(class QPainter *, int, int) const
-	?processCommands@QPainterReplayer@@QAEXABVQPaintBuffer@@PAVQPainter@@HH@Z @ 12752 NONAME ; void QPainterReplayer::processCommands(class QPaintBuffer const &, class QPainter *, int, int)
-	?resetHeight@QGraphicsItemPrivate@@UAEXXZ @ 12753 NONAME ; void QGraphicsItemPrivate::resetHeight(void)
-	?resetWidth@QGraphicsItemPrivate@@UAEXXZ @ 12754 NONAME ; void QGraphicsItemPrivate::resetWidth(void)
-	?resizeEvent@QSplitterHandle@@MAEXPAVQResizeEvent@@@Z @ 12755 NONAME ; void QSplitterHandle::resizeEvent(class QResizeEvent *)
-	?setFocusHelper@QGraphicsItemPrivate@@QAEXW4FocusReason@Qt@@_N1@Z @ 12756 NONAME ; void QGraphicsItemPrivate::setFocusHelper(enum Qt::FocusReason, bool, bool)
-	?setHeight@QGraphicsItemPrivate@@UAEXM@Z @ 12757 NONAME ; void QGraphicsItemPrivate::setHeight(float)
-	?setPlaceholderText@QLineEdit@@QAEXABVQString@@@Z @ 12758 NONAME ; void QLineEdit::setPlaceholderText(class QString const &)
-	?setSideWidget@QWizard@@QAEXPAVQWidget@@@Z @ 12759 NONAME ; void QWizard::setSideWidget(class QWidget *)
-	?setTextWidth@QStaticText@@QAEXM@Z @ 12760 NONAME ; void QStaticText::setTextWidth(float)
-	?setWidth@QGraphicsItemPrivate@@UAEXM@Z @ 12761 NONAME ; void QGraphicsItemPrivate::setWidth(float)
-	?sideWidget@QWizard@@QBEPAVQWidget@@XZ @ 12762 NONAME ; class QWidget * QWizard::sideWidget(void) const
-	?textWidth@QStaticText@@QBEMXZ @ 12763 NONAME ; float QStaticText::textWidth(void) const
-	?updateDisplayText@QLineControl@@AAEX_N@Z @ 12764 NONAME ; void QLineControl::updateDisplayText(bool)
-	?updateMicroFocus@QGraphicsItem@@IAEXXZ @ 12765 NONAME ; void QGraphicsItem::updateMicroFocus(void)
-	?updateMicroFocus@QGraphicsObject@@IAEXXZ @ 12766 NONAME ; void QGraphicsObject::updateMicroFocus(void)
-	?width@QGraphicsItemPrivate@@UBEMXZ @ 12767 NONAME ; float QGraphicsItemPrivate::width(void) const
-	?widthChanged@QGraphicsObject@@IAEXXZ @ 12768 NONAME ; void QGraphicsObject::widthChanged(void)
-	?children_append@QGraphicsItemPrivate@@SAXPAV?$QDeclarativeListProperty@VQGraphicsObject@@@@PAVQGraphicsObject@@@Z @ 12769 NONAME ; void QGraphicsItemPrivate::children_append(class QDeclarativeListProperty<class QGraphicsObject> *, class QGraphicsObject *)
-	?children_at@QGraphicsItemPrivate@@SAPAVQGraphicsObject@@PAV?$QDeclarativeListProperty@VQGraphicsObject@@@@H@Z @ 12770 NONAME ; class QGraphicsObject * QGraphicsItemPrivate::children_at(class QDeclarativeListProperty<class QGraphicsObject> *, int)
-	?children_count@QGraphicsItemPrivate@@SAHPAV?$QDeclarativeListProperty@VQGraphicsObject@@@@@Z @ 12771 NONAME ; int QGraphicsItemPrivate::children_count(class QDeclarativeListProperty<class QGraphicsObject> *)
-	?display@QEglContext@@QAEHXZ @ 12772 NONAME ; int QEglContext::display(void)
-	?defaultConfig@QEgl@@YAHHW4API@1@V?$QFlags@W4ConfigOption@QEgl@@@@@Z @ 12773 NONAME ; int QEgl::defaultConfig(int, enum QEgl::API, class QFlags<enum QEgl::ConfigOption>)
-	?configAttrib@QEglContext@@QBEHH@Z @ 12774 NONAME ; int QEglContext::configAttrib(int) const
-	?error@QEgl@@YAHXZ @ 12775 NONAME ABSENT ; int QEgl::error(void)
-	?errorString@QEgl@@YA?AVQString@@XZ @ 12776 NONAME ABSENT ; class QString QEgl::errorString(void)
-	?configProperties@QEglContext@@QBE?AVQEglProperties@@XZ @ 12777 NONAME ABSENT ; class QEglProperties QEglContext::configProperties(void) const
-	?extensions@QEgl@@YA?AVQString@@XZ @ 12778 NONAME ; class QString QEgl::extensions(void)
-	?nativePixmap@QEgl@@YAPAXPAVQPixmap@@@Z @ 12779 NONAME ; void * QEgl::nativePixmap(class QPixmap *)
-	?display@QEgl@@YAHXZ @ 12780 NONAME ; int QEgl::display(void)
-	?eglCreateImageKHR@QEgl@@YAHHHHHPBH@Z @ 12781 NONAME ; int QEgl::eglCreateImageKHR(int, int, int, int, int const *)
-	?hasExtension@QEgl@@YA_NPBD@Z @ 12782 NONAME ; bool QEgl::hasExtension(char const *)
-	?destroyContext@QEglContext@@QAEXXZ @ 12783 NONAME ; void QEglContext::destroyContext(void)
-	?nativeWindow@QEgl@@YAPAXPAVQWidget@@@Z @ 12784 NONAME ; void * QEgl::nativeWindow(class QWidget *)
-	?errorString@QEgl@@YA?AVQString@@H@Z @ 12785 NONAME ; class QString QEgl::errorString(int)
-	?chooseConfig@QEgl@@YAHPBVQEglProperties@@W4PixelFormatMatch@1@@Z @ 12786 NONAME ; int QEgl::chooseConfig(class QEglProperties const *, enum QEgl::PixelFormatMatch)
-	?eglDestroyImageKHR@QEgl@@YAHHH@Z @ 12787 NONAME ; int QEgl::eglDestroyImageKHR(int, int)
-	?isEmpty@QItemSelectionRange@@QBE_NXZ @ 12788 NONAME ; bool QItemSelectionRange::isEmpty(void) const
-	?clearError@QEgl@@YAXXZ @ 12789 NONAME ABSENT ; void QEgl::clearError(void)
-	?nativeDisplay@QEgl@@YAHXZ @ 12790 NONAME ; int QEgl::nativeDisplay(void)
-	?dumpAllConfigs@QEgl@@YAXXZ @ 12791 NONAME ; void QEgl::dumpAllConfigs(void)
-	?setDeviceType@QEglProperties@@QAEXH@Z @ 12792 NONAME ; void QEglProperties::setDeviceType(int)
-	?glyphPadding@QTextureGlyphCache@@UBEHXZ @ 12793 NONAME ; int QTextureGlyphCache::glyphPadding(void) const
-	?createSurface@QEgl@@YAHPAVQPaintDevice@@HPBVQEglProperties@@@Z @ 12794 NONAME ; int QEgl::createSurface(class QPaintDevice *, int, class QEglProperties const *)
-	?setPartialUpdateSupport@QWindowSurface@@IAEX_N@Z @ 12795 NONAME ; void QWindowSurface::setPartialUpdateSupport(bool)
-	?transformChanged@QGraphicsItemPrivate@@UAEXXZ @ 12796 NONAME ; void QGraphicsItemPrivate::transformChanged(void)
-	?hasPartialUpdateSupport@QWindowSurface@@QBE_NXZ @ 12797 NONAME ; bool QWindowSurface::hasPartialUpdateSupport(void) const
-	?name@QIcon@@QBE?AVQString@@XZ @ 12798 NONAME ; class QString QIcon::name(void) const
-	?iconName@QIconEngineV2@@QAE?AVQString@@XZ @ 12799 NONAME ; class QString QIconEngineV2::iconName(void)
-	?updateRectF@QGraphicsViewPrivate@@QAE_NABVQRectF@@@Z @ 12800 NONAME ; bool QGraphicsViewPrivate::updateRectF(class QRectF const &)
-	?updateRegion@QGraphicsViewPrivate@@QAE_NABVQRectF@@ABVQTransform@@@Z @ 12801 NONAME ; bool QGraphicsViewPrivate::updateRegion(class QRectF const &, class QTransform const &)
-	?totalUsed@QPixmapCache@@SAHXZ @ 12802 NONAME ; int QPixmapCache::totalUsed(void)
-	?allPixmaps@QPixmapCache@@SA?AV?$QList@U?$QPair@VQString@@VQPixmap@@@@@@XZ @ 12803 NONAME ; class QList<struct QPair<class QString, class QPixmap> > QPixmapCache::allPixmaps(void)
-	?flushDetachedPixmaps@QPixmapCache@@SAXXZ @ 12804 NONAME ; void QPixmapCache::flushDetachedPixmaps(void)
-	??0QImageTextureGlyphCache@@QAE@W4Type@QFontEngineGlyphCache@@ABVQTransform@@@Z @ 12805 NONAME ; QImageTextureGlyphCache::QImageTextureGlyphCache(enum QFontEngineGlyphCache::Type, class QTransform const &)
-	??1QImageTextureGlyphCache@@UAE@XZ @ 12806 NONAME ; QImageTextureGlyphCache::~QImageTextureGlyphCache(void)
-	??_EQImageTextureGlyphCache@@UAE@I@Z @ 12807 NONAME ; QImageTextureGlyphCache::~QImageTextureGlyphCache(unsigned int)
-	?addToPolygon@QBezier@@QBEXPAVQPolygonF@@M@Z @ 12808 NONAME ; void QBezier::addToPolygon(class QPolygonF *, float) const
-	?createTextureData@QImageTextureGlyphCache@@UAEXHH@Z @ 12809 NONAME ; void QImageTextureGlyphCache::createTextureData(int, int)
-	?curveThreshold@QStrokerOps@@QBEMXZ @ 12810 NONAME ; float QStrokerOps::curveThreshold(void) const
-	?fillTexture@QImageTextureGlyphCache@@UAEXABUCoord@QTextureGlyphCache@@I@Z @ 12811 NONAME ; void QImageTextureGlyphCache::fillTexture(struct QTextureGlyphCache::Coord const &, unsigned int)
-	?glyphMargin@QImageTextureGlyphCache@@UBEHXZ @ 12812 NONAME ; int QImageTextureGlyphCache::glyphMargin(void) const
-	?image@QImageTextureGlyphCache@@QBEABVQImage@@XZ @ 12813 NONAME ; class QImage const & QImageTextureGlyphCache::image(void) const
-	?resizeTextureData@QImageTextureGlyphCache@@UAEXHH@Z @ 12814 NONAME ; void QImageTextureGlyphCache::resizeTextureData(int, int)
-	?setCurveThreshold@QStrokerOps@@QAEXM@Z @ 12815 NONAME ; void QStrokerOps::setCurveThreshold(float)
-	?setCurveThresholdFromTransform@QStrokerOps@@QAEXABVQTransform@@@Z @ 12816 NONAME ; void QStrokerOps::setCurveThresholdFromTransform(class QTransform const &)
-	?setUpdateClip@QGraphicsViewPrivate@@QAEXPAVQGraphicsItem@@@Z @ 12817 NONAME ; void QGraphicsViewPrivate::setUpdateClip(class QGraphicsItem *)
-	?toPolygon@QBezier@@QBE?AVQPolygonF@@M@Z @ 12818 NONAME ; class QPolygonF QBezier::toPolygon(float) const
-	?updatePaintedViewBoundingRects@QGraphicsItemPrivate@@QAEX_N@Z @ 12819 NONAME ; void QGraphicsItemPrivate::updatePaintedViewBoundingRects(bool)
-	?invertedAppearance@QProgressBar@@QBE_NXZ @ 12820 NONAME ; bool QProgressBar::invertedAppearance(void) const
-	?setKeepPositionOnInsert@QTextCursor@@QAEX_N@Z @ 12821 NONAME ; void QTextCursor::setKeepPositionOnInsert(bool)
-	?verticalMovementX@QTextCursor@@QBEHXZ @ 12822 NONAME ; int QTextCursor::verticalMovementX(void) const
-	?width@QFontMetrics@@QBEHABVQString@@HH@Z @ 12823 NONAME ; int QFontMetrics::width(class QString const &, int, int) const
-	?runtimeData@QPixmapData@@UBEPAV1@XZ @ 12824 NONAME ; class QPixmapData * QPixmapData::runtimeData(void) const
-	?textDirection@QProgressBar@@QBE?AW4Direction@1@XZ @ 12825 NONAME ; enum QProgressBar::Direction QProgressBar::textDirection(void) const
-	?setVerticalMovementX@QTextCursor@@QAEXH@Z @ 12826 NONAME ; void QTextCursor::setVerticalMovementX(int)
-	?childAtRecursiveHelper@QWidgetPrivate@@QBEPAVQWidget@@ABVQPoint@@_N1@Z @ 12827 NONAME ; class QWidget * QWidgetPrivate::childAtRecursiveHelper(class QPoint const &, bool, bool) const
-	?isRightToLeft@QTextEngine@@QBE_NXZ @ 12828 NONAME ; bool QTextEngine::isRightToLeft(void) const
-	?childrenBoundingRectHelper@QGraphicsItemPrivate@@QAEXPAVQTransform@@PAVQRectF@@_N@Z @ 12829 NONAME ; void QGraphicsItemPrivate::childrenBoundingRectHelper(class QTransform *, class QRectF *, bool)
-	?runtime_graphics_system@QApplicationPrivate@@2_NA @ 12830 NONAME ; bool QApplicationPrivate::runtime_graphics_system
-	?aboutToDestroy@QWidgetPrivate@@UAEXXZ @ 12831 NONAME ; void QWidgetPrivate::aboutToDestroy(void)
-	?keepPositionOnInsert@QTextCursor@@QBE_NXZ @ 12832 NONAME ; bool QTextCursor::keepPositionOnInsert(void) const
-	?pointInsideRectAndMask@QWidgetPrivate@@QBE_NABVQPoint@@@Z @ 12833 NONAME ; bool QWidgetPrivate::pointInsideRectAndMask(class QPoint const &) const
-	?textDirection@QTextBlock@@QBE?AW4LayoutDirection@Qt@@XZ @ 12834 NONAME ; enum Qt::LayoutDirection QTextBlock::textDirection(void) const
-	?createCompatiblePixmapData@QRuntimePixmapData@@UBEPAVQPixmapData@@XZ @ 12835 NONAME ; class QPixmapData * QRuntimePixmapData::createCompatiblePixmapData(void) const
-	?alphaChannel@QRuntimePixmapData@@UBE?AVQPixmap@@XZ @ 12836 NONAME ; class QPixmap QRuntimePixmapData::alphaChannel(void) const
-	?memoryUsage@QRuntimePixmapData@@UBEIXZ @ 12837 NONAME ; unsigned int QRuntimePixmapData::memoryUsage(void) const
-	?textOption@QStaticText@@QBE?AVQTextOption@@XZ @ 12838 NONAME ; class QTextOption QStaticText::textOption(void) const
-	?OpenIniFileLC@QS60MainApplication@@UBEPAVCDictionaryStore@@AAVRFs@@@Z @ 12839 NONAME ; class CDictionaryStore * QS60MainApplication::OpenIniFileLC(class RFs &) const
-	?Reserved_MtsmObject@QS60MainAppUi@@MAEXXZ @ 12840 NONAME ; void QS60MainAppUi::Reserved_MtsmObject(void)
-	?setTextOption@QStaticText@@QAEXABVQTextOption@@@Z @ 12841 NONAME ; void QStaticText::setTextOption(class QTextOption const &)
-	?readBackInfo@QRuntimePixmapData@@QAEXXZ @ 12842 NONAME ; void QRuntimePixmapData::readBackInfo(void)
-	?buffer@QRuntimePixmapData@@UAEPAVQImage@@XZ @ 12843 NONAME ; class QImage * QRuntimePixmapData::buffer(void)
-	?paintEngine@QRuntimePixmapData@@UBEPAVQPaintEngine@@XZ @ 12844 NONAME ; class QPaintEngine * QRuntimePixmapData::paintEngine(void) const
-	?toImage@QRuntimePixmapData@@UBE?AVQImage@@XZ @ 12845 NONAME ; class QImage QRuntimePixmapData::toImage(void) const
-	?HandleForegroundEventL@QS60MainAppUi@@MAEXH@Z @ 12846 NONAME ; void QS60MainAppUi::HandleForegroundEventL(int)
-	?toNativeType@QRuntimePixmapData@@UAEPAXW4NativeType@QPixmapData@@@Z @ 12847 NONAME ; void * QRuntimePixmapData::toNativeType(enum QPixmapData::NativeType)
-	?fromNativeType@QRuntimePixmapData@@UAEXPAXW4NativeType@QPixmapData@@@Z @ 12848 NONAME ; void QRuntimePixmapData::fromNativeType(void *, enum QPixmapData::NativeType)
-	?runtimeData@QRuntimePixmapData@@UBEPAVQPixmapData@@XZ @ 12849 NONAME ; class QPixmapData * QRuntimePixmapData::runtimeData(void) const
-	?OpenFileL@QS60MainDocument@@UAEPAVCFileStore@@HABVTDesC16@@AAVRFs@@@Z @ 12850 NONAME ; class CFileStore * QS60MainDocument::OpenFileL(int, class TDesC16 const &, class RFs &)
-	?fromFile@QRuntimePixmapData@@UAE_NABVQString@@PBDV?$QFlags@W4ImageConversionFlag@Qt@@@@@Z @ 12851 NONAME ; bool QRuntimePixmapData::fromFile(class QString const &, char const *, class QFlags<enum Qt::ImageConversionFlag>)
-	?HandleTouchPaneSizeChange@QS60MainAppUi@@UAEXXZ @ 12852 NONAME ; void QS60MainAppUi::HandleTouchPaneSizeChange(void)
-	?toImage@QPixmapData@@UBE?AVQImage@@ABVQRect@@@Z @ 12853 NONAME ; class QImage QPixmapData::toImage(class QRect const &) const
-	?copy@QRuntimePixmapData@@UAEXPBVQPixmapData@@ABVQRect@@@Z @ 12854 NONAME ; void QRuntimePixmapData::copy(class QPixmapData const *, class QRect const &)
-	?fromData@QRuntimePixmapData@@UAE_NPBEIPBDV?$QFlags@W4ImageConversionFlag@Qt@@@@@Z @ 12855 NONAME ; bool QRuntimePixmapData::fromData(unsigned char const *, unsigned int, char const *, class QFlags<enum Qt::ImageConversionFlag>)
-	?symbianAdjustedPosition@QDialog@@AAE_NXZ @ 12856 NONAME ; bool QDialog::symbianAdjustedPosition(void)
-	?hasAlphaChannel@QRuntimePixmapData@@UBE_NXZ @ 12857 NONAME ; bool QRuntimePixmapData::hasAlphaChannel(void) const
-	?Reserved_MtsmPosition@QS60MainAppUi@@MAEXXZ @ 12858 NONAME ; void QS60MainAppUi::Reserved_MtsmPosition(void)
-	?ApplicationRect@QS60MainAppUi@@UBE?AVTRect@@XZ @ 12859 NONAME ; class TRect QS60MainAppUi::ApplicationRect(void) const
-	?HandleSystemEventL@QS60MainAppUi@@MAEXABVTWsEvent@@@Z @ 12860 NONAME ; void QS60MainAppUi::HandleSystemEventL(class TWsEvent const &)
-	?metric@QRuntimePixmapData@@UBEHW4PaintDeviceMetric@QPaintDevice@@@Z @ 12861 NONAME ; int QRuntimePixmapData::metric(enum QPaintDevice::PaintDeviceMetric) const
-	?HandleApplicationSpecificEventL@QS60MainAppUi@@MAEXHABVTWsEvent@@@Z @ 12862 NONAME ; void QS60MainAppUi::HandleApplicationSpecificEventL(int, class TWsEvent const &)
-	?HandleError@QS60MainAppUi@@UAE?AW4TErrorHandlerResponse@@HABUSExtendedError@@AAVTDes16@@1@Z @ 12863 NONAME ; enum TErrorHandlerResponse QS60MainAppUi::HandleError(int, struct SExtendedError const &, class TDes16 &, class TDes16 &)
-	?fromImage@QRuntimePixmapData@@UAEXABVQImage@@V?$QFlags@W4ImageConversionFlag@Qt@@@@@Z @ 12864 NONAME ; void QRuntimePixmapData::fromImage(class QImage const &, class QFlags<enum Qt::ImageConversionFlag>)
-	?transformed@QRuntimePixmapData@@UBE?AVQPixmap@@ABVQTransform@@W4TransformationMode@Qt@@@Z @ 12865 NONAME ; class QPixmap QRuntimePixmapData::transformed(class QTransform const &, enum Qt::TransformationMode) const
-	?swapBuffersRegion2NOK@QEglContext@@QAE_NHPBVQRegion@@@Z @ 12866 NONAME ; bool QEglContext::swapBuffersRegion2NOK(int, class QRegion const *)
-	?PrepareToExit@QS60MainAppUi@@UAEXXZ @ 12867 NONAME ; void QS60MainAppUi::PrepareToExit(void)
-	??1QRuntimePixmapData@@UAE@XZ @ 12868 NONAME ; QRuntimePixmapData::~QRuntimePixmapData(void)
-	?setAlphaChannel@QRuntimePixmapData@@UAEXABVQPixmap@@@Z @ 12869 NONAME ; void QRuntimePixmapData::setAlphaChannel(class QPixmap const &)
-	?toImage@QRasterPixmapData@@UBE?AVQImage@@ABVQRect@@@Z @ 12870 NONAME ; class QImage QRasterPixmapData::toImage(class QRect const &) const
-	?fromData@QRasterPixmapData@@UAE_NPBEIPBDV?$QFlags@W4ImageConversionFlag@Qt@@@@@Z @ 12871 NONAME ; bool QRasterPixmapData::fromData(unsigned char const *, unsigned int, char const *, class QFlags<enum Qt::ImageConversionFlag>)
+	?display@QEglContext@@QAEHXZ @ 12628 NONAME ; int QEglContext::display(void)
+	?setPartialUpdateSupport@QWindowSurface@@IAEX_N@Z @ 12629 NONAME ; void QWindowSurface::setPartialUpdateSupport(bool)
+	?transformChanged@QGraphicsItemPrivate@@UAEXXZ @ 12630 NONAME ; void QGraphicsItemPrivate::transformChanged(void)
+	?setUserData@QStaticTextItem@@QAEXPAVQStaticTextUserData@@@Z @ 12631 NONAME ; void QStaticTextItem::setUserData(class QStaticTextUserData *)
+	?isValid@FileInfo@QZipReader@@QBE_NXZ @ 12632 NONAME ; bool QZipReader::FileInfo::isValid(void) const
+	?hasSelectedText@QLabel@@QBE_NXZ @ 12633 NONAME ; bool QLabel::hasSelectedText(void) const
+	?size@QStaticText@@QBE?AVQSizeF@@XZ @ 12634 NONAME ; class QSizeF QStaticText::size(void) const
+	?processCommands@QPainterReplayer@@QAEXABVQPaintBuffer@@PAVQPainter@@HH@Z @ 12635 NONAME ; void QPainterReplayer::processCommands(class QPaintBuffer const &, class QPainter *, int, int)
+	?defaultConfig@QEgl@@YAHHW4API@1@V?$QFlags@W4ConfigOption@QEgl@@@@@Z @ 12636 NONAME ; int QEgl::defaultConfig(int, enum QEgl::API, class QFlags<enum QEgl::ConfigOption>)
+	??0QZipReader@@QAE@PAVQIODevice@@@Z @ 12637 NONAME ; QZipReader::QZipReader(class QIODevice *)
+	?configAttrib@QEglContext@@QBEHH@Z @ 12638 NONAME ; int QEglContext::configAttrib(int) const
+	?setAutoFillBackground@QGraphicsWidget@@QAEX_N@Z @ 12639 NONAME ; void QGraphicsWidget::setAutoFillBackground(bool)
+	??4QStaticText@@QAEAAV0@ABV0@@Z @ 12640 NONAME ; class QStaticText & QStaticText::operator=(class QStaticText const &)
+	?updateRegion@QGraphicsViewPrivate@@QAE_NABVQRectF@@ABVQTransform@@@Z @ 12641 NONAME ; bool QGraphicsViewPrivate::updateRegion(class QRectF const &, class QTransform const &)
+	??9QStaticText@@QBE_NABV0@@Z @ 12642 NONAME ; bool QStaticText::operator!=(class QStaticText const &) const
+	??_EQGraphicsViewPrivate@@UAE@I@Z @ 12643 NONAME ; QGraphicsViewPrivate::~QGraphicsViewPrivate(unsigned int)
+	?status@QZipReader@@QBE?AW4Status@1@XZ @ 12644 NONAME ; enum QZipReader::Status QZipReader::status(void) const
+	?autoFillBackground@QGraphicsWidget@@QBE_NXZ @ 12645 NONAME ; bool QGraphicsWidget::autoFillBackground(void) const
+	?createTextureData@QImageTextureGlyphCache@@UAEXHH@Z @ 12646 NONAME ; void QImageTextureGlyphCache::createTextureData(int, int)
+	?image@QImageTextureGlyphCache@@QBEABVQImage@@XZ @ 12647 NONAME ; class QImage const & QImageTextureGlyphCache::image(void) const
+	?extensions@QEgl@@YA?AVQString@@XZ @ 12648 NONAME ; class QString QEgl::extensions(void)
+	?pageRemoved@QWizard@@IAEXH@Z @ 12649 NONAME ; void QWizard::pageRemoved(int)
+	?init@QAbstractScrollAreaPrivate@@QAEXXZ @ 12650 NONAME ; void QAbstractScrollAreaPrivate::init(void)
+	?mapRectToScene@QGraphicsViewPrivate@@QBE?AVQRectF@@ABVQRect@@@Z @ 12651 NONAME ; class QRectF QGraphicsViewPrivate::mapRectToScene(class QRect const &) const
+	?width@QGraphicsItemPrivate@@UBEMXZ @ 12652 NONAME ; float QGraphicsItemPrivate::width(void) const
+	?toPolygon@QBezier@@QBE?AVQPolygonF@@M@Z @ 12653 NONAME ; class QPolygonF QBezier::toPolygon(float) const
+	?freeStyleOptionsArray@QGraphicsViewPrivate@@QAEXPAVQStyleOptionGraphicsItem@@@Z @ 12654 NONAME ; void QGraphicsViewPrivate::freeStyleOptionsArray(class QStyleOptionGraphicsItem *)
+	?visibilityChanged@QToolBar@@IAEX_N@Z @ 12655 NONAME ; void QToolBar::visibilityChanged(bool)
+	?updateInputMethodSensitivity@QGraphicsViewPrivate@@QAEXXZ @ 12656 NONAME ; void QGraphicsViewPrivate::updateInputMethodSensitivity(void)
+	?glyphMargin@QImageTextureGlyphCache@@UBEHXZ @ 12657 NONAME ; int QImageTextureGlyphCache::glyphMargin(void) const
+	?setTextFormat@QStaticText@@QAEXW4TextFormat@Qt@@@Z @ 12658 NONAME ; void QStaticText::setTextFormat(enum Qt::TextFormat)
+	?storeDragDropEvent@QGraphicsViewPrivate@@QAEXPBVQGraphicsSceneDragDropEvent@@@Z @ 12659 NONAME ; void QGraphicsViewPrivate::storeDragDropEvent(class QGraphicsSceneDragDropEvent const *)
+	?updateRect@QGraphicsViewPrivate@@QAE_NABVQRect@@@Z @ 12660 NONAME ; bool QGraphicsViewPrivate::updateRect(class QRect const &)
+	?fileData@QZipReader@@QBE?AVQByteArray@@ABVQString@@@Z @ 12661 NONAME ; class QByteArray QZipReader::fileData(class QString const &) const
+	?translateTouchEvent@QGraphicsViewPrivate@@SAXPAV1@PAVQTouchEvent@@@Z @ 12662 NONAME ; void QGraphicsViewPrivate::translateTouchEvent(class QGraphicsViewPrivate *, class QTouchEvent *)
+	?dispatchPendingUpdateRequests@QGraphicsViewPrivate@@QAEXXZ @ 12663 NONAME ; void QGraphicsViewPrivate::dispatchPendingUpdateRequests(void)
+	?updatePaintedViewBoundingRects@QGraphicsItemPrivate@@QAEX_N@Z @ 12664 NONAME ; void QGraphicsItemPrivate::updatePaintedViewBoundingRects(bool)
+	?setHeight@QGraphicsItemPrivate@@UAEXM@Z @ 12665 NONAME ; void QGraphicsItemPrivate::setHeight(float)
+	?isValidColor@QColor@@SA_NABVQString@@@Z @ 12666 NONAME ; bool QColor::isValidColor(class QString const &)
+	??0QStaticTextItem@@QAE@XZ @ 12667 NONAME ; QStaticTextItem::QStaticTextItem(void)
+	?updateMicroFocus@QGraphicsItem@@IAEXXZ @ 12668 NONAME ; void QGraphicsItem::updateMicroFocus(void)
+	??1QStaticText@@QAE@XZ @ 12669 NONAME ; QStaticText::~QStaticText(void)
+	?nativePixmap@QEgl@@YAPAXPAVQPixmap@@@Z @ 12670 NONAME ; void * QEgl::nativePixmap(class QPixmap *)
+	?render@QWidgetPrivate@@QAEXPAVQPaintDevice@@ABVQPoint@@ABVQRegion@@V?$QFlags@W4RenderFlag@QWidget@@@@_N@Z @ 12671 NONAME ; void QWidgetPrivate::render(class QPaintDevice *, class QPoint const &, class QRegion const &, class QFlags<enum QWidget::RenderFlag>, bool)
+	?constBits@QImage@@QBEPBEXZ @ 12672 NONAME ; unsigned char const * QImage::constBits(void) const
+	??8QStaticText@@QBE_NABV0@@Z @ 12673 NONAME ; bool QStaticText::operator==(class QStaticText const &) const
+	??0FileInfo@QZipReader@@QAE@XZ @ 12674 NONAME ; QZipReader::FileInfo::FileInfo(void)
+	?q_func@QGraphicsViewPrivate@@ABEPBVQGraphicsView@@XZ @ 12675 NONAME ; class QGraphicsView const * QGraphicsViewPrivate::q_func(void) const
+	?textFormat@QStaticText@@QBE?AW4TextFormat@Qt@@XZ @ 12676 NONAME ; enum Qt::TextFormat QStaticText::textFormat(void) const
+	?isReadable@QZipReader@@QBE_NXZ @ 12677 NONAME ; bool QZipReader::isReadable(void) const
+	?getPixmapCursor@QApplicationPrivate@@QAE?AVQPixmap@@W4CursorShape@Qt@@@Z @ 12678 NONAME ; class QPixmap QApplicationPrivate::getPixmapCursor(enum Qt::CursorShape)
+	?entryInfoAt@QZipReader@@QBE?AUFileInfo@1@H@Z @ 12679 NONAME ; struct QZipReader::FileInfo QZipReader::entryInfoAt(int) const
+	?children_append@QGraphicsItemPrivate@@SAXPAV?$QDeclarativeListProperty@VQGraphicsObject@@@@PAVQGraphicsObject@@@Z @ 12680 NONAME ; void QGraphicsItemPrivate::children_append(class QDeclarativeListProperty<class QGraphicsObject> *, class QGraphicsObject *)
+	?hasPartialUpdateSupport@QWindowSurface@@QBE_NXZ @ 12681 NONAME ; bool QWindowSurface::hasPartialUpdateSupport(void) const
+	?storeMouseEvent@QGraphicsViewPrivate@@QAEXPAVQMouseEvent@@@Z @ 12682 NONAME ; void QGraphicsViewPrivate::storeMouseEvent(class QMouseEvent *)
+	?mapToScene@QGraphicsViewPrivate@@QBE?AVQPointF@@ABV2@@Z @ 12683 NONAME ; class QPointF QGraphicsViewPrivate::mapToScene(class QPointF const &) const
+	?display@QEgl@@YAHXZ @ 12684 NONAME ; int QEgl::display(void)
+	?drawStaticText@QPainter@@QAEXABVQPoint@@ABVQStaticText@@@Z @ 12685 NONAME ; void QPainter::drawStaticText(class QPoint const &, class QStaticText const &)
+	?fillTexture@QImageTextureGlyphCache@@UAEXABUCoord@QTextureGlyphCache@@I@Z @ 12686 NONAME ; void QImageTextureGlyphCache::fillTexture(struct QTextureGlyphCache::Coord const &, unsigned int)
+	?addToPolygon@QBezier@@QBEXPAVQPolygonF@@M@Z @ 12687 NONAME ; void QBezier::addToPolygon(class QPolygonF *, float) const
+	?eglCreateImageKHR@QEgl@@YAHHHHHPBH@Z @ 12688 NONAME ; int QEgl::eglCreateImageKHR(int, int, int, int, int const *)
+	?resetWidth@QGraphicsItemPrivate@@UAEXXZ @ 12689 NONAME ; void QGraphicsItemPrivate::resetWidth(void)
+	?detach@QStaticText@@AAEXXZ @ 12690 NONAME ; void QStaticText::detach(void)
+	?totalUsed@QPixmapCache@@SAHXZ @ 12691 NONAME ; int QPixmapCache::totalUsed(void)
+	??0QKeySequence@@QAE@ABVQString@@W4SequenceFormat@0@@Z @ 12692 NONAME ; QKeySequence::QKeySequence(class QString const &, enum QKeySequence::SequenceFormat)
+	?device@QZipReader@@QBEPAVQIODevice@@XZ @ 12693 NONAME ; class QIODevice * QZipReader::device(void) const
+	?hasExtension@QEgl@@YA_NPBD@Z @ 12694 NONAME ; bool QEgl::hasExtension(char const *)
+	?mapRectFromScene@QGraphicsViewPrivate@@QBE?AVQRectF@@ABV2@@Z @ 12695 NONAME ; class QRectF QGraphicsViewPrivate::mapRectFromScene(class QRectF const &) const
+	?commandDescription@QPaintBuffer@@QBE?AVQString@@H@Z @ 12696 NONAME ; class QString QPaintBuffer::commandDescription(int) const
+	?layoutChanged@QGraphicsWidget@@IAEXXZ @ 12697 NONAME ; void QGraphicsWidget::layoutChanged(void)
+	??0QGraphicsViewPrivate@@QAE@XZ @ 12698 NONAME ; QGraphicsViewPrivate::QGraphicsViewPrivate(void)
+	?anchorAt@QPlainTextEdit@@QBE?AVQString@@ABVQPoint@@@Z @ 12699 NONAME ; class QString QPlainTextEdit::anchorAt(class QPoint const &) const
+	?getSubRange@QBezier@@QBE?AV1@MM@Z @ 12700 NONAME ; class QBezier QBezier::getSubRange(float, float) const
+	?replaceScrollBar@QAbstractScrollAreaPrivate@@QAEXPAVQScrollBar@@W4Orientation@Qt@@@Z @ 12701 NONAME ; void QAbstractScrollAreaPrivate::replaceScrollBar(class QScrollBar *, enum Qt::Orientation)
+	?mapToViewRegion@QGraphicsViewPrivate@@QBE?AVQRegion@@PBVQGraphicsItem@@ABVQRectF@@@Z @ 12702 NONAME ; class QRegion QGraphicsViewPrivate::mapToViewRegion(class QGraphicsItem const *, class QRectF const &) const
+	?allPixmaps@QPixmapCache@@SA?AV?$QList@U?$QPair@VQString@@VQPixmap@@@@@@XZ @ 12703 NONAME ; class QList<struct QPair<class QString, class QPixmap> > QPixmapCache::allPixmaps(void)
+	??_EQAbstractScrollAreaPrivate@@UAE@I@Z @ 12704 NONAME ; QAbstractScrollAreaPrivate::~QAbstractScrollAreaPrivate(unsigned int)
+	?pageAdded@QWizard@@IAEXH@Z @ 12705 NONAME ; void QWizard::pageAdded(int)
+	?populate@QTextureGlyphCache@@QAEXPAVQFontEngine@@HPBIPBUQFixedPoint@@@Z @ 12706 NONAME ; void QTextureGlyphCache::populate(class QFontEngine *, int, unsigned int const *, struct QFixedPoint const *)
+	??1QStaticTextItem@@QAE@XZ @ 12707 NONAME ; QStaticTextItem::~QStaticTextItem(void)
+	?populateSceneDragDropEvent@QGraphicsViewPrivate@@QAEXPAVQGraphicsSceneDragDropEvent@@PAVQDropEvent@@@Z @ 12708 NONAME ; void QGraphicsViewPrivate::populateSceneDragDropEvent(class QGraphicsSceneDragDropEvent *, class QDropEvent *)
+	?updateAll@QGraphicsViewPrivate@@QAEXXZ @ 12709 NONAME ; void QGraphicsViewPrivate::updateAll(void)
+	?nativeWindow@QEgl@@YAPAXPAVQWidget@@@Z @ 12710 NONAME ; void * QEgl::nativeWindow(class QWidget *)
+	?children_count@QGraphicsItemPrivate@@SAHPAV?$QDeclarativeListProperty@VQGraphicsObject@@@@@Z @ 12711 NONAME ; int QGraphicsItemPrivate::children_count(class QDeclarativeListProperty<class QGraphicsObject> *)
+	?allocStyleOptionsArray@QGraphicsViewPrivate@@QAEPAVQStyleOptionGraphicsItem@@H@Z @ 12712 NONAME ; class QStyleOptionGraphicsItem * QGraphicsViewPrivate::allocStyleOptionsArray(int)
+	?resizeTextureData@QImageTextureGlyphCache@@UAEXHH@Z @ 12713 NONAME ; void QImageTextureGlyphCache::resizeTextureData(int, int)
+	?drawPixmapFragments@QPainter@@QAEXPBVPixmapFragment@1@HABVQPixmap@@V?$QFlags@W4PixmapFragmentHint@QPainter@@@@@Z @ 12714 NONAME ; void QPainter::drawPixmapFragments(class QPainter::PixmapFragment const *, int, class QPixmap const &, class QFlags<enum QPainter::PixmapFragmentHint>)
+	?setColorFromString@QColor@@AAE_NABVQString@@@Z @ 12715 NONAME ; bool QColor::setColorFromString(class QString const &)
+	??1QAbstractScrollAreaPrivate@@UAE@XZ @ 12716 NONAME ; QAbstractScrollAreaPrivate::~QAbstractScrollAreaPrivate(void)
+	?setText@QStaticText@@QAEXABVQString@@@Z @ 12717 NONAME ; void QStaticText::setText(class QString const &)
+	?bitPlaneCount@QImage@@QBEHXZ @ 12718 NONAME ; int QImage::bitPlaneCount(void) const
+	?_q_unsetViewportCursor@QGraphicsViewPrivate@@QAEXXZ @ 12719 NONAME ; void QGraphicsViewPrivate::_q_unsetViewportCursor(void)
+	?setUpdateClip@QGraphicsViewPrivate@@QAEXPAVQGraphicsItem@@@Z @ 12720 NONAME ; void QGraphicsViewPrivate::setUpdateClip(class QGraphicsItem *)
+	?resetHeight@QGraphicsItemPrivate@@UAEXXZ @ 12721 NONAME ; void QGraphicsItemPrivate::resetHeight(void)
+	?runtimeData@QPixmapData@@UBEPAV1@XZ @ 12722 NONAME ; class QPixmapData * QPixmapData::runtimeData(void) const
+	?selectedText@QLabel@@QBE?AVQString@@XZ @ 12723 NONAME ; class QString QLabel::selectedText(void) const
+	?childrenList@QGraphicsItemPrivate@@QAE?AV?$QDeclarativeListProperty@VQGraphicsObject@@@@XZ @ 12724 NONAME ; class QDeclarativeListProperty<class QGraphicsObject> QGraphicsItemPrivate::childrenList(void)
+	?childrenChanged@QGraphicsObject@@IAEXXZ @ 12725 NONAME ; void QGraphicsObject::childrenChanged(void)
+	?recalculateContentSize@QGraphicsViewPrivate@@QAEXXZ @ 12726 NONAME ; void QGraphicsViewPrivate::recalculateContentSize(void)
+	?heightChanged@QGraphicsObject@@IAEXXZ @ 12727 NONAME ; void QGraphicsObject::heightChanged(void)
+	?name@QIcon@@QBE?AVQString@@XZ @ 12728 NONAME ; class QString QIcon::name(void) const
+	?errorString@QEgl@@YA?AVQString@@H@Z @ 12729 NONAME ; class QString QEgl::errorString(int)
+	??4FileInfo@QZipReader@@QAEAAU01@ABU01@@Z @ 12730 NONAME ; struct QZipReader::FileInfo & QZipReader::FileInfo::operator=(struct QZipReader::FileInfo const &)
+	??1QGraphicsViewPrivate@@UAE@XZ @ 12731 NONAME ; QGraphicsViewPrivate::~QGraphicsViewPrivate(void)
+	?chooseConfig@QEgl@@YAHPBVQEglProperties@@W4PixelFormatMatch@1@@Z @ 12732 NONAME ; int QEgl::chooseConfig(class QEglProperties const *, enum QEgl::PixelFormatMatch)
+	?prependGraphicsTransform@QGraphicsItemPrivate@@QAEXPAVQGraphicsTransform@@@Z @ 12733 NONAME ; void QGraphicsItemPrivate::prependGraphicsTransform(class QGraphicsTransform *)
+	?eglDestroyImageKHR@QEgl@@YAHHH@Z @ 12734 NONAME ; int QEgl::eglDestroyImageKHR(int, int)
+	?qt_draw_glyphs@@YAXPAVQPainter@@PBIPBVQPointF@@H@Z @ 12735 NONAME ; void qt_draw_glyphs(class QPainter *, unsigned int const *, class QPointF const *, int)
+	?isEmpty@QItemSelectionRange@@QBE_NXZ @ 12736 NONAME ; bool QItemSelectionRange::isEmpty(void) const
+	?count@QZipReader@@QBEHXZ @ 12737 NONAME ; int QZipReader::count(void) const
+	?centerView@QGraphicsViewPrivate@@QAEXW4ViewportAnchor@QGraphicsView@@@Z @ 12738 NONAME ; void QGraphicsViewPrivate::centerView(enum QGraphicsView::ViewportAnchor)
+	?contentsOffset@QAbstractScrollAreaPrivate@@UBE?AVQPoint@@XZ @ 12739 NONAME ; class QPoint QAbstractScrollAreaPrivate::contentsOffset(void) const
+	?_q_vslide@QAbstractScrollAreaPrivate@@QAEXH@Z @ 12740 NONAME ; void QAbstractScrollAreaPrivate::_q_vslide(int)
+	??1QZipReader@@QAE@XZ @ 12741 NONAME ; QZipReader::~QZipReader(void)
+	??_EQImageTextureGlyphCache@@UAE@I@Z @ 12742 NONAME ; QImageTextureGlyphCache::~QImageTextureGlyphCache(unsigned int)
+	?drawPixmapFragments@QPaintEngineEx@@UAEXPBVPixmapFragment@QPainter@@HABVQPixmap@@V?$QFlags@W4PixmapFragmentHint@QPainter@@@@@Z @ 12743 NONAME ; void QPaintEngineEx::drawPixmapFragments(class QPainter::PixmapFragment const *, int, class QPixmap const &, class QFlags<enum QPainter::PixmapFragmentHint>)
+	?nativeDisplay@QEgl@@YAHXZ @ 12744 NONAME ; int QEgl::nativeDisplay(void)
+	?layoutChildren@QAbstractScrollAreaPrivate@@QAEXXZ @ 12745 NONAME ; void QAbstractScrollAreaPrivate::layoutChildren(void)
+	?horizontalScroll@QGraphicsViewPrivate@@QBE_JXZ @ 12746 NONAME ; long long QGraphicsViewPrivate::horizontalScroll(void) const
+	?updateRectF@QGraphicsViewPrivate@@QAE_NABVQRectF@@@Z @ 12747 NONAME ; bool QGraphicsViewPrivate::updateRectF(class QRectF const &)
+	?setPlaceholderText@QLineEdit@@QAEXABVQString@@@Z @ 12748 NONAME ; void QLineEdit::setPlaceholderText(class QString const &)
+	?resizeEvent@QSplitterHandle@@MAEXPAVQResizeEvent@@@Z @ 12749 NONAME ; void QSplitterHandle::resizeEvent(class QResizeEvent *)
+	?drawStaticText@QPainter@@QAEXHHABVQStaticText@@@Z @ 12750 NONAME ; void QPainter::drawStaticText(int, int, class QStaticText const &)
+	?setSelection@QLabel@@QAEXHH@Z @ 12751 NONAME ; void QLabel::setSelection(int, int)
+	?q_func@QAbstractScrollAreaPrivate@@AAEPAVQAbstractScrollArea@@XZ @ 12752 NONAME ; class QAbstractScrollArea * QAbstractScrollAreaPrivate::q_func(void)
+	?updateMicroFocus@QGraphicsObject@@IAEXXZ @ 12753 NONAME ; void QGraphicsObject::updateMicroFocus(void)
+	?drawStaticText@QPainter@@QAEXABVQPointF@@ABVQStaticText@@@Z @ 12754 NONAME ; void QPainter::drawStaticText(class QPointF const &, class QStaticText const &)
+	?processPendingUpdates@QGraphicsViewPrivate@@QAEXXZ @ 12755 NONAME ; void QGraphicsViewPrivate::processPendingUpdates(void)
+	?rubberBandRegion@QGraphicsViewPrivate@@QBE?AVQRegion@@PBVQWidget@@ABVQRect@@@Z @ 12756 NONAME ; class QRegion QGraphicsViewPrivate::rubberBandRegion(class QWidget const *, class QRect const &) const
+	?children_at@QGraphicsItemPrivate@@SAPAVQGraphicsObject@@PAV?$QDeclarativeListProperty@VQGraphicsObject@@@@H@Z @ 12757 NONAME ; class QGraphicsObject * QGraphicsItemPrivate::children_at(class QDeclarativeListProperty<class QGraphicsObject> *, int)
+	?widthChanged@QGraphicsObject@@IAEXXZ @ 12758 NONAME ; void QGraphicsObject::widthChanged(void)
+	?_q_showOrHideScrollBars@QAbstractScrollAreaPrivate@@QAEXXZ @ 12759 NONAME ; void QAbstractScrollAreaPrivate::_q_showOrHideScrollBars(void)
+	?mouseMoveEventHandler@QGraphicsViewPrivate@@QAEXPAVQMouseEvent@@@Z @ 12760 NONAME ; void QGraphicsViewPrivate::mouseMoveEventHandler(class QMouseEvent *)
+	?replayLastMouseEvent@QGraphicsViewPrivate@@QAEXXZ @ 12761 NONAME ; void QGraphicsViewPrivate::replayLastMouseEvent(void)
+	??0QStaticText@@QAE@ABVQString@@@Z @ 12762 NONAME ; QStaticText::QStaticText(class QString const &)
+	?close@QZipReader@@QAEXXZ @ 12763 NONAME ; void QZipReader::close(void)
+	?geometryChanged@QGraphicsWidget@@IAEXXZ @ 12764 NONAME ; void QGraphicsWidget::geometryChanged(void)
+	?setCurveThreshold@QStrokerOps@@QAEXM@Z @ 12765 NONAME ; void QStrokerOps::setCurveThreshold(float)
+	?_q_hslide@QAbstractScrollAreaPrivate@@QAEXH@Z @ 12766 NONAME ; void QAbstractScrollAreaPrivate::_q_hslide(int)
+	?selectionStart@QLabel@@QBEHXZ @ 12767 NONAME ; int QLabel::selectionStart(void) const
+	??0QStaticText@@QAE@XZ @ 12768 NONAME ; QStaticText::QStaticText(void)
+	?curveThreshold@QStrokerOps@@QBEMXZ @ 12769 NONAME ; float QStrokerOps::curveThreshold(void) const
+	?iconName@QIconEngineV2@@QAE?AVQString@@XZ @ 12770 NONAME ; class QString QIconEngineV2::iconName(void)
+	?mapBy@QBezier@@QBE?AV1@ABVQTransform@@@Z @ 12771 NONAME ; class QBezier QBezier::mapBy(class QTransform const &) const
+	??0QZipReader@@QAE@ABVQString@@V?$QFlags@W4OpenModeFlag@QIODevice@@@@@Z @ 12772 NONAME ; QZipReader::QZipReader(class QString const &, class QFlags<enum QIODevice::OpenModeFlag>)
+	?flushDetachedPixmaps@QPixmapCache@@SAXXZ @ 12773 NONAME ; void QPixmapCache::flushDetachedPixmaps(void)
+	?exists@QZipReader@@QBE_NXZ @ 12774 NONAME ; bool QZipReader::exists(void) const
+	?prepare@QStaticText@@QAEXABVQTransform@@ABVQFont@@@Z @ 12775 NONAME ; void QStaticText::prepare(class QTransform const &, class QFont const &)
+	?paste@QTextControl@@QAEXW4Mode@QClipboard@@@Z @ 12776 NONAME ; void QTextControl::paste(enum QClipboard::Mode)
+	?horizontalAdvance@QTextLine@@QBEMXZ @ 12777 NONAME ; float QTextLine::horizontalAdvance(void) const
+	?setCurveThresholdFromTransform@QStrokerOps@@QAEXABVQTransform@@@Z @ 12778 NONAME ; void QStrokerOps::setCurveThresholdFromTransform(class QTransform const &)
+	?textWidth@QStaticText@@QBEMXZ @ 12779 NONAME ; float QStaticText::textWidth(void) const
+	?create@PixmapFragment@QPainter@@SA?AV12@ABVQPointF@@ABVQRectF@@MMMM@Z @ 12780 NONAME ; class QPainter::PixmapFragment QPainter::PixmapFragment::create(class QPointF const &, class QRectF const &, float, float, float, float)
+	?extractAll@QZipReader@@QBE_NABVQString@@@Z @ 12781 NONAME ; bool QZipReader::extractAll(class QString const &) const
+	??0FileInfo@QZipReader@@QAE@ABU01@@Z @ 12782 NONAME ; QZipReader::FileInfo::FileInfo(struct QZipReader::FileInfo const &)
+	?setTextWidth@QStaticText@@QAEXM@Z @ 12783 NONAME ; void QStaticText::setTextWidth(float)
+	?fixup@QIntValidator@@UBEXAAVQString@@@Z @ 12784 NONAME ; void QIntValidator::fixup(class QString &) const
+	?dumpAllConfigs@QEgl@@YAXXZ @ 12785 NONAME ; void QEgl::dumpAllConfigs(void)
+	?assign@QKeySequence@@AAEHABVQString@@W4SequenceFormat@1@@Z @ 12786 NONAME ; int QKeySequence::assign(class QString const &, enum QKeySequence::SequenceFormat)
+	?q_func@QAbstractScrollAreaPrivate@@ABEPBVQAbstractScrollArea@@XZ @ 12787 NONAME ; class QAbstractScrollArea const * QAbstractScrollAreaPrivate::q_func(void) const
+	?mapToScene@QGraphicsViewPrivate@@QBE?AVQRectF@@ABV2@@Z @ 12788 NONAME ; class QRectF QGraphicsViewPrivate::mapToScene(class QRectF const &) const
+	?updateScroll@QGraphicsViewPrivate@@QAEXXZ @ 12789 NONAME ; void QGraphicsViewPrivate::updateScroll(void)
+	?directoryLoaded@QFileSystemModel@@IAEXABVQString@@@Z @ 12790 NONAME ; void QFileSystemModel::directoryLoaded(class QString const &)
+	?placeholderText@QLineEdit@@QBE?AVQString@@XZ @ 12791 NONAME ; class QString QLineEdit::placeholderText(void) const
+	?setWidth@QGraphicsItemPrivate@@UAEXM@Z @ 12792 NONAME ; void QGraphicsItemPrivate::setWidth(float)
+	?q_func@QGraphicsViewPrivate@@AAEPAVQGraphicsView@@XZ @ 12793 NONAME ; class QGraphicsView * QGraphicsViewPrivate::q_func(void)
+	?setDeviceType@QEglProperties@@QAEXH@Z @ 12794 NONAME ; void QEglProperties::setDeviceType(int)
+	?convertFromImage@QPixmap@@QAE_NABVQImage@@V?$QFlags@W4ImageConversionFlag@Qt@@@@@Z @ 12795 NONAME ; bool QPixmap::convertFromImage(class QImage const &, class QFlags<enum Qt::ImageConversionFlag>)
+	?processCommands@QPaintBuffer@@QBEHPAVQPainter@@HH@Z @ 12796 NONAME ; int QPaintBuffer::processCommands(class QPainter *, int, int) const
+	?glyphPadding@QTextureGlyphCache@@UBEHXZ @ 12797 NONAME ; int QTextureGlyphCache::glyphPadding(void) const
+	??1FileInfo@QZipReader@@QAE@XZ @ 12798 NONAME ; QZipReader::FileInfo::~FileInfo(void)
+	?scrollBarPolicyChanged@QAbstractScrollAreaPrivate@@UAEXW4Orientation@Qt@@W4ScrollBarPolicy@3@@Z @ 12799 NONAME ; void QAbstractScrollAreaPrivate::scrollBarPolicyChanged(enum Qt::Orientation, enum Qt::ScrollBarPolicy)
+	?createSurface@QEgl@@YAHPAVQPaintDevice@@HPBVQEglProperties@@@Z @ 12800 NONAME ; int QEgl::createSurface(class QPaintDevice *, int, class QEglProperties const *)
+	?viewportEvent@QAbstractScrollAreaPrivate@@QAE_NPAVQEvent@@@Z @ 12801 NONAME ; bool QAbstractScrollAreaPrivate::viewportEvent(class QEvent *)
+	?frameEndIndex@QPaintBuffer@@QBEHH@Z @ 12802 NONAME ; int QPaintBuffer::frameEndIndex(int) const
+	??1QImageTextureGlyphCache@@UAE@XZ @ 12803 NONAME ; QImageTextureGlyphCache::~QImageTextureGlyphCache(void)
+	?setPerformanceHint@QStaticText@@QAEXW4PerformanceHint@1@@Z @ 12804 NONAME ; void QStaticText::setPerformanceHint(enum QStaticText::PerformanceHint)
+	??0QStaticText@@QAE@ABV0@@Z @ 12805 NONAME ; QStaticText::QStaticText(class QStaticText const &)
+	??0QImageTextureGlyphCache@@QAE@W4Type@QFontEngineGlyphCache@@ABVQTransform@@@Z @ 12806 NONAME ; QImageTextureGlyphCache::QImageTextureGlyphCache(enum QFontEngineGlyphCache::Type, class QTransform const &)
+	?verticalMovementX@QTextCursor@@QBEHXZ @ 12807 NONAME ; int QTextCursor::verticalMovementX(void) const
+	?runtime_graphics_system@QApplicationPrivate@@2_NA @ 12808 NONAME ; bool QApplicationPrivate::runtime_graphics_system
+	?keepPositionOnInsert@QTextCursor@@QBE_NXZ @ 12809 NONAME ; bool QTextCursor::keepPositionOnInsert(void) const
+	?setKeepPositionOnInsert@QTextCursor@@QAEX_N@Z @ 12810 NONAME ; void QTextCursor::setKeepPositionOnInsert(bool)
+	?textDirection@QProgressBar@@QBE?AW4Direction@1@XZ @ 12811 NONAME ; enum QProgressBar::Direction QProgressBar::textDirection(void) const
+	?setVerticalMovementX@QTextCursor@@QAEXH@Z @ 12812 NONAME ; void QTextCursor::setVerticalMovementX(int)
+	?invertedAppearance@QProgressBar@@QBE_NXZ @ 12813 NONAME ; bool QProgressBar::invertedAppearance(void) const
+	?width@QFontMetrics@@QBEHABVQString@@HH@Z @ 12814 NONAME ; int QFontMetrics::width(class QString const &, int, int) const
+	?aboutToDestroy@QWidgetPrivate@@UAEXXZ @ 12815 NONAME ; void QWidgetPrivate::aboutToDestroy(void)
+	?setTextOption@QStaticText@@QAEXABVQTextOption@@@Z @ 12816 NONAME ; void QStaticText::setTextOption(class QTextOption const &)
+	?pointInsideRectAndMask@QWidgetPrivate@@QBE_NABVQPoint@@@Z @ 12817 NONAME ; bool QWidgetPrivate::pointInsideRectAndMask(class QPoint const &) const
+	?childAtRecursiveHelper@QWidgetPrivate@@QBEPAVQWidget@@ABVQPoint@@_N1@Z @ 12818 NONAME ; class QWidget * QWidgetPrivate::childAtRecursiveHelper(class QPoint const &, bool, bool) const
+	?textOption@QStaticText@@QBE?AVQTextOption@@XZ @ 12819 NONAME ; class QTextOption QStaticText::textOption(void) const
+	?isRightToLeft@QTextEngine@@QBE_NXZ @ 12820 NONAME ; bool QTextEngine::isRightToLeft(void) const
+	?textDirection@QTextBlock@@QBE?AW4LayoutDirection@Qt@@XZ @ 12821 NONAME ; enum Qt::LayoutDirection QTextBlock::textDirection(void) const
+	?convertInPlace@QImageData@@QAE_NW4Format@QImage@@V?$QFlags@W4ImageConversionFlag@Qt@@@@@Z @ 12822 NONAME ; bool QImageData::convertInPlace(enum QImage::Format, class QFlags<enum Qt::ImageConversionFlag>)
+	?createPixmapForImage@QRasterPixmapData@@IAEXAAVQImage@@V?$QFlags@W4ImageConversionFlag@Qt@@@@_N@Z @ 12823 NONAME ; void QRasterPixmapData::createPixmapForImage(class QImage &, class QFlags<enum Qt::ImageConversionFlag>, bool)
+	??0Tab@QTextOption@@QAE@MW4TabType@1@VQChar@@@Z @ 12824 NONAME ; QTextOption::Tab::Tab(float, enum QTextOption::TabType, class QChar)
+	?fromData@QRasterPixmapData@@UAE_NPBEIPBDV?$QFlags@W4ImageConversionFlag@Qt@@@@@Z @ 12825 NONAME ; bool QRasterPixmapData::fromData(unsigned char const *, unsigned int, char const *, class QFlags<enum Qt::ImageConversionFlag>)
+	?transformed@QRuntimePixmapData@@UBE?AVQPixmap@@ABVQTransform@@W4TransformationMode@Qt@@@Z @ 12826 NONAME ; class QPixmap QRuntimePixmapData::transformed(class QTransform const &, enum Qt::TransformationMode) const
+	?scroll@QRuntimePixmapData@@UAE_NHHABVQRect@@@Z @ 12827 NONAME ; bool QRuntimePixmapData::scroll(int, int, class QRect const &)
+	?buffer@QRuntimePixmapData@@UAEPAVQImage@@XZ @ 12828 NONAME ; class QImage * QRuntimePixmapData::buffer(void)
+	?copy@QRuntimePixmapData@@UAEXPBVQPixmapData@@ABVQRect@@@Z @ 12829 NONAME ; void QRuntimePixmapData::copy(class QPixmapData const *, class QRect const &)
+	?fromData@QRuntimePixmapData@@UAE_NPBEIPBDV?$QFlags@W4ImageConversionFlag@Qt@@@@@Z @ 12830 NONAME ; bool QRuntimePixmapData::fromData(unsigned char const *, unsigned int, char const *, class QFlags<enum Qt::ImageConversionFlag>)
+	?readBackInfo@QRuntimePixmapData@@QAEXXZ @ 12831 NONAME ; void QRuntimePixmapData::readBackInfo(void)
+	??_EQRuntimePixmapData@@UAE@I@Z @ 12832 NONAME ; QRuntimePixmapData::~QRuntimePixmapData(unsigned int)
+	?paintEngine@QRuntimePixmapData@@UBEPAVQPaintEngine@@XZ @ 12833 NONAME ; class QPaintEngine * QRuntimePixmapData::paintEngine(void) const
+	?memoryUsage@QRuntimePixmapData@@UBEIXZ @ 12834 NONAME ABSENT ; unsigned int QRuntimePixmapData::memoryUsage(void) const
+	?toImage@QRasterPixmapData@@UBE?AVQImage@@ABVQRect@@@Z @ 12835 NONAME ; class QImage QRasterPixmapData::toImage(class QRect const &) const
+	?fromImageReader@QRasterPixmapData@@UAEXPAVQImageReader@@V?$QFlags@W4ImageConversionFlag@Qt@@@@@Z @ 12836 NONAME ; void QRasterPixmapData::fromImageReader(class QImageReader *, class QFlags<enum Qt::ImageConversionFlag>)
+	?fill@QRuntimePixmapData@@UAEXABVQColor@@@Z @ 12837 NONAME ; void QRuntimePixmapData::fill(class QColor const &)
+	?alphaChannel@QRuntimePixmapData@@UBE?AVQPixmap@@XZ @ 12838 NONAME ; class QPixmap QRuntimePixmapData::alphaChannel(void) const
+	?createCompatiblePixmapData@QRuntimePixmapData@@UBEPAVQPixmapData@@XZ @ 12839 NONAME ; class QPixmapData * QRuntimePixmapData::createCompatiblePixmapData(void) const
+	?toImage@QRuntimePixmapData@@UBE?AVQImage@@XZ @ 12840 NONAME ; class QImage QRuntimePixmapData::toImage(void) const
+	?resize@QRuntimePixmapData@@UAEXHH@Z @ 12841 NONAME ; void QRuntimePixmapData::resize(int, int)
+	?fromNativeType@QRuntimePixmapData@@UAEXPAXW4NativeType@QPixmapData@@@Z @ 12842 NONAME ; void QRuntimePixmapData::fromNativeType(void *, enum QPixmapData::NativeType)
+	?fromFile@QRuntimePixmapData@@UAE_NABVQString@@PBDV?$QFlags@W4ImageConversionFlag@Qt@@@@@Z @ 12843 NONAME ; bool QRuntimePixmapData::fromFile(class QString const &, char const *, class QFlags<enum Qt::ImageConversionFlag>)
+	?setAlphaChannel@QRuntimePixmapData@@UAEXABVQPixmap@@@Z @ 12844 NONAME ; void QRuntimePixmapData::setAlphaChannel(class QPixmap const &)
+	?fromImageReader@QPixmapData@@UAEXPAVQImageReader@@V?$QFlags@W4ImageConversionFlag@Qt@@@@@Z @ 12845 NONAME ; void QPixmapData::fromImageReader(class QImageReader *, class QFlags<enum Qt::ImageConversionFlag>)
+	?toImage@QPixmapData@@UBE?AVQImage@@ABVQRect@@@Z @ 12846 NONAME ; class QImage QPixmapData::toImage(class QRect const &) const
+	?fromImageReader@QPixmap@@SA?AV1@PAVQImageReader@@V?$QFlags@W4ImageConversionFlag@Qt@@@@@Z @ 12847 NONAME ; class QPixmap QPixmap::fromImageReader(class QImageReader *, class QFlags<enum Qt::ImageConversionFlag>)
+	?fromImage@QRuntimePixmapData@@UAEXABVQImage@@V?$QFlags@W4ImageConversionFlag@Qt@@@@@Z @ 12848 NONAME ; void QRuntimePixmapData::fromImage(class QImage const &, class QFlags<enum Qt::ImageConversionFlag>)
+	?setMask@QRuntimePixmapData@@UAEXABVQBitmap@@@Z @ 12849 NONAME ; void QRuntimePixmapData::setMask(class QBitmap const &)
+	?mask@QRuntimePixmapData@@UBE?AVQBitmap@@XZ @ 12850 NONAME ; class QBitmap QRuntimePixmapData::mask(void) const
+	?createPixmapData@QGraphicsSystem@@UAEPAVQPixmapData@@PAV2@@Z @ 12851 NONAME ; class QPixmapData * QGraphicsSystem::createPixmapData(class QPixmapData *)
+	?metric@QRuntimePixmapData@@UBEHW4PaintDeviceMetric@QPaintDevice@@@Z @ 12852 NONAME ; int QRuntimePixmapData::metric(enum QPaintDevice::PaintDeviceMetric) const
+	??1QRuntimePixmapData@@UAE@XZ @ 12853 NONAME ; QRuntimePixmapData::~QRuntimePixmapData(void)
+	??0QRuntimePixmapData@@QAE@PBVQRuntimeGraphicsSystem@@W4PixelType@QPixmapData@@@Z @ 12854 NONAME ; QRuntimePixmapData::QRuntimePixmapData(class QRuntimeGraphicsSystem const *, enum QPixmapData::PixelType)
+	?hasAlphaChannel@QRuntimePixmapData@@UBE_NXZ @ 12855 NONAME ; bool QRuntimePixmapData::hasAlphaChannel(void) const
+	?runtimeData@QRuntimePixmapData@@UBEPAVQPixmapData@@XZ @ 12856 NONAME ; class QPixmapData * QRuntimePixmapData::runtimeData(void) const
+	?toNativeType@QRuntimePixmapData@@UAEPAXW4NativeType@QPixmapData@@@Z @ 12857 NONAME ; void * QRuntimePixmapData::toNativeType(enum QPixmapData::NativeType)
+	?copy@QRasterPixmapData@@UAEXPBVQPixmapData@@ABVQRect@@@Z @ 12858 NONAME ; void QRasterPixmapData::copy(class QPixmapData const *, class QRect const &)
+	?eglSwapBuffersRegion2NOK@QEgl@@YAHHHHPBH@Z @ 12859 NONAME ; int QEgl::eglSwapBuffersRegion2NOK(int, int, int, int const *)
+	?swapBuffersRegion2NOK@QEglContext@@QAE_NHPBVQRegion@@@Z @ 12860 NONAME ; bool QEglContext::swapBuffersRegion2NOK(int, class QRegion const *)
+	?OpenIniFileLC@QS60MainApplication@@UBEPAVCDictionaryStore@@AAVRFs@@@Z @ 12861 NONAME ; class CDictionaryStore * QS60MainApplication::OpenIniFileLC(class RFs &) const
+	?Reserved_MtsmObject@QS60MainAppUi@@MAEXXZ @ 12862 NONAME ; void QS60MainAppUi::Reserved_MtsmObject(void)
+	?HandleForegroundEventL@QS60MainAppUi@@MAEXH@Z @ 12863 NONAME ; void QS60MainAppUi::HandleForegroundEventL(int)
+	?OpenFileL@QS60MainDocument@@UAEPAVCFileStore@@HABVTDesC16@@AAVRFs@@@Z @ 12864 NONAME ; class CFileStore * QS60MainDocument::OpenFileL(int, class TDesC16 const &, class RFs &)
+	?HandleTouchPaneSizeChange@QS60MainAppUi@@UAEXXZ @ 12865 NONAME ; void QS60MainAppUi::HandleTouchPaneSizeChange(void)
+	?Reserved_MtsmPosition@QS60MainAppUi@@MAEXXZ @ 12866 NONAME ; void QS60MainAppUi::Reserved_MtsmPosition(void)
+	?ApplicationRect@QS60MainAppUi@@UBE?AVTRect@@XZ @ 12867 NONAME ; class TRect QS60MainAppUi::ApplicationRect(void) const
+	?HandleSystemEventL@QS60MainAppUi@@MAEXABVTWsEvent@@@Z @ 12868 NONAME ; void QS60MainAppUi::HandleSystemEventL(class TWsEvent const &)
+	?HandleApplicationSpecificEventL@QS60MainAppUi@@MAEXHABVTWsEvent@@@Z @ 12869 NONAME ; void QS60MainAppUi::HandleApplicationSpecificEventL(int, class TWsEvent const &)
+	?HandleError@QS60MainAppUi@@UAE?AW4TErrorHandlerResponse@@HABUSExtendedError@@AAVTDes16@@1@Z @ 12870 NONAME ; enum TErrorHandlerResponse QS60MainAppUi::HandleError(int, struct SExtendedError const &, class TDes16 &, class TDes16 &)
+	?PrepareToExit@QS60MainAppUi@@UAEXXZ @ 12871 NONAME ; void QS60MainAppUi::PrepareToExit(void)
 	?MopSupplyObject@QS60MainAppUi@@MAE?AVPtr@TTypeUid@@V3@@Z @ 12872 NONAME ; class TTypeUid::Ptr QS60MainAppUi::MopSupplyObject(class TTypeUid)
-	??0QRuntimePixmapData@@QAE@PBVQRuntimeGraphicsSystem@@W4PixelType@QPixmapData@@@Z @ 12873 NONAME ; QRuntimePixmapData::QRuntimePixmapData(class QRuntimeGraphicsSystem const *, enum QPixmapData::PixelType)
-	??0Tab@QTextOption@@QAE@MW4TabType@1@VQChar@@@Z @ 12874 NONAME ; QTextOption::Tab::Tab(float, enum QTextOption::TabType, class QChar)
-	?mask@QRuntimePixmapData@@UBE?AVQBitmap@@XZ @ 12875 NONAME ; class QBitmap QRuntimePixmapData::mask(void) const
-	?setMask@QRuntimePixmapData@@UAEXABVQBitmap@@@Z @ 12876 NONAME ; void QRuntimePixmapData::setMask(class QBitmap const &)
-	?SetFadedL@QS60MainAppUi@@UAEXH@Z @ 12877 NONAME ; void QS60MainAppUi::SetFadedL(int)
-	?fromImageReader@QPixmap@@SA?AV1@PAVQImageReader@@V?$QFlags@W4ImageConversionFlag@Qt@@@@@Z @ 12878 NONAME ; class QPixmap QPixmap::fromImageReader(class QImageReader *, class QFlags<enum Qt::ImageConversionFlag>)
-	?Exit@QS60MainAppUi@@UAEXXZ @ 12879 NONAME ; void QS60MainAppUi::Exit(void)
-	??_EQRuntimePixmapData@@UAE@I@Z @ 12880 NONAME ; QRuntimePixmapData::~QRuntimePixmapData(unsigned int)
-	?resize@QRuntimePixmapData@@UAEXHH@Z @ 12881 NONAME ; void QRuntimePixmapData::resize(int, int)
-	?ProcessCommandL@QS60MainAppUi@@UAEXH@Z @ 12882 NONAME ; void QS60MainAppUi::ProcessCommandL(int)
-	?fromImageReader@QPixmapData@@UAEXPAVQImageReader@@V?$QFlags@W4ImageConversionFlag@Qt@@@@@Z @ 12883 NONAME ; void QPixmapData::fromImageReader(class QImageReader *, class QFlags<enum Qt::ImageConversionFlag>)
-	?OpenFileL@QS60MainDocument@@UAEXAAPAVCFileStore@@AAVRFile@@@Z @ 12884 NONAME ; void QS60MainDocument::OpenFileL(class CFileStore * &, class RFile &)
-	?fromImageReader@QRasterPixmapData@@UAEXPAVQImageReader@@V?$QFlags@W4ImageConversionFlag@Qt@@@@@Z @ 12885 NONAME ; void QRasterPixmapData::fromImageReader(class QImageReader *, class QFlags<enum Qt::ImageConversionFlag>)
-	?createPixmapForImage@QRasterPixmapData@@IAEXAAVQImage@@V?$QFlags@W4ImageConversionFlag@Qt@@@@_N@Z @ 12886 NONAME ; void QRasterPixmapData::createPixmapForImage(class QImage &, class QFlags<enum Qt::ImageConversionFlag>, bool)
-	?HandleScreenDeviceChangedL@QS60MainAppUi@@MAEXXZ @ 12887 NONAME ; void QS60MainAppUi::HandleScreenDeviceChangedL(void)
-	?scroll@QRuntimePixmapData@@UAE_NHHABVQRect@@@Z @ 12888 NONAME ; bool QRuntimePixmapData::scroll(int, int, class QRect const &)
-	?PreDocConstructL@QS60MainApplication@@UAEXXZ @ 12889 NONAME ; void QS60MainApplication::PreDocConstructL(void)
-	?NewAppServerL@QS60MainApplication@@UAEXAAPAVCApaAppServer@@@Z @ 12890 NONAME ; void QS60MainApplication::NewAppServerL(class CApaAppServer * &)
-	?createPixmapData@QGraphicsSystem@@UAEPAVQPixmapData@@PAV2@@Z @ 12891 NONAME ; class QPixmapData * QGraphicsSystem::createPixmapData(class QPixmapData *)
-	?convertInPlace@QImageData@@QAE_NW4Format@QImage@@V?$QFlags@W4ImageConversionFlag@Qt@@@@@Z @ 12892 NONAME ; bool QImageData::convertInPlace(enum QImage::Format, class QFlags<enum Qt::ImageConversionFlag>)
-	?copy@QRasterPixmapData@@UAEXPBVQPixmapData@@ABVQRect@@@Z @ 12893 NONAME ; void QRasterPixmapData::copy(class QPixmapData const *, class QRect const &)
-	?eglSwapBuffersRegion2NOK@QEgl@@YAHHHHPBH@Z @ 12894 NONAME ; int QEgl::eglSwapBuffersRegion2NOK(int, int, int, int const *)
-	?HandleViewDeactivation@QS60MainAppUi@@UAEXABVTVwsViewId@@0@Z @ 12895 NONAME ; void QS60MainAppUi::HandleViewDeactivation(class TVwsViewId const &, class TVwsViewId const &)
-	?fill@QRuntimePixmapData@@UAEXABVQColor@@@Z @ 12896 NONAME ; void QRuntimePixmapData::fill(class QColor const &)
-	?timeout@QTapAndHoldGesture@@SAHXZ @ 12897 NONAME ; int QTapAndHoldGesture::timeout(void)
-	?focusScopeItemChange@QGraphicsItemPrivate@@UAEX_N@Z @ 12898 NONAME ; void QGraphicsItemPrivate::focusScopeItemChange(bool)
-	?setTimeout@QTapAndHoldGesture@@SAXH@Z @ 12899 NONAME ; void QTapAndHoldGesture::setTimeout(int)
+	?SetFadedL@QS60MainAppUi@@UAEXH@Z @ 12873 NONAME ; void QS60MainAppUi::SetFadedL(int)
+	?Exit@QS60MainAppUi@@UAEXXZ @ 12874 NONAME ; void QS60MainAppUi::Exit(void)
+	?ProcessCommandL@QS60MainAppUi@@UAEXH@Z @ 12875 NONAME ; void QS60MainAppUi::ProcessCommandL(int)
+	?OpenFileL@QS60MainDocument@@UAEXAAPAVCFileStore@@AAVRFile@@@Z @ 12876 NONAME ; void QS60MainDocument::OpenFileL(class CFileStore * &, class RFile &)
+	?HandleScreenDeviceChangedL@QS60MainAppUi@@MAEXXZ @ 12877 NONAME ; void QS60MainAppUi::HandleScreenDeviceChangedL(void)
+	?PreDocConstructL@QS60MainApplication@@UAEXXZ @ 12878 NONAME ; void QS60MainApplication::PreDocConstructL(void)
+	?NewAppServerL@QS60MainApplication@@UAEXAAPAVCApaAppServer@@@Z @ 12879 NONAME ; void QS60MainApplication::NewAppServerL(class CApaAppServer * &)
+	?HandleViewDeactivation@QS60MainAppUi@@UAEXABVTVwsViewId@@0@Z @ 12880 NONAME ; void QS60MainAppUi::HandleViewDeactivation(class TVwsViewId const &, class TVwsViewId const &)
+	?timeout@QTapAndHoldGesture@@SAHXZ @ 12881 NONAME ; int QTapAndHoldGesture::timeout(void)
+	?focusScopeItemChange@QGraphicsItemPrivate@@UAEX_N@Z @ 12882 NONAME ; void QGraphicsItemPrivate::focusScopeItemChange(bool)
+	?setTimeout@QTapAndHoldGesture@@SAXH@Z @ 12883 NONAME ; void QTapAndHoldGesture::setTimeout(int)
+	?childrenBoundingRectHelper@QGraphicsItemPrivate@@QAEXPAVQTransform@@PAVQRectF@@_N@Z @ 12884 NONAME ; void QGraphicsItemPrivate::childrenBoundingRectHelper(class QTransform *, class QRectF *, bool)
+	?zScaleChanged@QGraphicsScale@@IAEXXZ @ 12885 NONAME ; void QGraphicsScale::zScaleChanged(void)
+	?xScaleChanged@QGraphicsScale@@IAEXXZ @ 12886 NONAME ; void QGraphicsScale::xScaleChanged(void)
+	?yScaleChanged@QGraphicsScale@@IAEXXZ @ 12887 NONAME ; void QGraphicsScale::yScaleChanged(void)
+	?_q_aboutToQuit@QApplicationPrivate@@QAEXXZ @ 12888 NONAME ; void QApplicationPrivate::_q_aboutToQuit(void)
+	?ensureSpace@QTextEngine@@QBE_NH@Z @ 12889 NONAME ; bool QTextEngine::ensureSpace(int) const
 
--- a/src/s60installs/bwins/QtNetworku.def	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/s60installs/bwins/QtNetworku.def	Mon Oct 04 01:19:32 2010 +0300
@@ -962,189 +962,187 @@
 	?staticMetaObject@QTcpServer@@2UQMetaObject@@B @ 961 NONAME ; struct QMetaObject const QTcpServer::staticMetaObject
 	?staticMetaObject@QUdpSocket@@2UQMetaObject@@B @ 962 NONAME ; struct QMetaObject const QUdpSocket::staticMetaObject
 	?staticMetaObject@QAbstractSocket@@2UQMetaObject@@B @ 963 NONAME ; struct QMetaObject const QAbstractSocket::staticMetaObject
-	??0QBearerEngine@@QAE@PAVQObject@@@Z @ 964 NONAME ; QBearerEngine::QBearerEngine(class QObject *)
-	??0QBearerEnginePlugin@@QAE@PAVQObject@@@Z @ 965 NONAME ; QBearerEnginePlugin::QBearerEnginePlugin(class QObject *)
-	??0QNetworkConfiguration@@QAE@ABV0@@Z @ 966 NONAME ; QNetworkConfiguration::QNetworkConfiguration(class QNetworkConfiguration const &)
-	??0QNetworkConfiguration@@QAE@XZ @ 967 NONAME ; QNetworkConfiguration::QNetworkConfiguration(void)
-	??0QNetworkConfigurationManager@@QAE@PAVQObject@@@Z @ 968 NONAME ; QNetworkConfigurationManager::QNetworkConfigurationManager(class QObject *)
-	??0QNetworkConfigurationManagerPrivate@@QAE@XZ @ 969 NONAME ; QNetworkConfigurationManagerPrivate::QNetworkConfigurationManagerPrivate(void)
-	??0QNetworkSession@@QAE@ABVQNetworkConfiguration@@PAVQObject@@@Z @ 970 NONAME ; QNetworkSession::QNetworkSession(class QNetworkConfiguration const &, class QObject *)
-	??0QNetworkSessionPrivate@@QAE@XZ @ 971 NONAME ; QNetworkSessionPrivate::QNetworkSessionPrivate(void)
-	??1QBearerEngine@@UAE@XZ @ 972 NONAME ; QBearerEngine::~QBearerEngine(void)
-	??1QBearerEngineFactoryInterface@@UAE@XZ @ 973 NONAME ; QBearerEngineFactoryInterface::~QBearerEngineFactoryInterface(void)
-	??1QBearerEnginePlugin@@UAE@XZ @ 974 NONAME ; QBearerEnginePlugin::~QBearerEnginePlugin(void)
-	??1QNetworkConfiguration@@QAE@XZ @ 975 NONAME ; QNetworkConfiguration::~QNetworkConfiguration(void)
-	??1QNetworkConfigurationManager@@UAE@XZ @ 976 NONAME ; QNetworkConfigurationManager::~QNetworkConfigurationManager(void)
-	??1QNetworkConfigurationManagerPrivate@@UAE@XZ @ 977 NONAME ; QNetworkConfigurationManagerPrivate::~QNetworkConfigurationManagerPrivate(void)
-	??1QNetworkSession@@UAE@XZ @ 978 NONAME ; QNetworkSession::~QNetworkSession(void)
-	??1QNetworkSessionPrivate@@UAE@XZ @ 979 NONAME ; QNetworkSessionPrivate::~QNetworkSessionPrivate(void)
-	??4QNetworkConfiguration@@QAEAAV0@ABV0@@Z @ 980 NONAME ; class QNetworkConfiguration & QNetworkConfiguration::operator=(class QNetworkConfiguration const &)
-	??8QNetworkConfiguration@@QBE_NABV0@@Z @ 981 NONAME ; bool QNetworkConfiguration::operator==(class QNetworkConfiguration const &) const
-	??9QNetworkConfiguration@@QBE_NABV0@@Z @ 982 NONAME ; bool QNetworkConfiguration::operator!=(class QNetworkConfiguration const &) const
-	??_EQBearerEngine@@UAE@I@Z @ 983 NONAME ; QBearerEngine::~QBearerEngine(unsigned int)
-	??_EQBearerEngineFactoryInterface@@UAE@I@Z @ 984 NONAME ; QBearerEngineFactoryInterface::~QBearerEngineFactoryInterface(unsigned int)
-	??_EQBearerEnginePlugin@@UAE@I@Z @ 985 NONAME ; QBearerEnginePlugin::~QBearerEnginePlugin(unsigned int)
-	??_EQNetworkConfigurationManager@@UAE@I@Z @ 986 NONAME ; QNetworkConfigurationManager::~QNetworkConfigurationManager(unsigned int)
-	??_EQNetworkConfigurationManagerPrivate@@UAE@I@Z @ 987 NONAME ; QNetworkConfigurationManagerPrivate::~QNetworkConfigurationManagerPrivate(unsigned int)
-	??_EQNetworkSession@@UAE@I@Z @ 988 NONAME ; QNetworkSession::~QNetworkSession(unsigned int)
-	??_EQNetworkSessionPrivate@@UAE@I@Z @ 989 NONAME ; QNetworkSessionPrivate::~QNetworkSessionPrivate(unsigned int)
-	?abort@QNetworkConfigurationManagerPrivate@@IAEXXZ @ 990 NONAME ; void QNetworkConfigurationManagerPrivate::abort(void)
-	?accept@QNetworkSession@@QAEXXZ @ 991 NONAME ; void QNetworkSession::accept(void)
-	?activeConfiguration@QNetworkAccessManager@@QBE?AVQNetworkConfiguration@@XZ @ 992 NONAME ; class QNetworkConfiguration QNetworkAccessManager::activeConfiguration(void) const
-	?activeTime@QNetworkSession@@QBE_KXZ @ 993 NONAME ; unsigned long long QNetworkSession::activeTime(void) const
-	?allConfigurations@QNetworkConfigurationManager@@QBE?AV?$QList@VQNetworkConfiguration@@@@V?$QFlags@W4StateFlag@QNetworkConfiguration@@@@@Z @ 994 NONAME ; class QList<class QNetworkConfiguration> QNetworkConfigurationManager::allConfigurations(class QFlags<enum QNetworkConfiguration::StateFlag>) const
-	?bearerName@QNetworkConfiguration@@QBE?AVQString@@XZ @ 995 NONAME ; class QString QNetworkConfiguration::bearerName(void) const
-	?bytesReceived@QNetworkSession@@QBE_KXZ @ 996 NONAME ; unsigned long long QNetworkSession::bytesReceived(void) const
-	?bytesWritten@QNetworkSession@@QBE_KXZ @ 997 NONAME ; unsigned long long QNetworkSession::bytesWritten(void) const
-	?capabilities@QNetworkConfigurationManager@@QBE?AV?$QFlags@W4Capability@QNetworkConfigurationManager@@@@XZ @ 998 NONAME ; class QFlags<enum QNetworkConfigurationManager::Capability> QNetworkConfigurationManager::capabilities(void) const
-	?children@QNetworkConfiguration@@QBE?AV?$QList@VQNetworkConfiguration@@@@XZ @ 999 NONAME ; class QList<class QNetworkConfiguration> QNetworkConfiguration::children(void) const
-	?close@QNetworkSession@@QAEXXZ @ 1000 NONAME ; void QNetworkSession::close(void)
-	?closed@QNetworkSession@@IAEXXZ @ 1001 NONAME ; void QNetworkSession::closed(void)
-	?closed@QNetworkSessionPrivate@@IAEXXZ @ 1002 NONAME ; void QNetworkSessionPrivate::closed(void)
-	?configuration@QNetworkAccessManager@@QBE?AVQNetworkConfiguration@@XZ @ 1003 NONAME ; class QNetworkConfiguration QNetworkAccessManager::configuration(void) const
-	?configuration@QNetworkSession@@QBE?AVQNetworkConfiguration@@XZ @ 1004 NONAME ; class QNetworkConfiguration QNetworkSession::configuration(void) const
-	?configurationAdded@QBearerEngine@@IAEXV?$QExplicitlySharedDataPointer@VQNetworkConfigurationPrivate@@@@@Z @ 1005 NONAME ; void QBearerEngine::configurationAdded(class QExplicitlySharedDataPointer<class QNetworkConfigurationPrivate>)
-	?configurationAdded@QNetworkConfigurationManager@@IAEXABVQNetworkConfiguration@@@Z @ 1006 NONAME ; void QNetworkConfigurationManager::configurationAdded(class QNetworkConfiguration const &)
-	?configurationAdded@QNetworkConfigurationManagerPrivate@@AAEXV?$QExplicitlySharedDataPointer@VQNetworkConfigurationPrivate@@@@@Z @ 1007 NONAME ; void QNetworkConfigurationManagerPrivate::configurationAdded(class QExplicitlySharedDataPointer<class QNetworkConfigurationPrivate>)
-	?configurationAdded@QNetworkConfigurationManagerPrivate@@IAEXABVQNetworkConfiguration@@@Z @ 1008 NONAME ; void QNetworkConfigurationManagerPrivate::configurationAdded(class QNetworkConfiguration const &)
-	?configurationChanged@QBearerEngine@@IAEXV?$QExplicitlySharedDataPointer@VQNetworkConfigurationPrivate@@@@@Z @ 1009 NONAME ; void QBearerEngine::configurationChanged(class QExplicitlySharedDataPointer<class QNetworkConfigurationPrivate>)
-	?configurationChanged@QNetworkConfigurationManager@@IAEXABVQNetworkConfiguration@@@Z @ 1010 NONAME ; void QNetworkConfigurationManager::configurationChanged(class QNetworkConfiguration const &)
-	?configurationChanged@QNetworkConfigurationManagerPrivate@@AAEXV?$QExplicitlySharedDataPointer@VQNetworkConfigurationPrivate@@@@@Z @ 1011 NONAME ; void QNetworkConfigurationManagerPrivate::configurationChanged(class QExplicitlySharedDataPointer<class QNetworkConfigurationPrivate>)
-	?configurationChanged@QNetworkConfigurationManagerPrivate@@IAEXABVQNetworkConfiguration@@@Z @ 1012 NONAME ; void QNetworkConfigurationManagerPrivate::configurationChanged(class QNetworkConfiguration const &)
-	?configurationFromIdentifier@QNetworkConfigurationManager@@QBE?AVQNetworkConfiguration@@ABVQString@@@Z @ 1013 NONAME ; class QNetworkConfiguration QNetworkConfigurationManager::configurationFromIdentifier(class QString const &) const
-	?configurationRemoved@QBearerEngine@@IAEXV?$QExplicitlySharedDataPointer@VQNetworkConfigurationPrivate@@@@@Z @ 1014 NONAME ; void QBearerEngine::configurationRemoved(class QExplicitlySharedDataPointer<class QNetworkConfigurationPrivate>)
-	?configurationRemoved@QNetworkConfigurationManager@@IAEXABVQNetworkConfiguration@@@Z @ 1015 NONAME ; void QNetworkConfigurationManager::configurationRemoved(class QNetworkConfiguration const &)
-	?configurationRemoved@QNetworkConfigurationManagerPrivate@@AAEXV?$QExplicitlySharedDataPointer@VQNetworkConfigurationPrivate@@@@@Z @ 1016 NONAME ; void QNetworkConfigurationManagerPrivate::configurationRemoved(class QExplicitlySharedDataPointer<class QNetworkConfigurationPrivate>)
-	?configurationRemoved@QNetworkConfigurationManagerPrivate@@IAEXABVQNetworkConfiguration@@@Z @ 1017 NONAME ; void QNetworkConfigurationManagerPrivate::configurationRemoved(class QNetworkConfiguration const &)
-	?configurationUpdateComplete@QNetworkConfigurationManagerPrivate@@IAEXXZ @ 1018 NONAME ; void QNetworkConfigurationManagerPrivate::configurationUpdateComplete(void)
-	?connectNotify@QNetworkSession@@MAEXPBD@Z @ 1019 NONAME ; void QNetworkSession::connectNotify(char const *)
-	?defaultConfiguration@QNetworkConfigurationManager@@QBE?AVQNetworkConfiguration@@XZ @ 1020 NONAME ; class QNetworkConfiguration QNetworkConfigurationManager::defaultConfiguration(void) const
-	?disconnectNotify@QNetworkSession@@MAEXPBD@Z @ 1021 NONAME ; void QNetworkSession::disconnectNotify(char const *)
-	?engines@QNetworkConfigurationManagerPrivate@@QAE?AV?$QList@PAVQBearerEngine@@@@XZ @ 1022 NONAME ; class QList<class QBearerEngine *> QNetworkConfigurationManagerPrivate::engines(void)
-	?error@QNetworkSession@@IAEXW4SessionError@1@@Z @ 1023 NONAME ; void QNetworkSession::error(enum QNetworkSession::SessionError)
-	?error@QNetworkSession@@QBE?AW4SessionError@1@XZ @ 1024 NONAME ; enum QNetworkSession::SessionError QNetworkSession::error(void) const
-	?error@QNetworkSessionPrivate@@IAEXW4SessionError@QNetworkSession@@@Z @ 1025 NONAME ; void QNetworkSessionPrivate::error(enum QNetworkSession::SessionError)
-	?errorString@QNetworkSession@@QBE?AVQString@@XZ @ 1026 NONAME ; class QString QNetworkSession::errorString(void) const
-	?getStaticMetaObject@QBearerEngine@@SAABUQMetaObject@@XZ @ 1027 NONAME ; struct QMetaObject const & QBearerEngine::getStaticMetaObject(void)
-	?getStaticMetaObject@QBearerEnginePlugin@@SAABUQMetaObject@@XZ @ 1028 NONAME ; struct QMetaObject const & QBearerEnginePlugin::getStaticMetaObject(void)
-	?getStaticMetaObject@QNetworkConfigurationManager@@SAABUQMetaObject@@XZ @ 1029 NONAME ; struct QMetaObject const & QNetworkConfigurationManager::getStaticMetaObject(void)
-	?getStaticMetaObject@QNetworkConfigurationManagerPrivate@@SAABUQMetaObject@@XZ @ 1030 NONAME ; struct QMetaObject const & QNetworkConfigurationManagerPrivate::getStaticMetaObject(void)
-	?getStaticMetaObject@QNetworkSession@@SAABUQMetaObject@@XZ @ 1031 NONAME ; struct QMetaObject const & QNetworkSession::getStaticMetaObject(void)
-	?getStaticMetaObject@QNetworkSessionPrivate@@SAABUQMetaObject@@XZ @ 1032 NONAME ; struct QMetaObject const & QNetworkSessionPrivate::getStaticMetaObject(void)
-	?identifier@QNetworkConfiguration@@QBE?AVQString@@XZ @ 1033 NONAME ; class QString QNetworkConfiguration::identifier(void) const
-	?ignore@QNetworkSession@@QAEXXZ @ 1034 NONAME ; void QNetworkSession::ignore(void)
-	?interface@QNetworkSession@@QBE?AVQNetworkInterface@@XZ @ 1035 NONAME ; class QNetworkInterface QNetworkSession::interface(void) const
-	?isOnline@QNetworkConfigurationManager@@QBE_NXZ @ 1036 NONAME ; bool QNetworkConfigurationManager::isOnline(void) const
-	?isOpen@QNetworkSession@@QBE_NXZ @ 1037 NONAME ; bool QNetworkSession::isOpen(void) const
-	?isRoamingAvailable@QNetworkConfiguration@@QBE_NXZ @ 1038 NONAME ; bool QNetworkConfiguration::isRoamingAvailable(void) const
-	?isValid@QNetworkConfiguration@@QBE_NXZ @ 1039 NONAME ; bool QNetworkConfiguration::isValid(void) const
-	?metaObject@QBearerEngine@@UBEPBUQMetaObject@@XZ @ 1040 NONAME ; struct QMetaObject const * QBearerEngine::metaObject(void) const
-	?metaObject@QBearerEnginePlugin@@UBEPBUQMetaObject@@XZ @ 1041 NONAME ; struct QMetaObject const * QBearerEnginePlugin::metaObject(void) const
-	?metaObject@QNetworkConfigurationManager@@UBEPBUQMetaObject@@XZ @ 1042 NONAME ; struct QMetaObject const * QNetworkConfigurationManager::metaObject(void) const
-	?metaObject@QNetworkConfigurationManagerPrivate@@UBEPBUQMetaObject@@XZ @ 1043 NONAME ; struct QMetaObject const * QNetworkConfigurationManagerPrivate::metaObject(void) const
-	?metaObject@QNetworkSession@@UBEPBUQMetaObject@@XZ @ 1044 NONAME ; struct QMetaObject const * QNetworkSession::metaObject(void) const
-	?metaObject@QNetworkSessionPrivate@@UBEPBUQMetaObject@@XZ @ 1045 NONAME ; struct QMetaObject const * QNetworkSessionPrivate::metaObject(void) const
-	?migrate@QNetworkSession@@QAEXXZ @ 1046 NONAME ; void QNetworkSession::migrate(void)
-	?name@QNetworkConfiguration@@QBE?AVQString@@XZ @ 1047 NONAME ; class QString QNetworkConfiguration::name(void) const
-	?networkAccessChanged@QNetworkAccessManager@@IAEX_N@Z @ 1048 NONAME ABSENT ; void QNetworkAccessManager::networkAccessChanged(bool)
-	?networkAccessEnabled@QNetworkAccessManager@@QBE_NXZ @ 1049 NONAME ABSENT ; bool QNetworkAccessManager::networkAccessEnabled(void) const
-	?networkSessionOnline@QNetworkAccessManager@@IAEXXZ @ 1050 NONAME ABSENT ; void QNetworkAccessManager::networkSessionOnline(void)
-	?newConfigurationActivated@QNetworkSession@@IAEXXZ @ 1051 NONAME ; void QNetworkSession::newConfigurationActivated(void)
-	?newConfigurationActivated@QNetworkSessionPrivate@@IAEXXZ @ 1052 NONAME ; void QNetworkSessionPrivate::newConfigurationActivated(void)
-	?onlineStateChanged@QNetworkConfigurationManager@@IAEX_N@Z @ 1053 NONAME ; void QNetworkConfigurationManager::onlineStateChanged(bool)
-	?onlineStateChanged@QNetworkConfigurationManagerPrivate@@IAEX_N@Z @ 1054 NONAME ; void QNetworkConfigurationManagerPrivate::onlineStateChanged(bool)
-	?open@QNetworkSession@@QAEXXZ @ 1055 NONAME ; void QNetworkSession::open(void)
-	?opened@QNetworkSession@@IAEXXZ @ 1056 NONAME ; void QNetworkSession::opened(void)
-	?performAsyncConfigurationUpdate@QNetworkConfigurationManagerPrivate@@QAEXXZ @ 1057 NONAME ; void QNetworkConfigurationManagerPrivate::performAsyncConfigurationUpdate(void)
-	?preferredConfigurationChanged@QNetworkSession@@IAEXABVQNetworkConfiguration@@_N@Z @ 1058 NONAME ; void QNetworkSession::preferredConfigurationChanged(class QNetworkConfiguration const &, bool)
-	?preferredConfigurationChanged@QNetworkSessionPrivate@@IAEXABVQNetworkConfiguration@@_N@Z @ 1059 NONAME ; void QNetworkSessionPrivate::preferredConfigurationChanged(class QNetworkConfiguration const &, bool)
-	?priority@QNetworkRequest@@QBE?AW4Priority@1@XZ @ 1060 NONAME ; enum QNetworkRequest::Priority QNetworkRequest::priority(void) const
-	?privateConfiguration@QNetworkSessionPrivate@@IBE?AV?$QExplicitlySharedDataPointer@VQNetworkConfigurationPrivate@@@@ABVQNetworkConfiguration@@@Z @ 1061 NONAME ; class QExplicitlySharedDataPointer<class QNetworkConfigurationPrivate> QNetworkSessionPrivate::privateConfiguration(class QNetworkConfiguration const &) const
-	?purpose@QNetworkConfiguration@@QBE?AW4Purpose@1@XZ @ 1062 NONAME ; enum QNetworkConfiguration::Purpose QNetworkConfiguration::purpose(void) const
-	?qNetworkConfigurationManagerPrivate@@YAPAVQNetworkConfigurationManagerPrivate@@XZ @ 1063 NONAME ; class QNetworkConfigurationManagerPrivate * qNetworkConfigurationManagerPrivate(void)
-	?qt_metacall@QBearerEngine@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 1064 NONAME ; int QBearerEngine::qt_metacall(enum QMetaObject::Call, int, void * *)
-	?qt_metacall@QBearerEnginePlugin@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 1065 NONAME ; int QBearerEnginePlugin::qt_metacall(enum QMetaObject::Call, int, void * *)
-	?qt_metacall@QNetworkConfigurationManager@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 1066 NONAME ; int QNetworkConfigurationManager::qt_metacall(enum QMetaObject::Call, int, void * *)
-	?qt_metacall@QNetworkConfigurationManagerPrivate@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 1067 NONAME ; int QNetworkConfigurationManagerPrivate::qt_metacall(enum QMetaObject::Call, int, void * *)
-	?qt_metacall@QNetworkSession@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 1068 NONAME ; int QNetworkSession::qt_metacall(enum QMetaObject::Call, int, void * *)
-	?qt_metacall@QNetworkSessionPrivate@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 1069 NONAME ; int QNetworkSessionPrivate::qt_metacall(enum QMetaObject::Call, int, void * *)
-	?qt_metacast@QBearerEngine@@UAEPAXPBD@Z @ 1070 NONAME ; void * QBearerEngine::qt_metacast(char const *)
-	?qt_metacast@QBearerEnginePlugin@@UAEPAXPBD@Z @ 1071 NONAME ; void * QBearerEnginePlugin::qt_metacast(char const *)
-	?qt_metacast@QNetworkConfigurationManager@@UAEPAXPBD@Z @ 1072 NONAME ; void * QNetworkConfigurationManager::qt_metacast(char const *)
-	?qt_metacast@QNetworkConfigurationManagerPrivate@@UAEPAXPBD@Z @ 1073 NONAME ; void * QNetworkConfigurationManagerPrivate::qt_metacast(char const *)
-	?qt_metacast@QNetworkSession@@UAEPAXPBD@Z @ 1074 NONAME ; void * QNetworkSession::qt_metacast(char const *)
-	?qt_metacast@QNetworkSessionPrivate@@UAEPAXPBD@Z @ 1075 NONAME ; void * QNetworkSessionPrivate::qt_metacast(char const *)
-	?quitPendingWaitsForOpened@QNetworkSessionPrivate@@IAEXXZ @ 1076 NONAME ; void QNetworkSessionPrivate::quitPendingWaitsForOpened(void)
-	?rawHeaderPairs@QNetworkReply@@QBEABV?$QList@U?$QPair@VQByteArray@@V1@@@@@XZ @ 1077 NONAME ; class QList<struct QPair<class QByteArray, class QByteArray> > const & QNetworkReply::rawHeaderPairs(void) const
-	?reject@QNetworkSession@@QAEXXZ @ 1078 NONAME ; void QNetworkSession::reject(void)
-	?sendCustomRequest@QNetworkAccessManager@@QAEPAVQNetworkReply@@ABVQNetworkRequest@@ABVQByteArray@@PAVQIODevice@@@Z @ 1079 NONAME ; class QNetworkReply * QNetworkAccessManager::sendCustomRequest(class QNetworkRequest const &, class QByteArray const &, class QIODevice *)
-	?sessionProperty@QNetworkSession@@QBE?AVQVariant@@ABVQString@@@Z @ 1080 NONAME ; class QVariant QNetworkSession::sessionProperty(class QString const &) const
-	?setALREnabled@QNetworkSessionPrivate@@UAEX_N@Z @ 1081 NONAME ; void QNetworkSessionPrivate::setALREnabled(bool)
-	?setConfiguration@QNetworkAccessManager@@QAEXABVQNetworkConfiguration@@@Z @ 1082 NONAME ; void QNetworkAccessManager::setConfiguration(class QNetworkConfiguration const &)
-	?setNetworkAccessEnabled@QNetworkAccessManager@@QAEX_N@Z @ 1083 NONAME ABSENT ; void QNetworkAccessManager::setNetworkAccessEnabled(bool)
-	?setPriority@QNetworkRequest@@QAEXW4Priority@1@@Z @ 1084 NONAME ; void QNetworkRequest::setPriority(enum QNetworkRequest::Priority)
-	?setPrivateConfiguration@QNetworkSessionPrivate@@IBEXAAVQNetworkConfiguration@@V?$QExplicitlySharedDataPointer@VQNetworkConfigurationPrivate@@@@@Z @ 1085 NONAME ; void QNetworkSessionPrivate::setPrivateConfiguration(class QNetworkConfiguration &, class QExplicitlySharedDataPointer<class QNetworkConfigurationPrivate>) const
-	?setSessionProperty@QNetworkSession@@QAEXABVQString@@ABVQVariant@@@Z @ 1086 NONAME ; void QNetworkSession::setSessionProperty(class QString const &, class QVariant const &)
-	?state@QNetworkConfiguration@@QBE?AV?$QFlags@W4StateFlag@QNetworkConfiguration@@@@XZ @ 1087 NONAME ; class QFlags<enum QNetworkConfiguration::StateFlag> QNetworkConfiguration::state(void) const
-	?state@QNetworkSession@@QBE?AW4State@1@XZ @ 1088 NONAME ; enum QNetworkSession::State QNetworkSession::state(void) const
-	?stateChanged@QNetworkSession@@IAEXW4State@1@@Z @ 1089 NONAME ; void QNetworkSession::stateChanged(enum QNetworkSession::State)
-	?stateChanged@QNetworkSessionPrivate@@IAEXW4State@QNetworkSession@@@Z @ 1090 NONAME ; void QNetworkSessionPrivate::stateChanged(enum QNetworkSession::State)
-	?stop@QNetworkSession@@QAEXXZ @ 1091 NONAME ; void QNetworkSession::stop(void)
-	?tr@QBearerEngine@@SA?AVQString@@PBD0@Z @ 1092 NONAME ; class QString QBearerEngine::tr(char const *, char const *)
-	?tr@QBearerEngine@@SA?AVQString@@PBD0H@Z @ 1093 NONAME ; class QString QBearerEngine::tr(char const *, char const *, int)
-	?tr@QBearerEnginePlugin@@SA?AVQString@@PBD0@Z @ 1094 NONAME ; class QString QBearerEnginePlugin::tr(char const *, char const *)
-	?tr@QBearerEnginePlugin@@SA?AVQString@@PBD0H@Z @ 1095 NONAME ; class QString QBearerEnginePlugin::tr(char const *, char const *, int)
-	?tr@QNetworkConfigurationManager@@SA?AVQString@@PBD0@Z @ 1096 NONAME ; class QString QNetworkConfigurationManager::tr(char const *, char const *)
-	?tr@QNetworkConfigurationManager@@SA?AVQString@@PBD0H@Z @ 1097 NONAME ; class QString QNetworkConfigurationManager::tr(char const *, char const *, int)
-	?tr@QNetworkConfigurationManagerPrivate@@SA?AVQString@@PBD0@Z @ 1098 NONAME ; class QString QNetworkConfigurationManagerPrivate::tr(char const *, char const *)
-	?tr@QNetworkConfigurationManagerPrivate@@SA?AVQString@@PBD0H@Z @ 1099 NONAME ; class QString QNetworkConfigurationManagerPrivate::tr(char const *, char const *, int)
-	?tr@QNetworkSession@@SA?AVQString@@PBD0@Z @ 1100 NONAME ; class QString QNetworkSession::tr(char const *, char const *)
-	?tr@QNetworkSession@@SA?AVQString@@PBD0H@Z @ 1101 NONAME ; class QString QNetworkSession::tr(char const *, char const *, int)
-	?tr@QNetworkSessionPrivate@@SA?AVQString@@PBD0@Z @ 1102 NONAME ; class QString QNetworkSessionPrivate::tr(char const *, char const *)
-	?tr@QNetworkSessionPrivate@@SA?AVQString@@PBD0H@Z @ 1103 NONAME ; class QString QNetworkSessionPrivate::tr(char const *, char const *, int)
-	?trUtf8@QBearerEngine@@SA?AVQString@@PBD0@Z @ 1104 NONAME ; class QString QBearerEngine::trUtf8(char const *, char const *)
-	?trUtf8@QBearerEngine@@SA?AVQString@@PBD0H@Z @ 1105 NONAME ; class QString QBearerEngine::trUtf8(char const *, char const *, int)
-	?trUtf8@QBearerEnginePlugin@@SA?AVQString@@PBD0@Z @ 1106 NONAME ; class QString QBearerEnginePlugin::trUtf8(char const *, char const *)
-	?trUtf8@QBearerEnginePlugin@@SA?AVQString@@PBD0H@Z @ 1107 NONAME ; class QString QBearerEnginePlugin::trUtf8(char const *, char const *, int)
-	?trUtf8@QNetworkConfigurationManager@@SA?AVQString@@PBD0@Z @ 1108 NONAME ; class QString QNetworkConfigurationManager::trUtf8(char const *, char const *)
-	?trUtf8@QNetworkConfigurationManager@@SA?AVQString@@PBD0H@Z @ 1109 NONAME ; class QString QNetworkConfigurationManager::trUtf8(char const *, char const *, int)
-	?trUtf8@QNetworkConfigurationManagerPrivate@@SA?AVQString@@PBD0@Z @ 1110 NONAME ; class QString QNetworkConfigurationManagerPrivate::trUtf8(char const *, char const *)
-	?trUtf8@QNetworkConfigurationManagerPrivate@@SA?AVQString@@PBD0H@Z @ 1111 NONAME ; class QString QNetworkConfigurationManagerPrivate::trUtf8(char const *, char const *, int)
-	?trUtf8@QNetworkSession@@SA?AVQString@@PBD0@Z @ 1112 NONAME ; class QString QNetworkSession::trUtf8(char const *, char const *)
-	?trUtf8@QNetworkSession@@SA?AVQString@@PBD0H@Z @ 1113 NONAME ; class QString QNetworkSession::trUtf8(char const *, char const *, int)
-	?trUtf8@QNetworkSessionPrivate@@SA?AVQString@@PBD0@Z @ 1114 NONAME ; class QString QNetworkSessionPrivate::trUtf8(char const *, char const *)
-	?trUtf8@QNetworkSessionPrivate@@SA?AVQString@@PBD0H@Z @ 1115 NONAME ; class QString QNetworkSessionPrivate::trUtf8(char const *, char const *, int)
-	?type@QNetworkConfiguration@@QBE?AW4Type@1@XZ @ 1116 NONAME ; enum QNetworkConfiguration::Type QNetworkConfiguration::type(void) const
-	?updateCompleted@QBearerEngine@@IAEXXZ @ 1117 NONAME ; void QBearerEngine::updateCompleted(void)
-	?updateCompleted@QNetworkConfigurationManager@@IAEXXZ @ 1118 NONAME ; void QNetworkConfigurationManager::updateCompleted(void)
-	?updateConfigurations@QNetworkConfigurationManager@@QAEXXZ @ 1119 NONAME ; void QNetworkConfigurationManager::updateConfigurations(void)
-	?updateConfigurations@QNetworkConfigurationManagerPrivate@@QAEXXZ @ 1120 NONAME ; void QNetworkConfigurationManagerPrivate::updateConfigurations(void)
-	?waitForOpened@QNetworkSession@@QAE_NH@Z @ 1121 NONAME ; bool QNetworkSession::waitForOpened(int)
-	?staticMetaObject@QNetworkSessionPrivate@@2UQMetaObject@@B @ 1122 NONAME ; struct QMetaObject const QNetworkSessionPrivate::staticMetaObject
-	?staticMetaObject@QBearerEngine@@2UQMetaObject@@B @ 1123 NONAME ; struct QMetaObject const QBearerEngine::staticMetaObject
-	?staticMetaObject@QNetworkSession@@2UQMetaObject@@B @ 1124 NONAME ; struct QMetaObject const QNetworkSession::staticMetaObject
-	?staticMetaObject@QNetworkConfigurationManager@@2UQMetaObject@@B @ 1125 NONAME ; struct QMetaObject const QNetworkConfigurationManager::staticMetaObject
-	?staticMetaObject@QBearerEnginePlugin@@2UQMetaObject@@B @ 1126 NONAME ; struct QMetaObject const QBearerEnginePlugin::staticMetaObject
-	?staticMetaObject@QNetworkConfigurationManagerPrivate@@2UQMetaObject@@B @ 1127 NONAME ; struct QMetaObject const QNetworkConfigurationManagerPrivate::staticMetaObject
-	?allConfigurations@QNetworkConfigurationManagerPrivate@@QAE?AV?$QList@VQNetworkConfiguration@@@@V?$QFlags@W4StateFlag@QNetworkConfiguration@@@@@Z @ 1128 NONAME ; class QList<class QNetworkConfiguration> QNetworkConfigurationManagerPrivate::allConfigurations(class QFlags<enum QNetworkConfiguration::StateFlag>)
-	?configurationFromIdentifier@QNetworkConfigurationManagerPrivate@@QAE?AVQNetworkConfiguration@@ABVQString@@@Z @ 1129 NONAME ; class QNetworkConfiguration QNetworkConfigurationManagerPrivate::configurationFromIdentifier(class QString const &)
-	?configurationsInUse@QBearerEngine@@QBE_NXZ @ 1130 NONAME ; bool QBearerEngine::configurationsInUse(void) const
-	?defaultConfiguration@QNetworkConfigurationManagerPrivate@@QAE?AVQNetworkConfiguration@@XZ @ 1131 NONAME ; class QNetworkConfiguration QNetworkConfigurationManagerPrivate::defaultConfiguration(void)
-	?disablePolling@QNetworkConfigurationManagerPrivate@@QAEXXZ @ 1132 NONAME ; void QNetworkConfigurationManagerPrivate::disablePolling(void)
-	?enablePolling@QNetworkConfigurationManagerPrivate@@QAEXXZ @ 1133 NONAME ; void QNetworkConfigurationManagerPrivate::enablePolling(void)
-	?isOnline@QNetworkConfigurationManagerPrivate@@QAE_NXZ @ 1134 NONAME ; bool QNetworkConfigurationManagerPrivate::isOnline(void)
-	?networkAccessible@QNetworkAccessManager@@QBE?AW4NetworkAccessibility@1@XZ @ 1135 NONAME ; enum QNetworkAccessManager::NetworkAccessibility QNetworkAccessManager::networkAccessible(void) const
-	?networkAccessibleChanged@QNetworkAccessManager@@IAEXW4NetworkAccessibility@1@@Z @ 1136 NONAME ; void QNetworkAccessManager::networkAccessibleChanged(enum QNetworkAccessManager::NetworkAccessibility)
-	?networkSessionConnected@QNetworkAccessManager@@IAEXXZ @ 1137 NONAME ; void QNetworkAccessManager::networkSessionConnected(void)
-	?pollEngines@QNetworkConfigurationManagerPrivate@@AAEXXZ @ 1138 NONAME ; void QNetworkConfigurationManagerPrivate::pollEngines(void)
-	?qt_qhostinfo_clear_cache@@YAXXZ @ 1139 NONAME ABSENT ; void qt_qhostinfo_clear_cache(void)
-	?qt_qhostinfo_lookup@@YA?AVQHostInfo@@ABVQString@@PAVQObject@@PBDPA_NPAH@Z @ 1140 NONAME ; class QHostInfo qt_qhostinfo_lookup(class QString const &, class QObject *, char const *, bool *, int *)
-	?requiresPolling@QBearerEngine@@UBE_NXZ @ 1141 NONAME ; bool QBearerEngine::requiresPolling(void) const
+	?qt_qhostinfo_clear_cache@@YAXXZ @ 964 NONAME ABSENT ; void qt_qhostinfo_clear_cache(void)
+	?qt_qhostinfo_lookup@@YA?AVQHostInfo@@ABVQString@@PAVQObject@@PBDPA_NPAH@Z @ 965 NONAME ; class QHostInfo qt_qhostinfo_lookup(class QString const &, class QObject *, char const *, bool *, int *)
+	?rawHeaderPairs@QNetworkReply@@QBEABV?$QList@U?$QPair@VQByteArray@@V1@@@@@XZ @ 966 NONAME ; class QList<struct QPair<class QByteArray, class QByteArray> > const & QNetworkReply::rawHeaderPairs(void) const
+	?tr@QBearerEnginePlugin@@SA?AVQString@@PBD0H@Z @ 967 NONAME ; class QString QBearerEnginePlugin::tr(char const *, char const *, int)
+	?qt_metacall@QNetworkConfigurationManager@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 968 NONAME ; int QNetworkConfigurationManager::qt_metacall(enum QMetaObject::Call, int, void * *)
+	?configurationAdded@QNetworkConfigurationManagerPrivate@@AAEXV?$QExplicitlySharedDataPointer@VQNetworkConfigurationPrivate@@@@@Z @ 969 NONAME ; void QNetworkConfigurationManagerPrivate::configurationAdded(class QExplicitlySharedDataPointer<class QNetworkConfigurationPrivate>)
+	?metaObject@QNetworkConfigurationManagerPrivate@@UBEPBUQMetaObject@@XZ @ 970 NONAME ; struct QMetaObject const * QNetworkConfigurationManagerPrivate::metaObject(void) const
+	??1QBearerEngineFactoryInterface@@UAE@XZ @ 971 NONAME ; QBearerEngineFactoryInterface::~QBearerEngineFactoryInterface(void)
+	?setConfiguration@QNetworkAccessManager@@QAEXABVQNetworkConfiguration@@@Z @ 972 NONAME ; void QNetworkAccessManager::setConfiguration(class QNetworkConfiguration const &)
+	?identifier@QNetworkConfiguration@@QBE?AVQString@@XZ @ 973 NONAME ; class QString QNetworkConfiguration::identifier(void) const
+	??0QBearerEngine@@QAE@PAVQObject@@@Z @ 974 NONAME ; QBearerEngine::QBearerEngine(class QObject *)
+	?isRoamingAvailable@QNetworkConfiguration@@QBE_NXZ @ 975 NONAME ; bool QNetworkConfiguration::isRoamingAvailable(void) const
+	?quitPendingWaitsForOpened@QNetworkSessionPrivate@@IAEXXZ @ 976 NONAME ; void QNetworkSessionPrivate::quitPendingWaitsForOpened(void)
+	?trUtf8@QNetworkSessionPrivate@@SA?AVQString@@PBD0H@Z @ 977 NONAME ; class QString QNetworkSessionPrivate::trUtf8(char const *, char const *, int)
+	?setPrivateConfiguration@QNetworkSessionPrivate@@IBEXAAVQNetworkConfiguration@@V?$QExplicitlySharedDataPointer@VQNetworkConfigurationPrivate@@@@@Z @ 978 NONAME ; void QNetworkSessionPrivate::setPrivateConfiguration(class QNetworkConfiguration &, class QExplicitlySharedDataPointer<class QNetworkConfigurationPrivate>) const
+	?trUtf8@QNetworkConfigurationManager@@SA?AVQString@@PBD0H@Z @ 979 NONAME ; class QString QNetworkConfigurationManager::trUtf8(char const *, char const *, int)
+	?stateChanged@QNetworkSession@@IAEXW4State@1@@Z @ 980 NONAME ; void QNetworkSession::stateChanged(enum QNetworkSession::State)
+	??1QNetworkConfigurationManagerPrivate@@UAE@XZ @ 981 NONAME ; QNetworkConfigurationManagerPrivate::~QNetworkConfigurationManagerPrivate(void)
+	?getStaticMetaObject@QBearerEnginePlugin@@SAABUQMetaObject@@XZ @ 982 NONAME ; struct QMetaObject const & QBearerEnginePlugin::getStaticMetaObject(void)
+	?getStaticMetaObject@QNetworkConfigurationManagerPrivate@@SAABUQMetaObject@@XZ @ 983 NONAME ; struct QMetaObject const & QNetworkConfigurationManagerPrivate::getStaticMetaObject(void)
+	??_EQNetworkConfigurationManagerPrivate@@UAE@I@Z @ 984 NONAME ; QNetworkConfigurationManagerPrivate::~QNetworkConfigurationManagerPrivate(unsigned int)
+	?metaObject@QBearerEnginePlugin@@UBEPBUQMetaObject@@XZ @ 985 NONAME ; struct QMetaObject const * QBearerEnginePlugin::metaObject(void) const
+	??4QNetworkConfiguration@@QAEAAV0@ABV0@@Z @ 986 NONAME ; class QNetworkConfiguration & QNetworkConfiguration::operator=(class QNetworkConfiguration const &)
+	?metaObject@QBearerEngine@@UBEPBUQMetaObject@@XZ @ 987 NONAME ; struct QMetaObject const * QBearerEngine::metaObject(void) const
+	?getStaticMetaObject@QBearerEngine@@SAABUQMetaObject@@XZ @ 988 NONAME ; struct QMetaObject const & QBearerEngine::getStaticMetaObject(void)
+	?waitForOpened@QNetworkSession@@QAE_NH@Z @ 989 NONAME ; bool QNetworkSession::waitForOpened(int)
+	??_EQBearerEngine@@UAE@I@Z @ 990 NONAME ; QBearerEngine::~QBearerEngine(unsigned int)
+	?error@QNetworkSession@@IAEXW4SessionError@1@@Z @ 991 NONAME ; void QNetworkSession::error(enum QNetworkSession::SessionError)
+	?stop@QNetworkSession@@QAEXXZ @ 992 NONAME ; void QNetworkSession::stop(void)
+	?accept@QNetworkSession@@QAEXXZ @ 993 NONAME ; void QNetworkSession::accept(void)
+	?qNetworkConfigurationManagerPrivate@@YAPAVQNetworkConfigurationManagerPrivate@@XZ @ 994 NONAME ; class QNetworkConfigurationManagerPrivate * qNetworkConfigurationManagerPrivate(void)
+	?open@QNetworkSession@@QAEXXZ @ 995 NONAME ; void QNetworkSession::open(void)
+	?newConfigurationActivated@QNetworkSession@@IAEXXZ @ 996 NONAME ; void QNetworkSession::newConfigurationActivated(void)
+	?staticMetaObject@QNetworkSessionPrivate@@2UQMetaObject@@B @ 997 NONAME ; struct QMetaObject const QNetworkSessionPrivate::staticMetaObject
+	?error@QNetworkSession@@QBE?AW4SessionError@1@XZ @ 998 NONAME ; enum QNetworkSession::SessionError QNetworkSession::error(void) const
+	?qt_metacast@QBearerEngine@@UAEPAXPBD@Z @ 999 NONAME ; void * QBearerEngine::qt_metacast(char const *)
+	?staticMetaObject@QNetworkSession@@2UQMetaObject@@B @ 1000 NONAME ; struct QMetaObject const QNetworkSession::staticMetaObject
+	?trUtf8@QBearerEngine@@SA?AVQString@@PBD0@Z @ 1001 NONAME ; class QString QBearerEngine::trUtf8(char const *, char const *)
+	?privateConfiguration@QNetworkSessionPrivate@@IBE?AV?$QExplicitlySharedDataPointer@VQNetworkConfigurationPrivate@@@@ABVQNetworkConfiguration@@@Z @ 1002 NONAME ; class QExplicitlySharedDataPointer<class QNetworkConfigurationPrivate> QNetworkSessionPrivate::privateConfiguration(class QNetworkConfiguration const &) const
+	?isOnline@QNetworkConfigurationManagerPrivate@@QAE_NXZ @ 1003 NONAME ; bool QNetworkConfigurationManagerPrivate::isOnline(void)
+	?state@QNetworkConfiguration@@QBE?AV?$QFlags@W4StateFlag@QNetworkConfiguration@@@@XZ @ 1004 NONAME ; class QFlags<enum QNetworkConfiguration::StateFlag> QNetworkConfiguration::state(void) const
+	?configurationAdded@QNetworkConfigurationManagerPrivate@@IAEXABVQNetworkConfiguration@@@Z @ 1005 NONAME ; void QNetworkConfigurationManagerPrivate::configurationAdded(class QNetworkConfiguration const &)
+	?defaultConfiguration@QNetworkConfigurationManager@@QBE?AVQNetworkConfiguration@@XZ @ 1006 NONAME ; class QNetworkConfiguration QNetworkConfigurationManager::defaultConfiguration(void) const
+	?bytesReceived@QNetworkSession@@QBE_KXZ @ 1007 NONAME ; unsigned long long QNetworkSession::bytesReceived(void) const
+	?updateConfigurations@QNetworkConfigurationManagerPrivate@@QAEXXZ @ 1008 NONAME ; void QNetworkConfigurationManagerPrivate::updateConfigurations(void)
+	?errorString@QNetworkSession@@QBE?AVQString@@XZ @ 1009 NONAME ; class QString QNetworkSession::errorString(void) const
+	?tr@QNetworkSession@@SA?AVQString@@PBD0H@Z @ 1010 NONAME ; class QString QNetworkSession::tr(char const *, char const *, int)
+	??1QNetworkConfigurationManager@@UAE@XZ @ 1011 NONAME ; QNetworkConfigurationManager::~QNetworkConfigurationManager(void)
+	?isOpen@QNetworkSession@@QBE_NXZ @ 1012 NONAME ; bool QNetworkSession::isOpen(void) const
+	?configurationChanged@QNetworkConfigurationManager@@IAEXABVQNetworkConfiguration@@@Z @ 1013 NONAME ; void QNetworkConfigurationManager::configurationChanged(class QNetworkConfiguration const &)
+	?configurationChanged@QNetworkConfigurationManagerPrivate@@AAEXV?$QExplicitlySharedDataPointer@VQNetworkConfigurationPrivate@@@@@Z @ 1014 NONAME ; void QNetworkConfigurationManagerPrivate::configurationChanged(class QExplicitlySharedDataPointer<class QNetworkConfigurationPrivate>)
+	?configurationRemoved@QBearerEngine@@IAEXV?$QExplicitlySharedDataPointer@VQNetworkConfigurationPrivate@@@@@Z @ 1015 NONAME ; void QBearerEngine::configurationRemoved(class QExplicitlySharedDataPointer<class QNetworkConfigurationPrivate>)
+	?qt_metacall@QBearerEnginePlugin@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 1016 NONAME ; int QBearerEnginePlugin::qt_metacall(enum QMetaObject::Call, int, void * *)
+	??0QBearerEnginePlugin@@QAE@PAVQObject@@@Z @ 1017 NONAME ; QBearerEnginePlugin::QBearerEnginePlugin(class QObject *)
+	?trUtf8@QNetworkSession@@SA?AVQString@@PBD0@Z @ 1018 NONAME ; class QString QNetworkSession::trUtf8(char const *, char const *)
+	?metaObject@QNetworkSessionPrivate@@UBEPBUQMetaObject@@XZ @ 1019 NONAME ; struct QMetaObject const * QNetworkSessionPrivate::metaObject(void) const
+	??_EQNetworkConfigurationManager@@UAE@I@Z @ 1020 NONAME ; QNetworkConfigurationManager::~QNetworkConfigurationManager(unsigned int)
+	?trUtf8@QNetworkSessionPrivate@@SA?AVQString@@PBD0@Z @ 1021 NONAME ; class QString QNetworkSessionPrivate::trUtf8(char const *, char const *)
+	?bearerName@QNetworkConfiguration@@QBE?AVQString@@XZ @ 1022 NONAME ; class QString QNetworkConfiguration::bearerName(void) const
+	?trUtf8@QNetworkConfigurationManagerPrivate@@SA?AVQString@@PBD0H@Z @ 1023 NONAME ; class QString QNetworkConfigurationManagerPrivate::trUtf8(char const *, char const *, int)
+	?setSessionProperty@QNetworkSession@@QAEXABVQString@@ABVQVariant@@@Z @ 1024 NONAME ; void QNetworkSession::setSessionProperty(class QString const &, class QVariant const &)
+	?qt_metacall@QNetworkSession@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 1025 NONAME ; int QNetworkSession::qt_metacall(enum QMetaObject::Call, int, void * *)
+	?staticMetaObject@QBearerEngine@@2UQMetaObject@@B @ 1026 NONAME ; struct QMetaObject const QBearerEngine::staticMetaObject
+	?networkSessionConnected@QNetworkAccessManager@@IAEXXZ @ 1027 NONAME ; void QNetworkAccessManager::networkSessionConnected(void)
+	??1QBearerEngine@@UAE@XZ @ 1028 NONAME ; QBearerEngine::~QBearerEngine(void)
+	?capabilities@QNetworkConfigurationManagerPrivate@@QAE?AV?$QFlags@W4Capability@QNetworkConfigurationManager@@@@XZ @ 1029 NONAME ; class QFlags<enum QNetworkConfigurationManager::Capability> QNetworkConfigurationManagerPrivate::capabilities(void)
+	??1QNetworkConfiguration@@QAE@XZ @ 1030 NONAME ; QNetworkConfiguration::~QNetworkConfiguration(void)
+	??0QNetworkConfigurationManagerPrivate@@QAE@XZ @ 1031 NONAME ; QNetworkConfigurationManagerPrivate::QNetworkConfigurationManagerPrivate(void)
+	?preferredConfigurationChanged@QNetworkSession@@IAEXABVQNetworkConfiguration@@_N@Z @ 1032 NONAME ; void QNetworkSession::preferredConfigurationChanged(class QNetworkConfiguration const &, bool)
+	?isValid@QNetworkConfiguration@@QBE_NXZ @ 1033 NONAME ; bool QNetworkConfiguration::isValid(void) const
+	?configurationAdded@QBearerEngine@@IAEXV?$QExplicitlySharedDataPointer@VQNetworkConfigurationPrivate@@@@@Z @ 1034 NONAME ; void QBearerEngine::configurationAdded(class QExplicitlySharedDataPointer<class QNetworkConfigurationPrivate>)
+	??1QNetworkSession@@UAE@XZ @ 1035 NONAME ; QNetworkSession::~QNetworkSession(void)
+	?qt_metacast@QBearerEnginePlugin@@UAEPAXPBD@Z @ 1036 NONAME ; void * QBearerEnginePlugin::qt_metacast(char const *)
+	??0QNetworkSession@@QAE@ABVQNetworkConfiguration@@PAVQObject@@@Z @ 1037 NONAME ; QNetworkSession::QNetworkSession(class QNetworkConfiguration const &, class QObject *)
+	?error@QNetworkSessionPrivate@@IAEXW4SessionError@QNetworkSession@@@Z @ 1038 NONAME ; void QNetworkSessionPrivate::error(enum QNetworkSession::SessionError)
+	?name@QNetworkConfiguration@@QBE?AVQString@@XZ @ 1039 NONAME ; class QString QNetworkConfiguration::name(void) const
+	?close@QNetworkSession@@QAEXXZ @ 1040 NONAME ; void QNetworkSession::close(void)
+	?sessionProperty@QNetworkSession@@QBE?AVQVariant@@ABVQString@@@Z @ 1041 NONAME ; class QVariant QNetworkSession::sessionProperty(class QString const &) const
+	?engines@QNetworkConfigurationManagerPrivate@@QAE?AV?$QList@PAVQBearerEngine@@@@XZ @ 1042 NONAME ; class QList<class QBearerEngine *> QNetworkConfigurationManagerPrivate::engines(void)
+	?isOnline@QNetworkConfigurationManager@@QBE_NXZ @ 1043 NONAME ; bool QNetworkConfigurationManager::isOnline(void) const
+	?capabilities@QNetworkConfigurationManager@@QBE?AV?$QFlags@W4Capability@QNetworkConfigurationManager@@@@XZ @ 1044 NONAME ; class QFlags<enum QNetworkConfigurationManager::Capability> QNetworkConfigurationManager::capabilities(void) const
+	?configurationRemoved@QNetworkConfigurationManagerPrivate@@AAEXV?$QExplicitlySharedDataPointer@VQNetworkConfigurationPrivate@@@@@Z @ 1045 NONAME ; void QNetworkConfigurationManagerPrivate::configurationRemoved(class QExplicitlySharedDataPointer<class QNetworkConfigurationPrivate>)
+	??0QNetworkConfiguration@@QAE@ABV0@@Z @ 1046 NONAME ; QNetworkConfiguration::QNetworkConfiguration(class QNetworkConfiguration const &)
+	?setPriority@QNetworkRequest@@QAEXW4Priority@1@@Z @ 1047 NONAME ; void QNetworkRequest::setPriority(enum QNetworkRequest::Priority)
+	?disconnectNotify@QNetworkSession@@MAEXPBD@Z @ 1048 NONAME ; void QNetworkSession::disconnectNotify(char const *)
+	?metaObject@QNetworkSession@@UBEPBUQMetaObject@@XZ @ 1049 NONAME ; struct QMetaObject const * QNetworkSession::metaObject(void) const
+	?trUtf8@QBearerEngine@@SA?AVQString@@PBD0H@Z @ 1050 NONAME ; class QString QBearerEngine::trUtf8(char const *, char const *, int)
+	?configuration@QNetworkSession@@QBE?AVQNetworkConfiguration@@XZ @ 1051 NONAME ; class QNetworkConfiguration QNetworkSession::configuration(void) const
+	?closed@QNetworkSessionPrivate@@IAEXXZ @ 1052 NONAME ; void QNetworkSessionPrivate::closed(void)
+	??1QNetworkSessionPrivate@@UAE@XZ @ 1053 NONAME ; QNetworkSessionPrivate::~QNetworkSessionPrivate(void)
+	?staticMetaObject@QNetworkConfigurationManager@@2UQMetaObject@@B @ 1054 NONAME ; struct QMetaObject const QNetworkConfigurationManager::staticMetaObject
+	?tr@QNetworkConfigurationManager@@SA?AVQString@@PBD0H@Z @ 1055 NONAME ; class QString QNetworkConfigurationManager::tr(char const *, char const *, int)
+	?tr@QNetworkConfigurationManagerPrivate@@SA?AVQString@@PBD0H@Z @ 1056 NONAME ; class QString QNetworkConfigurationManagerPrivate::tr(char const *, char const *, int)
+	?configurationChanged@QBearerEngine@@IAEXV?$QExplicitlySharedDataPointer@VQNetworkConfigurationPrivate@@@@@Z @ 1057 NONAME ; void QBearerEngine::configurationChanged(class QExplicitlySharedDataPointer<class QNetworkConfigurationPrivate>)
+	?tr@QBearerEngine@@SA?AVQString@@PBD0@Z @ 1058 NONAME ; class QString QBearerEngine::tr(char const *, char const *)
+	??0QNetworkConfiguration@@QAE@XZ @ 1059 NONAME ; QNetworkConfiguration::QNetworkConfiguration(void)
+	?configurationRemoved@QNetworkConfigurationManager@@IAEXABVQNetworkConfiguration@@@Z @ 1060 NONAME ; void QNetworkConfigurationManager::configurationRemoved(class QNetworkConfiguration const &)
+	?preferredConfigurationChanged@QNetworkSessionPrivate@@IAEXABVQNetworkConfiguration@@_N@Z @ 1061 NONAME ; void QNetworkSessionPrivate::preferredConfigurationChanged(class QNetworkConfiguration const &, bool)
+	??1QBearerEnginePlugin@@UAE@XZ @ 1062 NONAME ; QBearerEnginePlugin::~QBearerEnginePlugin(void)
+	?tr@QNetworkSession@@SA?AVQString@@PBD0@Z @ 1063 NONAME ; class QString QNetworkSession::tr(char const *, char const *)
+	??0QNetworkConfigurationManager@@QAE@PAVQObject@@@Z @ 1064 NONAME ; QNetworkConfigurationManager::QNetworkConfigurationManager(class QObject *)
+	?qt_metacall@QNetworkConfigurationManagerPrivate@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 1065 NONAME ; int QNetworkConfigurationManagerPrivate::qt_metacall(enum QMetaObject::Call, int, void * *)
+	??_EQNetworkSession@@UAE@I@Z @ 1066 NONAME ; QNetworkSession::~QNetworkSession(unsigned int)
+	??9QNetworkConfiguration@@QBE_NABV0@@Z @ 1067 NONAME ; bool QNetworkConfiguration::operator!=(class QNetworkConfiguration const &) const
+	?configurationsInUse@QBearerEngine@@QBE_NXZ @ 1068 NONAME ; bool QBearerEngine::configurationsInUse(void) const
+	?tr@QBearerEngine@@SA?AVQString@@PBD0H@Z @ 1069 NONAME ; class QString QBearerEngine::tr(char const *, char const *, int)
+	?configuration@QNetworkAccessManager@@QBE?AVQNetworkConfiguration@@XZ @ 1070 NONAME ; class QNetworkConfiguration QNetworkAccessManager::configuration(void) const
+	?tr@QNetworkSessionPrivate@@SA?AVQString@@PBD0@Z @ 1071 NONAME ; class QString QNetworkSessionPrivate::tr(char const *, char const *)
+	?activeTime@QNetworkSession@@QBE_KXZ @ 1072 NONAME ; unsigned long long QNetworkSession::activeTime(void) const
+	?state@QNetworkSession@@QBE?AW4State@1@XZ @ 1073 NONAME ; enum QNetworkSession::State QNetworkSession::state(void) const
+	?disablePolling@QNetworkConfigurationManagerPrivate@@QAEXXZ @ 1074 NONAME ; void QNetworkConfigurationManagerPrivate::disablePolling(void)
+	?getStaticMetaObject@QNetworkSessionPrivate@@SAABUQMetaObject@@XZ @ 1075 NONAME ; struct QMetaObject const & QNetworkSessionPrivate::getStaticMetaObject(void)
+	?configurationAdded@QNetworkConfigurationManager@@IAEXABVQNetworkConfiguration@@@Z @ 1076 NONAME ; void QNetworkConfigurationManager::configurationAdded(class QNetworkConfiguration const &)
+	?tr@QNetworkSessionPrivate@@SA?AVQString@@PBD0H@Z @ 1077 NONAME ; class QString QNetworkSessionPrivate::tr(char const *, char const *, int)
+	?performAsyncConfigurationUpdate@QNetworkConfigurationManagerPrivate@@QAEXXZ @ 1078 NONAME ; void QNetworkConfigurationManagerPrivate::performAsyncConfigurationUpdate(void)
+	?trUtf8@QNetworkConfigurationManagerPrivate@@SA?AVQString@@PBD0@Z @ 1079 NONAME ; class QString QNetworkConfigurationManagerPrivate::trUtf8(char const *, char const *)
+	?networkAccessible@QNetworkAccessManager@@QBE?AW4NetworkAccessibility@1@XZ @ 1080 NONAME ; enum QNetworkAccessManager::NetworkAccessibility QNetworkAccessManager::networkAccessible(void) const
+	?setOption@QAuthenticator@@QAEXABVQString@@ABVQVariant@@@Z @ 1081 NONAME ; void QAuthenticator::setOption(class QString const &, class QVariant const &)
+	?trUtf8@QBearerEnginePlugin@@SA?AVQString@@PBD0H@Z @ 1082 NONAME ; class QString QBearerEnginePlugin::trUtf8(char const *, char const *, int)
+	?trUtf8@QNetworkConfigurationManager@@SA?AVQString@@PBD0@Z @ 1083 NONAME ; class QString QNetworkConfigurationManager::trUtf8(char const *, char const *)
+	?allConfigurations@QNetworkConfigurationManager@@QBE?AV?$QList@VQNetworkConfiguration@@@@V?$QFlags@W4StateFlag@QNetworkConfiguration@@@@@Z @ 1084 NONAME ; class QList<class QNetworkConfiguration> QNetworkConfigurationManager::allConfigurations(class QFlags<enum QNetworkConfiguration::StateFlag>) const
+	?requiresPolling@QBearerEngine@@UBE_NXZ @ 1085 NONAME ; bool QBearerEngine::requiresPolling(void) const
+	?priority@QNetworkRequest@@QBE?AW4Priority@1@XZ @ 1086 NONAME ; enum QNetworkRequest::Priority QNetworkRequest::priority(void) const
+	?networkAccessibleChanged@QNetworkAccessManager@@IAEXW4NetworkAccessibility@1@@Z @ 1087 NONAME ; void QNetworkAccessManager::networkAccessibleChanged(enum QNetworkAccessManager::NetworkAccessibility)
+	??8QNetworkConfiguration@@QBE_NABV0@@Z @ 1088 NONAME ; bool QNetworkConfiguration::operator==(class QNetworkConfiguration const &) const
+	?option@QAuthenticator@@QBE?AVQVariant@@ABVQString@@@Z @ 1089 NONAME ; class QVariant QAuthenticator::option(class QString const &) const
+	?tr@QBearerEnginePlugin@@SA?AVQString@@PBD0@Z @ 1090 NONAME ; class QString QBearerEnginePlugin::tr(char const *, char const *)
+	?configurationFromIdentifier@QNetworkConfigurationManager@@QBE?AVQNetworkConfiguration@@ABVQString@@@Z @ 1091 NONAME ; class QNetworkConfiguration QNetworkConfigurationManager::configurationFromIdentifier(class QString const &) const
+	??_EQBearerEnginePlugin@@UAE@I@Z @ 1092 NONAME ; QBearerEnginePlugin::~QBearerEnginePlugin(unsigned int)
+	?children@QNetworkConfiguration@@QBE?AV?$QList@VQNetworkConfiguration@@@@XZ @ 1093 NONAME ; class QList<class QNetworkConfiguration> QNetworkConfiguration::children(void) const
+	?activeConfiguration@QNetworkAccessManager@@QBE?AVQNetworkConfiguration@@XZ @ 1094 NONAME ; class QNetworkConfiguration QNetworkAccessManager::activeConfiguration(void) const
+	?defaultConfiguration@QNetworkConfigurationManagerPrivate@@QAE?AVQNetworkConfiguration@@XZ @ 1095 NONAME ; class QNetworkConfiguration QNetworkConfigurationManagerPrivate::defaultConfiguration(void)
+	?getStaticMetaObject@QNetworkSession@@SAABUQMetaObject@@XZ @ 1096 NONAME ; struct QMetaObject const & QNetworkSession::getStaticMetaObject(void)
+	?qt_metacast@QNetworkSession@@UAEPAXPBD@Z @ 1097 NONAME ; void * QNetworkSession::qt_metacast(char const *)
+	?updateCompleted@QBearerEngine@@IAEXXZ @ 1098 NONAME ; void QBearerEngine::updateCompleted(void)
+	?qt_metacall@QNetworkSessionPrivate@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 1099 NONAME ; int QNetworkSessionPrivate::qt_metacall(enum QMetaObject::Call, int, void * *)
+	?onlineStateChanged@QNetworkConfigurationManager@@IAEX_N@Z @ 1100 NONAME ; void QNetworkConfigurationManager::onlineStateChanged(bool)
+	?getStaticMetaObject@QNetworkConfigurationManager@@SAABUQMetaObject@@XZ @ 1101 NONAME ; struct QMetaObject const & QNetworkConfigurationManager::getStaticMetaObject(void)
+	??0QNetworkSessionPrivate@@QAE@XZ @ 1102 NONAME ; QNetworkSessionPrivate::QNetworkSessionPrivate(void)
+	?qt_metacast@QNetworkConfigurationManager@@UAEPAXPBD@Z @ 1103 NONAME ; void * QNetworkConfigurationManager::qt_metacast(char const *)
+	?configurationChanged@QNetworkConfigurationManagerPrivate@@IAEXABVQNetworkConfiguration@@@Z @ 1104 NONAME ; void QNetworkConfigurationManagerPrivate::configurationChanged(class QNetworkConfiguration const &)
+	?staticMetaObject@QBearerEnginePlugin@@2UQMetaObject@@B @ 1105 NONAME ; struct QMetaObject const QBearerEnginePlugin::staticMetaObject
+	?qt_metacast@QNetworkConfigurationManagerPrivate@@UAEPAXPBD@Z @ 1106 NONAME ; void * QNetworkConfigurationManagerPrivate::qt_metacast(char const *)
+	?newConfigurationActivated@QNetworkSessionPrivate@@IAEXXZ @ 1107 NONAME ; void QNetworkSessionPrivate::newConfigurationActivated(void)
+	?qt_metacast@QNetworkSessionPrivate@@UAEPAXPBD@Z @ 1108 NONAME ; void * QNetworkSessionPrivate::qt_metacast(char const *)
+	?startPolling@QNetworkConfigurationManagerPrivate@@QAEXXZ @ 1109 NONAME ; void QNetworkConfigurationManagerPrivate::startPolling(void)
+	?allConfigurations@QNetworkConfigurationManagerPrivate@@QAE?AV?$QList@VQNetworkConfiguration@@@@V?$QFlags@W4StateFlag@QNetworkConfiguration@@@@@Z @ 1110 NONAME ; class QList<class QNetworkConfiguration> QNetworkConfigurationManagerPrivate::allConfigurations(class QFlags<enum QNetworkConfiguration::StateFlag>)
+	?connectNotify@QNetworkSession@@MAEXPBD@Z @ 1111 NONAME ; void QNetworkSession::connectNotify(char const *)
+	?onlineStateChanged@QNetworkConfigurationManagerPrivate@@IAEX_N@Z @ 1112 NONAME ; void QNetworkConfigurationManagerPrivate::onlineStateChanged(bool)
+	?bytesWritten@QNetworkSession@@QBE_KXZ @ 1113 NONAME ; unsigned long long QNetworkSession::bytesWritten(void) const
+	?sendCustomRequest@QNetworkAccessManager@@QAEPAVQNetworkReply@@ABVQNetworkRequest@@ABVQByteArray@@PAVQIODevice@@@Z @ 1114 NONAME ; class QNetworkReply * QNetworkAccessManager::sendCustomRequest(class QNetworkRequest const &, class QByteArray const &, class QIODevice *)
+	?addPendingConnection@QTcpServer@@IAEXPAVQTcpSocket@@@Z @ 1115 NONAME ; void QTcpServer::addPendingConnection(class QTcpSocket *)
+	?ignore@QNetworkSession@@QAEXXZ @ 1116 NONAME ; void QNetworkSession::ignore(void)
+	?updateConfigurations@QNetworkConfigurationManager@@QAEXXZ @ 1117 NONAME ; void QNetworkConfigurationManager::updateConfigurations(void)
+	?stateChanged@QNetworkSessionPrivate@@IAEXW4State@QNetworkSession@@@Z @ 1118 NONAME ; void QNetworkSessionPrivate::stateChanged(enum QNetworkSession::State)
+	?setALREnabled@QNetworkSessionPrivate@@UAEX_N@Z @ 1119 NONAME ; void QNetworkSessionPrivate::setALREnabled(bool)
+	?configurationRemoved@QNetworkConfigurationManagerPrivate@@IAEXABVQNetworkConfiguration@@@Z @ 1120 NONAME ; void QNetworkConfigurationManagerPrivate::configurationRemoved(class QNetworkConfiguration const &)
+	?qt_metacall@QBearerEngine@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 1121 NONAME ; int QBearerEngine::qt_metacall(enum QMetaObject::Call, int, void * *)
+	?interface@QNetworkSession@@QBE?AVQNetworkInterface@@XZ @ 1122 NONAME ; class QNetworkInterface QNetworkSession::interface(void) const
+	?opened@QNetworkSession@@IAEXXZ @ 1123 NONAME ; void QNetworkSession::opened(void)
+	?type@QNetworkConfiguration@@QBE?AW4Type@1@XZ @ 1124 NONAME ; enum QNetworkConfiguration::Type QNetworkConfiguration::type(void) const
+	?migrate@QNetworkSession@@QAEXXZ @ 1125 NONAME ; void QNetworkSession::migrate(void)
+	?closed@QNetworkSession@@IAEXXZ @ 1126 NONAME ; void QNetworkSession::closed(void)
+	?pollEngines@QNetworkConfigurationManagerPrivate@@AAEXXZ @ 1127 NONAME ; void QNetworkConfigurationManagerPrivate::pollEngines(void)
+	?staticMetaObject@QNetworkConfigurationManagerPrivate@@2UQMetaObject@@B @ 1128 NONAME ; struct QMetaObject const QNetworkConfigurationManagerPrivate::staticMetaObject
+	?reject@QNetworkSession@@QAEXXZ @ 1129 NONAME ; void QNetworkSession::reject(void)
+	?options@QAuthenticator@@QBE?AV?$QHash@VQString@@VQVariant@@@@XZ @ 1130 NONAME ; class QHash<class QString, class QVariant> QAuthenticator::options(void) const
+	?purpose@QNetworkConfiguration@@QBE?AW4Purpose@1@XZ @ 1131 NONAME ; enum QNetworkConfiguration::Purpose QNetworkConfiguration::purpose(void) const
+	?configurationFromIdentifier@QNetworkConfigurationManagerPrivate@@QAE?AVQNetworkConfiguration@@ABVQString@@@Z @ 1132 NONAME ; class QNetworkConfiguration QNetworkConfigurationManagerPrivate::configurationFromIdentifier(class QString const &)
+	?abort@QNetworkConfigurationManagerPrivate@@IAEXXZ @ 1133 NONAME ; void QNetworkConfigurationManagerPrivate::abort(void)
+	?tr@QNetworkConfigurationManager@@SA?AVQString@@PBD0@Z @ 1134 NONAME ; class QString QNetworkConfigurationManager::tr(char const *, char const *)
+	?trUtf8@QNetworkSession@@SA?AVQString@@PBD0H@Z @ 1135 NONAME ; class QString QNetworkSession::trUtf8(char const *, char const *, int)
+	?trUtf8@QBearerEnginePlugin@@SA?AVQString@@PBD0@Z @ 1136 NONAME ; class QString QBearerEnginePlugin::trUtf8(char const *, char const *)
+	??_EQNetworkSessionPrivate@@UAE@I@Z @ 1137 NONAME ; QNetworkSessionPrivate::~QNetworkSessionPrivate(unsigned int)
+	?configurationUpdateComplete@QNetworkConfigurationManagerPrivate@@IAEXXZ @ 1138 NONAME ; void QNetworkConfigurationManagerPrivate::configurationUpdateComplete(void)
+	?metaObject@QNetworkConfigurationManager@@UBEPBUQMetaObject@@XZ @ 1139 NONAME ; struct QMetaObject const * QNetworkConfigurationManager::metaObject(void) const
+	?tr@QNetworkConfigurationManagerPrivate@@SA?AVQString@@PBD0@Z @ 1140 NONAME ; class QString QNetworkConfigurationManagerPrivate::tr(char const *, char const *)
+	?updateCompleted@QNetworkConfigurationManager@@IAEXXZ @ 1141 NONAME ; void QNetworkConfigurationManager::updateCompleted(void)
 	?setNetworkAccessible@QNetworkAccessManager@@QAEXW4NetworkAccessibility@1@@Z @ 1142 NONAME ; void QNetworkAccessManager::setNetworkAccessible(enum QNetworkAccessManager::NetworkAccessibility)
-	?startPolling@QNetworkConfigurationManagerPrivate@@QAEXXZ @ 1143 NONAME ; void QNetworkConfigurationManagerPrivate::startPolling(void)
-	?capabilities@QNetworkConfigurationManagerPrivate@@QAE?AV?$QFlags@W4Capability@QNetworkConfigurationManager@@@@XZ @ 1144 NONAME ; class QFlags<enum QNetworkConfigurationManager::Capability> QNetworkConfigurationManagerPrivate::capabilities(void)
-	?addPendingConnection@QTcpServer@@IAEXPAVQTcpSocket@@@Z @ 1145 NONAME ; void QTcpServer::addPendingConnection(class QTcpSocket *)
-	?setOption@QAuthenticator@@QAEXABVQString@@ABVQVariant@@@Z @ 1146 NONAME ; void QAuthenticator::setOption(class QString const &, class QVariant const &)
-	?option@QAuthenticator@@QBE?AVQVariant@@ABVQString@@@Z @ 1147 NONAME ; class QVariant QAuthenticator::option(class QString const &) const
-	?options@QAuthenticator@@QBE?AV?$QHash@VQString@@VQVariant@@@@XZ @ 1148 NONAME ; class QHash<class QString, class QVariant> QAuthenticator::options(void) const
+	??_EQBearerEngineFactoryInterface@@UAE@I@Z @ 1143 NONAME ; QBearerEngineFactoryInterface::~QBearerEngineFactoryInterface(unsigned int)
+	?enablePolling@QNetworkConfigurationManagerPrivate@@QAEXXZ @ 1144 NONAME ; void QNetworkConfigurationManagerPrivate::enablePolling(void)
+	?bearerTypeName@QNetworkConfiguration@@QBE?AVQString@@XZ @ 1145 NONAME ; class QString QNetworkConfiguration::bearerTypeName(void) const
+	?bearerType@QNetworkConfiguration@@QBE?AW4BearerType@1@XZ @ 1146 NONAME ; enum QNetworkConfiguration::BearerType QNetworkConfiguration::bearerType(void) const
 
--- a/src/s60installs/bwins/QtOpenVGu.def	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/s60installs/bwins/QtOpenVGu.def	Mon Oct 04 01:19:32 2010 +0300
@@ -164,12 +164,11 @@
 	?qt_vg_create_context@@YAPAVQEglContext@@PAVQPaintDevice@@H@Z @ 163 NONAME ; class QEglContext * qt_vg_create_context(class QPaintDevice *, int)
 	?reclaimImages@QVGPixmapData@@UAEXXZ @ 164 NONAME ; void QVGPixmapData::reclaimImages(void)
 	?hibernate@QVGPixmapData@@UAEXXZ @ 165 NONAME ; void QVGPixmapData::hibernate(void)
-	?drawStaticTextItem@QVGPaintEngine@@UAEXPAVQStaticTextItem@@@Z @ 166 NONAME ; void QVGPaintEngine::drawStaticTextItem(class QStaticTextItem *)
-	?drawPixmapFragments@QVGPaintEngine@@UAEXPBVPixmapFragment@QPainter@@HABVQPixmap@@V?$QFlags@W4PixmapFragmentHint@QPainter@@@@@Z @ 167 NONAME ; void QVGPaintEngine::drawPixmapFragments(class QPainter::PixmapFragment const *, int, class QPixmap const &, class QFlags<enum QPainter::PixmapFragmentHint>)
-	?drawCachedGlyphs@QVGPaintEngine@@QAE_NHPBIABVQFont@@PAVQFontEngine@@ABVQPointF@@@Z @ 168 NONAME ABSENT ; bool QVGPaintEngine::drawCachedGlyphs(int, unsigned int const *, class QFont const &, class QFontEngine *, class QPointF const &)
-	?supportsStaticContents@QVGEGLWindowSurfaceDirect@@UBE_NXZ @ 169 NONAME ; bool QVGEGLWindowSurfaceDirect::supportsStaticContents(void) const
-	?scroll@QVGEGLWindowSurfacePrivate@@UAE_NPAVQWidget@@ABVQRegion@@HH@Z @ 170 NONAME ; bool QVGEGLWindowSurfacePrivate::scroll(class QWidget *, class QRegion const &, int, int)
-	?scroll@QVGEGLWindowSurfaceDirect@@UAE_NPAVQWidget@@ABVQRegion@@HH@Z @ 171 NONAME ; bool QVGEGLWindowSurfaceDirect::scroll(class QWidget *, class QRegion const &, int, int)
-	?supportsStaticContents@QVGEGLWindowSurfacePrivate@@UBE_NXZ @ 172 NONAME ; bool QVGEGLWindowSurfacePrivate::supportsStaticContents(void) const
-	?drawCachedGlyphs@QVGPaintEngine@@QAE_NHPBIABVQFont@@PAVQFontEngine@@ABVQPointF@@PBUQFixedPoint@@@Z @ 173 NONAME ; bool QVGPaintEngine::drawCachedGlyphs(int, unsigned int const *, class QFont const &, class QFontEngine *, class QPointF const &, struct QFixedPoint const *)
+	?supportsStaticContents@QVGEGLWindowSurfaceDirect@@UBE_NXZ @ 166 NONAME ; bool QVGEGLWindowSurfaceDirect::supportsStaticContents(void) const
+	?scroll@QVGEGLWindowSurfacePrivate@@UAE_NPAVQWidget@@ABVQRegion@@HH@Z @ 167 NONAME ; bool QVGEGLWindowSurfacePrivate::scroll(class QWidget *, class QRegion const &, int, int)
+	?scroll@QVGEGLWindowSurfaceDirect@@UAE_NPAVQWidget@@ABVQRegion@@HH@Z @ 168 NONAME ; bool QVGEGLWindowSurfaceDirect::scroll(class QWidget *, class QRegion const &, int, int)
+	?supportsStaticContents@QVGEGLWindowSurfacePrivate@@UBE_NXZ @ 169 NONAME ; bool QVGEGLWindowSurfacePrivate::supportsStaticContents(void) const
+	?drawCachedGlyphs@QVGPaintEngine@@QAE_NHPBIABVQFont@@PAVQFontEngine@@ABVQPointF@@PBUQFixedPoint@@@Z @ 170 NONAME ; bool QVGPaintEngine::drawCachedGlyphs(int, unsigned int const *, class QFont const &, class QFontEngine *, class QPointF const &, struct QFixedPoint const *)
+	?drawPixmapFragments@QVGPaintEngine@@UAEXPBVPixmapFragment@QPainter@@HABVQPixmap@@V?$QFlags@W4PixmapFragmentHint@QPainter@@@@@Z @ 171 NONAME ; void QVGPaintEngine::drawPixmapFragments(class QPainter::PixmapFragment const *, int, class QPixmap const &, class QFlags<enum QPainter::PixmapFragmentHint>)
+	?drawStaticTextItem@QVGPaintEngine@@UAEXPAVQStaticTextItem@@@Z @ 172 NONAME ; void QVGPaintEngine::drawStaticTextItem(class QStaticTextItem *)
 
--- a/src/s60installs/deviceconfiguration/bld.inf	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/s60installs/deviceconfiguration/bld.inf	Mon Oct 04 01:19:32 2010 +0300
@@ -38,6 +38,15 @@
 ../../../content/apps/qt.sisx               CRML_EXPORT_PATH(../content/sis/,uda_content)
 ../../../content/apps/qt_stub.sis          /epoc32/data/z/system/install/qt_stub.sis
 
+//tools
+../../../bin/createpackage.bat         /epoc32/tools/createpackage.bat
+../../../bin/createpackage.pl          /epoc32/tools/createpackage.pl
+../../../bin/patch_capabilities.bat    /epoc32/tools/patch_capabilities.bat
+../../../bin/patch_capabilities.pl     /epoc32/tools/patch_capabilities.pl
+
+
+
+
 PRJ_MMPFILES
 
 
@@ -47,5 +56,9 @@
 PRJ_EXTENSIONS
 START EXTENSION qt/qtconfig
 OPTION QT_ROOT ..
+#ifdef SYMBIAN_GRAPHICS_WSERV_QT_EFFECTS /* Flag for 10.1 */
 OPTION OPTIONS -opensource -confirm-license -openvg -script -no-scripttools -no-webkit -make make -graphicssystem openvg -no-phonon-backend -usedeffiles -dont-process -nomake examples -nomake demos -nomake tools
-END
+#else
+OPTION OPTIONS -opensource -confirm-license -openvg -script -no-scripttools -no-webkit -make make -graphicssystem openvg -no-phonon-backend -usedeffiles -dont-process -nomake examples -nomake demos -nomake tools
+#endif
+END
\ No newline at end of file
--- a/src/s60installs/eabi/QtCoreu.def	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/s60installs/eabi/QtCoreu.def	Mon Oct 04 01:19:32 2010 +0300
@@ -3652,65 +3652,63 @@
 	_Z40QBasicAtomicPointer_fetchAndStoreAcquirePVPvS_ @ 3651 NONAME
 	_Z40QBasicAtomicPointer_fetchAndStoreRelaxedPVPvS_ @ 3652 NONAME
 	_Z40QBasicAtomicPointer_fetchAndStoreReleasePVPvS_ @ 3653 NONAME
-	_Z14qDecodeDataUrlRK4QUrl @ 3654 NONAME
-	_Z18qDetectCPUFeaturesv @ 3655 NONAME
-	_ZN10QByteArray7replaceEiiPKci @ 3656 NONAME
-	_ZN12QTextDecoderC1EPK10QTextCodec6QFlagsINS0_14ConversionFlagEE @ 3657 NONAME
-	_ZN12QTextDecoderC2EPK10QTextCodec6QFlagsINS0_14ConversionFlagEE @ 3658 NONAME
-	_ZN12QTextEncoderC1EPK10QTextCodec6QFlagsINS0_14ConversionFlagEE @ 3659 NONAME
-	_ZN12QTextEncoderC2EPK10QTextCodec6QFlagsINS0_14ConversionFlagEE @ 3660 NONAME
-	_ZN13QElapsedTimer10invalidateEv @ 3661 NONAME
-	_ZN13QElapsedTimer11isMonotonicEv @ 3662 NONAME
-	_ZN13QElapsedTimer5startEv @ 3663 NONAME
-	_ZN13QElapsedTimer7restartEv @ 3664 NONAME
-	_ZN13QElapsedTimer9clockTypeEv @ 3665 NONAME
-	_ZN20QStateMachinePrivate12clearHistoryEv @ 3666 NONAME
-	_ZN7QStringC1EPK5QChar @ 3667 NONAME
-	_ZN7QStringC2EPK5QChar @ 3668 NONAME
-	_ZN8QVariantC1ERK12QEasingCurve @ 3669 NONAME
-	_ZN8QVariantC2ERK12QEasingCurve @ 3670 NONAME
-	_ZN9QDateTime18currentDateTimeUtcEv @ 3671 NONAME
-	_ZN9QDateTime22currentMSecsSinceEpochEv @ 3672 NONAME
-	_ZN9QListData11detach_growEPii @ 3673 NONAME
-	_ZN9QListData6appendEi @ 3674 NONAME
-	_ZN9QListData6detachEi @ 3675 NONAME
-	_ZN9QMetaType15registerTypedefEPKci @ 3676 NONAME
-	_ZN9QMetaType23registerStreamOperatorsEiPFvR11QDataStreamPKvEPFvS1_PvE @ 3677 NONAME
-	_ZNK10QTextCodec11makeDecoderE6QFlagsINS_14ConversionFlagEE @ 3678 NONAME
-	_ZNK10QTextCodec11makeEncoderE6QFlagsINS_14ConversionFlagEE @ 3679 NONAME
-	_ZNK13QElapsedTimer10hasExpiredEx @ 3680 NONAME
-	_ZNK13QElapsedTimer19msecsSinceReferenceEv @ 3681 NONAME
-	_ZNK13QElapsedTimer6secsToERKS_ @ 3682 NONAME
-	_ZNK13QElapsedTimer7elapsedEv @ 3683 NONAME
-	_ZNK13QElapsedTimer7isValidEv @ 3684 NONAME
-	_ZNK13QElapsedTimer7msecsToERKS_ @ 3685 NONAME
-	_ZNK6QState11transitionsEv @ 3686 NONAME
-	_ZNK8QVariant13toEasingCurveEv @ 3687 NONAME
-	_ZlsR11QDataStreamRK12QEasingCurve @ 3688 NONAME
-	_ZltRK13QElapsedTimerS1_ @ 3689 NONAME
-	_ZrsR11QDataStreamR12QEasingCurve @ 3690 NONAME
-	_ZN9QDateTime18setMSecsSinceEpochEx @ 3691 NONAME
-	_ZN9QDateTime19fromMSecsSinceEpochEx @ 3692 NONAME
-	_ZNK9QDateTime17toMSecsSinceEpochEv @ 3693 NONAME
-	_ZN10QTextCodec11validCodecsEv @ 3694 NONAME
-	_ZN16QDeclarativeData13parentChangedE @ 3695 NONAME DATA 4 ABSENT
-	_ZN16QDeclarativeData9destroyedE @ 3696 NONAME DATA 4 ABSENT
-	_ZN24QAbstractDeclarativeData13parentChangedE @ 3697 NONAME DATA 4
-	_ZN24QAbstractDeclarativeData9destroyedE @ 3698 NONAME DATA 4
-	_ZN23QEventDispatcherSymbian12selectThreadEv @ 3699 NONAME
-	_ZN10QByteArray10setRawDataEPKcj @ 3700 NONAME
-	_ZN7QString10setRawDataEPK5QChari @ 3701 NONAME
-	_ZN23QCoreApplicationPrivate11symbianInitEv @ 3702 NONAME
-	_ZN23QEventDispatcherSymbian11qt_metacallEN11QMetaObject4CallEiPPv @ 3703 NONAME
-	_ZN23QEventDispatcherSymbian11qt_metacastEPKc @ 3704 NONAME
-	_ZN23QEventDispatcherSymbian16staticMetaObjectE @ 3705 NONAME DATA 16
-	_ZN23QEventDispatcherSymbian19getStaticMetaObjectEv @ 3706 NONAME
-	_ZNK23QEventDispatcherSymbian10metaObjectEv @ 3707 NONAME
-	_ZNK9QDateTime7msecsToERKS_ @ 3708 NONAME
-	_ZNK7QLocale13textDirectionEv @ 3709 NONAME
-	_ZNK7QString13isRightToLeftEv @ 3710 NONAME
-	_ZN16QIODevicePrivate4peekEPcx @ 3711 NONAME
-	_ZN16QIODevicePrivate4peekEx @ 3712 NONAME
-	_ZN8QProcess18setNativeArgumentsERK7QString @ 3713 NONAME
-	_ZNK8QProcess15nativeArgumentsEv @ 3714 NONAME
+	_ZN10QTextCodec11validCodecsEv @ 3654 NONAME
+	_ZN20QStateMachinePrivate12clearHistoryEv @ 3655 NONAME
+	_Z14qDecodeDataUrlRK4QUrl @ 3656 NONAME
+	_Z18qDetectCPUFeaturesv @ 3657 NONAME
+	_ZN10QByteArray10setRawDataEPKcj @ 3658 NONAME
+	_ZN10QByteArray7replaceEiiPKci @ 3659 NONAME
+	_ZN12QTextDecoderC1EPK10QTextCodec6QFlagsINS0_14ConversionFlagEE @ 3660 NONAME
+	_ZN12QTextDecoderC2EPK10QTextCodec6QFlagsINS0_14ConversionFlagEE @ 3661 NONAME
+	_ZN12QTextEncoderC1EPK10QTextCodec6QFlagsINS0_14ConversionFlagEE @ 3662 NONAME
+	_ZN12QTextEncoderC2EPK10QTextCodec6QFlagsINS0_14ConversionFlagEE @ 3663 NONAME
+	_ZN13QElapsedTimer10invalidateEv @ 3664 NONAME
+	_ZN13QElapsedTimer11isMonotonicEv @ 3665 NONAME
+	_ZN13QElapsedTimer5startEv @ 3666 NONAME
+	_ZN13QElapsedTimer7restartEv @ 3667 NONAME
+	_ZN13QElapsedTimer9clockTypeEv @ 3668 NONAME
+	_ZN23QCoreApplicationPrivate11symbianInitEv @ 3669 NONAME
+	_ZN23QEventDispatcherSymbian11qt_metacallEN11QMetaObject4CallEiPPv @ 3670 NONAME
+	_ZN23QEventDispatcherSymbian11qt_metacastEPKc @ 3671 NONAME
+	_ZN23QEventDispatcherSymbian12selectThreadEv @ 3672 NONAME
+	_ZN23QEventDispatcherSymbian16staticMetaObjectE @ 3673 NONAME DATA 16
+	_ZN23QEventDispatcherSymbian19getStaticMetaObjectEv @ 3674 NONAME
+	_ZN24QAbstractDeclarativeData13parentChangedE @ 3675 NONAME DATA 4
+	_ZN24QAbstractDeclarativeData9destroyedE @ 3676 NONAME DATA 4
+	_ZN7QString10setRawDataEPK5QChari @ 3677 NONAME
+	_ZN7QStringC1EPK5QChar @ 3678 NONAME
+	_ZN7QStringC2EPK5QChar @ 3679 NONAME
+	_ZN8QVariantC1ERK12QEasingCurve @ 3680 NONAME
+	_ZN8QVariantC2ERK12QEasingCurve @ 3681 NONAME
+	_ZN9QDateTime18currentDateTimeUtcEv @ 3682 NONAME
+	_ZN9QDateTime18setMSecsSinceEpochEx @ 3683 NONAME
+	_ZN9QDateTime19fromMSecsSinceEpochEx @ 3684 NONAME
+	_ZN9QDateTime22currentMSecsSinceEpochEv @ 3685 NONAME
+	_ZN9QListData11detach_growEPii @ 3686 NONAME
+	_ZN9QListData6appendEi @ 3687 NONAME
+	_ZN9QListData6detachEi @ 3688 NONAME
+	_ZN9QMetaType15registerTypedefEPKci @ 3689 NONAME
+	_ZN9QMetaType23registerStreamOperatorsEiPFvR11QDataStreamPKvEPFvS1_PvE @ 3690 NONAME
+	_ZNK10QTextCodec11makeDecoderE6QFlagsINS_14ConversionFlagEE @ 3691 NONAME
+	_ZNK10QTextCodec11makeEncoderE6QFlagsINS_14ConversionFlagEE @ 3692 NONAME
+	_ZNK13QElapsedTimer10hasExpiredEx @ 3693 NONAME
+	_ZNK13QElapsedTimer19msecsSinceReferenceEv @ 3694 NONAME
+	_ZNK13QElapsedTimer6secsToERKS_ @ 3695 NONAME
+	_ZNK13QElapsedTimer7elapsedEv @ 3696 NONAME
+	_ZNK13QElapsedTimer7isValidEv @ 3697 NONAME
+	_ZNK13QElapsedTimer7msecsToERKS_ @ 3698 NONAME
+	_ZNK23QEventDispatcherSymbian10metaObjectEv @ 3699 NONAME
+	_ZNK6QState11transitionsEv @ 3700 NONAME
+	_ZNK8QVariant13toEasingCurveEv @ 3701 NONAME
+	_ZNK9QDateTime17toMSecsSinceEpochEv @ 3702 NONAME
+	_ZNK9QDateTime7msecsToERKS_ @ 3703 NONAME
+	_ZlsR11QDataStreamRK12QEasingCurve @ 3704 NONAME
+	_ZltRK13QElapsedTimerS1_ @ 3705 NONAME
+	_ZrsR11QDataStreamR12QEasingCurve @ 3706 NONAME
+	_ZNK7QLocale13textDirectionEv @ 3707 NONAME
+	_ZNK7QString13isRightToLeftEv @ 3708 NONAME
+	_ZN16QIODevicePrivate4peekEPcx @ 3709 NONAME
+	_ZN16QIODevicePrivate4peekEx @ 3710 NONAME
+	_ZN8QProcess18setNativeArgumentsERK7QString @ 3711 NONAME
+	_ZNK8QProcess15nativeArgumentsEv @ 3712 NONAME
 
--- a/src/s60installs/eabi/QtDeclarativeu.def	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/s60installs/eabi/QtDeclarativeu.def	Mon Oct 04 01:19:32 2010 +0300
@@ -1706,13 +1706,13 @@
 	_ZN25QDeclarativeImageProviderC1ENS_9ImageTypeE @ 1705 NONAME
 	_ZN25QDeclarativeImageProviderC2ENS_9ImageTypeE @ 1706 NONAME
 	_ZNK25QDeclarativeImageProvider9imageTypeEv @ 1707 NONAME
-	_ZN16QDeclarativeItem16forceActiveFocusEv @ 1708 NONAME
-	_ZN16QDeclarativeItem18activeFocusChangedEb @ 1709 NONAME
-	_ZN19QDeclarativePrivate11qmlregisterENS_16RegistrationTypeEPv @ 1710 NONAME
-	_ZN23QDeclarativeEngineDebug21resetBindingForObjectEiRK7QString @ 1711 NONAME
-	_ZNK16QDeclarativeItem14hasActiveFocusEv @ 1712 NONAME
-	_ZNK16QDeclarativeView11rootContextEv @ 1713 NONAME
-	_ZNK16QDeclarativeView6engineEv @ 1714 NONAME
-	_ZNK18QDeclarativeEngine11rootContextEv @ 1715 NONAME
-	_Z12registerTypeRKN19QDeclarativePrivate12RegisterTypeE @ 1716 NONAME
+	_ZN23QDeclarativeEngineDebug21resetBindingForObjectEiRK7QString @ 1708 NONAME
+	_ZN16QDeclarativeItem16forceActiveFocusEv @ 1709 NONAME
+	_ZN16QDeclarativeItem18activeFocusChangedEb @ 1710 NONAME
+	_ZNK16QDeclarativeItem14hasActiveFocusEv @ 1711 NONAME
+	_ZNK16QDeclarativeView11rootContextEv @ 1712 NONAME
+	_ZNK16QDeclarativeView6engineEv @ 1713 NONAME
+	_ZNK18QDeclarativeEngine11rootContextEv @ 1714 NONAME
+	_ZN19QDeclarativePrivate11qmlregisterENS_16RegistrationTypeEPv @ 1715 NONAME
+	_ZNK26QDeclarativeOpenMetaObject8hasValueEi @ 1716 NONAME
 
--- a/src/s60installs/eabi/QtGuiu.def	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/s60installs/eabi/QtGuiu.def	Mon Oct 04 01:19:32 2010 +0300
@@ -4294,7 +4294,7 @@
 	_ZN19QApplicationPrivate13animate_comboE @ 4293 NONAME DATA 1
 	_ZN19QApplicationPrivate13mouse_buttonsE @ 4294 NONAME DATA 4
 	_ZN19QApplicationPrivate13notify_helperEP7QObjectP6QEvent @ 4295 NONAME
-	_ZN19QApplicationPrivate13scanCodeCacheE @ 4296 NONAME DATA 4
+	_ZN19QApplicationPrivate13scanCodeCacheE @ 4296 NONAME DATA 4 ABSENT
 	_ZN19QApplicationPrivate13setSystemFontERK5QFont @ 4297 NONAME
 	_ZN19QApplicationPrivate13styleOverrideE @ 4298 NONAME DATA 4
 	_ZN19QApplicationPrivate14autoSipEnabledE @ 4299 NONAME DATA 1
@@ -5957,7 +5957,7 @@
 	_ZN7QDialog16staticMetaObjectE @ 5956 NONAME DATA 16
 	_ZN7QDialog18setSizeGripEnabledEb @ 5957 NONAME
 	_ZN7QDialog19getStaticMetaObjectEv @ 5958 NONAME
-	_ZN7QDialog19s60AdjustedPositionEv @ 5959 NONAME ABSENT
+	_ZN7QDialog23symbianAdjustedPositionEv @ 5959 NONAME
 	_ZN7QDialog4doneEi @ 5960 NONAME
 	_ZN7QDialog4execEv @ 5961 NONAME
 	_ZN7QDialog4openEv @ 5962 NONAME
@@ -11805,294 +11805,291 @@
 	_ZN24QImagePixmapCleanupHooks34executePixmapDataModificationHooksEP11QPixmapData @ 11804 NONAME
 	_ZN9QS60Style10timerEventEP11QTimerEvent @ 11805 NONAME
 	_ZN9QS60Style11eventFilterEP7QObjectP6QEvent @ 11806 NONAME
-	_ZN13QFontDatabase25removeAllApplicationFontsEv @ 11807 NONAME
-	_ZN10QZipReader5closeEv @ 11808 NONAME
-	_ZN10QZipReader8FileInfoC1ERKS0_ @ 11809 NONAME
-	_ZN10QZipReader8FileInfoC1Ev @ 11810 NONAME
-	_ZN10QZipReader8FileInfoC2ERKS0_ @ 11811 NONAME
-	_ZN10QZipReader8FileInfoC2Ev @ 11812 NONAME
-	_ZN10QZipReader8FileInfoD1Ev @ 11813 NONAME
-	_ZN10QZipReader8FileInfoD2Ev @ 11814 NONAME
-	_ZN10QZipReader8FileInfoaSERKS0_ @ 11815 NONAME
-	_ZN10QZipReaderC1EP9QIODevice @ 11816 NONAME
-	_ZN10QZipReaderC1ERK7QString6QFlagsIN9QIODevice12OpenModeFlagEE @ 11817 NONAME
-	_ZN10QZipReaderC2EP9QIODevice @ 11818 NONAME
-	_ZN10QZipReaderC2ERK7QString6QFlagsIN9QIODevice12OpenModeFlagEE @ 11819 NONAME
-	_ZN10QZipReaderD1Ev @ 11820 NONAME
-	_ZN10QZipReaderD2Ev @ 11821 NONAME
-	_ZN11QStaticText13setTextFormatEN2Qt10TextFormatE @ 11822 NONAME
-	_ZN11QStaticText14setMaximumSizeERK6QSizeF @ 11823 NONAME ABSENT
-	_ZN11QStaticText18setPerformanceHintENS_15PerformanceHintE @ 11824 NONAME
-	_ZN11QStaticText6detachEv @ 11825 NONAME
-	_ZN11QStaticText7prepareERK10QTransformRK5QFont @ 11826 NONAME
-	_ZN11QStaticText7setTextERK7QString @ 11827 NONAME
-	_ZN11QStaticTextC1ERK7QString @ 11828 NONAME
-	_ZN11QStaticTextC1ERKS_ @ 11829 NONAME
-	_ZN11QStaticTextC1Ev @ 11830 NONAME
-	_ZN11QStaticTextC2ERK7QString @ 11831 NONAME
-	_ZN11QStaticTextC2ERKS_ @ 11832 NONAME
-	_ZN11QStaticTextC2Ev @ 11833 NONAME
-	_ZN11QStaticTextD1Ev @ 11834 NONAME
-	_ZN11QStaticTextD2Ev @ 11835 NONAME
-	_ZN11QStaticTextaSERKS_ @ 11836 NONAME
-	_ZN12QKeySequence6assignERK7QStringNS_14SequenceFormatE @ 11837 NONAME
-	_ZN12QKeySequenceC1ERK7QStringNS_14SequenceFormatE @ 11838 NONAME
-	_ZN12QKeySequenceC2ERK7QStringNS_14SequenceFormatE @ 11839 NONAME
-	_ZN13QTextDocument19clearUndoRedoStacksENS_6StacksE @ 11840 NONAME
-	_ZN14QPaintEngineEx19drawPixmapFragmentsEPKN8QPainter8FragmentEiRK7QPixmap6QFlagsINS0_12FragmentHintEE @ 11841 NONAME ABSENT
-	_ZN14QWidgetPrivate11inTabWidgetEP7QWidget @ 11842 NONAME
-	_ZN14QWidgetPrivate17canKeypadNavigateEN2Qt11OrientationE @ 11843 NONAME
-	_ZN14QWidgetPrivate6renderEP12QPaintDeviceRK6QPointRK7QRegion6QFlagsIN7QWidget10RenderFlagEEb @ 11844 NONAME
-	_ZN15QGraphicsWidget21setAutoFillBackgroundEb @ 11845 NONAME
-	_ZN16QFileSystemModel15directoryLoadedERK7QString @ 11846 NONAME
-	_ZN18QTextureGlyphCache8populateEP11QFontEngineiPKjPK11QFixedPoint @ 11847 NONAME
-	_ZN19QApplicationPrivate15getPixmapCursorEN2Qt11CursorShapeE @ 11848 NONAME
-	_ZN20QGraphicsViewPrivate10centerViewEN13QGraphicsView14ViewportAnchorE @ 11849 NONAME
-	_ZN20QGraphicsViewPrivate10updateRectERK5QRect @ 11850 NONAME
-	_ZN20QGraphicsViewPrivate12updateRegionERK7QRegion @ 11851 NONAME ABSENT
-	_ZN20QGraphicsViewPrivate12updateScrollEv @ 11852 NONAME
-	_ZN20QGraphicsViewPrivate15storeMouseEventEP11QMouseEvent @ 11853 NONAME
-	_ZN20QGraphicsViewPrivate18storeDragDropEventEPK27QGraphicsSceneDragDropEvent @ 11854 NONAME
-	_ZN20QGraphicsViewPrivate19translateTouchEventEPS_P11QTouchEvent @ 11855 NONAME
-	_ZN20QGraphicsViewPrivate20_q_setViewportCursorERK7QCursor @ 11856 NONAME
-	_ZN20QGraphicsViewPrivate20replayLastMouseEventEv @ 11857 NONAME
-	_ZN20QGraphicsViewPrivate21freeStyleOptionsArrayEP24QStyleOptionGraphicsItem @ 11858 NONAME
-	_ZN20QGraphicsViewPrivate21mouseMoveEventHandlerEP11QMouseEvent @ 11859 NONAME
-	_ZN20QGraphicsViewPrivate21processPendingUpdatesEv @ 11860 NONAME
-	_ZN20QGraphicsViewPrivate21updateLastCenterPointEv @ 11861 NONAME
-	_ZN20QGraphicsViewPrivate22_q_unsetViewportCursorEv @ 11862 NONAME
-	_ZN20QGraphicsViewPrivate22allocStyleOptionsArrayEi @ 11863 NONAME
-	_ZN20QGraphicsViewPrivate22recalculateContentSizeEv @ 11864 NONAME
-	_ZN20QGraphicsViewPrivate26populateSceneDragDropEventEP27QGraphicsSceneDragDropEventP10QDropEvent @ 11865 NONAME
-	_ZN20QGraphicsViewPrivate28updateInputMethodSensitivityEv @ 11866 NONAME
-	_ZN20QGraphicsViewPrivateC1Ev @ 11867 NONAME
-	_ZN20QGraphicsViewPrivateC2Ev @ 11868 NONAME
-	_ZN24QImagePixmapCleanupHooks13isImageCachedERK6QImage @ 11869 NONAME
-	_ZN24QImagePixmapCleanupHooks14isPixmapCachedERK7QPixmap @ 11870 NONAME
-	_ZN26QAbstractScrollAreaPrivate14layoutChildrenEv @ 11871 NONAME
-	_ZN26QAbstractScrollAreaPrivate16replaceScrollBarEP10QScrollBarN2Qt11OrientationE @ 11872 NONAME
-	_ZN26QAbstractScrollAreaPrivate23_q_showOrHideScrollBarsEv @ 11873 NONAME
-	_ZN26QAbstractScrollAreaPrivate4initEv @ 11874 NONAME
-	_ZN26QAbstractScrollAreaPrivate9_q_hslideEi @ 11875 NONAME
-	_ZN26QAbstractScrollAreaPrivate9_q_vslideEi @ 11876 NONAME
-	_ZN26QAbstractScrollAreaPrivateC1Ev @ 11877 NONAME
-	_ZN26QAbstractScrollAreaPrivateC2Ev @ 11878 NONAME
-	_ZN6QColor12isValidColorERK7QString @ 11879 NONAME
-	_ZN6QColor18setColorFromStringERK7QString @ 11880 NONAME
-	_ZN6QLabel12setSelectionEii @ 11881 NONAME
-	_ZN7QPixmap16convertFromImageERK6QImage6QFlagsIN2Qt19ImageConversionFlagEE @ 11882 NONAME
-	_ZN8QPainter14drawStaticTextERK7QPointFRK11QStaticText @ 11883 NONAME
-	_ZN8QPainter19drawPixmapFragmentsEPKNS_8FragmentEiRK7QPixmap6QFlagsINS_12FragmentHintEE @ 11884 NONAME ABSENT
-	_ZN8QPainter8Fragment6createERK7QPointFRK6QRectFffff @ 11885 NONAME ABSENT
-	_ZN8QToolBar17visibilityChangedEb @ 11886 NONAME
-	_ZNK10QZipReader10extractAllERK7QString @ 11887 NONAME
-	_ZNK10QZipReader10isReadableEv @ 11888 NONAME
-	_ZNK10QZipReader11entryInfoAtEi @ 11889 NONAME
-	_ZNK10QZipReader12fileInfoListEv @ 11890 NONAME
-	_ZNK10QZipReader5countEv @ 11891 NONAME
-	_ZNK10QZipReader6existsEv @ 11892 NONAME
-	_ZNK10QZipReader6statusEv @ 11893 NONAME
-	_ZNK10QZipReader8fileDataERK7QString @ 11894 NONAME
-	_ZNK11QStaticText10textFormatEv @ 11895 NONAME
-	_ZNK11QStaticText11maximumSizeEv @ 11896 NONAME ABSENT
-	_ZNK11QStaticText15performanceHintEv @ 11897 NONAME
-	_ZNK11QStaticText4sizeEv @ 11898 NONAME
-	_ZNK11QStaticText4textEv @ 11899 NONAME
-	_ZNK11QStaticTexteqERKS_ @ 11900 NONAME
-	_ZNK11QStaticTextneERKS_ @ 11901 NONAME
-	_ZNK11QTextCursor15positionInBlockEv @ 11902 NONAME
-	_ZNK13QIntValidator5fixupER7QString @ 11903 NONAME
-	_ZNK14QPlainTextEdit8anchorAtERK6QPoint @ 11904 NONAME
-	_ZNK15QGraphicsWidget18autoFillBackgroundEv @ 11905 NONAME
-	_ZNK20QGraphicsViewPrivate10mapToSceneERK6QRectF @ 11906 NONAME
-	_ZNK20QGraphicsViewPrivate10mapToSceneERK7QPointF @ 11907 NONAME
-	_ZNK20QGraphicsViewPrivate13mapToViewRectEPK13QGraphicsItemRK6QRectF @ 11908 NONAME
-	_ZNK20QGraphicsViewPrivate14mapRectToSceneERK5QRect @ 11909 NONAME
-	_ZNK20QGraphicsViewPrivate14verticalScrollEv @ 11910 NONAME
-	_ZNK20QGraphicsViewPrivate15mapToViewRegionEPK13QGraphicsItemRK6QRectF @ 11911 NONAME
-	_ZNK20QGraphicsViewPrivate16horizontalScrollEv @ 11912 NONAME
-	_ZNK20QGraphicsViewPrivate16mapRectFromSceneERK6QRectF @ 11913 NONAME
-	_ZNK20QGraphicsViewPrivate16rubberBandRegionEPK7QWidgetRK5QRect @ 11914 NONAME
-	_ZNK20QGraphicsViewPrivate9findItemsERK7QRegionPbRK10QTransform @ 11915 NONAME
-	_ZNK26QAbstractScrollAreaPrivate14contentsOffsetEv @ 11916 NONAME
-	_ZNK6QImage13constScanLineEi @ 11917 NONAME
-	_ZNK6QImage9constBitsEv @ 11918 NONAME
-	_ZNK6QLabel12selectedTextEv @ 11919 NONAME
-	_ZNK6QLabel14selectionStartEv @ 11920 NONAME
-	_ZNK6QLabel15hasSelectedTextEv @ 11921 NONAME
-	_ZNK7QBezier11getSubRangeEff @ 11922 NONAME
-	_ZNK7QBezier5mapByERK10QTransform @ 11923 NONAME
-	_ZTI20QGraphicsViewPrivate @ 11924 NONAME
-	_ZTI26QAbstractScrollAreaPrivate @ 11925 NONAME
-	_ZTV20QGraphicsViewPrivate @ 11926 NONAME
-	_ZTV26QAbstractScrollAreaPrivate @ 11927 NONAME
-	_Z14qt_draw_glyphsP8QPainterPKjPK7QPointFi @ 11928 NONAME
-	_ZN11QFontEngine16getGlyphBearingsEjPfS0_ @ 11929 NONAME
-	_ZN12QLineControl17updateDisplayTextEb @ 11930 NONAME
-	_ZN12QLineControl5pasteEN10QClipboard4ModeE @ 11931 NONAME
-	_ZN12QTextControl5pasteEN10QClipboard4ModeE @ 11932 NONAME
-	_ZN14QPaintEngineEx19drawPixmapFragmentsEPKN8QPainter14PixmapFragmentEiRK7QPixmap6QFlagsINS0_18PixmapFragmentHintEE @ 11933 NONAME
-	_ZN15QGraphicsObject12widthChangedEv @ 11934 NONAME
-	_ZN15QGraphicsObject13heightChangedEv @ 11935 NONAME
-	_ZN15QGraphicsObject15childrenChangedEv @ 11936 NONAME
-	_ZN15QGraphicsWidget15geometryChangedEv @ 11937 NONAME
-	_ZN15QSplitterHandle11resizeEventEP12QResizeEvent @ 11938 NONAME
-	_ZN20QGraphicsItemPrivate10resetWidthEv @ 11939 NONAME
-	_ZN20QGraphicsItemPrivate11resetHeightEv @ 11940 NONAME
-	_ZN20QGraphicsItemPrivate12childrenListEv @ 11941 NONAME
-	_ZN20QGraphicsItemPrivate14setFocusHelperEN2Qt11FocusReasonEbb @ 11942 NONAME
-	_ZN20QGraphicsItemPrivate16clearFocusHelperEb @ 11943 NONAME
-	_ZN20QGraphicsItemPrivate24prependGraphicsTransformEP18QGraphicsTransform @ 11944 NONAME
-	_ZN20QGraphicsItemPrivate6appendEP24QDeclarativeListPropertyI15QGraphicsObjectEPS1_ @ 11945 NONAME ABSENT
-	_ZN20QGraphicsItemPrivate8setWidthEf @ 11946 NONAME
-	_ZN20QGraphicsItemPrivate9setHeightEf @ 11947 NONAME
-	_ZN7QWizard11pageRemovedEi @ 11948 NONAME
-	_ZN7QWizard13setSideWidgetEP7QWidget @ 11949 NONAME
-	_ZN7QWizard9pageAddedEi @ 11950 NONAME
-	_ZN8QPainter14PixmapFragment6createERK7QPointFRK6QRectFffff @ 11951 NONAME
-	_ZN8QPainter19drawPixmapFragmentsEPKNS_14PixmapFragmentEiRK7QPixmap6QFlagsINS_18PixmapFragmentHintEE @ 11952 NONAME
-	_ZN9QLineEdit18setPlaceholderTextERK7QString @ 11953 NONAME
-	_ZNK10QZipReader6deviceEv @ 11954 NONAME
-	_ZNK10QZipReader8FileInfo7isValidEv @ 11955 NONAME
-	_ZNK20QGraphicsItemPrivate5widthEv @ 11956 NONAME
-	_ZNK20QGraphicsItemPrivate6heightEv @ 11957 NONAME
-	_ZNK6QImage13bitPlaneCountEv @ 11958 NONAME
-	_ZNK7QWizard10sideWidgetEv @ 11959 NONAME
-	_ZNK9QLineEdit15placeholderTextEv @ 11960 NONAME
-	_ZNK9QTextLine17horizontalAdvanceEv @ 11961 NONAME
-	_ZN11QStaticText12setTextWidthEf @ 11962 NONAME
-	_ZN13QGraphicsItem16updateMicroFocusEv @ 11963 NONAME
-	_ZN15QGraphicsObject16updateMicroFocusEv @ 11964 NONAME
-	_ZN15QGraphicsWidget13layoutChangedEv @ 11965 NONAME
-	_ZN16QPainterReplayer15processCommandsERK12QPaintBufferP8QPainterii @ 11966 NONAME
-	_ZNK11QStaticText9textWidthEv @ 11967 NONAME
-	_ZNK12QPaintBuffer13frameEndIndexEi @ 11968 NONAME
-	_ZNK12QPaintBuffer15frameStartIndexEi @ 11969 NONAME
-	_ZNK12QPaintBuffer15processCommandsEP8QPainterii @ 11970 NONAME
-	_ZNK12QPaintBuffer18commandDescriptionEi @ 11971 NONAME
-	_ZN20QGraphicsItemPrivate11children_atEP24QDeclarativeListPropertyI15QGraphicsObjectEi @ 11972 NONAME
-	_ZN20QGraphicsItemPrivate14children_countEP24QDeclarativeListPropertyI15QGraphicsObjectE @ 11973 NONAME
-	_ZN20QGraphicsItemPrivate15children_appendEP24QDeclarativeListPropertyI15QGraphicsObjectEPS1_ @ 11974 NONAME
-	_ZN11QEglContext14destroyContextEv @ 11975 NONAME
-	_ZN14QEglProperties13setDeviceTypeEi @ 11976 NONAME
-	_ZN4QEgl10clearErrorEv @ 11977 NONAME ABSENT
-	_ZN4QEgl10extensionsEv @ 11978 NONAME
-	_ZN4QEgl11errorStringEi @ 11979 NONAME
-	_ZN4QEgl11errorStringEv @ 11980 NONAME ABSENT
-	_ZN4QEgl12chooseConfigEPK14QEglPropertiesNS_16PixelFormatMatchE @ 11981 NONAME
-	_ZN4QEgl12hasExtensionEPKc @ 11982 NONAME
-	_ZN4QEgl12nativePixmapEP7QPixmap @ 11983 NONAME
-	_ZN4QEgl12nativeWindowEP7QWidget @ 11984 NONAME
-	_ZN4QEgl13createSurfaceEP12QPaintDeviceiPK14QEglProperties @ 11985 NONAME
-	_ZN4QEgl13defaultConfigEiNS_3APIE6QFlagsINS_12ConfigOptionEE @ 11986 NONAME
-	_ZN4QEgl13nativeDisplayEv @ 11987 NONAME
-	_ZN4QEgl14dumpAllConfigsEv @ 11988 NONAME
-	_ZN4QEgl17eglCreateImageKHREiiiiPKi @ 11989 NONAME
-	_ZN4QEgl18eglDestroyImageKHREii @ 11990 NONAME
-	_ZN4QEgl5errorEv @ 11991 NONAME ABSENT
-	_ZN4QEgl7displayEv @ 11992 NONAME
-	_ZNK11QEglContext12configAttribEi @ 11993 NONAME
-	_ZNK11QEglContext16configPropertiesEv @ 11994 NONAME ABSENT
-	_ZNK19QItemSelectionRange7isEmptyEv @ 11995 NONAME
-	_ZN13QIconEngineV28iconNameEv @ 11996 NONAME
-	_ZN14QWindowSurface23setPartialUpdateSupportEb @ 11997 NONAME
-	_ZNK14QWindowSurface23hasPartialUpdateSupportEv @ 11998 NONAME
-	_ZNK5QIcon4nameEv @ 11999 NONAME
-	_ZN20QGraphicsViewPrivate12updateRegionERK6QRectFRK10QTransform @ 12000 NONAME
-	_ZN12QPixmapCache10allPixmapsEv @ 12001 NONAME
-	_ZN12QPixmapCache20flushDetachedPixmapsEv @ 12002 NONAME
-	_ZN12QPixmapCache9totalUsedEv @ 12003 NONAME
-	_ZN20QGraphicsItemPrivate30updatePaintedViewBoundingRectsEb @ 12004 NONAME
-	_ZN20QGraphicsViewPrivate13setUpdateClipEP13QGraphicsItem @ 12005 NONAME
-	_ZN23QImageTextureGlyphCache11fillTextureERKN18QTextureGlyphCache5CoordEj @ 12006 NONAME
-	_ZN23QImageTextureGlyphCache17createTextureDataEii @ 12007 NONAME
-	_ZN23QImageTextureGlyphCache17resizeTextureDataEii @ 12008 NONAME
-	_ZNK23QImageTextureGlyphCache11glyphMarginEv @ 12009 NONAME
-	_ZNK7QBezier12addToPolygonEP9QPolygonFf @ 12010 NONAME
-	_ZNK7QBezier9toPolygonEf @ 12011 NONAME
-	_ZTI23QImageTextureGlyphCache @ 12012 NONAME
-	_ZTV23QImageTextureGlyphCache @ 12013 NONAME
-	_ZN11QTextCursor20setVerticalMovementXEi @ 12014 NONAME
-	_ZN11QTextCursor23setKeepPositionOnInsertEb @ 12015 NONAME
-	_ZN19QApplicationPrivate23runtime_graphics_systemE @ 12016 NONAME DATA 1
-	_ZN20QGraphicsItemPrivate26childrenBoundingRectHelperEP10QTransformP6QRectFb @ 12017 NONAME
-	_ZNK10QTextBlock13textDirectionEv @ 12018 NONAME
-	_ZNK11QTextCursor17verticalMovementXEv @ 12019 NONAME
-	_ZNK11QTextCursor20keepPositionOnInsertEv @ 12020 NONAME
-	_ZNK11QTextEngine13isRightToLeftEv @ 12021 NONAME
-	_ZNK12QFontMetrics5widthERK7QStringii @ 12022 NONAME
-	_ZNK14QWidgetPrivate22childAtRecursiveHelperERK6QPointbb @ 12023 NONAME
-	_ZN10QImageData14convertInPlaceEN6QImage6FormatE6QFlagsIN2Qt19ImageConversionFlagEE @ 12024 NONAME
-	_ZN11QEglContext21swapBuffersRegion2NOKEiPK7QRegion @ 12025 NONAME
-	_ZN11QPixmapData15fromImageReaderEP12QImageReader6QFlagsIN2Qt19ImageConversionFlagEE @ 12026 NONAME
-	_ZN11QStaticText13setTextOptionERK11QTextOption @ 12027 NONAME
-	_ZN13QS60MainAppUi11HandleErrorEiRK14SExtendedErrorR6TDes16S4_ @ 12028 NONAME
-	_ZN13QS60MainAppUi13PrepareToExitEv @ 12029 NONAME
-	_ZN13QS60MainAppUi15MopSupplyObjectE8TTypeUid @ 12030 NONAME
-	_ZN13QS60MainAppUi15ProcessCommandLEi @ 12031 NONAME
-	_ZN13QS60MainAppUi18HandleSystemEventLERK8TWsEvent @ 12032 NONAME
-	_ZN13QS60MainAppUi19Reserved_MtsmObjectEv @ 12033 NONAME
-	_ZN13QS60MainAppUi21Reserved_MtsmPositionEv @ 12034 NONAME
-	_ZN13QS60MainAppUi22HandleForegroundEventLEi @ 12035 NONAME
-	_ZN13QS60MainAppUi22HandleViewDeactivationERK10TVwsViewIdS2_ @ 12036 NONAME
-	_ZN13QS60MainAppUi25HandleTouchPaneSizeChangeEv @ 12037 NONAME
-	_ZN13QS60MainAppUi26HandleScreenDeviceChangedLEv @ 12038 NONAME
-	_ZN13QS60MainAppUi31HandleApplicationSpecificEventLEiRK8TWsEvent @ 12039 NONAME
-	_ZN13QS60MainAppUi4ExitEv @ 12040 NONAME
-	_ZN13QS60MainAppUi9SetFadedLEi @ 12041 NONAME
-	_ZN15QGraphicsSystem16createPixmapDataEP11QPixmapData @ 12042 NONAME
-	_ZN16QS60MainDocument9OpenFileLERP10CFileStoreR5RFile @ 12043 NONAME
-	_ZN16QS60MainDocument9OpenFileLEiRK7TDesC16R3RFs @ 12044 NONAME
-	_ZN17QRasterPixmapData15fromImageReaderEP12QImageReader6QFlagsIN2Qt19ImageConversionFlagEE @ 12045 NONAME
-	_ZN17QRasterPixmapData20createPixmapForImageER6QImage6QFlagsIN2Qt19ImageConversionFlagEEb @ 12046 NONAME
-	_ZN17QRasterPixmapData4copyEPK11QPixmapDataRK5QRect @ 12047 NONAME
-	_ZN17QRasterPixmapData8fromDataEPKhjPKc6QFlagsIN2Qt19ImageConversionFlagEE @ 12048 NONAME
-	_ZN18QRuntimePixmapData12readBackInfoEv @ 12049 NONAME
-	_ZN18QRuntimePixmapData12toNativeTypeEN11QPixmapData10NativeTypeE @ 12050 NONAME
-	_ZN18QRuntimePixmapData14fromNativeTypeEPvN11QPixmapData10NativeTypeE @ 12051 NONAME
-	_ZN18QRuntimePixmapData15setAlphaChannelERK7QPixmap @ 12052 NONAME
-	_ZN18QRuntimePixmapData4copyEPK11QPixmapDataRK5QRect @ 12053 NONAME
-	_ZN18QRuntimePixmapData4fillERK6QColor @ 12054 NONAME
-	_ZN18QRuntimePixmapData6bufferEv @ 12055 NONAME
-	_ZN18QRuntimePixmapData6resizeEii @ 12056 NONAME
-	_ZN18QRuntimePixmapData6scrollEiiRK5QRect @ 12057 NONAME
-	_ZN18QRuntimePixmapData7setMaskERK7QBitmap @ 12058 NONAME
-	_ZN18QRuntimePixmapData8fromDataEPKhjPKc6QFlagsIN2Qt19ImageConversionFlagEE @ 12059 NONAME
-	_ZN18QRuntimePixmapData8fromFileERK7QStringPKc6QFlagsIN2Qt19ImageConversionFlagEE @ 12060 NONAME
-	_ZN18QRuntimePixmapData9fromImageERK6QImage6QFlagsIN2Qt19ImageConversionFlagEE @ 12061 NONAME
-	_ZN18QRuntimePixmapDataC1EPK22QRuntimeGraphicsSystemN11QPixmapData9PixelTypeE @ 12062 NONAME
-	_ZN18QRuntimePixmapDataC2EPK22QRuntimeGraphicsSystemN11QPixmapData9PixelTypeE @ 12063 NONAME
-	_ZN18QRuntimePixmapDataD0Ev @ 12064 NONAME
-	_ZN18QRuntimePixmapDataD1Ev @ 12065 NONAME
-	_ZN18QRuntimePixmapDataD2Ev @ 12066 NONAME
-	_ZN19QS60MainApplication13NewAppServerLERP13CApaAppServer @ 12067 NONAME
-	_ZN19QS60MainApplication16PreDocConstructLEv @ 12068 NONAME
-	_ZN4QEgl24eglSwapBuffersRegion2NOKEiiiPKi @ 12069 NONAME
-	_ZN7QDialog23symbianAdjustedPositionEv @ 12070 NONAME
-	_ZN7QPixmap15fromImageReaderEP12QImageReader6QFlagsIN2Qt19ImageConversionFlagEE @ 12071 NONAME
-	_ZNK11QPixmapData7toImageERK5QRect @ 12072 NONAME
-	_ZNK11QStaticText10textOptionEv @ 12073 NONAME
-	_ZNK13QS60MainAppUi15ApplicationRectEv @ 12074 NONAME
-	_ZNK17QRasterPixmapData7toImageERK5QRect @ 12075 NONAME
-	_ZNK18QRuntimePixmapData11memoryUsageEv @ 12076 NONAME
-	_ZNK18QRuntimePixmapData11paintEngineEv @ 12077 NONAME
-	_ZNK18QRuntimePixmapData11runtimeDataEv @ 12078 NONAME
-	_ZNK18QRuntimePixmapData11transformedERK10QTransformN2Qt18TransformationModeE @ 12079 NONAME
-	_ZNK18QRuntimePixmapData12alphaChannelEv @ 12080 NONAME
-	_ZNK18QRuntimePixmapData15hasAlphaChannelEv @ 12081 NONAME
-	_ZNK18QRuntimePixmapData26createCompatiblePixmapDataEv @ 12082 NONAME
-	_ZNK18QRuntimePixmapData4maskEv @ 12083 NONAME
-	_ZNK18QRuntimePixmapData6metricEN12QPaintDevice17PaintDeviceMetricE @ 12084 NONAME
-	_ZNK18QRuntimePixmapData7toImageEv @ 12085 NONAME
-	_ZNK19QS60MainApplication13OpenIniFileLCER3RFs @ 12086 NONAME
-	_ZTI18QRuntimePixmapData @ 12087 NONAME
-	_ZTV15QGraphicsSystem @ 12088 NONAME
-	_ZTV18QRuntimePixmapData @ 12089 NONAME
-	_ZThn100_N13QS60MainAppUi25HandleTouchPaneSizeChangeEv @ 12090 NONAME
-	_ZThn24_N13QS60MainAppUi15ProcessCommandLEi @ 12091 NONAME
-	_ZThn40_N13QS60MainAppUi15MopSupplyObjectE8TTypeUid @ 12092 NONAME
-	_ZThn92_N13QS60MainAppUi22HandleViewDeactivationERK10TVwsViewIdS2_ @ 12093 NONAME
-	_ZN18QTapAndHoldGesture10setTimeoutEi @ 12094 NONAME
-	_ZN18QTapAndHoldGesture7timeoutEv @ 12095 NONAME
-	_ZN20QGraphicsItemPrivate20focusScopeItemChangeEb @ 12096 NONAME
+	_ZN11QEglContext10clearErrorEv @ 11807 NONAME ABSENT
+	_ZN11QEglContext13nativeDisplayEv @ 11808 NONAME ABSENT
+	_ZN11QEglContext14destroyContextEv @ 11809 NONAME
+	_ZN11QEglContext3dpyE @ 11810 NONAME DATA 4 ABSENT
+	_ZN11QEglContext5errorEv @ 11811 NONAME ABSENT
+	_ZN11QEglContext7displayEv @ 11812 NONAME ABSENT
+	_ZN11QFontEngine16getGlyphBearingsEjPfS0_ @ 11813 NONAME
+	_ZN12QLineControl17updateDisplayTextEb @ 11814 NONAME
+	_ZN13QFontDatabase25removeAllApplicationFontsEv @ 11815 NONAME
+	_ZN14QWidgetPrivate11inTabWidgetEP7QWidget @ 11816 NONAME
+	_ZN14QWidgetPrivate17canKeypadNavigateEN2Qt11OrientationE @ 11817 NONAME
+	_ZN20QGraphicsItemPrivate14setFocusHelperEN2Qt11FocusReasonEbb @ 11818 NONAME
+	_ZN20QGraphicsItemPrivate16clearFocusHelperEb @ 11819 NONAME
+	_ZN24QImagePixmapCleanupHooks13isImageCachedERK6QImage @ 11820 NONAME
+	_ZN24QImagePixmapCleanupHooks14isPixmapCachedERK7QPixmap @ 11821 NONAME
+	_Z14qt_draw_glyphsP8QPainterPKjPK7QPointFi @ 11822 NONAME
+	_ZN10QZipReader5closeEv @ 11823 NONAME
+	_ZN10QZipReader8FileInfoC1ERKS0_ @ 11824 NONAME
+	_ZN10QZipReader8FileInfoC1Ev @ 11825 NONAME
+	_ZN10QZipReader8FileInfoC2ERKS0_ @ 11826 NONAME
+	_ZN10QZipReader8FileInfoC2Ev @ 11827 NONAME
+	_ZN10QZipReader8FileInfoD1Ev @ 11828 NONAME
+	_ZN10QZipReader8FileInfoD2Ev @ 11829 NONAME
+	_ZN10QZipReader8FileInfoaSERKS0_ @ 11830 NONAME
+	_ZN10QZipReaderC1EP9QIODevice @ 11831 NONAME
+	_ZN10QZipReaderC1ERK7QString6QFlagsIN9QIODevice12OpenModeFlagEE @ 11832 NONAME
+	_ZN10QZipReaderC2EP9QIODevice @ 11833 NONAME
+	_ZN10QZipReaderC2ERK7QString6QFlagsIN9QIODevice12OpenModeFlagEE @ 11834 NONAME
+	_ZN10QZipReaderD1Ev @ 11835 NONAME
+	_ZN10QZipReaderD2Ev @ 11836 NONAME
+	_ZN11QStaticText12setTextWidthEf @ 11837 NONAME
+	_ZN11QStaticText13setTextFormatEN2Qt10TextFormatE @ 11838 NONAME
+	_ZN11QStaticText18setPerformanceHintENS_15PerformanceHintE @ 11839 NONAME
+	_ZN11QStaticText6detachEv @ 11840 NONAME
+	_ZN11QStaticText7prepareERK10QTransformRK5QFont @ 11841 NONAME
+	_ZN11QStaticText7setTextERK7QString @ 11842 NONAME
+	_ZN11QStaticTextC1ERK7QString @ 11843 NONAME
+	_ZN11QStaticTextC1ERKS_ @ 11844 NONAME
+	_ZN11QStaticTextC1Ev @ 11845 NONAME
+	_ZN11QStaticTextC2ERK7QString @ 11846 NONAME
+	_ZN11QStaticTextC2ERKS_ @ 11847 NONAME
+	_ZN11QStaticTextC2Ev @ 11848 NONAME
+	_ZN11QStaticTextD1Ev @ 11849 NONAME
+	_ZN11QStaticTextD2Ev @ 11850 NONAME
+	_ZN11QStaticTextaSERKS_ @ 11851 NONAME
+	_ZN12QKeySequence6assignERK7QStringNS_14SequenceFormatE @ 11852 NONAME
+	_ZN12QKeySequenceC1ERK7QStringNS_14SequenceFormatE @ 11853 NONAME
+	_ZN12QKeySequenceC2ERK7QStringNS_14SequenceFormatE @ 11854 NONAME
+	_ZN12QLineControl5pasteEN10QClipboard4ModeE @ 11855 NONAME
+	_ZN12QPixmapCache10allPixmapsEv @ 11856 NONAME
+	_ZN12QPixmapCache20flushDetachedPixmapsEv @ 11857 NONAME
+	_ZN12QPixmapCache9totalUsedEv @ 11858 NONAME
+	_ZN12QTextControl5pasteEN10QClipboard4ModeE @ 11859 NONAME
+	_ZN13QGraphicsItem16updateMicroFocusEv @ 11860 NONAME
+	_ZN13QIconEngineV28iconNameEv @ 11861 NONAME
+	_ZN13QTextDocument19clearUndoRedoStacksENS_6StacksE @ 11862 NONAME
+	_ZN14QEglProperties13setDeviceTypeEi @ 11863 NONAME
+	_ZN14QPaintEngineEx19drawPixmapFragmentsEPKN8QPainter14PixmapFragmentEiRK7QPixmap6QFlagsINS0_18PixmapFragmentHintEE @ 11864 NONAME
+	_ZN14QWidgetPrivate6renderEP12QPaintDeviceRK6QPointRK7QRegion6QFlagsIN7QWidget10RenderFlagEEb @ 11865 NONAME
+	_ZN14QWindowSurface23setPartialUpdateSupportEb @ 11866 NONAME
+	_ZN15QGraphicsObject12widthChangedEv @ 11867 NONAME
+	_ZN15QGraphicsObject13heightChangedEv @ 11868 NONAME
+	_ZN15QGraphicsObject15childrenChangedEv @ 11869 NONAME
+	_ZN15QGraphicsObject16updateMicroFocusEv @ 11870 NONAME
+	_ZN15QGraphicsWidget13layoutChangedEv @ 11871 NONAME
+	_ZN15QGraphicsWidget15geometryChangedEv @ 11872 NONAME
+	_ZN15QGraphicsWidget21setAutoFillBackgroundEb @ 11873 NONAME
+	_ZN15QSplitterHandle11resizeEventEP12QResizeEvent @ 11874 NONAME
+	_ZN16QFileSystemModel15directoryLoadedERK7QString @ 11875 NONAME
+	_ZN16QPainterReplayer15processCommandsERK12QPaintBufferP8QPainterii @ 11876 NONAME
+	_ZN18QTextureGlyphCache8populateEP11QFontEngineiPKjPK11QFixedPoint @ 11877 NONAME
+	_ZN19QApplicationPrivate15getPixmapCursorEN2Qt11CursorShapeE @ 11878 NONAME
+	_ZN20QGraphicsItemPrivate10resetWidthEv @ 11879 NONAME
+	_ZN20QGraphicsItemPrivate11children_atEP24QDeclarativeListPropertyI15QGraphicsObjectEi @ 11880 NONAME
+	_ZN20QGraphicsItemPrivate11resetHeightEv @ 11881 NONAME
+	_ZN20QGraphicsItemPrivate12childrenListEv @ 11882 NONAME
+	_ZN20QGraphicsItemPrivate14children_countEP24QDeclarativeListPropertyI15QGraphicsObjectE @ 11883 NONAME
+	_ZN20QGraphicsItemPrivate15children_appendEP24QDeclarativeListPropertyI15QGraphicsObjectEPS1_ @ 11884 NONAME
+	_ZN20QGraphicsItemPrivate24prependGraphicsTransformEP18QGraphicsTransform @ 11885 NONAME
+	_ZN20QGraphicsItemPrivate30updatePaintedViewBoundingRectsEb @ 11886 NONAME
+	_ZN20QGraphicsItemPrivate8setWidthEf @ 11887 NONAME
+	_ZN20QGraphicsItemPrivate9setHeightEf @ 11888 NONAME
+	_ZN20QGraphicsViewPrivate10centerViewEN13QGraphicsView14ViewportAnchorE @ 11889 NONAME
+	_ZN20QGraphicsViewPrivate10updateRectERK5QRect @ 11890 NONAME
+	_ZN20QGraphicsViewPrivate12updateRegionERK6QRectFRK10QTransform @ 11891 NONAME
+	_ZN20QGraphicsViewPrivate12updateScrollEv @ 11892 NONAME
+	_ZN20QGraphicsViewPrivate13setUpdateClipEP13QGraphicsItem @ 11893 NONAME
+	_ZN20QGraphicsViewPrivate15storeMouseEventEP11QMouseEvent @ 11894 NONAME
+	_ZN20QGraphicsViewPrivate18storeDragDropEventEPK27QGraphicsSceneDragDropEvent @ 11895 NONAME
+	_ZN20QGraphicsViewPrivate19translateTouchEventEPS_P11QTouchEvent @ 11896 NONAME
+	_ZN20QGraphicsViewPrivate20_q_setViewportCursorERK7QCursor @ 11897 NONAME
+	_ZN20QGraphicsViewPrivate20replayLastMouseEventEv @ 11898 NONAME
+	_ZN20QGraphicsViewPrivate21freeStyleOptionsArrayEP24QStyleOptionGraphicsItem @ 11899 NONAME
+	_ZN20QGraphicsViewPrivate21mouseMoveEventHandlerEP11QMouseEvent @ 11900 NONAME
+	_ZN20QGraphicsViewPrivate21processPendingUpdatesEv @ 11901 NONAME
+	_ZN20QGraphicsViewPrivate21updateLastCenterPointEv @ 11902 NONAME
+	_ZN20QGraphicsViewPrivate22_q_unsetViewportCursorEv @ 11903 NONAME
+	_ZN20QGraphicsViewPrivate22allocStyleOptionsArrayEi @ 11904 NONAME
+	_ZN20QGraphicsViewPrivate22recalculateContentSizeEv @ 11905 NONAME
+	_ZN20QGraphicsViewPrivate26populateSceneDragDropEventEP27QGraphicsSceneDragDropEventP10QDropEvent @ 11906 NONAME
+	_ZN20QGraphicsViewPrivate28updateInputMethodSensitivityEv @ 11907 NONAME
+	_ZN20QGraphicsViewPrivateC1Ev @ 11908 NONAME
+	_ZN20QGraphicsViewPrivateC2Ev @ 11909 NONAME
+	_ZN23QImageTextureGlyphCache11fillTextureERKN18QTextureGlyphCache5CoordEj @ 11910 NONAME
+	_ZN23QImageTextureGlyphCache17createTextureDataEii @ 11911 NONAME
+	_ZN23QImageTextureGlyphCache17resizeTextureDataEii @ 11912 NONAME
+	_ZN26QAbstractScrollAreaPrivate14layoutChildrenEv @ 11913 NONAME
+	_ZN26QAbstractScrollAreaPrivate16replaceScrollBarEP10QScrollBarN2Qt11OrientationE @ 11914 NONAME
+	_ZN26QAbstractScrollAreaPrivate23_q_showOrHideScrollBarsEv @ 11915 NONAME
+	_ZN26QAbstractScrollAreaPrivate4initEv @ 11916 NONAME
+	_ZN26QAbstractScrollAreaPrivate9_q_hslideEi @ 11917 NONAME
+	_ZN26QAbstractScrollAreaPrivate9_q_vslideEi @ 11918 NONAME
+	_ZN26QAbstractScrollAreaPrivateC1Ev @ 11919 NONAME
+	_ZN26QAbstractScrollAreaPrivateC2Ev @ 11920 NONAME
+	_ZN4QEgl10extensionsEv @ 11921 NONAME
+	_ZN4QEgl11errorStringEi @ 11922 NONAME
+	_ZN4QEgl12chooseConfigEPK14QEglPropertiesNS_16PixelFormatMatchE @ 11923 NONAME
+	_ZN4QEgl12hasExtensionEPKc @ 11924 NONAME
+	_ZN4QEgl12nativePixmapEP7QPixmap @ 11925 NONAME
+	_ZN4QEgl12nativeWindowEP7QWidget @ 11926 NONAME
+	_ZN4QEgl13createSurfaceEP12QPaintDeviceiPK14QEglProperties @ 11927 NONAME
+	_ZN4QEgl13defaultConfigEiNS_3APIE6QFlagsINS_12ConfigOptionEE @ 11928 NONAME
+	_ZN4QEgl13nativeDisplayEv @ 11929 NONAME
+	_ZN4QEgl14dumpAllConfigsEv @ 11930 NONAME
+	_ZN4QEgl17eglCreateImageKHREiiiiPKi @ 11931 NONAME
+	_ZN4QEgl18eglDestroyImageKHREii @ 11932 NONAME
+	_ZN4QEgl7displayEv @ 11933 NONAME
+	_ZN6QColor12isValidColorERK7QString @ 11934 NONAME
+	_ZN6QColor18setColorFromStringERK7QString @ 11935 NONAME
+	_ZN6QLabel12setSelectionEii @ 11936 NONAME
+	_ZN7QPixmap16convertFromImageERK6QImage6QFlagsIN2Qt19ImageConversionFlagEE @ 11937 NONAME
+	_ZN7QWizard11pageRemovedEi @ 11938 NONAME
+	_ZN7QWizard13setSideWidgetEP7QWidget @ 11939 NONAME
+	_ZN7QWizard9pageAddedEi @ 11940 NONAME
+	_ZN8QPainter14PixmapFragment6createERK7QPointFRK6QRectFffff @ 11941 NONAME
+	_ZN8QPainter14drawStaticTextERK7QPointFRK11QStaticText @ 11942 NONAME
+	_ZN8QPainter19drawPixmapFragmentsEPKNS_14PixmapFragmentEiRK7QPixmap6QFlagsINS_18PixmapFragmentHintEE @ 11943 NONAME
+	_ZN8QToolBar17visibilityChangedEb @ 11944 NONAME
+	_ZN9QLineEdit18setPlaceholderTextERK7QString @ 11945 NONAME
+	_ZNK10QZipReader10extractAllERK7QString @ 11946 NONAME
+	_ZNK10QZipReader10isReadableEv @ 11947 NONAME
+	_ZNK10QZipReader11entryInfoAtEi @ 11948 NONAME
+	_ZNK10QZipReader12fileInfoListEv @ 11949 NONAME
+	_ZNK10QZipReader5countEv @ 11950 NONAME
+	_ZNK10QZipReader6deviceEv @ 11951 NONAME
+	_ZNK10QZipReader6existsEv @ 11952 NONAME
+	_ZNK10QZipReader6statusEv @ 11953 NONAME
+	_ZNK10QZipReader8FileInfo7isValidEv @ 11954 NONAME
+	_ZNK10QZipReader8fileDataERK7QString @ 11955 NONAME
+	_ZNK11QEglContext12configAttribEi @ 11956 NONAME
+	_ZNK11QStaticText10textFormatEv @ 11957 NONAME
+	_ZNK11QStaticText15performanceHintEv @ 11958 NONAME
+	_ZNK11QStaticText4sizeEv @ 11959 NONAME
+	_ZNK11QStaticText4textEv @ 11960 NONAME
+	_ZNK11QStaticText9textWidthEv @ 11961 NONAME
+	_ZNK11QStaticTexteqERKS_ @ 11962 NONAME
+	_ZNK11QStaticTextneERKS_ @ 11963 NONAME
+	_ZNK11QTextCursor15positionInBlockEv @ 11964 NONAME
+	_ZNK12QPaintBuffer13frameEndIndexEi @ 11965 NONAME
+	_ZNK12QPaintBuffer15frameStartIndexEi @ 11966 NONAME
+	_ZNK12QPaintBuffer15processCommandsEP8QPainterii @ 11967 NONAME
+	_ZNK12QPaintBuffer18commandDescriptionEi @ 11968 NONAME
+	_ZNK13QIntValidator5fixupER7QString @ 11969 NONAME
+	_ZNK14QPlainTextEdit8anchorAtERK6QPoint @ 11970 NONAME
+	_ZNK14QWindowSurface23hasPartialUpdateSupportEv @ 11971 NONAME
+	_ZNK15QGraphicsWidget18autoFillBackgroundEv @ 11972 NONAME
+	_ZNK19QItemSelectionRange7isEmptyEv @ 11973 NONAME
+	_ZNK20QGraphicsItemPrivate5widthEv @ 11974 NONAME
+	_ZNK20QGraphicsItemPrivate6heightEv @ 11975 NONAME
+	_ZNK20QGraphicsViewPrivate10mapToSceneERK6QRectF @ 11976 NONAME
+	_ZNK20QGraphicsViewPrivate10mapToSceneERK7QPointF @ 11977 NONAME
+	_ZNK20QGraphicsViewPrivate13mapToViewRectEPK13QGraphicsItemRK6QRectF @ 11978 NONAME
+	_ZNK20QGraphicsViewPrivate14mapRectToSceneERK5QRect @ 11979 NONAME
+	_ZNK20QGraphicsViewPrivate14verticalScrollEv @ 11980 NONAME
+	_ZNK20QGraphicsViewPrivate15mapToViewRegionEPK13QGraphicsItemRK6QRectF @ 11981 NONAME
+	_ZNK20QGraphicsViewPrivate16horizontalScrollEv @ 11982 NONAME
+	_ZNK20QGraphicsViewPrivate16mapRectFromSceneERK6QRectF @ 11983 NONAME
+	_ZNK20QGraphicsViewPrivate16rubberBandRegionEPK7QWidgetRK5QRect @ 11984 NONAME
+	_ZNK20QGraphicsViewPrivate9findItemsERK7QRegionPbRK10QTransform @ 11985 NONAME
+	_ZNK23QImageTextureGlyphCache11glyphMarginEv @ 11986 NONAME
+	_ZNK26QAbstractScrollAreaPrivate14contentsOffsetEv @ 11987 NONAME
+	_ZNK5QIcon4nameEv @ 11988 NONAME
+	_ZNK6QImage13bitPlaneCountEv @ 11989 NONAME
+	_ZNK6QImage13constScanLineEi @ 11990 NONAME
+	_ZNK6QImage9constBitsEv @ 11991 NONAME
+	_ZNK6QLabel12selectedTextEv @ 11992 NONAME
+	_ZNK6QLabel14selectionStartEv @ 11993 NONAME
+	_ZNK6QLabel15hasSelectedTextEv @ 11994 NONAME
+	_ZNK7QBezier11getSubRangeEff @ 11995 NONAME
+	_ZNK7QBezier12addToPolygonEP9QPolygonFf @ 11996 NONAME
+	_ZNK7QBezier5mapByERK10QTransform @ 11997 NONAME
+	_ZNK7QBezier9toPolygonEf @ 11998 NONAME
+	_ZNK7QWizard10sideWidgetEv @ 11999 NONAME
+	_ZNK9QLineEdit15placeholderTextEv @ 12000 NONAME
+	_ZNK9QTextLine17horizontalAdvanceEv @ 12001 NONAME
+	_ZTI20QGraphicsViewPrivate @ 12002 NONAME
+	_ZTI23QImageTextureGlyphCache @ 12003 NONAME
+	_ZTI26QAbstractScrollAreaPrivate @ 12004 NONAME
+	_ZTV20QGraphicsViewPrivate @ 12005 NONAME
+	_ZTV23QImageTextureGlyphCache @ 12006 NONAME
+	_ZTV26QAbstractScrollAreaPrivate @ 12007 NONAME
+	_ZN11QTextCursor20setVerticalMovementXEi @ 12008 NONAME
+	_ZN11QTextCursor23setKeepPositionOnInsertEb @ 12009 NONAME
+	_ZN19QApplicationPrivate23runtime_graphics_systemE @ 12010 NONAME DATA 1
+	_ZNK11QTextCursor17verticalMovementXEv @ 12011 NONAME
+	_ZNK11QTextCursor20keepPositionOnInsertEv @ 12012 NONAME
+	_ZNK12QFontMetrics5widthERK7QStringii @ 12013 NONAME
+	_ZN11QStaticText13setTextOptionERK11QTextOption @ 12014 NONAME
+	_ZNK10QTextBlock13textDirectionEv @ 12015 NONAME
+	_ZNK11QStaticText10textOptionEv @ 12016 NONAME
+	_ZNK11QTextEngine13isRightToLeftEv @ 12017 NONAME
+	_ZNK14QWidgetPrivate22childAtRecursiveHelperERK6QPointbb @ 12018 NONAME
+	_ZN10QImageData14convertInPlaceEN6QImage6FormatE6QFlagsIN2Qt19ImageConversionFlagEE @ 12019 NONAME
+	_ZN17QRasterPixmapData20createPixmapForImageER6QImage6QFlagsIN2Qt19ImageConversionFlagEEb @ 12020 NONAME
+	_ZN17QRasterPixmapData8fromDataEPKhjPKc6QFlagsIN2Qt19ImageConversionFlagEE @ 12021 NONAME
+	_ZN15QGraphicsSystem16createPixmapDataEP11QPixmapData @ 12022 NONAME
+	_ZN17QRasterPixmapData4copyEPK11QPixmapDataRK5QRect @ 12023 NONAME
+	_ZNK11QPixmapData7toImageERK5QRect @ 12024 NONAME
+	_ZNK17QRasterPixmapData7toImageERK5QRect @ 12025 NONAME
+	_ZTV15QGraphicsSystem @ 12026 NONAME
+	_ZN11QPixmapData15fromImageReaderEP12QImageReader6QFlagsIN2Qt19ImageConversionFlagEE @ 12027 NONAME
+	_ZN17QRasterPixmapData15fromImageReaderEP12QImageReader6QFlagsIN2Qt19ImageConversionFlagEE @ 12028 NONAME
+	_ZN18QRuntimePixmapData12readBackInfoEv @ 12029 NONAME
+	_ZN18QRuntimePixmapData12toNativeTypeEN11QPixmapData10NativeTypeE @ 12030 NONAME
+	_ZN18QRuntimePixmapData14fromNativeTypeEPvN11QPixmapData10NativeTypeE @ 12031 NONAME
+	_ZN18QRuntimePixmapData15setAlphaChannelERK7QPixmap @ 12032 NONAME
+	_ZN18QRuntimePixmapData4copyEPK11QPixmapDataRK5QRect @ 12033 NONAME
+	_ZN18QRuntimePixmapData4fillERK6QColor @ 12034 NONAME
+	_ZN18QRuntimePixmapData6bufferEv @ 12035 NONAME
+	_ZN18QRuntimePixmapData6resizeEii @ 12036 NONAME
+	_ZN18QRuntimePixmapData6scrollEiiRK5QRect @ 12037 NONAME
+	_ZN18QRuntimePixmapData7setMaskERK7QBitmap @ 12038 NONAME
+	_ZN18QRuntimePixmapData8fromDataEPKhjPKc6QFlagsIN2Qt19ImageConversionFlagEE @ 12039 NONAME
+	_ZN18QRuntimePixmapData8fromFileERK7QStringPKc6QFlagsIN2Qt19ImageConversionFlagEE @ 12040 NONAME
+	_ZN18QRuntimePixmapData9fromImageERK6QImage6QFlagsIN2Qt19ImageConversionFlagEE @ 12041 NONAME
+	_ZN18QRuntimePixmapDataC1EPK22QRuntimeGraphicsSystemN11QPixmapData9PixelTypeE @ 12042 NONAME
+	_ZN18QRuntimePixmapDataC2EPK22QRuntimeGraphicsSystemN11QPixmapData9PixelTypeE @ 12043 NONAME
+	_ZN18QRuntimePixmapDataD0Ev @ 12044 NONAME
+	_ZN18QRuntimePixmapDataD1Ev @ 12045 NONAME
+	_ZN18QRuntimePixmapDataD2Ev @ 12046 NONAME
+	_ZN7QPixmap15fromImageReaderEP12QImageReader6QFlagsIN2Qt19ImageConversionFlagEE @ 12047 NONAME
+	_ZNK18QRuntimePixmapData11memoryUsageEv @ 12048 NONAME ABSENT
+	_ZNK18QRuntimePixmapData11paintEngineEv @ 12049 NONAME
+	_ZNK18QRuntimePixmapData11runtimeDataEv @ 12050 NONAME
+	_ZNK18QRuntimePixmapData11transformedERK10QTransformN2Qt18TransformationModeE @ 12051 NONAME
+	_ZNK18QRuntimePixmapData12alphaChannelEv @ 12052 NONAME
+	_ZNK18QRuntimePixmapData15hasAlphaChannelEv @ 12053 NONAME
+	_ZNK18QRuntimePixmapData26createCompatiblePixmapDataEv @ 12054 NONAME
+	_ZNK18QRuntimePixmapData4maskEv @ 12055 NONAME
+	_ZNK18QRuntimePixmapData6metricEN12QPaintDevice17PaintDeviceMetricE @ 12056 NONAME
+	_ZNK18QRuntimePixmapData7toImageEv @ 12057 NONAME
+	_ZTI18QRuntimePixmapData @ 12058 NONAME
+	_ZTV18QRuntimePixmapData @ 12059 NONAME
+	_ZN11QEglContext21swapBuffersRegion2NOKEiPK7QRegion @ 12060 NONAME
+	_ZN4QEgl24eglSwapBuffersRegion2NOKEiiiPKi @ 12061 NONAME
+	_ZN13QS60MainAppUi11HandleErrorEiRK14SExtendedErrorR6TDes16S4_ @ 12062 NONAME
+	_ZN13QS60MainAppUi13PrepareToExitEv @ 12063 NONAME
+	_ZN13QS60MainAppUi15MopSupplyObjectE8TTypeUid @ 12064 NONAME
+	_ZN13QS60MainAppUi15ProcessCommandLEi @ 12065 NONAME
+	_ZN13QS60MainAppUi18HandleSystemEventLERK8TWsEvent @ 12066 NONAME
+	_ZN13QS60MainAppUi19Reserved_MtsmObjectEv @ 12067 NONAME
+	_ZN13QS60MainAppUi21Reserved_MtsmPositionEv @ 12068 NONAME
+	_ZN13QS60MainAppUi22HandleForegroundEventLEi @ 12069 NONAME
+	_ZN13QS60MainAppUi22HandleViewDeactivationERK10TVwsViewIdS2_ @ 12070 NONAME
+	_ZN13QS60MainAppUi25HandleTouchPaneSizeChangeEv @ 12071 NONAME
+	_ZN13QS60MainAppUi26HandleScreenDeviceChangedLEv @ 12072 NONAME
+	_ZN13QS60MainAppUi31HandleApplicationSpecificEventLEiRK8TWsEvent @ 12073 NONAME
+	_ZN13QS60MainAppUi4ExitEv @ 12074 NONAME
+	_ZN13QS60MainAppUi9SetFadedLEi @ 12075 NONAME
+	_ZN16QS60MainDocument9OpenFileLERP10CFileStoreR5RFile @ 12076 NONAME
+	_ZN16QS60MainDocument9OpenFileLEiRK7TDesC16R3RFs @ 12077 NONAME
+	_ZN19QS60MainApplication13NewAppServerLERP13CApaAppServer @ 12078 NONAME
+	_ZN19QS60MainApplication16PreDocConstructLEv @ 12079 NONAME
+	_ZNK13QS60MainAppUi15ApplicationRectEv @ 12080 NONAME
+	_ZNK19QS60MainApplication13OpenIniFileLCER3RFs @ 12081 NONAME
+	_ZThn100_N13QS60MainAppUi25HandleTouchPaneSizeChangeEv @ 12082 NONAME
+	_ZThn24_N13QS60MainAppUi15ProcessCommandLEi @ 12083 NONAME
+	_ZThn40_N13QS60MainAppUi15MopSupplyObjectE8TTypeUid @ 12084 NONAME
+	_ZThn92_N13QS60MainAppUi22HandleViewDeactivationERK10TVwsViewIdS2_ @ 12085 NONAME
+	_ZN18QTapAndHoldGesture10setTimeoutEi @ 12086 NONAME
+	_ZN18QTapAndHoldGesture7timeoutEv @ 12087 NONAME
+	_ZN20QGraphicsItemPrivate20focusScopeItemChangeEb @ 12088 NONAME
+	_ZN20QGraphicsItemPrivate26childrenBoundingRectHelperEP10QTransformP6QRectFb @ 12089 NONAME
+	_ZN14QGraphicsScale13xScaleChangedEv @ 12090 NONAME
+	_ZN14QGraphicsScale13yScaleChangedEv @ 12091 NONAME
+	_ZN14QGraphicsScale13zScaleChangedEv @ 12092 NONAME
+	_ZN19QApplicationPrivate14_q_aboutToQuitEv @ 12093 NONAME
 
--- a/src/s60installs/eabi/QtNetworku.def	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/s60installs/eabi/QtNetworku.def	Mon Oct 04 01:19:32 2010 +0300
@@ -993,182 +993,180 @@
 	_ZN10QSslSocket15setSocketOptionEN15QAbstractSocket12SocketOptionERK8QVariant @ 992 NONAME
 	_ZN15QNetworkRequest20setOriginatingObjectEP7QObject @ 993 NONAME
 	_ZNK15QNetworkRequest17originatingObjectEv @ 994 NONAME
-	_Z35qNetworkConfigurationManagerPrivatev @ 995 NONAME
-	_ZN13QBearerEngine11qt_metacallEN11QMetaObject4CallEiPPv @ 996 NONAME
-	_ZN13QBearerEngine11qt_metacastEPKc @ 997 NONAME
-	_ZN13QBearerEngine15updateCompletedEv @ 998 NONAME
-	_ZN13QBearerEngine16staticMetaObjectE @ 999 NONAME DATA 16
-	_ZN13QBearerEngine18configurationAddedE28QExplicitlySharedDataPointerI28QNetworkConfigurationPrivateE @ 1000 NONAME
-	_ZN13QBearerEngine19getStaticMetaObjectEv @ 1001 NONAME
-	_ZN13QBearerEngine20configurationChangedE28QExplicitlySharedDataPointerI28QNetworkConfigurationPrivateE @ 1002 NONAME
-	_ZN13QBearerEngine20configurationRemovedE28QExplicitlySharedDataPointerI28QNetworkConfigurationPrivateE @ 1003 NONAME
-	_ZN13QBearerEngineC2EP7QObject @ 1004 NONAME
-	_ZN13QBearerEngineD0Ev @ 1005 NONAME
-	_ZN13QBearerEngineD1Ev @ 1006 NONAME
-	_ZN13QBearerEngineD2Ev @ 1007 NONAME
-	_ZN15QNetworkRequest11setPriorityENS_8PriorityE @ 1008 NONAME
-	_ZN15QNetworkSession11qt_metacallEN11QMetaObject4CallEiPPv @ 1009 NONAME
-	_ZN15QNetworkSession11qt_metacastEPKc @ 1010 NONAME
-	_ZN15QNetworkSession12stateChangedENS_5StateE @ 1011 NONAME
-	_ZN15QNetworkSession13connectNotifyEPKc @ 1012 NONAME
-	_ZN15QNetworkSession13waitForOpenedEi @ 1013 NONAME
-	_ZN15QNetworkSession16disconnectNotifyEPKc @ 1014 NONAME
-	_ZN15QNetworkSession16staticMetaObjectE @ 1015 NONAME DATA 16
-	_ZN15QNetworkSession18setSessionPropertyERK7QStringRK8QVariant @ 1016 NONAME
-	_ZN15QNetworkSession19getStaticMetaObjectEv @ 1017 NONAME
-	_ZN15QNetworkSession25newConfigurationActivatedEv @ 1018 NONAME
-	_ZN15QNetworkSession29preferredConfigurationChangedERK21QNetworkConfigurationb @ 1019 NONAME
-	_ZN15QNetworkSession4openEv @ 1020 NONAME
-	_ZN15QNetworkSession4stopEv @ 1021 NONAME
-	_ZN15QNetworkSession5closeEv @ 1022 NONAME
-	_ZN15QNetworkSession5errorENS_12SessionErrorE @ 1023 NONAME
-	_ZN15QNetworkSession6acceptEv @ 1024 NONAME
-	_ZN15QNetworkSession6closedEv @ 1025 NONAME
-	_ZN15QNetworkSession6ignoreEv @ 1026 NONAME
-	_ZN15QNetworkSession6openedEv @ 1027 NONAME
-	_ZN15QNetworkSession6rejectEv @ 1028 NONAME
-	_ZN15QNetworkSession7migrateEv @ 1029 NONAME
-	_ZN15QNetworkSessionC1ERK21QNetworkConfigurationP7QObject @ 1030 NONAME
-	_ZN15QNetworkSessionC2ERK21QNetworkConfigurationP7QObject @ 1031 NONAME
-	_ZN15QNetworkSessionD0Ev @ 1032 NONAME
-	_ZN15QNetworkSessionD1Ev @ 1033 NONAME
-	_ZN15QNetworkSessionD2Ev @ 1034 NONAME
-	_ZN19QBearerEnginePlugin11qt_metacallEN11QMetaObject4CallEiPPv @ 1035 NONAME
-	_ZN19QBearerEnginePlugin11qt_metacastEPKc @ 1036 NONAME
-	_ZN19QBearerEnginePlugin16staticMetaObjectE @ 1037 NONAME DATA 16
-	_ZN19QBearerEnginePlugin19getStaticMetaObjectEv @ 1038 NONAME
-	_ZN19QBearerEnginePluginC2EP7QObject @ 1039 NONAME
-	_ZN19QBearerEnginePluginD0Ev @ 1040 NONAME
-	_ZN19QBearerEnginePluginD1Ev @ 1041 NONAME
-	_ZN19QBearerEnginePluginD2Ev @ 1042 NONAME
-	_ZN21QNetworkAccessManager16setConfigurationERK21QNetworkConfiguration @ 1043 NONAME
-	_ZN21QNetworkAccessManager17sendCustomRequestERK15QNetworkRequestRK10QByteArrayP9QIODevice @ 1044 NONAME
-	_ZN21QNetworkAccessManager20networkAccessChangedEb @ 1045 NONAME ABSENT
-	_ZN21QNetworkAccessManager20networkSessionOnlineEv @ 1046 NONAME ABSENT
-	_ZN21QNetworkAccessManager23setNetworkAccessEnabledEb @ 1047 NONAME ABSENT
-	_ZN21QNetworkConfigurationC1ERKS_ @ 1048 NONAME
-	_ZN21QNetworkConfigurationC1Ev @ 1049 NONAME
-	_ZN21QNetworkConfigurationC2ERKS_ @ 1050 NONAME
-	_ZN21QNetworkConfigurationC2Ev @ 1051 NONAME
-	_ZN21QNetworkConfigurationD1Ev @ 1052 NONAME
-	_ZN21QNetworkConfigurationD2Ev @ 1053 NONAME
-	_ZN21QNetworkConfigurationaSERKS_ @ 1054 NONAME
-	_ZN22QNetworkSessionPrivate11qt_metacallEN11QMetaObject4CallEiPPv @ 1055 NONAME
-	_ZN22QNetworkSessionPrivate11qt_metacastEPKc @ 1056 NONAME
-	_ZN22QNetworkSessionPrivate12stateChangedEN15QNetworkSession5StateE @ 1057 NONAME
-	_ZN22QNetworkSessionPrivate16staticMetaObjectE @ 1058 NONAME DATA 16
-	_ZN22QNetworkSessionPrivate19getStaticMetaObjectEv @ 1059 NONAME
-	_ZN22QNetworkSessionPrivate25newConfigurationActivatedEv @ 1060 NONAME
-	_ZN22QNetworkSessionPrivate25quitPendingWaitsForOpenedEv @ 1061 NONAME
-	_ZN22QNetworkSessionPrivate29preferredConfigurationChangedERK21QNetworkConfigurationb @ 1062 NONAME
-	_ZN22QNetworkSessionPrivate5errorEN15QNetworkSession12SessionErrorE @ 1063 NONAME
-	_ZN22QNetworkSessionPrivate6closedEv @ 1064 NONAME
-	_ZN28QNetworkConfigurationManager11qt_metacallEN11QMetaObject4CallEiPPv @ 1065 NONAME
-	_ZN28QNetworkConfigurationManager11qt_metacastEPKc @ 1066 NONAME
-	_ZN28QNetworkConfigurationManager15updateCompletedEv @ 1067 NONAME
-	_ZN28QNetworkConfigurationManager16staticMetaObjectE @ 1068 NONAME DATA 16
-	_ZN28QNetworkConfigurationManager18configurationAddedERK21QNetworkConfiguration @ 1069 NONAME
-	_ZN28QNetworkConfigurationManager18onlineStateChangedEb @ 1070 NONAME
-	_ZN28QNetworkConfigurationManager19getStaticMetaObjectEv @ 1071 NONAME
-	_ZN28QNetworkConfigurationManager20configurationChangedERK21QNetworkConfiguration @ 1072 NONAME
-	_ZN28QNetworkConfigurationManager20configurationRemovedERK21QNetworkConfiguration @ 1073 NONAME
-	_ZN28QNetworkConfigurationManager20updateConfigurationsEv @ 1074 NONAME
-	_ZN28QNetworkConfigurationManagerC1EP7QObject @ 1075 NONAME
-	_ZN28QNetworkConfigurationManagerC2EP7QObject @ 1076 NONAME
-	_ZN28QNetworkConfigurationManagerD0Ev @ 1077 NONAME
-	_ZN28QNetworkConfigurationManagerD1Ev @ 1078 NONAME
-	_ZN28QNetworkConfigurationManagerD2Ev @ 1079 NONAME
-	_ZN35QNetworkConfigurationManagerPrivate11qt_metacallEN11QMetaObject4CallEiPPv @ 1080 NONAME
-	_ZN35QNetworkConfigurationManagerPrivate11qt_metacastEPKc @ 1081 NONAME
-	_ZN35QNetworkConfigurationManagerPrivate16staticMetaObjectE @ 1082 NONAME DATA 16
-	_ZN35QNetworkConfigurationManagerPrivate18configurationAddedE28QExplicitlySharedDataPointerI28QNetworkConfigurationPrivateE @ 1083 NONAME
-	_ZN35QNetworkConfigurationManagerPrivate18configurationAddedERK21QNetworkConfiguration @ 1084 NONAME
-	_ZN35QNetworkConfigurationManagerPrivate18onlineStateChangedEb @ 1085 NONAME
-	_ZN35QNetworkConfigurationManagerPrivate19getStaticMetaObjectEv @ 1086 NONAME
-	_ZN35QNetworkConfigurationManagerPrivate20configurationChangedE28QExplicitlySharedDataPointerI28QNetworkConfigurationPrivateE @ 1087 NONAME
-	_ZN35QNetworkConfigurationManagerPrivate20configurationChangedERK21QNetworkConfiguration @ 1088 NONAME
-	_ZN35QNetworkConfigurationManagerPrivate20configurationRemovedE28QExplicitlySharedDataPointerI28QNetworkConfigurationPrivateE @ 1089 NONAME
-	_ZN35QNetworkConfigurationManagerPrivate20configurationRemovedERK21QNetworkConfiguration @ 1090 NONAME
-	_ZN35QNetworkConfigurationManagerPrivate20updateConfigurationsEv @ 1091 NONAME
-	_ZN35QNetworkConfigurationManagerPrivate27configurationUpdateCompleteEv @ 1092 NONAME
-	_ZN35QNetworkConfigurationManagerPrivate31performAsyncConfigurationUpdateEv @ 1093 NONAME
-	_ZN35QNetworkConfigurationManagerPrivate5abortEv @ 1094 NONAME
-	_ZN35QNetworkConfigurationManagerPrivate7enginesEv @ 1095 NONAME
-	_ZN35QNetworkConfigurationManagerPrivateC1Ev @ 1096 NONAME
-	_ZN35QNetworkConfigurationManagerPrivateC2Ev @ 1097 NONAME
-	_ZN35QNetworkConfigurationManagerPrivateD0Ev @ 1098 NONAME
-	_ZN35QNetworkConfigurationManagerPrivateD1Ev @ 1099 NONAME
-	_ZN35QNetworkConfigurationManagerPrivateD2Ev @ 1100 NONAME
-	_ZNK13QBearerEngine10metaObjectEv @ 1101 NONAME
-	_ZNK13QNetworkReply14rawHeaderPairsEv @ 1102 NONAME
-	_ZNK15QNetworkRequest8priorityEv @ 1103 NONAME
-	_ZNK15QNetworkSession10activeTimeEv @ 1104 NONAME
-	_ZNK15QNetworkSession10metaObjectEv @ 1105 NONAME
-	_ZNK15QNetworkSession11errorStringEv @ 1106 NONAME
-	_ZNK15QNetworkSession12bytesWrittenEv @ 1107 NONAME
-	_ZNK15QNetworkSession13bytesReceivedEv @ 1108 NONAME
-	_ZNK15QNetworkSession13configurationEv @ 1109 NONAME
-	_ZNK15QNetworkSession15sessionPropertyERK7QString @ 1110 NONAME
-	_ZNK15QNetworkSession5errorEv @ 1111 NONAME
-	_ZNK15QNetworkSession5stateEv @ 1112 NONAME
-	_ZNK15QNetworkSession6isOpenEv @ 1113 NONAME
-	_ZNK15QNetworkSession9interfaceEv @ 1114 NONAME
-	_ZNK19QBearerEnginePlugin10metaObjectEv @ 1115 NONAME
-	_ZNK21QNetworkAccessManager13configurationEv @ 1116 NONAME
-	_ZNK21QNetworkAccessManager19activeConfigurationEv @ 1117 NONAME
-	_ZNK21QNetworkAccessManager20networkAccessEnabledEv @ 1118 NONAME ABSENT
-	_ZNK21QNetworkConfiguration10bearerNameEv @ 1119 NONAME
-	_ZNK21QNetworkConfiguration10identifierEv @ 1120 NONAME
-	_ZNK21QNetworkConfiguration18isRoamingAvailableEv @ 1121 NONAME
-	_ZNK21QNetworkConfiguration4nameEv @ 1122 NONAME
-	_ZNK21QNetworkConfiguration4typeEv @ 1123 NONAME
-	_ZNK21QNetworkConfiguration5stateEv @ 1124 NONAME
-	_ZNK21QNetworkConfiguration7isValidEv @ 1125 NONAME
-	_ZNK21QNetworkConfiguration7purposeEv @ 1126 NONAME
-	_ZNK21QNetworkConfiguration8childrenEv @ 1127 NONAME
-	_ZNK21QNetworkConfigurationeqERKS_ @ 1128 NONAME
-	_ZNK22QNetworkSessionPrivate10metaObjectEv @ 1129 NONAME
-	_ZNK28QNetworkConfigurationManager10metaObjectEv @ 1130 NONAME
-	_ZNK28QNetworkConfigurationManager12capabilitiesEv @ 1131 NONAME
-	_ZNK28QNetworkConfigurationManager17allConfigurationsE6QFlagsIN21QNetworkConfiguration9StateFlagEE @ 1132 NONAME
-	_ZNK28QNetworkConfigurationManager20defaultConfigurationEv @ 1133 NONAME
-	_ZNK28QNetworkConfigurationManager27configurationFromIdentifierERK7QString @ 1134 NONAME
-	_ZNK28QNetworkConfigurationManager8isOnlineEv @ 1135 NONAME
-	_ZNK35QNetworkConfigurationManagerPrivate10metaObjectEv @ 1136 NONAME
-	_ZTI13QBearerEngine @ 1137 NONAME
-	_ZTI15QNetworkSession @ 1138 NONAME
-	_ZTI19QBearerEnginePlugin @ 1139 NONAME
-	_ZTI22QNetworkSessionPrivate @ 1140 NONAME
-	_ZTI28QNetworkConfigurationManager @ 1141 NONAME
-	_ZTI29QBearerEngineFactoryInterface @ 1142 NONAME
-	_ZTI35QNetworkConfigurationManagerPrivate @ 1143 NONAME
-	_ZTV13QBearerEngine @ 1144 NONAME
-	_ZTV15QNetworkSession @ 1145 NONAME
-	_ZTV19QBearerEnginePlugin @ 1146 NONAME
-	_ZTV22QNetworkSessionPrivate @ 1147 NONAME
-	_ZTV28QNetworkConfigurationManager @ 1148 NONAME
-	_ZTV35QNetworkConfigurationManagerPrivate @ 1149 NONAME
-	_ZThn8_N19QBearerEnginePluginD0Ev @ 1150 NONAME
-	_ZThn8_N19QBearerEnginePluginD1Ev @ 1151 NONAME
-	_Z19qt_qhostinfo_lookupRK7QStringP7QObjectPKcPbPi @ 1152 NONAME
-	_Z24qt_qhostinfo_clear_cachev @ 1153 NONAME ABSENT
-	_ZN21QNetworkAccessManager20setNetworkAccessibleENS_20NetworkAccessibilityE @ 1154 NONAME
-	_ZN21QNetworkAccessManager23networkSessionConnectedEv @ 1155 NONAME
-	_ZN21QNetworkAccessManager24networkAccessibleChangedENS_20NetworkAccessibilityE @ 1156 NONAME
-	_ZN35QNetworkConfigurationManagerPrivate11pollEnginesEv @ 1157 NONAME
-	_ZN35QNetworkConfigurationManagerPrivate12startPollingEv @ 1158 NONAME
-	_ZN35QNetworkConfigurationManagerPrivate13enablePollingEv @ 1159 NONAME
-	_ZN35QNetworkConfigurationManagerPrivate14disablePollingEv @ 1160 NONAME
-	_ZN35QNetworkConfigurationManagerPrivate17allConfigurationsE6QFlagsIN21QNetworkConfiguration9StateFlagEE @ 1161 NONAME
-	_ZN35QNetworkConfigurationManagerPrivate20defaultConfigurationEv @ 1162 NONAME
-	_ZN35QNetworkConfigurationManagerPrivate27configurationFromIdentifierERK7QString @ 1163 NONAME
-	_ZN35QNetworkConfigurationManagerPrivate8isOnlineEv @ 1164 NONAME
-	_ZNK13QBearerEngine15requiresPollingEv @ 1165 NONAME
-	_ZNK13QBearerEngine19configurationsInUseEv @ 1166 NONAME
-	_ZNK21QNetworkAccessManager17networkAccessibleEv @ 1167 NONAME
-	_ZN35QNetworkConfigurationManagerPrivate12capabilitiesEv @ 1168 NONAME
-	_ZN10QTcpServer20addPendingConnectionEP10QTcpSocket @ 1169 NONAME
-	_ZN14QAuthenticator9setOptionERK7QStringRK8QVariant @ 1170 NONAME
-	_ZNK14QAuthenticator6optionERK7QString @ 1171 NONAME
-	_ZNK14QAuthenticator7optionsEv @ 1172 NONAME
+	_Z19qt_qhostinfo_lookupRK7QStringP7QObjectPKcPbPi @ 995 NONAME
+	_Z24qt_qhostinfo_clear_cachev @ 996 NONAME ABSENT
+	_Z35qNetworkConfigurationManagerPrivatev @ 997 NONAME
+	_ZN10QTcpServer20addPendingConnectionEP10QTcpSocket @ 998 NONAME
+	_ZN13QBearerEngine11qt_metacallEN11QMetaObject4CallEiPPv @ 999 NONAME
+	_ZN13QBearerEngine11qt_metacastEPKc @ 1000 NONAME
+	_ZN13QBearerEngine15updateCompletedEv @ 1001 NONAME
+	_ZN13QBearerEngine16staticMetaObjectE @ 1002 NONAME DATA 16
+	_ZN13QBearerEngine18configurationAddedE28QExplicitlySharedDataPointerI28QNetworkConfigurationPrivateE @ 1003 NONAME
+	_ZN13QBearerEngine19getStaticMetaObjectEv @ 1004 NONAME
+	_ZN13QBearerEngine20configurationChangedE28QExplicitlySharedDataPointerI28QNetworkConfigurationPrivateE @ 1005 NONAME
+	_ZN13QBearerEngine20configurationRemovedE28QExplicitlySharedDataPointerI28QNetworkConfigurationPrivateE @ 1006 NONAME
+	_ZN13QBearerEngineC2EP7QObject @ 1007 NONAME
+	_ZN13QBearerEngineD0Ev @ 1008 NONAME
+	_ZN13QBearerEngineD1Ev @ 1009 NONAME
+	_ZN13QBearerEngineD2Ev @ 1010 NONAME
+	_ZN15QNetworkRequest11setPriorityENS_8PriorityE @ 1011 NONAME
+	_ZN15QNetworkSession11qt_metacallEN11QMetaObject4CallEiPPv @ 1012 NONAME
+	_ZN15QNetworkSession11qt_metacastEPKc @ 1013 NONAME
+	_ZN15QNetworkSession12stateChangedENS_5StateE @ 1014 NONAME
+	_ZN15QNetworkSession13connectNotifyEPKc @ 1015 NONAME
+	_ZN15QNetworkSession13waitForOpenedEi @ 1016 NONAME
+	_ZN15QNetworkSession16disconnectNotifyEPKc @ 1017 NONAME
+	_ZN15QNetworkSession16staticMetaObjectE @ 1018 NONAME DATA 16
+	_ZN15QNetworkSession18setSessionPropertyERK7QStringRK8QVariant @ 1019 NONAME
+	_ZN15QNetworkSession19getStaticMetaObjectEv @ 1020 NONAME
+	_ZN15QNetworkSession25newConfigurationActivatedEv @ 1021 NONAME
+	_ZN15QNetworkSession29preferredConfigurationChangedERK21QNetworkConfigurationb @ 1022 NONAME
+	_ZN15QNetworkSession4openEv @ 1023 NONAME
+	_ZN15QNetworkSession4stopEv @ 1024 NONAME
+	_ZN15QNetworkSession5closeEv @ 1025 NONAME
+	_ZN15QNetworkSession5errorENS_12SessionErrorE @ 1026 NONAME
+	_ZN15QNetworkSession6acceptEv @ 1027 NONAME
+	_ZN15QNetworkSession6closedEv @ 1028 NONAME
+	_ZN15QNetworkSession6ignoreEv @ 1029 NONAME
+	_ZN15QNetworkSession6openedEv @ 1030 NONAME
+	_ZN15QNetworkSession6rejectEv @ 1031 NONAME
+	_ZN15QNetworkSession7migrateEv @ 1032 NONAME
+	_ZN15QNetworkSessionC1ERK21QNetworkConfigurationP7QObject @ 1033 NONAME
+	_ZN15QNetworkSessionC2ERK21QNetworkConfigurationP7QObject @ 1034 NONAME
+	_ZN15QNetworkSessionD0Ev @ 1035 NONAME
+	_ZN15QNetworkSessionD1Ev @ 1036 NONAME
+	_ZN15QNetworkSessionD2Ev @ 1037 NONAME
+	_ZN19QBearerEnginePlugin11qt_metacallEN11QMetaObject4CallEiPPv @ 1038 NONAME
+	_ZN19QBearerEnginePlugin11qt_metacastEPKc @ 1039 NONAME
+	_ZN19QBearerEnginePlugin16staticMetaObjectE @ 1040 NONAME DATA 16
+	_ZN19QBearerEnginePlugin19getStaticMetaObjectEv @ 1041 NONAME
+	_ZN19QBearerEnginePluginC2EP7QObject @ 1042 NONAME
+	_ZN19QBearerEnginePluginD0Ev @ 1043 NONAME
+	_ZN19QBearerEnginePluginD1Ev @ 1044 NONAME
+	_ZN19QBearerEnginePluginD2Ev @ 1045 NONAME
+	_ZN21QNetworkAccessManager16setConfigurationERK21QNetworkConfiguration @ 1046 NONAME
+	_ZN21QNetworkAccessManager17sendCustomRequestERK15QNetworkRequestRK10QByteArrayP9QIODevice @ 1047 NONAME
+	_ZN21QNetworkAccessManager20setNetworkAccessibleENS_20NetworkAccessibilityE @ 1048 NONAME
+	_ZN21QNetworkAccessManager23networkSessionConnectedEv @ 1049 NONAME
+	_ZN21QNetworkAccessManager24networkAccessibleChangedENS_20NetworkAccessibilityE @ 1050 NONAME
+	_ZN21QNetworkConfigurationC1ERKS_ @ 1051 NONAME
+	_ZN21QNetworkConfigurationC1Ev @ 1052 NONAME
+	_ZN21QNetworkConfigurationC2ERKS_ @ 1053 NONAME
+	_ZN21QNetworkConfigurationC2Ev @ 1054 NONAME
+	_ZN21QNetworkConfigurationD1Ev @ 1055 NONAME
+	_ZN21QNetworkConfigurationD2Ev @ 1056 NONAME
+	_ZN21QNetworkConfigurationaSERKS_ @ 1057 NONAME
+	_ZN22QNetworkSessionPrivate11qt_metacallEN11QMetaObject4CallEiPPv @ 1058 NONAME
+	_ZN22QNetworkSessionPrivate11qt_metacastEPKc @ 1059 NONAME
+	_ZN22QNetworkSessionPrivate12stateChangedEN15QNetworkSession5StateE @ 1060 NONAME
+	_ZN22QNetworkSessionPrivate16staticMetaObjectE @ 1061 NONAME DATA 16
+	_ZN22QNetworkSessionPrivate19getStaticMetaObjectEv @ 1062 NONAME
+	_ZN22QNetworkSessionPrivate25newConfigurationActivatedEv @ 1063 NONAME
+	_ZN22QNetworkSessionPrivate25quitPendingWaitsForOpenedEv @ 1064 NONAME
+	_ZN22QNetworkSessionPrivate29preferredConfigurationChangedERK21QNetworkConfigurationb @ 1065 NONAME
+	_ZN22QNetworkSessionPrivate5errorEN15QNetworkSession12SessionErrorE @ 1066 NONAME
+	_ZN22QNetworkSessionPrivate6closedEv @ 1067 NONAME
+	_ZN28QNetworkConfigurationManager11qt_metacallEN11QMetaObject4CallEiPPv @ 1068 NONAME
+	_ZN28QNetworkConfigurationManager11qt_metacastEPKc @ 1069 NONAME
+	_ZN28QNetworkConfigurationManager15updateCompletedEv @ 1070 NONAME
+	_ZN28QNetworkConfigurationManager16staticMetaObjectE @ 1071 NONAME DATA 16
+	_ZN28QNetworkConfigurationManager18configurationAddedERK21QNetworkConfiguration @ 1072 NONAME
+	_ZN28QNetworkConfigurationManager18onlineStateChangedEb @ 1073 NONAME
+	_ZN28QNetworkConfigurationManager19getStaticMetaObjectEv @ 1074 NONAME
+	_ZN28QNetworkConfigurationManager20configurationChangedERK21QNetworkConfiguration @ 1075 NONAME
+	_ZN28QNetworkConfigurationManager20configurationRemovedERK21QNetworkConfiguration @ 1076 NONAME
+	_ZN28QNetworkConfigurationManager20updateConfigurationsEv @ 1077 NONAME
+	_ZN28QNetworkConfigurationManagerC1EP7QObject @ 1078 NONAME
+	_ZN28QNetworkConfigurationManagerC2EP7QObject @ 1079 NONAME
+	_ZN28QNetworkConfigurationManagerD0Ev @ 1080 NONAME
+	_ZN28QNetworkConfigurationManagerD1Ev @ 1081 NONAME
+	_ZN28QNetworkConfigurationManagerD2Ev @ 1082 NONAME
+	_ZN35QNetworkConfigurationManagerPrivate11pollEnginesEv @ 1083 NONAME
+	_ZN35QNetworkConfigurationManagerPrivate11qt_metacallEN11QMetaObject4CallEiPPv @ 1084 NONAME
+	_ZN35QNetworkConfigurationManagerPrivate11qt_metacastEPKc @ 1085 NONAME
+	_ZN35QNetworkConfigurationManagerPrivate12capabilitiesEv @ 1086 NONAME
+	_ZN35QNetworkConfigurationManagerPrivate12startPollingEv @ 1087 NONAME
+	_ZN35QNetworkConfigurationManagerPrivate13enablePollingEv @ 1088 NONAME
+	_ZN35QNetworkConfigurationManagerPrivate14disablePollingEv @ 1089 NONAME
+	_ZN35QNetworkConfigurationManagerPrivate16staticMetaObjectE @ 1090 NONAME DATA 16
+	_ZN35QNetworkConfigurationManagerPrivate17allConfigurationsE6QFlagsIN21QNetworkConfiguration9StateFlagEE @ 1091 NONAME
+	_ZN35QNetworkConfigurationManagerPrivate18configurationAddedE28QExplicitlySharedDataPointerI28QNetworkConfigurationPrivateE @ 1092 NONAME
+	_ZN35QNetworkConfigurationManagerPrivate18configurationAddedERK21QNetworkConfiguration @ 1093 NONAME
+	_ZN35QNetworkConfigurationManagerPrivate18onlineStateChangedEb @ 1094 NONAME
+	_ZN35QNetworkConfigurationManagerPrivate19getStaticMetaObjectEv @ 1095 NONAME
+	_ZN35QNetworkConfigurationManagerPrivate20configurationChangedE28QExplicitlySharedDataPointerI28QNetworkConfigurationPrivateE @ 1096 NONAME
+	_ZN35QNetworkConfigurationManagerPrivate20configurationChangedERK21QNetworkConfiguration @ 1097 NONAME
+	_ZN35QNetworkConfigurationManagerPrivate20configurationRemovedE28QExplicitlySharedDataPointerI28QNetworkConfigurationPrivateE @ 1098 NONAME
+	_ZN35QNetworkConfigurationManagerPrivate20configurationRemovedERK21QNetworkConfiguration @ 1099 NONAME
+	_ZN35QNetworkConfigurationManagerPrivate20defaultConfigurationEv @ 1100 NONAME
+	_ZN35QNetworkConfigurationManagerPrivate20updateConfigurationsEv @ 1101 NONAME
+	_ZN35QNetworkConfigurationManagerPrivate27configurationFromIdentifierERK7QString @ 1102 NONAME
+	_ZN35QNetworkConfigurationManagerPrivate27configurationUpdateCompleteEv @ 1103 NONAME
+	_ZN35QNetworkConfigurationManagerPrivate31performAsyncConfigurationUpdateEv @ 1104 NONAME
+	_ZN35QNetworkConfigurationManagerPrivate5abortEv @ 1105 NONAME
+	_ZN35QNetworkConfigurationManagerPrivate7enginesEv @ 1106 NONAME
+	_ZN35QNetworkConfigurationManagerPrivate8isOnlineEv @ 1107 NONAME
+	_ZN35QNetworkConfigurationManagerPrivateC1Ev @ 1108 NONAME
+	_ZN35QNetworkConfigurationManagerPrivateC2Ev @ 1109 NONAME
+	_ZN35QNetworkConfigurationManagerPrivateD0Ev @ 1110 NONAME
+	_ZN35QNetworkConfigurationManagerPrivateD1Ev @ 1111 NONAME
+	_ZN35QNetworkConfigurationManagerPrivateD2Ev @ 1112 NONAME
+	_ZNK13QBearerEngine10metaObjectEv @ 1113 NONAME
+	_ZNK13QBearerEngine15requiresPollingEv @ 1114 NONAME
+	_ZNK13QBearerEngine19configurationsInUseEv @ 1115 NONAME
+	_ZNK13QNetworkReply14rawHeaderPairsEv @ 1116 NONAME
+	_ZNK15QNetworkRequest8priorityEv @ 1117 NONAME
+	_ZNK15QNetworkSession10activeTimeEv @ 1118 NONAME
+	_ZNK15QNetworkSession10metaObjectEv @ 1119 NONAME
+	_ZNK15QNetworkSession11errorStringEv @ 1120 NONAME
+	_ZNK15QNetworkSession12bytesWrittenEv @ 1121 NONAME
+	_ZNK15QNetworkSession13bytesReceivedEv @ 1122 NONAME
+	_ZNK15QNetworkSession13configurationEv @ 1123 NONAME
+	_ZNK15QNetworkSession15sessionPropertyERK7QString @ 1124 NONAME
+	_ZNK15QNetworkSession5errorEv @ 1125 NONAME
+	_ZNK15QNetworkSession5stateEv @ 1126 NONAME
+	_ZNK15QNetworkSession6isOpenEv @ 1127 NONAME
+	_ZNK15QNetworkSession9interfaceEv @ 1128 NONAME
+	_ZNK19QBearerEnginePlugin10metaObjectEv @ 1129 NONAME
+	_ZNK21QNetworkAccessManager13configurationEv @ 1130 NONAME
+	_ZNK21QNetworkAccessManager17networkAccessibleEv @ 1131 NONAME
+	_ZNK21QNetworkAccessManager19activeConfigurationEv @ 1132 NONAME
+	_ZNK21QNetworkConfiguration10bearerNameEv @ 1133 NONAME ABSENT
+	_ZNK21QNetworkConfiguration10identifierEv @ 1134 NONAME
+	_ZNK21QNetworkConfiguration18isRoamingAvailableEv @ 1135 NONAME
+	_ZNK21QNetworkConfiguration4nameEv @ 1136 NONAME
+	_ZNK21QNetworkConfiguration4typeEv @ 1137 NONAME
+	_ZNK21QNetworkConfiguration5stateEv @ 1138 NONAME
+	_ZNK21QNetworkConfiguration7isValidEv @ 1139 NONAME
+	_ZNK21QNetworkConfiguration7purposeEv @ 1140 NONAME
+	_ZNK21QNetworkConfiguration8childrenEv @ 1141 NONAME
+	_ZNK21QNetworkConfigurationeqERKS_ @ 1142 NONAME
+	_ZNK22QNetworkSessionPrivate10metaObjectEv @ 1143 NONAME
+	_ZNK28QNetworkConfigurationManager10metaObjectEv @ 1144 NONAME
+	_ZNK28QNetworkConfigurationManager12capabilitiesEv @ 1145 NONAME
+	_ZNK28QNetworkConfigurationManager17allConfigurationsE6QFlagsIN21QNetworkConfiguration9StateFlagEE @ 1146 NONAME
+	_ZNK28QNetworkConfigurationManager20defaultConfigurationEv @ 1147 NONAME
+	_ZNK28QNetworkConfigurationManager27configurationFromIdentifierERK7QString @ 1148 NONAME
+	_ZNK28QNetworkConfigurationManager8isOnlineEv @ 1149 NONAME
+	_ZNK35QNetworkConfigurationManagerPrivate10metaObjectEv @ 1150 NONAME
+	_ZTI13QBearerEngine @ 1151 NONAME
+	_ZTI15QNetworkSession @ 1152 NONAME
+	_ZTI19QBearerEnginePlugin @ 1153 NONAME
+	_ZTI22QNetworkSessionPrivate @ 1154 NONAME
+	_ZTI28QNetworkConfigurationManager @ 1155 NONAME
+	_ZTI29QBearerEngineFactoryInterface @ 1156 NONAME
+	_ZTI35QNetworkConfigurationManagerPrivate @ 1157 NONAME
+	_ZTV13QBearerEngine @ 1158 NONAME
+	_ZTV15QNetworkSession @ 1159 NONAME
+	_ZTV19QBearerEnginePlugin @ 1160 NONAME
+	_ZTV22QNetworkSessionPrivate @ 1161 NONAME
+	_ZTV28QNetworkConfigurationManager @ 1162 NONAME
+	_ZTV35QNetworkConfigurationManagerPrivate @ 1163 NONAME
+	_ZThn8_N19QBearerEnginePluginD0Ev @ 1164 NONAME
+	_ZThn8_N19QBearerEnginePluginD1Ev @ 1165 NONAME
+	_ZN14QAuthenticator9setOptionERK7QStringRK8QVariant @ 1166 NONAME
+	_ZNK14QAuthenticator6optionERK7QString @ 1167 NONAME
+	_ZNK14QAuthenticator7optionsEv @ 1168 NONAME
+	_ZNK21QNetworkConfiguration10bearerTypeEv @ 1169 NONAME
+	_ZNK21QNetworkConfiguration14bearerTypeNameEv @ 1170 NONAME
 
--- a/src/s60installs/eabi/QtOpenVGu.def	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/s60installs/eabi/QtOpenVGu.def	Mon Oct 04 01:19:32 2010 +0300
@@ -196,10 +196,9 @@
 	_ZN13QVGPixmapData19detachImageFromPoolEv @ 195 NONAME
 	_ZTI12QVGImagePool @ 196 NONAME
 	_ZTV12QVGImagePool @ 197 NONAME
-	_ZN14QVGPaintEngine16drawCachedGlyphsEiPKjRK5QFontP11QFontEngineRK7QPointF @ 198 NONAME ABSENT
-	_ZN14QVGPaintEngine18drawStaticTextItemEP15QStaticTextItem @ 199 NONAME
-	_ZN14QVGPaintEngine19drawPixmapFragmentsEPKN8QPainter14PixmapFragmentEiRK7QPixmap6QFlagsINS0_18PixmapFragmentHintEE @ 200 NONAME
-	_ZN25QVGEGLWindowSurfaceDirect6scrollEP7QWidgetRK7QRegionii @ 201 NONAME
-	_ZNK25QVGEGLWindowSurfaceDirect22supportsStaticContentsEv @ 202 NONAME
-	_ZN14QVGPaintEngine16drawCachedGlyphsEiPKjRK5QFontP11QFontEngineRK7QPointFPK11QFixedPoint @ 203 NONAME
+	_ZN25QVGEGLWindowSurfaceDirect6scrollEP7QWidgetRK7QRegionii @ 198 NONAME
+	_ZNK25QVGEGLWindowSurfaceDirect22supportsStaticContentsEv @ 199 NONAME
+	_ZN14QVGPaintEngine16drawCachedGlyphsEiPKjRK5QFontP11QFontEngineRK7QPointFPK11QFixedPoint @ 200 NONAME
+	_ZN14QVGPaintEngine18drawStaticTextItemEP15QStaticTextItem @ 201 NONAME
+	_ZN14QVGPaintEngine19drawPixmapFragmentsEPKN8QPainter14PixmapFragmentEiRK7QPixmap6QFlagsINS0_18PixmapFragmentHintEE @ 202 NONAME
 
--- a/src/s60installs/qt.iby	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/s60installs/qt.iby	Mon Oct 04 01:19:32 2010 +0300
@@ -13,6 +13,7 @@
 file=ABI_DIR\BUILD_DIR\QtSql.dll             SHARED_LIB_DIR\QtSql.dll
 file=ABI_DIR\BUILD_DIR\QtXml.dll             SHARED_LIB_DIR\QtXml.dll
 file=ABI_DIR\BUILD_DIR\QtNetwork.dll         SHARED_LIB_DIR\QtNetwork.dll
+file=ABI_DIR\BUILD_DIR\QSymbianBearer.dll    SHARED_LIB_DIR\QSymbianBearer.dll
 file=ABI_DIR\BUILD_DIR\QtScript.dll          SHARED_LIB_DIR\QtScript.dll
 file=ABI_DIR\BUILD_DIR\QtTest.dll            SHARED_LIB_DIR\QtTest.dll
 file=ABI_DIR\BUILD_DIR\QtWebKit.dll          SHARED_LIB_DIR\QtWebKit.dll
@@ -20,6 +21,7 @@
 file=ABI_DIR\BUILD_DIR\QtMultimedia.dll      SHARED_LIB_DIR\QtMultimedia.dll
 file=ABI_DIR\BUILD_DIR\QtXmlPatterns.dll     SHARED_LIB_DIR\QtXmlPatterns.dll
 file=ABI_DIR\BUILD_DIR\QtDeclarative.dll     SHARED_LIB_DIR\QtDeclarative.dll
+file=ABI_DIR\BUILD_DIR\QtOpenGL.dll          SHARED_LIB_DIR\QtOpenGL.dll
 
 // imageformats
 file=ABI_DIR\BUILD_DIR\qgif.dll              SHARED_LIB_DIR\qgif.dll
@@ -50,6 +52,7 @@
 
 // graphicssystems
 file=ABI_DIR\BUILD_DIR\qvggraphicssystem.dll SHARED_LIB_DIR\qvggraphicssystem.dll
+file=ABI_DIR\BUILD_DIR\qglgraphicssystem.dll SHARED_LIB_DIR\qglgraphicssystem.dll
 
 // S60 version compatibility plugins for 5.0 (3.1 and 3.2 devices are never likely to have this in ROM,
 // so don't bother including those plugins
@@ -95,6 +98,9 @@
 
 // graphicssystems
 data=\epoc32\data\z\resource\qt\plugins\graphicssystems\qvggraphicssystem.qtplugin      resource\qt\plugins\graphicssystems\qvggraphicssystem.qtplugin
+data=\epoc32\data\z\resource\qt\plugins\graphicssystems\qglgraphicssystem.qtplugin      resource\qt\plugins\graphicssystems\qglgraphicssystem.qtplugin
+
+data=\epoc32\data\z\resource\qt\plugins\bearer\qsymbianbearer.qtplugin resource\qt\plugins\bearer\qsymbianbearer.qtplugin
 
 // Stub sis file
 data=ZSYSTEM\install\qt_stub.sis    System\Install\qt_stub.sis
--- a/src/s60installs/qt.pkg	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/s60installs/qt.pkg	Mon Oct 04 01:19:32 2010 +0300
@@ -29,6 +29,7 @@
 "/epoc32/release/armv5/urel/QtXml.dll"    - "!:\sys\bin\QtXml.dll"
 "/epoc32/release/armv5/urel/QtGui.dll"    - "!:\sys\bin\QtGui.dll"
 "/epoc32/release/armv5/urel/QtNetwork.dll"    - "!:\sys\bin\QtNetwork.dll"
+"/epoc32/release/armv5/urel/qsymbianbearer.dll" - "!:\sys\bin\qsymbianbearer.dll"
 "/epoc32/release/armv5/urel/QtTest.dll"    - "!:\sys\bin\QtTest.dll"
 "/epoc32/release/armv5/urel/QtSql.dll"    - "!:\sys\bin\QtSql.dll"
 "/epoc32/release/armv5/urel/QtSvg.dll"    - "!:\sys\bin\QtSvg.dll"
@@ -63,6 +64,7 @@
 "/epoc32/data/z/resource/qt/plugins/graphicssystems/qvggraphicssystem.qtplugin"    - "!:\resource\qt\plugins\graphicssystems\qvggraphicssystem.qtplugin"
 "/epoc32/release/armv5/urel/qsvgicon.dll"    - "!:\sys\bin\qsvgicon.dll"
 "/epoc32/data/z/resource/qt/plugins/iconengines/qsvgicon.qtplugin"    - "!:\resource\qt\plugins\iconengines\qsvgicon.qtplugin"
+ "/epoc32/data/z/resource/qt/plugins/bearer/qsymbianbearer.qtplugin" - "c:\resource\qt\plugins\bearer\qsymbianbearer.qtplugin"
 
 ; Manual PKG post-rules from PRO files
 IF package(0x1028315F)
--- a/src/s60installs/qtdemoapps.iby	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/s60installs/qtdemoapps.iby	Mon Oct 04 01:19:32 2010 +0300
@@ -112,4 +112,150 @@
 S60_APP_RESOURCE(anomaly)
 data=\epoc32\data\Z\private\10003a3f\import\Apps\anomaly_reg.rsc   \private\10003a3f\import\apps\anomaly_reg.rsc
 
+//Qml Apps
+//qmlcalculator
+// Executable and default resource files
+S60_APP_EXE(qmlcalculator)
+S60_APP_RESOURCE(qmlcalculator)
+data =\epoc32\data\z\private\10003a3f\import\apps\qmlcalculator_reg.rsc    \private\10003a3f\import\apps\qmlcalculator_reg.rsc
+data =\epoc32\data\z\resource\apps\qmlcalculator.mif    \resource\apps\qmlcalculator.mif
+
+// DEPLOYMENT
+data =\epoc32\data\z\private\A000E3FB\calculator.qml    \private\A000E3FB\calculator.qml
+data =\epoc32\data\z\private\A000E3FB\Core\Button.qml    \private\A000E3FB\Core\Button.qml
+data =\epoc32\data\z\private\A000E3FB\Core\calculator.js    \private\A000E3FB\Core\calculator.js
+data =\epoc32\data\z\private\A000E3FB\Core\Display.qml    \private\A000E3FB\Core\Display.qml
+data =\epoc32\data\z\private\A000E3FB\Core\images\button-.png    \private\A000E3FB\Core\images\button-.png
+data =\epoc32\data\z\private\A000E3FB\Core\images\button-blue.png    \private\A000E3FB\Core\images\button-blue.png
+data =\epoc32\data\z\private\A000E3FB\Core\images\button-green.png    \private\A000E3FB\Core\images\button-green.png
+data =\epoc32\data\z\private\A000E3FB\Core\images\button-purple.png    \private\A000E3FB\Core\images\button-purple.png
+data =\epoc32\data\z\private\A000E3FB\Core\images\button-red.png    \private\A000E3FB\Core\images\button-red.png
+data =\epoc32\data\z\private\A000E3FB\Core\images\display.png    \private\A000E3FB\Core\images\display.png
+data =\epoc32\data\z\private\A000E3FB\Core\qmldir    \private\A000E3FB\Core\qmldir
+
+//qmlclocks
+// Executable and default resource files
+S60_APP_EXE(qmlclocks)
+S60_APP_RESOURCE(qmlclocks)
+data=\epoc32\data\Z\private\10003a3f\import\Apps\qmlclocks_reg.rsc   \private\10003a3f\import\apps\qmlclocks_reg.rsc
+data=\epoc32\data\z\resource\apps\qmlclocks.mif                       \resource\apps\qmlclocks.mif
+//DEPLOYMENT
+data =\epoc32\data\z\private\A000E3FC\clocks.qml    \private\A000E3FC\clocks.qml
+data =\epoc32\data\z\private\A000E3FC\content\background.png    \private\A000E3FC\content\background.png
+data =\epoc32\data\z\private\A000E3FC\content\center.png    \private\A000E3FC\content\center.png
+data =\epoc32\data\z\private\A000E3FC\content\clock-night.png    \private\A000E3FC\content\clock-night.png
+data =\epoc32\data\z\private\A000E3FC\content\clock.png    \private\A000E3FC\content\clock.png
+data =\epoc32\data\z\private\A000E3FC\content\Clock.qml    \private\A000E3FC\content\Clock.qml
+data =\epoc32\data\z\private\A000E3FC\content\hour.png    \private\A000E3FC\content\hour.png
+data =\epoc32\data\z\private\A000E3FC\content\minute.png    \private\A000E3FC\content\minute.png
+data =\epoc32\data\z\private\A000E3FC\content\second.png    \private\A000E3FC\content\second.png
+
+//qmldialcontrol
+// Executable and default resource files
+S60_APP_EXE(qmldialcontrol)
+S60_APP_RESOURCE(qmldialcontrol)
+data =\epoc32\data\z\private\10003a3f\import\apps\qmldialcontrol_reg.rsc    \private\10003a3f\import\apps\qmldialcontrol_reg.rsc
+data =\epoc32\data\z\resource\apps\qmldialcontrol.mif    \resource\apps\qmldialcontrol.mif
+
+// DEPLOYMENT
+data =\epoc32\data\z\private\A000E3FD\dialcontrol.qml    \private\A000E3FD\dialcontrol.qml
+data =\epoc32\data\z\private\A000E3FD\content\background.png    \private\A000E3FD\content\background.png
+data =\epoc32\data\z\private\A000E3FD\content\Dial.qml    \private\A000E3FD\content\Dial.qml
+data =\epoc32\data\z\private\A000E3FD\content\needle.png    \private\A000E3FD\content\needle.png
+data =\epoc32\data\z\private\A000E3FD\content\needle_shadow.png    \private\A000E3FD\content\needle_shadow.png
+data =\epoc32\data\z\private\A000E3FD\content\overlay.png    \private\A000E3FD\content\overlay.png
+
+//qmleasing
+// Executable and default resource files
+S60_APP_EXE(qmleasing)
+S60_APP_RESOURCE(qmleasing)
+data =\epoc32\data\z\private\10003a3f\import\apps\qmleasing_reg.rsc    \private\10003a3f\import\apps\qmleasing_reg.rsc
+data =\epoc32\data\z\resource\apps\qmleasing.mif    \resource\apps\qmleasing.mif
+
+// DEPLOYMENT
+data =\epoc32\data\z\private\A000E3FE\easing.qml    \private\A000E3FE\easing.qml
+
+//qmlflickr
+// Executable and default resource files
+S60_APP_EXE(qmlflickr)
+S60_APP_RESOURCE(qmlflickr)
+data =\epoc32\data\z\private\10003a3f\import\apps\qmlflickr_reg.rsc    \private\10003a3f\import\apps\qmlflickr_reg.rsc
+data =\epoc32\data\z\resource\apps\qmlflickr.mif    \resource\apps\qmlflickr.mif
+
+// DEPLOYMENT
+data =\epoc32\data\z\private\A000E3FF\flickr.qml    \private\A000E3FF\flickr.qml
+data =\epoc32\data\z\private\A000E3FF\common\Progress.qml    \private\A000E3FF\common\Progress.qml
+data =\epoc32\data\z\private\A000E3FF\common\qmldir    \private\A000E3FF\common\qmldir
+data =\epoc32\data\z\private\A000E3FF\common\RssModel.qml    \private\A000E3FF\common\RssModel.qml
+data =\epoc32\data\z\private\A000E3FF\common\ScrollBar.qml    \private\A000E3FF\common\ScrollBar.qml
+data =\epoc32\data\z\private\A000E3FF\common\Slider.qml    \private\A000E3FF\common\Slider.qml
+data =\epoc32\data\z\private\A000E3FF\mobile\Button.qml    \private\A000E3FF\mobile\Button.qml
+data =\epoc32\data\z\private\A000E3FF\mobile\GridDelegate.qml    \private\A000E3FF\mobile\GridDelegate.qml
+data =\epoc32\data\z\private\A000E3FF\mobile\ImageDetails.qml    \private\A000E3FF\mobile\ImageDetails.qml
+data =\epoc32\data\z\private\A000E3FF\mobile\images\gloss.png    \private\A000E3FF\mobile\images\gloss.png
+data =\epoc32\data\z\private\A000E3FF\mobile\images\lineedit.png    \private\A000E3FF\mobile\images\lineedit.png
+data =\epoc32\data\z\private\A000E3FF\mobile\images\lineedit.sci    \private\A000E3FF\mobile\images\lineedit.sci
+data =\epoc32\data\z\private\A000E3FF\mobile\images\quit.png    \private\A000E3FF\mobile\images\quit.png
+data =\epoc32\data\z\private\A000E3FF\mobile\images\stripes.png    \private\A000E3FF\mobile\images\stripes.png
+data =\epoc32\data\z\private\A000E3FF\mobile\images\titlebar.png    \private\A000E3FF\mobile\images\titlebar.png
+data =\epoc32\data\z\private\A000E3FF\mobile\images\titlebar.sci    \private\A000E3FF\mobile\images\titlebar.sci
+data =\epoc32\data\z\private\A000E3FF\mobile\images\toolbutton.png    \private\A000E3FF\mobile\images\toolbutton.png
+data =\epoc32\data\z\private\A000E3FF\mobile\images\toolbutton.sci    \private\A000E3FF\mobile\images\toolbutton.sci
+data =\epoc32\data\z\private\A000E3FF\mobile\ListDelegate.qml    \private\A000E3FF\mobile\ListDelegate.qml
+data =\epoc32\data\z\private\A000E3FF\mobile\TitleBar.qml    \private\A000E3FF\mobile\TitleBar.qml
+data =\epoc32\data\z\private\A000E3FF\mobile\ToolBar.qml    \private\A000E3FF\mobile\ToolBar.qml
+
+//qmlphotoviewer
+// Executable and default resource files
+S60_APP_EXE(qmlphotoviewer)
+S60_APP_RESOURCE(qmlphotoviewer)
+data =\epoc32\data\z\private\10003a3f\import\apps\qmlphotoviewer_reg.rsc    \private\10003a3f\import\apps\qmlphotoviewer_reg.rsc
+data =\epoc32\data\z\resource\apps\qmlphotoviewer.mif    \resource\apps\qmlphotoviewer.mif
+
+// DEPLOYMENT
+data =\epoc32\data\z\private\A000E400\photoviewer.qml    \private\A000E400\photoviewer.qml
+data =\epoc32\data\z\private\A000E400\PhotoViewerCore\AlbumDelegate.qml    \private\A000E400\PhotoViewerCore\AlbumDelegate.qml
+data =\epoc32\data\z\private\A000E400\PhotoViewerCore\BusyIndicator.qml    \private\A000E400\PhotoViewerCore\BusyIndicator.qml
+data =\epoc32\data\z\private\A000E400\PhotoViewerCore\Button.qml    \private\A000E400\PhotoViewerCore\Button.qml
+data =\epoc32\data\z\private\A000E400\PhotoViewerCore\EditableButton.qml    \private\A000E400\PhotoViewerCore\EditableButton.qml
+data =\epoc32\data\z\private\A000E400\PhotoViewerCore\images\box-shadow.png    \private\A000E400\PhotoViewerCore\images\box-shadow.png
+data =\epoc32\data\z\private\A000E400\PhotoViewerCore\images\busy.png    \private\A000E400\PhotoViewerCore\images\busy.png
+data =\epoc32\data\z\private\A000E400\PhotoViewerCore\images\cardboard.png    \private\A000E400\PhotoViewerCore\images\cardboard.png
+data =\epoc32\data\z\private\A000E400\PhotoViewerCore\PhotoDelegate.qml    \private\A000E400\PhotoViewerCore\PhotoDelegate.qml
+data =\epoc32\data\z\private\A000E400\PhotoViewerCore\ProgressBar.qml    \private\A000E400\PhotoViewerCore\ProgressBar.qml
+data =\epoc32\data\z\private\A000E400\PhotoViewerCore\qmldir    \private\A000E400\PhotoViewerCore\qmldir
+data =\epoc32\data\z\private\A000E400\PhotoViewerCore\RssModel.qml    \private\A000E400\PhotoViewerCore\RssModel.qml
+data =\epoc32\data\z\private\A000E400\PhotoViewerCore\script\script.js    \private\A000E400\PhotoViewerCore\script\script.js
+data =\epoc32\data\z\private\A000E400\PhotoViewerCore\Tag.qml    \private\A000E400\PhotoViewerCore\Tag.qml
+
+// qmltwitter
+// Executable and default resource files
+S60_APP_EXE(qmltwitter)
+S60_APP_RESOURCE(qmltwitter)
+data =\epoc32\data\z\private\10003a3f\import\apps\qmltwitter_reg.rsc    \private\10003a3f\import\apps\qmltwitter_reg.rsc
+data =\epoc32\data\z\resource\apps\qmltwitter.mif    \resource\apps\qmltwitter.mif
+
+// DEPLOYMENT
+data =\epoc32\data\z\private\A000E401\twitter.qml    \private\A000E401\twitter.qml
+data =\epoc32\data\z\private\A000E401\TwitterCore\AuthView.qml    \private\A000E401\TwitterCore\AuthView.qml
+data =\epoc32\data\z\private\A000E401\TwitterCore\Button.qml    \private\A000E401\TwitterCore\Button.qml
+data =\epoc32\data\z\private\A000E401\TwitterCore\FatDelegate.qml    \private\A000E401\TwitterCore\FatDelegate.qml
+data =\epoc32\data\z\private\A000E401\TwitterCore\HomeTitleBar.qml    \private\A000E401\TwitterCore\HomeTitleBar.qml
+data =\epoc32\data\z\private\A000E401\TwitterCore\images\gloss.png    \private\A000E401\TwitterCore\images\gloss.png
+data =\epoc32\data\z\private\A000E401\TwitterCore\images\lineedit.png    \private\A000E401\TwitterCore\images\lineedit.png
+data =\epoc32\data\z\private\A000E401\TwitterCore\images\lineedit.sci    \private\A000E401\TwitterCore\images\lineedit.sci
+data =\epoc32\data\z\private\A000E401\TwitterCore\images\loading.png    \private\A000E401\TwitterCore\images\loading.png
+data =\epoc32\data\z\private\A000E401\TwitterCore\images\stripes.png    \private\A000E401\TwitterCore\images\stripes.png
+data =\epoc32\data\z\private\A000E401\TwitterCore\images\titlebar.png    \private\A000E401\TwitterCore\images\titlebar.png
+data =\epoc32\data\z\private\A000E401\TwitterCore\images\titlebar.sci    \private\A000E401\TwitterCore\images\titlebar.sci
+data =\epoc32\data\z\private\A000E401\TwitterCore\images\toolbutton.png    \private\A000E401\TwitterCore\images\toolbutton.png
+data =\epoc32\data\z\private\A000E401\TwitterCore\images\toolbutton.sci    \private\A000E401\TwitterCore\images\toolbutton.sci
+data =\epoc32\data\z\private\A000E401\TwitterCore\Loading.qml    \private\A000E401\TwitterCore\Loading.qml
+data =\epoc32\data\z\private\A000E401\TwitterCore\MultiTitleBar.qml    \private\A000E401\TwitterCore\MultiTitleBar.qml
+data =\epoc32\data\z\private\A000E401\TwitterCore\qmldir    \private\A000E401\TwitterCore\qmldir
+data =\epoc32\data\z\private\A000E401\TwitterCore\RssModel.qml    \private\A000E401\TwitterCore\RssModel.qml
+data =\epoc32\data\z\private\A000E401\TwitterCore\TitleBar.qml    \private\A000E401\TwitterCore\TitleBar.qml
+data =\epoc32\data\z\private\A000E401\TwitterCore\ToolBar.qml    \private\A000E401\TwitterCore\ToolBar.qml
+data =\epoc32\data\z\private\A000E401\TwitterCore\UserModel.qml    \private\A000E401\TwitterCore\UserModel.qml
+
 #endif // QTDEMOAPPS_IBY
--- a/src/s60installs/qtdemoapps.pkg	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/s60installs/qtdemoapps.pkg	Mon Oct 04 01:19:32 2010 +0300
@@ -57,3 +57,149 @@
 "/epoc32/release/armv5/urel/anomaly.exe"    - "!:\sys\bin\anomaly.exe"
 "/epoc32/data/z/resource/apps/anomaly.rsc"    - "!:\resource\apps\anomaly.rsc"
 "/epoc32/data/Z/private/10003a3f/import/Apps/anomaly_reg.rsc"   - "!:\private\10003a3f\import\apps\anomaly_reg.rsc"
+
+;qmlcalculator
+; Executable and default resource files
+"/epoc32/release/armv5/urel/qmlcalculator.exe" - "!:\sys\bin\qmlcalculator.exe"
+"/epoc32/data/z/resource/apps/qmlcalculator.rsc" - "!:\resource\apps\qmlcalculator.rsc"
+"/epoc32/data/z/private/10003a3f/import/apps/qmlcalculator_reg.rsc" - "!:\private\10003a3f\import\apps\qmlcalculator_reg.rsc"
+"/epoc32/data/z/resource/apps/qmlcalculator.mif" - "!:\resource\apps\qmlcalculator.mif"
+
+; DEPLOYMENT
+"/epoc32/data/z/private/A000E3FB/calculator.qml" - "!:\private\A000E3FB\calculator.qml"
+"/epoc32/data/z/private/A000E3FB/Core/Button.qml" - "!:\private\A000E3FB\Core\Button.qml"
+"/epoc32/data/z/private/A000E3FB/Core/calculator.js" - "!:\private\A000E3FB\Core\calculator.js"
+"/epoc32/data/z/private/A000E3FB/Core/Display.qml" - "!:\private\A000E3FB\Core\Display.qml"
+"/epoc32/data/z/private/A000E3FB/Core/images/button-.png" - "!:\private\A000E3FB\Core\images\button-.png"
+"/epoc32/data/z/private/A000E3FB/Core/images/button-blue.png" - "!:\private\A000E3FB\Core\images\button-blue.png"
+"/epoc32/data/z/private/A000E3FB/Core/images/button-green.png" - "!:\private\A000E3FB\Core\images\button-green.png"
+"/epoc32/data/z/private/A000E3FB/Core/images/button-purple.png" - "!:\private\A000E3FB\Core\images\button-purple.png"
+"/epoc32/data/z/private/A000E3FB/Core/images/button-red.png" - "!:\private\A000E3FB\Core\images\button-red.png"
+"/epoc32/data/z/private/A000E3FB/Core/images/display.png" - "!:\private\A000E3FB\Core\images\display.png"
+"/epoc32/data/z/private/A000E3FB/Core/qmldir" - "!:\private\A000E3FB\Core\qmldir"
+
+;qmlclocks
+; Executable and default resource files
+"/epoc32/release/armv5/urel/qmlclocks.exe" - "!:\sys\bin\qmlclocks.exe"
+"/epoc32/data/z/resource/apps/qmlclocks.rsc" - "!:\resource\apps\qmlclocks.rsc"
+"/epoc32/data/z/private/10003a3f/import/apps/qmlclocks_reg.rsc" - "!:\private\10003a3f\import\apps\qmlclocks_reg.rsc"
+"/epoc32/data/z/resource/apps/qmlclocks.mif" - "!:\resource\apps\qmlclocks.mif"
+
+; DEPLOYMENT
+"/epoc32/data/z/private/A000E3FC/clocks.qml" - "!:\private\A000E3FC\clocks.qml"
+"/epoc32/data/z/private/A000E3FC/content/background.png" - "!:\private\A000E3FC\content\background.png"
+"/epoc32/data/z/private/A000E3FC/content/center.png" - "!:\private\A000E3FC\content\center.png"
+"/epoc32/data/z/private/A000E3FC/content/clock-night.png" - "!:\private\A000E3FC\content\clock-night.png"
+"/epoc32/data/z/private/A000E3FC/content/clock.png" - "!:\private\A000E3FC\content\clock.png"
+"/epoc32/data/z/private/A000E3FC/content/Clock.qml" - "!:\private\A000E3FC\content\Clock.qml"
+"/epoc32/data/z/private/A000E3FC/content/hour.png" - "!:\private\A000E3FC\content\hour.png"
+"/epoc32/data/z/private/A000E3FC/content/minute.png" - "!:\private\A000E3FC\content\minute.png"
+"/epoc32/data/z/private/A000E3FC/content/second.png" - "!:\private\A000E3FC\content\second.png"
+
+;qmldialcontrol
+; Executable and default resource files
+"/epoc32/release/armv5/urel/qmldialcontrol.exe" - "!:\sys\bin\qmldialcontrol.exe"
+"/epoc32/data/z/resource/apps/qmldialcontrol.rsc" - "!:\resource\apps\qmldialcontrol.rsc"
+"/epoc32/data/z/private/10003a3f/import/apps/qmldialcontrol_reg.rsc" - "!:\private\10003a3f\import\apps\qmldialcontrol_reg.rsc"
+"/epoc32/data/z/resource/apps/qmldialcontrol.mif" - "!:\resource\apps\qmldialcontrol.mif"
+
+; DEPLOYMENT
+"/epoc32/data/z/private/A000E3FD/dialcontrol.qml" - "!:\private\A000E3FD\dialcontrol.qml"
+"/epoc32/data/z/private/A000E3FD/content/background.png" - "!:\private\A000E3FD\content\background.png"
+"/epoc32/data/z/private/A000E3FD/content/Dial.qml" - "!:\private\A000E3FD\content\Dial.qml"
+"/epoc32/data/z/private/A000E3FD/content/needle.png" - "!:\private\A000E3FD\content\needle.png"
+"/epoc32/data/z/private/A000E3FD/content/needle_shadow.png" - "!:\private\A000E3FD\content\needle_shadow.png"
+"/epoc32/data/z/private/A000E3FD/content/overlay.png" - "!:\private\A000E3FD\content\overlay.png"
+
+;qmleasing
+; Executable and default resource files
+"/epoc32/release/armv5/urel/qmleasing.exe" - "!:\sys\bin\qmleasing.exe"
+"/epoc32/data/z/resource/apps/qmleasing.rsc" - "!:\resource\apps\qmleasing.rsc"
+"/epoc32/data/z/private/10003a3f/import/apps/qmleasing_reg.rsc" - "!:\private\10003a3f\import\apps\qmleasing_reg.rsc"
+"/epoc32/data/z/resource/apps/qmleasing.mif" - "!:\resource\apps\qmleasing.mif"
+
+; DEPLOYMENT
+"/epoc32/data/z/private/A000E3FE/easing.qml" - "!:\private\A000E3FE\easing.qml"
+
+;qmlflickr
+; Executable and default resource files
+"/epoc32/release/armv5/urel/qmlflickr.exe" - "!:\sys\bin\qmlflickr.exe"
+"/epoc32/data/z/resource/apps/qmlflickr.rsc" - "!:\resource\apps\qmlflickr.rsc"
+"/epoc32/data/z/private/10003a3f/import/apps/qmlflickr_reg.rsc" - "!:\private\10003a3f\import\apps\qmlflickr_reg.rsc"
+"/epoc32/data/z/resource/apps/qmlflickr.mif" - "!:\resource\apps\qmlflickr.mif"
+
+; DEPLOYMENT
+"/epoc32/data/z/private/A000E3FF/flickr.qml" - "!:\private\A000E3FF\flickr.qml"
+"/epoc32/data/z/private/A000E3FF/common/Progress.qml" - "!:\private\A000E3FF\common\Progress.qml"
+"/epoc32/data/z/private/A000E3FF/common/qmldir" - "!:\private\A000E3FF\common\qmldir"
+"/epoc32/data/z/private/A000E3FF/common/RssModel.qml" - "!:\private\A000E3FF\common\RssModel.qml"
+"/epoc32/data/z/private/A000E3FF/common/ScrollBar.qml" - "!:\private\A000E3FF\common\ScrollBar.qml"
+"/epoc32/data/z/private/A000E3FF/common/Slider.qml" - "!:\private\A000E3FF\common\Slider.qml"
+"/epoc32/data/z/private/A000E3FF/mobile/Button.qml" - "!:\private\A000E3FF\mobile\Button.qml"
+"/epoc32/data/z/private/A000E3FF/mobile/GridDelegate.qml" - "!:\private\A000E3FF\mobile\GridDelegate.qml"
+"/epoc32/data/z/private/A000E3FF/mobile/ImageDetails.qml" - "!:\private\A000E3FF\mobile\ImageDetails.qml"
+"/epoc32/data/z/private/A000E3FF/mobile/images/gloss.png" - "!:\private\A000E3FF\mobile\images\gloss.png"
+"/epoc32/data/z/private/A000E3FF/mobile/images/lineedit.png" - "!:\private\A000E3FF\mobile\images\lineedit.png"
+"/epoc32/data/z/private/A000E3FF/mobile/images/lineedit.sci" - "!:\private\A000E3FF\mobile\images\lineedit.sci"
+"/epoc32/data/z/private/A000E3FF/mobile/images/quit.png" - "!:\private\A000E3FF\mobile\images\quit.png"
+"/epoc32/data/z/private/A000E3FF/mobile/images/stripes.png" - "!:\private\A000E3FF\mobile\images\stripes.png"
+"/epoc32/data/z/private/A000E3FF/mobile/images/titlebar.png" - "!:\private\A000E3FF\mobile\images\titlebar.png"
+"/epoc32/data/z/private/A000E3FF/mobile/images/titlebar.sci" - "!:\private\A000E3FF\mobile\images\titlebar.sci"
+"/epoc32/data/z/private/A000E3FF/mobile/images/toolbutton.png" - "!:\private\A000E3FF\mobile\images\toolbutton.png"
+"/epoc32/data/z/private/A000E3FF/mobile/images/toolbutton.sci" - "!:\private\A000E3FF\mobile\images\toolbutton.sci"
+"/epoc32/data/z/private/A000E3FF/mobile/ListDelegate.qml" - "!:\private\A000E3FF\mobile\ListDelegate.qml"
+"/epoc32/data/z/private/A000E3FF/mobile/TitleBar.qml" - "!:\private\A000E3FF\mobile\TitleBar.qml"
+"/epoc32/data/z/private/A000E3FF/mobile/ToolBar.qml" - "!:\private\A000E3FF\mobile\ToolBar.qml"
+
+;qmlphotoviewer
+; Executable and default resource files
+"/epoc32/release/armv5/urel/qmlphotoviewer.exe" - "!:\sys\bin\qmlphotoviewer.exe"
+"/epoc32/data/z/resource/apps/qmlphotoviewer.rsc" - "!:\resource\apps\qmlphotoviewer.rsc"
+"/epoc32/data/z/private/10003a3f/import/apps/qmlphotoviewer_reg.rsc" - "!:\private\10003a3f\import\apps\qmlphotoviewer_reg.rsc"
+"/epoc32/data/z/resource/apps/qmlphotoviewer.mif" - "!:\resource\apps\qmlphotoviewer.mif"
+
+; DEPLOYMENT
+"/epoc32/data/z/private/A000E400/photoviewer.qml" - "!:\private\A000E400\photoviewer.qml"
+"/epoc32/data/z/private/A000E400/PhotoViewerCore/AlbumDelegate.qml" - "!:\private\A000E400\PhotoViewerCore\AlbumDelegate.qml"
+"/epoc32/data/z/private/A000E400/PhotoViewerCore/BusyIndicator.qml" - "!:\private\A000E400\PhotoViewerCore\BusyIndicator.qml"
+"/epoc32/data/z/private/A000E400/PhotoViewerCore/Button.qml" - "!:\private\A000E400\PhotoViewerCore\Button.qml"
+"/epoc32/data/z/private/A000E400/PhotoViewerCore/EditableButton.qml" - "!:\private\A000E400\PhotoViewerCore\EditableButton.qml"
+"/epoc32/data/z/private/A000E400/PhotoViewerCore/images/box-shadow.png" - "!:\private\A000E400\PhotoViewerCore\images\box-shadow.png"
+"/epoc32/data/z/private/A000E400/PhotoViewerCore/images/busy.png" - "!:\private\A000E400\PhotoViewerCore\images\busy.png"
+"/epoc32/data/z/private/A000E400/PhotoViewerCore/images/cardboard.png" - "!:\private\A000E400\PhotoViewerCore\images\cardboard.png"
+"/epoc32/data/z/private/A000E400/PhotoViewerCore/PhotoDelegate.qml" - "!:\private\A000E400\PhotoViewerCore\PhotoDelegate.qml"
+"/epoc32/data/z/private/A000E400/PhotoViewerCore/ProgressBar.qml" - "!:\private\A000E400\PhotoViewerCore\ProgressBar.qml"
+"/epoc32/data/z/private/A000E400/PhotoViewerCore/qmldir" - "!:\private\A000E400\PhotoViewerCore\qmldir"
+"/epoc32/data/z/private/A000E400/PhotoViewerCore/RssModel.qml" - "!:\private\A000E400\PhotoViewerCore\RssModel.qml"
+"/epoc32/data/z/private/A000E400/PhotoViewerCore/script/script.js" - "!:\private\A000E400\PhotoViewerCore\script\script.js"
+"/epoc32/data/z/private/A000E400/PhotoViewerCore/Tag.qml" - "!:\private\A000E400\PhotoViewerCore\Tag.qml"
+
+; qmltwitter
+; Executable and default resource files
+"/epoc32/release/armv5/urel/qmltwitter.exe" - "!:\sys\bin\qmltwitter.exe"
+"/epoc32/data/z/resource/apps/qmltwitter.rsc" - "!:\resource\apps\qmltwitter.rsc"
+"/epoc32/data/z/private/10003a3f/import/apps/qmltwitter_reg.rsc" - "!:\private\10003a3f\import\apps\qmltwitter_reg.rsc"
+"/epoc32/data/z/resource/apps/qmltwitter.mif" - "!:\resource\apps\qmltwitter.mif"
+
+; DEPLOYMENT
+"/epoc32/data/z/private/A000E401/twitter.qml" - "!:\private\A000E401\twitter.qml"
+"/epoc32/data/z/private/A000E401/TwitterCore/AuthView.qml" - "!:\private\A000E401\TwitterCore\AuthView.qml"
+"/epoc32/data/z/private/A000E401/TwitterCore/Button.qml" - "!:\private\A000E401\TwitterCore\Button.qml"
+"/epoc32/data/z/private/A000E401/TwitterCore/FatDelegate.qml" - "!:\private\A000E401\TwitterCore\FatDelegate.qml"
+"/epoc32/data/z/private/A000E401/TwitterCore/HomeTitleBar.qml" - "!:\private\A000E401\TwitterCore\HomeTitleBar.qml"
+"/epoc32/data/z/private/A000E401/TwitterCore/images/gloss.png" - "!:\private\A000E401\TwitterCore\images\gloss.png"
+"/epoc32/data/z/private/A000E401/TwitterCore/images/lineedit.png" - "!:\private\A000E401\TwitterCore\images\lineedit.png"
+"/epoc32/data/z/private/A000E401/TwitterCore/images/lineedit.sci" - "!:\private\A000E401\TwitterCore\images\lineedit.sci"
+"/epoc32/data/z/private/A000E401/TwitterCore/images/loading.png" - "!:\private\A000E401\TwitterCore\images\loading.png"
+"/epoc32/data/z/private/A000E401/TwitterCore/images/stripes.png" - "!:\private\A000E401\TwitterCore\images\stripes.png"
+"/epoc32/data/z/private/A000E401/TwitterCore/images/titlebar.png" - "!:\private\A000E401\TwitterCore\images\titlebar.png"
+"/epoc32/data/z/private/A000E401/TwitterCore/images/titlebar.sci" - "!:\private\A000E401\TwitterCore\images\titlebar.sci"
+"/epoc32/data/z/private/A000E401/TwitterCore/images/toolbutton.png" - "!:\private\A000E401\TwitterCore\images\toolbutton.png"
+"/epoc32/data/z/private/A000E401/TwitterCore/images/toolbutton.sci" - "!:\private\A000E401\TwitterCore\images\toolbutton.sci"
+"/epoc32/data/z/private/A000E401/TwitterCore/Loading.qml" - "!:\private\A000E401\TwitterCore\Loading.qml"
+"/epoc32/data/z/private/A000E401/TwitterCore/MultiTitleBar.qml" - "!:\private\A000E401\TwitterCore\MultiTitleBar.qml"
+"/epoc32/data/z/private/A000E401/TwitterCore/qmldir" - "!:\private\A000E401\TwitterCore\qmldir"
+"/epoc32/data/z/private/A000E401/TwitterCore/RssModel.qml" - "!:\private\A000E401\TwitterCore\RssModel.qml"
+"/epoc32/data/z/private/A000E401/TwitterCore/TitleBar.qml" - "!:\private\A000E401\TwitterCore\TitleBar.qml"
+"/epoc32/data/z/private/A000E401/TwitterCore/ToolBar.qml" - "!:\private\A000E401\TwitterCore\ToolBar.qml"
+"/epoc32/data/z/private/A000E401/TwitterCore/UserModel.qml" - "!:\private\A000E401\TwitterCore\UserModel.qml"
--- a/src/s60installs/s60installs.pro	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/s60installs/s60installs.pro	Mon Oct 04 01:19:32 2010 +0300
@@ -57,8 +57,8 @@
         bearerPluginLocation = $${EPOCROOT}epoc32/release/$(PLATFORM)/$(TARGET)
         bearerStubZ = $${EPOCROOT}$${HW_ZDIR}$${QT_PLUGINS_BASE_DIR}/bearer/qsymbianbearer$${QT_LIBINFIX}.qtplugin
         BLD_INF_RULES.prj_exports += \
-            "qsymbianbearer.qtplugin $$bearerStubZ" \
-            "qsymbianbearer.qtplugin $${EPOCROOT}epoc32/winscw/c$${QT_PLUGINS_BASE_DIR}/bearer/qsymbianbearer$${QT_LIBINFIX}.qtplugin"
+            "qsymbianbearer.qtplugin /$${HW_ZDIR}$${QT_PLUGINS_BASE_DIR}/bearer/qsymbianbearer$${QT_LIBINFIX}.qtplugin" \
+            "qsymbianbearer.qtplugin /epoc32/winscw/c$${QT_PLUGINS_BASE_DIR}/bearer/qsymbianbearer$${QT_LIBINFIX}.qtplugin"
     } else {
         pluginLocations = $$QT_BUILD_TREE/plugins/s60
         bearerPluginLocation = $$QT_BUILD_TREE/plugins/bearer
@@ -189,6 +189,11 @@
             "[0x1028315F],0,0,0,{\"S60ProductID\"}"
     }
 
+    contains(QT_CONFIG, opengl) {
+        qtlibraries.sources += $$QMAKE_LIBDIR_QT/QtOpenGL$${QT_LIBINFIX}.dll
+        graphicssystems_plugins.sources += $$QT_BUILD_TREE/plugins/graphicssystems/qglgraphicssystem$${QT_LIBINFIX}.dll
+    }
+
     contains(QT_CONFIG, multimedia){
         qtlibraries.sources += $$QMAKE_LIBDIR_QT/QtMultimedia$${QT_LIBINFIX}.dll
     }
--- a/src/s60main/s60main.pro	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/s60main/s60main.pro	Mon Oct 04 01:19:32 2010 +0300
@@ -29,6 +29,7 @@
     # Having MMP_RULES_DONT_EXPORT_ALL_CLASS_IMPEDIMENTA will cause s60main.lib be unlinkable
     # against GCCE apps, so remove it
     MMP_RULES -= $$MMP_RULES_DONT_EXPORT_ALL_CLASS_IMPEDIMENTA
+    linux-armcc:QMAKE_CXXFLAGS *= --export_all_vtbl
 } else {
     error("$$_FILE_ is intended only for Symbian!")
 }
--- a/src/script/api/qscriptcontext.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/script/api/qscriptcontext.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -323,6 +323,9 @@
 
   When a function is called as constructor, the thisObject()
   contains the newly constructed object to be initialized.
+
+  \note This function is only guaranteed to work for a context
+  corresponding to native functions.
 */
 bool QScriptContext::isCalledAsConstructor() const
 {
@@ -413,6 +416,9 @@
   object provides access to the local variables associated with this
   context.
 
+  \note The activation object might not be available if there is no
+  active QScriptEngineAgent, as it might be optimized.
+
   \sa argument(), argumentsObject()
 */
 
@@ -472,6 +478,10 @@
   activation.
 
   If \a activation is not an object, this function does nothing.
+
+  \note For a context corresponding to a JavaScript function, this is only
+  guarenteed to work if there was an QScriptEngineAgent active on the
+  engine while the function was evaluated.
 */
 void QScriptContext::setActivationObject(const QScriptValue &activation)
 {
--- a/src/script/api/qscriptcontextinfo.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/script/api/qscriptcontextinfo.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -53,8 +53,7 @@
   current statement.
 
   If the called function is executing Qt Script code, you can obtain
-  the script location with the functions fileName(), lineNumber() and
-  columnNumber().
+  the script location with the functions fileName() and lineNumber().
 
   You can obtain the starting line number and ending line number of a
   Qt Script function definition with functionStartLineNumber() and
@@ -317,13 +316,7 @@
 }
 
 /*!
-  Returns the column number corresponding to the statement being
-  executed, or -1 if the column number is not available.
-
-  The column number is only available if Qt Script code is being
-  executed.
-
-  \sa lineNumber(), fileName()
+  \obsolete
 */
 int QScriptContextInfo::columnNumber() const
 {
--- a/src/script/api/qscriptcontextinfo.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/script/api/qscriptcontextinfo.h	Mon Oct 04 01:19:32 2010 +0300
@@ -69,7 +69,9 @@
     qint64 scriptId() const;
     QString fileName() const;
     int lineNumber() const;
-    int columnNumber() const;
+#ifdef QT_DEPRECATED
+    QT_DEPRECATED int columnNumber() const;
+#endif
 
     QString functionName() const;
     FunctionType functionType() const;
--- a/src/script/api/qscriptengine.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/script/api/qscriptengine.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -44,7 +44,6 @@
 
 #include "CodeBlock.h"
 #include "Error.h"
-#include "JSLock.h"
 #include "Interpreter.h"
 
 #include "PrototypeFunction.h"
@@ -152,8 +151,7 @@
   evaluation caused an exception by calling hasUncaughtException(). In
   that case, you can call toString() on the error object to obtain an
   error message. The current uncaught exception is also available
-  through uncaughtException(). You can obtain a human-readable
-  backtrace of the exception with uncaughtExceptionBacktrace().
+  through uncaughtException().
   Calling clearExceptions() will cause any uncaught exceptions to be
   cleared.
 
@@ -784,6 +782,8 @@
 static JSC::JSValue JSC_HOST_CALL functionQsTranslateNoOp(JSC::ExecState*, JSC::JSObject*, JSC::JSValue, const JSC::ArgList&);
 static JSC::JSValue JSC_HOST_CALL functionQsTr(JSC::ExecState*, JSC::JSObject*, JSC::JSValue, const JSC::ArgList&);
 static JSC::JSValue JSC_HOST_CALL functionQsTrNoOp(JSC::ExecState*, JSC::JSObject*, JSC::JSValue, const JSC::ArgList&);
+static JSC::JSValue JSC_HOST_CALL functionQsTrId(JSC::ExecState*, JSC::JSObject*, JSC::JSValue, const JSC::ArgList&);
+static JSC::JSValue JSC_HOST_CALL functionQsTrIdNoOp(JSC::ExecState*, JSC::JSObject*, JSC::JSValue, const JSC::ArgList&);
 
 JSC::JSValue JSC_HOST_CALL functionQsTranslate(JSC::ExecState *exec, JSC::JSObject*, JSC::JSValue, const JSC::ArgList &args)
 {
@@ -894,6 +894,28 @@
     return args.at(0);
 }
 
+JSC::JSValue JSC_HOST_CALL functionQsTrId(JSC::ExecState *exec, JSC::JSObject*, JSC::JSValue, const JSC::ArgList &args)
+{
+    if (args.size() < 1)
+        return JSC::throwError(exec, JSC::GeneralError, "qsTrId() requires at least one argument");
+    if (!args.at(0).isString())
+        return JSC::throwError(exec, JSC::TypeError, "qsTrId(): first argument (id) must be a string");
+    if ((args.size() > 1) && !args.at(1).isNumber())
+        return JSC::throwError(exec, JSC::TypeError, "qsTrId(): second argument (n) must be a number");
+    JSC::UString id = args.at(0).toString(exec);
+    int n = -1;
+    if (args.size() > 1)
+        n = args.at(1).toInt32(exec);
+    return JSC::jsString(exec, qtTrId(QScript::convertToLatin1(id).constData(), n));
+}
+
+JSC::JSValue JSC_HOST_CALL functionQsTrIdNoOp(JSC::ExecState *, JSC::JSObject*, JSC::JSValue, const JSC::ArgList &args)
+{
+    if (args.size() < 1)
+        return JSC::jsUndefined();
+    return args.at(0);
+}
+
 static JSC::JSValue JSC_HOST_CALL stringProtoFuncArg(JSC::ExecState*, JSC::JSObject*, JSC::JSValue, const JSC::ArgList&);
 
 JSC::JSValue JSC_HOST_CALL stringProtoFuncArg(JSC::ExecState *exec, JSC::JSObject*, JSC::JSValue thisObject, const JSC::ArgList &args)
@@ -1003,7 +1025,6 @@
     detachAllRegisteredScriptStrings();
     qDeleteAll(m_qobjectData);
     qDeleteAll(m_typeInfos);
-    JSC::JSLock lock(false);
     globalData->heap.destroy();
     globalData->deref();
     while (freeScriptValues) {
@@ -1292,7 +1313,6 @@
 
 void QScriptEnginePrivate::collectGarbage()
 {
-    JSC::JSLock lock(false);
     QScript::APIShim shim(this);
     globalData->heap.collectAllGarbage();
 }
@@ -1322,7 +1342,6 @@
                                                   bool &compile)
 {
     Q_Q(QScriptEngine);
-    JSC::JSLock lock(false); // ### hmmm
     QBoolBlocker inEvalBlocker(inEval, true);
     q->currentContext()->activationObject(); //force the creation of a context for native function;
 
@@ -2607,8 +2626,7 @@
 }
 
 /*!
-  \internal
-  \since 4.6
+  \since 4.7
 
   Evaluates the given \a program and returns the result of the
   evaluation.
@@ -2800,8 +2818,7 @@
 
   The exception state is cleared when evaluate() is called.
 
-  \sa uncaughtException(), uncaughtExceptionLineNumber(),
-      uncaughtExceptionBacktrace()
+  \sa uncaughtException(), uncaughtExceptionLineNumber()
 */
 bool QScriptEngine::hasUncaughtException() const
 {
@@ -2819,7 +2836,6 @@
   message.
 
   \sa hasUncaughtException(), uncaughtExceptionLineNumber(),
-      uncaughtExceptionBacktrace()
 */
 QScriptValue QScriptEngine::uncaughtException() const
 {
@@ -2839,7 +2855,7 @@
   Line numbers are 1-based, unless a different base was specified as
   the second argument to evaluate().
 
-  \sa hasUncaughtException(), uncaughtExceptionBacktrace()
+  \sa hasUncaughtException()
 */
 int QScriptEngine::uncaughtExceptionLineNumber() const
 {
@@ -2851,7 +2867,7 @@
 /*!
   Returns a human-readable backtrace of the last uncaught exception.
 
-  Each line is of the form \c{<function-name>(<arguments>)@<file-name>:<line-number>}.
+  It is in the form \c{<function-name>()@<file-name>:<line-number>}.
 
   \sa uncaughtException()
 */
@@ -3442,6 +3458,8 @@
     \row    \o QT_TR_NOOP() \o QT_TR_NOOP()
     \row    \o qsTranslate() \o QCoreApplication::translate()
     \row    \o QT_TRANSLATE_NOOP() \o QT_TRANSLATE_NOOP()
+    \row    \o qsTrId() (since 4.7) \o qtTrId()
+    \row    \o QT_TRID_NOOP() (since 4.7) \o QT_TRID_NOOP()
     \endtable
 
   \sa {Internationalization with Qt}
@@ -3460,6 +3478,8 @@
     JSC::asObject(jscObject)->putDirectFunction(exec, new (exec)JSC::NativeFunctionWrapper(exec, glob->prototypeFunctionStructure(), 2, JSC::Identifier(exec, "QT_TRANSLATE_NOOP"), QScript::functionQsTranslateNoOp));
     JSC::asObject(jscObject)->putDirectFunction(exec, new (exec)JSC::NativeFunctionWrapper(exec, glob->prototypeFunctionStructure(), 3, JSC::Identifier(exec, "qsTr"), QScript::functionQsTr));
     JSC::asObject(jscObject)->putDirectFunction(exec, new (exec)JSC::NativeFunctionWrapper(exec, glob->prototypeFunctionStructure(), 1, JSC::Identifier(exec, "QT_TR_NOOP"), QScript::functionQsTrNoOp));
+    JSC::asObject(jscObject)->putDirectFunction(exec, new (exec)JSC::NativeFunctionWrapper(exec, glob->prototypeFunctionStructure(), 1, JSC::Identifier(exec, "qsTrId"), QScript::functionQsTrId));
+    JSC::asObject(jscObject)->putDirectFunction(exec, new (exec)JSC::NativeFunctionWrapper(exec, glob->prototypeFunctionStructure(), 1, JSC::Identifier(exec, "QT_TRID_NOOP"), QScript::functionQsTrIdNoOp));
 
     glob->stringPrototype()->putDirectFunction(exec, new (exec)JSC::NativeFunctionWrapper(exec, glob->prototypeFunctionStructure(), 1, JSC::Identifier(exec, "arg"), QScript::stringProtoFuncArg));
 }
@@ -4196,6 +4216,7 @@
                  "cannot set agent belonging to different engine");
         return;
     }
+    QScript::APIShim shim(d);
     if (d->activeAgent)
         QScriptEngineAgentPrivate::get(d->activeAgent)->detach();
     d->activeAgent = agent;
--- a/src/script/api/qscriptengineagent.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/script/api/qscriptengineagent.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -117,6 +117,8 @@
     if (engine->originalGlobalObject()->debugger())
         engine->originalGlobalObject()->setDebugger(0);
     JSC::Debugger::attach(engine->originalGlobalObject());
+    if (!QScriptEnginePrivate::get(engine)->isEvaluating())
+        JSC::Debugger::recompileAllJSFunctions(engine->globalData);
 }
 
 void QScriptEngineAgentPrivate::detach()
@@ -134,9 +136,12 @@
 void QScriptEngineAgentPrivate::exceptionThrow(const JSC::DebuggerCallFrame& frame, intptr_t sourceID, bool hasHandler)
 {
     JSC::CallFrame *oldFrame = engine->currentFrame;
+    int oldAgentLineNumber = engine->agentLineNumber;
     engine->currentFrame = frame.callFrame();
     QScriptValue value(engine->scriptValueFromJSCValue(frame.exception()));
+    engine->agentLineNumber = value.property(QLatin1String("lineNumber")).toInt32();
     q_ptr->exceptionThrow(sourceID, value, hasHandler);
+    engine->agentLineNumber = oldAgentLineNumber;
     engine->currentFrame = oldFrame;
     engine->setCurrentException(value);
 };
@@ -367,9 +372,8 @@
 /*!
   This function is called when the engine is about to execute a new
   statement in the script identified by \a scriptId.  The statement
-  begins on the line and column specified by \a lineNumber and \a
-  columnNumber.  This event is not generated for native Qt Script
-  functions.
+  begins on the line and column specified by \a lineNumber
+  This event is not generated for native Qt Script functions.
 
   Reimplement this function to handle this event. For example, a
   debugger implementation could reimplement this function to provide
@@ -378,6 +382,8 @@
 
   The default implementation does nothing.
 
+  \note \a columnNumber is undefined
+
   \sa scriptLoad(), functionEntry()
 */
 void QScriptEngineAgent::positionChange(qint64 scriptId,
--- a/src/script/api/qscriptprogram.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/script/api/qscriptprogram.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -32,9 +32,7 @@
 QT_BEGIN_NAMESPACE
 
 /*!
-  \internal
-
-  \since 4.6
+  \since 4.7
   \class QScriptProgram
 
   \brief The QScriptProgram class encapsulates a Qt Script program.
--- a/src/script/api/qscriptvalue_p.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/script/api/qscriptvalue_p.h	Mon Oct 04 01:19:32 2010 +0300
@@ -103,7 +103,7 @@
 
     qint64 objectId()
     {
-        if ( (type == JavaScriptCore) && (engine) )
+        if ( (type == JavaScriptCore) && (engine) && jscValue.isCell() )
             return (qint64)jscValue.asCell();
         else
             return -1;
--- a/src/script/bridge/qscriptactivationobject.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/script/bridge/qscriptactivationobject.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -53,7 +53,7 @@
 
 QScriptActivationObject::~QScriptActivationObject()
 {
-    delete d;
+    delete d_ptr();
 }
 
 bool QScriptActivationObject::getOwnPropertySlot(JSC::ExecState* exec, const JSC::Identifier& propertyName, JSC::PropertySlot& slot)
--- a/src/script/bridge/qscriptdeclarativeobject.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/script/bridge/qscriptdeclarativeobject.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -88,6 +88,7 @@
                                     JSC::JSValue value, JSC::PutPropertySlot &slot)
 {
     QScriptEnginePrivate *engine = scriptEngineFromExec(exec);
+    QScript::SaveFrameHelper saveFrame(engine, exec);
     QScriptDeclarativeClass::Identifier identifier = (void *)propertyName.ustring().rep();
 
     QScriptDeclarativeClassPrivate *p = QScriptDeclarativeClassPrivate::get(m_class);
@@ -144,7 +145,7 @@
     QScriptDeclarativeClass *scriptClass = static_cast<DeclarativeObjectDelegate*>(delegate)->m_class;
     QScriptEnginePrivate *eng_p = scriptEngineFromExec(exec);
 
-    JSC::ExecState *oldFrame = eng_p->currentFrame;
+    QScript::SaveFrameHelper saveFrame(eng_p, exec);
     eng_p->pushContext(exec, thisValue, args, callee);
     QScriptContext *ctxt = eng_p->contextForFrame(eng_p->currentFrame);
 
@@ -153,7 +154,6 @@
         scriptClass->call(static_cast<DeclarativeObjectDelegate*>(delegate)->m_object, ctxt);
 
     eng_p->popContext();
-    eng_p->currentFrame = oldFrame;
     return (JSC::JSValue &)(result);
 }
 
--- a/src/script/bridge/qscriptstaticscopeobject.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/script/bridge/qscriptstaticscopeobject.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -87,7 +87,7 @@
 
 QScriptStaticScopeObject::~QScriptStaticScopeObject()
 {
-    delete d;
+    delete d_ptr();
 }
 
 bool QScriptStaticScopeObject::getOwnPropertySlot(JSC::ExecState*, const JSC::Identifier& propertyName, JSC::PropertySlot& slot)
--- a/src/script/script.pro	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/script/script.pro	Mon Oct 04 01:19:32 2010 +0300
@@ -79,7 +79,10 @@
 
 include(script.pri)
 
-symbian:TARGET.UID3=0x2001B2E1
+symbian {
+    TARGET.UID3=0x2001B2E1
+    LIBS += -lhal
+}
 
 # :QTP:Fix header file clashes
 symbian: {
--- a/src/sql/drivers/odbc/qsql_odbc.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/sql/drivers/odbc/qsql_odbc.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -2106,7 +2106,7 @@
         serverType = QString::fromUtf8((const char *)serverString.constData(), t);
 #endif
         isFreeTDSDriver = serverType.contains(QLatin1String("tdsodbc"), Qt::CaseInsensitive);
-        unicode = isFreeTDSDriver == false;
+        unicode = unicode && !isFreeTDSDriver;
     }
 }
 
--- a/src/sql/drivers/psql/qsql_psql.pri	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/sql/drivers/psql/qsql_psql.pri	Mon Oct 04 01:19:32 2010 +0300
@@ -2,12 +2,9 @@
 SOURCES += $$PWD/qsql_psql.cpp
 
 unix|win32-g++* {
-    !static:!isEmpty(QT_LFLAGS_PSQL) {
-        !contains(QT_CONFIG, system-zlib): QT_LFLAGS_PSQL -= -lz
-        LIBS *= $$QT_LFLAGS_PSQL
-        QMAKE_CXXFLAGS *= $$QT_CFLAGS_PSQL
-    }
+    LIBS *= $$QT_LFLAGS_PSQL
     !contains(LIBS, .*pq.*):LIBS += -lpq
+    QMAKE_CXXFLAGS *= $$QT_CFLAGS_PSQL
 } else {
     !contains(LIBS, .*pq.*):LIBS += -llibpq -lws2_32 -ladvapi32
 }
--- a/src/sql/drivers/tds/qsql_tds.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/sql/drivers/tds/qsql_tds.h	Mon Oct 04 01:19:32 2010 +0300
@@ -48,7 +48,10 @@
 
 #ifdef Q_OS_WIN32
 #define WIN32_LEAN_AND_MEAN
+#ifndef Q_USE_SYBASE
 #define DBNTWIN32 // indicates 32bit windows dblib
+#endif
+#include <winsock2.h>
 #include <QtCore/qt_windows.h>
 #include <sqlfront.h>
 #include <sqldb.h>
--- a/src/sql/drivers/tds/qsql_tds.pri	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/sql/drivers/tds/qsql_tds.pri	Mon Oct 04 01:19:32 2010 +0300
@@ -1,8 +1,10 @@
 HEADERS += $$PWD/qsql_tds.h
 SOURCES += $$PWD/qsql_tds.cpp
 
-unix {
+unix|win32-g++*: {
+    LIBS *= $$QT_LFLAGS_TDS
     !contains(LIBS, .*sybdb.*):LIBS += -lsybdb
+    QMAKE_CXXFLAGS *= $$QT_CFLAGS_TDS
 } else:win32-borland {
     LIBS *= $(BCB)/lib/PSDK/NTWDBLIB.LIB
 } else {
--- a/src/sql/kernel/qsqldatabase.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/sql/kernel/qsqldatabase.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -60,7 +60,10 @@
 #include "../drivers/oci/qsql_oci.h"
 #endif
 #ifdef QT_SQL_TDS
+// conflicting RETCODE typedef between odbc and freetds
+#define RETCODE DBRETCODE
 #include "../drivers/tds/qsql_tds.h"
+#undef RETCODE
 #endif
 #ifdef QT_SQL_DB2
 #include "../drivers/db2/qsql_db2.h"
--- a/src/src.pro	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/src.pro	Mon Oct 04 01:19:32 2010 +0300
@@ -112,6 +112,7 @@
    src_declarative.depends = src_gui src_script src_network
    src_plugins.depends = src_gui src_sql src_svg src_multimedia
    src_s60installs.depends = $$TOOLS_SUBDIRS $$SRC_SUBDIRS
+   src_s60installs.depends -= src_s60installs
    src_imports.depends = src_gui src_declarative
    contains(QT_CONFIG, webkit)  {
       src_webkit.depends = src_gui src_sql src_network
--- a/src/svg/qsvghandler.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/svg/qsvghandler.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -74,7 +74,7 @@
 static const char *qt_inherit_text = "inherit";
 #define QT_INHERIT QLatin1String(qt_inherit_text)
 
-Q_DECL_IMPORT double qstrtod(const char *s00, char const **se, bool *ok);
+Q_CORE_EXPORT double qstrtod(const char *s00, char const **se, bool *ok);
 
 // ======== duplicated from qcolor_p
 
--- a/src/testlib/qbenchmarkmeasurement_p.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/testlib/qbenchmarkmeasurement_p.h	Mon Oct 04 01:19:32 2010 +0300
@@ -53,7 +53,7 @@
 // We mean it.
 //
 
-#include <QtCore/qdatetime.h>
+#include <QtCore/qelapsedtimer.h>
 #include "3rdparty/cycle_p.h"
 #include "qbenchmark.h"
 
@@ -87,7 +87,7 @@
     bool needsWarmupIteration();
     QTest::QBenchmarkMetric metricType();
 private:
-    QTime time;
+    QElapsedTimer time;
 };
 
 #ifdef HAVE_TICK_COUNTER // defined in 3rdparty/cycle_p.h
--- a/src/testlib/qtestfilelogger.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/testlib/qtestfilelogger.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -44,6 +44,8 @@
 #include "QtTest/private/qtestlog_p.h"
 #include "QtTest/private/qtestresult_p.h"
 
+#include <QtCore/qdir.h>
+
 #include <stdlib.h>
 #include <stdio.h>
 
@@ -69,11 +71,19 @@
 void QTestFileLogger::init()
 {
     char filename[100];
+    int index = 0;
+#if defined(Q_OS_SYMBIAN)
+    QByteArray ba(QDir::toNativeSeparators(QString(QDir::homePath()+QDir::separator())).toUtf8());
+    index = ba.length();
+    QTest::qt_snprintf(filename, sizeof(filename), "%s%s.log",
+                ba.constData(), QTestResult::currentTestObjectName());
+#else
     QTest::qt_snprintf(filename, sizeof(filename), "%s.log",
                 QTestResult::currentTestObjectName());
-
-    // Keep filenames simple
-    for (uint i = 0; i < sizeof(filename) && filename[i]; ++i) {
+#endif
+ 
+     // Keep filenames simple
+    for (uint i = index; i < sizeof(filename) && filename[i]; ++i) {
         char& c = filename[i];
         if (!((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z')
               || (c >= '0' && c <= '9') || c == '-' || c == '.')) {
--- a/src/tools/moc/generator.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/tools/moc/generator.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -483,54 +483,6 @@
 void Generator::generateProperties()
 {
     //
-    // specify get function, for compatibiliy we accept functions
-    // returning pointers, or const char * for QByteArray.
-    //
-    for (int i = 0; i < cdef->propertyList.count(); ++i) {
-        PropertyDef &p = cdef->propertyList[i];
-        if (p.read.isEmpty())
-            continue;
-        for (int j = 0; j < cdef->publicList.count(); ++j) {
-            const FunctionDef &f = cdef->publicList.at(j);
-            if (f.name != p.read)
-                continue;
-            if (!f.isConst) // get  functions must be const
-                continue;
-            if (f.arguments.size()) // and must not take any arguments
-                continue;
-            PropertyDef::Specification spec = PropertyDef::ValueSpec;
-            QByteArray tmp = f.normalizedType;
-            if (p.type == "QByteArray" && tmp == "const char *")
-                    tmp = "QByteArray";
-            if (tmp.left(6) == "const ")
-                tmp = tmp.mid(6);
-            if (p.type != tmp && tmp.endsWith('*')) {
-                tmp.chop(1);
-                spec = PropertyDef::PointerSpec;
-            } else if (f.type.name.endsWith('&')) { // raw type, not normalized type
-                spec = PropertyDef::ReferenceSpec;
-            }
-            if (p.type != tmp)
-                continue;
-            p.gspec = spec;
-            break;
-        }
-        if(!p.notify.isEmpty()) {
-            int notifyId = -1;
-            for (int j = 0; j < cdef->signalList.count(); ++j) {
-                const FunctionDef &f = cdef->signalList.at(j);
-                if(f.name != p.notify) {
-                    continue;
-                } else {
-                    notifyId = j /* Signal indexes start from 0 */;
-                    break;
-                }
-            }
-            p.notifyId = notifyId;
-        }
-    }
-
-    //
     // Create meta data
     //
 
--- a/src/tools/moc/moc.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/tools/moc/moc.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -727,6 +727,7 @@
                 error("Class declarations lacks Q_OBJECT macro.");
 
             checkSuperClasses(&def);
+            checkProperties(&def);
 
             classList += def;
             knownQObjectClasses.insert(def.classname);
@@ -1211,7 +1212,7 @@
 
     //when searching commas within the default argument, we should take care of template depth (anglecount)
     // unfortunatelly, we do not have enough semantic information to know if '<' is the operator< or
-    // the begining of a template type. so we just use heuristics.
+    // the beginning of a template type. so we just use heuristics.
     int possible = -1;
 
     while (index < symbols.size()) {
@@ -1312,5 +1313,62 @@
     }
 }
 
+void Moc::checkProperties(ClassDef *cdef)
+{
+    //
+    // specify get function, for compatibiliy we accept functions
+    // returning pointers, or const char * for QByteArray.
+    //
+    for (int i = 0; i < cdef->propertyList.count(); ++i) {
+        PropertyDef &p = cdef->propertyList[i];
+        if (p.read.isEmpty())
+            continue;
+        for (int j = 0; j < cdef->publicList.count(); ++j) {
+            const FunctionDef &f = cdef->publicList.at(j);
+            if (f.name != p.read)
+                continue;
+            if (!f.isConst) // get  functions must be const
+                continue;
+            if (f.arguments.size()) // and must not take any arguments
+                continue;
+            PropertyDef::Specification spec = PropertyDef::ValueSpec;
+            QByteArray tmp = f.normalizedType;
+            if (p.type == "QByteArray" && tmp == "const char *")
+                tmp = "QByteArray";
+            if (tmp.left(6) == "const ")
+                tmp = tmp.mid(6);
+            if (p.type != tmp && tmp.endsWith('*')) {
+                tmp.chop(1);
+                spec = PropertyDef::PointerSpec;
+            } else if (f.type.name.endsWith('&')) { // raw type, not normalized type
+                spec = PropertyDef::ReferenceSpec;
+            }
+            if (p.type != tmp)
+                continue;
+            p.gspec = spec;
+            break;
+        }
+        if(!p.notify.isEmpty()) {
+            int notifyId = -1;
+            for (int j = 0; j < cdef->signalList.count(); ++j) {
+                const FunctionDef &f = cdef->signalList.at(j);
+                if(f.name != p.notify) {
+                    continue;
+                } else {
+                    notifyId = j /* Signal indexes start from 0 */;
+                    break;
+                }
+            }
+            p.notifyId = notifyId;
+            if (notifyId == -1) {
+                QByteArray msg = "NOTIFY signal '" + p.notify + "' of property '" + p.name
+                        + "' does not exist in class " + cdef->classname + ".";
+                error(msg.constData());
+            }
+        }
+    }
+}
+
+
 
 QT_END_NAMESPACE
--- a/src/tools/moc/moc.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/tools/moc/moc.h	Mon Oct 04 01:19:32 2010 +0300
@@ -238,6 +238,7 @@
     bool testFunctionAttribute(Token tok, FunctionDef *def);
 
     void checkSuperClasses(ClassDef *def);
+    void checkProperties(ClassDef* cdef);
 };
 
 inline QByteArray noRef(const QByteArray &type)
--- a/src/xml/dom/qdom.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/xml/dom/qdom.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -7418,8 +7418,10 @@
         n = doc->createElement(qName);
     }
 
-    if (n)
-        n->setLocation(locator->lineNumber(), locator->columnNumber());
+    if (!n)
+        return false;
+
+    n->setLocation(locator->lineNumber(), locator->columnNumber());
 
     node->appendChild(n);
     node = n;
--- a/src/xmlpatterns/api/qabstractxmlnodemodel.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/xmlpatterns/api/qabstractxmlnodemodel.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -1355,7 +1355,7 @@
   QAbstractXmlNodeModel for its existence, the only way you can create
   an instance of QXmlNodeModelIndex is by asking the node model to
   create one for you with QAbstractXmlNodeModel::createIndex(). Since
-  that function is protected, it is usually a good ide to write a
+  that function is protected, it is usually a good idea to write a
   public function that creates a QXmlNodeModelIndex from arguments that
   are appropriate for your particular node model.
 
--- a/src/xmlpatterns/api/qxmlquery.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/xmlpatterns/api/qxmlquery.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -151,8 +151,8 @@
   \endcode
 
   \note For the current release, XSLT support should be considered
-        experimental. See section \l{Using XML technologies#XSLT
-        2.0}{XSLT conformance} for details.
+  experimental. See section \l{XQuery#XSLT 2.0} {XSLT conformance} for
+  details.
 
   Stylesheet parameters are bound using bindVariable().
 
@@ -291,8 +291,7 @@
   create instances of QXmlQuery for running XQueries.
 
   \note The XSL-T support in this release is considered experimental.
-  See the \l{Using XML technologies#XSLT 2.0}{XSLT conformance} for
-  details.
+  See the \l{XQuery#XSLT 2.0} {XSLT conformance} for details.
 
  \since 4.5
  \sa queryLanguage()
--- a/src/xmlpatterns/data/qabstractdatetime.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/xmlpatterns/data/qabstractdatetime.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -163,7 +163,7 @@
 
         QString msecondsStr(getSafeCapt(mseconds));
         if(!msecondsStr.isEmpty())
-            msecondsStr = msecondsStr.leftJustified(3, QLatin1Char('0'));
+            msecondsStr = msecondsStr.leftJustified(3, QLatin1Char('0'), true);
         const MSecondProperty msecs = msecondsStr.toInt();
 
         if(hour == 24)
--- a/tests/auto/collections/tst_collections.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/collections/tst_collections.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -165,6 +165,7 @@
     void containerTypedefs();
     void forwardDeclared();
     void alignment();
+    void QTBUG13079_collectionInsideCollection();
 };
 
 struct LargeStatic {
@@ -3589,5 +3590,133 @@
 }
 #endif
 
+#ifndef QT_NO_TEMPLATE_TEMPLATE_PARAMETERS
+
+template<template<class> class C>
+struct QTBUG13079_Node {
+    C<QTBUG13079_Node> children;
+    QString s;
+
+    ~QTBUG13079_Node() {
+        children.begin(); //play with memory
+    }
+};
+template<template<class> class C> void QTBUG13079_collectionInsideCollectionImpl()
+{
+    C<QTBUG13079_Node<C> > nodeList;
+    nodeList << QTBUG13079_Node<C>();
+    nodeList.first().s = "parent";
+    nodeList.first().children << QTBUG13079_Node<C>();
+    nodeList.first().children.first().s = "child";
+
+    nodeList = nodeList.first().children;
+    QCOMPARE(nodeList.first().s, QString::fromLatin1("child"));
+
+    nodeList = nodeList.first().children;
+    QCOMPARE(nodeList.count(), 0);
+    nodeList << QTBUG13079_Node<C>();
+}
+
+template<template<class, class> class C>
+struct QTBUG13079_NodeAssoc {
+    C<int, QTBUG13079_NodeAssoc> children;
+    QString s;
+
+    ~QTBUG13079_NodeAssoc() {
+        children.begin(); //play with memory
+    }
+};
+template<template<class, class> class C> void QTBUG13079_collectionInsideCollectionAssocImpl()
+{
+    C<int, QTBUG13079_NodeAssoc<C> > nodeMap;
+    nodeMap[18] = QTBUG13079_NodeAssoc<C>();
+    nodeMap[18].s = "parent";
+    nodeMap[18].children[12] = QTBUG13079_NodeAssoc<C>();
+    nodeMap[18].children[12].s = "child";
+
+    nodeMap = nodeMap[18].children;
+    QCOMPARE(nodeMap[12].s, QString::fromLatin1("child"));
+
+    nodeMap = nodeMap[12].children;
+    QCOMPARE(nodeMap.count(), 0);
+    nodeMap[42] = QTBUG13079_NodeAssoc<C>();
+}
+
+
+static quint32 qHash(const QTBUG13079_Node<QSet> &)
+{
+    return 0;
+}
+
+bool operator==(const QTBUG13079_Node<QSet> &a, const QTBUG13079_Node<QSet> &b)
+{
+    return a.s == b.s && a.children == b.children;
+}
+
+template<template<class> class C>
+struct QTBUG13079_NodePtr : QSharedData {
+    C<QTBUG13079_NodePtr> child;
+    QTBUG13079_NodePtr *next;
+    QString s;
+
+    QTBUG13079_NodePtr() : next(0) {}
+    ~QTBUG13079_NodePtr() {
+        next = child.data(); //play with memory
+    }
+};
+template<template<class> class C> void QTBUG13079_collectionInsidePtrImpl()
+{
+    typedef C<QTBUG13079_NodePtr<C> > Ptr;
+    {
+        Ptr nodePtr;
+        nodePtr = Ptr(new QTBUG13079_NodePtr<C>());
+        nodePtr->s = "parent";
+        nodePtr->child = Ptr(new QTBUG13079_NodePtr<C>());
+        nodePtr->child->s = "child";
+        nodePtr = nodePtr->child;
+        QCOMPARE(nodePtr->s, QString::fromLatin1("child"));
+        nodePtr = nodePtr->child;
+        QVERIFY(!nodePtr);
+    }
+    {
+        Ptr nodePtr;
+        nodePtr = Ptr(new QTBUG13079_NodePtr<C>());
+        nodePtr->s = "parent";
+        nodePtr->next = new QTBUG13079_NodePtr<C>();
+        nodePtr->next->s = "next";
+        nodePtr = Ptr(nodePtr->next);
+        QCOMPARE(nodePtr->s, QString::fromLatin1("next"));
+        nodePtr = Ptr(nodePtr->next);
+        QVERIFY(!nodePtr);
+    }
+}
+
+#endif
+
+void tst_Collections::QTBUG13079_collectionInsideCollection()
+{
+#ifndef QT_NO_TEMPLATE_TEMPLATE_PARAMETERS
+    QTBUG13079_collectionInsideCollectionImpl<QVector>();
+    QTBUG13079_collectionInsideCollectionImpl<QStack>();
+    QTBUG13079_collectionInsideCollectionImpl<QList>();
+    QTBUG13079_collectionInsideCollectionImpl<QLinkedList>();
+    QTBUG13079_collectionInsideCollectionImpl<QQueue>();
+
+    {
+        QSet<QTBUG13079_Node<QSet> > nodeSet;
+        nodeSet << QTBUG13079_Node<QSet>();
+        nodeSet = nodeSet.begin()->children;
+        QCOMPARE(nodeSet.count(), 0);
+    }
+
+    QTBUG13079_collectionInsideCollectionAssocImpl<QMap>();
+    QTBUG13079_collectionInsideCollectionAssocImpl<QHash>();
+
+    QTBUG13079_collectionInsidePtrImpl<QSharedPointer>();
+    QTBUG13079_collectionInsidePtrImpl<QExplicitlySharedDataPointer>();
+    QTBUG13079_collectionInsidePtrImpl<QSharedDataPointer>();
+#endif
+}
+
 QTEST_APPLESS_MAIN(tst_Collections)
 #include "tst_collections.moc"
--- a/tests/auto/compilerwarnings/test_cpp.txt	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/compilerwarnings/test_cpp.txt	Mon Oct 04 01:19:32 2010 +0300
@@ -58,6 +58,9 @@
 #include <QtDBus/QtDBus>
 #endif
 
+#include <QtDeclarative/QtDeclarative>
+
+
 #ifndef Q_OS_MAC
 int main(int, char **)
 {
--- a/tests/auto/compilerwarnings/tst_compilerwarnings.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/compilerwarnings/tst_compilerwarnings.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -114,6 +114,9 @@
     QTest::addColumn<QStringList>("cflags");
 
     QTest::newRow("standard") << QStringList();
+    QTest::newRow("warn deprecated, fast plus, no debug") << (QStringList() << "-DQT_DEPRECATED_WARNINGS"
+        << "-DQT_USE_FAST_OPERATOR_PLUS" << "-DQT_NU_DEBUG" << "-DQT_NO_DEBUG_STREAM" << "-DQT_NO_WARNING_OUTPUT");
+    QTest::newRow("no deprecated, no keywords") << (QStringList() << "-DQT_NO_DEPRECATED" << "-DQT_NO_KEYWORDS");
 
 #if 0
 #ifdef Q_WS_QWS
@@ -136,14 +139,14 @@
     QSKIP("gcc 3.x outputs too many bogus warnings", SkipAll);
 #endif
 
-    static QString tmpFile;
+    /*static*/ QString tmpFile;
     if (tmpFile.isEmpty()) {
         QTemporaryFile tmpQFile;
         tmpQFile.open();
         tmpFile = tmpQFile.fileName();
         tmpQFile.close();
     }
-    static QString tmpSourceFile;
+    /*static*/ QString tmpSourceFile;
     bool openResult = true;
     const QString tmpBaseName("XXXXXX-test.cpp");
     QString templatePath = QDir::temp().absoluteFilePath(tmpBaseName);
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/auto/declarative/qdeclarativeanimations/data/nonTransitionBug.qml	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,30 @@
+import Qt 4.7
+
+Rectangle {
+    id: root
+    width: 200
+    height: 200
+
+    Rectangle {
+        id: mover
+        objectName: "mover"
+    }
+
+    states: [
+        State {
+            name: "free"
+        },
+        State {
+            name: "left"
+            PropertyChanges {
+                restoreEntryValues: false
+                target: mover
+                x: 0
+            }
+        }
+    ]
+
+    transitions: Transition {
+        PropertyAnimation { properties: "x"; duration: 50 }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/auto/declarative/qdeclarativeanimations/data/propertiesTransition7.qml	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,29 @@
+import Qt 4.7
+
+Rectangle {
+    width: 400
+    height: 400
+    Rectangle {
+        id: theRect
+        objectName: "TheRect"
+        color: "red"
+        width: 50; height: 50
+        x: 100; y: 100
+    }
+
+    states: State {
+        name: "moved"
+        PropertyChanges {
+            target: theRect
+            x: 200
+        }
+    }
+    transitions: Transition {
+        SpringAnimation { targets: theRect; properties: "x"; velocity: 10000 }
+    }
+
+    MouseArea {
+        anchors.fill: parent
+        onClicked: parent.state = "moved"
+    }
+}
--- a/tests/auto/declarative/qdeclarativeanimations/tst_qdeclarativeanimations.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/declarative/qdeclarativeanimations/tst_qdeclarativeanimations.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -48,6 +48,8 @@
 #include <QVariantAnimation>
 #include <QEasingCurve>
 
+#include "../../../shared/util.h"
+
 #ifdef Q_OS_SYMBIAN
 // In Symbian OS test data is located in applications private dir
 #define SRCDIR "."
@@ -82,6 +84,7 @@
     void easingProperties();
     void rotation();
     void runningTrueBug();
+    void nonTransitionBug();
 };
 
 #define QTIMED_COMPARE(lhs, rhs) do { \
@@ -551,6 +554,20 @@
         QTest::qWait(waitDuration);
         QTIMED_COMPARE(myRect->x(),qreal(100));
     }*/
+
+    {
+        QDeclarativeEngine engine;
+        QDeclarativeComponent c(&engine, QUrl::fromLocalFile(SRCDIR "/data/propertiesTransition7.qml"));
+        QDeclarativeRectangle *rect = qobject_cast<QDeclarativeRectangle*>(c.create());
+        QVERIFY(rect);
+
+        QDeclarativeItemPrivate::get(rect)->setState("moved");
+        QDeclarativeRectangle *myRect = rect->findChild<QDeclarativeRectangle*>("TheRect");
+        QVERIFY(myRect);
+        QTest::qWait(waitDuration);
+        QTIMED_COMPARE(myRect->x(),qreal(200));
+    }
+
 }
 
 void tst_qdeclarativeanimations::invalidDuration()
@@ -748,6 +765,34 @@
     QVERIFY(cloud->x() > qreal(0));
 }
 
+//QTBUG-12805
+void tst_qdeclarativeanimations::nonTransitionBug()
+{
+    //tests that the animation values from the previous transition are properly cleared
+    //in the case where an animation in the transition doesn't match anything (but previously did)
+    QDeclarativeEngine engine;
+
+    QDeclarativeComponent c(&engine, SRCDIR "/data/nonTransitionBug.qml");
+    QDeclarativeRectangle *rect = qobject_cast<QDeclarativeRectangle*>(c.create());
+    QVERIFY(rect != 0);
+    QDeclarativeItemPrivate *rectPrivate = QDeclarativeItemPrivate::get(rect);
+    QDeclarativeRectangle *mover = rect->findChild<QDeclarativeRectangle*>("mover");
+
+    mover->setX(100);
+    QCOMPARE(mover->x(), qreal(100));
+
+    rectPrivate->setState("left");
+    QTRY_COMPARE(mover->x(), qreal(0));
+
+    mover->setX(100);
+    QCOMPARE(mover->x(), qreal(100));
+
+    //make sure we don't try to animate back to 0
+    rectPrivate->setState("free");
+    QTest::qWait(300);
+    QCOMPARE(mover->x(), qreal(100));
+}
+
 QTEST_MAIN(tst_qdeclarativeanimations)
 
 #include "tst_qdeclarativeanimations.moc"
--- a/tests/auto/declarative/qdeclarativebehaviors/data/qtbug12295.qml	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/declarative/qdeclarativebehaviors/data/qtbug12295.qml	Mon Oct 04 01:19:32 2010 +0300
@@ -11,7 +11,7 @@
         width: 100
         height: 100
         Behavior on x {
-            NumberAnimation {}
+            NumberAnimation { duration: 500 }
         }
     }
 }
--- a/tests/auto/declarative/qdeclarativedebug/tst_qdeclarativedebug.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/declarative/qdeclarativedebug/tst_qdeclarativedebug.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -636,7 +636,7 @@
     QCOMPARE(context.objects()[0].properties().count(), 0);
     QCOMPARE(context.objects()[0].children().count(), 0);
 
-    QCOMPARE(context.contexts().count(), 1);
+    QCOMPARE(context.contexts().count(), 4);
     QVERIFY(context.contexts()[0].debugId() >= 0);
     QCOMPARE(context.contexts()[0].name(), QString("tst_QDeclarativeDebug_childContext"));
 
--- a/tests/auto/declarative/qdeclarativedom/tst_qdeclarativedom.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/declarative/qdeclarativedom/tst_qdeclarativedom.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -480,7 +480,7 @@
 
         DP_TEST(0, a, QVariant::Int, 25, 14, "int");
         DP_TEST(1, b, QVariant::Bool, 44, 15, "bool");
-        DP_TEST(2, c, QVariant::Double, 64, 17, "double");
+        DP_TEST(2, c, QMetaType::QReal, 64, 17, "double");
         DP_TEST(3, d, QMetaType::QReal, 86, 15, "real");
         DP_TEST(4, e, QVariant::String, 106, 17, "string");
         DP_TEST(5, f, QVariant::Url, 128, 14, "url");
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/auto/declarative/qdeclarativeecmascript/data/deleteLater.qml	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,14 @@
+import Qt 4.7
+
+QtObject {
+    id: root
+    property bool test: false
+
+    Component.onCompleted: {
+        try {
+            root.deleteLater()
+        } catch(e) {
+            test = true;
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/auto/declarative/qdeclarativeecmascript/data/in.qml	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,7 @@
+import Qt 4.7
+
+Item {
+    id: root
+    property bool test1: "x" in root
+    property bool test2: !("foo" in root)
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/auto/declarative/qdeclarativeecmascript/data/invokableObjectArg.qml	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,9 @@
+import Qt.test 1.0
+import Qt 4.7
+
+MyQmlObject {
+    id: root
+    Component.onCompleted: {
+        root.myinvokable(root);
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/auto/declarative/qdeclarativeecmascript/data/invokableObjectRet.qml	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,11 @@
+import Qt.test 1.0
+import Qt 4.7
+
+MyQmlObject {
+    id: root
+    property bool test: false
+    Component.onCompleted: {
+        test = (root.returnme() == root)
+    }
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/auto/declarative/qdeclarativeecmascript/data/nonscriptable.qml	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,19 @@
+import Qt.test 1.0
+import Qt 4.7
+
+MyQmlObject {
+    id: root
+
+    property bool readOk: false;
+    property bool writeOk: false
+
+    Component.onCompleted: {
+        readOk = (root.nonscriptable == undefined);
+
+        try {
+            root.nonscriptable = 10
+        } catch (e) {
+            writeOk = true;
+        }
+    }
+}
--- a/tests/auto/declarative/qdeclarativeecmascript/testtypes.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/declarative/qdeclarativeecmascript/testtypes.h	Mon Oct 04 01:19:32 2010 +0300
@@ -92,9 +92,10 @@
     Q_PROPERTY(QDeclarativeListProperty<QObject> objectListProperty READ objectListProperty CONSTANT)
     Q_PROPERTY(int resettableProperty READ resettableProperty WRITE setResettableProperty RESET resetProperty)
     Q_PROPERTY(QRegExp regExp READ regExp WRITE setRegExp)
+    Q_PROPERTY(int nonscriptable READ nonscriptable WRITE setNonscriptable SCRIPTABLE false);
 
 public:
-    MyQmlObject(): m_methodCalled(false), m_methodIntCalled(false), m_object(0), m_value(0), m_resetProperty(13) {}
+    MyQmlObject(): myinvokableObject(0), m_methodCalled(false), m_methodIntCalled(false), m_object(0), m_value(0), m_resetProperty(13) {}
 
     enum MyEnum { EnumValue1 = 0, EnumValue2 = 1 };
     enum MyEnum2 { EnumValue3 = 2, EnumValue4 = 3 };
@@ -144,6 +145,13 @@
     void setRegExp(const QRegExp &regExp) { m_regExp = regExp; }
 
     int console() const { return 11; }
+
+    int nonscriptable() const { return 0; }
+    void setNonscriptable(int) {}
+
+    MyQmlObject *myinvokableObject;
+    Q_INVOKABLE MyQmlObject *returnme() { return this; }
+
 signals:
     void basicSignal();
     void argumentSignal(int a, QString b, qreal c);
@@ -157,6 +165,7 @@
     void methodNoArgs() { m_methodCalled = true; }
     void method(int a) { if(a == 163) m_methodIntCalled = true; }
     void setString(const QString &s) { m_string = s; }
+    void myinvokable(MyQmlObject *o) { myinvokableObject = o; }
 
 private:
     friend class tst_qdeclarativeecmascript;
@@ -604,62 +613,62 @@
 {
     Q_OBJECT
 public:
-    Q_PROPERTY(qreal test1 READ test1 WRITE setTest1);
+    Q_PROPERTY(qreal test1 READ test1 WRITE setTest1)
     qreal _test1;
     qreal test1() const { return _test1; }
     void setTest1(qreal v) { _test1 = v; }
 
-    Q_PROPERTY(qreal test2 READ test2 WRITE setTest2);
+    Q_PROPERTY(qreal test2 READ test2 WRITE setTest2)
     qreal _test2;
     qreal test2() const { return _test2; }
     void setTest2(qreal v) { _test2 = v; }
 
-    Q_PROPERTY(qreal test3 READ test3 WRITE setTest3);
+    Q_PROPERTY(qreal test3 READ test3 WRITE setTest3)
     qreal _test3;
     qreal test3() const { return _test3; }
     void setTest3(qreal v) { _test3 = v; }
 
-    Q_PROPERTY(qreal test4 READ test4 WRITE setTest4);
+    Q_PROPERTY(qreal test4 READ test4 WRITE setTest4)
     qreal _test4;
     qreal test4() const { return _test4; }
     void setTest4(qreal v) { _test4 = v; }
 
-    Q_PROPERTY(int test5 READ test5 WRITE setTest5);
+    Q_PROPERTY(int test5 READ test5 WRITE setTest5)
     int _test5;
     int test5() const { return _test5; }
     void setTest5(int v) { _test5 = v; }
 
-    Q_PROPERTY(int test6 READ test6 WRITE setTest6);
+    Q_PROPERTY(int test6 READ test6 WRITE setTest6)
     int _test6;
     int test6() const { return _test6; }
     void setTest6(int v) { _test6 = v; }
 
-    Q_PROPERTY(int test7 READ test7 WRITE setTest7);
+    Q_PROPERTY(int test7 READ test7 WRITE setTest7)
     int _test7;
     int test7() const { return _test7; }
     void setTest7(int v) { _test7 = v; }
 
-    Q_PROPERTY(int test8 READ test8 WRITE setTest8);
+    Q_PROPERTY(int test8 READ test8 WRITE setTest8)
     int _test8;
     int test8() const { return _test8; }
     void setTest8(int v) { _test8 = v; }
 
-    Q_PROPERTY(unsigned int test9 READ test9 WRITE setTest9);
+    Q_PROPERTY(unsigned int test9 READ test9 WRITE setTest9)
     unsigned int _test9;
     unsigned int test9() const { return _test9; }
     void setTest9(unsigned int v) { _test9 = v; }
 
-    Q_PROPERTY(unsigned int test10 READ test10 WRITE setTest10);
+    Q_PROPERTY(unsigned int test10 READ test10 WRITE setTest10)
     unsigned int _test10;
     unsigned int test10() const { return _test10; }
     void setTest10(unsigned int v) { _test10 = v; }
 
-    Q_PROPERTY(unsigned int test11 READ test11 WRITE setTest11);
+    Q_PROPERTY(unsigned int test11 READ test11 WRITE setTest11)
     unsigned int _test11;
     unsigned int test11() const { return _test11; }
     void setTest11(unsigned int v) { _test11 = v; }
 
-    Q_PROPERTY(unsigned int test12 READ test12 WRITE setTest12);
+    Q_PROPERTY(unsigned int test12 READ test12 WRITE setTest12)
     unsigned int _test12;
     unsigned int test12() const { return _test12; }
     void setTest12(unsigned int v) { _test12 = v; }
--- a/tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -157,10 +157,15 @@
     void qtbug_10696();
     void qtbug_11606();
     void qtbug_11600();
+    void nonscriptable();
+    void deleteLater();
+    void in();
 
     void include();
 
     void callQtInvokables();
+    void invokableObjectArg();
+    void invokableObjectRet();
 private:
     QDeclarativeEngine engine;
 };
@@ -1730,6 +1735,31 @@
     QCOMPARE(o.actuals().at(0), QVariant(9));
 }
 
+// QTBUG-13047 (check that you can pass registered object types as args)
+void tst_qdeclarativeecmascript::invokableObjectArg()
+{
+    QDeclarativeComponent component(&engine, TEST_FILE("invokableObjectArg.qml"));
+
+    QObject *o = component.create();
+    QVERIFY(o);
+    MyQmlObject *qmlobject = qobject_cast<MyQmlObject *>(o);
+    QVERIFY(qmlobject);
+    QCOMPARE(qmlobject->myinvokableObject, qmlobject);
+
+    delete o;
+}
+
+// QTBUG-13047 (check that you can return registered object types from methods)
+void tst_qdeclarativeecmascript::invokableObjectRet()
+{
+    QDeclarativeComponent component(&engine, TEST_FILE("invokableObjectRet.qml"));
+
+    QObject *o = component.create();
+    QVERIFY(o);
+    QCOMPARE(o->property("test").toBool(), true);
+    delete o;
+}
+
 // QTBUG-5675
 void tst_qdeclarativeecmascript::listToVariant()
 {
@@ -2530,6 +2560,36 @@
     delete o;
 }
 
+// Reading and writing non-scriptable properties should fail
+void tst_qdeclarativeecmascript::nonscriptable()
+{
+    QDeclarativeComponent component(&engine, TEST_FILE("nonscriptable.qml"));
+    QObject *o = component.create();
+    QVERIFY(o != 0);
+    QCOMPARE(o->property("readOk").toBool(), true);
+    QCOMPARE(o->property("writeOk").toBool(), true);
+    delete o;
+}
+
+// deleteLater() should not be callable from QML
+void tst_qdeclarativeecmascript::deleteLater()
+{
+    QDeclarativeComponent component(&engine, TEST_FILE("deleteLater.qml"));
+    QObject *o = component.create();
+    QVERIFY(o != 0);
+    QCOMPARE(o->property("test").toBool(), true);
+    delete o;
+}
+
+void tst_qdeclarativeecmascript::in()
+{
+    QDeclarativeComponent component(&engine, TEST_FILE("in.qml"));
+    QObject *o = component.create();
+    QVERIFY(o != 0);
+    QCOMPARE(o->property("test1").toBool(), true);
+    QCOMPARE(o->property("test2").toBool(), true);
+    delete o;
+}
 
 QTEST_MAIN(tst_qdeclarativeecmascript)
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/auto/declarative/qdeclarativeflickable/data/flickableqgraphicswidget.qml	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,7 @@
+import Qt 4.7
+
+Flickable {
+    width: 100; height: 100
+
+    QGraphicsWidget { objectName: "widget1"; width: 200; height: 300 }
+}
--- a/tests/auto/declarative/qdeclarativeflickable/tst_qdeclarativeflickable.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/declarative/qdeclarativeflickable/tst_qdeclarativeflickable.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -44,6 +44,7 @@
 #include <QtDeclarative/qdeclarativecomponent.h>
 #include <private/qdeclarativeflickable_p.h>
 #include <private/qdeclarativevaluetype_p.h>
+#include <QtGui/qgraphicswidget.h>
 #include <math.h>
 
 #ifdef Q_OS_SYMBIAN
@@ -67,9 +68,13 @@
     void flickDeceleration();
     void pressDelay();
     void flickableDirection();
+    void qgraphicswidget();
 
 private:
     QDeclarativeEngine engine;
+
+    template<typename T>
+    T *findItem(QGraphicsObject *parent, const QString &objectName);
 };
 
 tst_qdeclarativeflickable::tst_qdeclarativeflickable()
@@ -261,6 +266,38 @@
     QCOMPARE(spy.count(),3);
 }
 
+void tst_qdeclarativeflickable::qgraphicswidget()
+{
+    QDeclarativeEngine engine;
+    QDeclarativeComponent c(&engine, QUrl::fromLocalFile(SRCDIR "/data/flickableqgraphicswidget.qml"));
+    QDeclarativeFlickable *flickable = qobject_cast<QDeclarativeFlickable*>(c.create());
+
+    QVERIFY(flickable != 0);
+    QGraphicsWidget *widget = findItem<QGraphicsWidget>(flickable->contentItem(), "widget1");
+    QVERIFY(widget);
+}
+
+template<typename T>
+T *tst_qdeclarativeflickable::findItem(QGraphicsObject *parent, const QString &objectName)
+{
+    const QMetaObject &mo = T::staticMetaObject;
+    //qDebug() << parent->childItems().count() << "children";
+    for (int i = 0; i < parent->childItems().count(); ++i) {
+        QGraphicsObject *item = qobject_cast<QGraphicsObject*>(parent->childItems().at(i));
+        if(!item)
+            continue;
+        //qDebug() << "try" << item;
+        if (mo.cast(item) && (objectName.isEmpty() || item->objectName() == objectName)) {
+            return static_cast<T*>(item);
+        }
+        item = findItem<T>(item, objectName);
+        if (item)
+            return static_cast<T*>(item);
+    }
+
+    return 0;
+}
+
 QTEST_MAIN(tst_qdeclarativeflickable)
 
 #include "tst_qdeclarativeflickable.moc"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/auto/declarative/qdeclarativefocusscope/data/signalEmission.qml	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,33 @@
+import Qt 4.7
+
+Rectangle {
+    width: 200
+    height: 200
+
+    FocusScope {
+        focus: true
+        Rectangle {
+            objectName: "item1"
+            color: "blue"
+            onFocusChanged: focus ? color = "red" : color = "blue"
+        }
+        Rectangle {
+            objectName: "item2"
+            color: "blue"
+            onFocusChanged: focus ? color = "red" : color = "blue"
+        }
+    }
+
+    FocusScope {
+        Rectangle {
+            objectName: "item3"
+            color: "blue"
+            onFocusChanged: focus ? color = "red" : color = "blue"
+        }
+        Rectangle {
+            objectName: "item4"
+            color: "blue"
+            onFocusChanged: focus ? color = "red" : color = "blue"
+        }
+    }
+}
--- a/tests/auto/declarative/qdeclarativefocusscope/tst_qdeclarativefocusscope.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/declarative/qdeclarativefocusscope/tst_qdeclarativefocusscope.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -69,6 +69,7 @@
     void textEdit();
     void forceFocus();
     void noParentFocus();
+    void signalEmission();
 };
 
 /*
@@ -335,7 +336,7 @@
     view->setSource(QUrl::fromLocalFile(SRCDIR "/data/chain.qml"));
     QVERIFY(view->rootObject());
 
-    QVERIFY(view->rootObject()->property("focus1") == true);
+    QVERIFY(view->rootObject()->property("focus1") == false);
     QVERIFY(view->rootObject()->property("focus2") == false);
     QVERIFY(view->rootObject()->property("focus3") == true);
     QVERIFY(view->rootObject()->property("focus4") == true);
@@ -344,6 +345,61 @@
     delete view;
 }
 
+void tst_qdeclarativefocusscope::signalEmission()
+{
+    QDeclarativeView *view = new QDeclarativeView;
+    view->setSource(QUrl::fromLocalFile(SRCDIR "/data/signalEmission.qml"));
+
+    QDeclarativeRectangle *item1 = findItem<QDeclarativeRectangle>(view->rootObject(), QLatin1String("item1"));
+    QDeclarativeRectangle *item2 = findItem<QDeclarativeRectangle>(view->rootObject(), QLatin1String("item2"));
+    QDeclarativeRectangle *item3 = findItem<QDeclarativeRectangle>(view->rootObject(), QLatin1String("item3"));
+    QDeclarativeRectangle *item4 = findItem<QDeclarativeRectangle>(view->rootObject(), QLatin1String("item4"));
+    QVERIFY(item1 != 0);
+    QVERIFY(item2 != 0);
+    QVERIFY(item3 != 0);
+    QVERIFY(item4 != 0);
+
+    view->show();
+    qApp->setActiveWindow(view);
+    qApp->processEvents();
+
+#ifdef Q_WS_X11
+    // to be safe and avoid failing setFocus with window managers
+    qt_x11_wait_for_window_manager(view);
+#endif
+
+    QVariant blue(QColor("blue"));
+    QVariant red(QColor("red"));
+
+    QVERIFY(view->hasFocus());
+    QVERIFY(view->scene()->hasFocus());
+    item1->setFocus(true);
+    QCOMPARE(item1->property("color"), red);
+    QCOMPARE(item2->property("color"), blue);
+    QCOMPARE(item3->property("color"), blue);
+    QCOMPARE(item4->property("color"), blue);
+
+    item2->setFocus(true);
+    QCOMPARE(item1->property("color"), blue);
+    QCOMPARE(item2->property("color"), red);
+    QCOMPARE(item3->property("color"), blue);
+    QCOMPARE(item4->property("color"), blue);
+
+    item3->setFocus(true);
+    QCOMPARE(item1->property("color"), blue);
+    QCOMPARE(item2->property("color"), red);
+    QCOMPARE(item3->property("color"), red);
+    QCOMPARE(item4->property("color"), blue);
+
+    item4->setFocus(true);
+    QCOMPARE(item1->property("color"), blue);
+    QCOMPARE(item2->property("color"), red);
+    QCOMPARE(item3->property("color"), blue);
+    QCOMPARE(item4->property("color"), red);
+
+    delete view;
+}
+
 QTEST_MAIN(tst_qdeclarativefocusscope)
 
 #include "tst_qdeclarativefocusscope.moc"
--- a/tests/auto/declarative/qdeclarativegridview/tst_qdeclarativegridview.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/declarative/qdeclarativegridview/tst_qdeclarativegridview.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -590,7 +590,7 @@
     QCOMPARE(gridview->currentIndex(), 35);
     QCOMPARE(gridview->currentItem(), findItem<QDeclarativeItem>(contentItem, "wrapper", 35));
     QCOMPARE(gridview->currentItem()->y(), gridview->highlightItem()->y());
-    QCOMPARE(gridview->contentY(), 399.0);
+    QCOMPARE(gridview->contentY(), 400.0);
 
     gridview->moveCurrentIndexRight();
     QCOMPARE(gridview->currentIndex(), 36);
@@ -629,7 +629,7 @@
     gridview->moveCurrentIndexLeft();
     QCOMPARE(gridview->currentIndex(), model.count()-1);
 
-    QTRY_COMPARE(gridview->contentY(), 879.0);
+    QTRY_COMPARE(gridview->contentY(), 880.0);
 
     gridview->moveCurrentIndexRight();
     QCOMPARE(gridview->currentIndex(), 0);
@@ -655,6 +655,15 @@
 
     gridview->setFlow(QDeclarativeGridView::TopToBottom);
 
+    qApp->setActiveWindow(canvas);
+#ifdef Q_WS_X11
+    // to be safe and avoid failing setFocus with window managers
+    qt_x11_wait_for_window_manager(canvas);
+#endif
+    QTRY_VERIFY(canvas->hasFocus());
+    QTRY_VERIFY(canvas->scene()->hasFocus());
+    qApp->processEvents();
+
     QTest::keyClick(canvas, Qt::Key_Right);
     QCOMPARE(gridview->currentIndex(), 5);
 
Binary file tests/auto/declarative/qdeclarativeimage/data/heart-arm.png has changed
Binary file tests/auto/declarative/qdeclarativeimage/data/heart-mac.png has changed
Binary file tests/auto/declarative/qdeclarativeimage/data/heart-win32.png has changed
Binary file tests/auto/declarative/qdeclarativeimage/data/heart.png has changed
Binary file tests/auto/declarative/qdeclarativeimage/data/heart200-arm.png has changed
Binary file tests/auto/declarative/qdeclarativeimage/data/heart200-mac.png has changed
Binary file tests/auto/declarative/qdeclarativeimage/data/heart200-win32.png has changed
Binary file tests/auto/declarative/qdeclarativeimage/data/heart200.png has changed
--- a/tests/auto/declarative/qdeclarativeimage/tst_qdeclarativeimage.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/declarative/qdeclarativeimage/tst_qdeclarativeimage.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -272,32 +272,24 @@
     QVERIFY(obj != 0);
     QCOMPARE(obj->pixmap().width(), 300);
     QCOMPARE(obj->pixmap().height(), 300);
-    QCOMPARE(obj->width(), 550.0);
-    QCOMPARE(obj->height(), 500.0);
-#if defined(Q_OS_MAC)
-    QCOMPARE(obj->pixmap(), QPixmap(SRCDIR "/data/heart-mac.png"));
+    QCOMPARE(obj->width(), 300.0);
+    QCOMPARE(obj->height(), 300.0);
+#if defined(Q_OS_LINUX)
+    QCOMPARE(obj->pixmap(), QPixmap(SRCDIR "/data/heart.png"));
 #elif defined(Q_OS_WIN32)
     QCOMPARE(obj->pixmap(), QPixmap(SRCDIR "/data/heart-win32.png"));
-#elif defined(QT_ARCH_ARM)
-    QCOMPARE(obj->pixmap(), QPixmap(SRCDIR "/data/heart-arm.png"));
-#else
-    QCOMPARE(obj->pixmap(), QPixmap(SRCDIR "/data/heart.png"));
 #endif
 
     obj->setSourceSize(QSize(200,200));
 
     QCOMPARE(obj->pixmap().width(), 200);
     QCOMPARE(obj->pixmap().height(), 200);
-    QCOMPARE(obj->width(), 550.0);
-    QCOMPARE(obj->height(), 500.0);
-#if defined(Q_OS_MAC)
-    QCOMPARE(obj->pixmap(), QPixmap(SRCDIR "/data/heart200-mac.png"));
+    QCOMPARE(obj->width(), 200.0);
+    QCOMPARE(obj->height(), 200.0);
+#if defined(Q_OS_LINUX)
+    QCOMPARE(obj->pixmap(), QPixmap(SRCDIR "/data/heart200.png"));
 #elif defined(Q_OS_WIN32)
     QCOMPARE(obj->pixmap(), QPixmap(SRCDIR "/data/heart200-win32.png"));
-#elif defined(QT_ARCH_ARM)
-    QCOMPARE(obj->pixmap(), QPixmap(SRCDIR "/data/heart200-arm.png"));
-#else
-    QCOMPARE(obj->pixmap(), QPixmap(SRCDIR "/data/heart200.png"));
 #endif
     delete obj;
 }
@@ -308,7 +300,7 @@
     // have to build a 400 MB image. That would be a bug in the JPEG loader.
 
     QString src = QUrl::fromLocalFile(SRCDIR "/data/big.jpeg").toString();
-    QString componentStr = "import Qt 4.7\nImage { source: \"" + src + "\"; sourceSize.width: 256; sourceSize.height: 256 }";
+    QString componentStr = "import Qt 4.7\nImage { source: \"" + src + "\"; width: 100; sourceSize.height: 256 }";
 
     QDeclarativeComponent component(&engine);
     component.setData(componentStr.toLatin1(), QUrl::fromLocalFile(""));
@@ -316,8 +308,8 @@
     QVERIFY(obj != 0);
     QCOMPARE(obj->pixmap().width(), 256);
     QCOMPARE(obj->pixmap().height(), 256);
-    QCOMPARE(obj->width(), 10240.0);
-    QCOMPARE(obj->height(), 10240.0);
+    QCOMPARE(obj->width(), 100.0);
+    QCOMPARE(obj->height(), 256.0);
     QCOMPARE(obj->pixmap(), QPixmap(SRCDIR "/data/big256.png"));
 
     delete obj;
--- a/tests/auto/declarative/qdeclarativeimageprovider/tst_qdeclarativeimageprovider.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/declarative/qdeclarativeimageprovider/tst_qdeclarativeimageprovider.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -44,6 +44,7 @@
 #include <QtDeclarative/qdeclarativeimageprovider.h>
 #include <private/qdeclarativeimage_p.h>
 #include <QImageReader>
+#include <QWaitCondition>
 
 #ifdef Q_OS_SYMBIAN
 // In Symbian OS test data is located in applications private dir
@@ -85,6 +86,8 @@
     void removeProvider_data();
     void removeProvider();
 
+    void threadTest();
+
 private:
     QString newImageFileName() const;
     void fillRequestTestsData(const QString &id);
@@ -95,11 +98,17 @@
 class TestQImageProvider : public QDeclarativeImageProvider
 {
 public:
-    TestQImageProvider()
-        : QDeclarativeImageProvider(Image)
+    TestQImageProvider(bool *deleteWatch = 0)
+        : QDeclarativeImageProvider(Image), deleteWatch(deleteWatch)
     {
     }
 
+    ~TestQImageProvider()
+    {
+        if (deleteWatch)
+            *deleteWatch = true;
+    }
+
     QImage requestImage(const QString &id, QSize *size, const QSize& requestedSize)
     {
         if (id == QLatin1String("no-such-file.png"))
@@ -114,6 +123,8 @@
             image = image.scaled(requestedSize);
         return image;
     }
+
+    bool *deleteWatch;
 };
 Q_DECLARE_METATYPE(TestQImageProvider*);
 
@@ -121,11 +132,17 @@
 class TestQPixmapProvider : public QDeclarativeImageProvider
 {
 public:
-    TestQPixmapProvider()
-        : QDeclarativeImageProvider(Pixmap)
+    TestQPixmapProvider(bool *deleteWatch = 0)
+        : QDeclarativeImageProvider(Pixmap), deleteWatch(deleteWatch)
     {
     }
 
+    ~TestQPixmapProvider()
+    {
+        if (deleteWatch)
+            *deleteWatch = true;
+    }
+
     QPixmap requestPixmap(const QString &id, QSize *size, const QSize& requestedSize)
     {
         if (id == QLatin1String("no-such-file.png"))
@@ -140,6 +157,8 @@
             image = image.scaled(requestedSize);
         return image;
     }
+
+    bool *deleteWatch;
 };
 Q_DECLARE_METATYPE(TestQPixmapProvider*);
 
@@ -202,8 +221,8 @@
             TRY_WAIT(obj->status() == QDeclarativeImage::Ready);
         else
             QVERIFY(obj->status() == QDeclarativeImage::Ready);
-        QCOMPARE(obj->width(), 100.0);
-        QCOMPARE(obj->height(), 100.0);
+        QCOMPARE(obj->width(), qreal(size.width()));
+        QCOMPARE(obj->height(), qreal(size.height()));
         QCOMPARE(obj->pixmap().width(), size.width());
         QCOMPARE(obj->pixmap().height(), size.height());
         QCOMPARE(obj->fillMode(), QDeclarativeImage::Stretch);
@@ -225,7 +244,9 @@
 
 void tst_qdeclarativeimageprovider::requestImage_sync()
 {
-    runTest(false, new TestQImageProvider);
+    bool deleteWatch = false;
+    runTest(false, new TestQImageProvider(&deleteWatch));
+    QVERIFY(deleteWatch);
 }
 
 void tst_qdeclarativeimageprovider::requestImage_async_data()
@@ -235,7 +256,9 @@
 
 void tst_qdeclarativeimageprovider::requestImage_async()
 {
-    runTest(true, new TestQImageProvider);
+    bool deleteWatch = false;
+    runTest(true, new TestQImageProvider(&deleteWatch));
+    QVERIFY(deleteWatch);
 }
 
 void tst_qdeclarativeimageprovider::requestPixmap_sync_data()
@@ -245,13 +268,15 @@
 
 void tst_qdeclarativeimageprovider::requestPixmap_sync()
 {
-    runTest(false, new TestQPixmapProvider);
+    bool deleteWatch = false;
+    runTest(false, new TestQPixmapProvider(&deleteWatch));
+    QVERIFY(deleteWatch);
 }
 
 void tst_qdeclarativeimageprovider::requestPixmap_async()
 {
     QDeclarativeEngine engine;
-    QDeclarativeImageProvider *provider = new TestQPixmapProvider;
+    QDeclarativeImageProvider *provider = new TestQPixmapProvider();
 
     engine.addImageProvider("test", provider);
     QVERIFY(engine.imageProvider("test") != 0);
@@ -305,6 +330,71 @@
     delete obj;
 }
 
+class TestThreadProvider : public QDeclarativeImageProvider
+{
+    public:
+        TestThreadProvider() : QDeclarativeImageProvider(Image), ok(false) {}
+
+        ~TestThreadProvider() {}
+
+        QImage requestImage(const QString &id, QSize *size, const QSize& requestedSize)
+        {
+            mutex.lock();
+            if (!ok)
+                cond.wait(&mutex);
+            mutex.unlock();
+            QVector<int> v;
+            for (int i = 0; i < 10000; i++)
+                v.prepend(i); //do some computation
+            QImage image(50,50, QImage::Format_RGB32);
+            image.fill(QColor(id).rgb());
+            if (size)
+                *size = image.size();
+            if (requestedSize.isValid())
+                image = image.scaled(requestedSize);
+            return image;
+        }
+
+        QWaitCondition cond;
+        QMutex mutex;
+        bool ok;
+};
+
+
+void tst_qdeclarativeimageprovider::threadTest()
+{
+    QDeclarativeEngine engine;
+
+    TestThreadProvider *provider = new TestThreadProvider;
+
+    engine.addImageProvider("test_thread", provider);
+    QVERIFY(engine.imageProvider("test_thread") != 0);
+
+    QString componentStr = "import Qt 4.7\nItem { \n"
+            "Image { source: \"image://test_thread/blue\";  asynchronous: true; }\n"
+            "Image { source: \"image://test_thread/red\";  asynchronous: true; }\n"
+            "Image { source: \"image://test_thread/green\";  asynchronous: true; }\n"
+            "Image { source: \"image://test_thread/yellow\";  asynchronous: true; }\n"
+            " }";
+    QDeclarativeComponent component(&engine);
+    component.setData(componentStr.toLatin1(), QUrl::fromLocalFile(""));
+    QObject *obj = component.create();
+    //MUST not deadlock
+    QVERIFY(obj != 0);
+    QList<QDeclarativeImage *> images = obj->findChildren<QDeclarativeImage *>();
+    QCOMPARE(images.count(), 4);
+    QTest::qWait(100);
+    foreach(QDeclarativeImage *img, images) {
+        QCOMPARE(img->status(), QDeclarativeImage::Loading);
+    }
+    provider->ok = true;
+    provider->cond.wakeAll();
+    QTest::qWait(250);
+    foreach(QDeclarativeImage *img, images) {
+        TRY_WAIT(img->status() == QDeclarativeImage::Ready);
+    }
+}
+
 
 QTEST_MAIN(tst_qdeclarativeimageprovider)
 
--- a/tests/auto/declarative/qdeclarativeinstruction/tst_qdeclarativeinstruction.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/declarative/qdeclarativeinstruction/tst_qdeclarativeinstruction.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -585,7 +585,7 @@
         << "45\t\t48\tDEFER\t\t\t7"
         << "46\t\tNA\tDEFER\t\t\t7"
         << "47\t\t48\tSTORE_IMPORTED_SCRIPT\t2"
-        << "48\t\t50\tXXX UNKOWN INSTRUCTION\t1234"
+        << "48\t\t50\tXXX UNKNOWN INSTRUCTION\t1234"
         << "49\t\t51\tSTORE_VARIANT_INTEGER\t\t32\t11"
         << "50\t\t52\tSTORE_VARIANT_DOUBLE\t\t19\t33.7"
         << "-------------------------------------------------------------------------------";
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/auto/declarative/qdeclarativeitem/data/childrenRectBug3.qml	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,15 @@
+import Qt 4.7
+
+Rectangle {
+    width: 300
+    height: 300
+
+    Rectangle {
+        height: childrenRect.height
+
+        Repeater {
+            model: 1
+            Rectangle {	}
+        }
+    }
+}
--- a/tests/auto/declarative/qdeclarativeitem/tst_qdeclarativeitem.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/declarative/qdeclarativeitem/tst_qdeclarativeitem.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -75,6 +75,7 @@
     void childrenRect();
     void childrenRectBug();
     void childrenRectBug2();
+    void childrenRectBug3();
 
     void childrenProperty();
     void resourcesProperty();
@@ -780,6 +781,17 @@
     delete canvas;
 }
 
+// QTBUG-12722
+void tst_QDeclarativeItem::childrenRectBug3()
+{
+    QDeclarativeView *canvas = new QDeclarativeView(0);
+    canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/childrenRectBug3.qml"));
+    canvas->show();
+
+    //don't crash on delete
+    delete canvas;
+}
+
 template<typename T>
 T *tst_QDeclarativeItem::findItem(QGraphicsObject *parent, const QString &objectName)
 {
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/auto/declarative/qdeclarativelanguage/data/DontDoubleCallClassBeginItem.qml	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,4 @@
+import Test 1.0
+
+MyParserStatus {
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/auto/declarative/qdeclarativelanguage/data/aliasPropertiesAndSignals.qml	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,14 @@
+import Qt 4.7
+
+QtObject {
+    id: root
+
+    property bool test: false
+    property alias myalias: root.objectName
+    signal go
+    onGo: test = true
+
+    Component.onCompleted: {
+        root.go();
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/auto/declarative/qdeclarativelanguage/data/dontDoubleCallClassBegin.qml	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,5 @@
+import Qt 4.7
+
+Item {
+    property QtObject object: DontDoubleCallClassBeginItem {}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidAlias.7.errors.txt	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,1 @@
+5:23:Invalid alias location
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidAlias.7.qml	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,6 @@
+import Test 1.0
+
+MyTypeObject {
+    id: root
+    property alias a: root.nonScriptable
+}
--- a/tests/auto/declarative/qdeclarativelanguage/data/nestedErrors.errors.txt	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/declarative/qdeclarativelanguage/data/nestedErrors.errors.txt	Mon Oct 04 01:19:32 2010 +0300
@@ -1,2 +1,2 @@
-4:5:Unable to create type NestedErrorsType
+4:5:Type NestedErrorsType unavailable
 4:8:Invalid property assignment: number expected
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/auto/declarative/qdeclarativelanguage/data/nonScriptableProperty.errors.txt	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,1 @@
+4:5:Cannot assign to non-existent property "nonScriptable"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/auto/declarative/qdeclarativelanguage/data/nonScriptableProperty.qml	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,5 @@
+import Test 1.0
+
+MyQmlObject {
+    nonScriptable: 11
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/auto/declarative/qdeclarativelanguage/data/variantNotify.qml	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,13 @@
+import Qt 4.7
+
+QtObject {
+    property int notifyCount: 0
+
+    property variant foo
+    onFooChanged: notifyCount++
+
+    Component.onCompleted: {
+        foo = 1;
+        foo = 1;
+    }
+}
--- a/tests/auto/declarative/qdeclarativelanguage/testtypes.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/declarative/qdeclarativelanguage/testtypes.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -50,6 +50,7 @@
     qmlRegisterType<MyDotPropertyObject>("Test",1,0,"MyDotPropertyObject");
     qmlRegisterType<MyNamespace::MyNamespacedType>("Test",1,0,"MyNamespacedType");
     qmlRegisterType<MyNamespace::MySecondNamespacedType>("Test",1,0,"MySecondNamespacedType");
+    qmlRegisterType<MyParserStatus>("Test",1,0,"MyParserStatus");
     qmlRegisterType<MyGroupedObject>();
 
     qmlRegisterCustomType<MyCustomParserType>("Test", 1, 0, "MyCustomParserType", new MyCustomParserTypeParser);
--- a/tests/auto/declarative/qdeclarativelanguage/testtypes.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/declarative/qdeclarativelanguage/testtypes.h	Mon Oct 04 01:19:32 2010 +0300
@@ -112,6 +112,7 @@
     Q_PROPERTY(MyCustomVariantType customType READ customType WRITE setCustomType)
     Q_PROPERTY(MyQmlObject *qmlobjectProperty READ qmlobject WRITE setQmlobject)
     Q_PROPERTY(int propertyWithNotify READ propertyWithNotify WRITE setPropertyWithNotify NOTIFY oddlyNamedNotifySignal)
+    Q_PROPERTY(int nonScriptable READ nonScriptable WRITE setNonScriptable SCRIPTABLE false);
 
     Q_INTERFACES(MyInterface)
 public:
@@ -150,6 +151,9 @@
 
     int propertyWithNotify() const { return m_propertyWithNotify; }
     void setPropertyWithNotify(int i) { m_propertyWithNotify = i; emit oddlyNamedNotifySignal(); }
+
+    int nonScriptable() const { return 0; }
+    void setNonScriptable(int) {}
 public slots:
     void basicSlot() { qWarning("MyQmlObject::basicSlot"); }
     void basicSlotWithArgs(int v) { qWarning("MyQmlObject::basicSlotWithArgs(%d)", v); }
@@ -170,7 +174,6 @@
 QML_DECLARE_TYPE(MyQmlObject)
 QML_DECLARE_TYPEINFO(MyQmlObject, QML_HAS_ATTACHED_PROPERTIES)
 
-
 class MyGroupedObject : public QObject
 {
     Q_OBJECT
@@ -576,6 +579,22 @@
     void setCustomData(QObject *, const QByteArray &) {}
 };
 
+class MyParserStatus : public QObject, public QDeclarativeParserStatus
+{
+    Q_OBJECT
+public:
+    MyParserStatus() : m_cbc(0), m_ccc(0) {}
+
+    int classBeginCount() const { return m_cbc; }
+    int componentCompleteCount() const { return m_ccc; }
+
+    virtual void classBegin() { m_cbc++; }
+    virtual void componentComplete() { m_ccc++; }
+private:
+    int m_cbc;
+    int m_ccc;
+};
+
 void registerTypes();
 
 #endif // TESTTYPES_H
--- a/tests/auto/declarative/qdeclarativelanguage/tst_qdeclarativelanguage.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/declarative/qdeclarativelanguage/tst_qdeclarativelanguage.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -118,6 +118,7 @@
     void valueTypes();
     void cppnamespace();
     void aliasProperties();
+    void aliasPropertiesAndSignals();
     void componentCompositeType();
     void i18n();
     void i18n_data();
@@ -126,6 +127,7 @@
     void scriptString();
     void defaultPropertyListOrder();
     void declaredPropertyValues();
+    void dontDoubleCallClassBegin();
 
     void basicRemote_data();
     void basicRemote();
@@ -141,8 +143,8 @@
     void importsOrder();
 
     void qmlAttachedPropertiesObjectMethod();
-
     void customOnProperty();
+    void variantNotify();
 
     // regression tests for crashes
     void crash1();
@@ -342,6 +344,7 @@
     QTest::newRow("invalidAlias.4") << "invalidAlias.4.qml" << "invalidAlias.4.errors.txt" << false;
     QTest::newRow("invalidAlias.5") << "invalidAlias.5.qml" << "invalidAlias.5.errors.txt" << false;
     QTest::newRow("invalidAlias.6") << "invalidAlias.6.qml" << "invalidAlias.6.errors.txt" << false;
+    QTest::newRow("invalidAlias.7") << "invalidAlias.7.qml" << "invalidAlias.7.errors.txt" << false;
 
     QTest::newRow("invalidAttachedProperty.1") << "invalidAttachedProperty.1.qml" << "invalidAttachedProperty.1.errors.txt" << false;
     QTest::newRow("invalidAttachedProperty.2") << "invalidAttachedProperty.2.qml" << "invalidAttachedProperty.2.errors.txt" << false;
@@ -372,6 +375,7 @@
     QTest::newRow("assignToNamespace") << "assignToNamespace.qml" << "assignToNamespace.errors.txt" << false;
     QTest::newRow("invalidOn") << "invalidOn.qml" << "invalidOn.errors.txt" << false;
     QTest::newRow("invalidProperty") << "invalidProperty.qml" << "invalidProperty.errors.txt" << false;
+    QTest::newRow("nonScriptableProperty") << "nonScriptableProperty.qml" << "nonScriptableProperty.errors.txt" << false;
 }
 
 
@@ -1048,6 +1052,17 @@
     }
 }
 
+// QTBUG-13374 Test that alias properties and signals can coexist
+void tst_qdeclarativelanguage::aliasPropertiesAndSignals()
+{
+    QDeclarativeComponent component(&engine, TEST_FILE("aliasPropertiesAndSignals.qml"));
+    VERIFY_ERRORS(0);
+    QObject *o = component.create();
+    QVERIFY(o);
+    QCOMPARE(o->property("test").toBool(), true);
+    delete o;
+}
+
 // Test that the root element in a composite type can be a Component
 void tst_qdeclarativelanguage::componentCompositeType()
 {
@@ -1192,6 +1207,20 @@
     VERIFY_ERRORS(0);
 }
 
+void tst_qdeclarativelanguage::dontDoubleCallClassBegin()
+{
+    QDeclarativeComponent component(&engine, TEST_FILE("dontDoubleCallClassBegin.qml"));
+    QObject *o = component.create();
+    QVERIFY(o);
+
+    MyParserStatus *o2 = qobject_cast<MyParserStatus *>(qvariant_cast<QObject *>(o->property("object")));
+    QVERIFY(o2);
+    QCOMPARE(o2->classBeginCount(), 1);
+    QCOMPARE(o2->componentCompleteCount(), 1);
+
+    delete o;
+}
+
 // Check that first child of qml is of given type. Empty type insists on error.
 void tst_qdeclarativelanguage::testType(const QString& qml, const QString& type, const QString& expectederror)
 {
@@ -1668,6 +1697,20 @@
     delete object;
 }
 
+// QTBUG-12601
+void tst_qdeclarativelanguage::variantNotify()
+{
+    QDeclarativeComponent component(&engine, TEST_FILE("variantNotify.qml"));
+
+    VERIFY_ERRORS(0);
+    QObject *object = component.create();
+    QVERIFY(object != 0);
+
+    QCOMPARE(object->property("notifyCount").toInt(), 1);
+
+    delete object;
+}
+
 void tst_qdeclarativelanguage::initTestCase()
 {
     registerTypes();
--- a/tests/auto/declarative/qdeclarativelistmodel/tst_qdeclarativelistmodel.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/declarative/qdeclarativelistmodel/tst_qdeclarativelistmodel.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -271,6 +271,9 @@
     QTest::newRow("nested-insert") << "{append({'foo':123});insert(0,{'bars':[{'a':1},{'b':2},{'c':3}]});get(0).bars.get(0).a}" << 1 << "";
     QTest::newRow("nested-set") << "{append({'foo':123});set(0,{'foo':[{'x':123}]});get(0).foo.get(0).x}" << 123 << "";
 
+    QTest::newRow("nested-count") << "{append({'foo':123,'bars':[{'a':1},{'a':2},{'a':3}]}); get(0).bars.count}" << 3 << "";
+    QTest::newRow("nested-clear") << "{append({'foo':123,'bars':[{'a':1},{'a':2},{'a':3}]}); get(0).bars.clear(); get(0).bars.count}" << 0 << "";
+
     // XXX
     //QTest::newRow("nested-setprop") << "{append({'foo':123});setProperty(0,'foo',[{'x':123}]);get(0).foo.get(0).x}" << 123 << "";
 }
@@ -344,9 +347,7 @@
         waitForWorker(item);
 
         QDeclarativeExpression e(eng.rootContext(), &model, operations.last().toString());
-        if (QByteArray(QTest::currentDataTag()).startsWith("nested"))
-            QVERIFY(e.evaluate().toInt() != result);
-        else
+        if (!QByteArray(QTest::currentDataTag()).startsWith("nested"))
             QCOMPARE(e.evaluate().toInt(), result);
     }
 
--- a/tests/auto/declarative/qdeclarativelistview/data/itemlist.qml	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/declarative/qdeclarativelistview/data/itemlist.qml	Mon Oct 04 01:19:32 2010 +0300
@@ -13,17 +13,17 @@
         objectName: "itemModel"
         Rectangle {
             objectName: "item1"
-            height: view.height; width: view.width; color: "#FFFEF0"
+            height: ListView.view.height; width: view.width; color: "#FFFEF0"
             Text { objectName: "text1"; text: "index: " + parent.VisualItemModel.index; font.bold: true; anchors.centerIn: parent }
         }
         Rectangle {
             objectName: "item2"
-            height: view.height; width: view.width; color: "#F0FFF7"
+            height: ListView.view.height; width: view.width; color: "#F0FFF7"
             Text { objectName: "text2"; text: "index: " + parent.VisualItemModel.index; font.bold: true; anchors.centerIn: parent }
         }
         Rectangle {
             objectName: "item3"
-            height: view.height; width: view.width; color: "#F4F0FF"
+            height: ListView.view.height; width: view.width; color: "#F4F0FF"
             Text { objectName: "text3"; text: "index: " + parent.VisualItemModel.index; font.bold: true; anchors.centerIn: parent }
         }
     }
--- a/tests/auto/declarative/qdeclarativelistview/data/listviewtest.qml	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/declarative/qdeclarativelistview/data/listviewtest.qml	Mon Oct 04 01:19:32 2010 +0300
@@ -4,6 +4,12 @@
     width: 240
     height: 320
     color: "#ffffff"
+
+    property real hr: list.visibleArea.heightRatio
+    function heightRatio() {
+        return list.visibleArea.heightRatio
+    }
+
     function checkProperties() {
         testObject.error = false;
         if (list.model != testModel) {
--- a/tests/auto/declarative/qdeclarativelistview/tst_qdeclarativelistview.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/declarative/qdeclarativelistview/tst_qdeclarativelistview.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -98,6 +98,7 @@
     void manualHighlight();
     void QTBUG_11105();
     void footer();
+    void resizeView();
 
 private:
     template <class T> void items();
@@ -223,6 +224,13 @@
         emit itemsRemoved(index, 1);
     }
 
+    void removeItems(int index, int count) {
+        int c = count;
+        while (c--)
+            list.removeAt(index);
+        emit itemsRemoved(index, count);
+    }
+
     void moveItem(int from, int to) {
         list.move(from, to);
         emit itemsMoved(from, to, 1);
@@ -289,6 +297,13 @@
         emit endRemoveRows();
     }
 
+    void removeItems(int index, int count) {
+        emit beginRemoveRows(QModelIndex(), index, index+count-1);
+        while (count--)
+            list.removeAt(index);
+        emit endRemoveRows();
+    }
+
     void moveItem(int from, int to) {
         emit beginMoveRows(QModelIndex(), from, from, QModelIndex(), to);
         list.move(from, to);
@@ -519,7 +534,7 @@
     QDeclarativeView *canvas = createView();
 
     T model;
-    for (int i = 0; i < 30; i++)
+    for (int i = 0; i < 50; i++)
         model.addItem("Item" + QString::number(i), "");
 
     QDeclarativeContext *ctxt = canvas->rootContext();
@@ -642,6 +657,21 @@
     QTRY_COMPARE(listview->currentIndex(), 7);
     QTRY_VERIFY(listview->currentItem() == oldCurrent);
 
+    listview->setContentY(80);
+    QTest::qWait(300);
+
+    model.removeItems(1, 17);
+    QTest::qWait(300);
+
+    // Confirm items positioned correctly
+    itemCount = findItems<QDeclarativeItem>(contentItem, "wrapper").count();
+    for (int i = 0; i < model.count() && i < itemCount-1; ++i) {
+        QDeclarativeItem *item = findItem<QDeclarativeItem>(contentItem, "wrapper", i+2);
+        if (!item) qWarning() << "Item" << i+2 << "not found";
+        QTRY_VERIFY(item);
+        QTRY_COMPARE(item->y(),80+i*20.0);
+    }
+
     delete canvas;
 }
 
@@ -979,7 +1009,7 @@
     // current item should be 20th item at startup
     // and current item should be in view
     QCOMPARE(listview->currentIndex(), 20);
-    QCOMPARE(listview->contentY(), 99.0);
+    QCOMPARE(listview->contentY(), 100.0);
     QCOMPARE(listview->currentItem(), findItem<QDeclarativeItem>(contentItem, "wrapper", 20));
     QCOMPARE(listview->highlightItem()->y(), listview->currentItem()->y());
 
@@ -1002,7 +1032,7 @@
     listview->decrementCurrentIndex();
     QCOMPARE(listview->currentIndex(), model.count()-1);
 
-    QTRY_COMPARE(listview->contentY(), 279.0);
+    QTRY_COMPARE(listview->contentY(), 280.0);
 
     listview->incrementCurrentIndex();
     QCOMPARE(listview->currentIndex(), 0);
@@ -1066,6 +1096,7 @@
     QDeclarativeItem *item = findItem<QDeclarativeItem>(contentItem, "item1");
     QTRY_VERIFY(item);
     QTRY_COMPARE(item->x(), 0.0);
+    QCOMPARE(item->height(), listview->height());
 
     QDeclarativeText *text = findItem<QDeclarativeText>(contentItem, "text1");
     QTRY_VERIFY(text);
@@ -1590,6 +1621,48 @@
     QTRY_COMPARE(footer->y(), 0.0);
 }
 
+void tst_QDeclarativeListView::resizeView()
+{
+    QDeclarativeView *canvas = createView();
+
+    TestModel model;
+    for (int i = 0; i < 40; i++)
+        model.addItem("Item" + QString::number(i), "");
+
+    QDeclarativeContext *ctxt = canvas->rootContext();
+    ctxt->setContextProperty("testModel", &model);
+
+    TestObject *testObject = new TestObject;
+    ctxt->setContextProperty("testObject", testObject);
+
+    canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/listviewtest.qml"));
+    qApp->processEvents();
+
+    QDeclarativeListView *listview = findItem<QDeclarativeListView>(canvas->rootObject(), "list");
+    QTRY_VERIFY(listview != 0);
+
+    QDeclarativeItem *contentItem = listview->contentItem();
+    QTRY_VERIFY(contentItem != 0);
+
+    // Confirm items positioned correctly
+    int itemCount = findItems<QDeclarativeItem>(contentItem, "wrapper").count();
+    for (int i = 0; i < model.count() && i < itemCount; ++i) {
+        QDeclarativeItem *item = findItem<QDeclarativeItem>(contentItem, "wrapper", i);
+        if (!item) qWarning() << "Item" << i << "not found";
+        QTRY_VERIFY(item);
+        QTRY_COMPARE(item->y(), i*20.);
+    }
+
+    QVariant heightRatio;
+    QMetaObject::invokeMethod(canvas->rootObject(), "heightRatio", Q_RETURN_ARG(QVariant, heightRatio));
+    QCOMPARE(heightRatio.toReal(), 0.4);
+
+    listview->setHeight(200);
+
+    QMetaObject::invokeMethod(canvas->rootObject(), "heightRatio", Q_RETURN_ARG(QVariant, heightRatio));
+    QCOMPARE(heightRatio.toReal(), 0.25);
+}
+
 void tst_QDeclarativeListView::qListModelInterface_items()
 {
     items<TestModel>();
--- a/tests/auto/declarative/qdeclarativeloader/tst_qdeclarativeloader.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/declarative/qdeclarativeloader/tst_qdeclarativeloader.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -146,7 +146,7 @@
 
 void tst_QDeclarativeLoader::invalidUrl()
 {
-    QTest::ignoreMessage(QtWarningMsg, QString("<Unknown File>: File error for URL " + QUrl::fromLocalFile(SRCDIR "/data/IDontExist.qml").toString()).toUtf8().constData());
+    QTest::ignoreMessage(QtWarningMsg, QString(QUrl::fromLocalFile(SRCDIR "/data/IDontExist.qml").toString() + ": File not found").toUtf8().constData());
 
     QDeclarativeComponent component(&engine);
     component.setData(QByteArray("import Qt 4.7\nLoader { source: \"IDontExist.qml\" }"), TEST_FILE(""));
@@ -508,7 +508,7 @@
     QVERIFY(server.isValid());
     server.serveDirectory(SRCDIR "/data");
 
-    QTest::ignoreMessage(QtWarningMsg, "<Unknown File>: Network error for URL http://127.0.0.1:14450/IDontExist.qml");
+    QTest::ignoreMessage(QtWarningMsg, "http://127.0.0.1:14450/IDontExist.qml: File not found");
 
     QDeclarativeComponent component(&engine);
     component.setData(QByteArray("import Qt 4.7\nLoader { property int did_load: 123; source: \"http://127.0.0.1:14450/IDontExist.qml\"; onLoaded: did_load=456 }"), QUrl::fromLocalFile("http://127.0.0.1:14450/dummy.qml"));
--- a/tests/auto/declarative/qdeclarativemetatype/tst_qdeclarativemetatype.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/declarative/qdeclarativemetatype/tst_qdeclarativemetatype.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -313,7 +313,7 @@
     QVERIFY(reinterpret_cast<char *>((QObject *)&t) != reinterpret_cast<char *>((QDeclarativeParserStatus *)&t));
 
     QDeclarativeParserStatus *status = reinterpret_cast<QDeclarativeParserStatus *>(reinterpret_cast<char *>((QObject *)&t) + cast);
-    QCOMPARE(status, &t);
+    QCOMPARE(status, (QDeclarativeParserStatus*)&t);
 }
 
 void tst_qdeclarativemetatype::qmlPropertyValueSourceCast()
@@ -333,7 +333,7 @@
     QVERIFY(reinterpret_cast<char *>((QObject *)&t) != reinterpret_cast<char *>((QDeclarativePropertyValueSource *)&t));
 
     QDeclarativePropertyValueSource *source = reinterpret_cast<QDeclarativePropertyValueSource *>(reinterpret_cast<char *>((QObject *)&t) + cast);
-    QCOMPARE(source, &t);
+    QCOMPARE(source, (QDeclarativePropertyValueSource*)&t);
 }
 
 void tst_qdeclarativemetatype::qmlPropertyValueInterceptorCast()
@@ -353,7 +353,7 @@
     QVERIFY(reinterpret_cast<char *>((QObject *)&t) != reinterpret_cast<char *>((QDeclarativePropertyValueInterceptor *)&t));
 
     QDeclarativePropertyValueInterceptor *interceptor = reinterpret_cast<QDeclarativePropertyValueInterceptor *>(reinterpret_cast<char *>((QObject *)&t) + cast);
-    QCOMPARE(interceptor, &t);
+    QCOMPARE(interceptor, (QDeclarativePropertyValueInterceptor*)&t);
 }
 
 void tst_qdeclarativemetatype::isList()
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/auto/declarative/qdeclarativepathview/data/emptymodel.qml	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,5 @@
+import Qt 4.7
+
+PathView {
+    model: emptyModel
+}
--- a/tests/auto/declarative/qdeclarativepathview/tst_qdeclarativepathview.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/declarative/qdeclarativepathview/tst_qdeclarativepathview.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -84,7 +84,7 @@
     void modelChanges();
     void pathUpdateOnStartChanged();
     void package();
-
+    void emptyModel();
 
 private:
     QDeclarativeView *createView();
@@ -367,9 +367,11 @@
     QCOMPARE(item->y(), 10.0);
 
     model.insertItem(4, "orange", "10");
+    QTest::qWait(100);
 
-    int itemCount = findItems<QDeclarativeItem>(pathview, "wrapper").count();
-    QCOMPARE(itemCount, 10);
+    QTRY_COMPARE(findItems<QDeclarativeItem>(pathview, "wrapper").count(), 10);
+
+    QVERIFY(pathview->currentIndex() == 0);
 
     QDeclarativeText *text = findItem<QDeclarativeText>(pathview, "myText", 4);
     QVERIFY(text);
@@ -384,26 +386,27 @@
     QMetaObject::invokeMethod(canvas->rootObject(), "checkProperties");
     QVERIFY(testObject->error() == false);
 
-    itemCount = findItems<QDeclarativeItem>(pathview, "wrapper").count();
-    QCOMPARE(itemCount, 5);
+    QTRY_COMPARE(findItems<QDeclarativeItem>(pathview, "wrapper").count(), 5);
 
     QDeclarativeRectangle *testItem = findItem<QDeclarativeRectangle>(pathview, "wrapper", 4);
     QVERIFY(testItem != 0);
     testItem = findItem<QDeclarativeRectangle>(pathview, "wrapper", 5);
     QVERIFY(testItem == 0);
 
-    model.insertItem(2, "pink", "2");
+    pathview->setCurrentIndex(1);
 
-    itemCount = findItems<QDeclarativeItem>(pathview, "wrapper").count();
-    QCOMPARE(itemCount, 5);
+    model.insertItem(2, "pink", "2");
+    QTest::qWait(100);
+
+    QTRY_COMPARE(findItems<QDeclarativeItem>(pathview, "wrapper").count(), 5);
+    QVERIFY(pathview->currentIndex() == 1);
 
     text = findItem<QDeclarativeText>(pathview, "myText", 2);
     QVERIFY(text);
     QCOMPARE(text->text(), model.name(2));
 
     model.removeItem(3);
-    itemCount = findItems<QDeclarativeItem>(pathview, "wrapper").count();
-    QCOMPARE(itemCount, 5);
+    QTRY_COMPARE(findItems<QDeclarativeItem>(pathview, "wrapper").count(), 5);
     text = findItem<QDeclarativeText>(pathview, "myText", 3);
     QVERIFY(text);
     QCOMPARE(text->text(), model.name(3));
@@ -755,6 +758,28 @@
     delete canvas;
 }
 
+//QTBUG-13017
+void tst_QDeclarativePathView::emptyModel()
+{
+    QDeclarativeView *canvas = createView();
+
+    QStringListModel model;
+
+    QDeclarativeContext *ctxt = canvas->rootContext();
+    ctxt->setContextProperty("emptyModel", &model);
+
+    canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/emptymodel.qml"));
+    qApp->processEvents();
+
+    QDeclarativePathView *pathview = qobject_cast<QDeclarativePathView*>(canvas->rootObject());
+    QVERIFY(pathview != 0);
+
+    QCOMPARE(pathview->offset(), qreal(0.0));
+
+    delete canvas;
+}
+
+
 QDeclarativeView *tst_QDeclarativePathView::createView()
 {
     QDeclarativeView *canvas = new QDeclarativeView(0);
Binary file tests/auto/declarative/qdeclarativepixmapcache/data/massive.png has changed
--- a/tests/auto/declarative/qdeclarativepixmapcache/tst_qdeclarativepixmapcache.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/declarative/qdeclarativepixmapcache/tst_qdeclarativepixmapcache.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -42,6 +42,7 @@
 #include <QtTest/QtTest>
 #include <private/qdeclarativepixmapcache_p.h>
 #include <QtDeclarative/qdeclarativeengine.h>
+#include <QtDeclarative/qdeclarativeimageprovider.h>
 #include <QNetworkReply>
 #include "testhttpserver.h"
 #include "../../../shared/util.h"
@@ -70,6 +71,9 @@
     void single_data();
     void parallel();
     void parallel_data();
+    void massive();
+    void cancelcrash();
+    void shrinkcache();
 
 private:
     QDeclarativeEngine engine;
@@ -276,6 +280,79 @@
     qDeleteAll(pixmaps);
 }
 
+void tst_qdeclarativepixmapcache::massive()
+{
+    QUrl url = thisfile.resolved(QUrl("data/massive.png"));
+
+    // Confirm that massive images remain in the cache while they are
+    // in use by the application.
+    {
+    qint64 cachekey = 0;
+    QDeclarativePixmap p(0, url);
+    QVERIFY(p.isReady());
+    QVERIFY(p.pixmap().size() == QSize(10000, 1000));
+    cachekey = p.pixmap().cacheKey();
+
+    QDeclarativePixmap p2(0, url);
+    QVERIFY(p2.isReady());
+    QVERIFY(p2.pixmap().size() == QSize(10000, 1000));
+
+    QVERIFY(p2.pixmap().cacheKey() == cachekey);
+    }
+
+    // Confirm that massive images are removed from the cache when
+    // they become unused
+    {
+    qint64 cachekey = 0;
+    {
+        QDeclarativePixmap p(0, url);
+        QVERIFY(p.isReady());
+        QVERIFY(p.pixmap().size() == QSize(10000, 1000));
+        cachekey = p.pixmap().cacheKey();
+    }
+
+    QDeclarativePixmap p2(0, url);
+    QVERIFY(p2.isReady());
+    QVERIFY(p2.pixmap().size() == QSize(10000, 1000));
+
+    QVERIFY(p2.pixmap().cacheKey() != cachekey);
+    }
+}
+
+// QTBUG-12729
+void tst_qdeclarativepixmapcache::cancelcrash()
+{
+    QUrl url("http://127.0.0.1:14452/cancelcrash_notexist.png");
+    for (int ii = 0; ii < 1000; ++ii) {
+        QDeclarativePixmap pix(&engine, url);
+    }
+}
+
+class MyPixmapProvider : public QDeclarativeImageProvider
+{
+public:
+    MyPixmapProvider()
+    : QDeclarativeImageProvider(Pixmap) {}
+
+    virtual QPixmap requestPixmap(const QString &d, QSize *, const QSize &) {
+        QPixmap pix(800, 600);
+        pix.fill(Qt::red);
+        return pix;
+    }
+};
+
+// QTBUG-13345
+void tst_qdeclarativepixmapcache::shrinkcache()
+{
+    QDeclarativeEngine engine;
+    engine.addImageProvider(QLatin1String("mypixmaps"), new MyPixmapProvider);
+
+    for (int ii = 0; ii < 4000; ++ii) {
+        QUrl url("image://mypixmaps/" + QString::number(ii));
+        QDeclarativePixmap p(&engine, url);
+    }
+}
+
 QTEST_MAIN(tst_qdeclarativepixmapcache)
 
 #include "tst_qdeclarativepixmapcache.moc"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/auto/declarative/qdeclarativepositioners/data/verticalqgraphicswidget.qml	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,24 @@
+import Qt 4.7
+
+Item {
+    width: 640
+    height: 480
+    Column {
+        objectName: "column"
+        QGraphicsWidget {
+            objectName: "one"
+            width: 50
+            height: 50
+        }
+        QGraphicsWidget {
+            objectName: "two"
+            width: 20
+            height: 10
+        }
+        QGraphicsWidget {
+            objectName: "three"
+            width: 40
+            height: 20
+        }
+    }
+}
--- a/tests/auto/declarative/qdeclarativepositioners/tst_qdeclarativepositioners.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/declarative/qdeclarativepositioners/tst_qdeclarativepositioners.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -46,6 +46,7 @@
 #include <private/qdeclarativepositioners_p.h>
 #include <private/qdeclarativetransition_p.h>
 #include <qdeclarativeexpression.h>
+#include <QtGui/qgraphicswidget.h>
 #include "../../../shared/util.h"
 
 #ifdef Q_OS_SYMBIAN
@@ -77,6 +78,7 @@
     void test_flow_resize();
     void test_flow_implicit_resize();
     void test_conflictinganchors();
+    void test_vertical_qgraphicswidget();
 private:
     QDeclarativeView *createView(const QString &filename);
 };
@@ -771,6 +773,48 @@
     QCOMPARE(warningMessage, QString("file::2:1: QML Flow: Cannot specify anchors for items inside Flow"));
 }
 
+void tst_QDeclarativePositioners::test_vertical_qgraphicswidget()
+{
+    QDeclarativeView *canvas = createView(SRCDIR "/data/verticalqgraphicswidget.qml");
+
+    QGraphicsWidget *one = canvas->rootObject()->findChild<QGraphicsWidget*>("one");
+    QVERIFY(one != 0);
+
+    QGraphicsWidget *two = canvas->rootObject()->findChild<QGraphicsWidget*>("two");
+    QVERIFY(two != 0);
+
+    QGraphicsWidget *three = canvas->rootObject()->findChild<QGraphicsWidget*>("three");
+    QVERIFY(three != 0);
+
+    QCOMPARE(one->x(), 0.0);
+    QCOMPARE(one->y(), 0.0);
+    QCOMPARE(two->x(), 0.0);
+    QCOMPARE(two->y(), 50.0);
+    QCOMPARE(three->x(), 0.0);
+    QCOMPARE(three->y(), 60.0);
+
+    QDeclarativeItem *column = canvas->rootObject()->findChild<QDeclarativeItem*>("column");
+    QVERIFY(column);
+    QCOMPARE(column->height(), 80.0);
+    QCOMPARE(column->width(), 50.0);
+
+    two->resize(QSizeF(two->size().width(), 20.0));
+    QCOMPARE(three->x(), 0.0);
+    QCOMPARE(three->y(), 70.0);
+
+    two->setOpacity(0.0);
+    QCOMPARE(one->x(), 0.0);
+    QCOMPARE(one->y(), 0.0);
+    QCOMPARE(three->x(), 0.0);
+    QCOMPARE(three->y(), 50.0);
+
+    one->setVisible(false);
+    QCOMPARE(three->x(), 0.0);
+    QCOMPARE(three->y(), 0.0);
+
+    delete canvas;
+}
+
 QDeclarativeView *tst_QDeclarativePositioners::createView(const QString &filename)
 {
     QDeclarativeView *canvas = new QDeclarativeView(0);
--- a/tests/auto/declarative/qdeclarativerepeater/tst_qdeclarativerepeater.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/declarative/qdeclarativerepeater/tst_qdeclarativerepeater.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -309,11 +309,14 @@
 
     QCOMPARE(container->childItems().count(), 4);
 
+    QSignalSpy repeaterSpy(repeater, SIGNAL(countChanged()));
     testModel.addItem("four", "4");
     QCOMPARE(container->childItems().count(), 5);
+    QCOMPARE(repeaterSpy.count(),1);
 
     testModel.removeItem(2);
     QCOMPARE(container->childItems().count(), 4);
+    QCOMPARE(repeaterSpy.count(),2);
 
     // Check that model changes are propagated
     QDeclarativeText *text = findItem<QDeclarativeText>(canvas->rootObject(), "myName", 1);
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/auto/declarative/qdeclarativescriptdebugging/data/backtrace1.js	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,11 @@
+
+function function2InScript(a)
+{
+    mainRectangle.foo = a;
+}
+
+
+function functionInScript(a , b)
+{
+    function2InScript(a + b);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/auto/declarative/qdeclarativescriptdebugging/data/backtrace1.qml	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,27 @@
+import Qt 4.7
+import Qt.test 1.0
+import "backtrace1.js" as Script
+
+Rectangle {
+    id: mainRectangle
+
+    property string foo: "Default";
+    width: 200
+    height: 200
+
+
+    MyTestObject {
+
+        function append(a, b) {
+            return a + " " + b;
+        }
+
+
+        id: testObject;
+        someProperty: append("Hello", mainRectangle.foo)
+
+        onSignaled: {
+            Script.functionInScript(value , "b");
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/auto/declarative/qdeclarativescriptdebugging/qdeclarativescriptdebugging.pro	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,20 @@
+load(qttest_p4)
+contains(QT_CONFIG,declarative): QT += declarative script
+macx:CONFIG -= app_bundle
+
+SOURCES += tst_qdeclarativescriptdebugging.cpp
+INCLUDEPATH += ../shared
+
+# QMAKE_CXXFLAGS = -fprofile-arcs -ftest-coverage
+# LIBS += -lgcov
+
+symbian: {
+    importFiles.sources = data
+    importFiles.path = .
+    DEPLOYMENT = importFiles
+} else {
+    DEFINES += SRCDIR=\\\"$$PWD\\\"
+}
+
+CONFIG += parallel_test
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/auto/declarative/qdeclarativescriptdebugging/tst_qdeclarativescriptdebugging.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,154 @@
+/****************************************************************************
+**
+** 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 <qtest.h>
+#include <QtDeclarative/qdeclarativecomponent.h>
+#include <QtDeclarative/qdeclarativeengine.h>
+#include <QtDeclarative/qdeclarativeitem.h>
+#include <QtDeclarative/qdeclarativecontext.h>
+#include <QtCore/QDir>
+#include <QtScript/QScriptEngineAgent>
+#include <private/qdeclarativeengine_p.h>
+
+class MyTestObject : public QObject {
+    Q_OBJECT
+    Q_PROPERTY(QString someProperty READ someProperty WRITE setSomeProperty NOTIFY somePropertyChanged)
+
+public:
+    QString someProperty() { return _someProperty; }
+    void setSomeProperty(const QString &p) { _someProperty = p; }
+    QString _someProperty;
+
+    void emitSignal(const QString &value) { emit signaled(value); }
+
+signals:
+    void signaled(const QString &value);
+    void somePropertyChanged();
+};
+
+
+class BtAgent : public QScriptEngineAgent {
+public:
+    BtAgent(QScriptEngine *engine) : QScriptEngineAgent(engine)
+    { count = 0; engine->setAgent(this); }
+
+    QStringList bt;
+    int count;
+    int breakpoint;
+    void positionChange(qint64 , int lineNumber, int )
+    {
+        if(lineNumber == breakpoint) {
+            count++;
+            bt = engine()->currentContext()->backtrace();
+        }
+    }
+};
+
+
+
+/*
+This test covers evaluation of ECMAScript expressions and bindings from within
+QML.  This does not include static QML language issues.
+
+Static QML language issues are covered in qmllanguage
+*/
+inline QUrl TEST_FILE(const QString &filename)
+{
+    QFileInfo fileInfo(__FILE__);
+    return QUrl::fromLocalFile(fileInfo.absoluteDir().filePath("data/" + filename));
+}
+
+inline QUrl TEST_FILE(const char *filename)
+{
+    return TEST_FILE(QLatin1String(filename));
+}
+
+class tst_qdeclarativescriptdebugging : public QObject
+{
+    Q_OBJECT
+public:
+    tst_qdeclarativescriptdebugging() {}
+
+private slots:
+    void initTestCase();
+    void backtrace1();
+};
+
+void tst_qdeclarativescriptdebugging::initTestCase()
+{
+        qmlRegisterType<MyTestObject>("Qt.test", 1,0, "MyTestObject");
+}
+
+void tst_qdeclarativescriptdebugging::backtrace1()
+{
+    {
+    QDeclarativeEngine engine;
+    QUrl file = TEST_FILE("backtrace1.qml");
+    QDeclarativeComponent component(&engine, file);
+    QDeclarativeItem *item = qobject_cast<QDeclarativeItem *>(component.create());
+    QVERIFY(item);
+    MyTestObject *obj = item->findChild<MyTestObject *>();
+    QVERIFY(obj);
+    QCOMPARE(obj->someProperty(), QString("Hello Default"));
+
+    QDeclarativeEnginePrivate *ep = QDeclarativeEnginePrivate::get(&engine);
+    BtAgent agent(&ep->scriptEngine);
+    agent.breakpoint = 16;
+
+    obj->emitSignal("blah");
+    QCOMPARE(obj->someProperty(), QString("Hello blahb"));
+    QCOMPARE(agent.count, 1);
+
+    QStringList expected;
+    expected << "append(a = 'Hello', b = 'blahb') at @PREFIX@/backtrace1.qml:16"
+             << "$someProperty() at @PREFIX@/backtrace1.qml:21"
+             << "function2InScript(a = 'blahb') at @PREFIX@/backtrace1.js:4"
+             << "functionInScript(a = 'blah', b = 'b') at @PREFIX@/backtrace1.js:10"
+             << "onSignaled() at @PREFIX@/backtrace1.qml:24"
+             << "<global>() at -1";
+    expected.replaceInStrings("@PREFIX@", file.toString().section('/', 0, -2));
+    QCOMPARE(agent.bt, expected);
+    }
+}
+
+
+QTEST_MAIN(tst_qdeclarativescriptdebugging)
+
+#include "tst_qdeclarativescriptdebugging.moc"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/auto/declarative/qdeclarativestates/data/extendsBug.qml	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,26 @@
+import Qt 4.7
+
+Rectangle {
+    width: 200
+    height: 200
+
+    Rectangle {
+        id: rect
+        objectName: "greenRect"
+        width: 100
+        height: 100
+        color: "green"
+    }
+
+    states:[
+        State {
+            name: "a"
+            PropertyChanges { target: rect; x: 100 }
+        },
+        State {
+            name: "b"
+            extend:"a"
+            PropertyChanges { target: rect; y: 100 }
+        }
+    ]
+}
--- a/tests/auto/declarative/qdeclarativestates/tst_qdeclarativestates.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/declarative/qdeclarativestates/tst_qdeclarativestates.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -139,6 +139,7 @@
     void urlResolution();
     void unnamedWhen();
     void returnToBase();
+    void extendsBug();
 };
 
 void tst_qdeclarativestates::initTestCase()
@@ -1186,6 +1187,21 @@
     QCOMPARE(rect->property("stateString").toString(), QLatin1String("originalState"));
 }
 
+//QTBUG-12559
+void tst_qdeclarativestates::extendsBug()
+{
+    QDeclarativeEngine engine;
+
+    QDeclarativeComponent c(&engine, SRCDIR "/data/extendsBug.qml");
+    QDeclarativeRectangle *rect = qobject_cast<QDeclarativeRectangle*>(c.create());
+    QVERIFY(rect != 0);
+    QDeclarativeItemPrivate *rectPrivate = QDeclarativeItemPrivate::get(rect);
+    QDeclarativeRectangle *greenRect = rect->findChild<QDeclarativeRectangle*>("greenRect");
+
+    rectPrivate->setState("b");
+    QCOMPARE(greenRect->x(), qreal(100));
+    QCOMPARE(greenRect->y(), qreal(100));
+}
 
 QTEST_MAIN(tst_qdeclarativestates)
 
--- a/tests/auto/declarative/qdeclarativetextedit/tst_qdeclarativetextedit.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/declarative/qdeclarativetextedit/tst_qdeclarativetextedit.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -777,7 +777,7 @@
 
     // import installed
     QTest::newRow("pass") << "cursorHttpTestPass.qml" << "";
-    QTest::newRow("fail1") << "cursorHttpTestFail1.qml" << "<Unknown File>: Network error for URL http://localhost:42332/FailItem.qml ";
+    QTest::newRow("fail1") << "cursorHttpTestFail1.qml" << "http://localhost:42332/FailItem.qml: Remote host closed the connection ";
     QTest::newRow("fail2") << "cursorHttpTestFail2.qml" << "http://localhost:42332/ErrItem.qml:4:5: Fungus is not a type ";
 }
 
@@ -1096,7 +1096,7 @@
     QApplication::processEvents();
     QCOMPARE(ic.openInputPanelReceived, true);
     ic.openInputPanelReceived = false;
-    QCOMPARE(view.inputContext(), &ic);
+    QCOMPARE(view.inputContext(), (QInputContext*)&ic);
     QVERIFY(view.testAttribute(Qt::WA_InputMethodEnabled));
 
     // input method should be disabled if focus
--- a/tests/auto/declarative/qdeclarativetextinput/tst_qdeclarativetextinput.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/declarative/qdeclarativetextinput/tst_qdeclarativetextinput.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -98,6 +98,7 @@
     void validators();
     void inputMethods();
 
+    void passwordCharacter();
     void cursorDelegate();
     void navigation();
     void copyAndPaste();
@@ -193,7 +194,7 @@
         QDeclarativeTextInput *textinputObject = qobject_cast<QDeclarativeTextInput*>(textinputComponent.create());
 
         QVERIFY(textinputObject != 0);
-        int delta = abs(int(textinputObject->width()) - metricWidth);
+        int delta = abs(int(int(textinputObject->width()) - metricWidth));
         QVERIFY(delta <= 3.0); // As best as we can hope for cross-platform.
 
         delete textinputObject;
@@ -450,7 +451,7 @@
     QFontMetrics fm(textinputObject->font());
 
     int pos = textinputObject->positionAt(textinputObject->width()/2);
-    int diff = abs(fm.width(textinputObject->text()) - (fm.width(textinputObject->text().left(pos))+textinputObject->width()/2));
+    int diff = abs(int(fm.width(textinputObject->text()) - (fm.width(textinputObject->text().left(pos))+textinputObject->width()/2)));
 
     // some tollerance for different fonts.
 #ifdef Q_OS_LINUX
@@ -462,7 +463,7 @@
     // Check without autoscroll...
     textinputObject->setAutoScroll(false);
     pos = textinputObject->positionAt(textinputObject->width()/2);
-    diff = abs(fm.width(textinputObject->text().left(pos))-textinputObject->width()/2);
+    diff = abs(int(fm.width(textinputObject->text().left(pos))-textinputObject->width()/2));
 
     // some tollerance for different fonts.
 #ifdef Q_OS_LINUX
@@ -741,9 +742,48 @@
     textInput->paste();
     QCOMPARE(textInput->text(), QString("Hello world!Hello world!"));
     QCOMPARE(textInput->text().length(), 24);
+
+    // clear copy buffer
+    QClipboard *clipboard = QApplication::clipboard();
+    QVERIFY(clipboard);
+    clipboard->clear();
+
+    // test that copy functionality is disabled
+    // when echo mode is set to hide text/password mode
+    int index = 0;
+    while (index < 4) {
+        QDeclarativeTextInput::EchoMode echoMode = QDeclarativeTextInput::EchoMode(index);
+        textInput->setEchoMode(echoMode);
+        textInput->setText("My password");
+        textInput->select(0, textInput->text().length());;
+        textInput->copy();
+        if (echoMode == QDeclarativeTextInput::Normal) {
+            QVERIFY(!clipboard->text().isEmpty());
+            QCOMPARE(clipboard->text(), QString("My password"));
+            clipboard->clear();
+        } else {
+            QVERIFY(clipboard->text().isEmpty());
+        }
+        index++;
+    }
 #endif
 }
 
+void tst_qdeclarativetextinput::passwordCharacter()
+{
+    QString componentStr = "import Qt 4.7\nTextInput { text: \"Hello world!\"; font.family: \"Helvetica\"; echoMode: TextInput.Password }";
+    QDeclarativeComponent textInputComponent(&engine);
+    textInputComponent.setData(componentStr.toLatin1(), QUrl());
+    QDeclarativeTextInput *textInput = qobject_cast<QDeclarativeTextInput*>(textInputComponent.create());
+    QVERIFY(textInput != 0);
+
+    textInput->setPasswordCharacter("X");
+    QSize contentsSize = textInput->contentsSize();
+    textInput->setPasswordCharacter(".");
+    // QTBUG-12383 content is updated and redrawn
+    QVERIFY(contentsSize != textInput->contentsSize());
+}
+
 void tst_qdeclarativetextinput::cursorDelegate()
 {
     QDeclarativeView* view = createView(SRCDIR "/data/cursorTest.qml");
@@ -998,7 +1038,7 @@
     QApplication::processEvents();
     QCOMPARE(ic.openInputPanelReceived, true);
     ic.openInputPanelReceived = false;
-    QCOMPARE(view.inputContext(), &ic);
+    QCOMPARE(view.inputContext(), (QInputContext*)&ic);
     QVERIFY(view.testAttribute(Qt::WA_InputMethodEnabled));
 
     // input method should be disabled if focus
--- a/tests/auto/declarative/qdeclarativeviewer/tst_qdeclarativeviewer.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/declarative/qdeclarativeviewer/tst_qdeclarativeviewer.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -43,9 +43,11 @@
 #include <QtDeclarative/qdeclarativeengine.h>
 #include <QtDeclarative/qdeclarativeview.h>
 #include <QtDeclarative/qdeclarativeitem.h>
+#include <QtDeclarative/qdeclarativecontext.h>
 #include <QtGui/qmenubar.h>
 #include "../../../shared/util.h"
 #include "qmlruntime.h"
+#include "deviceorientation.h"
 #include "../../../shared/util.h"
 
 #ifdef Q_OS_SYMBIAN
@@ -67,7 +69,7 @@
     tst_QDeclarativeViewer();
 
 private slots:
-    void orientation();
+    void runtimeContextProperty();
     void loading();
     void fileBrowser();
     void resizing();
@@ -94,7 +96,7 @@
     QCOMPARE(viewer->size(), viewer->sizeHint()); \
 }
 
-void tst_QDeclarativeViewer::orientation()
+void tst_QDeclarativeViewer::runtimeContextProperty()
 {
     QDeclarativeViewer *viewer = new QDeclarativeViewer();
     QVERIFY(viewer);
@@ -103,17 +105,30 @@
     QVERIFY(viewer->menuBar());
     QDeclarativeItem* rootItem = qobject_cast<QDeclarativeItem*>(viewer->view()->rootObject());
     QVERIFY(rootItem);
+    QObject *runtimeObject = qvariant_cast<QObject*>(viewer->view()->engine()->rootContext()->contextProperty("runtime"));
+    QVERIFY(runtimeObject);
+    
+    // test isActiveWindow property
+    QVERIFY(!runtimeObject->property("isActiveWindow").toBool());
+    
     viewer->show();
-
     QApplication::setActiveWindow(viewer);
     QTest::qWaitForWindowShown(viewer);
     QTRY_COMPARE(QApplication::activeWindow(), static_cast<QWidget *>(viewer));
 
+    QVERIFY(runtimeObject->property("isActiveWindow").toBool());
+    
     TEST_INITIAL_SIZES(viewer);
 
+    // test orientation property
+    QCOMPARE(runtimeObject->property("orientation").toInt(), int(DeviceOrientation::Portrait));
+
     viewer->rotateOrientation();
     qApp->processEvents();
 
+    QCOMPARE(runtimeObject->property("orientation").toInt(), int(DeviceOrientation::Landscape));
+    QCOMPARE(rootItem->width(), 300.0);
+
     QCOMPARE(rootItem->width(), 300.0);
     QCOMPARE(rootItem->height(), 200.0);
     QTRY_COMPARE(viewer->view()->size(), QSize(300, 200));
@@ -124,6 +139,8 @@
     viewer->rotateOrientation();
     qApp->processEvents();
 
+    QCOMPARE(runtimeObject->property("orientation").toInt(), int(DeviceOrientation::PortraitInverted));
+
     QCOMPARE(rootItem->width(), 200.0);
     QCOMPARE(rootItem->height(), 300.0);
     QTRY_COMPARE(viewer->view()->size(), QSize(200, 300));
@@ -131,6 +148,19 @@
     QCOMPARE(viewer->size(), QSize(200, 300 + MENUBAR_HEIGHT(viewer)));
     QCOMPARE(viewer->size(), viewer->sizeHint());
 
+    viewer->rotateOrientation();
+    qApp->processEvents();
+
+    QCOMPARE(runtimeObject->property("orientation").toInt(), int(DeviceOrientation::LandscapeInverted));
+
+    viewer->rotateOrientation();
+    qApp->processEvents();
+
+    QCOMPARE(runtimeObject->property("orientation").toInt(), int(DeviceOrientation::Portrait));
+
+    viewer->hide();
+    QVERIFY(!runtimeObject->property("isActiveWindow").toBool());
+
     delete viewer;
 }
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/auto/declarative/qdeclarativevisualdatamodel/data/datalist.qml	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,19 @@
+import Qt 4.7
+
+ListView {
+    width: 100
+    height: 100
+    anchors.fill: parent
+    model: VisualDataModel {
+        id: visualModel
+        objectName: "visualModel"
+        model: myModel
+        delegate: Component {
+            Rectangle {
+                height: 25
+                width: 100
+                Text { objectName: "display"; text: display }
+            }
+        }
+    }
+}
--- a/tests/auto/declarative/qdeclarativevisualdatamodel/tst_qdeclarativevisualdatamodel.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/declarative/qdeclarativevisualdatamodel/tst_qdeclarativevisualdatamodel.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -83,6 +83,8 @@
 
 private slots:
     void rootIndex();
+    void updateLayout();
+    void childChanged();
     void objectListModel();
 
 private:
@@ -155,6 +157,100 @@
     delete obj;
 }
 
+void tst_qdeclarativevisualdatamodel::updateLayout()
+{
+    QDeclarativeView view;
+
+    QStandardItemModel model;
+    initStandardTreeModel(&model);
+
+    view.rootContext()->setContextProperty("myModel", &model);
+
+    view.setSource(QUrl::fromLocalFile(SRCDIR "/data/datalist.qml"));
+
+    QDeclarativeListView *listview = qobject_cast<QDeclarativeListView*>(view.rootObject());
+    QVERIFY(listview != 0);
+
+    QDeclarativeItem *contentItem = listview->contentItem();
+    QVERIFY(contentItem != 0);
+
+    QDeclarativeText *name = findItem<QDeclarativeText>(contentItem, "display", 0);
+    QVERIFY(name);
+    QCOMPARE(name->text(), QString("Row 1 Item"));
+    name = findItem<QDeclarativeText>(contentItem, "display", 1);
+    QVERIFY(name);
+    QCOMPARE(name->text(), QString("Row 2 Item"));
+    name = findItem<QDeclarativeText>(contentItem, "display", 2);
+    QVERIFY(name);
+    QCOMPARE(name->text(), QString("Row 3 Item"));
+
+    model.invisibleRootItem()->sortChildren(0, Qt::DescendingOrder);
+
+    name = findItem<QDeclarativeText>(contentItem, "display", 0);
+    QVERIFY(name);
+    QCOMPARE(name->text(), QString("Row 3 Item"));
+    name = findItem<QDeclarativeText>(contentItem, "display", 1);
+    QVERIFY(name);
+    QCOMPARE(name->text(), QString("Row 2 Item"));
+    name = findItem<QDeclarativeText>(contentItem, "display", 2);
+    QVERIFY(name);
+    QCOMPARE(name->text(), QString("Row 1 Item"));
+}
+
+void tst_qdeclarativevisualdatamodel::childChanged()
+{
+    QDeclarativeView view;
+
+    QStandardItemModel model;
+    initStandardTreeModel(&model);
+
+    view.rootContext()->setContextProperty("myModel", &model);
+
+    view.setSource(QUrl::fromLocalFile(SRCDIR "/data/datalist.qml"));
+
+    QDeclarativeListView *listview = qobject_cast<QDeclarativeListView*>(view.rootObject());
+    QVERIFY(listview != 0);
+
+    QDeclarativeItem *contentItem = listview->contentItem();
+    QVERIFY(contentItem != 0);
+
+    QDeclarativeVisualDataModel *vdm = listview->findChild<QDeclarativeVisualDataModel*>("visualModel");
+    vdm->setRootIndex(QVariant::fromValue(model.indexFromItem(model.item(1,0))));
+
+    QDeclarativeText *name = findItem<QDeclarativeText>(contentItem, "display", 0);
+    QVERIFY(name);
+    QCOMPARE(name->text(), QString("Row 2 Child Item"));
+
+    model.item(1,0)->child(0,0)->setText("Row 2 updated child");
+
+    name = findItem<QDeclarativeText>(contentItem, "display", 0);
+    QVERIFY(name);
+    QCOMPARE(name->text(), QString("Row 2 updated child"));
+
+    model.item(1,0)->appendRow(new QStandardItem(QLatin1String("Row 2 Child Item 2")));
+    QTest::qWait(300);
+
+    name = findItem<QDeclarativeText>(contentItem, "display", 1);
+    QVERIFY(name != 0);
+    QCOMPARE(name->text(), QString("Row 2 Child Item 2"));
+
+    model.item(1,0)->takeRow(1);
+    name = findItem<QDeclarativeText>(contentItem, "display", 1);
+    QVERIFY(name == 0);
+
+    vdm->setRootIndex(QVariant::fromValue(QModelIndex()));
+    QTest::qWait(300);
+    name = findItem<QDeclarativeText>(contentItem, "display", 0);
+    QVERIFY(name);
+    QCOMPARE(name->text(), QString("Row 1 Item"));
+    name = findItem<QDeclarativeText>(contentItem, "display", 1);
+    QVERIFY(name);
+    QCOMPARE(name->text(), QString("Row 2 Item"));
+    name = findItem<QDeclarativeText>(contentItem, "display", 2);
+    QVERIFY(name);
+    QCOMPARE(name->text(), QString("Row 3 Item"));
+}
+
 void tst_qdeclarativevisualdatamodel::objectListModel()
 {
     QDeclarativeView view;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/utf16.html	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,1 @@
+უ Σ
--- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/utf16.qml	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/utf16.qml	Mon Oct 04 01:19:32 2010 +0300
@@ -3,13 +3,14 @@
 QtObject {
     property bool dataOK: false
 
+    property string fileName
     property string responseText
     property string responseXmlRootNodeValue
 
-    Component.onCompleted: {
+    function startRequest() {
         var x = new XMLHttpRequest;
 
-        x.open("GET", "utf16.xml");
+        x.open("GET", fileName);
 
         // Test to the end
         x.onreadystatechange = function() {
--- a/tests/auto/declarative/qdeclarativexmlhttprequest/tst_qdeclarativexmlhttprequest.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/declarative/qdeclarativexmlhttprequest/tst_qdeclarativexmlhttprequest.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -104,6 +104,7 @@
     void invalidMethodUsage();
     void redirects();
     void nonUtf8();
+    void nonUtf8_data();
 
     // Attributes
     void document();
@@ -919,26 +920,43 @@
 
 void tst_qdeclarativexmlhttprequest::nonUtf8()
 {
+    QFETCH(QString, fileName);
+    QFETCH(QString, responseText);
+    QFETCH(QString, xmlRootNodeValue);
+
     QDeclarativeComponent component(&engine, TEST_FILE("utf16.qml"));
     QObject *object = component.create();
     QVERIFY(object != 0);
 
+    object->setProperty("fileName", fileName);
+    QMetaObject::invokeMethod(object, "startRequest");
+
+    TRY_WAIT(object->property("dataOK").toBool() == true);
+    
+    QCOMPARE(object->property("responseText").toString(), responseText);
+
+    if (!xmlRootNodeValue.isEmpty()) {
+        QString rootNodeValue = object->property("responseXmlRootNodeValue").toString();
+        QCOMPARE(rootNodeValue, xmlRootNodeValue);
+    }
+
+    delete object;
+}
+
+void tst_qdeclarativexmlhttprequest::nonUtf8_data()
+{
+    QTest::addColumn<QString>("fileName");
+    QTest::addColumn<QString>("responseText");
+    QTest::addColumn<QString>("xmlRootNodeValue");
+
     QString uc;
     uc.resize(3);
     uc[0] = QChar(0x10e3);
     uc[1] = QChar(' ');
     uc[2] = QChar(0x03a3);
-    QString xml = "<?xml version=\"1.0\" encoding=\"UTF-16\" standalone='yes'?>\n<root>\n" + uc + "\n</root>\n";
 
-    TRY_WAIT(object->property("dataOK").toBool() == true);
-
-    QString responseText = object->property("responseText").toString();
-    QCOMPARE(responseText, xml);
-
-    QString responseXmlText = object->property("responseXmlRootNodeValue").toString();
-    QCOMPARE(responseXmlText, '\n' + uc + '\n');
-
-    delete object;
+    QTest::newRow("responseText") << "utf16.html" << uc + '\n' << "";
+    QTest::newRow("responseXML") << "utf16.xml" << "<?xml version=\"1.0\" encoding=\"UTF-16\" standalone='yes'?>\n<root>\n" + uc + "\n</root>\n" << QString('\n' + uc + '\n');
 }
 
 // Test that calling hte XMLHttpRequest methods on a non-XMLHttpRequest object
--- a/tests/auto/declarative/qmetaobjectbuilder/tst_qmetaobjectbuilder.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/declarative/qmetaobjectbuilder/tst_qmetaobjectbuilder.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -558,7 +558,7 @@
     QVERIFY(prop1.isWritable());
     QVERIFY(!prop1.isResettable());
     QVERIFY(!prop1.isDesignable());
-    QVERIFY(!prop1.isScriptable());
+    QVERIFY(prop1.isScriptable());
     QVERIFY(!prop1.isStored());
     QVERIFY(!prop1.isEditable());
     QVERIFY(!prop1.isUser());
@@ -577,7 +577,7 @@
     QVERIFY(prop2.isWritable());
     QVERIFY(!prop2.isResettable());
     QVERIFY(!prop2.isDesignable());
-    QVERIFY(!prop2.isScriptable());
+    QVERIFY(prop2.isScriptable());
     QVERIFY(!prop2.isStored());
     QVERIFY(!prop2.isEditable());
     QVERIFY(!prop2.isUser());
@@ -599,7 +599,7 @@
     prop1.setWritable(false);
     prop1.setResettable(true);
     prop1.setDesignable(true);
-    prop1.setScriptable(true);
+    prop1.setScriptable(false);
     prop1.setStored(true);
     prop1.setEditable(true);
     prop1.setUser(true);
@@ -614,7 +614,7 @@
     QVERIFY(!prop1.isWritable());
     QVERIFY(prop1.isResettable());
     QVERIFY(prop1.isDesignable());
-    QVERIFY(prop1.isScriptable());
+    QVERIFY(!prop1.isScriptable());
     QVERIFY(prop1.isStored());
     QVERIFY(prop1.isEditable());
     QVERIFY(prop1.isUser());
@@ -627,7 +627,7 @@
     QCOMPARE(prop2.type(), QByteArray("int"));
     QVERIFY(!prop2.isResettable());
     QVERIFY(!prop2.isDesignable());
-    QVERIFY(!prop2.isScriptable());
+    QVERIFY(prop2.isScriptable());
     QVERIFY(!prop2.isStored());
     QVERIFY(!prop2.isEditable());
     QVERIFY(!prop2.isUser());
@@ -643,7 +643,7 @@
     QCOMPARE(prop2.type(), QByteArray("int"));
     QVERIFY(!prop2.isResettable());
     QVERIFY(!prop2.isDesignable());
-    QVERIFY(!prop2.isScriptable());
+    QVERIFY(prop2.isScriptable());
     QVERIFY(!prop2.isStored());
     QVERIFY(!prop2.isEditable());
     QVERIFY(!prop2.isUser());
Binary file tests/auto/declarative/qmlvisual/animation/qtbug13398/data/qtbug13398.0.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/auto/declarative/qmlvisual/animation/qtbug13398/data/qtbug13398.qml	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,447 @@
+import Qt.VisualTest 4.7
+
+VisualTest {
+    Frame {
+        msec: 0
+    }
+    Frame {
+        msec: 16
+        hash: "2452007928bf86b9c42e666c7a7afc89"
+    }
+    Frame {
+        msec: 32
+        hash: "2452007928bf86b9c42e666c7a7afc89"
+    }
+    Frame {
+        msec: 48
+        hash: "2452007928bf86b9c42e666c7a7afc89"
+    }
+    Frame {
+        msec: 64
+        hash: "2452007928bf86b9c42e666c7a7afc89"
+    }
+    Frame {
+        msec: 80
+        hash: "2452007928bf86b9c42e666c7a7afc89"
+    }
+    Frame {
+        msec: 96
+        hash: "2452007928bf86b9c42e666c7a7afc89"
+    }
+    Frame {
+        msec: 112
+        hash: "2452007928bf86b9c42e666c7a7afc89"
+    }
+    Frame {
+        msec: 128
+        hash: "2452007928bf86b9c42e666c7a7afc89"
+    }
+    Frame {
+        msec: 144
+        hash: "2452007928bf86b9c42e666c7a7afc89"
+    }
+    Frame {
+        msec: 160
+        hash: "2452007928bf86b9c42e666c7a7afc89"
+    }
+    Frame {
+        msec: 176
+        hash: "2452007928bf86b9c42e666c7a7afc89"
+    }
+    Frame {
+        msec: 192
+        hash: "2452007928bf86b9c42e666c7a7afc89"
+    }
+    Frame {
+        msec: 208
+        hash: "2452007928bf86b9c42e666c7a7afc89"
+    }
+    Frame {
+        msec: 224
+        hash: "2452007928bf86b9c42e666c7a7afc89"
+    }
+    Frame {
+        msec: 240
+        hash: "2452007928bf86b9c42e666c7a7afc89"
+    }
+    Frame {
+        msec: 256
+        hash: "2452007928bf86b9c42e666c7a7afc89"
+    }
+    Frame {
+        msec: 272
+        hash: "2452007928bf86b9c42e666c7a7afc89"
+    }
+    Frame {
+        msec: 288
+        hash: "2452007928bf86b9c42e666c7a7afc89"
+    }
+    Frame {
+        msec: 304
+        hash: "2452007928bf86b9c42e666c7a7afc89"
+    }
+    Frame {
+        msec: 320
+        hash: "2452007928bf86b9c42e666c7a7afc89"
+    }
+    Frame {
+        msec: 336
+        hash: "2452007928bf86b9c42e666c7a7afc89"
+    }
+    Frame {
+        msec: 352
+        hash: "2452007928bf86b9c42e666c7a7afc89"
+    }
+    Frame {
+        msec: 368
+        hash: "2452007928bf86b9c42e666c7a7afc89"
+    }
+    Frame {
+        msec: 384
+        hash: "2452007928bf86b9c42e666c7a7afc89"
+    }
+    Frame {
+        msec: 400
+        hash: "2452007928bf86b9c42e666c7a7afc89"
+    }
+    Frame {
+        msec: 416
+        hash: "2452007928bf86b9c42e666c7a7afc89"
+    }
+    Frame {
+        msec: 432
+        hash: "2452007928bf86b9c42e666c7a7afc89"
+    }
+    Frame {
+        msec: 448
+        hash: "2452007928bf86b9c42e666c7a7afc89"
+    }
+    Frame {
+        msec: 464
+        hash: "2452007928bf86b9c42e666c7a7afc89"
+    }
+    Frame {
+        msec: 480
+        hash: "2452007928bf86b9c42e666c7a7afc89"
+    }
+    Frame {
+        msec: 496
+        hash: "2452007928bf86b9c42e666c7a7afc89"
+    }
+    Mouse {
+        type: 2
+        button: 1
+        buttons: 1
+        x: 220; y: 270
+        modifiers: 0
+        sendToViewport: true
+    }
+    Frame {
+        msec: 512
+        hash: "2452007928bf86b9c42e666c7a7afc89"
+    }
+    Frame {
+        msec: 528
+        hash: "2452007928bf86b9c42e666c7a7afc89"
+    }
+    Frame {
+        msec: 544
+        hash: "2452007928bf86b9c42e666c7a7afc89"
+    }
+    Frame {
+        msec: 560
+        hash: "2452007928bf86b9c42e666c7a7afc89"
+    }
+    Frame {
+        msec: 576
+        hash: "2452007928bf86b9c42e666c7a7afc89"
+    }
+    Mouse {
+        type: 5
+        button: 0
+        buttons: 1
+        x: 220; y: 271
+        modifiers: 0
+        sendToViewport: true
+    }
+    Mouse {
+        type: 3
+        button: 1
+        buttons: 0
+        x: 220; y: 271
+        modifiers: 0
+        sendToViewport: true
+    }
+    Frame {
+        msec: 592
+        hash: "2452007928bf86b9c42e666c7a7afc89"
+    }
+    Frame {
+        msec: 608
+        hash: "96e8e81d61bffe02b8f41f47a4a7e8fc"
+    }
+    Frame {
+        msec: 624
+        hash: "75881a2779bd7d7f683f87c4a7393769"
+    }
+    Frame {
+        msec: 640
+        hash: "2ef628328d2a6393095e78db80b0513f"
+    }
+    Frame {
+        msec: 656
+        hash: "390926f2c2c27dfa10c9b393ee466ce6"
+    }
+    Frame {
+        msec: 672
+        hash: "ea07d93e7d8a53f56cff19d9d3b282a4"
+    }
+    Frame {
+        msec: 688
+        hash: "8aa6be919b1ef4b7e102a319a453707e"
+    }
+    Frame {
+        msec: 704
+        hash: "6ebc518fb53ffe42fca20b9f16a21b36"
+    }
+    Frame {
+        msec: 720
+        hash: "ee7a93b157e24e22efa84604e7e44fe6"
+    }
+    Frame {
+        msec: 736
+        hash: "de3bf8f67e51b036db4976fd3b4b6c3c"
+    }
+    Frame {
+        msec: 752
+        hash: "648be4298ebe3bbc7e5c4a4c9c46f193"
+    }
+    Frame {
+        msec: 768
+        hash: "1ccf3b73e22a4b98ce1df098af9466f2"
+    }
+    Frame {
+        msec: 784
+        hash: "73a2fb047728b2b8e613f0fb8dfe429d"
+    }
+    Frame {
+        msec: 800
+        hash: "bbb4cabec4b98ea8ca94dff91a0d8c99"
+    }
+    Frame {
+        msec: 816
+        hash: "3337e86bd9fcfbce939389928fb1fb72"
+    }
+    Frame {
+        msec: 832
+        hash: "cb4a2a330e8470c61de9e9b6d2dc4597"
+    }
+    Frame {
+        msec: 848
+        hash: "e09a359578935b988ac1cc8c40b25547"
+    }
+    Frame {
+        msec: 864
+        hash: "e09a359578935b988ac1cc8c40b25547"
+    }
+    Frame {
+        msec: 880
+        hash: "e09a359578935b988ac1cc8c40b25547"
+    }
+    Frame {
+        msec: 896
+        hash: "e09a359578935b988ac1cc8c40b25547"
+    }
+    Frame {
+        msec: 912
+        hash: "e09a359578935b988ac1cc8c40b25547"
+    }
+    Frame {
+        msec: 928
+        hash: "e09a359578935b988ac1cc8c40b25547"
+    }
+    Frame {
+        msec: 944
+        hash: "e09a359578935b988ac1cc8c40b25547"
+    }
+    Frame {
+        msec: 960
+        image: "qtbug13398.0.png"
+    }
+    Frame {
+        msec: 976
+        hash: "e09a359578935b988ac1cc8c40b25547"
+    }
+    Frame {
+        msec: 992
+        hash: "e09a359578935b988ac1cc8c40b25547"
+    }
+    Frame {
+        msec: 1008
+        hash: "e09a359578935b988ac1cc8c40b25547"
+    }
+    Frame {
+        msec: 1024
+        hash: "e09a359578935b988ac1cc8c40b25547"
+    }
+    Frame {
+        msec: 1040
+        hash: "e09a359578935b988ac1cc8c40b25547"
+    }
+    Frame {
+        msec: 1056
+        hash: "e09a359578935b988ac1cc8c40b25547"
+    }
+    Frame {
+        msec: 1072
+        hash: "e09a359578935b988ac1cc8c40b25547"
+    }
+    Frame {
+        msec: 1088
+        hash: "e09a359578935b988ac1cc8c40b25547"
+    }
+    Frame {
+        msec: 1104
+        hash: "e09a359578935b988ac1cc8c40b25547"
+    }
+    Frame {
+        msec: 1120
+        hash: "e09a359578935b988ac1cc8c40b25547"
+    }
+    Frame {
+        msec: 1136
+        hash: "e09a359578935b988ac1cc8c40b25547"
+    }
+    Frame {
+        msec: 1152
+        hash: "e09a359578935b988ac1cc8c40b25547"
+    }
+    Frame {
+        msec: 1168
+        hash: "e09a359578935b988ac1cc8c40b25547"
+    }
+    Frame {
+        msec: 1184
+        hash: "e09a359578935b988ac1cc8c40b25547"
+    }
+    Frame {
+        msec: 1200
+        hash: "e09a359578935b988ac1cc8c40b25547"
+    }
+    Frame {
+        msec: 1216
+        hash: "e09a359578935b988ac1cc8c40b25547"
+    }
+    Frame {
+        msec: 1232
+        hash: "e09a359578935b988ac1cc8c40b25547"
+    }
+    Mouse {
+        type: 2
+        button: 1
+        buttons: 1
+        x: 220; y: 271
+        modifiers: 0
+        sendToViewport: true
+    }
+    Frame {
+        msec: 1248
+        hash: "e09a359578935b988ac1cc8c40b25547"
+    }
+    Frame {
+        msec: 1264
+        hash: "e09a359578935b988ac1cc8c40b25547"
+    }
+    Frame {
+        msec: 1280
+        hash: "e09a359578935b988ac1cc8c40b25547"
+    }
+    Frame {
+        msec: 1296
+        hash: "e09a359578935b988ac1cc8c40b25547"
+    }
+    Frame {
+        msec: 1312
+        hash: "e09a359578935b988ac1cc8c40b25547"
+    }
+    Frame {
+        msec: 1328
+        hash: "e09a359578935b988ac1cc8c40b25547"
+    }
+    Mouse {
+        type: 3
+        button: 1
+        buttons: 0
+        x: 220; y: 271
+        modifiers: 0
+        sendToViewport: true
+    }
+    Frame {
+        msec: 1344
+        hash: "e09a359578935b988ac1cc8c40b25547"
+    }
+    Frame {
+        msec: 1360
+        hash: "697a4fd182ff90cd557f224174bad43a"
+    }
+    Frame {
+        msec: 1376
+        hash: "99e5ca9a77df1acfed628f31b9050179"
+    }
+    Frame {
+        msec: 1392
+        hash: "1f0dc00d3e3536b40a6becf775b31cee"
+    }
+    Frame {
+        msec: 1408
+        hash: "5b81ddd35d74be222bc8a40d2573884b"
+    }
+    Frame {
+        msec: 1424
+        hash: "4e236f5de69048e87add0e4380f2c3e6"
+    }
+    Frame {
+        msec: 1440
+        hash: "a901c9c0c77e03d98a2b95267cca8514"
+    }
+    Frame {
+        msec: 1456
+        hash: "78bbdf6781c2968c67982ffdb747dbbe"
+    }
+    Frame {
+        msec: 1472
+        hash: "a245ca593649f60980be982eb8fda57e"
+    }
+    Frame {
+        msec: 1488
+        hash: "c27fddc147749da24eaeb92aeaf61738"
+    }
+    Frame {
+        msec: 1504
+        hash: "b9674af46b618dc1eedabd4f18253b11"
+    }
+    Frame {
+        msec: 1520
+        hash: "8ae3c0cc0888fd0a607bc5b537a9ce0a"
+    }
+    Frame {
+        msec: 1536
+        hash: "f1981bd3fb08233622a4078e2f717011"
+    }
+    Frame {
+        msec: 1552
+        hash: "4dce834c9e3988fe535391fedc942add"
+    }
+    Frame {
+        msec: 1568
+        hash: "ca7356dee61e156d04b0b46ea033498e"
+    }
+    Frame {
+        msec: 1584
+        hash: "97499f6e04cbe690bc12458aef4b66a5"
+    }
+    Frame {
+        msec: 1600
+        hash: "2452007928bf86b9c42e666c7a7afc89"
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/auto/declarative/qmlvisual/animation/qtbug13398/qtbug13398.qml	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,68 @@
+import Qt 4.7
+
+Item {
+    width: 300
+    height: 400
+
+    Rectangle {
+        id: root
+        color: "darkkhaki"
+
+        x: 50
+        y: 50
+
+        width: 200
+        height: 300
+
+        Rectangle {
+            id: statusbar
+            color: "chocolate"
+
+            height: 30
+
+            anchors.top: root.top
+            anchors.left: root.left
+            anchors.right: root.right
+        }
+
+        Rectangle {
+            id: titlebar
+            color: "crimson"
+
+            height: 60
+
+            anchors.top: statusbar.bottom
+            anchors.left: root.left
+            anchors.right: root.right
+        }
+
+        MouseArea {
+            anchors.fill: parent
+            onClicked: {
+                root.state = root.state ? "" : "fullscreen";
+            }
+        }
+
+        states: [
+            State {
+                name: "fullscreen"
+                AnchorChanges {
+                    target: statusbar
+                    anchors.top: undefined
+                    anchors.bottom: titlebar.top
+                }
+                AnchorChanges {
+                    target: titlebar
+                    anchors.top: undefined
+                    anchors.bottom: root.top
+                }
+            }
+        ]
+
+        transitions: [
+            Transition {
+                AnchorAnimation { }
+            }
+        ]
+    }
+}
Binary file tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.0.png has changed
Binary file tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.1.png has changed
Binary file tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.2.png has changed
Binary file tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.3.png has changed
Binary file tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.4.png has changed
Binary file tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.5.png has changed
--- a/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.qml	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.qml	Mon Oct 04 01:19:32 2010 +0300
@@ -6,409 +6,289 @@
     }
     Frame {
         msec: 16
-        hash: "89bb697bb7b7fab38d3ff56e23e43959"
+        hash: "01b9c877f51b878ed262943aedcf89b4"
     }
     Frame {
         msec: 32
-        hash: "89bb697bb7b7fab38d3ff56e23e43959"
+        hash: "01b9c877f51b878ed262943aedcf89b4"
     }
     Frame {
         msec: 48
-        hash: "89bb697bb7b7fab38d3ff56e23e43959"
+        hash: "01b9c877f51b878ed262943aedcf89b4"
     }
     Frame {
         msec: 64
-        hash: "89bb697bb7b7fab38d3ff56e23e43959"
+        hash: "01b9c877f51b878ed262943aedcf89b4"
     }
     Frame {
         msec: 80
-        hash: "89bb697bb7b7fab38d3ff56e23e43959"
+        hash: "01b9c877f51b878ed262943aedcf89b4"
     }
     Frame {
         msec: 96
-        hash: "89bb697bb7b7fab38d3ff56e23e43959"
+        hash: "01b9c877f51b878ed262943aedcf89b4"
     }
     Frame {
         msec: 112
-        hash: "89bb697bb7b7fab38d3ff56e23e43959"
+        hash: "01b9c877f51b878ed262943aedcf89b4"
     }
     Frame {
         msec: 128
-        hash: "89bb697bb7b7fab38d3ff56e23e43959"
+        hash: "01b9c877f51b878ed262943aedcf89b4"
     }
     Frame {
         msec: 144
-        hash: "89bb697bb7b7fab38d3ff56e23e43959"
+        hash: "01b9c877f51b878ed262943aedcf89b4"
     }
     Frame {
         msec: 160
-        hash: "89bb697bb7b7fab38d3ff56e23e43959"
+        hash: "01b9c877f51b878ed262943aedcf89b4"
     }
     Frame {
         msec: 176
-        hash: "89bb697bb7b7fab38d3ff56e23e43959"
+        hash: "01b9c877f51b878ed262943aedcf89b4"
     }
     Frame {
         msec: 192
-        hash: "89bb697bb7b7fab38d3ff56e23e43959"
+        hash: "01b9c877f51b878ed262943aedcf89b4"
     }
     Frame {
         msec: 208
-        hash: "89bb697bb7b7fab38d3ff56e23e43959"
+        hash: "01b9c877f51b878ed262943aedcf89b4"
     }
     Frame {
         msec: 224
-        hash: "89bb697bb7b7fab38d3ff56e23e43959"
+        hash: "01b9c877f51b878ed262943aedcf89b4"
     }
     Frame {
         msec: 240
-        hash: "89bb697bb7b7fab38d3ff56e23e43959"
+        hash: "01b9c877f51b878ed262943aedcf89b4"
     }
     Frame {
         msec: 256
-        hash: "89bb697bb7b7fab38d3ff56e23e43959"
+        hash: "01b9c877f51b878ed262943aedcf89b4"
     }
     Frame {
         msec: 272
-        hash: "89bb697bb7b7fab38d3ff56e23e43959"
+        hash: "01b9c877f51b878ed262943aedcf89b4"
     }
     Frame {
         msec: 288
-        hash: "89bb697bb7b7fab38d3ff56e23e43959"
+        hash: "01b9c877f51b878ed262943aedcf89b4"
     }
     Frame {
         msec: 304
-        hash: "89bb697bb7b7fab38d3ff56e23e43959"
+        hash: "01b9c877f51b878ed262943aedcf89b4"
     }
     Frame {
         msec: 320
-        hash: "89bb697bb7b7fab38d3ff56e23e43959"
+        hash: "01b9c877f51b878ed262943aedcf89b4"
     }
     Frame {
         msec: 336
-        hash: "89bb697bb7b7fab38d3ff56e23e43959"
+        hash: "01b9c877f51b878ed262943aedcf89b4"
     }
     Frame {
         msec: 352
-        hash: "89bb697bb7b7fab38d3ff56e23e43959"
+        hash: "01b9c877f51b878ed262943aedcf89b4"
     }
     Frame {
         msec: 368
-        hash: "89bb697bb7b7fab38d3ff56e23e43959"
+        hash: "01b9c877f51b878ed262943aedcf89b4"
     }
     Frame {
         msec: 384
-        hash: "89bb697bb7b7fab38d3ff56e23e43959"
+        hash: "01b9c877f51b878ed262943aedcf89b4"
     }
     Frame {
         msec: 400
-        hash: "89bb697bb7b7fab38d3ff56e23e43959"
+        hash: "01b9c877f51b878ed262943aedcf89b4"
     }
     Frame {
         msec: 416
-        hash: "89bb697bb7b7fab38d3ff56e23e43959"
+        hash: "01b9c877f51b878ed262943aedcf89b4"
     }
     Frame {
         msec: 432
-        hash: "89bb697bb7b7fab38d3ff56e23e43959"
+        hash: "01b9c877f51b878ed262943aedcf89b4"
     }
     Frame {
         msec: 448
-        hash: "89bb697bb7b7fab38d3ff56e23e43959"
+        hash: "01b9c877f51b878ed262943aedcf89b4"
     }
     Frame {
         msec: 464
-        hash: "89bb697bb7b7fab38d3ff56e23e43959"
+        hash: "01b9c877f51b878ed262943aedcf89b4"
     }
     Frame {
         msec: 480
-        hash: "89bb697bb7b7fab38d3ff56e23e43959"
+        hash: "01b9c877f51b878ed262943aedcf89b4"
     }
     Frame {
         msec: 496
-        hash: "89bb697bb7b7fab38d3ff56e23e43959"
+        hash: "01b9c877f51b878ed262943aedcf89b4"
     }
     Frame {
         msec: 512
-        hash: "89bb697bb7b7fab38d3ff56e23e43959"
+        hash: "01b9c877f51b878ed262943aedcf89b4"
     }
     Frame {
         msec: 528
-        hash: "89bb697bb7b7fab38d3ff56e23e43959"
+        hash: "01b9c877f51b878ed262943aedcf89b4"
     }
     Frame {
         msec: 544
-        hash: "89bb697bb7b7fab38d3ff56e23e43959"
+        hash: "01b9c877f51b878ed262943aedcf89b4"
     }
     Frame {
         msec: 560
-        hash: "89bb697bb7b7fab38d3ff56e23e43959"
+        hash: "01b9c877f51b878ed262943aedcf89b4"
     }
     Frame {
         msec: 576
-        hash: "89bb697bb7b7fab38d3ff56e23e43959"
+        hash: "01b9c877f51b878ed262943aedcf89b4"
     }
     Frame {
         msec: 592
-        hash: "89bb697bb7b7fab38d3ff56e23e43959"
+        hash: "01b9c877f51b878ed262943aedcf89b4"
     }
     Frame {
         msec: 608
-        hash: "89bb697bb7b7fab38d3ff56e23e43959"
+        hash: "01b9c877f51b878ed262943aedcf89b4"
     }
     Frame {
         msec: 624
-        hash: "89bb697bb7b7fab38d3ff56e23e43959"
+        hash: "01b9c877f51b878ed262943aedcf89b4"
     }
     Frame {
         msec: 640
-        hash: "89bb697bb7b7fab38d3ff56e23e43959"
+        hash: "01b9c877f51b878ed262943aedcf89b4"
     }
     Frame {
         msec: 656
-        hash: "89bb697bb7b7fab38d3ff56e23e43959"
+        hash: "01b9c877f51b878ed262943aedcf89b4"
     }
     Frame {
         msec: 672
-        hash: "89bb697bb7b7fab38d3ff56e23e43959"
+        hash: "01b9c877f51b878ed262943aedcf89b4"
     }
     Frame {
         msec: 688
-        hash: "89bb697bb7b7fab38d3ff56e23e43959"
+        hash: "01b9c877f51b878ed262943aedcf89b4"
     }
     Frame {
         msec: 704
-        hash: "89bb697bb7b7fab38d3ff56e23e43959"
+        hash: "01b9c877f51b878ed262943aedcf89b4"
     }
     Frame {
         msec: 720
-        hash: "89bb697bb7b7fab38d3ff56e23e43959"
+        hash: "01b9c877f51b878ed262943aedcf89b4"
     }
     Frame {
         msec: 736
-        hash: "89bb697bb7b7fab38d3ff56e23e43959"
+        hash: "01b9c877f51b878ed262943aedcf89b4"
     }
     Frame {
         msec: 752
-        hash: "89bb697bb7b7fab38d3ff56e23e43959"
+        hash: "01b9c877f51b878ed262943aedcf89b4"
     }
     Frame {
         msec: 768
-        hash: "89bb697bb7b7fab38d3ff56e23e43959"
+        hash: "01b9c877f51b878ed262943aedcf89b4"
     }
     Frame {
         msec: 784
-        hash: "89bb697bb7b7fab38d3ff56e23e43959"
+        hash: "01b9c877f51b878ed262943aedcf89b4"
     }
     Frame {
         msec: 800
-        hash: "89bb697bb7b7fab38d3ff56e23e43959"
+        hash: "01b9c877f51b878ed262943aedcf89b4"
     }
     Frame {
         msec: 816
-        hash: "89bb697bb7b7fab38d3ff56e23e43959"
+        hash: "01b9c877f51b878ed262943aedcf89b4"
     }
     Frame {
         msec: 832
-        hash: "89bb697bb7b7fab38d3ff56e23e43959"
+        hash: "01b9c877f51b878ed262943aedcf89b4"
     }
     Frame {
         msec: 848
-        hash: "89bb697bb7b7fab38d3ff56e23e43959"
+        hash: "01b9c877f51b878ed262943aedcf89b4"
     }
     Frame {
         msec: 864
-        hash: "89bb697bb7b7fab38d3ff56e23e43959"
+        hash: "01b9c877f51b878ed262943aedcf89b4"
     }
     Frame {
         msec: 880
-        hash: "89bb697bb7b7fab38d3ff56e23e43959"
+        hash: "01b9c877f51b878ed262943aedcf89b4"
     }
     Frame {
         msec: 896
-        hash: "89bb697bb7b7fab38d3ff56e23e43959"
+        hash: "01b9c877f51b878ed262943aedcf89b4"
+    }
+    Mouse {
+        type: 2
+        button: 1
+        buttons: 1
+        x: 623; y: 222
+        modifiers: 0
+        sendToViewport: true
+    }
+    Mouse {
+        type: 5
+        button: 0
+        buttons: 1
+        x: 621; y: 222
+        modifiers: 0
+        sendToViewport: true
     }
     Frame {
         msec: 912
-        hash: "89bb697bb7b7fab38d3ff56e23e43959"
+        hash: "1c2d4a99e7e2f5e945c05857d6a463a2"
+    }
+    Mouse {
+        type: 5
+        button: 0
+        buttons: 1
+        x: 609; y: 230
+        modifiers: 0
+        sendToViewport: true
     }
     Frame {
         msec: 928
-        hash: "89bb697bb7b7fab38d3ff56e23e43959"
+        hash: "d69c0678ce2025a8921b089311d219ea"
+    }
+    Mouse {
+        type: 5
+        button: 0
+        buttons: 1
+        x: 583; y: 248
+        modifiers: 0
+        sendToViewport: true
     }
     Frame {
         msec: 944
-        hash: "89bb697bb7b7fab38d3ff56e23e43959"
+        hash: "55a852b268151d660e4945da88b04022"
+    }
+    Mouse {
+        type: 5
+        button: 0
+        buttons: 1
+        x: 559; y: 258
+        modifiers: 0
+        sendToViewport: true
     }
     Frame {
         msec: 960
         image: "test-pathview.0.png"
     }
-    Frame {
-        msec: 976
-        hash: "89bb697bb7b7fab38d3ff56e23e43959"
-    }
-    Frame {
-        msec: 992
-        hash: "89bb697bb7b7fab38d3ff56e23e43959"
-    }
-    Frame {
-        msec: 1008
-        hash: "89bb697bb7b7fab38d3ff56e23e43959"
-    }
-    Frame {
-        msec: 1024
-        hash: "89bb697bb7b7fab38d3ff56e23e43959"
-    }
-    Frame {
-        msec: 1040
-        hash: "89bb697bb7b7fab38d3ff56e23e43959"
-    }
-    Frame {
-        msec: 1056
-        hash: "89bb697bb7b7fab38d3ff56e23e43959"
-    }
-    Frame {
-        msec: 1072
-        hash: "89bb697bb7b7fab38d3ff56e23e43959"
-    }
-    Frame {
-        msec: 1088
-        hash: "89bb697bb7b7fab38d3ff56e23e43959"
-    }
-    Frame {
-        msec: 1104
-        hash: "89bb697bb7b7fab38d3ff56e23e43959"
-    }
-    Frame {
-        msec: 1120
-        hash: "89bb697bb7b7fab38d3ff56e23e43959"
-    }
-    Frame {
-        msec: 1136
-        hash: "89bb697bb7b7fab38d3ff56e23e43959"
-    }
-    Mouse {
-        type: 2
-        button: 1
-        buttons: 1
-        x: 734; y: 177
-        modifiers: 0
-        sendToViewport: true
-    }
-    Frame {
-        msec: 1152
-        hash: "89bb697bb7b7fab38d3ff56e23e43959"
-    }
-    Frame {
-        msec: 1168
-        hash: "89bb697bb7b7fab38d3ff56e23e43959"
-    }
-    Mouse {
-        type: 5
-        button: 0
-        buttons: 1
-        x: 732; y: 177
-        modifiers: 0
-        sendToViewport: true
-    }
-    Frame {
-        msec: 1184
-        hash: "89bb697bb7b7fab38d3ff56e23e43959"
-    }
     Mouse {
         type: 5
         button: 0
         buttons: 1
-        x: 726; y: 179
-        modifiers: 0
-        sendToViewport: true
-    }
-    Frame {
-        msec: 1200
-        hash: "89bb697bb7b7fab38d3ff56e23e43959"
-    }
-    Mouse {
-        type: 5
-        button: 0
-        buttons: 1
-        x: 716; y: 183
-        modifiers: 0
-        sendToViewport: true
-    }
-    Frame {
-        msec: 1216
-        hash: "42c141399fda1cbb2ae117788d87092a"
-    }
-    Mouse {
-        type: 5
-        button: 0
-        buttons: 1
-        x: 700; y: 190
-        modifiers: 0
-        sendToViewport: true
-    }
-    Frame {
-        msec: 1232
-        hash: "4d44343eb91838e3eb73e2e5326b5ac2"
-    }
-    Frame {
-        msec: 1248
-        hash: "4d44343eb91838e3eb73e2e5326b5ac2"
-    }
-    Mouse {
-        type: 5
-        button: 0
-        buttons: 1
-        x: 677; y: 200
-        modifiers: 0
-        sendToViewport: true
-    }
-    Frame {
-        msec: 1264
-        hash: "15aaccb4f7961a4e3e6fe57260779d00"
-    }
-    Mouse {
-        type: 5
-        button: 0
-        buttons: 1
-        x: 651; y: 209
-        modifiers: 0
-        sendToViewport: true
-    }
-    Frame {
-        msec: 1280
-        hash: "5628fa3ac9893f5c9690013aad4b881a"
-    }
-    Mouse {
-        type: 5
-        button: 0
-        buttons: 1
-        x: 619; y: 219
-        modifiers: 0
-        sendToViewport: true
-    }
-    Frame {
-        msec: 1296
-        hash: "384db58b6de773ac39ae81e6af4d547d"
-    }
-    Mouse {
-        type: 5
-        button: 0
-        buttons: 1
-        x: 579; y: 229
-        modifiers: 0
-        sendToViewport: true
-    }
-    Frame {
-        msec: 1312
-        hash: "2a15a27a138b9d3d646b827d026e8843"
-    }
-    Mouse {
-        type: 5
-        button: 0
-        buttons: 1
-        x: 535; y: 237
+        x: 547; y: 264
         modifiers: 0
         sendToViewport: true
     }
@@ -416,157 +296,341 @@
         type: 3
         button: 1
         buttons: 0
-        x: 535; y: 237
+        x: 547; y: 264
+        modifiers: 0
+        sendToViewport: true
+    }
+    Frame {
+        msec: 976
+        hash: "55ab61911405e762b39b38d1371ef845"
+    }
+    Frame {
+        msec: 992
+        hash: "be3de45165f2f0916f734fecf3f48c47"
+    }
+    Frame {
+        msec: 1008
+        hash: "0a523daec6b591a2b5030c6c0b95cb24"
+    }
+    Frame {
+        msec: 1024
+        hash: "22da168e523fa385cce1f2e6a05e1332"
+    }
+    Frame {
+        msec: 1040
+        hash: "464cb37780cf126df6dad4169445c7bc"
+    }
+    Frame {
+        msec: 1056
+        hash: "666b06a0fbe2d10fbf3e15883a166c60"
+    }
+    Frame {
+        msec: 1072
+        hash: "223732cd526e09155ca99c80780bc3fa"
+    }
+    Frame {
+        msec: 1088
+        hash: "c74cc48188b05c5426a6b955ed9f09a3"
+    }
+    Frame {
+        msec: 1104
+        hash: "8d09a95ab09f87277fcc727e9c5da0fb"
+    }
+    Frame {
+        msec: 1120
+        hash: "71b7d4ec45270158ba4ca96817d8f231"
+    }
+    Frame {
+        msec: 1136
+        hash: "4847a1e7d792ed58e3476112b02c6fab"
+    }
+    Frame {
+        msec: 1152
+        hash: "ef444a3a960bdc176e004b949e5c89ce"
+    }
+    Frame {
+        msec: 1168
+        hash: "1ebf4badb7f4ef3938868a74740fcbce"
+    }
+    Frame {
+        msec: 1184
+        hash: "022918cd4b54750b0ad28bcb00108f51"
+    }
+    Frame {
+        msec: 1200
+        hash: "1ea398b2b7c52b35981c98b60d5d7a02"
+    }
+    Frame {
+        msec: 1216
+        hash: "05d7619ed0154fa414686522a7ca86c4"
+    }
+    Frame {
+        msec: 1232
+        hash: "03274e26ea57d1264f21d306533476ef"
+    }
+    Frame {
+        msec: 1248
+        hash: "5109372d6c62225aaf971aa53c708bee"
+    }
+    Frame {
+        msec: 1264
+        hash: "71f10446437963eccb87dd40c172118f"
+    }
+    Mouse {
+        type: 2
+        button: 1
+        buttons: 1
+        x: 708; y: 240
+        modifiers: 0
+        sendToViewport: true
+    }
+    Mouse {
+        type: 5
+        button: 0
+        buttons: 1
+        x: 707; y: 240
+        modifiers: 0
+        sendToViewport: true
+    }
+    Frame {
+        msec: 1280
+        hash: "e47426491548162622f9a281c3d062ec"
+    }
+    Mouse {
+        type: 5
+        button: 0
+        buttons: 1
+        x: 685; y: 252
+        modifiers: 0
+        sendToViewport: true
+    }
+    Frame {
+        msec: 1296
+        hash: "e889fba64d9f94fe18c3750dd6ad9d00"
+    }
+    Mouse {
+        type: 5
+        button: 0
+        buttons: 1
+        x: 635; y: 264
+        modifiers: 0
+        sendToViewport: true
+    }
+    Frame {
+        msec: 1312
+        hash: "7fe200757a6bf752906d195fe341be14"
+    }
+    Mouse {
+        type: 5
+        button: 0
+        buttons: 1
+        x: 569; y: 280
         modifiers: 0
         sendToViewport: true
     }
     Frame {
         msec: 1328
-        hash: "098176f48a148eb2bc5ef67c307baa1c"
+        hash: "aa1f4147dc3fd66f6d9e2605d0759951"
+    }
+    Mouse {
+        type: 5
+        button: 0
+        buttons: 1
+        x: 533; y: 294
+        modifiers: 0
+        sendToViewport: true
+    }
+    Mouse {
+        type: 3
+        button: 1
+        buttons: 0
+        x: 533; y: 294
+        modifiers: 0
+        sendToViewport: true
     }
     Frame {
         msec: 1344
-        hash: "f838ab4301bf9d3106cec529f855cecd"
+        hash: "2b7163ea45860cf81f208c2b68c418b5"
     }
     Frame {
         msec: 1360
-        hash: "9725322067a04f83717b059d4970d610"
+        hash: "a89bd1204fb17d9d8ce7b7f4279e9b1f"
     }
     Frame {
         msec: 1376
-        hash: "3605cfbebc3a9eb4460efb2d4b9b6da2"
+        hash: "683e52637fd5d96ded35f5ade9679822"
     }
     Frame {
         msec: 1392
-        hash: "4503a368d8db25d112503dbc3934541d"
+        hash: "2aa16f06e8bed201746558b1003f7d63"
     }
     Frame {
         msec: 1408
-        hash: "80894cc06c82264bf527398ea235da12"
+        hash: "f2e40e75ddb8004917ae5b8cf144a322"
     }
     Frame {
         msec: 1424
-        hash: "d4f9b90f886fc667309b33c9a296410c"
+        hash: "0f7f64373b065a454c02c32c52a5ef79"
     }
     Frame {
         msec: 1440
-        hash: "889d01025cff679b61bff182a1ac9cbc"
+        hash: "fb4fbd2b3696bfb6135797b1f0158b5c"
     }
     Frame {
         msec: 1456
-        hash: "6147bc4455e7cb5ae55cd47be8dc4ad6"
+        hash: "7a8eafad65ff191a97dcf910393ba4e4"
     }
     Frame {
         msec: 1472
-        hash: "ddd10a294eb6b19698c4e9fe4f1508fe"
+        hash: "3362deae62ba96853d85827f21cec589"
     }
     Frame {
         msec: 1488
-        hash: "748e8d9c1971f6258acee5133b7f114b"
+        hash: "0653838fa3fb5b32e561adc20becc9d2"
     }
     Frame {
         msec: 1504
-        hash: "1ef3f32ec9ef950588266bacbe3554a0"
+        hash: "482e78e6b54cabe007f7e7f4f27a07ee"
     }
     Frame {
         msec: 1520
-        hash: "57853ff47b65aba9e76f90b2efec4f8f"
+        hash: "b51f60864896808c6e41d8a0a990676d"
     }
     Frame {
         msec: 1536
-        hash: "3985fea21d89d223c1461d5e96364c76"
+        hash: "d77e59d69b7c21c82bce9a25d548358c"
     }
     Frame {
         msec: 1552
-        hash: "cb5f6a3caeeaed12e91efe43867f2c1f"
+        hash: "b3dddbb1eee0e2f222434511073c4620"
     }
     Frame {
         msec: 1568
-        hash: "cdd4176776d5969373e0fc9a117e3c87"
+        hash: "d5e0d191582291b269b9e93241d9ac03"
+    }
+    Mouse {
+        type: 2
+        button: 1
+        buttons: 1
+        x: 637; y: 218
+        modifiers: 0
+        sendToViewport: true
+    }
+    Mouse {
+        type: 5
+        button: 0
+        buttons: 1
+        x: 621; y: 240
+        modifiers: 0
+        sendToViewport: true
+    }
+    Mouse {
+        type: 5
+        button: 0
+        buttons: 1
+        x: 613; y: 248
+        modifiers: 0
+        sendToViewport: true
     }
     Frame {
         msec: 1584
-        hash: "3bac2e7506472db2ae11734240f1c3f4"
+        hash: "8c12000da88abb70cbc370d2a2ca21d7"
+    }
+    Mouse {
+        type: 5
+        button: 0
+        buttons: 1
+        x: 551; y: 288
+        modifiers: 0
+        sendToViewport: true
+    }
+    Mouse {
+        type: 3
+        button: 1
+        buttons: 0
+        x: 551; y: 288
+        modifiers: 0
+        sendToViewport: true
     }
     Frame {
         msec: 1600
-        hash: "bb572659d79ebda7134c039e40cf2633"
+        hash: "2854533fd50f5ebb8fc43cf0041883e4"
     }
     Frame {
         msec: 1616
-        hash: "e610181bfa17a85281f9c7417088f04f"
+        hash: "0b3782e842a6c54585d6a266314025d8"
     }
     Frame {
         msec: 1632
-        hash: "eb23ff021909589b6d8ce47ebff2c3ed"
+        hash: "02409885b82ebac931df18d8e23238d7"
     }
     Frame {
         msec: 1648
-        hash: "c321dda3878c4b97cc63246c47368224"
+        hash: "edcbd91ad267c125c431367be3e4a8a3"
     }
     Frame {
         msec: 1664
-        hash: "6a65cdfd50e1455356040d4cbc09905e"
+        hash: "47641fd7ec919b3c041c5acc04b0d083"
     }
     Frame {
         msec: 1680
-        hash: "f2a44b12e4e5bae8283c4d227949e4e8"
+        hash: "ea8f026fee0fba2c27a8df1e1e531acb"
     }
     Frame {
         msec: 1696
-        hash: "55418d661f3257b5b79a7dbb172b5b70"
+        hash: "e2e8a398760be380f9b2b7dbcb03c0e8"
     }
     Frame {
         msec: 1712
-        hash: "483d7111c86951918746d6ebe0dd9655"
+        hash: "a1767f2e10f9ab87050ef246a4a29bbb"
     }
     Frame {
         msec: 1728
-        hash: "85c83ac3a294a9320bb04a6721ecf7d5"
+        hash: "f60cccf793bd6d356d69b1394638a201"
     }
     Frame {
         msec: 1744
-        hash: "0d658b897b8e03397ddd8ffe475c2fc0"
+        hash: "31dc8c50a99164c19445a089223c8813"
     }
     Frame {
         msec: 1760
-        hash: "6ed9d7ea344b3c1b1d9196ee36b2f89a"
+        hash: "78ff726b7da5ba03fa74f66b39bf1006"
     }
     Frame {
         msec: 1776
-        hash: "6a1e7f6c03769c2c88e6343fb6c1a2a4"
+        hash: "6f8a540dccf7182f6aed8903a0afb109"
     }
     Frame {
         msec: 1792
-        hash: "9dc51f46e072eac4494d7318f2ecb39b"
+        hash: "c914c500507b9c7180dcf25e985135e9"
     }
     Frame {
         msec: 1808
-        hash: "59e833981c3fcd8a71f4a16d1c454b3a"
+        hash: "39702ce38bcfca46ef3a8dbb7299c725"
     }
     Frame {
         msec: 1824
-        hash: "29b953efdda00548d8cf6fb49fa60d13"
+        hash: "969b71ee88a1d244e62af1cecc105234"
     }
     Frame {
         msec: 1840
-        hash: "fd4611f703f94ebefcc64781993ca85c"
+        hash: "11c8397fb9d7b993761b08ba8c9958e5"
     }
     Frame {
         msec: 1856
-        hash: "aa4789ede618963157b40f099ce84987"
+        hash: "79ad4a90ab449e3232db993b30786d89"
     }
     Frame {
         msec: 1872
-        hash: "8a326b46ec536a67626ee2d2bc06aa9f"
+        hash: "daf979fd50e0860bf30f377a059d89dc"
     }
     Frame {
         msec: 1888
-        hash: "011ff557672d47591e4f0f5c5ee418f1"
+        hash: "5412e7524dc22e8064c8a8c684092802"
     }
     Frame {
         msec: 1904
-        hash: "d72fba857bdc128ddcb5971b86aadcb2"
+        hash: "2c3bea8bf10ecf6c19b93e94cb7ac0ea"
     }
     Frame {
         msec: 1920
@@ -574,807 +638,919 @@
     }
     Frame {
         msec: 1936
-        hash: "49182b7ae9ef5fb4b9234969abd05960"
+        hash: "bbfa2f8aaab0abaff9d771d5ec546d96"
     }
     Frame {
         msec: 1952
-        hash: "53de60f682574b7a9e6ffaee175fc9ff"
+        hash: "be2811bf369bc9dd8c5d9deec3b84788"
     }
     Frame {
         msec: 1968
-        hash: "2de74fe5b8848c5c781b796146871f45"
+        hash: "779838915f48eb917d36c3f2b65eedae"
+    }
+    Mouse {
+        type: 2
+        button: 1
+        buttons: 1
+        x: 595; y: 236
+        modifiers: 0
+        sendToViewport: true
+    }
+    Mouse {
+        type: 5
+        button: 0
+        buttons: 1
+        x: 565; y: 256
+        modifiers: 0
+        sendToViewport: true
     }
     Frame {
         msec: 1984
-        hash: "33c87146d8c24dd9c2271d16a8ff5b53"
+        hash: "d20b5fe14b47dfb1e73f8ef44802da11"
+    }
+    Mouse {
+        type: 5
+        button: 0
+        buttons: 1
+        x: 507; y: 286
+        modifiers: 0
+        sendToViewport: true
     }
     Frame {
         msec: 2000
-        hash: "fdb29214e20d744d9776907061f50358"
+        hash: "5312dd1f9d309ab5134b8bb67685488e"
+    }
+    Mouse {
+        type: 5
+        button: 0
+        buttons: 1
+        x: 461; y: 288
+        modifiers: 0
+        sendToViewport: true
+    }
+    Mouse {
+        type: 3
+        button: 1
+        buttons: 0
+        x: 461; y: 288
+        modifiers: 0
+        sendToViewport: true
     }
     Frame {
         msec: 2016
-        hash: "8c7c920416c9b775e790e6da24c32927"
+        hash: "8d6b6cbb74cc654bc5aff10a807dd3cb"
     }
     Frame {
         msec: 2032
-        hash: "86b456059e4701379447fffaf9e072f0"
+        hash: "dee717869177d1de4a26599b120f1c3d"
     }
     Frame {
         msec: 2048
-        hash: "f92cc485ee03ef5bce3c4cdc35e00318"
+        hash: "2b2c60f42024784ceed5c68505dfa5ca"
     }
     Frame {
         msec: 2064
-        hash: "2fad58883cb20273cfd79ebca345a66d"
+        hash: "1a6a108fd6cf607ec08dbedd804d12f7"
     }
     Frame {
         msec: 2080
-        hash: "84505ebbc6e12817f11f64aa6f61a0bf"
+        hash: "10bc4d0a1dc400fedc9a68b68c6525fd"
     }
     Frame {
         msec: 2096
-        hash: "ded83cacb89838cc0f3ba14bcc69b66b"
+        hash: "dc6a4abfbfb38e90af2308320d0f795b"
     }
     Frame {
         msec: 2112
-        hash: "5bb37e75bb45eaa6067c604b83ae13d7"
+        hash: "82c61d8461001c19af7c2b458d427e0b"
     }
     Frame {
         msec: 2128
-        hash: "4ee9e4c90c40dbc25a0ce884d9c2c37f"
+        hash: "e455d9ccffedaa708532bb69ad15871e"
     }
     Frame {
         msec: 2144
-        hash: "cb7148ff6f611038c29af36c8552b8c2"
+        hash: "b9c6169ad08724fc70df30668dfe7509"
     }
     Frame {
         msec: 2160
-        hash: "a591d8cb42570272dd264d5f1ce595ab"
+        hash: "a3fe5862be470470854d4157c1c027db"
     }
     Frame {
         msec: 2176
-        hash: "4e61657405d32dbcd39d3637f8af0958"
+        hash: "6a3804bd5f4fd5f1c424615ceb620525"
     }
     Frame {
         msec: 2192
-        hash: "9c7c1411dd5d3c1c8fb78e63e14061fe"
+        hash: "df0d72248310654a9cf47e707fe9e414"
     }
     Frame {
         msec: 2208
-        hash: "ae83a37e99b578fa0872ed6bc2776bc0"
+        hash: "beb19f2b2979ab40b5ccf8c0fbe9b72f"
     }
     Frame {
         msec: 2224
-        hash: "e8cb5a8a40c1e78c87c616f77d8de270"
+        hash: "be3449b49048b764bea68a76baa0fc75"
     }
     Frame {
         msec: 2240
-        hash: "9df093e4bcfa32be5924a0ca70bdaa3b"
+        hash: "4a615cae9c8f85e7b8aecd4c9014f1eb"
     }
     Frame {
         msec: 2256
-        hash: "40c358066d508143bee1446d12fe7b89"
+        hash: "b3c274f1a9d65684c0a55a544bf77810"
     }
     Frame {
         msec: 2272
-        hash: "a929ed6efc7fc68b38635f3c74242f52"
+        hash: "31456b01fcfb60a77d2b9662c2fff7b6"
     }
     Frame {
         msec: 2288
-        hash: "86ff721a3178b689ea47b6bc274a2b41"
+        hash: "2be5cf3f6158bf09659acc68b134846f"
     }
     Frame {
         msec: 2304
-        hash: "ed1f680f6d05f54ceb75c9bae3a0716a"
+        hash: "5f9c725a11305f3e6c48ab332faabf50"
     }
     Frame {
         msec: 2320
-        hash: "3f09a565df2beb51f366a1b3fb6adfe9"
+        hash: "277c2733c7245d045665198984b74224"
     }
     Frame {
         msec: 2336
-        hash: "13468347bd26bab60f1db826fb17631c"
+        hash: "265b8342bc747fb43a5291df0f4ce48b"
     }
     Frame {
         msec: 2352
-        hash: "9f7d085fea5788a457098973f17c36cb"
+        hash: "803b49ec31955b481009a51c64bcce65"
     }
     Frame {
         msec: 2368
-        hash: "4114b93246155b3434200831b2995330"
+        hash: "a717b30ad50746cdf0fae82212ac88f0"
     }
     Frame {
         msec: 2384
-        hash: "487171bd1430f74e3d51b5e215c34b5c"
+        hash: "65f46c8e69f24d060b5da6f866867f51"
     }
     Frame {
         msec: 2400
-        hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8"
+        hash: "52f9e5d1106d00a950470076a50e4239"
     }
     Frame {
         msec: 2416
-        hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8"
+        hash: "058a787aae2845308e68bb93f6a811e4"
     }
     Frame {
         msec: 2432
-        hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8"
+        hash: "621985111c25994c0c0fe3635be67c1d"
     }
     Frame {
         msec: 2448
-        hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8"
+        hash: "2949b8185cefbaaf587a043d805cc670"
     }
     Frame {
         msec: 2464
-        hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8"
+        hash: "d4a03127ae5047184c736617deeac92d"
     }
     Frame {
         msec: 2480
-        hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8"
+        hash: "876c6c5ac4500de6234423bf6f3511d6"
     }
     Frame {
         msec: 2496
-        hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8"
+        hash: "eb08aa172cfbdb696b6f672dfa7b6fff"
     }
     Frame {
         msec: 2512
-        hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8"
+        hash: "a60c13b8f46faa0a35dbb539010550d4"
     }
     Frame {
         msec: 2528
-        hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8"
+        hash: "c6f8786506e0326a5734ab8aea782f95"
     }
     Frame {
         msec: 2544
-        hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8"
+        hash: "a49927f2aae24e692fc379f0ab6f4ee9"
     }
     Frame {
         msec: 2560
-        hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8"
+        hash: "2f1a2d50e1090b34ad1ea6a36eec4fe0"
     }
     Frame {
         msec: 2576
-        hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8"
+        hash: "a5ee24d37be960a88684748b73dc75fe"
     }
     Frame {
         msec: 2592
-        hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8"
+        hash: "28682389395b47ae33ceec1ba3beef4e"
     }
     Frame {
         msec: 2608
-        hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8"
+        hash: "1869667b50b76d99716dd0d7849901fa"
     }
     Frame {
         msec: 2624
-        hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8"
+        hash: "2806ee1005193f55825aa6147583985f"
     }
     Frame {
         msec: 2640
-        hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8"
+        hash: "c00589dce90e3ab2f2c8890f30f80d3d"
     }
     Frame {
         msec: 2656
-        hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8"
+        hash: "1f1881f0a29525e380ecbcce15499fa4"
     }
     Frame {
         msec: 2672
-        hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8"
+        hash: "2a4c3ff764545a3899c864680f22f0a3"
     }
     Frame {
         msec: 2688
-        hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8"
+        hash: "2685820514ce5d5729f3761b1eaa1682"
     }
     Frame {
         msec: 2704
-        hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8"
+        hash: "2685820514ce5d5729f3761b1eaa1682"
     }
     Frame {
         msec: 2720
-        hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8"
+        hash: "2685820514ce5d5729f3761b1eaa1682"
     }
     Frame {
         msec: 2736
-        hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8"
+        hash: "2685820514ce5d5729f3761b1eaa1682"
     }
     Frame {
         msec: 2752
-        hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8"
+        hash: "2685820514ce5d5729f3761b1eaa1682"
     }
     Frame {
         msec: 2768
-        hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8"
+        hash: "2685820514ce5d5729f3761b1eaa1682"
     }
     Frame {
         msec: 2784
-        hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8"
+        hash: "2685820514ce5d5729f3761b1eaa1682"
     }
     Frame {
         msec: 2800
-        hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8"
+        hash: "2685820514ce5d5729f3761b1eaa1682"
     }
     Frame {
         msec: 2816
-        hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8"
+        hash: "2685820514ce5d5729f3761b1eaa1682"
     }
     Frame {
         msec: 2832
-        hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8"
+        hash: "2685820514ce5d5729f3761b1eaa1682"
     }
     Frame {
         msec: 2848
-        hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8"
+        hash: "2685820514ce5d5729f3761b1eaa1682"
     }
     Frame {
         msec: 2864
-        hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8"
+        hash: "2685820514ce5d5729f3761b1eaa1682"
     }
     Frame {
         msec: 2880
         image: "test-pathview.2.png"
     }
-    Frame {
-        msec: 2896
-        hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8"
-    }
-    Frame {
-        msec: 2912
-        hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8"
-    }
-    Frame {
-        msec: 2928
-        hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8"
-    }
-    Frame {
-        msec: 2944
-        hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8"
-    }
-    Frame {
-        msec: 2960
-        hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8"
-    }
-    Frame {
-        msec: 2976
-        hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8"
-    }
-    Frame {
-        msec: 2992
-        hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8"
-    }
-    Frame {
-        msec: 3008
-        hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8"
-    }
-    Frame {
-        msec: 3024
-        hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8"
-    }
-    Frame {
-        msec: 3040
-        hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8"
-    }
-    Frame {
-        msec: 3056
-        hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8"
-    }
-    Frame {
-        msec: 3072
-        hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8"
-    }
-    Frame {
-        msec: 3088
-        hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8"
-    }
     Mouse {
         type: 2
         button: 1
         buttons: 1
-        x: 728; y: 181
+        x: 310; y: 277
         modifiers: 0
         sendToViewport: true
     }
-    Frame {
-        msec: 3104
-        hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8"
-    }
-    Frame {
-        msec: 3120
-        hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8"
-    }
-    Frame {
-        msec: 3136
-        hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8"
-    }
     Mouse {
         type: 5
         button: 0
         buttons: 1
-        x: 727; y: 181
+        x: 324; y: 279
         modifiers: 0
         sendToViewport: true
     }
     Frame {
-        msec: 3152
-        hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8"
-    }
-    Mouse {
-        type: 5
-        button: 0
-        buttons: 1
-        x: 723; y: 181
-        modifiers: 0
-        sendToViewport: true
-    }
-    Frame {
-        msec: 3168
-        hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8"
-    }
-    Mouse {
-        type: 5
-        button: 0
-        buttons: 1
-        x: 717; y: 184
-        modifiers: 0
-        sendToViewport: true
-    }
-    Frame {
-        msec: 3184
-        hash: "6dcec6cdaa35eba74607ba64d6ea2ec0"
+        msec: 2896
+        hash: "ce00c77e8ff1768b41f5585344af1c58"
     }
     Mouse {
         type: 5
         button: 0
         buttons: 1
-        x: 705; y: 188
+        x: 330; y: 281
         modifiers: 0
         sendToViewport: true
     }
     Frame {
-        msec: 3200
-        hash: "16b7b4847fe86b25d8d6136106a4c400"
+        msec: 2912
+        hash: "24f401275fa6ec7d26234609792fe0b8"
     }
     Mouse {
         type: 5
         button: 0
         buttons: 1
-        x: 686; y: 197
+        x: 346; y: 283
         modifiers: 0
         sendToViewport: true
     }
     Frame {
-        msec: 3216
-        hash: "d946d55b19c99fa25bf1c04f2b71026a"
-    }
-    Mouse {
-        type: 5
-        button: 0
-        buttons: 1
-        x: 661; y: 207
-        modifiers: 0
-        sendToViewport: true
-    }
-    Frame {
-        msec: 3232
-        hash: "96f40f5071365cde769c733fd1ef5a24"
-    }
-    Mouse {
-        type: 5
-        button: 0
-        buttons: 1
-        x: 626; y: 221
-        modifiers: 0
-        sendToViewport: true
-    }
-    Frame {
-        msec: 3248
-        hash: "7004058b95b7eab3ebba5c80c0923982"
+        msec: 2928
+        hash: "d3c74863c627a1b922a6b6c4a24f8c40"
     }
     Mouse {
         type: 5
         button: 0
         buttons: 1
-        x: 582; y: 235
+        x: 358; y: 285
         modifiers: 0
         sendToViewport: true
     }
-    Frame {
-        msec: 3264
-        hash: "2c78880237c414182f97f1709f1eef0f"
-    }
-    Mouse {
-        type: 5
-        button: 0
-        buttons: 1
-        x: 532; y: 246
-        modifiers: 0
-        sendToViewport: true
-    }
-    Frame {
-        msec: 3280
-        hash: "c90a15ec9f88008ca8b0ec0185444d71"
-    }
     Mouse {
         type: 3
         button: 1
         buttons: 0
-        x: 532; y: 246
+        x: 358; y: 285
         modifiers: 0
         sendToViewport: true
     }
     Frame {
+        msec: 2944
+        hash: "64a3209e6adc737065e5d5c3202a7283"
+    }
+    Frame {
+        msec: 2960
+        hash: "cf936ffe4330edefddb31c59368491fc"
+    }
+    Frame {
+        msec: 2976
+        hash: "a67213db044bb876f737cd355fe54444"
+    }
+    Frame {
+        msec: 2992
+        hash: "0f9e97057cbbd8071e0f5f61318bdf9c"
+    }
+    Frame {
+        msec: 3008
+        hash: "c5f38d334df86ebb6ac4600c83eced20"
+    }
+    Frame {
+        msec: 3024
+        hash: "6d8e6049a36eac4136dbdb5fb18d0650"
+    }
+    Frame {
+        msec: 3040
+        hash: "8ee97cff4a632e6e297bd3bdac27b8d4"
+    }
+    Frame {
+        msec: 3056
+        hash: "aca1fcd005d211d35245e64a44002c01"
+    }
+    Frame {
+        msec: 3072
+        hash: "7076180bf0eb14a5e733be9320f1f009"
+    }
+    Frame {
+        msec: 3088
+        hash: "e0a0545b3a0b6a0b07d3fa987e1d58b6"
+    }
+    Frame {
+        msec: 3104
+        hash: "0294b098ce7f0d381542776320e52d2e"
+    }
+    Frame {
+        msec: 3120
+        hash: "36f8bcc42add38fe149e34a703cf8a02"
+    }
+    Frame {
+        msec: 3136
+        hash: "631426bde50fd35d1da1c30d9878253e"
+    }
+    Frame {
+        msec: 3152
+        hash: "a4d64c9d378138bedf63389e58d8f1d6"
+    }
+    Frame {
+        msec: 3168
+        hash: "17fdf61bffd947c2e9898f5c4517fdf8"
+    }
+    Frame {
+        msec: 3184
+        hash: "653b8c7a55bc4ca763238098711eafa1"
+    }
+    Frame {
+        msec: 3200
+        hash: "89e15b3ee1b1fc945801e08cfcdba62c"
+    }
+    Frame {
+        msec: 3216
+        hash: "7ea615af67336895e6cee6d3a39ff7de"
+    }
+    Frame {
+        msec: 3232
+        hash: "88faee45db80f04ef1120c35057a5f7d"
+    }
+    Frame {
+        msec: 3248
+        hash: "8cfe34047b29ac85e58d55e0f6e0b195"
+    }
+    Frame {
+        msec: 3264
+        hash: "39255546502fcb882005fe4c38c21fb0"
+    }
+    Frame {
+        msec: 3280
+        hash: "6bf7a959a05fc27f651b2a3ba07de30d"
+    }
+    Frame {
         msec: 3296
-        hash: "c90a15ec9f88008ca8b0ec0185444d71"
+        hash: "c2c61cb8dbbbd38827277ab32579c6da"
     }
     Frame {
         msec: 3312
-        hash: "36461e2a4cd860cac32223b8ee73c657"
+        hash: "ff370d4b4e44c4cbacca96107105df21"
     }
     Frame {
         msec: 3328
-        hash: "5f9b3ad9202fb02a4c6fea28c248ad22"
+        hash: "ccadd9e070d54de21c76397d18ad3de8"
     }
     Frame {
         msec: 3344
-        hash: "d0d23c4e1ddb2d9ffa0ecc38030ae15c"
+        hash: "6302c39de00070b0a23f9dc87f74dd8d"
     }
     Frame {
         msec: 3360
-        hash: "8e2e2d3eaf557c453f34016b6614e495"
+        hash: "7ab69e6d9809c78dc723609bd2761206"
     }
     Frame {
         msec: 3376
-        hash: "7402c747fa7276293a0a72d48d342782"
+        hash: "c429cc724b39891805cf4c1448de60b3"
     }
     Frame {
         msec: 3392
-        hash: "6090c30e4d722a32c083a25171fb11ff"
+        hash: "396ddf0b01e9fe7c2bfb220e64a0c7ec"
     }
     Frame {
         msec: 3408
-        hash: "f770d940cf287fec4b0803f7310292a8"
+        hash: "7a519a4efeecef5e7623a270e458fb13"
     }
     Frame {
         msec: 3424
-        hash: "558e4ce32df69357b70a8285b00fe347"
+        hash: "869d174a939e0638a1a22d5c8a010c14"
     }
     Frame {
         msec: 3440
-        hash: "8814168503c9a72ea8d3fa1e503f33d9"
+        hash: "9ecd2cf4e3b42ff93bcbf4db9829666c"
     }
     Frame {
         msec: 3456
-        hash: "6f5513d22e545096fadc6f5c4112902e"
+        hash: "b06b58b250d3df365806a3f8991d57f3"
     }
     Frame {
         msec: 3472
-        hash: "43f11d8ac16fd3e8199e555528817e14"
+        hash: "7a6fb03feb2ae0af1f143daedd22a88b"
     }
     Frame {
         msec: 3488
-        hash: "d64bafdbd26878a323dae918d5e0a36d"
+        hash: "e9fe338dbe7afb69f3870743b0a18805"
     }
     Frame {
         msec: 3504
-        hash: "1c70bdddfc3751ae3864f008170f8b06"
+        hash: "04b8def2085e9ce4065b02b938915557"
     }
     Frame {
         msec: 3520
-        hash: "bb7a18691fcd371e9d382b5bba4a0573"
+        hash: "7e6942f72012875ba83a1c9121e1f786"
     }
     Frame {
         msec: 3536
-        hash: "547e15f5dea2d9aa3ed44640b25028b9"
+        hash: "291e2d79a79959d9c8c586b6bdc31689"
     }
     Frame {
         msec: 3552
-        hash: "c11b86a256fac6be10b9a54564903d6f"
+        hash: "e490bc7fd92f486b964cca967bd33b38"
     }
     Frame {
         msec: 3568
-        hash: "0ada2dc586894d5e37de2632d2b37b15"
+        hash: "0c9858e0445e25d2b12c84801de441cb"
     }
     Frame {
         msec: 3584
-        hash: "0ae1a39ea196a0e734d80dbdea67b285"
+        hash: "72ba7a4aacb150e1e9c6de72cff82258"
     }
     Frame {
         msec: 3600
-        hash: "3cb70e64f9ab8aad841326dc2d2f1615"
+        hash: "1daca95256842545a5b77bcc46782478"
     }
     Frame {
         msec: 3616
-        hash: "a8f8b5ff19df9163ea628b589b675a5e"
+        hash: "869f3d16e203ad47f1ae7ca83e369b75"
     }
     Frame {
         msec: 3632
-        hash: "26fcc73f477db0ea731bc18b00b4c791"
+        hash: "9cc9cb20aab3369f4e3c5259d291708c"
     }
     Frame {
         msec: 3648
-        hash: "8702e49f3f26e1e21970e78c8aa4040a"
+        hash: "a507b957bab3efe2023a65f8c8b3540a"
     }
     Frame {
         msec: 3664
-        hash: "1a482a39d02779d8733e348b713f2312"
+        hash: "9fce2a6cddd8b06a80ce16599b56caa6"
     }
     Frame {
         msec: 3680
-        hash: "c728cc4a8e4d0a8d983514f86a92eae0"
+        hash: "2f85d3064968e3e7b669f733fad58459"
     }
     Frame {
         msec: 3696
-        hash: "82360ab373b08bf6a5d9e9ea9d0d18aa"
+        hash: "6dd6fad85dc5317a22a05a8486317767"
     }
     Frame {
         msec: 3712
-        hash: "6231a4bce6cfc1e26a9606cc041acdbc"
+        hash: "b0faa2ec225cd96fb6d2fd05dc66bed1"
     }
     Frame {
         msec: 3728
-        hash: "6e3b48862fc749f15aa2dec1c17d1de0"
+        hash: "3188219f095c2a9ac7c0f6034463d769"
     }
     Frame {
         msec: 3744
-        hash: "6c9e79a5692a3810b2a9058790f54cd7"
+        hash: "b269e9fe4d14537c8bef0b66effe7319"
     }
     Frame {
         msec: 3760
-        hash: "0652c67fedda0d5e55858ddefff2da9e"
+        hash: "b269e9fe4d14537c8bef0b66effe7319"
     }
     Frame {
         msec: 3776
-        hash: "3b058c0efeb3a9da54a1de72a1792a83"
+        hash: "b269e9fe4d14537c8bef0b66effe7319"
     }
     Frame {
         msec: 3792
-        hash: "96e6fb39c8dbfe4a00bf116bf80aac4d"
+        hash: "b269e9fe4d14537c8bef0b66effe7319"
+    }
+    Mouse {
+        type: 2
+        button: 1
+        buttons: 1
+        x: 174; y: 234
+        modifiers: 0
+        sendToViewport: true
     }
     Frame {
         msec: 3808
-        hash: "979c0c78c41e0f337cfe1b384fbbe51a"
+        hash: "9480eb8761d4ce90971903fcfab1e09e"
+    }
+    Mouse {
+        type: 5
+        button: 0
+        buttons: 1
+        x: 176; y: 236
+        modifiers: 0
+        sendToViewport: true
     }
     Frame {
         msec: 3824
-        hash: "8be0d6987a6d12864f30336b249e4b16"
+        hash: "30a6ac631e1a3433f252f56ee4337cdc"
+    }
+    Mouse {
+        type: 5
+        button: 0
+        buttons: 1
+        x: 179; y: 238
+        modifiers: 0
+        sendToViewport: true
     }
     Frame {
         msec: 3840
         image: "test-pathview.3.png"
     }
+    Mouse {
+        type: 5
+        button: 0
+        buttons: 1
+        x: 184; y: 243
+        modifiers: 0
+        sendToViewport: true
+    }
     Frame {
         msec: 3856
-        hash: "31e665f804a52a4dc88eab5dba78ae5a"
+        hash: "ed07f9eea6cd2cd78a3e2479137f843d"
+    }
+    Mouse {
+        type: 5
+        button: 0
+        buttons: 1
+        x: 185; y: 244
+        modifiers: 0
+        sendToViewport: true
     }
     Frame {
         msec: 3872
-        hash: "b7d4cf5a6a3ac79da3be101b50b38bc2"
+        hash: "7a5b201cc8725dbf15d89907fffd4ee3"
+    }
+    Mouse {
+        type: 5
+        button: 0
+        buttons: 1
+        x: 197; y: 250
+        modifiers: 0
+        sendToViewport: true
     }
     Frame {
         msec: 3888
-        hash: "559b1b8467b611cdeb7f2ae660e3bf51"
+        hash: "bc2433b9e5f03cdbd35922d145a4ce59"
+    }
+    Mouse {
+        type: 5
+        button: 0
+        buttons: 1
+        x: 213; y: 256
+        modifiers: 0
+        sendToViewport: true
+    }
+    Mouse {
+        type: 3
+        button: 1
+        buttons: 0
+        x: 213; y: 256
+        modifiers: 0
+        sendToViewport: true
     }
     Frame {
         msec: 3904
-        hash: "66abb5af85e793569382efb04744d0de"
+        hash: "d443f23aa5449d5f2b11c47feab5a0ae"
     }
     Frame {
         msec: 3920
-        hash: "b64eff8bbea5a953d146333363825724"
+        hash: "c43f00d3ae4c8abbd20fc7157363b19d"
     }
     Frame {
         msec: 3936
-        hash: "47b794c971c4d47baf15e1d63d65ac03"
+        hash: "22d6f5e9fdfe44e73020e6f504002b7c"
     }
     Frame {
         msec: 3952
-        hash: "b3882fa14f3cb7428c660737656d7ea2"
+        hash: "4a9a285834aad5795adbefbe167028e2"
     }
     Frame {
         msec: 3968
-        hash: "a6bd71c7d3a0f3f53674ea8e1334e560"
+        hash: "561a6c005950830acf2a45ab9a207346"
     }
     Frame {
         msec: 3984
-        hash: "0926d3cd53aabb789686e34d91ef23dc"
+        hash: "b0387e3cfd455e1144d0bce9b51d6767"
     }
     Frame {
         msec: 4000
-        hash: "914c4fa7264111b4a42c82a60701d652"
+        hash: "610237f67aa7e5f8d5b363b1612b4966"
     }
     Frame {
         msec: 4016
-        hash: "84c1fa22440a61126b79c38605b6f9ca"
+        hash: "8034a5a7e0558d73051ea6c5bc750866"
     }
     Frame {
         msec: 4032
-        hash: "b684fcf9f4725cfc02af0187454dfaf8"
+        hash: "0e4dc8a9c124b51c5f1225f4c6a9ec63"
     }
     Frame {
         msec: 4048
-        hash: "2e94c1ca74af4eb836a0c505d131f263"
+        hash: "dc4e94522e8c64e9f2dbbf12a1f1aa3e"
     }
     Frame {
         msec: 4064
-        hash: "5f04912674e1bcdb16176976d10ce995"
+        hash: "7466c076a95f2f6bbc2b6ce306773337"
     }
     Frame {
         msec: 4080
-        hash: "aaf0bcef4a15aa1c699eaa1ce817c8ed"
+        hash: "787e2749905b97159fd0922c6cb388e2"
     }
     Frame {
         msec: 4096
-        hash: "97fd5bdcfa367191fbd3689658ab3273"
+        hash: "1e510d01afad190ec21de253bd8b4821"
     }
     Frame {
         msec: 4112
-        hash: "d76d6c59411636a0e9ac2e0c847b3fe3"
+        hash: "d740f40eb21be71ec70c00411d2ee76b"
     }
     Frame {
         msec: 4128
-        hash: "9cb88a76c962623b1a9cf4e7093d6e54"
+        hash: "887a6f445af8fccf4932eed575a09cbb"
     }
     Frame {
         msec: 4144
-        hash: "ec3d7075680296905b1bdd6fdd9fcc40"
+        hash: "fbb7e1d8cb9dd9016df0c33c69b1451a"
     }
     Frame {
         msec: 4160
-        hash: "43c70dabc45ed059e8b876eb2ba5c66e"
+        hash: "5025e5f04a0807cb298037d6dda8c3af"
     }
     Frame {
         msec: 4176
-        hash: "8f97ca5c3092a20009c5d00139105a22"
+        hash: "b9924f24f60c24087be165e8e385ebb0"
     }
     Frame {
         msec: 4192
-        hash: "d0f225d4b03495218f7916698e254338"
+        hash: "2bab970787ac8b056401c8a73cb1a3c5"
     }
     Frame {
         msec: 4208
-        hash: "f8725467353a8f27bc5570af157c93c7"
+        hash: "bda954bfafaa2915d760cf7a602b326f"
+    }
+    Mouse {
+        type: 2
+        button: 1
+        buttons: 1
+        x: 187; y: 242
+        modifiers: 0
+        sendToViewport: true
     }
     Frame {
         msec: 4224
-        hash: "749c8ca5c0a7774c81805b792e6b70e3"
+        hash: "9b109bb9e786a45a78849436ea32a484"
     }
     Frame {
         msec: 4240
-        hash: "d353c4a8a5eecb1dce30f4a5b85b1ef4"
+        hash: "9b109bb9e786a45a78849436ea32a484"
     }
     Frame {
         msec: 4256
-        hash: "a7105f3f1ddace730d0b4a12a3560208"
+        hash: "9b109bb9e786a45a78849436ea32a484"
+    }
+    Mouse {
+        type: 5
+        button: 0
+        buttons: 1
+        x: 187; y: 243
+        modifiers: 0
+        sendToViewport: true
     }
     Frame {
         msec: 4272
-        hash: "918f480af8a35f6074ff1e202dae2660"
+        hash: "9b109bb9e786a45a78849436ea32a484"
+    }
+    Mouse {
+        type: 5
+        button: 0
+        buttons: 1
+        x: 199; y: 252
+        modifiers: 0
+        sendToViewport: true
     }
     Frame {
         msec: 4288
-        hash: "ed98d08eb30db1b41aaf2a58f3b59398"
+        hash: "cc3c61f49a7b3c395670b86c8078a337"
+    }
+    Mouse {
+        type: 5
+        button: 0
+        buttons: 1
+        x: 223; y: 262
+        modifiers: 0
+        sendToViewport: true
     }
     Frame {
         msec: 4304
-        hash: "c362cf053b3749a44d1fc33483f9952b"
+        hash: "464d09b53b78fe5474d9c1d022bee9fd"
+    }
+    Mouse {
+        type: 5
+        button: 0
+        buttons: 1
+        x: 251; y: 272
+        modifiers: 0
+        sendToViewport: true
+    }
+    Mouse {
+        type: 3
+        button: 1
+        buttons: 0
+        x: 251; y: 272
+        modifiers: 0
+        sendToViewport: true
     }
     Frame {
         msec: 4320
-        hash: "9b01b2c771ef86ff4a8ee3f6a4676e3c"
+        hash: "aab17f48ff506cda84543cbe0d8a1ce4"
     }
     Frame {
         msec: 4336
-        hash: "70ccec3c9db95206b5589d43dcd52b13"
+        hash: "b7ba6c107f4085822a738120a913ba0c"
     }
     Frame {
         msec: 4352
-        hash: "57e7397c6aadd0d4d5c9d9d5fcdd8fde"
+        hash: "751b79e202a70dcc9a86c3a1450172b8"
     }
     Frame {
         msec: 4368
-        hash: "299b24eae7720e1711744b23335bca8c"
+        hash: "bb03f969fd6987255ff113ef98ed2bb1"
     }
     Frame {
         msec: 4384
-        hash: "299b24eae7720e1711744b23335bca8c"
+        hash: "c33302b366441fa2d8753d5ce314cd37"
     }
     Frame {
         msec: 4400
-        hash: "299b24eae7720e1711744b23335bca8c"
+        hash: "4cdf32004382bcaca5a68cb92761caa2"
     }
     Frame {
         msec: 4416
-        hash: "299b24eae7720e1711744b23335bca8c"
+        hash: "d3fe18ea7dcbee0709a2041e50b87154"
     }
     Frame {
         msec: 4432
-        hash: "299b24eae7720e1711744b23335bca8c"
+        hash: "ac58a7adb0e7a354a058d7e9a7010c06"
     }
     Frame {
         msec: 4448
-        hash: "299b24eae7720e1711744b23335bca8c"
+        hash: "bdf8a8934a372ab49f4b6e9c95c7f591"
     }
     Frame {
         msec: 4464
-        hash: "299b24eae7720e1711744b23335bca8c"
+        hash: "d2e8b417b74ec5f6e23f0935a4d0aa98"
     }
     Frame {
         msec: 4480
-        hash: "299b24eae7720e1711744b23335bca8c"
+        hash: "0f94c6ca3ffbd730c2d813a991d21ca3"
     }
     Frame {
         msec: 4496
-        hash: "299b24eae7720e1711744b23335bca8c"
+        hash: "fb7728eebb2fa8f5255dc7435d20bbb6"
     }
     Frame {
         msec: 4512
-        hash: "299b24eae7720e1711744b23335bca8c"
+        hash: "c8211e8adcef525c296531a3d369f717"
     }
     Frame {
         msec: 4528
-        hash: "299b24eae7720e1711744b23335bca8c"
+        hash: "f24de36c85b87953977fa8b6456209dc"
     }
     Frame {
         msec: 4544
-        hash: "299b24eae7720e1711744b23335bca8c"
+        hash: "9ce7cf389af08cb1ba2534418f51857b"
     }
     Frame {
         msec: 4560
-        hash: "299b24eae7720e1711744b23335bca8c"
+        hash: "17d1f3ae0dba0bde222bb2483a403fbd"
     }
     Frame {
         msec: 4576
-        hash: "299b24eae7720e1711744b23335bca8c"
+        hash: "1748d75e229945012ece689b3784a02c"
     }
     Frame {
         msec: 4592
-        hash: "299b24eae7720e1711744b23335bca8c"
+        hash: "6786fa9e31d6f0a71a285c790aa5b008"
     }
     Frame {
         msec: 4608
-        hash: "299b24eae7720e1711744b23335bca8c"
+        hash: "f2a2ba33b41d8d522e8aab34c7da8f7b"
     }
     Frame {
         msec: 4624
-        hash: "299b24eae7720e1711744b23335bca8c"
+        hash: "aa53142d1b433ae9f748aef5cb7bef46"
     }
     Frame {
         msec: 4640
-        hash: "299b24eae7720e1711744b23335bca8c"
+        hash: "9c6802b2b0a419a4aaf9909c0f88c66e"
     }
     Frame {
         msec: 4656
-        hash: "299b24eae7720e1711744b23335bca8c"
+        hash: "206b11f2acd742d55ddd8acf7415bbeb"
     }
     Frame {
         msec: 4672
-        hash: "299b24eae7720e1711744b23335bca8c"
+        hash: "36876cf600cbf9c3b15f243617c9474e"
     }
     Frame {
         msec: 4688
-        hash: "299b24eae7720e1711744b23335bca8c"
+        hash: "1f5daf97294b490546657c5d9e12022e"
     }
     Frame {
         msec: 4704
-        hash: "299b24eae7720e1711744b23335bca8c"
+        hash: "637fc34fc2cf6139ba8809be54a2a0fc"
     }
     Frame {
         msec: 4720
-        hash: "299b24eae7720e1711744b23335bca8c"
+        hash: "9f824bd9e156980873619b1978f226bb"
     }
     Frame {
         msec: 4736
-        hash: "299b24eae7720e1711744b23335bca8c"
+        hash: "7002444129a5077ce5be44a5e2530328"
     }
     Frame {
         msec: 4752
-        hash: "299b24eae7720e1711744b23335bca8c"
+        hash: "42b7a44030ad4fc50ceb6a60bc97991e"
     }
     Frame {
         msec: 4768
-        hash: "299b24eae7720e1711744b23335bca8c"
+        hash: "ae986cac541033398076fb918136212e"
     }
     Frame {
         msec: 4784
-        hash: "299b24eae7720e1711744b23335bca8c"
+        hash: "6bdd9f764b1675e5b0feced8c2d831a6"
     }
     Frame {
         msec: 4800
@@ -1382,114 +1558,278 @@
     }
     Frame {
         msec: 4816
-        hash: "299b24eae7720e1711744b23335bca8c"
+        hash: "07dfffe85adc4b52565e9ed156fa3ed6"
     }
     Frame {
         msec: 4832
-        hash: "299b24eae7720e1711744b23335bca8c"
+        hash: "c987bbe9fbf74bb6cf2686a5ee97c59a"
     }
     Frame {
         msec: 4848
-        hash: "299b24eae7720e1711744b23335bca8c"
+        hash: "19568159ec2282d5f150583baa0a8a94"
     }
     Frame {
         msec: 4864
-        hash: "299b24eae7720e1711744b23335bca8c"
+        hash: "5b176ef6bf70ff1a9805ca85b1b0c1a2"
     }
     Frame {
         msec: 4880
-        hash: "299b24eae7720e1711744b23335bca8c"
+        hash: "de716a8c15a46bf1621878794e968c53"
     }
     Frame {
         msec: 4896
-        hash: "299b24eae7720e1711744b23335bca8c"
+        hash: "241af9ab77c86cdb75f73339548604ad"
     }
     Frame {
         msec: 4912
-        hash: "299b24eae7720e1711744b23335bca8c"
+        hash: "afc7168ecb7fa7e3310ca818b75f7a1c"
     }
     Frame {
         msec: 4928
-        hash: "299b24eae7720e1711744b23335bca8c"
+        hash: "83bff911b502a34d139a724f686bb1f9"
     }
     Frame {
         msec: 4944
-        hash: "299b24eae7720e1711744b23335bca8c"
-    }
-    Key {
-        type: 6
-        key: 16777249
-        modifiers: 0
-        text: ""
-        autorep: false
-        count: 1
+        hash: "f4d3fb54ae5be2b13065cd4316b06837"
     }
     Frame {
         msec: 4960
-        hash: "299b24eae7720e1711744b23335bca8c"
+        hash: "d29c7dfedf9dd355d60e394528b3b938"
     }
     Frame {
         msec: 4976
-        hash: "299b24eae7720e1711744b23335bca8c"
+        hash: "ddf23d860ea71ab4b407de1a5f913f74"
     }
     Frame {
         msec: 4992
-        hash: "299b24eae7720e1711744b23335bca8c"
+        hash: "a0dbb6ecbfd08f9ebdd641fea5dae16c"
     }
     Frame {
         msec: 5008
-        hash: "299b24eae7720e1711744b23335bca8c"
+        hash: "7ed3170e55e3c3c9561959ad4c56d326"
     }
     Frame {
         msec: 5024
-        hash: "299b24eae7720e1711744b23335bca8c"
+        hash: "dbde5f508aabc2d1f2ccfaf135efeca9"
     }
     Frame {
         msec: 5040
-        hash: "299b24eae7720e1711744b23335bca8c"
+        hash: "72039739be41bf63b3959bdc90ce25bb"
     }
     Frame {
         msec: 5056
-        hash: "299b24eae7720e1711744b23335bca8c"
+        hash: "417789daefe6bc01320db7803ae31d61"
     }
     Frame {
         msec: 5072
-        hash: "299b24eae7720e1711744b23335bca8c"
+        hash: "7e57dbddaf379f4316182048fa9e2d6f"
     }
     Frame {
         msec: 5088
-        hash: "299b24eae7720e1711744b23335bca8c"
+        hash: "aeca9a4df94d2b9ac2a713531a7d98f1"
     }
     Frame {
         msec: 5104
-        hash: "299b24eae7720e1711744b23335bca8c"
+        hash: "98ad6694f23678819020d6ac0161651c"
     }
     Frame {
         msec: 5120
-        hash: "299b24eae7720e1711744b23335bca8c"
+        hash: "b6eba3872da19ec677eee419ae9cccbc"
     }
     Frame {
         msec: 5136
-        hash: "299b24eae7720e1711744b23335bca8c"
+        hash: "e824909bfe7b6d54773bb218ba93e884"
     }
     Frame {
         msec: 5152
-        hash: "299b24eae7720e1711744b23335bca8c"
+        hash: "3be04f3ff6d948538f4472bc6bfadb0f"
     }
     Frame {
         msec: 5168
-        hash: "299b24eae7720e1711744b23335bca8c"
+        hash: "e05ff21dda1d978a2ac2eedd3826b6f7"
     }
     Frame {
         msec: 5184
-        hash: "299b24eae7720e1711744b23335bca8c"
+        hash: "8ee970b2b197c8d879a7b1703cbd4dcd"
     }
     Frame {
         msec: 5200
-        hash: "299b24eae7720e1711744b23335bca8c"
+        hash: "e583845e7719d2776c6362c34f77937c"
     }
     Frame {
         msec: 5216
-        hash: "299b24eae7720e1711744b23335bca8c"
+        hash: "593fd590531ccfb59d890b8043eaab9c"
+    }
+    Frame {
+        msec: 5232
+        hash: "593fd590531ccfb59d890b8043eaab9c"
+    }
+    Frame {
+        msec: 5248
+        hash: "593fd590531ccfb59d890b8043eaab9c"
+    }
+    Frame {
+        msec: 5264
+        hash: "593fd590531ccfb59d890b8043eaab9c"
+    }
+    Frame {
+        msec: 5280
+        hash: "593fd590531ccfb59d890b8043eaab9c"
+    }
+    Frame {
+        msec: 5296
+        hash: "593fd590531ccfb59d890b8043eaab9c"
+    }
+    Frame {
+        msec: 5312
+        hash: "593fd590531ccfb59d890b8043eaab9c"
+    }
+    Frame {
+        msec: 5328
+        hash: "593fd590531ccfb59d890b8043eaab9c"
+    }
+    Frame {
+        msec: 5344
+        hash: "593fd590531ccfb59d890b8043eaab9c"
+    }
+    Frame {
+        msec: 5360
+        hash: "593fd590531ccfb59d890b8043eaab9c"
+    }
+    Frame {
+        msec: 5376
+        hash: "593fd590531ccfb59d890b8043eaab9c"
+    }
+    Frame {
+        msec: 5392
+        hash: "593fd590531ccfb59d890b8043eaab9c"
+    }
+    Frame {
+        msec: 5408
+        hash: "593fd590531ccfb59d890b8043eaab9c"
+    }
+    Frame {
+        msec: 5424
+        hash: "593fd590531ccfb59d890b8043eaab9c"
+    }
+    Frame {
+        msec: 5440
+        hash: "593fd590531ccfb59d890b8043eaab9c"
+    }
+    Frame {
+        msec: 5456
+        hash: "593fd590531ccfb59d890b8043eaab9c"
+    }
+    Frame {
+        msec: 5472
+        hash: "593fd590531ccfb59d890b8043eaab9c"
+    }
+    Frame {
+        msec: 5488
+        hash: "593fd590531ccfb59d890b8043eaab9c"
+    }
+    Frame {
+        msec: 5504
+        hash: "593fd590531ccfb59d890b8043eaab9c"
+    }
+    Frame {
+        msec: 5520
+        hash: "c0d0f62d9078f6be493d5545a2ae78ad"
+    }
+    Frame {
+        msec: 5536
+        hash: "c0d0f62d9078f6be493d5545a2ae78ad"
+    }
+    Frame {
+        msec: 5552
+        hash: "c0d0f62d9078f6be493d5545a2ae78ad"
+    }
+    Frame {
+        msec: 5568
+        hash: "c0d0f62d9078f6be493d5545a2ae78ad"
+    }
+    Frame {
+        msec: 5584
+        hash: "c0d0f62d9078f6be493d5545a2ae78ad"
+    }
+    Frame {
+        msec: 5600
+        hash: "c0d0f62d9078f6be493d5545a2ae78ad"
+    }
+    Frame {
+        msec: 5616
+        hash: "c0d0f62d9078f6be493d5545a2ae78ad"
+    }
+    Frame {
+        msec: 5632
+        hash: "c0d0f62d9078f6be493d5545a2ae78ad"
+    }
+    Frame {
+        msec: 5648
+        hash: "c0d0f62d9078f6be493d5545a2ae78ad"
+    }
+    Frame {
+        msec: 5664
+        hash: "c0d0f62d9078f6be493d5545a2ae78ad"
+    }
+    Frame {
+        msec: 5680
+        hash: "c0d0f62d9078f6be493d5545a2ae78ad"
+    }
+    Frame {
+        msec: 5696
+        hash: "c0d0f62d9078f6be493d5545a2ae78ad"
+    }
+    Frame {
+        msec: 5712
+        hash: "c0d0f62d9078f6be493d5545a2ae78ad"
+    }
+    Frame {
+        msec: 5728
+        hash: "c0d0f62d9078f6be493d5545a2ae78ad"
+    }
+    Frame {
+        msec: 5744
+        hash: "c0d0f62d9078f6be493d5545a2ae78ad"
+    }
+    Frame {
+        msec: 5760
+        image: "test-pathview.5.png"
+    }
+    Frame {
+        msec: 5776
+        hash: "c0d0f62d9078f6be493d5545a2ae78ad"
+    }
+    Frame {
+        msec: 5792
+        hash: "c0d0f62d9078f6be493d5545a2ae78ad"
+    }
+    Frame {
+        msec: 5808
+        hash: "c0d0f62d9078f6be493d5545a2ae78ad"
+    }
+    Frame {
+        msec: 5824
+        hash: "c0d0f62d9078f6be493d5545a2ae78ad"
+    }
+    Frame {
+        msec: 5840
+        hash: "c0d0f62d9078f6be493d5545a2ae78ad"
+    }
+    Frame {
+        msec: 5856
+        hash: "c0d0f62d9078f6be493d5545a2ae78ad"
+    }
+    Frame {
+        msec: 5872
+        hash: "c0d0f62d9078f6be493d5545a2ae78ad"
+    }
+    Frame {
+        msec: 5888
+        hash: "c0d0f62d9078f6be493d5545a2ae78ad"
+    }
+    Frame {
+        msec: 5904
+        hash: "c0d0f62d9078f6be493d5545a2ae78ad"
     }
 }
--- a/tests/auto/declarative/qmlvisual/qdeclarativepathview/test-pathview.qml	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/declarative/qmlvisual/qdeclarativepathview/test-pathview.qml	Mon Oct 04 01:19:32 2010 +0300
@@ -59,4 +59,9 @@
             PathAttribute { name: "angle"; value: 45 }
         }
     }
+
+    Column {
+        Rectangle { width: 20; height: 20; color: "red"; opacity: photoPathView.moving ? 1 : 0 }
+        Rectangle { width: 20; height: 20; color: "blue"; opacity: photoPathView.flicking ? 1 : 0 }
+    }
 }
--- a/tests/auto/gestures/tst_gestures.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/gestures/tst_gestures.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -395,7 +395,12 @@
 {
     GestureWidget widget;
     widget.grabGesture(CustomGesture::GestureType, Qt::DontStartGestureOnChildren);
+    widget.show();
+    QTest::qWaitForWindowShown(&widget);
+
     CustomEvent event;
+    event.hotSpot = widget.mapToGlobal(QPoint(5,5));
+    event.hasHotSpot = true;
     sendCustomGesture(&event, &widget);
 
     static const int TotalGestureEventsCount = CustomGesture::SerialFinishedThreshold - CustomGesture::SerialStartedThreshold + 1;
--- a/tests/auto/guiapplauncher/tst_guiapplauncher.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/guiapplauncher/tst_guiapplauncher.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -128,10 +128,10 @@
     {"mainwindows/menus Example", "mainwindows/menus", "menus", 10, -1},
     {"mainwindows/recentfiles Example", "mainwindows/recentfiles", "recentfiles", 10, -1},
     {"mainwindows/sdi Example", "mainwindows/sdi", "sdi", 10, -1},
-    {"multitouch/dials Example", "multitouch/dials", "dials", 10, -1},
-    {"multitouch/fingerpaint Example", "multitouch/fingerpaint", "fingerpaint", 10, -1},
-    {"multitouch/knobs Example", "multitouch/knobs", "knobs", 10, -1},
-    {"multitouch/pinchzoom Example", "multitouch/pinchzoom", "pinchzoom", 10, -1},
+    {"touch/dials Example", "touch/dials", "dials", 10, -1},
+    {"touch/fingerpaint Example", "touch/fingerpaint", "fingerpaint", 10, -1},
+    {"touch/knobs Example", "touch/knobs", "knobs", 10, -1},
+    {"touch/pinchzoom Example", "touch/pinchzoom", "pinchzoom", 10, -1},
     {"opengl/2dpainting Example", "opengl/2dpainting", "2dpainting", 10, -1},
     {"opengl/grabber Example", "opengl/grabber", "grabber", 10, -1},
     {"opengl/hellogl Example", "opengl/hellogl", "hellogl", 10, -1},
--- a/tests/auto/headers/tst_headers.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/headers/tst_headers.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -213,7 +213,8 @@
         return;
 
     if (content.first().contains("generated")) {
-        content.takeFirst();
+        // don't scan generated files
+        return;
     }
 
     if (sourceFile.endsWith("/tests/auto/linguist/lupdate/testdata/good/merge_ordering/foo.cpp")
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/auto/linguist/lconvert/data/test-refs.po	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,23 @@
+msgid ""
+msgstr ""
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Language: de_DE\n"
+
+#: themer/kdmlabel.cpp:285
+#, no-c-format
+msgctxt "date format"
+msgid "%a %d %B"
+msgstr "%a %d %B"
+
+#: foo.bar.baz
+#, no-c-format
+msgid "full java class name"
+msgstr ""
+
+#: foo.car:123 monks:here file/gar.c:17:19 no:monks:here
+#, no-c-format
+msgid "some excessive locations"
+msgstr ""
--- a/tests/auto/linguist/lconvert/data/test20.ts	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/linguist/lconvert/data/test20.ts	Mon Oct 04 01:19:32 2010 +0300
@@ -158,5 +158,14 @@
         <comment>comment with | and ~ and so~</comment>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>just something obsolete</source>
+        <translation type="obsolete">translated obsoletion</translation>
+    </message>
+    <message>
+        <source>something else obsolete</source>
+        <comment>comment with | and ~ and so~</comment>
+        <translation type="obsolete">another translated obsoletion</translation>
+    </message>
 </context>
 </TS>
--- a/tests/auto/linguist/lconvert/tst_lconvert.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/linguist/lconvert/tst_lconvert.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -317,6 +317,8 @@
     QTest::newRow("po-xliff-po (plural-2)") << "plural-2.po" << poXlfPo << noArgs;
     QTest::newRow("po-xliff-po (plural-3)") << "plural-3.po" << poXlfPo << noArgs;
 
+    QTest::newRow("po-ts-po (references)") << "test-refs.po" << poTsPo << noArgs;
+
     QTest::newRow("ts20-ts11-ts20 (utf8)") << "codec-utf8.ts" << tsTs11Ts << noArgs;
     QTest::newRow("ts20-ts11-ts20 (cp1252)") << "codec-cp1252.ts" << tsTs11Ts << noArgs;
     QTest::newRow("ts20-ts11-ts20 (dual-encoding)") << "dual-encoding.ts" << tsTs11Ts << noArgs;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/auto/linguist/lupdate/testdata/good/parsejs/main.js	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,91 @@
+qsTr("One");
+qsTranslate("FooContext", "Two");
+
+var greeting_strings = [
+    QT_TR_NOOP("Hello"),
+    QT_TRANSLATE_NOOP("FooContext", "Goodbye")
+];
+
+qsTr("One", "not the same one");
+
+//: My first comment.
+qsTr("See comment");
+
+//: My second comment.
+qsTranslate("BarContext", "See other comment");
+
+//: My third comment
+//: spans two lines.
+qsTr("The comment explains it all");
+
+//: My fourth comment
+//: spans a whopping
+//: three lines.
+qsTranslate("BazContext", "It should be clear by now");
+
+/*: C-style comment. */
+qsTr("I love C++");
+
+/*: Another C-style comment. */
+qsTranslate("FooContext", "I really love C++");
+
+/*: C-style comment, followed by */
+/*: another one. */
+qsTr("Qt is the best");
+
+/*: Another C-style comment, followed by */
+/*: yet another one. */
+qsTranslate("BarContext", "Qt is the very best");
+
+// This comment doesn't have any effect.
+qsTr("The comment had no effect");
+
+// This comment doesn't have any effect either.
+qsTranslate("BazContext", "The comment had no effect, really");
+
+/* This C-style comment doesn't have any effect. */
+qsTr("No comment to your comment");
+
+/* This C-style comment doesn't have any effect either. */
+qsTranslate("FooContext", "I refuse to comment on that");
+
+//= id_foo
+qsTr("This string has an identifier");
+
+//= id_bar
+qsTranslate("BarContext", "This string also has an identifier");
+
+//~ loc-blank False
+qsTr("This string has meta-data");
+
+//~ loc-layout_id foo_dialog
+qsTranslate("BazContext", "This string also has meta-data");
+
+// This comment is to be ignored.
+//: This is a comment for the translator.
+//= id_baz
+//~ foo 123
+//~ magic-stuff This means something special.
+qsTr("This string has a lot of information");
+
+// This comment is also to be ignored.
+//: This is another comment for the translator.
+//= id_babar
+//~ foo-bar Important stuff
+//~ needle-in-haystack Found
+//~ overflow True
+qsTranslate("FooContext", "This string has even more information");
+
+qsTr("This string has disambiguation", "Disambiguation");
+
+qsTranslate("BarContext", "This string also has disambiguation", "Another disambiguation");
+
+qsTr("This string contains plurals", "", 10);
+
+qsTrId("qtn_foo_bar");
+
+var more_greeting_strings = [ QT_TRID_NOOP("qtn_needle"), QT_TRID_NOOP("qtn_haystack") ];
+
+//: qsTrId() with comment, meta-data and plurals.
+//~ well-tested True
+qsTrId("qtn_bar_baz", 10);
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/auto/linguist/lupdate/testdata/good/parsejs/project.pro	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,3 @@
+SOURCES += main.js
+
+TRANSLATIONS = project.ts
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/auto/linguist/lupdate/testdata/good/parsejs/project.ts.result	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,195 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0">
+<context>
+    <name></name>
+    <message id="qtn_foo_bar">
+        <location filename="main.js" line="85"/>
+        <source></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message id="qtn_needle">
+        <location filename="main.js" line="87"/>
+        <source></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message id="qtn_haystack">
+        <location filename="main.js" line="87"/>
+        <source></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message id="qtn_bar_baz" numerus="yes">
+        <location filename="main.js" line="91"/>
+        <source></source>
+        <extracomment>qsTrId() with comment, meta-data and plurals.</extracomment>
+        <translation type="unfinished">
+            <numerusform></numerusform>
+        </translation>
+        <extra-well-tested>True</extra-well-tested>
+    </message>
+</context>
+<context>
+    <name>BarContext</name>
+    <message>
+        <location filename="main.js" line="15"/>
+        <source>See other comment</source>
+        <extracomment>My second comment.</extracomment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="main.js" line="38"/>
+        <source>Qt is the very best</source>
+        <extracomment>Another C-style comment, followed by yet another one.</extracomment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message id="id_bar">
+        <location filename="main.js" line="56"/>
+        <source>This string also has an identifier</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="main.js" line="81"/>
+        <source>This string also has disambiguation</source>
+        <comment>Another disambiguation</comment>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>BazContext</name>
+    <message>
+        <location filename="main.js" line="24"/>
+        <source>It should be clear by now</source>
+        <extracomment>My fourth comment spans a whopping three lines.</extracomment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="main.js" line="44"/>
+        <source>The comment had no effect, really</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="main.js" line="62"/>
+        <source>This string also has meta-data</source>
+        <translation type="unfinished"></translation>
+        <extra-loc-layout_id>foo_dialog</extra-loc-layout_id>
+    </message>
+</context>
+<context>
+    <name>FooContext</name>
+    <message>
+        <location filename="main.js" line="2"/>
+        <source>Two</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="main.js" line="6"/>
+        <source>Goodbye</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="main.js" line="30"/>
+        <source>I really love C++</source>
+        <extracomment>Another C-style comment.</extracomment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="main.js" line="50"/>
+        <source>I refuse to comment on that</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message id="id_babar">
+        <location filename="main.js" line="77"/>
+        <source>This string has even more information</source>
+        <extracomment>This is another comment for the translator.</extracomment>
+        <translation type="unfinished"></translation>
+        <extra-needle-in-haystack>Found</extra-needle-in-haystack>
+        <extra-overflow>True</extra-overflow>
+        <extra-foo-bar>Important stuff</extra-foo-bar>
+    </message>
+</context>
+<context>
+    <name>main</name>
+    <message>
+        <location filename="main.js" line="1"/>
+        <source>One</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="main.js" line="5"/>
+        <source>Hello</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="main.js" line="9"/>
+        <source>One</source>
+        <comment>not the same one</comment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="main.js" line="12"/>
+        <source>See comment</source>
+        <extracomment>My first comment.</extracomment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="main.js" line="19"/>
+        <source>The comment explains it all</source>
+        <extracomment>My third comment spans two lines.</extracomment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="main.js" line="27"/>
+        <source>I love C++</source>
+        <extracomment>C-style comment.</extracomment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="main.js" line="34"/>
+        <source>Qt is the best</source>
+        <extracomment>C-style comment, followed by another one.</extracomment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="main.js" line="41"/>
+        <source>The comment had no effect</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="main.js" line="47"/>
+        <source>No comment to your comment</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message id="id_foo">
+        <location filename="main.js" line="53"/>
+        <source>This string has an identifier</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="main.js" line="59"/>
+        <source>This string has meta-data</source>
+        <translation type="unfinished"></translation>
+        <extra-loc-blank>False</extra-loc-blank>
+    </message>
+    <message id="id_baz">
+        <location filename="main.js" line="69"/>
+        <source>This string has a lot of information</source>
+        <extracomment>This is a comment for the translator.</extracomment>
+        <translation type="unfinished"></translation>
+        <extra-foo>123</extra-foo>
+        <extra-magic-stuff>This means something special.</extra-magic-stuff>
+    </message>
+    <message>
+        <location filename="main.js" line="79"/>
+        <source>This string has disambiguation</source>
+        <comment>Disambiguation</comment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message numerus="yes">
+        <location filename="main.js" line="83"/>
+        <source>This string contains plurals</source>
+        <translation type="unfinished">
+            <numerusform></numerusform>
+        </translation>
+    </message>
+</context>
+</TS>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/auto/linguist/lupdate/testdata/good/parsejs2/expectedoutput.txt	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,29 @@
+.*/lupdate/testdata/good/parsejs2/main.js:3: qsTranslate\(\) requires at least two arguments.
+.*/lupdate/testdata/good/parsejs2/main.js:4: qsTranslate\(\) requires at least two arguments.
+.*/lupdate/testdata/good/parsejs2/main.js:5: qsTranslate\(\): both arguments must be literal strings.
+.*/lupdate/testdata/good/parsejs2/main.js:6: qsTranslate\(\): both arguments must be literal strings.
+.*/lupdate/testdata/good/parsejs2/main.js:7: qsTranslate\(\): both arguments must be literal strings.
+.*/lupdate/testdata/good/parsejs2/main.js:9: QT_TRANSLATE_NOOP\(\) requires at least two arguments.
+.*/lupdate/testdata/good/parsejs2/main.js:10: QT_TRANSLATE_NOOP\(\) requires at least two arguments.
+.*/lupdate/testdata/good/parsejs2/main.js:11: QT_TRANSLATE_NOOP\(\): both arguments must be literal strings.
+.*/lupdate/testdata/good/parsejs2/main.js:12: QT_TRANSLATE_NOOP\(\): both arguments must be literal strings.
+.*/lupdate/testdata/good/parsejs2/main.js:13: QT_TRANSLATE_NOOP\(\): both arguments must be literal strings.
+.*/lupdate/testdata/good/parsejs2/main.js:15: qsTr\(\) requires at least one argument.
+.*/lupdate/testdata/good/parsejs2/main.js:16: qsTr\(\): text to translate must be a literal string.
+.*/lupdate/testdata/good/parsejs2/main.js:18: QT_TR_NOOP\(\) requires at least one argument.
+.*/lupdate/testdata/good/parsejs2/main.js:19: QT_TR_NOOP\(\): text to translate must be a literal string.
+.*/lupdate/testdata/good/parsejs2/main.js:21: qsTrId\(\) requires at least one argument.
+.*/lupdate/testdata/good/parsejs2/main.js:22: qsTrId\(\): identifier must be a literal string.
+.*/lupdate/testdata/good/parsejs2/main.js:24: QT_TRID_NOOP\(\) requires at least one argument.
+.*/lupdate/testdata/good/parsejs2/main.js:25: QT_TRID_NOOP\(\): identifier must be a literal string.
+.*/lupdate/testdata/good/parsejs2/main.js:27: Unexpected character in meta string
+.*/lupdate/testdata/good/parsejs2/main.js:28: Unexpected character in meta string
+.*/lupdate/testdata/good/parsejs2/main.js:29: Unterminated meta string
+.*/lupdate/testdata/good/parsejs2/main.js:30: Unterminated meta string
+.*/lupdate/testdata/good/parsejs2/main.js:33: //% cannot be used with qsTranslate\(\). Ignoring
+.*/lupdate/testdata/good/parsejs2/main.js:35: //% cannot be used with QT_TRANSLATE_NOOP\(\). Ignoring
+.*/lupdate/testdata/good/parsejs2/main.js:37: //% cannot be used with qsTr\(\). Ignoring
+.*/lupdate/testdata/good/parsejs2/main.js:39: //% cannot be used with QT_TR_NOOP\(\). Ignoring
+.*/lupdate/testdata/good/parsejs2/main.js:42: Discarding unconsumed meta data
+.*/lupdate/testdata/good/parsejs2/main.js:44: Discarding unconsumed meta data
+.*/lupdate/testdata/good/parsejs2/main.js:46: Discarding unconsumed meta data
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/auto/linguist/lupdate/testdata/good/parsejs2/main.js	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,56 @@
+// This script exercises lupdate errors and warnings.
+
+qsTranslate();
+qsTranslate(10);
+qsTranslate(10, 20);
+qsTranslate("10", 20);
+qsTranslate(10, "20");
+
+QT_TRANSLATE_NOOP();
+QT_TRANSLATE_NOOP(10);
+QT_TRANSLATE_NOOP(10, 20);
+QT_TRANSLATE_NOOP("10", 20);
+QT_TRANSLATE_NOOP(10, "20");
+
+qsTr();
+qsTr(10);
+
+QT_TR_NOOP();
+QT_TR_NOOP(10);
+
+qsTrId();
+qsTrId(10);
+
+QT_TRID_NOOP();
+QT_TRID_NOOP(10);
+
+//% This is wrong
+//% "This is not wrong" This is wrong
+//% "I forgot to close the meta string
+//% "Being evil \
+
+//% "Should cause a warning"
+qsTranslate("FooContext", "Hello");
+//% "Should cause a warning"
+QT_TRANSLATE_NOOP("FooContext", "World");
+//% "Should cause a warning"
+qsTr("Hello");
+//% "Should cause a warning"
+QT_TR_NOOP("World");
+
+//: This comment will be discarded.
+Math.sin(1);
+//= id_foobar
+Math.cos(2);
+//~ underflow False
+Math.tan(3);
+
+/*
+Not tested for now, because these should perhaps not cause
+translation entries to be generated at all; see QTBUG-11843.
+
+//= qtn_foo
+qsTrId("qtn_foo");
+//= qtn_bar
+QT_TRID_NOOP("qtn_bar");
+*/
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/auto/linguist/lupdate/testdata/good/parsejs2/project.pro	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,3 @@
+SOURCES += main.js
+
+TRANSLATIONS = project.ts
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/auto/linguist/lupdate/testdata/good/parsejs2/project.ts.result	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0">
+<context>
+    <name>FooContext</name>
+    <message>
+        <location filename="main.js" line="33"/>
+        <source>Hello</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="main.js" line="35"/>
+        <source>World</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>main</name>
+    <message>
+        <location filename="main.js" line="37"/>
+        <source>Hello</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="main.js" line="39"/>
+        <source>World</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+</TS>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/auto/linguist/lupdate/testdata/good/parseqml/main.qml	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,97 @@
+import Qt 4.7
+
+QtObject {
+    function translate() {
+        qsTr("One");
+        qsTranslate("FooContext", "Two");
+
+        var greeting_strings = [
+            QT_TR_NOOP("Hello"),
+            QT_TRANSLATE_NOOP("FooContext", "Goodbye")
+        ];
+
+        qsTr("One", "not the same one");
+
+        //: My first comment.
+        qsTr("See comment");
+
+        //: My second comment.
+        qsTranslate("BarContext", "See other comment");
+
+        //: My third comment
+        //: spans two lines.
+        qsTr("The comment explains it all");
+
+        //: My fourth comment
+        //: spans a whopping
+        //: three lines.
+        qsTranslate("BazContext", "It should be clear by now");
+
+        /*: C-style comment. */
+        qsTr("I love C++");
+
+        /*: Another C-style comment. */
+        qsTranslate("FooContext", "I really love C++");
+
+        /*: C-style comment, followed by */
+        /*: another one. */
+        qsTr("Qt is the best");
+
+        /*: Another C-style comment, followed by */
+        /*: yet another one. */
+        qsTranslate("BarContext", "Qt is the very best");
+
+        // This comment doesn't have any effect.
+        qsTr("The comment had no effect");
+
+        // This comment doesn't have any effect either.
+        qsTranslate("BazContext", "The comment had no effect, really");
+
+        /* This C-style comment doesn't have any effect. */
+        qsTr("No comment to your comment");
+
+        /* This C-style comment doesn't have any effect either. */
+        qsTranslate("FooContext", "I refuse to comment on that");
+
+        //= id_foo
+        qsTr("This string has an identifier");
+
+        //= id_bar
+        qsTranslate("BarContext", "This string also has an identifier");
+
+        //~ loc-blank False
+        qsTr("This string has meta-data");
+
+        //~ loc-layout_id foo_dialog
+        qsTranslate("BazContext", "This string also has meta-data");
+
+        // This comment is to be ignored.
+        //: This is a comment for the translator.
+        //= id_baz
+        //~ foo 123
+        //~ magic-stuff This means something special.
+        qsTr("This string has a lot of information");
+
+        // This comment is also to be ignored.
+        //: This is another comment for the translator.
+        //= id_babar
+        //~ foo-bar Important stuff
+        //~ needle-in-haystack Found
+        //~ overflow True
+        qsTranslate("FooContext", "This string has even more information");
+
+        qsTr("This string has disambiguation", "Disambiguation");
+
+        qsTranslate("BarContext", "This string also has disambiguation", "Another disambiguation");
+
+        qsTr("This string contains plurals", "", 10);
+
+        qsTrId("qtn_foo_bar");
+
+        var more_greeting_strings = [ QT_TRID_NOOP("qtn_needle"), QT_TRID_NOOP("qtn_haystack") ];
+
+        //: qsTrId() with comment, meta-data and plurals.
+        //~ well-tested True
+        qsTrId("qtn_bar_baz", 10);
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/auto/linguist/lupdate/testdata/good/parseqml/project.pro	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,3 @@
+SOURCES += main.qml
+
+TRANSLATIONS = project.ts
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/auto/linguist/lupdate/testdata/good/parseqml/project.ts.result	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,195 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0">
+<context>
+    <name></name>
+    <message id="qtn_foo_bar">
+        <location filename="main.qml" line="89"/>
+        <source></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message id="qtn_needle">
+        <location filename="main.qml" line="91"/>
+        <source></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message id="qtn_haystack">
+        <location filename="main.qml" line="91"/>
+        <source></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message id="qtn_bar_baz" numerus="yes">
+        <location filename="main.qml" line="95"/>
+        <source></source>
+        <extracomment>qsTrId() with comment, meta-data and plurals.</extracomment>
+        <translation type="unfinished">
+            <numerusform></numerusform>
+        </translation>
+        <extra-well-tested>True</extra-well-tested>
+    </message>
+</context>
+<context>
+    <name>BarContext</name>
+    <message>
+        <location filename="main.qml" line="19"/>
+        <source>See other comment</source>
+        <extracomment>My second comment.</extracomment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="main.qml" line="42"/>
+        <source>Qt is the very best</source>
+        <extracomment>Another C-style comment, followed by yet another one.</extracomment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message id="id_bar">
+        <location filename="main.qml" line="60"/>
+        <source>This string also has an identifier</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="main.qml" line="85"/>
+        <source>This string also has disambiguation</source>
+        <comment>Another disambiguation</comment>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>BazContext</name>
+    <message>
+        <location filename="main.qml" line="28"/>
+        <source>It should be clear by now</source>
+        <extracomment>My fourth comment spans a whopping three lines.</extracomment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="main.qml" line="48"/>
+        <source>The comment had no effect, really</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="main.qml" line="66"/>
+        <source>This string also has meta-data</source>
+        <translation type="unfinished"></translation>
+        <extra-loc-layout_id>foo_dialog</extra-loc-layout_id>
+    </message>
+</context>
+<context>
+    <name>FooContext</name>
+    <message>
+        <location filename="main.qml" line="6"/>
+        <source>Two</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="main.qml" line="10"/>
+        <source>Goodbye</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="main.qml" line="34"/>
+        <source>I really love C++</source>
+        <extracomment>Another C-style comment.</extracomment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="main.qml" line="54"/>
+        <source>I refuse to comment on that</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message id="id_babar">
+        <location filename="main.qml" line="81"/>
+        <source>This string has even more information</source>
+        <extracomment>This is another comment for the translator.</extracomment>
+        <translation type="unfinished"></translation>
+        <extra-needle-in-haystack>Found</extra-needle-in-haystack>
+        <extra-overflow>True</extra-overflow>
+        <extra-foo-bar>Important stuff</extra-foo-bar>
+    </message>
+</context>
+<context>
+    <name>main</name>
+    <message>
+        <location filename="main.qml" line="5"/>
+        <source>One</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="main.qml" line="9"/>
+        <source>Hello</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="main.qml" line="13"/>
+        <source>One</source>
+        <comment>not the same one</comment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="main.qml" line="16"/>
+        <source>See comment</source>
+        <extracomment>My first comment.</extracomment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="main.qml" line="23"/>
+        <source>The comment explains it all</source>
+        <extracomment>My third comment spans two lines.</extracomment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="main.qml" line="31"/>
+        <source>I love C++</source>
+        <extracomment>C-style comment.</extracomment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="main.qml" line="38"/>
+        <source>Qt is the best</source>
+        <extracomment>C-style comment, followed by another one.</extracomment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="main.qml" line="45"/>
+        <source>The comment had no effect</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="main.qml" line="51"/>
+        <source>No comment to your comment</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message id="id_foo">
+        <location filename="main.qml" line="57"/>
+        <source>This string has an identifier</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="main.qml" line="63"/>
+        <source>This string has meta-data</source>
+        <translation type="unfinished"></translation>
+        <extra-loc-blank>False</extra-loc-blank>
+    </message>
+    <message id="id_baz">
+        <location filename="main.qml" line="73"/>
+        <source>This string has a lot of information</source>
+        <extracomment>This is a comment for the translator.</extracomment>
+        <translation type="unfinished"></translation>
+        <extra-foo>123</extra-foo>
+        <extra-magic-stuff>This means something special.</extra-magic-stuff>
+    </message>
+    <message>
+        <location filename="main.qml" line="83"/>
+        <source>This string has disambiguation</source>
+        <comment>Disambiguation</comment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message numerus="yes">
+        <location filename="main.qml" line="87"/>
+        <source>This string contains plurals</source>
+        <translation type="unfinished">
+            <numerusform></numerusform>
+        </translation>
+    </message>
+</context>
+</TS>
--- a/tests/auto/macnativeevents/tst_macnativeevents.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/macnativeevents/tst_macnativeevents.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -67,6 +67,11 @@
     void testDragWindow();
     void testMouseEnter();
     void testChildDialogInFrontOfModalParent();
+#ifdef QT_MAC_USE_COCOA
+    void testChildWindowInFrontOfParentWindow();
+//    void testChildToolWindowInFrontOfChildNormalWindow();
+    void testChildWindowInFrontOfStaysOnTopParentWindow();
+#endif
     void testKeyPressOnToplevel();
 };
 
@@ -308,6 +313,82 @@
     QVERIFY(!child.isVisible());
 }
 
+#ifdef QT_MAC_USE_COCOA
+void tst_MacNativeEvents::testChildWindowInFrontOfParentWindow()
+{
+    // Test that a child window always stacks in front of its parent window.
+    // Do this by first click on the parent, then on the child window button.
+    QWidget parent;
+    QPushButton child("a button", &parent);
+    child.setWindowFlags(Qt::Window);
+    connect(&child, SIGNAL(clicked()), &child, SLOT(close()));
+    parent.show();
+    child.show();
+
+    QPoint parent_p = parent.geometry().bottomLeft() + QPoint(20, -20);
+    QPoint child_p = child.geometry().center();
+
+    NativeEventList native;
+    native.append(new QNativeMouseButtonEvent(parent_p, Qt::LeftButton, 1, Qt::NoModifier));
+    native.append(new QNativeMouseButtonEvent(parent_p, Qt::LeftButton, 0, Qt::NoModifier));
+    native.append(new QNativeMouseButtonEvent(child_p, Qt::LeftButton, 1, Qt::NoModifier));
+    native.append(new QNativeMouseButtonEvent(child_p, Qt::LeftButton, 0, Qt::NoModifier));
+
+    native.play();
+    QTest::qWait(100);
+    QVERIFY(!child.isVisible());
+}
+
+/* This test can be enabled once setStackingOrder has been fixed in qwidget_mac.mm
+void tst_MacNativeEvents::testChildToolWindowInFrontOfChildNormalWindow()
+{
+    // Test that a child tool window always stacks in front of normal sibling windows.
+    // Do this by first click on the sibling, then on the tool window button.
+    QWidget parent;
+    QWidget normalChild(&parent, Qt::Window);
+    QPushButton toolChild("a button", &parent);
+    toolChild.setWindowFlags(Qt::Tool);
+    connect(&toolChild, SIGNAL(clicked()), &toolChild, SLOT(close()));
+    parent.show();
+    normalChild.show();
+    toolChild.show();
+
+    QPoint normalChild_p = normalChild.geometry().bottomLeft() + QPoint(20, -20);
+    QPoint toolChild_p = toolChild.geometry().center();
+
+    NativeEventList native;
+    native.append(new QNativeMouseButtonEvent(normalChild_p, Qt::LeftButton, 1, Qt::NoModifier));
+    native.append(new QNativeMouseButtonEvent(normalChild_p, Qt::LeftButton, 0, Qt::NoModifier));
+    native.append(new QNativeMouseButtonEvent(toolChild_p, Qt::LeftButton, 1, Qt::NoModifier));
+    native.append(new QNativeMouseButtonEvent(toolChild_p, Qt::LeftButton, 0, Qt::NoModifier));
+
+    native.play();
+    QTest::qWait(100);
+    QVERIFY(!toolChild.isVisible());
+}
+*/
+void tst_MacNativeEvents::testChildWindowInFrontOfStaysOnTopParentWindow()
+{
+    // Test that a child window stacks on top of a stays-on-top parent.
+    QWidget parent(0, Qt::WindowStaysOnTopHint);
+    QPushButton button("close", &parent);
+    button.setWindowFlags(Qt::Window);
+    connect(&button, SIGNAL(clicked()), &button, SLOT(close()));
+    parent.show();
+    button.show();
+    QPoint inside = button.geometry().center();
+
+    // Post a click on the button to close the child dialog:
+    NativeEventList native;
+    native.append(new QNativeMouseButtonEvent(inside, Qt::LeftButton, 1, Qt::NoModifier));
+    native.append(new QNativeMouseButtonEvent(inside, Qt::LeftButton, 0, Qt::NoModifier));
+
+    native.play();
+    QTest::qWait(100);
+    QVERIFY(!button.isVisible());
+}
+#endif
+
 void tst_MacNativeEvents::testKeyPressOnToplevel()
 {
     // Check that we receive keyevents for
--- a/tests/auto/mediaobject/tst_mediaobject.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/mediaobject/tst_mediaobject.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -201,9 +201,6 @@
 
 void tst_MediaObject::testPlayFromResource()
 {
-#ifdef Q_OS_SYMBIAN
-    QSKIP("Not implemented yet.", SkipAll);
-#else
     MediaObject media;
     media.setCurrentSource(QString(MEDIA_FILEPATH));
     QVERIFY(media.state() != Phonon::ErrorState);
@@ -214,7 +211,6 @@
     if (media.state() != Phonon::PlayingState)
         QTest::waitForSignal(&media, SIGNAL(stateChanged(Phonon::State, Phonon::State)), 10000);
     QCOMPARE(media.state(), Phonon::PlayingState);
-#endif
 }
 
 void tst_MediaObject::testPlayIllegalFile()
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/auto/moc/error-on-wrong-notify.h	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,53 @@
+/****************************************************************************
+**
+** 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>
+
+class ClassWithWrongNOTIFY : public QObject
+{
+    Q_OBJECT
+    Q_PROPERTY(int foo READ foo WRITE setFoo NOTIFY fooChanged)
+
+    int m_foo;
+public:
+    void setFoo(int i) { m_foo = i; }
+    int foo() { return m_foo; }
+};
+
--- a/tests/auto/moc/tst_moc.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/moc/tst_moc.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -492,6 +492,7 @@
     void warnOnVirtualSignal();
     void QTBUG5590_dummyProperty();
     void QTBUG12260_defaultTemplate();
+    void notifyError();
 signals:
     void sigWithUnsignedArg(unsigned foo);
     void sigWithSignedArg(signed foo);
@@ -1362,6 +1363,27 @@
     QVERIFY(QTBUG12260_defaultTemplate_Object::staticMetaObject.indexOfSlot("doAnotherThing(bool,bool)") != -1);
 }
 
+void tst_Moc::notifyError()
+{
+#ifdef MOC_CROSS_COMPILED
+    QSKIP("Not tested when cross-compiled", SkipAll);
+#endif
+#if defined(Q_OS_LINUX) && defined(Q_CC_GNU) && !defined(QT_NO_PROCESS)
+    QProcess proc;
+    proc.start("moc", QStringList(srcify("error-on-wrong-notify.h")));
+    QVERIFY(proc.waitForFinished());
+    QCOMPARE(proc.exitCode(), 1);
+    QCOMPARE(proc.exitStatus(), QProcess::NormalExit);
+    QByteArray mocOut = proc.readAllStandardOutput();
+    QVERIFY(mocOut.isEmpty());
+    QString mocError = QString::fromLocal8Bit(proc.readAllStandardError());
+    QCOMPARE(mocError, QString(SRCDIR) +
+        QString("/error-on-wrong-notify.h:52: Error: NOTIFY signal 'fooChanged' of property 'foo' does not exist in class ClassWithWrongNOTIFY.\n"));
+#else
+    QSKIP("Only tested on linux/gcc", SkipAll);
+#endif
+}
+
 
 QTEST_APPLESS_MAIN(tst_Moc)
 #include "tst_moc.moc"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/auto/qapplication/modal/base.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,62 @@
+/****************************************************************************
+**
+** 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 "base.h"
+
+base::base(QWidget *parent) :
+    QWidget(parent)
+{
+    m_timer = new QTimer(this);
+    m_modalStarted = false;
+    m_timer->setSingleShot(false);
+    connect(m_timer, SIGNAL(timeout()), this, SLOT(periodicTimer()));
+    m_timer->start(5000);
+}
+
+void base::periodicTimer()
+{
+    if(m_modalStarted)
+        exit(0);
+    m_modalDialog = new QDialog(this);
+    m_modalDialog->setModal(true);
+    m_modalDialog->show();
+    m_modalStarted = true;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/auto/qapplication/modal/base.h	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,64 @@
+/****************************************************************************
+**
+** 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 BASE_H
+#define BASE_H
+
+#include <QWidget>
+#include <QTimer>
+#include <QDialog>
+
+class base : public QWidget
+{
+Q_OBJECT
+    QTimer *m_timer;
+    bool m_modalStarted;
+    QDialog *m_modalDialog;
+public:
+    explicit base(QWidget *parent = 0);
+
+signals:
+
+public slots:
+    void periodicTimer();
+};
+
+#endif // BASE_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/auto/qapplication/modal/main.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,52 @@
+/****************************************************************************
+**
+** 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 <QtGui>
+
+#include <QApplication>
+#include "base.h"
+
+int main(int argc, char *argv[])
+{
+    QApplication app(argc, argv);
+    base *b = new base();
+    return app.exec();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/auto/qapplication/modal/modal.pro	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,8 @@
+TEMPLATE = app
+TARGET = 
+DEPENDPATH += .
+INCLUDEPATH += .
+SOURCES += main.cpp \
+    base.cpp
+DESTDIR = ./
+HEADERS += base.h
--- a/tests/auto/qapplication/qapplication.pro	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/qapplication/qapplication.pro	Mon Oct 04 01:19:32 2010 +0300
@@ -1,6 +1,7 @@
 TEMPLATE = subdirs
 SUBDIRS = test \
 	  desktopsettingsaware \
+          modal \
       wincmdline
 
 
--- a/tests/auto/qapplication/tst_qapplication.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/qapplication/tst_qapplication.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -146,6 +146,7 @@
 
     void symbianNeedForTraps();
     void symbianLeaveThroughMain();
+    void qtbug_12673();
 };
 
 class EventSpy : public QObject
@@ -2239,6 +2240,23 @@
 #endif
 }
 
+void tst_QApplication::qtbug_12673()
+{
+#ifdef Q_OS_SYMBIAN
+    QSKIP("This might not make sense in Symbian, but since I do not know how to test it I'll just skip it for now.", SkipAll);
+#else
+    QProcess testProcess;
+    QStringList arguments;
+#ifdef Q_OS_MAC
+    testProcess.start("modal/modal.app", arguments);
+#else
+    testProcess.start("modal/modal", arguments);
+#endif
+    QVERIFY(testProcess.waitForFinished(20000));
+    QCOMPARE(testProcess.exitStatus(), QProcess::NormalExit);
+#endif //  Q_OS_SYMBIAN
+}
+
 //QTEST_APPLESS_MAIN(tst_QApplication)
 int main(int argc, char *argv[])
 {
--- a/tests/auto/qdatastream/tst_qdatastream.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/qdatastream/tst_qdatastream.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -1820,7 +1820,7 @@
 #ifdef Q_OS_WINCE
     QSKIP("Test depends on more memory than available on Qt/CE", SkipAll);
 #endif
-    STREAM_IMPL(QIcon);
+    STREAM_IMPL(QPixmap);
 }
 
 void tst_QDataStream::stream_QIcon_data()
--- a/tests/auto/qdatetime/tst_qdatetime.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/qdatetime/tst_qdatetime.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -959,16 +959,30 @@
 #endif
     QDateTime upperBound;
     upperBound.setTime_t(buf2);
-    upperBound = upperBound.addSecs(1);
-
-    QVERIFY(lowerBound < upperBound);
+    // Note we must add 2 seconds here because time() may return up to
+    // 1 second difference from the more accurate method used by QDateTime::currentDateTime()
+    upperBound = upperBound.addSecs(2);
 
-    QVERIFY(lowerBound <= dt1);
-    QVERIFY(dt1 < upperBound);
-    QVERIFY(lowerBound <= dt2);
-    QVERIFY(dt2 < upperBound);
-    QVERIFY(lowerBound <= dt3);
-    QVERIFY(dt3 < upperBound);
+    QString details = QString("\n"
+        "lowerBound: %1\n"
+        "dt1:        %2\n"
+        "dt2:        %3\n"
+        "dt3:        %4\n"
+        "upperBound: %5\n")
+        .arg(lowerBound.toTime_t())
+        .arg(dt1.toTime_t())
+        .arg(dt2.toTime_t())
+        .arg(dt3.toTime_t())
+        .arg(upperBound.toTime_t());
+
+    QVERIFY2(lowerBound < upperBound, qPrintable(details));
+
+    QVERIFY2(lowerBound <= dt1, qPrintable(details));
+    QVERIFY2(dt1 < upperBound, qPrintable(details));
+    QVERIFY2(lowerBound <= dt2, qPrintable(details));
+    QVERIFY2(dt2 < upperBound, qPrintable(details));
+    QVERIFY2(lowerBound <= dt3, qPrintable(details));
+    QVERIFY2(dt3 < upperBound, qPrintable(details));
 
     QVERIFY(dt1.timeSpec() == Qt::LocalTime);
     QVERIFY(dt2.timeSpec() == Qt::LocalTime);
@@ -998,16 +1012,30 @@
 #endif
     QDateTime upperBound;
     upperBound.setTime_t(buf2);
-    upperBound = upperBound.addSecs(1);
-
-    QVERIFY(lowerBound < upperBound);
+    // Note we must add 2 seconds here because time() may return up to
+    // 1 second difference from the more accurate method used by QDateTime::currentDateTime()
+    upperBound = upperBound.addSecs(2);
 
-    QVERIFY(lowerBound <= dt1);
-    QVERIFY(dt1 < upperBound);
-    QVERIFY(lowerBound <= dt2);
-    QVERIFY(dt2 < upperBound);
-    QVERIFY(lowerBound <= dt3);
-    QVERIFY(dt3 < upperBound);
+    QString details = QString("\n"
+        "lowerBound: %1\n"
+        "dt1:        %2\n"
+        "dt2:        %3\n"
+        "dt3:        %4\n"
+        "upperBound: %5\n")
+        .arg(lowerBound.toTime_t())
+        .arg(dt1.toTime_t())
+        .arg(dt2.toTime_t())
+        .arg(dt3.toTime_t())
+        .arg(upperBound.toTime_t());
+
+    QVERIFY2(lowerBound < upperBound, qPrintable(details));
+
+    QVERIFY2(lowerBound <= dt1, qPrintable(details));
+    QVERIFY2(dt1 < upperBound, qPrintable(details));
+    QVERIFY2(lowerBound <= dt2, qPrintable(details));
+    QVERIFY2(dt2 < upperBound, qPrintable(details));
+    QVERIFY2(lowerBound <= dt3, qPrintable(details));
+    QVERIFY2(dt3 < upperBound, qPrintable(details));
 
     QVERIFY(dt1.timeSpec() == Qt::UTC);
     QVERIFY(dt2.timeSpec() == Qt::LocalTime);
--- a/tests/auto/qdbusinterface/tst_qdbusinterface.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/qdbusinterface/tst_qdbusinterface.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -70,18 +70,34 @@
 "      <arg direction=\"in\" type=\"v\" name=\"ping\" />\n"
 "      <arg direction=\"out\" type=\"v\" name=\"ping\" />\n"
 "    </method>\n"
+"    <method name=\"ping_invokable\" >\n"
+"      <arg direction=\"in\" type=\"v\" name=\"ping_invokable\" />\n"
+"      <arg direction=\"out\" type=\"v\" name=\"ping_invokable\" />\n"
+"    </method>\n"
 "    <method name=\"ping\" >\n"
 "      <arg direction=\"in\" type=\"v\" name=\"ping1\" />\n"
 "      <arg direction=\"in\" type=\"v\" name=\"ping2\" />\n"
 "      <arg direction=\"out\" type=\"v\" name=\"pong1\" />\n"
 "      <arg direction=\"out\" type=\"v\" name=\"pong2\" />\n"
 "    </method>\n"
+"    <method name=\"ping_invokable\" >\n"
+"      <arg direction=\"in\" type=\"v\" name=\"ping1_invokable\" />\n"
+"      <arg direction=\"in\" type=\"v\" name=\"ping2_invokable\" />\n"
+"      <arg direction=\"out\" type=\"v\" name=\"pong1_invokable\" />\n"
+"      <arg direction=\"out\" type=\"v\" name=\"pong2_invokable\" />\n"
+"    </method>\n"
 "    <method name=\"ping\" >\n"
 "      <arg direction=\"in\" type=\"ai\" name=\"ping\" />\n"
 "      <arg direction=\"out\" type=\"ai\" name=\"ping\" />\n"
 "      <annotation name=\"com.trolltech.QtDBus.QtTypeName.In0\" value=\"QList&lt;int&gt;\"/>\n"
 "      <annotation name=\"com.trolltech.QtDBus.QtTypeName.Out0\" value=\"QList&lt;int&gt;\"/>\n"
 "    </method>\n"
+"    <method name=\"ping_invokable\" >\n"
+"      <arg direction=\"in\" type=\"ai\" name=\"ping_invokable\" />\n"
+"      <arg direction=\"out\" type=\"ai\" name=\"ping_invokable\" />\n"
+"      <annotation name=\"com.trolltech.QtDBus.QtTypeName.In0\" value=\"QList&lt;int&gt;\"/>\n"
+"      <annotation name=\"com.trolltech.QtDBus.QtTypeName.Out0\" value=\"QList&lt;int&gt;\"/>\n"
+"    </method>\n"
 "  </interface>\n"
         "")
     Q_PROPERTY(int prop1 READ prop1 WRITE setProp1)
@@ -120,6 +136,20 @@
         m_complexProp = value;
     }
 
+    Q_INVOKABLE void ping_invokable(QDBusMessage msg)
+    {
+        QDBusConnection sender = QDBusConnection::sender();
+        if (!sender.isConnected())
+            exit(1);
+
+        ++callCount;
+        callArgs = msg.arguments();
+
+        msg.setDelayedReply(true);
+        if (!sender.send(msg.createReply(callArgs)))
+            exit(1);
+    }
+
 public slots:
 
     void ping(QDBusMessage msg)
@@ -220,6 +250,7 @@
 
     con.registerObject("/", &obj, QDBusConnection::ExportAllProperties
                        | QDBusConnection::ExportAllSlots
+                       | QDBusConnection::ExportAllInvokables
                        | QDBusConnection::ExportChildObjects);
 }
 
@@ -283,7 +314,7 @@
 
     const QMetaObject *mo = iface.metaObject();
 
-    QCOMPARE(mo->methodCount() - mo->methodOffset(), 4);
+    QCOMPARE(mo->methodCount() - mo->methodOffset(), 7);
     QVERIFY(mo->indexOfSignal(TEST_SIGNAL_NAME "(QString)") != -1);
 
     QCOMPARE(mo->propertyCount() - mo->propertyOffset(), 2);
@@ -298,6 +329,8 @@
                          TEST_INTERFACE_NAME);
 
     MyObject::callCount = 0;
+   
+    // call a SLOT method
     QDBusMessage reply = iface.call("ping", qVariantFromValue(QDBusVariant("foo")));
     QCOMPARE(MyObject::callCount, 1);
     QCOMPARE(reply.type(), QDBusMessage::ReplyMessage);
@@ -315,6 +348,25 @@
     dv = qdbus_cast<QDBusVariant>(v);
     QCOMPARE(dv.variant().type(), QVariant::String);
     QCOMPARE(dv.variant().toString(), QString("foo"));
+    
+    // call an INVOKABLE method
+    reply = iface.call("ping_invokable", qVariantFromValue(QDBusVariant("bar")));
+    QCOMPARE(MyObject::callCount, 2);
+    QCOMPARE(reply.type(), QDBusMessage::ReplyMessage);
+
+    // verify what the callee received
+    QCOMPARE(MyObject::callArgs.count(), 1);
+    v = MyObject::callArgs.at(0);
+    dv = qdbus_cast<QDBusVariant>(v);
+    QCOMPARE(dv.variant().type(), QVariant::String);
+    QCOMPARE(dv.variant().toString(), QString("bar"));
+
+    // verify reply
+    QCOMPARE(reply.arguments().count(), 1);
+    v = reply.arguments().at(0);
+    dv = qdbus_cast<QDBusVariant>(v);
+    QCOMPARE(dv.variant().type(), QVariant::String);
+    QCOMPARE(dv.variant().toString(), QString("bar"));
 }
 
 void tst_QDBusInterface::invokeMethod()
@@ -323,8 +375,9 @@
     QDBusInterface iface(QDBusConnection::sessionBus().baseService(), QLatin1String("/"),
                          TEST_INTERFACE_NAME);
 
-    // make the call without a return type
     MyObject::callCount = 0;
+    
+    // make the SLOT call without a return type
     QDBusVariant arg("foo");
     QVERIFY(QMetaObject::invokeMethod(&iface, "ping", Q_ARG(QDBusVariant, arg)));
     QCOMPARE(MyObject::callCount, 1);
@@ -335,6 +388,18 @@
     QDBusVariant dv = qdbus_cast<QDBusVariant>(v);
     QCOMPARE(dv.variant().type(), QVariant::String);
     QCOMPARE(dv.variant().toString(), QString("foo"));
+    
+    // make the INVOKABLE call without a return type
+    QDBusVariant arg2("bar");
+    QVERIFY(QMetaObject::invokeMethod(&iface, "ping_invokable", Q_ARG(QDBusVariant, arg2)));
+    QCOMPARE(MyObject::callCount, 2);
+
+    // verify what the callee received
+    QCOMPARE(MyObject::callArgs.count(), 1);
+    v = MyObject::callArgs.at(0);
+    dv = qdbus_cast<QDBusVariant>(v);
+    QCOMPARE(dv.variant().type(), QVariant::String);
+    QCOMPARE(dv.variant().toString(), QString("bar"));
 }
 
 void tst_QDBusInterface::invokeMethodWithReturn()
@@ -343,10 +408,11 @@
     QDBusInterface iface(QDBusConnection::sessionBus().baseService(), QLatin1String("/"),
                          TEST_INTERFACE_NAME);
 
-    // make the call without a return type
     MyObject::callCount = 0;
+    QDBusVariant retArg;
+
+    // make the SLOT call without a return type
     QDBusVariant arg("foo");
-    QDBusVariant retArg;
     QVERIFY(QMetaObject::invokeMethod(&iface, "ping", Q_RETURN_ARG(QDBusVariant, retArg), Q_ARG(QDBusVariant, arg)));
     QCOMPARE(MyObject::callCount, 1);
 
@@ -359,6 +425,21 @@
 
     // verify that we got the reply as expected
     QCOMPARE(retArg.variant(), arg.variant());
+    
+    // make the INVOKABLE call without a return type
+    QDBusVariant arg2("bar");
+    QVERIFY(QMetaObject::invokeMethod(&iface, "ping_invokable", Q_RETURN_ARG(QDBusVariant, retArg), Q_ARG(QDBusVariant, arg2)));
+    QCOMPARE(MyObject::callCount, 2);
+
+    // verify what the callee received
+    QCOMPARE(MyObject::callArgs.count(), 1);
+    v = MyObject::callArgs.at(0);
+    dv = qdbus_cast<QDBusVariant>(v);
+    QCOMPARE(dv.variant().type(), QVariant::String);
+    QCOMPARE(dv.variant().toString(), arg2.variant().toString());
+
+    // verify that we got the reply as expected
+    QCOMPARE(retArg.variant(), arg2.variant());
 }
 
 void tst_QDBusInterface::invokeMethodWithMultiReturn()
@@ -367,10 +448,11 @@
     QDBusInterface iface(QDBusConnection::sessionBus().baseService(), QLatin1String("/"),
                          TEST_INTERFACE_NAME);
 
-    // make the call without a return type
     MyObject::callCount = 0;
+    QDBusVariant retArg, retArg2;
+    
+    // make the SLOT call without a return type
     QDBusVariant arg("foo"), arg2("bar");
-    QDBusVariant retArg, retArg2;
     QVERIFY(QMetaObject::invokeMethod(&iface, "ping",
                                       Q_RETURN_ARG(QDBusVariant, retArg),
                                       Q_ARG(QDBusVariant, arg),
@@ -393,6 +475,31 @@
     // verify that we got the replies as expected
     QCOMPARE(retArg.variant(), arg.variant());
     QCOMPARE(retArg2.variant(), arg2.variant());
+    
+    // make the INVOKABLE call without a return type
+    QDBusVariant arg3("hello"), arg4("world");
+    QVERIFY(QMetaObject::invokeMethod(&iface, "ping_invokable",
+                                      Q_RETURN_ARG(QDBusVariant, retArg),
+                                      Q_ARG(QDBusVariant, arg3),
+                                      Q_ARG(QDBusVariant, arg4),
+                                      Q_ARG(QDBusVariant&, retArg2)));
+    QCOMPARE(MyObject::callCount, 2);
+
+    // verify what the callee received
+    QCOMPARE(MyObject::callArgs.count(), 2);
+    v = MyObject::callArgs.at(0);
+    dv = qdbus_cast<QDBusVariant>(v);
+    QCOMPARE(dv.variant().type(), QVariant::String);
+    QCOMPARE(dv.variant().toString(), arg3.variant().toString());
+
+    v = MyObject::callArgs.at(1);
+    dv = qdbus_cast<QDBusVariant>(v);
+    QCOMPARE(dv.variant().type(), QVariant::String);
+    QCOMPARE(dv.variant().toString(), arg4.variant().toString());
+
+    // verify that we got the replies as expected
+    QCOMPARE(retArg.variant(), arg3.variant());
+    QCOMPARE(retArg2.variant(), arg4.variant());
 }
 
 void tst_QDBusInterface::invokeMethodWithComplexReturn()
@@ -401,10 +508,11 @@
     QDBusInterface iface(QDBusConnection::sessionBus().baseService(), QLatin1String("/"),
                          TEST_INTERFACE_NAME);
 
-    // make the call without a return type
     MyObject::callCount = 0;
+    QList<int> retArg;
+    
+    // make the SLOT call without a return type
     QList<int> arg = QList<int>() << 42 << -47;
-    QList<int> retArg;
     QVERIFY(QMetaObject::invokeMethod(&iface, "ping", Q_RETURN_ARG(QList<int>, retArg), Q_ARG(QList<int>, arg)));
     QCOMPARE(MyObject::callCount, 1);
 
@@ -416,6 +524,20 @@
 
     // verify that we got the reply as expected
     QCOMPARE(retArg, arg);
+    
+    // make the INVOKABLE call without a return type
+    QList<int> arg2 = QList<int>() << 24 << -74;
+    QVERIFY(QMetaObject::invokeMethod(&iface, "ping", Q_RETURN_ARG(QList<int>, retArg), Q_ARG(QList<int>, arg2)));
+    QCOMPARE(MyObject::callCount, 2);
+
+    // verify what the callee received
+    QCOMPARE(MyObject::callArgs.count(), 1);
+    v = MyObject::callArgs.at(0);
+    QCOMPARE(v.userType(), qMetaTypeId<QDBusArgument>());
+    QCOMPARE(qdbus_cast<QList<int> >(v), arg2);
+
+    // verify that we got the reply as expected
+    QCOMPARE(retArg, arg2);
 }
 
 void tst_QDBusInterface::signal()
--- a/tests/auto/qdbusthreading/tst_qdbusthreading.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/qdbusthreading/tst_qdbusthreading.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -70,7 +70,12 @@
     QSemaphore sem1, sem2;
     volatile bool success;
     QEventLoop *loop;
-    const char *functionSpy;
+    enum FunctionSpy {
+        NoMethod = 0,
+        Adaptor_method,
+        Object_method
+    } functionSpy;
+
     QThread *threadSpy;
     int signalSpy;
 
@@ -127,7 +132,7 @@
 public Q_SLOTS:
     void method()
     {
-        tst_QDBusThreading::self()->functionSpy = Q_FUNC_INFO;
+        tst_QDBusThreading::self()->functionSpy = tst_QDBusThreading::Adaptor_method;
         tst_QDBusThreading::self()->threadSpy = QThread::currentThread();
         emit signal();
     }
@@ -155,7 +160,7 @@
 public Q_SLOTS:
     void method()
     {
-        tst_QDBusThreading::self()->functionSpy = Q_FUNC_INFO;
+        tst_QDBusThreading::self()->functionSpy = tst_QDBusThreading::Object_method;
         tst_QDBusThreading::self()->threadSpy = QThread::currentThread();
         emit signal();
         deleteLater();
@@ -198,7 +203,7 @@
 static const char myConnectionName[] = "connection";
 
 tst_QDBusThreading::tst_QDBusThreading()
-    : loop(0), functionSpy(0), threadSpy(0)
+    : loop(0), functionSpy(NoMethod), threadSpy(0)
 {
     _self = this;
     QCoreApplication::instance()->thread()->setObjectName("Main thread");
@@ -420,22 +425,22 @@
     QTest::qWait(100);
     QCOMPARE(signalSpy, 0);
 
-    functionSpy = 0;
+    functionSpy = NoMethod;
     threadSpy = 0;
     QDBusReply<void> reply = iface.call("method");
     QVERIFY(reply.isValid());
-    QCOMPARE(functionSpy, "void Object::method()");
+    QCOMPARE(functionSpy, Object_method);
     QCOMPARE(threadSpy, th);
 
     QTest::qWait(100);
     QCOMPARE(signalSpy, 1);
 
     sem2.acquire();             // the object is gone
-    functionSpy = 0;
+    functionSpy = NoMethod;
     threadSpy = 0;
     reply = iface.call("method");
     QVERIFY(!reply.isValid());
-    QCOMPARE(functionSpy, (const char*)0);
+    QCOMPARE(functionSpy, NoMethod);
     QCOMPARE(threadSpy, (QThread*)0);
 }
 
@@ -468,36 +473,36 @@
     connect(&adaptor, SIGNAL(signal()), SLOT(signalSpySlot()));
     QCOMPARE(signalSpy, 0);
 
-    functionSpy = 0;
+    functionSpy = NoMethod;
     threadSpy = 0;
     QDBusReply<void> reply = adaptor.call("method");
     QVERIFY(reply.isValid());
-    QCOMPARE(functionSpy, "void Adaptor::method()");
+    QCOMPARE(functionSpy, Adaptor_method);
     QCOMPARE(threadSpy, th);
 
     QTest::qWait(100);
     QCOMPARE(signalSpy, 1);
 
-    functionSpy = 0;
+    functionSpy = NoMethod;
     threadSpy = 0;
     reply = object.call("method");
     QVERIFY(reply.isValid());
-    QCOMPARE(functionSpy, "void Object::method()");
+    QCOMPARE(functionSpy, Object_method);
     QCOMPARE(threadSpy, th);
 
     QTest::qWait(100);
     QCOMPARE(signalSpy, 1);
 
     sem2.acquire();             // the object is gone
-    functionSpy = 0;
+    functionSpy = NoMethod;
     threadSpy = 0;
     reply = adaptor.call("method");
     QVERIFY(!reply.isValid());
-    QCOMPARE(functionSpy, (const char*)0);
+    QCOMPARE(functionSpy, NoMethod);
     QCOMPARE(threadSpy, (QThread*)0);
     reply = object.call("method");
     QVERIFY(!reply.isValid());
-    QCOMPARE(functionSpy, (const char*)0);
+    QCOMPARE(functionSpy, NoMethod);
     QCOMPARE(threadSpy, (QThread*)0);
 }
 
--- a/tests/auto/qdom/qdom.pro	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/qdom/qdom.pro	Mon Oct 04 01:19:32 2010 +0300
@@ -9,7 +9,9 @@
    addFiles.path = .
    DEPLOYMENT += addFiles
 
-   DEPLOYMENT_PLUGIN += qcncodecs qjpcodecs qkrcodecs qtwcodecs
+   wince*|qt_not_deployed {
+       DEPLOYMENT_PLUGIN += qcncodecs qjpcodecs qkrcodecs qtwcodecs
+   }
    !symbian:DEFINES += SRCDIR=\\\"\\\"
 }
 else {
--- a/tests/auto/qdom/tst_qdom.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/qdom/tst_qdom.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -1776,6 +1776,7 @@
     QDomImplementation::setInvalidDataPolicy(QDomImplementation::ReturnNullNode); 
     QDomDocument docImport;
 
+    QCOMPARE(docImport.setContent(QLatin1String("<a:>text</a:>"), true), false);
     QVERIFY(docImport.setContent(QLatin1String("<?xml version=\"1.0\"?><e/>")));
 }
 
--- a/tests/auto/qfile/qfile.pro	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/qfile/qfile.pro	Mon Oct 04 01:19:32 2010 +0300
@@ -1,5 +1,5 @@
 TEMPLATE = subdirs
-wince*:{
+wince*|symbian:{
   SUBDIRS = test
 } else {
   SUBDIRS = test stdinprocess
--- a/tests/auto/qfileinfo/qfileinfo.pro	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/qfileinfo/qfileinfo.pro	Mon Oct 04 01:19:32 2010 +0300
@@ -16,6 +16,7 @@
 symbian {
     TARGET.CAPABILITY=AllFiles
     LIBS *= -lefsrv
+    INCLUDEPATH *= $$MW_LAYER_SYSTEMINCLUDE  # Needed for e32svr.h in S^3 envs
     }
 
 # support for running test from shadow build directory
--- a/tests/auto/qgl/tst_qgl.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/qgl/tst_qgl.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -847,6 +847,7 @@
     scene.addWidget(widget)->setPos(0, 0);
 
     QGraphicsView view(&scene);
+    view.setBackgroundBrush(Qt::white);
 #ifdef Q_WS_QWS
     view.setWindowFlags(Qt::FramelessWindowHint);
 #endif
@@ -1835,7 +1836,7 @@
     // Sample pixels in a grid pattern which avoids false failures due to
     // off-by-one pixel errors on some buggy GL implementations
     for (int x = 2; x < reference.width(); x += 5) {
-        for (int y = 2; y < reference.width(); y += 5) {
+        for (int y = 2; y < reference.height(); y += 5) {
             QFUZZY_COMPARE_PIXELS(widgetFB.pixel(x, y), reference.pixel(x, y));
         }
     }
@@ -2252,5 +2253,30 @@
 #endif
 }
 
-QTEST_MAIN(tst_QGL)
+class tst_QGLDummy : public QObject
+{
+Q_OBJECT
+
+public:
+    tst_QGLDummy() {}
+
+private slots:
+    void qglSkipTests() {
+	QSKIP("QGL not supported on this system.", SkipAll);
+    }
+};
+
+int main(int argc, char **argv)
+{
+    QApplication app(argc, argv);
+    QTEST_DISABLE_KEYPAD_NAVIGATION \
+    QGLWidget glWidget;
+    if (!glWidget.isValid()) {
+	tst_QGLDummy tc;
+	return QTest::qExec(&tc, argc, argv);
+    }
+    tst_QGL tc;
+    return QTest::qExec(&tc, argc, argv);
+}
+
 #include "tst_qgl.moc"
--- a/tests/auto/qgraphicseffect/tst_qgraphicseffect.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/qgraphicseffect/tst_qgraphicseffect.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -183,20 +183,20 @@
     QGraphicsItem *item = new QGraphicsRectItem(0, 0, 10, 10);
     item->setGraphicsEffect(effect);
     QVERIFY(effect->source());
-    QCOMPARE(effect->source()->graphicsItem(), item);
+    QCOMPARE(effect->source()->graphicsItem(), (const QGraphicsItem*)item);
     QVERIFY(effect->m_sourceChangedFlags & QGraphicsEffect::SourceAttached);
     effect->reset();
 
     // Make sure disabling/enabling the effect doesn't change the source.
     effect->setEnabled(false);
     QVERIFY(effect->source());
-    QCOMPARE(effect->source()->graphicsItem(), item);
+    QCOMPARE(effect->source()->graphicsItem(), (const QGraphicsItem*)item);
     QVERIFY(!effect->m_sourceChangedFlags);
     effect->reset();
 
     effect->setEnabled(true);
     QVERIFY(effect->source());
-    QCOMPARE(effect->source()->graphicsItem(), item);
+    QCOMPARE(effect->source()->graphicsItem(), (const QGraphicsItem*)item);
     QVERIFY(!effect->m_sourceChangedFlags);
     effect->reset();
 
@@ -210,7 +210,7 @@
     item->setGraphicsEffect(effect);
     QPointer<QGraphicsEffectSource> source = effect->source();
     QVERIFY(source);
-    QCOMPARE(source->graphicsItem(), item);
+    QCOMPARE(source->graphicsItem(), (const QGraphicsItem*)item);
     delete item;
     QVERIFY(!effect);
     QVERIFY(!source);
--- a/tests/auto/qgraphicseffectsource/tst_qgraphicseffectsource.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/qgraphicseffectsource/tst_qgraphicseffectsource.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -209,7 +209,7 @@
 void tst_QGraphicsEffectSource::graphicsItem()
 {
     QVERIFY(effect->source());
-    QCOMPARE(effect->source()->graphicsItem(), item);
+    QCOMPARE(effect->source()->graphicsItem(), (const QGraphicsItem*)item);
 }
 
 void tst_QGraphicsEffectSource::styleOption()
@@ -237,7 +237,7 @@
     CustomEffect *anotherEffect = new CustomEffect;
     pixmapItem->setGraphicsEffect(anotherEffect);
     QVERIFY(anotherEffect->source());
-    QCOMPARE(anotherEffect->source()->graphicsItem(), static_cast<QGraphicsItem *>(pixmapItem));
+    QCOMPARE(anotherEffect->source()->graphicsItem(), static_cast<const QGraphicsItem *>(pixmapItem));
     QVERIFY(anotherEffect->source()->isPixmap());
     delete pixmapItem;
 }
--- a/tests/auto/qgraphicsgridlayout/tst_qgraphicsgridlayout.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/qgraphicsgridlayout/tst_qgraphicsgridlayout.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -107,12 +107,13 @@
     void avoidRecursionInInsertItem();
     void styleInfoLeak();
     void task236367_maxSizeHint();
+    void heightForWidth();
 };
 
 class RectWidget : public QGraphicsWidget
 {
 public:
-    RectWidget(QGraphicsItem *parent = 0) : QGraphicsWidget(parent){}
+    RectWidget(QGraphicsItem *parent = 0) : QGraphicsWidget(parent), m_fnConstraint(0) {}
 
     void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
     {
@@ -125,9 +126,12 @@
 
     QSizeF sizeHint(Qt::SizeHint which, const QSizeF &constraint = QSizeF()) const
     {
-        if (m_sizeHints[which].isValid()) {
+        if (constraint.width() < 0 && constraint.height() < 0 && m_sizeHints[which].isValid()) {
             return m_sizeHints[which];
         }
+        if (m_fnConstraint) {
+            return m_fnConstraint(which, constraint);
+        }
         return QGraphicsWidget::sizeHint(which, constraint);
     }
 
@@ -136,7 +140,13 @@
         updateGeometry();
     }
 
+    void setConstraintFunction(QSizeF (*fnConstraint)(Qt::SizeHint, const QSizeF &)) {
+        m_fnConstraint = fnConstraint;
+    }
+
     QSizeF m_sizeHints[Qt::NSizeHints];
+    QSizeF (*m_fnConstraint)(Qt::SizeHint, const QSizeF &);
+
 };
 
 struct ItemDesc
@@ -146,7 +156,8 @@
       m_rowSpan(1),
       m_colSpan(1),
       m_sizePolicy(QSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred)),
-      m_align(0)
+      m_align(0),
+      m_fnConstraint(0)
     {
     }
 
@@ -213,8 +224,20 @@
         return (*this);
     }
 
+    ItemDesc &heightForWidth(QSizeF (*fnConstraint)(Qt::SizeHint, const QSizeF &)) {
+        m_fnConstraint = fnConstraint;
+        m_constraintOrientation = Qt::Vertical;
+        return (*this);
+    }
+
     void apply(QGraphicsGridLayout *layout, QGraphicsWidget *item) {
-        item->setSizePolicy(m_sizePolicy);
+        QSizePolicy sp = m_sizePolicy;
+        if (m_fnConstraint) {
+            sp.setHeightForWidth(m_constraintOrientation == Qt::Vertical);
+            //sp.setWidthForHeight(m_constraintOrientation == Qt::Horizontal);
+        }
+
+        item->setSizePolicy(sp);
         for (int i = 0; i < Qt::NSizeHints; ++i) {
             if (!m_sizes[i].isValid())
                 continue;
@@ -233,6 +256,7 @@
                 break;
             }
         }
+
         layout->addItem(item, m_pos.first, m_pos.second, m_rowSpan, m_colSpan);
         layout->setAlignment(item, m_align);
     }
@@ -240,6 +264,7 @@
     void apply(QGraphicsGridLayout *layout, RectWidget *item) {
         for (int i = 0; i < Qt::NSizeHints; ++i)
             item->setSizeHint((Qt::SizeHint)i, m_sizeHints[i]);
+        item->setConstraintFunction(m_fnConstraint);
         apply(layout, static_cast<QGraphicsWidget*>(item));
     }
 
@@ -251,6 +276,9 @@
     QSizeF m_sizeHints[Qt::NSizeHints];
     QSizeF m_sizes[Qt::NSizeHints];
     Qt::Alignment m_align;
+
+    Qt::Orientation m_constraintOrientation;
+    QSizeF (*m_fnConstraint)(Qt::SizeHint, const QSizeF &);
 };
 
 typedef QList<ItemDesc> ItemList;
@@ -485,12 +513,12 @@
     widget->resize(widget->effectiveSizeHint(Qt::MaximumSize));
     QApplication::processEvents();
 
-    QCOMPARE(layout->itemAt(0,0)->geometry(), QRectF(0,    0,  50,  25));
-    QCOMPARE(layout->itemAt(1,0)->geometry(), QRectF(0,   25,  50,  25));
-    QCOMPARE(layout->itemAt(0,1)->geometry(), QRectF(125,  0,  50,  25));
-    QCOMPARE(layout->itemAt(1,1)->geometry(), QRectF(125, 25,  50,  25));
-    QCOMPARE(layout->itemAt(0,2)->geometry(), QRectF(250,  0,  50,  25));
-    QCOMPARE(layout->itemAt(1,2)->geometry(), QRectF(250, 25,  50,  25));
+    QCOMPARE(layout->itemAt(0,0)->geometry(), QRectF(0,    0,  50,  50));
+    QCOMPARE(layout->itemAt(1,0)->geometry(), QRectF(0,   50,  50,  50));
+    QCOMPARE(layout->itemAt(0,1)->geometry(), QRectF(125,  0,  50,  50));
+    QCOMPARE(layout->itemAt(1,1)->geometry(), QRectF(125, 50,  50,  50));
+    QCOMPARE(layout->itemAt(0,2)->geometry(), QRectF(250,  0,  50,  50));
+    QCOMPARE(layout->itemAt(1,2)->geometry(), QRectF(250, 50,  50,  50));
 
     delete widget;
 }
@@ -544,12 +572,12 @@
       | HCenter  |   Right    |   Left  |
       +---------------------------------+
     */
-    QCOMPARE(layout->itemAt(0,0)->geometry(), QRectF(0,   0,   50,  25));
-    QCOMPARE(layout->itemAt(1,0)->geometry(), QRectF(25,  26,  50,  25));   // item is king
-    QCOMPARE(layout->itemAt(0,1)->geometry(), QRectF(126,  0,  50,  25));
-    QCOMPARE(layout->itemAt(1,1)->geometry(), QRectF(151, 26,  50,  25));   // item is king
-    QCOMPARE(layout->itemAt(0,2)->geometry(), QRectF(252,  0,  50,  25));
-    QCOMPARE(layout->itemAt(1,2)->geometry(), QRectF(202, 26,  50,  25));   // item is king
+    QCOMPARE(layout->itemAt(0,0)->geometry(), QRectF(0,   0,   50,  50));
+    QCOMPARE(layout->itemAt(1,0)->geometry(), QRectF(25,  51,  50,  50));   // item is king
+    QCOMPARE(layout->itemAt(0,1)->geometry(), QRectF(126,  0,  50,  50));
+    QCOMPARE(layout->itemAt(1,1)->geometry(), QRectF(151, 51,  50,  50));   // item is king
+    QCOMPARE(layout->itemAt(0,2)->geometry(), QRectF(252,  0,  50,  50));
+    QCOMPARE(layout->itemAt(1,2)->geometry(), QRectF(202, 51,  50,  50));   // item is king
 
     delete widget;
 }
@@ -2116,6 +2144,17 @@
     delete widget;
 }
 
+static QSizeF hfw1(Qt::SizeHint, const QSizeF &constraint)
+{
+    QSizeF result(constraint);
+    if (constraint.width() < 0 && constraint.height() < 0) {
+        return QSizeF(50, 400);
+    } else if (constraint.width() >= 0) {
+        result.setHeight(20000./constraint.width());
+    }
+    return result;
+}
+
 void tst_QGraphicsGridLayout::geometries_data()
 {
 
@@ -2145,6 +2184,186 @@
                                 << QRectF(0, 0, 60,10) << QRectF(0, 10, 60,10)
                             );
 
+    // change layout height and verify
+    QTest::newRow("hfw-h401") << (ItemList()
+                                    << ItemDesc(0,0)
+                                        .minSize(QSizeF(1,1))
+                                        .preferredSize(QSizeF(50,10))
+                                        .maxSize(QSizeF(100, 100))
+                                    << ItemDesc(0,1)
+                                        .minSize(QSizeF(1,1))
+                                        .preferredSize(QSizeF(50,10))
+                                        .maxSize(QSizeF(100, 100))
+                                    << ItemDesc(1,0)
+                                        .minSize(QSizeF(1,1))
+                                        .preferredSize(QSizeF(50,10))
+                                        .maxSize(QSizeF(100, 100))
+                                    << ItemDesc(1,1)
+                                        .minSize(QSizeF(40,40))
+                                        .preferredSize(QSizeF(50,400))
+                                        .maxSize(QSizeF(500, 500))
+                                        .heightForWidth(hfw1)
+                                )
+                            << QSizeF(100, 401)
+                            << (RectList()
+                                << QRectF(0, 0, 50,  1) << QRectF(50, 0, 50,  1)
+                                << QRectF(0, 1, 50,100) << QRectF(50, 1, 50,400)
+                            );
+
+
+    QTest::newRow("hfw-h408") << (ItemList()
+                                    << ItemDesc(0,0)
+                                        .minSize(QSizeF(1,1))
+                                        .preferredSize(QSizeF(50,10))
+                                        .maxSize(QSizeF(100, 100))
+                                    << ItemDesc(0,1)
+                                        .minSize(QSizeF(1,1))
+                                        .preferredSize(QSizeF(50,10))
+                                        .maxSize(QSizeF(100, 100))
+                                    << ItemDesc(1,0)
+                                        .minSize(QSizeF(1,1))
+                                        .preferredSize(QSizeF(50,10))
+                                        .maxSize(QSizeF(100, 100))
+                                    << ItemDesc(1,1)
+                                        .minSize(QSizeF(40,40))
+                                        .preferredSize(QSizeF(50,400))
+                                        .maxSize(QSizeF(500, 500))
+                                        .heightForWidth(hfw1)
+                                )
+                            << QSizeF(100, 408)
+                            << (RectList()
+                                << QRectF(0, 0, 50,  8) << QRectF(50,  0, 50,  8)
+                                << QRectF(0, 8, 50,100) << QRectF(50,  8, 50,400)
+                            );
+
+    QTest::newRow("hfw-h410") << (ItemList()
+                                    << ItemDesc(0,0)
+                                        .minSize(QSizeF(1,1))
+                                        .preferredSize(QSizeF(50,10))
+                                        .maxSize(QSizeF(100, 100))
+                                    << ItemDesc(0,1)
+                                        .minSize(QSizeF(1,1))
+                                        .preferredSize(QSizeF(50,10))
+                                        .maxSize(QSizeF(100, 100))
+                                    << ItemDesc(1,0)
+                                        .minSize(QSizeF(1,1))
+                                        .preferredSize(QSizeF(50,10))
+                                        .maxSize(QSizeF(100, 100))
+                                    << ItemDesc(1,1)
+                                        .minSize(QSizeF(40,40))
+                                        .preferredSize(QSizeF(50,400))
+                                        .maxSize(QSizeF(500, 500))
+                                        .heightForWidth(hfw1)
+                                )
+                            << QSizeF(100, 410)
+                            << (RectList()
+                                << QRectF(0, 0, 50,10) << QRectF(50, 0, 50,10)
+                                << QRectF(0, 10, 50,100) << QRectF(50, 10, 50,400)
+                            );
+
+    QTest::newRow("hfw-h470") << (ItemList()
+                                    << ItemDesc(0,0)
+                                        .minSize(QSizeF(1,1))
+                                        .preferredSize(QSizeF(50,10))
+                                        .maxSize(QSizeF(100, 100))
+                                    << ItemDesc(0,1)
+                                        .minSize(QSizeF(1,1))
+                                        .preferredSize(QSizeF(50,10))
+                                        .maxSize(QSizeF(100, 100))
+                                    << ItemDesc(1,0)
+                                        .minSize(QSizeF(1,1))
+                                        .preferredSize(QSizeF(50,10))
+                                        .maxSize(QSizeF(100, 100))
+                                    << ItemDesc(1,1)
+                                        .minSize(QSizeF(40,40))
+                                        .preferredSize(QSizeF(50,400))
+                                        .maxSize(QSizeF(500, 500))
+                                        .heightForWidth(hfw1)
+                                )
+                            << QSizeF(100, 470)
+                            << (RectList()
+                                << QRectF(0, 0, 50,70) << QRectF(50, 0, 50,70)
+                                << QRectF(0, 70, 50,100) << QRectF(50, 70, 50,400)
+                            );
+
+
+    // change layout width and verify
+    QTest::newRow("hfw-w100") << (ItemList()
+                                    << ItemDesc(0,0)
+                                        .minSize(QSizeF(1,1))
+                                        .preferredSize(QSizeF(50,10))
+                                        .maxSize(QSizeF(100, 100))
+                                    << ItemDesc(0,1)
+                                        .minSize(QSizeF(1,1))
+                                        .preferredSize(QSizeF(50,10))
+                                        .maxSize(QSizeF(100, 100))
+                                    << ItemDesc(1,0)
+                                        .minSize(QSizeF(1,1))
+                                        .preferredSize(QSizeF(50,10))
+                                        .maxSize(QSizeF(100, 100))
+                                    << ItemDesc(1,1)
+                                        .minSize(QSizeF(40,40))
+                                        .preferredSize(QSizeF(50,400))
+                                        .maxSize(QSizeF(5000, 5000))
+                                        .heightForWidth(hfw1)
+                                )
+                            << QSizeF(100, 401)
+                            << (RectList()
+                                << QRectF( 0, 0,  50,   1) << QRectF( 50,  0,  50,   1)
+                                << QRectF( 0, 1,  50, 100) << QRectF( 50,  1,  50, 400)
+                            );
+
+    QTest::newRow("hfw-w160") << (ItemList()
+                                    << ItemDesc(0,0)
+                                        .minSize(QSizeF(1,1))
+                                        .preferredSize(QSizeF(50,10))
+                                        .maxSize(QSizeF(100, 100))
+                                    << ItemDesc(0,1)
+                                        .minSize(QSizeF(1,1))
+                                        .preferredSize(QSizeF(50,10))
+                                        .maxSize(QSizeF(100, 100))
+                                    << ItemDesc(1,0)
+                                        .minSize(QSizeF(1,1))
+                                        .preferredSize(QSizeF(50,10))
+                                        .maxSize(QSizeF(100, 100))
+                                    << ItemDesc(1,1)
+                                        .minSize(QSizeF(40,40))
+                                        .preferredSize(QSizeF(50,400))
+                                        .maxSize(QSizeF(5000, 5000))
+                                        .heightForWidth(hfw1)
+                                )
+                            << QSizeF(160, 401)
+                            << (RectList()
+                                << QRectF( 0,   0,  80, 100) << QRectF( 80,   0,  80, 100)
+                                << QRectF( 0, 100,  80, 100) << QRectF( 80, 100,  80, 250)
+                            );
+
+
+    QTest::newRow("hfw-w500") << (ItemList()
+                                    << ItemDesc(0,0)
+                                        .minSize(QSizeF(1,1))
+                                        .preferredSize(QSizeF(50,10))
+                                        .maxSize(QSizeF(100, 100))
+                                    << ItemDesc(0,1)
+                                        .minSize(QSizeF(1,1))
+                                        .preferredSize(QSizeF(50,10))
+                                        .maxSize(QSizeF(100, 100))
+                                    << ItemDesc(1,0)
+                                        .minSize(QSizeF(1,1))
+                                        .preferredSize(QSizeF(50,10))
+                                        .maxSize(QSizeF(100, 100))
+                                    << ItemDesc(1,1)
+                                        .minSize(QSizeF(40,40))
+                                        .preferredSize(QSizeF(50,400))
+                                        .maxSize(QSizeF(5000, 5000))
+                                        .heightForWidth(hfw1)
+                                )
+                            << QSizeF(500, 401)
+                            << (RectList()
+                                << QRectF( 0,   0, 100, 100) << QRectF(100,   0, 100, 100)
+                                << QRectF( 0, 100, 100, 100) << QRectF(100, 100, 400,  50)
+                            );
+
 }
 
 void tst_QGraphicsGridLayout::geometries()
@@ -2215,6 +2434,143 @@
     QCOMPARE(widget->size(), QSizeF(w, h));
 }
 
+/*
+static qreal hfw(qreal w)
+{
+    if (w == 0)
+        return 20000;
+    return 20000/w;
+}
+*/
+static QSizeF hfw(Qt::SizeHint /*which*/, const QSizeF &constraint)
+{
+    QSizeF result(constraint);
+    const qreal cw = constraint.width();
+    const qreal ch = constraint.height();
+    if (cw < 0 && ch < 0) {
+        return QSizeF(200, 100);
+    } else if (cw >= 0) {
+        result.setHeight(20000./cw);
+    } else if (cw == 0) {
+        result.setHeight(20000);
+    } else if (ch >= 0) {
+        result.setWidth(20000./ch);
+    } else if (ch == 0) {
+        result.setWidth(20000);
+    }
+
+    return result;
+}
+
+static qreal growthFactorBelowPreferredSize(qreal desired, qreal sumAvailable, qreal sumDesired)
+{
+    Q_ASSERT(sumDesired != 0.0);
+    return desired * qPow(sumAvailable / sumDesired, desired / sumDesired);
+}
+
+static void expectedWidth(qreal minSize1, qreal prefSize1,
+                          qreal minSize2, qreal prefSize2,
+                          qreal targetSize, qreal *width1, qreal *width2)
+{
+    qreal sumAvail,factor1,factor2;
+    // stretch behaviour is different below and above preferred size...
+    if (targetSize < prefSize1 + prefSize2) {
+        sumAvail = targetSize - minSize1 - minSize2;
+        const qreal desired1 = prefSize1 - minSize1;
+        const qreal desired2 = prefSize2 - minSize2;
+        const qreal sumDesired = desired1 + desired2;
+        factor1 = growthFactorBelowPreferredSize(desired1, sumAvail, sumDesired);
+        factor2 = growthFactorBelowPreferredSize(desired2, sumAvail, sumDesired);
+        const qreal sumFactors = factor1 + factor2;
+        *width1 = sumAvail*factor1/sumFactors + minSize1;
+        *width2 = sumAvail*factor2/sumFactors + minSize2;
+    } else {
+        sumAvail = targetSize - prefSize1 - prefSize2;
+        factor1 = prefSize1;
+        factor2 = prefSize2;
+        const qreal sumFactors = factor1 + factor2;
+        *width1 = sumAvail*factor1/sumFactors + prefSize1;
+        *width2 = sumAvail*factor2/sumFactors + prefSize2;
+    }
+}
+
+
+bool qFuzzyCompare(const QSizeF &a, const QSizeF &b)
+{
+    return qFuzzyCompare(a.width(), b.width()) && qFuzzyCompare(a.height(), b.height());
+}
+
+void tst_QGraphicsGridLayout::heightForWidth()
+{
+    QGraphicsWidget *widget = new QGraphicsWidget;
+    QGraphicsGridLayout *layout = new QGraphicsGridLayout;
+    widget->setLayout(layout);
+    layout->setContentsMargins(0, 0, 0, 0);
+    layout->setSpacing(0);
+    RectWidget *w00 = new RectWidget;
+    w00->setSizeHint(Qt::MinimumSize, QSizeF(1,1));
+    w00->setSizeHint(Qt::PreferredSize, QSizeF(10,10));
+    w00->setSizeHint(Qt::MaximumSize, QSizeF(100,100));
+    layout->addItem(w00, 0, 0);
+
+    RectWidget *w01 = new RectWidget;
+    w01->setSizeHint(Qt::MinimumSize, QSizeF(1,1));
+    w01->setSizeHint(Qt::PreferredSize, QSizeF(10,10));
+    w01->setSizeHint(Qt::MaximumSize, QSizeF(100,100));
+    layout->addItem(w01, 0, 1);
+
+    RectWidget *w10 = new RectWidget;
+    w10->setSizeHint(Qt::MinimumSize, QSizeF(1,1));
+    w10->setSizeHint(Qt::PreferredSize, QSizeF(10,10));
+    w10->setSizeHint(Qt::MaximumSize, QSizeF(100,100));
+    layout->addItem(w10, 1, 0);
+
+    RectWidget *w11 = new RectWidget;
+    w11->setSizeHint(Qt::MinimumSize, QSizeF(1,1));
+    w11->setSizeHint(Qt::MaximumSize, QSizeF(30000,30000));
+    w11->setConstraintFunction(hfw);
+    QSizePolicy sp(QSizePolicy::Preferred, QSizePolicy::Preferred);
+    sp.setHeightForWidth(true);
+    w11->setSizePolicy(sp);
+    layout->addItem(w11, 1, 1);
+
+    QSizeF prefSize = layout->effectiveSizeHint(Qt::PreferredSize, QSizeF(-1, -1));
+    QCOMPARE(prefSize, QSizeF(10+200, 10+100));
+
+    QCOMPARE(layout->effectiveSizeHint(Qt::MinimumSize, QSizeF(2, -1)), QSizeF(2, 20001));
+    QCOMPARE(layout->effectiveSizeHint(Qt::PreferredSize, QSizeF(2, -1)), QSizeF(2, 20010));
+    QCOMPARE(layout->effectiveSizeHint(Qt::MaximumSize, QSizeF(2, -1)), QSizeF(2, 20100));
+    qreal width1;
+    qreal width2;
+    expectedWidth(1, 10, 1, 200, 20, &width1, &width2);
+    QSizeF expectedSize = hfw(Qt::MinimumSize, QSizeF(width2, -1)) + QSizeF(width1, 1);
+    QCOMPARE(layout->effectiveSizeHint(Qt::MinimumSize, QSizeF(20, -1)), expectedSize);
+    expectedSize.rheight()+=9;
+    QCOMPARE(layout->effectiveSizeHint(Qt::PreferredSize, QSizeF(20, -1)), expectedSize);
+    expectedSize.rheight()+=90;
+    QCOMPARE(layout->effectiveSizeHint(Qt::MaximumSize, QSizeF(20, -1)), expectedSize);
+
+    expectedWidth(1, 10, 1, 200, 300, &width1, &width2);
+    expectedSize = hfw(Qt::MinimumSize, QSizeF(width2, -1)) + QSizeF(width1, 1);
+    QCOMPARE(layout->effectiveSizeHint(Qt::MinimumSize, QSizeF(300, -1)), expectedSize);
+    expectedSize.rheight()+=9;
+    QCOMPARE(layout->effectiveSizeHint(Qt::PreferredSize, QSizeF(300, -1)), expectedSize);
+    // the height of the hfw widget is shorter than the one to the left, which is 100, so
+    // the total height of the last row is 100 (which leaves the layout height to be 200)
+    QCOMPARE(layout->effectiveSizeHint(Qt::MaximumSize, QSizeF(300, -1)), QSizeF(300, 200));
+
+    // the hfw item is shorter than the item to the left
+    expectedWidth(1, 10, 1, 200, 500, &width1, &width2);
+    expectedSize = hfw(Qt::MinimumSize, QSizeF(width2, -1)) + QSizeF(width1, 1);
+    QCOMPARE(layout->effectiveSizeHint(Qt::MinimumSize, QSizeF(500, -1)), expectedSize);
+    expectedSize.rheight()+=9;
+    QCOMPARE(layout->effectiveSizeHint(Qt::PreferredSize, QSizeF(500, -1)), expectedSize);
+    // the height of the hfw widget is shorter than the one to the left, which is 100, so
+    // the total height of the last row is 100 (which leaves the layout height to be 200)
+    QCOMPARE(layout->effectiveSizeHint(Qt::MaximumSize, QSizeF(500, -1)), QSizeF(500, 200));
+
+}
+
 QTEST_MAIN(tst_QGraphicsGridLayout)
 #include "tst_qgraphicsgridlayout.moc"
 
--- a/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -4578,7 +4578,7 @@
         QCOMPARE(tester.changes.at(tester.changes.size() - 1), QGraphicsItem::ItemFlagsHaveChanged);
         QVariant expectedFlags = qVariantFromValue<quint32>(QGraphicsItem::GraphicsItemFlags(QGraphicsItem::ItemIsSelectable | QGraphicsItem::ItemSendsGeometryChanges));
         QCOMPARE(tester.values.at(tester.values.size() - 2), expectedFlags);
-        QCOMPARE(tester.values.at(tester.values.size() - 1), qVariantFromValue<quint32>(QGraphicsItem::ItemIsSelectable));
+        QCOMPARE(tester.values.at(tester.values.size() - 1), qVariantFromValue<quint32>((quint32)QGraphicsItem::ItemIsSelectable));
     }
     {
         // ItemSelectedChange
--- a/tests/auto/qgraphicsproxywidget/tst_qgraphicsproxywidget.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/qgraphicsproxywidget/tst_qgraphicsproxywidget.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -788,7 +788,7 @@
     view.show();
     QApplication::setActiveWindow(&view);
     QTest::qWaitForWindowShown(&view);
-    QTRY_COMPARE(QApplication::activeWindow(), &view);
+    QTRY_COMPARE(QApplication::activeWindow(), (QWidget*)&view);
     if (hasScene) {
         scene.addItem(proxy);
         proxy->show();
@@ -837,7 +837,7 @@
     view.setFocus();
     QTest::qWaitForWindowShown(&view);
     QTRY_VERIFY(view.isVisible());
-    QTRY_COMPARE(QApplication::activeWindow(), &view);
+    QTRY_COMPARE(QApplication::activeWindow(), (QWidget*)&view);
 
     QWidget *widget = new QWidget;
     widget->setFocusPolicy(Qt::WheelFocus);
@@ -1093,7 +1093,7 @@
     view.viewport()->setFocus();
     QApplication::setActiveWindow(&view);
     QTest::qWaitForWindowShown(&view);
-    QTRY_COMPARE(QApplication::activeWindow(), &view);
+    QTRY_COMPARE(QApplication::activeWindow(), (QWidget*)&view);
 
     SubQGraphicsProxyWidget *proxy = new SubQGraphicsProxyWidget;
     proxy->setFlag(QGraphicsItem::ItemIsFocusable, true); // ### remove me!!!
@@ -1134,7 +1134,7 @@
     view.show();
     QApplication::setActiveWindow(&view);
     QTest::qWaitForWindowShown(&view);
-    QTRY_COMPARE(QApplication::activeWindow(), &view);
+    QTRY_COMPARE(QApplication::activeWindow(), (QWidget*)&view);
 
 
     SubQGraphicsProxyWidget *proxy = new SubQGraphicsProxyWidget;
@@ -1178,7 +1178,7 @@
 
     QApplication::setActiveWindow(&view);
     QTest::qWaitForWindowShown(&view);
-    QTRY_COMPARE(QApplication::activeWindow(), &view);
+    QTRY_COMPARE(QApplication::activeWindow(), (QWidget*)&view);
 
     SubQGraphicsProxyWidget *proxy = new SubQGraphicsProxyWidget;
     proxy->setFlag(QGraphicsItem::ItemIsFocusable, true); // ### remove me!!!
@@ -3472,7 +3472,7 @@
         qt_x11_wait_for_window_manager(&view);
 #endif
         QApplication::setActiveWindow(&view);
-        QTRY_COMPARE(QApplication::activeWindow(), &view);
+        QTRY_COMPARE(QApplication::activeWindow(), (QWidget*)&view);
 
         QVERIFY(!proxy->hasFocus());
         QVERIFY(!proxy->widget()->hasFocus());
--- a/tests/auto/qgraphicsscene/tst_qgraphicsscene.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/qgraphicsscene/tst_qgraphicsscene.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -276,6 +276,7 @@
     void isActive();
     void siblingIndexAlwaysValid();
     void removeFullyTransparentItem();
+    void zeroScale();
 
     // task specific tests below me
     void task139710_bspTreeCrash();
@@ -1491,7 +1492,7 @@
     scene.setItemIndexMethod(QGraphicsScene::NoIndex);
     scene.addItem(firstItem);
     scene.addItem(secondItem);
-    QCOMPARE(scene.items().at(0), firstItem);
+    QCOMPARE(scene.items().at(0), (QGraphicsItem*)firstItem);
     QCOMPARE(scene.items().at(1), secondItem);
 
     ClearTestItem *thirdItem = new ClearTestItem(firstItem);
@@ -4564,5 +4565,30 @@
     }
 }
 
+void tst_QGraphicsScene::zeroScale()
+{
+    //should not crash
+    QGraphicsScene scene;
+    scene.setSceneRect(-100, -100, 100, 100);
+    QGraphicsView view(&scene);
+
+    ChangedListener cl;
+    connect(&scene, SIGNAL(changed(const QList<QRectF> &)), &cl, SLOT(changed(const QList<QRectF> &)));
+
+    QGraphicsRectItem *rect1 = new QGraphicsRectItem(0, 0, 0.0000001, 0.00000001);
+    scene.addItem(rect1);
+    rect1->setRotation(82);
+    rect1->setScale(0.00000001);
+
+    QApplication::processEvents();
+    QTRY_COMPARE(cl.changes.count(), 1);
+    QGraphicsRectItem *rect2 = new QGraphicsRectItem(-0.0000001, -0.0000001, 0.0000001, 0.0000001);
+    rect2->setScale(0.00000001);
+    scene.addItem(rect2);
+    rect1->setPos(20,20);
+    QApplication::processEvents();
+    QTRY_COMPARE(cl.changes.count(), 2);
+}
+
 QTEST_MAIN(tst_QGraphicsScene)
 #include "tst_qgraphicsscene.moc"
--- a/tests/auto/qgraphicsview/tst_qgraphicsview.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/qgraphicsview/tst_qgraphicsview.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -244,6 +244,9 @@
     void QTBUG_4151_clipAndIgnore();
     void QTBUG_5859_exposedRect();
     void QTBUG_7438_cursor();
+
+public slots:
+    void dummySlot() {}
 };
 
 void tst_QGraphicsView::initTestCase()
@@ -3202,14 +3205,18 @@
 void tst_QGraphicsView::moveItemWhileScrolling_data()
 {
     QTest::addColumn<bool>("adjustForAntialiasing");
-
-    QTest::newRow("no adjust") << false;
-    QTest::newRow("adjust") << true;
+    QTest::addColumn<bool>("changedConnected");
+
+    QTest::newRow("no adjust") << false << false;
+    QTest::newRow("adjust") << true << false;
+    QTest::newRow("no adjust changedConnected") << false << true;
+    QTest::newRow("adjust changedConnected") << true << true;
 }
 
 void tst_QGraphicsView::moveItemWhileScrolling()
 {
     QFETCH(bool, adjustForAntialiasing);
+    QFETCH(bool, changedConnected);
 
     class MoveItemScrollView : public QGraphicsView
     {
@@ -3253,6 +3260,8 @@
     view.resize(200, 200);
     view.painted = false;
     view.show();
+    if (changedConnected)
+        QObject::connect(view.scene(), SIGNAL(changed(QList<QRectF>)), this, SLOT(dummySlot()));
     QTest::qWaitForWindowShown(&view);
     QApplication::processEvents();
     QTRY_VERIFY(view.painted);
@@ -3691,24 +3700,32 @@
 {
     QTest::addColumn<qreal>("penWidth");
     QTest::addColumn<bool>("antialiasing");
+    QTest::addColumn<bool>("changedConnected");
 
     // Anti-aliased.
-    QTest::newRow("pen width: 0.0, antialiasing: true") << 0.0 << true;
-    QTest::newRow("pen width: 1.5, antialiasing: true") << 1.5 << true;
-    QTest::newRow("pen width: 2.0, antialiasing: true") << 2.0 << true;
-    QTest::newRow("pen width: 3.0, antialiasing: true") << 3.0 << true;
+    QTest::newRow("pen width: 0.0, antialiasing: true") << 0.0 << true << false;
+    QTest::newRow("pen width: 1.5, antialiasing: true") << 1.5 << true << false;
+    QTest::newRow("pen width: 2.0, antialiasing: true") << 2.0 << true << false;
+    QTest::newRow("pen width: 3.0, antialiasing: true") << 3.0 << true << false;
 
     // Aliased.
-    QTest::newRow("pen width: 0.0, antialiasing: false") << 0.0 << false;
-    QTest::newRow("pen width: 1.5, antialiasing: false") << 1.5 << false;
-    QTest::newRow("pen width: 2.0, antialiasing: false") << 2.0 << false;
-    QTest::newRow("pen width: 3.0, antialiasing: false") << 3.0 << false;
+    QTest::newRow("pen width: 0.0, antialiasing: false") << 0.0 << false << false;
+    QTest::newRow("pen width: 1.5, antialiasing: false") << 1.5 << false << false;
+    QTest::newRow("pen width: 2.0, antialiasing: false") << 2.0 << false << false;
+    QTest::newRow("pen width: 3.0, antialiasing: false") << 3.0 << false << false;
+
+    // changed() connected
+    QTest::newRow("pen width: 0.0, antialiasing: false, changed") << 0.0 << false << true;
+    QTest::newRow("pen width: 1.5, antialiasing: true, changed") << 1.5 << true << true;
+    QTest::newRow("pen width: 2.0, antialiasing: false, changed") << 2.0 << false << true;
+    QTest::newRow("pen width: 3.0, antialiasing: true, changed") << 3.0 << true << true;
 }
 
 void tst_QGraphicsView::update2()
 {
     QFETCH(qreal, penWidth);
     QFETCH(bool, antialiasing);
+    QFETCH(bool, changedConnected);
 
     // Create a rect item.
     const QRectF rawItemRect(-50.4, -50.3, 100.2, 100.1);
@@ -3719,6 +3736,9 @@
 
     // Add item to a scene.
     QGraphicsScene scene(-100, -100, 200, 200);
+    if (changedConnected)
+        QObject::connect(&scene, SIGNAL(changed(QList<QRectF>)), this, SLOT(dummySlot()));
+
     scene.addItem(rect);
 
     // Create a view on the scene.
--- a/tests/auto/qgraphicswidget/tst_qgraphicswidget.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/qgraphicswidget/tst_qgraphicswidget.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -111,6 +111,7 @@
     void fontPropagationSceneChange();
     void geometry_data();
     void geometry();
+    void geometryChanged();
     void width();
     void height();
     void getContentsMargins_data();
@@ -171,6 +172,12 @@
     void itemChangeEvents();
     void itemSendGeometryPosChangesDeactivated();
 
+    void fontPropagatesResolveToChildren();
+    void fontPropagatesResolveToGrandChildren();
+    void fontPropagatesResolveInParentChange();
+    void fontPropagatesResolveViaNonWidget();
+    void fontPropagatesResolveFromScene();
+
     // Task fixes
     void task236127_bspTreeIndexFails();
     void task243004_setStyleCrash();
@@ -621,6 +628,192 @@
     QCOMPARE(widget.font().family(), font.family());
 }
 
+void tst_QGraphicsWidget::fontPropagatesResolveToChildren()
+{
+    QGraphicsWidget *root = new QGraphicsWidget();
+    QGraphicsWidget *child1 = new QGraphicsWidget(root);
+
+    QGraphicsScene scene;
+    scene.addItem(root);
+
+    QFont font;
+    font.setItalic(true);
+    root->setFont(font);
+
+    QGraphicsWidget *child2 = new QGraphicsWidget(root);
+    QGraphicsWidget *child3 = new QGraphicsWidget();
+    child3->setParentItem(root);
+
+    QGraphicsView view;
+    view.setScene(&scene);
+    view.show();
+    QTest::qWaitForWindowShown(&view);
+
+    QCOMPARE(font.resolve(), uint(QFont::StyleResolved));
+    QCOMPARE(root->font().resolve(), uint(QFont::StyleResolved));
+    QCOMPARE(child1->font().resolve(), uint(QFont::StyleResolved));
+    QCOMPARE(child2->font().resolve(), uint(QFont::StyleResolved));
+    QCOMPARE(child3->font().resolve(), uint(QFont::StyleResolved));
+}
+
+void tst_QGraphicsWidget::fontPropagatesResolveToGrandChildren()
+{
+    QGraphicsWidget *root = new QGraphicsWidget();
+    QGraphicsWidget *child1 = new QGraphicsWidget(root);
+    QGraphicsWidget *grandChild1 = new QGraphicsWidget(child1);
+
+    QGraphicsScene scene;
+    scene.addItem(root);
+
+    QFont font;
+    font.setItalic(true);
+    root->setFont(font);
+
+    QGraphicsWidget *child2 = new QGraphicsWidget(root);
+    QGraphicsWidget *grandChild2 = new QGraphicsWidget(child2);
+    QGraphicsWidget *grandChild3 = new QGraphicsWidget(child2);
+
+    QGraphicsWidget *child3 = new QGraphicsWidget();
+    QGraphicsWidget *grandChild4 = new QGraphicsWidget(child3);
+    QGraphicsWidget *grandChild5 = new QGraphicsWidget(child3);
+    child3->setParentItem(root);
+    grandChild5->setParentItem(child3);
+
+    QGraphicsView view;
+    view.setScene(&scene);
+    view.show();
+    QTest::qWaitForWindowShown(&view);
+
+    QCOMPARE(font.resolve(), uint(QFont::StyleResolved));
+    QCOMPARE(grandChild1->font().resolve(), uint(QFont::StyleResolved));
+    QCOMPARE(grandChild2->font().resolve(), uint(QFont::StyleResolved));
+    QCOMPARE(grandChild3->font().resolve(), uint(QFont::StyleResolved));
+    QCOMPARE(grandChild4->font().resolve(), uint(QFont::StyleResolved));
+    QCOMPARE(grandChild5->font().resolve(), uint(QFont::StyleResolved));
+}
+
+void tst_QGraphicsWidget::fontPropagatesResolveViaNonWidget()
+{
+    QGraphicsWidget *root = new QGraphicsWidget();
+    QGraphicsPixmapItem *child1 = new QGraphicsPixmapItem(root);
+    QGraphicsWidget *grandChild1 = new QGraphicsWidget(child1);
+
+    QGraphicsScene scene;
+    scene.addItem(root);
+
+    QFont font;
+    font.setItalic(true);
+    root->setFont(font);
+
+    QGraphicsPixmapItem *child2 = new QGraphicsPixmapItem(root);
+    QGraphicsWidget *grandChild2 = new QGraphicsWidget(child2);
+    QGraphicsWidget *grandChild3 = new QGraphicsWidget(child2);
+
+    QGraphicsPixmapItem *child3 = new QGraphicsPixmapItem();
+    QGraphicsWidget *grandChild4 = new QGraphicsWidget(child3);
+    QGraphicsWidget *grandChild5 = new QGraphicsWidget(child3);
+    child3->setParentItem(root);
+    grandChild5->setParentItem(child3);
+
+    QGraphicsView view;
+    view.setScene(&scene);
+    view.show();
+    QTest::qWaitForWindowShown(&view);
+
+    QCOMPARE(font.resolve(), uint(QFont::StyleResolved));
+    QCOMPARE(grandChild1->font().resolve(), uint(QFont::StyleResolved));
+    QCOMPARE(grandChild2->font().resolve(), uint(QFont::StyleResolved));
+    QCOMPARE(grandChild3->font().resolve(), uint(QFont::StyleResolved));
+    QCOMPARE(grandChild4->font().resolve(), uint(QFont::StyleResolved));
+    QCOMPARE(grandChild5->font().resolve(), uint(QFont::StyleResolved));
+}
+
+void tst_QGraphicsWidget::fontPropagatesResolveFromScene()
+{
+    QGraphicsWidget *root = new QGraphicsWidget();
+    QGraphicsWidget *child1 = new QGraphicsWidget(root);
+    QGraphicsWidget *grandChild1 = new QGraphicsWidget(child1);
+
+    QGraphicsScene scene;
+    scene.addItem(root);
+
+    QFont font;
+    font.setItalic(true);
+    scene.setFont(font);
+
+    QGraphicsWidget *child2 = new QGraphicsWidget(root);
+    QGraphicsWidget *grandChild2 = new QGraphicsWidget(child2);
+    QGraphicsWidget *grandChild3 = new QGraphicsWidget(child2);
+
+    QGraphicsWidget *child3 = new QGraphicsWidget();
+    QGraphicsWidget *grandChild4 = new QGraphicsWidget(child3);
+    QGraphicsWidget *grandChild5 = new QGraphicsWidget(child3);
+    child3->setParentItem(root);
+    grandChild5->setParentItem(child3);
+
+    QGraphicsView view;
+    view.setScene(&scene);
+    view.show();
+    QTest::qWaitForWindowShown(&view);
+
+    QCOMPARE(font.resolve(), uint(QFont::StyleResolved));
+    QCOMPARE(root->font().resolve(), uint(QFont::StyleResolved));
+    QCOMPARE(child1->font().resolve(), uint(QFont::StyleResolved));
+    QCOMPARE(child2->font().resolve(), uint(QFont::StyleResolved));
+    QCOMPARE(child3->font().resolve(), uint(QFont::StyleResolved));
+    QCOMPARE(grandChild1->font().resolve(), uint(QFont::StyleResolved));
+    QCOMPARE(grandChild2->font().resolve(), uint(QFont::StyleResolved));
+    QCOMPARE(grandChild3->font().resolve(), uint(QFont::StyleResolved));
+    QCOMPARE(grandChild4->font().resolve(), uint(QFont::StyleResolved));
+    QCOMPARE(grandChild5->font().resolve(), uint(QFont::StyleResolved));
+}
+
+void tst_QGraphicsWidget::fontPropagatesResolveInParentChange()
+{
+    QGraphicsWidget *root = new QGraphicsWidget();
+
+    QGraphicsWidget *child1 = new QGraphicsWidget(root);
+    QGraphicsWidget *grandChild1 = new QGraphicsWidget(child1);
+
+    QGraphicsWidget *child2 = new QGraphicsWidget(root);
+    QGraphicsWidget *grandChild2 = new QGraphicsWidget(child2);
+
+    QGraphicsScene scene;
+    scene.addItem(root);
+
+    QFont italicFont;
+    italicFont.setItalic(true);
+    child1->setFont(italicFont);
+
+    QFont boldFont;
+    boldFont.setBold(true);
+    child2->setFont(boldFont);
+
+    QVERIFY(grandChild1->font().italic());
+    QVERIFY(!grandChild1->font().bold());
+    QVERIFY(!grandChild2->font().italic());
+    QVERIFY(grandChild2->font().bold());
+
+    QCOMPARE(grandChild1->font().resolve(), uint(QFont::StyleResolved));
+    QCOMPARE(grandChild2->font().resolve(), uint(QFont::WeightResolved));
+
+    grandChild2->setParentItem(child1);
+
+    QGraphicsView view;
+    view.setScene(&scene);
+    view.show();
+    QTest::qWaitForWindowShown(&view);
+
+    QVERIFY(grandChild1->font().italic());
+    QVERIFY(!grandChild1->font().bold());
+    QVERIFY(grandChild2->font().italic());
+    QVERIFY(!grandChild2->font().bold());
+
+    QCOMPARE(grandChild1->font().resolve(), uint(QFont::StyleResolved));
+    QCOMPARE(grandChild2->font().resolve(), uint(QFont::StyleResolved));
+
+}
+
 void tst_QGraphicsWidget::fontPropagation()
 {
     QGraphicsWidget *root = new QGraphicsWidget;
@@ -727,11 +920,12 @@
     widget->setFont(font);
 
     QCOMPARE(widget2->font().pointSize(), 43);
-    QCOMPARE(widget2->font().resolve(), QFont().resolve());
+    QCOMPARE(widget2->font().resolve(), uint(QFont::SizeResolved));
 
     widget->setFont(QFont());
 
     QCOMPARE(widget2->font().pointSize(), qApp->font().pointSize());
+    QCOMPARE(widget2->font().resolve(), QFont().resolve());
 }
 
 void tst_QGraphicsWidget::fontPropagationSceneChange()
@@ -776,11 +970,28 @@
     QFETCH(QSizeF, size);
     widget.setPos(pos);
     widget.resize(size);
-    if (!size.isNull())
+    if (!size.isNull() && !pos.isNull())
+        QCOMPARE(spy.count(), 2);
+    if (!size.isNull() && pos.isNull())
         QCOMPARE(spy.count(), 1);
     QCOMPARE(widget.geometry(), QRectF(pos, size));
 }
 
+void tst_QGraphicsWidget::geometryChanged()
+{
+    QGraphicsWidget w;
+    w.setGeometry(0, 0, 200, 200);
+    QCOMPARE(w.geometry(), QRectF(0, 0, 200, 200));
+    QSignalSpy spy(&w, SIGNAL(geometryChanged()));
+    w.setGeometry(0, 0, 100, 100);
+    QCOMPARE(spy.count(), 1);
+    QCOMPARE(w.geometry(), QRectF(0, 0, 100, 100));
+    w.setPos(10, 10);
+    QCOMPARE(spy.count(), 2);
+    QCOMPARE(w.geometry(), QRectF(10, 10, 100, 100));
+
+}
+
 void tst_QGraphicsWidget::width()
 {
     QGraphicsWidget w;
@@ -872,7 +1083,7 @@
     qt_x11_wait_for_window_manager(&view);
 #endif
     QApplication::setActiveWindow(&view);
-    QTRY_COMPARE(QApplication::activeWindow(), &view);
+    QTRY_COMPARE(QApplication::activeWindow(), (QWidget*)&view);
 
     view.setAlignment(Qt::AlignTop | Qt::AlignLeft);
     SubQGraphicsWidget *widget = new SubQGraphicsWidget;
@@ -1204,7 +1415,7 @@
     qt_x11_wait_for_window_manager(&view);
 #endif
     QApplication::setActiveWindow(&view);
-    QTRY_COMPARE(QApplication::activeWindow(), &view);
+    QTRY_COMPARE(QApplication::activeWindow(), (QWidget*)&view);
 
     QGraphicsWidget *lastItem = 0;
     QTest::ignoreMessage(QtWarningMsg, "QGraphicsWidget::setTabOrder(0, 0) is undefined");
@@ -1267,7 +1478,7 @@
     view.show();
     QApplication::setActiveWindow(&view);
     QTest::qWaitForWindowShown(&view);
-    QTRY_COMPARE(QApplication::activeWindow(), &view);
+    QTRY_COMPARE(QApplication::activeWindow(), (QWidget*)&view);
 
     int i;
     QGraphicsWidget *w1, *w2, *w3, *w4;
@@ -1407,7 +1618,7 @@
     view.show();
     QApplication::setActiveWindow(&view);
     QTest::qWaitForWindowShown(&view);
-    QTRY_COMPARE(QApplication::activeWindow(), &view);
+    QTRY_COMPARE(QApplication::activeWindow(), (QWidget*)&view);
 
     {
         // parent/child focus
@@ -1534,7 +1745,7 @@
     qt_x11_wait_for_window_manager(&view);
 #endif
     QApplication::setActiveWindow(&view);
-    QTRY_COMPARE(QApplication::activeWindow(), &view);
+    QTRY_COMPARE(QApplication::activeWindow(), (QWidget*)&view);
 
     // delete item in focus chain with no focus and verify chain
     SubQGraphicsWidget *parent = new SubQGraphicsWidget(0, Qt::Window);
@@ -2485,7 +2696,7 @@
     view.setScene(&scene);
     view.show();
     QApplication::setActiveWindow(&view);
-    QTRY_COMPARE(QApplication::activeWindow(), &view);
+    QTRY_COMPARE(QApplication::activeWindow(), (QWidget*)&view);
 
 
     // *** Event: ***
--- a/tests/auto/qimage/tst_qimage.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/qimage/tst_qimage.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -83,6 +83,8 @@
     void convertToFormat_data();
     void convertToFormat();
 
+    void convertToFormatRgb888ToRGB32();
+
     void createAlphaMask_data();
     void createAlphaMask();
 #ifndef QT_NO_IMAGE_HEURISTIC_MASK
@@ -137,6 +139,9 @@
     void premultipliedAlphaConsistency();
 
     void compareIndexed();
+
+    void rgbSwapped_data();
+    void rgbSwapped();
 };
 
 tst_QImage::tst_QImage()
@@ -799,6 +804,26 @@
     QFile::remove(QLatin1String("expected2.xpm"));
 }
 
+void tst_QImage::convertToFormatRgb888ToRGB32()
+{
+    // 545 so width % 4 != 0. This ensure there is padding at the end of the scanlines
+    const int height = 545;
+    const int width = 545;
+    QImage source(width, height, QImage::Format_RGB888);
+    for (int y = 0; y < height; ++y) {
+        uchar *srcPixels = source.scanLine(y);
+        for (int x = 0; x < width * 3; ++x)
+            srcPixels[x] = x;
+    }
+
+    QImage rgb32Image = source.convertToFormat(QImage::Format_RGB888);
+    QCOMPARE(rgb32Image.format(), QImage::Format_RGB888);
+    for (int x = 0; x < width; ++x) {
+        for (int y = 0; y < height; ++y)
+            QCOMPARE(rgb32Image.pixel(x, y), source.pixel(x, y));
+    }
+}
+
 void tst_QImage::createAlphaMask_data()
 {
     QTest::addColumn<int>("x");
@@ -1426,11 +1451,6 @@
     return int(256. * (qrand() / (RAND_MAX + 1.0)));
 }
 
-static inline bool compare(int a, int b, int tolerance)
-{
-    return qAbs(a - b) <= tolerance;
-}
-
 // compares img.scale against the bilinear filtering used by QPainter
 void tst_QImage::smoothScale3()
 {
@@ -1458,6 +1478,7 @@
         p.scale(scales[i], scales[i]);
         p.drawImage(0, 0, img);
         p.end();
+        int err = 0;
 
         for (int y = 0; y < a.height(); ++y) {
             for (int x = 0; x < a.width(); ++x) {
@@ -1465,11 +1486,15 @@
                 QRgb cb = b.pixel(x, y);
 
                 // tolerate a little bit of rounding errors
-                QVERIFY(compare(qRed(ca), qRed(cb), 3));
-                QVERIFY(compare(qGreen(ca), qGreen(cb), 3));
-                QVERIFY(compare(qBlue(ca), qBlue(cb), 3));
+                bool r = true;
+                r &= qAbs(qRed(ca) - qRed(cb)) <= 18;
+                r &= qAbs(qGreen(ca) - qGreen(cb)) <= 18;
+                r &= qAbs(qBlue(ca) - qBlue(cb)) <= 18;
+                if (!r)
+                    err++;
             }
         }
+        QCOMPARE(err, 0);
     }
 }
 
@@ -1798,5 +1823,68 @@
     QCOMPARE(img, imgInverted);
 }
 
+void tst_QImage::rgbSwapped_data()
+{
+    QTest::addColumn<QImage::Format>("format");
+
+    QTest::newRow("Format_Indexed8") << QImage::Format_Indexed8;
+    QTest::newRow("Format_RGB32") << QImage::Format_RGB32;
+    QTest::newRow("Format_ARGB32") << QImage::Format_ARGB32;
+    QTest::newRow("Format_ARGB32_Premultiplied") << QImage::Format_ARGB32_Premultiplied;
+    QTest::newRow("Format_RGB16") << QImage::Format_RGB16;
+    QTest::newRow("Format_ARGB8565_Premultiplied") << QImage::Format_ARGB8565_Premultiplied;
+    QTest::newRow("Format_ARGB6666_Premultiplied") << QImage::Format_ARGB6666_Premultiplied;
+    QTest::newRow("Format_ARGB4444_Premultiplied") << QImage::Format_ARGB4444_Premultiplied;
+    QTest::newRow("Format_RGB666") << QImage::Format_RGB666;
+    QTest::newRow("Format_RGB555") << QImage::Format_RGB555;
+    QTest::newRow("Format_ARGB8555_Premultiplied") << QImage::Format_ARGB8555_Premultiplied;
+    QTest::newRow("Format_RGB888") << QImage::Format_RGB888;
+    QTest::newRow("Format_RGB444") << QImage::Format_RGB444;
+}
+
+void tst_QImage::rgbSwapped()
+{
+    QFETCH(QImage::Format, format);
+
+    QImage image(100, 1, format);
+    image.fill(0);
+
+    QVector<QColor> testColor(image.width());
+
+    for (int i = 0; i < image.width(); ++i)
+        testColor[i] = QColor(i, 10 + i, 20 + i * 2, 30 + i);
+
+    if (format != QImage::Format_Indexed8) {
+        QPainter p(&image);
+        p.setCompositionMode(QPainter::CompositionMode_Source);
+        for (int i = 0; i < image.width(); ++i)
+            p.fillRect(QRect(i, 0, 1, 1), testColor[i].rgb());
+    } else {
+        image.setColorCount(image.width());
+        for (int i = 0; i < image.width(); ++i) {
+            image.setColor(0, testColor[i].rgba());
+            image.setPixel(i, 0, i);
+        }
+    }
+
+    QImage imageSwapped = image.rgbSwapped();
+
+    for (int i = 0; i < image.width(); ++i) {
+        QColor referenceColor = QColor(image.pixel(i, 0));
+        QColor swappedColor = QColor(imageSwapped.pixel(i, 0));
+
+        QCOMPARE(swappedColor.alpha(), referenceColor.alpha());
+        QCOMPARE(swappedColor.red(), referenceColor.blue());
+        QCOMPARE(swappedColor.green(), referenceColor.green());
+        QCOMPARE(swappedColor.blue(), referenceColor.red());
+    }
+
+    QImage imageSwappedTwice = imageSwapped.rgbSwapped();
+
+    QCOMPARE(image, imageSwappedTwice);
+
+    QCOMPARE(memcmp(image.constBits(), imageSwappedTwice.constBits(), image.numBytes()), 0);
+}
+
 QTEST_MAIN(tst_QImage)
 #include "tst_qimage.moc"
--- a/tests/auto/qinputcontext/qinputcontext.pro	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/qinputcontext/qinputcontext.pro	Mon Oct 04 01:19:32 2010 +0300
@@ -1,2 +1,6 @@
 load(qttest_p4)
 SOURCES  += tst_qinputcontext.cpp
+
+symbian {
+    LIBS += -lws32 -lcone
+}
--- a/tests/auto/qinputcontext/tst_qinputcontext.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/qinputcontext/tst_qinputcontext.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -48,17 +48,27 @@
 #include <qlayout.h>
 #include <qradiobutton.h>
 #include <qwindowsstyle.h>
+#include <qdesktopwidget.h>
+#include <qpushbutton.h>
+
+#ifdef Q_OS_SYMBIAN
+#include <private/qt_s60_p.h>
+#include <private/qcoefepinputcontext_p.h>
+
+#include <w32std.h>
+#include <coecntrl.h>
+#endif
 
 class tst_QInputContext : public QObject
 {
 Q_OBJECT
 
 public:
-    tst_QInputContext() {}
+    tst_QInputContext() : m_phoneIsQwerty(false) {}
     virtual ~tst_QInputContext() {}
 
 public slots:
-    void initTestCase() {}
+    void initTestCase();
     void cleanupTestCase() {}
     void init() {}
     void cleanup() {}
@@ -69,8 +79,178 @@
     void closeSoftwareInputPanel();
     void selections();
     void focusProxy();
+    void symbianTestCoeFepInputContext_data();
+    void symbianTestCoeFepInputContext();
+    void symbianTestCoeFepAutoCommit_data();
+    void symbianTestCoeFepAutoCommit();
+
+private:
+    bool m_phoneIsQwerty;
 };
 
+#ifdef Q_OS_SYMBIAN
+class KeyEvent : public TWsEvent
+{
+public:
+    KeyEvent(QWidget *w, TInt type, TInt scanCode, TUint code, TUint modifiers, TInt repeats) {
+        iHandle = w->effectiveWinId()->DrawableWindow()->WindowGroupId();
+        iType = type;
+        SetTimeNow();
+        TKeyEvent *keyEvent = reinterpret_cast<TKeyEvent *>(iEventData);
+        keyEvent->iScanCode = scanCode;
+        keyEvent->iCode = code;
+        keyEvent->iModifiers = modifiers;
+        keyEvent->iRepeats = repeats;
+    }
+};
+
+class FepReplayEvent
+{
+public:
+    enum Type {
+        Pause,
+        Key,
+        CompleteKey
+    };
+
+    FepReplayEvent(int msecsToPause)
+        : m_type(Pause)
+        , m_msecsToPause(msecsToPause)
+    {
+    }
+
+    FepReplayEvent(TInt keyType, TInt scanCode, TUint code, TUint modifiers, TInt repeats)
+        : m_type(Key)
+        , m_keyType(keyType)
+        , m_scanCode(scanCode)
+        , m_code(code)
+        , m_modifiers(modifiers)
+        , m_repeats(repeats)
+    {
+    }
+
+    FepReplayEvent(TInt scanCode, TUint code, TUint modifiers, TInt repeats)
+        : m_type(CompleteKey)
+        , m_scanCode(scanCode)
+        , m_code(code)
+        , m_modifiers(modifiers)
+        , m_repeats(repeats)
+    {
+    }
+
+    void sendEvent(QWidget *w, TInt type, TInt scanCode, TUint code, TUint modifiers, TInt repeats)
+    {
+        KeyEvent event(w, type, scanCode, code, modifiers, repeats);
+        S60->wsSession().SendEventToWindowGroup(w->effectiveWinId()->DrawableWindow()->WindowGroupId(), event);
+    }
+
+    void pause(int msecs)
+    {
+        // Don't use qWait here. The polling nature of that function screws up the test.
+        QTimer timer;
+        QEventLoop loop;
+        QObject::connect(&timer, SIGNAL(timeout()), &loop, SLOT(quit()));
+        timer.setSingleShot(true);
+        timer.start(msecs);
+        loop.exec();
+    }
+
+    // For some reason, the test fails if using processEvents instead of an event loop
+    // with a zero timer to quit it, so use the timer.
+#define KEY_WAIT 0
+
+    void replay(QWidget *w)
+    {
+        if (m_type == Pause) {
+            pause(m_msecsToPause);
+        } else if (m_type == Key) {
+            sendEvent(w, m_keyType, m_scanCode, m_code, m_modifiers, m_repeats);
+            if (m_keyType != EEventKeyDown)
+                // EEventKeyDown events should have no pause before the EEventKey event.
+                pause(KEY_WAIT);
+        } else if (m_type == CompleteKey) {
+            sendEvent(w, EEventKeyDown, m_scanCode, 0, m_modifiers, m_repeats);
+            // EEventKeyDown events should have no pause before the EEventKey event.
+            sendEvent(w, EEventKey, m_scanCode, m_code, m_modifiers, m_repeats);
+            pause(KEY_WAIT);
+            sendEvent(w, EEventKeyUp, m_scanCode, 0, m_modifiers, m_repeats);
+            pause(KEY_WAIT);
+        }
+    }
+
+private:
+    Type m_type;
+    int m_msecsToPause;
+    TInt m_keyType;
+    TInt m_scanCode;
+    TUint m_code;
+    TUint m_modifiers;
+    TInt m_repeats;
+};
+
+Q_DECLARE_METATYPE(QList<FepReplayEvent>)
+Q_DECLARE_METATYPE(Qt::InputMethodHints)
+Q_DECLARE_METATYPE(QLineEdit::EchoMode);
+
+#endif // Q_OS_SYMBIAN
+
+void tst_QInputContext::initTestCase()
+{
+#ifdef Q_OS_SYMBIAN
+    // Sanity test. Checks FEP for:
+    // - T9 mode is default (it will attempt to fix this)
+    // - Language is English (it cannot fix this; bail out if not correct)
+    QWidget w;
+    QLayout *layout = new QVBoxLayout;
+    w.setLayout(layout);
+    QLineEdit *lineedit = new QLineEdit;
+    layout->addWidget(lineedit);
+    lineedit->setFocus();
+#ifdef QT_KEYPAD_NAVIGATION
+    lineedit->setEditFocus(true);
+#endif
+    w.show();
+
+    QDesktopWidget desktop;
+    QRect screenSize = desktop.screenGeometry(&w);
+    if (screenSize.width() > screenSize.height()) {
+        // Crude way of finding out we are running on a qwerty phone.
+        m_phoneIsQwerty = true;
+        return;
+    }
+
+    for (int iterations = 0; iterations < 16; iterations++) {
+        QTest::qWait(500);
+
+        QList<FepReplayEvent> keyEvents;
+
+        keyEvents << FepReplayEvent('9', '9', 0, 0);
+        keyEvents << FepReplayEvent('6', '6', 0, 0);
+        keyEvents << FepReplayEvent('8', '8', 0, 0);
+        keyEvents << FepReplayEvent(EStdKeyRightArrow, EKeyRightArrow, 0, 0);
+
+        foreach(FepReplayEvent event, keyEvents) {
+            event.replay(lineedit);
+        }
+
+        QApplication::processEvents();
+
+        if (lineedit->text().endsWith("you", Qt::CaseInsensitive)) {
+            // Success!
+            return;
+        }
+
+        // Try changing modes.
+        // After 8 iterations, try to press the mode switch twice before typing.
+        for (int c = 0; c <= iterations / 8; c++) {
+            FepReplayEvent(EStdKeyHash, '#', 0, 0).replay(lineedit);
+        }
+    }
+
+    QFAIL("FEP sanity test failed. Either the phone is not set to English, or the test was unable to enable T9");
+#endif
+}
+
 void tst_QInputContext::maximumTextLength()
 {
     QLineEdit le;
@@ -271,7 +451,6 @@
 
     QInputContext *gic = qApp->inputContext();
     QVERIFY(gic);
-    qDebug() << gic->focusWidget() << &proxy;
     QCOMPARE(gic->focusWidget(), &proxy);
 
     // then change the focus proxy and check that input context is valid
@@ -285,5 +464,601 @@
     QCOMPARE(gic->focusWidget(), &proxy);
 }
 
+void tst_QInputContext::symbianTestCoeFepInputContext_data()
+{
+#ifdef Q_OS_SYMBIAN
+    QTest::addColumn<bool>                   ("inputMethodEnabled");
+    QTest::addColumn<Qt::InputMethodHints>   ("inputMethodHints");
+    QTest::addColumn<int>                    ("maxLength"); // Zero for no limit
+    QTest::addColumn<QLineEdit::EchoMode>    ("echoMode");
+    QTest::addColumn<QList<FepReplayEvent> > ("keyEvents");
+    QTest::addColumn<QString>                ("finalString");
+    QTest::addColumn<QString>                ("preeditString");
+    QList<FepReplayEvent> events;
+
+    events << FepReplayEvent(EStdKeyBackspace, EKeyBackspace, 0, 0);
+    events << FepReplayEvent(EStdKeyBackspace, EKeyBackspace, 0, 0);
+    events << FepReplayEvent('5', '5', 0, 0);
+    events << FepReplayEvent('4', '4', 0, 0);
+    events << FepReplayEvent('6', '6', 0, 0);
+    events << FepReplayEvent(EStdKeyBackspace, EKeyBackspace, 0, 0);
+    events << FepReplayEvent(EStdKeyBackspace, EKeyBackspace, 0, 0);
+    events << FepReplayEvent('1', '1', 0, 0);
+    events << FepReplayEvent(EStdKeyBackspace, EKeyBackspace, 0, 0);
+    events << FepReplayEvent('2', '2', 0, 0);
+    events << FepReplayEvent('1', '1', 0, 0);
+    QTest::newRow("Numbers (no FEP)")
+            << false
+            << Qt::InputMethodHints(Qt::ImhNone)
+            << 0
+            << QLineEdit::Normal
+            << events
+            << QString("521")
+            << QString("");
+    QTest::newRow("Numbers and password mode (no FEP)")
+            << false
+            << Qt::InputMethodHints(Qt::ImhNone)
+            << 0
+            << QLineEdit::Password
+            << events
+            << QString("521")
+            << QString("");
+    QTest::newRow("Numbers")
+            << true
+            << Qt::InputMethodHints(Qt::ImhDigitsOnly)
+            << 0
+            << QLineEdit::Normal
+            << events
+            << QString("521")
+            << QString("");
+    QTest::newRow("Numbers max length (no FEP)")
+            << false
+            << Qt::InputMethodHints(Qt::ImhNone)
+            << 2
+            << QLineEdit::Normal
+            << events
+            << QString("21")
+            << QString("");
+    QTest::newRow("Numbers max length")
+            << true
+            << Qt::InputMethodHints(Qt::ImhDigitsOnly)
+            << 2
+            << QLineEdit::Normal
+            << events
+            << QString("21")
+            << QString("");
+    events.clear();
+
+    events << FepReplayEvent(EEventKeyDown, '5', 0, 0, 0);
+    events << FepReplayEvent(EEventKey, '5', '5', 0, 0);
+    events << FepReplayEvent(EEventKey, '5', '5', 0, 1);
+    events << FepReplayEvent(EEventKey, '5', '5', 0, 1);
+    events << FepReplayEvent(EEventKeyUp, '5', 0, 0, 0);
+    QTest::newRow("Numbers and autorepeat (no FEP)")
+            << false
+            << Qt::InputMethodHints(Qt::ImhNone)
+            << 0
+            << QLineEdit::Normal
+            << events
+            << QString("555")
+            << QString("");
+    events.clear();
+
+    events << FepReplayEvent(EStdKeyBackspace, EKeyBackspace, 0, 0);
+    events << FepReplayEvent('2', '2', 0, 0);
+    events << FepReplayEvent('3', '3', 0, 0);
+    events << FepReplayEvent('4', '4', 0, 0);
+    events << FepReplayEvent('4', '4', 0, 0);
+    events << FepReplayEvent('5', '5', 0, 0);
+    events << FepReplayEvent('5', '5', 0, 0);
+    events << FepReplayEvent(EStdKeyBackspace, EKeyBackspace, 0, 0);
+    QTest::newRow("Multitap")
+            << true
+            << Qt::InputMethodHints(Qt::ImhNoPredictiveText)
+            << 0
+            << QLineEdit::Normal
+            << events
+            << QString("Adh")
+            << QString("");
+    QTest::newRow("Multitap with no auto uppercase")
+            << true
+            << Qt::InputMethodHints(Qt::ImhNoPredictiveText | Qt::ImhNoAutoUppercase)
+            << 0
+            << QLineEdit::Normal
+            << events
+            << QString("adh")
+            << QString("");
+    QTest::newRow("Multitap with uppercase")
+            << true
+            << Qt::InputMethodHints(Qt::ImhNoPredictiveText | Qt::ImhPreferUppercase)
+            << 0
+            << QLineEdit::Normal
+            << events
+            << QString("ADH")
+            << QString("");
+    QTest::newRow("Multitap with lowercase")
+            << true
+            << Qt::InputMethodHints(Qt::ImhNoPredictiveText | Qt::ImhPreferLowercase)
+            << 0
+            << QLineEdit::Normal
+            << events
+            << QString("adh")
+            << QString("");
+    QTest::newRow("Multitap with forced uppercase")
+            << true
+            << Qt::InputMethodHints(Qt::ImhNoPredictiveText | Qt::ImhUppercaseOnly)
+            << 0
+            << QLineEdit::Normal
+            << events
+            << QString("ADH")
+            << QString("");
+    QTest::newRow("Multitap with forced lowercase")
+            << true
+            << Qt::InputMethodHints(Qt::ImhNoPredictiveText | Qt::ImhLowercaseOnly)
+            << 0
+            << QLineEdit::Normal
+            << events
+            << QString("adh")
+            << QString("");
+    events.clear();
+
+    events << FepReplayEvent(EStdKeyHash, '#', 0, 0);
+    events << FepReplayEvent('2', '2', 0, 0);
+    events << FepReplayEvent('2', '2', 0, 0);
+    events << FepReplayEvent('3', '3', 0, 0);
+    events << FepReplayEvent('4', '4', 0, 0);
+    events << FepReplayEvent('4', '4', 0, 0);
+    events << FepReplayEvent('5', '5', 0, 0);
+    events << FepReplayEvent('5', '5', 0, 0);
+    events << FepReplayEvent(EStdKeyBackspace, EKeyBackspace, 0, 0);
+    QTest::newRow("Multitap with mode switch")
+            << true
+            << Qt::InputMethodHints(Qt::ImhNoPredictiveText)
+            << 0
+            << QLineEdit::Normal
+            << events
+            << QString("bdh")
+            << QString("");
+    events.clear();
+
+    events << FepReplayEvent('7', '7', 0, 0);
+    events << FepReplayEvent('7', '7', 0, 0);
+    events << FepReplayEvent('8', '8', 0, 0);
+    events << FepReplayEvent('9', '9', 0, 0);
+    events << FepReplayEvent('9', '9', 0, 0);
+    QTest::newRow("Multitap with unfinished text")
+            << true
+            << Qt::InputMethodHints(Qt::ImhNoPredictiveText)
+            << 0
+            << QLineEdit::Normal
+            << events
+            << QString("Qt")
+            << QString("x");
+    events << FepReplayEvent(2000);
+    QTest::newRow("Multitap with committed text")
+            << true
+            << Qt::InputMethodHints(Qt::ImhNoPredictiveText)
+            << 0
+            << QLineEdit::Normal
+            << events
+            << QString("Qtx")
+            << QString("");
+    events.clear();
+
+    events << FepReplayEvent('4', '4', 0, 0);
+    events << FepReplayEvent('4', '4', 0, 0);
+    // Simulate holding down hash key.
+    events << FepReplayEvent(EEventKeyDown, EStdKeyHash, 0, 0, 0);
+    events << FepReplayEvent(EEventKey, EStdKeyHash, '#', 0, 0);
+    events << FepReplayEvent(500);
+    events << FepReplayEvent(EEventKey, EStdKeyHash, '#', 0, 1);
+    events << FepReplayEvent(EEventKey, EStdKeyHash, '#', 0, 1);
+    events << FepReplayEvent(EEventKey, EStdKeyHash, '#', 0, 1);
+    events << FepReplayEvent(EEventKeyUp, EStdKeyHash, 0, 0, 0);
+    events << FepReplayEvent('7', '7', 0, 0);
+    events << FepReplayEvent('7', '7', 0, 0);
+    events << FepReplayEvent('8', '8', 0, 0);
+    // QTBUG-9867: Switch back as well to make sure we don't get extra symbols
+    events << FepReplayEvent(EEventKeyDown, EStdKeyHash, 0, 0, 0);
+    events << FepReplayEvent(EEventKey, EStdKeyHash, '#', 0, 0);
+    events << FepReplayEvent(500);
+    events << FepReplayEvent(EEventKey, EStdKeyHash, '#', 0, 1);
+    events << FepReplayEvent(EEventKey, EStdKeyHash, '#', 0, 1);
+    events << FepReplayEvent(EEventKey, EStdKeyHash, '#', 0, 1);
+    events << FepReplayEvent(EEventKeyUp, EStdKeyHash, 0, 0, 0);
+    events << FepReplayEvent('9', '9', 0, 0);
+    events << FepReplayEvent('6', '6', 0, 0);
+    events << FepReplayEvent('8', '8', 0, 0);
+    events << FepReplayEvent(2000);
+    events << FepReplayEvent(EStdKeyDevice3, EKeyDevice3, 0, 0); // Select key
+    QTest::newRow("Multitap and numbers")
+            << true
+            << Qt::InputMethodHints(Qt::ImhNoPredictiveText)
+            << 0
+            << QLineEdit::Normal
+            << events
+            << QString("H778wmt")
+            << QString("");
+    QTest::newRow("T9 and numbers")
+            << true
+            << Qt::InputMethodHints(Qt::ImhPreferLowercase)
+            << 0
+            << QLineEdit::Normal
+            << events
+            << QString("hi778you")
+            << QString("");
+    events.clear();
+
+    events << FepReplayEvent('4', '4', 0, 0);
+    events << FepReplayEvent('4', '4', 0, 0);
+    events << FepReplayEvent(EStdKeyDevice3, EKeyDevice3, 0, 0); // Select key
+    QTest::newRow("T9")
+            << true
+            << Qt::InputMethodHints(Qt::ImhPreferLowercase)
+            << 0
+            << QLineEdit::Normal
+            << events
+            << QString("hi")
+            << QString("");
+    QTest::newRow("T9 with uppercase")
+            << true
+            << Qt::InputMethodHints(Qt::ImhPreferUppercase)
+            << 0
+            << QLineEdit::Normal
+            << events
+            << QString("HI")
+            << QString("");
+    QTest::newRow("T9 with forced lowercase")
+            << true
+            << Qt::InputMethodHints(Qt::ImhLowercaseOnly)
+            << 0
+            << QLineEdit::Normal
+            << events
+            << QString("hi")
+            << QString("");
+    QTest::newRow("T9 with forced uppercase")
+            << true
+            << Qt::InputMethodHints(Qt::ImhUppercaseOnly)
+            << 0
+            << QLineEdit::Normal
+            << events
+            << QString("HI")
+            << QString("");
+    QTest::newRow("T9 with maxlength")
+            << true
+            << Qt::InputMethodHints(Qt::ImhLowercaseOnly)
+            << 1
+            << QLineEdit::Normal
+            << events
+            << QString("i")
+            << QString("");
+    events.clear();
+
+    events << FepReplayEvent('4', '4', 0, 0);
+    events << FepReplayEvent('4', '4', 0, 0);
+    events << FepReplayEvent(EStdKeyLeftArrow, EKeyLeftArrow, 0, 0);
+    events << FepReplayEvent(EStdKeyLeftArrow, EKeyLeftArrow, 0, 0);
+    events << FepReplayEvent('9', '9', 0, 0);
+    events << FepReplayEvent('6', '6', 0, 0);
+    events << FepReplayEvent('8', '8', 0, 0);
+    events << FepReplayEvent('0', '0', 0, 0);
+    events << FepReplayEvent(EStdKeyRightArrow, EKeyRightArrow, 0, 0);
+    events << FepReplayEvent(EStdKeyRightArrow, EKeyRightArrow, 0, 0);
+    events << FepReplayEvent('8', '8', 0, 0);
+    events << FepReplayEvent('8', '8', 0, 0);
+    QTest::newRow("T9 with movement and unfinished text")
+            << true
+            << Qt::InputMethodHints(Qt::ImhPreferLowercase)
+            << 0
+            << QLineEdit::Normal
+            << events
+            << QString("you hi")
+            << QString("tv");
+    QTest::newRow("T9 with movement, password and unfinished text")
+            << true
+            << Qt::InputMethodHints(Qt::ImhPreferLowercase)
+            << 0
+            << QLineEdit::Password
+            << events
+            << QString("wmt h")
+            << QString("u");
+    QTest::newRow("T9 with movement, maxlength, password and unfinished text")
+            << true
+            << Qt::InputMethodHints(Qt::ImhPreferLowercase)
+            << 2
+            << QLineEdit::Password
+            << events
+            << QString("wh")
+            << QString("");
+    QTest::newRow("T9 with movement, maxlength and unfinished text")
+            << true
+            << Qt::InputMethodHints(Qt::ImhPreferLowercase)
+            << 2
+            << QLineEdit::Normal
+            << events
+            << QString("hi")
+            << QString("");
+    QTest::newRow("Multitap with movement and unfinished text")
+            << true
+            << Qt::InputMethodHints(Qt::ImhNoPredictiveText | Qt::ImhPreferLowercase)
+            << 0
+            << QLineEdit::Normal
+            << events
+            << QString("wmt h")
+            << QString("u");
+    QTest::newRow("Multitap with movement, maxlength and unfinished text")
+            << true
+            << Qt::InputMethodHints(Qt::ImhNoPredictiveText | Qt::ImhPreferLowercase)
+            << 2
+            << QLineEdit::Normal
+            << events
+            << QString("wh")
+            << QString("");
+    QTest::newRow("Numbers with movement")
+            << true
+            << Qt::InputMethodHints(Qt::ImhDigitsOnly)
+            << 0
+            << QLineEdit::Normal
+            << events
+            << QString("96804488")
+            << QString("");
+    QTest::newRow("Numbers with movement and maxlength")
+            << true
+            << Qt::InputMethodHints(Qt::ImhDigitsOnly)
+            << 2
+            << QLineEdit::Normal
+            << events
+            << QString("44")
+            << QString("");
+    QTest::newRow("Numbers with movement, password and unfinished text")
+            << true
+            << Qt::InputMethodHints(Qt::ImhDigitsOnly)
+            << 0
+            << QLineEdit::Password
+            << events
+            << QString("9680448")
+            << QString("8");
+    QTest::newRow("Numbers with movement, maxlength, password and unfinished text")
+            << true
+            << Qt::InputMethodHints(Qt::ImhDigitsOnly)
+            << 2
+            << QLineEdit::Password
+            << events
+            << QString("44")
+            << QString("");
+    events << FepReplayEvent(EStdKeyRightArrow, EKeyRightArrow, 0, 0);
+    QTest::newRow("T9 with movement")
+            << true
+            << Qt::InputMethodHints(Qt::ImhPreferLowercase)
+            << 0
+            << QLineEdit::Normal
+            << events
+            << QString("you htvi")
+            << QString("");
+    QTest::newRow("T9 with movement and password")
+            << true
+            << Qt::InputMethodHints(Qt::ImhPreferLowercase)
+            << 0
+            << QLineEdit::Password
+            << events
+            << QString("wmt hu")
+            << QString("");
+    QTest::newRow("T9 with movement, maxlength and password")
+            << true
+            << Qt::InputMethodHints(Qt::ImhPreferLowercase)
+            << 2
+            << QLineEdit::Password
+            << events
+            << QString("wh")
+            << QString("");
+    QTest::newRow("Multitap with movement")
+            << true
+            << Qt::InputMethodHints(Qt::ImhNoPredictiveText | Qt::ImhPreferLowercase)
+            << 0
+            << QLineEdit::Normal
+            << events
+            << QString("wmt hu")
+            << QString("");
+    QTest::newRow("Multitap with movement and maxlength")
+            << true
+            << Qt::InputMethodHints(Qt::ImhNoPredictiveText | Qt::ImhPreferLowercase)
+            << 2
+            << QLineEdit::Normal
+            << events
+            << QString("wh")
+            << QString("");
+    QTest::newRow("Numbers with movement and password")
+            << true
+            << Qt::InputMethodHints(Qt::ImhDigitsOnly)
+            << 0
+            << QLineEdit::Password
+            << events
+            << QString("96804488")
+            << QString("");
+    QTest::newRow("Numbers with movement, maxlength and password")
+            << true
+            << Qt::InputMethodHints(Qt::ImhDigitsOnly)
+            << 2
+            << QLineEdit::Password
+            << events
+            << QString("44")
+            << QString("");
+    events.clear();
+#endif
+}
+
+void tst_QInputContext::symbianTestCoeFepInputContext()
+{
+#ifndef Q_OS_SYMBIAN
+    QSKIP("This is a Symbian-only test", SkipAll);
+#else
+    QCoeFepInputContext *ic = qobject_cast<QCoeFepInputContext *>(qApp->inputContext());
+    if (!ic) {
+        QSKIP("coefep is not the active input context; skipping test", SkipAll);
+    }
+
+    QFETCH(bool,                  inputMethodEnabled);
+    QFETCH(Qt::InputMethodHints,  inputMethodHints);
+    QFETCH(int,                   maxLength);
+    QFETCH(QLineEdit::EchoMode,   echoMode);
+    QFETCH(QList<FepReplayEvent>, keyEvents);
+    QFETCH(QString,               finalString);
+    QFETCH(QString,               preeditString);
+
+    if (inputMethodEnabled && m_phoneIsQwerty) {
+        QSKIP("Skipping advanced input method tests on QWERTY phones", SkipSingle);
+    }
+
+    QWidget w;
+    QLayout *layout = new QVBoxLayout;
+    w.setLayout(layout);
+    QLineEdit *lineedit = new QLineEdit;
+    layout->addWidget(lineedit);
+    lineedit->setFocus();
+#ifdef QT_KEYPAD_NAVIGATION
+    lineedit->setEditFocus(true);
+#endif
+    w.show();
+
+    lineedit->setAttribute(Qt::WA_InputMethodEnabled, inputMethodEnabled);
+    lineedit->setInputMethodHints(inputMethodHints);
+    if (maxLength > 0)
+        lineedit->setMaxLength(maxLength);
+    lineedit->setEchoMode(echoMode);
+
+    QTest::qWait(200);
+
+    foreach(FepReplayEvent event, keyEvents) {
+        event.replay(lineedit);
+    }
+
+    QApplication::processEvents();
+
+    QCOMPARE(lineedit->text(), finalString);
+    QCOMPARE(ic->m_preeditString, preeditString);
+#endif
+}
+
+void tst_QInputContext::symbianTestCoeFepAutoCommit_data()
+{
+#ifdef Q_OS_SYMBIAN
+    QTest::addColumn<Qt::InputMethodHints>   ("inputMethodHints");
+    QTest::addColumn<QLineEdit::EchoMode>    ("echoMode");
+    QTest::addColumn<QList<FepReplayEvent> > ("keyEvents");
+    QTest::addColumn<QString>                ("finalString");
+
+    QList<FepReplayEvent> events;
+
+    events << FepReplayEvent('4', '4', 0, 0);
+    events << FepReplayEvent('4', '4', 0, 0);
+    events << FepReplayEvent('0', '0', 0, 0);
+    events << FepReplayEvent('9', '9', 0, 0);
+    events << FepReplayEvent('6', '6', 0, 0);
+    events << FepReplayEvent('8', '8', 0, 0);
+    QTest::newRow("Numbers")
+            << Qt::InputMethodHints(Qt::ImhDigitsOnly)
+            << QLineEdit::Normal
+            << events
+            << QString("440968");
+    QTest::newRow("Numbers and password")
+            << Qt::InputMethodHints(Qt::ImhDigitsOnly)
+            << QLineEdit::Password
+            << events
+            << QString("440968");
+    QTest::newRow("Multitap")
+            << Qt::InputMethodHints(Qt::ImhPreferLowercase | Qt::ImhNoPredictiveText)
+            << QLineEdit::Normal
+            << events
+            << QString("h wmt");
+    QTest::newRow("T9")
+            << Qt::InputMethodHints(Qt::ImhPreferLowercase)
+            << QLineEdit::Normal
+            << events
+            << QString("hi you");
+    QTest::newRow("Multitap with password")
+            << Qt::InputMethodHints(Qt::ImhPreferLowercase | Qt::ImhNoPredictiveText)
+            << QLineEdit::Password
+            << events
+            << QString("h wmt");
+    QTest::newRow("T9 with password")
+            << Qt::InputMethodHints(Qt::ImhPreferLowercase)
+            << QLineEdit::Password
+            << events
+            << QString("h wmt");
+#endif
+}
+
+void tst_QInputContext::symbianTestCoeFepAutoCommit()
+{
+#ifndef Q_OS_SYMBIAN
+    QSKIP("This is a Symbian-only test", SkipAll);
+#else
+    QCoeFepInputContext *ic = qobject_cast<QCoeFepInputContext *>(qApp->inputContext());
+    if (!ic) {
+        QSKIP("coefep is not the active input context; skipping test", SkipAll);
+    }
+
+    QFETCH(Qt::InputMethodHints,  inputMethodHints);
+    QFETCH(QLineEdit::EchoMode,   echoMode);
+    QFETCH(QList<FepReplayEvent>, keyEvents);
+    QFETCH(QString,               finalString);
+
+    if (m_phoneIsQwerty) {
+        QSKIP("Skipping advanced input method tests on QWERTY phones", SkipSingle);
+    }
+
+    QWidget w;
+    QLayout *layout = new QVBoxLayout;
+    w.setLayout(layout);
+    QLineEdit *lineedit = new QLineEdit;
+    layout->addWidget(lineedit);
+    lineedit->setFocus();
+#ifdef QT_KEYPAD_NAVIGATION
+    lineedit->setEditFocus(true);
+#endif
+    QPushButton *pushButton = new QPushButton("Done");
+    layout->addWidget(pushButton);
+    QAction softkey("Done", &w);
+    softkey.setSoftKeyRole(QAction::PositiveSoftKey);
+    w.addAction(&softkey);
+    w.show();
+
+    lineedit->setInputMethodHints(inputMethodHints);
+    lineedit->setEchoMode(echoMode);
+
+    QTest::qWait(200);
+    foreach(FepReplayEvent event, keyEvents) {
+        event.replay(lineedit);
+    }
+    QApplication::processEvents();
+
+    QTest::mouseClick(pushButton, Qt::LeftButton);
+
+    QCOMPARE(lineedit->text(), finalString);
+    QVERIFY(ic->m_preeditString.isEmpty());
+
+#ifdef Q_WS_S60
+    lineedit->inputContext()->reset();
+    lineedit->clear();
+    lineedit->setFocus();
+#ifdef QT_KEYPAD_NAVIGATION
+    lineedit->setEditFocus(true);
+#endif
+
+    QTest::qWait(200);
+    foreach(FepReplayEvent event, keyEvents) {
+        event.replay(lineedit);
+    }
+    QApplication::processEvents();
+
+    FepReplayEvent(EStdKeyDevice0, EKeyDevice0, 0, 0).replay(lineedit); // Left softkey
+
+    QCOMPARE(lineedit->text(), finalString);
+    QVERIFY(ic->m_preeditString.isEmpty());
+
+#endif // Q_WS_S60
+#endif // Q_OS_SYMBIAN
+}
+
 QTEST_MAIN(tst_QInputContext)
 #include "tst_qinputcontext.moc"
--- a/tests/auto/qkeysequence/tst_qkeysequence.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/qkeysequence/tst_qkeysequence.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -532,20 +532,20 @@
     QTest::addColumn<QString>("transKey");
     QTest::addColumn<QString>("compKey");
 
-    QTest::newRow("Shift++") << QString(tr("Shift++")) << QString("Umschalt++");
-    QTest::newRow("Ctrl++")  << QString(tr("Ctrl++")) << QString("Strg++");
-    QTest::newRow("Alt++")   << QString(tr("Alt++")) << QString("Alt++");
-    QTest::newRow("Meta++")  << QString(tr("Meta++")) << QString("Meta++");
+    QTest::newRow("Shift++") << tr("Shift++") << QString("Umschalt++");
+    QTest::newRow("Ctrl++")  << tr("Ctrl++") << QString("Strg++");
+    QTest::newRow("Alt++")   << tr("Alt++") << QString("Alt++");
+    QTest::newRow("Meta++")  << tr("Meta++") << QString("Meta++");
 
-     QTest::newRow("Shift+,, Shift++") << QString(tr("Shift+,, Shift++")) << QString("Umschalt+,, Umschalt++");
-     QTest::newRow("Shift+,, Ctrl++")  << QString(tr("Shift+,, Ctrl++")) << QString("Umschalt+,, Strg++");
-     QTest::newRow("Shift+,, Alt++")   << QString(tr("Shift+,, Alt++")) << QString("Umschalt+,, Alt++");
-     QTest::newRow("Shift+,, Meta++")  << QString(tr("Shift+,, Meta++")) << QString("Umschalt+,, Meta++");
+    QTest::newRow("Shift+,, Shift++") << tr("Shift+,, Shift++") << QString("Umschalt+,, Umschalt++");
+    QTest::newRow("Shift+,, Ctrl++")  << tr("Shift+,, Ctrl++") << QString("Umschalt+,, Strg++");
+    QTest::newRow("Shift+,, Alt++")   << tr("Shift+,, Alt++") << QString("Umschalt+,, Alt++");
+    QTest::newRow("Shift+,, Meta++")  << tr("Shift+,, Meta++") << QString("Umschalt+,, Meta++");
 
-     QTest::newRow("Ctrl+,, Shift++") << QString(tr("Ctrl+,, Shift++")) << QString("Strg+,, Umschalt++");
-     QTest::newRow("Ctrl+,, Ctrl++") << QString(tr("Ctrl+,, Ctrl++")) << QString("Strg+,, Strg++");
-     QTest::newRow("Ctrl+,, Alt++") << QString(tr("Ctrl+,, Alt++")) << QString("Strg+,, Alt++");
-     QTest::newRow("Ctrl+,, Meta++") << QString(tr("Ctrl+,, Meta++")) << QString("Strg+,, Meta++");
+    QTest::newRow("Ctrl+,, Shift++") << tr("Ctrl+,, Shift++") << QString("Strg+,, Umschalt++");
+    QTest::newRow("Ctrl+,, Ctrl++")  << tr("Ctrl+,, Ctrl++") << QString("Strg+,, Strg++");
+    QTest::newRow("Ctrl+,, Alt++")   << tr("Ctrl+,, Alt++") << QString("Strg+,, Alt++");
+    QTest::newRow("Ctrl+,, Meta++")  << tr("Ctrl+,, Meta++") << QString("Strg+,, Meta++");
 
     qApp->removeTranslator(ourTranslator);
     qApp->removeTranslator(qtTranslator);
--- a/tests/auto/qlineedit/tst_qlineedit.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/qlineedit/tst_qlineedit.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -66,7 +66,6 @@
 #include <qspinbox.h>
 #include <qdebug.h>
 
-
 //TESTED_CLASS=
 //TESTED_FILES=
 
@@ -275,6 +274,7 @@
     void taskQTBUG_7902_contextMenuCrash();
 #endif
     void taskQTBUG_7395_readOnlyShortcut();
+    void QTBUG697_paletteCurrentColorGroup();
 
 #ifdef QT3_SUPPORT
     void validateAndSet_data();
@@ -3714,5 +3714,32 @@
     QCOMPARE(spy.count(), 1);
 }
 
+void tst_QLineEdit::QTBUG697_paletteCurrentColorGroup()
+{
+#ifndef Q_WS_X11
+    QSKIP("Only tested on X11", SkipAll);
+#endif
+    QLineEdit le;
+    le.setText("               ");
+    QPalette p = le.palette();
+    p.setBrush(QPalette::Active, QPalette::Highlight, Qt::green);
+    p.setBrush(QPalette::Inactive, QPalette::Highlight, Qt::red);
+    le.setPalette(p);
+
+    le.show();
+    QApplication::setActiveWindow(&le);
+    QTest::qWaitForWindowShown(&le);
+    le.setFocus();
+    QTRY_VERIFY(le.hasFocus());
+    le.selectAll();
+
+    QImage img(le.size(),QImage::Format_ARGB32 );
+    le.render(&img);
+    QCOMPARE(img.pixel(10, le.height()/2), QColor(Qt::green).rgb());
+    QApplication::setActiveWindow(0);
+    le.render(&img);
+    QCOMPARE(img.pixel(10, le.height()/2), QColor(Qt::red).rgb());
+}
+
 QTEST_MAIN(tst_QLineEdit)
 #include "tst_qlineedit.moc"
--- a/tests/auto/qlistview/tst_qlistview.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/qlistview/tst_qlistview.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -45,6 +45,7 @@
 #include <qabstractitemmodel.h>
 #include <qapplication.h>
 #include <qlistview.h>
+#include <qlistwidget.h>
 #include <qitemdelegate.h>
 #include <qstandarditemmodel.h>
 #include <qstringlistmodel.h>
@@ -125,6 +126,8 @@
     void taskQTBUG_5877_skippingItemInPageDownUp();
     void taskQTBUG_9455_wrongScrollbarRanges();
     void styleOptionViewItem();
+    void taskQTBUG_12308_artihmeticException();
+    void taskQTBUG_12308_wrongFlowLayout();
 };
 
 // Testing get/set functions
@@ -1653,8 +1656,8 @@
     //we'll make sure the item is repainted
     delegate.numPaints = 0;
     QApplication::processEvents();
+    QTRY_COMPARE(delegate.numPaints, 1);
     QCOMPARE(list.visualRect(index).topLeft(), topLeft);
-    QCOMPARE(delegate.numPaints, 1);
 }
 
 
@@ -2002,5 +2005,53 @@
     QApplication::processEvents();
 }
 
+void tst_QListView::taskQTBUG_12308_artihmeticException()
+{
+    QListWidget lw;
+    lw.setLayoutMode(QListView::Batched);
+    lw.setViewMode(QListView::IconMode);
+    for (int i = 0; i < lw.batchSize() + 1; i++) {
+        QListWidgetItem *item = new QListWidgetItem();
+        item->setText(QString("Item %L1").arg(i));
+        lw.addItem(item);
+        item->setHidden(true);
+    }
+    lw.show();
+    QTest::qWaitForWindowShown(&lw);
+    // No crash, it's all right.
+}
+
+class Delegate12308 : public QStyledItemDelegate
+{
+    Q_OBJECT
+public:
+    Delegate12308(QObject *parent = 0) : QStyledItemDelegate(parent)
+    { }
+
+    void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const
+    {
+        QVERIFY(option.rect.topLeft() != QPoint(-1, -1));
+        QStyledItemDelegate::paint(painter, option, index);
+    }
+};
+
+void tst_QListView::taskQTBUG_12308_wrongFlowLayout()
+{
+    QListWidget lw;
+    Delegate12308 delegate;
+    lw.setLayoutMode(QListView::Batched);
+    lw.setViewMode(QListView::IconMode);
+    lw.setItemDelegate(&delegate);
+    for (int i = 0; i < lw.batchSize() + 1; i++) {
+        QListWidgetItem *item = new QListWidgetItem();
+        item->setText(QString("Item %L1").arg(i));
+        lw.addItem(item);
+        if (!item->text().contains(QString::fromAscii("1")))
+            item->setHidden(true);
+    }
+    lw.show();
+    QTest::qWaitForWindowShown(&lw);
+}
+
 QTEST_MAIN(tst_QListView)
 #include "tst_qlistview.moc"
--- a/tests/auto/qlocale/test/test.pro	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/qlocale/test/test.pro	Mon Oct 04 01:19:32 2010 +0300
@@ -37,3 +37,5 @@
         "$${LITERAL_HASH}endif"
     MMP_RULES += custom_paged_rule
 }
+
+symbian: INCLUDEPATH *= $$MW_LAYER_SYSTEMINCLUDE  # Needed for e32svr.h in S^3 envs
--- a/tests/auto/qmake/qmake.pro	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/qmake/qmake.pro	Mon Oct 04 01:19:32 2010 +0300
@@ -1,6 +1,7 @@
 load(qttest_p4)
 HEADERS += testcompiler.h
 SOURCES += tst_qmake.cpp testcompiler.cpp
+QT -= gui
 
 cross_compile: DEFINES += QMAKE_CROSS_COMPILED
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/auto/qmake/testdata/substitutes/sub/test2.in	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,1 @@
+heya
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/auto/qmake/testdata/substitutes/test.in	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,2 @@
+test
+tst
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/auto/qmake/testdata/substitutes/test.pro	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,5 @@
+QMAKE_SUBSTITUTES += test.in sub/test2.in indirect
+
+indirect.input = $$PWD/test3.txt
+indirect.output = $$OUT_PWD/sub/indirect_test.txt
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/auto/qmake/testdata/substitutes/test3.txt	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,1 @@
+hello
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/auto/qmake/testdata/substitutes_build/README	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,1 @@
+Placeholder file to ensure this directory exists
--- a/tests/auto/qmake/tst_qmake.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/qmake/tst_qmake.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -90,6 +90,7 @@
     void bundle_spaces();
 #endif
     void includefunction();
+    void substitutes();
 
 private:
     TestCompiler test_compiler;
@@ -98,7 +99,8 @@
 
 tst_qmake::tst_qmake()
 {
-    QString cmd = QString("qmake \"QT_VERSION=%1\"").arg(QT_VERSION);
+    QString binpath = QLibraryInfo::location(QLibraryInfo::BinariesPath);
+    QString cmd = QString("%2/qmake \"QT_VERSION=%1\"").arg(QT_VERSION).arg(binpath);
 #ifdef Q_CC_MSVC
     test_compiler.setBaseCommands( "nmake", cmd );
 #elif defined(Q_CC_MINGW)
@@ -477,6 +479,23 @@
     QVERIFY(test_compiler.commandOutput().contains(warningMsg));
 }
 
+void tst_qmake::substitutes()
+{
+    QString workDir = base_path + "/testdata/substitutes";
+    QVERIFY( test_compiler.qmake( workDir, "test" ));
+    QVERIFY( test_compiler.exists( workDir, "test", Plain, "" ));
+    QVERIFY( test_compiler.exists( workDir, "sub/test2", Plain, "" ));
+    QVERIFY( test_compiler.exists( workDir, "sub/indirect_test.txt", Plain, "" ));
+    QVERIFY( test_compiler.makeDistClean( workDir ));
+
+    QString buildDir = base_path + "/testdata/substitutes_build";
+    QVERIFY( test_compiler.qmake( workDir, "test", buildDir ));
+    QVERIFY( test_compiler.exists( buildDir, "test", Plain, "" ));
+    QVERIFY( test_compiler.exists( buildDir, "sub/test2", Plain, "" ));
+    QVERIFY( test_compiler.exists( buildDir, "sub/indirect_test.txt", Plain, "" ));
+    QVERIFY( test_compiler.makeDistClean( buildDir ));
+}
+
 QTEST_MAIN(tst_qmake)
 #include "tst_qmake.moc"
 
--- a/tests/auto/qmetaobject/tst_qmetaobject.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/qmetaobject/tst_qmetaobject.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -107,7 +107,7 @@
     Q_PROPERTY(QVariantList value5 WRITE setVal5 READ val5)
     Q_PROPERTY(int value6 READ value6 NOTIFY value6Changed)
     Q_PROPERTY(MyStruct value7 READ value7 WRITE setVal7 NOTIFY value7Changed)
-    Q_PROPERTY(int value8 READ value8 NOTIFY value8Changed)
+    Q_PROPERTY(int value8 READ value8)
     Q_PROPERTY(int value9 READ value9 CONSTANT)
     Q_PROPERTY(int value10 READ value10 FINAL)
 
@@ -714,6 +714,8 @@
     QTest::newRow("const12") << "void foo(Foo<Bar>const*const *const)" << "void foo(Foo<Bar>*const*const)";
     QTest::newRow("const13") << "void foo(const Foo<Bar>&)" << "void foo(Foo<Bar>)";
     QTest::newRow("const14") << "void foo(Foo<Bar>const&)" << "void foo(Foo<Bar>)";
+
+    QTest::newRow("invalid1") << "a( b" << "a(b";
 }
 
 void tst_QMetaObject::normalizedSignature()
@@ -721,7 +723,7 @@
     QFETCH(QString, signature);
     QFETCH(QString, result);
 
-    QCOMPARE(QString::fromLatin1(QMetaObject::normalizedSignature(signature.toLatin1())), result);
+    QCOMPARE(QMetaObject::normalizedSignature(signature.toLatin1()), result.toLatin1());
 }
 
 void tst_QMetaObject::normalizedType_data()
@@ -759,7 +761,7 @@
     QFETCH(QString, type);
     QFETCH(QString, result);
 
-    QCOMPARE(QString::fromLatin1(QMetaObject::normalizedType(type.toLatin1())), result);
+    QCOMPARE(QMetaObject::normalizedType(type.toLatin1()), result.toLatin1());
 }
 
 void tst_QMetaObject::customPropertyType()
--- a/tests/auto/qnetworkreply/test/test.pro	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/qnetworkreply/test/test.pro	Mon Oct 04 01:19:32 2010 +0300
@@ -31,7 +31,7 @@
     DEPLOYMENT += certFiles
 
     # Symbian toolchain does not support correct include semantics
-    INCPATH+=..\\..\\..\\..\\include\\QtNetwork\\private
+    INCLUDEPATH+=..\\..\\..\\..\\include\\QtNetwork\\private
     # bigfile test case requires more heap
     TARGET.EPOCHEAPSIZE="0x100 0x1000000"
     TARGET.CAPABILITY="ALL -TCB"
--- a/tests/auto/qnetworkreply/tst_qnetworkreply.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/qnetworkreply/tst_qnetworkreply.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -289,6 +289,8 @@
 
     void symbianOpenCDataUrlCrash();
 
+    void qtbug12908compressedHttpReply();
+
     // NOTE: This test must be last!
     void parentingRepliesToTheApp();
 };
@@ -4274,6 +4276,30 @@
     QCOMPARE(reply->header(QNetworkRequest::ContentLengthHeader).toLongLong(), qint64(598));
 }
 
+// TODO:
+// Prepare a gzip that has one chunk that expands to the size mentioned in the bugreport.
+// Then have a custom HTTP server that waits after this chunk so the returning gets
+// triggered.
+void tst_QNetworkReply::qtbug12908compressedHttpReply()
+{
+    QString header("HTTP/1.0 200 OK\r\nContent-Encoding: gzip\r\nContent-Length: 63\r\n\r\n");
+
+    // dd if=/dev/zero of=qtbug-12908 bs=16384  count=1 && gzip qtbug-12908 && base64 -w 0 qtbug-12908.gz
+    QString encodedFile("H4sICDdDaUwAA3F0YnVnLTEyOTA4AO3BMQEAAADCoPVPbQwfoAAAAAAAAAAAAAAAAAAAAIC3AYbSVKsAQAAA");
+    QByteArray decodedFile = QByteArray::fromBase64(encodedFile.toAscii());
+
+    MiniHttpServer server(header.toAscii() + decodedFile);
+    server.doClose = true;
+
+    QNetworkRequest request(QUrl("http://localhost:" + QString::number(server.serverPort())));
+    QNetworkReplyPtr reply = manager.get(request);
+
+    connect(reply, SIGNAL(finished()), &QTestEventLoop::instance(), SLOT(exitLoop()));
+    QTestEventLoop::instance().enterLoop(10);
+    QVERIFY(!QTestEventLoop::instance().timeout());
+
+    QCOMPARE(reply->error(), QNetworkReply::NoError);
+}
 
 
 // NOTE: This test must be last testcase in tst_qnetworkreply!
--- a/tests/auto/qnetworksession/test/tst_qnetworksession.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/qnetworksession/test/tst_qnetworksession.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -88,7 +88,7 @@
     void sessionStop();
 
     void roamingErrorCodes();
-    
+
     void sessionProperties_data();
     void sessionProperties();
 
@@ -918,6 +918,10 @@
         session.waitForOpened();
 #endif        
 
+        // Wait until the configuration is uptodate as well, it may be signaled 'connected'
+        // bit later than the session
+        QTRY_VERIFY(configuration.state() == QNetworkConfiguration::Active);
+
         if (session.isOpen())
             QVERIFY(!sessionOpenedSpy.isEmpty() || !errorSpy.isEmpty());
         if (!errorSpy.isEmpty()) {
@@ -1131,8 +1135,9 @@
                         roamedSuccessfully = true;
                     } else if (state == QNetworkSession::Closing) {
                         QTRY_VERIFY(session2.state() == QNetworkSession::Disconnected);
-                        QTRY_VERIFY(session.state() == QNetworkSession::Connected);
-                        roamedSuccessfully = true;
+                        QTRY_VERIFY(session.state() == QNetworkSession::Connected ||
+                                    session.state() == QNetworkSession::Disconnected);
+                        roamedSuccessfully = false;
                     } else if (state == QNetworkSession::Disconnected) {
                         QTRY_VERIFY(!errorSpy.isEmpty());
                         QTRY_VERIFY(session2.state() == QNetworkSession::Disconnected);
--- a/tests/auto/qpainter/tst_qpainter.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/qpainter/tst_qpainter.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -4176,14 +4176,18 @@
     p.setWorldTransform(QTransform().scale(0.5, 0.5), true);
 }
 
-bool testCompositionMode(int src, int dst, int expected, QPainter::CompositionMode op)
+bool testCompositionMode(int src, int dst, int expected, QPainter::CompositionMode op, qreal opacity = 1.0)
 {
-    QImage actual(1, 1, QImage::Format_ARGB32_Premultiplied);
+    // The test image needs to be large enough to test SIMD code
+    const QSize imageSize(100, 100);
+
+    QImage actual(imageSize, QImage::Format_ARGB32_Premultiplied);
     actual.fill(QColor(dst, dst, dst).rgb());
 
     QPainter p(&actual);
     p.setCompositionMode(op);
-    p.fillRect(0, 0, 1, 1, QColor(src, src, src));
+    p.setOpacity(opacity);
+    p.fillRect(QRect(QPoint(), imageSize), QColor(src, src, src));
     p.end();
 
     if (qRed(actual.pixel(0, 0)) != expected) {
@@ -4191,7 +4195,9 @@
                src, dst, qRed(actual.pixel(0, 0)), expected);
         return false;
     } else {
-        return true;
+        QImage refImage(imageSize, QImage::Format_ARGB32_Premultiplied);
+        refImage.fill(QColor(expected, expected, expected).rgb());
+        return actual == refImage;
     }
 }
 
@@ -4206,6 +4212,16 @@
     QVERIFY(testCompositionMode(  0, 255, 255, QPainter::CompositionMode_Plus));
     QVERIFY(testCompositionMode(128, 128, 255, QPainter::CompositionMode_Plus));
 
+    QVERIFY(testCompositionMode(255, 255, 255, QPainter::CompositionMode_Plus, 0.3));
+    QVERIFY(testCompositionMode(  0,   0,   0, QPainter::CompositionMode_Plus, 0.3));
+    QVERIFY(testCompositionMode(127, 128, 165, QPainter::CompositionMode_Plus, 0.3));
+    QVERIFY(testCompositionMode(127,   0,  37, QPainter::CompositionMode_Plus, 0.3));
+    QVERIFY(testCompositionMode(  0, 127, 127, QPainter::CompositionMode_Plus, 0.3));
+    QVERIFY(testCompositionMode(255,   0,  75, QPainter::CompositionMode_Plus, 0.3));
+    QVERIFY(testCompositionMode(  0, 255, 255, QPainter::CompositionMode_Plus, 0.3));
+    QVERIFY(testCompositionMode(128, 128, 166, QPainter::CompositionMode_Plus, 0.3));
+    QVERIFY(testCompositionMode(186, 200, 255, QPainter::CompositionMode_Plus, 0.3));
+
     QVERIFY(testCompositionMode(255, 255, 255, QPainter::CompositionMode_Multiply));
     QVERIFY(testCompositionMode(  0,   0,   0, QPainter::CompositionMode_Multiply));
     QVERIFY(testCompositionMode(127, 255, 127, QPainter::CompositionMode_Multiply));
--- a/tests/auto/qpauseanimation/tst_qpauseanimation.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/qpauseanimation/tst_qpauseanimation.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -280,7 +280,7 @@
 
     QVERIFY(group.state() == QAbstractAnimation::Running);
     QVERIFY(animation1.state() == QAbstractAnimation::Stopped);
-    QCOMPARE(&animation2, group.currentAnimation());
+    QCOMPARE((QAbstractAnimation*)&animation2, group.currentAnimation());
     QVERIFY(animation2.state() == QAbstractAnimation::Running);
     QVERIFY(animation3.state() == QAbstractAnimation::Stopped);
 
@@ -292,7 +292,7 @@
     QVERIFY(group.state() == QAbstractAnimation::Running);
     QVERIFY(animation1.state() == QAbstractAnimation::Stopped);
     QVERIFY(animation2.state() == QAbstractAnimation::Stopped);
-    QCOMPARE(&animation3, group.currentAnimation());
+    QCOMPARE((QAbstractAnimation*)&animation3, group.currentAnimation());
     QVERIFY(animation3.state() == QAbstractAnimation::Running);
 
     group.setCurrentTime(750);
@@ -329,7 +329,7 @@
 
     QVERIFY(group.state() == QAbstractAnimation::Running);
     QVERIFY(animation.state() == QAbstractAnimation::Stopped);
-    QCOMPARE(&pause, group.currentAnimation());
+    QCOMPARE((QAbstractAnimation*)&pause, group.currentAnimation());
     QVERIFY(pause.state() == QAbstractAnimation::Running);
 
     group.setCurrentTime(600);
--- a/tests/auto/qpen/tst_qpen.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/qpen/tst_qpen.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -213,6 +213,5 @@
     QCOMPARE(pen, cmp);
 }
 
-
 QTEST_APPLESS_MAIN(tst_QPen)
 #include "tst_qpen.moc"
--- a/tests/auto/qpixmap/tst_qpixmap.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/qpixmap/tst_qpixmap.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -1558,6 +1558,8 @@
     const QString prefix = QLatin1String(SRCDIR) + "/loadFromData";
 #endif
     QTest::newRow("designer_argb32.png") << prefix + "/designer_argb32.png";
+    // When no extension is provided we try all extensions that has been registered by image providers
+    QTest::newRow("designer_argb32") << prefix + "/designer_argb32.png";
     QTest::newRow("designer_indexed8_no_alpha.png") << prefix + "/designer_indexed8_no_alpha.png";
     QTest::newRow("designer_indexed8_with_alpha.png") << prefix + "/designer_indexed8_with_alpha.png";
     QTest::newRow("designer_rgb32.png") << prefix + "/designer_rgb32.png";
@@ -1673,31 +1675,39 @@
 void tst_QPixmap::loadAsBitmapOrPixmap()
 {
     QImage tmp(10, 10, QImage::Format_RGB32);
-    tmp.save("tmp.png");
+    tmp.save("temp_image.png");
 
     bool ok;
 
     // Check that we can load the pixmap as a pixmap and that it then turns into a pixmap
-    QPixmap pixmap("tmp.png");
+    QPixmap pixmap("temp_image.png");
     QVERIFY(!pixmap.isNull());
     QVERIFY(pixmap.depth() > 1);
     QVERIFY(!pixmap.isQBitmap());
 
     pixmap = QPixmap();
-    ok = pixmap.load("tmp.png");
+    ok = pixmap.load("temp_image.png");
+    QVERIFY(ok);
+    QVERIFY(!pixmap.isNull());
+    QVERIFY(pixmap.depth() > 1);
+    QVERIFY(!pixmap.isQBitmap());
+
+    //now we can try to load it without an extension
+    pixmap = QPixmap();
+    ok = pixmap.load("temp_image");
     QVERIFY(ok);
     QVERIFY(!pixmap.isNull());
     QVERIFY(pixmap.depth() > 1);
     QVERIFY(!pixmap.isQBitmap());
 
     // The do the same check for bitmaps..
-    QBitmap bitmap("tmp.png");
+    QBitmap bitmap("temp_image.png");
     QVERIFY(!bitmap.isNull());
     QVERIFY(bitmap.depth() == 1);
     QVERIFY(bitmap.isQBitmap());
 
     bitmap = QBitmap();
-    ok = bitmap.load("tmp.png");
+    ok = bitmap.load("temp_image.png");
     QVERIFY(ok);
     QVERIFY(!bitmap.isNull());
     QVERIFY(bitmap.depth() == 1);
--- a/tests/auto/qpixmapcache/tst_qpixmapcache.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/qpixmapcache/tst_qpixmapcache.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -497,26 +497,22 @@
     QVERIFY(!getPrivate(key8));
 }
 
-//QTP: remove temporarily to get the code compiled.
-// The following function is implemented in qpixmapcache.cpp in GUI but export for 
-// auto test only with marco Q_AUTOTEST_EXPORT
-
-//QT_BEGIN_NAMESPACE
-//extern int q_QPixmapCache_keyHashSize();
-//QT_END_NAMESPACE
+QT_BEGIN_NAMESPACE
+extern int q_QPixmapCache_keyHashSize();
+QT_END_NAMESPACE
 
 void tst_QPixmapCache::noLeak()
 {
     QPixmapCache::Key key;
 
-    int oldSize = 0;//q_QPixmapCache_keyHashSize();
+    int oldSize = q_QPixmapCache_keyHashSize();
     for (int i = 0; i < 100; ++i) {
         QPixmap pm(128, 128);
         pm.fill(Qt::transparent);
         key = QPixmapCache::insert(pm);
         QPixmapCache::remove(key);
     }
-    int newSize = 0;//q_QPixmapCache_keyHashSize();
+    int newSize = q_QPixmapCache_keyHashSize();
 
     QCOMPARE(oldSize, newSize);
 }
--- a/tests/auto/qpluginloader/lib/lib.pro	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/qpluginloader/lib/lib.pro	Mon Oct 04 01:19:32 2010 +0300
@@ -2,7 +2,7 @@
 CONFIG += dll
 CONFIG -= staticlib
 SOURCES		= mylib.c
-TARGET = mylib
+TARGET = tst_qpluginloaderlib
 DESTDIR = ../bin
 QT = core
 
--- a/tests/auto/qpluginloader/tst/tst.pro	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/qpluginloader/tst/tst.pro	Mon Oct 04 01:19:32 2010 +0300
@@ -20,7 +20,7 @@
 }
 
 symbian: {
-   libDep.sources = mylib.dll
+   libDep.sources = tst_qpluginloaderlib.dll
    libDep.path = /sys/bin
    pluginDep.sources = theplugin.dll
    pluginDep.path = bin
--- a/tests/auto/qpluginloader/tst_qpluginloader.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/qpluginloader/tst_qpluginloader.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -169,7 +169,7 @@
     QCOMPARE(loader.errorString(), unknown);
     }
     {
-    QPluginLoader loader( sys_qualifiedLibraryName("mylib"));     //not a plugin
+    QPluginLoader loader( sys_qualifiedLibraryName("tst_qpluginloaderlib"));     //not a plugin
     bool loaded = loader.load();
 #ifdef SHOW_ERRORS
     qDebug() << loader.errorString();
--- a/tests/auto/qregexp/tst_qregexp.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/qregexp/tst_qregexp.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -105,6 +105,7 @@
 
     void QTBUG_7049_data();
     void QTBUG_7049();
+    void interval();
 };
 
 // Testing get/set functions
@@ -1426,5 +1427,22 @@
     QCOMPARE( re.cap(2), cap2 );
 }
 
+void tst_QRegExp::interval()
+{
+    {
+        QRegExp exp("a{0,1}");
+        QVERIFY(exp.isValid());
+    }
+    {
+        QRegExp exp("a{1,1}");
+        QVERIFY(exp.isValid());
+    }
+    {
+        QRegExp exp("a{1,0}");
+        QVERIFY(!exp.isValid());
+    }
+}
+
+
 QTEST_APPLESS_MAIN(tst_QRegExp)
 #include "tst_qregexp.moc"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/auto/qscriptengine/idtranslatable.js	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,5 @@
+qsTrId("qtn_foo_bar");
+
+var more_greeting_strings = [ QT_TRID_NOOP("qtn_needle"), QT_TRID_NOOP("qtn_haystack") ];
+
+qsTrId("qtn_bar_baz", 10);
--- a/tests/auto/qscriptengine/qscriptengine.qrc	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/qscriptengine/qscriptengine.qrc	Mon Oct 04 01:19:32 2010 +0300
@@ -1,5 +1,6 @@
 <!DOCTYPE RCC><RCC version="1.0">
 <qresource>
    <file>translations/translatable_la.qm</file>
+   <file>translations/idtranslatable_la.qm</file>
 </qresource>
 </RCC>
Binary file tests/auto/qscriptengine/translations/idtranslatable_la.qm has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/auto/qscriptengine/translations/idtranslatable_la.ts	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="nb_NO">
+<context>
+    <name></name>
+    <message id="qtn_foo_bar">
+        <location filename="idtranslatable.js" line="1"/>
+        <source></source>
+        <translation>First string</translation>
+    </message>
+    <message id="qtn_needle">
+        <location filename="idtranslatable.js" line="3"/>
+        <source></source>
+        <translation>Second string</translation>
+    </message>
+    <message id="qtn_haystack">
+        <location filename="idtranslatable.js" line="3"/>
+        <source></source>
+        <translation>Third string</translation>
+    </message>
+    <message id="qtn_bar_baz" numerus="yes">
+        <location filename="idtranslatable.js" line="5"/>
+        <source></source>
+        <translation>
+            <numerusform>Fourth string</numerusform>
+            <numerusform>%n fooish bar(s) found</numerusform>
+        </translation>
+    </message>
+</context>
+</TS>
--- a/tests/auto/qscriptengine/tst_qscriptengine.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/qscriptengine/tst_qscriptengine.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -162,6 +162,7 @@
     void translateWithInvalidArgs();
     void translationContext_data();
     void translationContext();
+    void translateScriptIdBased();
     void functionScopes();
     void nativeFunctionScopes();
     void evaluateProgram();
@@ -4386,6 +4387,8 @@
     QVERIFY(!global.property("QT_TRANSLATE_NOOP").isValid());
     QVERIFY(!global.property("qsTr").isValid());
     QVERIFY(!global.property("QT_TR_NOOP").isValid());
+    QVERIFY(!global.property("qsTrId").isValid());
+    QVERIFY(!global.property("QT_TRID_NOOP").isValid());
     QVERIFY(!globalOrig.property("String").property("prototype").property("arg").isValid());
 
     eng.installTranslatorFunctions();
@@ -4393,6 +4396,8 @@
     QVERIFY(global.property("QT_TRANSLATE_NOOP").isFunction());
     QVERIFY(global.property("qsTr").isFunction());
     QVERIFY(global.property("QT_TR_NOOP").isFunction());
+    QVERIFY(global.property("qsTrId").isFunction());
+    QVERIFY(global.property("QT_TRID_NOOP").isFunction());
     QVERIFY(globalOrig.property("String").property("prototype").property("arg").isFunction());
 
     if (useCustomGlobalObject) {
@@ -4400,6 +4405,8 @@
         QVERIFY(!globalOrig.property("QT_TRANSLATE_NOOP").isValid());
         QVERIFY(!globalOrig.property("qsTr").isValid());
         QVERIFY(!globalOrig.property("QT_TR_NOOP").isValid());
+        QVERIFY(!globalOrig.property("qsTrId").isValid());
+        QVERIFY(!globalOrig.property("QT_TRID_NOOP").isValid());
     }
 
     {
@@ -4427,6 +4434,17 @@
         QVERIFY(ret.isString());
         QCOMPARE(ret.toString(), QString::fromLatin1("foobar"));
     }
+
+    {
+        QScriptValue ret = eng.evaluate("qsTrId('foo')");
+        QVERIFY(ret.isString());
+        QCOMPARE(ret.toString(), QString::fromLatin1("foo"));
+    }
+    {
+        QScriptValue ret = eng.evaluate("QT_TRID_NOOP('foo')");
+        QVERIFY(ret.isString());
+        QCOMPARE(ret.toString(), QString::fromLatin1("foo"));
+    }
 }
 
 static QScriptValue callQsTr(QScriptContext *ctx, QScriptEngine *eng)
@@ -4537,6 +4555,10 @@
     QTest::newRow("qsTranslate('foo', 'bar', 'baz', 123)")  << "qsTranslate('foo', 'bar', 'baz', 123)" << "Error: qsTranslate(): fourth argument (encoding) must be a string";
     QTest::newRow("qsTranslate('foo', 'bar', 'baz', 'zab', 'rab')")  << "qsTranslate('foo', 'bar', 'baz', 'zab', 'rab')" << "Error: qsTranslate(): fifth argument (n) must be a number";
     QTest::newRow("qsTranslate('foo', 'bar', 'baz', 'zab', 123)")  << "qsTranslate('foo', 'bar', 'baz', 'zab', 123)" << "Error: qsTranslate(): invalid encoding 'zab'";
+
+    QTest::newRow("qsTrId()")  << "qsTrId()" << "Error: qsTrId() requires at least one argument";
+    QTest::newRow("qsTrId(123)")  << "qsTrId(123)" << "TypeError: qsTrId(): first argument (id) must be a string";
+    QTest::newRow("qsTrId('foo', 'bar')")  << "qsTrId('foo', 'bar')" << "TypeError: qsTrId(): second argument (n) must be a number";
 }
 
 void tst_QScriptEngine::translateWithInvalidArgs()
@@ -4598,6 +4620,53 @@
     QCoreApplication::instance()->removeTranslator(&translator);
 }
 
+void tst_QScriptEngine::translateScriptIdBased()
+{
+    QScriptEngine engine;
+
+    QTranslator translator;
+    translator.load(":/translations/idtranslatable_la");
+    QCoreApplication::instance()->installTranslator(&translator);
+    engine.installTranslatorFunctions();
+
+    QString fileName = QString::fromLatin1("idtranslatable.js");
+
+    QHash<QString, QString> expectedTranslations;
+    expectedTranslations["qtn_foo_bar"] = "First string";
+    expectedTranslations["qtn_needle"] = "Second string";
+    expectedTranslations["qtn_haystack"] = "Third string";
+    expectedTranslations["qtn_bar_baz"] = "Fourth string";
+
+    QHash<QString, QString>::const_iterator it;
+    for (it = expectedTranslations.constBegin(); it != expectedTranslations.constEnd(); ++it) {
+        for (int x = 0; x < 2; ++x) {
+            QString fn;
+            if (x)
+                fn = fileName;
+            // Top-level
+            QCOMPARE(engine.evaluate(QString::fromLatin1("qsTrId('%0')")
+                                     .arg(it.key()), fn).toString(),
+                     it.value());
+            QCOMPARE(engine.evaluate(QString::fromLatin1("QT_TRID_NOOP('%0')")
+                                     .arg(it.key()), fn).toString(),
+                     it.key());
+            // From function
+            QCOMPARE(engine.evaluate(QString::fromLatin1("(function() { return qsTrId('%0'); })()")
+                                     .arg(it.key()), fn).toString(),
+                     it.value());
+            QCOMPARE(engine.evaluate(QString::fromLatin1("(function() { return QT_TRID_NOOP('%0'); })()")
+                                     .arg(it.key()), fn).toString(),
+                     it.key());
+        }
+    }
+
+    // Plural form
+    QCOMPARE(engine.evaluate("qsTrId('qtn_bar_baz', 10)").toString(),
+             QString::fromLatin1("10 fooish bar(s) found"));
+    QCOMPARE(engine.evaluate("qsTrId('qtn_foo_bar', 10)").toString(),
+             QString::fromLatin1("qtn_foo_bar")); // Doesn't have plural
+}
+
 void tst_QScriptEngine::functionScopes()
 {
     QScriptEngine eng;
--- a/tests/auto/qscriptengineagent/tst_qscriptengineagent.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/qscriptengineagent/tst_qscriptengineagent.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -97,6 +97,7 @@
     void functionEntryAndExit_objectCall();
     void positionChange_1();
     void positionChange_2();
+    void positionChange_3();
     void exceptionThrowAndCatch();
     void eventOrder_assigment();
     void eventOrder_functionDefinition();
@@ -116,6 +117,8 @@
     void evaluateProgram_SyntaxError();
     void evaluateNullProgram();
     void QTBUG6108();
+    void backtraces_data();
+    void backtraces();
 
 private:
     double m_testProperty;
@@ -1623,6 +1626,56 @@
     delete spy;
 }
 
+void tst_QScriptEngineAgent::positionChange_3()
+{
+    QScriptEngine eng;
+    eng.evaluate("function some_function1(a) {\n a++; \n return a + 12; } \n some_function1(42);", "function1.qs", 12);
+    QScriptValue some_function2 = eng.evaluate("(function (b) {\n b--; \n return b + 11; })", "function2.qs", 21);
+    some_function2.call(QScriptValue(), QScriptValueList() << 2 );
+
+    // Test that the agent work, even if installed after the function has been evaluated.
+    ScriptEngineSpy *spy = new ScriptEngineSpy(&eng, ~(ScriptEngineSpy::IgnorePositionChange));
+    {
+        spy->clear();
+        QScriptValue v = eng.evaluate("some_function1(15)");
+        QCOMPARE(v.toInt32(), (15+1+12));
+        QCOMPARE(spy->count(), 3);
+
+        // some_function1()
+        QCOMPARE(spy->at(0).type, ScriptEngineEvent::PositionChange);
+        QVERIFY(spy->at(0).scriptId != -1);
+        QCOMPARE(spy->at(0).lineNumber, 1);
+
+        // a++
+        QCOMPARE(spy->at(1).type, ScriptEngineEvent::PositionChange);
+        QVERIFY(spy->at(1).scriptId != spy->at(0).scriptId);
+        QCOMPARE(spy->at(1).lineNumber, 13);
+        // return a + 12
+        QCOMPARE(spy->at(2).type, ScriptEngineEvent::PositionChange);
+        QVERIFY(spy->at(2).scriptId == spy->at(1).scriptId);
+        QCOMPARE(spy->at(2).lineNumber, 14);
+    }
+
+    {
+        spy->clear();
+        QScriptValue v = some_function2.call(QScriptValue(), QScriptValueList() << 89 );
+        QCOMPARE(v.toInt32(), (89-1+11));
+        QCOMPARE(spy->count(), 2);
+
+        // b--
+        QCOMPARE(spy->at(0).type, ScriptEngineEvent::PositionChange);
+        QVERIFY(spy->at(0).scriptId != -1);
+        QCOMPARE(spy->at(0).lineNumber, 22);
+        // return b + 11
+        QCOMPARE(spy->at(1).type, ScriptEngineEvent::PositionChange);
+        QVERIFY(spy->at(1).scriptId == spy->at(0).scriptId);
+        QCOMPARE(spy->at(1).lineNumber, 23);
+    }
+
+    QVERIFY(!eng.hasUncaughtException());
+}
+
+
 void tst_QScriptEngineAgent::exceptionThrowAndCatch()
 {
     QScriptEngine eng;
@@ -2379,5 +2432,86 @@
     QCOMPARE(spy->at(4).scriptId, spy->at(0).scriptId);
 }
 
+class BacktraceSpy : public QScriptEngineAgent
+{
+public:
+    BacktraceSpy(QScriptEngine *engine, const QStringList &expectedbacktrace, int breakpoint)
+        : QScriptEngineAgent(engine), expectedbacktrace(expectedbacktrace), breakpoint(breakpoint), ok(false) {}
+
+    QStringList expectedbacktrace;
+    int breakpoint;
+    bool ok;
+
+protected:
+
+    void exceptionThrow(qint64 , const QScriptValue &, bool)
+    {  check();  }
+
+    void positionChange(qint64 , int lineNumber, int )
+    {
+        if (lineNumber == breakpoint)
+            check();
+    }
+
+private:
+    void check()
+    {
+        QCOMPARE(engine()->currentContext()->backtrace(), expectedbacktrace);
+        ok = true;
+    }
+};
+
+
+void tst_QScriptEngineAgent::backtraces_data()
+{
+    QTest::addColumn<QString>("code");
+    QTest::addColumn<int>("breakpoint");
+    QTest::addColumn<QStringList>("expectedbacktrace");
+
+    {
+        QString source(
+            "function foo() {\n"
+            "  var a = 5\n"
+            "}\n"
+            "foo('hello', { })\n"
+            "var r = 0;");
+
+        QStringList expected;
+        expected
+            << "foo('hello', [object Object]) at filename.js:2"
+            << "<global>() at filename.js:4";
+        QTest::newRow("simple breakpoint") << source <<  2 << expected;
+    }
+
+    {
+        QString source(
+            "function foo() {\n"
+            "  error = err\n" //this must throw
+            "}\n"
+            "foo('hello', { })\n"
+            "var r = 0;");
+
+        QStringList expected;
+        expected
+            << "foo('hello', [object Object]) at filename.js:2"
+            << "<global>() at filename.js:4";
+        QTest::newRow("throw because of error") << source <<  -100 << expected;
+    }
+}
+
+void tst_QScriptEngineAgent::backtraces()
+{
+    QFETCH(QString, code);
+    QFETCH(int, breakpoint);
+    QFETCH(QStringList, expectedbacktrace);
+
+    QScriptEngine eng;
+    BacktraceSpy *spy = new BacktraceSpy(&eng, expectedbacktrace, breakpoint);
+    eng.setAgent(spy);
+    QLatin1String filename("filename.js");
+    eng.evaluate(code, filename);
+    QVERIFY(spy->ok);
+}
+
 QTEST_MAIN(tst_QScriptEngineAgent)
 #include "tst_qscriptengineagent.moc"
--- a/tests/auto/qsocks5socketengine/qsocks5socketengine.pro	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/qsocks5socketengine/qsocks5socketengine.pro	Mon Oct 04 01:19:32 2010 +0300
@@ -10,7 +10,7 @@
 QT = core network
 
 # Symbian toolchain does not support correct include semantics
-symbian:INCPATH+=..\\..\\..\\include\\QtNetwork\\private
+symbian:INCLUDEPATH+=..\\..\\..\\include\\QtNetwork\\private
 symbian: TARGET.CAPABILITY = NetworkServices
 
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/auto/qsslcertificate/more-certificates/cert-large-expiration-date.pem	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,15 @@
+-----BEGIN CERTIFICATE-----
+MIICWjCCAcOgAwIBAgIJAM7bMShFxAVAMA0GCSqGSIb3DQEBBQUAMEUxCzAJBgNV
+BAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRlcm5ldCBX
+aWRnaXRzIFB0eSBMdGQwIBcNMTAwODA0MDk1MzQxWhgPMjA1MTA4MjkwOTUzNDFa
+MEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJ
+bnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ
+AoGBAM2q22/WNMmn8cC+5EEYGeICySLmp9W6Ay6eKHr0Xxp3X3epETuPfvAuxp7r
+OtkS18EMUegkUj8jw0IMEcbyHKFC/rTCaYOt93CxGBXMIChiMPAsFeYzGa/D6xzA
+kfcRaJRQ+Ek3CDLXPnXfo7xpABXezYcPXAJrgsgBfWrwHdxzAgMBAAGjUDBOMB0G
+A1UdDgQWBBSKbhnnl5uP2X+zuwFP6GovUpUN2TAfBgNVHSMEGDAWgBSKbhnnl5uP
+2X+zuwFP6GovUpUN2TAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBQUAA4GBAKF0
+jl02liwFfupmzC5oxz2T3IyjEa21fm7QBMQJvQr5OTuX1/C7DAl7g/6/h7BH6JS3
+qpx5rXGet8SZmG8dODL4o3U4xOXnNzch7HtQixWwlx4XnFAXPMHflFX7YC5QQNHq
+I8Y8IW+XjAYWpYJywWMUZIbr1/9y9gn1beYEE3pq
+-----END CERTIFICATE-----
--- a/tests/auto/qsslcertificate/tst_qsslcertificate.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/qsslcertificate/tst_qsslcertificate.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -110,6 +110,7 @@
     void nulInCN();
     void nulInSan();
     void largeSerialNumber();
+    void largeExpirationDate();
 // ### add tests for certificate bundles (multiple certificates concatenated into a single
 //     structure); both PEM and DER formatted
 #endif
@@ -802,6 +803,20 @@
     QCOMPARE(cert.serialNumber(), QByteArray("01:02:03:04:05:06:07:08:09:10:aa:bb:cc:dd:ee:ff:17:18:19:20"));
 }
 
+void tst_QSslCertificate::largeExpirationDate() // QTBUG-12489
+{
+    QList<QSslCertificate> certList =
+        QSslCertificate::fromPath(SRCDIR "more-certificates/cert-large-expiration-date.pem");
+
+    QCOMPARE(certList.size(), 1);
+
+    const QSslCertificate &cert = certList.at(0);
+    QVERIFY(!cert.isNull());
+    QCOMPARE(cert.effectiveDate().toUTC(), QDateTime(QDate(2010, 8, 4), QTime(9, 53, 41), Qt::UTC));
+    // if the date is larger than 2049, then the generalized time format is used
+    QCOMPARE(cert.expiryDate().toUTC(), QDateTime(QDate(2051, 8, 29), QTime(9, 53, 41), Qt::UTC));
+}
+
 #endif // QT_NO_OPENSSL
 
 QTEST_MAIN(tst_QSslCertificate)
--- a/tests/auto/qsslsocket/qsslsocket.pro	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/qsslsocket/qsslsocket.pro	Mon Oct 04 01:19:32 2010 +0300
@@ -29,6 +29,7 @@
     certFiles.sources = certs ssl.tar.gz
     certFiles.path    = .
     DEPLOYMENT += certFiles
+    INCLUDEPATH *= $$MW_LAYER_SYSTEMINCLUDE  # Needed for e32svr.h in S^3 envs
 } else {
     DEFINES += SRCDIR=\\\"$$PWD/\\\"
 }
--- a/tests/auto/qsslsocket/tst_qsslsocket.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/qsslsocket/tst_qsslsocket.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -183,6 +183,7 @@
     void ignoreSslErrorsListWithSlot();
     void readFromClosedSocket();
     void writeBigChunk();
+    void setEmptyDefaultConfiguration();
 
     static void exitLoop()
     {
@@ -1072,6 +1073,7 @@
     QCOMPARE( QSslSocketBackendPrivate::isMatchingHostname(QString("*.example.com"), QString("www.example.com")), true );
     QCOMPARE( QSslSocketBackendPrivate::isMatchingHostname(QString("xxx*.example.com"), QString("xxxwww.example.com")), true );
     QCOMPARE( QSslSocketBackendPrivate::isMatchingHostname(QString("f*.example.com"), QString("foo.example.com")), true );
+    QCOMPARE( QSslSocketBackendPrivate::isMatchingHostname(QString("192.168.0.0"), QString("192.168.0.0")), true );
 
     // Failing CN matches
     QCOMPARE( QSslSocketBackendPrivate::isMatchingHostname(QString("xxx.example.com"), QString("www.example.com")), false );
@@ -1085,6 +1087,7 @@
     QCOMPARE( QSslSocketBackendPrivate::isMatchingHostname(QString("*.example."), QString("www.example")), false );
     QCOMPARE( QSslSocketBackendPrivate::isMatchingHostname(QString(""), QString("www")), false );
     QCOMPARE( QSslSocketBackendPrivate::isMatchingHostname(QString("*"), QString("www")), false );
+    QCOMPARE( QSslSocketBackendPrivate::isMatchingHostname(QString("*.168.0.0"), QString("192.168.0.0")), false );
 }
 
 void tst_QSslSocket::wildcard()
@@ -1833,6 +1836,21 @@
     socket->close();
 }
 
+void tst_QSslSocket::setEmptyDefaultConfiguration()
+{
+    // used to produce a crash in QSslConfigurationPrivate::deepCopyDefaultConfiguration, QTBUG-13265
+
+    if (!QSslSocket::supportsSsl())
+        return;
+
+    QSslConfiguration emptyConf;
+    QSslConfiguration::setDefaultConfiguration(emptyConf);
+
+    QSslSocketPtr socket = newSocket();
+    socket->connectToHostEncrypted(QtNetworkSettings::serverName(), 443);
+
+}
+
 #endif // QT_NO_OPENSSL
 
 QTEST_MAIN(tst_QSslSocket)
--- a/tests/auto/qstatictext/tst_qstatictext.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/qstatictext/tst_qstatictext.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -73,6 +73,8 @@
     void prepareToCorrectData();
     void prepareToWrongData();
 
+    void copyConstructor();
+
     void translatedPainter();
     void rotatedPainter();
     void scaledPainter();
@@ -85,6 +87,10 @@
     void setPenPlainText();
     void setPenRichText();
     void richTextOverridesPen();
+
+    void drawStruckOutText();
+    void drawOverlinedText();
+    void drawUnderlinedText();
 };
 
 void tst_QStaticText::init()
@@ -100,6 +106,31 @@
     QStaticText text("My text");
 }
 
+void tst_QStaticText::copyConstructor()
+{
+    QStaticText text(QLatin1String("My text"));
+
+    QTextOption textOption(Qt::AlignRight);
+    text.setTextOption(textOption);
+
+    text.setPerformanceHint(QStaticText::AggressiveCaching);
+    text.setTextWidth(123.456);
+    text.setTextFormat(Qt::PlainText);
+
+    QStaticText copiedText(text);
+    copiedText.setText(QLatin1String("Other text"));
+
+    QCOMPARE(copiedText.textOption().alignment(), Qt::AlignRight);
+    QCOMPARE(copiedText.performanceHint(), QStaticText::AggressiveCaching);
+    QCOMPARE(copiedText.textWidth(), 123.456);
+    QCOMPARE(copiedText.textFormat(), Qt::PlainText);
+
+    QStaticText otherCopiedText(copiedText);
+    otherCopiedText.setTextWidth(789);
+
+    QCOMPARE(otherCopiedText.text(), QString::fromLatin1("Other text"));
+}
+
 Q_DECLARE_METATYPE(QStaticText::PerformanceHint)
 void tst_QStaticText::drawToPoint_data()
 {
@@ -620,5 +651,107 @@
     }
 }
 
+void tst_QStaticText::drawStruckOutText()
+{
+    QPixmap imageDrawText(1000, 1000);
+    QPixmap imageDrawStaticText(1000, 1000);
+
+    imageDrawText.fill(Qt::white);
+    imageDrawStaticText.fill(Qt::white);
+
+    QString s = QString::fromLatin1("Foobar");
+
+    QFont font;
+    font.setStrikeOut(true);
+
+    {
+        QPainter p(&imageDrawText);
+        p.setFont(font);
+        p.drawText(QPointF(50, 50), s);
+    }
+
+    {
+        QPainter p(&imageDrawStaticText);
+        QStaticText text = QStaticText(s);
+        p.setFont(font);
+        p.drawStaticText(QPointF(50, 50 - QFontMetricsF(p.font()).ascent()), text);
+    }
+
+#if defined(DEBUG_SAVE_IMAGE)
+    imageDrawText.save("drawStruckOutText_imageDrawText.png");
+    imageDrawStaticText.save("drawStruckOutText_imageDrawStaticText.png");
+#endif
+
+    QCOMPARE(imageDrawText, imageDrawStaticText);
+}
+
+void tst_QStaticText::drawOverlinedText()
+{
+    QPixmap imageDrawText(1000, 1000);
+    QPixmap imageDrawStaticText(1000, 1000);
+
+    imageDrawText.fill(Qt::white);
+    imageDrawStaticText.fill(Qt::white);
+
+    QString s = QString::fromLatin1("Foobar");
+
+    QFont font;
+    font.setOverline(true);
+
+    {
+        QPainter p(&imageDrawText);
+        p.setFont(font);
+        p.drawText(QPointF(50, 50), s);
+    }
+
+    {
+        QPainter p(&imageDrawStaticText);
+        QStaticText text = QStaticText(s);
+        p.setFont(font);
+        p.drawStaticText(QPointF(50, 50 - QFontMetricsF(p.font()).ascent()), text);
+    }
+
+#if defined(DEBUG_SAVE_IMAGE)
+    imageDrawText.save("drawOverlinedText_imageDrawText.png");
+    imageDrawStaticText.save("drawOverlinedText_imageDrawStaticText.png");
+#endif
+
+    QCOMPARE(imageDrawText, imageDrawStaticText);
+}
+
+void tst_QStaticText::drawUnderlinedText()
+{
+    QPixmap imageDrawText(1000, 1000);
+    QPixmap imageDrawStaticText(1000, 1000);
+
+    imageDrawText.fill(Qt::white);
+    imageDrawStaticText.fill(Qt::white);
+
+    QString s = QString::fromLatin1("Foobar");
+
+    QFont font;
+    font.setUnderline(true);
+
+    {
+        QPainter p(&imageDrawText);
+        p.setFont(font);
+        p.drawText(QPointF(50, 50), s);
+    }
+
+    {
+        QPainter p(&imageDrawStaticText);
+        QStaticText text = QStaticText(s);
+        p.setFont(font);
+        p.drawStaticText(QPointF(50, 50 - QFontMetricsF(p.font()).ascent()), text);
+    }
+
+#if defined(DEBUG_SAVE_IMAGE)
+    imageDrawText.save("drawUnderlinedText_imageDrawText.png");
+    imageDrawStaticText.save("drawUnderlinedText_imageDrawStaticText.png");
+#endif
+
+    QCOMPARE(imageDrawText, imageDrawStaticText);
+}
+
 QTEST_MAIN(tst_QStaticText)
 #include "tst_qstatictext.moc"
--- a/tests/auto/qstring/tst_qstring.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/qstring/tst_qstring.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -208,6 +208,7 @@
     void repeated_data() const;
     void task262677remove();
     void QTBUG10404_compareRef();
+    void QTBUG9281_arg_locale();
 };
 
 typedef QList<int> IntList;
@@ -4860,6 +4861,17 @@
     QVERIFY(QStringRef(&a2, 1, 2).compare(QStringRef(&a, 1, 3), Qt::CaseInsensitive) < 0);
 }
 
+void tst_QString::QTBUG9281_arg_locale()
+{
+    QLocale l(QLocale::English, QLocale::UnitedKingdom);
+    l.setNumberOptions(QLocale::OmitGroupSeparator);
+    QLocale::setDefault(l);
+    QString str("*%L1*%L2*");
+    str = str.arg(123456).arg(1234.56);
+    QCOMPARE(str, QString::fromLatin1("*123456*1234.56*"));
+    QLocale::setDefault(QLocale::C);
+}
+
 
 
 QTEST_APPLESS_MAIN(tst_QString)
--- a/tests/auto/qstylesheetstyle/tst_qstylesheetstyle.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/qstylesheetstyle/tst_qstylesheetstyle.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -698,20 +698,25 @@
     QCOMPARE(FONTSIZE(edit2), 26);
 }
 
-static bool testForColors(const QImage& image, const QColor& color)
+// Ensure primary will only return true if the color covers more than 50% of pixels
+static bool testForColors(const QImage& image, const QColor& color, bool ensurePrimary=false)
 {
     int count = 0;
     QRgb rgb = color.rgba();
+    int totalCount = image.height()*image.width();
     for (int y = 0; y < image.height(); ++y) {
         for (int x = 0; x < image.width(); ++x) {
             // Because of antialiasing we allow a certain range of errors here.
             QRgb pixel = image.pixel(x, y);
+
             if (qAbs((int)(pixel & 0xff) - (int)(rgb & 0xff)) +
                     qAbs((int)((pixel & 0xff00) >> 8) - (int)((rgb & 0xff00) >> 8)) +
                     qAbs((int)((pixel & 0xff0000) >> 16) - (int)((rgb & 0xff0000) >> 16)) <= 50) {
-                if (++count >= 10) {
+                count++;
+                if (!ensurePrimary && count >=10 )
                     return true;
-                }
+                else if (count > totalCount/2)
+                    return true;
             }
         }
     }
@@ -1528,6 +1533,15 @@
     tree.render(&image);
     QVERIFY(testForColors(image, tree.palette().base().color()));
     QVERIFY(!testForColors(image, QColor(0xab, 0x12, 0x51)));
+
+    QTableWidget table(12, 12);
+    table.setItem(0, 0, new QTableWidgetItem());
+    table.setStyleSheet( "QTableView {background-color: #ff0000}" );
+    table.show();
+    QTest::qWait(20);
+    image = QImage(table.width(), table.height(), QImage::Format_ARGB32);
+    table.render(&image);
+    QVERIFY(testForColors(image, Qt::red, true));
 }
 
 void tst_QStyleSheetStyle::task232085_spinBoxLineEditBg()
--- a/tests/auto/qsvgrenderer/qsvgrenderer.pro	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/qsvgrenderer/qsvgrenderer.pro	Mon Oct 04 01:19:32 2010 +0300
@@ -13,6 +13,8 @@
    addFiles.path = .
 
    DEPLOYMENT += addFiles
-   DEPLOYMENT_PLUGIN += qsvg
+   wince*|qt_not_deployed {
+       DEPLOYMENT_PLUGIN += qsvg
+   }
 }
 
--- a/tests/auto/qtextcodec/qtextcodec.pro	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/qtextcodec/qtextcodec.pro	Mon Oct 04 01:19:32 2010 +0300
@@ -1,4 +1,4 @@
 TEMPLATE = subdirs
 SUBDIRS = test
 
-!wince*:SUBDIRS += echo
+!wince*:!symbian:SUBDIRS += echo
--- a/tests/auto/qtextcodec/test/test.pro	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/qtextcodec/test/test.pro	Mon Oct 04 01:19:32 2010 +0300
@@ -20,7 +20,9 @@
    addFiles.sources = ../*.txt
    addFiles.path = .
    DEPLOYMENT += addFiles
-   DEPLOYMENT_PLUGIN += qcncodecs qjpcodecs qkrcodecs qtwcodecs
+   wince*|qt_not_deployed {
+       DEPLOYMENT_PLUGIN += qcncodecs qjpcodecs qkrcodecs qtwcodecs
+   }
 }
 
 wince*: {
--- a/tests/auto/qtextcodec/tst_qtextcodec.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/qtextcodec/tst_qtextcodec.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -1946,6 +1946,8 @@
 {
 #ifdef QT_NO_PROCESS
     QSKIP("This test requires QProcess", SkipAll);
+#elif defined(Q_OS_SYMBIAN)
+    QSKIP("This test requires streams support in QProcess", SkipAll);
 #else
     QProcess process;
     process.start("echo/echo");
--- a/tests/auto/qtextlayout/tst_qtextlayout.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/qtextlayout/tst_qtextlayout.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -122,6 +122,7 @@
     void smallTextLengthWrapAtWordBoundaryOrAnywhere();
     void testLineBreakingAllSpaces();
     void lineWidthFromBOM();
+    void textWidthVsWIdth();
 
 
 private:
@@ -1359,5 +1360,34 @@
     }
 }
 
+void tst_QTextLayout::textWidthVsWIdth()
+{
+    QTextLayout layout;
+    QTextOption opt;
+    opt.setWrapMode(QTextOption::WrapAnywhere);
+    layout.setTextOption(opt);
+    layout.setText(QString::fromLatin1(
+                       "g++ -c -m64 -pipe -g -fvisibility=hidden -fvisibility-inlines-hidden -Wall -W -D_REENTRANT -fPIC -DCORE_LIBRARY -DIDE_LIBRARY_BASENAME=\"lib\" -DWITH_TESTS "
+                       "-DQT_NO_CAST_TO_ASCII -DQT_USE_FAST_OPERATOR_PLUS -DQT_USE_FAST_CONCATENATION -DQT_PLUGIN -DQT_TESTLIB_LIB -DQT_SCRIPT_LIB -DQT_SVG_LIB -DQT_SQL_LIB -DQT_XM"
+                       "L_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I../../../../qt-qml/mkspecs/linux-g++-64 -I. -I../../../../qt-qml/include/QtCore -I../../../."
+                       "./qt-qml/include/QtNetwork -I../../../../qt-qml/include/QtGui -I../../../../qt-qml/include/QtXml -I../../../../qt-qml/include/QtSql -I../../../../qt-qml/inc"
+                       "lude/QtSvg -I../../../../qt-qml/include/QtScript -I../../../../qt-qml/include/QtTest -I../../../../qt-qml/include -I../../../../qt-qml/include/QtHelp -I../."
+                       "./libs -I/home/ettrich/dev/creator/tools -I../../plugins -I../../shared/scriptwrapper -I../../libs/3rdparty/botan/build -Idialogs -Iactionmanager -Ieditorma"
+                       "nager -Iprogressmanager -Iscriptmanager -I.moc/debug-shared -I.uic -o .obj/debug-shared/sidebar.o sidebar.cpp"));
+
+    // textWidth includes right bearing, but it should never be LARGER than width if there is space for at least one character
+    for (int width = 100; width < 1000; ++width) {
+        layout.beginLayout();
+        QTextLine line = layout.createLine();
+        line.setLineWidth(width);
+        layout.endLayout();
+
+        qreal textWidthIsLargerBy = qMax(qreal(0), line.naturalTextWidth() - line.width());
+        qreal thisMustBeZero = 0;
+        QCOMPARE(textWidthIsLargerBy, thisMustBeZero);
+    }
+}
+
+
 QTEST_MAIN(tst_QTextLayout)
 #include "tst_qtextlayout.moc"
--- a/tests/auto/qtextstream/qtextstream.pro	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/qtextstream/qtextstream.pro	Mon Oct 04 01:19:32 2010 +0300
@@ -1,5 +1,6 @@
 TEMPLATE = subdirs
-SUBDIRS = test stdinProcess readAllStdinProcess readLineStdinProcess
+SUBDIRS = test
+!symbian: SUBDIRS += stdinProcess readAllStdinProcess readLineStdinProcess
 
 
 
--- a/tests/auto/qtimer/tst_qtimer.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/qtimer/tst_qtimer.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -86,6 +86,7 @@
     void timerIdPersistsAfterThreadExit();
     void cancelLongTimer();
     void singleShotStaticFunctionZeroTimeout();
+    void recurseOnTimeoutAndStopTimer();
 };
 
 class TimerHelper : public QObject
@@ -160,8 +161,9 @@
     QCOMPARE(helper.count, 1);
 }
 
-#if defined(Q_OS_SYMBIAN) && defined(Q_CC_NOKIAX86)
-// Increase wait as emulator startup can cause unexpected delays
+#if defined(Q_OS_SYMBIAN)
+// Increase wait as emulator startup can cause unexpected delays, and
+// on hardware there are sometimes spikes right after process startup.
 #define TIMEOUT_TIMEOUT 2000
 #else
 #define TIMEOUT_TIMEOUT 200
@@ -623,5 +625,48 @@
     QCOMPARE(helper.count, 1);
 }
 
+class RecursOnTimeoutAndStopTimerTimer : public QObject
+{
+    Q_OBJECT
+
+public:
+    QTimer *one;
+    QTimer *two;
+
+public slots:
+    void onetrigger()
+    {
+        QCoreApplication::processEvents();
+    }
+
+    void twotrigger()
+    {
+        one->stop();
+    }
+};
+
+void tst_QTimer::recurseOnTimeoutAndStopTimer()
+{
+    QEventLoop eventLoop;
+    QTimer::singleShot(1000, &eventLoop, SLOT(quit()));
+
+    RecursOnTimeoutAndStopTimerTimer t;
+    t.one = new QTimer(&t);
+    t.two = new QTimer(&t);
+
+    QObject::connect(t.one, SIGNAL(timeout()), &t, SLOT(onetrigger()));
+    QObject::connect(t.two, SIGNAL(timeout()), &t, SLOT(twotrigger()));
+
+    t.two->setSingleShot(true);
+
+    t.one->start();
+    t.two->start();
+
+    (void) eventLoop.exec();
+
+    QVERIFY(!t.one->isActive());
+    QVERIFY(!t.two->isActive());
+}
+
 QTEST_MAIN(tst_QTimer)
 #include "tst_qtimer.moc"
--- a/tests/auto/qtouchevent/tst_qtouchevent.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/qtouchevent/tst_qtouchevent.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -109,6 +109,7 @@
 public:
     QList<QTouchEvent::TouchPoint> touchBeginPoints, touchUpdatePoints, touchEndPoints;
     bool seenTouchBegin, seenTouchUpdate, seenTouchEnd;
+    int touchBeginCounter, touchUpdateCounter, touchEndCounter;
     bool acceptTouchBegin, acceptTouchUpdate, acceptTouchEnd;
     bool deleteInTouchBegin, deleteInTouchUpdate, deleteInTouchEnd;
     tst_QTouchEventGraphicsItem **weakpointer;
@@ -131,6 +132,7 @@
         touchUpdatePoints.clear();
         touchEndPoints.clear();
         seenTouchBegin = seenTouchUpdate = seenTouchEnd = false;
+        touchBeginCounter = touchUpdateCounter = touchEndCounter = 0;
         acceptTouchBegin = acceptTouchUpdate = acceptTouchEnd = true;
         deleteInTouchBegin = deleteInTouchUpdate = deleteInTouchEnd = false;
     }
@@ -146,6 +148,7 @@
             if (seenTouchUpdate) qWarning("TouchBegin: TouchUpdate cannot happen before TouchBegin");
             if (seenTouchEnd) qWarning("TouchBegin: TouchEnd cannot happen before TouchBegin");
             seenTouchBegin = !seenTouchBegin && !seenTouchUpdate && !seenTouchEnd;
+            ++touchBeginCounter;
             touchBeginPoints = static_cast<QTouchEvent *>(event)->touchPoints();
             event->setAccepted(acceptTouchBegin);
             if (deleteInTouchBegin)
@@ -155,6 +158,7 @@
             if (!seenTouchBegin) qWarning("TouchUpdate: have not seen TouchBegin");
             if (seenTouchEnd) qWarning("TouchUpdate: TouchEnd cannot happen before TouchUpdate");
             seenTouchUpdate = seenTouchBegin && !seenTouchEnd;
+            ++touchUpdateCounter;
             touchUpdatePoints = static_cast<QTouchEvent *>(event)->touchPoints();
             event->setAccepted(acceptTouchUpdate);
             if (deleteInTouchUpdate)
@@ -164,6 +168,7 @@
             if (!seenTouchBegin) qWarning("TouchEnd: have not seen TouchBegin");
             if (seenTouchEnd) qWarning("TouchEnd: already seen a TouchEnd");
             seenTouchEnd = seenTouchBegin && !seenTouchEnd;
+            ++touchEndCounter;
             touchEndPoints = static_cast<QTouchEvent *>(event)->touchPoints();
             event->setAccepted(acceptTouchEnd);
             if (deleteInTouchEnd)
@@ -194,6 +199,7 @@
     void deleteInEventHandler();
     void deleteInRawEventTranslation();
     void crashInQGraphicsSceneAfterNotHandlingTouchBegin();
+    void touchBeginWithGraphicsWidget();
 };
 
 void tst_QTouchEvent::touchDisabledByDefault()
@@ -1334,6 +1340,59 @@
     QTest::touchEvent(view.viewport()).release(0, view.mapFromScene(QPoint(10, 10)));
 }
 
+void tst_QTouchEvent::touchBeginWithGraphicsWidget()
+{
+    QGraphicsScene scene;
+    QGraphicsView view(&scene);
+    tst_QTouchEventGraphicsItem *root;
+    root = new tst_QTouchEventGraphicsItem;
+    root->setAcceptTouchEvents(true);
+    scene.addItem(root);
+
+    QGraphicsWidget *glassWidget = new QGraphicsWidget;
+    glassWidget->setMinimumSize(100, 100);
+    scene.addItem(glassWidget);
+
+    view.resize(200, 200);
+    view.show();
+    QTest::qWaitForWindowShown(&view);
+    view.fitInView(scene.sceneRect());
+
+    QTest::touchEvent()
+            .press(0, view.mapFromScene(root->mapToScene(3,3)), view.viewport());
+    QTest::touchEvent()
+            .stationary(0)
+            .press(1, view.mapFromScene(root->mapToScene(6,6)), view.viewport());
+    QTest::touchEvent()
+            .release(0, view.mapFromScene(root->mapToScene(3,3)), view.viewport())
+            .release(1, view.mapFromScene(root->mapToScene(6,6)), view.viewport());
+
+    QCOMPARE(root->touchBeginCounter, 1);
+    QCOMPARE(root->touchUpdateCounter, 1);
+    QCOMPARE(root->touchEndCounter, 1);
+    QCOMPARE(root->touchUpdatePoints.size(), 2);
+
+    root->reset();
+    glassWidget->setWindowFlags(Qt::Window); // make the glassWidget a panel
+
+    QTest::touchEvent()
+            .press(0, view.mapFromScene(root->mapToScene(3,3)), view.viewport());
+    QTest::touchEvent()
+            .stationary(0)
+            .press(1, view.mapFromScene(root->mapToScene(6,6)), view.viewport());
+    QTest::touchEvent()
+            .release(0, view.mapFromScene(root->mapToScene(3,3)), view.viewport())
+            .release(1, view.mapFromScene(root->mapToScene(6,6)), view.viewport());
+
+    QCOMPARE(root->touchBeginCounter, 0);
+    QCOMPARE(root->touchUpdateCounter, 0);
+    QCOMPARE(root->touchEndCounter, 0);
+
+
+    delete root;
+    delete glassWidget;
+}
+
 QTEST_MAIN(tst_QTouchEvent)
 
 #include "tst_qtouchevent.moc"      
--- a/tests/auto/qtreeview/tst_qtreeview.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/qtreeview/tst_qtreeview.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -239,6 +239,7 @@
     void doubleClickedWithSpans();
     void taskQTBUG_6450_selectAllWith1stColumnHidden();
     void taskQTBUG_9216_setSizeAndUniformRowHeightsWrongRepaint();
+    void taskQTBUG_11466_keyboardNavigationRegression();
 };
 
 class QtTestModel: public QAbstractItemModel
@@ -3785,5 +3786,129 @@
     QCOMPARE(view.currentIndex(), model.index(6, 0));
 }
 
+class Model_11466 : public QAbstractItemModel
+{
+    Q_OBJECT
+public:
+    Model_11466(QObject *parent) :
+        m_block(false)
+    {
+        // set up the model to have two top level items and a few others
+        m_selectionModel = new QItemSelectionModel(this, this); // owned by this
+
+        connect(m_selectionModel, SIGNAL(currentChanged(const QModelIndex &,const QModelIndex &)),
+                this, SLOT(slotCurrentChanged(const QModelIndex &,const QModelIndex &)));
+    };
+
+    int rowCount(const QModelIndex &parent) const
+    {
+        if (parent.isValid())
+            return (parent.internalId() == 0) ? 4 : 0;
+        return 2; // two top level items
+    }
+
+    int columnCount(const QModelIndex &parent) const
+    {
+        return 2;
+    }
+
+    QVariant data(const QModelIndex &index, int role) const
+    {
+        if (role == Qt::DisplayRole && index.isValid()) {
+            qint64 parentRowPlusOne = index.internalId();
+            QString str;
+            QTextStream stream(&str);
+            if (parentRowPlusOne > 0)
+                stream << parentRowPlusOne << " -> " << index.row() << " : " << index.column();
+            else
+                stream << index.row() << " : " << index.column();
+            return QVariant(str);
+        }
+        return QVariant();
+    }
+
+    QModelIndex parent(const QModelIndex &index) const
+    {
+        if (index.isValid()) {
+            qint64 parentRowPlusOne = index.internalId();
+            if (parentRowPlusOne > 0) {
+                int row = static_cast<int>(parentRowPlusOne - 1);
+                return createIndex(row, 0, (quint32)0);
+            }
+        }
+        return QModelIndex();
+    }
+
+    void bindView(QTreeView *view)
+    {
+        // sets the view to this model with a shared selection model
+        QItemSelectionModel *oldModel = view->selectionModel();
+        if (oldModel != m_selectionModel)
+            delete oldModel;
+        view->setModel(this); // this creates a new selection model for the view, but we dont want it either ...
+        oldModel = view->selectionModel();
+        view->setSelectionModel(m_selectionModel);
+        delete oldModel;
+    }
+
+    QModelIndex index(int row, int column, const QModelIndex &parent) const
+    {
+        return createIndex(row, column, parent.isValid() ? (quint32)(parent.row() + 1) : (quint32)0);
+    }
+
+public slots:
+    void slotCurrentChanged(const QModelIndex &current,const QModelIndex &)
+    {
+        if (m_block)
+            return;
+
+        if (current.isValid()) {
+            int selectedRow = current.row();
+            quint32 parentRowPlusOne = static_cast<quint32>(current.internalId());
+
+            for (int i = 0; i < 2; ++i) {
+                // announce the removal of all non top level items
+                beginRemoveRows(createIndex(i, 0, 0), 0, 3);
+                // nothing to actually do for the removal
+                endRemoveRows();
+
+                // put them back in again
+                beginInsertRows(createIndex(i, 0, 0), 0, 3);
+                // nothing to actually do for the insertion
+                endInsertRows();
+            }
+            // reselect the current item ...
+            QModelIndex selectedIndex = createIndex(selectedRow, 0, parentRowPlusOne);
+
+            m_block = true; // recursion block
+            m_selectionModel->select(selectedIndex, QItemSelectionModel::ClearAndSelect|QItemSelectionModel::Current|QItemSelectionModel::Rows);
+            m_selectionModel->setCurrentIndex(selectedIndex, QItemSelectionModel::NoUpdate);
+            m_block = false;
+        } else {
+            m_selectionModel->clear();
+        }
+    }
+
+private:
+    bool m_block;
+    QItemSelectionModel *m_selectionModel;
+};
+
+void tst_QTreeView::taskQTBUG_11466_keyboardNavigationRegression()
+{
+    QTreeView treeView;
+    treeView.setSelectionBehavior(QAbstractItemView::SelectRows);
+    treeView.setSelectionMode(QAbstractItemView::SingleSelection);
+    Model_11466 model(&treeView);
+    model.bindView(&treeView);
+    treeView.expandAll();
+    treeView.show();
+    QTest::qWaitForWindowShown(&treeView);
+
+    QTest::keyPress(treeView.viewport(), Qt::Key_Down);
+    QTest::qWait(10);
+    QTRY_COMPARE(treeView.currentIndex(), treeView.selectionModel()->selection().indexes().first());
+}
+
 QTEST_MAIN(tst_QTreeView)
 #include "tst_qtreeview.moc"
--- a/tests/auto/qurl/tst_qurl.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/qurl/tst_qurl.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -194,6 +194,7 @@
     void task_199967();
     void task_240612();
     void taskQTBUG_6962();
+    void taskQTBUG_8701();
 
 #ifdef QT3_SUPPORT
     void dirPath();
@@ -3912,5 +3913,17 @@
     QCOMPARE(url.authority(), QString());
 }
 
+void tst_QUrl::taskQTBUG_8701()
+{
+    //bug 8701: foo:///bar mangled to foo:/bar
+    QString foo_triple_bar("foo:///bar"), foo_uni_bar("foo:/bar");
+
+    QCOMPARE(foo_triple_bar, QUrl(foo_triple_bar).toString());
+    QCOMPARE(foo_uni_bar, QUrl(foo_uni_bar).toString());
+
+    QCOMPARE(foo_triple_bar, QUrl(foo_triple_bar, QUrl::StrictMode).toString()); // fails
+    QCOMPARE(foo_uni_bar, QUrl(foo_uni_bar, QUrl::StrictMode).toString());
+}
+
 QTEST_MAIN(tst_QUrl)
 #include "tst_qurl.moc"
--- a/tests/auto/qvideosurfaceformat/tst_qvideosurfaceformat.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/qvideosurfaceformat/tst_qvideosurfaceformat.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -127,16 +127,37 @@
     QTest::addColumn<QSize>("frameSize");
     QTest::addColumn<QVideoFrame::PixelFormat>("pixelFormat");
     QTest::addColumn<QAbstractVideoBuffer::HandleType>("handleType");
+    QTest::addColumn<bool>("valid");
 
     QTest::newRow("32x32 rgb32 no handle")
             << QSize(32, 32)
             << QVideoFrame::Format_RGB32
-            << QAbstractVideoBuffer::NoHandle;
+            << QAbstractVideoBuffer::NoHandle
+            << true;
 
     QTest::newRow("1024x768 YUV444 GL texture")
             << QSize(32, 32)
             << QVideoFrame::Format_YUV444
-            << QAbstractVideoBuffer::GLTextureHandle;
+            << QAbstractVideoBuffer::GLTextureHandle
+            << true;
+
+    QTest::newRow("32x32 invalid no handle")
+            << QSize(32, 32)
+            << QVideoFrame::Format_Invalid
+            << QAbstractVideoBuffer::NoHandle
+            << false;
+
+    QTest::newRow("invalid size, rgb32 no handle")
+            << QSize()
+            << QVideoFrame::Format_RGB32
+            << QAbstractVideoBuffer::NoHandle
+            << false;
+
+    QTest::newRow("0x0 rgb32 no handle")
+            << QSize(0,0)
+            << QVideoFrame::Format_RGB32
+            << QAbstractVideoBuffer::NoHandle
+            << true;
 }
 
 void tst_QVideoSurfaceFormat::construct()
@@ -144,6 +165,7 @@
     QFETCH(QSize, frameSize);
     QFETCH(QVideoFrame::PixelFormat, pixelFormat);
     QFETCH(QAbstractVideoBuffer::HandleType, handleType);
+    QFETCH(bool, valid);
 
     QRect viewport(QPoint(0, 0), frameSize);
 
@@ -154,6 +176,7 @@
     QCOMPARE(format.frameSize(), frameSize);
     QCOMPARE(format.frameWidth(), frameSize.width());
     QCOMPARE(format.frameHeight(), frameSize.height());
+    QCOMPARE(format.isValid(), valid);
     QCOMPARE(format.viewport(), viewport);
     QCOMPARE(format.scanLineDirection(), QVideoSurfaceFormat::TopToBottom);
     QCOMPARE(format.frameRate(), 0.0);
--- a/tests/auto/qwidget/tst_qwidget.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/qwidget/tst_qwidget.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -402,6 +402,8 @@
 #endif // QT_MAC_USE_COCOA
 #endif
 
+    void nativeChildFocus();
+
 private:
     bool ensureScreenSize(int width, int height);
     QWidget *testWidget;
@@ -9694,7 +9696,6 @@
 
     // Native child widget should once again share parent's backing store
     QVERIFY(0 != backingStore(parent));
-    QEXPECT_FAIL("", "QTBUG-10643", Continue);
     QVERIFY(0 == backingStore(child));
     }
 
@@ -9743,7 +9744,6 @@
     QVERIFY(0 != backingStore(child));
 
     // Parent is obscured, therefore its backing store should be destroyed
-    QEXPECT_FAIL("", "QTBUG-10643", Continue);
     QVERIFY(0 == backingStore(parent));
 
     // Disable full screen
@@ -9757,9 +9757,82 @@
 
     // Native child widget should once again share parent's backing store
     QVERIFY(0 != backingStore(parent));
-    QEXPECT_FAIL("", "QTBUG-10643", Continue);
     QVERIFY(0 == backingStore(child));
     }
+
+    // 6. Partial reveal followed by full reveal
+    {
+    QWidget upper;
+    upper.setAutoFillBackground(true);
+    upper.setPalette(Qt::red);
+    upper.setGeometry(50, 50, 100, 100);
+
+    QWidget lower;
+    lower.setAutoFillBackground(true);
+    lower.setPalette(Qt::green);
+    lower.setGeometry(50, 50, 100, 100);
+
+    lower.show();
+    QTest::qWaitForWindowShown(&lower);
+    upper.show();
+    QTest::qWaitForWindowShown(&upper);
+    upper.raise();
+
+    QVERIFY(0 != backingStore(upper));
+    QVERIFY(0 == backingStore(lower));
+
+    // Check that upper obscures lower
+    QVERIFY(lower.visibleRegion().subtracted(upper.visibleRegion()).isEmpty());
+
+    // Partially reveal lower
+    upper.move(100, 100);
+
+    // Completely reveal lower
+    upper.hide();
+
+    // Hide lower widget - this should cause its backing store to be deleted
+    lower.hide();
+
+    // Check that backing store was deleted
+    WAIT_AND_VERIFY(0 == backingStore(lower));
+    }
+
+    // 7. Reparenting of visible native child widget
+    {
+    QWidget parent1;
+    parent1.setAutoFillBackground(true);
+    parent1.setPalette(Qt::green);
+    parent1.setGeometry(50, 50, 100, 100);
+
+    QWidget *child = new QWidget(&parent1);
+    child->winId();
+    child->setAutoFillBackground(true);
+    child->setPalette(Qt::red);
+    child->setGeometry(10, 10, 30, 30);
+
+    QWidget parent2;
+    parent2.setAutoFillBackground(true);
+    parent2.setPalette(Qt::blue);
+    parent2.setGeometry(150, 150, 100, 100);
+
+    parent1.show();
+    QTest::qWaitForWindowShown(&parent1);
+    QVERIFY(0 != backingStore(parent1));
+
+    parent2.show();
+    QTest::qWaitForWindowShown(&parent2);
+    QVERIFY(0 != backingStore(parent2));
+
+    child->setParent(&parent2);
+    child->setGeometry(10, 10, 30, 30);
+    child->show();
+
+    parent1.hide();
+    WAIT_AND_VERIFY(0 == backingStore(parent1));
+
+    parent2.hide();
+    WAIT_AND_VERIFY(0 == backingStore(parent2));
+    }
 }
 
 #undef WAIT_AND_VERIFY
@@ -10460,5 +10533,28 @@
 #endif // QT_MAC_USE_COCOA
 #endif
 
+void tst_QWidget::nativeChildFocus()
+{
+    QWidget w;
+    QLayout *layout = new QVBoxLayout;
+    w.setLayout(layout);
+    QLineEdit *p1 = new QLineEdit;
+    QLineEdit *p2 = new QLineEdit;
+    layout->addWidget(p1);
+    layout->addWidget(p2);
+    p1->setObjectName("p1");
+    p2->setObjectName("p2");
+    w.show();
+    w.activateWindow();
+    p1->setFocus();
+    p1->setAttribute(Qt::WA_NativeWindow);
+    p2->setAttribute(Qt::WA_NativeWindow);
+    QApplication::processEvents();
+    QTest::qWaitForWindowShown(&w);
+
+    QCOMPARE(QApplication::activeWindow(), &w);
+    QCOMPARE(QApplication::focusWidget(), p1);
+}
+
 QTEST_MAIN(tst_QWidget)
 #include "tst_qwidget.moc"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/auto/xmlpatternsvalidator/files/dateTime-with-microseconds.xml	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,1 @@
+<date>2009-12-16T23:14:10.823218Z</date>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/auto/xmlpatternsvalidator/files/dateTime-with-microseconds.xsd	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,12 @@
+<?xml version="1.0"?>
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+
+    <xsd:element name="date" type="xsd:dateTime"/>
+
+    <xsd:simpleType name="microsecondsType">
+        <xsd:restriction base="xsd:dateTime">
+            <xsd:pattern value="\d\d\d\d-\d\d-\d\dT\d\d:\d\d:\d\d\.\d\d\d\d\d\dZ"/>
+        </xsd:restriction>
+    </xsd:simpleType>
+
+</xsd:schema>
--- a/tests/auto/xmlpatternsvalidator/tst_xmlpatternsvalidator.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/auto/xmlpatternsvalidator/tst_xmlpatternsvalidator.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -216,6 +216,12 @@
         << 0
         << (QStringList() << QLatin1String("files/complex-type-including-anonymous-type.xsd"))
         << QString();
+
+    QTest::newRow("QTBUG-11559 A schema and instance with a dateTime containing microseconds")
+        << 0
+        << (QStringList() << QLatin1String("files/dateTime-with-microseconds.xml")
+                          << QLatin1String("files/dateTime-with-microseconds.xsd"))
+        << QString();
 }
 
 QTEST_MAIN(tst_XmlPatternsValidator)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/benchmarks/README	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,81 @@
+The most reliable way of running benchmarks is to do it in an otherwise idle
+system. On a busy system, the results will vary according to the other tasks
+demanding attention in the system.
+
+We have managed to obtain quite reliable results by doing the following on 
+Linux (and you need root):
+
+ - switching the scheduler to a Real-Time mode
+ - setting the processor affinity to one single processor
+ - disabling the other thread of the same core
+
+This should work rather well for CPU-intensive tasks. A task that is in Real-
+Time mode will simply not be preempted by the OS. But if you make OS syscalls, 
+especially I/O ones, your task will be de-scheduled. Note that this includes 
+page faults, so if you can, make sure your benchmark's warmup code paths touch 
+most of the data.
+
+To do this you need a tool called schedtool (package schedtool), from 
+http://freequaos.host.sk/schedtool/
+
+From this point on, we are using CPU0 for all tasks:
+
+If you have a Hyperthreaded multi-core processor (Core-i5 and Core-i7), you 
+have to disable the other thread of the same core as CPU0. To discover which 
+one it is:
+
+$ cat /sys/devices/system/cpu/cpu0/topology/thread_siblings_list
+
+This will print something like 0,4, meaning that CPUs 0 and 4 are sibling 
+threads on the same core. So we'll turn CPU 4 off:
+
+(as root)
+# echo 0 > /sys/devices/system/cpu/cpu4/online
+
+To turn it back on, echo 1 into the same file.
+
+To run a task on CPU 0 exclusively, using FIFO RT priority 10, you run the 
+following:
+
+(as root)
+# schedtool -F -p 10 -a 1 -e ./taskname
+
+For example:
+# schedtool -F -p 10 -a 1 -e ./tst_bench_qstring -tickcounter
+
+Warning: if your task livelocks or takes far too long to complete, your system 
+may be unusable for a long time, especially if you don't have other cores to 
+run stuff on. To prevent that, run it before schedtool and time it.
+
+You can also limit the CPU time that the task is allowed to take. Run in the 
+same shell as you'll run schedtool:
+
+$ ulimit -s 300
+To limit to 300 seconds (5 minutes)
+
+If your task runs away, it will get a SIGXCPU after consuming 5 minutes of CPU 
+time (5 minutes running at 100%).
+
+If your app is multithreaded, you may want to give it more CPUs, like CPU0 and 
+CPU1 with -a 3  (it's a bitmask).
+
+For best results, you should disable ALL other cores and threads of the same 
+processor. The new Core-i7 have one processor with 4 cores, 
+each core can run 2 threads; the older Mac Pros have two processors with 4 
+cores each. So on those Mac Pros, you'd disable cores 1, 2 and 3, while on the 
+Core-i7, you'll need to disable all other CPUs.
+
+However, disabling just the sibling thread seems to produce very reliable 
+results for me already, with variance often below 0.5% (even though there are 
+some measurable spikes).
+
+Other things to try:
+
+Running the benchmark with highest priority, i.e. "sudo nice -19" 
+usually produces stable results on some machines. If the benchmark also 
+involves displaying something on the screen (on X11), running it with 
+"-sync" is a must. Though, in that case the "real" cost is not correct, 
+but it is useful to discover regressions.
+
+Also; not many people know about ionice (1)
+      ionice - get/set program io scheduling class and priority
--- a/tests/benchmarks/benchmarks.pro	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/benchmarks/benchmarks.pro	Mon Oct 04 01:19:32 2010 +0300
@@ -1,6 +1,5 @@
 TEMPLATE = subdirs
 SUBDIRS = \
-        uimodels\GraphicsViewBenchmark \
         corelib \
         gui \
         network \
--- a/tests/benchmarks/corelib/io/io.pro	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/benchmarks/corelib/io/io.pro	Mon Oct 04 01:19:32 2010 +0300
@@ -1,9 +1,9 @@
 TEMPLATE = subdirs
 SUBDIRS = \
-#        qdir \
+        qdir \
         qdiriterator \
-#        qfile \
-#        qfileinfo \
+        qfile \
+        qfileinfo \
         qiodevice \
         qtemporaryfile
 
--- a/tests/benchmarks/corelib/tools/qregexp/main.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/benchmarks/corelib/tools/qregexp/main.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -38,16 +38,27 @@
 ** $QT_END_LICENSE$
 **
 ****************************************************************************/
+
 #include <QDebug>
 #include <QRegExp>
 #include <QString>
+#include <QFile>
 
 #include <qtest.h>
+#ifdef HAVE_BOOST
+#include <boost/regex.hpp>
+#endif
 
+#include <QtScript>
+#include "pcre/pcre.h"
+
+#define ZLIB_VERSION "1.2.3.4"
 
 class tst_qregexp : public QObject
 {
     Q_OBJECT
+public:
+    tst_qregexp();
 private slots:
     void escape_old();
     void escape_old_data() { escape_data(); }
@@ -59,10 +70,56 @@
     void escape_new3_data() { escape_data(); }
     void escape_new4();
     void escape_new4_data() { escape_data(); }
+/*
+   JSC outperforms everything.
+   Boost is less impressive then expected.
+ */
+    void simpleFind1();
+    void rangeReplace1();
+    void matchReplace1();
+
+    void simpleFind2();
+    void rangeReplace2();
+    void matchReplace2();
+
+    void simpleFindJSC();
+    void rangeReplaceJSC();
+    void matchReplaceJSC();
+
+#ifdef HAVE_BOOST
+    void simpleFindBoost();
+    void rangeReplaceBoost();
+    void matchReplaceBoost();
+#endif
+
+/* those apply an (incorrect) regexp on entire source
+   (this main.cpp). JSC appears to handle this
+   (ab)use case best. QRegExp performs extremly bad.
+ */
+    void horribleWrongReplace1();
+    void horribleReplace1();
+    void horribleReplace2();
+    void horribleWrongReplace2();
+    void horribleWrongReplaceJSC();
+    void horribleReplaceJSC();
+#ifdef HAVE_BOOST
+    void horribleWrongReplaceBoost();
+    void horribleReplaceBoost();
+#endif
 private:
+    QString str1;
+    QString str2;
     void escape_data();
 };
 
+tst_qregexp::tst_qregexp()
+    :QObject()
+    ,str1("We are all happy monkeys")
+{
+        QFile f(":/main.cpp");
+        f.open(QFile::ReadOnly);
+        str2=f.readAll();
+}
 
 static void verify(const QString &quoted, const QString &expected)
 {
@@ -285,6 +342,253 @@
         // "return quoted"
     }
 }
+
+
+void tst_qregexp::simpleFind1()
+{
+    int roff;
+    QRegExp rx("happy");
+    rx.setPatternSyntax(QRegExp::RegExp);
+    QBENCHMARK{
+        roff = rx.indexIn(str1);
+    }
+    QCOMPARE(roff, 11);
+}
+
+void tst_qregexp::rangeReplace1()
+{
+    QString r;
+    QRegExp rx("[a-f]");
+    rx.setPatternSyntax(QRegExp::RegExp);
+    QBENCHMARK{
+        r = QString(str1).replace(rx, "-");
+    }
+    QCOMPARE(r, QString("W- -r- -ll h-ppy monk-ys"));
+}
+
+void tst_qregexp::matchReplace1()
+{
+    QString r;
+    QRegExp rx("[^a-f]*([a-f]+)[^a-f]*");
+    rx.setPatternSyntax(QRegExp::RegExp);
+    QBENCHMARK{
+        r = QString(str1).replace(rx, "\\1");
+    }
+    QCOMPARE(r, QString("eaeaae"));
+}
+
+void tst_qregexp::horribleWrongReplace1()
+{
+    QString r;
+    QRegExp rx(".*#""define ZLIB_VERSION \"([0-9]+)\\.([0-9]+)\\.([0-9]+)\".*");
+    rx.setPatternSyntax(QRegExp::RegExp);
+    QBENCHMARK{
+        r = QString(str2).replace(rx, "\\1.\\2.\\3");
+    }
+    QCOMPARE(r, str2);
+}
+
+void tst_qregexp::horribleReplace1()
+{
+    QString r;
+    QRegExp rx(".*#""define ZLIB_VERSION \"([0-9]+)\\.([0-9]+)\\.([0-9]+).*");
+    rx.setPatternSyntax(QRegExp::RegExp);
+    QBENCHMARK{
+        r = QString(str2).replace(rx, "\\1.\\2.\\3");
+    }
+    QCOMPARE(r, QString("1.2.3"));
+}
+
+
+void tst_qregexp::simpleFind2()
+{
+    int roff;
+    QRegExp rx("happy");
+    rx.setPatternSyntax(QRegExp::RegExp2);
+    QBENCHMARK{
+        roff = rx.indexIn(str1);
+    }
+    QCOMPARE(roff, 11);
+}
+
+void tst_qregexp::rangeReplace2()
+{
+    QString r;
+    QRegExp rx("[a-f]");
+    rx.setPatternSyntax(QRegExp::RegExp2);
+    QBENCHMARK{
+        r = QString(str1).replace(rx, "-");
+    }
+    QCOMPARE(r, QString("W- -r- -ll h-ppy monk-ys"));
+}
+
+void tst_qregexp::matchReplace2()
+{
+    QString r;
+    QRegExp rx("[^a-f]*([a-f]+)[^a-f]*");
+    rx.setPatternSyntax(QRegExp::RegExp2);
+    QBENCHMARK{
+        r = QString(str1).replace(rx, "\\1");
+    }
+    QCOMPARE(r, QString("eaeaae"));
+}
+
+void tst_qregexp::horribleWrongReplace2()
+{
+    QString r;
+    QRegExp rx(".*#""define ZLIB_VERSION \"([0-9]+)\\.([0-9]+)\\.([0-9]+)\".*");
+    rx.setPatternSyntax(QRegExp::RegExp2);
+    QBENCHMARK{
+        r = QString(str2).replace(rx, "\\1.\\2.\\3");
+    }
+    QCOMPARE(r, str2);
+}
+
+void tst_qregexp::horribleReplace2()
+{
+    QString r;
+    QRegExp rx(".*#""define ZLIB_VERSION \"([0-9]+)\\.([0-9]+)\\.([0-9]+).*");
+    rx.setPatternSyntax(QRegExp::RegExp2);
+    QBENCHMARK{
+        r = QString(str2).replace(rx, "\\1.\\2.\\3");
+    }
+    QCOMPARE(r, QString("1.2.3"));
+}
+
+
+void tst_qregexp::simpleFindJSC()
+{
+    int numr;
+    const char * errmsg="  ";
+    QString rxs("happy");
+    JSRegExp *rx = jsRegExpCompile(rxs.utf16(), rxs.length(), JSRegExpDoNotIgnoreCase, JSRegExpSingleLine, 0, &errmsg);
+    QVERIFY(rx != 0);
+    QString s(str1);
+    int offsetVector[3];
+    QBENCHMARK{
+        numr = jsRegExpExecute(rx, s.utf16(), s.length(), 0,  offsetVector, 3);
+    }
+    jsRegExpFree(rx);
+    QCOMPARE(numr, 1);
+    QCOMPARE(offsetVector[0], 11);
+}
+
+void tst_qregexp::rangeReplaceJSC()
+{
+    QScriptValue r;
+    QScriptEngine engine;
+    engine.globalObject().setProperty("s", str1);
+    QScriptValue replaceFunc = engine.evaluate("(function() { return s.replace(/[a-f]/g, '-')  } )");
+    QVERIFY(replaceFunc.isFunction());
+    QBENCHMARK{
+        r = replaceFunc.call(QScriptValue());
+    }
+    QCOMPARE(r.toString(), QString("W- -r- -ll h-ppy monk-ys"));
+}
+
+void tst_qregexp::matchReplaceJSC()
+{
+    QScriptValue r;
+    QScriptEngine engine;
+    engine.globalObject().setProperty("s", str1);
+    QScriptValue replaceFunc = engine.evaluate("(function() { return s.replace(/[^a-f]*([a-f]+)[^a-f]*/g, '$1')  } )");
+    QVERIFY(replaceFunc.isFunction());
+    QBENCHMARK{
+        r = replaceFunc.call(QScriptValue());
+    }
+    QCOMPARE(r.toString(), QString("eaeaae"));
+}
+
+void tst_qregexp::horribleWrongReplaceJSC()
+{
+    QScriptValue r;
+    QScriptEngine engine;
+    engine.globalObject().setProperty("s", str2);
+    QScriptValue replaceFunc = engine.evaluate("(function() { return s.replace(/.*#""define ZLIB_VERSION \"([0-9]+)\\.([0-9]+)\\.([0-9]+)\".*/gm, '$1.$2.$3')  } )");
+    QVERIFY(replaceFunc.isFunction());
+    QBENCHMARK{
+        r = replaceFunc.call(QScriptValue());
+    }
+    QCOMPARE(r.toString(), str2);
+}
+
+void tst_qregexp::horribleReplaceJSC()
+{
+    QScriptValue r;
+    QScriptEngine engine;
+    // the m flag doesnt actually work here; dunno
+    engine.globalObject().setProperty("s", str2.replace('\n', ' '));
+    QScriptValue replaceFunc = engine.evaluate("(function() { return s.replace(/.*#""define ZLIB_VERSION \"([0-9]+)\\.([0-9]+)\\.([0-9]+).*/gm, '$1.$2.$3')  } )");
+    QVERIFY(replaceFunc.isFunction());
+    QBENCHMARK{
+        r = replaceFunc.call(QScriptValue());
+    }
+    QCOMPARE(r.toString(), QString("1.2.3"));
+}
+
+
+#ifdef HAVE_BOOST
+void tst_qregexp::simpleFindBoost(){
+    int roff;
+    boost::regex rx ("happy", boost::regex_constants::perl);
+    std::string s = str1.toStdString();
+    std::string::const_iterator start, end;
+    start = s.begin();
+    end = s.end();
+    boost::match_flag_type flags = boost::match_default;
+    QBENCHMARK{
+        boost::match_results<std::string::const_iterator> what;
+        regex_search(start, end, what, rx, flags);
+        roff = (what[0].first)-start;
+    }
+    QCOMPARE(roff, 11);
+}
+
+void tst_qregexp::rangeReplaceBoost()
+{
+    boost::regex pattern ("[a-f]", boost::regex_constants::perl);
+    std::string s = str1.toStdString();
+    std::string r;
+    QBENCHMARK{
+        r = boost::regex_replace (s, pattern, "-");
+    }
+    QCOMPARE(r, std::string("W- -r- -ll h-ppy monk-ys"));
+}
+
+void tst_qregexp::matchReplaceBoost()
+{
+    boost::regex pattern ("[^a-f]*([a-f]+)[^a-f]*",boost::regex_constants::perl);
+    std::string s = str1.toStdString();
+    std::string r;
+    QBENCHMARK{
+        r = boost::regex_replace (s, pattern, "$1");
+    }
+    QCOMPARE(r, std::string("eaeaae"));
+}
+
+void tst_qregexp::horribleWrongReplaceBoost()
+{
+    boost::regex pattern (".*#""define ZLIB_VERSION \"([0-9]+)\\.([0-9]+)\\.([0-9]+)\".*", boost::regex_constants::perl);
+    std::string s = str2.toStdString();
+    std::string r;
+    QBENCHMARK{
+        r = boost::regex_replace (s, pattern, "$1.$2.$3");
+    }
+    QCOMPARE(r, s);
+}
+
+void tst_qregexp::horribleReplaceBoost()
+{
+    boost::regex pattern (".*#""define ZLIB_VERSION \"([0-9]+)\\.([0-9]+)\\.([0-9]+).*", boost::regex_constants::perl);
+    std::string s = str2.toStdString();
+    std::string r;
+    QBENCHMARK{
+        r = boost::regex_replace (s, pattern, "$1.$2.$3");
+    }
+    QCOMPARE(r, std::string("1.2.3"));
+}
+#endif //HAVE_BOOST
+
 QTEST_MAIN(tst_qregexp)
 
 #include "main.moc"
--- a/tests/benchmarks/corelib/tools/qregexp/qregexp.pro	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/benchmarks/corelib/tools/qregexp/qregexp.pro	Mon Oct 04 01:19:32 2010 +0300
@@ -3,10 +3,19 @@
 TARGET = tst_bench_qregexp
 DEPENDPATH += .
 INCLUDEPATH += .
-
+RESOURCES+=qregexp.qrc
 QT -= gui
+QT += script
 
 CONFIG += release
 
 # Input
 SOURCES += main.cpp
+
+include( $${QT_SOURCE_TREE}/src/3rdparty/webkit/JavaScriptCore/JavaScriptCore.pri )
+
+exists( /usr/include/boost/regex.hpp ){
+DEFINES+=HAVE_BOOST
+LIBS+=-lboost_regex
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/benchmarks/corelib/tools/qregexp/qregexp.qrc	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,6 @@
+<!DOCTYPE RCC><RCC version="1.0">
+<qresource>
+    <file>main.cpp</file>
+</qresource>
+</RCC>
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/benchmarks/corelib/tools/qstring/data.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,1284 @@
+// This is a generated file - DO NOT EDIT
+static const ushort stringCollectionData[] __attribute__((aligned(16))) = { 
+    // #0
+    65535,
+         99, 111, 109, 112, 105, 108, 101, 114, 32, 118, 101, 114, 115, 105, 111, 110, 115, 47,
+    65535,65534,65533,65532,65531, // 24
+    65535,65534,65533,65532,65531,
+         99, 111, 109, 112, 105, 108, 101, 114, 32, 118, 101, 114, 115, 105, 111, 110, 115, 47,
+    65535, // 48
+
+    // #1
+    65535,65534,65533,65532,65531,
+         99, 111, 109, 112, 105, 108, 101, 114, 32, 118, 101, 114, 115, 105, 111, 110, 115, 47,
+    65535, // 72
+    65535,65534,65533,65532,65531,
+         67, 111, 109, 112, 105, 108, 101, 114, 32, 86, 101, 114, 115, 105, 111, 110, 115, 47,
+    65535, // 96
+
+    // #2
+    65535,
+         99, 111, 109, 112, 105, 108, 101, 114, 32, 116, 105, 109, 101, 115, 116, 97, 109, 112, 115, 47,
+    65535,65534,65533, // 120
+    65535,65534,65533,65532,65531,
+         99, 111, 109, 112, 105, 108, 101, 114, 32, 116, 105, 109, 101, 115, 116, 97, 109, 112, 115, 47,
+    65535,65534,65533,65532,65531,65530,65529, // 152
+
+    // #3
+    65535,65534,65533,65532,65531,
+         99, 111, 109, 112, 105, 108, 101, 114, 32, 116, 105, 109, 101, 115, 116, 97, 109, 112, 115, 47,
+    65535,65534,65533,65532,65531,65530,65529, // 184
+    65535,
+         67, 111, 109, 112, 105, 108, 101, 114, 32, 84, 105, 109, 101, 115, 116, 97, 109, 112, 115, 47,
+    65535,65534,65533, // 208
+
+    // #4
+    65535,65534,65533,65532,65531,65530,65529,65528,65527,65526,65525,65524,65523,65522,65521,65520,65519,
+         47, 118, 97, 114, 47, 116, 109, 112, 47, 116, 101, 97, 109, 98, 117, 105, 108, 100, 101, 114, 45, 116, 109, 97, 99, 105, 101, 105, 114, 47, 99, 108, 105, 101, 110, 116, 47, 99, 111, 109, 112, 105, 108, 101, 114, 115, 46, 99, 111, 110, 102,
+    65535,65534,65533,65532, // 280+
+    
+
+    // #5
+    65535,65534,65533,65532,65531,65530,65529,65528,65527,65526,65525,65524,65523,
+         47, 118, 97, 114, 47, 116, 109, 112, 47, 116, 101, 97, 109, 98, 117, 105, 108, 100, 101, 114, 45, 116, 109, 97, 99, 105, 101, 105, 114, 47, 99, 108, 105, 101, 110, 116, 47, 99, 111, 109, 112, 105, 108, 101, 114, 115, 46, 99, 111, 110, 102,
+    65535,65534,65533,65532,65531,65530,65529,65528, // 352+
+    65535,
+         47, 118, 97, 114, 47, 116, 109, 112, 47, 116, 101, 97, 109, 98, 117, 105, 108, 100, 101, 114, 45, 116, 109, 97, 99, 105, 101, 105, 114, 47, 99, 108, 105, 101, 110, 116, 47, 99, 111, 109, 112, 105, 108, 101, 114, 115, 46, 99, 111, 110, 102,
+    65535,65534,65533,65532, // 408+
+
+    // #6
+    65535,65534,65533,65532,65531,65530,65529,65528,65527,
+         47, 118, 97, 114, 47, 116, 109, 112, 47, 116, 101, 97, 109, 98, 117, 105, 108, 100, 101, 114, 45, 116, 109, 97, 99, 105, 101, 105, 114, 47, 99, 108, 105, 101, 110, 116, 47, 99, 111, 109, 112, 105, 108, 101, 114, 115, 46, 99, 111, 110, 102,
+    65535,65534,65533,65532, // 472+
+    
+
+    // #7
+    65535,
+         97, 114, 99, 104, 105, 118, 101, 100, 32, 99, 111, 109, 112, 105, 108, 101, 114, 115, 47,
+    65535,65534,65533,65532, // 496
+    65535,65534,65533,65532,65531,
+         97, 114, 99, 104, 105, 118, 101, 100, 32, 99, 111, 109, 112, 105, 108, 101, 114, 115, 47,
+    65535,65534,65533,65532,65531,65530,65529,65528, // 528
+
+    // #8
+    65535,65534,65533,65532,65531,
+         97, 114, 99, 104, 105, 118, 101, 100, 32, 99, 111, 109, 112, 105, 108, 101, 114, 115, 47,
+    65535,65534,65533,65532,65531,65530,65529,65528, // 560
+    65535,65534,65533,65532,65531,
+         65, 114, 99, 104, 105, 118, 101, 100, 32, 67, 111, 109, 112, 105, 108, 101, 114, 115, 47,
+    65535,65534,65533,65532,65531,65530,65529,65528, // 592
+
+    // #9
+    65535,65534,65533,65532,65531,65530,65529,65528,65527,65526,65525,65524,65523,65522,65521,65520,65519,
+         47, 118, 97, 114, 47, 116, 109, 112, 47, 116, 101, 97, 109, 98, 117, 105, 108, 100, 101, 114, 45, 116, 109, 97, 99, 105, 101, 105, 114, 47, 99, 108, 105, 101, 110, 116, 47, 99, 111, 109, 112, 105, 108, 101, 114, 115, 46, 99, 111, 110, 102,
+    65535,65534,65533,65532, // 664+
+    65535,65534,65533,65532,65531,65530,65529,65528,65527,65526,65525,65524,65523,
+         47, 118, 97, 114, 47, 116, 109, 112, 47, 116, 101, 97, 109, 98, 117, 105, 108, 100, 101, 114, 45, 116, 109, 97, 99, 105, 101, 105, 114, 47, 99, 108, 105, 101, 110, 116, 47, 99, 111, 109, 112, 105, 108, 101, 114, 115, 46, 99, 111, 110, 102,
+    65535,65534,65533,65532,65531,65530,65529,65528, // 736+
+
+    // #10
+    65535,65534,65533,65532,65531,
+         76, 105, 110, 117, 120,
+    65535,65534,65533,65532,65531,65530, // 752
+    65535,
+         76, 105, 110, 117, 120,
+    65535,65534, // 760
+
+    // #11
+    65535,65534,65533,65532,65531,
+         105, 51, 56, 54,
+    65535,65534,65533,65532,65531,65530,65529, // 776
+    65535,65534,65533,65532,65531,
+         105, 51, 56, 54,
+    65535,65534,65533,65532,65531,65530,65529, // 792
+
+    // #12
+    65535,
+         105, 99, 99,
+    65535,65534,65533,65532, // 800
+    65535,65534,65533,65532,65531,
+         103, 43, 43,
+    65535,65534,65533,65532,65531,65530,65529,65528, // 816
+
+    // #13
+    65535,
+         76, 105, 110, 117, 120,
+    65535,65534, // 824
+    65535,
+         76, 105, 110, 117, 120,
+    65535,65534, // 832
+
+    // #14
+    65535,
+         105, 51, 56, 54,
+    65535,65534,65533, // 840
+    65535,65534,65533,65532,65531,
+         105, 51, 56, 54,
+    65535,65534,65533,65532,65531,65530,65529, // 856
+
+    // #15
+    65535,
+         76, 105, 110, 117, 120,
+    65535,65534, // 864
+    65535,
+         76, 105, 110, 117, 120,
+    65535,65534, // 872
+
+    // #16
+    65535,
+         105, 51, 56, 54,
+    65535,65534,65533, // 880
+    65535,65534,65533,65532,65531,
+         105, 51, 56, 54,
+    65535,65534,65533,65532,65531,65530,65529, // 896
+
+    // #17
+    65535,
+         103, 99, 99,
+    65535,65534,65533,65532, // 904
+    65535,65534,65533,65532,65531,
+         103, 43, 43,
+    65535,65534,65533,65532,65531,65530,65529,65528, // 920
+
+    // #18
+    65535,65534,65533,65532,65531,
+         76, 105, 110, 117, 120,
+    65535,65534,65533,65532,65531,65530, // 936
+    65535,
+         76, 105, 110, 117, 120,
+    65535,65534, // 944
+
+    // #19
+    65535,65534,65533,65532,65531,
+         105, 51, 56, 54,
+    65535,65534,65533,65532,65531,65530,65529, // 960
+    65535,65534,65533,65532,65531,
+         105, 51, 56, 54,
+    65535,65534,65533,65532,65531,65530,65529, // 976
+
+    // #20
+    65535,
+         103, 43, 43,
+    65535,65534,65533,65532, // 984
+    65535,65534,65533,65532,65531,
+         103, 43, 43,
+    65535,65534,65533,65532,65531,65530,65529,65528, // 1000
+
+    // #21
+    65535,65534,65533,65532,65531,
+         52, 46, 52, 46, 51,
+    65535,65534,65533,65532,65531,65530, // 1016
+    65535,65534,65533,65532,65531,
+         52, 46, 52, 46, 51,
+    65535,65534,65533,65532,65531,65530, // 1032
+
+    // #22
+    65535,
+         76, 105, 110, 117, 120,
+    65535,65534, // 1040
+    65535,
+         76, 105, 110, 117, 120,
+    65535,65534, // 1048
+
+    // #23
+    65535,65534,65533,65532,65531,
+         105, 51, 56, 54,
+    65535,65534,65533,65532,65531,65530,65529, // 1064
+    65535,65534,65533,65532,65531,
+         105, 51, 56, 54,
+    65535,65534,65533,65532,65531,65530,65529, // 1080
+
+    // #24
+    65535,
+         47, 117, 115, 114, 47, 98, 105, 110, 47, 103, 43, 43,
+    65535,65534,65533, // 1096
+    65535,
+         47, 117, 115, 114, 47, 98, 105, 110, 47, 103, 43, 43,
+    65535,65534,65533, // 1112
+
+    // #25
+    65535,
+         76, 105, 110, 117, 120,
+    65535,65534, // 1120
+    65535,
+         76, 105, 110, 117, 120,
+    65535,65534, // 1128
+
+    // #26
+    65535,
+         105, 51, 56, 54,
+    65535,65534,65533, // 1136
+    65535,65534,65533,65532,65531,
+         105, 51, 56, 54,
+    65535,65534,65533,65532,65531,65530,65529, // 1152
+
+    // #27
+    65535,
+         105, 99, 99,
+    65535,65534,65533,65532, // 1160
+    65535,65534,65533,65532,65531,
+         103, 43, 43,
+    65535,65534,65533,65532,65531,65530,65529,65528, // 1176
+
+    // #28
+    65535,
+         76, 105, 110, 117, 120,
+    65535,65534, // 1184
+    65535,
+         76, 105, 110, 117, 120,
+    65535,65534, // 1192
+
+    // #29
+    65535,
+         105, 51, 56, 54,
+    65535,65534,65533, // 1200
+    65535,65534,65533,65532,65531,
+         105, 51, 56, 54,
+    65535,65534,65533,65532,65531,65530,65529, // 1216
+
+    // #30
+    65535,65534,65533,65532,65531,
+         76, 105, 110, 117, 120,
+    65535,65534,65533,65532,65531,65530, // 1232
+    65535,
+         76, 105, 110, 117, 120,
+    65535,65534, // 1240
+
+    // #31
+    65535,65534,65533,65532,65531,
+         105, 51, 56, 54,
+    65535,65534,65533,65532,65531,65530,65529, // 1256
+    65535,65534,65533,65532,65531,
+         105, 51, 56, 54,
+    65535,65534,65533,65532,65531,65530,65529, // 1272
+
+    // #32
+    65535,65534,65533,65532,65531,
+         76, 105, 110, 117, 120,
+    65535,65534,65533,65532,65531,65530, // 1288
+    65535,
+         76, 105, 110, 117, 120,
+    65535,65534, // 1296
+
+    // #33
+    65535,65534,65533,65532,65531,
+         105, 51, 56, 54,
+    65535,65534,65533,65532,65531,65530,65529, // 1312
+    65535,65534,65533,65532,65531,
+         105, 51, 56, 54,
+    65535,65534,65533,65532,65531,65530,65529, // 1328
+
+    // #34
+    65535,
+         45, 109, 97, 114, 99, 104, 61, 99, 111, 114, 101, 50,
+    65535,65534,65533, // 1344
+    65535,
+         116, 98, 51, 54, 57, 54, 56, 95, 50, 46, 105, 105,
+    65535,65534,65533, // 1360
+
+    // #35
+    65535,65534,65533,65532,65531,
+         45, 102, 108, 111, 111, 112, 45, 98, 108, 111, 99, 107,
+    65535,65534,65533,65532,65531,65530,65529, // 1384
+    65535,
+         116, 98, 51, 54, 57, 54, 56, 95, 50, 46, 105, 105,
+    65535,65534,65533, // 1400
+
+    // #36
+    65535,65534,65533,65532,65531,
+         116, 98, 51, 54, 57, 54, 56, 95, 50, 46, 105, 105,
+    65535,65534,65533,65532,65531,65530,65529, // 1424
+    65535,
+         116, 98, 51, 54, 57, 54, 56, 95, 50, 46, 105, 105,
+    65535,65534,65533, // 1440
+
+    // #37
+    65535,65534,65533,65532,65531,
+         45, 109, 115, 115, 101, 52,
+    65535,65534,65533,65532,65531, // 1456
+    65535,65534,65533,65532,65531,
+         108, 101, 110, 103, 116, 104,
+    65535,65534,65533,65532,65531, // 1472
+
+    // #38
+    65535,65534,65533,65532,65531,
+         116, 98, 51, 54, 57, 54, 56, 95, 49, 46, 111,
+    65535,65534,65533,65532,65531,65530,65529,65528, // 1496
+    65535,65534,65533,65532,65531,
+         116, 98, 51, 54, 57, 54, 56, 95, 49, 46, 111,
+    65535,65534,65533,65532,65531,65530,65529,65528, // 1520
+
+    // #39
+    65535,65534,65533,65532,65531,
+         68, 69, 83, 75, 84, 79, 80, 95, 83, 69, 83, 83,
+    65535,65534,65533,65532,65531,65530,65529, // 1544
+    65535,
+         84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+    65535,65534,65533, // 1560
+
+    // #40
+    65535,65534,65533,65532,65531,
+         76, 67, 95, 83, 79, 85, 82, 67, 69, 68, 61, 49,
+    65535,65534,65533,65532,65531,65530,65529, // 1584
+    65535,
+         84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+    65535,65534,65533, // 1600
+
+    // #41
+    65535,65534,65533,65532,65531,
+         81, 84, 68, 73, 82, 61, 47, 104, 111, 109, 101, 47,
+    65535,65534,65533,65532,65531,65530,65529, // 1624
+    65535,
+         84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+    65535,65534,65533, // 1640
+
+    // #42
+    65535,
+         76, 67, 95, 67, 84, 89, 80, 69, 61, 112, 116, 95,
+    65535,65534,65533, // 1656
+    65535,
+         84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+    65535,65534,65533, // 1672
+
+    // #43
+    65535,
+         71, 84, 75, 95, 82, 67, 95, 70, 73, 76, 69, 83,
+    65535,65534,65533, // 1688
+    65535,
+         84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+    65535,65534,65533, // 1704
+
+    // #44
+    65535,
+         88, 77, 79, 68, 73, 70, 73, 69, 82, 83, 61, 64,
+    65535,65534,65533, // 1720
+    65535,
+         84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+    65535,65534,65533, // 1736
+
+    // #45
+    65535,
+         83, 72, 69, 76, 76, 61, 47, 98, 105, 110, 47, 122,
+    65535,65534,65533, // 1752
+    65535,
+         84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+    65535,65534,65533, // 1768
+
+    // #46
+    65535,65534,65533,65532,65531,
+         85, 61, 64, 123, 117, 112, 115, 116, 114, 101, 97, 109,
+    65535,65534,65533,65532,65531,65530,65529, // 1792
+    65535,
+         84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+    65535,65534,65533, // 1808
+
+    // #47
+    65535,
+         95, 61, 47, 117, 115, 114, 47, 98, 105, 110, 47, 105,
+    65535,65534,65533, // 1824
+    65535,
+         84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+    65535,65534,65533, // 1840
+
+    // #48
+    65535,
+         88, 68, 71, 95, 67, 79, 78, 70, 73, 71, 95, 68,
+    65535,65534,65533, // 1856
+    65535,
+         84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+    65535,65534,65533, // 1872
+
+    // #49
+    65535,65534,65533,65532,65531,
+         83, 65, 86, 69, 72, 73, 83, 84, 61, 49, 48, 48,
+    65535,65534,65533,65532,65531,65530,65529, // 1896
+    65535,
+         84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+    65535,65534,65533, // 1912
+
+    // #50
+    65535,
+         75, 68, 69, 95, 77, 85, 76, 84, 73, 72, 69, 65,
+    65535,65534,65533, // 1928
+    65535,
+         84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+    65535,65534,65533, // 1944
+
+    // #51
+    65535,65534,65533,65532,65531,
+         77, 65, 76, 76, 79, 67, 95, 67, 72, 69, 67, 75,
+    65535,65534,65533,65532,65531,65530,65529, // 1968
+    65535,
+         84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+    65535,65534,65533, // 1984
+
+    // #52
+    65535,65534,65533,65532,65531,
+         72, 73, 83, 84, 67, 79, 78, 84, 82, 79, 76, 61,
+    65535,65534,65533,65532,65531,65530,65529, // 2008
+    65535,
+         84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+    65535,65534,65533, // 2024
+
+    // #53
+    65535,65534,65533,65532,65531,
+         88, 68, 71, 95, 68, 65, 84, 65, 95, 68, 73, 82,
+    65535,65534,65533,65532,65531,65530,65529, // 2048
+    65535,
+         84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+    65535,65534,65533, // 2064
+
+    // #54
+    65535,65534,65533,65532,65531,
+         88, 68, 77, 95, 77, 65, 78, 65, 71, 69, 68, 61,
+    65535,65534,65533,65532,65531,65530,65529, // 2088
+    65535,
+         84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+    65535,65534,65533, // 2104
+
+    // #55
+    65535,
+         76, 67, 95, 67, 79, 76, 76, 65, 84, 69, 61, 112,
+    65535,65534,65533, // 2120
+    65535,
+         84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+    65535,65534,65533, // 2136
+
+    // #56
+    65535,
+         81, 84, 95, 80, 76, 85, 71, 73, 78, 95, 80, 65,
+    65535,65534,65533, // 2152
+    65535,
+         84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+    65535,65534,65533, // 2168
+
+    // #57
+    65535,
+         83, 67, 82, 69, 69, 78, 68, 73, 82, 61, 47, 104,
+    65535,65534,65533, // 2184
+    65535,
+         84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+    65535,65534,65533, // 2200
+
+    // #58
+    65535,65534,65533,65532,65531,
+         76, 69, 83, 83, 79, 80, 69, 78, 61, 124, 47, 117,
+    65535,65534,65533,65532,65531,65530,65529, // 2224
+    65535,
+         84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+    65535,65534,65533, // 2240
+
+    // #59
+    65535,
+         76, 67, 95, 78, 65, 77, 69, 61, 110, 98, 95, 78,
+    65535,65534,65533, // 2256
+    65535,
+         84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+    65535,65534,65533, // 2272
+
+    // #60
+    65535,65534,65533,65532,65531,
+         80, 52, 67, 76, 73, 69, 78, 84, 61, 116, 109, 97,
+    65535,65534,65533,65532,65531,65530,65529, // 2296
+    65535,
+         84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+    65535,65534,65533, // 2312
+
+    // #61
+    65535,
+         80, 65, 84, 72, 61, 47, 104, 111, 109, 101, 47, 116,
+    65535,65534,65533, // 2328
+    65535,
+         84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+    65535,65534,65533, // 2344
+
+    // #62
+    65535,65534,65533,65532,65531,
+         71, 80, 71, 95, 65, 71, 69, 78, 84, 95, 73, 78,
+    65535,65534,65533,65532,65531,65530,65529, // 2368
+    65535,
+         84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+    65535,65534,65533, // 2384
+
+    // #63
+    65535,65534,65533,65532,65531,
+         88, 67, 85, 82, 83, 79, 82, 95, 84, 72, 69, 77,
+    65535,65534,65533,65532,65531,65530,65529, // 2408
+    65535,
+         84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+    65535,65534,65533, // 2424
+
+    // #64
+    65535,65534,65533,65532,65531,
+         83, 69, 83, 83, 73, 79, 78, 95, 77, 65, 78, 65,
+    65535,65534,65533,65532,65531,65530,65529, // 2448
+    65535,
+         84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+    65535,65534,65533, // 2464
+
+    // #65
+    65535,
+         81, 84, 83, 82, 67, 68, 73, 82, 61, 47, 104, 111,
+    65535,65534,65533, // 2480
+    65535,
+         84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+    65535,65534,65533, // 2496
+
+    // #66
+    65535,65534,65533,65532,65531,
+         87, 73, 78, 68, 79, 87, 73, 68, 61, 52, 54, 49,
+    65535,65534,65533,65532,65531,65530,65529, // 2520
+    65535,
+         84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+    65535,65534,65533, // 2536
+
+    // #67
+    65535,65534,65533,65532,65531,
+         76, 67, 95, 77, 69, 83, 83, 65, 71, 69, 83, 61,
+    65535,65534,65533,65532,65531,65530,65529, // 2560
+    65535,
+         84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+    65535,65534,65533, // 2576
+
+    // #68
+    65535,
+         76, 67, 95, 78, 85, 77, 69, 82, 73, 67, 61, 110,
+    65535,65534,65533, // 2592
+    65535,
+         84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+    65535,65534,65533, // 2608
+
+    // #69
+    65535,
+         71, 84, 75, 50, 95, 82, 67, 95, 70, 73, 76, 69,
+    65535,65534,65533, // 2624
+    65535,
+         84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+    65535,65534,65533, // 2640
+
+    // #70
+    65535,
+         80, 82, 79, 70, 73, 76, 69, 72, 79, 77, 69, 61,
+    65535,65534,65533, // 2656
+    65535,
+         84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+    65535,65534,65533, // 2672
+
+    // #71
+    65535,65534,65533,65532,65531,
+         68, 77, 95, 67, 79, 78, 84, 82, 79, 76, 61, 47,
+    65535,65534,65533,65532,65531,65530,65529, // 2696
+    65535,
+         84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+    65535,65534,65533, // 2712
+
+    // #72
+    65535,
+         76, 83, 95, 67, 79, 76, 79, 82, 83, 61, 114, 115,
+    65535,65534,65533, // 2728
+    65535,
+         84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+    65535,65534,65533, // 2744
+
+    // #73
+    65535,65534,65533,65532,65531,
+         83, 83, 72, 95, 65, 85, 84, 72, 95, 83, 79, 67,
+    65535,65534,65533,65532,65531,65530,65529, // 2768
+    65535,
+         84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+    65535,65534,65533, // 2784
+
+    // #74
+    65535,65534,65533,65532,65531,
+         75, 68, 69, 68, 73, 82, 83, 61, 47, 104, 111, 109,
+    65535,65534,65533,65532,65531,65530,65529, // 2808
+    65535,
+         84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+    65535,65534,65533, // 2824
+
+    // #75
+    65535,65534,65533,65532,65531,
+         76, 68, 95, 80, 82, 69, 76, 79, 65, 68, 61, 47,
+    65535,65534,65533,65532,65531,65530,65529, // 2848
+    65535,
+         84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+    65535,65534,65533, // 2864
+
+    // #76
+    65535,65534,65533,65532,65531,
+         88, 67, 85, 82, 83, 79, 82, 95, 80, 65, 84, 72,
+    65535,65534,65533,65532,65531,65530,65529, // 2888
+    65535,
+         84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+    65535,65534,65533, // 2904
+
+    // #77
+    65535,
+         115, 114, 99, 100, 105, 114, 61, 47, 104, 111, 109, 101,
+    65535,65534,65533, // 2920
+    65535,
+         84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+    65535,65534,65533, // 2936
+
+    // #78
+    65535,65534,65533,65532,65531,
+         72, 79, 77, 69, 61, 47, 104, 111, 109, 101, 47, 116,
+    65535,65534,65533,65532,65531,65530,65529, // 2960
+    65535,
+         84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+    65535,65534,65533, // 2976
+
+    // #79
+    65535,
+         81, 84, 52, 68, 79, 67, 68, 73, 82, 61, 47, 117,
+    65535,65534,65533, // 2992
+    65535,
+         84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+    65535,65534,65533, // 3008
+
+    // #80
+    65535,65534,65533,65532,65531,
+         80, 87, 68, 61, 47, 104, 111, 109, 101, 47, 116, 109,
+    65535,65534,65533,65532,65531,65530,65529, // 3032
+    65535,
+         84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+    65535,65534,65533, // 3048
+
+    // #81
+    65535,65534,65533,65532,65531,
+         75, 68, 69, 95, 83, 69, 83, 83, 73, 79, 78, 95,
+    65535,65534,65533,65532,65531,65530,65529, // 3072
+    65535,
+         84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+    65535,65534,65533, // 3088
+
+    // #82
+    65535,
+         73, 78, 83, 73, 68, 69, 95, 83, 80, 69, 67, 73,
+    65535,65534,65533, // 3104
+    65535,
+         84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+    65535,65534,65533, // 3120
+
+    // #83
+    65535,
+         83, 83, 72, 95, 65, 71, 69, 78, 84, 95, 80, 73,
+    65535,65534,65533, // 3136
+    65535,
+         84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+    65535,65534,65533, // 3152
+
+    // #84
+    65535,
+         80, 75, 71, 95, 67, 79, 78, 70, 73, 71, 95, 80,
+    65535,65534,65533, // 3168
+    65535,
+         84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+    65535,65534,65533, // 3184
+
+    // #85
+    65535,65534,65533,65532,65531,
+         68, 66, 85, 83, 95, 83, 69, 83, 83, 73, 79, 78,
+    65535,65534,65533,65532,65531,65530,65529, // 3208
+    65535,
+         84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+    65535,65534,65533, // 3224
+
+    // #86
+    65535,
+         76, 68, 95, 76, 73, 66, 82, 65, 82, 89, 95, 80,
+    65535,65534,65533, // 3240
+    65535,
+         84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+    65535,65534,65533, // 3256
+
+    // #87
+    65535,65534,65533,65532,65531,
+         80, 52, 85, 83, 69, 82, 61, 116, 106, 109, 97, 99,
+    65535,65534,65533,65532,65531,65530,65529, // 3280
+    65535,
+         84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+    65535,65534,65533, // 3296
+
+    // #88
+    65535,65534,65533,65532,65531,
+         81, 84, 69, 83, 84, 95, 67, 79, 76, 79, 82, 69,
+    65535,65534,65533,65532,65531,65530,65529, // 3320
+    65535,
+         84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+    65535,65534,65533, // 3336
+
+    // #89
+    65535,65534,65533,65532,65531,
+         88, 68, 71, 95, 83, 69, 83, 83, 73, 79, 78, 95,
+    65535,65534,65533,65532,65531,65530,65529, // 3360
+    65535,
+         84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+    65535,65534,65533, // 3376
+
+    // #90
+    65535,65534,65533,65532,65531,
+         76, 69, 83, 83, 75, 69, 89, 61, 47, 101, 116, 99,
+    65535,65534,65533,65532,65531,65530,65529, // 3400
+    65535,
+         84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+    65535,65534,65533, // 3416
+
+    // #91
+    65535,
+         76, 79, 71, 78, 65, 77, 69, 61, 116, 109, 97, 99,
+    65535,65534,65533, // 3432
+    65535,
+         84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+    65535,65534,65533, // 3448
+
+    // #92
+    65535,
+         71, 95, 70, 73, 76, 69, 78, 65, 77, 69, 95, 69,
+    65535,65534,65533, // 3464
+    65535,
+         84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+    65535,65534,65533, // 3480
+
+    // #93
+    65535,
+         75, 68, 69, 95, 70, 85, 76, 76, 95, 83, 69, 83,
+    65535,65534,65533, // 3496
+    65535,
+         84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+    65535,65534,65533, // 3512
+
+    // #94
+    65535,65534,65533,65532,65531,
+         72, 79, 83, 84, 78, 65, 77, 69, 61, 108, 111, 116,
+    65535,65534,65533,65532,65531,65530,65529, // 3536
+    65535,
+         84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+    65535,65534,65533, // 3552
+
+    // #95
+    65535,65534,65533,65532,65531,
+         76, 67, 95, 84, 73, 77, 69, 61, 112, 116, 95, 66,
+    65535,65534,65533,65532,65531,65530,65529, // 3576
+    65535,
+         84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+    65535,65534,65533, // 3592
+
+    // #96
+    65535,
+         83, 83, 72, 95, 65, 83, 75, 80, 65, 83, 83, 61,
+    65535,65534,65533, // 3608
+    65535,
+         84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+    65535,65534,65533, // 3624
+
+    // #97
+    65535,65534,65533,65532,65531,
+         72, 73, 83, 84, 70, 73, 76, 69, 61, 47, 104, 111,
+    65535,65534,65533,65532,65531,65530,65529, // 3648
+    65535,
+         84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+    65535,65534,65533, // 3664
+
+    // #98
+    65535,
+         75, 79, 78, 83, 79, 76, 69, 95, 68, 66, 85, 83,
+    65535,65534,65533, // 3680
+    65535,
+         84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+    65535,65534,65533, // 3696
+
+    // #99
+    65535,
+         77, 65, 75, 69, 61, 47, 117, 115, 114, 47, 98, 105,
+    65535,65534,65533, // 3712
+    65535,
+         84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+    65535,65534,65533, // 3728
+
+    // #100
+    65535,
+         67, 65, 78, 66, 69, 82, 82, 65, 95, 68, 82, 73,
+    65535,65534,65533, // 3744
+    65535,
+         84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+    65535,65534,65533, // 3760
+
+    // #101
+    65535,
+         71, 67, 79, 78, 70, 95, 84, 77, 80, 68, 73, 82,
+    65535,65534,65533, // 3776
+    65535,
+         84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+    65535,65534,65533, // 3792
+
+    // #102
+    65535,65534,65533,65532,65531,
+         85, 83, 69, 82, 61, 116, 109, 97, 99, 105, 101, 105,
+    65535,65534,65533,65532,65531,65530,65529, // 3816
+    65535,
+         84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+    65535,65534,65533, // 3832
+
+    // #103
+    65535,
+         111, 98, 106, 100, 105, 114, 61, 47, 104, 111, 109, 101,
+    65535,65534,65533, // 3848
+    65535,
+         84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+    65535,65534,65533, // 3864
+
+    // #104
+    65535,65534,65533,65532,65531,
+         76, 67, 95, 77, 79, 78, 69, 84, 65, 82, 89, 61,
+    65535,65534,65533,65532,65531,65530,65529, // 3888
+    65535,
+         84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+    65535,65534,65533, // 3904
+
+    // #105
+    65535,65534,65533,65532,65531,
+         81, 84, 76, 73, 66, 61, 47, 117, 115, 114, 47, 108,
+    65535,65534,65533,65532,65531,65530,65529, // 3928
+    65535,
+         84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+    65535,65534,65533, // 3944
+
+    // #106
+    65535,65534,65533,65532,65531,
+         76, 67, 95, 84, 69, 76, 69, 80, 72, 79, 78, 69,
+    65535,65534,65533,65532,65531,65530,65529, // 3968
+    65535,
+         84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+    65535,65534,65533, // 3984
+
+    // #107
+    65535,
+         80, 89, 84, 72, 79, 78, 68, 79, 78, 84, 87, 82,
+    65535,65534,65533, // 4000
+    65535,
+         84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+    65535,65534,65533, // 4016
+
+    // #108
+    65535,65534,65533,65532,65531,
+         84, 77, 80, 68, 73, 82, 61, 47, 116, 109, 112, 47,
+    65535,65534,65533,65532,65531,65530,65529, // 4040
+    65535,
+         84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+    65535,65534,65533, // 4056
+
+    // #109
+    65535,65534,65533,65532,65531,
+         65, 82, 77, 76, 77, 68, 95, 76, 73, 67, 69, 78,
+    65535,65534,65533,65532,65531,65530,65529, // 4080
+    65535,
+         84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+    65535,65534,65533, // 4096
+
+    // #110
+    65535,
+         80, 89, 84, 72, 79, 78, 80, 65, 84, 72, 61, 47,
+    65535,65534,65533, // 4112
+    65535,
+         84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+    65535,65534,65533, // 4128
+
+    // #111
+    65535,65534,65533,65532,65531,
+         77, 65, 75, 69, 70, 76, 65, 71, 83, 61, 119, 32,
+    65535,65534,65533,65532,65531,65530,65529, // 4152
+    65535,
+         84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+    65535,65534,65533, // 4168
+
+    // #112
+    65535,
+         77, 70, 76, 65, 71, 83, 61, 45, 119, 32, 45, 45,
+    65535,65534,65533, // 4184
+    65535,
+         84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+    65535,65534,65533, // 4200
+
+    // #113
+    65535,
+         77, 65, 73, 76, 61, 47, 118, 97, 114, 47, 115, 112,
+    65535,65534,65533, // 4216
+    65535,
+         84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+    65535,65534,65533, // 4232
+
+    // #114
+    65535,65534,65533,65532,65531,
+         83, 72, 69, 76, 76, 95, 83, 69, 83, 83, 73, 79,
+    65535,65534,65533,65532,65531,65530,65529, // 4256
+    65535,
+         84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+    65535,65534,65533, // 4272
+
+    // #115
+    65535,
+         75, 68, 69, 68, 73, 82, 61, 47, 104, 111, 109, 101,
+    65535,65534,65533, // 4288
+    65535,
+         84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+    65535,65534,65533, // 4304
+
+    // #116
+    65535,65534,65533,65532,65531,
+         76, 69, 83, 83, 67, 72, 65, 82, 83, 69, 84, 61,
+    65535,65534,65533,65532,65531,65530,65529, // 4328
+    65535,
+         84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+    65535,65534,65533, // 4344
+
+    // #117
+    65535,65534,65533,65532,65531,
+         76, 67, 95, 80, 65, 80, 69, 82, 61, 110, 98, 95,
+    65535,65534,65533,65532,65531,65530,65529, // 4368
+    65535,
+         84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+    65535,65534,65533, // 4384
+
+    // #118
+    65535,
+         66, 82, 79, 87, 83, 69, 82, 61, 47, 117, 115, 114,
+    65535,65534,65533, // 4400
+    65535,
+         84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+    65535,65534,65533, // 4416
+
+    // #119
+    65535,
+         77, 69, 84, 65, 95, 67, 76, 65, 83, 83, 61, 100,
+    65535,65534,65533, // 4432
+    65535,
+         84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+    65535,65534,65533, // 4448
+
+    // #120
+    65535,65534,65533,65532,65531,
+         77, 68, 86, 95, 77, 69, 78, 85, 95, 83, 84, 89,
+    65535,65534,65533,65532,65531,65530,65529, // 4472
+    65535,
+         84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+    65535,65534,65533, // 4488
+
+    // #121
+    65535,65534,65533,65532,65531,
+         67, 79, 76, 79, 82, 70, 71, 66, 71, 61, 49, 53,
+    65535,65534,65533,65532,65531,65530,65529, // 4512
+    65535,
+         84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+    65535,65534,65533, // 4528
+
+    // #122
+    65535,65534,65533,65532,65531,
+         80, 89, 84, 72, 79, 78, 83, 84, 65, 82, 84, 85,
+    65535,65534,65533,65532,65531,65530,65529, // 4552
+    65535,
+         84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+    65535,65534,65533, // 4568
+
+    // #123
+    65535,
+         76, 67, 95, 77, 69, 65, 83, 85, 82, 69, 77, 69,
+    65535,65534,65533, // 4584
+    65535,
+         84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+    65535,65534,65533, // 4600
+
+    // #124
+    65535,65534,65533,65532,65531,
+         69, 68, 73, 84, 79, 82, 61, 47, 117, 115, 114, 47,
+    65535,65534,65533,65532,65531,65530,65529, // 4624
+    65535,
+         84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+    65535,65534,65533, // 4640
+
+    // #125
+    65535,65534,65533,65532,65531,
+         69, 78, 95, 84, 66, 61, 109, 111, 99, 58, 117, 105,
+    65535,65534,65533,65532,65531,65530,65529, // 4664
+    65535,
+         84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+    65535,65534,65533, // 4680
+
+    // #126
+    65535,
+         72, 73, 83, 84, 83, 73, 90, 69, 61, 49, 48, 48,
+    65535,65534,65533, // 4696
+    65535,
+         84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+    65535,65534,65533, // 4712
+
+    // #127
+    65535,65534,65533,65532,65531,
+         71, 83, 95, 76, 73, 66, 61, 47, 104, 111, 109, 101,
+    65535,65534,65533,65532,65531,65530,65529, // 4736
+    65535,
+         84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+    65535,65534,65533, // 4752
+
+    // #128
+    65535,65534,65533,65532,65531,
+         78, 76, 83, 80, 65, 84, 72, 61, 47, 117, 115, 114,
+    65535,65534,65533,65532,65531,65530,65529, // 4776
+    65535,
+         84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+    65535,65534,65533, // 4792
+
+    // #129
+    65535,65534,65533,65532,65531,
+         87, 73, 78, 68, 79, 87, 80, 65, 84, 72, 61, 55,
+    65535,65534,65533,65532,65531,65530,65529, // 4816
+    65535,
+         84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+    65535,65534,65533, // 4832
+
+    // #130
+    65535,65534,65533,65532,65531,
+         75, 79, 78, 83, 79, 76, 69, 95, 68, 66, 85, 83,
+    65535,65534,65533,65532,65531,65530,65529, // 4856
+    65535,
+         84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+    65535,65534,65533, // 4872
+
+    // #131
+    65535,
+         76, 67, 95, 73, 68, 69, 78, 84, 73, 70, 73, 67,
+    65535,65534,65533, // 4888
+    65535,
+         84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+    65535,65534,65533, // 4904
+
+    // #132
+    65535,
+         73, 78, 80, 85, 84, 82, 67, 61, 47, 101, 116, 99,
+    65535,65534,65533, // 4920
+    65535,
+         84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+    65535,65534,65533, // 4936
+
+    // #133
+    65535,65534,65533,65532,65531,
+         81, 84, 73, 78, 67, 61, 47, 117, 115, 114, 47, 108,
+    65535,65534,65533,65532,65531,65530,65529, // 4960
+    65535,
+         84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+    65535,65534,65533, // 4976
+
+    // #134
+    65535,
+         76, 67, 95, 65, 68, 68, 82, 69, 83, 83, 61, 110,
+    65535,65534,65533, // 4992
+    65535,
+         84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+    65535,65534,65533, // 5008
+
+    // #135
+    65535,65534,65533,65532,65531,
+         84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 95,
+    65535,65534,65533,65532,65531,65530,65529, // 5032
+    65535,
+         84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+    65535,65534,65533, // 5048
+
+    // #136
+    65535,
+         76, 65, 78, 71, 61, 112, 116, 95, 66, 82, 46, 85,
+    65535,65534,65533, // 5064
+    65535,
+         84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+    65535,65534,65533, // 5080
+
+    // #137
+    65535,
+         80, 52, 80, 79, 82, 84, 61, 112, 52, 46, 116, 114,
+    65535,65534,65533, // 5096
+    65535,
+         84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+    65535,65534,65533, // 5112
+
+    // #138
+    65535,65534,65533,65532,65531,
+         80, 73, 76, 79, 84, 80, 79, 82, 84, 61, 117, 115,
+    65535,65534,65533,65532,65531,65530,65529, // 5136
+    65535,
+         84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+    65535,65534,65533, // 5152
+
+    // #139
+    65535,
+         75, 68, 69, 95, 83, 69, 83, 83, 73, 79, 78, 95,
+    65535,65534,65533, // 5168
+    65535,
+         84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+    65535,65534,65533, // 5184
+
+    // #140
+    65535,
+         84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+    65535,65534,65533, // 5200
+    65535,
+         84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+    65535,65534,65533, // 5216
+
+
+};
+static struct StringCollection
+{
+    int len;
+    int offset1, offset2;
+    ushort align1, align2;
+} stringCollection[] = {
+    {18, 1, 29, 3666, 106},     // #0
+    {18, 53, 77, 106, 1978},     // #1
+    {20, 97, 125, 2850, 3210},     // #2
+    {20, 157, 185, 3210, 3138},     // #3
+    {51, 225, 225, 3362, 3362},     // #4
+    {51, 293, 353, 1434, 3362},     // #5
+    {51, 417, 417, 3362, 3362},     // #6
+    {19, 473, 501, 2850, 10},     // #7
+    {19, 533, 565, 10, 442},     // #8
+    {51, 609, 677, 3362, 1434},     // #9
+    {5, 741, 753, 2666, 2066},     // #10
+    {4, 765, 781, 2362, 3930},     // #11
+    {3, 793, 805, 3330, 2138},     // #12
+    {5, 817, 825, 738, 2066},     // #13
+    {4, 833, 845, 434, 3930},     // #14
+    {5, 857, 865, 3842, 2066},     // #15
+    {4, 873, 885, 3538, 3930},     // #16
+    {3, 897, 909, 3330, 2138},     // #17
+    {5, 925, 937, 1898, 2066},     // #18
+    {4, 949, 965, 1594, 3930},     // #19
+    {3, 977, 989, 3330, 2138},     // #20
+    {5, 1005, 1021, 2218, 762},     // #21
+    {5, 1033, 1041, 3346, 2066},     // #22
+    {4, 1053, 1069, 3082, 3930},     // #23
+    {12, 1081, 1097, 2082, 962},     // #24
+    {5, 1113, 1121, 3362, 2066},     // #25
+    {4, 1129, 1141, 322, 3930},     // #26
+    {3, 1153, 1165, 2050, 2138},     // #27
+    {5, 1177, 1185, 1538, 2066},     // #28
+    {4, 1193, 1205, 1234, 3930},     // #29
+    {5, 1221, 1233, 554, 2066},     // #30
+    {4, 1245, 1261, 250, 3930},     // #31
+    {5, 1277, 1289, 2858, 2066},     // #32
+    {4, 1301, 1317, 2554, 3930},     // #33
+    {12, 1329, 1345, 2194, 1762},     // #34
+    {12, 1365, 1385, 2170, 1762},     // #35
+    {12, 1405, 1425, 2314, 1762},     // #36
+    {6, 1445, 1461, 3626, 666},     // #37
+    {11, 1477, 1501, 3882, 842},     // #38
+    {12, 1525, 1545, 1722, 2930},     // #39
+    {12, 1565, 1585, 1914, 2930},     // #40
+    {12, 1605, 1625, 442, 2930},     // #41
+    {12, 1641, 1657, 626, 2930},     // #42
+    {12, 1673, 1689, 946, 2930},     // #43
+    {12, 1705, 1721, 738, 2930},     // #44
+    {12, 1737, 1753, 2066, 2930},     // #45
+    {12, 1773, 1793, 1210, 2930},     // #46
+    {12, 1809, 1825, 1426, 2930},     // #47
+    {12, 1841, 1857, 1650, 2930},     // #48
+    {12, 1877, 1897, 1530, 2930},     // #49
+    {12, 1913, 1929, 1858, 2930},     // #50
+    {12, 1949, 1969, 2106, 2930},     // #51
+    {12, 1989, 2009, 2202, 2930},     // #52
+    {12, 2029, 2049, 2490, 2930},     // #53
+    {12, 2069, 2089, 2794, 2930},     // #54
+    {12, 2105, 2121, 2322, 2930},     // #55
+    {12, 2137, 2153, 2834, 2930},     // #56
+    {12, 2169, 2185, 1266, 2930},     // #57
+    {12, 2205, 2225, 2538, 2930},     // #58
+    {12, 2241, 2257, 2706, 2930},     // #59
+    {12, 2277, 2297, 3402, 2930},     // #60
+    {12, 2313, 2329, 146, 2930},     // #61
+    {12, 2349, 2369, 3690, 2930},     // #62
+    {12, 2389, 2409, 810, 2930},     // #63
+    {12, 2429, 2449, 1178, 2930},     // #64
+    {12, 2465, 2481, 1442, 2930},     // #65
+    {12, 2501, 2521, 3546, 2930},     // #66
+    {12, 2541, 2561, 1930, 2930},     // #67
+    {12, 2577, 2593, 1634, 2930},     // #68
+    {12, 2609, 2625, 1986, 2930},     // #69
+    {12, 2641, 2657, 1970, 2930},     // #70
+    {12, 2677, 2697, 1834, 2930},     // #71
+    {12, 2713, 2729, 1474, 2930},     // #72
+    {12, 2749, 2769, 2250, 2930},     // #73
+    {12, 2789, 2809, 2458, 2930},     // #74
+    {12, 2829, 2849, 2618, 2930},     // #75
+    {12, 2869, 2889, 3066, 2930},     // #76
+    {12, 2905, 2921, 3330, 2930},     // #77
+    {12, 2941, 2961, 1706, 2930},     // #78
+    {12, 2977, 2993, 2802, 2930},     // #79
+    {12, 3013, 3033, 3770, 2930},     // #80
+    {12, 3053, 3073, 3594, 2930},     // #81
+    {12, 3089, 3105, 2, 2930},     // #82
+    {12, 3121, 3137, 2962, 2930},     // #83
+    {12, 3153, 3169, 290, 2930},     // #84
+    {12, 3189, 3209, 794, 2930},     // #85
+    {12, 3225, 3241, 1058, 2930},     // #86
+    {12, 3261, 3281, 2394, 2930},     // #87
+    {12, 3301, 3321, 138, 2930},     // #88
+    {12, 3341, 3361, 1482, 2930},     // #89
+    {12, 3381, 3401, 570, 2930},     // #90
+    {12, 3417, 3433, 674, 2930},     // #91
+    {12, 3449, 3465, 1282, 2930},     // #92
+    {12, 3481, 3497, 1746, 2930},     // #93
+    {12, 3517, 3537, 1866, 2930},     // #94
+    {12, 3557, 3577, 1978, 2930},     // #95
+    {12, 3593, 3609, 3954, 2930},     // #96
+    {12, 3629, 3649, 2570, 2930},     // #97
+    {12, 3665, 3681, 2754, 2930},     // #98
+    {12, 3697, 3713, 3666, 2930},     // #99
+    {12, 3729, 3745, 34, 2930},     // #100
+    {12, 3761, 3777, 2914, 2930},     // #101
+    {12, 3797, 3817, 1194, 2930},     // #102
+    {12, 3833, 3849, 3202, 2930},     // #103
+    {12, 3869, 3889, 3018, 2930},     // #104
+    {12, 3909, 3929, 202, 2930},     // #105
+    {12, 3949, 3969, 3546, 2930},     // #106
+    {12, 3985, 4001, 3682, 2930},     // #107
+    {12, 4021, 4041, 3466, 2930},     // #108
+    {12, 4061, 4081, 4074, 2930},     // #109
+    {12, 4097, 4113, 306, 2930},     // #110
+    {12, 4133, 4153, 634, 2930},     // #111
+    {12, 4169, 4185, 802, 2930},     // #112
+    {12, 4201, 4217, 962, 2930},     // #113
+    {12, 4237, 4257, 1114, 2930},     // #114
+    {12, 4273, 4289, 1250, 2930},     // #115
+    {12, 4309, 4329, 3898, 2930},     // #116
+    {12, 4349, 4369, 1386, 2930},     // #117
+    {12, 4385, 4401, 1586, 2930},     // #118
+    {12, 4417, 4433, 1730, 2930},     // #119
+    {12, 4453, 4473, 1914, 2930},     // #120
+    {12, 4493, 4513, 1498, 2930},     // #121
+    {12, 4533, 4553, 2138, 2930},     // #122
+    {12, 4569, 4585, 2290, 2930},     // #123
+    {12, 4605, 4625, 2426, 2930},     // #124
+    {12, 4645, 4665, 2666, 2930},     // #125
+    {12, 4681, 4697, 2050, 2930},     // #126
+    {12, 4717, 4737, 2874, 2930},     // #127
+    {12, 4757, 4777, 3018, 2930},     // #128
+    {12, 4797, 4817, 1834, 2930},     // #129
+    {12, 4837, 4857, 3178, 2930},     // #130
+    {12, 4873, 4889, 3314, 2930},     // #131
+    {12, 4905, 4921, 2546, 2930},     // #132
+    {12, 4941, 4961, 3546, 2930},     // #133
+    {12, 4977, 4993, 3682, 2930},     // #134
+    {12, 5013, 5033, 3802, 2930},     // #135
+    {12, 5049, 5065, 3922, 2930},     // #136
+    {12, 5081, 5097, 4018, 2930},     // #137
+    {12, 5117, 5137, 42, 2930},     // #138
+    {12, 5153, 5169, 130, 2930},     // #139
+    {12, 5185, 5201, 242, 2930},     // #140
+};
+static const int stringCollectionCount = 141;
+static const int stringCollectionMaxLen = 51;
+// average comparison length: 12.0922
+// cache-line crosses: 6 (2.1%)
+// alignment histogram:
+//   0xXXX2 = 188 (66.7%) strings, 57 (30.3%) of which same-aligned
+//   0xXXXa = 94 (33.3%) strings, 10 (10.6%) of which same-aligned
+//   total  = 282 (100%) strings, 67 (23.8%) of which same-aligned
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/benchmarks/corelib/tools/qstring/data.h	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,53 @@
+/****************************************************************************
+**
+** 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 <qglobal.h>
+
+struct StringCollection
+{
+    int len;
+    int offset1, offset2;
+    ushort align1, align2;
+};
+
+extern const ushort stringCollectionData[];
+extern StringCollection stringCollection[];
+extern const int stringCollectionCount;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/benchmarks/corelib/tools/qstring/generatelist.pl	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,198 @@
+#!/usr/bin/perl
+## 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 QtCore module of the Qt Toolkit.
+##
+## $QT_BEGIN_LICENSE:LGPL$
+## No Commercial Usage
+## This file contains pre-release code and may not be distributed.
+## You may use this file in accordance with the terms and conditions
+## contained in the Technology Preview License Agreement accompanying
+## this package.
+##
+## GNU Lesser General Public License Usage
+## Alternatively, this file may be used under the terms of the GNU Lesser
+## General Public License version 2.1 as published by the Free Software
+## Foundation and appearing in the file LICENSE.LGPL included in the
+## packaging of this file.  Please review the following information to
+## ensure the GNU Lesser General Public License version 2.1 requirements
+## will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+##
+## In addition, as a special exception, Nokia gives you certain additional
+## rights.  These rights are described in the Nokia Qt LGPL Exception
+## version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+##
+## If you have questions regarding the use of this file, please contact
+## Nokia at qt-info@nokia.com.
+##
+##
+##
+##
+##
+##
+##
+##
+## $QT_END_LICENSE$
+#
+# Parses a file (passed as argument) that contains a dump of pairs of
+# strings and generates C source code including said data.
+#
+# The format of the file is:
+#   LEN = <len> <keyword> <align1> <align2>\n<data1><data2>\n
+# where:
+#   LEN		the literal string "LEN"
+#   <len>	the length of the data, in 16-bit words
+#   <keyword>	the literal string "SAME" or "DIFF"
+#   <align1>    the alignment or pointer value of the first data
+#   <align2>    the alignment or pointer value of the second data
+#   <data1>     the first data
+#   <data2>     the second data
+#   \n          newline
+#
+# The code to write this data would be:
+#   fprintf(out, "LEN = %d %s %d %d\n", len,
+#          (p1 == p2) ? "SAME" : "DIFF",
+#          uint(quintptr(p1)) & 0xfff, uint(quintptr(p2)) & 0xfff);
+#   fwrite(p1, 2, len, out);
+#   fwrite(p2, 2, len, out);
+#   fwrite("\n", 1, 1, out);
+
+sub printUshortArray($$$) {
+    $str = $_[0];
+    $align = $_[1] & 0x1f;
+    $offset = $_[2];
+
+    die if ($align & 1) != 0;
+    $align /= 2;
+
+    $len = (length $str) / 2;
+    $headpadding = $align & 0x7;
+    $tailpadding = 8 - (($len + $headpadding) & 0x7);
+    $multiplecachelines = ($align + $len) > 0x20;
+
+    if ($multiplecachelines) {
+	# if this string crosses into a new cacheline, then
+	# replicate the result
+	$headpadding |= ($offset & ~0x1f);
+	$headpadding += 0x20
+	    if ($headpadding < $offset);
+	$headpadding -= $offset;
+	++$cachelinecrosses;
+    }
+    for $i (1..$headpadding) {
+	print 65536-$i,",";
+    }
+    print "\n        " if ($headpadding > 0);
+    print "    " if ($headpadding == 0);
+
+    for ($i = 0; $i < $len * 2; $i += 2) {
+	print " ", ord(substr($str, $i, 1)) +
+	    ord(substr($str, $i + 1, 1)) * 256,
+	    ",";
+    }
+    print "\n    " if ($tailpadding > 0);
+
+    for $i (1..$tailpadding) {
+	print 65536-$i, ",";
+    }
+    print " // ", $offset + $headpadding + $len + $tailpadding;
+    print "+" if $multiplecachelines;
+
+    return ($offset + $headpadding, $offset + $headpadding + $len + $tailpadding);
+}
+
+print "#include \"data.h\"\n\n";
+
+print "// This is a generated file - DO NOT EDIT\n";
+print "const ushort stringCollectionData[] __attribute__((aligned(64))) = {\n";
+$count = 0;
+$offset = 0;
+$totalsize = 0;
+$maxlen = 0;
+$cachelinecrosses = 0;
+
+open IN, "<" . $ARGV[0];
+while (1) {
+    $line = readline(*IN);
+    last unless defined($line);
+    $line =~ /LEN = (\d+) (\w+) (\d+) (\d+)/;
+    $len = $1;
+    $data[$count]->{len} = $len;
+    $sameptr = $2;
+    $data[$count]->{align1} = $3 - 0;
+    $data[$count]->{align2} = $4 - 0;
+
+    # statistics
+    $alignhistogram{$3 & 0xf}++;
+    $alignhistogram{$4 & 0xf}++;
+    $samealignments{$3 & 0xf}++ if ($3 & 0xf) == ($4 & 0xf);
+
+    read IN, $a, $len * 2;
+    read IN, $b, $len * 2;
+
+    <IN>;			# Eat the newline
+
+    if ($len == 0) {
+	$data[$count]->{offset1} = $offset;
+	$data[$count]->{offset2} = $data[$count]->{offset1};
+	++$data[$count]->{offset2} if ($sameptr eq "DIFF");
+    } else {
+	print "    // #$count\n";
+	print "    ";
+	($data[$count]->{offset1}, $offset) =
+	    printUshortArray($a, $data[$count]->{align1}, $offset);
+	print "\n    ";
+	die if ($offset & 0x7) != 0;
+
+	if ($sameptr eq "DIFF") {
+	    ($data[$count]->{offset2}, $offset) =
+		printUshortArray($b, $data[$count]->{align2}, $offset);
+	    print "\n\n";
+	} else {
+	    $data[$count]->{offset2} = $data[$count]->{offset1};
+	    print "\n\n";
+	}
+    }
+    ++$count;
+
+    $totalsize += $len;
+    $maxlen = $len if $len > $maxlen;
+}
+print "\n};\n";
+close IN;
+
+print "struct StringCollection stringCollection[] = {\n";
+
+for $i (0..$count-1) {
+    print "    {",
+        $data[$i]->{len}, ", ",
+        $data[$i]->{offset1}, ", ",
+        $data[$i]->{offset2}, ", ",
+        $data[$i]->{align1}, ", ",
+        $data[$i]->{align2},
+        "},     // #$i\n";
+    next if $data[$i]->{len} == 0;
+    die if (($data[$i]->{offset1} & 0x7) != ($data[$i]->{align1} & 0xf)/2);
+    die if (($data[$i]->{offset2} & 0x7) != ($data[$i]->{align2} & 0xf)/2);
+}
+print "};\n";
+
+print "const int stringCollectionCount = $count;\n";
+print "const int stringCollectionMaxLen = $maxlen;\n";
+printf "// average comparison length: %.4f\n", ($totalsize * 1.0 / $count);
+printf "// cache-line crosses: %d (%.1f%%)\n",
+    $cachelinecrosses, ($cachelinecrosses * 100.0 / $count / 2);
+
+print "// alignment histogram:\n";
+for $key (sort { $a <=> $b } keys(%alignhistogram)) {
+    $value = $alignhistogram{$key};
+    $samealigned = $samealignments{$key};
+    printf "//   0xXXX%x = %d (%.1f%%) strings, %d (%.1f%%) of which same-aligned\n",
+	$key, $value, $value * 100.0 / ($count*2),
+        $samealigned, $samealigned * 100.0 / $value;
+    $samealignedtotal += $samealigned;
+}
+printf "//   total  = %d (100%) strings, %d (%.1f%%) of which same-aligned\n",
+    $count * 2, $samealignedtotal, $samealignedtotal * 100 / $count / 2;
--- a/tests/benchmarks/corelib/tools/qstring/main.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/benchmarks/corelib/tools/qstring/main.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -40,7 +40,7 @@
 ****************************************************************************/
 #include <QStringList>
 #include <QFile>
-#include <qtest.h>
+#include <QtTest/QtTest>
 
 #ifdef Q_OS_SYMBIAN
 // In Symbian OS test data is located in applications private dir
@@ -48,12 +48,27 @@
 #define SRCDIR ""
 #endif
 
+#ifdef Q_OS_UNIX
+#include <sys/mman.h>
+#include <unistd.h>
+#endif
+
+#include <private/qsimd_p.h>
+
+#include "data.h"
+
 class tst_QString: public QObject
 {
     Q_OBJECT
+public:
+    tst_QString();
 private slots:
     void equals() const;
     void equals_data() const;
+    void equals2_data() const;
+    void equals2() const;
+    void ucstrncmp_data() const;
+    void ucstrncmp() const;
     void fromUtf8() const;
 };
 
@@ -67,6 +82,10 @@
     }
 }
 
+tst_QString::tst_QString()
+{
+}
+
 void tst_QString::equals_data() const
 {
     static const struct {
@@ -126,6 +145,1247 @@
             << QString::fromRawData(ptr + 1, 58) << QString::fromRawData(ptr + 3, 58);
 }
 
+static bool equals2_memcmp_call(const ushort *p1, const ushort *p2, int len)
+{
+    return memcmp(p1, p2, len * 2) == 0;
+}
+
+static bool equals2_bytewise(const ushort *p1, const ushort *p2, int len)
+{
+    if (p1 == p2 || !len)
+        return true;
+    uchar *b1 = (uchar *)p1;
+    uchar *b2 = (uchar *)p2;
+    len *= 2;
+    while (len--)
+        if (*b1++ != *b2++)
+            return false;
+    return true;
+}
+
+static bool equals2_shortwise(const ushort *p1, const ushort *p2, int len)
+{
+    if (p1 == p2 || !len)
+        return true;
+//    for (register int counter; counter < len; ++counter)
+//        if (p1[counter] != p2[counter])
+//            return false;
+    while (len--) {
+        if (p1[len] != p2[len])
+            return false;
+    }
+    return true;
+}
+
+static bool equals2_intwise(const ushort *p1, const ushort *p2, int length)
+{
+    if (p1 == p2 || !length)
+        return true;
+    register union {
+        const quint16 *w;
+        const quint32 *d;
+        quintptr value;
+    } sa, sb;
+    sa.w = p1;
+    sb.w = p2;
+
+    // check alignment
+    if ((sa.value & 2) == (sb.value & 2)) {
+        // both addresses have the same alignment
+        if (sa.value & 2) {
+            // both addresses are not aligned to 4-bytes boundaries
+            // compare the first character
+            if (*sa.w != *sb.w)
+                return false;
+            --length;
+            ++sa.w;
+            ++sb.w;
+
+            // now both addresses are 4-bytes aligned
+        }
+
+        // both addresses are 4-bytes aligned
+        // do a fast 32-bit comparison
+        register const quint32 *e = sa.d + (length >> 1);
+        for ( ; sa.d != e; ++sa.d, ++sb.d) {
+            if (*sa.d != *sb.d)
+                return false;
+        }
+
+        // do we have a tail?
+        return (length & 1) ? *sa.w == *sb.w : true;
+    } else {
+        // one of the addresses isn't 4-byte aligned but the other is
+        register const quint16 *e = sa.w + length;
+        for ( ; sa.w != e; ++sa.w, ++sb.w) {
+            if (*sa.w != *sb.w)
+                return false;
+        }
+    }
+    return true;
+}
+
+static inline bool equals2_short_tail(const ushort *p1, const ushort *p2, int len)
+{
+    if (len) {
+        if (*p1 != *p2)
+            return false;
+        if (--len) {
+            if (p1[1] != p2[1])
+                return false;
+            if (--len) {
+                if (p1[2] != p2[2])
+                    return false;
+                if (--len) {
+                    if (p1[3] != p2[3])
+                        return false;
+                    if (--len) {
+                        if (p1[4] != p2[4])
+                            return false;
+                        if (--len) {
+                            if (p1[5] != p2[5])
+                                return false;
+                            if (--len) {
+                                if (p1[6] != p2[6])
+                                    return false;
+                                return p1[7] == p2[7];
+                            }
+                        }
+                    }
+                }
+            }
+        }
+    }
+    return true;
+}
+
+//#pragma GCC optimize("no-unroll-loops")
+#ifdef __SSE2__
+static bool equals2_sse2_aligned(const ushort *p1, const ushort *p2, int len)
+{
+    if (len >= 8) {
+        qptrdiff counter = 0;
+        while (len > 8) {
+            __m128i q1 = _mm_load_si128((__m128i *)(p1 + counter));
+            __m128i q2 = _mm_load_si128((__m128i *)(p2 + counter));
+            __m128i cmp = _mm_cmpeq_epi16(q1, q2);
+            if (ushort(_mm_movemask_epi8(cmp)) != ushort(0xffff))
+                return false;
+
+            len -= 8;
+            counter += 8;
+        }
+        p1 += counter;
+        p2 += counter;
+    }
+
+    return equals2_short_tail(p1, p2, len);
+}
+
+static bool __attribute__((optimize("no-unroll-loops"))) equals2_sse2(const ushort *p1, const ushort *p2, int len)
+{
+    if (p1 == p2 || !len)
+        return true;
+
+    if (len >= 8) {
+        qptrdiff counter = 0;
+        while (len >= 8) {
+            __m128i q1 = _mm_loadu_si128((__m128i *)(p1 + counter));
+            __m128i q2 = _mm_loadu_si128((__m128i *)(p2 + counter));
+            __m128i cmp = _mm_cmpeq_epi16(q1, q2);
+            if (ushort(_mm_movemask_epi8(cmp)) != 0xffff)
+                return false;
+
+            len -= 8;
+            counter += 8;
+        }
+        p1 += counter;
+        p2 += counter;
+    }
+
+    return equals2_short_tail(p1, p2, len);
+}
+
+//static bool equals2_sse2(const ushort *p1, const ushort *p2, int len)
+//{
+//    register int val1 = quintptr(p1) & 0xf;
+//    register int val2 = quintptr(p2) & 0xf;
+//    if (false && val1 + val2 == 0)
+//        return equals2_sse2_aligned(p1, p2, len);
+//    else
+//        return equals2_sse2_unaligned(p1, p2, len);
+//}
+
+static bool equals2_sse2_aligning(const ushort *p1, const ushort *p2, int len)
+{
+    if (len < 8)
+        return equals2_short_tail(p1, p2, len);
+
+    qptrdiff counter = 0;
+
+    // which one is easier to align, p1 or p2 ?
+    register int val1 = quintptr(p1) & 0xf;
+    register int val2 = quintptr(p2) & 0xf;
+    if (val1 && val2) {
+#if 0
+        // we'll align the one which requires the least number of steps
+        if (val1 > val2) {
+            qSwap(p1, p2);
+            val1 = val2;
+        }
+
+        // val1 contains the number of bytes past the 16-aligned mark
+        // we must read 16-val1 bytes to align
+        val1 = 16 - val1;
+        if (val1 & 0x2) {
+            if (*p1 != *p2)
+                return false;
+            --len;
+            ++counter;
+        }
+        while (val1 & 12) {
+            if (*(uint*)p1 != *(uint*)p2)
+                return false;
+            --len;
+            counter += 2;
+            val1 -= 4;
+        }
+#else
+        // we'll align the one closest to the 16-byte mark
+        if (val1 > val2) {
+            qSwap(p1, p2);
+            val1 = val2;
+        }
+
+        // we're reading val1 bytes too many
+        __m128i q2 = _mm_loadu_si128((__m128i *)(p2 - val1/2));
+        __m128i cmp = _mm_cmpeq_epi16(*(__m128i *)(p1 - val1/2), q2);
+        if (short(_mm_movemask_epi8(cmp)) >> val1 != short(-1))
+            return false;
+
+        counter = 8 - val1/2;
+        len -= 8 - val1/2;
+#endif
+    } else if (!val2) {
+        // p2 is already aligned
+        qSwap(p1, p2);
+    }
+
+    // p1 is aligned
+
+    while (len >= 8) {
+        __m128i q1 = _mm_load_si128((__m128i *)(p1 + counter));
+        __m128i q2 = _mm_loadu_si128((__m128i *)(p2 + counter));
+        __m128i cmp = _mm_cmpeq_epi16(q1, q2);
+        if (ushort(_mm_movemask_epi8(cmp)) != ushort(0xffff))
+            return false;
+
+        len -= 8;
+        counter += 8;
+    }
+
+    // tail
+    return equals2_short_tail(p1 + counter, p2 + counter, len);
+}
+
+#ifdef __SSE3__
+static bool __attribute__((optimize("no-unroll-loops"))) equals2_sse3(const ushort *p1, const ushort *p2, int len)
+{
+    if (p1 == p2 || !len)
+        return true;
+
+    if (len >= 8) {
+        qptrdiff counter = 0;
+        while (len >= 8) {
+            __m128i q1 = _mm_lddqu_si128((__m128i *)(p1 + counter));
+            __m128i q2 = _mm_lddqu_si128((__m128i *)(p2 + counter));
+            __m128i cmp = _mm_cmpeq_epi16(q1, q2);
+            if (ushort(_mm_movemask_epi8(cmp)) != 0xffff)
+                return false;
+
+            len -= 8;
+            counter += 8;
+        }
+        p1 += counter;
+        p2 += counter;
+    }
+
+    return equals2_short_tail(p1, p2, len);
+}
+
+#ifdef __SSSE3__
+template<int N> static __attribute__((optimize("unroll-loops"))) inline bool equals2_ssse3_alignr(__m128i *m1, __m128i *m2, int len)
+{
+    __m128i lower = _mm_load_si128(m1);
+    while (len >= 8) {
+        __m128i upper = _mm_load_si128(m1 + 1);
+        __m128i correct;
+        correct = _mm_alignr_epi8(upper, lower, N);
+
+        __m128i q2 = _mm_lddqu_si128(m2);
+        __m128i cmp = _mm_cmpeq_epi16(correct, q2);
+        if (ushort(_mm_movemask_epi8(cmp)) != 0xffff)
+            return false;
+
+        len -= 8;
+        ++m2;
+        ++m1;
+        lower = upper;
+    }
+
+    // tail
+    return len == 0 || equals2_short_tail((const ushort *)m1 + N / 2, (const ushort*)m2, len);
+}
+
+static inline __attribute__((optimize("unroll-loops"))) bool equals2_ssse3_aligned(__m128i *m1, __m128i *m2, int len)
+{
+    while (len >= 8) {
+        __m128i q2 = _mm_lddqu_si128(m2);
+        __m128i cmp = _mm_cmpeq_epi16(*m1, q2);
+        if (ushort(_mm_movemask_epi8(cmp)) != 0xffff)
+            return false;
+
+        len -= 8;
+        ++m1;
+        ++m2;
+    }
+    return len == 0 || equals2_short_tail((const ushort *)m1, (const ushort *)m2, len);
+}
+
+static bool equals2_ssse3(const ushort *p1, const ushort *p2, int len)
+{
+    // p1 & 0xf can be:
+    //   0,  2,  4,  6,  8, 10, 12, 14
+    // If it's 0, we're aligned
+    // If it's not, then we're interested in the 16 - (p1 & 0xf) bytes only
+
+    if (len >= 8) {
+        // find the last aligned position below the p1 memory
+        __m128i *m1 = (__m128i *)(quintptr(p1) & ~0xf);
+        __m128i *m2 = (__m128i *)p2;
+        qptrdiff diff = quintptr(p1) - quintptr(m1);
+
+        // diff contains the number of extra bytes
+        if (diff == 10)
+            return equals2_ssse3_alignr<10>(m1, m2, len);
+        else if (diff == 2)
+            return equals2_ssse3_alignr<2>(m1, m2, len);
+        if (diff < 8) {
+            if (diff < 4) {
+                return equals2_ssse3_aligned(m1, m2, len);
+            } else {
+                if (diff == 4)
+                    return equals2_ssse3_alignr<4>(m1, m2, len);
+                else // diff == 6
+                    return equals2_ssse3_alignr<6>(m1, m2, len);
+            }
+        } else {
+            if (diff < 12) {
+                return equals2_ssse3_alignr<8>(m1, m2, len);
+            } else {
+                if (diff == 12)
+                    return equals2_ssse3_alignr<12>(m1, m2, len);
+                else // diff == 14
+                    return equals2_ssse3_alignr<14>(m1, m2, len);
+            }
+        }
+    }
+
+    // tail
+    return equals2_short_tail(p1, p2, len);
+}
+
+template<int N> static inline bool equals2_ssse3_aligning_alignr(__m128i *m1, __m128i *m2, int len)
+{
+    __m128i lower = _mm_load_si128(m1);
+    while (len >= 8) {
+        __m128i upper = _mm_load_si128(m1 + 1);
+        __m128i correct;
+        correct = _mm_alignr_epi8(upper, lower, N);
+
+        __m128i cmp = _mm_cmpeq_epi16(correct, *m2);
+        if (ushort(_mm_movemask_epi8(cmp)) != 0xffff)
+            return false;
+
+        len -= 8;
+        ++m2;
+        ++m1;
+        lower = upper;
+    }
+
+    // tail
+    return len == 0 || equals2_short_tail((const ushort *)m1 + N / 2, (const ushort*)m2, len);
+}
+
+static bool equals2_ssse3_aligning(const ushort *p1, const ushort *p2, int len)
+{
+    if (len < 8)
+        return equals2_short_tail(p1, p2, len);
+    qptrdiff counter = 0;
+
+    // which one is easier to align, p1 or p2 ?
+    {
+        register int val1 = quintptr(p1) & 0xf;
+        register int val2 = quintptr(p2) & 0xf;
+        if (val1 && val2) {
+            // we'll align the one closest to the 16-byte mark
+            if (val1 < val2) {
+                qSwap(p1, p2);
+                val2 = val1;
+            }
+
+            // we're reading val1 bytes too many
+            __m128i q1 = _mm_lddqu_si128((__m128i *)(p1 - val2/2));
+            __m128i cmp = _mm_cmpeq_epi16(q1, *(__m128i *)(p2 - val2/2));
+            if (short(_mm_movemask_epi8(cmp)) >> val1 != short(-1))
+                return false;
+
+            counter = 8 - val2/2;
+            len -= 8 - val2/2;
+        } else if (!val1) {
+            // p1 is already aligned
+            qSwap(p1, p2);
+        }
+    }
+
+    // p2 is aligned now
+    // we want to use palignr in the mis-alignment of p1
+    __m128i *m1 = (__m128i *)(quintptr(p1 + counter) & ~0xf);
+    __m128i *m2 = (__m128i *)(p2 + counter);
+    register int val1 = quintptr(p1 + counter) - quintptr(m1);
+
+    // val1 contains the number of extra bytes
+    if (val1 == 8)
+        return equals2_ssse3_aligning_alignr<8>(m1, m2, len);
+    if (val1 == 0)
+        return equals2_sse2_aligned(p1 + counter, p2 + counter, len);
+    if (val1 < 8) {
+        if (val1 < 4) {
+            return equals2_ssse3_aligning_alignr<2>(m1, m2, len);
+        } else {
+            if (val1 == 4)
+                return equals2_ssse3_aligning_alignr<4>(m1, m2, len);
+            else // diff == 6
+                return equals2_ssse3_aligning_alignr<6>(m1, m2, len);
+        }
+    } else {
+        if (val1 < 12) {
+            return equals2_ssse3_aligning_alignr<10>(m1, m2, len);
+        } else {
+            if (val1 == 12)
+                return equals2_ssse3_aligning_alignr<12>(m1, m2, len);
+            else // diff == 14
+                return equals2_ssse3_aligning_alignr<14>(m1, m2, len);
+        }
+    }
+}
+
+#ifdef __SSE4_1__
+static bool equals2_sse4(const ushort *p1, const ushort *p2, int len)
+{
+    // We use the pcmpestrm instruction searching for differences (negative polarity)
+    // it will reset CF if it's all equal
+    // it will reset OF if the first char is equal
+    // it will set ZF & SF if the length is less than 8 (which means we've done the last operation)
+    // the three possible conditions are:
+    //  difference found:         CF = 1
+    //  all equal, not finished:  CF = ZF = SF = 0
+    //  all equal, finished:      CF = 0, ZF = SF = 1
+    // We use the JA instruction that jumps if ZF = 0 and CF = 0
+    if (p1 == p2 || !len)
+        return true;
+
+    // This function may read some bytes past the end of p1 or p2
+    // It is safe to do that, as long as those extra bytes (beyond p1+len and p2+len)
+    // are on the same page as the last valid byte.
+    // If len is a multiple of 8, we'll never load invalid bytes.
+    if (len & 7) {
+        // The last load would load (len & ~7) valid bytes and (8 - (len & ~7)) invalid bytes.
+        // So we can't do the last load if any of those bytes is in a different
+        // page. That is, if:
+        //    pX + len      is on a different page from     pX + (len & ~7) + 8
+        //
+        // that is, if second-to-last load ended up less than 16 bytes from the page end:
+        //    pX + (len & ~7)  is the last ushort read in the second-to-last load
+        if (len < 8)
+            return equals2_short_tail(p1, p2, len);
+        if ((quintptr(p1 + (len & ~7)) & 0xfff) > 0xff0 ||
+                (quintptr(p2 + (len & ~7)) & 0xfff) > 0xff0) {
+
+            // yes, so we mustn't do the final 128-bit load
+            bool result;
+            asm (
+            "sub        %[p1], %[p2]\n\t"
+            "sub        $16, %[p1]\n\t"
+            "add        $8, %[len]\n\t"
+
+            // main loop:
+            "0:\n\t"
+            "add        $16, %[p1]\n\t"
+            "sub        $8, %[len]\n\t"
+            "jz         1f\n\t"
+            "lddqu      (%[p1]), %%xmm0\n\t"
+            "mov        %[len], %%edx\n\t"
+            "pcmpestri  %[mode], (%[p2],%[p1]), %%xmm0\n\t"
+
+            "jna        1f\n\t"
+            "add        $16, %[p1]\n\t"
+            "sub        $8, %[len]\n\t"
+            "jz         1f\n\t"
+            "lddqu      (%[p1]), %%xmm0\n\t"
+            "mov        %[len], %%edx\n\t"
+            "pcmpestri  %[mode], (%[p2],%[p1]), %%xmm0\n\t"
+
+            "ja         0b\n\t"
+            "1:\n\t"
+            "setnc      %[result]\n\t"
+            : [result] "=a" (result),
+              [p1] "+r" (p1),
+              [p2] "+r" (p2)
+            : [len] "0" (len & ~7),
+              [mode] "i" (_SIDD_UWORD_OPS | _SIDD_CMP_EQUAL_EACH | _SIDD_NEGATIVE_POLARITY)
+            : "%edx", "%ecx", "%xmm0"
+            );
+            return result && equals2_short_tail(p1, (const ushort *)(quintptr(p1) + quintptr(p2)), len & 7);
+        }
+    }
+
+//    const qptrdiff disp = p2 - p1;
+//    p1 -= 8;
+//    len += 8;
+//    while (true) {
+//        enum { Mode = _SIDD_UWORD_OPS | _SIDD_CMP_EQUAL_EACH | _SIDD_NEGATIVE_POLARITY };
+
+//        p1 += 8;
+//        len -= 8;
+//        if (!len)
+//            return true;
+
+//        __m128i q1 = _mm_lddqu_si128((__m128i *)(p1 + disp));
+//        __m128i *m2 = (__m128i *)p1;
+
+//        bool cmp_a = _mm_cmpestra(q1, len, *m2, len, Mode);
+//        if (cmp_a)
+//            continue;
+//        return !_mm_cmpestrc(q1, len, *m2, len, Mode);
+//    }
+//    return true;
+    bool result;
+    asm (
+        "sub        %[p1], %[p2]\n\t"
+        "sub        $16, %[p1]\n\t"
+        "add        $8, %[len]\n\t"
+
+    "0:\n\t"
+        "add        $16, %[p1]\n\t"
+        "sub        $8, %[len]\n\t"
+        "jz         1f\n\t"
+        "lddqu      (%[p2],%[p1]), %%xmm0\n\t"
+        "mov        %[len], %%edx\n\t"
+        "pcmpestri  %[mode], (%[p1]), %%xmm0\n\t"
+
+        "jna        1f\n\t"
+        "add        $16, %[p1]\n\t"
+        "sub        $8, %[len]\n\t"
+        "jz         1f\n\t"
+        "lddqu      (%[p2],%[p1]), %%xmm0\n\t"
+        "mov        %[len], %%edx\n\t"
+        "pcmpestri  %[mode], (%[p1]), %%xmm0\n\t"
+
+        "ja         0b\n\t"
+
+    "1:\n\t"
+        "setnc      %[result]\n\t"
+        : [result] "=a" (result)
+        : [len] "0" (len),
+          [p1] "r" (p1),
+          [p2] "r" (p2),
+          [mode] "i" (_SIDD_UWORD_OPS | _SIDD_CMP_EQUAL_EACH | _SIDD_NEGATIVE_POLARITY)
+        : "%edx", "%ecx", "%xmm0"
+    );
+    return result;
+}
+
+#endif
+#endif
+#endif
+#endif
+
+typedef bool (* FuncPtr)(const ushort *, const ushort *, int);
+static const FuncPtr func[] = {
+    equals2_memcmp_call, // 0
+    equals2_bytewise, // 1
+    equals2_shortwise, // 1
+    equals2_intwise, // 3
+#ifdef __SSE2__
+    equals2_sse2, // 4
+    equals2_sse2_aligning, // 5
+#ifdef __SSE3__
+    equals2_sse3, // 6
+#ifdef __SSSE3__
+    equals2_ssse3, // 7
+    equals2_ssse3, // 8
+#ifdef __SSE4_1__
+    equals2_sse4, // 9
+#endif
+#endif
+#endif
+#endif
+    0
+};
+static const int functionCount = sizeof(func)/sizeof(func[0]) - 1;
+
+void tst_QString::equals2_data() const
+{
+    QTest::addColumn<int>("algorithm");
+    QTest::newRow("selftest") << -1;
+    QTest::newRow("memcmp_call") << 0;
+    QTest::newRow("bytewise") << 1;
+    QTest::newRow("shortwise") << 2;
+    QTest::newRow("intwise") << 3;
+#ifdef __SSE2__
+    QTest::newRow("sse2") << 4;
+    QTest::newRow("sse2_aligning") << 5;
+#ifdef __SSE3__
+    QTest::newRow("sse3") << 6;
+#ifdef __SSSE3__
+    QTest::newRow("ssse3") << 7;
+    QTest::newRow("ssse3_aligning") << 8;
+#ifdef __SSE4_1__
+    QTest::newRow("sse4.2") << 9;
+#endif
+#endif
+#endif
+#endif
+}
+
+static void __attribute__((noinline)) equals2_selftest()
+{
+#ifdef Q_OS_UNIX
+    const long pagesize = sysconf(_SC_PAGESIZE);
+    void *page1, *page3;
+    ushort *page2;
+    page1 = mmap(0, pagesize, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
+    page2 = (ushort *)mmap(0, pagesize, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS | MAP_POPULATE, -1, 0);
+    page3 = mmap(0, pagesize, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
+
+    Q_ASSERT(quintptr(page2) == quintptr(page1) + pagesize || quintptr(page2) == quintptr(page1) - pagesize);
+    Q_ASSERT(quintptr(page3) == quintptr(page2) + pagesize || quintptr(page3) == quintptr(page2) - pagesize);
+    munmap(page1, pagesize);
+    munmap(page3, pagesize);
+
+    // populate our page
+    for (uint i = 0; i < pagesize / sizeof(long long); ++i)
+        ((long long *)page2)[i] = Q_INT64_C(0x0041004100410041);
+
+    // the following should crash:
+    //page2[-1] = 0xdead;
+    //page2[pagesize / sizeof(ushort) + 1] = 0xbeef;
+
+    static const ushort needle[] = {
+        0x41, 0x41, 0x41, 0x41,   0x41, 0x41, 0x41, 0x41,
+        0x41, 0x41, 0x41, 0x41,   0x41, 0x41, 0x41, 0x41,
+        0x41
+    };
+
+    for (int algo = 0; algo < functionCount; ++algo) {
+        // boundary condition test:
+        for (int i = 0; i < 8; ++i) {
+            (func[algo])(page2 + i, needle, sizeof needle / 2);
+            (func[algo])(page2 - i - 1 - sizeof(needle)/2 + pagesize/2, needle, sizeof needle/2);
+        }
+    }
+
+    munmap(page2, pagesize);
+#endif
+
+    for (int algo = 0; algo < functionCount; ++algo) {
+        for (int i = 0; i < stringCollectionCount; ++i) {
+            const ushort *p1 = stringCollectionData + stringCollection[i].offset1;
+            const ushort *p2 = stringCollectionData + stringCollection[i].offset2;
+            bool expected = memcmp(p1, p2, stringCollection[i].len * 2) == 0;
+
+            bool result = (func[algo])(p1, p2, stringCollection[i].len);
+            if (expected != result)
+                qWarning().nospace()
+                        << "algo=" << algo
+                        << " i=" << i
+                        << " failed (" << result << "!=" << expected
+                        << "); strings were "
+                        << QByteArray((char*)p1, stringCollection[i].len).toHex()
+                        << " and "
+                        << QByteArray((char*)p2, stringCollection[i].len).toHex();
+        }
+    }
+}
+
+void tst_QString::equals2() const
+{
+    QFETCH(int, algorithm);
+    if (algorithm == -1) {
+        equals2_selftest();
+        return;
+    }
+
+    QBENCHMARK {
+        for (int i = 0; i < stringCollectionCount; ++i) {
+            const ushort *p1 = stringCollectionData + stringCollection[i].offset1;
+            const ushort *p2 = stringCollectionData + stringCollection[i].offset2;
+            bool result = (func[algorithm])(p1, p2, stringCollection[i].len);
+            Q_UNUSED(result);
+        }
+    }
+}
+
+static int ucstrncmp_shortwise(const ushort *a, const ushort *b, int l)
+{
+    while (l-- && *a == *b)
+        a++,b++;
+    if (l==-1)
+        return 0;
+    return *a - *b;
+}
+
+static int ucstrncmp_intwise(const ushort *a, const ushort *b, int len)
+{
+    // do both strings have the same alignment?
+    if ((quintptr(a) & 2) == (quintptr(b) & 2)) {
+        // are we aligned to 4 bytes?
+        if (quintptr(a) & 2) {
+            if (*a != *b)
+                return *a - *b;
+            ++a;
+            ++b;
+            --len;
+        }
+
+        const uint *p1 = (const uint *)a;
+        const uint *p2 = (const uint *)b;
+        quintptr counter = 0;
+        for ( ; len > 1 ; len -= 2, ++counter) {
+            if (p1[counter] != p2[counter]) {
+                // which ushort isn't equal?
+                int diff = a[2*counter] - b[2*counter];
+                return diff ? diff : a[2*counter + 1] - b[2*counter + 1];
+            }
+        }
+
+        return len ? a[2*counter] - b[2*counter] : 0;
+    } else {
+        while (len-- && *a == *b)
+            a++,b++;
+        if (len==-1)
+            return 0;
+        return *a - *b;
+    }
+}
+
+#ifdef __SSE2__
+static inline int ucstrncmp_short_tail(const ushort *p1, const ushort *p2, int len)
+{
+    if (len) {
+        if (*p1 != *p2)
+            return *p1 - *p2;
+        if (--len) {
+            if (p1[1] != p2[1])
+                return p1[1] - p2[1];
+            if (--len) {
+                if (p1[2] != p2[2])
+                    return p1[2] - p2[2];
+                if (--len) {
+                    if (p1[3] != p2[3])
+                        return p1[3] - p2[3];
+                    if (--len) {
+                        if (p1[4] != p2[4])
+                            return p1[4] - p2[4];
+                        if (--len) {
+                            if (p1[5] != p2[5])
+                                return p1[5] - p2[5];
+                            if (--len) {
+                                if (p1[6] != p2[6])
+                                    return p1[6] - p2[6];
+                                return p1[7] - p2[7];
+                            }
+                        }
+                    }
+                }
+            }
+        }
+    }
+    return 0;
+}
+
+static inline int bsf_nonzero(register long val)
+{
+    int result;
+# ifdef Q_CC_GNU
+    // returns the first non-zero bit on a non-zero reg
+    asm ("bsf   %1, %0" : "=r" (result) : "r" (val));
+    return result;
+# elif defined(Q_CC_MSVC)
+    _BitScanForward(&result, val);
+    return result;
+# endif
+}
+
+static __attribute__((optimize("no-unroll-loops"))) int ucstrncmp_sse2(const ushort *a, const ushort *b, int len)
+{
+    qptrdiff counter = 0;
+    while (len >= 8) {
+        __m128i m1 = _mm_loadu_si128((__m128i *)(a + counter));
+        __m128i m2 = _mm_loadu_si128((__m128i *)(b + counter));
+        __m128i cmp = _mm_cmpeq_epi16(m1, m2);
+        ushort mask = ~uint(_mm_movemask_epi8(cmp));
+        if (mask) {
+            // which ushort isn't equal?
+            counter += bsf_nonzero(mask)/2;
+            return a[counter] - b[counter];
+        }
+
+        counter += 8;
+        len -= 8;
+    }
+    return ucstrncmp_short_tail(a + counter, b + counter, len);
+}
+
+static __attribute__((optimize("no-unroll-loops"))) int ucstrncmp_sse2_aligning(const ushort *a, const ushort *b, int len)
+{
+    if (len >= 8) {
+        __m128i m1 = _mm_loadu_si128((__m128i *)a);
+        __m128i m2 = _mm_loadu_si128((__m128i *)b);
+        __m128i cmp = _mm_cmpeq_epi16(m1, m2);
+        ushort mask = ~uint(_mm_movemask_epi8(cmp));
+        if (mask) {
+            // which ushort isn't equal?
+            int counter = bsf_nonzero(mask)/2;
+            return a[counter] - b[counter];
+        }
+
+
+        // now align to do 16-byte loads
+        int diff = 8 - (quintptr(a) & 0xf)/2;
+        len -= diff;
+        a += diff;
+        b += diff;
+    }
+
+    qptrdiff counter = 0;
+    while (len >= 8) {
+        __m128i m1 = _mm_load_si128((__m128i *)(a + counter));
+        __m128i m2 = _mm_loadu_si128((__m128i *)(b + counter));
+        __m128i cmp = _mm_cmpeq_epi16(m1, m2);
+        ushort mask = ~uint(_mm_movemask_epi8(cmp));
+        if (mask) {
+            // which ushort isn't equal?
+            counter += bsf_nonzero(mask)/2;
+            return a[counter] - b[counter];
+        }
+
+        counter += 8;
+        len -= 8;
+    }
+    return ucstrncmp_short_tail(a + counter, b + counter, len);
+}
+
+static inline __attribute__((optimize("no-unroll-loops"))) int ucstrncmp_sse2_aligned(const ushort *a, const ushort *b, int len)
+{
+    quintptr counter = 0;
+    while (len >= 8) {
+        __m128i m1 = _mm_load_si128((__m128i *)(a + counter));
+        __m128i m2 = _mm_load_si128((__m128i *)(b + counter));
+        __m128i cmp = _mm_cmpeq_epi16(m1, m2);
+        ushort mask = ~uint(_mm_movemask_epi8(cmp));
+        if (mask) {
+            // which ushort isn't equal?
+            counter += bsf_nonzero(mask)/2;
+            return a[counter] - b[counter];
+        }
+
+        counter += 8;
+        len -= 8;
+    }
+    return ucstrncmp_short_tail(a + counter, b + counter, len);
+}
+
+static inline __attribute__((optimize("no-unroll-loops"))) int ucstrncmp_ssse3_alignr_aligned(const ushort *a, const ushort *b, int len)
+{
+    quintptr counter = 0;
+    while (len >= 8) {
+        __m128i m1 = _mm_load_si128((__m128i *)(a + counter));
+        __m128i m2 = _mm_lddqu_si128((__m128i *)(b + counter));
+        __m128i cmp = _mm_cmpeq_epi16(m1, m2);
+        ushort mask = ~uint(_mm_movemask_epi8(cmp));
+        if (mask) {
+            // which ushort isn't equal?
+            counter += bsf_nonzero(mask)/2;
+            return a[counter] - b[counter];
+        }
+
+        counter += 8;
+        len -= 8;
+    }
+    return ucstrncmp_short_tail(a + counter, b + counter, len);
+}
+
+
+typedef __m128i (* MMLoadFunction)(const __m128i *);
+template<int N, MMLoadFunction LoadFunction>
+static inline __attribute__((optimize("no-unroll-loops"))) int ucstrncmp_ssse3_alignr(const ushort *a, const ushort *b, int len)
+{
+    qptrdiff counter = 0;
+    __m128i lower, upper;
+    upper = _mm_load_si128((__m128i *)a);
+
+    do {
+        lower = upper;
+        upper = _mm_load_si128((__m128i *)(a + counter) + 1);
+        __m128i merged = _mm_alignr_epi8(upper, lower, N);
+
+        __m128i m2 = LoadFunction((__m128i *)(b + counter));
+        __m128i cmp = _mm_cmpeq_epi16(merged, m2);
+        ushort mask = ~uint(_mm_movemask_epi8(cmp));
+        if (mask) {
+            // which ushort isn't equal?
+            counter += bsf_nonzero(mask)/2;
+            return a[counter + N/2] - b[counter];
+        }
+
+        counter += 8;
+        len -= 8;
+    } while (len >= 8);
+
+    return ucstrncmp_short_tail(a + counter + N/2, b + counter, len);
+}
+
+static int ucstrncmp_ssse3(const ushort *a, const ushort *b, int len)
+{
+    if (len >= 8) {
+        int val = quintptr(a) & 0xf;
+        a -= val/2;
+
+        if (val == 10)
+            return ucstrncmp_ssse3_alignr<10, _mm_lddqu_si128>(a, b, len);
+        else if (val == 2)
+            return ucstrncmp_ssse3_alignr<2, _mm_lddqu_si128>(a, b, len);
+        if (val < 8) {
+            if (val < 4)
+                return ucstrncmp_ssse3_alignr_aligned(a, b, len);
+            else if (val == 4)
+                    return ucstrncmp_ssse3_alignr<4, _mm_lddqu_si128>(a, b, len);
+            else
+                    return ucstrncmp_ssse3_alignr<6, _mm_lddqu_si128>(a, b, len);
+        } else {
+            if (val < 12)
+                return ucstrncmp_ssse3_alignr<8, _mm_lddqu_si128>(a, b, len);
+            else if (val == 12)
+                return ucstrncmp_ssse3_alignr<12, _mm_lddqu_si128>(a, b, len);
+            else
+                return ucstrncmp_ssse3_alignr<14, _mm_lddqu_si128>(a, b, len);
+        }
+    }
+    return ucstrncmp_short_tail(a, b, len);
+}
+
+static int ucstrncmp_ssse3_aligning(const ushort *a, const ushort *b, int len)
+{
+    if (len >= 8) {
+        __m128i m1 = _mm_loadu_si128((__m128i *)a);
+        __m128i m2 = _mm_loadu_si128((__m128i *)b);
+        __m128i cmp = _mm_cmpeq_epi16(m1, m2);
+        ushort mask = ~uint(_mm_movemask_epi8(cmp));
+        if (mask) {
+            // which ushort isn't equal?
+            int counter = bsf_nonzero(mask)/2;
+            return a[counter] - b[counter];
+        }
+
+
+        // now 'b' align to do 16-byte loads
+        int diff = 8 - (quintptr(b) & 0xf)/2;
+        len -= diff;
+        a += diff;
+        b += diff;
+    }
+
+    if (len < 8)
+        return ucstrncmp_short_tail(a, b, len);
+
+    // 'b' is aligned
+    int val = quintptr(a) & 0xf;
+    a -= val/2;
+
+    if (val == 8)
+        return ucstrncmp_ssse3_alignr<8, _mm_load_si128>(a, b, len);
+    else if (val == 0)
+        return ucstrncmp_sse2_aligned(a, b, len);
+    if (val < 8) {
+        if (val < 4)
+            return ucstrncmp_ssse3_alignr<2, _mm_load_si128>(a, b, len);
+        else if (val == 4)
+            return ucstrncmp_ssse3_alignr<4, _mm_load_si128>(a, b, len);
+        else
+            return ucstrncmp_ssse3_alignr<6, _mm_load_si128>(a, b, len);
+    } else {
+        if (val < 12)
+            return ucstrncmp_ssse3_alignr<10, _mm_load_si128>(a, b, len);
+        else if (val == 12)
+            return ucstrncmp_ssse3_alignr<12, _mm_load_si128>(a, b, len);
+        else
+            return ucstrncmp_ssse3_alignr<14, _mm_load_si128>(a, b, len);
+    }
+}
+
+static inline __attribute__((optimize("no-unroll-loops")))
+int ucstrncmp_ssse3_aligning2_aligned(const ushort *a, const ushort *b, int len, int garbage)
+{
+    // len >= 8
+    __m128i m1 = _mm_load_si128((const __m128i *)a);
+    __m128i m2 = _mm_load_si128((const __m128i *)b);
+    __m128i cmp = _mm_cmpeq_epi16(m1, m2);
+    int mask = short(_mm_movemask_epi8(cmp)); // force sign extension
+    mask >>= garbage;
+    if (~mask) {
+        // which ushort isn't equal?
+        uint counter = (garbage + bsf_nonzero(~mask));
+        return a[counter/2] - b[counter/2];
+    }
+
+    // the first 16-garbage bytes (8-garbage/2 ushorts) were equal
+    len -= 8 - garbage/2;
+    return ucstrncmp_sse2_aligned(a + 8, b + 8, len);
+}
+
+template<int N> static inline __attribute__((optimize("no-unroll-loops"),always_inline))
+int ucstrncmp_ssse3_aligning2_alignr(const ushort *a, const ushort *b, int len, int garbage)
+{
+    // len >= 8
+    __m128i lower, upper, merged;
+    lower = _mm_load_si128((const __m128i*)a);
+    upper = _mm_load_si128((const __m128i*)(a + 8));
+    merged = _mm_alignr_epi8(upper, lower, N);
+
+    __m128i m2 = _mm_load_si128((const __m128i*)b);
+    __m128i cmp = _mm_cmpeq_epi16(merged, m2);
+    int mask = short(_mm_movemask_epi8(cmp)); // force sign extension
+    mask >>= garbage;
+    if (~mask) {
+        // which ushort isn't equal?
+        uint counter = (garbage + bsf_nonzero(~mask));
+        return a[counter/2 + N/2] - b[counter/2];
+    }
+
+    // the first 16-garbage bytes (8-garbage/2 ushorts) were equal
+    quintptr counter = 8;
+    len -= 8 - garbage/2;
+    while (len >= 8) {
+        lower = upper;
+        upper = _mm_load_si128((__m128i *)(a + counter) + 1);
+        merged = _mm_alignr_epi8(upper, lower, N);
+
+        m2 = _mm_load_si128((__m128i *)(b + counter));
+        cmp = _mm_cmpeq_epi16(merged, m2);
+        ushort mask = ~uint(_mm_movemask_epi8(cmp));
+        if (mask) {
+            // which ushort isn't equal?
+            counter += bsf_nonzero(mask)/2;
+            return a[counter + N/2] - b[counter];
+        }
+
+        counter += 8;
+        len -= 8;
+    }
+
+    return ucstrncmp_short_tail(a + counter + N/2, b + counter, len);
+}
+
+static inline int conditional_invert(int result, bool invert)
+{
+    if (invert)
+        return -result;
+    return result;
+}
+
+static int ucstrncmp_ssse3_aligning2(const ushort *a, const ushort *b, int len)
+{
+    // Different strategy from above: instead of doing two unaligned loads
+    // when trying to align, we'll only do aligned loads and round down the
+    // addresses of a and b. This means the first load will contain garbage
+    // in the beginning of the string, which we'll shift out of the way
+    // (after _mm_movemask_epi8)
+
+    if (len < 8)
+        return ucstrncmp_intwise(a, b, len);
+
+    // both a and b are misaligned
+    // we'll call the alignr function with the alignment *difference* between the two
+    int offset = (quintptr(a) & 0xf) - (quintptr(b) & 0xf);
+    if (offset >= 0) {
+        // from this point on, b has the shortest alignment
+        // and align(a) = align(b) + offset
+        // round down the alignment so align(b) == align(a) == 0
+        int garbage = (quintptr(b) & 0xf);
+        a = (const ushort*)(quintptr(a) & ~0xf);
+        b = (const ushort*)(quintptr(b) & ~0xf);
+
+        // now the first load of b will load 'garbage' extra bytes
+        // and the first load of a will load 'garbage + offset' extra bytes
+        if (offset == 8)
+            return ucstrncmp_ssse3_aligning2_alignr<8>(a, b, len, garbage);
+        if (offset == 0)
+            return ucstrncmp_ssse3_aligning2_aligned(a, b, len, garbage);
+        if (offset < 8) {
+            if (offset < 4)
+                return ucstrncmp_ssse3_aligning2_alignr<2>(a, b, len, garbage);
+            else if (offset == 4)
+                return ucstrncmp_ssse3_aligning2_alignr<4>(a, b, len, garbage);
+            else
+                return ucstrncmp_ssse3_aligning2_alignr<6>(a, b, len, garbage);
+        } else {
+            if (offset < 12)
+                return ucstrncmp_ssse3_aligning2_alignr<10>(a, b, len, garbage);
+            else if (offset == 12)
+                return ucstrncmp_ssse3_aligning2_alignr<12>(a, b, len, garbage);
+            else
+                return ucstrncmp_ssse3_aligning2_alignr<14>(a, b, len, garbage);
+        }
+    } else {
+        // same as above but inverted
+        int garbage = (quintptr(a) & 0xf);
+        a = (const ushort*)(quintptr(a) & ~0xf);
+        b = (const ushort*)(quintptr(b) & ~0xf);
+
+        offset = -offset;
+        if (offset == 8)
+            return -ucstrncmp_ssse3_aligning2_alignr<8>(b, a, len, garbage);
+        if (offset < 8) {
+            if (offset < 4)
+                return -ucstrncmp_ssse3_aligning2_alignr<2>(b, a, len, garbage);
+            else if (offset == 4)
+                return -ucstrncmp_ssse3_aligning2_alignr<4>(b, a, len, garbage);
+            else
+                return -ucstrncmp_ssse3_aligning2_alignr<6>(b, a, len, garbage);
+        } else {
+            if (offset < 12)
+                return -ucstrncmp_ssse3_aligning2_alignr<10>(b, a, len, garbage);
+            else if (offset == 12)
+                return -ucstrncmp_ssse3_aligning2_alignr<12>(b, a, len, garbage);
+            else
+                return -ucstrncmp_ssse3_aligning2_alignr<14>(b, a, len, garbage);
+        }
+    }
+}
+
+#endif
+
+typedef int (* UcstrncmpFunction)(const ushort *, const ushort *, int);
+Q_DECLARE_METATYPE(UcstrncmpFunction)
+
+void tst_QString::ucstrncmp_data() const
+{
+    QTest::addColumn<UcstrncmpFunction>("function");
+    QTest::newRow("selftest") << UcstrncmpFunction(0);
+    QTest::newRow("shortwise") << &ucstrncmp_shortwise;
+    QTest::newRow("intwise") << &ucstrncmp_intwise;
+#ifdef __SSE2__
+    QTest::newRow("sse2") << &ucstrncmp_sse2;
+    QTest::newRow("sse2_aligning") << &ucstrncmp_sse2_aligning;
+#ifdef __SSSE3__
+    QTest::newRow("ssse3") << &ucstrncmp_ssse3;
+    QTest::newRow("ssse3_aligning") << &ucstrncmp_ssse3_aligning;
+    QTest::newRow("ssse3_aligning2") << &ucstrncmp_ssse3_aligning2;
+#endif
+#endif
+}
+
+void tst_QString::ucstrncmp() const
+{
+    QFETCH(UcstrncmpFunction, function);
+    if (!function) {
+        static const UcstrncmpFunction func[] = {
+            &ucstrncmp_shortwise,
+            &ucstrncmp_intwise,
+#ifdef __SSE2__
+            &ucstrncmp_sse2,
+            &ucstrncmp_sse2_aligning,
+#ifdef __SSSE3__
+            &ucstrncmp_ssse3,
+            &ucstrncmp_ssse3_aligning,
+            &ucstrncmp_ssse3_aligning2
+#endif
+#endif
+        };
+        static const int functionCount = sizeof func / sizeof func[0];
+
+#ifdef Q_OS_UNIX
+        const long pagesize = sysconf(_SC_PAGESIZE);
+        void *page1, *page3;
+        ushort *page2;
+        page1 = mmap(0, pagesize, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
+        page2 = (ushort *)mmap(0, pagesize, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS | MAP_POPULATE, -1, 0);
+        page3 = mmap(0, pagesize, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
+
+        Q_ASSERT(quintptr(page2) == quintptr(page1) + pagesize || quintptr(page2) == quintptr(page1) - pagesize);
+        Q_ASSERT(quintptr(page3) == quintptr(page2) + pagesize || quintptr(page3) == quintptr(page2) - pagesize);
+        munmap(page1, pagesize);
+        munmap(page3, pagesize);
+
+        // populate our page
+        for (uint i = 0; i < pagesize / sizeof(long long); ++i)
+            ((long long *)page2)[i] = Q_INT64_C(0x0041004100410041);
+
+        // the following should crash:
+        //page2[-1] = 0xdead;
+        //page2[pagesize / sizeof(ushort) + 1] = 0xbeef;
+
+        static const ushort needle[] = {
+            0x41, 0x41, 0x41, 0x41,   0x41, 0x41, 0x41, 0x41,
+            0x41, 0x41, 0x41, 0x41,   0x41, 0x41, 0x41, 0x41,
+            0x41
+        };
+
+        for (int algo = 0; algo < functionCount; ++algo) {
+            // boundary condition test:
+            for (int i = 0; i < 8; ++i) {
+                (func[algo])(page2 + i, needle, sizeof needle / 2);
+                (func[algo])(page2 - i - 1 - sizeof(needle)/2 + pagesize/2, needle, sizeof needle/2);
+            }
+        }
+
+        munmap(page2, pagesize);
+#endif
+
+        for (int algo = 0; algo < functionCount; ++algo) {
+            for (int i = 0; i < stringCollectionCount; ++i) {
+                const ushort *p1 = stringCollectionData + stringCollection[i].offset1;
+                const ushort *p2 = stringCollectionData + stringCollection[i].offset2;
+                int expected = ucstrncmp_shortwise(p1, p2, stringCollection[i].len);
+                expected = qBound(-1, expected, 1);
+
+                int result = (func[algo])(p1, p2, stringCollection[i].len);
+                result = qBound(-1, result, 1);
+                if (expected != result)
+                    qWarning().nospace()
+                        << "algo=" << algo
+                        << " i=" << i
+                        << " failed (" << result << "!=" << expected
+                        << "); strings were "
+                        << QByteArray((char*)p1, stringCollection[i].len).toHex()
+                        << " and "
+                        << QByteArray((char*)p2, stringCollection[i].len).toHex();
+            }
+        }
+        return;
+    }
+
+    QBENCHMARK {
+        for (int i = 0; i < stringCollectionCount; ++i) {
+            const ushort *p1 = stringCollectionData + stringCollection[i].offset1;
+            const ushort *p2 = stringCollectionData + stringCollection[i].offset2;
+            (function)(p1, p2, stringCollection[i].len);
+        }
+    }
+}
+
 void tst_QString::fromUtf8() const
 {
     QFile file(SRCDIR "utf-8.txt");
--- a/tests/benchmarks/corelib/tools/qstring/qstring.pro	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/benchmarks/corelib/tools/qstring/qstring.pro	Mon Oct 04 01:19:32 2010 +0300
@@ -1,7 +1,7 @@
 load(qttest_p4)
 TARGET = tst_bench_qstring
 QT -= gui
-SOURCES += main.cpp
+SOURCES += main.cpp data.cpp
 
 wince*:{
    DEFINES += SRCDIR=\\\"\\\"
@@ -14,3 +14,6 @@
    DEFINES += SRCDIR=\\\"$$PWD/\\\"
 }
 
+sse4:QMAKE_CXXFLAGS += -msse4
+else:ssse3:QMAKE_FLAGS += -mssse3
+else:sse2:QMAKE_CXXFLAGS += -msse2
--- a/tests/benchmarks/gui/image/blendbench/main.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/benchmarks/gui/image/blendbench/main.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -103,6 +103,12 @@
 private slots:		
     void blendBench_data();
     void blendBench();
+
+    void blendBenchAlpha_data();
+    void blendBenchAlpha();
+
+    void unalignedBlendArgb32_data();
+    void unalignedBlendArgb32();
 };
 
 void BlendBench::blendBench_data()
@@ -147,6 +153,75 @@
     }
 }
 
+void BlendBench::blendBenchAlpha_data()
+{
+    blendBench_data();
+}
+
+void BlendBench::blendBenchAlpha()
+{
+    QFETCH(int, brushType);
+    QFETCH(int, compositionMode);
+
+    QImage img(512, 512, QImage::Format_ARGB32_Premultiplied);
+    QImage src(512, 512, QImage::Format_ARGB32_Premultiplied);
+    paint(&src);
+    QPainter p(&img);
+    p.setPen(Qt::NoPen);
+
+    p.setCompositionMode(QPainter::CompositionMode(compositionMode));
+    if (brushType == ImageBrush) {
+        p.setBrush(QBrush(src));
+    } else if (brushType == SolidBrush) {
+        p.setBrush(QColor(127, 127, 127, 127));
+    }
+    p.setOpacity(0.7f);
+
+    QBENCHMARK {
+        p.drawRect(0, 0, 512, 512);
+    }
+}
+
+void BlendBench::unalignedBlendArgb32_data()
+{
+    // The performance of blending can depend of the alignment of the data
+    // on 16 bytes. Some SIMD instruction set have significantly better
+    // memory access when the memory is aligned on 16 bytes boundary.
+
+    // offset in 32 bits words
+    QTest::addColumn<int>("offset");
+    QTest::newRow("aligned on 16 bytes") << 0;
+    QTest::newRow("unaligned by 4 bytes") << 1;
+    QTest::newRow("unaligned by 8 bytes") << 2;
+    QTest::newRow("unaligned by 12 bytes") << 3;
+}
+
+void BlendBench::unalignedBlendArgb32()
+{
+    const int dimension = 1024;
+
+    // We use dst aligned by design. We don't want to test all the combination of alignemnt for src and dst.
+    // Moreover, it make sense for us to align dst in the implementation because it is accessed more often.
+    uchar *dstMemory = static_cast<uchar*>(qMallocAligned((dimension * dimension * sizeof(quint32)), 16));
+    QImage destination(dstMemory, dimension, dimension, QImage::Format_ARGB32_Premultiplied);
+    destination.fill(0x12345678); // avoid special cases of alpha
+
+    uchar *srcMemory = static_cast<uchar*>(qMallocAligned((dimension * dimension * sizeof(quint32)) + 16, 16));
+    QFETCH(int, offset);
+    srcMemory += (offset * sizeof(quint32));
+
+    QImage src(srcMemory, dimension, dimension, QImage::Format_ARGB32_Premultiplied);
+    src.fill(0x87654321);
+
+    QPainter painter(&destination);
+    QBENCHMARK {
+        painter.drawImage(QPoint(), src);
+    }
+
+    qFreeAligned(srcMemory);
+    qFreeAligned(dstMemory);
+}
+
 QTEST_MAIN(BlendBench)
 
 #include "main.moc"
--- a/tests/benchmarks/gui/image/image.pro	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/benchmarks/gui/image/image.pro	Mon Oct 04 01:19:32 2010 +0300
@@ -1,6 +1,7 @@
 TEMPLATE = subdirs
 SUBDIRS = \
         blendbench \
+        qimageconversion \
         qimagereader \
         qpixmap \
         qpixmapcache
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/benchmarks/gui/image/qimageconversion/qimageconversion.pro	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,10 @@
+load(qttest_p4)
+TEMPLATE = app
+TARGET = tst_bench_imageConversion
+
+SOURCES += tst_qimageconversion.cpp
+
+!contains(QT_CONFIG, no-gif):DEFINES += QTEST_HAVE_GIF
+!contains(QT_CONFIG, no-jpeg):DEFINES += QTEST_HAVE_JPEG
+!contains(QT_CONFIG, no-mng):DEFINES += QTEST_HAVE_MNG
+!contains(QT_CONFIG, no-tiff):DEFINES += QTEST_HAVE_TIFF
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/benchmarks/gui/image/qimageconversion/tst_qimageconversion.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,108 @@
+/****************************************************************************
+**
+** 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 <qtest.h>
+#include <QImage>
+
+Q_DECLARE_METATYPE(QImage)
+
+class tst_QImageConversion : public QObject
+{
+    Q_OBJECT
+private slots:
+    void convertRgb888ToRGB32_data();
+    void convertRgb888ToRGB32();
+
+private:
+    QImage generateImageRgb888(int width, int height);
+};
+
+void tst_QImageConversion::convertRgb888ToRGB32_data()
+{
+    QTest::addColumn<QImage>("inputImage");
+    // height = 5000 to get interesting timing.
+
+    // 3 pixels wide -> smaller than regular vector of 128bits
+    QTest::newRow("width: 3px; height: 5000px;") << generateImageRgb888(3, 5000);
+
+    // 8 pixels wide -> potential for 2 vectors
+    QTest::newRow("width: 8px; height: 5000px;") << generateImageRgb888(3, 5000);
+
+    // 16 pixels, minimum for the SSSE3 implementation
+    QTest::newRow("width: 16px; height: 5000px;") << generateImageRgb888(16, 5000);
+
+    // 50 pixels, more realistic use case
+    QTest::newRow("width: 50px; height: 5000px;") << generateImageRgb888(50, 5000);
+
+    // 2000 pixels -> typical values for pictures
+    QTest::newRow("width: 2000px; height: 5000px;") << generateImageRgb888(2000, 5000);
+}
+
+void tst_QImageConversion::convertRgb888ToRGB32()
+{
+    QFETCH(QImage, inputImage);
+
+    QBENCHMARK {
+        volatile QImage output = inputImage.convertToFormat(QImage::Format_RGB32);
+        // we need the volatile and the following to make sure the compiler does not do
+        // anything stupid :)
+        (void)output;
+    }
+}
+
+/*
+ Fill a RGB888 image with "random" pixel values.
+ */
+QImage tst_QImageConversion::generateImageRgb888(int width, int height)
+{
+    QImage image(width, height, QImage::Format_RGB888);
+    const int byteWidth = width * 3;
+
+    for (int y = 0; y < image.height(); ++y) {
+        uchar *scanline = image.scanLine(y);
+        for (int x = 0; x < byteWidth; ++x)
+            scanline[x] = x ^ y;
+    }
+    return image;
+}
+
+QTEST_MAIN(tst_QImageConversion)
+#include "tst_qimageconversion.moc"
--- a/tests/benchmarks/network/network.pro	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/benchmarks/network/network.pro	Mon Oct 04 01:19:32 2010 +0300
@@ -1,5 +1,5 @@
 TEMPLATE = subdirs
-SUBDIRS = \ 
+SUBDIRS = \
         access \
-#        kernel \
+        kernel \
         socket
--- a/tests/manual/bearerex/bearerex.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/manual/bearerex/bearerex.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -433,6 +433,7 @@
             iapLineEdit->setText(config.name()+" ("+config.identifier()+")");
         }
     }
+    newState(m_NetworkSession->state()); // Update the "(open)"
 
     if (m_NetworkSession->configuration().type() == QNetworkConfiguration::UserChoice) {
         QVariant identifier = m_NetworkSession->sessionProperty("UserChoiceConfiguration");
@@ -523,7 +524,7 @@
 
     QString active;
     if (m_NetworkSession->isOpen()) {
-        active = " (O)";
+        active = " (open)";
     }
     stateLineEdit->setText(stateString(state)+active);
 }
--- a/tests/manual/bearerex/bearerex.pro	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/manual/bearerex/bearerex.pro	Mon Oct 04 01:19:32 2010 +0300
@@ -25,4 +25,4 @@
            xqlistwidget.cpp \
     datatransferer.cpp
 
-symbian:TARGET.CAPABILITY = NetworkServices NetworkControl ReadUserData
+symbian:TARGET.CAPABILITY = NetworkServices NetworkControl ReadUserData WriteDeviceData ReadDeviceData
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/manual/inputmethodhints/inputmethodhints.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,99 @@
+/****************************************************************************
+**
+** 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$
+**
+****************************************************************************/
+
+#include "inputmethodhints.h"
+
+inputmethodhints::inputmethodhints(QWidget *parent)
+    : QMainWindow(parent)
+{
+    ui.setupUi(this);
+    connect(ui.cbDialableOnly, SIGNAL(stateChanged(int)), this, SLOT(checkboxChanged(int)));
+    connect(ui.cbDigitsOnly, SIGNAL(stateChanged(int)), this, SLOT(checkboxChanged(int)));
+    connect(ui.cbEmailOnly, SIGNAL(stateChanged(int)), this, SLOT(checkboxChanged(int)));
+    connect(ui.cbFormattedNumbersOnly, SIGNAL(stateChanged(int)), this, SLOT(checkboxChanged(int)));
+    connect(ui.cbHiddenText, SIGNAL(stateChanged(int)), this, SLOT(checkboxChanged(int)));
+    connect(ui.cbLowercaseOnly, SIGNAL(stateChanged(int)), this, SLOT(checkboxChanged(int)));
+    connect(ui.cbNoAutoUppercase, SIGNAL(stateChanged(int)), this, SLOT(checkboxChanged(int)));
+    connect(ui.cbNoPredictiveText, SIGNAL(stateChanged(int)), this, SLOT(checkboxChanged(int)));
+    connect(ui.cbPreferLowercase, SIGNAL(stateChanged(int)), this, SLOT(checkboxChanged(int)));
+    connect(ui.cbPreferNumbers, SIGNAL(stateChanged(int)), this, SLOT(checkboxChanged(int)));
+    connect(ui.cbPreferUpperCase, SIGNAL(stateChanged(int)), this, SLOT(checkboxChanged(int)));
+    connect(ui.cbUppercaseOnly, SIGNAL(stateChanged(int)), this, SLOT(checkboxChanged(int)));
+    connect(ui.cbUrlOnly, SIGNAL(stateChanged(int)), this, SLOT(checkboxChanged(int)));
+}
+
+inputmethodhints::~inputmethodhints()
+{
+
+}
+
+void inputmethodhints::checkboxChanged(int)
+{
+    int flags = 0;
+    if (ui.cbDialableOnly->isChecked())
+        flags |= Qt::ImhDialableCharactersOnly;
+    if (ui.cbDigitsOnly->isChecked())
+        flags |= Qt::ImhDigitsOnly;
+    if (ui.cbEmailOnly->isChecked())
+        flags |= Qt::ImhEmailCharactersOnly;
+    if (ui.cbFormattedNumbersOnly->isChecked())
+        flags |= Qt::ImhFormattedNumbersOnly;
+    if (ui.cbHiddenText->isChecked())
+        flags |= Qt::ImhHiddenText;
+    if (ui.cbLowercaseOnly->isChecked())
+        flags |= Qt::ImhLowercaseOnly;
+    if (ui.cbNoAutoUppercase->isChecked())
+        flags |= Qt::ImhNoAutoUppercase;
+    if (ui.cbNoPredictiveText->isChecked())
+        flags |= Qt::ImhNoPredictiveText;
+    if (ui.cbPreferLowercase->isChecked())
+        flags |= Qt::ImhPreferLowercase;
+    if (ui.cbPreferNumbers->isChecked())
+        flags |= Qt::ImhPreferNumbers;
+    if (ui.cbPreferUpperCase->isChecked())
+        flags |= Qt::ImhPreferUppercase;
+    if (ui.cbUppercaseOnly->isChecked())
+        flags |= Qt::ImhUppercaseOnly;
+    if (ui.cbUrlOnly->isChecked())
+        flags |= Qt::ImhUrlCharactersOnly;
+    ui.lineEdit->clear();
+    ui.lineEdit->setInputMethodHints(Qt::InputMethodHints(flags));
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/manual/inputmethodhints/inputmethodhints.h	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,63 @@
+/****************************************************************************
+**
+** 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$
+**
+****************************************************************************/
+
+#ifndef INPUTMETHODHINTS_H
+#define INPUTMETHODHINTS_H
+
+#include <QtGui/QMainWindow>
+#include "ui_tst_inputmethodhints.h"
+
+class inputmethodhints : public QMainWindow
+{
+    Q_OBJECT
+
+public:
+    inputmethodhints(QWidget *parent = 0);
+    ~inputmethodhints();
+    
+public slots:
+    void checkboxChanged(int);
+
+private:
+    Ui::MainWindow ui;
+};
+
+#endif // INPUTMETHODHINTS_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/manual/inputmethodhints/inputmethodhints.pro	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,13 @@
+TEMPLATE = app
+TARGET = tst_inputmethodhints
+
+QT        += core \
+    gui 
+
+HEADERS   += inputmethodhints.h
+SOURCES   += main.cpp \
+    inputmethodhints.cpp
+FORMS     += inputmethodhints.ui
+RESOURCES +=
+
+symbian:TARGET.UID3 = 0xE4938ABC
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/manual/inputmethodhints/inputmethodhints.ui	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,138 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>MainWindow</class>
+ <widget class="QMainWindow" name="MainWindow">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>360</width>
+    <height>640</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>MainWindow</string>
+  </property>
+  <widget class="QWidget" name="centralwidget">
+   <layout class="QVBoxLayout" name="verticalLayout_3">
+    <item>
+     <widget class="QTabWidget" name="tabWidget">
+      <property name="currentIndex">
+       <number>1</number>
+      </property>
+      <widget class="QWidget" name="tab">
+       <attribute name="title">
+        <string>behaviour</string>
+       </attribute>
+       <layout class="QVBoxLayout" name="verticalLayout">
+        <item>
+         <widget class="QCheckBox" name="cbHiddenText">
+          <property name="text">
+           <string>ImhHiddenText</string>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <widget class="QCheckBox" name="cbNoAutoUppercase">
+          <property name="text">
+           <string>ImhNoAutoUppercase</string>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <widget class="QCheckBox" name="cbPreferNumbers">
+          <property name="text">
+           <string>ImhPreferNumbers</string>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <widget class="QCheckBox" name="cbPreferUpperCase">
+          <property name="text">
+           <string>ImhPreferUppercase</string>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <widget class="QCheckBox" name="cbPreferLowercase">
+          <property name="text">
+           <string>ImhPreferLowercase</string>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <widget class="QCheckBox" name="cbNoPredictiveText">
+          <property name="text">
+           <string>ImhNoPredictiveText</string>
+          </property>
+         </widget>
+        </item>
+       </layout>
+      </widget>
+      <widget class="QWidget" name="tab_2">
+       <attribute name="title">
+        <string>restrictions</string>
+       </attribute>
+       <layout class="QVBoxLayout" name="verticalLayout_2">
+        <item>
+         <widget class="QCheckBox" name="cbDigitsOnly">
+          <property name="text">
+           <string>ImhDigitsOnly</string>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <widget class="QCheckBox" name="cbFormattedNumbersOnly">
+          <property name="text">
+           <string>ImhFormattedNumbersOnly</string>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <widget class="QCheckBox" name="cbUppercaseOnly">
+          <property name="text">
+           <string>ImhUppercaseOnly</string>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <widget class="QCheckBox" name="cbLowercaseOnly">
+          <property name="text">
+           <string>ImhLowercaseOnly</string>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <widget class="QCheckBox" name="cbDialableOnly">
+          <property name="text">
+           <string>ImhDialableCharactersOnly</string>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <widget class="QCheckBox" name="cbEmailOnly">
+          <property name="text">
+           <string>ImhEmailCharactersOnly</string>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <widget class="QCheckBox" name="cbUrlOnly">
+          <property name="text">
+           <string>ImhUrlCharactersOnly</string>
+          </property>
+         </widget>
+        </item>
+       </layout>
+      </widget>
+     </widget>
+    </item>
+    <item>
+     <widget class="QLineEdit" name="lineEdit"/>
+    </item>
+   </layout>
+  </widget>
+ </widget>
+ <resources/>
+ <connections/>
+</ui>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/manual/inputmethodhints/main.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,53 @@
+/****************************************************************************
+**
+** 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$
+**
+****************************************************************************/
+
+#include "inputmethodhints.h"
+
+#include <QtGui>
+#include <QApplication>
+
+int main(int argc, char *argv[])
+{
+    QApplication a(argc, argv);
+    inputmethodhints w;
+    w.showMaximized();
+    return a.exec();
+}
--- a/tests/qtp/qtp.pro	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,15 +0,0 @@
-TEMPLATE = subdirs
-SUBDIRS = \
-	qtp_addressbook \
-	qtp_analogclock \
-	qtp_animatedtiles \
-	qtp_collidingmice \
-	qtp_masterdetail \
-	qtp_qftp \
-	qtp_raycasting \
-	qtp_svgviewer \
-	qtp_wiggly
-
-#contains(QT_CONFIG, webkit): SUBDIRS += qtp_anomaly
-contains(QT_CONFIG, openvg): SUBDIRS += qtp_star
-
--- a/tests/qtp/qtp_addressbook/adddialog.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,83 +0,0 @@
-/****************************************************************************
-**
-** 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.
-**
-** 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 <QtGui>
-#include "adddialog.h"
-
-//! [0]
-AddDialog::AddDialog(QWidget *parent)
-    : QDialog(parent)
-{
-    nameLabel = new QLabel("Name");
-    addressLabel = new QLabel("Address");
-    okButton = new QPushButton("OK");
-    cancelButton = new QPushButton("Cancel");
-    
-    nameText = new QLineEdit;
-    addressText = new QTextEdit;
-    
-    QGridLayout *gLayout = new QGridLayout;
-    gLayout->setColumnStretch(1, 2);
-    gLayout->addWidget(nameLabel, 0, 0);
-    gLayout->addWidget(nameText, 0, 1);
-    
-    gLayout->addWidget(addressLabel, 1, 0, Qt::AlignLeft|Qt::AlignTop);
-    gLayout->addWidget(addressText, 1, 1, Qt::AlignLeft);
-    
-    QHBoxLayout *buttonLayout = new QHBoxLayout;
-    buttonLayout->addWidget(okButton);
-    buttonLayout->addWidget(cancelButton);
-    
-    gLayout->addLayout(buttonLayout, 2, 1, Qt::AlignRight);
-    
-    QVBoxLayout *mainLayout = new QVBoxLayout;
-    mainLayout->addLayout(gLayout);
-    setLayout(mainLayout);
-    
-    connect(okButton, SIGNAL(clicked()),
-            this, SLOT(accept()));
-            
-    connect(cancelButton, SIGNAL(clicked()),
-            this, SLOT(reject()));
-            
-    setWindowTitle(tr("Add a Contact"));
-}
-//! [0]
--- a/tests/qtp/qtp_addressbook/adddialog.h	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,72 +0,0 @@
-/****************************************************************************
-**
-** 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.
-**
-** 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 ADDDIALOG_H
-#define ADDDIALOG_H
-
-#include <QDialog>
-
-QT_BEGIN_NAMESPACE
-class QLabel;
-class QPushButton;
-class QTextEdit;
-class QLineEdit;
-QT_END_NAMESPACE
-
-//! [0]
-class AddDialog : public QDialog
-{
-    Q_OBJECT
-    
-public:
-    AddDialog(QWidget *parent=0);
-    QLineEdit *nameText;
-    QTextEdit *addressText;
-
-private:
-    QLabel *nameLabel;
-    QLabel *addressLabel;
-    QPushButton *okButton;
-    QPushButton *cancelButton;
-};
-//! [0]
-
-#endif
--- a/tests/qtp/qtp_addressbook/addresswidget.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,238 +0,0 @@
-/****************************************************************************
-**
-** 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.
-**
-** 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 <QtGui>
-#include "addresswidget.h"
-#include "adddialog.h"
-
-//! [0]
-AddressWidget::AddressWidget(QWidget *parent)
-    : QTabWidget(parent)
-{
-    table = new TableModel(this);
-    newAddressTab = new NewAddressTab(this);
-    connect(newAddressTab, SIGNAL(sendDetails(QString, QString)),
-        this, SLOT(addEntry(QString, QString))); 
-
-    addTab(newAddressTab, "Address Book");    
-
-    setupTabs();
-}
-//! [0]
-
-//! [2]
-void AddressWidget::addEntry()
-{    
-    AddDialog aDialog;
-
-    if (aDialog.exec()) {
-        QString name = aDialog.nameText->text();
-        QString address = aDialog.addressText->toPlainText();
-        
-        addEntry(name, address);
-    }
-}
-//! [2]
-
-//! [3]
-void AddressWidget::addEntry(QString name, QString address)
-{    
-    QList< QPair<QString, QString> >list = table->getList();
-    QPair<QString, QString> pair(name, address);
-
-    if (!list.contains(pair)) {
-        table->insertRows(0, 1, QModelIndex());
-
-        QModelIndex index = table->index(0, 0, QModelIndex());
-        table->setData(index, name, Qt::EditRole);
-        index = table->index(0, 1, QModelIndex());
-        table->setData(index, address, Qt::EditRole);
-        removeTab(indexOf(newAddressTab));
-    } else {
-        QMessageBox::information(this, tr("Duplicate Name"),
-            tr("The name \"%1\" already exists.").arg(name));
-    }
-}
-//! [3]
-
-//! [4a]
-void AddressWidget::editEntry()
-{
-    QTableView *temp = static_cast<QTableView*>(currentWidget());
-    QSortFilterProxyModel *proxy = static_cast<QSortFilterProxyModel*>(temp->model());
-    QItemSelectionModel *selectionModel = temp->selectionModel();
-
-    QModelIndexList indexes = selectionModel->selectedRows();
-    QModelIndex index, i;        
-    QString name;
-    QString address;
-    int row = -1;
-
-    foreach (index, indexes) {
-        row = proxy->mapToSource(index).row();
-        i = table->index(row, 0, QModelIndex());
-        QVariant varName = table->data(i, Qt::DisplayRole);
-        name = varName.toString();
-    
-        i = table->index(row, 1, QModelIndex());
-        QVariant varAddr = table->data(i, Qt::DisplayRole);
-        address = varAddr.toString();
-    }
-//! [4a]
-    
-//! [4b]    
-    AddDialog aDialog;
-    aDialog.setWindowTitle(tr("Edit a Contact"));
-
-    aDialog.nameText->setReadOnly(true);
-    aDialog.nameText->setText(name);
-    aDialog.addressText->setText(address);
-
-    if (aDialog.exec()) {
-        QString newAddress = aDialog.addressText->toPlainText();
-        if (newAddress != address) {
-            i = table->index(row, 1, QModelIndex());
-            table->setData(i, newAddress, Qt::EditRole);
-        }
-    }
-}
-//! [4b]
-
-//! [5]
-void AddressWidget::removeEntry()
-{
-    QTableView *temp = static_cast<QTableView*>(currentWidget());
-    QSortFilterProxyModel *proxy = static_cast<QSortFilterProxyModel*>(temp->model());
-    QItemSelectionModel *selectionModel = temp->selectionModel();
-    
-    QModelIndexList indexes = selectionModel->selectedRows();
-    QModelIndex index;
-
-    foreach (index, indexes) {
-        int row = proxy->mapToSource(index).row();
-        table->removeRows(row, 1, QModelIndex());
-    }
-
-    if (table->rowCount(QModelIndex()) == 0) {
-        insertTab(0, newAddressTab, "Address Book");
-    }
-}
-//! [5]
-
-//! [1]
-void AddressWidget::setupTabs()
-{
-    QStringList groups;
-    groups << "ABC" << "DEF" << "GHI" << "JKL" << "MNO" << "PQR" << "STU" << "VW" << "XYZ";
-
-    for (int i = 0; i < groups.size(); ++i) {
-        QString str = groups.at(i);
-        
-        proxyModel = new QSortFilterProxyModel(this);
-        proxyModel->setSourceModel(table);
-        proxyModel->setDynamicSortFilter(true);
-    
-        QTableView *tableView = new QTableView;
-        tableView->setModel(proxyModel);
-        tableView->setSortingEnabled(true);
-        tableView->setSelectionBehavior(QAbstractItemView::SelectRows);
-        tableView->horizontalHeader()->setStretchLastSection(true);
-        tableView->verticalHeader()->hide();
-        tableView->setEditTriggers(QAbstractItemView::NoEditTriggers);
-        tableView->setSelectionMode(QAbstractItemView::SingleSelection);
-
-        QString newStr = QString("^[%1].*").arg(str);
-
-        proxyModel->setFilterRegExp(QRegExp(newStr, Qt::CaseInsensitive));
-        proxyModel->setFilterKeyColumn(0);
-        proxyModel->sort(0, Qt::AscendingOrder);
-    
-        connect(tableView->selectionModel(),
-            SIGNAL(selectionChanged(const QItemSelection &, const QItemSelection &)),
-            this, SIGNAL(selectionChanged(const QItemSelection &)));
-
-        addTab(tableView, str);
-    }
-}
-//! [1]
-
-//! [7]
-void AddressWidget::readFromFile(QString fileName)
-{
-    QFile file(fileName);
-
-    if (!file.open(QIODevice::ReadOnly)) {
-        QMessageBox::information(this, tr("Unable to open file"),
-            file.errorString());
-        return;
-    }
-
-    QList< QPair<QString, QString> > pairs = table->getList();    
-    QDataStream in(&file);
-    in >> pairs;
-
-    if (pairs.isEmpty()) {
-        QMessageBox::information(this, tr("No contacts in file"),
-            tr("The file you are attempting to open contains no contacts."));  
-    } else {
-        for (int i=0; i<pairs.size(); ++i) {
-            QPair<QString, QString> p = pairs.at(i);
-            addEntry(p.first, p.second);
-        }
-    }
-}
-//! [7]
-
-//! [6]
-void AddressWidget::writeToFile(QString fileName)
-{
-    QFile file(fileName);
-
-    if (!file.open(QIODevice::WriteOnly)) {
-        QMessageBox::information(this, tr("Unable to open file"), file.errorString());
-        return;
-    }
-
-    QList< QPair<QString, QString> > pairs = table->getList();    
-    QDataStream out(&file);
-    out << pairs;
-}
-//! [6]
--- a/tests/qtp/qtp_addressbook/addresswidget.h	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,83 +0,0 @@
-/****************************************************************************
-**
-** 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.
-**
-** 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 ADDRESSWIDGET_H
-#define ADDRESSWIDGET_H
-
-#include <QTabWidget>
-#include <QItemSelection>
-#include "tablemodel.h"
-#include "newaddresstab.h"
-
-QT_BEGIN_NAMESPACE
-class QSortFilterProxyModel;
-class QItemSelectionModel;
-QT_END_NAMESPACE
-
-//! [0]
-class AddressWidget : public QTabWidget
-{
-    Q_OBJECT
-
-public:
-    AddressWidget(QWidget *parent=0);
-    void readFromFile(QString fileName);
-    void writeToFile(QString fileName);
-
-public slots:
-    void addEntry();
-    void addEntry(QString name, QString address);
-    void editEntry();
-    void removeEntry();
-
-signals:
-    void selectionChanged (const QItemSelection &selected);
-
-private:
-    void setupTabs();
-
-    TableModel *table;
-    NewAddressTab *newAddressTab;
-    QSortFilterProxyModel *proxyModel;
-};
-//! [0]
-
-#endif
--- a/tests/qtp/qtp_addressbook/autotest.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,241 +0,0 @@
-/****************************************************************************
-**
-** 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.
-**
-** 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 "mainwindow.h"
-#include "addresswidget.h"
-#include "adddialog.h"
-#include "newaddresstab.h"
-#include "tablemodel.h"
-#include "autotest.h"
-
-void autoTest::initTestCase()
-{
-}
-
-void autoTest::testDefaults()
-{
-	MainWindow mw;
-	mw.show();
-
-	// Test default values for widget properties
-	QCOMPARE( mw.acceptDrops(), false );
-	QCOMPARE( mw.hasEditFocus(), false );
-	QCOMPARE( mw.hasFocus(), false );
-	QCOMPARE( mw.hasMouseTracking(), false );
-	QCOMPARE( mw.isActiveWindow(), true );
-	QCOMPARE( mw.isEnabled(), true );
-	QCOMPARE( mw.isFullScreen(), false );
-	QCOMPARE( mw.isHidden(), false );
-	QCOMPARE( mw.isMaximized(), false );
-	QCOMPARE( mw.isMinimized(), false );
-	QCOMPARE( mw.isModal(), false );
-	QCOMPARE( mw.isVisible(), true );
-	QCOMPARE( mw.isWindow(), true );
-	QCOMPARE( mw.isWindowModified(), false );
-	QCOMPARE( mw.underMouse(), false );
-	QCOMPARE( mw.updatesEnabled(), true );
-
-	mw.hide();
-}
-
-void autoTest::testMainWindow()
-{
-    MainWindow mw;
-    mw.show();
-
-    QTest::qWait(1000);
-
-    QAction *openAction = NULL;
-    QAction *saveAction = NULL;
-    QList<QAction *> allActions = mw.findChildren<QAction *>();
-    QVERIFY( allActions.count() > 0 );
-
-    for ( int i = 0; i < allActions.count(); i++ )
-    {
-        if ( allActions.at(i)->text() == QString("&Open..."))
-        {
-            openAction = allActions.at(i);
-        }
-        else if ( allActions.at(i)->text() == QString("&Save As..."))
-        {
-            saveAction = allActions.at(i);
-        }
-        else
-        {
-            // not currently tested by this autotest
-        }
-    }
-
-    // verifies that these items exist, but no further testing is currently possible
-    // due to limitations of event sending in kernel space between different threads.
-    QVERIFY( openAction );
-    QVERIFY( saveAction );
-
-    QTest::qWait(1000);
-}
-
-void autoTest::testAddressWidget()
-{
-    QString name;
-    QString address;
-
-    MainWindow mw;
-    mw.show();
-
-    QTest::qWait(500);
-
-    QList<AddressWidget *> allAddrWidgets = mw.findChildren<AddressWidget *>();
-    QVERIFY( allAddrWidgets.count() == 1 );
-    AddressWidget *wg = allAddrWidgets.at(0);
-
-    // Some sanity checks for AddressWidget
-    QVERIFY( wg != 0 );
-	  
-    QVERIFY( wg->width() > 0 );
-    QVERIFY( wg->height() > 0 );
-    QVERIFY( wg->width() <= mw.width() );
-    QVERIFY( wg->height() <= mw.height() );   
-    
-    // Testing adding items to data fields
-    QList<TableModel *> allTables = wg->findChildren<TableModel *>();
-    QVERIFY( allTables.count() == 1 );
-    TableModel *tm = allTables.at(0);
-    QVERIFY( tm != 0 );
-
-    QCOMPARE( tm->rowCount( QModelIndex()), 0 );
-    QCOMPARE( tm->columnCount( QModelIndex()), 2 );
-
-    name = "asdf";
-    address = "0xD34DB33F";
-    wg->addEntry( name, address );
-
-    name = "qwerty";
-    address = "usb1:0";
-    wg->addEntry( name, address );
-
-    name = "john";
-    address = "doestreet";
-    wg->addEntry( name, address );
-
-    QCOMPARE( tm->rowCount( QModelIndex()), 3 );
-    QCOMPARE( tm->columnCount( QModelIndex()), 2 );
-
-    QTest::qWait(1000);
-
-    // Testing removing items to data fields
-    QTableView *tmp = static_cast<QTableView*>(wg->currentWidget());
-    QVERIFY( tmp );
-    tmp->selectRow(0);
-    QTest::qWait(1000);
-
-    wg->removeEntry();
-    QTest::qWait(200);
-    QCOMPARE( tm->rowCount( QModelIndex()), 2 );
-    QCOMPARE( tm->columnCount( QModelIndex()), 2 );
-
-    QTest::qWait(1000);
-
-    mw.hide();
-}
-
-void autoTest::testAddDialog()
-{
-    MainWindow mw;
-    mw.show();
-
-    QTest::qWait(500);
-
-    mw.hide();
-}
-
-void autoTest::testNewAddressTab()
-{
-    MainWindow mw;
-    mw.show();
-
-    QTest::qWait(500);
-
-    QList<AddressWidget *> allAddrWidgets = mw.findChildren<AddressWidget *>();
-    QVERIFY( allAddrWidgets.count() == 1 );
-    AddressWidget *wg = allAddrWidgets.at(0);
-    QVERIFY( wg != 0 );
-
-    QList<NewAddressTab *> allNewWidgets = wg->findChildren<NewAddressTab *>();
-    QVERIFY( allNewWidgets.count() == 1 );
-    NewAddressTab *nat = allNewWidgets.at(0);
-    QVERIFY( nat != 0 );
-
-    QTableView *tmp = static_cast<QTableView*>(wg->currentWidget());
-    QVERIFY( tmp );
-
-    for (int i = 0; i < wg->count(); i++)
-    {
-        wg->setCurrentIndex(i);
-        QTest::qWait(500);
-    }
-    wg->setCurrentIndex(0);
-
-    QTest::keyClick ( wg, Qt::Key_Tab, Qt::NoModifier, 500 );
-    QTest::keyClick ( wg, Qt::Key_Tab, Qt::NoModifier, 500 );
-
-    mw.hide();
-}
-
-void autoTest::testTableModel()
-{
-    MainWindow mw;
-    mw.show();
-
-    QTest::qWait(500);
-
-    QList<AddressWidget *> allAddrWidgets = mw.findChildren<AddressWidget *>();
-    QVERIFY( allAddrWidgets.count() == 1 );
-    AddressWidget *wg = allAddrWidgets.at(0);
-    QVERIFY( wg != 0 );
-
-    QList<TableModel *> allTables = wg->findChildren<TableModel *>();
-    QVERIFY( allTables.count() == 1 );
-    TableModel *tm = allTables.at(0);
-    QVERIFY( tm != 0 );
-    
-    mw.hide();
-}
--- a/tests/qtp/qtp_addressbook/autotest.h	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,66 +0,0 @@
-/****************************************************************************
-**
-** 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.
-**
-** 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 AUTOTEST_H
-#define AUTOTEST_H
-
-#include <QtGui>
-#include <QObject>
-#include <QtTest>
-
-
-class autoTest: public QObject
-{
-	Q_OBJECT
-	
-	void initTestCase();
-	
-	private slots:
-		void testDefaults();
-		void testMainWindow();
-		void testAddressWidget();
-		void testAddDialog();
-		void testNewAddressTab();
-		void testTableModel();
-};
-	
-#endif
--- a/tests/qtp/qtp_addressbook/main.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,48 +0,0 @@
-/****************************************************************************
-**
-** 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.
-**
-** 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>
-#include <QtGui>
-#include <QtTest>
-#include "mainwindow.h"
-#include "autotest.h"
-
-QTEST_MAIN(autoTest)
--- a/tests/qtp/qtp_addressbook/mainwindow.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,138 +0,0 @@
-/****************************************************************************
-**
-** 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.
-**
-** 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 <QtGui>
-#include "mainwindow.h"
-
-//! [0]
-MainWindow::MainWindow()
-{
-    addressWidget = new AddressWidget;
-    setCentralWidget(addressWidget);
-    createMenus();
-    setWindowTitle(tr("Address Book"));
-}
-//! [0]
-
-//! [1a]
-void MainWindow::createMenus()
-{
-    fileMenu = menuBar()->addMenu(tr("&File"));
-    
-    openAct = new QAction(tr("&Open..."), this);
-    fileMenu->addAction(openAct);
-    connect(openAct, SIGNAL(triggered()),
-        this, SLOT(openFile()));
-//! [1a]
-
-    saveAct = new QAction(tr("&Save As..."), this);
-    fileMenu->addAction(saveAct);
-    connect(saveAct, SIGNAL(triggered()),
-        this, SLOT(saveFile()));
-
-    fileMenu->addSeparator();
-
-    exitAct = new QAction(tr("E&xit"), this);
-    fileMenu->addAction(exitAct);
-    connect(exitAct, SIGNAL(triggered()),
-        this, SLOT(close()));
-
-    toolMenu = menuBar()->addMenu(tr("&Tools"));
-
-    addAct = new QAction(tr("&Add Entry..."), this);
-    toolMenu->addAction(addAct);
-    connect(addAct, SIGNAL(triggered()),
-        addressWidget, SLOT(addEntry()));
-    
-//! [1b]
-    editAct = new QAction(tr("&Edit Entry..."), this);
-    editAct->setEnabled(false);
-    toolMenu->addAction(editAct);
-    connect(editAct, SIGNAL(triggered()),
-        addressWidget, SLOT(editEntry()));
-
-    toolMenu->addSeparator();
-
-    removeAct = new QAction(tr("&Remove Entry"), this);
-    removeAct->setEnabled(false);
-    toolMenu->addAction(removeAct);
-    connect(removeAct, SIGNAL(triggered()),
-        addressWidget, SLOT(removeEntry()));
-
-    connect(addressWidget, SIGNAL(selectionChanged(const QItemSelection &)),
-        this, SLOT(updateActions(const QItemSelection &)));
-}
-//! [1b]
-
-//! [2]
-void MainWindow::openFile()
-{
-    QString fileName = QFileDialog::getOpenFileName(this);
-    if (!fileName.isEmpty()) {
-        addressWidget->readFromFile(fileName);
-    }
-}
-//! [2]
-
-//! [3]
-void MainWindow::saveFile()
-{
-    QString fileName = QFileDialog::getSaveFileName(this);
-    if (!fileName.isEmpty()) {
-        addressWidget->writeToFile(fileName);
-    }
-}
-//! [3]
-
-//! [4]
-void MainWindow::updateActions(const QItemSelection &selection)
-{
-    QModelIndexList indexes = selection.indexes();
-    
-    if (!indexes.isEmpty()) {
-        removeAct->setEnabled(true);
-        editAct->setEnabled(true);
-    } else {
-        removeAct->setEnabled(false);
-        editAct->setEnabled(false);
-    }
-}
-//! [4]
--- a/tests/qtp/qtp_addressbook/mainwindow.h	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,76 +0,0 @@
-/****************************************************************************
-**
-** 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.
-**
-** 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 MAINWINDOW_H
-#define MAINWINDOW_H
-
-#include <QtGui>
-#include "addresswidget.h"
-
-//! [0]
-class MainWindow : public QMainWindow
-{
-    Q_OBJECT
-
-public:
-    MainWindow();
-
-private slots:
-    void updateActions(const QItemSelection &selection);
-    void openFile();
-    void saveFile();
-
-private:
-    void createMenus();
-
-    AddressWidget *addressWidget;
-    QMenu *fileMenu;
-    QMenu *toolMenu;
-    QAction *openAct;
-    QAction *saveAct;
-    QAction *exitAct;
-    QAction *addAct;
-    QAction *editAct;
-    QAction *removeAct;
-};
-//! [0]
-
-#endif
--- a/tests/qtp/qtp_addressbook/newaddresstab.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,78 +0,0 @@
-/****************************************************************************
-**
-** 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.
-**
-** 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 <QtGui>
-#include "newaddresstab.h"
-#include "adddialog.h"
-
-//! [0]
-NewAddressTab::NewAddressTab(QWidget *parent)
-{
-    Q_UNUSED(parent);
-
-    descriptionLabel = new QLabel(tr("There are currently no contacts in your address book. "
-                                      "\nClick Add to add new contacts."));
-    
-    addButton = new QPushButton(tr("Add"));
-    
-    connect(addButton, SIGNAL(clicked()), this, SLOT(addEntry()));
-    
-    mainLayout = new QVBoxLayout;
-    mainLayout->addWidget(descriptionLabel);
-    mainLayout->addWidget(addButton, 0, Qt::AlignCenter);
-    
-    setLayout(mainLayout);
-}
-//! [0]
-
-//! [1]
-void NewAddressTab::addEntry()
-{
-    AddDialog aDialog;
-    
-    if (aDialog.exec()) {
-        QString name = aDialog.nameText->text();
-        QString address = aDialog.addressText->toPlainText();
-        
-        emit sendDetails(name, address);
-    }
-}
-//! [1]
--- a/tests/qtp/qtp_addressbook/newaddresstab.h	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,75 +0,0 @@
-/****************************************************************************
-**
-** 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.
-**
-** 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 NEWADDRESSTAB_H
-#define NEWADDRESSTAB_H
-
-#include <QWidget>
-
-QT_BEGIN_NAMESPACE
-class QLabel;
-class QPushButton;
-class QVBoxLayout;
-QT_END_NAMESPACE
-
-//! [0]
-class NewAddressTab : public QWidget
-{
-    Q_OBJECT
-    
-public:
-    NewAddressTab(QWidget *parent=0);
-
-public slots:
-    void addEntry();
-
-signals:
-    void sendDetails(QString name, QString address);
-
-private:
-    QLabel *descriptionLabel;
-    QPushButton *addButton;
-    QVBoxLayout *mainLayout;
-    
-};
-//! [0]
-
-#endif
--- a/tests/qtp/qtp_addressbook/qtp_addressbook.pro	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,31 +0,0 @@
-
-SOURCES   = adddialog.cpp \
-            addresswidget.cpp \
-            main.cpp \
-            autotest.cpp \
-            mainwindow.cpp \
-            newaddresstab.cpp \
-            tablemodel.cpp
-HEADERS   = adddialog.h \
-            addresswidget.h \
-            autotest.h \
-            mainwindow.h \
-            newaddresstab.h \
-            tablemodel.h
-
-CONFIG += qt warn_on console depend_includepath
-
-qtAddLibrary(QtTest)
-
-# install
-target.path = $$[QT_INSTALL_EXAMPLES]/itemviews/addressbook
-sources.files = $$SOURCES $$HEADERS $$RESOURCES addressbook.pro
-sources.path = $$[QT_INSTALL_EXAMPLES]/itemviews/addressbook
-INSTALLS += target sources
-
-symbian {
-    TARGET.UID3 = 0xED83EC01
-    TARGET.CAPABILITY="ALL -TCB"
-    include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri)
-    RSS_RULES ="group_name=\"QtTests\";" 
-}
--- a/tests/qtp/qtp_addressbook/tablemodel.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,185 +0,0 @@
-/****************************************************************************
-**
-** 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.
-**
-** 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 "tablemodel.h"
-
-//! [0]
-TableModel::TableModel(QObject *parent)
-    : QAbstractTableModel(parent)
-{
-}
-
-TableModel::TableModel(QList< QPair<QString, QString> > pairs, QObject *parent)
-    : QAbstractTableModel(parent)
-{
-    listOfPairs=pairs;
-}
-//! [0]
-
-//! [1]
-int TableModel::rowCount(const QModelIndex &parent) const
-{
-    Q_UNUSED(parent);
-    return listOfPairs.size();
-}
-
-int TableModel::columnCount(const QModelIndex &parent) const
-{
-    Q_UNUSED(parent);
-    return 2;
-}
-//! [1]
-
-//! [2]
-QVariant TableModel::data(const QModelIndex &index, int role) const
-{
-    if (!index.isValid())
-        return QVariant();
-    
-    if (index.row() >= listOfPairs.size() || index.row() < 0)
-        return QVariant();
-    
-    if (role == Qt::DisplayRole) {
-        QPair<QString, QString> pair = listOfPairs.at(index.row());
-        
-        if (index.column() == 0)
-            return pair.first;
-        else if (index.column() == 1)
-            return pair.second;
-    }
-    return QVariant();
-}
-//! [2]
-
-//! [3]
-QVariant TableModel::headerData(int section, Qt::Orientation orientation, int role) const
-{
-    if (role != Qt::DisplayRole)
-        return QVariant();
-    
-    if (orientation == Qt::Horizontal) {
-        switch (section) {
-            case 0:
-                return tr("Name");
-                
-            case 1:
-                return tr("Address");
-                
-            default:
-                return QVariant();
-        }
-    }
-    return QVariant();
-}
-//! [3]
-
-//! [4]
-bool TableModel::insertRows(int position, int rows, const QModelIndex &index)
-{
-    Q_UNUSED(index);
-    beginInsertRows(QModelIndex(), position, position+rows-1);
-    
-    for (int row=0; row < rows; row++) {
-        QPair<QString, QString> pair(" ", " ");
-        listOfPairs.insert(position, pair);
-    }
-
-    endInsertRows();
-    return true;
-}
-//! [4]
-
-//! [5]
-bool TableModel::removeRows(int position, int rows, const QModelIndex &index)
-{
-    Q_UNUSED(index);    
-    beginRemoveRows(QModelIndex(), position, position+rows-1);
-    
-    for (int row=0; row < rows; ++row) {
-        listOfPairs.removeAt(position);
-    }
-
-    endRemoveRows();
-    return true;
-}
-//! [5]
-
-//! [6]
-bool TableModel::setData(const QModelIndex &index, const QVariant &value, int role)
-{
-	if (index.isValid() && role == Qt::EditRole) {
-		int row = index.row();
-				
-		QPair<QString, QString> p = listOfPairs.value(row);
-		
-		if (index.column() == 0)
-			p.first = value.toString();
-		else if (index.column() == 1)
-			p.second = value.toString();
-        else
-            return false;
-            
-        listOfPairs.replace(row, p);
-		emit(dataChanged(index, index));
-		
-        return true;
-	}
-
-	return false;
-}
-//! [6]
-
-//! [7]
-Qt::ItemFlags TableModel::flags(const QModelIndex &index) const
-{
-    if (!index.isValid())
-        return Qt::ItemIsEnabled;
-    
-    return QAbstractTableModel::flags(index) | Qt::ItemIsEditable;
-}
-//! [7]
-
-//! [8]
-QList< QPair<QString, QString> > TableModel::getList()
-{
-    return listOfPairs;
-}
-//! [8]
--- a/tests/qtp/qtp_addressbook/tablemodel.h	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,73 +0,0 @@
-/****************************************************************************
-**
-** 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.
-**
-** 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 TABLEMODEL_H
-#define TABLEMODEL_H
-
-#include <QAbstractTableModel>
-#include <QPair>
-#include <QList>
-
-//! [0]
-class TableModel : public QAbstractTableModel
-{
-    Q_OBJECT
-    
-public:
-    TableModel(QObject *parent=0);
-    TableModel(QList< QPair<QString, QString> > listofPairs, QObject *parent=0);
-
-    int rowCount(const QModelIndex &parent) const;
-    int columnCount(const QModelIndex &parent) const;
-    QVariant data(const QModelIndex &index, int role) const;
-    QVariant headerData(int section, Qt::Orientation orientation, int role) const;
-    Qt::ItemFlags flags(const QModelIndex &index) const;
-    bool setData(const QModelIndex &index, const QVariant &value, int role=Qt::EditRole);
-    bool insertRows(int position, int rows, const QModelIndex &index=QModelIndex());
-    bool removeRows(int position, int rows, const QModelIndex &index=QModelIndex());
-    QList< QPair<QString, QString> > getList();
-
-private:
-    QList< QPair<QString, QString> > listOfPairs;
-};
-//! [0]
-
-#endif
--- a/tests/qtp/qtp_analogclock/analogclock.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,150 +0,0 @@
-/****************************************************************************
-**
-** 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.
-**
-** 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 <QtGui>
-
-#include "analogclock.h"
-
-//! [0] //! [1]
-AnalogClock::AnalogClock(QWidget *parent)
-//! [0] //! [2]
-    : QWidget(parent)
-//! [2] //! [3]
-{
-//! [3] //! [4]
-    QTimer *timer = new QTimer(this);
-//! [4] //! [5]
-    connect(timer, SIGNAL(timeout()), this, SLOT(update()));
-//! [5] //! [6]
-    timer->start(1000);
-//! [6]
-
-    setWindowTitle(tr("Analog Clock"));
-    resize(200, 200);
-    
-    // simple counter for testing purposes
-    counter = 0;
-//! [7]
-}
-//! [1] //! [7]
-
-//! [8] //! [9]
-void AnalogClock::paintEvent(QPaintEvent *)
-//! [8] //! [10]
-{
-    static const QPoint hourHand[3] = {
-        QPoint(7, 8),
-        QPoint(-7, 8),
-        QPoint(0, -40)
-    };
-    static const QPoint minuteHand[3] = {
-        QPoint(7, 8),
-        QPoint(-7, 8),
-        QPoint(0, -70)
-    };
-
-    QColor hourColor(127, 0, 127);
-    QColor minuteColor(0, 127, 127, 191);
-
-    int side = qMin(width(), height());
-    QTime time = QTime::currentTime();
-//! [10]
-
-//! [11]
-    QPainter painter(this);
-//! [11] //! [12]
-    painter.setRenderHint(QPainter::Antialiasing);
-//! [12] //! [13]
-    painter.translate(width() / 2, height() / 2);
-//! [13] //! [14]
-    painter.scale(side / 200.0, side / 200.0);
-//! [9] //! [14]
-
-//! [15]
-    painter.setPen(Qt::NoPen);
-//! [15] //! [16]
-    painter.setBrush(hourColor);
-//! [16]
-
-//! [17] //! [18]
-    painter.save();
-//! [17] //! [19]
-    painter.rotate(30.0 * ((time.hour() + time.minute() / 60.0)));
-    painter.drawConvexPolygon(hourHand, 3);
-    painter.restore();
-//! [18] //! [19]
-
-//! [20]
-    painter.setPen(hourColor);
-//! [20] //! [21]
-
-    for (int i = 0; i < 12; ++i) {
-        painter.drawLine(88, 0, 96, 0);
-        painter.rotate(30.0);
-    }
-//! [21]
-
-//! [22]
-    painter.setPen(Qt::NoPen);
-//! [22] //! [23]
-    painter.setBrush(minuteColor);
-
-//! [24]
-    painter.save();
-    painter.rotate(6.0 * (time.minute() + time.second() / 60.0));
-    painter.drawConvexPolygon(minuteHand, 3);
-    painter.restore();
-//! [23] //! [24]
-
-//! [25]
-    painter.setPen(minuteColor);
-//! [25] //! [26]
-
-//! [27]
-    for (int j = 0; j < 60; ++j) {
-        if ((j % 5) != 0)
-            painter.drawLine(92, 0, 96, 0);
-        painter.rotate(6.0);
-    }
-    counter++;
-//! [27]
-}
-//! [26]
--- a/tests/qtp/qtp_analogclock/analogclock.h	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,63 +0,0 @@
-/****************************************************************************
-**
-** 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.
-**
-** 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 ANALOGCLOCK_H
-#define ANALOGCLOCK_H
-
-#include <QWidget>
-
-//! [0]
-class AnalogClock : public QWidget
-{
-    Q_OBJECT
-
-public:
-    AnalogClock(QWidget *parent = 0);
-
-protected:
-    void paintEvent(QPaintEvent *event);
-    
-public:
-    int counter;	
-};
-//! [0]
-
-#endif
--- a/tests/qtp/qtp_analogclock/autotest.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,95 +0,0 @@
-/****************************************************************************
-**
-** 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.
-**
-** 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 "analogclock.h"
-#include "autotest.h"
-
-
-void autoTest::initTestCase()
-{
-}
-
-void autoTest::testDefaults()
-{
-	AnalogClock clock;
-	clock.show();
-
-	// Test default values for widget properties
-	QCOMPARE( clock.acceptDrops(), false );
-	QCOMPARE( clock.hasEditFocus(), false );
-	QCOMPARE( clock.hasFocus(), false );
-	QCOMPARE( clock.hasMouseTracking(), false );
-	QCOMPARE( clock.isActiveWindow(), true );
-	QCOMPARE( clock.isEnabled(), true );
-	QCOMPARE( clock.isFullScreen(), false );
-	QCOMPARE( clock.isHidden(), false );
-	QCOMPARE( clock.isMaximized(), false );
-	QCOMPARE( clock.isMinimized(), false );
-	QCOMPARE( clock.isModal(), false );
-	QCOMPARE( clock.isVisible(), true );
-	QCOMPARE( clock.isWindow(), true );
-	QCOMPARE( clock.isWindowModified(), false );
-	QCOMPARE( clock.underMouse(), false );
-	QCOMPARE( clock.updatesEnabled(), true );
-
-	clock.hide();
-}
-
-void autoTest::testClockWidget()
-{
-	AnalogClock clock;
-	clock.show();
-
-	int cvalue = clock.counter;
-  QTest::qWait(2000);
-  	
-	QVERIFY( clock.counter > cvalue );
-	cvalue = clock.counter;
-  	
-	QCOMPARE( clock.size().width(), 200 );
-	QCOMPARE( clock.size().height(), 200 );
-
-  QTest::qWait(2000);
-	QVERIFY( clock.counter > cvalue );
-
-	clock.hide();
-}
--- a/tests/qtp/qtp_analogclock/autotest.h	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,62 +0,0 @@
-/****************************************************************************
-**
-** 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.
-**
-** 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 AUTOTEST_H
-#define AUTOTEST_H
-
-#include <QtGui>
-#include <QObject>
-#include <QtTest>
-
-
-class autoTest: public QObject
-{
-	Q_OBJECT
-	
-	void initTestCase();
-	
-	private slots:
-		void testDefaults();
-		void testClockWidget();
-};
-	
-#endif
--- a/tests/qtp/qtp_analogclock/main.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,48 +0,0 @@
-/****************************************************************************
-**
-** 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.
-**
-** 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>
-#include <QtTest>
-#include "autotest.h"
-
-#include "analogclock.h"
-
-QTEST_MAIN(autoTest)
--- a/tests/qtp/qtp_analogclock/qtp_analogclock.pro	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,22 +0,0 @@
-
-HEADERS       = analogclock.h autotest.h
-SOURCES       = analogclock.cpp \
-                autotest.cpp \
-                main.cpp
-
-CONFIG += qt warn_on console depend_includepath
-
-qtAddLibrary(QtTest)
-
-# install
-target.path = $$[QT_INSTALL_EXAMPLES]/widgets/analogclock
-sources.files = $$SOURCES $$HEADERS $$RESOURCES $$FORMS analogclock.pro
-sources.path = $$[QT_INSTALL_EXAMPLES]/widgets/analogclock
-INSTALLS += target sources
-
-symbian {
-    TARGET.UID3 = 0xED83EC02
-    TARGET.CAPABILITY="ALL -TCB"
-    include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri)
-    RSS_RULES ="group_name=\"QtTests\";" 
-    }
--- a/tests/qtp/qtp_animatedtiles/autotest.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,95 +0,0 @@
-/****************************************************************************
-**
-** 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.
-**
-** 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 <QTimer>
-#include <QAbstractButton>
-
-#include "mainwindow.h"
-#include "autotest.h"
-
-
-void autoTest::initTestCase()
-{
-}
-
-void autoTest::testDefaults()
-{
-	MainWindow mw;
-	mw.show();
-
-	// Test default values for widget properties
-	QCOMPARE( mw.acceptDrops(), false );
-	QCOMPARE( mw.hasEditFocus(), false );
-	QCOMPARE( mw.hasFocus(), false );
-	QCOMPARE( mw.hasMouseTracking(), false );
-	QCOMPARE( mw.isActiveWindow(), true );
-	QCOMPARE( mw.isEnabled(), true );
-	QCOMPARE( mw.isFullScreen(), false );
-	QCOMPARE( mw.isHidden(), false );
-	QCOMPARE( mw.isMaximized(), false );
-	QCOMPARE( mw.isMinimized(), false );
-	QCOMPARE( mw.isModal(), false );
-	QCOMPARE( mw.isVisible(), true );
-	QCOMPARE( mw.isWindow(), true );
-	QCOMPARE( mw.isWindowModified(), false );
-	QCOMPARE( mw.underMouse(), false );
-	QCOMPARE( mw.updatesEnabled(), true );
-
-	mw.hide();
-}
-
-void autoTest::getValues()
-{
-	
-}
-
-void autoTest::testMainWindow()
-{
-    MainWindow mw;
-
-    mw.show();
-    
-    // QGraphicsWidget doesn't seem to accept QTest::mouseClick (unhandled exception occurs)
-    QTest::qWait(3000);    
-
-    mw.hide();
-    mw.close();     
-}
--- a/tests/qtp/qtp_animatedtiles/autotest.h	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,65 +0,0 @@
-/****************************************************************************
-**
-** 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.
-**
-** 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 AUTOTEST_H
-#define AUTOTEST_H
-
-//#include <QtGui>
-#include <QObject>
-#include <QtTest>
-
-
-class autoTest: public QObject
-{
-	Q_OBJECT
-	
-	void initTestCase();
-	
-public slots:
-    void getValues();
-    
-	private slots:
-		void testDefaults();
-		void testMainWindow();
-};
-	
-#endif
Binary file tests/qtp/qtp_animatedtiles/images/Time-For-Lunch-2.jpg has changed
Binary file tests/qtp/qtp_animatedtiles/images/centered.png has changed
Binary file tests/qtp/qtp_animatedtiles/images/ellipse.png has changed
Binary file tests/qtp/qtp_animatedtiles/images/figure8.png has changed
Binary file tests/qtp/qtp_animatedtiles/images/kinetic.png has changed
Binary file tests/qtp/qtp_animatedtiles/images/random.png has changed
Binary file tests/qtp/qtp_animatedtiles/images/tile.png has changed
--- a/tests/qtp/qtp_animatedtiles/main.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,49 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the QtCore module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** No Commercial Usage
-** This file contains pre-release code and may not be distributed.
-** You may use this file in accordance with the terms and conditions
-** contained in the Technology Preview License Agreement accompanying
-** this package.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file.  Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights.  These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** If you have questions regarding the use of this file, please contact
-** Nokia at qt-info@nokia.com.
-**
-**
-**
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <QtGui>
-#include <QtTest>
-
-#include "autotest.h"
-
-
-QTEST_MAIN(autoTest)
-
--- a/tests/qtp/qtp_animatedtiles/mainwindow.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,177 +0,0 @@
-/****************************************************************************
-**
-** 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.
-**
-** 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 <QtGui>
-
-#include <QtCore/qstate.h>
-
-#include "mainwindow.h"
-
-MainWindow::MainWindow(QWidget *parent)
-    : QWidget(parent)
-{
-    QPixmap kineticPix(":/images/kinetic.png");
-    QPixmap bgPix(":/images/Time-For-Lunch-2.jpg");
-
-    QGraphicsScene scene(-350, -350, 700, 700);
-
-    for (int i = 0; i < 64; ++i) {
-        Pixmap *item = new Pixmap(kineticPix);
-        item->setOffset(-kineticPix.width()/2, -kineticPix.height()/2);
-        item->setZValue(i);
-        items << item;
-        scene.addItem(item);
-    }
-
-    // Buttons
-    QGraphicsItem *buttonParent = new QGraphicsRectItem;
-    ellipseButton = new Button(QPixmap(":/images/ellipse.png"), buttonParent);
-    figure8Button = new Button(QPixmap(":/images/figure8.png"), buttonParent);
-    randomButton = new Button(QPixmap(":/images/random.png"), buttonParent);
-    tiledButton = new Button(QPixmap(":/images/tile.png"), buttonParent);
-    centeredButton = new Button(QPixmap(":/images/centered.png"), buttonParent);
-
-    ellipseButton->setPos(-100, -100);
-    figure8Button->setPos(100, -100);
-    randomButton->setPos(0, 0);
-    tiledButton->setPos(-100, 100);
-    centeredButton->setPos(100, 100);
-
-    scene.addItem(buttonParent);
-    buttonParent->scale(0.75, 0.75);
-    buttonParent->setPos(200, 200);
-    buttonParent->setZValue(65);
-
-		qDebug() << "qtp_animatedtiles: states next";
-    // States
-    QState *rootState = new QState;
-    QState *ellipseState = new QState(rootState);
-    QState *figure8State = new QState(rootState);
-    QState *randomState = new QState(rootState);
-    QState *tiledState = new QState(rootState);
-    QState *centeredState = new QState(rootState);
-
-		qDebug() << "qtp_animatedtiles: values next";
-    // Values
-    for (int i = 0; i < items.count(); ++i) {
-        Pixmap *item = items.at(i);
-        // Ellipse
-        ellipseState->assignProperty(item, "pos",
-                                         QPointF(cos((i / 63.0) * 6.28) * 250,
-                                                 sin((i / 63.0) * 6.28) * 250));
-
-        // Figure 8
-        figure8State->assignProperty(item, "pos",
-                                         QPointF(sin((i / 63.0) * 6.28) * 250,
-                                                 sin(((i * 2)/63.0) * 6.28) * 250));
-
-        // Random
-        randomState->assignProperty(item, "pos",
-                                        QPointF(-250 + qrand() % 500,
-                                                -250 + qrand() % 500));
-
-        // Tiled
-        tiledState->assignProperty(item, "pos",
-                                       QPointF(((i % 8) - 4) * kineticPix.width() + kineticPix.width() / 2,
-                                               ((i / 8) - 4) * kineticPix.height() + kineticPix.height() / 2));
-
-        // Centered
-        centeredState->assignProperty(item, "pos", QPointF());
-    }
-
-		qDebug() << "qtp_animatedtiles: ui next";
-    // Ui
-    View *view = new View(&scene);
-    view->setWindowTitle(QT_TRANSLATE_NOOP(QGraphicsView, "Animated Tiles"));
-    view->setViewportUpdateMode(QGraphicsView::BoundingRectViewportUpdate);
-    view->setBackgroundBrush(bgPix);
-    view->setCacheMode(QGraphicsView::CacheBackground);
-    view->setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform);
-    // view->show();
-
-    QStateMachine states;
-    states.addState(rootState);
-    states.setInitialState(rootState);
-    rootState->setInitialState(centeredState);
-
-		qDebug() << "qtp_animatedtiles: animgroup next";
-    QParallelAnimationGroup *group = new QParallelAnimationGroup;
-    for (int i = 0; i < items.count(); ++i) {
-        QPropertyAnimation *anim = new QPropertyAnimation(items[i], "pos");
-        anim->setDuration(750 + i * 25);
-        anim->setEasingCurve(QEasingCurve::InOutBack);
-        group->addAnimation(anim);
-    }
-
-		qDebug() << "qtp_animatedtiles: button signaling next";
-    QAbstractTransition *trans = rootState->addTransition(ellipseButton, SIGNAL(pressed()), ellipseState);
-    trans->addAnimation(group);
-
-    trans = rootState->addTransition(figure8Button, SIGNAL(pressed()), figure8State);
-    trans->addAnimation(group);
-
-    trans = rootState->addTransition(randomButton, SIGNAL(pressed()), randomState);
-    trans->addAnimation(group);
-
-    trans = rootState->addTransition(tiledButton, SIGNAL(pressed()), tiledState);
-    trans->addAnimation(group);
-
-    trans = rootState->addTransition(centeredButton, SIGNAL(pressed()), centeredState);
-    trans->addAnimation(group);
-
-		qDebug() << "qtp_animatedtiles: timer next";
-    QTimer timer;
-    timer.start(125);
-    timer.setSingleShot(true);
-    trans = rootState->addTransition(&timer, SIGNAL(timeout()), ellipseState);
-    trans->addAnimation(group);
-
-		qDebug() << "qtp_animatedtiles: starting states";
-    states.start();
-}
-
-void MainWindow::showPosition()
-	{
-    Pixmap *item = items.at(0);
-		
-		qDebug() << "qtp_animatedtiles: position of item[0] x: " << item->x() << "   y: " << item->y();
-		}
-	
--- a/tests/qtp/qtp_animatedtiles/mainwindow.h	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,179 +0,0 @@
-/****************************************************************************
-**
-** 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.
-**
-** 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 MAINWINDOW_H
-#define MAINWINDOW_H
-
-#include <QWidget>
-#include <QGraphicsPixmapItem>
-#include <QGraphicsWidget>
-#include <QGraphicsItem>
-#include <QGraphicsSceneMouseEvent>
-#include <QGraphicsView>
-#include <QStyleOptionGraphicsItem>
-
-
-class Pixmap : public QObject, public QGraphicsPixmapItem
-{
-    Q_OBJECT
-    Q_PROPERTY(QPointF pos READ pos WRITE setPos)
-public:
-    Pixmap(const QPixmap &pix)
-        : QObject(), QGraphicsPixmapItem(pix)
-    {
-        setCacheMode(DeviceCoordinateCache);
-    }
-};
-
-class Button : public QGraphicsWidget
-{
-    Q_OBJECT
-public:
-    Button(const QPixmap &pixmap, QGraphicsItem *parent = 0)
-        : QGraphicsWidget(parent), _pix(pixmap)
-    {
-        setAcceptHoverEvents(true);
-        setCacheMode(DeviceCoordinateCache);
-    }
-
-    QRectF boundingRect() const
-    {
-        return QRectF(-65, -65, 130, 130);
-    }
-
-    QPainterPath shape() const
-    {
-        QPainterPath path;
-        path.addEllipse(boundingRect());
-        return path;
-    }
-    void click()
-    {
-    	mousePressEvent( (QGraphicsSceneMouseEvent *)NULL );
-    	mouseReleaseEvent( (QGraphicsSceneMouseEvent *)NULL );
-    }
-
-    void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *)
-    {
-        bool down = option->state & QStyle::State_Sunken;
-        QRectF r = boundingRect();
-        QLinearGradient grad(r.topLeft(), r.bottomRight());
-        grad.setColorAt(down ? 1 : 0, option->state & QStyle::State_MouseOver ? Qt::white : Qt::lightGray);
-        grad.setColorAt(down ? 0 : 1, Qt::darkGray);
-        painter->setPen(Qt::darkGray);
-        painter->setBrush(grad);
-        painter->drawEllipse(r);
-        QLinearGradient grad2(r.topLeft(), r.bottomRight());
-        grad.setColorAt(down ? 1 : 0, Qt::darkGray);
-        grad.setColorAt(down ? 0 : 1, Qt::lightGray);
-        painter->setPen(Qt::NoPen);
-        painter->setBrush(grad);
-        if (down)
-            painter->translate(2, 2);
-        painter->drawEllipse(r.adjusted(5, 5, -5, -5));
-        painter->drawPixmap(-_pix.width()/2, -_pix.height()/2, _pix);
-    }
-
-signals:
-    void pressed();
-
-protected:
-    void mousePressEvent(QGraphicsSceneMouseEvent *)
-    {
-        emit pressed();
-        //update();
-    }
-
-    void mouseReleaseEvent(QGraphicsSceneMouseEvent *)
-    {
-        //update();
-    }
-
-private:
-    QPixmap _pix;
-};
-
-class View : public QGraphicsView
-{
-public:
-    View(QGraphicsScene *scene) : QGraphicsView(scene) { }
-
-protected:
-    void resizeEvent(QResizeEvent *event)
-    {
-        QGraphicsView::resizeEvent(event);
-        fitInView(sceneRect(), Qt::KeepAspectRatio);
-    }
-};
-
-
-//! [0]
-class MainWindow : public QWidget
-{
-    Q_OBJECT
-
-public:
-    MainWindow(QWidget *parent = 0);
-
-    void showPosition();
-    
-    Button * getEllipseButton() { return ellipseButton; };
-    Button *getFigure8Button() { return figure8Button; };
-    Button *getRandomButton() { return randomButton; };
-    Button *getTiledButton() { return tiledButton; };
-    Button *getCenteredButton() { return centeredButton; };
-/*
-protected:
-    void paintEvent(QPaintEvent *event);
-*/
-private:
-	  Button *ellipseButton;
-    Button *figure8Button;
-    Button *randomButton;
-    Button *tiledButton;
-    Button *centeredButton;    
-
-    QList<Pixmap *> items;
-    
-};
-//! [0]
-
-#endif // mainwindow_h
--- a/tests/qtp/qtp_animatedtiles/qtp_animatedtiles.pro	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,22 +0,0 @@
-
-SOURCES = main.cpp mainwindow.cpp autotest.cpp
-HEADERS = mainwindow.h autotest.h
-
-RESOURCES = qtp_animatedtiles.qrc
-
-CONFIG += qt warn_on console depend_includepath
-
-qtAddLibrary(QtTest)
-
-# install
-target.path = $$[QT_INSTALL_PREFIX]/tests/qtp/qtp_animatedtiles
-sources.files = $$SOURCES $$HEADERS $$RESOURCES $$FORMS qtp_animatedtiles.pro images
-sources.path = $$[QT_INSTALL_PREFIX]/tests/qtp/qtp_animatedtiles
-INSTALLS += target sources
-
-symbian {
-    TARGET.UID3 = 0xED83EC03
-    TARGET.CAPABILITY="ALL -TCB"
-    include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri)
-    RSS_RULES ="group_name=\"QtTests\";" 
-}
--- a/tests/qtp/qtp_animatedtiles/qtp_animatedtiles.qrc	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,11 +0,0 @@
-<!DOCTYPE RCC><RCC version="1.0">
-<qresource>
-    <file>images/Time-For-Lunch-2.jpg</file>
-    <file>images/centered.png</file>
-    <file>images/ellipse.png</file>
-    <file>images/figure8.png</file>
-    <file>images/kinetic.png</file>
-    <file>images/random.png</file>
-    <file>images/tile.png</file>
-</qresource>
-</RCC>
--- a/tests/qtp/qtp_anomaly/qtp_anomaly.pro	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,46 +0,0 @@
-QT += network \
-    webkit
-HEADERS += \
-    src/autotest.h \
-    src/httpserver.h \
-    src/BrowserWindow.h \
-    src/BrowserView.h \
-    src/TitleBar.h \
-    src/HomeView.h \
-    src/AddressBar.h \
-    src/BookmarksView.h \
-    src/flickcharm.h \
-    src/ZoomStrip.h \
-    src/ControlStrip.h
-SOURCES += \
-    src/autotest.cpp \
-    src/httpserver.cpp \
-    src/Main.cpp \
-    src/BrowserWindow.cpp \
-    src/BrowserView.cpp \
-    src/TitleBar.cpp \
-    src/HomeView.cpp \
-    src/AddressBar.cpp \
-    src/BookmarksView.cpp \
-    src/flickcharm.cpp \
-    src/ZoomStrip.cpp \
-    src/ControlStrip.cpp
-RESOURCES += src/anomaly.qrc
-
-CONFIG += qt warn_on console depend_includepath
-
-qtAddLibrary(QtTest)
-
-symbian {
-    TARGET.UID3 = 0xED83EC04
-    include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri)
-    HEADERS += $$QT_SOURCE_TREE/examples/network/qftp/sym_iap_util.h
-    LIBS += -lesock -linsock -lconnmon
-    TARGET.CAPABILITY = NetworkServices
-    TARGET.EPOCHEAPSIZE = 0x20000 0x2000000
-}
-
-target.path = $$[QT_INSTALL_DEMOS]/embedded/qtp_anomaly
-sources.files = $$SOURCES $$HEADERS $$RESOURCES *.pro src/images
-sources.path = $$[QT_INSTALL_DEMOS]/embedded/qtp_anomaly
-INSTALLS += target sources
--- a/tests/qtp/qtp_anomaly/src/AddressBar.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,111 +0,0 @@
-/****************************************************************************
-**
-** 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 demos 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 "AddressBar.h"
-
-#include <QtCore>
-#include <QtGui>
-
-class LineEdit: public QLineEdit
-{
-public:
-    LineEdit(QWidget *parent = 0): QLineEdit(parent) {}
-
-    void paintEvent(QPaintEvent *event) {
-        QLineEdit::paintEvent(event);
-        if (text().isEmpty()) {
-            QPainter p(this);
-            int flags = Qt::AlignLeft | Qt::AlignVCenter;
-            p.setPen(palette().color(QPalette::Disabled, QPalette::Text));
-            p.drawText(rect().adjusted(10, 0, 0, 0), flags, "Enter address or search terms");
-            p.end();
-        }
-    }
-};
-
-AddressBar::AddressBar(QWidget *parent)
-    : QWidget(parent)
-{
-    m_lineEdit = new LineEdit(parent);
-    connect(m_lineEdit, SIGNAL(returnPressed()), SLOT(processAddress()));
-    m_toolButton = new QToolButton(parent);
-    m_toolButton->setText("Go");
-    connect(m_toolButton, SIGNAL(clicked()), SLOT(processAddress()));
-}
-
-QSize AddressBar::sizeHint() const
-{
-    return m_lineEdit->sizeHint();
-}
-
-void AddressBar::processAddress()
-{
-    if (!m_lineEdit->text().isEmpty())
-        emit addressEntered(m_lineEdit->text());
-}
-
-void AddressBar::resizeEvent(QResizeEvent *event)
-{
-    int x, y, w, h;
-
-	Q_UNUSED(event);
-
-    m_toolButton->adjustSize();
-    x = width() - m_toolButton->width();
-    y = 0;
-    w = m_toolButton->width();
-    h = height() - 1;
-    m_toolButton->setGeometry(x, y, w, h);
-    m_toolButton->show();
-
-    x = 0;
-    y = 0;
-    w = width() - m_toolButton->width();
-    h = height() - 1;
-    m_lineEdit->setGeometry(x, y, w, h);
-    m_lineEdit->show();
-}
-
-void AddressBar::focusInEvent(QFocusEvent *event)
-{
-    m_lineEdit->setFocus();
-    QWidget::focusInEvent(event);
-}
--- a/tests/qtp/qtp_anomaly/src/AddressBar.h	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,77 +0,0 @@
-/****************************************************************************
-**
-** 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 demos 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 ADDRESSBAR_H
-#define ADDRESSBAR_H
-
-#include <QWidget>
-#include <QLineEdit>
-
-class QLineEdit;
-class QToolButton;
-
-class AddressBar : public QWidget
-{
-    Q_OBJECT
-
-public:
-    AddressBar(QWidget *parent = 0);
-    QSize sizeHint() const;
-
-	QLineEdit *getLineEdit() { return m_lineEdit; };
-	QToolButton *getToolButton() { return m_toolButton; };
-		
-protected:
-    void resizeEvent(QResizeEvent *event);
-    void focusInEvent(QFocusEvent *event);
-
-signals:
-    void addressEntered(const QString &address);
-
-private slots:
-    void processAddress();
-
-private:
-    QLineEdit *m_lineEdit;
-    QToolButton *m_toolButton;
-};
-
-#endif // ADDRESSBAR_H
--- a/tests/qtp/qtp_anomaly/src/BookmarksView.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,70 +0,0 @@
-/****************************************************************************
-**
-** 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 demos 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 "BookmarksView.h"
-
-#include <QtGui>
-
-BookmarksView::BookmarksView(QWidget *parent)
-    : QWidget(parent)
-{
-    QListWidget *m_iconView = new QListWidget(this);
-    connect(m_iconView, SIGNAL(itemActivated(QListWidgetItem*)), SLOT(activate(QListWidgetItem*)));
-
-    QVBoxLayout *layout = new QVBoxLayout(this);
-    setLayout(layout);
-    layout->addWidget(m_iconView);
-
-    m_iconView->addItem("www.google.com");
-    m_iconView->addItem("qt.nokia.com/doc/4.5");
-    m_iconView->addItem("news.bbc.co.uk/text_only.stm");
-    m_iconView->addItem("mobile.wikipedia.org");
-    m_iconView->addItem("qt.nokia.com");
-    m_iconView->addItem("en.wikipedia.org");
-
-    setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
-}
-
-void BookmarksView::activate(QListWidgetItem *item)
-{
-    QUrl url = item->text().prepend("http://");
-    emit urlSelected(url);
-}
--- a/tests/qtp/qtp_anomaly/src/BookmarksView.h	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,64 +0,0 @@
-/****************************************************************************
-**
-** 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 demos 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 BOOKMARKSVIEW_H
-#define BOOKMARKSVIEW_H
-
-#include <QWidget>
-
-class QListWidgetItem;
-class QUrl;
-
-class BookmarksView : public QWidget
-{
-    Q_OBJECT
-
-public:
-    BookmarksView(QWidget *parent = 0);
-
-signals:
-    void urlSelected(const QUrl &url);
-
-private slots:
-    void activate(QListWidgetItem *item);
-};
-
-#endif // BOOKMARKSVIEW_H
--- a/tests/qtp/qtp_anomaly/src/BrowserView.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,185 +0,0 @@
-/****************************************************************************
-**
-** 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 demos 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 "BrowserView.h"
-
-#include <QtGui>
-#include <QtNetwork>
-#include <QtWebKit>
-
-#include "ControlStrip.h"
-#include "TitleBar.h"
-#include "flickcharm.h"
-#include "ZoomStrip.h"
-
-#if defined (Q_OS_SYMBIAN)
-#include "sym_iap_util.h"
-#endif
-
-BrowserView::BrowserView(QWidget *parent)
-    : QWidget(parent)
-    , m_titleBar(0)
-    , m_webView(0)
-    , m_progress(0)
-    , m_currentZoom(100)
-{
-    m_titleBar = new TitleBar(this);
-    m_webView = new QWebView(this);
-    m_zoomStrip = new ZoomStrip(this);
-    m_controlStrip = new ControlStrip(this);
-
-    m_zoomLevels << 30 << 50 << 67 << 80 << 90;
-    m_zoomLevels << 100;
-    m_zoomLevels << 110 << 120 << 133 << 150 << 170 << 200 << 240 << 300;
-
-    QTimer::singleShot(0, this, SLOT(initialize()));
-}
-
-void BrowserView::initialize()
-{
-    connect(m_zoomStrip, SIGNAL(zoomInClicked()), SLOT(zoomIn()));
-    connect(m_zoomStrip, SIGNAL(zoomOutClicked()), SLOT(zoomOut()));
-
-    connect(m_controlStrip, SIGNAL(menuClicked()), SIGNAL(menuButtonClicked()));
-    connect(m_controlStrip, SIGNAL(backClicked()), m_webView, SLOT(back()));
-    connect(m_controlStrip, SIGNAL(forwardClicked()), m_webView, SLOT(forward()));
-
-    QPalette pal = m_webView->palette();
-    pal.setBrush(QPalette::Base, Qt::white);
-    m_webView->setPalette(pal);
-
-    FlickCharm *flickCharm = new FlickCharm(this);
-    flickCharm->activateOn(m_webView);
-
-    m_webView->setZoomFactor(static_cast<qreal>(m_currentZoom)/100.0);
-    connect(m_webView, SIGNAL(loadStarted()), SLOT(start()));
-    connect(m_webView, SIGNAL(loadProgress(int)), SLOT(setProgress(int)));
-    connect(m_webView, SIGNAL(loadFinished(bool)), SLOT(finish(bool)));
-    connect(m_webView, SIGNAL(urlChanged(QUrl)), SLOT(updateTitleBar()));
-
-    m_webView->setHtml("Will try to load page soon!");
-    m_webView->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
-    m_webView->setFocus();
-#ifdef Q_OS_SYMBIAN
-    QTimer::singleShot(0, this, SLOT(setDefaultIap()));
-#endif
-}
-
-void BrowserView::start()
-{
-    m_progress = 0;
-    updateTitleBar();
-    //m_titleBar->setText(m_webView->url().toString());
-}
-
-void BrowserView::setProgress(int percent)
-{
-    m_progress = percent;
-    updateTitleBar();
-    //m_titleBar->setText(QString("Loading %1%").arg(percent));
-}
-
-void BrowserView::updateTitleBar()
-{
-    QUrl url = m_webView->url();
-    m_titleBar->setHost(url.host());
-    m_titleBar->setTitle(m_webView->title());
-    m_titleBar->setProgress(m_progress);
-}
-
-void BrowserView::finish(bool ok)
-{
-    m_progress = 0;
-    updateTitleBar();
-
-    // TODO: handle error
-    if (!ok) {
-        //m_titleBar->setText("Loading failed.");
-    }
-}
-
-void BrowserView::zoomIn()
-{
-    int i = m_zoomLevels.indexOf(m_currentZoom);
-    Q_ASSERT(i >= 0);
-    if (i < m_zoomLevels.count() - 1)
-        m_currentZoom = m_zoomLevels[i + 1];
-
-    m_webView->setZoomFactor(static_cast<qreal>(m_currentZoom)/100.0);
-}
-
-void BrowserView::zoomOut()
-{
-    int i = m_zoomLevels.indexOf(m_currentZoom);
-    Q_ASSERT(i >= 0);
-    if (i > 0)
-        m_currentZoom = m_zoomLevels[i - 1];
-
-    m_webView->setZoomFactor(static_cast<qreal>(m_currentZoom)/100.0);
-}
-
-void BrowserView::resizeEvent(QResizeEvent *event)
-{
-    QWidget::resizeEvent(event);
-
-    int h1 = m_titleBar->sizeHint().height();
-    int h2 = m_controlStrip->sizeHint().height();
-
-    m_titleBar->setGeometry(0, 0, width(), h1);
-    m_controlStrip->setGeometry(0, height() - h2, width(), h2);
-    m_webView->setGeometry(0, h1, width(), height() - h1);
-
-    int zw = m_zoomStrip->sizeHint().width();
-    int zh = m_zoomStrip->sizeHint().height();
-    m_zoomStrip->move(width() - zw, (height() - zh) / 2);
-}
-#ifdef Q_OS_SYMBIAN
-void BrowserView::setDefaultIap()
-{
-    qt_SetDefaultIap();
-    m_webView->load(QUrl("http://news.bbc.co.uk/text_only.stm"));
-}
-#endif
-
-void BrowserView::navigate(const QUrl &url)
-{
-    m_webView->load(url);
-}
--- a/tests/qtp/qtp_anomaly/src/BrowserView.h	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,92 +0,0 @@
-/****************************************************************************
-**
-** 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 demos 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 BROWSERVIEW_H
-#define BROWSERVIEW_H
-
-#include <QWidget>
-#include <QVector>
-
-class QUrl;
-class QWebView;
-class TitleBar;
-class ControlStrip;
-class ZoomStrip;
-
-class BrowserView : public QWidget
-{
-    Q_OBJECT
-
-public:
-    BrowserView(QWidget *parent = 0);
-
-public slots:
-    void navigate(const QUrl &url);
-    void zoomIn();
-    void zoomOut();
-#ifdef Q_OS_SYMBIAN
-    void setDefaultIap();
-#endif
-
-private slots:
-    void initialize();
-    void start();
-    void setProgress(int percent);
-    void finish(bool);
-    void updateTitleBar();
-
-signals:
-    void menuButtonClicked();
-
-protected:
-    void resizeEvent(QResizeEvent *event);
-
-private:
-    TitleBar *m_titleBar;
-    QWebView *m_webView;
-    ZoomStrip *m_zoomStrip;
-    ControlStrip *m_controlStrip;
-    int m_progress;
-    int m_currentZoom;
-    QVector<int> m_zoomLevels;
-};
-
-#endif // BROWSERVIEW_H
--- a/tests/qtp/qtp_anomaly/src/BrowserWindow.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,189 +0,0 @@
-/****************************************************************************
-**
-** 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 demos 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 "BrowserWindow.h"
-
-#include <QtCore>
-#include <QtGui>
-
-#include "BrowserView.h"
-#include "HomeView.h"
-
-BrowserWindow::BrowserWindow()
-    : QWidget()
-    , m_homeView(0)
-    , m_browserView(0)
-{
-    m_timeLine = new QTimeLine(300, this);
-    m_timeLine->setCurveShape(QTimeLine::EaseInOutCurve);
-    QTimer::singleShot(0, this, SLOT(initialize()));
-}
-
-void BrowserWindow::initialize()
-{
-    m_homeView = new HomeView(this);
-    m_browserView = new BrowserView(this);
-
-    m_homeView->hide();
-    m_homeView->resize(size());
-    m_homeView->move(0, 0);
-
-    m_browserView->hide();
-    m_browserView->resize(size());
-    m_browserView->move(0, 0);
-
-    connect(m_homeView, SIGNAL(addressEntered(QString)), SLOT(gotoAddress(QString)));
-    connect(m_homeView, SIGNAL(urlActivated(QUrl)), SLOT(navigate(QUrl)));
-
-    connect(m_browserView, SIGNAL(menuButtonClicked()), SLOT(showHomeView()));
-
-    m_homeView->setVisible(false);
-    m_browserView->setVisible(false);
-    slide(0);
-
-    connect(m_timeLine, SIGNAL(frameChanged(int)), SLOT(slide(int)));
-}
-
-
-// from Demo Browser
-QUrl guessUrlFromString(const QString &string)
-{
-    QString urlStr = string.trimmed();
-    QRegExp test(QLatin1String("^[a-zA-Z]+\\:.*"));
-
-    // Check if it looks like a qualified URL. Try parsing it and see.
-    bool hasSchema = test.exactMatch(urlStr);
-    if (hasSchema) {
-        QUrl url = QUrl::fromEncoded(urlStr.toUtf8(), QUrl::TolerantMode);
-        if (url.isValid())
-            return url;
-    }
-
-    // Might be a file.
-    if (QFile::exists(urlStr)) {
-        QFileInfo info(urlStr);
-        return QUrl::fromLocalFile(info.absoluteFilePath());
-    }
-
-    // Might be a shorturl - try to detect the schema.
-    if (!hasSchema) {
-        int dotIndex = urlStr.indexOf(QLatin1Char('.'));
-        if (dotIndex != -1) {
-            QString prefix = urlStr.left(dotIndex).toLower();
-            QString schema = (prefix == QString("ftp")) ? prefix.toLatin1() : QString("http");
-            QString location = schema + "://" + urlStr;
-            QUrl url = QUrl::fromEncoded(location.toUtf8(), QUrl::TolerantMode);
-            if (url.isValid())
-                return url;
-        }
-    }
-
-    // Fall back to QUrl's own tolerant parser.
-    QUrl url = QUrl::fromEncoded(string.toUtf8(), QUrl::TolerantMode);
-
-    // finally for cases where the user just types in a hostname add http
-    if (url.scheme().isEmpty())
-        url = QUrl::fromEncoded("http://" + string.toUtf8(), QUrl::TolerantMode);
-    return url;
-}
-
-void BrowserWindow::gotoAddress(const QString &address)
-{
-    m_browserView->navigate(guessUrlFromString(address));
-    showBrowserView();
-}
-
-void BrowserWindow::navigate(const QUrl &url)
-{
-    m_browserView->navigate(url);
-    showBrowserView();
-}
-
-void BrowserWindow::slide(int pos)
-{
-    m_browserView->move(pos, 0);
-    m_homeView->move(pos - width(), 0);
-    m_browserView->show();
-    m_homeView->show();
-}
-
-void BrowserWindow::showHomeView()
-{
-    if (m_timeLine->state() != QTimeLine::NotRunning)
-        return;
-
-    m_timeLine->setFrameRange(0, width());
-    m_timeLine->start();
-    m_homeView->setFocus();
-}
-
-void BrowserWindow::showBrowserView()
-{
-    if (m_timeLine->state() != QTimeLine::NotRunning)
-        return;
-
-    m_timeLine->setFrameRange(width(), 0);
-    m_timeLine->start();
-    m_browserView->setFocus();
-}
-
-void BrowserWindow::keyReleaseEvent(QKeyEvent *event)
-{
-    QWidget::keyReleaseEvent(event);
-
-    if (event->key() == Qt::Key_F3) {
-        if (m_homeView->isVisible())
-            showBrowserView();
-        else
-            showHomeView();
-    }
-}
-
-void BrowserWindow::resizeEvent(QResizeEvent *event)
-{
-		Q_UNUSED(event);
-
-    if (m_homeView)
-        m_homeView->resize(size());
-
-    if (m_browserView)
-        m_browserView->resize(size());
-}
--- a/tests/qtp/qtp_anomaly/src/BrowserWindow.h	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,83 +0,0 @@
-/****************************************************************************
-**
-** 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 demos 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 BROWSERWINDOW_H
-#define BROWSERWINDOW_H
-
-#include <QWidget>
-class QTimeLine;
-class QUrl;
-
-class BrowserView;
-class HomeView;
-
-class BrowserWindow : public QWidget
-{
-    Q_OBJECT
-
-public:
-    BrowserWindow();
-
-    HomeView *getHomeView() { return m_homeView; };
-    BrowserView *getBrowserView() { return m_browserView; };
-    QTimeLine *getTimeLine() { return m_timeLine; };
-
-private slots:
-    void initialize();
-    void navigate(const QUrl &url);
-    void gotoAddress(const QString &address);
-
-public slots:
-    void showBrowserView();
-    void showHomeView();
-    void slide(int);
-
-protected:
-    void keyReleaseEvent(QKeyEvent *event);
-    void resizeEvent(QResizeEvent *event);
-
-private:
-    HomeView *m_homeView;
-    BrowserView *m_browserView;
-    QTimeLine *m_timeLine;
-};
-
-#endif // BROWSERWINDOW_H
--- a/tests/qtp/qtp_anomaly/src/ControlStrip.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,101 +0,0 @@
-/****************************************************************************
-**
-** 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 demos 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 "ControlStrip.h"
-
-#include <QtCore>
-#include <QtGui>
-
-ControlStrip::ControlStrip(QWidget *parent)
-    : QWidget(parent)
-{
-    menuPixmap.load(":/images/edit-find.png");
-    backPixmap.load(":/images/go-previous.png");
-    forwardPixmap.load(":/images/go-next.png");
-}
-
-QSize ControlStrip::sizeHint() const
-{
-    return minimumSizeHint();
-}
-
-QSize ControlStrip::minimumSizeHint() const
-{
-    return QSize(320, 48);
-}
-
-void ControlStrip::mousePressEvent(QMouseEvent *event)
-{
-    int h = height();
-    int x = event->pos().x();
-
-    if (x < h) {
-        emit menuClicked();
-        event->accept();
-        return;
-    }
-
-    if (x > width() - h) {
-        emit forwardClicked();
-        event->accept();
-        return;
-    }
-
-    if ((x < width() - 2 * h) && (x > width() - 3 * h)) {
-        emit backClicked();
-        event->accept();
-        return;
-    }
-}
-
-void ControlStrip::paintEvent(QPaintEvent *event)
-{
-    int h = height();
-    int s = (h - menuPixmap.height()) / 2;
-
-    QPainter p(this);
-    p.fillRect(event->rect(), QColor(32, 32, 32, 192));
-    p.setCompositionMode(QPainter::CompositionMode_SourceOver);
-    p.drawPixmap(s, s, menuPixmap);
-    p.drawPixmap(width() - 3 * h + s, s, backPixmap);
-    p.drawPixmap(width() - h + s, s, forwardPixmap);
-    p.end();
-}
--- a/tests/qtp/qtp_anomaly/src/ControlStrip.h	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,72 +0,0 @@
-/****************************************************************************
-**
-** 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 demos 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 CONTROLSTRIP_H
-#define CONTROLSTRIP_H
-
-#include <QWidget>
-
-class ControlStrip : public QWidget
-{
-    Q_OBJECT
-
-public:
-    ControlStrip(QWidget *parent = 0);
-
-    QSize sizeHint() const;
-    QSize minimumSizeHint() const;
-
-signals:
-    void menuClicked();
-    void backClicked();
-    void forwardClicked();
-
-protected:
-    void paintEvent(QPaintEvent *event);
-    void mousePressEvent(QMouseEvent *event);
-
-private:
-    QPixmap menuPixmap;
-    QPixmap backPixmap;
-    QPixmap forwardPixmap;
-};
-
-#endif // CONTROLSTRIP_H
--- a/tests/qtp/qtp_anomaly/src/HomeView.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,76 +0,0 @@
-/****************************************************************************
-**
-** 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 demos 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 "HomeView.h"
-
-#include <QtCore>
-#include <QtGui>
-
-#include "AddressBar.h"
-#include "BookmarksView.h"
-
-HomeView::HomeView(QWidget *parent)
-    : QWidget(parent)
-    , m_addressBar(0)
-{
-    m_addressBar = new AddressBar(parent);
-    connect(m_addressBar, SIGNAL(addressEntered(QString)), SLOT(gotoAddress(QString)));
-
-    m_bookmarks = new BookmarksView(parent);
-    connect(m_bookmarks, SIGNAL(urlSelected(QUrl)), SIGNAL(urlActivated(QUrl)));
-
-    QVBoxLayout *layout = new QVBoxLayout(this);
-    layout->setMargin(4);
-    layout->setSpacing(4);
-    layout->addWidget(m_addressBar);
-    layout->addWidget(m_bookmarks);
-}
-
-void HomeView::gotoAddress(const QString &address)
-{
-    emit addressEntered(address);
-}
-
-void HomeView::focusInEvent(QFocusEvent *event)
-{
-    m_addressBar->setFocus();
-    QWidget::focusInEvent(event);
-}
--- a/tests/qtp/qtp_anomaly/src/HomeView.h	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,77 +0,0 @@
-/****************************************************************************
-**
-** 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 demos 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 HOMEVIEW_H
-#define HOMEVIEW_H
-
-#include <QWidget>
-
-class QUrl;
-
-class AddressBar;
-class BookmarksView;
-
-class HomeView : public QWidget
-{
-    Q_OBJECT
-
-public:
-    HomeView(QWidget *parent);
-
-    AddressBar * getAddressBar() { return m_addressBar; };
-    BookmarksView *getBookmarks() { return m_bookmarks; };
-
-signals:
-    void urlActivated(const QUrl &url);
-    void addressEntered(const QString &address);
-
-private slots:
-    void gotoAddress(const QString &address);
-
-protected:
-    void focusInEvent(QFocusEvent *event);
-
-private:
-    AddressBar *m_addressBar;
-    BookmarksView *m_bookmarks;
-};
-
-#endif // HOMEVIEW_H
--- a/tests/qtp/qtp_anomaly/src/Main.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,49 +0,0 @@
-/****************************************************************************
-**
-** 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 demos 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 <QtCore>
-#include <QtGui>
-#include <QtWebKit>
-
-#include "BrowserWindow.h"
-#include "autotest.h"
-
-QTEST_MAIN( autoTest )
--- a/tests/qtp/qtp_anomaly/src/TitleBar.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,124 +0,0 @@
-/****************************************************************************
-**
-** 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 demos 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 "TitleBar.h"
-
-#include <QtCore>
-#include <QtGui>
-
-TitleBar::TitleBar(QWidget *parent)
-    : QWidget(parent)
-    , m_progress(0)
-{
-    setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Minimum);
-}
-
-void TitleBar::setHost(const QString &host)
-{
-    m_host = host;
-    update();
-}
-
-void TitleBar::setTitle(const QString &title)
-{
-    m_title = title;
-    update();
-}
-
-void TitleBar::setProgress(int percent)
-{
-    m_progress = percent;
-    update();
-}
-
-QSize TitleBar::sizeHint() const
-{
-    return minimumSizeHint();
-}
-
-QSize TitleBar::minimumSizeHint() const
-{
-    QFontMetrics fm = fontMetrics();
-    return QSize(100, fm.height());
-}
-
-void TitleBar::paintEvent(QPaintEvent *event)
-{
-    QString title = m_host;
-    if (!m_title.isEmpty())
-        title.append(": ").append(m_title);
-
-    QPalette pal = palette();
-    QPainter p(this);
-    p.fillRect(event->rect(), pal.color(QPalette::Highlight));
-
-    if (m_progress > 0) {
-
-        QRect box = rect();
-        box.setLeft(16);
-        box.setWidth(width() - box.left() - 110);
-
-        p.setPen(pal.color(QPalette::HighlightedText));
-        p.setOpacity(0.8);
-        p.drawText(box, Qt::AlignLeft + Qt::AlignVCenter, title);
-
-        int x = width() - 100 - 5;
-        int y = 1;
-        int h = height() - 4;
-
-        p.setOpacity(1.0);
-        p.setBrush(Qt::NoBrush);
-        p.setPen(pal.color(QPalette::HighlightedText));
-        p.drawRect(x, y, 100, h);
-        p.setPen(Qt::NoPen);
-        p.setBrush(pal.color(QPalette::HighlightedText));
-        p.drawRect(x, y, m_progress, h);
-    } else {
-
-        QRect box = rect();
-        box.setLeft(16);
-        box.setWidth(width() - box.left() - 5);
-        p.setPen(pal.color(QPalette::HighlightedText));
-        p.drawText(box, Qt::AlignLeft + Qt::AlignVCenter, title);
-    }
-
-    p.end();
-}
--- a/tests/qtp/qtp_anomaly/src/TitleBar.h	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,70 +0,0 @@
-/****************************************************************************
-**
-** 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 demos 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 TITLEBAR_H
-#define TITLEBAR_H
-
-#include <QWidget>
-
-class TitleBar : public QWidget
-{
-    Q_OBJECT
-
-public:
-    TitleBar(QWidget *parent = 0);
-
-    void setHost(const QString &host);
-    void setTitle(const QString &title);
-    void setProgress(int percent);
-
-    QSize sizeHint() const;
-    QSize minimumSizeHint() const;
-
-protected:
-    void paintEvent(QPaintEvent *event);
-
-private:
-    QString m_host;
-    QString m_title;
-    int m_progress;
-};
-
-#endif // TITLEBAR_H
--- a/tests/qtp/qtp_anomaly/src/ZoomStrip.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,82 +0,0 @@
-/****************************************************************************
-**
-** 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 demos 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 "ZoomStrip.h"
-
-#include <QtCore>
-#include <QtGui>
-
-ZoomStrip::ZoomStrip(QWidget *parent)
-    : QWidget(parent)
-{
-    zoomInPixmap.load(":/images/list-add.png");
-    zoomOutPixmap.load(":/images/list-remove.png");
-}
-
-QSize ZoomStrip::sizeHint() const
-{
-    return minimumSizeHint();
-}
-
-QSize ZoomStrip::minimumSizeHint() const
-{
-    return QSize(48, 96);
-}
-
-void ZoomStrip::mousePressEvent(QMouseEvent *event)
-{
-    if (event->pos().y() < height() / 2)
-        emit zoomInClicked();
-    else
-        emit zoomOutClicked();
-}
-
-void ZoomStrip::paintEvent(QPaintEvent *event)
-{
-    int w = width();
-    int s = (w - zoomInPixmap.width()) / 2;
-
-    QPainter p(this);
-    p.fillRect(event->rect(), QColor(128, 128, 128, 128));
-    p.drawPixmap(s, s, zoomInPixmap);
-    p.drawPixmap(s, s + w, zoomOutPixmap);
-    p.end();
-}
--- a/tests/qtp/qtp_anomaly/src/ZoomStrip.h	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,70 +0,0 @@
-/****************************************************************************
-**
-** 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 demos 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 ZOOMSTRIP_H
-#define ZOOMSTRIP_H
-
-#include <QWidget>
-
-class ZoomStrip : public QWidget
-{
-    Q_OBJECT
-
-public:
-    ZoomStrip(QWidget *parent = 0);
-
-    QSize sizeHint() const;
-    QSize minimumSizeHint() const;
-
-signals:
-    void zoomInClicked();
-    void zoomOutClicked();
-
-protected:
-    void paintEvent(QPaintEvent *event);
-    void mousePressEvent(QMouseEvent *event);
-
-private:
-    QPixmap zoomInPixmap;
-    QPixmap zoomOutPixmap;
-};
-
-#endif // ZOOMSTRIP_H
--- a/tests/qtp/qtp_anomaly/src/anomaly.qrc	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,9 +0,0 @@
-<RCC>
-    <qresource prefix="/" >
-        <file>images/go-next.png</file>
-        <file>images/go-previous.png</file>
-        <file>images/edit-find.png</file>
-        <file>images/list-add.png</file>
-        <file>images/list-remove.png</file>
-    </qresource>
-</RCC>
--- a/tests/qtp/qtp_anomaly/src/autotest.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,213 +0,0 @@
-/****************************************************************************
-**
-** 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.
-**
-** 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 <QTcpServer>
-#include <QTcpSocket>
-#include <QtWebKit>
-
-#include "browserwindow.h"
-#include "addressbar.h"
-#include "homeview.h"
-#include "browserview.h"
-#include "httpserver.h"
-#include "autotest.h"
-
-
-
-
-//
-class serverThread : public QThread
-{
-public:
-    void run();
-};
-
-void serverThread::run()
-{
-   httpServer testServer;
-
-   while ( testServer.isDone() )
-   {
-       QTest::qWait(1000);
-   }
-}
-
-
-//
-// from here normal autotest stuff follows...
-//
-
-
-void autoTest::initTestCase()
-{
-}
-
-void autoTest::testDefaults()
-{
-	BrowserWindow bw;
-	bw.show();
-	
-
-	// Test default values for widget properties
-	QCOMPARE( bw.acceptDrops(), false );
-//	QCOMPARE( bw.hasEditFocus(), false );
-/*
-	QCOMPARE( bw.hasFocus(), false );
-	QCOMPARE( bw.hasMouseTracking(), false );
-	QCOMPARE( bw.isActiveWindow(), false );
-	QCOMPARE( bw.isEnabled(), true );
-	QCOMPARE( bw.isFullScreen(), false );
-	QCOMPARE( bw.isHidden(), false );
-	QCOMPARE( bw.isMaximized(), false );
-	QCOMPARE( bw.isMinimized(), false );
-	QCOMPARE( bw.isModal(), false );
-	QCOMPARE( bw.isVisible(), true );
-	QCOMPARE( bw.isWindow(), true );
-	QCOMPARE( bw.isWindowModified(), false );
-	QCOMPARE( bw.underMouse(), false );
-	QCOMPARE( bw.updatesEnabled(), true );
-*/
-	bw.hide();
-}
-
-void autoTest::testBrowser()
-{
-	BrowserWindow bw;
-	// bw.show();
-    QWebSettings::globalSettings()->setObjectCacheCapacities(128*1024, 1024*1024, 1024*1024);
-    QWebSettings::globalSettings()->setMaximumPagesInCache(3);
-
-    bw.showFullScreen();
-    
-    HomeView *hView = NULL;
-    QList<HomeView *> firstHiew = bw.findChildren<HomeView *>();
-    if ( firstHiew.count() > 0 )
-    	hView = firstHiew.at(0);
-    else
-    	hView = bw.getHomeView();    		
-    QVERIFY( !hView );
-
-    QTest::qWait(2000);
-
-    QList<HomeView *> secHiew = bw.findChildren<HomeView *>();
-    if ( secHiew.count() > 0 )
-    	hView = secHiew.at(0);
-    else
-    	hView = bw.getHomeView();    		
-    QVERIFY( hView );
-
-    BrowserView *bView = NULL;
-    QList<BrowserView *> browView = bw.findChildren<BrowserView *>();
-    QVERIFY( browView.count() > 0 );
-  	bView = browView.at(0);
-    QVERIFY( bView );
-
-    AddressBar *addrBar = NULL;
-    QList<AddressBar *> allBars = hView->findChildren<AddressBar *>();
-    QVERIFY( allBars.count() > 0 );
-    addrBar = allBars.at(0);
-    QVERIFY( addrBar );
-
-    QLineEdit *addrEdit = NULL;
-    QList<QLineEdit *> allLineEds = addrBar->findChildren<QLineEdit *>();
-    if ( allLineEds.count() > 0 )
-    	addrEdit = allLineEds.at(0);
-    else
-    	addrEdit = addrBar->getLineEdit();    		
-    QVERIFY( addrEdit );
-
-    QToolButton *goButton = NULL;
-    QList<QToolButton *> aToolBtn = addrBar->findChildren<QToolButton *>();
-    if ( aToolBtn.count() > 0 )
-    	goButton = aToolBtn.at(0);
-    else
-    	goButton = addrBar->getToolButton();    		
-    QVERIFY( goButton );
-
-    serverThread mojave;
-    mojave.start();
-
-    QTest::qWait(2000);
-    	
-
-	// Fill in actual test set... (not much really)
-	// test at least these;
-  // class BookmarksView : public QWidget
-  // try to click these
-//      QPixmap zoomInPixmap;
-//    QPixmap zoomOutPixmap;
-//    QListWidget *m_iconView = new QListWidget(this);
-// m_toolButton = new QToolButton(parent);
-//    m_toolButton->setText("Go");
-
-    QTest::qWait(3000);
-		addrEdit->clear();
-    addrEdit->setFocus(Qt::OtherFocusReason);
-    QTest::keyClicks( addrEdit, "http://127.0.0.1/index.html" );
-    addrEdit->clearFocus();
-    goButton->click();
-    QTest::qWait(2000);
-
-		addrEdit->clear();
-    addrEdit->setFocus(Qt::OtherFocusReason);
-    QTest::keyClicks( addrEdit, "http://www.example.net" );
-    addrEdit->clearFocus();
-    goButton->click();
-    QTest::qWait(3000);
-
-		if ( mojave.isRunning() )
-			{
-			mojave.quit();
-			QFAIL("GET not received by the stub server.");
-		}
-
-    QTest::qWait(3000);
-
-	bw.showBrowserView();
-    QTest::qWait(2000);
-
-	bw.hide();
-    QTest::qWait(1000);
-    	    	
-	bw.close();
-    QTest::qWait(1000);
-}
--- a/tests/qtp/qtp_anomaly/src/autotest.h	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,62 +0,0 @@
-/****************************************************************************
-**
-** 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.
-**
-** 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 AUTOTEST_H
-#define AUTOTEST_H
-
-#include <QtGui>
-#include <QObject>
-#include <QtTest>
-
-
-class autoTest: public QObject
-{
-	Q_OBJECT
-	
-	void initTestCase();
-	
-	private slots:
-		void testDefaults();
-		void testBrowser();
-};
-	
-#endif
--- a/tests/qtp/qtp_anomaly/src/flickcharm.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,335 +0,0 @@
-/****************************************************************************
-**
-** 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 demos 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 "flickcharm.h"
-
-#include <QAbstractScrollArea>
-#include <QApplication>
-#include <QBasicTimer>
-#include <QEvent>
-#include <QHash>
-#include <QList>
-#include <QMouseEvent>
-#include <QScrollBar>
-#include <QWebFrame>
-#include <QWebView>
-
-#include <QDebug>
-
-struct FlickData {
-    typedef enum { Steady, Pressed, ManualScroll, AutoScroll, Stop } State;
-    State state;
-    QWidget *widget;
-    QPoint pressPos;
-    QPoint offset;
-    QPoint dragPos;
-    QPoint speed;
-    QList<QEvent*> ignored;
-};
-
-class FlickCharmPrivate
-{
-public:
-    QHash<QWidget*, FlickData*> flickData;
-    QBasicTimer ticker;
-};
-
-FlickCharm::FlickCharm(QObject *parent): QObject(parent)
-{
-    d = new FlickCharmPrivate;
-}
-
-FlickCharm::~FlickCharm()
-{
-    delete d;
-}
-
-void FlickCharm::activateOn(QWidget *widget)
-{
-    QAbstractScrollArea *scrollArea = qobject_cast<QAbstractScrollArea*>(widget);
-    if (scrollArea) {
-        scrollArea->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
-        scrollArea->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
-
-        QWidget *viewport = scrollArea->viewport();
-
-        viewport->installEventFilter(this);
-        scrollArea->installEventFilter(this);
-
-        d->flickData.remove(viewport);
-        d->flickData[viewport] = new FlickData;
-        d->flickData[viewport]->widget = widget;
-        d->flickData[viewport]->state = FlickData::Steady;
-
-        return;
-    }
-
-    QWebView *webView = qobject_cast<QWebView*>(widget);
-    if (webView) {
-        QWebFrame *frame = webView->page()->mainFrame();
-        frame->setScrollBarPolicy(Qt::Vertical, Qt::ScrollBarAlwaysOff);
-        frame->setScrollBarPolicy(Qt::Horizontal, Qt::ScrollBarAlwaysOff);
-
-        webView->installEventFilter(this);
-
-        d->flickData.remove(webView);
-        d->flickData[webView] = new FlickData;
-        d->flickData[webView]->widget = webView;
-        d->flickData[webView]->state = FlickData::Steady;
-
-        return;
-    }
-
-    qWarning() << "FlickCharm only works on QAbstractScrollArea (and derived classes)";
-    qWarning() << "or QWebView (and derived classes)";
-}
-
-void FlickCharm::deactivateFrom(QWidget *widget)
-{
-    QAbstractScrollArea *scrollArea = qobject_cast<QAbstractScrollArea*>(widget);
-    if (scrollArea) {
-        QWidget *viewport = scrollArea->viewport();
-
-        viewport->removeEventFilter(this);
-        scrollArea->removeEventFilter(this);
-
-        delete d->flickData[viewport];
-        d->flickData.remove(viewport);
-
-        return;
-    }
-
-    QWebView *webView = qobject_cast<QWebView*>(widget);
-    if (webView) {
-        webView->removeEventFilter(this);
-
-        delete d->flickData[webView];
-        d->flickData.remove(webView);
-
-        return;
-    }
-}
-
-static QPoint scrollOffset(QWidget *widget)
-{
-    int x = 0, y = 0;
-
-    QAbstractScrollArea *scrollArea = qobject_cast<QAbstractScrollArea*>(widget);
-    if (scrollArea) {
-        x = scrollArea->horizontalScrollBar()->value();
-        y = scrollArea->verticalScrollBar()->value();
-    }
-
-    QWebView *webView = qobject_cast<QWebView*>(widget);
-    if (webView) {
-        QWebFrame *frame = webView->page()->mainFrame();
-        x = frame->evaluateJavaScript("window.scrollX").toInt();
-        y = frame->evaluateJavaScript("window.scrollY").toInt();
-    }
-
-    return QPoint(x, y);
-}
-
-static void setScrollOffset(QWidget *widget, const QPoint &p)
-{
-    QAbstractScrollArea *scrollArea = qobject_cast<QAbstractScrollArea*>(widget);
-    if (scrollArea) {
-        scrollArea->horizontalScrollBar()->setValue(p.x());
-        scrollArea->verticalScrollBar()->setValue(p.y());
-    }
-
-    QWebView *webView = qobject_cast<QWebView*>(widget);
-    QWebFrame *frame = webView ? webView->page()->mainFrame() : 0;
-    if (frame)
-        frame->evaluateJavaScript(QString("window.scrollTo(%1,%2);").arg(p.x()).arg(p.y()));
-}
-
-static QPoint deaccelerate(const QPoint &speed, int a = 1, int max = 64)
-{
-    int x = qBound(-max, speed.x(), max);
-    int y = qBound(-max, speed.y(), max);
-    x = (x == 0) ? x : (x > 0) ? qMax(0, x - a) : qMin(0, x + a);
-    y = (y == 0) ? y : (y > 0) ? qMax(0, y - a) : qMin(0, y + a);
-    return QPoint(x, y);
-}
-
-bool FlickCharm::eventFilter(QObject *object, QEvent *event)
-{
-    if (!object->isWidgetType())
-        return false;
-
-    QEvent::Type type = event->type();
-    if (type != QEvent::MouseButtonPress &&
-            type != QEvent::MouseButtonRelease &&
-            type != QEvent::MouseMove)
-        return false;
-
-    QMouseEvent *mouseEvent = 0;
-    switch (event->type()) {
-        case QEvent::MouseButtonPress:
-        case QEvent::MouseButtonRelease:
-        case QEvent::MouseMove:
-            mouseEvent = static_cast<QMouseEvent*>(event);
-            break;
-    }
-
-    if (!mouseEvent || mouseEvent->modifiers() != Qt::NoModifier)
-        return false;
-
-    QWidget *viewport = qobject_cast<QWidget*>(object);
-    FlickData *data = d->flickData.value(viewport);
-    if (!viewport || !data || data->ignored.removeAll(event))
-        return false;
-
-    bool consumed = false;
-    switch (data->state) {
-
-    case FlickData::Steady:
-        if (mouseEvent->type() == QEvent::MouseButtonPress)
-            if (mouseEvent->buttons() == Qt::LeftButton) {
-                consumed = true;
-                data->state = FlickData::Pressed;
-                data->pressPos = mouseEvent->pos();
-                data->offset = scrollOffset(data->widget);
-            }
-        break;
-
-    case FlickData::Pressed:
-        if (mouseEvent->type() == QEvent::MouseButtonRelease) {
-            consumed = true;
-            data->state = FlickData::Steady;
-
-            QMouseEvent *event1 = new QMouseEvent(QEvent::MouseButtonPress,
-                                                  data->pressPos, Qt::LeftButton,
-                                                  Qt::LeftButton, Qt::NoModifier);
-            QMouseEvent *event2 = new QMouseEvent(*mouseEvent);
-
-            data->ignored << event1;
-            data->ignored << event2;
-            QApplication::postEvent(object, event1);
-            QApplication::postEvent(object, event2);
-        }
-        if (mouseEvent->type() == QEvent::MouseMove) {
-            consumed = true;
-            data->state = FlickData::ManualScroll;
-            data->dragPos = QCursor::pos();
-            if (!d->ticker.isActive())
-                d->ticker.start(20, this);
-        }
-        break;
-
-    case FlickData::ManualScroll:
-        if (mouseEvent->type() == QEvent::MouseMove) {
-            consumed = true;
-            QPoint delta = mouseEvent->pos() - data->pressPos;
-            setScrollOffset(data->widget, data->offset - delta);
-        }
-        if (mouseEvent->type() == QEvent::MouseButtonRelease) {
-            consumed = true;
-            data->state = FlickData::AutoScroll;
-        }
-        break;
-
-    case FlickData::AutoScroll:
-        if (mouseEvent->type() == QEvent::MouseButtonPress) {
-            consumed = true;
-            data->state = FlickData::Stop;
-            data->speed = QPoint(0, 0);
-            data->pressPos = mouseEvent->pos();
-            data->offset = scrollOffset(data->widget);
-        }
-        if (mouseEvent->type() == QEvent::MouseButtonRelease) {
-            consumed = true;
-            data->state = FlickData::Steady;
-            data->speed = QPoint(0, 0);
-        }
-        break;
-
-    case FlickData::Stop:
-        if (mouseEvent->type() == QEvent::MouseButtonRelease) {
-            consumed = true;
-            data->state = FlickData::Steady;
-        }
-        if (mouseEvent->type() == QEvent::MouseMove) {
-            consumed = true;
-            data->state = FlickData::ManualScroll;
-            data->dragPos = QCursor::pos();
-            if (!d->ticker.isActive())
-                d->ticker.start(20, this);
-        }
-        break;
-
-    default:
-        break;
-    }
-
-    return consumed;
-}
-
-void FlickCharm::timerEvent(QTimerEvent *event)
-{
-    int count = 0;
-    QHashIterator<QWidget*, FlickData*> item(d->flickData);
-    while (item.hasNext()) {
-        item.next();
-        FlickData *data = item.value();
-
-        if (data->state == FlickData::ManualScroll) {
-            count++;
-            data->speed = QCursor::pos() - data->dragPos;
-            data->dragPos = QCursor::pos();
-        }
-
-        if (data->state == FlickData::AutoScroll) {
-            count++;
-            data->speed = deaccelerate(data->speed);
-            QPoint p = scrollOffset(data->widget);
-            setScrollOffset(data->widget, p - data->speed);
-            if (data->speed == QPoint(0, 0))
-                data->state = FlickData::Steady;
-        }
-    }
-
-    if (!count)
-        d->ticker.stop();
-
-    QObject::timerEvent(event);
-}
--- a/tests/qtp/qtp_anomaly/src/flickcharm.h	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,67 +0,0 @@
-/****************************************************************************
-**
-** 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 demos 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 FLICKCHARM_H
-#define FLICKCHARM_H
-
-#include <QObject>
-
-class FlickCharmPrivate;
-class QWidget;
-
-class FlickCharm: public QObject
-{
-    Q_OBJECT
-public:
-    FlickCharm(QObject *parent = 0);
-    ~FlickCharm();
-    void activateOn(QWidget *widget);
-    void deactivateFrom(QWidget *widget);
-    bool eventFilter(QObject *object, QEvent *event);
-
-protected:
-    void timerEvent(QTimerEvent *event);
-
-private:
-    FlickCharmPrivate *d;
-};
-
-#endif // FLICKCHARM_H
--- a/tests/qtp/qtp_anomaly/src/httpserver.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,172 +0,0 @@
-/****************************************************************************
-**
-** 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.
-**
-** 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 <QTcpServer>
-#include <QTcpSocket>
-
-#include "BrowserWindow.h"
-#include "httpserver.h"
-
-#define HTTP_PORT 80
-
-httpServer::httpServer( QObject *parent  )
-         : QTcpServer( parent )
-{
-    httpSocket = NULL;
-
-    tcpServer = new QTcpServer( /* this */ );
-    not_done = true;
-    bool result = tcpServer->listen(QHostAddress::Any, HTTP_PORT );
-    if ( !result )
-    {
-        delete tcpServer;
-        close();
-        not_done = false;
-        return;
-    }
-    connect(tcpServer, SIGNAL(newConnection()), this, SLOT(handleNewConnection()));
-
-}
-
-httpServer::~httpServer()
-{
-    if ( httpSocket )
-    {
-        httpSocket->disconnect(SIGNAL(readyRead()));
-        httpSocket->disconnect(SIGNAL(error(QAbstractSocket::SocketError)));
-        httpSocket->close();
-        httpSocket->abort();
-        httpSocket->deleteLater();
-        httpSocket = NULL;
-    }
-}
-
-
-bool httpServer::isDone()
-{
-    return not_done;
-}
-void httpServer::handleNewConnection()
-{
-    QTcpSocket *clientConnection = tcpServer->nextPendingConnection();
-    clientConnection->setTextModeEnabled(true);
-
-    if ( !httpSocket )
-    {
-        httpSocket = clientConnection;
-        connect( httpSocket,
-            SIGNAL(readyRead()),
-            this,
-            SLOT(readConnection()));
-        connect(httpSocket, SIGNAL(error(QAbstractSocket::SocketError)),
-             this, SLOT(displayConnectionError(QAbstractSocket::SocketError)));
-    }
-    else
-    {
-        // We already are busy with open connection?!
-        // qDebug() << "Server busy.\n";
-        clientConnection->disconnectFromHost();
-    }
-}
-
-
-void httpServer::displayConnectionError(QAbstractSocket::SocketError /* socketError */ )
-{
-    httpSocket->disconnect(SIGNAL(readyRead()));
-    httpSocket->disconnect(SIGNAL(error(QAbstractSocket::SocketError)));
-    httpSocket->close();
-    httpSocket->abort();
-    httpSocket->deleteLater();
-    httpSocket = NULL;
-}
-
-
-void httpServer::readConnection()
-{
-    while (httpSocket->canReadLine())
-    {
-        char buf[256];
-        qint64 lineLength = httpSocket->readLine(buf, sizeof(buf));
-        if (lineLength != -1)
-        {
-            QString tmpCommand(buf);
-            tmpCommand = tmpCommand.simplified();
-
-            // qDebug() << "Received: '" << buf << "'\n";
-
-            if ( tmpCommand.left(4) == QString("GET ") )
-            {
-                qDebug() << "QTESTWEB: Received GET:" << buf << "\n";
-		            // Craft and send a response
-				        QString answer("HTTP/1.x 200 OK\nDate: Tue, 06 Jul 2004 17:59:22 GMT\n");
-				        answer.append("Expires: Thu, 01 Jan 1970 00:00:00 GMT\n");
-				        answer.append("Cache-Control: private, must-revalidate\n");
-				        answer.append("Via: 1.0 cthulhu\n");
-				        answer.append("Server: Apache/1.3.29 (Unix) PHP/4.3.4\n");
-				        answer.append("X-Powered-By: PHP/4.3.4\n");
-				        answer.append("Set-Cookie: fiwikiSession=a8015bd32eee4e5bd46fd83aea40f159; path=/\n");
-				        answer.append("Vary: Accept-Encoding,Cookie\n");
-				        answer.append("Content-Language: fi\n");
-				        answer.append("Content-Type: text/html; charset=utf-8\n");
-				        answer.append("X-Cache: MISS from wikipedia.org\n");
-				        answer.append("Transfer-Encoding: chunked\n");
-				        answer.append("Connection: keep-alive\n");
-				        httpSocket->write(qPrintable(answer));
-				        QString content("<HTML><HEAD><TITLE>Example Page</TITLE></HEAD>\n");
-				        content.append("<body><p>Empty page sent by test server.</p></BODY></HTML>");
-				        httpSocket->write(qPrintable(content));            
-				        httpSocket->flush();
-
-						    QTest::qWait(200);
-
-				        not_done = false;
-            }
-/*
-            else
-            {
-                qDebug() << "Received unknown:" << buf << "\n";
-            }
-*/            
-        }
-    }
-}
-
--- a/tests/qtp/qtp_anomaly/src/httpserver.h	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,76 +0,0 @@
-/****************************************************************************
-**
-** 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.
-**
-** 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 HTTPSERVER_H
-#define HTTPSERVER_H
-
-#include <QtGui>
-#include <QObject>
-#include <QtTest>
-#include <QAbstractSocket>
-#include <QTcpServer>
-
-
-class httpServer : public QTcpServer // , public QThread
- {
-     Q_OBJECT
-
- public:
-     httpServer( QObject *parent = 0 );
-     ~httpServer();
-
-     bool isDone();
-
-private slots:
-    void handleNewConnection();
-    void readConnection();
-    void displayConnectionError(QAbstractSocket::SocketError socketError);
-
- private:
-    QTcpServer *tcpServer;
-    QTcpSocket *httpSocket;
-
-    bool not_done;
-};
-
-	
-#endif
Binary file tests/qtp/qtp_anomaly/src/images/edit-find.png has changed
Binary file tests/qtp/qtp_anomaly/src/images/go-next.png has changed
Binary file tests/qtp/qtp_anomaly/src/images/go-previous.png has changed
Binary file tests/qtp/qtp_anomaly/src/images/list-add.png has changed
Binary file tests/qtp/qtp_anomaly/src/images/list-remove.png has changed
--- a/tests/qtp/qtp_collidingmice/autotest.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,86 +0,0 @@
-/****************************************************************************
-**
-** 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.
-**
-** 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 "mouse.h"
-#include "autotest.h"
-
-
-void autoTest::initTestCase()
-{
-}
-
-void autoTest::testDefaults()
-{
-	Mouse clock;
-	clock.show();
-/*
-	// Test default values for widget properties
-	QCOMPARE( clock.acceptDrops(), false );
-	QCOMPARE( clock.hasEditFocus(), false );
-	QCOMPARE( clock.hasFocus(), false );
-	QCOMPARE( clock.hasMouseTracking(), false );
-	QCOMPARE( clock.isActiveWindow(), true );
-	QCOMPARE( clock.isEnabled(), true );
-	QCOMPARE( clock.isFullScreen(), false );
-	QCOMPARE( clock.isHidden(), false );
-	QCOMPARE( clock.isMaximized(), false );
-	QCOMPARE( clock.isMinimized(), false );
-	QCOMPARE( clock.isModal(), false );
-	QCOMPARE( clock.isVisible(), true );
-	QCOMPARE( clock.isWindow(), true );
-	QCOMPARE( clock.isWindowModified(), false );
-	QCOMPARE( clock.underMouse(), false );
-	QCOMPARE( clock.updatesEnabled(), true );
-*/
-	clock.hide();
-}
-
-void autoTest::testMouse()
-{
-	Mouse mouse;
-	mouse.show();
-
-	// Fill in actual test set... (not much really)
-
-
-	mouse.hide();
-}
--- a/tests/qtp/qtp_collidingmice/autotest.h	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,62 +0,0 @@
-/****************************************************************************
-**
-** 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.
-**
-** 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 AUTOTEST_H
-#define AUTOTEST_H
-
-#include <QtGui>
-#include <QObject>
-#include <QtTest>
-
-
-class autoTest: public QObject
-{
-	Q_OBJECT
-	
-	void initTestCase();
-	
-	private slots:
-		void testDefaults();
-		void testMouse();
-};
-	
-#endif
Binary file tests/qtp/qtp_collidingmice/images/cheese.jpg has changed
--- a/tests/qtp/qtp_collidingmice/main.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,52 +0,0 @@
-/****************************************************************************
-**
-** 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.
-**
-** 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 <QtGui>
-#include <math.h>
-
-#include "mouse.h"
-#include "autotest.h"
-
-static const int MouseCount = 7;
-
-QTEST_MAIN(autoTest)
-
--- a/tests/qtp/qtp_collidingmice/mice.qrc	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-<RCC>
-    <qresource prefix="/" >
-        <file>images/cheese.jpg</file>
-    </qresource>
-</RCC>
--- a/tests/qtp/qtp_collidingmice/mouse.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,201 +0,0 @@
-/****************************************************************************
-**
-** 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.
-**
-** 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 "mouse.h"
-
-#include <QGraphicsScene>
-#include <QPainter>
-#include <QStyleOption>
-
-#include <math.h>
-
-static const double Pi = 3.14159265358979323846264338327950288419717;
-static double TwoPi = 2.0 * Pi;
-
-static qreal normalizeAngle(qreal angle)
-{
-    while (angle < 0)
-        angle += TwoPi;
-    while (angle > TwoPi)
-        angle -= TwoPi;
-    return angle;
-}
-
-//! [0]
-Mouse::Mouse()
-    : angle(0), speed(0), mouseEyeDirection(0),
-      color(qrand() % 256, qrand() % 256, qrand() % 256)
-{
-    setRotation(qrand() % (360 * 16));
-}
-//! [0]
-
-//! [1]
-QRectF Mouse::boundingRect() const
-{
-    qreal adjust = 0.5;
-    return QRectF(-18 - adjust, -22 - adjust,
-                  36 + adjust, 60 + adjust);
-}
-//! [1]
-
-//! [2]
-QPainterPath Mouse::shape() const
-{
-    QPainterPath path;
-    path.addRect(-10, -20, 20, 40);
-    return path;
-}
-//! [2]
-
-//! [3]
-void Mouse::paint(QPainter *painter, const QStyleOptionGraphicsItem *, QWidget *)
-{
-    // Body
-    painter->setBrush(color);
-    painter->drawEllipse(-10, -20, 20, 40);
-
-    // Eyes
-    painter->setBrush(Qt::white);
-    painter->drawEllipse(-10, -17, 8, 8);
-    painter->drawEllipse(2, -17, 8, 8);
-
-    // Nose
-    painter->setBrush(Qt::black);
-    painter->drawEllipse(QRectF(-2, -22, 4, 4));
-
-    // Pupils
-    painter->drawEllipse(QRectF(-8.0 + mouseEyeDirection, -17, 4, 4));
-    painter->drawEllipse(QRectF(4.0 + mouseEyeDirection, -17, 4, 4));
-
-    // Ears
-    painter->setBrush(scene()->collidingItems(this).isEmpty() ? Qt::darkYellow : Qt::red);
-    painter->drawEllipse(-17, -12, 16, 16);
-    painter->drawEllipse(1, -12, 16, 16);
-
-    // Tail
-    QPainterPath path(QPointF(0, 20));
-    path.cubicTo(-5, 22, -5, 22, 0, 25);
-    path.cubicTo(5, 27, 5, 32, 0, 30);
-    path.cubicTo(-5, 32, -5, 42, 0, 35);
-    painter->setBrush(Qt::NoBrush);
-    painter->drawPath(path);
-}
-//! [3]
-
-//! [4]
-void Mouse::advance(int step)
-{
-    if (!step)
-        return;
-//! [4]
-    // Don't move too far away
-//! [5]
-    QLineF lineToCenter(QPointF(0, 0), mapFromScene(0, 0));
-    if (lineToCenter.length() > 150) {
-        qreal angleToCenter = ::acos(lineToCenter.dx() / lineToCenter.length());
-        if (lineToCenter.dy() < 0)
-            angleToCenter = TwoPi - angleToCenter;
-        angleToCenter = normalizeAngle((Pi - angleToCenter) + Pi / 2);
-
-        if (angleToCenter < Pi && angleToCenter > Pi / 4) {
-            // Rotate left
-            angle += (angle < -Pi / 2) ? 0.25 : -0.25;
-        } else if (angleToCenter >= Pi && angleToCenter < (Pi + Pi / 2 + Pi / 4)) {
-            // Rotate right
-            angle += (angle < Pi / 2) ? 0.25 : -0.25;
-        }
-    } else if (::sin(angle) < 0) {
-        angle += 0.25;
-    } else if (::sin(angle) > 0) {
-        angle -= 0.25;
-//! [5] //! [6]
-    }
-//! [6]
-
-    // Try not to crash with any other mice
-//! [7]
-    QList<QGraphicsItem *> dangerMice = scene()->items(QPolygonF()
-                                                       << mapToScene(0, 0)
-                                                       << mapToScene(-30, -50)
-                                                       << mapToScene(30, -50));
-    foreach (QGraphicsItem *item, dangerMice) {
-        if (item == this)
-            continue;
-        
-        QLineF lineToMouse(QPointF(0, 0), mapFromItem(item, 0, 0));
-        qreal angleToMouse = ::acos(lineToMouse.dx() / lineToMouse.length());
-        if (lineToMouse.dy() < 0)
-            angleToMouse = TwoPi - angleToMouse;
-        angleToMouse = normalizeAngle((Pi - angleToMouse) + Pi / 2);
-
-        if (angleToMouse >= 0 && angleToMouse < Pi / 2) {
-            // Rotate right
-            angle += 0.5;
-        } else if (angleToMouse <= TwoPi && angleToMouse > (TwoPi - Pi / 2)) {
-            // Rotate left
-            angle -= 0.5;
-//! [7] //! [8]
-        }
-//! [8] //! [9]
-    }
-//! [9]
-
-    // Add some random movement
-//! [10]
-    if (dangerMice.size() > 1 && (qrand() % 10) == 0) {
-        if (qrand() % 1)
-            angle += (qrand() % 100) / 500.0;
-        else
-            angle -= (qrand() % 100) / 500.0;
-    }
-//! [10]
-
-//! [11]
-    speed += (-50 + qrand() % 100) / 100.0;
-
-    qreal dx = ::sin(angle) * 10;
-    mouseEyeDirection = (qAbs(dx / 5) < 1) ? 0 : dx / 5;
-
-    setRotation(rotation() + dx);
-    setPos(mapToParent(0, -(3 + sin(speed) * 3)));
-}
-//! [11]
--- a/tests/qtp/qtp_collidingmice/mouse.h	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,69 +0,0 @@
-/****************************************************************************
-**
-** 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.
-**
-** 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 MOUSE_H
-#define MOUSE_H
-
-#include <QGraphicsItem>
-
-//! [0]
-class Mouse : public QGraphicsItem
-{
-public:
-    Mouse();
-
-    QRectF boundingRect() const;
-    QPainterPath shape() const;
-    void paint(QPainter *painter, const QStyleOptionGraphicsItem *option,
-               QWidget *widget);
-
-protected:
-    void advance(int step);
-
-private:
-    qreal angle;
-    qreal speed;
-    qreal mouseEyeDirection;
-    QColor color;
-};
-//! [0]
-
-#endif
--- a/tests/qtp/qtp_collidingmice/qtp_collidingmice.pro	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,27 +0,0 @@
-HEADERS += \
-	autotest.h \
-	mouse.h
-SOURCES += \
-	autotest.cpp \
-	main.cpp \
-        mouse.cpp
-
-RESOURCES += \
-	mice.qrc
-
-CONFIG += qt warn_on console depend_includepath
-
-qtAddLibrary(QtTest)
-
-# install
-target.path = $$[QT_INSTALL_PREFIX]/tests/qtp/collidingmice
-sources.files = $$SOURCES $$HEADERS $$RESOURCES $$FORMS collidingmice.pro images
-sources.path = $$[QT_INSTALL_PREFIX]/tests/qtp/collidingmice
-INSTALLS += target sources
-
-symbian {
-    TARGET.UID3 = 0xED83EC05
-    TARGET.CAPABILITY="ALL -TCB"
-    include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri)
-    RSS_RULES ="group_name=\"QtTests\";" 
-}
--- a/tests/qtp/qtp_masterdetail/albumdetails.xml	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,98 +0,0 @@
-    <archive>
-        <album id="1" >
-            <track number="01" >Humming one of your songs</track>
-            <track number="02" >Are they saying goodbye</track>
-            <track number="03" >On off</track>
-            <track number="04" >I shot my heart</track>
-            <track number="05" >Drowning in Those Eyes</track>
-            <track number="06" >So you did it again</track>
-            <track number="07" >One more time</track>
-            <track number="08" >Headphone silence</track>
-            <track number="09" >What I want</track>
-            <track number="10" >Sleeping by the Fyris River</track>
-            <track number="11" >Wooden Body</track>
-            <track number="12" >Humming one of your songs (encore)</track>
-        </album>
-        <album id="2" >
-            <track number="01" >To let myself go</track>
-            <track number="02" >Rubber and Soul</track>
-            <track number="03" >Balloon ranger</track>
-            <track number="04" >My lover will go</track>
-            <track number="05" >Temporary dive</track>
-            <track number="06" >Laid in earth</track>
-            <track number="07" >This voice</track>
-            <track number="08" >Where friend rhymes with end</track>
-            <track number="09" >Song No.6 feat Ron Sexsmith</track>
-            <track number="10" >The Fight Song</track>
-        </album>
-        <album id="3" >
-            <track number="01" >From Grace</track>
-            <track number="02" >All's not last</track>
-            <track number="03" >That Great October Sound</track>
-            <track number="04" >Life Here Is Gold</track>
-            <track number="05" >Tomorrow Stays The Same</track>
-            <track number="06" >Postulate</track>
-            <track number="07" >Adelaide</track>
-            <track number="08" >John Wayne</track>
-            <track number="09" >Love's Lost</track>
-            <track number="10" >Dreamweaver</track>
-            <track number="11" >Outro</track>
-        </album>
-        <album id="4" >
-            <track number="01" >Rain down on me</track>
-            <track number="02" >Cecilia</track>
-            <track number="03" >Make a mess of yourself</track>
-            <track number="04" >Pale green eyes</track>
-            <track number="05" >Either way I'm gone</track>
-            <track number="06" >Honey</track>
-            <track number="07" >Rise in shame</track>
-            <track number="08" >Stray dogs</track>
-            <track number="09" >The willow</track>
-            <track number="10" >Stay home</track>
-            <track number="11" >Outro</track>
-        </album>
-        <album id="5" >
-        </album>
-        <album id="6" >
-            <track number="01" >Kontroll på kontinentet</track>
-            <track number="02" >Ompa til du dør</track>
-            <track number="03" >Bøn fra helvete</track>
-            <track number="04" >170</track>
-            <track number="05" >Rullett</track>
-            <track number="06" >Dr. Mowinckel</track>
-            <track number="07" >Fra sjåfør til passasjer</track>
-            <track number="08" >Resistansen</track>
-            <track number="09" >Dekk bord</track>
-            <track number="10" >Bak et halleluja</track>
-            <track number="11" >Bris</track>
-            <track number="12" >Mr. Kaizer, hans Constanze og meg</track>
-        </album>
-        <album id="7" >
-            <track number="01" >Di grind</track>
-            <track number="02" >Hevnervals</track>
-            <track number="03" >Evig pint</track>
-            <track number="04" >De involverte</track>
-            <track number="05" >Djevelens orkester</track>
-            <track number="06" >Container</track>
-            <track number="07" >Naade</track>
-            <track number="08" >Min kvite russer</track>
-            <track number="09" >Veterans klage</track>
-            <track number="10" >Til depotet</track>
-            <track number="11" >Salt og pepper</track>
-            <track number="12" >Drøm Hardt (Requiem Part I)</track>
-        </album>
-        <album id="8" >
-            <track number="01" >KGB</track>
-            <track number="02" >Maestro</track>
-            <track number="03" >Knekker deg til sist</track>
-            <track number="04" >Senor Flamingos Adieu</track>
-            <track number="05" >Blitzregn baby</track>
-            <track number="06" >Dieter Meyers Inst.</track>
-            <track number="07" >Christiania</track>
-            <track number="08" >Delikatessen</track>
-            <track number="09" >Jævel av en tango</track>
-            <track number="10" >Papa har lov</track>
-            <track number="11" >Auksjon (i Dieter Meyers hall)</track>
-            <track number="12" >På ditt skift</track>
-        </album>
-    </archive>
--- a/tests/qtp/qtp_masterdetail/autotest.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,191 +0,0 @@
-/****************************************************************************
-**
-** 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.
-**
-** 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 "mainwindow.h"
-#include "autotest.h"
-
-
-void autoTest::initTestCase()
-{
-}
-
-void autoTest::testDefaults()
-{
-    QFile *albumDetails = new QFile("albumdetails.xml");
-
-    MainWindow mw("artists", "albums", albumDetails);
-
-	mw.show();
-
-	// Test default values for widget properties
-	QCOMPARE( mw.acceptDrops(), false );
-	QCOMPARE( mw.hasEditFocus(), false );
-	QCOMPARE( mw.hasFocus(), false );
-	QCOMPARE( mw.hasMouseTracking(), false );
-	QCOMPARE( mw.isActiveWindow(), true );
-	QCOMPARE( mw.isEnabled(), true );
-	QCOMPARE( mw.isFullScreen(), false );
-	QCOMPARE( mw.isHidden(), false );
-	QCOMPARE( mw.isMaximized(), false );
-	QCOMPARE( mw.isMinimized(), false );
-	QCOMPARE( mw.isModal(), false );
-	QCOMPARE( mw.isVisible(), true );
-	QCOMPARE( mw.isWindow(), true );
-	QCOMPARE( mw.isWindowModified(), false );
-	QCOMPARE( mw.underMouse(), false );
-	QCOMPARE( mw.updatesEnabled(), true );
-
-	mw.hide();	
-}
-void autoTest::testMainView()
-{
-    QFile *albumDetails = new QFile("albumdetails.xml");
-    MainWindow mw("artists", "albums", albumDetails);
-
-    mw.show();
-    QComboBox *artv = mw.getArtistView();
-    QTableView *albv = mw.getAlbumView();
-
-    // sanity checks for items in view
-    QVERIFY( artv );
-    QVERIFY( albv );
-
-    // verify that combobox is in default state
-    QCOMPARE( artv->count(), 0 );
-    QCOMPARE( artv->currentIndex(), -1 );
-
-    // verify that albumview shows correct items
-    QTest::mouseClick ( (QWidget *)artv, Qt::LeftButton );
-		QTest::qWait(100);    
-    artv->setCurrentIndex(0);
-    QTest::mouseClick ( (QWidget *)albv, Qt::LeftButton );
-    QTest::qWait(100);    
-    QCOMPARE( artv->currentIndex(), 0 );
-
-    // select one item from the combobox item list
-    // verify that albumview shows correct items
-    QTest::mouseClick ( (QWidget *)artv, Qt::LeftButton );
-		QTest::qWait(100);    
-    artv->setCurrentIndex(2);
-    QTest::mouseClick ( (QWidget *)albv, Qt::LeftButton );
-    QTest::qWait(100);    
-    QCOMPARE( artv->currentIndex(), 2 );
-
-    // select another item from the combobox item list
-    // verify that albumview shows correct items
-    QTest::mouseClick ( (QWidget *)artv, Qt::LeftButton );
-		QTest::qWait(100);    
-    artv->setCurrentIndex(1);
-    QTest::mouseClick ( (QWidget *)albv, Qt::LeftButton );
-    QTest::qWait(100);    
-    QCOMPARE( artv->currentIndex(), 1 );
-
-    mw.hide();	
-}
-
-void autoTest::testAlbumView()
-{
-    QFile *albumDetails = new QFile("albumdetails.xml");
-    MainWindow mw("artists", "albums", albumDetails);
-
-    //mw.show();
-    QTableView *albv = mw.getAlbumView();
-
-    // what is tested here?
-    QVERIFY( albv );
-
-    mw.hide();	
-}
-
-void autoTest::testArtistView()
-{
-    QFile *albumDetails = new QFile("albumdetails.xml");
-    MainWindow mw("artists", "albums", albumDetails);
-
-    //mw.show();
-    QComboBox *artv = mw.getArtistView();
-
-    // what is tested here?
-    QVERIFY( artv );
-
-    mw.hide();	
-}
-
-void autoTest::testTrackList()
-{
-    QFile *albumDetails = new QFile("albumdetails.xml");
-    MainWindow mw("artists", "albums", albumDetails);
-
-    //mw.show();
-    QListWidget *tl = mw.getTrackList();
-    
-    // what is tested here?
-    QVERIFY( tl );
-
-    mw.hide();	
-}
-
-void autoTest::testModel()
-{
-    QFile *albumDetails = new QFile("albumdetails.xml");
-    MainWindow mw("artists", "albums", albumDetails);
-
-    mw.show();
-    QSqlRelationalTableModel *mdl = mw.getModel();
-
-    // what is tested here?
-    // adding more items into model?
-    // saving whole model?
-    // deleting items from model?
-    // reloading whole model?
-
-    QVERIFY( mdl );
-
-    // check the default values
-    /*
-    QCOMPARE( mdl->columnCount(), 2 );
-    QCOMPARE( mdl->rowCount(), 2 );
-    */
-
-    mw.hide();	
-}
-
--- a/tests/qtp/qtp_masterdetail/autotest.h	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,67 +0,0 @@
-/****************************************************************************
-**
-** 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.
-**
-** 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 AUTOTEST_H
-#define AUTOTEST_H
-
-#include <QtGui>
-#include <QObject>
-#include <QtTest>
-
-
-class autoTest: public QObject
-{
-	Q_OBJECT
-	
-	void initTestCase();
-	
-	private slots:
-		void testDefaults();
-		void testMainView();
-		void testAlbumView();
-		void testArtistView();
-		void testTrackList();
-		void testModel();
-		
-};
-	
-#endif
--- a/tests/qtp/qtp_masterdetail/database.h	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,97 +0,0 @@
-/****************************************************************************
-**
-** 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.
-**
-** 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 DATABASE_H
-#define DATABASE_H
-
-#include <QMessageBox>
-#include <QSqlDatabase>
-#include <QSqlError>
-#include <QSqlQuery>
-
-static bool createConnection()
-{
-    QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
-    db.setDatabaseName(":memory:");
-    if (!db.open()) {
-        QMessageBox::critical(0, qApp->tr("Cannot open database"),
-            qApp->tr("Unable to establish a database connection.\n"
-                     "This example needs SQLite support. Please read "
-                     "the Qt SQL driver documentation for information how "
-                     "to build it.\n\n"
-                     "Click Cancel to exit."), QMessageBox::Cancel);
-        return false;
-    }
-
-    QSqlQuery query;
-
-    query.exec("create table artists (id int primary key, "
-                                     "artist varchar(40), "
-                                     "albumcount int)");
-
-    query.exec("insert into artists values(0, '<all>', 0)");
-    query.exec("insert into artists values(1, 'Ane Brun', 2)");
-    query.exec("insert into artists values(2, 'Thomas Dybdahl', 3)");
-    query.exec("insert into artists values(3, 'Kaizers Orchestra', 3)");
-
-    query.exec("create table albums (albumid int primary key, "
-                                     "title varchar(50), "
-                                     "artistid int, "
-                                     "year int)");
-
-    query.exec("insert into albums values(1, 'Spending Time With Morgan', 1, "
-                       "2003)");
-    query.exec("insert into albums values(2, 'A Temporary Dive', 1, 2005)");
-    query.exec("insert into albums values(3, '...The Great October Sound', 2, "
-                       "2002)");
-    query.exec("insert into albums values(4, 'Stray Dogs', 2, 2003)");
-    query.exec("insert into albums values(5, "
-        "'One day you`ll dance for me, New York City', 2, 2004)");
-    query.exec("insert into albums values(6, 'Ompa Til Du D\xf8r', 3, 2001)");
-    query.exec("insert into albums values(7, 'Evig Pint', 3, 2002)");
-    query.exec("insert into albums values(8, 'Maestro', 3, 2005)");
-
-    return true;
-}
-
-#endif
-
-
--- a/tests/qtp/qtp_masterdetail/dialog.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,283 +0,0 @@
-/****************************************************************************
-**
-** 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.
-**
-** 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 "dialog.h"
-
-int uniqueAlbumId;
-int uniqueArtistId;
-
-Dialog::Dialog(QSqlRelationalTableModel *albums, QDomDocument details,
-               QFile *output, QWidget *parent)
-     : QDialog(parent)
-{
-    model = albums;
-    albumDetails = details;
-    outputFile = output;
-
-    QGroupBox *inputWidgetBox = createInputWidgets();
-    QDialogButtonBox *buttonBox = createButtons();
-
-    QVBoxLayout *layout = new QVBoxLayout;
-    layout->addWidget(inputWidgetBox);
-    layout->addWidget(buttonBox);
-    setLayout(layout);
-
-    setWindowTitle(tr("Add Album"));
-}
-
-void Dialog::submit()
-{
-    QString artist = artistEditor->text();
-    QString title = titleEditor->text();
-
-    if (artist.isEmpty() || title.isEmpty()) {
-        QString message(tr("Please provide both the name of the artist "
-                           "and the title of the album."));
-        QMessageBox::information(this, tr("Add Album"), message);
-    } else {
-        int artistId = findArtistId(artist);
-        int albumId = addNewAlbum(title, artistId);
-
-        QStringList tracks;
-        tracks = tracksEditor->text().split(',', QString::SkipEmptyParts);
-        addTracks(albumId, tracks);
-
-        increaseAlbumCount(indexOfArtist(artist));
-        accept();
-    }
-}
-
-int Dialog::findArtistId(const QString &artist)
-{
-    QSqlTableModel *artistModel = model->relationModel(2);
-    int row = 0;
-
-    while (row < artistModel->rowCount()) {
-        QSqlRecord record = artistModel->record(row);
-        if (record.value("artist") == artist)
-            return record.value("id").toInt();
-        else
-            row++;
-    }
-    return addNewArtist(artist);
-}
-
-
-int Dialog::addNewArtist(const QString &name)
-{
-    QSqlTableModel *artistModel = model->relationModel(2);
-    QSqlRecord record;
-
-    int id = generateArtistId();
-
-    QSqlField f1("id", QVariant::Int);
-    QSqlField f2("artist", QVariant::String);
-    QSqlField f3("albumcount", QVariant::Int);
-
-    f1.setValue(QVariant(id));
-    f2.setValue(QVariant(name));
-    f3.setValue(QVariant(0));
-    record.append(f1);
-    record.append(f2);
-    record.append(f3);
-
-    artistModel->insertRecord(-1, record);
-    return id;
-}
-
-int Dialog::addNewAlbum(const QString &title, int artistId)
-{
-    int id = generateAlbumId();
-    QSqlRecord record;
-
-    QSqlField f1("albumid", QVariant::Int);
-    QSqlField f2("title", QVariant::String);
-    QSqlField f3("artistid", QVariant::Int);
-    QSqlField f4("year", QVariant::Int);
-
-    f1.setValue(QVariant(id));
-    f2.setValue(QVariant(title));
-    f3.setValue(QVariant(artistId));
-    f4.setValue(QVariant(yearEditor->value()));
-    record.append(f1);
-    record.append(f2);
-    record.append(f3);
-    record.append(f4);
-
-    model->insertRecord(-1, record);
-    return id;
-}
-
-void Dialog::addTracks(int albumId, QStringList tracks)
-{
-    QDomElement albumNode = albumDetails.createElement("album");
-    albumNode.setAttribute("id", albumId);
-
-    for (int i = 0; i < tracks.count(); i++) {
-        QString trackNumber = QString::number(i);
-        if (i < 10)
-            trackNumber.prepend("0");
-
-        QDomText textNode = albumDetails.createTextNode(tracks.at(i));
-
-        QDomElement trackNode = albumDetails.createElement("track");
-        trackNode.setAttribute("number", trackNumber);
-        trackNode.appendChild(textNode);
-
-        albumNode.appendChild(trackNode);
-    }
-
-    QDomNodeList archive = albumDetails.elementsByTagName("archive");
-    archive.item(0).appendChild(albumNode);
-
-/*
-    The following code is commented out since the example uses an in
-    memory database, i.e., altering the XML file will bring the data
-    out of sync.
-
-    if (!outputFile->open(QIODevice::WriteOnly)) {
-        return;
-    } else {
-        QTextStream stream(outputFile);
-        archive.item(0).save(stream, 4);
-        outputFile->close();
-    }
-*/
-}
-
-void Dialog::increaseAlbumCount(QModelIndex artistIndex)
-{
-    QSqlTableModel *artistModel = model->relationModel(2);
-
-    QModelIndex albumCountIndex;
-    albumCountIndex = artistIndex.sibling(artistIndex.row(), 2);
-
-    int albumCount = albumCountIndex.data().toInt();
-    artistModel->setData(albumCountIndex, QVariant(albumCount + 1));
-}
-
-
-void Dialog::revert()
-{
-    artistEditor->clear();
-    titleEditor->clear();
-    yearEditor->setValue(QDate::currentDate().year());
-    tracksEditor->clear();
-}
-
-QGroupBox *Dialog::createInputWidgets()
-{
-    QGroupBox *box = new QGroupBox(tr("Add Album"));
-
-    QLabel *artistLabel = new QLabel(tr("Artist:"));
-    QLabel *titleLabel = new QLabel(tr("Title:"));
-    QLabel *yearLabel = new QLabel(tr("Year:"));
-    QLabel *tracksLabel = new QLabel(tr("Tracks (separated by comma):"));
-
-    artistEditor = new QLineEdit;
-    titleEditor = new QLineEdit;
-
-    yearEditor = new QSpinBox;
-    yearEditor->setMinimum(1900);
-    yearEditor->setMaximum(QDate::currentDate().year());
-    yearEditor->setValue(yearEditor->maximum());
-    yearEditor->setReadOnly(false);
-
-    tracksEditor = new QLineEdit;
-
-    QGridLayout *layout = new QGridLayout;
-    layout->addWidget(artistLabel, 0, 0);
-    layout->addWidget(artistEditor, 0, 1);
-    layout->addWidget(titleLabel, 1, 0);
-    layout->addWidget(titleEditor, 1, 1);
-    layout->addWidget(yearLabel, 2, 0);
-    layout->addWidget(yearEditor, 2, 1);
-    layout->addWidget(tracksLabel, 3, 0, 1, 2);
-    layout->addWidget(tracksEditor, 4, 0, 1, 2);
-    box->setLayout(layout);
-
-    return box;
-}
-
-QDialogButtonBox *Dialog::createButtons()
-{
-    QPushButton *closeButton = new QPushButton(tr("&Close"));
-    QPushButton *revertButton = new QPushButton(tr("&Revert"));
-    QPushButton *submitButton = new QPushButton(tr("&Submit"));
-
-    closeButton->setDefault(true);
-
-    connect(closeButton, SIGNAL(clicked()), this, SLOT(close()));
-    connect(revertButton, SIGNAL(clicked()), this, SLOT(revert()));
-    connect(submitButton, SIGNAL(clicked()), this, SLOT(submit()));
-
-    QDialogButtonBox *buttonBox = new QDialogButtonBox;
-    buttonBox->addButton(submitButton, QDialogButtonBox::ResetRole);
-    buttonBox->addButton(revertButton, QDialogButtonBox::ResetRole);
-    buttonBox->addButton(closeButton, QDialogButtonBox::RejectRole);
-
-    return buttonBox;
-}
-
-QModelIndex Dialog::indexOfArtist(const QString &artist)
-{
-    QSqlTableModel *artistModel = model->relationModel(2);
-
-    for (int i = 0; i < artistModel->rowCount(); i++) {
-        QSqlRecord record =  artistModel->record(i);
-        if (record.value("artist") == artist)
-            return artistModel->index(i, 1);
-    }
-
-    return QModelIndex();
-}
-
-int Dialog::generateArtistId()
-{
-    uniqueArtistId += 1;
-    return uniqueArtistId;
-}
-
-int Dialog::generateAlbumId()
-{
-    uniqueAlbumId += 1;
-    return uniqueAlbumId;
-}
--- a/tests/qtp/qtp_masterdetail/dialog.h	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,83 +0,0 @@
-/****************************************************************************
-**
-** 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.
-**
-** 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 DIALOG_H
-#define DIALOG_H
-
-#include <QtGui>
-#include <QtSql>
-#include <QtXml>
-
-class Dialog : public QDialog
-{
-    Q_OBJECT
-
-public:
-    Dialog(QSqlRelationalTableModel *albums, QDomDocument details,
-           QFile *output, QWidget *parent = 0);
-
-private slots:
-    void revert();
-    void submit();
-
-private:
-    int addNewAlbum(const QString &title, int artistId);
-    int addNewArtist(const QString &name);
-    void addTracks(int albumId, QStringList tracks);
-    QDialogButtonBox *createButtons();
-    QGroupBox *createInputWidgets();
-    int findArtistId(const QString &artist);
-    int generateAlbumId();
-    int generateArtistId();
-    void increaseAlbumCount(QModelIndex artistIndex);
-    QModelIndex indexOfArtist(const QString &artist);
-
-    QSqlRelationalTableModel *model;
-    QDomDocument albumDetails;
-    QFile *outputFile;
-
-    QLineEdit *artistEditor;
-    QLineEdit *titleEditor;
-    QSpinBox *yearEditor;
-    QLineEdit *tracksEditor;
-};
-
-#endif
Binary file tests/qtp/qtp_masterdetail/images/icon.png has changed
Binary file tests/qtp/qtp_masterdetail/images/image.png has changed
--- a/tests/qtp/qtp_masterdetail/main.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,50 +0,0 @@
-/****************************************************************************
-**
-** 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.
-**
-** 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>
-#include <QtGui>
-#include <QtTest>
-#include "database.h"
-#include "mainwindow.h"
-#include "autotest.h"
-
-
-QTEST_MAIN(autoTest)
--- a/tests/qtp/qtp_masterdetail/mainwindow.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,429 +0,0 @@
-/****************************************************************************
-**
-** 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.
-**
-** 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 "mainwindow.h"
-#include "dialog.h"
-
-#include <QtGui>
-#include <QtSql>
-#include <QtXml>
-
-extern int uniqueAlbumId;
-extern int uniqueArtistId;
-
-MainWindow::MainWindow(const QString &artistTable, const QString &albumTable,
-                       QFile *albumDetails, QWidget *parent)
-     : QMainWindow(parent)
-{
-    file = albumDetails;
-    readAlbumData();
-
-    model = new QSqlRelationalTableModel(this);
-    model->setTable(albumTable);
-    model->setRelation(2, QSqlRelation(artistTable, "id", "artist"));
-    model->select();
-
-    QGroupBox *artists = createArtistGroupBox();
-    QGroupBox *albums = createAlbumGroupBox();
-    QGroupBox *details = createDetailsGroupBox();
-
-    artistView->setCurrentIndex(0);
-    uniqueAlbumId = model->rowCount();
-    uniqueArtistId = artistView->count();
-
-    connect(model, SIGNAL(rowsInserted(QModelIndex, int, int)),
-            this, SLOT(updateHeader(QModelIndex, int, int)));
-    connect(model, SIGNAL(rowsRemoved(QModelIndex, int, int)),
-            this, SLOT(updateHeader(QModelIndex, int, int)));
-
-    QGridLayout *layout = new QGridLayout;
-    layout->addWidget(artists, 0, 0);
-    layout->addWidget(albums, 1, 0);
-    layout->addWidget(details, 0, 1, 2, 1);
-    layout->setColumnStretch(1, 1);
-    layout->setColumnMinimumWidth(0, 500);
-
-    QWidget *widget = new QWidget;
-    widget->setLayout(layout);
-    setCentralWidget(widget);
-    createMenuBar();
-
-    showImageLabel();
-    resize(850, 400);
-    setWindowTitle(tr("Music Archive"));
-}
-
-void MainWindow::changeArtist(int row)
-{
-    if (row > 0) {
-        QModelIndex index = model->relationModel(2)->index(row, 1);
-        model->setFilter("artist = '" + index.data().toString() + '\'') ;
-        showArtistProfile(index);
-    } else if (row == 0) {
-        model->setFilter(QString());
-        showImageLabel();
-    } else {
-        return;
-    }
-}
-
-void MainWindow::showArtistProfile(QModelIndex index)
-{
-    QSqlRecord record = model->relationModel(2)->record(index.row());
-
-    QString name = record.value("artist").toString();
-    QString count = record.value("albumcount").toString();
-    profileLabel->setText(tr("Artist : %1 \n" \
-                             "Number of Albums: %2").arg(name).arg(count));
-
-    profileLabel->show();
-    iconLabel->show();
-
-    titleLabel->hide();
-    trackList->hide();
-    imageLabel->hide();
-}
-
-void MainWindow::showAlbumDetails(QModelIndex index)
-{
-    QSqlRecord record = model->record(index.row());
-
-    QString artist = record.value("artist").toString();
-    QString title = record.value("title").toString();
-    QString year = record.value("year").toString();
-    QString albumId = record.value("albumid").toString();
-
-    showArtistProfile(indexOfArtist(artist));
-    titleLabel->setText(tr("Title: %1 (%2)").arg(title).arg(year));
-    titleLabel->show();
-
-    QDomNodeList albums = albumData.elementsByTagName("album");
-    for (int i = 0; i < albums.count(); i++) {
-        QDomNode album = albums.item(i);
-        if (album.toElement().attribute("id") == albumId) {
-            getTrackList(album.toElement());
-            break;
-        }
-    }
-    if (!trackList->count() == 0)
-        trackList->show();
-}
-
-void MainWindow::getTrackList(QDomNode album)
-{
-    trackList->clear();
-
-    QDomNodeList tracks = album.childNodes();
-    QDomNode track;
-    QString trackNumber;
-
-    for (int j = 0; j < tracks.count(); j++) {
-
-        track = tracks.item(j);
-        trackNumber = track.toElement().attribute("number");
-
-        QListWidgetItem *item = new QListWidgetItem(trackList);
-        item->setText(trackNumber + ": " + track.toElement().text());
-    }
-}
-
-void MainWindow::addAlbum()
-{
-    Dialog *dialog = new Dialog(model, albumData, file, this);
-    int accepted = dialog->exec();
-
-    if (accepted == 1) {
-        int lastRow = model->rowCount() - 1;
-        albumView->selectRow(lastRow);
-        albumView->scrollToBottom();
-        showAlbumDetails(model->index(lastRow, 0));
-    }
-}
-
-void MainWindow::deleteAlbum()
-{
-    QModelIndexList selection = albumView->selectionModel()->selectedRows(0);
-
-    if (!selection.empty()) {
-        QModelIndex idIndex = selection.at(0);
-        int id = idIndex.data().toInt();
-        QString title = idIndex.sibling(idIndex.row(), 1).data().toString();
-        QString artist = idIndex.sibling(idIndex.row(), 2).data().toString();
-
-        QMessageBox::StandardButton button;
-        button = QMessageBox::question(this, tr("Delete Album"),
-                                       QString(tr("Are you sure you want to " \
-                                                  "delete '%1' by '%2'?"))
-                                              .arg(title).arg(artist),
-                                       QMessageBox::Yes | QMessageBox::No);
-
-        if (button == QMessageBox::Yes) {
-            removeAlbumFromFile(id);
-            removeAlbumFromDatabase(idIndex);
-            decreaseAlbumCount(indexOfArtist(artist));
-
-            showImageLabel();
-        }
-    } else {
-        QMessageBox::information(this, tr("Delete Album"),
-                                 tr("Select the album you want to delete."));
-    }
-}
-
-void MainWindow::removeAlbumFromFile(int id)
-{
-
-    QDomNodeList albums = albumData.elementsByTagName("album");
-
-    for (int i = 0; i < albums.count(); i++) {
-        QDomNode node = albums.item(i);
-        if (node.toElement().attribute("id").toInt() == id) {
-            albumData.elementsByTagName("archive").item(0).removeChild(node);
-            break;
-        }
-    }
-/*
-    The following code is commented out since the example uses an in
-    memory database, i.e., altering the XML file will bring the data
-    out of sync.
-
-    if (!file->open(QIODevice::WriteOnly)) {
-        return;
-    } else {
-        QTextStream stream(file);
-        albumData.elementsByTagName("archive").item(0).save(stream, 4);
-        file->close();
-    }
-*/
-}
-
-void MainWindow::removeAlbumFromDatabase(QModelIndex index)
-{
-    model->removeRow(index.row());
-}
-
-void MainWindow::decreaseAlbumCount(QModelIndex artistIndex)
-{
-    int row = artistIndex.row();
-    QModelIndex albumCountIndex = artistIndex.sibling(row, 2);
-    int albumCount = albumCountIndex.data().toInt();
-
-    QSqlTableModel *artists = model->relationModel(2);
-
-    if (albumCount == 1) {
-        artists->removeRow(row);
-        showImageLabel();
-    } else {
-        artists->setData(albumCountIndex, QVariant(albumCount - 1));
-    }
-}
-
-void MainWindow::readAlbumData()
-{
-    if (!file->open(QIODevice::ReadOnly))
-        return;
-
-    if (!albumData.setContent(file)) {
-        file->close();
-        return;
-    }
-    file->close();
-}
-
-QGroupBox* MainWindow::createArtistGroupBox()
-{
-    artistView = new QComboBox;
-    artistView->setModel(model->relationModel(2));
-    artistView->setModelColumn(1);
-
-    connect(artistView, SIGNAL(currentIndexChanged(int)),
-            this, SLOT(changeArtist(int)));
-
-    QGroupBox *box = new QGroupBox(tr("Artist"));
-
-    QGridLayout *layout = new QGridLayout;
-    layout->addWidget(artistView, 0, 0);
-    box->setLayout(layout);
-
-    return box;
-}
-
-QGroupBox* MainWindow::createAlbumGroupBox()
-{
-    QGroupBox *box = new QGroupBox(tr("Album"));
-
-    albumView = new QTableView;
-    albumView->setEditTriggers(QAbstractItemView::NoEditTriggers);
-    albumView->setSortingEnabled(true);
-    albumView->setSelectionBehavior(QAbstractItemView::SelectRows);
-    albumView->setSelectionMode(QAbstractItemView::SingleSelection);
-    albumView->setShowGrid(false);
-    albumView->verticalHeader()->hide();
-    albumView->setAlternatingRowColors(true);
-    albumView->setModel(model);
-    adjustHeader();
-
-    QLocale locale = albumView->locale();
-    locale.setNumberOptions(QLocale::OmitGroupSeparator);
-    albumView->setLocale(locale);
-
-    connect(albumView, SIGNAL(clicked(QModelIndex)),
-            this, SLOT(showAlbumDetails(QModelIndex)));
-    connect(albumView, SIGNAL(activated(QModelIndex)),
-            this, SLOT(showAlbumDetails(QModelIndex)));
-
-    QVBoxLayout *layout = new QVBoxLayout;
-    layout->addWidget(albumView, 0, 0);
-    box->setLayout(layout);
-
-    return box;
-}
-
-QGroupBox* MainWindow::createDetailsGroupBox()
-{
-    QGroupBox *box = new QGroupBox(tr("Details"));
-
-    profileLabel = new QLabel;
-    profileLabel->setWordWrap(true);
-    profileLabel->setAlignment(Qt::AlignBottom);
-
-    titleLabel = new QLabel;
-    titleLabel->setWordWrap(true);
-    titleLabel->setAlignment(Qt::AlignBottom);
-
-    iconLabel = new QLabel();
-    iconLabel->setAlignment(Qt::AlignBottom | Qt::AlignRight);
-    iconLabel->setPixmap(QPixmap(":/images/icon.png"));
-
-    imageLabel = new QLabel;
-    imageLabel->setWordWrap(true);
-    imageLabel->setAlignment(Qt::AlignCenter);
-    imageLabel->setPixmap(QPixmap(":/images/image.png"));
-
-    trackList = new QListWidget;
-
-    QGridLayout *layout = new QGridLayout;
-    layout->addWidget(imageLabel, 0, 0, 3, 2);
-    layout->addWidget(profileLabel, 0, 0);
-    layout->addWidget(iconLabel, 0, 1);
-    layout->addWidget(titleLabel, 1, 0, 1, 2);
-    layout->addWidget(trackList, 2, 0, 1, 2);
-    layout->setRowStretch(2, 1);
-    box->setLayout(layout);
-
-    return box;
-}
-
-void MainWindow::createMenuBar()
-{
-    QAction *addAction = new QAction(tr("&Add album..."), this);
-    QAction *deleteAction = new QAction(tr("&Delete album..."), this);
-    QAction *quitAction = new QAction(tr("&Quit"), this);
-    QAction *aboutAction = new QAction(tr("&About"), this);
-    QAction *aboutQtAction = new QAction(tr("About &Qt"), this);
-
-    addAction->setShortcut(tr("Ctrl+A"));
-    deleteAction->setShortcut(tr("Ctrl+D"));
-    quitAction->setShortcuts(QKeySequence::Quit);
-
-    QMenu *fileMenu = menuBar()->addMenu(tr("&File"));
-    fileMenu->addAction(addAction);
-    fileMenu->addAction(deleteAction);
-    fileMenu->addSeparator();
-    fileMenu->addAction(quitAction);
-
-    QMenu *helpMenu = menuBar()->addMenu(tr("&Help"));
-    helpMenu->addAction(aboutAction);
-    helpMenu->addAction(aboutQtAction);
-
-    connect(addAction, SIGNAL(triggered(bool)), this, SLOT(addAlbum()));
-    connect(deleteAction, SIGNAL(triggered(bool)), this, SLOT(deleteAlbum()));
-    connect(quitAction, SIGNAL(triggered(bool)), this, SLOT(close()));
-    connect(aboutAction, SIGNAL(triggered(bool)), this, SLOT(about()));
-    connect(aboutQtAction, SIGNAL(triggered(bool)), qApp, SLOT(aboutQt()));
-}
-
-void MainWindow::showImageLabel()
-{
-    profileLabel->hide();
-    titleLabel->hide();
-    iconLabel->hide();
-    trackList->hide();
-
-    imageLabel->show();
-}
-
-QModelIndex MainWindow::indexOfArtist(const QString &artist)
-{
-    QSqlTableModel *artistModel = model->relationModel(2);
-
-    for (int i = 0; i < artistModel->rowCount(); i++) {
-        QSqlRecord record =  artistModel->record(i);
-        if (record.value("artist") == artist)
-            return artistModel->index(i, 1);
-    }
-    return QModelIndex();
-}
-
-void MainWindow::updateHeader(QModelIndex, int, int)
-{
-    adjustHeader();
-}
-
-void MainWindow::adjustHeader()
-{
-    albumView->hideColumn(0);
-    albumView->resizeColumnToContents(2);
-    albumView->resizeColumnToContents(3);
-}
-
-void MainWindow::about()
-{
-    QMessageBox::about(this, tr("About Music Archive"),
-            tr("<p>The <b>Music Archive</b> example shows how to present "
-               "data from different data sources in the same application. "
-               "The album titles, and the corresponding artists and release dates, "
-               "are kept in a database, while each album's tracks are stored "
-               "in an XML file. </p><p>The example also shows how to add as "
-               "well as remove data from both the database and the "
-               "associated XML file using the API provided by the QtSql and "
-               "QtXml modules, respectively.</p>"));
-}
--- a/tests/qtp/qtp_masterdetail/mainwindow.h	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,110 +0,0 @@
-/****************************************************************************
-**
-** 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.
-**
-** 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 MAINWINDOW_H
-#define MAINWINDOW_H
-
-#include <QDomDocument>
-#include <QMainWindow>
-#include <QModelIndex>
-
-QT_BEGIN_NAMESPACE
-class QComboBox;
-class QFile;
-class QGroupBox;
-class QLabel;
-class QListWidget;
-class QSqlRelationalTableModel;
-class QTableView;
-QT_END_NAMESPACE
-
-class MainWindow : public QMainWindow
-{
-    Q_OBJECT
-
-public:
-    MainWindow(const QString &artistTable, const QString &albumTable,
-               QFile *albumDetails, QWidget *parent = 0);
-
-    // for autotest set
-    QTableView *getAlbumView() { return albumView; };
-    QComboBox *getArtistView() { return artistView; };
-    QListWidget *getTrackList() { return trackList; };
-    QSqlRelationalTableModel *getModel() { return model; } ;
-    
-private slots:
-    void about();
-    void addAlbum();
-    void changeArtist(int row);
-    void deleteAlbum();
-    void showAlbumDetails(QModelIndex index);
-    void showArtistProfile(QModelIndex index);
-    void updateHeader(QModelIndex, int, int);
-
-private:
-    void adjustHeader();
-    QGroupBox *createAlbumGroupBox();
-    QGroupBox *createArtistGroupBox();
-    QGroupBox *createDetailsGroupBox();
-    void createMenuBar();
-    void decreaseAlbumCount(QModelIndex artistIndex);
-    void getTrackList(QDomNode album);
-    QModelIndex indexOfArtist(const QString &artist);
-    void readAlbumData();
-    void removeAlbumFromDatabase(QModelIndex album);
-    void removeAlbumFromFile(int id);
-    void showImageLabel();
-
-    QTableView *albumView;
-    QComboBox *artistView;
-    QListWidget *trackList;
-
-    QLabel *iconLabel;
-    QLabel *imageLabel;
-    QLabel *profileLabel;
-    QLabel *titleLabel;
-
-    QDomDocument albumData;
-    QFile *file;
-    QSqlRelationalTableModel *model;
-};
-
-#endif
--- a/tests/qtp/qtp_masterdetail/qtp_masterdetail.pro	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,30 +0,0 @@
-
-HEADERS   = autotest.h \
-            database.h \
-            dialog.h \
-            mainwindow.h
-RESOURCES = qtp_masterdetail.qrc
-SOURCES   = autotest.cpp \
-            dialog.cpp \
-            main.cpp \
-            mainwindow.cpp
-
-QT += sql
-QT += xml
-
-CONFIG += qt warn_on console depend_includepath
-
-qtAddLibrary(QtTest)
-
-# install
-target.path = $$[QT_INSTALL_PREFIX]/tests/qtp/qtp_masterdetail
-sources.files = $$SOURCES *.h $$RESOURCES $$FORMS qtp_masterdetail.pro *.xml images
-sources.path = $$[QT_INSTALL_PREFIX]/tests/qtp/qtp_masterdetail
-INSTALLS += target sources
-
-symbian {
-    TARGET.UID3 = 0xED83EC07
-    TARGET.CAPABILITY="ALL -TCB"
-    include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri)
-    RSS_RULES ="group_name=\"QtTests\";" 
-}
--- a/tests/qtp/qtp_masterdetail/qtp_masterdetail.qrc	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,6 +0,0 @@
-<!DOCTYPE RCC><RCC version="1.0">
- <qresource>
-    <file>images/icon.png</file>
-    <file>images/image.png</file>
- </qresource>
-</RCC>
--- a/tests/qtp/qtp_previewer/autotest.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,263 +0,0 @@
-/****************************************************************************
-**
-** 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.
-**
-** 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 "mainwindow.h"
-#include "autotest.h"
-
-
- class aboutThread : public QThread
- {
- public:
-     void run();
-     void setMainWindow(MainWindow *aPtr) { iPtr = aPtr; };
- private:
-     MainWindow *iPtr;
-
- };
-
- void aboutThread::run()
- {
-     qDebug() << "entered aboutThread";
-        QTest::qWait(500);
-        QList<QMessageBox *> allDialogs = iPtr->findChildren<QMessageBox *>();
-        QVERIFY( !allDialogs.isEmpty() );
-
-        QPushButton * okButton;
-        QList<QPushButton *> allPButtons = allDialogs.at(0)->findChildren<QPushButton *>();
-        QVERIFY( allPButtons.count() == 1 );
-
-        okButton = allPButtons.at(0);
-
-        QVERIFY(okButton);
-        okButton->click();
-
-     qDebug() << "exit aboutThread";
- }
-
- class openUrlThread : public QThread
- {
- public:
-     void run();
-     void setMainWindow(MainWindow *aPtr) { iPtr = aPtr; };
- private:
-     MainWindow *iPtr;
-
- };
-
- void openUrlThread::run()
- {
-        QTest::qWait(500);
-        QList<QInputDialog *> allDialogs = iPtr->findChildren<QInputDialog *>();
-        QVERIFY( allDialogs.count() == 1 );
-
-        QPushButton * cancelButton;
-        QPushButton * okButton;
-        QList<QPushButton *> allPButtons = allDialogs.at(0)->findChildren<QPushButton *>();
-        QVERIFY( allPButtons.count() == 2 );
-
-        for ( int i = 0; i < allPButtons.count(); i++)
-        {
-            if ( allPButtons.at(i)->text() == QString("OK") )
-            {
-                okButton = allPButtons.at(i);
-            }
-            else if ( allPButtons.at(i)->text() == QString("Cancel") )
-            {
-                cancelButton = allPButtons.at(i);
-            }
-            else
-            {
-                QFAIL("This test application does not handle localised texts!");
-            }
-        }
-        QVERIFY(okButton);
-        QVERIFY(cancelButton);
-
-        QList<QLineEdit *> allLineEdits = allDialogs.at(0)->findChildren<QLineEdit *>();
-        QVERIFY( allLineEdits.count() == 1 );
-        QCOMPARE( allLineEdits.at(0)->text(), QString("http://") );
-
-        QTest::qWait(100);
-        allLineEdits.at(0)->setText(QString("http://www.google.fi"));
-
-        QCOMPARE( allLineEdits.at(0)->text(), QString("http://www.google.fi") );
-        QTest::qWait(100);
-
-        cancelButton->click();
- }
-
-void autoTest::initTestCase()
-{
-}
-
-void autoTest::testDefaults()
-{
-	MainWindow mw;
-
-	mw.show();
-
-	// Test default values for widget properties
-//      QCOMPARE( mw.acceptDrops(), false );
-//	QCOMPARE( mw.hasEditFocus(), false );
-	QCOMPARE( mw.hasFocus(), false );
-	QCOMPARE( mw.hasMouseTracking(), false );
-	QCOMPARE( mw.isActiveWindow(), true );
-	QCOMPARE( mw.isEnabled(), true );
-	QCOMPARE( mw.isFullScreen(), false );
-	QCOMPARE( mw.isHidden(), false );
-	QCOMPARE( mw.isMaximized(), false );
-	QCOMPARE( mw.isMinimized(), false );
-	QCOMPARE( mw.isModal(), false );
-	QCOMPARE( mw.isVisible(), true );
-	QCOMPARE( mw.isWindow(), true );
-	QCOMPARE( mw.isWindowModified(), false );
-	QCOMPARE( mw.underMouse(), false );
-	QCOMPARE( mw.updatesEnabled(), true );
-	
-	mw.hide();
-}
-
-void autoTest::testMainWindow()
-{
-        aboutThread executioner;
-        openUrlThread disruptor;
-        MainWindow mw;
-        mw.show();
-
-        QList<Previewer *> subObjects = mw.findChildren<Previewer *>();
-        QVERIFY( subObjects.count() == 1 );
-        Previewer *prev = subObjects.at(0);
-
-	QVERIFY( prev );
-
-        // Menu items to be tested initiated
-        QMenu *filemenu;
-        QMenu *helpmenu;
-        QList<QMenu *> menuObjects = mw.findChildren<QMenu *>();
-        QVERIFY( menuObjects.count() == 2 );
-
-        for ( int i = 0; i < menuObjects.count(); i++)
-        {
-            if ( menuObjects.at(i)->title() == QString("&File") )
-            {
-                filemenu = menuObjects.at(i);
-            }
-            else if ( menuObjects.at(i)->title() == QString("&Help") )
-            {
-                helpmenu = menuObjects.at(i);
-            }
-            else
-            {
-                QFAIL("This test application does not handle localisated text items!");
-            }
-        }
-
-        QVERIFY( filemenu );
-        QVERIFY( !filemenu->isEmpty() );
-        QCOMPARE( filemenu->title(), QString("&File") );
-
-        QVERIFY( helpmenu );
-        QVERIFY( !helpmenu->isEmpty() );
-        QCOMPARE( helpmenu->title(), QString("&Help") );
-
-        QAction *openUrl;
-        QAction *about;
-        QList<QAction *> actionObjects = mw.findChildren<QAction *>();
-
-        QCOMPARE(actionObjects.count(), 9);
-
-        for ( int i = 0; i < actionObjects.count(); i++)
-        {
-            if ( actionObjects.at(i)->text() == QString("&Open URL...") )
-            {
-                openUrl = actionObjects.at(i);
-            }
-            else if ( actionObjects.at(i)->text() == QString("&About") )
-            {
-                about = actionObjects.at(i);
-            }
-            else
-            {
-                // no test actions for these QACTION items, yet
-            }
-        }
-        QTest::qWait(1000);
-
-/*  this part doesn't work yet, investigation underway...
-        filemenu->show();
-        QTest::qWait(500);
-
-        executioner.setMainWindow(&mw);
-        executioner.start();
-
-        about->trigger();
-        QTest::qWait(3000);
-*/
-
-        filemenu->show();
-        QTest::qWait(500);
-
-        disruptor.setMainWindow(&mw);
-        disruptor.start();
-
-        openUrl->trigger();
-        QTest::qWait(1000);
-
-        mw.hide();
-}
-
-void autoTest::testPreviewer()
-{
-	MainWindow mw;
-
-	mw.show();
-
-        // What to test here?
-        QList<Previewer *> subObjects = mw.findChildren<Previewer *>();
-        QVERIFY( subObjects.count() == 1 );
-        Previewer *prev = subObjects.at(0);
-
-	QVERIFY( prev );
-
-        mw.hide();
-}
-
--- a/tests/qtp/qtp_previewer/autotest.h	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,63 +0,0 @@
-/****************************************************************************
-**
-** 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.
-**
-** 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 AUTOTEST_H
-#define AUTOTEST_H
-
-#include <QtGui>
-#include <QObject>
-#include <QtTest>
-
-
-class autoTest: public QObject
-{
-	Q_OBJECT
-	
-	void initTestCase();
-	
-	private slots:
-		void testDefaults();
-		void testMainWindow();
-		void testPreviewer();
-};
-	
-#endif
--- a/tests/qtp/qtp_previewer/main.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,48 +0,0 @@
-/****************************************************************************
-**
-** 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.
-**
-** 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>
-#include <QtGui>
-#include <QtTest>
-#include "mainwindow.h"
-#include "autotest.h"
-
-QTEST_MAIN(autoTest)
--- a/tests/qtp/qtp_previewer/mainwindow.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,197 +0,0 @@
-/****************************************************************************
-**
-** 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.
-**
-** 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 <QtGui>
-#include <QtWebKit>
-#include "mainwindow.h"
-
-//! [0]
-MainWindow::MainWindow()
-{
-    createActions();
-    createMenus();
-    centralWidget = new Previewer(this);
-    setCentralWidget(centralWidget);
-
-    connect(centralWidget->webView, SIGNAL(loadFinished(bool)),
-        this, SLOT(updateTextEdit()));
-    setStartupText();
-}
-//! [0]
-
-//! [1]
-void MainWindow::createActions()
-{
-    openAct = new QAction(tr("&Open..."), this);
-    openAct->setShortcuts(QKeySequence::Open);
-    openAct->setStatusTip(tr("Open an existing HTML file"));
-    connect(openAct, SIGNAL(triggered()), this, SLOT(open()));
-
-    openUrlAct = new QAction(tr("&Open URL..."), this);
-    openUrlAct->setShortcut(tr("Ctrl+U"));
-    openUrlAct->setStatusTip(tr("Open a URL"));
-    connect(openUrlAct, SIGNAL(triggered()), this, SLOT(openUrl()));
-//! [1]
-
-    saveAct = new QAction(tr("&Save"), this);
-    saveAct->setShortcuts(QKeySequence::Save);
-    saveAct->setStatusTip(tr("Save the HTML file to disk"));
-    connect(saveAct, SIGNAL(triggered()), this, SLOT(save()));
-
-    exitAct = new QAction(tr("E&xit"), this);
-    exitAct->setStatusTip(tr("Exit the application"));
-    exitAct->setShortcuts(QKeySequence::Quit);
-    connect(exitAct, SIGNAL(triggered()), this, SLOT(close()));
-
-    aboutAct = new QAction(tr("&About"), this);
-    aboutAct->setStatusTip(tr("Show the application's About box"));
-    connect(aboutAct, SIGNAL(triggered()), this, SLOT(about()));
-
-    aboutQtAct = new QAction(tr("About &Qt"), this);
-    aboutQtAct->setStatusTip(tr("Show the Qt library's About box"));
-    connect(aboutQtAct, SIGNAL(triggered()), qApp, SLOT(aboutQt()));
-}
-
-//! [2]
-void MainWindow::createMenus()
-{
-    fileMenu = menuBar()->addMenu(tr("&File"));
-    fileMenu->addAction(openAct);
-    fileMenu->addAction(openUrlAct);
-    fileMenu->addAction(saveAct);
-    fileMenu->addSeparator();
-    fileMenu->addAction(exitAct);
-
-    menuBar()->addSeparator();
-
-    helpMenu = menuBar()->addMenu(tr("&Help"));
-    helpMenu->addAction(aboutAct);
-    helpMenu->addAction(aboutQtAct);
-}
-//! [2]
-
-//! [3]
-void MainWindow::about()
-{
-    QMessageBox::about(this, tr("About Previewer"),
-        tr("The <b>Previewer</b> example demonstrates how to "
-           "view HTML documents using a QWebView."));
-}
-//! [3]
-
-//! [4]
-void MainWindow::open()
-{
-    QString fileName = QFileDialog::getOpenFileName(this);
-    if (!fileName.isEmpty()) {
-        // read from file
-        QFile file(fileName);
-
-        if (!file.open(QIODevice::ReadOnly)) {
-            QMessageBox::information(this, tr("Unable to open file"),
-                file.errorString());
-            return;
-        }
-
-        QTextStream out(&file);
-        QString output = out.readAll();
-
-        // display contents
-        centralWidget->plainTextEdit->setPlainText(output);
-        centralWidget->setBaseUrl(QUrl::fromLocalFile(fileName));
-    }
-}
-//! [4]
-
-//! [5]
-void MainWindow::openUrl()
-{
-    bool ok;
-    QString url = QInputDialog::getText(this, tr("Enter a URL"),
-                  tr("URL:"), QLineEdit::Normal, "http://", &ok);
-
-    if (ok && !url.isEmpty()) {
-        centralWidget->webView->setUrl(url);
-    }
-}
-//! [5]
-
-//! [6]
-void MainWindow::save()
-{
-    QString content = centralWidget->plainTextEdit->toPlainText();
-    QString fileName = QFileDialog::getSaveFileName(this);
-
-    if (!fileName.isEmpty()) {
-        // save to file
-        QFile file(fileName);
-
-        if (!file.open(QIODevice::WriteOnly)) {
-            QMessageBox::information(this, tr("Unable to open file"),
-                file.errorString());
-            return;
-        }
-
-        QTextStream in(&file);
-        in << content;
-    }
-}
-//! [6]
-
-//! [7]
-void MainWindow::updateTextEdit()
-{
-    QWebFrame *mainFrame = centralWidget->webView->page()->mainFrame();
-    QString frameText = mainFrame->toHtml();
-    centralWidget->plainTextEdit->setPlainText(frameText);
-}
-//! [7]
-
-//! [8]
-void MainWindow::setStartupText()
-{
-    QString string = "<html><body><h1>HTML Previewer</h1>"
-                     " <p>This example shows you how to use QWebView to"
-                     " preview HTML data written in a QPlainTextEdit.</p>"
-                     " </body></html>";
-    centralWidget->webView->setHtml(string);
-}
-//! [8]
--- a/tests/qtp/qtp_previewer/mainwindow.h	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,87 +0,0 @@
-/****************************************************************************
-**
-** 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.
-**
-** 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 MAINWINDOW_H
-#define MAINWINDOW_H
-
-#include <QMainWindow>
-#include "previewer.h"
-
-QT_BEGIN_NAMESPACE
-class QAction;
-class QMenu;
-QT_END_NAMESPACE
-
-//! [0]
-class MainWindow : public QMainWindow
-{
-    Q_OBJECT
-
-public:
-    MainWindow();
-
-private slots:
-    void open();
-    void openUrl();
-    void save();
-    void about();
-    void updateTextEdit();
-//! [0]
-
-//! [1]
-private:
-    Previewer *centralWidget;
-    QMenu *fileMenu;
-    QMenu *helpMenu;
-    QAction *openAct;
-    QAction *openUrlAct;
-    QAction *saveAct;
-    QAction *exitAct;
-    QAction *aboutAct;
-    QAction *aboutQtAct;
-
-    void createActions();
-    void createMenus();
-    void setStartupText();
-};
-//! [1]
-
-#endif
--- a/tests/qtp/qtp_previewer/previewer.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,65 +0,0 @@
-/****************************************************************************
-**
-** 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.
-**
-** 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 <QtGui>
-#include "previewer.h"
-
-//! [0]
-Previewer::Previewer(QWidget *parent)
-    : QWidget(parent)
-{
-    setupUi(this);
-}
-//! [0]
-
-void Previewer::setBaseUrl(const QUrl &url)
-{
-    baseUrl = url;
-}
-
-//! [1]
-void Previewer::on_previewButton_clicked()
-{
-    // Update the contents in web viewer
-    QString text = plainTextEdit->toPlainText();
-    webView->setHtml(text, baseUrl);
-}
-//! [1]
--- a/tests/qtp/qtp_previewer/previewer.h	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,65 +0,0 @@
-/****************************************************************************
-**
-** 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.
-**
-** 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 PREVIEWER_H
-#define PREVIEWER_H
-
-#include "ui_previewer.h"
-
-//! [0]
-class Previewer : public QWidget, public Ui::Form
-{
-    Q_OBJECT
-
-public:
-    Previewer(QWidget *parent = 0);
-
-    void setBaseUrl(const QUrl &url);
-
-public slots:
-    void on_previewButton_clicked();
-
-private:
-    QUrl baseUrl;
-};
-//! [0]
-
-#endif
--- a/tests/qtp/qtp_previewer/previewer.pro	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,19 +0,0 @@
-QT      +=  webkit network
-HEADERS =   previewer.h \
-            mainwindow.h
-SOURCES =   main.cpp \
-            previewer.cpp \
-            mainwindow.cpp
-FORMS   =   previewer.ui
-
-# install
-target.path = $$[QT_INSTALL_PREFIX]/tests/qtp/qtp_previewer
-sources.files = $$SOURCES $$HEADERS $$FORMS $$RESOURCES *.pro images
-sources.path = $$[QT_INSTALL_PREFIX]/tests/qtp/qtp_previewer
-INSTALLS += target sources
-
-symbian {
-    TARGET.UID3 = 0xED83EC08
-    include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri)
-    INCLUDEPATH +=tmp $$QMAKE_INCDIR_QT/QtXmlPatterns
-}
--- a/tests/qtp/qtp_previewer/previewer.ui	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,99 +0,0 @@
-<ui version="4.0" >
- <class>Form</class>
- <widget class="QWidget" name="Form" >
-  <property name="geometry" >
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>911</width>
-    <height>688</height>
-   </rect>
-  </property>
-  <property name="windowTitle" >
-   <string>Form</string>
-  </property>
-  <layout class="QHBoxLayout" name="horizontalLayout_4" >
-   <item>
-    <widget class="QSplitter" name="splitter" >
-     <property name="orientation" >
-      <enum>Qt::Horizontal</enum>
-     </property>
-     <widget class="QGroupBox" name="editorBox" >
-      <property name="title" >
-       <string>HTML Editor</string>
-      </property>
-      <layout class="QHBoxLayout" name="horizontalLayout_2" >
-       <item>
-        <layout class="QVBoxLayout" name="verticalLayout_2" >
-         <item>
-          <widget class="QPlainTextEdit" name="plainTextEdit" />
-         </item>
-         <item>
-          <layout class="QHBoxLayout" name="horizontalLayout" >
-           <item>
-            <widget class="QPushButton" name="clearButton" >
-             <property name="text" >
-              <string>Clear</string>
-             </property>
-            </widget>
-           </item>
-           <item>
-            <widget class="QPushButton" name="previewButton" >
-             <property name="text" >
-              <string>Preview</string>
-             </property>
-            </widget>
-           </item>
-          </layout>
-         </item>
-        </layout>
-       </item>
-      </layout>
-     </widget>
-     <widget class="QGroupBox" name="previewerBox" >
-      <property name="title" >
-       <string>HTML Preview</string>
-      </property>
-      <layout class="QHBoxLayout" name="horizontalLayout_3" >
-       <item>
-        <widget class="QWebView" name="webView" >
-         <property name="url" >
-          <url>
-           <string>about:blank</string>
-          </url>
-         </property>
-        </widget>
-       </item>
-      </layout>
-     </widget>
-    </widget>
-   </item>
-  </layout>
- </widget>
- <customwidgets>
-  <customwidget>
-   <class>QWebView</class>
-   <extends>QWidget</extends>
-   <header>QtWebKit/QWebView</header>
-  </customwidget>
- </customwidgets>
- <resources/>
- <connections>
-  <connection>
-   <sender>clearButton</sender>
-   <signal>clicked()</signal>
-   <receiver>plainTextEdit</receiver>
-   <slot>clear()</slot>
-   <hints>
-    <hint type="sourcelabel" >
-     <x>56</x>
-     <y>653</y>
-    </hint>
-    <hint type="destinationlabel" >
-     <x>98</x>
-     <y>551</y>
-    </hint>
-   </hints>
-  </connection>
- </connections>
-</ui>
--- a/tests/qtp/qtp_qftp/autotest.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,165 +0,0 @@
-/****************************************************************************
-**
-** 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.
-**
-** 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 <QThread>
-#include "ftpserver.h"
-#include "ftpwindow.h"
-#include "autotest.h"
-
-
- class serverThread : public QThread
- {
- public:
-     void run();
- };
-
- void serverThread::run()
- {
-    ftpServer testServer;
-
-    while ( testServer.isDone() )
-    {
-        QTest::qWait(1000);
-    }
- }
-
-void autoTest::initTestCase()
-{
-}
-
-void autoTest::testDefaults()
-{
-        FtpWindow fw;
-
-        fw.show();
-
-        // Test default values for widget properties
-//      QCOMPARE( fw.acceptDrops(), false );
-//	QCOMPARE( fw.hasEditFocus(), false );
-        QCOMPARE( fw.hasFocus(), false );
-        QCOMPARE( fw.hasMouseTracking(), false );
-        /*
-        QCOMPARE( fw.isActiveWindow(), true );
-        QCOMPARE( fw.isEnabled(), true );
-        QCOMPARE( fw.isFullScreen(), false );
-        QCOMPARE( fw.isHidden(), false );
-        QCOMPARE( fw.isMaximized(), false );
-        QCOMPARE( fw.isMinimized(), false );
-        QCOMPARE( fw.isModal(), false );
-        QCOMPARE( fw.isVisible(), true );
-        QCOMPARE( fw.isWindow(), true );
-        QCOMPARE( fw.isWindowModified(), false );
-        QCOMPARE( fw.underMouse(), false );
-        QCOMPARE( fw.updatesEnabled(), true );
-        */
-
-        fw.hide();
-}
-
-void autoTest::testFtpWindow()
-{
-        FtpWindow fw;
-
-        fw.show();
-
-        // what to test here
-        serverThread testThread;
-        testThread.start();
-
-        QPushButton * connectButton;
-        QList<QPushButton *> allPButtons = fw.findChildren<QPushButton *>();
-        QVERIFY( allPButtons.count() > 0 );
-
-        for ( int i = 0; i < allPButtons.count(); i++)
-        {
-            if ( allPButtons.at(i)->text() == QString("Connect") )
-            {
-                connectButton = allPButtons.at(i);
-            }
-            else
-            {
-                // Other buttons than connect ignored so far...
-            }
-        }
-        QVERIFY(connectButton);
-
-        QLineEdit * addressLine;
-        QList<QLineEdit *> allLineEds = fw.findChildren<QLineEdit *>();
-        QVERIFY( allLineEds.count() == 1 );
-
-        addressLine = allLineEds.at(0);
-
-        while ( !addressLine->text().isEmpty() )
-        {
-            QTest::keyClick ( addressLine, Qt::Key_Backspace, Qt::NoModifier, 100 );
-        }
-
-        QTest::qWait(2000);
-        QTest::keyClicks( addressLine, "127.0.0.1" );
-
-        QTest::qWait(2000);
-        connectButton->click();
-
-        QLabel * statusLabel;
-        QList<QLabel *> allLabels = fw.findChildren<QLabel *>();
-        QVERIFY( allLabels.count() > 0 );
-
-        for ( int i = 0; i < allLabels.count(); i++)
-        {
-            if ( allLabels.at(i)->text() == QString("Logged onto 127.0.0.1.") )
-            {
-                statusLabel = allLabels.at(i);
-            }
-            else
-            {
-                // Other buttons than connect ignored so far...
-            }
-        }
-        QVERIFY(statusLabel);
-
-        QTest::qWait(2000);
-
-        fw.hide();
-}
-
-
-
--- a/tests/qtp/qtp_qftp/autotest.h	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,62 +0,0 @@
-/****************************************************************************
-**
-** 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.
-**
-** 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 AUTOTEST_H
-#define AUTOTEST_H
-
-#include <QtGui>
-#include <QObject>
-#include <QtTest>
-
-
-class autoTest: public QObject
-{
-	Q_OBJECT
-	
-	void initTestCase();
-	
-	private slots:
-		void testDefaults();
-                void testFtpWindow();
-};
-	
-#endif
--- a/tests/qtp/qtp_qftp/ftpserver.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,276 +0,0 @@
-/****************************************************************************
-**
-** 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.
-**
-** 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 "ftpserver.h"
-
-#define FTP_CMND_PORT 21
-#define FTP_DATA_PORT 9801
-
-ftpServer::ftpServer( QObject *parent  )
-         : QTcpServer( parent )
-{
-    ftpSocket = NULL;
-    dataSocket = NULL;
-
-    tcpServer = new QTcpServer( /* this */ );
-    not_done = true;
-    bool result = tcpServer->listen(QHostAddress::Any, FTP_CMND_PORT );
-    if ( !result )
-    {
-        delete tcpServer;
-        close();
-        not_done = false;
-        return;
-    }
-    connect(tcpServer, SIGNAL(newConnection()), this, SLOT(handleNewConnection()));
-
-/*
-    dataServer = new QTcpServer( );
-    result = dataServer->listen(QHostAddress::Any, FTP_DATA_PORT );
-    if ( !result )
-    {
-        delete tcpServer;
-        close();
-        not_done = false;
-
-        delete dataServer;
-        close();
-        return;
-    }
-
-    connect(dataServer, SIGNAL(newConnection()), this, SLOT(handleNewDataConnection()));
-*/
-}
-
-ftpServer::~ftpServer()
-{
-    if ( ftpSocket )
-    {
-        ftpSocket->disconnect(SIGNAL(readyRead()));
-        ftpSocket->disconnect(SIGNAL(error(QAbstractSocket::SocketError)));
-        ftpSocket->close();
-        ftpSocket->abort();
-        ftpSocket->deleteLater();
-        ftpSocket = NULL;
-    }
-}
-
-bool ftpServer::isDone()
-{
-    return not_done;
-}
-void ftpServer::handleNewConnection()
-{
-    QTcpSocket *clientConnection = tcpServer->nextPendingConnection();
-    clientConnection->setTextModeEnabled(true);
-
-    if ( !ftpSocket )
-    {
-        ftpSocket = clientConnection;
-        connect( ftpSocket,
-            SIGNAL(readyRead()),
-            this,
-            SLOT(readConnection()));
-        connect(ftpSocket, SIGNAL(error(QAbstractSocket::SocketError)),
-             this, SLOT(displayConnectionError(QAbstractSocket::SocketError)));
-
-        QString greet("220 Service ready\n");
-        ftpSocket->write(qPrintable(greet));
-
-    }
-    else if ( !dataSocket )
-    {
-        dataSocket = clientConnection;
-        connect( dataSocket,
-            SIGNAL(readyRead()),
-            this,
-            SLOT(readConnection()));
-        connect(dataSocket, SIGNAL(error(QAbstractSocket::SocketError)),
-             this, SLOT(displayConnectionError(QAbstractSocket::SocketError)));
-
-        if ( dataSocket->waitForConnected() )
-        {
-        //qDebug() << "Data connection accepted.\n";
-        }
-
-
-    }
-    else
-    {
-        // We already are busy with open connection?!
-        // qDebug() << "Server busy.\n";
-        clientConnection->disconnectFromHost();
-    }
-}
-
-void ftpServer::handleNewDataConnection()
-{
-    QTcpSocket *dataConnection = tcpServer->nextPendingConnection();
-    dataConnection->setTextModeEnabled(true);
-
-    if ( !dataSocket )
-    {
-        dataSocket = dataConnection;
-        connect( dataSocket,
-            SIGNAL(readyRead()),
-            this,
-            SLOT(readConnection()));
-        connect(dataSocket, SIGNAL(error(QAbstractSocket::SocketError)),
-             this, SLOT(displayConnectionError(QAbstractSocket::SocketError)));
-
-        QString list(".\n..\nasdf.txt\nqwerty.txt\n");
-        ftpSocket->write(qPrintable(list));
-
-    }
-    else
-    {
-        // We already are busy with open connection?!
-        //qDebug() << "Data Server busy.\n";
-        dataConnection->disconnectFromHost();
-    }
-}
-
-void ftpServer::displayConnectionError(QAbstractSocket::SocketError socketError)
-{
-		Q_UNUSED(socketError);
-    ftpSocket->disconnect(SIGNAL(readyRead()));
-    ftpSocket->disconnect(SIGNAL(error(QAbstractSocket::SocketError)));
-    ftpSocket->close();
-    ftpSocket->abort();
-    ftpSocket->deleteLater();
-    ftpSocket = NULL;
-}
-
-void ftpServer::displayDataConnectionError(QAbstractSocket::SocketError socketError)
-{
-		Q_UNUSED(socketError);
-    dataSocket->disconnect(SIGNAL(readyRead()));
-    dataSocket->disconnect(SIGNAL(error(QAbstractSocket::SocketError)));
-    dataSocket->close();
-    dataSocket->abort();
-    dataSocket->deleteLater();
-    dataSocket = NULL;
-}
-
-void ftpServer::readDataConnection()
-{
-    while (dataSocket->canReadLine())
-    {
-        dataSocket->readAll();
-    }
-}
-
-void ftpServer::readConnection()
-{
-    while (ftpSocket->canReadLine())
-    {
-        char buf[256];
-        qint64 lineLength = ftpSocket->readLine(buf, sizeof(buf));
-        if (lineLength != -1)
-        {
-            QString tmpCommand(buf);
-            tmpCommand = tmpCommand.simplified();
-
-            // qDebug() << "Received: '" << buf << "'\n";
-            if ( tmpCommand.left(5) == QString("USER ") )
-            {
-                QString acceptuser("331 User name ok\n");
-                ftpSocket->write(qPrintable(acceptuser));
-            }
-            else if ( tmpCommand.left(5) == QString("PASS ") )
-            {
-                QString acceptCommand("230 User logged in\n");
-                ftpSocket->write(qPrintable(acceptCommand));
-            }
-            else if ( tmpCommand.left(5) == QString("TYPE ") )
-            {
-                QString acceptCommand("200 Command OK\n");
-                // QString acceptCommand("227 Entering Passive Mode. 21,21,21,21,21,21\n");
-                ftpSocket->write(qPrintable(acceptCommand));
-            }
-            else if ( tmpCommand.left(4) == QString("PASV") )
-            {
-                QString acceptCommand("227 Entering Passive Mode. (127,0,0,1,0,21)\n");
-                // QString acceptCommand("200 Command OK\n");
-                ftpSocket->write(qPrintable(acceptCommand));
-            }
-            else if ( tmpCommand.left(4) == QString("LIST") )
-            {
-                // QString acceptuser("502 Command not implemented\n");
-                // QString acceptuser("-rw-r--r--    1 vogel    user     1209041 May  1 13:55 IMPJET24.CAS\n-rw-r--r--    1 vogel    user     10259798 May  1 20:57 IMPJET24.DAT\n");
-            // qDebug() << "sending 200...\n";
-                QString acceptCommand("200 Command OK\n");
-                ftpSocket->write(qPrintable(acceptCommand));
-                // qDebug() << "sending 150...\n";
-                QString port;
-                port.setNum(dataSocket->localPort());
-                QString dataCommand("150 ASCII data connection for /bin/ls (127.0.0.1,");
-                dataCommand.append( port );
-                dataCommand.append(") (0 bytes).");
-                ftpSocket->write(qPrintable(dataCommand));
-                // not_done = false;
-
-                //
-                //QString list(".\n..\nasdf.txt\nqwerty.txt\n");
-                QString list("07.12.2009\t13:49\t<DIR>\tinclude\n03.12.2009\t14:01\t721\tINSTALL\n");
-
-
-                dataSocket->write(qPrintable(list));
-                dataSocket->flush();
-                dataSocket->disconnectFromHost();
-                dataSocket = NULL;
-
-                // qDebug() << "sending 226...\n";
-                QString finishCommand("226 Closing data connection, file transfer successful.\n");
-                ftpSocket->write(qPrintable(finishCommand));
-
-                not_done = false;
-
-            }
-            else
-            {
-                // qDebug() << "Received unknown:" << buf << "\n";
-            }
-        }
-    }
-}
-
-
--- a/tests/qtp/qtp_qftp/ftpserver.h	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,40 +0,0 @@
-#ifndef FTPSERVER_H
-#define FTPSERVER_H
-
-#include <QTcpServer>
-#include <QTcpSocket>
-
- class ftpServer : public QTcpServer // , public QThread
- {
-     Q_OBJECT
-
- public:
-     ftpServer( QObject *parent = 0 );
-     ~ftpServer();
-
-     bool isDone();
-//     void run();
-/*
-private:
-    void sendSomething( QTcpSocket *outSock, quint16 port );
-*/
-private slots:
-    void handleNewConnection();
-    void readConnection();
-    void displayConnectionError(QAbstractSocket::SocketError socketError);
-
-    void readDataConnection();
-    void handleNewDataConnection();
-    void displayDataConnectionError(QAbstractSocket::SocketError socketError);
-
- private:
-    QTcpServer *tcpServer;
-    QTcpSocket *ftpSocket;
-
-    QTcpServer *dataServer;
-    QTcpSocket *dataSocket;
-
-    bool not_done;
-};
-
-#endif // FTPSERVER_H
--- a/tests/qtp/qtp_qftp/ftpwindow.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,379 +0,0 @@
-/****************************************************************************
-**
-** 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.
-**
-** 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 <QtGui>
-#include <QtNetwork>
-
-#include "ftpwindow.h"
-
-#ifdef Q_OS_SYMBIAN
-#include "sym_iap_util.h"
-#endif
-
-FtpWindow::FtpWindow(QWidget *parent)
-    : QDialog(parent), ftp(0)
-{
-    ftpServerLabel = new QLabel(tr("Ftp &server:"));
-    ftpServerLineEdit = new QLineEdit("ftp.qt.nokia.com");
-    ftpServerLabel->setBuddy(ftpServerLineEdit);
-
-    statusLabel = new QLabel(tr("Please enter the name of an FTP server."));
-#ifdef Q_OS_SYMBIAN
-    // Use word wrapping to fit the text on screen
-    statusLabel->setWordWrap( true );
-#endif
-
-    fileList = new QTreeWidget;
-    fileList->setEnabled(false);
-    fileList->setRootIsDecorated(false);
-    fileList->setHeaderLabels(QStringList() << tr("Name") << tr("Size") << tr("Owner") << tr("Group") << tr("Time"));
-    fileList->header()->setStretchLastSection(false);
-
-    connectButton = new QPushButton(tr("Connect"));
-    connectButton->setDefault(true);
-
-    cdToParentButton = new QPushButton;
-    cdToParentButton->setIcon(QPixmap(":/images/cdtoparent.png"));
-    cdToParentButton->setEnabled(false);
-
-    downloadButton = new QPushButton(tr("Download"));
-    downloadButton->setEnabled(false);
-
-    quitButton = new QPushButton(tr("Quit"));
-
-    buttonBox = new QDialogButtonBox;
-    buttonBox->addButton(downloadButton, QDialogButtonBox::ActionRole);
-    buttonBox->addButton(quitButton, QDialogButtonBox::RejectRole);
-
-    progressDialog = new QProgressDialog(this);
-
-    connect(fileList, SIGNAL(itemActivated(QTreeWidgetItem *, int)),
-            this, SLOT(processItem(QTreeWidgetItem *, int)));
-    connect(fileList, SIGNAL(currentItemChanged(QTreeWidgetItem *, QTreeWidgetItem *)),
-            this, SLOT(enableDownloadButton()));
-    connect(progressDialog, SIGNAL(canceled()), this, SLOT(cancelDownload()));
-    connect(connectButton, SIGNAL(clicked()), this, SLOT(connectOrDisconnect()));
-    connect(cdToParentButton, SIGNAL(clicked()), this, SLOT(cdToParent()));
-    connect(downloadButton, SIGNAL(clicked()), this, SLOT(downloadFile()));
-    connect(quitButton, SIGNAL(clicked()), this, SLOT(close()));
-
-    QHBoxLayout *topLayout = new QHBoxLayout;
-    topLayout->addWidget(ftpServerLabel);
-    topLayout->addWidget(ftpServerLineEdit);
-#ifndef Q_OS_SYMBIAN
-    topLayout->addWidget(cdToParentButton);
-    topLayout->addWidget(connectButton);
-#else
-    // Make app better lookin on small screen
-    QHBoxLayout *topLayout2 = new QHBoxLayout;
-    topLayout2->addWidget(cdToParentButton);
-    topLayout2->addWidget(connectButton);
-#endif
-
-    QVBoxLayout *mainLayout = new QVBoxLayout;
-    mainLayout->addLayout(topLayout);
-#ifdef Q_OS_SYMBIAN
-    // Make app better lookin on small screen
-    mainLayout->addLayout(topLayout2);
-#endif
-    mainLayout->addWidget(fileList);
-    mainLayout->addWidget(statusLabel);
-    mainLayout->addWidget(buttonBox);
-    setLayout(mainLayout);
-
-#ifdef Q_OS_SYMBIAN
-    bDefaultIapSet = false;
-#endif
-
-    setWindowTitle(tr("FTP"));
-}
-
-QSize FtpWindow::sizeHint() const
-{
-    return QSize(500, 300);
-}
-
-//![0]
-void FtpWindow::connectOrDisconnect()
-{
-#ifdef Q_OS_SYMBIAN
-   if(!bDefaultIapSet) {
-       qt_SetDefaultIap();
-       bDefaultIapSet = true;
-   }
-#endif
-    if (ftp) {
-        ftp->abort();
-        ftp->deleteLater();
-        ftp = 0;
-//![0]
-        fileList->setEnabled(false);
-        cdToParentButton->setEnabled(false);
-        downloadButton->setEnabled(false);
-        connectButton->setEnabled(true);
-        connectButton->setText(tr("Connect"));
-#ifndef QT_NO_CURSOR
-        setCursor(Qt::ArrowCursor);
-#endif
-        statusLabel->setText(tr("Please enter the name of an FTP server."));
-        return;
-    }
-
-#ifndef QT_NO_CURSOR
-    setCursor(Qt::WaitCursor);
-#endif
-
-//![1]
-    ftp = new QFtp(this);
-    connect(ftp, SIGNAL(commandFinished(int, bool)),
-            this, SLOT(ftpCommandFinished(int, bool)));
-    connect(ftp, SIGNAL(listInfo(const QUrlInfo &)),
-            this, SLOT(addToList(const QUrlInfo &)));
-    connect(ftp, SIGNAL(dataTransferProgress(qint64, qint64)),
-            this, SLOT(updateDataTransferProgress(qint64, qint64)));
-
-    fileList->clear();
-    currentPath.clear();
-    isDirectory.clear();
-//![1]
-
-//![2]
-    QUrl url(ftpServerLineEdit->text());
-    if (!url.isValid() || url.scheme().toLower() != QLatin1String("ftp")) {
-        ftp->connectToHost(ftpServerLineEdit->text(), 21);
-        ftp->login();
-    } else {
-        ftp->connectToHost(url.host(), url.port(21));
-
-        if (!url.userName().isEmpty())
-            ftp->login(QUrl::fromPercentEncoding(url.userName().toLatin1()), url.password());
-        else
-            ftp->login();
-        if (!url.path().isEmpty())
-            ftp->cd(url.path());
-    }
-//![2]
-
-    fileList->setEnabled(true);
-    connectButton->setEnabled(false);
-    connectButton->setText(tr("Disconnect"));
-    statusLabel->setText(tr("Connecting to FTP server %1...")
-                         .arg(ftpServerLineEdit->text()));
-}
-
-//![3]
-void FtpWindow::downloadFile()
-{
-    QString fileName = fileList->currentItem()->text(0);
-//![3]
-//
-    if (QFile::exists(fileName)) {
-        QMessageBox::information(this, tr("FTP"),
-                                 tr("There already exists a file called %1 in "
-                                    "the current directory.")
-                                 .arg(fileName));
-        return;
-    }
-
-//![4]
-    file = new QFile(fileName);
-    if (!file->open(QIODevice::WriteOnly)) {
-        QMessageBox::information(this, tr("FTP"),
-                                 tr("Unable to save the file %1: %2.")
-                                 .arg(fileName).arg(file->errorString()));
-        delete file;
-        return;
-    }
-
-    ftp->get(fileList->currentItem()->text(0), file);
-
-    progressDialog->setLabelText(tr("Downloading %1...").arg(fileName));
-    downloadButton->setEnabled(false);
-    progressDialog->exec();
-}
-//![4]
-
-//![5]
-void FtpWindow::cancelDownload()
-{
-    ftp->abort();
-}
-//![5]
-
-//![6]
-void FtpWindow::ftpCommandFinished(int, bool error)
-{
-#ifndef QT_NO_CURSOR
-    setCursor(Qt::ArrowCursor);
-#endif
-
-    if (ftp->currentCommand() == QFtp::ConnectToHost) {
-        if (error) {
-            QMessageBox::information(this, tr("FTP"),
-                                     tr("Unable to connect to the FTP server "
-                                        "at %1. Please check that the host "
-                                        "name is correct.")
-                                     .arg(ftpServerLineEdit->text()));
-            connectOrDisconnect();
-            return;
-        }
-        statusLabel->setText(tr("Logged onto %1.")
-                             .arg(ftpServerLineEdit->text()));
-        fileList->setFocus();
-        downloadButton->setDefault(true);
-        connectButton->setEnabled(true);
-        return;
-    }
-//![6]
-
-//![7]
-    if (ftp->currentCommand() == QFtp::Login)
-        ftp->list();
-//![7]
-
-//![8]
-    if (ftp->currentCommand() == QFtp::Get) {
-        if (error) {
-            statusLabel->setText(tr("Canceled download of %1.")
-                                 .arg(file->fileName()));
-            file->close();
-            file->remove();
-        } else {
-            statusLabel->setText(tr("Downloaded %1 to current directory.")
-                                 .arg(file->fileName()));
-            file->close();
-        }
-        delete file;
-        enableDownloadButton();
-        progressDialog->hide();
-//![8]
-//![9]
-    } else if (ftp->currentCommand() == QFtp::List) {
-        if (isDirectory.isEmpty()) {
-            fileList->addTopLevelItem(new QTreeWidgetItem(QStringList() << tr("<empty>")));
-            fileList->setEnabled(false);
-        }
-    }
-//![9]
-}
-
-//![10]
-void FtpWindow::addToList(const QUrlInfo &urlInfo)
-{
-    QTreeWidgetItem *item = new QTreeWidgetItem;
-    item->setText(0, urlInfo.name());
-    item->setText(1, QString::number(urlInfo.size()));
-    item->setText(2, urlInfo.owner());
-    item->setText(3, urlInfo.group());
-    item->setText(4, urlInfo.lastModified().toString("MMM dd yyyy"));
-
-    QPixmap pixmap(urlInfo.isDir() ? ":/images/dir.png" : ":/images/file.png");
-    item->setIcon(0, pixmap);
-
-    isDirectory[urlInfo.name()] = urlInfo.isDir();
-    fileList->addTopLevelItem(item);
-    if (!fileList->currentItem()) {
-        fileList->setCurrentItem(fileList->topLevelItem(0));
-        fileList->setEnabled(true);
-    }
-}
-//![10]
-
-//![11]
-void FtpWindow::processItem(QTreeWidgetItem *item, int /*column*/)
-{
-    QString name = item->text(0);
-    if (isDirectory.value(name)) {
-        fileList->clear();
-        isDirectory.clear();
-        currentPath += "/" + name;
-        ftp->cd(name);
-        ftp->list();
-        cdToParentButton->setEnabled(true);
-#ifndef QT_NO_CURSOR
-        setCursor(Qt::WaitCursor);
-#endif
-        return;
-    }
-}
-//![11]
-
-//![12]
-void FtpWindow::cdToParent()
-{
-#ifndef QT_NO_CURSOR
-    setCursor(Qt::WaitCursor);
-#endif
-    fileList->clear();
-    isDirectory.clear();
-    currentPath = currentPath.left(currentPath.lastIndexOf('/'));
-    if (currentPath.isEmpty()) {
-        cdToParentButton->setEnabled(false);
-        ftp->cd("/");
-    } else {
-        ftp->cd(currentPath);
-    }
-    ftp->list();
-}
-//![12]
-
-//![13]
-void FtpWindow::updateDataTransferProgress(qint64 readBytes,
-                                           qint64 totalBytes)
-{
-    progressDialog->setMaximum(totalBytes);
-    progressDialog->setValue(readBytes);
-}
-//![13]
-
-//![14]
-void FtpWindow::enableDownloadButton()
-{
-    QTreeWidgetItem *current = fileList->currentItem();
-    if (current) {
-        QString currentFile = current->text(0);
-        downloadButton->setEnabled(!isDirectory.value(currentFile));
-    } else {
-        downloadButton->setEnabled(false);
-    }
-}
-//![14]
-
--- a/tests/qtp/qtp_qftp/ftpwindow.h	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,108 +0,0 @@
-/****************************************************************************
-**
-** 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.
-**
-** 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 FTPWINDOW_H
-#define FTPWINDOW_H
-
-#include <QDialog>
-#include <QHash>
-
-QT_BEGIN_NAMESPACE
-class QDialogButtonBox;
-class QFile;
-class QFtp;
-class QLabel;
-class QLineEdit;
-class QTreeWidget;
-class QTreeWidgetItem;
-class QProgressDialog;
-class QPushButton;
-class QUrlInfo;
-QT_END_NAMESPACE
-
-class FtpWindow : public QDialog
-{
-    Q_OBJECT
-
-public:
-    FtpWindow(QWidget *parent = 0);
-    QSize sizeHint() const;
-
-//![0]
-private slots:
-    void connectOrDisconnect();
-    void downloadFile();
-    void cancelDownload();
-
-    void ftpCommandFinished(int commandId, bool error);
-    void addToList(const QUrlInfo &urlInfo);
-    void processItem(QTreeWidgetItem *item, int column);
-    void cdToParent();
-    void updateDataTransferProgress(qint64 readBytes,
-                                    qint64 totalBytes);
-    void enableDownloadButton();
-//![0]
-
-private:
-    QLabel *ftpServerLabel;
-    QLineEdit *ftpServerLineEdit;
-    QLabel *statusLabel;
-    QTreeWidget *fileList;
-    QPushButton *cdToParentButton;
-    QPushButton *connectButton;
-    QPushButton *downloadButton;
-    QPushButton *quitButton;
-    QDialogButtonBox *buttonBox;
-    QProgressDialog *progressDialog;
-
-//![1]
-    QHash<QString, bool> isDirectory;
-    QString currentPath;
-    QFtp *ftp;
-    QFile *file;
-
-#ifdef Q_OS_SYMBIAN
-    bool bDefaultIapSet;
-#endif
-//![1]
-};
-
-#endif
Binary file tests/qtp/qtp_qftp/images/cdtoparent.png has changed
Binary file tests/qtp/qtp_qftp/images/dir.png has changed
Binary file tests/qtp/qtp_qftp/images/file.png has changed
--- a/tests/qtp/qtp_qftp/main.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,55 +0,0 @@
-/****************************************************************************
-**
-** 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.
-**
-** 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>
-#include <QtGui>
-#include <QtTest>
-#include "ftpwindow.h"
-#include "autotest.h"
-
-
-#ifdef Q_OS_SYMBIAN
-#include <QDir>
-#include <QDesktopWidget>
-#endif
-
-
-QTEST_MAIN(autoTest)
--- a/tests/qtp/qtp_qftp/qtp_ftp.qrc	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-<!DOCTYPE RCC><RCC version="1.0">
-<qresource>
-    <file>images/cdtoparent.png</file>
-    <file>images/dir.png</file>
-    <file>images/file.png</file>
-</qresource>
-</RCC>
--- a/tests/qtp/qtp_qftp/qtp_qftp.pro	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,37 +0,0 @@
-HEADERS = autotest.h \
-    ftpwindow.h \
-    ftpserver.h
-SOURCES = autotest.cpp \
-    ftpwindow.cpp \
-    main.cpp \
-    ftpserver.cpp
-
-RESOURCES += qtp_ftp.qrc
-QT += network
-CONFIG += qt \
-    warn_on \
-    console \
-    depend_includepath
-qtAddLibrary(QtTest)
-
-# install
-target.path = $$[QT_INSTALL_PREFIX]/tests/qtp/qtp_qftp
-sources.files = $$SOURCES \
-    $$HEADERS \
-    $$RESOURCES \
-    $$FORMS \
-    *.pro \
-    images
-sources.path = $$[QT_INSTALL_PREFIX]/tests/qtp/qtp_qftp
-INSTALLS += target \
-    sources
-symbian { 
-    TARGET.UID3 = 0xED83EC09
-    include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri)
-    HEADERS += sym_iap_util.h
-    INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE
-    TARGET.CAPABILITY = "NetworkServices ReadUserData WriteUserData"
-    LIBS += -lesock \
-        -lcommdb \
-        -linsock # For IAP selection
-}
--- a/tests/qtp/qtp_qftp/sym_iap_util.h	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,510 +0,0 @@
-/****************************************************************************
-**
-** 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.
-**
-** 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 QSYM_IAP_UTIL_H
-#define QSYM_IAP_UTIL_H
-
-// Symbian
-#include <utf.h>
-#include <es_sock.h>
-#include <in_sock.h>
-#include <es_enum.h>
-#include <in_iface.h>
-#include <commdbconnpref.h>
-#include <e32cmn.h>
-
-// OpenC
-#include <sys/socket.h>
-#include <net/if.h>
-
-//Qt
-#include <QSettings>
-#include <QStringList>
-//#include <QTextCodec>
-
-_LIT(KIapNameSetting, "IAP\\Name");             // text - mandatory
-_LIT(KIapDialogPref, "IAP\\DialogPref");        // TUnit32 - optional
-_LIT(KIapService, "IAP\\IAPService");           // TUnit32 - mandatory
-_LIT(KIapServiceType, "IAP\\IAPServiceType");   // text - mandatory
-_LIT(KIapBearer, "IAP\\IAPBearer");             // TUint32 - optional
-_LIT(KIapBearerType, "IAP\\IAPBearerType");     // text - optional
-_LIT(KIapNetwork, "IAP\\IAPNetwork");           // TUint32 - optional
-
-const QLatin1String qtOrganizationTag("Trolltech");
-const QLatin1String qtNetworkModuleTag("QtNetwork");
-const QLatin1String iapGroupTag("IAP");
-const QLatin1String iapNamesArrayTag("Names");
-const QLatin1String iapNameItemTag("Name");
-
-static QTextCodec *utf16LETextCodec = 0;
-
-void clearIapNamesSettings(QSettings &settings) {
-    settings.beginGroup(qtNetworkModuleTag);
-        settings.beginGroup(iapGroupTag);
-           settings.remove(iapNamesArrayTag);
-        settings.endGroup();
-    settings.endGroup();
-}
-
-void writeIapNamesSettings(QSettings &settings, const QStringList& iapNames) {
-    clearIapNamesSettings(settings);
-    settings.beginGroup(qtNetworkModuleTag);
-        settings.beginGroup(iapGroupTag);
-            settings.beginWriteArray(iapNamesArrayTag);
-            for (int index = 0; index < iapNames.size(); ++index) {
-                settings.setArrayIndex(index);
-                settings.setValue(iapNameItemTag, iapNames.at(index));
-            }
-            settings.endArray();
-        settings.endGroup();
-    settings.endGroup();
-}
-
-void readIapNamesSettings(QSettings &settings, QStringList& iapNames) {
-    settings.beginGroup(qtNetworkModuleTag);
-        settings.beginGroup(iapGroupTag);
-            int last = settings.beginReadArray(iapNamesArrayTag);
-            for (int index = 0; index < last; ++index) {
-                settings.setArrayIndex(index);
-                iapNames.append(settings.value(iapNameItemTag).toString());
-            }
-            settings.endArray();
-        settings.endGroup();
-    settings.endGroup();
-}
-
-static QString qt_TNameToQString(TName data) {
-    if(utf16LETextCodec == 0)
-        utf16LETextCodec = QTextCodec::codecForName("UTF-16LE");
-
-    QByteArray tmpByteArray = QByteArray::fromRawData((char*)(data.PtrZ()), data.Length() * 2);
-    return utf16LETextCodec->toUnicode(tmpByteArray);
-}
-
-static QString qt_InterfaceInfoL()
-{
-    QString output;
-
-    TBuf8<512> buffer;
-    TBuf<128> t;
-    TAutoClose<RSocketServ> ss;
-    User::LeaveIfError(ss.iObj.Connect());
-    ss.PushL();
-
-    TAutoClose<RSocket> sock;
-    User::LeaveIfError(sock.iObj.Open(ss.iObj, _L("udp")));
-    sock.PushL();
-
-    User::LeaveIfError(sock.iObj.SetOpt(KSoInetEnumInterfaces, KSolInetIfCtrl));
-
-    TProtocolDesc in;
-    User::LeaveIfError(sock.iObj.Info(in));
-    printf("EPOC32 IP Configuration TCPIP Version %d.%d.%d\n", in.iVersion.iMajor, in.iVersion.iMinor, in.iVersion.iBuild);
-
-    TPckgBuf<TSoInetInterfaceInfo> info, next;
-
-    TInt res=sock.iObj.GetOpt(KSoInetNextInterface, KSolInetIfCtrl, info);
-    if(res!=KErrNone)
-        User::Leave(res);
-    TInt count = 0;
-    while(res==KErrNone) {
-        res=sock.iObj.GetOpt(KSoInetNextInterface, KSolInetIfCtrl, next);
-
-        if(info().iName != _L("") && info().iName != _L("loop6") && info().iName != _L("loop4")) {
-            printf("Interface %d\n", count++);
-
-            printf("Name \"%s\"\n", qt_TNameToQString(info().iName).toLatin1().data());
-            printf("NIF tag \"%s\"\n", qt_TNameToQString(info().iTag).toLatin1().data());
-
-            printf("State ");
-            switch (info().iState)
-            {
-                case EIfPending:
-                    printf("pending\n");
-                    break;
-                case EIfUp:
-                    printf("up\n");
-                    break;
-                case EIfBusy:
-                    printf("busy\n");
-                    break;
-                default:
-                    printf("down\n");
-                    break;
-            }
-
-            printf("Mtu %d\n", info().iMtu);
-            printf("Speed Metric %d\n", info().iSpeedMetric);
-
-            printf("Features:");
-            info().iFeatures & KIfIsLoopback         ? printf(" loopback") : printf("");
-            info().iFeatures & KIfIsDialup           ? printf(" dialup") : printf("");
-            info().iFeatures & KIfIsPointToPoint     ? printf(" pointtopoint") : printf("");
-            info().iFeatures & KIfCanBroadcast       ? printf(" canbroadcast") : printf("");
-            info().iFeatures & KIfCanMulticast       ? printf(" canmulticast") : printf("");
-            info().iFeatures & KIfCanSetMTU          ? printf(" cansetmtu") : printf("");
-            info().iFeatures & KIfHasHardwareAddr    ? printf(" hardwareaddr") : printf("");
-            info().iFeatures & KIfCanSetHardwareAddr ? printf(" cansethardwareaddr") : printf("");
-            printf("\n");
-
-            TName address;
-            info().iAddress.Output(address);
-            printf("Addr: %s\n", qt_TNameToQString(address).toLatin1().data());
-
-            if(info().iAddress.IsLinkLocal()) {
-                printf("  -link local\n");
-            } else if(info().iAddress.IsSiteLocal()) {
-                printf("  -site local\n");
-            } else {
-                printf("  -global\n");
-            }
-
-            info().iNetMask.Output(address);
-            printf("Netmask %s\n", qt_TNameToQString(address).toLatin1().data());
-
-            info().iBrdAddr.Output(address);
-            printf("Broadcast address %s\n", qt_TNameToQString(address).toLatin1().data());
-
-            info().iDefGate.Output(address);
-            printf("Gatew: %s\n", qt_TNameToQString(address).toLatin1().data());
-
-            info().iNameSer1.Output(address);
-            printf("DNS 1: %s\n", qt_TNameToQString(address).toLatin1().data());
-
-            info().iNameSer2.Output(address);
-            printf("DNS 2: %s\n", qt_TNameToQString(address).toLatin1().data());
-
-            if (info().iHwAddr.Family() != KAFUnspec) {
-                printf("Hardware address ");
-                TUint j;
-                for(j = sizeof(SSockAddr) ; j < sizeof(SSockAddr) + 6 ; ++j) {
-                    if(j < (TUint)info().iHwAddr.Length()) {
-                        printf("%02X", info().iHwAddr[j]);
-                    } else {
-                        printf("??");
-                    }
-                    if(j < sizeof(SSockAddr) + 5)
-                        printf("-");
-                    else
-                        printf("\n");
-                    }
-                }
-            }
-        if(res == KErrNone) {
-            info = next;
-            printf("\n");
-        } else {
-            printf("\n");
-        }
-    }
-
-    sock.Pop();
-    ss.Pop();
-
-    return output;
-}
-
-static QString qt_RouteInfoL() {
-    QString output;
-    TAutoClose<RSocketServ> ss;
-    User::LeaveIfError(ss.iObj.Connect());
-    ss.PushL();
-
-    TAutoClose<RSocket> sock;
-    User::LeaveIfError(sock.iObj.Open(ss.iObj, _L("udp")));
-    sock.PushL();
-
-    TSoInetRouteInfo routeInfo;
-    TPckg<TSoInetRouteInfo> routeInfoPkg(routeInfo);
-
-    TName destAddr;
-    TName netMask;
-    TName gateway;
-    TName ifAddr;
-
-    // Begins enumeration of routes by setting this option
-    User::LeaveIfError(sock.iObj.SetOpt(KSoInetEnumRoutes, KSolInetRtCtrl));
-
-    // The TSoInetRouteInfo contains information for a new route each time GetOpt returns KErrNone
-    for(TInt i = 0; sock.iObj.GetOpt(KSoInetNextRoute, KSolInetRtCtrl, routeInfoPkg) == KErrNone ; i++)
-    {
-      // Extract the destination and netmask
-      routeInfo.iDstAddr.Output(destAddr);
-      routeInfo.iNetMask.Output(netMask);
-      routeInfo.iGateway.Output(gateway);
-      routeInfo.iIfAddr.Output(ifAddr);
-/*
-      if(destAddr.Length() <= 2)
-          continue;
-
-      if(netMask.Find(_L("255.255.255.255")) != KErrNotFound
-              || netMask.Find(_L("0.0.0.0")) != KErrNotFound
-              || netMask.Find(_L("ffff:ffff:ffff:ffff")) != KErrNotFound)
-          continue;
-*/
-      printf("Route Info #[%i]\n", i);
-      printf("DstAddr %s\n", qt_TNameToQString(destAddr).toLatin1().data());
-      printf("NetMask %s\n", qt_TNameToQString(netMask).toLatin1().data());
-      printf("Gateway %s\n", qt_TNameToQString(gateway).toLatin1().data());
-      printf("IfAddr %s\n", qt_TNameToQString(ifAddr).toLatin1().data());
-      printf("\n");
-    }
-
-    sock.Pop();
-    ss.Pop();
-
-    return output;
-}
-
-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());
-#endif
-}
-
-static bool qt_SetDefaultIapName(const QString &iapName, int &error) {
-    struct ifreq ifReq;
-    // clear structure
-    memset(&ifReq, 0, sizeof(struct ifreq));
-    // set IAP name value
-    // make sure it is in UTF8
-    strcpy(ifReq.ifr_name, iapName.toUtf8().data());
-
-    if(setdefaultif(&ifReq) == 0) {
-        // OK
-        error = 0;
-        return true;
-    } else {
-        error = errno;
-        return false;
-    }
-
-}
-static bool qt_SetDefaultSnapId(const int snapId, int &error) {
-    struct ifreq ifReq;
-    // clear structure
-    memset(&ifReq, 0, sizeof(struct ifreq));
-    // set SNAP ID value
-    ifReq.ifr_ifru.snap_id = snapId;
-
-    if(setdefaultif(&ifReq) == 0) {
-        // OK
-        error = 0;
-        return true;
-    } else {
-        error = errno;
-        return false;
-    }
-
-}
-
-static void qt_SaveIapName(QSettings& settings, QStringList& iapNames, QString& iapNameValue) {
-    if(iapNames.contains(iapNameValue) && iapNames.first() == iapNameValue) {
-        // no need to update
-    } else {
-        if(iapNameValue != QString("Easy WLAN")) {
-            // new selection alway on top
-            iapNames.removeAll(iapNameValue);
-            iapNames.prepend(iapNameValue);
-            writeIapNamesSettings(settings, iapNames);
-        } else {
-            // Unbeliveable ... if IAP dodn't exist before
-            // no matter what you choose from IAP selection list
-            // you will get "Easy WLAN" as IAP name value
-
-            // somehow commsdb is not in sync
-        }
-    }
-}
-
-static QString qt_OfferIapDialog() {
-    TBuf8<256> iapName;
-
-    RSocketServ socketServ;
-    CleanupClosePushL(socketServ);
-
-    RConnection connection;
-    CleanupClosePushL(connection);
-
-    socketServ.Connect();
-    connection.Open(socketServ);
-    connection.Start();
-
-    connection.GetDesSetting(TPtrC(KIapNameSetting), iapName);
-
-    //connection.Stop();
-
-    iapName.ZeroTerminate();
-    QString strIapName((char*)iapName.Ptr());
-
-    int error = 0;
-    if(!qt_SetDefaultIapName(strIapName, error)) {
-        //printf("failed setdefaultif @ %i with %s and errno = %d \n", __LINE__, strIapName.toUtf8().data(), error);
-        strIapName = QString("");
-    }
-
-    CleanupStack::PopAndDestroy(&connection);
-    CleanupStack::PopAndDestroy(&socketServ);
-
-    return strIapName;
-}
-
-static QString qt_CheckForActiveConnection() {
-    TUint count;
-
-    RSocketServ serv;
-    CleanupClosePushL(serv);
-
-    RConnection conn;
-    CleanupClosePushL(conn);
-
-    serv.Connect();
-    conn.Open(serv);
-
-    TConnectionInfoBuf connInfo;
-
-    TBuf8<256> iapName;
-    TBuf8<256> iapServiceType;
-
-    QString strIapName;
-
-    if (conn.EnumerateConnections(count) == KErrNone) {
-        if(count > 0) {
-            for (TUint i = 1; i <= count; i++) {
-                if (conn.GetConnectionInfo(i, connInfo) == KErrNone) {
-                    RConnection tempConn;
-                    CleanupClosePushL(tempConn);
-                    tempConn.Open(serv);
-                    if (tempConn.Attach(connInfo, RConnection::EAttachTypeNormal) == KErrNone) {
-                       tempConn.GetDesSetting(TPtrC(KIapNameSetting), iapName);
-                       tempConn.GetDesSetting(TPtrC(KIapServiceType), iapServiceType);
-                       //tempConn.Stop();
-                       iapName.ZeroTerminate();
-		               iapServiceType.ZeroTerminate();
-
-//                        if(iapServiceType.Find(_L8("LANService")) != KErrNotFound) {
-//                            activeLanConnectionFound = ETrue;
-//                            break;
-//                        }
-			            strIapName = QString((char*)iapName.Ptr());
-                        int error = 0;
-                        if(!qt_SetDefaultIapName(strIapName, error)) {
-                            //printf("failed setdefaultif @ %i with %s and errno = %d \n", __LINE__, strIapName.toUtf8().data(), error);
-                            strIapName = QString("");
-                        }
-
-                        CleanupStack::PopAndDestroy(&tempConn);
-                        break;
-                    }
-                }
-            }
-        }
-    }
-
-    //conn.Stop();
-
-    CleanupStack::PopAndDestroy(&conn);
-    CleanupStack::PopAndDestroy(&serv);
-
-    return strIapName;
-}
-
-static QString qt_CheckSettingsForConnection(QStringList& iapNames) {
-    QString strIapName;
-    for(int index = 0; index < iapNames.size(); ++index) {
-        strIapName = iapNames.at(index);
-        int error = 0;
-        if(!qt_SetDefaultIapName(strIapName, error)) {
-            //printf("failed setdefaultif @ %i with %s and errno = %d \n", __LINE__, strIapName.toUtf8().data(), error);
-            strIapName = QString("");
-        } else {
-            return strIapName;
-        }
-    }
-    return strIapName;
-}
-
-static void qt_SetDefaultIapL()
-{
-    // settings @ /c/data/.config/Trolltech.com
-    QSettings settings(QSettings::UserScope, qtOrganizationTag);
-    // populate iap name list
-    QStringList iapNames;
-    readIapNamesSettings(settings, iapNames);
-
-    QString iapNameValue;
-
-    iapNameValue = qt_CheckForActiveConnection();
-
-    if(!iapNameValue.isEmpty()) {
-        qt_SaveIapName(settings, iapNames, iapNameValue);
-        return;
-    }
-
-    iapNameValue = qt_CheckSettingsForConnection(iapNames);
-
-    if(!iapNameValue.isEmpty()) {
-        qt_SaveIapName(settings, iapNames, iapNameValue);
-        return;
-    }
-
-    /*
-     * no active LAN connections yet
-     * no IAP in settings
-     * offer IAP dialog to user
-     */
-    iapNameValue = qt_OfferIapDialog();
-    qt_SaveIapName(settings, iapNames, iapNameValue);
-    return;
-
-}
-
-static int qt_SetDefaultIap()
-{
-    TRAPD(err1, qt_SetDefaultIapL());
-//    TRAPD(err2, qt_InterfaceInfoL());
-//    TRAPD(err3, qt_RouteInfoL());
-    return err1;
-}
-
-#endif // QSYM_IAP_UTIL_H
--- a/tests/qtp/qtp_raycasting/autotest.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,99 +0,0 @@
-/****************************************************************************
-**
-** 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.
-**
-** 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 "raycasting.h"
-#include "autotest.h"
-
-
-void autoTest::initTestCase()
-{
-    Q_INIT_RESOURCE(qtp_raycasting);
-}
-
-void autoTest::testDefaults()
-{
-	
-	Raycasting mw;
-	mw.show();
-
-	// mw.openFile(":/files/bubbles.svg");
-
-	// Test default values for widget properties
-	QCOMPARE( mw.acceptDrops(), false );
-/*
-        QCOMPARE( mw.hasEditFocus(), false );
-	QCOMPARE( mw.hasFocus(), false );
-	QCOMPARE( mw.hasMouseTracking(), false );
-	QCOMPARE( mw.isActiveWindow(), true );
-	QCOMPARE( mw.isEnabled(), true );
-	QCOMPARE( mw.isFullScreen(), false );
-	QCOMPARE( mw.isHidden(), false );
-	QCOMPARE( mw.isMaximized(), false );
-	QCOMPARE( mw.isMinimized(), false );
-	QCOMPARE( mw.isModal(), false );
-	QCOMPARE( mw.isVisible(), true );
-	QCOMPARE( mw.isWindow(), true );
-	QCOMPARE( mw.isWindowModified(), false );
-	QCOMPARE( mw.underMouse(), false );
-*/
-        QCOMPARE( mw.updatesEnabled(), true );
-	
-	mw.hide();
-}
-
-void autoTest::testRaycasting()
-{
-	
-	ray = new Raycasting;
-	ray->show();
-
-	// mw.openFile(":/files/bubbles.svg");
-
-	// Test at least playerpos with keyboard input
-        // what else?
-        /*
-	QCOMPARE( ray->playerPos.x(), 1.50f );
-	QCOMPARE( ray->playerPos.y(), 1.50f );
-        */
-	ray->hide();
-	delete ray;
-}
--- a/tests/qtp/qtp_raycasting/autotest.h	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,69 +0,0 @@
-/****************************************************************************
-**
-** 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.
-**
-** 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 AUTOTEST_H
-#define AUTOTEST_H
-
-#include <QtGui>
-#include <QObject>
-#include <QtTest>
-
-class Raycasting; 
-
-class autoTest: public QObject/* , private Raycasting */
-{
-	Q_OBJECT
-	
-	void initTestCase();
-	
-	private slots:
-		void testDefaults();
-		void testRaycasting();
-		
-	private:
-		Raycasting *ray;
-		
-	private:
-		friend class Raycasting;
-};
-	
-#endif
--- a/tests/qtp/qtp_raycasting/main.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,66 +0,0 @@
-/****************************************************************************
-**
-** 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.
-**
-** 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>
-#include <QtGui>
-#include <QtTest>
-#include "raycasting.h"
-#include "autotest.h"
-
-/*
-int main(int argc, char **argv)
-{
-    QApplication app(argc, argv);
-
-    Raycasting w;
-    w.setWindowTitle("Raycasting");
-#if defined(Q_OS_SYMBIAN) || defined(Q_OS_WINCE_WM)
-    w.showMaximized();
-#else
-    w.resize(640, 480);
-    w.show();
-#endif
-
-    return app.exec();
-}
-*/
-
-QTEST_MAIN(autoTest)
--- a/tests/qtp/qtp_raycasting/qtp_raycasting.pro	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,24 +0,0 @@
-
-TEMPLATE = app
-HEADERS       = autotest.h \
-                raycasting.h 
-SOURCES = autotest.cpp \
-          raycasting.cpp \
-          main.cpp
-RESOURCES += qtp_raycasting.qrc
-
-CONFIG += qt warn_on console depend_includepath
-
-qtAddLibrary(QtTest)
-
-symbian {
-    TARGET.UID3 = 0xED83EC0A
-    TARGET.CAPABILITY="ALL -TCB"
-    include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri)
-    RSS_RULES ="group_name=\"QtTests\";" 
-}
-
-target.path = $$[QT_INSTALL_PREFIX]/tests/qtp/qtp_raycasting
-sources.files = $$SOURCES $$HEADERS $$RESOURCES $$FORMS *.pro
-sources.path = $$[QT_INSTALL_PREFIX]/tests/qtp/qtp_raycasting
-INSTALLS += target sources
--- a/tests/qtp/qtp_raycasting/qtp_raycasting.qrc	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-<RCC>
-    <qresource prefix="/" >
-        <file>textures.png</file>
-    </qresource>
-</RCC>
--- a/tests/qtp/qtp_raycasting/raycasting.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,354 +0,0 @@
-/****************************************************************************
-**
-** 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 demonstration applications 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 <math.h>
-
-#include "raycasting.h"
-
-#ifndef M_PI
-#define M_PI 3.14159265358979323846
-#endif
-
-#define WORLD_SIZE 8
-int world_map[WORLD_SIZE][WORLD_SIZE] = {
-    { 1, 1, 1, 1, 6, 1, 1, 1 },
-    { 1, 0, 0, 1, 0, 0, 0, 7 },
-    { 1, 1, 0, 1, 0, 1, 1, 1 },
-    { 6, 0, 0, 0, 0, 0, 0, 3 },
-    { 1, 8, 8, 0, 8, 0, 8, 1 },
-    { 2, 2, 0, 0, 8, 8, 7, 1 },
-    { 3, 0, 0, 0, 0, 0, 0, 5 },
-    { 2, 2, 2, 2, 7, 4, 4, 4 },
-};
-
-#define TEXTURE_SIZE 64
-#define TEXTURE_BLOCK (TEXTURE_SIZE * TEXTURE_SIZE)
-
-Raycasting::Raycasting(QWidget *parent)
-            : QWidget(parent)
-            , angle(0.5)
-            , playerPos(1.5, 1.5)
-            , angleDelta(0)
-            , moveDelta(0)
-            , touchDevice(false) {
-
-        // http://www.areyep.com/RIPandMCS-TextureLibrary.html
-        textureImg.load(":/textures.png");
-        textureImg = textureImg.convertToFormat(QImage::Format_ARGB32);
-        Q_ASSERT(textureImg.width() == TEXTURE_SIZE * 2);
-        Q_ASSERT(textureImg.bytesPerLine() == 4 * TEXTURE_SIZE * 2);
-        textureCount = textureImg.height() / TEXTURE_SIZE;
-
-        watch.start();
-        ticker.start(25, this);
-        setAttribute(Qt::WA_OpaquePaintEvent, true);
-        setMouseTracking(false);
-    }
-
-    void Raycasting::updatePlayer() {
-        int interval = qBound(20, watch.elapsed(), 250);
-        watch.start();
-        angle += angleDelta * interval / 1000;
-        qreal step = moveDelta * interval / 1000;
-        qreal dx = cos(angle) * step;
-        qreal dy = sin(angle) * step;
-        QPointF pos = playerPos + 3 * QPointF(dx, dy);
-        int xi = static_cast<int>(pos.x());
-        int yi = static_cast<int>(pos.y());
-        if (world_map[yi][xi] == 0)
-            playerPos = playerPos + QPointF(dx, dy);
-    }
-
-    void Raycasting::showFps() {
-        static QTime frameTick;
-        static int totalFrame = 0;
-        if (!(totalFrame & 31)) {
-            int elapsed = frameTick.elapsed();
-            frameTick.start();
-            int fps = 32 * 1000 / (1 + elapsed);
-            setWindowTitle(QString("Raycasting (%1 FPS)").arg(fps));
-        }
-        totalFrame++;
-    }
-
-    void Raycasting::render() {
-
-        // setup the screen surface
-        if (buffer.size() != bufferSize)
-            buffer = QImage(bufferSize, QImage::Format_ARGB32);
-        int bufw = buffer.width();
-        int bufh = buffer.height();
-        if (bufw <= 0 || bufh <= 0)
-            return;
-
-        // we intentionally cheat here, to avoid detach
-        const uchar *ptr = buffer.bits();
-        QRgb *start = (QRgb*)(ptr);
-        QRgb stride = buffer.bytesPerLine() / 4;
-        QRgb *finish = start + stride * bufh;
-
-        // prepare the texture pointer
-        const uchar *src = textureImg.bits();
-        const QRgb *texsrc = reinterpret_cast<const QRgb*>(src);
-
-        // cast all rays here
-        qreal sina = sin(angle);
-        qreal cosa = cos(angle);
-        qreal u = cosa - sina;
-        qreal v = sina + cosa;
-        qreal du = 2 * sina / bufw;
-        qreal dv = -2 * cosa / bufw;
-
-        for (int ray = 0; ray < bufw; ++ray, u += du, v += dv) {
-            // everytime this ray advances 'u' units in x direction,
-            // it also advanced 'v' units in y direction
-            qreal uu = (u < 0) ? -u : u;
-            qreal vv = (v < 0) ? -v : v;
-            qreal duu = 1 / uu;
-            qreal dvv = 1 / vv;
-            int stepx = (u < 0) ? -1 : 1;
-            int stepy = (v < 0) ? -1 : 1;
-
-            // the cell in the map that we need to check
-            qreal px = playerPos.x();
-            qreal py = playerPos.y();
-            int mapx = static_cast<int>(px);
-            int mapy = static_cast<int>(py);
-
-            // the position and texture for the hit
-            int texture = 0;
-            qreal hitdist = 0.1;
-            qreal texofs = 0;
-            bool dark = false;
-
-            // first hit at constant x and constant y lines
-            qreal distx = (u > 0) ? (mapx + 1 - px) * duu : (px - mapx) * duu;
-            qreal disty = (v > 0) ? (mapy + 1 - py) * dvv : (py - mapy) * dvv;
-
-            // loop until we hit something
-            while (texture <= 0) {
-                if (distx > disty) {
-                    // shorter distance to a hit in constant y line
-                    hitdist = disty;
-                    disty += dvv;
-                    mapy += stepy;
-                    texture = world_map[mapy][mapx];
-                    if (texture > 0) {
-                        dark = true;
-                        if (stepy > 0) {
-                            qreal ofs = px + u * (mapy - py) / v;
-                            texofs = ofs - floor(ofs);
-                        } else {
-                            qreal ofs = px + u * (mapy + 1 - py) / v;
-                            texofs = ofs - floor(ofs);
-                        }
-                    }
-                } else {
-                    // shorter distance to a hit in constant x line
-                    hitdist = distx;
-                    distx += duu;
-                    mapx += stepx;
-                    texture = world_map[mapy][mapx];
-                    if (texture > 0) {
-                        if (stepx > 0) {
-                            qreal ofs = py + v * (mapx - px) / u;
-                            texofs = ofs - floor(ofs);
-                        } else {
-                            qreal ofs = py + v * (mapx + 1 - px) / u;
-                            texofs = ceil(ofs) - ofs;
-                        }
-                    }
-                }
-            }
-
-            // get the texture, note that the texture image
-            // has two textures horizontally, "normal" vs "dark"
-            int col = static_cast<int>(texofs * TEXTURE_SIZE);
-            col = qBound(0, col, TEXTURE_SIZE - 1);
-            texture = (texture - 1) % textureCount;
-            const QRgb *tex = texsrc + TEXTURE_BLOCK * texture * 2 +
-                              (TEXTURE_SIZE * 2 * col);
-            if (dark)
-                tex += TEXTURE_SIZE;
-
-            // start from the texture center (horizontally)
-            int h = static_cast<int>(bufw / hitdist / 2);
-            int dy = (TEXTURE_SIZE << 12) / h;
-            int p1 = ((TEXTURE_SIZE / 2) << 12) - dy;
-            int p2 = p1 + dy;
-
-            // start from the screen center (vertically)
-            // y1 will go up (decrease), y2 will go down (increase)
-            int y1 = bufh / 2;
-            int y2 = y1 + 1;
-            QRgb *pixel1 = start + y1 * stride + ray;
-            QRgb *pixel2 = pixel1 + stride;
-
-            // map the texture to the sliver
-            while (y1 >= 0 && y2 < bufh && p1 >= 0) {
-                *pixel1 = tex[p1 >> 12];
-                *pixel2 = tex[p2 >> 12];
-                p1 -= dy;
-                p2 += dy;
-                --y1;
-                ++y2;
-                pixel1 -= stride;
-                pixel2 += stride;
-            }
-
-            // ceiling and floor
-            for (; pixel1 > start; pixel1 -= stride)
-                *pixel1 = qRgb(0, 0, 0);
-            for (; pixel2 < finish; pixel2 += stride)
-                *pixel2 = qRgb(96, 96, 96);
-        }
-
-        update(QRect(QPoint(0, 0), bufferSize));
-    }
-
-    void Raycasting::resizeEvent(QResizeEvent*) {
-#if defined(Q_OS_WINCE_WM)
-        touchDevice = true;
-#elif defined(Q_OS_SYMBIAN)
-        // FIXME: use HAL
-        if (width() > 480 || height() > 480)
-            touchDevice = true;
-#else
-        touchDevice = false;
-#endif
-        if (touchDevice) {
-            if (width() < height()) {
-                trackPad = QRect(0, height() / 2, width(), height() / 2);
-                centerPad = QPoint(width() / 2, height() * 3 / 4);
-                bufferSize = QSize(width(), height() / 2);
-            } else {
-                trackPad = QRect(width() / 2, 0, width() / 2, height());
-                centerPad = QPoint(width() * 3 / 4, height() / 2);
-                bufferSize = QSize(width() / 2, height());
-            }
-        } else {
-            trackPad = QRect();
-            bufferSize = size();
-        }
-        update();
-   }
-
-    void Raycasting::timerEvent(QTimerEvent*) {
-        updatePlayer();
-        render();
-        showFps();
-    }
-
-    void Raycasting::paintEvent(QPaintEvent *event) {
-        QPainter p(this);
-        p.setCompositionMode(QPainter::CompositionMode_Source);
-
-        p.drawImage(event->rect(), buffer, event->rect());
-
-        if (touchDevice && event->rect().intersects(trackPad)) {
-            p.fillRect(trackPad, Qt::white);
-            p.setPen(QPen(QColor(224, 224, 224), 6));
-            int rad = qMin(trackPad.width(), trackPad.height()) * 0.3;
-            p.drawEllipse(centerPad, rad, rad);
-
-            p.setPen(Qt::NoPen);
-            p.setBrush(Qt::gray);
-
-            QPolygon poly;
-            poly << QPoint(-30, 0);
-            poly << QPoint(0, -40);
-            poly << QPoint(30, 0);
-
-            p.translate(centerPad);
-            for (int i = 0; i < 4; ++i) {
-                p.rotate(90);
-                p.translate(0, 20 - rad);
-                p.drawPolygon(poly);
-                p.translate(0, rad - 20);
-            }
-        }
-
-        p.end();
-    }
-
-    void Raycasting::keyPressEvent(QKeyEvent *event) {
-        event->accept();
-        if (event->key() == Qt::Key_Left)
-            angleDelta = 1.3 * M_PI;
-        if (event->key() == Qt::Key_Right)
-            angleDelta = -1.3 * M_PI;
-        if (event->key() == Qt::Key_Up)
-            moveDelta = 2.5;
-        if (event->key() == Qt::Key_Down)
-            moveDelta = -2.5;
-    }
-
-    void Raycasting::keyReleaseEvent(QKeyEvent *event) {
-        event->accept();
-        if (event->key() == Qt::Key_Left)
-            angleDelta = (angleDelta > 0) ? 0 : angleDelta;
-        if (event->key() == Qt::Key_Right)
-            angleDelta = (angleDelta < 0) ? 0 : angleDelta;
-        if (event->key() == Qt::Key_Up)
-            moveDelta = (moveDelta > 0) ? 0 : moveDelta;
-        if (event->key() == Qt::Key_Down)
-            moveDelta = (moveDelta < 0) ? 0 : moveDelta;
-    }
-
-    void Raycasting::mousePressEvent(QMouseEvent *event) {
-        qreal dx = centerPad.x() - event->pos().x();
-        qreal dy = centerPad.y() - event->pos().y();
-        angleDelta = dx * 2 * M_PI / width();
-        moveDelta = dy * 10 / height();
-    }
-
-    void Raycasting::mouseMoveEvent(QMouseEvent *event) {
-        qreal dx = centerPad.x() - event->pos().x();
-        qreal dy = centerPad.y() - event->pos().y();
-        angleDelta = dx * 2 * M_PI / width();
-        moveDelta = dy * 10 / height();
-    }
-
-    void Raycasting::mouseReleaseEvent(QMouseEvent*) {
-        angleDelta = 0;
-        moveDelta = 0;
-    }
-	
--- a/tests/qtp/qtp_raycasting/raycasting.h	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,104 +0,0 @@
-/****************************************************************************
-**
-** 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.
-**
-** 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 RAYCASTING_H
-#define RAYCASTING_H
-
-#include <QtCore>
-#include <QtGui>
-#include <QMainWindow>
-#include "autotest.h"
-
-QT_BEGIN_NAMESPACE
-class QAction;
-class QMenu;
-QT_END_NAMESPACE
-
-//! [0]
-class Raycasting: public QWidget
-{
-public:
-    Raycasting(QWidget *parent = 0);
-
-    void updatePlayer();
-
-    void showFps();
-
-    void render();
-
-protected:
-
-    void resizeEvent(QResizeEvent*);
-
-    void timerEvent(QTimerEvent*);
-
-    void paintEvent(QPaintEvent *event);
-    
-    void keyPressEvent(QKeyEvent *event);
-
-    void keyReleaseEvent(QKeyEvent *event);
-
-    void mousePressEvent(QMouseEvent *event);
-
-    void mouseMoveEvent(QMouseEvent *event);
-
-    void mouseReleaseEvent(QMouseEvent*);
-
-private:
-    QTime watch;
-    QBasicTimer ticker;
-    QImage buffer;
-    qreal angle;
-    QPointF playerPos;
-    qreal angleDelta;
-    qreal moveDelta;
-    QImage textureImg;
-    int textureCount;
-    bool touchDevice;
-    QRect trackPad;
-    QPoint centerPad;
-    QSize bufferSize;
-    
-    // friend class autotest;
-};
-//! [1]
-
-#endif
Binary file tests/qtp/qtp_raycasting/textures.png has changed
--- a/tests/qtp/qtp_star/main.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,48 +0,0 @@
-/****************************************************************************
-**
-** 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 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 <QApplication>
-
-#include <QtTest>
-#include "startest.h"
-#include "starwidget.h"
-
-QTEST_MAIN(starTests)
--- a/tests/qtp/qtp_star/qtp_star.pro	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,17 +0,0 @@
-TEMPLATE = app
-TARGET = qtp_star
-CONFIG += qt debug warn_on qtestlib console depend_includepath
-QT += openvg
-SOURCES = starwidget.cpp startest.cpp main.cpp
-HEADERS = starwidget.h startest.h
-LIBS += $$QMAKE_LIBS_OPENVG
-
-qtAddLibrary(QtTest)
-
-symbian {
-    TARGET.UID3 = 0xED83EC0B
-    TARGET.CAPABILITY="ALL -TCB"
-    // TARGET.CAPABILITY="TCB"
-    include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri)
-    RSS_RULES ="group_name=\"QtTests\";" 
-}
--- a/tests/qtp/qtp_star/startest.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,79 +0,0 @@
-/****************************************************************************
-**
-** 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 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 "startest.h"
-#include "starwidget.h"
-
-	
-void starTests::initTestCase()
-{
-	/*
-	QApplication::setGraphicsSystem("openvg");
-*/	
-}
-
-void starTests::testVoid()
-{
-	StarWidget mw;
-
-	// Test default values for widget properties
-	QVERIFY( !mw.acceptDrops() );
-	QVERIFY( !mw.hasEditFocus() );
-	QVERIFY( !mw.hasFocus() );
-	QVERIFY( !mw.hasMouseTracking() );
-	QVERIFY( mw.isActiveWindow() );
-//	QVERIFY( mw.isAncestorOf() );
-	QVERIFY( mw.isEnabled() );
-//	QVERIFY( mw.isEnabledTo() );
-	QVERIFY( mw.isFullScreen() );
-	QVERIFY( mw.isHidden() );
-	QVERIFY( mw.isMaximized() );
-	QVERIFY( mw.isMinimized() );
-	QVERIFY( mw.isModal() );
-	QVERIFY( !mw.isVisible() );
-//	QVERIFY( mw.isVisibleTo() );
-	QVERIFY( mw.isWindow() );
-	QVERIFY( mw.isWindowModified() );
-	QVERIFY( mw.underMouse() );
-	QVERIFY( mw.updatesEnabled() );
-
-	QVERIFY( 1 == 1 );
-}
--- a/tests/qtp/qtp_star/startest.h	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,59 +0,0 @@
-/****************************************************************************
-**
-** 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 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 STARTEST_H
-#define STARTEST_H
-
-#include <QtTest>
-#include <QObject>
-
-class starTests: public QObject
-{
-	Q_OBJECT
-	
-	void initTestCase();
-	
-	private slots:
-		void testVoid();
-};
-	
-
-#endif
--- a/tests/qtp/qtp_star/starwidget.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,115 +0,0 @@
-/****************************************************************************
-**
-** 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 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 "starwidget.h"
-
-StarWidget::StarWidget(QWidget *parent)
-    : QWidget(parent)
-    , path(VG_INVALID_HANDLE)
-    , pen(Qt::red, 4.0, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin)
-    , brush(Qt::yellow)
-{
-    setMinimumSize(220, 250);
-    setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding);
-}
-
-static VGubyte const starSegments[] = {
-    VG_MOVE_TO_ABS,
-    VG_LINE_TO_REL,
-    VG_LINE_TO_REL,
-    VG_LINE_TO_REL,
-    VG_LINE_TO_REL,
-    VG_CLOSE_PATH
-};
-static VGfloat const starCoords[] = {
-    110, 35,
-    50, 160,
-    -130, -100,
-    160, 0,
-    -130, 100
-};
-
-void StarWidget::paintEvent(QPaintEvent *)
-{
-    QPainter painter;
-    painter.begin(this);
-
-    // Make sure that we are using the OpenVG paint engine.
-    if (painter.paintEngine()->type() != QPaintEngine::OpenVG) {
-#ifdef Q_WS_QWS
-        qWarning("Not using OpenVG: use the '-display' option to specify an OpenVG driver");
-#else
-        qWarning("Not using OpenVG: specify '-graphicssystem OpenVG'");
-#endif
-        return;
-    }
-
-    // Select a pen and a brush for drawing the star.
-    painter.setPen(pen);
-    painter.setBrush(brush);
-
-    // We want the star border to be anti-aliased.
-    painter.setRenderHints(QPainter::Antialiasing);
-
-    // Flush the state changes to the OpenVG implementation
-    // and prepare to perform raw OpenVG calls.
-    painter.beginNativePainting();
-
-    // Cache the path if we haven't already.
-    if (path == VG_INVALID_HANDLE) {
-        path = vgCreatePath(VG_PATH_FORMAT_STANDARD,
-                            VG_PATH_DATATYPE_F,
-                            1.0f, // scale
-                            0.0f, // bias
-                            6,    // segmentCapacityHint
-                            10,   // coordCapacityHint
-                            VG_PATH_CAPABILITY_ALL);
-        vgAppendPathData(path, sizeof(starSegments), starSegments, starCoords);
-    }
-
-    // Draw the star directly using the OpenVG API.
-    vgDrawPath(path, VG_FILL_PATH | VG_STROKE_PATH);
-
-    // Restore normal QPainter operations.
-    painter.endNativePainting();
-
-    painter.end();
-}
--- a/tests/qtp/qtp_star/starwidget.h	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,66 +0,0 @@
-/****************************************************************************
-**
-** 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 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 STARWIDGET_H
-#define STARWIDGET_H
-
-#include <QWidget>
-#include <QPainter>
-#include <QPaintEngine>
-#include "qvg.h"
-
-class StarWidget : public QWidget
-{
-    Q_OBJECT
-public:
-    StarWidget(QWidget *parent = 0);
-    ~StarWidget() {}
-
-protected:
-    void paintEvent(QPaintEvent *);
-
-private:
-    VGPath path;
-    QPen pen;
-    QBrush brush;
-};
-
-#endif
--- a/tests/qtp/qtp_svgviewer/autotest.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,210 +0,0 @@
-/****************************************************************************
-**
-** 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.
-**
-** 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 "mainwindow.h"
-#include "autotest.h"
-
-
-void autoTest::initTestCase()
-{
-    Q_INIT_RESOURCE(qtp_svgviewer);
-}
-
-void autoTest::testDefaults()
-{
-	
-	MainWindow mw;
-        mw.openFile(":/files/bubbles.svg");
-        mw.show();
-
-        // Test default values for widget properties
-//	QVERIFY( !mw.acceptDrops() );
-//	QVERIFY( !mw.hasEditFocus() );
-	QVERIFY( !mw.hasFocus() );
-	QVERIFY( !mw.hasMouseTracking() );
-	QVERIFY( mw.isActiveWindow() );
-	QVERIFY( mw.isEnabled() );
-        /*
-//	QVERIFY( mw.isFullScreen() );
-//	QVERIFY( mw.isHidden() );
-	QVERIFY( mw.isMaximized() );
-	QVERIFY( mw.isMinimized() );
-	QVERIFY( mw.isModal() );
-	QVERIFY( !mw.isVisible() );
-	QVERIFY( mw.isWindow() );
-	QVERIFY( mw.isWindowModified() );
-	QVERIFY( mw.underMouse() );
-        QVERIFY( mw.updatesEnabled() );
-        */
-
-        mw.hide();
-
-}
-
-void autoTest::testMainWindow()
-{
-        MainWindow mw;
-        mw.openFile(":/files/bubbles.svg");
-        mw.show();
-
-        // What to test here...
-        // renderer switch
-        //
-
-        QMenu *rendererMenu = NULL;
-        QMenu *viewMenu = NULL;
-        QList<QMenu *> allMenus = mw.findChildren<QMenu *>();
-        QVERIFY( allMenus.count() > 0 );
-
-        for ( int i = 0; i < allMenus.count(); i++ )
-        {
-            if ( allMenus.at(i)->title() == QString("&Renderer"))
-            {
-                rendererMenu = allMenus.at(i);
-            }
-            else if ( allMenus.at(i)->title() == QString("&View"))
-            {
-                viewMenu = allMenus.at(i);
-            }
-            else
-            {
-                // not currently tested by this autotest
-            }
-        }
-        QVERIFY( rendererMenu );
-        QVERIFY( !rendererMenu->isEmpty() );
-
-        QVERIFY( viewMenu );
-        QVERIFY( !viewMenu->isEmpty() );
-
-        QAction *backgroundAction = NULL;
-        QAction *outlineAction = NULL;
-        QAction *nativeAction = NULL;
-        QAction *openglAction = NULL;
-        QAction *imageAction = NULL;
-        QList<QAction *> allActions = mw.findChildren<QAction *>();
-        QVERIFY( allActions.count() > 0 );
-
-        for ( int i = 0; i < allActions.count(); i++ )
-        {
-            if ( allActions.at(i)->text() == QString("&Background"))
-            {
-                backgroundAction = allActions.at(i);
-            }
-            else if ( allActions.at(i)->text() == QString("&Outline"))
-            {
-                outlineAction = allActions.at(i);
-            }
-            else if ( allActions.at(i)->text() == QString("&Native"))
-            {
-                nativeAction = allActions.at(i);
-            }
-            else if ( allActions.at(i)->text() == QString("&OpenGL"))
-            {
-                openglAction = allActions.at(i);
-            }
-            else if ( allActions.at(i)->text() == QString("&Image"))
-            {
-                imageAction = allActions.at(i);
-            }
-            else
-            {
-                // not currently tested by this autotest
-            }
-        }
-        QVERIFY( backgroundAction );
-        QVERIFY( outlineAction );
-
-        rendererMenu->show();
-        QTest::qWait(300);
-        imageAction->trigger();
-        QTest::qWait(200);
-        rendererMenu->hide();
-        QTest::qWait(1000);
-
-#ifndef QT_NO_OPENGL
-        rendererMenu->show();
-        QTest::qWait(300);
-        openglAction->trigger();
-        QTest::qWait(200);
-        rendererMenu->hide();
-        QTest::qWait(1000);
-#endif
-
-        rendererMenu->show();
-        QTest::qWait(300);
-        nativeAction->trigger();
-        QTest::qWait(200);
-        rendererMenu->hide();
-        QTest::qWait(1000);
-
-        viewMenu->show();
-        QTest::qWait(300);
-        backgroundAction->trigger();
-        QTest::qWait(200);
-        viewMenu->hide();
-        QTest::qWait(500);
-
-        viewMenu->show();
-        QTest::qWait(300);
-        backgroundAction->trigger();
-        QTest::qWait(200);
-        viewMenu->hide();
-        QTest::qWait(500);
-
-        viewMenu->show();
-        QTest::qWait(300);
-        outlineAction->trigger();
-        viewMenu->hide(); // calling trigger directly doesn't hide menu item
-        QTest::qWait(500);
-
-        viewMenu->show();
-        QTest::qWait(300);
-        outlineAction->trigger(); // have to use trigger method, because qaction won't accept mouse clicks
-        viewMenu->hide(); // calling trigger directly doesn't hide menu item
-        QTest::qWait(1000);
-
-        QTest::qWait(2000);
-        mw.hide();
-
-
-}
--- a/tests/qtp/qtp_svgviewer/autotest.h	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,62 +0,0 @@
-/****************************************************************************
-**
-** 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.
-**
-** 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 AUTOTEST_H
-#define AUTOTEST_H
-
-#include <QtGui>
-#include <QObject>
-#include <QtTest>
-
-
-class autoTest: public QObject
-{
-	Q_OBJECT
-	
-	void initTestCase();
-	
-	private slots:
-		void testDefaults();
-                void testMainWindow();
-};
-	
-#endif
--- a/tests/qtp/qtp_svgviewer/files/bubbles.svg	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,215 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
-<svg width="20cm" height="15cm" viewBox="0 0 800 600"
-    xmlns="http://www.w3.org/2000/svg"
-    xmlns:xlink="http://www.w3.org/1999/xlink/"
-    baseProfile="tiny" version="1.2">
-  <title>Spheres</title>
-  <desc>Semi-transparent bubbles on a colored background.</desc>
-    <defs>
-      <!-- Create radial gradients for each bubble. -->
-      <radialGradient id="blueBubble" gradientUnits="userSpaceOnUse"
-                      cx="0" cy="0" r="100" fx="-50" fy="-50">
-        <stop offset="0%" stop-color="white" stop-opacity="1" />
-        <stop offset="25%" stop-color="#cdcdff" stop-opacity=".65" />
-        <stop offset="100%" stop-color="#cdaacd" stop-opacity=".75" />
-      </radialGradient>
-      <radialGradient id="redBubble" gradientUnits="userSpaceOnUse"
-                      cx="0" cy="0" r="100" fx="-50" fy="-50">
-        <stop offset="0%" stop-color="white" stop-opacity="1" />
-        <stop offset="25%" stop-color="#ffcdcd" stop-opacity=".65" />
-        <stop offset="100%" stop-color="#bbbb99" stop-opacity=".75" />
-      </radialGradient>
-      <radialGradient id="greenBubble" gradientUnits="userSpaceOnUse"
-                      cx="0" cy="0" r="100" fx="-50" fy="-50">
-        <stop offset="0%" stop-color="white" stop-opacity="1" />
-        <stop offset="25%" stop-color="#cdffcd" stop-opacity=".65" />
-        <stop offset="100%" stop-color="#99aaaa" stop-opacity=".75" />
-      </radialGradient>
-      <radialGradient id="yellowBubble" gradientUnits="userSpaceOnUse"
-                      cx="0" cy="0" r="100" fx="-50" fy="-50">
-        <stop offset="0%" stop-color="white" stop-opacity="1" />
-        <stop offset="25%" stop-color="#ffffcd" stop-opacity=".65" />
-        <stop offset="100%" stop-color="#bbbbaa" stop-opacity=".75" />
-      </radialGradient>
-      <radialGradient id="background" gradientUnits="userSpaceOnUse"
-                      cx="0" cy="0" r="400" fx="250" fy="250">
-        <stop offset="0%" stop-color="#ffffee" />
-        <stop offset="100%" stop-color="#ccccaa" />
-      </radialGradient>
-      <linearGradient id="surface" gradientUnits="userSpaceOnUse"
-                      x1="-100" y1="200" x2="400" y2="200">
-        <stop offset="0%" stop-color="#ffffcc" />
-        <stop offset="100%" stop-color="#bbbb88" />
-      </linearGradient>
-
-      <!-- Create radial gradients for each circle to make them look like
-           spheres. -->
-      <radialGradient id="blueSphere" gradientUnits="userSpaceOnUse"
-                      cx="0" cy="0" r="100" fx="-50" fy="-50">
-        <stop offset="0%" stop-color="white" />
-        <stop offset="75%" stop-color="blue" />
-        <stop offset="100%" stop-color="#222244" />
-      </radialGradient>
-      <radialGradient id="redSphere" gradientUnits="userSpaceOnUse"
-                      cx="0" cy="0" r="100" fx="-50" fy="-50">
-        <stop offset="0%" stop-color="white" />
-        <stop offset="75%" stop-color="red" />
-        <stop offset="100%" stop-color="#442222" />
-      </radialGradient>
-      <radialGradient id="greenSphere" gradientUnits="userSpaceOnUse"
-                      cx="0" cy="0" r="100" fx="-50" fy="-50">
-        <stop offset="0%" stop-color="white" />
-        <stop offset="75%" stop-color="green" />
-        <stop offset="100%" stop-color="#113311" />
-      </radialGradient>
-      <radialGradient id="yellowSphere" gradientUnits="userSpaceOnUse"
-                      cx="0" cy="0" r="100" fx="-50" fy="-50">
-        <stop offset="0%" stop-color="white" />
-        <stop offset="75%" stop-color="yellow" />
-        <stop offset="100%" stop-color="#444422" />
-      </radialGradient>
-      <radialGradient id="shadowGrad" gradientUnits="userSpaceOnUse"
-                      cx="0" cy="0" r="100" fx="-50" fy="50">
-        <stop offset="0%" stop-color="black" stop-opacity="1.0" />
-        <stop offset="100%" stop-color="black" stop-opacity="0.0" />
-      </radialGradient>
-
-      <!-- Define a shadow for each sphere. -->
-      <circle id="shadow" fill="url(#shadowGrad)" cx="0" cy="0" r="100" />
-      <g id="bubble">
-        <circle fill="black" cx="0" cy="0" r="50" />
-        <circle fill="#a6ce39" cx="0" cy="0" r="33" />
-        <path fill="black" d="M 37,50 L 50,37 L 12,-1 L 22,-11 L 10,-24 L -24,10
-                              L -11,22 L -1,12 Z" />
-        <circle cx="0" cy="0" r="100" />
-      </g>
-    </defs>
-  <g>
-    <rect fill="url(#background)" x="0" y="0" width="800" height="600" />
-  </g>
-
-  <g transform="translate(200,700)">
-    <use xlink:href="#bubble" fill="url(#blueBubble)" />
-    <animateTransform attributeName="transform" type="translate" additive="sum"
-        values="0,0; 0,-800" begin="1s" dur="10s" fill="freeze" repeatCount="indefinite" />
-  </g>
-  <g transform="translate(315,700)">
-    <g transform="scale(0.5,0.5)">
-      <use xlink:href="#bubble" fill="url(#redBubble)" />
-    </g>
-    <animateTransform attributeName="transform" type="translate" additive="sum"
-        values="0,0; 0,-800" begin="3s" dur="7s" fill="freeze" repeatCount="indefinite" />
-  </g>
-  <g transform="translate(80,700)">
-    <g transform="scale(0.65,0.65)">
-      <use xlink:href="#bubble" fill="url(#greenBubble)" />
-    </g>
-    <animateTransform attributeName="transform" type="translate" additive="sum"
-        values="0,0; 0,-800" begin="5s" dur="9s" fill="freeze" repeatCount="indefinite" />
-  </g>
-  <g transform="translate(255,700)">
-    <g transform="scale(0.3,0.3)">
-      <use xlink:href="#bubble" fill="url(#yellowBubble)" />
-    </g>
-    <animateTransform attributeName="transform" type="translate" additive="sum"
-        values="0,0; 0,-800" begin="2s" dur="6s" fill="freeze" repeatCount="indefinite" />
-  </g>
-  <g transform="translate(565,700)">
-    <g transform="scale(0.4,0.4)">
-      <use xlink:href="#bubble" fill="url(#blueBubble)" />
-    </g>
-    <animateTransform attributeName="transform" type="translate" additive="sum"
-        values="0,0; 0,-800" begin="4s" dur="8s" fill="freeze" repeatCount="indefinite" />
-  </g>
-  <g transform="translate(715,700)">
-    <g transform="scale(0.6,0.6)">
-      <use xlink:href="#bubble" fill="url(#redBubble)" />
-    </g>
-    <animateTransform attributeName="transform" type="translate" additive="sum"
-        values="0,0; 0,-800" begin="1s" dur="4s" fill="freeze" repeatCount="indefinite" />
-  </g>
-  <g transform="translate(645,700)">
-    <g transform="scale(0.375,0.375)">
-      <use xlink:href="#bubble" fill="url(#greenBubble)" />
-    </g>
-    <animateTransform attributeName="transform" type="translate" additive="sum"
-        values="0,0; 0,-800" begin="0s" dur="11s" fill="freeze" repeatCount="indefinite" />
-  </g>
-  <g transform="translate(555,700)">
-    <g transform="scale(0.9,0.9)">
-      <use xlink:href="#bubble" fill="url(#yellowBubble)" />
-    </g>
-    <animateTransform attributeName="transform" type="translate" additive="sum"
-        values="0,0; 0,-800" begin="3s" dur="7.5s" fill="freeze" repeatCount="indefinite" />
-  </g>
-
-  <g transform="translate(360,700)">
-    <g transform="scale(0.5,0.5)">
-      <use xlink:href="#bubble" fill="url(#blueBubble)" />
-    </g>
-    <animateTransform attributeName="transform" type="translate" additive="sum"
-        values="0,0; 0,-800" begin="3s" dur="6s" fill="freeze" repeatCount="indefinite" />
-  </g>
-  <g transform="translate(215,700)">
-    <g transform="scale(0.45,0.45)">
-      <use xlink:href="#bubble" fill="url(#redBubble)" />
-    </g>
-    <animateTransform attributeName="transform" type="translate" additive="sum"
-        values="0,0; 0,-800" begin="5.5s" dur="7s" fill="freeze" repeatCount="indefinite" />
-  </g>
-  <g transform="translate(420,700)">
-    <g transform="scale(0.75,0.75)">
-      <use xlink:href="#bubble" fill="url(#greenBubble)" />
-    </g>
-    <animateTransform attributeName="transform" type="translate" additive="sum"
-        values="0,0; 0,-800" begin="1s" dur="9s" fill="freeze" repeatCount="indefinite" />
-  </g>
-  <g transform="translate(815,700)">
-    <g transform="scale(0.6,0.6)">
-      <use xlink:href="#bubble" fill="url(#yellowBubble)" />
-    </g>
-    <animateTransform attributeName="transform" type="translate" additive="sum"
-        values="0,0; 0,-800" begin="2s" dur="9.5s" fill="freeze" repeatCount="indefinite" />
-  </g>
-
-  <g transform="translate(225,375)" >
-    <g transform="scale(1.0,0.5)" >
-      <path d="M 0 0 L 350 0 L 450 450 L -100 450 z"
-            fill="url(#surface)" stroke="none" />
-    </g>
-  </g>
-    <g transform="translate(200,0)" >
-    <g transform="translate(200,490) scale(2.0,1.0) rotate(45)" >
-      <rect fill="#a6ce39" x="-69" y="-69" width="138" height="138" />
-      <circle fill="black" cx="0" cy="0" r="50" />
-      <circle fill="#a6ce39" cx="0" cy="0" r="33" />
-      <path fill="black" d="M 37,50 L 50,37 L 12,-1 L 22,-11 L 10,-24 L -24,10
-                            L -11,22 L -1,12 Z" />
-      <animateTransform attributeName="transform"  type="rotate" additive="sum" values="0; 360"
-	         begin="0s" dur="10s" fill="freeze" repeatCount="indefinite" />
-    </g>
-    <g transform="translate(200,375)">
-      <use xlink:href="#shadow" transform="translate(25,55) scale(1.0,0.5)" />
-      <circle fill="url(#blueSphere)" cx="0" cy="0" r="100" />
-    </g>
-    <g transform="translate(315,440)">
-      <g transform="scale(0.5,0.5)">
-        <use xlink:href="#shadow" transform="translate(25,55) scale(1.0,0.5)" />
-        <circle fill="url(#redSphere)" cx="0" cy="0" r="100" />
-      </g>
-    </g>
-    <g transform="translate(80,475)">
-      <g transform="scale(0.65,0.65)">
-        <use xlink:href="#shadow" transform="translate(25,55) scale(1.0,0.5)" />
-        <circle fill="url(#greenSphere)" cx="0" cy="0" r="100" />
-      </g>
-    </g>
-    <g transform="translate(255,525)">
-      <g transform="scale(0.3,0.3)">
-        <use xlink:href="#shadow" transform="translate(25,55) scale(1.0,0.5)" />
-        <circle fill="url(#yellowSphere)" cx="0" cy="0" r="100" />
-      </g>
-    </g>
-  </g>
-</svg>
--- a/tests/qtp/qtp_svgviewer/files/cubic.svg	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,77 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<svg width="10cm" height="10cm" viewBox="0 0 1000 1000"
-     xmlns="http://www.w3.org/2000/svg" version="1.2" baseProfile="tiny">
-  <title>Example cubic02 - cubic Bezier commands in path data</title>
-  <desc>Picture showing examples of "C" and "S" commands,
-        along with annotations showing the control points
-        and end points</desc>
-
-  <rect fill="none" stroke="blue" stroke-width="1" x="1" y="1" width="998" height="998" />
-
-  <!-- Path 1 -->
-  <polyline fill="none" stroke="#888888" stroke-width="2" points="100,200 100,100" />
-  <polyline fill="none" stroke="#888888" stroke-width="2" points="400,100 400,200" />
-  <path fill="none" stroke="red" stroke-width="5" d="M100,200 C100,100 400,100 400,200" />
-  <circle fill="none" stroke="#888888" stroke-width="2" cx="100" cy="200" r="10" />
-  <circle fill="none" stroke="#888888" stroke-width="2" cx="400" cy="200" r="10" />
-  <circle class="CtlPoint" cx="100" cy="100" r="10" />
-  <circle class="CtlPoint" cx="400" cy="100" r="10" />
-  <text text-anchor="middle" font-size="22" font-family="Verdana" x="250" y="275">M100,200 C100,100 400,100 400,200</text>
-
-  <!-- Path 2 -->
-  <polyline fill="none" stroke="#888888" stroke-width="2" points="100,500 25,400" />
-  <polyline fill="none" stroke="#888888" stroke-width="2" points="475,400 400,500" />
-  <path fill="none" stroke="red" stroke-width="5" d="M100,500 C25,400 475,400 400,500" />
-  <circle fill="none" stroke="#888888" stroke-width="2" cx="100" cy="500" r="10" />
-  <circle fill="none" stroke="#888888" stroke-width="2" cx="400" cy="500" r="10" />
-  <circle fill="#888888" stroke="none" cx="25" cy="400" r="10" />
-  <circle fill="#888888" stroke="none" cx="475" cy="400" r="10" />
-  <text text-anchor="middle" font-size="22" font-family="Verdana" x="250" y="575">M100,500 C25,400 475,400 400,500</text>
-
-  <!-- Path 3 -->
-  <polyline fill="none" stroke="#888888" stroke-width="2" points="100,800 175,700" />
-  <polyline fill="none" stroke="#888888" stroke-width="2" points="325,700 400,800" />
-  <path fill="none" stroke="red" stroke-width="5" d="M100,800 C175,700 325,700 400,800" />
-  <circle fill="none" stroke="#888888" stroke-width="2" cx="100" cy="800" r="10" />
-  <circle fill="none" stroke="#888888" stroke-width="2" cx="400" cy="800" r="10" />
-  <circle fill="#888888" stroke="none" cx="175" cy="700" r="10" />
-  <circle fill="#888888" stroke="none" cx="325" cy="700" r="10" />
-  <text text-anchor="middle" font-size="22" font-family="Verdana" x="250" y="875">M100,800 C175,700 325,700 400,800</text>
-
-  <!-- Path 4 -->
-  <polyline fill="none" stroke="#888888" stroke-width="2" points="600,200 675,100" />
-  <polyline fill="none" stroke="#888888" stroke-width="2" points="975,100 900,200" />
-  <path fill="none" stroke="red" stroke-width="5" d="M600,200 C675,100 975,100 900,200" />
-  <circle fill="none" stroke="#888888" stroke-width="2" cx="600" cy="200" r="10" />
-  <circle fill="none" stroke="#888888" stroke-width="2" cx="900" cy="200" r="10" />
-  <circle fill="#888888" stroke="none" cx="675" cy="100" r="10" />
-  <circle fill="#888888" stroke="none" cx="975" cy="100" r="10" />
-  <text text-anchor="middle" font-size="22" font-family="Verdana" x="750" y="275">M600,200 C675,100 975,100 900,200</text>
-
-  <!-- Path 5 -->
-  <polyline fill="none" stroke="#888888" stroke-width="2" points="600,500 600,350" />
-  <polyline fill="none" stroke="#888888" stroke-width="2" points="900,650 900,500" />
-  <path fill="none" stroke="red" stroke-width="5" d="M600,500 C600,350 900,650 900,500" />
-  <circle fill="none" stroke="#888888" stroke-width="2" cx="600" cy="500" r="10" />
-  <circle fill="none" stroke="#888888" stroke-width="2" cx="900" cy="500" r="10" />
-  <circle fill="#888888" stroke="none" cx="600" cy="350" r="10" />
-  <circle fill="#888888" stroke="none" cx="900" cy="650" r="10" />
-  <text text-anchor="middle" font-size="22" font-family="Verdana" x="750" y="575">M600,500 C600,350 900,650 900,500</text>
-
-  <!-- Path 6 (C and S command) -->
-  <polyline fill="none" stroke="#888888" stroke-width="2" points="600,800 625,700" />
-  <polyline fill="none" stroke="#888888" stroke-width="2" points="725,700 750,800" />
-  <polyline fill="none" stroke="#888888" stroke-width="2" points="750,800 775,900" />
-  <polyline fill="none" stroke="#888888" stroke-width="2" points="875,900 900,800" />
-  <path fill="none" stroke="red" stroke-width="5" d="M600,800 C625,700 725,700 750,800
-                                       S875,900 900,800" />
-  <circle fill="none" stroke="#888888" stroke-width="2" cx="600" cy="800" r="10" />
-  <circle fill="none" stroke="#888888" stroke-width="2" cx="750" cy="800" r="10" />
-  <circle fill="none" stroke="#888888" stroke-width="2" cx="900" cy="800" r="10" />
-  <circle fill="#888888" stroke="none" cx="625" cy="700" r="10" />
-  <circle fill="#888888" stroke="none" cx="725" cy="700" r="10" />
-  <circle fill="#888888" stroke="none" cx="875" cy="900" r="10" />
-  <circle fill="none" stroke="blue" stroke-width="4" cx="775" cy="900" r="9" />
-  <text text-anchor="middle" font-size="22" font-family="Verdana" x="750" y="945">M600,800 C625,700 725,700 750,800</text>
-  <text text-anchor="middle" font-size="22" font-family="Verdana" x="750" y="975">S875,900 900,800</text>
-</svg>
--- a/tests/qtp/qtp_svgviewer/files/spheres.svg	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,72 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<svg width="8cm" height="8cm" viewBox="0 0 400 400"
-    xmlns="http://www.w3.org/2000/svg"
-    xmlns:xlink="http://www.w3.org/1999/xlink/"
-    baseProfile="tiny" version="1.2">
-  <title>Spheres</title>
-  <desc>Gradient filled spheres with different colors.</desc>
-    <defs>
-      <!-- Create radial gradients for each circle to make them look like
-           spheres. -->
-      <radialGradient id="blueSphere" gradientUnits="userSpaceOnUse"
-                      cx="0" cy="0" r="100" fx="-50" fy="-50">
-        <stop offset="0%" stop-color="white" />
-        <stop offset="75%" stop-color="blue" />
-        <stop offset="100%" stop-color="#222244" />
-      </radialGradient>
-      <radialGradient id="redSphere" gradientUnits="userSpaceOnUse"
-                      cx="0" cy="0" r="100" fx="-50" fy="-50">
-        <stop offset="0%" stop-color="white" />
-        <stop offset="75%" stop-color="red" />
-        <stop offset="100%" stop-color="#442222" />
-      </radialGradient>
-      <radialGradient id="greenSphere" gradientUnits="userSpaceOnUse"
-                      cx="0" cy="0" r="100" fx="-50" fy="-50">
-        <stop offset="0%" stop-color="white" />
-        <stop offset="75%" stop-color="green" />
-        <stop offset="100%" stop-color="#113311" />
-      </radialGradient>
-      <radialGradient id="yellowSphere" gradientUnits="userSpaceOnUse"
-                      cx="0" cy="0" r="100" fx="-50" fy="-50">
-        <stop offset="0%" stop-color="white" />
-        <stop offset="75%" stop-color="yellow" />
-        <stop offset="100%" stop-color="#444422" />
-      </radialGradient>
-      <radialGradient id="shadowGrad" gradientUnits="userSpaceOnUse"
-                      cx="0" cy="0" r="100" fx="-50" fy="50">
-        <stop offset="0%" stop-color="black" stop-opacity="1.0" />
-        <stop offset="100%" stop-color="white" stop-opacity="0.0" />
-      </radialGradient>
-
-      <!-- Define a shadow for each sphere. -->
-      <circle id="shadow" fill="url(#shadowGrad)" cx="0" cy="0" r="100" />
-    </defs>
-  <g fill="#ffee99" stroke="none" >
-    <rect x="0" y="0" width="400" height="400" />
-  </g>
-  <g fill="white" stroke="none" >
-    <rect x="0" y="175" width="400" height="225" />
-  </g>
-  <g transform="translate(200,175)">
-    <use xlink:href="#shadow" transform="translate(25,55) scale(1.0,0.5)" />
-    <circle fill="url(#blueSphere)" cx="0" cy="0" r="100" />
-  </g>
-  <g transform="translate(315,240)">
-    <g transform="scale(0.5,0.5)">
-      <use xlink:href="#shadow" transform="translate(25,55) scale(1.0,0.5)" />
-      <circle fill="url(#redSphere)" cx="0" cy="0" r="100" />
-    </g>
-  </g>
-  <g transform="translate(80,275)">
-    <g transform="scale(0.65,0.65)">
-      <use xlink:href="#shadow" transform="translate(25,55) scale(1.0,0.5)" />
-      <circle fill="url(#greenSphere)" cx="0" cy="0" r="100" />
-    </g>
-  </g>
-  <g transform="translate(255,325)">
-    <g transform="scale(0.3,0.3)">
-      <use xlink:href="#shadow" transform="translate(25,55) scale(1.0,0.5)" />
-      <circle fill="url(#yellowSphere)" cx="0" cy="0" r="100" />
-    </g>
-  </g>
-</svg>
--- a/tests/qtp/qtp_svgviewer/main.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,54 +0,0 @@
-/****************************************************************************
-**
-** 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.
-**
-** 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>
-#include <QString>
-#include <QtGui>
-#include <QtTest>
-
-#ifndef QT_NO_OPENGL
-#include <QGLFormat>
-#endif
-
-#include "mainwindow.h"
-#include "autotest.h"
-
-QTEST_MAIN(autoTest)
--- a/tests/qtp/qtp_svgviewer/mainwindow.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,164 +0,0 @@
-/****************************************************************************
-**
-** 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.
-**
-** 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 "mainwindow.h"
-
-#include <QtGui>
-
-#include "svgview.h"
-
-MainWindow::MainWindow()
-    : QMainWindow()
-    , m_view(new SvgView)
-{
-    QMenu *fileMenu = new QMenu(tr("&File"), this);
-    QAction *openAction = fileMenu->addAction(tr("&Open..."));
-    openAction->setShortcut(QKeySequence(tr("Ctrl+O")));
-    QAction *quitAction = fileMenu->addAction(tr("E&xit"));
-    quitAction->setShortcuts(QKeySequence::Quit);
-
-    menuBar()->addMenu(fileMenu);
-
-    QMenu *viewMenu = new QMenu(tr("&View"), this);
-    m_backgroundAction = viewMenu->addAction(tr("&Background"));
-    m_backgroundAction->setEnabled(false);
-    m_backgroundAction->setCheckable(true);
-    m_backgroundAction->setChecked(false);
-    connect(m_backgroundAction, SIGNAL(toggled(bool)), m_view, SLOT(setViewBackground(bool)));
-
-    m_outlineAction = viewMenu->addAction(tr("&Outline"));
-    m_outlineAction->setEnabled(false);
-    m_outlineAction->setCheckable(true);
-    m_outlineAction->setChecked(true);
-    connect(m_outlineAction, SIGNAL(toggled(bool)), m_view, SLOT(setViewOutline(bool)));
-
-    menuBar()->addMenu(viewMenu);
-
-    QMenu *rendererMenu = new QMenu(tr("&Renderer"), this);
-    m_nativeAction = rendererMenu->addAction(tr("&Native"));
-    m_nativeAction->setCheckable(true);
-    m_nativeAction->setChecked(true);
-#ifndef QT_NO_OPENGL
-    m_glAction = rendererMenu->addAction(tr("&OpenGL"));
-    m_glAction->setCheckable(true);
-#endif
-    m_imageAction = rendererMenu->addAction(tr("&Image"));
-    m_imageAction->setCheckable(true);
-
-#ifndef QT_NO_OPENGL
-    rendererMenu->addSeparator();
-    m_highQualityAntialiasingAction = rendererMenu->addAction(tr("&High Quality Antialiasing"));
-    m_highQualityAntialiasingAction->setEnabled(false);
-    m_highQualityAntialiasingAction->setCheckable(true);
-    m_highQualityAntialiasingAction->setChecked(false);
-    connect(m_highQualityAntialiasingAction, SIGNAL(toggled(bool)), m_view, SLOT(setHighQualityAntialiasing(bool)));
-#endif
-
-    QActionGroup *rendererGroup = new QActionGroup(this);
-    rendererGroup->addAction(m_nativeAction);
-#ifndef QT_NO_OPENGL
-    rendererGroup->addAction(m_glAction);
-#endif
-    rendererGroup->addAction(m_imageAction);
-
-    menuBar()->addMenu(rendererMenu);
-
-    connect(openAction, SIGNAL(triggered()), this, SLOT(openFile()));
-    connect(quitAction, SIGNAL(triggered()), qApp, SLOT(quit()));
-    connect(rendererGroup, SIGNAL(triggered(QAction *)),
-            this, SLOT(setRenderer(QAction *)));
-
-    setCentralWidget(m_view);
-    setWindowTitle(tr("SVG Viewer"));
-}
-
-void MainWindow::openFile(const QString &path)
-{
-    QString fileName;
-    if (path.isNull())
-        fileName = QFileDialog::getOpenFileName(this, tr("Open SVG File"),
-                m_currentPath, "SVG files (*.svg *.svgz *.svg.gz)");
-    else
-        fileName = path;
-
-    if (!fileName.isEmpty()) {
-        QFile file(fileName);
-        if (!file.exists()) {
-            QMessageBox::critical(this, tr("Open SVG File"),
-                           QString("Could not open file '%1'.").arg(fileName));
-
-            m_outlineAction->setEnabled(false);
-            m_backgroundAction->setEnabled(false);
-            return;
-        }
-
-        m_view->openFile(file);
-
-        if (!fileName.startsWith(":/")) {
-            m_currentPath = fileName;
-            setWindowTitle(tr("%1 - SVGViewer").arg(m_currentPath));
-        }
-
-        m_outlineAction->setEnabled(true);
-        m_backgroundAction->setEnabled(true);
-
-        resize(m_view->sizeHint() + QSize(80, 80 + menuBar()->height()));
-    }
-}
-
-void MainWindow::setRenderer(QAction *action)
-{
-#ifndef QT_NO_OPENGL
-    m_highQualityAntialiasingAction->setEnabled(false);
-#endif
-
-    if (action == m_nativeAction)
-        m_view->setRenderer(SvgView::Native);
-#ifndef QT_NO_OPENGL
-    else if (action == m_glAction) {
-        m_highQualityAntialiasingAction->setEnabled(true);
-        m_view->setRenderer(SvgView::OpenGL);
-    }
-#endif
-    else if (action == m_imageAction) {
-        m_view->setRenderer(SvgView::Image);
-    }
-}
--- a/tests/qtp/qtp_svgviewer/mainwindow.h	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,81 +0,0 @@
-/****************************************************************************
-**
-** 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.
-**
-** 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 MAINWINDOW_H
-#define MAINWINDOW_H
-
-#include <QMainWindow>
-#include <QString>
-
-class SvgView;
-
-QT_BEGIN_NAMESPACE
-class QAction;
-class QGraphicsView;
-class QGraphicsScene;
-class QGraphicsRectItem;
-QT_END_NAMESPACE
-
-class MainWindow : public QMainWindow
-{
-    Q_OBJECT
-
-public:
-    MainWindow();
-
-public slots:
-    void openFile(const QString &path = QString());
-    void setRenderer(QAction *action);
-
-private:
-    QAction *m_nativeAction;
-    QAction *m_glAction;
-    QAction *m_imageAction;
-    QAction *m_highQualityAntialiasingAction;
-    QAction *m_backgroundAction;
-    QAction *m_outlineAction;
-
-    SvgView *m_view;
-
-    QString m_currentPath;
-};
-
-#endif
--- a/tests/qtp/qtp_svgviewer/qtp_svgviewer.pro	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,38 +0,0 @@
-
-HEADERS       = autotest.h \
-                mainwindow.h \
-                svgview.h
-RESOURCES     = qtp_svgviewer.qrc
-SOURCES       = autotest.cpp \
-                main.cpp \
-                mainwindow.cpp \
-                svgview.cpp
-QT           += svg xml
-
-contains(QT_CONFIG, opengl): QT += opengl
-
-CONFIG += qt warn_on console depend_includepath
-
-qtAddLibrary(QtTest)
-
-# install
-target.path = $$[QT_INSTALL_PREFIX]/tests/qtp/qtp_svgviewer
-sources.files = $$SOURCES $$HEADERS $$RESOURCES qtp_svgviewer.pro files
-sources.path = $$[QT_INSTALL_PREFIX]/tests/qtp/qtp_svgviewer
-INSTALLS += target sources
-
-wince*: {
-    addFiles.sources = files\*.svg
-    addFiles.path = \My Documents
-    DEPLOYMENT += addFiles
-}
-
-symbian: {
-    TARGET.UID3 = 0xED83EC0C
-    TARGET.CAPABILITY="ALL -TCB"
-    include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri)
-    addFiles.sources = files\*.svg
-    addFiles.path = .
-    DEPLOYMENT += addFiles
-    RSS_RULES ="group_name=\"QtTests\";" 
-}
--- a/tests/qtp/qtp_svgviewer/qtp_svgviewer.qrc	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,6 +0,0 @@
-<!DOCTYPE RCC><RCC version="1.0">
-<qresource prefix="/">
-  <file>files/bubbles.svg</file>
-</qresource>
-</RCC>
-
--- a/tests/qtp/qtp_svgviewer/svgview.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,189 +0,0 @@
-/****************************************************************************
-**
-** 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.
-**
-** 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 "svgview.h"
-
-#include <QFile>
-#include <QWheelEvent>
-#include <QMouseEvent>
-#include <QGraphicsRectItem>
-#include <QGraphicsSvgItem>
-#include <QPaintEvent>
-#include <qmath.h>
-
-#ifndef QT_NO_OPENGL
-#include <QGLWidget>
-#endif
-
-SvgView::SvgView(QWidget *parent)
-    : QGraphicsView(parent)
-    , m_renderer(Native)
-    , m_svgItem(0)
-    , m_backgroundItem(0)
-    , m_outlineItem(0)
-{
-    setScene(new QGraphicsScene(this));
-    setTransformationAnchor(AnchorUnderMouse);
-    setDragMode(ScrollHandDrag);
-    setViewportUpdateMode(FullViewportUpdate);
-
-    // Prepare background check-board pattern
-    QPixmap tilePixmap(64, 64);
-    tilePixmap.fill(Qt::white);
-    QPainter tilePainter(&tilePixmap);
-    QColor color(220, 220, 220);
-    tilePainter.fillRect(0, 0, 32, 32, color);
-    tilePainter.fillRect(32, 32, 32, 32, color);
-    tilePainter.end();
-
-    setBackgroundBrush(tilePixmap);
-}
-
-void SvgView::drawBackground(QPainter *p, const QRectF &)
-{
-    p->save();
-    p->resetTransform();
-    p->drawTiledPixmap(viewport()->rect(), backgroundBrush().texture());
-    p->restore();
-}
-
-void SvgView::openFile(const QFile &file)
-{
-    if (!file.exists())
-        return;
-
-    QGraphicsScene *s = scene();
-
-    bool drawBackground = (m_backgroundItem ? m_backgroundItem->isVisible() : false);
-    bool drawOutline = (m_outlineItem ? m_outlineItem->isVisible() : true);
-
-    s->clear();
-    resetTransform();
-
-    m_svgItem = new QGraphicsSvgItem(file.fileName());
-    m_svgItem->setFlags(QGraphicsItem::ItemClipsToShape);
-    m_svgItem->setCacheMode(QGraphicsItem::NoCache);
-    m_svgItem->setZValue(0);
-
-    m_backgroundItem = new QGraphicsRectItem(m_svgItem->boundingRect());
-    m_backgroundItem->setBrush(Qt::white);
-    m_backgroundItem->setPen(Qt::NoPen);
-    m_backgroundItem->setVisible(drawBackground);
-    m_backgroundItem->setZValue(-1);
-
-    m_outlineItem = new QGraphicsRectItem(m_svgItem->boundingRect());
-    QPen outline(Qt::black, 2, Qt::DashLine);
-    outline.setCosmetic(true);
-    m_outlineItem->setPen(outline);
-    m_outlineItem->setBrush(Qt::NoBrush);
-    m_outlineItem->setVisible(drawOutline);
-    m_outlineItem->setZValue(1);
-
-    s->addItem(m_backgroundItem);
-    s->addItem(m_svgItem);
-    s->addItem(m_outlineItem);
-
-    s->setSceneRect(m_outlineItem->boundingRect().adjusted(-10, -10, 10, 10));
-}
-
-void SvgView::setRenderer(RendererType type)
-{
-    m_renderer = type;
-
-    if (m_renderer == OpenGL) {
-#ifndef QT_NO_OPENGL
-        setViewport(new QGLWidget(QGLFormat(QGL::SampleBuffers)));
-#endif
-    } else {
-        setViewport(new QWidget);
-    }
-}
-
-void SvgView::setHighQualityAntialiasing(bool highQualityAntialiasing)
-{
-#ifndef QT_NO_OPENGL
-    setRenderHint(QPainter::HighQualityAntialiasing, highQualityAntialiasing);
-#else
-    Q_UNUSED(highQualityAntialiasing);
-#endif
-}
-
-void SvgView::setViewBackground(bool enable)
-{
-    if (!m_backgroundItem)
-          return;
-
-    m_backgroundItem->setVisible(enable);
-}
-
-void SvgView::setViewOutline(bool enable)
-{
-    if (!m_outlineItem)
-        return;
-
-    m_outlineItem->setVisible(enable);
-}
-
-void SvgView::paintEvent(QPaintEvent *event)
-{
-    if (m_renderer == Image) {
-        if (m_image.size() != viewport()->size()) {
-            m_image = QImage(viewport()->size(), QImage::Format_ARGB32_Premultiplied);
-        }
-
-        QPainter imagePainter(&m_image);
-        QGraphicsView::render(&imagePainter);
-        imagePainter.end();
-
-        QPainter p(viewport());
-        p.drawImage(0, 0, m_image);
-
-    } else {
-        QGraphicsView::paintEvent(event);
-    }
-}
-
-void SvgView::wheelEvent(QWheelEvent *event)
-{
-    qreal factor = qPow(1.2, event->delta() / 240.0);
-    scale(factor, factor);
-    event->accept();
-}
-
--- a/tests/qtp/qtp_svgviewer/svgview.h	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,84 +0,0 @@
-/****************************************************************************
-**
-** 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.
-**
-** 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 SVGVIEW_H
-#define SVGVIEW_H
-
-#include <QGraphicsView>
-
-QT_BEGIN_NAMESPACE
-class QWheelEvent;
-class QPaintEvent;
-class QFile;
-QT_END_NAMESPACE
-
-class SvgView : public QGraphicsView
-{
-    Q_OBJECT
-
-public:
-    enum RendererType { Native, OpenGL, Image };
-
-    SvgView(QWidget *parent = 0);
-
-    void openFile(const QFile &file);
-    void setRenderer(RendererType type = Native);
-    void drawBackground(QPainter *p, const QRectF &rect);
-
-public slots:
-    void setHighQualityAntialiasing(bool highQualityAntialiasing);
-    void setViewBackground(bool enable);
-    void setViewOutline(bool enable);
-
-protected:
-    void wheelEvent(QWheelEvent *event);
-    void paintEvent(QPaintEvent *event);
-
-private:
-    RendererType m_renderer;
-
-    QGraphicsItem *m_svgItem;
-    QGraphicsRectItem *m_backgroundItem;
-    QGraphicsRectItem *m_outlineItem;
-
-    QImage m_image;
-};
-#endif // SVGVIEW_H
--- a/tests/qtp/qtp_wiggly/autotest.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,147 +0,0 @@
-/****************************************************************************
-**
-** 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.
-**
-** 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 "dialog.h"
-#include "wigglywidget.h"
-#include "autotest.h"
-
-
-void autoTest::initTestCase()
-{
-}
-
-void autoTest::testDefaults()
-{
-    Dialog dialog(0,false);
-    dialog.show();
-
-    // Test default values for widget properties
-    //	QCOMPARE( dialog.acceptDrops(), false );
-    //	QCOMPARE( dialog.hasEditFocus(), false );
-    QCOMPARE( dialog.hasFocus(), false );
-    QCOMPARE( dialog.hasMouseTracking(), false );
-    QCOMPARE( dialog.isActiveWindow(), true );
-    QCOMPARE( dialog.isEnabled(), true );
-    QCOMPARE( dialog.isFullScreen(), false );
-    QCOMPARE( dialog.isHidden(), false );
-    QCOMPARE( dialog.isMaximized(), false );
-    QCOMPARE( dialog.isMinimized(), false );
-    QCOMPARE( dialog.isModal(), false );
-    QCOMPARE( dialog.isVisible(), true );
-    QCOMPARE( dialog.isWindow(), true );
-    QCOMPARE( dialog.isWindowModified(), false );
-    QCOMPARE( dialog.underMouse(), false );
-    QCOMPARE( dialog.updatesEnabled(), true );
-
-    dialog.hide();
-}
-
-void autoTest::testWigglyWidget()
-{
-    Dialog dialog(0,false);
-    dialog.show();
-
-    QList<WigglyWidget *> subObjects = dialog.findChildren<WigglyWidget *>();
-    QVERIFY( subObjects.count() == 1 );
-    QWidget *wg = subObjects.at(0);
-
-    QVERIFY( wg != 0 );
-
-    // Some sanity checks for wiggle widget
-    QVERIFY( wg->width() > 0 );
-    QVERIFY( wg->height() > 0 );
-
-    QVERIFY( wg->width() <= dialog.width() );
-    QVERIFY( wg->height() <= dialog.height() );
-
-    // but not much more to be verified here
-
-    dialog.hide();
-}
-
-void autoTest::testInputWidget()
-{
-    Dialog dialog(0,false);
-    dialog.show();
-
-    QList<QLineEdit *> editObjects = dialog.findChildren<QLineEdit *>();
-    QVERIFY( editObjects.count() == 1 );
-    QLineEdit *le = editObjects.at(0);
-
-    QList<WigglyWidget *> subObjects = dialog.findChildren<WigglyWidget *>();
-    QVERIFY( subObjects.count() == 1 );
-    WigglyWidget *wg = subObjects.at(0);
-
-    QVERIFY( le != 0 );
-
-    // Some sanity checks for text input widget
-    QVERIFY( le->width() > 0 );
-    QVERIFY( le->height() > 0 );
-
-    QVERIFY( le->width() <= dialog.width() );
-    QVERIFY( le->height() <= dialog.height() );
-
-    // Tests the generic behaviour of the line edit widget
-    le->setFocus(Qt::OtherFocusReason);
-
-    QTest::qWait(1000);
-
-    QTest::keyClick ( le, Qt::Key_Backspace, Qt::NoModifier, 10 );
-    QTest::keyClick ( le, Qt::Key_Backspace, Qt::NoModifier, 10 );
-    QTest::keyClick ( le, Qt::Key_Backspace, Qt::NoModifier, 10 );
-    QTest::keyClick ( le, Qt::Key_Backspace, Qt::NoModifier, 10 );
-    QTest::keyClick ( le, Qt::Key_Backspace, Qt::NoModifier, 10 );
-    QTest::keyClick ( le, Qt::Key_Backspace, Qt::NoModifier, 10 );
-    QTest::keyClick ( le, Qt::Key_Backspace, Qt::NoModifier, 10 );
-
-    QTest::keyClicks( le, "!!!" );
-    le->clearFocus();
-
-    // Verifies that edited line information is correctly copied
-    QCOMPARE( le->text(), QString("Hello!!!") );
-    QCOMPARE( le->text(), wg->getText() );
-
-    QTest::qWait(1000);
-
-    dialog.hide();
-}
-
--- a/tests/qtp/qtp_wiggly/autotest.h	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,63 +0,0 @@
-/****************************************************************************
-**
-** 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.
-**
-** 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 AUTOTEST_H
-#define AUTOTEST_H
-
-#include <QtGui>
-#include <QObject>
-#include <QtTest>
-
-
-class autoTest: public QObject
-{
-	Q_OBJECT
-	
-	void initTestCase();
-	
-	private slots:
-		void testDefaults();
-		void testWigglyWidget();
-		void testInputWidget();
-};
-	
-#endif
--- a/tests/qtp/qtp_wiggly/dialog.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,70 +0,0 @@
-/****************************************************************************
-**
-** 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.
-**
-** 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 <QtGui>
-
-#include "dialog.h"
-#include "wigglywidget.h"
-
-//! [0]
-Dialog::Dialog(QWidget *parent, bool smallScreen)
-    : QDialog(parent)
-{
-    WigglyWidget *wigglyWidget = new WigglyWidget;
-    QLineEdit *lineEdit = new QLineEdit;
-
-    QVBoxLayout *layout = new QVBoxLayout;
-    layout->addWidget(wigglyWidget);
-    layout->addWidget(lineEdit);
-    setLayout(layout);
-
-    connect(lineEdit, SIGNAL(textChanged(QString)),
-            wigglyWidget, SLOT(setText(QString)));
-    if (!smallScreen){
-        lineEdit->setText(tr("Hello world!"));
-    }
-    else{
-        lineEdit->setText(tr("Hello!"));
-    }
-    setWindowTitle(tr("Wiggly"));
-    resize(360, 145);
-}
-//! [0]
--- a/tests/qtp/qtp_wiggly/dialog.h	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,57 +0,0 @@
-/****************************************************************************
-**
-** 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.
-**
-** 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 DIALOG_H
-#define DIALOG_H
-
-#include <QDialog>
-
-//! [0]
-class Dialog : public QDialog
-{
-    Q_OBJECT
-
-public:
-    Dialog(QWidget *parent = 0, bool smallScreen = false);
-};
-//! [0]
-
-#endif
--- a/tests/qtp/qtp_wiggly/main.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,49 +0,0 @@
-/****************************************************************************
-**
-** 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.
-**
-** 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>
-#include <QtGui>
-#include <QtTest>
-#include "dialog.h"
-#include "autotest.h"
-
-
-QTEST_MAIN(autoTest)
--- a/tests/qtp/qtp_wiggly/qtp_wiggly.pro	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,25 +0,0 @@
-
-HEADERS       = autotest.h \
-                wigglywidget.h \
-                dialog.h
-SOURCES       = autotest.cpp \
-                wigglywidget.cpp \
-                dialog.cpp \
-                main.cpp
-
-CONFIG += qt warn_on console depend_includepath
-
-qtAddLibrary(QtTest)
-
-# install
-target.path = $$[QT_INSTALL_PREFIX]/tests/qtp/wiggly
-sources.files = $$SOURCES $$HEADERS $$RESOURCES $$FORMS qtp_wiggly.pro
-sources.path = $$[QT_INSTALL_PREFIX]/tests/qtp/wiggly
-INSTALLS += target sources
-
-symbian {
-    TARGET.UID3 = 0xED83EC0D
-    TARGET.CAPABILITY="ALL -TCB"
-    include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri)
-    RSS_RULES ="group_name=\"QtTests\";" 
-}
--- a/tests/qtp/qtp_wiggly/wigglywidget.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,101 +0,0 @@
-/****************************************************************************
-**
-** 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.
-**
-** 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 <QtGui>
-
-#include "wigglywidget.h"
-
-//! [0]
-WigglyWidget::WigglyWidget(QWidget *parent)
-    : QWidget(parent)
-{
-    setBackgroundRole(QPalette::Midlight);
-    setAutoFillBackground(true);
-
-    QFont newFont = font();
-    newFont.setPointSize(newFont.pointSize() + 20);
-    setFont(newFont);
-
-    step = 0;
-    timer.start(60, this);
-}
-//! [0]
-
-//! [1]
-void WigglyWidget::paintEvent(QPaintEvent * /* event */)
-//! [1] //! [2]
-{
-    static const int sineTable[16] = {
-        0, 38, 71, 92, 100, 92, 71, 38,	0, -38, -71, -92, -100, -92, -71, -38
-    };
-
-    QFontMetrics metrics(font());
-    int x = (width() - metrics.width(text)) / 2;
-    int y = (height() + metrics.ascent() - metrics.descent()) / 2;
-    QColor color;
-//! [2]
-
-//! [3]
-    QPainter painter(this);
-//! [3] //! [4]
-    for (int i = 0; i < text.size(); ++i) {
-        int index = (step + i) % 16;
-        color.setHsv((15 - index) * 16, 255, 191);
-        painter.setPen(color);
-        painter.drawText(x, y - ((sineTable[index] * metrics.height()) / 400),
-                         QString(text[i]));
-        x += metrics.width(text[i]);
-    }
-}
-//! [4]
-
-//! [5]
-void WigglyWidget::timerEvent(QTimerEvent *event)
-//! [5] //! [6]
-{
-    if (event->timerId() == timer.timerId()) {
-        ++step;
-        update();
-    } else {
-	QWidget::timerEvent(event);
-    }
-//! [6]
-}
--- a/tests/qtp/qtp_wiggly/wigglywidget.h	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,73 +0,0 @@
-/****************************************************************************
-**
-** 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.
-**
-** 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 WIGGLYWIDGET_H
-#define WIGGLYWIDGET_H
-
-#include <QBasicTimer>
-#include <QWidget>
-
-//! [0]
-class WigglyWidget : public QWidget
-{
-    Q_OBJECT
-
-public:
-    WigglyWidget(QWidget *parent = 0);
-
-    //  for automated testing
-    QString getText() { return text; };
-
-public slots:
-    void setText(const QString &newText) { text = newText; }
-
-protected:
-    void paintEvent(QPaintEvent *event);
-    void timerEvent(QTimerEvent *event);
-
-private:
-    QBasicTimer timer;
-    QString text;
-    int step;
-};
-//! [0]
-
-#endif
--- a/tests/tests.pro	Fri Sep 17 08:34:18 2010 +0300
+++ b/tests/tests.pro	Mon Oct 04 01:19:32 2010 +0300
@@ -1,2 +1,3 @@
 TEMPLATE = subdirs
-SUBDIRS = qtp
+SUBDIRS = auto \
+        benchmarks
--- a/tools/activeqt/testcon/changeproperties.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tools/activeqt/testcon/changeproperties.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -111,10 +111,10 @@
 		value = qVariantFromValue(col);
 	    } else {
 		QMessageBox::warning(this, tr("Can't parse input"), 
-		                            QString(tr("Failed to create a color from %1\n"
+		                           tr("Failed to create a color from %1\n"
 					                "The string has to be a valid color name (e.g. 'red')\n"
 							"or a RGB triple of format '#rrggbb'."
-							).arg(editValue->text())));
+							).arg(editValue->text()));
 	    }
 	}
 	break;
@@ -125,10 +125,10 @@
 		value = qVariantFromValue(fnt);
 	    } else {
 		QMessageBox::warning(this, tr("Can't parse input"), 
-		                            (tr("Failed to create a font from %1\n"
+		                           tr("Failed to create a font from %1\n"
 					        "The string has to have a format family,<point size> or\n"
 						"family,pointsize,stylehint,weight,italic,underline,strikeout,fixedpitch,rawmode."
-							).arg(editValue->text())));
+							).arg(editValue->text()));
 	    }
 	}
 	break;
--- a/tools/assistant/lib/fulltextsearch/qsort_p.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/tools/assistant/lib/fulltextsearch/qsort_p.h	Mon Oct 04 01:19:32 2010 +0300
@@ -64,15 +64,15 @@
 class QHELP_EXPORT QCLuceneSort
 {
 public:
-	QCLuceneSort();
-	QCLuceneSort(const QStringList &fieldNames);
-    QCLuceneSort(const QString &field, bool reverse = false);
+    QCLuceneSort();
+    explicit QCLuceneSort(const QStringList &fieldNames);
+    explicit QCLuceneSort(const QString &field, bool reverse = false);
 
     virtual ~QCLuceneSort();
 
     QString toString() const;
     void setSort(const QStringList &fieldNames);
-	void setSort(const QString &field, bool reverse = false);
+    void setSort(const QString &field, bool reverse = false);
 
 protected:
     friend class QCLuceneHits;
--- a/tools/assistant/lib/qhelpcollectionhandler_p.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/tools/assistant/lib/qhelpcollectionhandler_p.h	Mon Oct 04 01:19:32 2010 +0300
@@ -76,7 +76,8 @@
     };
     typedef QList<DocInfo> DocInfoList;
 
-    QHelpCollectionHandler(const QString &collectionFile, QObject *parent = 0);
+    explicit QHelpCollectionHandler(const QString &collectionFile,
+        QObject *parent = 0);
     ~QHelpCollectionHandler();
 
     QString collectionFile() const;
--- a/tools/assistant/lib/qhelpengine.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/tools/assistant/lib/qhelpengine.h	Mon Oct 04 01:19:32 2010 +0300
@@ -62,7 +62,7 @@
     Q_OBJECT
 
 public:
-    QHelpEngine(const QString &collectionFile, QObject *parent = 0);
+    explicit QHelpEngine(const QString &collectionFile, QObject *parent = 0);
     ~QHelpEngine();
 
     QHelpContentModel *contentModel() const;
--- a/tools/assistant/lib/qhelpenginecore.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tools/assistant/lib/qhelpenginecore.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -706,7 +706,7 @@
 }
 
 /*!
-    Returns a description of the last error that occured.
+    Returns a description of the last error that occurred.
 */
 QString QHelpEngineCore::error() const
 {
--- a/tools/assistant/lib/qhelpenginecore.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/tools/assistant/lib/qhelpenginecore.h	Mon Oct 04 01:19:32 2010 +0300
@@ -65,7 +65,7 @@
     Q_PROPERTY(QString currentFilter READ currentFilter WRITE setCurrentFilter)
     
 public:
-    QHelpEngineCore(const QString &collectionFile, QObject *parent = 0);
+    explicit QHelpEngineCore(const QString &collectionFile, QObject *parent = 0);
     virtual ~QHelpEngineCore();
 
     bool setupData();
--- a/tools/assistant/lib/qhelpsearchengine.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tools/assistant/lib/qhelpsearchengine.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -263,17 +263,17 @@
     engines setupFinished() signal to know when it can start to index documentation.
 
     After starting the indexing process the signal indexingStarted() is emitted and
-    on the end of the indexing process the indexingFinished() is emited. To stop
+    on the end of the indexing process the indexingFinished() is emitted. To stop
     the indexing one can call cancelIndexing().
 
     While the indexing process has finished, the search engine can now be used to search
     thru its index for a given term. To do this one may use the possibility of creating the
     QHelpSearchQuery list by self or reuse the QHelpSearchQueryWidget which has the inbuild
-    functionality to set up a proper search querys list that get's passed to the search engines
+    functionality to set up a proper search queries list that get's passed to the search engines
     search() function.
 
     After the list of querys has been passed to the search engine, the signal searchingStarted()
-    is emited and after the search has finished the searchingFinished() signal is emited. The
+    is emitted and after the search has finished the searchingFinished() signal is emitted. The
     search process can be stopped by calling cancelSearching().
 
     If the search succeeds, the searchingFinished() will be called with the search hits count,
@@ -318,7 +318,7 @@
     uses the given \a helpEngine to access the documentation that needs to be indexed.
     The QHelpEngine's setupFinished() signal is automatically connected to the
     QHelpSearchEngine's indexing function, so that new documentation will be indexed
-    after the signal is emited.
+    after the signal is emitted.
 */
 QHelpSearchEngine::QHelpSearchEngine(QHelpEngineCore *helpEngine, QObject *parent)
     : QObject(parent)
@@ -434,7 +434,7 @@
 }
 
 /*!
-    Starts the search process using the given list of querys \a queryList
+    Starts the search process using the given list of queries \a queryList
     build by the search field name and the values to search for.
 */
 void QHelpSearchEngine::search(const QList<QHelpSearchQuery> &queryList)
--- a/tools/assistant/lib/qhelpsearchengine.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/tools/assistant/lib/qhelpsearchengine.h	Mon Oct 04 01:19:32 2010 +0300
@@ -80,7 +80,8 @@
     Q_OBJECT
 
 public:
-    QHelpSearchEngine(QHelpEngineCore *helpEngine, QObject *parent = 0);
+    explicit QHelpSearchEngine(QHelpEngineCore *helpEngine,
+        QObject *parent = 0);
     ~QHelpSearchEngine();
 
     QHelpSearchQueryWidget* queryWidget();
--- a/tools/assistant/lib/qhelpsearchindexreader_clucene.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tools/assistant/lib/qhelpsearchindexreader_clucene.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -173,7 +173,7 @@
             QCLuceneDocument document;
             const QStringList namespaceList = engine.registeredDocumentations();
 
-            foreach (QSharedPointer<QCLuceneHits> hits, cluceneHitsList) {
+            foreach (const QSharedPointer<QCLuceneHits> &hits, cluceneHitsList) {
                 for (qint32 i = 0; i < hits->length(); i++) {
                     document = hits->document(i);
                     const QString path = document.get(PathField);
@@ -415,7 +415,7 @@
 void QHelpSearchIndexReaderClucene::boostSearchHits(const QHelpEngineCore &engine,
     QList<QHelpSearchEngine::SearchHit> &hitList, const QList<QHelpSearchQuery> &queryList)
 {
-    foreach (const QHelpSearchQuery query, queryList) {
+    foreach (const QHelpSearchQuery &query, queryList) {
         if (query.fieldName != QHelpSearchQuery::DEFAULT)
             continue;
 
--- a/tools/assistant/tools/assistant/bookmarkfiltermodel.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tools/assistant/tools/assistant/bookmarkfiltermodel.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -319,4 +319,4 @@
         && model->data(model->index(row, 0, parent), UserRoleFolder).toBool())
         return true;
     return false;
-}
\ No newline at end of file
+}
--- a/tools/assistant/tools/assistant/bookmarkitem.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tools/assistant/tools/assistant/bookmarkitem.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -41,6 +41,7 @@
 
 #include "bookmarkitem.h"
 
+#include <QtCore/QCoreApplication>
 #include <QtCore/QDebug>
 
 QT_BEGIN_NAMESPACE
@@ -147,7 +148,9 @@
 
     for (int row = 0; row < count; ++row) {
         m_children.insert(position, new BookmarkItem(DataVector()
-            << QObject::tr(isFolder ? "New Folder" : "Untitled")
+            << (isFolder
+                ? QCoreApplication::translate("BookmarkItem", "New Folder")
+                : QCoreApplication::translate("BookmarkItem", "Untitled"))
             << (isFolder ? "Folder" : "about:blank") << false, this));
     }
 
--- a/tools/assistant/tools/assistant/bookmarkitem.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/tools/assistant/tools/assistant/bookmarkitem.h	Mon Oct 04 01:19:32 2010 +0300
@@ -58,7 +58,7 @@
 class BookmarkItem
 {
 public:
-    BookmarkItem(const DataVector &data, BookmarkItem *parent = 0);
+    explicit BookmarkItem(const DataVector &data, BookmarkItem *parent = 0);
     ~BookmarkItem();
 
     BookmarkItem *parent() const;
--- a/tools/assistant/tools/assistant/bookmarkmanagerwidget.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/tools/assistant/tools/assistant/bookmarkmanagerwidget.h	Mon Oct 04 01:19:32 2010 +0300
@@ -57,7 +57,8 @@
 {
     Q_OBJECT
 public:
-    BookmarkManagerWidget(BookmarkModel *bookmarkModel, QWidget *parent = 0);
+    explicit BookmarkManagerWidget(BookmarkModel *bookmarkModel,
+        QWidget *parent = 0);
     ~BookmarkManagerWidget();
 
 protected:
@@ -99,4 +100,4 @@
 
 QT_END_NAMESPACE
 
-#endif  // BOOKMARKMANAGERWIDGET_H
\ No newline at end of file
+#endif  // BOOKMARKMANAGERWIDGET_H
--- a/tools/assistant/tools/assistant/centralwidget.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tools/assistant/tools/assistant/centralwidget.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -1011,7 +1011,7 @@
             case QHelpSearchQuery::DEFAULT:
             case QHelpSearchQuery::ATLEAST:
                 foreach (QString term, query.wordList)
-                    terms.append(term.remove(QLatin1String("\"")));
+                    terms.append(term.remove(QLatin1Char('"')));
             }
         }
     }
--- a/tools/assistant/tools/assistant/cmdlineparser.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tools/assistant/tools/assistant/cmdlineparser.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -48,7 +48,7 @@
 
 QT_BEGIN_NAMESPACE
 
-const QString CmdLineParser::m_helpMessage = QLatin1String(
+static const char helpMessage[] = QT_TRANSLATE_NOOP("CmdLineParser",
         "Usage: assistant [Options]\n\n"
         "-collectionFile file       Uses the specified collection\n"
         "                           file instead of the default one\n"
@@ -138,10 +138,10 @@
     }
 
     if (!m_error.isEmpty()) {
-        showMessage(m_error + QLatin1String("\n\n\n") + m_helpMessage, true);
+        showMessage(m_error + QLatin1String("\n\n\n") + tr(helpMessage), true);
         return Error;
     } else if (showHelp) {
-        showMessage(m_helpMessage, false);
+        showMessage(tr(helpMessage), false);
         return Help;
     }
     return Ok;
--- a/tools/assistant/tools/assistant/cmdlineparser.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/tools/assistant/tools/assistant/cmdlineparser.h	Mon Oct 04 01:19:32 2010 +0300
@@ -93,7 +93,6 @@
 
     QStringList m_arguments;
     int m_pos;
-    static const QString m_helpMessage;
     QString m_collectionFile;
     QString m_cloneFile;
     QString m_helpFile;
--- a/tools/assistant/tools/assistant/helpviewer_qtb.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/tools/assistant/tools/assistant/helpviewer_qtb.h	Mon Oct 04 01:19:32 2010 +0300
@@ -61,7 +61,7 @@
     Q_OBJECT
 
 public:
-    HelpViewer(CentralWidget *parent, qreal zoom = 0.0);
+    explicit HelpViewer(CentralWidget *parent, qreal zoom = 0.0);
     ~HelpViewer();
 
     QFont viewerFont() const;
--- a/tools/assistant/tools/assistant/helpviewer_qwv.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/tools/assistant/tools/assistant/helpviewer_qwv.h	Mon Oct 04 01:19:32 2010 +0300
@@ -58,7 +58,7 @@
     Q_OBJECT
 
 public:
-    HelpViewer(CentralWidget *parent, qreal zoom = 0.0);
+    explicit HelpViewer(CentralWidget *parent, qreal zoom = 0.0);
     ~HelpViewer();
 
     QFont viewerFont() const;
--- a/tools/assistant/tools/assistant/installdialog.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/tools/assistant/tools/assistant/installdialog.h	Mon Oct 04 01:19:32 2010 +0300
@@ -61,7 +61,7 @@
     Q_OBJECT
 
 public:
-    InstallDialog(QHelpEngineCore *helpEngine, QWidget *parent = 0,
+    explicit InstallDialog(QHelpEngineCore *helpEngine, QWidget *parent = 0,
         const QString &host = QString(), int port = -1);
     ~InstallDialog();
 
--- a/tools/assistant/tools/assistant/main.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tools/assistant/tools/assistant/main.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -316,6 +316,7 @@
     TRACE_OBJ
     QApplication a(argc, argv, useGui(argc, argv));
     a.addLibraryPath(a.applicationDirPath() + QLatin1String("/plugins"));
+    setupTranslations();
 
     // Parse arguments.
     CmdLineParser cmd(a.arguments());
@@ -355,7 +356,7 @@
     QHelpEngineCore cachedCollection(cachedCollectionFile);
     if (!cachedCollection.setupData()) {
         cmd.showMessage(QCoreApplication::translate("Assistant",
-                            "Error reading collection file '%1': %2").
+                            "Error reading collection file '%1': %2.").
                         arg(cachedCollectionFile).
                         arg(cachedCollection.error()), true);
         return EXIT_FAILURE;
@@ -419,8 +420,6 @@
         cachedCollection.setCurrentFilter(cmd.currentFilter());
     }
 
-    setupTranslations();
-
     /*
      * We need to be careful here: The main window has to be deleted before
      * the help engine wrapper, which has to be deleted before the
--- a/tools/assistant/tools/assistant/mainwindow.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tools/assistant/tools/assistant/mainwindow.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -831,7 +831,7 @@
         aboutDia.setWindowTitle(aboutDia.documentTitle());
     } else {
         QByteArray resources;
-        aboutDia.setText(QString::fromLatin1("<center>"
+        aboutDia.setText(tr("<center>"
             "<h3>%1</h3>"
             "<p>Version %2</p></center>"
             "<p>Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).</p>")
--- a/tools/assistant/tools/assistant/mainwindow.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/tools/assistant/tools/assistant/mainwindow.h	Mon Oct 04 01:19:32 2010 +0300
@@ -66,7 +66,7 @@
     Q_OBJECT
 
 public:
-    MainWindow(CmdLineParser *cmdLine, QWidget *parent = 0);
+    explicit MainWindow(CmdLineParser *cmdLine, QWidget *parent = 0);
     ~MainWindow();
 
     static void activateCurrentBrowser();
--- a/tools/assistant/tools/assistant/searchwidget.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/tools/assistant/tools/assistant/searchwidget.h	Mon Oct 04 01:19:32 2010 +0300
@@ -58,7 +58,7 @@
     Q_OBJECT
 
 public:
-    SearchWidget(QHelpSearchEngine *engine, QWidget *parent = 0);
+    explicit SearchWidget(QHelpSearchEngine *engine, QWidget *parent = 0);
     ~SearchWidget();
 
     void zoomIn();
--- a/tools/assistant/tools/qcollectiongenerator/main.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tools/assistant/tools/qcollectiongenerator/main.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -49,15 +49,21 @@
 #include <QtCore/QDir>
 #include <QtCore/QMap>
 #include <QtCore/QFileInfo>
-#include <QtCore/QCoreApplication>
 #include <QtCore/QDateTime>
 #include <QtCore/QBuffer>
+#include <QtCore/QTranslator>
+#include <QtCore/QLocale>
+#include <QtCore/QLibraryInfo>
 #include <QtHelp/QHelpEngineCore>
 #include <QtXml/QXmlStreamReader>
 
 
 QT_USE_NAMESPACE
 
+class QCG {
+    Q_DECLARE_TR_FUNCTIONS(QCollectionGenerator)
+};
+
 class CollectionConfigReader : public QXmlStreamReader
 {
 public:
@@ -123,9 +129,7 @@
 
 void CollectionConfigReader::raiseErrorWithLine()
 {
-    raiseError(QCoreApplication::translate("QCollectionGenerator",
-                                           "Unknown token at line %1.")
-                    .arg(lineNumber()));
+    raiseError(QCG::tr("Unknown token at line %1.").arg(lineNumber()));
 }
 
 void CollectionConfigReader::readData(const QByteArray &contents)
@@ -144,9 +148,8 @@
                 && attributes().value(QLatin1String("version")) == QLatin1String("1.0"))
                 readConfig();
             else
-                raiseError(QCoreApplication::translate("QCollectionGenerator",
-                               "Unknown token at line %1. "
-                               "Expected \"QtHelpCollectionProject\"!")
+                raiseError(QCG::tr("Unknown token at line %1. "
+                                   "Expected \"QtHelpCollectionProject\".")
                            .arg(lineNumber()));
         }
     }
@@ -169,7 +172,7 @@
         }
     }
     if (!ok && !hasError())
-        raiseError(QLatin1String("Missing end tags."));
+        raiseError(QCG::tr("Missing end tags."));
 }
 
 void CollectionConfigReader::readAssistantSettings()
@@ -311,7 +314,7 @@
         }
     }
     if (input.isEmpty() || output.isEmpty()) {
-        raiseError(QLatin1String("Missing input or output file for help file generation!"));
+        raiseError(QCG::tr("Missing input or output file for help file generation."));
         return;
     }
     m_filesToGenerate.insert(input, output);
@@ -350,6 +353,20 @@
     bool showHelp = false;
     bool showVersion = false;
 
+    QCoreApplication app(argc, argv);
+    QTranslator translator;
+    QTranslator qtTranslator;
+    QTranslator qt_helpTranslator;
+    QString sysLocale = QLocale::system().name();
+    QString resourceDir = QLibraryInfo::location(QLibraryInfo::TranslationsPath);
+    if (translator.load(QLatin1String("assistant_") + sysLocale, resourceDir)
+        && qtTranslator.load(QLatin1String("qt_") + sysLocale, resourceDir)
+        && qt_helpTranslator.load(QLatin1String("qt_help_") + sysLocale, resourceDir)) {
+        app.installTranslator(&translator);
+        app.installTranslator(&qtTranslator);
+        app.installTranslator(&qt_helpTranslator);
+    }
+
     for (int i=1; i<argc; ++i) {
         arg = QString::fromLocal8Bit(argv[i]);
         if (arg == QLatin1String("-o")) {
@@ -357,8 +374,7 @@
                 QFileInfo fi(QString::fromLocal8Bit(argv[i]));
                 collectionFile = fi.absoluteFilePath();
             } else {
-                error = QCoreApplication::translate("QCollectionGenerator",
-                            "Missing output file name!");
+                error = QCG::tr("Missing output file name.");
             }
         } else if (arg == QLatin1String("-h")) {
             showHelp = true;
@@ -372,16 +388,15 @@
     }
 
     if (showVersion) {
-        fprintf(stdout, "Qt Collection Generator version 1.0 (Qt %s)\n",
-                QT_VERSION_STR);
+        fputs(qPrintable(QCG::tr("Qt Collection Generator version 1.0 (Qt %1)\n")
+                .arg(QT_VERSION_STR)), stdout);
         return 0;
     }
 
     if (configFile.isEmpty() && !showHelp)
-        error = QCoreApplication::translate("QCollectionGenerator",
-                                            "Missing collection config file!");
+        error = QCG::tr("Missing collection config file.");
 
-    QString help = QCoreApplication::translate("QCollectionGenerator", "\nUsage:\n\n"
+    QString help = QCG::tr("\nUsage:\n\n"
         "qcollectiongenerator <collection-config-file> [options]\n\n"
         "  -o <collection-file>   Generates a collection file\n"
         "                         called <collection-file>. If\n"
@@ -391,7 +406,7 @@
         "                         qcollectiongenerator.\n\n");
 
     if (showHelp) {
-        fprintf(stdout, "%s", qPrintable(help));
+        fputs(qPrintable(help), stdout);
         return 0;
     }else if (!error.isEmpty()) {
         fprintf(stderr, "%s\n\n%s", qPrintable(error), qPrintable(help));
@@ -400,7 +415,7 @@
 
     QFile file(configFile);
     if (!file.open(QIODevice::ReadOnly)) {
-        fprintf(stderr, "Could not open %s!\n", qPrintable(configFile));
+        fputs(qPrintable(QCG::tr("Could not open %1.\n").arg(configFile)), stderr);
         return -1;
     }
 
@@ -410,19 +425,18 @@
             + fi.baseName() + QLatin1String(".qhc");
     }
 
-    QCoreApplication app(argc, argv);
-
-    fprintf(stdout, "Reading collection config file...\n");
+    fputs(qPrintable(QCG::tr("Reading collection config file...\n")), stdout);
     CollectionConfigReader config;
     config.readData(file.readAll());
     if (config.hasError()) {
-        fprintf(stderr, "Collection config file error: %s\n", qPrintable(config.errorString()));
+        fputs(qPrintable(QCG::tr("Collection config file error: %1\n")
+                         .arg(config.errorString())), stderr);
         return -1;
     }
 
     QMap<QString, QString>::const_iterator it = config.filesToGenerate().constBegin();
     while (it != config.filesToGenerate().constEnd()) {
-        fprintf(stdout, "Generating help for %s...\n", qPrintable(it.key()));
+        fputs(qPrintable(QCG::tr("Generating help for %1...\n").arg(it.key())), stdout);
         QHelpProjectData helpData;
         if (!helpData.readData(absoluteFileName(basePath, it.key()))) {
             fprintf(stderr, "%s\n", qPrintable(helpData.errorMessage()));
@@ -437,12 +451,13 @@
         ++it;
     }
 
-    fprintf(stdout, "Creating collection file...\n");
+    fputs(qPrintable(QCG::tr("Creating collection file...\n")), stdout);
 
     QFileInfo colFi(collectionFile);
     if (colFi.exists()) {
         if (!colFi.dir().remove(colFi.fileName())) {
-            fprintf(stderr, "The file %s cannot be overwritten!\n", qPrintable(collectionFile));
+            fputs(qPrintable(QCG::tr("The file %1 cannot be overwritten.\n")
+                             .arg(collectionFile)), stderr);
             return -1;
         }
     }
@@ -500,7 +515,7 @@
     if (!config.applicationIcon().isEmpty()) {
         QFile icon(absoluteFileName(basePath, config.applicationIcon()));
         if (!icon.open(QIODevice::ReadOnly)) {
-            fprintf(stderr, "Cannot open %s!\n", qPrintable(icon.fileName()));
+            fputs(qPrintable(QCG::tr("Cannot open %1.\n").arg(icon.fileName())), stderr);
             return -1;
         }
         CollectionConfiguration::setApplicationIcon(helpEngine, icon.readAll());
@@ -521,7 +536,7 @@
     if (!config.aboutIcon().isEmpty()) {
         QFile icon(absoluteFileName(basePath, config.aboutIcon()));
         if (!icon.open(QIODevice::ReadOnly)) {
-            fprintf(stderr, "Cannot open %s!\n", qPrintable(icon.fileName()));
+            fputs(qPrintable(QCG::tr("Cannot open %1.\n").arg(icon.fileName())), stderr);
             return -1;
         }
         CollectionConfiguration::setAboutIcon(helpEngine, icon.readAll());
@@ -543,7 +558,7 @@
             QFileInfo fi(absoluteFileName(basePath, it.value()));
             QFile f(fi.absoluteFilePath());
             if (!f.open(QIODevice::ReadOnly)) {
-                fprintf(stderr, "Cannot open %s!\n", qPrintable(f.fileName()));
+                fputs(qPrintable(QCG::tr("Cannot open %1.\n").arg(f.fileName())), stderr);
                 return -1;
             }
             QByteArray data = f.readAll();
@@ -565,8 +580,8 @@
                         if (!imgData.contains(src))
                             imgData.insert(src, img.readAll());
                     } else {
-                        fprintf(stderr, "Cannot open referenced image file %s!\n",
-                            qPrintable(img.fileName()));
+                        fputs(qPrintable(QCG::tr("Cannot open referenced image file %1.\n")
+                                         .arg(img.fileName())), stderr);
                     }
                 }
             }
--- a/tools/assistant/tools/qhelpconverter/filterpage.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tools/assistant/tools/qhelpconverter/filterpage.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -127,7 +127,7 @@
 {
     QTreeWidgetItem *item = new QTreeWidgetItem(m_ui.customFilterWidget);
     item->setFlags(Qt::ItemIsEnabled|Qt::ItemIsEditable|Qt::ItemIsSelectable);
-    item->setText(0, QLatin1String("unfiltered"));
+    item->setText(0, tr("unfiltered", "list of available documentation"));
     item->setText(1, QLatin1String(""));
     m_ui.customFilterWidget->editItem(item, 0);
     m_ui.removeButton->setDisabled(false);
--- a/tools/assistant/tools/qhelpconverter/finishpage.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tools/assistant/tools/qhelpconverter/finishpage.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -52,8 +52,7 @@
     : QWizardPage(parent)
 {
     setTitle(tr("Converting File"));
-    setSubTitle(QLatin1String("Creating the new Qt help files from the "
-        "old .adp file."));
+    setSubTitle(tr("Creating the new Qt help files from the old ADP file."));
     setFinalPage(true);
 
     QVBoxLayout *layout = new QVBoxLayout(this);
--- a/tools/assistant/tools/qhelpconverter/helpwindow.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tools/assistant/tools/qhelpconverter/helpwindow.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -64,7 +64,7 @@
 
     layout = new QVBoxLayout(frame);
     layout->setMargin(2);
-    QLabel *l = new QLabel(QLatin1String("<center><b>Wizard Assistant</b></center>"));
+    QLabel *l = new QLabel(tr("<center><b>Wizard Assistant</b></center>"));
     layout->addWidget(l);
     m_textEdit = new QTextEdit();
     m_textEdit->setFrameStyle(QFrame::NoFrame);
--- a/tools/assistant/tools/qhelpconverter/inputpage.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/tools/assistant/tools/qhelpconverter/inputpage.h	Mon Oct 04 01:19:32 2010 +0300
@@ -54,7 +54,7 @@
     Q_OBJECT
 
 public:
-    InputPage(AdpReader *reader, QWidget *parent = 0);
+    explicit InputPage(AdpReader *reader, QWidget *parent = 0);
     
 private slots:
     void getFileName();
--- a/tools/assistant/tools/qhelpconverter/main.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tools/assistant/tools/qhelpconverter/main.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -40,6 +40,9 @@
 ****************************************************************************/
 
 #include <QtCore/QFileInfo>
+#include <QtCore/QTranslator>
+#include <QtCore/QLocale>
+#include <QtCore/QLibraryInfo>
 #include <QtGui/QApplication>
 
 #include "conversionwizard.h"
@@ -49,6 +52,18 @@
 int main(int argc, char *argv[])
 {
     QApplication app(argc, argv);
+    QTranslator translator;
+    QTranslator qtTranslator;
+    QTranslator qt_helpTranslator;
+    QString sysLocale = QLocale::system().name();
+    QString resourceDir = QLibraryInfo::location(QLibraryInfo::TranslationsPath);
+    if (translator.load(QLatin1String("assistant_") + sysLocale, resourceDir)
+        && qtTranslator.load(QLatin1String("qt_") + sysLocale, resourceDir)
+        && qt_helpTranslator.load(QLatin1String("qt_help_") + sysLocale, resourceDir)) {
+        app.installTranslator(&translator);
+        app.installTranslator(&qtTranslator);
+        app.installTranslator(&qt_helpTranslator);
+    }
 
     ConversionWizard w;
     if (argc == 2) {
--- a/tools/assistant/tools/qhelpgenerator/main.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tools/assistant/tools/qhelpgenerator/main.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -44,11 +44,18 @@
 #include <QtCore/QDir>
 #include <QtCore/QFileInfo>
 #include <QtCore/QCoreApplication>
+#include <QtCore/QTranslator>
+#include <QtCore/QLocale>
+#include <QtCore/QLibraryInfo>
 
 #include <private/qhelpprojectdata_p.h>
 
 QT_USE_NAMESPACE
 
+class QHG {
+    Q_DECLARE_TR_FUNCTIONS(QHelpGenerator)
+};
+
 int main(int argc, char *argv[])
 {
     QString error;
@@ -60,6 +67,20 @@
     bool showVersion = false;
     bool checkLinks = false;
 
+    QCoreApplication app(argc, argv);
+    QTranslator translator;
+    QTranslator qtTranslator;
+    QTranslator qt_helpTranslator;
+    QString sysLocale = QLocale::system().name();
+    QString resourceDir = QLibraryInfo::location(QLibraryInfo::TranslationsPath);
+    if (translator.load(QLatin1String("assistant_") + sysLocale, resourceDir)
+        && qtTranslator.load(QLatin1String("qt_") + sysLocale, resourceDir)
+        && qt_helpTranslator.load(QLatin1String("qt_help_") + sysLocale, resourceDir)) {
+        app.installTranslator(&translator);
+        app.installTranslator(&qtTranslator);
+        app.installTranslator(&qt_helpTranslator);
+    }
+
     for (int i = 1; i < argc; ++i) {
         arg = QString::fromLocal8Bit(argv[i]);
         if (arg == QLatin1String("-o")) {
@@ -67,8 +88,7 @@
                 QFileInfo fi(QString::fromLocal8Bit(argv[i]));
                 compressedFile = fi.absoluteFilePath();
             } else {
-                error = QCoreApplication::translate("QHelpGenerator",
-                            "Missing output file name!");
+                error = QHG::tr("Missing output file name.");
             }
         } else if (arg == QLatin1String("-v")) {
             showVersion = true;
@@ -84,16 +104,15 @@
     }
 
     if (showVersion) {
-        fprintf(stdout, "Qt Help Generator version 1.0 (Qt %s)\n",
-                QT_VERSION_STR);
+        fputs(qPrintable(QHG::tr("Qt Help Generator version 1.0 (Qt %1)\n")
+                         .arg(QT_VERSION_STR)), stdout);
         return 0;
     }
 
     if (projectFile.isEmpty() && !showHelp)
-        error = QCoreApplication::translate("QHelpGenerator",
-                                            "Missing Qt help project file!");
+        error = QHG::tr("Missing Qt help project file.");
 
-    QString help = QCoreApplication::translate("QHelpGenerator", "\nUsage:\n\n"
+    QString help = QHG::tr("\nUsage:\n\n"
         "qhelpgenerator <help-project-file> [options]\n\n"
         "  -o <compressed-file>   Generates a Qt compressed help\n"
         "                         file called <compressed-file>.\n"
@@ -105,7 +124,7 @@
         "                         qhelpgenerator.\n\n");
 
     if (showHelp) {
-        fprintf(stdout, "%s", qPrintable(help));
+        fputs(qPrintable(help), stdout);
         return 0;
     }else if (!error.isEmpty()) {
         fprintf(stderr, "%s\n\n%s", qPrintable(error), qPrintable(help));
@@ -114,7 +133,7 @@
 
     QFile file(projectFile);
     if (!file.open(QIODevice::ReadOnly)) {
-        fprintf(stderr, "Could not open %s!\n", qPrintable(projectFile));
+        fputs(qPrintable(QHG::tr("Could not open %1.\n").arg(projectFile)), stderr);
         return -1;
     }
 
@@ -130,8 +149,8 @@
         QDir parentDir = fi.dir();
         if (!parentDir.exists()) {
             if (!parentDir.mkpath(QLatin1String("."))) {
-                fprintf(stderr, "Could not create output directory: %s\n",
-                        qPrintable(parentDir.path()));
+                fputs(qPrintable(QHG::tr("Could not create output directory: %1\n")
+                                 .arg(parentDir.path())), stderr);
             }
         }
     }
@@ -142,7 +161,6 @@
         return -1;
     }
 
-    QCoreApplication app(argc, argv);
     HelpGenerator generator;
     bool success = true;
     if (checkLinks)
--- a/tools/assistant/tools/shared/helpgenerator.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tools/assistant/tools/shared/helpgenerator.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -73,12 +73,12 @@
 
 void HelpGenerator::printStatus(const QString &msg)
 {
-    fprintf(stdout, "%s\n", qPrintable(msg));
+    puts(qPrintable(msg));
 }
 
 void HelpGenerator::printWarning(const QString &msg)
 {
-    fprintf(stdout, "Warning: %s\n", qPrintable(msg));
+    puts(qPrintable(tr("Warning: %1").arg(msg)));
 }
 
 QT_END_NAMESPACE
--- a/tools/configure/configure.pro	Fri Sep 17 08:34:18 2010 +0300
+++ b/tools/configure/configure.pro	Mon Oct 04 01:19:32 2010 +0300
@@ -28,7 +28,7 @@
            $$QT_SOURCE_TREE/src/corelib/global \
            $$QT_BUILD_TREE/include \
            $$QT_BUILD_TREE/include/QtCore \
-           $$QT_BUILD_TREE/tools/shared
+           $$QT_SOURCE_TREE/tools/shared
 
 HEADERS  = configureapp.h environment.h tools.h\
            $$QT_SOURCE_TREE/src/corelib/tools/qbytearray.h \
--- a/tools/configure/configureapp.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tools/configure/configureapp.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -341,7 +341,7 @@
     dictionary[ "ACCESSIBILITY" ]   = "yes";
     dictionary[ "OPENGL" ]          = "yes";
     dictionary[ "OPENVG" ]          = "no";
-    dictionary[ "IPV6" ]            = "yes"; // Always, dynamicly loaded
+    dictionary[ "IPV6" ]            = "yes"; // Always, dynamically loaded
     dictionary[ "OPENSSL" ]         = "auto";
     dictionary[ "DBUS" ]            = "auto";
     dictionary[ "S60" ]             = "yes";
@@ -381,6 +381,7 @@
     dictionary[ "INCREDIBUILD_XGE" ] = "auto";
     dictionary[ "LTCG" ]            = "no";
     dictionary[ "NATIVE_GESTURES" ] = "yes";
+    dictionary[ "MSVC_MP" ] = "no";
 }
 
 Configure::~Configure()
@@ -534,6 +535,13 @@
         else if (configCmdLine.at(i) == "-no-ltcg") {
             dictionary[ "LTCG" ] = "no";
         }
+        else if (configCmdLine.at(i) == "-mp") {
+            dictionary[ "MSVC_MP" ] = "yes";
+        }
+        else if (configCmdLine.at(i) == "-no-mp") {
+            dictionary[ "MSVC_MP" ] = "no";
+        }
+
 #endif
 
         else if (configCmdLine.at(i) == "-platform") {
@@ -988,7 +996,6 @@
             ++i;
             if (i == argCount)
                 break;
-            qmakeDefines += "QT_NAMESPACE="+configCmdLine.at(i);
             dictionary[ "QT_NAMESPACE" ] = configCmdLine.at(i);
         } else if (configCmdLine.at(i) == "-qtlibinfix") {
             ++i;
@@ -1029,6 +1036,10 @@
             opensslLibs = configCmdLine.at(i);
         } else if (configCmdLine.at(i).startsWith("PSQL_LIBS=")) {
             psqlLibs = configCmdLine.at(i);
+        } else if (configCmdLine.at(i).startsWith("SYBASE=")) {
+            sybase = configCmdLine.at(i);
+        } else if (configCmdLine.at(i).startsWith("SYBASE_LIBS=")) {
+            sybaseLibs = configCmdLine.at(i);
         }
 
         else if ((configCmdLine.at(i) == "-override-version") || (configCmdLine.at(i) == "-version-override")){
@@ -1159,6 +1170,13 @@
                 dictionary["GRAPHICS_SYSTEM"] = configCmdLine.at(i);
         }
 
+        else if (configCmdLine.at(i) == "-runtimegraphicssystem") {
+            ++i;
+            if (i == argCount)
+                break;
+            dictionary["RUNTIME_SYSTEM"] = configCmdLine.at(i);
+        }
+
         else if (configCmdLine.at(i).indexOf(QRegExp("^-(en|dis)able-")) != -1) {
             // Scan to see if any specific modules and drivers are enabled or disabled
             for (QStringList::Iterator module = modules.begin(); module != modules.end(); ++module) {
@@ -1502,6 +1520,10 @@
         dictionary[ "QT3SUPPORT" ]          = "no";
         dictionary[ "OPENGL" ]              = "no";
         dictionary[ "OPENSSL" ]             = "yes";
+        // We accidently enabled IPv6 for Qt Symbian in 4.6.x. However the underlying OpenC does not fully support IPV6.
+        // Therefore for 4.7.1 and following we disable it until OpenC either supports it or we have the native Qt
+        // symbian socket engine.
+        dictionary[ "IPV6" ]                = "no";
         dictionary[ "STL" ]                 = "yes";
         dictionary[ "EXCEPTIONS" ]          = "yes";
         dictionary[ "RTTI" ]                = "yes";
@@ -1627,7 +1649,7 @@
                     "[-phonon] [-no-phonon-backend] [-phonon-backend]\n"
                     "[-no-multimedia] [-multimedia] [-no-audio-backend] [-audio-backend]\n"
                     "[-no-script] [-script] [-no-scripttools] [-scripttools]\n"
-                    "[-no-webkit] [-webkit] [-graphicssystem raster|opengl|openvg|runtime]\n\n", 0, 7);
+                    "[-no-webkit] [-webkit] [-graphicssystem raster|opengl|openvg]\n\n", 0, 7);
 
         desc("Installation options:\n\n");
 
@@ -1732,9 +1754,7 @@
                                 "Available values for <sys>:");
         desc("GRAPHICS_SYSTEM", "raster", "",  "  raster - Software rasterizer", ' ');
         desc("GRAPHICS_SYSTEM", "opengl", "",  "  opengl - Using OpenGL acceleration, experimental!", ' ');
-        desc("GRAPHICS_SYSTEM", "openvg", "",  "  openvg - Using OpenVG acceleration, experimental!", ' ');
-        desc("GRAPHICS_SYSTEM", "runtime", "", "  runtime - Runtime switching of graphics sytems", ' ');
-
+        desc("GRAPHICS_SYSTEM", "openvg", "",  "  openvg - Using OpenVG acceleration, experimental!\n", ' ');
 
         desc(                   "-help, -h, -?",        "Display this information.\n");
 
@@ -1843,6 +1863,8 @@
         desc("STYLE_S60" , "yes", "",                   "  s60\n", ' ');
         desc("NATIVE_GESTURES", "no", "-no-native-gestures", "Do not use native gestures on Windows 7.");
         desc("NATIVE_GESTURES", "yes", "-native-gestures", "Use native gestures on Windows 7.");
+        desc("MSVC_MP", "no", "-no-mp",                 "Do not use multiple processors for compiling with MSVC");
+        desc("MSVC_MP", "yes", "-mp",                   "Use multiple processors for compiling with MSVC (-MP)");
 
 /*      We do not support -qconfig on Windows yet
 
@@ -2144,7 +2166,7 @@
 
                 available = (paths.size() == 0);
                 if (!available) {
-                    if (epocRoot.isNull() || epocRoot == "")
+                    if (epocRoot.isEmpty())
                         epocRoot = "<empty string>";
                     cout << endl
                          << "The QtMultimedia audio backend will not be built because required" << endl
@@ -2662,8 +2684,13 @@
             qtConfig += "audio-backend";
     }
 
-    if (dictionary["WEBKIT"] == "yes")
-        qtConfig += "webkit";
+    if (dictionary["WEBKIT"] == "yes") {
+        // This include takes care of adding "webkit" to QT_CONFIG.
+        QString src = sourcePath + "/src/3rdparty/webkit/WebKit/qt/qt_webkit_version.pri";
+        QString dst = buildPath + "/mkspecs/modules/qt_webkit_version.pri";
+        QFile::remove(dst);
+        QFile::copy(src, dst);
+    }
 
     if (dictionary["DECLARATIVE"] == "yes") {
         if (dictionary[ "SCRIPT" ] == "no") {
@@ -2690,7 +2717,7 @@
 
     QString set_config = dictionary["QCONFIG"];
     if (possible_configs.contains(set_config)) {
-        foreach(QString cfg, possible_configs) {
+        foreach (const QString &cfg, possible_configs) {
             qtConfig += (cfg + "-config");
             if (cfg == set_config)
                 break;
@@ -2750,6 +2777,17 @@
         }
     if (!psqlLibs.isEmpty())
         qmakeVars += QString("QT_LFLAGS_PSQL=") + psqlLibs.section("=", 1);
+
+    {
+        QStringList lflagsTDS;
+        if (!sybase.isEmpty())
+            lflagsTDS += QString("-L") + fixSeparators(sybase.section("=", 1) + "/lib");
+        if (!sybaseLibs.isEmpty())
+            lflagsTDS += sybaseLibs.section("=", 1);
+        if (!lflagsTDS.isEmpty())
+            qmakeVars += QString("QT_LFLAGS_TDS=") + lflagsTDS.join(" ");
+    }
+
     if (!qmakeSql.isEmpty())
         qmakeVars += QString("sql-drivers    += ") + qmakeSql.join(" ");
     if (!qmakeSqlPlugins.isEmpty())
@@ -2801,11 +2839,11 @@
         for (QStringList::Iterator var = qmakeVars.begin(); var != qmakeVars.end(); ++var) {
             cacheStream << (*var) << endl;
         }
-        cacheStream << "CONFIG         += " << qmakeConfig.join(" ") << " incremental create_prl link_prl depend_includepath QTDIR_build" << endl;
+        cacheStream << "CONFIG         += " << qmakeConfig.join(" ") << " incremental msvc_mp create_prl link_prl depend_includepath QTDIR_build" << endl;
 
         QStringList buildParts;
         buildParts << "libs" << "tools" << "examples" << "demos" << "docs" << "translations";
-        foreach(QString item, disabledBuildParts) {
+        foreach (const QString &item, disabledBuildParts) {
             buildParts.removeAll(item);
         }
         cacheStream << "QT_BUILD_PARTS  = " << buildParts.join(" ") << endl;
@@ -2864,6 +2902,8 @@
 
         if (dictionary[ "LTCG" ] == "yes")
             configStream << " ltcg";
+        if (dictionary[ "MSVC_MP" ] == "yes")
+            configStream << " msvc_mp";
         if (dictionary[ "STL" ] == "yes")
             configStream << " stl";
         if (dictionary[ "EXCEPTIONS" ] == "yes")
@@ -2928,8 +2968,6 @@
             configStream << "#namespaces" << endl << "QT_NAMESPACE = " << dictionary["QT_NAMESPACE"] << endl;
         }
 
-        configStream << "#modules" << endl << "for(mod,$$list($$files($$[QMAKE_MKSPECS]/modules/qt_*.pri))):include($$mod)" << endl;
-
         configStream.flush();
         configFile.close();
     }
@@ -3028,6 +3066,9 @@
 
         tmpStream << endl << "// Compile time features" << endl;
         tmpStream << "#define QT_ARCH_" << dictionary["ARCHITECTURE"].toUpper() << endl;
+        if (dictionary["GRAPHICS_SYSTEM"] == "runtime" && dictionary["RUNTIME_SYSTEM"] != "runtime")
+            tmpStream << "#define QT_DEFAULT_RUNTIME_SYSTEM \"" << dictionary["RUNTIME_SYSTEM"] << "\"" << endl;
+
         QStringList qconfigList;
         if (dictionary["STL"] == "no")                qconfigList += "QT_NO_STL";
         if (dictionary["STYLE_WINDOWS"] != "yes")     qconfigList += "QT_NO_STYLE_WINDOWS";
@@ -3117,7 +3158,7 @@
             QStringList kbdDrivers = dictionary["KBD_DRIVERS"].split(" ");;
             QStringList allKbdDrivers;
             allKbdDrivers<<"tty"<<"usb"<<"sl5000"<<"yopy"<<"vr41xx"<<"qvfb"<<"um";
-            foreach(QString kbd, allKbdDrivers) {
+            foreach (const QString &kbd, allKbdDrivers) {
                 if (!kbdDrivers.contains(kbd))
                     tmpStream<<"#define QT_NO_QWS_KBD_"<<kbd.toUpper()<<endl;
             }
@@ -3125,7 +3166,7 @@
             QStringList mouseDrivers = dictionary["MOUSE_DRIVERS"].split(" ");
             QStringList allMouseDrivers;
             allMouseDrivers << "pc"<<"bus"<<"linuxtp"<<"yopy"<<"vr41xx"<<"tslib"<<"qvfb";
-            foreach(QString mouse, allMouseDrivers) {
+            foreach (const QString &mouse, allMouseDrivers) {
                 if (!mouseDrivers.contains(mouse))
                     tmpStream<<"#define QT_NO_QWS_MOUSE_"<<mouse.toUpper()<<endl;
             }
@@ -3133,7 +3174,7 @@
             QStringList gfxDrivers = dictionary["GFX_DRIVERS"].split(" ");
             QStringList allGfxDrivers;
             allGfxDrivers<<"linuxfb"<<"transformed"<<"qvfb"<<"vnc"<<"multiscreen"<<"ahi";
-            foreach(QString gfx, allGfxDrivers) {
+            foreach (const QString &gfx, allGfxDrivers) {
                 if (!gfxDrivers.contains(gfx))
                     tmpStream<<"#define QT_NO_QWS_"<<gfx.toUpper()<<endl;
             }
@@ -3141,7 +3182,7 @@
             tmpStream<<"#define Q_WS_QWS"<<endl;
 
             QStringList depths = dictionary[ "QT_QWS_DEPTH" ].split(" ");
-            foreach(QString depth, depths)
+            foreach (const QString &depth, depths)
               tmpStream<<"#define QT_QWS_DEPTH_"+depth<<endl;
         }
 
@@ -3590,7 +3631,10 @@
         // generate Makefile
         QStringList args;
         args << QDir::toNativeSeparators(buildPath + "/bin/qmake");
-        args << "-spec" << dictionary["QMAKESPEC"] << "-r";
+        // override .qmake.cache because we are not cross-building these.
+        // we need a full path so that a build with -prefix will still find it.
+        args << "-spec" << QDir::toNativeSeparators(buildPath + "/mkspecs/" + dictionary["QMAKESPEC"]);
+        args << "-r";
         args << "-o" << QDir::toNativeSeparators(toolBuildPath + "/Makefile");
 
         QDir().mkpath(toolBuildPath);
@@ -3728,8 +3772,7 @@
                     printf("Generating Makefiles...\n");
                     generate = false; // Now Makefiles will be done
                 }
-                args << "-spec";
-                args << spec;
+                // don't pass -spec - .qmake.cache has it already
                 args << "-r";
                 args << (sourcePath + "/projects.pro");
                 args << "-o";
--- a/tools/configure/configureapp.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/tools/configure/configureapp.h	Mon Oct 04 01:19:32 2010 +0300
@@ -134,6 +134,8 @@
     QStringList qmakeLibs;
     QString opensslLibs;
     QString psqlLibs;
+    QString sybase;
+    QString sybaseLibs;
 
     QMap<QString,QString> licenseInfo;
     QString outputLine;
--- a/tools/configure/environment.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tools/configure/environment.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -281,8 +281,7 @@
             pos += tmpSize;
     }
     // add the user environment
-    for (QStringList::ConstIterator it = environment.begin(); it != environment.end(); it++ ) {
-            QString tmp = *it;
+    foreach (const QString &tmp, environment) {
             uint tmpSize = sizeof(wchar_t) * (tmp.length() + 1);
             envlist.resize(envlist.size() + tmpSize);
             memcpy(envlist.data() + pos, tmp.utf16(), tmpSize);
@@ -386,7 +385,7 @@
         switch(GetLastError()) {
         case E2BIG:
             cerr << "execute: Argument list exceeds 1024 bytes" << endl;
-            foreach(QString arg, arguments)
+            foreach (const QString &arg, arguments)
                 cerr << "   (" << arg.toLocal8Bit().constData() << ")" << endl;
             break;
         case ENOENT:
@@ -400,7 +399,7 @@
             break;
         default:
             cerr << "execute: Unknown error" << endl;
-            foreach(QString arg, arguments)
+            foreach (const QString &arg, arguments)
                 cerr << "   (" << arg.toLocal8Bit().constData() << ")" << endl;
             break;
         }
--- a/tools/configure/tools.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tools/configure/tools.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -91,8 +91,8 @@
                 QStringList components = buffer.split( '=' );
                 if ( components.size() >= 2 ) {
                     QStringList::Iterator it = components.begin();
-                    QString key = (*it++).trimmed().replace( "\"", QString() ).toUpper();
-                    QString value = (*it++).trimmed().replace( "\"", QString() );
+                    QString key = (*it++).trimmed().remove('"').toUpper();
+                    QString value = (*it++).trimmed().remove('"');
                     licenseInfo[ key ] = value;
                 }
             }
@@ -111,7 +111,7 @@
     // Verify license info...
     QString licenseKey = licenseInfo["LICENSEKEYEXT"];
     QByteArray clicenseKey = licenseKey.toLatin1();
-    //We check the licence
+    //We check the license
     static const char * const SEP = "-";
     char *licenseParts[NUMBER_OF_PARTS];
     int partNumber = 0;
@@ -218,7 +218,7 @@
 
     if (QFile::exists(dictionary["QT_SOURCE_TREE"] + "/.LICENSE")) {
         // Generic, no-suffix license
-        dictionary["LICENSE_EXTENSION"] = QString();
+        dictionary["LICENSE_EXTENSION"].clear();
     } else if (dictionary["LICENSE_EXTENSION"].isEmpty()) {
         cout << "License file does not contain proper license key." << endl;
         dictionary["DONE"] = "error";
@@ -239,7 +239,7 @@
         fromLicenseFile += "-US";
 
     if (!CopyFile((wchar_t*)QDir::toNativeSeparators(fromLicenseFile).utf16(),
-        (wchar_t*)QDir::toNativeSeparators(toLicenseFile).utf16(), FALSE)) {
+        (wchar_t*)QDir::toNativeSeparators(toLicenseFile).utf16(), false)) {
         cout << "Failed to copy license file (" << fromLicenseFile << ")";
         dictionary["DONE"] = "error";
         return;
--- a/tools/designer/src/components/propertyeditor/defs.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,107 +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 Designer 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 "defs.h"
-
-QT_BEGIN_NAMESPACE
-
-namespace qdesigner_internal {
-
-int size_type_to_int( QSizePolicy::Policy t )
-{
-    if ( t == QSizePolicy::Fixed )
-	return 0;
-    if ( t == QSizePolicy::Minimum )
-	return 1;
-    if ( t == QSizePolicy::Maximum )
-	return 2;
-    if ( t == QSizePolicy::Preferred )
-	return 3;
-    if ( t == QSizePolicy::MinimumExpanding )
-	return 4;
-    if ( t == QSizePolicy::Expanding )
-	return 5;
-    if ( t == QSizePolicy::Ignored )
-	return 6;
-    return 0;
-}
-
-QString size_type_to_string( QSizePolicy::Policy t )
-{
-    if ( t == QSizePolicy::Fixed )
-	return QString::fromUtf8("Fixed");
-    if ( t == QSizePolicy::Minimum )
-	return QString::fromUtf8("Minimum");
-    if ( t == QSizePolicy::Maximum )
-	return QString::fromUtf8("Maximum");
-    if ( t == QSizePolicy::Preferred )
-	return QString::fromUtf8("Preferred");
-    if ( t == QSizePolicy::MinimumExpanding )
-	return QString::fromUtf8("MinimumExpanding");
-    if ( t == QSizePolicy::Expanding )
-	return QString::fromUtf8("Expanding");
-    if ( t == QSizePolicy::Ignored )
-	return QString::fromUtf8("Ignored");
-    return QString();
-}
-
-QSizePolicy::Policy int_to_size_type( int i )
-{
-    if ( i == 0 )
-	return QSizePolicy::Fixed;
-    if ( i == 1 )
-	return QSizePolicy::Minimum;
-    if ( i == 2 )
-	return QSizePolicy::Maximum;
-    if ( i == 3 )
-	return QSizePolicy::Preferred;
-    if ( i == 4 )
-	return QSizePolicy::MinimumExpanding;
-    if ( i == 5 )
-	return QSizePolicy::Expanding;
-    if ( i == 6 )
-	return QSizePolicy::Ignored;
-    return QSizePolicy::Preferred;
-}
-
-}  // namespace qdesigner_internal
-
-QT_END_NAMESPACE
--- a/tools/designer/src/components/propertyeditor/defs.h	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,60 +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 Designer 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 DEFS_H
-#define DEFS_H
-
-#include <QtGui/QSizePolicy>
-#include <QtCore/QString>
-
-QT_BEGIN_NAMESPACE
-
-namespace qdesigner_internal {
-
-int size_type_to_int(QSizePolicy::Policy t);
-QString size_type_to_string(QSizePolicy::Policy t);
-QSizePolicy::Policy int_to_size_type(int i);
-
-}  // namespace qdesigner_internal
-
-QT_END_NAMESPACE
-
-#endif // DEFS_H
--- a/tools/designer/src/components/propertyeditor/propertyeditor.pri	Fri Sep 17 08:34:18 2010 +0300
+++ b/tools/designer/src/components/propertyeditor/propertyeditor.pri	Mon Oct 04 01:19:32 2010 +0300
@@ -45,10 +45,8 @@
 
 HEADERS += \
     $$PWD/propertyeditor_global.h \
-    $$PWD/defs.h \
     $$PWD/qlonglongvalidator.h
 
-SOURCES += $$PWD/defs.cpp \
-    $$PWD/qlonglongvalidator.cpp
+SOURCES += $$PWD/qlonglongvalidator.cpp
 
 RESOURCES += $$PWD/propertyeditor.qrc
--- a/tools/designer/src/components/taskmenu/itemlisteditor.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tools/designer/src/components/taskmenu/itemlisteditor.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -114,20 +114,20 @@
 }
 
 static const char * const itemFlagNames[] = {
-    "Selectable",
-    "Editable",
-    "DragEnabled",
-    "DropEnabled",
-    "UserCheckable",
-    "Enabled",
-    "Tristate",
+    QT_TRANSLATE_NOOP("AbstractItemEditor", "Selectable"),
+    QT_TRANSLATE_NOOP("AbstractItemEditor", "Editable"),
+    QT_TRANSLATE_NOOP("AbstractItemEditor", "DragEnabled"),
+    QT_TRANSLATE_NOOP("AbstractItemEditor", "DropEnabled"),
+    QT_TRANSLATE_NOOP("AbstractItemEditor", "UserCheckable"),
+    QT_TRANSLATE_NOOP("AbstractItemEditor", "Enabled"),
+    QT_TRANSLATE_NOOP("AbstractItemEditor", "Tristate"),
     0
 };
 
 static const char * const checkStateNames[] = {
-    "Unchecked",
-    "PartiallyChecked",
-    "Checked",
+    QT_TRANSLATE_NOOP("AbstractItemEditor", "Unchecked"),
+    QT_TRANSLATE_NOOP("AbstractItemEditor", "PartiallyChecked"),
+    QT_TRANSLATE_NOOP("AbstractItemEditor", "Checked"),
     0
 };
 
@@ -135,7 +135,7 @@
 {
     QStringList out;
     for (int i = 0; in[i]; i++)
-        out << QLatin1String(in[i]);
+        out << AbstractItemEditor::tr(in[i]);
     return out;
 }
 
--- a/tools/designer/src/designer/assistantclient.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tools/designer/src/designer/assistantclient.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -101,7 +101,7 @@
         return false;
     }
     QTextStream str(m_process);
-    str << cmd << QLatin1Char('\0') << endl;
+    str << cmd << QLatin1Char('\n') << endl;
     return true;
 }
 
--- a/tools/designer/src/lib/shared/actionrepository.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tools/designer/src/lib/shared/actionrepository.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -397,9 +397,10 @@
     emit contextMenuRequested(event, m_model->actionAt(indexAt(event->pos())));
 }
 
-void ActionTreeView::currentChanged(const QModelIndex &current, const QModelIndex &/*previous*/)
+void ActionTreeView::currentChanged(const QModelIndex &current, const QModelIndex &previous)
 {
     emit currentChanged(m_model->actionAt(current));
+    QTreeView::currentChanged(current, previous);
 }
 
 void ActionTreeView::slotActivated(const QModelIndex &index)
@@ -478,9 +479,10 @@
     emit contextMenuRequested(event, m_model->actionAt(indexAt(event->pos())));
 }
 
-void ActionListView::currentChanged(const QModelIndex &current, const QModelIndex & /*previous*/)
+void ActionListView::currentChanged(const QModelIndex &current, const QModelIndex &previous)
 {
     emit currentChanged(m_model->actionAt(current));
+    QListView::currentChanged(current, previous);
 }
 
 void ActionListView::slotActivated(const QModelIndex &index)
--- a/tools/designer/src/lib/shared/plugindialog.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tools/designer/src/lib/shared/plugindialog.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -102,7 +102,7 @@
     const QStringList fileNames = pluginManager->registeredPlugins();
 
     if (!fileNames.isEmpty()) {
-        QTreeWidgetItem *topLevelItem = setTopLevelItem(QLatin1String("Loaded Plugins"));
+        QTreeWidgetItem *topLevelItem = setTopLevelItem(tr("Loaded Plugins"));
         QFont boldFont = topLevelItem->font(0);
 
         foreach (const QString &fileName, fileNames) {
@@ -125,7 +125,7 @@
 
     const QStringList notLoadedPlugins = pluginManager->failedPlugins();
     if (!notLoadedPlugins.isEmpty()) {
-        QTreeWidgetItem *topLevelItem = setTopLevelItem(QLatin1String("Failed Plugins"));
+        QTreeWidgetItem *topLevelItem = setTopLevelItem(tr("Failed Plugins"));
         const QFont boldFont = topLevelItem->font(0);
         foreach (const QString &plugin, notLoadedPlugins) {
             const QString failureReason = pluginManager->failureReason(plugin);
--- a/tools/designer/src/lib/shared/stylesheeteditor.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tools/designer/src/lib/shared/stylesheeteditor.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -79,6 +79,7 @@
     : QTextEdit(parent)
 {
     setTabStopWidth(fontMetrics().width(QLatin1Char(' '))*4);
+    setAcceptRichText(false);
     new CssHighlighter(document());
 }
 
--- a/tools/designer/src/plugins/phononwidgets/seeksliderplugin.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tools/designer/src/plugins/phononwidgets/seeksliderplugin.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -66,12 +66,12 @@
 
 QString SeekSliderPlugin::toolTip() const
 {
-    return QString(QLatin1String(toolTipC));
+    return tr(toolTipC);
 }
 
 QString SeekSliderPlugin::whatsThis() const
 {
-    return QString(QLatin1String(toolTipC));
+    return tr(toolTipC);
 }
 
 QString SeekSliderPlugin::includeFile() const
--- a/tools/designer/src/plugins/phononwidgets/videoplayerplugin.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tools/designer/src/plugins/phononwidgets/videoplayerplugin.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -72,12 +72,12 @@
 
 QString VideoPlayerPlugin::toolTip() const
 {
-    return QString(QLatin1String(toolTipC));
+    return tr(toolTipC);
 }
 
 QString VideoPlayerPlugin::whatsThis() const
 {
-    return QString(QLatin1String(toolTipC));
+    return tr(toolTipC);
 }
 
 QString VideoPlayerPlugin::includeFile() const
--- a/tools/designer/src/plugins/phononwidgets/volumesliderplugin.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tools/designer/src/plugins/phononwidgets/volumesliderplugin.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -66,12 +66,12 @@
 
 QString VolumeSliderPlugin::toolTip() const
 {
-    return QString(QLatin1String(toolTipC));
+    return tr(toolTipC);
 }
 
 QString VolumeSliderPlugin::whatsThis() const
 {
-    return QString(QLatin1String(toolTipC));
+    return tr(toolTipC);
 }
 
 QString VolumeSliderPlugin::includeFile() const
--- a/tools/designer/src/plugins/qdeclarativeview/qdeclarativeview_plugin.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tools/designer/src/plugins/qdeclarativeview/qdeclarativeview_plugin.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -69,12 +69,12 @@
 
 QString QDeclarativeViewPlugin::toolTip() const
 {
-    return QString(QLatin1String(toolTipC));
+    return tr(toolTipC);
 }
 
 QString QDeclarativeViewPlugin::whatsThis() const
 {
-    return QString(QLatin1String(toolTipC));
+    return tr(toolTipC);
 }
 
 QString QDeclarativeViewPlugin::includeFile() const
--- a/tools/designer/src/plugins/qwebview/qwebview_plugin.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tools/designer/src/plugins/qwebview/qwebview_plugin.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -69,12 +69,12 @@
 
 QString QWebViewPlugin::toolTip() const
 {
-    return QString(QLatin1String(toolTipC));
+    return tr(toolTipC);
 }
 
 QString QWebViewPlugin::whatsThis() const
 {
-    return QString(QLatin1String(toolTipC));
+    return tr(toolTipC);
 }
 
 QString QWebViewPlugin::includeFile() const
--- a/tools/linguist/lconvert/main.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tools/linguist/lconvert/main.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -45,11 +45,17 @@
 #include <QtCore/QDebug>
 #include <QtCore/QString>
 #include <QtCore/QStringList>
+#include <QtCore/QTranslator>
+#include <QtCore/QLibraryInfo>
 
 #include <iostream>
 
 QT_USE_NAMESPACE
 
+class LC {
+    Q_DECLARE_TR_FUNCTIONS(LConvert)
+};
+
 static int usage(const QStringList &args)
 {
     Q_UNUSED(args);
@@ -59,7 +65,7 @@
     foreach (Translator::FileFormat format, Translator::registeredFileFormats())
         loaders += line.arg(format.extension, -5).arg(format.description);
 
-    std::cerr << qPrintable(QString(QLatin1String("\nUsage:\n"
+    std::cerr << qPrintable(LC::tr("\nUsage:\n"
         "    lconvert [options] <infile> [<infile>...]\n\n"
         "lconvert is part of Qt's Linguist tool chain. It can be used as a\n"
         "stand-alone tool to convert and filter translation data files.\n"
@@ -121,7 +127,7 @@
         "    0 on success\n"
         "    1 on command line parse failures\n"
         "    2 on read failures\n"
-        "    3 on write failures\n")).arg(loaders));
+        "    3 on write failures\n").arg(loaders));
     return 1;
 }
 
@@ -134,8 +140,17 @@
 int main(int argc, char *argv[])
 {
     QCoreApplication app(argc, argv);
+    QTranslator translator;
+    QTranslator qtTranslator;
+    QString sysLocale = QLocale::system().name();
+    QString resourceDir = QLibraryInfo::location(QLibraryInfo::TranslationsPath);
+    if (translator.load(QLatin1String("linguist_") + sysLocale, resourceDir)
+        && qtTranslator.load(QLatin1String("qt_") + sysLocale, resourceDir)) {
+        app.installTranslator(&translator);
+        app.installTranslator(&qtTranslator);
+    }
+
     QStringList args = app.arguments();
-
     QList<File> inFiles;
     QString inFormat(QLatin1String("auto"));
     QString outFileName;
--- a/tools/linguist/linguist/mainwindow.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tools/linguist/linguist/mainwindow.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -142,10 +142,13 @@
     case 0x2048: // question exclamation mark
     case 0x2049: // exclamation question mark
     case 0x2762: // heavy exclamation mark ornament
+    case 0xff01: // full width exclamation mark
+    case 0xff1f: // full width question mark
         return End_Interrobang;
     case 0x003b: // greek 'compatibility' questionmark
         return lang == QLocale::Greek ? End_Interrobang : End_None;
     case 0x003a: // colon
+    case 0xff1a: // full width colon
         return End_Colon;
     case 0x2026: // horizontal ellipsis
         return End_Ellipsis;
@@ -1027,6 +1030,8 @@
                             break;
                         if (searchItem(m->extraComment()))
                             break;
+                        if (searchItem(m->translatorComment()))
+                            break;
                         m_foundWhere = DataModel::NoLocation;
                         // did not find the search string in this message
                     }
@@ -1347,7 +1352,7 @@
         << (QT_VERSION >> 16) << ((QT_VERSION >> 8) & 0xFF)
         << (QT_VERSION & 0xFF)
         << QLatin1String("/qdoc/linguist-manual.html")
-        << QLatin1Char('\0') << endl;
+        << QLatin1Char('\n') << endl;
 }
 
 void MainWindow::about()
--- a/tools/linguist/linguist/phrase.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tools/linguist/linguist/phrase.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -188,10 +188,9 @@
 bool QphHandler::fatalError(const QXmlParseException &exception)
 {
     if (ferrorCount++ == 0) {
-        QString msg;
-        msg.sprintf("Parse error at line %d, column %d (%s).",
-            exception.lineNumber(), exception.columnNumber(),
-            exception.message().toLatin1().constData());
+        QString msg = PhraseBook::tr("Parse error at line %1, column %2 (%3).")
+            .arg(exception.lineNumber()).arg(exception.columnNumber())
+            .arg(exception.message());
         QMessageBox::information(0,
             QObject::tr("Qt Linguist"), msg);
     }
--- a/tools/linguist/lrelease/main.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tools/linguist/lrelease/main.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -65,6 +65,17 @@
         const char *argv0
 #endif
         );
+
+struct LR {
+    static inline QString tr(const char *sourceText, const char *comment = 0)
+    {
+        return QCoreApplication::translate("LRelease", sourceText, comment);
+    }
+};
+#else
+class LR {
+    Q_DECLARE_TR_FUNCTIONS(LRelease)
+};
 #endif
 
 static void printOut(const QString & out)
@@ -75,7 +86,7 @@
 
 static void printUsage()
 {
-    printOut(QCoreApplication::tr(
+    printOut(LR::tr(
         "Usage:\n"
         "    lrelease [options] project-file\n"
         "    lrelease [options] ts-files [-qm qm-file]\n\n"
@@ -108,7 +119,7 @@
     ConversionData cd;
     bool ok = tor.load(tsFileName, cd, QLatin1String("auto"));
     if (!ok) {
-        std::cerr << "lrelease error: " << qPrintable(cd.error());
+        std::cerr << qPrintable(LR::tr("lrelease error: %1").arg(cd.error()));
     } else {
         if (!cd.errors().isEmpty())
             printOut(cd.error());
@@ -123,17 +134,17 @@
     tor.reportDuplicates(tor.resolveDuplicates(), qmFileName, cd.isVerbose());
 
     if (cd.isVerbose())
-        printOut(QCoreApplication::tr( "Updating '%1'...\n").arg(qmFileName));
+        printOut(LR::tr("Updating '%1'...\n").arg(qmFileName));
     if (removeIdentical) {
         if (cd.isVerbose())
-            printOut(QCoreApplication::tr( "Removing translations equal to source text in '%1'...\n").arg(qmFileName));
+            printOut(LR::tr("Removing translations equal to source text in '%1'...\n").arg(qmFileName));
         tor.stripIdenticalSourceTranslations();
     }
 
     QFile file(qmFileName);
     if (!file.open(QIODevice::WriteOnly)) {
-        std::cerr << "lrelease error: cannot create '" << qPrintable(qmFileName)
-                  << "': " << qPrintable(file.errorString()) << std::endl;
+        std::cerr << qPrintable(LR::tr("lrelease error: cannot create '%1': %2\n")
+                                .arg(qmFileName, file.errorString()));
         return false;
     }
 
@@ -142,8 +153,8 @@
     file.close();
 
     if (!ok) {
-        std::cerr << "lrelease error: cannot save '" << qPrintable(qmFileName)
-                  << "': " << qPrintable(cd.error());
+        std::cerr << qPrintable(LR::tr("lrelease error: cannot save '%1': %2")
+                                .arg(qmFileName, cd.error()));
     } else if (!cd.errors().isEmpty()) {
         printOut(cd.error());
     }
@@ -181,8 +192,14 @@
 #else
     QCoreApplication app(argc, argv);
     QTranslator translator;
-    if (translator.load(QLatin1String("lrelease_") + QLocale::system().name()))
+    QTranslator qtTranslator;
+    QString sysLocale = QLocale::system().name();
+    QString resourceDir = QLibraryInfo::location(QLibraryInfo::TranslationsPath);
+    if (translator.load(QLatin1String("linguist_") + sysLocale, resourceDir)
+        && qtTranslator.load(QLatin1String("qt_") + sysLocale, resourceDir)) {
         app.installTranslator(&translator);
+        app.installTranslator(&qtTranslator);
+    }
 #endif
 
     ConversionData cd;
@@ -221,7 +238,7 @@
             cd.m_verbose = true;
             continue;
         } else if (!strcmp(argv[i], "-version")) {
-            printOut(QCoreApplication::tr( "lrelease version %1\n").arg(QLatin1String(QT_VERSION_STR)) );
+            printOut(LR::tr("lrelease version %1\n").arg(QLatin1String(QT_VERSION_STR)));
             return 0;
         } else if (!strcmp(argv[i], "-qm")) {
             if (i == argc - 1) {
@@ -255,20 +272,23 @@
             visitor.setVerbose(cd.isVerbose());
 
             if (!visitor.queryProFile(&pro)) {
-                std::cerr << "lrelease error: cannot read project file '"
-                          << qPrintable(inputFile) << "'.\n";
+                std::cerr << qPrintable(LR::tr(
+                          "lrelease error: cannot read project file '%1'.\n")
+                          .arg(inputFile));
                 continue;
             }
             if (!visitor.accept(&pro)) {
-                std::cerr << "lrelease error: cannot process project file '"
-                          << qPrintable(inputFile) << "'.\n";
+                std::cerr << qPrintable(LR::tr(
+                          "lrelease error: cannot process project file '%1'.\n")
+                          .arg(inputFile));
                 continue;
             }
 
             QStringList translations = visitor.values(QLatin1String("TRANSLATIONS"));
             if (translations.isEmpty()) {
-                std::cerr << "lrelease warning: Met no 'TRANSLATIONS' entry in project file '"
-                          << qPrintable(inputFile) << "'\n";
+                std::cerr << qPrintable(LR::tr(
+                          "lrelease warning: Met no 'TRANSLATIONS' entry in project file '%1'\n")
+                          .arg(inputFile));
             } else {
                 QDir proDir(fi.absolutePath());
                 foreach (const QString &trans, translations)
--- a/tools/linguist/lupdate/cpp.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tools/linguist/lupdate/cpp.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -50,6 +50,7 @@
 #include <QtCore/QString>
 #include <QtCore/QTextCodec>
 #include <QtCore/QTextStream>
+#include <QtCore/QCoreApplication>
 
 #include <iostream>
 
@@ -57,6 +58,10 @@
 
 QT_BEGIN_NAMESPACE
 
+class LU {
+    Q_DECLARE_TR_FUNCTIONS(LUpdate)
+};
+
 /* qmake ignore Q_OBJECT */
 
 static QString MagicComment(QLatin1String("TRANSLATOR"));
@@ -624,8 +629,8 @@
                                 || yyBraceDepth != is.braceDepth1st
                                 || yyParenDepth != is.parenDepth1st)
                                 yyMsg(is.elseLine)
-                                    << "Parenthesis/bracket/brace mismatch between "
-                                       "#if and #else branches; using #if branch\n";
+                                    << qPrintable(LU::tr("Parenthesis/bracket/brace mismatch between "
+                                                         "#if and #else branches; using #if branch\n"));
                         } else {
                             is.bracketDepth1st = yyBracketDepth;
                             is.braceDepth1st = yyBraceDepth;
@@ -647,8 +652,8 @@
                                 || yyBraceDepth != is.braceDepth1st
                                 || yyParenDepth != is.parenDepth1st)
                                 yyMsg(is.elseLine)
-                                    << "Parenthesis/brace mismatch between "
-                                       "#if and #else branches; using #if branch\n";
+                                    << qPrintable(LU::tr("Parenthesis/brace mismatch between "
+                                                         "#if and #else branches; using #if branch\n"));
                             yyBracketDepth = is.bracketDepth1st;
                             yyBraceDepth = is.braceDepth1st;
                             yyParenDepth = is.parenDepth1st;
@@ -674,7 +679,7 @@
                         forever {
                             yyCh = getChar();
                             if (yyCh == EOF) {
-                                yyMsg() << "Unterminated C++ comment\n";
+                                yyMsg() << qPrintable(LU::tr("Unterminated C++ comment\n"));
                                 break;
                             }
 
@@ -804,7 +809,7 @@
                     forever {
                         yyCh = getChar();
                         if (yyCh == EOF) {
-                            yyMsg() << "Unterminated C++ comment\n";
+                            yyMsg() << qPrintable(LU::tr("Unterminated C++ comment\n"));
                             break;
                         }
                         *ptr++ = yyCh;
@@ -837,7 +842,7 @@
                 yyWord.resize(ptr - (ushort *)yyWord.unicode());
 
                 if (yyCh != '"')
-                    yyMsg() << "Unterminated C++ string\n";
+                    yyMsg() << qPrintable(LU::tr("Unterminated C++ string\n"));
                 else
                     yyCh = getChar();
                 return Tok_String;
@@ -894,8 +899,8 @@
                 if (yyBraceDepth == yyMinBraceDepth) {
                     if (!inDefine)
                         yyMsg(yyCurLineNo)
-                            << "Excess closing brace in C++ code"
-                               " (or abuse of the C++ preprocessor)\n";
+                            << qPrintable(LU::tr("Excess closing brace in C++ code"
+                                                 " (or abuse of the C++ preprocessor)\n"));
                     // Avoid things getting messed up even more
                     yyCh = getChar();
                     return Tok_Semicolon;
@@ -912,8 +917,8 @@
             case ')':
                 if (yyParenDepth == 0)
                     yyMsg(yyCurLineNo)
-                        << "Excess closing parenthesis in C++ code"
-                           " (or abuse of the C++ preprocessor)\n";
+                        << qPrintable(LU::tr("Excess closing parenthesis in C++ code"
+                                             " (or abuse of the C++ preprocessor)\n"));
                 else
                     yyParenDepth--;
                 yyCh = getChar();
@@ -927,8 +932,8 @@
             case ']':
                 if (yyBracketDepth == 0)
                     yyMsg(yyCurLineNo)
-                        << "Excess closing bracket in C++ code"
-                           " (or abuse of the C++ preprocessor)\n";
+                        << qPrintable(LU::tr("Excess closing bracket in C++ code"
+                                             " (or abuse of the C++ preprocessor)\n"));
                 else
                     yyBracketDepth--;
                 yyCh = getChar();
@@ -1296,7 +1301,7 @@
     QString cleanFile = QDir::cleanPath(file);
 
     if (inclusions.contains(cleanFile)) {
-        yyMsg() << "circular inclusion of " << qPrintable(cleanFile) << std::endl;
+        yyMsg() << qPrintable(LU::tr("circular inclusion of %1\n").arg(cleanFile));
         return;
     }
 
@@ -1320,9 +1325,7 @@
 
     QFile f(cleanFile);
     if (!f.open(QIODevice::ReadOnly)) {
-        yyMsg()
-            << "Cannot open " << qPrintable(cleanFile) << ": "
-            << qPrintable(f.errorString()) << std::endl;
+        yyMsg() << qPrintable(LU::tr("Cannot open %1: %2\n").arg(cleanFile, f.errorString()));
         return;
     }
 
@@ -1766,7 +1769,7 @@
             if (!tor)
                 goto case_default;
             if (!sourcetext.isEmpty())
-                yyMsg() << "//% cannot be used with tr() / QT_TR_NOOP(). Ignoring\n";
+                yyMsg() << qPrintable(LU::tr("//% cannot be used with tr() / QT_TR_NOOP(). Ignoring\n"));
             utf8 = (yyTok == Tok_trUtf8);
             line = yyLineNo;
             yyTok = getToken();
@@ -1787,9 +1790,8 @@
                     QStringList unresolved;
                     if (!fullyQualify(namespaces, pendingContext, true, &functionContext, &unresolved)) {
                         functionContextUnresolved = unresolved.join(strColons);
-                        yyMsg() << "Qualifying with unknown namespace/class "
-                                << qPrintable(stringifyNamespace(functionContext)) << "::"
-                                << qPrintable(unresolved.first()) << std::endl;
+                        yyMsg() << qPrintable(LU::tr("Qualifying with unknown namespace/class %1::%2\n")
+                                              .arg(stringifyNamespace(functionContext)).arg(unresolved.first()));
                     }
                     pendingContext.clear();
                 }
@@ -1797,7 +1799,7 @@
                     if (functionContextUnresolved.isEmpty()) {
                         int idx = functionContext.length();
                         if (idx < 2) {
-                            yyMsg() << "tr() cannot be called without context\n";
+                            yyMsg() << qPrintable(LU::tr("tr() cannot be called without context\n"));
                             break;
                         }
                         Namespace *fctx;
@@ -1806,8 +1808,8 @@
                                 context = stringifyNamespace(functionContext);
                                 fctx = findNamespace(functionContext)->classDef;
                                 if (!fctx->complained) {
-                                    yyMsg() << "Class '" << qPrintable(context)
-                                            << "' lacks Q_OBJECT macro\n";
+                                    yyMsg() << qPrintable(LU::tr("Class '%1' lacks Q_OBJECT macro\n")
+                                                         .arg(context));
                                     fctx->complained = true;
                                 }
                                 goto gotctx;
@@ -1835,8 +1837,8 @@
                     int last = prefix.lastIndexOf(strColons);
                     QString className = prefix.mid(last == -1 ? 0 : last + 2);
                     if (!className.isEmpty() && className == functionName) {
-                        yyMsg() << "It is not recommended to call tr() from within a constructor '"
-                                << qPrintable(className) << "::" << qPrintable(functionName) << "'\n";
+                        yyMsg() << qPrintable(LU::tr("It is not recommended to call tr() from within a constructor '%1::%2'\n")
+                                .arg(className).arg(functionName));
                     }
 #endif
                     prefix.chop(2);
@@ -1851,7 +1853,7 @@
                             context = fctx->trQualification;
                         }
                         if (!fctx->hasTrFunctions && !fctx->complained) {
-                            yyMsg() << "Class '" << qPrintable(context) << "' lacks Q_OBJECT macro\n";
+                            yyMsg() << qPrintable(LU::tr("Class '%1' lacks Q_OBJECT macro\n").arg(context));
                             fctx->complained = true;
                         }
                     } else {
@@ -1873,7 +1875,7 @@
             if (!tor)
                 goto case_default;
             if (!sourcetext.isEmpty())
-                yyMsg() << "//% cannot be used with translate() / QT_TRANSLATE_NOOP(). Ignoring\n";
+                yyMsg() << qPrintable(LU::tr("//% cannot be used with translate() / QT_TRANSLATE_NOOP(). Ignoring\n"));
             utf8 = (yyTok == Tok_translateUtf8);
             line = yyLineNo;
             yyTok = getToken();
@@ -1928,7 +1930,7 @@
             if (!tor)
                 goto case_default;
             if (!msgid.isEmpty())
-                yyMsg() << "//= cannot be used with qtTrId() / QT_TRID_NOOP(). Ignoring\n";
+                yyMsg() << qPrintable(LU::tr("//= cannot be used with qtTrId() / QT_TRID_NOOP(). Ignoring\n"));
             //utf8 = false; // Maybe use //%% or something like that
             line = yyLineNo;
             yyTok = getToken();
@@ -1995,13 +1997,13 @@
                     if (isspace(c))
                         continue;
                     if (c != '"') {
-                        yyMsg() << "Unexpected character in meta string\n";
+                        yyMsg() << qPrintable(LU::tr("Unexpected character in meta string\n"));
                         break;
                     }
                     forever {
                         if (p >= yyWord.length()) {
                           whoops:
-                            yyMsg() << "Unterminated meta string\n";
+                            yyMsg() << qPrintable(LU::tr("Unterminated meta string\n"));
                             break;
                         }
                         c = yyWord.unicode()[p++].unicode();
@@ -2054,7 +2056,7 @@
         case Tok_Arrow:
             yyTok = getToken();
             if (yyTok == Tok_tr || yyTok == Tok_trUtf8)
-                yyMsg() << "Cannot invoke tr() like this\n";
+                yyMsg() << qPrintable(LU::tr("Cannot invoke tr() like this\n"));
             break;
         case Tok_ColonColon:
             if (yyBraceDepth == namespaceDepths.count() && yyParenDepth == 0 && !yyTokColonSeen)
@@ -2087,7 +2089,7 @@
             prospectiveContext.clear();
             prefix.clear();
             if (!sourcetext.isEmpty() || !extracomment.isEmpty() || !msgid.isEmpty() || !extra.isEmpty()) {
-                yyMsg() << "Discarding unconsumed meta data\n";
+                yyMsg() << qPrintable(LU::tr("Discarding unconsumed meta data\n"));
                 sourcetext.clear();
                 extracomment.clear();
                 msgid.clear();
@@ -2127,16 +2129,16 @@
 
     if (yyBraceDepth != 0)
         yyMsg(yyBraceLineNo)
-            << "Unbalanced opening brace in C++ code"
-               " (or abuse of the C++ preprocessor)\n";
+            << qPrintable(LU::tr("Unbalanced opening brace in C++ code"
+                                 " (or abuse of the C++ preprocessor)\n"));
     else if (yyParenDepth != 0)
         yyMsg(yyParenLineNo)
-            << "Unbalanced opening parenthesis in C++ code"
-               " (or abuse of the C++ preprocessor)\n";
+            << qPrintable(LU::tr("Unbalanced opening parenthesis in C++ code"
+                                 " (or abuse of the C++ preprocessor)\n"));
     else if (yyBracketDepth != 0)
         yyMsg(yyBracketLineNo)
-            << "Unbalanced opening bracket in C++ code"
-               " (or abuse of the C++ preprocessor)\n";
+            << qPrintable(LU::tr("Unbalanced opening bracket in C++ code"
+                                 " (or abuse of the C++ preprocessor)\n"));
 }
 
 const ParseResults *CppParser::recordResults(bool isHeader)
@@ -2197,8 +2199,7 @@
 
         QFile file(filename);
         if (!file.open(QIODevice::ReadOnly)) {
-            cd.appendError(QString::fromLatin1("Cannot open %1: %2")
-                .arg(filename, file.errorString()));
+            cd.appendError(LU::tr("Cannot open %1: %2").arg(filename, file.errorString()));
             continue;
         }
 
--- a/tools/linguist/lupdate/java.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tools/linguist/lupdate/java.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -50,6 +50,7 @@
 #include <QtCore/QStack>
 #include <QtCore/QString>
 #include <QtCore/QTextCodec>
+#include <QtCore/QCoreApplication>
 
 #include <iostream>
 
@@ -57,6 +58,10 @@
 
 QT_BEGIN_NAMESPACE
 
+class LU {
+    Q_DECLARE_TR_FUNCTIONS(LUpdate)
+};
+
 enum { Tok_Eof, Tok_class, Tok_return, Tok_tr,
        Tok_translate, Tok_Ident, Tok_Package,
        Tok_Comment, Tok_String, Tok_Colon, Tok_Dot,
@@ -196,7 +201,7 @@
                     while ( !metAsterSlash ) {
                         yyCh = getChar();
                         if ( yyCh == EOF ) {
-                            yyMsg() << "Unterminated Java comment.\n";
+                            yyMsg() << qPrintable(LU::tr("Unterminated Java comment.\n"));
                             return Tok_Comment;
                         }
 
@@ -232,7 +237,7 @@
                                 else {
                                     int sub(yyCh.toLower().toAscii() - 87);
                                     if( sub > 15 || sub < 10) {
-                                        yyMsg() << "Invalid Unicode value.\n";
+                                        yyMsg() << qPrintable(LU::tr("Invalid Unicode value.\n"));
                                         break;
                                     }
                                     unicode += sub;
@@ -255,7 +260,7 @@
                 }
 
                 if ( yyCh != QLatin1Char('"') )
-                    yyMsg() << "Unterminated string.\n";
+                    yyMsg() << qPrintable(LU::tr("Unterminated string.\n"));
 
                 yyCh = getChar();
 
@@ -368,8 +373,9 @@
         if (yyTok == Tok_String)
             s += yyString;
         else {
-            yyMsg() << "String used in translation can contain only literals"
-                       " concatenated with other literals, not expressions or numbers.\n";
+            yyMsg() << qPrintable(LU::tr(
+                "String used in translation can contain only literals"
+                " concatenated with other literals, not expressions or numbers.\n"));
             return false;
         }
         yyTok = getToken();
@@ -477,7 +483,7 @@
                 yyScope.push(new Scope(yyIdent, Scope::Clazz, yyLineNo));
             }
             else {
-                yyMsg() << "'class' must be followed by a class name.\n";
+                yyMsg() << qPrintable(LU::tr("'class' must be followed by a class name.\n"));
                 break;
             }
             while (!match(Tok_LeftBrace)) {
@@ -549,7 +555,7 @@
 
         case Tok_RightBrace:
             if ( yyScope.isEmpty() ) {
-                yyMsg() << "Excess closing brace.\n";
+                yyMsg() << qPrintable(LU::tr("Excess closing brace.\n"));
             }
             else
                 delete (yyScope.pop());
@@ -578,7 +584,7 @@
                         yyPackage.append(QLatin1String("."));
                         break;
                     default:
-                         yyMsg() << "'package' must be followed by package name.\n";
+                         yyMsg() << qPrintable(LU::tr("'package' must be followed by package name.\n"));
                          break;
                 }
                 yyTok = getToken();
@@ -591,9 +597,9 @@
     }
 
     if ( !yyScope.isEmpty() )
-        yyMsg(yyScope.top()->line) << "Unbalanced opening brace.\n";
+        yyMsg(yyScope.top()->line) << qPrintable(LU::tr("Unbalanced opening brace.\n"));
     else if ( yyParenDepth != 0 )
-        yyMsg(yyParenLineNo) << "Unbalanced opening parenthesis.\n";
+        yyMsg(yyParenLineNo) << qPrintable(LU::tr("Unbalanced opening parenthesis.\n"));
 }
 
 
@@ -601,8 +607,7 @@
 {
     QFile file(filename);
     if (!file.open(QIODevice::ReadOnly)) {
-        cd.appendError(QString::fromLatin1("Cannot open %1: %2")
-            .arg(filename, file.errorString()));
+        cd.appendError(LU::tr("Cannot open %1: %2").arg(filename, file.errorString()));
         return false;
     }
 
--- a/tools/linguist/lupdate/main.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tools/linguist/lupdate/main.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -52,6 +52,8 @@
 #include <QtCore/QString>
 #include <QtCore/QStringList>
 #include <QtCore/QTextCodec>
+#include <QtCore/QTranslator>
+#include <QtCore/QLibraryInfo>
 
 #include <iostream>
 
@@ -79,7 +81,7 @@
 
 static void printUsage()
 {
-    printOut(QObject::tr(
+    printOut(LU::tr(
         "Usage:\n"
         "    lupdate [options] [project-file]...\n"
         "    lupdate [options] [source-file|path|@lst-file]... -ts ts-files|@lst-file\n\n"
@@ -186,7 +188,7 @@
         else if (options & AbsoluteLocations)
             tor.setLocationsType(Translator::AbsoluteLocations);
         if (options & Verbose)
-            printOut(QObject::tr("Updating '%1'...\n").arg(fn));
+            printOut(LU::tr("Updating '%1'...\n").arg(fn));
 
         UpdateOptions theseOptions = options;
         if (tor.locationsType() == Translator::NoLocations) // Could be set from file
@@ -201,7 +203,7 @@
         }
         if (options & PluralOnly) {
             if (options & Verbose)
-                printOut(QObject::tr("Stripping non plural forms in '%1'...\n").arg(fn));
+                printOut(LU::tr("Stripping non plural forms in '%1'...\n").arg(fn));
             out.stripNonPluralForms();
         }
         if (options & NoObsolete)
@@ -359,12 +361,12 @@
         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";
+                    std::cerr << qPrintable(LU::tr("lupdate warning: TS files from command line "
+                                                   "will override TRANSLATIONS in %1.\n").arg(proFile));
                     goto noTrans;
                 } else if (nestComplain) {
-                    std::cerr << "lupdate warning: TS files from command line "
-                            "prevent recursing into " << qPrintable(proFile) << ".\n";
+                    std::cerr << qPrintable(LU::tr("lupdate warning: TS files from command line "
+                                                   "prevent recursing into %1.\n").arg(proFile));
                     continue;
                 }
             }
@@ -395,8 +397,8 @@
       noTrans:
         if (!parentTor) {
             if (topLevel)
-                std::cerr << "lupdate warning: no TS files specified. Only diagnostics "
-                        "will be produced for '" << qPrintable(proFile) << "'.\n";
+                std::cerr << qPrintable(LU::tr("lupdate warning: no TS files specified. Only diagnostics "
+                                               "will be produced for '%1'.\n").arg(proFile));
             Translator tor;
             processProject(nestComplain, pfi, visitor, options, codecForSource,
                            targetLanguage, sourceLanguage, &tor, fail);
@@ -410,6 +412,16 @@
 int main(int argc, char **argv)
 {
     QCoreApplication app(argc, argv);
+    QTranslator translator;
+    QTranslator qtTranslator;
+    QString sysLocale = QLocale::system().name();
+    QString resourceDir = QLibraryInfo::location(QLibraryInfo::TranslationsPath);
+    if (translator.load(QLatin1String("linguist_") + sysLocale, resourceDir)
+        && qtTranslator.load(QLatin1String("qt_") + sysLocale, resourceDir)) {
+        app.installTranslator(&translator);
+        app.installTranslator(&qtTranslator);
+    }
+
     m_defaultExtensions = QLatin1String("java,jui,ui,c,c++,cc,cpp,cxx,ch,h,h++,hh,hpp,hxx,js,qs,qml");
 
     QStringList args = app.arguments();
@@ -613,7 +625,7 @@
                     proFiles << file;
                 } else if (fi.isDir()) {
                     if (options & Verbose)
-                        printOut(QObject::tr("Scanning directory '%1'...\n").arg(file));
+                        printOut(LU::tr("Scanning directory '%1'...\n").arg(file));
                     QDir dir = QDir(fi.filePath());
                     projectRoots.insert(dir.absolutePath() + QLatin1Char('/'));
                     if (extensionsNameFilters.isEmpty()) {
--- a/tools/linguist/lupdate/merge.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tools/linguist/lupdate/merge.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -44,14 +44,18 @@
 #include "simtexth.h"
 #include "translator.h"
 
+#include <QtCore/QCoreApplication>
 #include <QtCore/QDebug>
 #include <QtCore/QMap>
 #include <QtCore/QStringList>
 #include <QtCore/QTextCodec>
 #include <QtCore/QVector>
 
+QT_BEGIN_NAMESPACE
 
-QT_BEGIN_NAMESPACE
+class LU {
+    Q_DECLARE_TR_FUNCTIONS(LUpdate)
+};
 
 static bool isDigitFriendly(QChar c)
 {
@@ -485,24 +489,24 @@
 
     if (options & Verbose) {
         int totalFound = neww + known;
-        err += QObject::tr("    Found %n source text(s) (%1 new and %2 already existing)\n", 0, totalFound).arg(neww).arg(known);
+        err += LU::tr("    Found %n source text(s) (%1 new and %2 already existing)\n", 0, totalFound).arg(neww).arg(known);
 
         if (obsoleted) {
             if (options & NoObsolete) {
-                err += QObject::tr("    Removed %n obsolete entries\n", 0, obsoleted);
+                err += LU::tr("    Removed %n obsolete entries\n", 0, obsoleted);
             } else {
-                err += QObject::tr("    Kept %n obsolete entries\n", 0, obsoleted);
+                err += LU::tr("    Kept %n obsolete entries\n", 0, obsoleted);
             }
         }
 
         if (sameNumberHeuristicCount)
-            err += QObject::tr("    Number heuristic provided %n translation(s)\n",
+            err += LU::tr("    Number heuristic provided %n translation(s)\n",
                       0, sameNumberHeuristicCount);
         if (sameTextHeuristicCount)
-            err += QObject::tr("    Same-text heuristic provided %n translation(s)\n",
+            err += LU::tr("    Same-text heuristic provided %n translation(s)\n",
                       0, sameTextHeuristicCount);
         if (similarTextHeuristicCount)
-            err += QObject::tr("    Similar-text heuristic provided %n translation(s)\n",
+            err += LU::tr("    Similar-text heuristic provided %n translation(s)\n",
                       0, similarTextHeuristicCount);
     }
     return outTor;
--- a/tools/linguist/lupdate/qdeclarative.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tools/linguist/lupdate/qdeclarative.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -65,8 +65,26 @@
 
 QT_BEGIN_NAMESPACE
 
+class LU {
+    Q_DECLARE_TR_FUNCTIONS(LUpdate)
+};
+
 using namespace QDeclarativeJS;
 
+class Comment
+{
+public:
+    Comment() : lastLine(-1) {}
+    QString extracomment;
+    QString msgid;
+    TranslatorMessage::ExtraData extra;
+    QString sourcetext;
+    int lastLine;
+
+    bool isValid() const
+    { return !extracomment.isEmpty() || !msgid.isEmpty() || !sourcetext.isEmpty() || !extra.isEmpty(); }
+};
+
 class FindTrCalls: protected AST::Visitor
 {
 public:
@@ -78,6 +96,8 @@
         accept(node);
     }
 
+    QList<Comment> comments;
+
 protected:
     using AST::Visitor::visit;
     using AST::Visitor::endVisit;
@@ -114,10 +134,23 @@
                             plural = true;
                     }
 
+                    QString id;
+                    QString extracomment;
+                    TranslatorMessage::ExtraData extra;
+                    Comment scomment = findComment(node->firstSourceLocation().startLine);
+                    if (scomment.isValid()) {
+                        extracomment = scomment.extracomment;
+                        extra = scomment.extra;
+                        id = scomment.msgid;
+                    }
+
                     TranslatorMessage msg(m_component, source,
                         comment, QString(), m_fileName,
                         node->firstSourceLocation().startLine, QStringList(),
                         TranslatorMessage::Unfinished, plural);
+                    msg.setExtraComment(extracomment.simplified());
+                    msg.setId(id);
+                    msg.setExtras(extra);
                     m_translator->extend(msg);
                 }
             } else if (idExpr->name->asString() == QLatin1String("qsTranslate") ||
@@ -140,6 +173,17 @@
                     }
                     if (!literal && m_bSource.isEmpty())
                         return;
+
+                    QString id;
+                    QString extracomment;
+                    TranslatorMessage::ExtraData extra;
+                    Comment scomment = findComment(node->firstSourceLocation().startLine);
+                    if (scomment.isValid()) {
+                        extracomment = scomment.extracomment;
+                        extra = scomment.extra;
+                        id = scomment.msgid;
+                    }
+
                     source = literal ? literal->value->asString() : m_bSource;
                     AST::ArgumentList *commentNode = sourceNode->next;
                     if (commentNode && AST::cast<AST::StringLiteral *>(commentNode->expression)) {
@@ -155,15 +199,48 @@
                         comment, QString(), m_fileName,
                         node->firstSourceLocation().startLine, QStringList(),
                         TranslatorMessage::Unfinished, plural);
+                    msg.setExtraComment(extracomment.simplified());
+                    msg.setId(id);
+                    msg.setExtras(extra);
                     m_translator->extend(msg);
                 }
+            } else if (idExpr->name->asString() == QLatin1String("qsTrId") ||
+                       idExpr->name->asString() == QLatin1String("QT_TRID_NOOP")) {
+                if (!node->arguments)
+                    return;
 
+                AST::StringLiteral *literal = AST::cast<AST::StringLiteral *>(node->arguments->expression);
+                if (literal) {
+
+                    QString extracomment;
+                    QString sourcetext;
+                    TranslatorMessage::ExtraData extra;
+                    Comment comment = findComment(node->firstSourceLocation().startLine);
+                    if (comment.isValid()) {
+                        extracomment = comment.extracomment;
+                        sourcetext = comment.sourcetext;
+                        extra = comment.extra;
+                    }
+
+                    const QString id = literal->value->asString();
+                    bool plural = node->arguments->next;
+
+                    TranslatorMessage msg(QString(), QString(),
+                        QString(), QString(), m_fileName,
+                        node->firstSourceLocation().startLine, QStringList(),
+                        TranslatorMessage::Unfinished, plural);
+                    msg.setExtraComment(extracomment.simplified());
+                    msg.setId(id);
+                    msg.setExtras(extra);
+                    m_translator->extend(msg);
+                }
             }
         }
     }
 
 private:
-    bool createString(AST::BinaryExpression *b) {
+    bool createString(AST::BinaryExpression *b)
+    {
         if (!b || b->op != 0)
             return false;
         AST::BinaryExpression *l = AST::cast<AST::BinaryExpression *>(b->left);
@@ -187,6 +264,23 @@
         return true;
     }
 
+    Comment findComment(int loc)
+    {
+        if (comments.isEmpty())
+            return Comment();
+
+        int i = 0;
+        int commentLoc = comments.at(i).lastLine;
+        while (commentLoc <= loc) {
+            if (commentLoc == loc)
+                return comments.at(i);
+            if (i == comments.count()-1)
+                break;
+            commentLoc = comments.at(++i).lastLine;
+        }
+        return Comment();
+    }
+
     Translator *m_translator;
     QString m_fileName;
     QString m_component;
@@ -236,13 +330,60 @@
     return errorString;
 }
 
+bool processComment(const QChar *chars, int length, Comment &comment)
+{
+    // Try to match the logic of the QtScript parser.
+    if (!length)
+        return comment.isValid();
+    if (*chars == QLatin1Char(':') && chars[1].isSpace()) {
+        comment.extracomment += QString(chars+1, length-1);
+    } else if (*chars == QLatin1Char('=') && chars[1].isSpace()) {
+        comment.msgid = QString(chars+2, length-2).simplified();
+    } else if (*chars == QLatin1Char('~') && chars[1].isSpace()) {
+        QString text = QString(chars+2, length-2).trimmed();
+        int k = text.indexOf(QLatin1Char(' '));
+        if (k > -1)
+            comment.extra.insert(text.left(k), text.mid(k + 1).trimmed());
+    } else if (*chars == QLatin1Char('%') && chars[1].isSpace()) {
+        comment.sourcetext.reserve(comment.sourcetext.length() + length-2);
+        ushort *ptr = (ushort *)comment.sourcetext.data() + comment.sourcetext.length();
+        int p = 2, c;
+        forever {
+            if (p >= length)
+                break;
+            c = chars[p++].unicode();
+            if (isspace(c))
+                continue;
+            if (c != '"')
+                break;
+            forever {
+                if (p >= length)
+                    break;
+                c = chars[p++].unicode();
+                if (c == '"')
+                    break;
+                if (c == '\\') {
+                    if (p >= length)
+                        break;
+                    c = chars[p++].unicode();
+                    if (c == '\n')
+                        break;
+                    *ptr++ = '\\';
+                }
+                *ptr++ = c;
+            }
+        }
+        comment.sourcetext.resize(ptr - (ushort *)comment.sourcetext.data());
+    }
+    return comment.isValid();
+}
+
 bool loadQml(Translator &translator, const QString &filename, ConversionData &cd)
 {
     cd.m_sourceFileName = filename;
     QFile file(filename);
     if (!file.open(QIODevice::ReadOnly)) {
-        cd.appendError(QString::fromLatin1("Cannot open %1: %2")
-            .arg(filename, file.errorString()));
+        cd.appendError(LU::tr("Cannot open %1: %2").arg(filename, file.errorString()));
         return false;
     }
 
@@ -260,6 +401,25 @@
 
     if (parser.parse()) {
         FindTrCalls trCalls;
+
+        // build up a list of comments that contain translation information.
+        for (int i = 0; i < driver.comments().size(); ++i) {
+            AST::SourceLocation loc = driver.comments().at(i);
+            QString commentStr = code.mid(loc.offset, loc.length);
+
+            if (trCalls.comments.isEmpty() || trCalls.comments.last().lastLine != int(loc.startLine)) {
+                Comment comment;
+                comment.lastLine = loc.startLine+1;
+                if (processComment(commentStr.constData(), commentStr.length(), comment))
+                    trCalls.comments.append(comment);
+            } else {
+                Comment &lastComment = trCalls.comments.last();
+                lastComment.lastLine += 1;
+                processComment(commentStr.constData(), commentStr.length(), lastComment);
+            }
+        }
+
+        //find all tr calls in the code
         trCalls(&translator, filename, parser.ast());
     } else {
         QString error = createErrorString(filename, code, parser);
--- a/tools/linguist/lupdate/qscript.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tools/linguist/lupdate/qscript.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -47,6 +47,7 @@
 
 #include <translator.h>
 
+#include <QtCore/QCoreApplication>
 #include <QtCore/qdebug.h>
 #include <QtCore/qnumeric.h>
 #include <QtCore/qstring.h>
@@ -62,6 +63,10 @@
 
 QT_BEGIN_NAMESPACE
 
+class LU {
+    Q_DECLARE_TR_FUNCTIONS(LUpdate)
+};
+
 class QScriptGrammar
 {
 public:
@@ -770,13 +775,16 @@
 
 static void recordMessage(
     Translator *tor, const QString &context, const QString &text, const QString &comment,
-    const QString &extracomment, bool plural, const QString &fileName, int lineNo)
+    const QString &extracomment, const QString &msgid, const TranslatorMessage::ExtraData &extra,
+    bool plural, const QString &fileName, int lineNo)
 {
     TranslatorMessage msg(
         context, text, comment, QString(),
         fileName, lineNo, QStringList(),
         TranslatorMessage::Unfinished, plural);
     msg.setExtraComment(extracomment.simplified());
+    msg.setId(msgid);
+    msg.setExtras(extra);
     tor->extend(msg);
 }
 
@@ -784,15 +792,23 @@
 namespace QScript
 {
 
+class CommentProcessor
+{
+public:
+    virtual ~CommentProcessor() {}
+    virtual void processComment(const QChar *chars, int length) = 0;
+};
+
 class Lexer
 {
 public:
-    Lexer();
+    Lexer(CommentProcessor *);
     ~Lexer();
 
-    void setCode(const QString &c, int lineno);
+    void setCode(const QString &c, const QString &fileName, int lineno);
     int lex();
 
+    QString fileName() const { return yyfilename; }
     int currentLineNo() const { return yylineno; }
     int currentColumnNo() const { return yycolumn; }
 
@@ -872,6 +888,7 @@
         { err = NoError; }
 
 private:
+    QString yyfilename;
     int yylineno;
     bool done;
     char *buffer8;
@@ -925,6 +942,8 @@
 
     void syncProhibitAutomaticSemicolon();
 
+    void processComment(const QChar *, int);
+
     const QChar *code;
     uint length;
     int yycolumn;
@@ -951,6 +970,8 @@
     ParenthesesState parenthesesState;
     int parenthesesCount;
     bool prohibitAutomaticSemicolon;
+
+    CommentProcessor *commentProcessor;
 };
 
 } // namespace QScript
@@ -1027,7 +1048,7 @@
 
 } // namespace QScript
 
-QScript::Lexer::Lexer()
+QScript::Lexer::Lexer(QScript::CommentProcessor *proc)
     :
       yylineno(0),
       size8(128), size16(128), restrKeyword(false),
@@ -1038,7 +1059,8 @@
       err(NoError),
       check_reserved(true),
       parenthesesState(IgnoreParentheses),
-      prohibitAutomaticSemicolon(false)
+      prohibitAutomaticSemicolon(false),
+      commentProcessor(proc)
 {
     // allocate space for read buffers
     buffer8 = new char[size8];
@@ -1053,9 +1075,10 @@
     delete [] buffer16;
 }
 
-void QScript::Lexer::setCode(const QString &c, int lineno)
+void QScript::Lexer::setCode(const QString &c, const QString &fileName, int lineno)
 {
     errmsg = QString();
+    yyfilename = fileName;
     yylineno = lineno;
     yycolumn = 1;
     restrKeyword = false;
@@ -1404,10 +1427,12 @@
             } else if (current == '/' && next1 == '/') {
                 recordStartPos();
                 shift(1);
+                Q_ASSERT(pos16 == 0);
                 state = InSingleLineComment;
             } else if (current == '/' && next1 == '*') {
                 recordStartPos();
                 shift(1);
+                Q_ASSERT(pos16 == 0);
                 state = InMultiLineComment;
             } else if (current == 0) {
                 syncProhibitAutomaticSemicolon();
@@ -1466,7 +1491,7 @@
                 else {
                     setDone(Bad);
                     err = IllegalCharacter;
-                    errmsg = QLatin1String("Illegal character");
+                    errmsg = LU::tr("Illegal character");
                 }
             }
             break;
@@ -1477,7 +1502,7 @@
             } else if (current == 0 || isLineTerminator()) {
                 setDone(Bad);
                 err = UnclosedStringLiteral;
-                errmsg = QLatin1String("Unclosed string at end of line");
+                errmsg = LU::tr("Unclosed string at end of line");
             } else if (current == '\\') {
                 state = InEscapeSequence;
             } else {
@@ -1503,7 +1528,7 @@
                 } else {
                     setDone(Bad);
                     err = IllegalEscapeSequence;
-                    errmsg = QLatin1String("Illegal escape squence");
+                    errmsg = LU::tr("Illegal escape squence");
                 }
             } else if (current == 'x')
                 state = InHexEscape;
@@ -1542,14 +1567,17 @@
             } else {
                 setDone(Bad);
                 err = IllegalUnicodeEscapeSequence;
-                errmsg = QLatin1String("Illegal unicode escape sequence");
+                errmsg = LU::tr("Illegal unicode escape sequence");
             }
             break;
         case InSingleLineComment:
             if (isLineTerminator()) {
+                record16(current); // include newline
+                processComment(buffer16, pos16);
                 shiftWindowsLineBreak();
                 yylineno++;
                 yycolumn = 0;
+                pos16 = 0;
                 terminator = true;
                 bol = true;
                 if (restrKeyword) {
@@ -1559,19 +1587,25 @@
                     state = Start;
             } else if (current == 0) {
                 setDone(Eof);
+            } else {
+                record16(current);
             }
             break;
         case InMultiLineComment:
             if (current == 0) {
                 setDone(Bad);
                 err = UnclosedComment;
-                errmsg = QLatin1String("Unclosed comment at end of file");
+                errmsg = LU::tr("Unclosed comment at end of file");
             } else if (isLineTerminator()) {
                 shiftWindowsLineBreak();
                 yylineno++;
             } else if (current == '*' && next1 == '/') {
+                processComment(buffer16, pos16);
+                pos16 = 0;
                 state = Start;
                 shift(1);
+            } else {
+                record16(current);
             }
             break;
         case InIdentifier:
@@ -1649,7 +1683,7 @@
             } else {
                 setDone(Bad);
                 err = IllegalExponentIndicator;
-                errmsg = QLatin1String("Illegal syntax for exponential number");
+                errmsg = LU::tr("Illegal syntax for exponential number");
             }
             break;
         case InExponent:
@@ -1675,7 +1709,7 @@
          && isIdentLetter(current)) {
         state = Bad;
         err = IllegalIdentifier;
-        errmsg = QLatin1String("Identifier cannot start with numeric literal");
+        errmsg = LU::tr("Identifier cannot start with numeric literal");
     }
 
     // terminate string
@@ -1994,7 +2028,7 @@
 
     while (1) {
         if (isLineTerminator() || current == 0) {
-            errmsg = QLatin1String("Unterminated regular expression literal");
+            errmsg = LU::tr("Unterminated regular expression literal");
             return false;
         }
         else if (current != '/' || lastWasEscape == true)
@@ -2033,10 +2067,15 @@
     }
 }
 
+void QScript::Lexer::processComment(const QChar *chars, int length)
+{
+    commentProcessor->processComment(chars, length);
+}
+
 
 class Translator;
 
-class QScriptParser: protected QScriptGrammar
+class QScriptParser: protected QScriptGrammar, public QScript::CommentProcessor
 {
 public:
     QVariant val;
@@ -2052,10 +2091,12 @@
     QScriptParser();
     ~QScriptParser();
 
-    bool parse(QScript::Lexer *lexer,
-               const QString &fileName,
-               Translator *translator);
+    void setLexer(QScript::Lexer *);
 
+    bool parse(Translator *translator);
+
+    QString fileName() const
+    { return lexer->fileName(); }
     inline QString errorMessage() const
     { return error_message; }
     inline int errorLineNumber() const
@@ -2072,6 +2113,10 @@
     inline Location &loc(int index)
     { return location_stack [tos + index - 2]; }
 
+    std::ostream &yyMsg(int line = 0);
+
+    virtual void processComment(const QChar *, int);
+
 protected:
     int tos;
     int stack_size;
@@ -2081,6 +2126,13 @@
     QString error_message;
     int error_lineno;
     int error_column;
+
+private:
+    QScript::Lexer *lexer;
+    QString extracomment;
+    QString msgid;
+    QString sourcetext;
+    TranslatorMessage::ExtraData extra;
 };
 
 inline void QScriptParser::reallocateStack()
@@ -2107,7 +2159,8 @@
     stack_size(0),
     sym_stack(0),
     state_stack(0),
-    location_stack(0)
+    location_stack(0),
+    lexer(0)
 {
 }
 
@@ -2129,10 +2182,14 @@
     return loc;
 }
 
-bool QScriptParser::parse(QScript::Lexer *lexer,
-                    const QString &fileName,
-     	            Translator *translator)
+void QScriptParser::setLexer(QScript::Lexer *lex)
 {
+    lexer = lex;
+}
+
+bool QScriptParser::parse(Translator *translator)
+{
+  Q_ASSERT(lexer != 0);
   const int INITIAL_STATE = 0;
 
   int yytoken = -1;
@@ -2214,44 +2271,70 @@
 case 66: {
     QString name = sym(1).toString();
     if ((name == QLatin1String("qsTranslate")) || (name == QLatin1String("QT_TRANSLATE_NOOP"))) {
+        if (!sourcetext.isEmpty())
+            yyMsg(identLineNo) << qPrintable(LU::tr("//% cannot be used with %1(). Ignoring\n").arg(name));
         QVariantList args = sym(2).toList();
         if (args.size() < 2) {
-            std::cerr << qPrintable(fileName) << ':' << identLineNo << ": "
-                      << qPrintable(name) << "() requires at least two arguments.\n";
+            yyMsg(identLineNo) << qPrintable(LU::tr("%1() requires at least two arguments.\n").arg(name));
         } else {
             if ((args.at(0).type() != QVariant::String)
                 || (args.at(1).type() != QVariant::String)) {
-                std::cerr << qPrintable(fileName) << ':' << identLineNo << ": "
-                          << qPrintable(name) << "(): both arguments must be literal strings.\n";
+                yyMsg(identLineNo) << qPrintable(LU::tr("%1(): both arguments must be literal strings.\n").arg(name));
             } else {
                 QString context = args.at(0).toString();
                 QString text = args.at(1).toString();
                 QString comment = args.value(2).toString();
-                QString extracomment;
                 bool plural = (args.size() > 4);
                 recordMessage(translator, context, text, comment, extracomment,
-                              plural, fileName, identLineNo);
+                              msgid, extra, plural, fileName(), identLineNo);
             }
         }
+        sourcetext.clear();
+        extracomment.clear();
+        msgid.clear();
+        extra.clear();
     } else if ((name == QLatin1String("qsTr")) || (name == QLatin1String("QT_TR_NOOP"))) {
+        if (!sourcetext.isEmpty())
+            yyMsg(identLineNo) << qPrintable(LU::tr("//% cannot be used with %1(). Ignoring\n").arg(name));
         QVariantList args = sym(2).toList();
         if (args.size() < 1) {
-            std::cerr << qPrintable(fileName) << ':' << identLineNo << ": "
-                      << qPrintable(name) << "() requires at least one argument.\n";
+            yyMsg(identLineNo) << qPrintable(LU::tr("%1() requires at least one argument.\n").arg(name));
         } else {
             if (args.at(0).type() != QVariant::String) {
-                std::cerr << qPrintable(fileName) << ':' << identLineNo << ": "
-                          << qPrintable(name) << "(): text to translate must be a literal string.\n";
+                yyMsg(identLineNo) << qPrintable(LU::tr("%1(): text to translate must be a literal string.\n").arg(name));
             } else {
-                QString context = QFileInfo(fileName).baseName();
+                QString context = QFileInfo(fileName()).baseName();
                 QString text = args.at(0).toString();
                 QString comment = args.value(1).toString();
-                QString extracomment;
                 bool plural = (args.size() > 2);
                 recordMessage(translator, context, text, comment, extracomment,
-                              plural, fileName, identLineNo);
+                              msgid, extra, plural, fileName(), identLineNo);
             }
         }
+        sourcetext.clear();
+        extracomment.clear();
+        msgid.clear();
+        extra.clear();
+    } else if ((name == QLatin1String("qsTrId")) || (name == QLatin1String("QT_TRID_NOOP"))) {
+        if (!msgid.isEmpty())
+            yyMsg(identLineNo) << qPrintable(LU::tr("//= cannot be used with %1(). Ignoring\n").arg(name));
+        QVariantList args = sym(2).toList();
+        if (args.size() < 1) {
+            yyMsg(identLineNo) << qPrintable(LU::tr("%1() requires at least one argument.\n").arg(name));
+        } else {
+            if (args.at(0).type() != QVariant::String) {
+                yyMsg(identLineNo) << qPrintable(LU::tr("%1(): identifier must be a literal string.\n").arg(name));
+            } else {
+                msgid = args.at(0).toString();
+                bool plural = (args.size() > 1);
+                recordMessage(translator, QString(), sourcetext, QString(), extracomment,
+                              msgid, extra, plural, fileName(), identLineNo);
+            }
+        }
+        sourcetext.clear();
+        extracomment.clear();
+        msgid.clear();
+        extra.clear();
     }
 } break;
 
@@ -2278,6 +2361,44 @@
         sym(1) = QVariant();
 } break;
 
+    case 171:
+
+    case 172:
+
+    case 173:
+
+    case 174:
+
+    case 175:
+
+    case 176:
+
+    case 177:
+
+    case 178:
+
+    case 179:
+
+    case 180:
+
+    case 181:
+
+    case 182:
+
+    case 183:
+
+    case 184:
+
+    case 185:
+    if (!sourcetext.isEmpty() || !extracomment.isEmpty() || !msgid.isEmpty() || !extra.isEmpty()) {
+        yyMsg() << qPrintable(LU::tr("Discarding unconsumed meta data\n"));
+        sourcetext.clear();
+        extracomment.clear();
+        msgid.clear();
+        extra.clear();
+    }
+    break;
+
           } // switch
 
           state_stack [tos] = nt_action (act, lhs [r] - TERMINAL_COUNT);
@@ -2332,7 +2453,9 @@
               for (int s = 0; s < shifts; ++s)
                 {
                   if (first)
-                    error_message += QLatin1String ("Expected ");
+                    //: Beginning of the string that contains
+                    //: comma-separated list of expected tokens
+                    error_message += LU::tr("Expected ");
                   else
                     error_message += QLatin1String (", ");
 
@@ -2356,13 +2479,69 @@
     return false;
 }
 
+std::ostream &QScriptParser::yyMsg(int line)
+{
+    return std::cerr << qPrintable(fileName()) << ':' << (line ? line : lexer->startLineNo()) << ": ";
+}
+
+void QScriptParser::processComment(const QChar *chars, int length)
+{
+    if (!length)
+        return;
+    // Try to match the logic of the C++ parser.
+    if (*chars == QLatin1Char(':') && chars[1].isSpace()) {
+        extracomment += QString(chars+2, length-2);
+    } else if (*chars == QLatin1Char('=') && chars[1].isSpace()) {
+        msgid = QString(chars+2, length-2).simplified();
+    } else if (*chars == QLatin1Char('~') && chars[1].isSpace()) {
+        QString text = QString(chars+2, length-2).trimmed();
+        int k = text.indexOf(QLatin1Char(' '));
+        if (k > -1)
+            extra.insert(text.left(k), text.mid(k + 1).trimmed());
+    } else if (*chars == QLatin1Char('%') && chars[1].isSpace()) {
+        sourcetext.reserve(sourcetext.length() + length-2);
+        ushort *ptr = (ushort *)sourcetext.data() + sourcetext.length();
+        int p = 2, c;
+        forever {
+            if (p >= length)
+                break;
+            c = chars[p++].unicode();
+            if (isspace(c))
+                continue;
+            if (c != '"') {
+                yyMsg() << qPrintable(LU::tr("Unexpected character in meta string\n"));
+                break;
+            }
+            forever {
+                if (p >= length) {
+                  whoops:
+                    yyMsg() << qPrintable(LU::tr("Unterminated meta string\n"));
+                    break;
+                }
+                c = chars[p++].unicode();
+                if (c == '"')
+                    break;
+                if (c == '\\') {
+                    if (p >= length)
+                        goto whoops;
+                    c = chars[p++].unicode();
+                    if (c == '\n')
+                        goto whoops;
+                    *ptr++ = '\\';
+                }
+                *ptr++ = c;
+            }
+        }
+        sourcetext.resize(ptr - (ushort *)sourcetext.data());
+    }
+}
+
 
 bool loadQScript(Translator &translator, const QString &filename, ConversionData &cd)
 {
     QFile file(filename);
     if (!file.open(QIODevice::ReadOnly)) {
-        cd.appendError(QString::fromLatin1("Cannot open %1: %2")
-            .arg(filename, file.errorString()));
+        cd.appendError(LU::tr("Cannot open %1: %2").arg(filename, file.errorString()));
         return false;
     }
     QTextStream ts(&file);
@@ -2375,10 +2554,11 @@
     ts.setAutoDetectUnicode(true);
 
     QString code = ts.readAll();
-    QScript::Lexer lexer;
-    lexer.setCode(code, /*lineNumber=*/1);
     QScriptParser parser;
-    if (!parser.parse(&lexer, filename, &translator)) {
+    QScript::Lexer lexer(&parser);
+    lexer.setCode(code, filename, /*lineNumber=*/1);
+    parser.setLexer(&lexer);
+    if (!parser.parse(&translator)) {
         std::cerr << qPrintable(filename) << ':' << parser.errorLineNumber() << ": "
                   << qPrintable(parser.errorMessage()) << std::endl;
         return false;
--- a/tools/linguist/lupdate/qscript.g	Fri Sep 17 08:34:18 2010 +0300
+++ b/tools/linguist/lupdate/qscript.g	Mon Oct 04 01:19:32 2010 +0300
@@ -84,6 +84,7 @@
 /.
 #include <translator.h>
 
+#include <QtCore/QCoreApplication>
 #include <QtCore/qdebug.h>
 #include <QtCore/qnumeric.h>
 #include <QtCore/qstring.h>
@@ -99,15 +100,22 @@
 
 QT_BEGIN_NAMESPACE
 
+class LU {
+    Q_DECLARE_TR_FUNCTIONS(LUpdate)
+};
+
 static void recordMessage(
     Translator *tor, const QString &context, const QString &text, const QString &comment,
-    const QString &extracomment, bool plural, const QString &fileName, int lineNo)
+    const QString &extracomment, const QString &msgid, const TranslatorMessage::ExtraData &extra,
+    bool plural, const QString &fileName, int lineNo)
 {
     TranslatorMessage msg(
         context, text, comment, QString(),
         fileName, lineNo, QStringList(),
         TranslatorMessage::Unfinished, plural);
     msg.setExtraComment(extracomment.simplified());
+    msg.setId(msgid);
+    msg.setExtras(extra);
     tor->extend(msg);
 }
 
@@ -115,15 +123,23 @@
 namespace QScript
 {
 
+class CommentProcessor
+{
+public:
+    virtual ~CommentProcessor() {}
+    virtual void processComment(const QChar *chars, int length) = 0;
+};
+
 class Lexer
 {
 public:
-    Lexer();
+    Lexer(CommentProcessor *);
     ~Lexer();
 
-    void setCode(const QString &c, int lineno);
+    void setCode(const QString &c, const QString &fileName, int lineno);
     int lex();
 
+    QString fileName() const { return yyfilename; }
     int currentLineNo() const { return yylineno; }
     int currentColumnNo() const { return yycolumn; }
 
@@ -203,6 +219,7 @@
         { err = NoError; }
 
 private:
+    QString yyfilename;
     int yylineno;
     bool done;
     char *buffer8;
@@ -256,6 +273,8 @@
 
     void syncProhibitAutomaticSemicolon();
 
+    void processComment(const QChar *, int);
+
     const QChar *code;
     uint length;
     int yycolumn;
@@ -282,6 +301,8 @@
     ParenthesesState parenthesesState;
     int parenthesesCount;
     bool prohibitAutomaticSemicolon;
+
+    CommentProcessor *commentProcessor;
 };
 
 } // namespace QScript
@@ -358,7 +379,7 @@
 
 } // namespace QScript
 
-QScript::Lexer::Lexer()
+QScript::Lexer::Lexer(QScript::CommentProcessor *proc)
     :
       yylineno(0),
       size8(128), size16(128), restrKeyword(false),
@@ -369,7 +390,8 @@
       err(NoError),
       check_reserved(true),
       parenthesesState(IgnoreParentheses),
-      prohibitAutomaticSemicolon(false)
+      prohibitAutomaticSemicolon(false),
+      commentProcessor(proc)
 {
     // allocate space for read buffers
     buffer8 = new char[size8];
@@ -384,9 +406,10 @@
     delete [] buffer16;
 }
 
-void QScript::Lexer::setCode(const QString &c, int lineno)
+void QScript::Lexer::setCode(const QString &c, const QString &fileName, int lineno)
 {
     errmsg = QString();
+    yyfilename = fileName;
     yylineno = lineno;
     yycolumn = 1;
     restrKeyword = false;
@@ -735,10 +758,12 @@
             } else if (current == '/' && next1 == '/') {
                 recordStartPos();
                 shift(1);
+                Q_ASSERT(pos16 == 0);
                 state = InSingleLineComment;
             } else if (current == '/' && next1 == '*') {
                 recordStartPos();
                 shift(1);
+                Q_ASSERT(pos16 == 0);
                 state = InMultiLineComment;
             } else if (current == 0) {
                 syncProhibitAutomaticSemicolon();
@@ -797,7 +822,7 @@
                 else {
                     setDone(Bad);
                     err = IllegalCharacter;
-                    errmsg = QLatin1String("Illegal character");
+                    errmsg = LU::tr("Illegal character");
                 }
             }
             break;
@@ -808,7 +833,7 @@
             } else if (current == 0 || isLineTerminator()) {
                 setDone(Bad);
                 err = UnclosedStringLiteral;
-                errmsg = QLatin1String("Unclosed string at end of line");
+                errmsg = LU::tr("Unclosed string at end of line");
             } else if (current == '\\') {
                 state = InEscapeSequence;
             } else {
@@ -834,7 +859,7 @@
                 } else {
                     setDone(Bad);
                     err = IllegalEscapeSequence;
-                    errmsg = QLatin1String("Illegal escape squence");
+                    errmsg = LU::tr("Illegal escape squence");
                 }
             } else if (current == 'x')
                 state = InHexEscape;
@@ -873,14 +898,17 @@
             } else {
                 setDone(Bad);
                 err = IllegalUnicodeEscapeSequence;
-                errmsg = QLatin1String("Illegal unicode escape sequence");
+                errmsg = LU::tr("Illegal unicode escape sequence");
             }
             break;
         case InSingleLineComment:
             if (isLineTerminator()) {
+                record16(current); // include newline
+                processComment(buffer16, pos16);
                 shiftWindowsLineBreak();
                 yylineno++;
                 yycolumn = 0;
+                pos16 = 0;
                 terminator = true;
                 bol = true;
                 if (restrKeyword) {
@@ -890,19 +918,25 @@
                     state = Start;
             } else if (current == 0) {
                 setDone(Eof);
+            } else {
+                record16(current);
             }
             break;
         case InMultiLineComment:
             if (current == 0) {
                 setDone(Bad);
                 err = UnclosedComment;
-                errmsg = QLatin1String("Unclosed comment at end of file");
+                errmsg = LU::tr("Unclosed comment at end of file");
             } else if (isLineTerminator()) {
                 shiftWindowsLineBreak();
                 yylineno++;
             } else if (current == '*' && next1 == '/') {
+                processComment(buffer16, pos16);
+                pos16 = 0;
                 state = Start;
                 shift(1);
+            } else {
+                record16(current);
             }
             break;
         case InIdentifier:
@@ -980,7 +1014,7 @@
             } else {
                 setDone(Bad);
                 err = IllegalExponentIndicator;
-                errmsg = QLatin1String("Illegal syntax for exponential number");
+                errmsg = LU::tr("Illegal syntax for exponential number");
             }
             break;
         case InExponent:
@@ -1006,7 +1040,7 @@
          && isIdentLetter(current)) {
         state = Bad;
         err = IllegalIdentifier;
-        errmsg = QLatin1String("Identifier cannot start with numeric literal");
+        errmsg = LU::tr("Identifier cannot start with numeric literal");
     }
 
     // terminate string
@@ -1325,7 +1359,7 @@
 
     while (1) {
         if (isLineTerminator() || current == 0) {
-            errmsg = QLatin1String("Unterminated regular expression literal");
+            errmsg = LU::tr("Unterminated regular expression literal");
             return false;
         }
         else if (current != '/' || lastWasEscape == true)
@@ -1364,10 +1398,15 @@
     }
 }
 
+void QScript::Lexer::processComment(const QChar *chars, int length)
+{
+    commentProcessor->processComment(chars, length);
+}
+
 
 class Translator;
 
-class QScriptParser: protected $table
+class QScriptParser: protected $table, public QScript::CommentProcessor
 {
 public:
     QVariant val;
@@ -1383,10 +1422,12 @@
     QScriptParser();
     ~QScriptParser();
 
-    bool parse(QScript::Lexer *lexer,
-               const QString &fileName,
-               Translator *translator);
+    void setLexer(QScript::Lexer *);
 
+    bool parse(Translator *translator);
+
+    QString fileName() const
+    { return lexer->fileName(); }
     inline QString errorMessage() const
     { return error_message; }
     inline int errorLineNumber() const
@@ -1403,6 +1444,10 @@
     inline Location &loc(int index)
     { return location_stack [tos + index - 2]; }
 
+    std::ostream &yyMsg(int line = 0);
+
+    virtual void processComment(const QChar *, int);
+
 protected:
     int tos;
     int stack_size;
@@ -1412,6 +1457,13 @@
     QString error_message;
     int error_lineno;
     int error_column;
+
+private:
+    QScript::Lexer *lexer;
+    QString extracomment;
+    QString msgid;
+    QString sourcetext;
+    TranslatorMessage::ExtraData extra;
 };
 
 inline void QScriptParser::reallocateStack()
@@ -1438,7 +1490,8 @@
     stack_size(0),
     sym_stack(0),
     state_stack(0),
-    location_stack(0)
+    location_stack(0),
+    lexer(0)
 {
 }
 
@@ -1460,10 +1513,14 @@
     return loc;
 }
 
-bool QScriptParser::parse(QScript::Lexer *lexer,
-                    const QString &fileName,
-     	            Translator *translator)
+void QScriptParser::setLexer(QScript::Lexer *lex)
 {
+    lexer = lex;
+}
+
+bool QScriptParser::parse(Translator *translator)
+{
+  Q_ASSERT(lexer != 0);
   const int INITIAL_STATE = 0;
 
   int yytoken = -1;
@@ -1630,44 +1687,70 @@
 case $rule_number: {
     QString name = sym(1).toString();
     if ((name == QLatin1String("qsTranslate")) || (name == QLatin1String("QT_TRANSLATE_NOOP"))) {
+        if (!sourcetext.isEmpty())
+            yyMsg(identLineNo) << qPrintable(LU::tr("//% cannot be used with %1(). Ignoring\n").arg(name));
         QVariantList args = sym(2).toList();
         if (args.size() < 2) {
-            std::cerr << qPrintable(fileName) << ':' << identLineNo << ": "
-                      << qPrintable(name) << "() requires at least two arguments.\n";
+            yyMsg(identLineNo) << qPrintable(LU::tr("%1() requires at least two arguments.\n").arg(name));
         } else {
             if ((args.at(0).type() != QVariant::String)
                 || (args.at(1).type() != QVariant::String)) {
-                std::cerr << qPrintable(fileName) << ':' << identLineNo << ": "
-                          << qPrintable(name) << "(): both arguments must be literal strings.\n";
+                yyMsg(identLineNo) << qPrintable(LU::tr("%1(): both arguments must be literal strings.\n").arg(name));
             } else {
                 QString context = args.at(0).toString();
                 QString text = args.at(1).toString();
                 QString comment = args.value(2).toString();
-                QString extracomment;
                 bool plural = (args.size() > 4);
                 recordMessage(translator, context, text, comment, extracomment,
-                              plural, fileName, identLineNo);
+                              msgid, extra, plural, fileName(), identLineNo);
             }
         }
+        sourcetext.clear();
+        extracomment.clear();
+        msgid.clear();
+        extra.clear();
     } else if ((name == QLatin1String("qsTr")) || (name == QLatin1String("QT_TR_NOOP"))) {
+        if (!sourcetext.isEmpty())
+            yyMsg(identLineNo) << qPrintable(LU::tr("//% cannot be used with %1(). Ignoring\n").arg(name));
         QVariantList args = sym(2).toList();
         if (args.size() < 1) {
-            std::cerr << qPrintable(fileName) << ':' << identLineNo << ": "
-                      << qPrintable(name) << "() requires at least one argument.\n";
+            yyMsg(identLineNo) << qPrintable(LU::tr("%1() requires at least one argument.\n").arg(name));
         } else {
             if (args.at(0).type() != QVariant::String) {
-                std::cerr << qPrintable(fileName) << ':' << identLineNo << ": "
-                          << qPrintable(name) << "(): text to translate must be a literal string.\n";
+                yyMsg(identLineNo) << qPrintable(LU::tr("%1(): text to translate must be a literal string.\n").arg(name));
             } else {
-                QString context = QFileInfo(fileName).baseName();
+                QString context = QFileInfo(fileName()).baseName();
                 QString text = args.at(0).toString();
                 QString comment = args.value(1).toString();
-                QString extracomment;
                 bool plural = (args.size() > 2);
                 recordMessage(translator, context, text, comment, extracomment,
-                              plural, fileName, identLineNo);
+                              msgid, extra, plural, fileName(), identLineNo);
             }
         }
+        sourcetext.clear();
+        extracomment.clear();
+        msgid.clear();
+        extra.clear();
+    } else if ((name == QLatin1String("qsTrId")) || (name == QLatin1String("QT_TRID_NOOP"))) {
+        if (!msgid.isEmpty())
+            yyMsg(identLineNo) << qPrintable(LU::tr("//= cannot be used with %1(). Ignoring\n").arg(name));
+        QVariantList args = sym(2).toList();
+        if (args.size() < 1) {
+            yyMsg(identLineNo) << qPrintable(LU::tr("%1() requires at least one argument.\n").arg(name));
+        } else {
+            if (args.at(0).type() != QVariant::String) {
+                yyMsg(identLineNo) << qPrintable(LU::tr("%1(): identifier must be a literal string.\n").arg(name));
+            } else {
+                msgid = args.at(0).toString();
+                bool plural = (args.size() > 1);
+                recordMessage(translator, QString(), sourcetext, QString(), extracomment,
+                              msgid, extra, plural, fileName(), identLineNo);
+            }
+        }
+        sourcetext.clear();
+        extracomment.clear();
+        msgid.clear();
+        extra.clear();
     }
 } break;
 ./
@@ -1813,20 +1896,73 @@
 ExpressionNotInOpt: ExpressionNotIn ;
 
 Statement: Block ;
+/.
+    case $rule_number:
+./
 Statement: VariableStatement ;
+/.
+    case $rule_number:
+./
 Statement: EmptyStatement ;
+/.
+    case $rule_number:
+./
 Statement: ExpressionStatement ;
+/.
+    case $rule_number:
+./
 Statement: IfStatement ;
+/.
+    case $rule_number:
+./
 Statement: IterationStatement ;
+/.
+    case $rule_number:
+./
 Statement: ContinueStatement ;
+/.
+    case $rule_number:
+./
 Statement: BreakStatement ;
+/.
+    case $rule_number:
+./
 Statement: ReturnStatement ;
+/.
+    case $rule_number:
+./
 Statement: WithStatement ;
+/.
+    case $rule_number:
+./
 Statement: LabelledStatement ;
+/.
+    case $rule_number:
+./
 Statement: SwitchStatement ;
+/.
+    case $rule_number:
+./
 Statement: ThrowStatement ;
+/.
+    case $rule_number:
+./
 Statement: TryStatement ;
+/.
+    case $rule_number:
+./
 Statement: DebuggerStatement ;
+/.
+    case $rule_number:
+    if (!sourcetext.isEmpty() || !extracomment.isEmpty() || !msgid.isEmpty() || !extra.isEmpty()) {
+        yyMsg() << qPrintable(LU::tr("Discarding unconsumed meta data\n"));
+        sourcetext.clear();
+        extracomment.clear();
+        msgid.clear();
+        extra.clear();
+    }
+    break;
+./
 
 Block: T_LBRACE StatementListOpt T_RBRACE ;
 StatementList: Statement ;
@@ -1965,6 +2101,9 @@
                 {
                   if (first)
                     error_message += QLatin1String ("Expected ");
+                    //: Beginning of the string that contains
+                    //: comma-separated list of expected tokens
+                    error_message += LU::tr("Expected ");
                   else
                     error_message += QLatin1String (", ");
 
@@ -1988,13 +2127,69 @@
     return false;
 }
 
+std::ostream &QScriptParser::yyMsg(int line)
+{
+    return std::cerr << qPrintable(fileName()) << ':' << (line ? line : lexer->startLineNo()) << ": ";
+}
+
+void QScriptParser::processComment(const QChar *chars, int length)
+{
+    if (!length)
+        return;
+    // Try to match the logic of the C++ parser.
+    if (*chars == QLatin1Char(':') && chars[1].isSpace()) {
+        extracomment += QString(chars+2, length-2);
+    } else if (*chars == QLatin1Char('=') && chars[1].isSpace()) {
+        msgid = QString(chars+2, length-2).simplified();
+    } else if (*chars == QLatin1Char('~') && chars[1].isSpace()) {
+        QString text = QString(chars+2, length-2).trimmed();
+        int k = text.indexOf(QLatin1Char(' '));
+        if (k > -1)
+            extra.insert(text.left(k), text.mid(k + 1).trimmed());
+    } else if (*chars == QLatin1Char('%') && chars[1].isSpace()) {
+        sourcetext.reserve(sourcetext.length() + length-2);
+        ushort *ptr = (ushort *)sourcetext.data() + sourcetext.length();
+        int p = 2, c;
+        forever {
+            if (p >= length)
+                break;
+            c = chars[p++].unicode();
+            if (isspace(c))
+                continue;
+            if (c != '"') {
+                yyMsg() << qPrintable(LU::tr("Unexpected character in meta string\n"));
+                break;
+            }
+            forever {
+                if (p >= length) {
+                  whoops:
+                    yyMsg() << qPrintable(LU::tr("Unterminated meta string\n"));
+                    break;
+                }
+                c = chars[p++].unicode();
+                if (c == '"')
+                    break;
+                if (c == '\\') {
+                    if (p >= length)
+                        goto whoops;
+                    c = chars[p++].unicode();
+                    if (c == '\n')
+                        goto whoops;
+                    *ptr++ = '\\';
+                }
+                *ptr++ = c;
+            }
+        }
+        sourcetext.resize(ptr - (ushort *)sourcetext.data());
+    }
+}
+
 
 bool loadQScript(Translator &translator, const QString &filename, ConversionData &cd)
 {
     QFile file(filename);
     if (!file.open(QIODevice::ReadOnly)) {
-        cd.appendError(QString::fromLatin1("Cannot open %1: %2")
-            .arg(filename, file.errorString()));
+        cd.appendError(LU::tr("Cannot open %1: %2").arg(filename, file.errorString()));
         return false;
     }
     QTextStream ts(&file);
@@ -2007,10 +2202,11 @@
     ts.setAutoDetectUnicode(true);
 
     QString code = ts.readAll();
-    QScript::Lexer lexer;
-    lexer.setCode(code, /*lineNumber=*/1);
     QScriptParser parser;
-    if (!parser.parse(&lexer, filename, &translator)) {
+    QScript::Lexer lexer(&parser);
+    lexer.setCode(code, filename, /*lineNumber=*/1);
+    parser.setLexer(&lexer);
+    if (!parser.parse(&translator)) {
         std::cerr << qPrintable(filename) << ':' << parser.errorLineNumber() << ": "
                   << qPrintable(parser.errorMessage()) << std::endl;
         return false;
--- a/tools/linguist/lupdate/ui.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tools/linguist/lupdate/ui.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -43,6 +43,7 @@
 
 #include <translator.h>
 
+#include <QtCore/QCoreApplication>
 #include <QtCore/QDebug>
 #include <QtCore/QFile>
 #include <QtCore/QString>
@@ -55,6 +56,10 @@
 
 QT_BEGIN_NAMESPACE
 
+class LU {
+    Q_DECLARE_TR_FUNCTIONS(LUpdate)
+};
+
 class UiReader : public QXmlDefaultHandler
 {
 public:
@@ -152,11 +157,10 @@
 
 bool UiReader::fatalError(const QXmlParseException &exception)
 {
-    QString msg;
-    msg.sprintf("XML error: Parse error at line %d, column %d (%s).",
-                 exception.lineNumber(), exception.columnNumber(),
-                 exception.message().toLatin1().data());
-    m_cd.appendError(msg); 
+    QString msg = LU::tr("XML error: Parse error at line %1, column %2 (%3).")
+        .arg(exception.lineNumber()).arg(exception.columnNumber())
+        .arg(exception.message());
+    m_cd.appendError(msg);
     return false;
 }
 
@@ -181,8 +185,7 @@
     cd.m_sourceFileName = filename;
     QFile file(filename);
     if (!file.open(QIODevice::ReadOnly)) {
-        cd.appendError(QString::fromLatin1("Cannot open %1: %2")
-            .arg(filename, file.errorString()));
+        cd.appendError(LU::tr("Cannot open %1: %2").arg(filename, file.errorString()));
         return false;
     }
     QXmlInputSource in(&file);
@@ -196,7 +199,7 @@
     reader.setErrorHandler(&handler);
     bool result = reader.parse(in);
     if (!result)
-        cd.appendError(QLatin1String("Parse error in UI file"));
+        cd.appendError(LU::tr("Parse error in UI file"));
     reader.setContentHandler(0);
     reader.setErrorHandler(0);
     return result;
--- a/tools/linguist/phrasebooks/french.qph	Fri Sep 17 08:34:18 2010 +0300
+++ b/tools/linguist/phrasebooks/french.qph	Mon Oct 04 01:19:32 2010 +0300
@@ -801,7 +801,7 @@
 </phrase>
 <phrase>
     <source>Redo</source>
-    <target>Annuler Annuler</target>
+    <target>Rétablir</target>
 </phrase>
 <phrase>
     <source>region selection</source>
@@ -1111,10 +1111,6 @@
     <target>&amp;Édition</target>
 </phrase>
 <phrase>
-    <source>&amp;Redo</source>
-    <target>Re&amp;faire</target>
-</phrase>
-<phrase>
     <source>debugger</source>
     <target>débogueur</target>
 </phrase>
@@ -1438,4 +1434,60 @@
     <source>&amp;Debug</source>
     <target>&amp;Déboguer</target>
 </phrase>
+<phrase>
+    <source>Slider</source>
+    <target>Barre de défilement</target>
+</phrase>
+<phrase>
+    <source>&amp;Restore</source>
+    <target>&amp;Restaurer</target>
+</phrase>
+<phrase>
+    <source>&amp;Move</source>
+    <target>&amp;Déplacer</target>
+</phrase>
+<phrase>
+    <source>New</source>
+    <target>Créer</target>
+</phrase>
+<phrase>
+    <source>Play</source>
+    <target>Lecture</target>
+</phrase>
+<phrase>
+    <source>Slider</source>
+    <target>Barre de défilement</target>
+</phrase>
+<phrase>
+    <source>&amp;Restore</source>
+    <target>&amp;Restaurer</target>
+</phrase>
+<phrase>
+    <source>&amp;Move</source>
+    <target>&amp;Déplacer</target>
+</phrase>
+<phrase>
+    <source>New</source>
+    <target>Créer</target>
+</phrase>
+<phrase>
+    <source>Play</source>
+    <target>Lecture</target>
+</phrase>
+<phrase>
+    <source>&amp;Redo</source>
+    <target>&amp;Refaire</target>
+</phrase>
+<phrase>
+    <source>Raised</source>
+    <target>Bombé</target>
+</phrase>
+<phrase>
+    <source>Sunken</source>
+    <target>Enfoncé</target>
+</phrase>
+<phrase>
+    <source>Run:</source>
+    <target>Exécution :</target>
+</phrase>
 </QPH>
--- a/tools/linguist/phrasebooks/russian.qph	Fri Sep 17 08:34:18 2010 +0300
+++ b/tools/linguist/phrasebooks/russian.qph	Mon Oct 04 01:19:32 2010 +0300
@@ -498,7 +498,7 @@
 </phrase>
 <phrase>
     <source>Next</source>
-    <target>Следующий</target>
+    <target>Далее</target>
 </phrase>
 <phrase>
     <source>object</source>
@@ -1070,7 +1070,7 @@
 </phrase>
 <phrase>
     <source>Next</source>
-    <target>Далее</target>
+    <target>Следующий</target>
 </phrase>
 <phrase>
     <source>tree view</source>
@@ -1204,4 +1204,16 @@
     <source>Permission denied</source>
     <target>Доступ запрещён</target>
 </phrase>
+<phrase>
+    <source>Previous</source>
+    <target>Предыдущий</target>
+</phrase>
+<phrase>
+    <source>Next</source>
+    <target>Следующее</target>
+</phrase>
+<phrase>
+    <source>Previous</source>
+    <target>Предыдущее</target>
+</phrase>
 </QPH>
--- a/tools/linguist/shared/po.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tools/linguist/shared/po.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -50,8 +50,6 @@
 
 #include <ctype.h>
 
-#define MAGIC_OBSOLETE_REFERENCE "Obsolete_PO_entries"
-
 // Uncomment if you wish to hard wrap long lines in .po files. Note that this
 // affects only msg strings, not comments.
 //#define HARD_WRAP_LONG_WORDS
@@ -555,15 +553,26 @@
             TranslatorMessage msg;
             msg.setContext(codec->toUnicode(item.context));
             if (!item.references.isEmpty()) {
+                QString xrefs;
                 foreach (const QString &ref,
                          codec->toUnicode(item.references).split(
                                  QRegExp(QLatin1String("\\s")), QString::SkipEmptyParts)) {
-                    int pos = ref.lastIndexOf(QLatin1Char(':'));
-                    if (pos != -1)
-                        msg.addReference(ref.left(pos), ref.mid(pos + 1).toInt());
+                    int pos = ref.indexOf(QLatin1Char(':'));
+                    int lpos = ref.lastIndexOf(QLatin1Char(':'));
+                    if (pos != -1 && pos == lpos) {
+                        bool ok;
+                        int lno = ref.mid(pos + 1).toInt(&ok);
+                        if (ok) {
+                            msg.addReference(ref.left(pos), lno);
+                            continue;
+                        }
+                    }
+                    if (!xrefs.isEmpty())
+                        xrefs += QLatin1Char(' ');
+                    xrefs += ref;
                 }
-            } else if (isObsolete) {
-                msg.setFileName(QLatin1String(MAGIC_OBSOLETE_REFERENCE));
+                if (!xrefs.isEmpty())
+                    item.extra[QLatin1String("po-references")] = xrefs;
             }
             msg.setId(codec->toUnicode(item.id));
             msg.setSourceText(codec->toUnicode(item.msgId));
@@ -660,6 +669,8 @@
                         item.isPlural = true;
                     } else if (line.startsWith("#~ msgctxt ")) {
                         item.tscomment = slurpEscapedString(lines, l, 11, "#~ ", cd);
+                        if (qtContexts)
+                            splitContext(&item.tscomment, &item.context);
                     } else {
                         cd.appendError(QString(QLatin1String("PO-format parse error in line %1: '%2'"))
                             .arg(l + 1).arg(codec->toUnicode(lines[l])));
@@ -773,11 +784,14 @@
         if (!msg.id().isEmpty())
             out << QLatin1String("#. ts-id ") << msg.id() << '\n';
 
-        if (!msg.fileName().isEmpty() && msg.fileName() != QLatin1String(MAGIC_OBSOLETE_REFERENCE)) {
+        QString xrefs = msg.extra(QLatin1String("po-references"));
+        if (!msg.fileName().isEmpty() || !xrefs.isEmpty()) {
             QStringList refs;
             foreach (const TranslatorMessage::Reference &ref, msg.allReferences())
                 refs.append(QString(QLatin1String("%2:%1"))
                                     .arg(ref.lineNumber()).arg(ref.fileName()));
+            if (!xrefs.isEmpty())
+                refs << xrefs;
             out << poWrappedEscapedLines(QLatin1String("#:"), true, refs.join(QLatin1String(" ")));
         }
 
--- a/tools/linguist/shared/xliff.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tools/linguist/shared/xliff.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -53,6 +53,11 @@
 #include <QtXml/QXmlParseException>
 
 
+// The string value is historical and reflects the main purpose: Keeping
+// obsolete entries separate from the magic file message (which both have
+// no location information, but typically reside at opposite ends of the file).
+#define MAGIC_OBSOLETE_REFERENCE "Obsolete_PO_entries"
+
 QT_BEGIN_NAMESPACE
 
 /**
@@ -692,6 +697,9 @@
         m_cd.appendError(QLatin1String("XLIFF syntax error: Message without source string."));
         return false;
     }
+    if (m_type == TranslatorMessage::Obsolete && m_refs.size() == 1
+        && m_refs.at(0).fileName() == QLatin1String(MAGIC_OBSOLETE_REFERENCE))
+        m_refs.clear();
     TranslatorMessage msg(m_context, m_sources[0],
                           m_comment, QString(), QString(), -1,
                           m_translations, m_type, isPlural);
@@ -761,12 +769,15 @@
     QHash<QString, QList<QString> > contextOrder;
     QList<QString> fileOrder;
     foreach (const TranslatorMessage &msg, translator.messages()) {
-        QHash<QString, QList<TranslatorMessage> > &file = messageOrder[msg.fileName()];
+        QString fn = msg.fileName();
+        if (fn.isEmpty() && msg.type() == TranslatorMessage::Obsolete)
+            fn = QLatin1String(MAGIC_OBSOLETE_REFERENCE);
+        QHash<QString, QList<TranslatorMessage> > &file = messageOrder[fn];
         if (file.isEmpty())
-            fileOrder.append(msg.fileName());
+            fileOrder.append(fn);
         QList<TranslatorMessage> &context = file[msg.context()];
         if (context.isEmpty())
-            contextOrder[msg.fileName()].append(msg.context());
+            contextOrder[fn].append(msg.context());
         context.append(msg);
     }
 
--- a/tools/porting/src/errors.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tools/porting/src/errors.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -44,8 +44,8 @@
 
 QT_BEGIN_NAMESPACE
 
-QT_STATIC_CONST_IMPL Error& Errors::InternalError = Error( 1, -1, QLatin1String("Internal Error") );
-QT_STATIC_CONST_IMPL Error& Errors::SyntaxError = Error( 2, -1, QLatin1String("Syntax Error before '%1'") );
-QT_STATIC_CONST_IMPL Error& Errors::ParseError = Error( 3, -1, QLatin1String("Parse Error before '%1'") );
+QT_STATIC_CONST_IMPL Error Errors::InternalError = Error( 1, -1, QLatin1String("Internal Error") );
+QT_STATIC_CONST_IMPL Error Errors::SyntaxError = Error( 2, -1, QLatin1String("Syntax Error before '%1'") );
+QT_STATIC_CONST_IMPL Error Errors::ParseError = Error( 3, -1, QLatin1String("Parse Error before '%1'") );
 
 QT_END_NAMESPACE
--- a/tools/porting/src/errors.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/tools/porting/src/errors.h	Mon Oct 04 01:19:32 2010 +0300
@@ -61,9 +61,9 @@
 class Errors
 {
 public:
-    QT_STATIC_CONST Error& InternalError;
-    QT_STATIC_CONST Error& SyntaxError;
-    QT_STATIC_CONST Error& ParseError;
+    QT_STATIC_CONST Error InternalError;
+    QT_STATIC_CONST Error SyntaxError;
+    QT_STATIC_CONST Error ParseError;
 };
 
 QT_END_NAMESPACE
--- a/tools/porting/src/semantic.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tools/porting/src/semantic.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -768,7 +768,7 @@
 void Semantic::parseTypeSpecifier(TypeSpecifierAST *ast)
 {
     // If this is a classSpecifier or a EnumSpecifier we skip the name lookup,
-    // becuase looking up the name "E" in a class definition like
+    // because looking up the name "E" in a class definition like
     // "class E { ..." makes no sense. (There might be a variable named E
     // already declared, but that variable is now shadowed by the class type.)
     if(   ast->nodeType() != NodeType_EnumSpecifier
@@ -807,7 +807,7 @@
 
 /*
     looks up name used in basescope. If name->isGlobal() is true or if classOrNamespaceList()
-    returns a non-emty list, the C++ qualified name lookup rules are used. Otherwise the
+    returns a non-empty list, the C++ qualified name lookup rules are used. Otherwise the
     unquialified name lookup rules are used.  Returns the a list of members that was found,
     In most cases this list will contain zero or one element, exept in the case of overloaded functions.
     TODO: Argument-dependent name lookup
@@ -975,7 +975,7 @@
 */
 FunctionMember *Semantic::selectFunction(QList<CodeModel::Member*> candidatateList, const DeclaratorAST *functionDeclarator)
 {
-    // get arguments for funciton we are looking for
+    // get arguments for function we are looking for
     FunctionMember testFunction;
     parseFunctionArguments(functionDeclarator, &testFunction);
     const ArgumentCollection testArgumentCollection = testFunction.arguments();
--- a/tools/qdoc3/codemarker.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tools/qdoc3/codemarker.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -624,7 +624,9 @@
   Get the list of documentation sections for the children of
   the specified QmlClassNode.
  */
-QList<Section> CodeMarker::qmlSections(const QmlClassNode* , SynopsisStyle )
+QList<Section> CodeMarker::qmlSections(const QmlClassNode* ,
+                                       SynopsisStyle ,
+                                       const Tree* )
 {
     return QList<Section>();
 }
--- a/tools/qdoc3/codemarker.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/tools/qdoc3/codemarker.h	Mon Oct 04 01:19:32 2010 +0300
@@ -153,7 +153,8 @@
                                     Status status) = 0;
 #ifdef QDOC_QML
     virtual QList<Section> qmlSections(const QmlClassNode* qmlClassNode,
-                                       SynopsisStyle style);
+                                       SynopsisStyle style,
+                                       const Tree* tree);
 #endif
     virtual const Node* resolveTarget(const QString& target, 
                                       const Tree* tree,
--- a/tools/qdoc3/config.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/tools/qdoc3/config.h	Mon Oct 04 01:19:32 2010 +0300
@@ -119,6 +119,7 @@
 };
 
 #define CONFIG_ALIAS                    "alias"
+#define CONFIG_APPLICATION		"application"
 #define CONFIG_BASE                     "base"      // ### don't document for now
 #define CONFIG_CODEINDENT               "codeindent"
 #define CONFIG_DEFINES                  "defines"
@@ -142,8 +143,7 @@
 #define CONFIG_MACRO                    "macro"
 #define CONFIG_NATURALLANGUAGE          "naturallanguage"
 #define CONFIG_OBSOLETELINKS            "obsoletelinks"
-#define CONFIG_ONLINE                   "online"
-#define CONFIG_CREATOR                  "creator"
+#define CONFIG_APPLICATION              "application"
 #define CONFIG_OUTPUTDIR                "outputdir"
 #define CONFIG_OUTPUTENCODING           "outputencoding"
 #define CONFIG_OUTPUTLANGUAGE           "outputlanguage"
--- a/tools/qdoc3/cppcodemarker.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tools/qdoc3/cppcodemarker.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -1127,7 +1127,8 @@
   Currently, it only handles QML property groups.
  */
 QList<Section> CppCodeMarker::qmlSections(const QmlClassNode* qmlClassNode,
-                                          SynopsisStyle style)
+                                          SynopsisStyle style,
+                                          const Tree* tree)
 {
     QList<Section> sections;
     if (qmlClassNode) {
@@ -1244,6 +1245,48 @@
 	    append(sections,qmlmethods);
 	    append(sections,qmlattachedmethods);
         }
+        else {
+	    FastSection all(qmlClassNode,"","","member","members");
+
+	    QStack<const QmlClassNode*> stack;
+	    stack.push(qmlClassNode);
+
+	    while (!stack.isEmpty()) {
+	        const QmlClassNode* ancestorClass = stack.pop();
+
+	        NodeList::ConstIterator c = ancestorClass->childNodes().begin();
+	        while (c != ancestorClass->childNodes().end()) {
+                    //		    if ((*c)->access() != Node::Private)
+                    if ((*c)->subType() == Node::QmlPropertyGroup) {
+                        const QmlPropGroupNode* qpgn = static_cast<const QmlPropGroupNode*>(*c);
+                        NodeList::ConstIterator p = qpgn->childNodes().begin();
+                        while (p != qpgn->childNodes().end()) {
+                            if ((*p)->type() == Node::QmlProperty) {
+                                insert(all,*p,style,Okay);
+                            }
+                            ++p;
+                        }
+                    }
+                    else
+                        insert(all,*c,style,Okay);
+                    ++c;
+                }
+
+                if (!ancestorClass->links().empty()) {
+                    if (ancestorClass->links().contains(Node::InheritsLink)) {
+                        QPair<QString,QString> linkPair;
+                        linkPair = ancestorClass->links()[Node::InheritsLink];
+                        QStringList strList(linkPair.first);
+                        const Node* n = tree->findNode(strList,Node::Fake);
+                        if (n && n->subType() == Node::QmlClass) {
+                            const QmlClassNode* qcn = static_cast<const QmlClassNode*>(n);
+                            stack.prepend(qcn);
+                        }
+                    }
+                }
+	    }
+	    append(sections, all);
+        }
     }
 
     return sections;
--- a/tools/qdoc3/cppcodemarker.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/tools/qdoc3/cppcodemarker.h	Mon Oct 04 01:19:32 2010 +0300
@@ -80,7 +80,8 @@
                             SynopsisStyle style, 
                             Status status);
     QList<Section> qmlSections(const QmlClassNode* qmlClassNode,
-                               SynopsisStyle style);
+                               SynopsisStyle style,
+                               const Tree* tree);
     const Node* resolveTarget(const QString& target, 
                               const Tree* tree, 
                               const Node* relative,
--- a/tools/qdoc3/ditaxmlgenerator.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tools/qdoc3/ditaxmlgenerator.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -440,7 +440,6 @@
                                           DITAXMLGENERATOR_GENERATEMACREFS);
 
     project = config.getString(CONFIG_PROJECT);
-    offlineDocs = !config.getBool(CONFIG_ONLINE);
     projectDescription = config.getString(CONFIG_DESCRIPTION);
     if (projectDescription.isEmpty() && !project.isEmpty())
         projectDescription = project + " Reference Documentation";
@@ -545,6 +544,7 @@
     funcIndex.clear();
     legaleseTexts.clear();
     serviceClasses.clear();
+    qmlClasses.clear();
     findAllClasses(tree->root());
     findAllFunctions(tree->root());
     findAllLegaleseTexts(tree->root());
@@ -752,6 +752,9 @@
         else if (atom->string() == "classes") {
             generateCompactList(relative, marker, nonCompatClasses, true);
         }
+        else if (atom->string() == "qmlclasses") {
+            generateCompactList(relative, marker, qmlClasses, true);
+        }
         else if (atom->string().contains("classesbymodule")) {
             QString arg = atom->string().trimmed();
             QString moduleName = atom->string().mid(atom->string().indexOf(
@@ -1765,7 +1768,7 @@
         generateQmlInstantiates(qml_cn, marker);
         generateBrief(qml_cn, marker);
         generateQmlInheritedBy(qml_cn, marker);
-        sections = marker->qmlSections(qml_cn,CodeMarker::Summary);
+        sections = marker->qmlSections(qml_cn,CodeMarker::Summary,0);
         s = sections.begin();
         while (s != sections.end()) {
             out() << "<a name=\"" << registerRef((*s).name) << "\"></a>\n";
@@ -1782,7 +1785,7 @@
         generateAlsoList(fake, marker);
         out() << "<hr />\n";
 
-        sections = marker->qmlSections(qml_cn,CodeMarker::Detailed);
+        sections = marker->qmlSections(qml_cn,CodeMarker::Detailed,0);
         s = sections.begin();
         while (s != sections.end()) {
             out() << "<h2>" << protectEnc((*s).name) << "</h2>\n";
@@ -3676,6 +3679,12 @@
                 if (!serviceName.isEmpty())
                     serviceClasses.insert(serviceName, *c);
             }
+            else if ((*c)->type() == Node::Fake &&
+                     (*c)->subType() == Node::QmlClass &&
+                     !(*c)->doc().isEmpty()) {
+                QString qmlClassName = (*c)->name();
+                qmlClasses.insert(qmlClassName,*c);
+            }
             else if ((*c)->isInnerNode()) {
                 findAllClasses(static_cast<InnerNode *>(*c));
             }
--- a/tools/qdoc3/generator.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tools/qdoc3/generator.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -1068,8 +1068,11 @@
         Text text;
         text << Atom::ParaLeft
              << "This "
-             << typeString(node)
-             << " was introduced in ";
+             << typeString(node);
+        if (node->type() == Node::Enum)
+            text << " was introduced or modified in ";
+        else
+            text << " was introduced in ";
         if (project.isEmpty())
              text << "version";
         else
--- a/tools/qdoc3/htmlgenerator.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tools/qdoc3/htmlgenerator.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -219,8 +219,7 @@
       inTableHeader(false),
       numTableRows(0),
       threeColumnEnumValueTable(true),
-      offlineDocs(true),
-      creatorDocs(true),
+      application(Online),
       funcLeftParen("\\S(\\()"),
       myTree(0),
       slow(false),
@@ -271,6 +270,12 @@
     postPostHeader = config.getString(HtmlGenerator::format() +
                                       Config::dot +
                                       HTMLGENERATOR_POSTPOSTHEADER);
+    creatorPostHeader = config.getString(HtmlGenerator::format() +
+                                  Config::dot +
+                                  HTMLGENERATOR_CREATORPOSTHEADER);
+    creatorPostPostHeader = config.getString(HtmlGenerator::format() +
+                                      Config::dot +
+                                      HTMLGENERATOR_CREATORPOSTPOSTHEADER);
     footer = config.getString(HtmlGenerator::format() +
                               Config::dot +
                               HTMLGENERATOR_FOOTER);
@@ -282,8 +287,15 @@
                                           HTMLGENERATOR_GENERATEMACREFS);
 
     project = config.getString(CONFIG_PROJECT);
-    offlineDocs = !config.getBool(CONFIG_ONLINE);
-    creatorDocs = false; //!config.getBool(CONFIG_CREATOR);
+
+    QString app = config.getString(CONFIG_APPLICATION);
+    if (app == "online")
+        application = Online;
+    else if (app == "creator")
+        application = Creator;
+    else 
+        application = Creator;
+
     projectDescription = config.getString(CONFIG_DESCRIPTION);
     if (projectDescription.isEmpty() && !project.isEmpty())
         projectDescription = project + " Reference Documentation";
@@ -364,6 +376,7 @@
     funcIndex.clear();
     legaleseTexts.clear();
     serviceClasses.clear();
+    qmlClasses.clear();
     findAllClasses(tree->root());
     findAllFunctions(tree->root());
     findAllLegaleseTexts(tree->root());
@@ -599,6 +612,9 @@
         else if (atom->string() == "classes") {
             generateCompactList(relative, marker, nonCompatClasses, true);
         }
+        else if (atom->string() == "qmlclasses") {
+            generateCompactList(relative, marker, qmlClasses, true);
+        }
         else if (atom->string().contains("classesbymodule")) {
             QString arg = atom->string().trimmed();
             QString moduleName = atom->string().mid(atom->string().indexOf(
@@ -1477,7 +1493,7 @@
     const QmlClassNode* qml_cn = 0;
     if (fake->subType() == Node::QmlClass) {
         qml_cn = static_cast<const QmlClassNode*>(fake);
-        sections = marker->qmlSections(qml_cn,CodeMarker::Summary);
+        sections = marker->qmlSections(qml_cn,CodeMarker::Summary,0);
         generateTableOfContents(fake,marker,&sections);
     }
     else if (fake->name() != QString("index.html"))
@@ -1559,6 +1575,13 @@
         generateQmlInherits(qml_cn, marker);
         generateQmlInheritedBy(qml_cn, marker);
         generateQmlInstantiates(qml_cn, marker);
+
+        QString allQmlMembersLink = generateAllQmlMembersFile(qml_cn, marker);
+        if (!allQmlMembersLink.isEmpty()) {
+            out() << "<li><a href=\"" << allQmlMembersLink << "\">"
+                  << "List of all members, including inherited members</a></li>\n";
+        }
+
         s = sections.begin();
         while (s != sections.end()) {
             out() << "<a name=\"" << registerRef((*s).name.toLower())
@@ -1578,7 +1601,7 @@
         generateExtractionMark(fake, EndMark);
         //out() << "<hr />\n";
 
-        sections = marker->qmlSections(qml_cn,CodeMarker::Detailed);
+        sections = marker->qmlSections(qml_cn,CodeMarker::Detailed,0);
         s = sections.begin();
         while (s != sections.end()) {
             out() << "<h2>" << protectEnc((*s).name) << "</h2>\n";
@@ -1615,7 +1638,7 @@
     }
     else {
         generateExtractionMark(fake, DetailedDescriptionMark);
-        out() << "<div class=\"descr\">\n"; // QTBUG-9504
+        out() << "<div class=\"descr\"> <a name=\"" << registerRef("details") << "\"></a>\n"; // QTBUG-9504
     }
 
     generateBody(fake, marker);
@@ -1701,7 +1724,7 @@
             out() << "</li>\n";
         }
         if (!cn->name().isEmpty())
-            out() << "              <li>" << cn->name() << "</li>\n";
+            out() << "              <li>" << protectEnc(cn->name()) << "</li>\n";
     }
     else if (node->type() == Node::Fake) {
         const FakeNode* fn = static_cast<const FakeNode*>(node);
@@ -1709,52 +1732,50 @@
             out() << "              <li><a href=\"modules.html\">Modules</a></li>";
             QString name =  node->name();
             if (!name.isEmpty())
-                out() << "              <li>" << name << "</li>\n";
+                out() << "              <li>" << protectEnc(name) << "</li>\n";
         }
         else if (node->subType() == Node::Group) {
             if (fn->name() == QString("modules"))
                 out() << "              <li>Modules</li>";
             else {
-                out() << "              <li>" << title << "</li>";
+                out() << "              <li>" << protectEnc(title) << "</li>";
             }
         }
         else if (node->subType() == Node::Page) {
             if (fn->name() == QString("qdeclarativeexamples.html")) {
                 out() << "              <li><a href=\"all-examples.html\">Examples</a></li>";
-                out() << "              <li>QML Examples & Demos</li>";
+                out() << "              <li>QML Examples &amp; Demos</li>";
             }
             else if (fn->name().startsWith("examples-")) {
                 out() << "              <li><a href=\"all-examples.html\">Examples</a></li>";
-                out() << "              <li>" << title << "</li>";
+                out() << "              <li>" << protectEnc(title) << "</li>";
             }
             else if (fn->name() == QString("namespaces.html")) {
                 out() << "              <li>Namespaces</li>";
             }
             else {
-                out() << "              <li>" << title << "</li>";
+                out() << "              <li>" << protectEnc(title) << "</li>";
             }
         }
         else if (node->subType() == Node::QmlClass) {
             out() << "              <li><a href=\"qdeclarativeelements.html\">QML Elements</a></li>";
-            out() << "              <li>" << title << "</li>";
+            out() << "              <li>" << protectEnc(title) << "</li>";
         }
         else if (node->subType() == Node::Example) {
             out() << "              <li><a href=\"all-examples.html\">Examples</a></li>";
             QStringList sl = fn->name().split('/');
             if (sl.contains("declarative"))
-                out() << "              <li><a href=\"qdeclarativeexamples.html\">QML Examples & Demos</a></li>";
+                out() << "              <li><a href=\"qdeclarativeexamples.html\">QML Examples &amp; Demos</a></li>";
             else {
-                QString name = "examples-" + sl.at(0) + ".html";
+                QString name = protectEnc("examples-" + sl.at(0) + ".html"); // this generates an empty link
                 QString t = CodeParser::titleFromName(name);
-                out() << "              <li><a href=\"" << name << "\">"
-                      << t << "</a></li>";
             }
-            out() << "              <li>" << title << "</li>";
+            out() << "              <li>" << protectEnc(title) << "</li>";
         }
     }
     else if (node->type() == Node::Namespace) {
         out() << "              <li><a href=\"namespaces.html\">Namespaces</a></li>";
-        out() << "              <li>" << title << "</li>";
+        out() << "              <li>" << protectEnc(title) << "</li>";
     }
 }
 
@@ -1781,64 +1802,133 @@
         else
             shortVersion = "Qt " + shortVersion + ": ";
     }
-	// Generating page title
+
+    // Generating page title
     out() << "  <title>" << shortVersion << protectEnc(title) << "</title>\n";
-	// Adding style sheet
-	out() << "  <link rel=\"stylesheet\" type=\"text/css\" href=\"style/style.css\" />";
-	// Adding jquery and functions - providing online tools and search features
-	out() << "  <script src=\"scripts/jquery.js\" type=\"text/javascript\"></script>\n";
-	out() << "  <script src=\"scripts/functions.js\" type=\"text/javascript\"></script>\n";
-	// Adding style and js for small windows
-	out() << "  <script src=\"./scripts/superfish.js\" type=\"text/javascript\"></script>\n";
-	out() << "  <link rel=\"stylesheet\" type=\"text/css\" href=\"style/superfish.css\" />";
-	out() << "  <script src=\"./scripts/narrow.js\" type=\"text/javascript\"></script>\n";
-	out() << "  <link rel=\"stylesheet\" type=\"text/css\" href=\"style/narrow.css\" />";
+    // Adding style sheet
+    out() << "  <link rel=\"stylesheet\" type=\"text/css\" href=\"style/style.css\" />\n";
+    // Adding jquery and functions - providing online tools and search features
+    out() << "  <script src=\"scripts/jquery.js\" type=\"text/javascript\"></script>\n";
+    out() << "  <script src=\"scripts/functions.js\" type=\"text/javascript\"></script>\n";
+
 	
-	// Adding syntax highlighter 	// future release
+    // Adding syntax highlighter 	// future release
 	
-	// Setting assistant configuration
-    if (offlineDocs)
-	{
-		out() << "  <link rel=\"stylesheet\" type=\"text/css\" href=\"style/style.css\" />"; // Only for Qt Creator
-		out() << "</head>\n";
-		out() << "<body class=\"offline \">\n"; // offline for  Assistant
-	}	
-    if (creatorDocs)
-	{
-		out() << "  <link rel=\"stylesheet\" type=\"text/css\" href=\"style/style.css\" />"; // Only for Qt Creator
-		out() << "</head>\n";
-		out() << "<body class=\"offline narrow creator\">\n"; // offline for Creator
-	}	
-	// Setting online doc configuration
-    else
-		{
-		// Browser spec styles
-		out() << "  <!--[if IE]>\n";
-		out() << "<meta name=\"MSSmartTagsPreventParsing\" content=\"true\">\n";
-		out() << "<meta http-equiv=\"imagetoolbar\" content=\"no\">\n";
-		out() << "<![endif]-->\n";
-		out() << "<!--[if lt IE 7]>\n";
-		out() << "<link rel=\"stylesheet\" type=\"text/css\" href=\"style/style_ie6.css\">\n";
-		out() << "<![endif]-->\n";
-		out() << "<!--[if IE 7]>\n";
-		out() << "<link rel=\"stylesheet\" type=\"text/css\" href=\"style/style_ie7.css\">\n";
-		out() << "<![endif]-->\n";
-		out() << "<!--[if IE 8]>\n";
-		out() << "<link rel=\"stylesheet\" type=\"text/css\" href=\"style/style_ie8.css\">\n";
-		out() << "<![endif]-->\n";
+    // Setting some additional style sheet related details depending on configuration (e.g. Online/Creator)
+
+    switch (application) {
+    case Online:
+    // Adding style and js for small windows
+    out() << "  <script src=\"./scripts/superfish.js\" type=\"text/javascript\"></script>\n";
+    out() << "  <link rel=\"stylesheet\" type=\"text/css\" href=\"style/superfish.css\" />";
+    out() << "  <script src=\"./scripts/narrow.js\" type=\"text/javascript\"></script>\n";
+    out() << "  <link rel=\"stylesheet\" type=\"text/css\" href=\"style/narrow.css\" />\n";	
+        // Browser spec styles
+	out() << "  <!--[if IE]>\n";
+	out() << "<meta name=\"MSSmartTagsPreventParsing\" content=\"true\">\n";
+	out() << "<meta http-equiv=\"imagetoolbar\" content=\"no\">\n";
+	out() << "<![endif]-->\n";
+	out() << "<!--[if lt IE 7]>\n";
+	out() << "<link rel=\"stylesheet\" type=\"text/css\" href=\"style/style_ie6.css\">\n";
+	out() << "<![endif]-->\n";
+	out() << "<!--[if IE 7]>\n";
+	out() << "<link rel=\"stylesheet\" type=\"text/css\" href=\"style/style_ie7.css\">\n";
+	out() << "<![endif]-->\n";
+	out() << "<!--[if IE 8]>\n";
+	out() << "<link rel=\"stylesheet\" type=\"text/css\" href=\"style/style_ie8.css\">\n";
+	out() << "<![endif]-->\n";
 		
-		out() << "</head>\n";
-		// CheckEmptyAndLoadList activating search
-		out() << "<body class=\"\" onload=\"CheckEmptyAndLoadList();\">\n";
-		}
+	out() << "</head>\n";
+	// CheckEmptyAndLoadList activating search
+	out() << "<body class=\"\" onload=\"CheckEmptyAndLoadList();\">\n";
+        break;
+    case Creator:
+	out() << "</head>\n";
+	out() << "<body class=\"offline narrow creator\">\n"; // offline narrow
+        break;
+    default:
+	out() << "</head>\n";
+	out() << "<body>\n";
+        break;
+    }
 
 #ifdef GENERATE_MAC_REFS    
     if (mainPage)
         generateMacRef(node, marker);
-#endif    
-    out() << QString(postHeader).replace("\\" + COMMAND_VERSION, myTree->version());
-    generateBreadCrumbs(title,node,marker);
-    out() << QString(postPostHeader).replace("\\" + COMMAND_VERSION, myTree->version());
+#endif   
+ 
+    switch (application) {
+    case Online:
+        out() << QString(postHeader).replace("\\" + COMMAND_VERSION, myTree->version());
+        generateBreadCrumbs(title,node,marker);
+        out() << QString(postPostHeader).replace("\\" + COMMAND_VERSION, myTree->version());
+        break;
+    case Creator:
+        out() << QString(creatorPostHeader).replace("\\" + COMMAND_VERSION, myTree->version());
+        generateBreadCrumbs(title,node,marker);
+        out() << QString(creatorPostPostHeader).replace("\\" + COMMAND_VERSION, myTree->version());	
+        break;
+    default: // default -- not used except if one forgets to set any of the above settings to true
+        out() << QString(creatorPostHeader).replace("\\" + COMMAND_VERSION, myTree->version());
+        generateBreadCrumbs(title,node,marker);
+        out() << QString(creatorPostPostHeader).replace("\\" + COMMAND_VERSION, myTree->version());
+        break;
+    }
+
+        navigationLinks.clear();
+
+    if (node && !node->links().empty()) {
+        QPair<QString,QString> linkPair;
+        QPair<QString,QString> anchorPair;
+        const Node *linkNode;
+
+        if (node->links().contains(Node::PreviousLink)) {
+            linkPair = node->links()[Node::PreviousLink];
+            linkNode = findNodeForTarget(linkPair.first, node, marker);
+            if (!linkNode || linkNode == node)
+                anchorPair = linkPair;
+            else
+                anchorPair = anchorForNode(linkNode);
+
+            out() << "  <link rel=\"prev\" href=\""
+                  << anchorPair.first << "\" />\n";
+
+            navigationLinks += "[Previous: <a href=\"" + anchorPair.first + "\">";
+            if (linkPair.first == linkPair.second && !anchorPair.second.isEmpty())
+                navigationLinks += protect(anchorPair.second);
+            else
+                navigationLinks += protect(linkPair.second);
+            navigationLinks += "</a>]\n";
+        }
+        if (node->links().contains(Node::NextLink)) {
+            linkPair = node->links()[Node::NextLink];
+            linkNode = findNodeForTarget(linkPair.first, node, marker);
+            if (!linkNode || linkNode == node)
+                anchorPair = linkPair;
+            else
+                anchorPair = anchorForNode(linkNode);
+
+            out() << "  <link rel=\"next\" href=\""
+                  << anchorPair.first << "\" />\n";
+
+            navigationLinks += "[Next: <a href=\"" + anchorPair.first + "\">";
+            if (linkPair.first == linkPair.second && !anchorPair.second.isEmpty())
+                navigationLinks += protect(anchorPair.second);
+            else
+                navigationLinks += protect(linkPair.second);
+            navigationLinks += "</a>]\n";
+        }
+        if (node->links().contains(Node::StartLink)) {
+            linkPair = node->links()[Node::StartLink];
+            linkNode = findNodeForTarget(linkPair.first, node, marker);
+            if (!linkNode || linkNode == node)
+                anchorPair = linkPair;
+            else
+                anchorPair = anchorForNode(linkNode);
+            out() << "  <link rel=\"start\" href=\""
+                  << anchorPair.first << "\" />\n";
+        }
+    }
 
 #if 0 // Removed for new doc format. MWS
     if (node && !node->links().empty())
@@ -1872,30 +1962,30 @@
 
     out() << QString(footer).replace("\\" + COMMAND_VERSION, myTree->version())
           << QString(address).replace("\\" + COMMAND_VERSION, myTree->version());
-	
-	    if (offlineDocs)
-		{
-          out() << "</body>\n";
-		}
-	    if (creatorDocs)
-		{
-          out() << "</body>\n";
-		}
-		else
-		{
-			out() << "  <script src=\"scripts/functions.js\" type=\"text/javascript\"></script>\n";
-			out() << "  <!-- <script type=\"text/javascript\">\n";
-			out() << "  var _gaq = _gaq || [];\n";
-			out() << "  _gaq.push(['_setAccount', 'UA-4457116-5']);\n";
-			out() << "  _gaq.push(['_trackPageview']);\n";
-			out() << "  (function() {\n";
-			out() << "  var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;\n";
-			out() << "  ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';\n";
-			out() << "  var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);\n";
-			out() << "  })();\n";
-			out() << "  </script> -->\n";
-			out() << "</body>\n";
-		}
+
+    switch (application) {
+    case Online:
+        out() << "  <script src=\"scripts/functions.js\" type=\"text/javascript\"></script>\n";
+        out() << "  <!-- <script type=\"text/javascript\">\n";
+        out() << "  var _gaq = _gaq || [];\n";
+        out() << "  _gaq.push(['_setAccount', 'UA-4457116-5']);\n";
+        out() << "  _gaq.push(['_trackPageview']);\n";
+        out() << "  (function() {\n";
+        out() << "  var ga = document.createElement('script'); ";
+        out() << "ga.type = 'text/javascript'; ga.async = true;\n";
+        out() << "  ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + ";
+        out() << "'.google-analytics.com/ga.js';\n";
+        out() << "  var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);\n";
+        out() << "  })();\n";
+        out() << "  </script> -->\n";
+        out() << "</body>\n";
+	break;
+    case Creator:
+        out() << "</body>\n";
+	break;
+    default:
+        out() << "</body>\n";
+    }
           out() <<   "</html>\n";
 }
 
@@ -1907,11 +1997,14 @@
         generateExtractionMark(node, BriefMark);
         out() << "<p>";
         generateText(brief, node, marker);
+
         if (!relative || node == relative)
             out() << " <a href=\"#";
         else
             out() << " <a href=\"" << linkForNode(node, relative) << "#";
         out() << registerRef("details") << "\">More...</a></p>\n";
+
+
         generateExtractionMark(node, EndMark);
     }
 }
@@ -1928,7 +2021,7 @@
 }
 
 /*!
-  Generates a table of contents begining at \a node.
+  Generates a table of contents beginning at \a node.
  */
 void HtmlGenerator::generateTableOfContents(const Node *node,
                                             CodeMarker *marker,
@@ -2014,7 +2107,7 @@
 
 /*!
   Revised for the new doc format.
-  Generates a table of contents begining at \a node.
+  Generates a table of contents beginning at \a node.
  */
 void HtmlGenerator::generateTableOfContents(const Node *node,
                                             CodeMarker *marker,
@@ -2192,6 +2285,38 @@
     return fileName;
 }
 
+/*!
+  This function creates an html page on which are listed all
+  the members of QML class \a qml_cn, including the inherited
+  members. The \a marker is used for formatting stuff.
+ */
+QString HtmlGenerator::generateAllQmlMembersFile(const QmlClassNode* qml_cn,
+                                                 CodeMarker* marker)
+{
+    QList<Section> sections;
+    QList<Section>::ConstIterator s;
+
+    sections = marker->qmlSections(qml_cn,CodeMarker::SeparateList,myTree);
+    if (sections.isEmpty())
+        return QString();
+
+    QString fileName = fileBase(qml_cn) + "-members." + fileExtension(qml_cn);
+    beginSubPage(qml_cn->location(), fileName);
+    QString title = "List of All Members for " + qml_cn->name();
+    generateHeader(title, qml_cn, marker);
+    generateTitle(title, Text(), SmallSubTitle, qml_cn, marker);
+    out() << "<p>This is the complete list of members for ";
+    generateFullName(qml_cn, 0, marker);
+    out() << ", including inherited members.</p>\n";
+
+    Section section = sections.first();
+    generateSectionList(section, 0, marker, CodeMarker::SeparateList);
+
+    generateFooter();
+    endSubPage();
+    return fileName;
+}
+
 QString HtmlGenerator::generateLowStatusMemberFile(const InnerNode *inner,
                                                    CodeMarker *marker,
                                                    CodeMarker::Status status)
@@ -3052,7 +3177,14 @@
             if (parseArg(src, typeTag, &i, srcSize, &arg, &par1)) {
                 par1 = QStringRef();
                 const Node* n = marker->resolveTarget(arg.toString(), myTree, relative, self);
-                addLink(linkForNode(n,relative), arg, &html);
+                if (n && n->subType() == Node::QmlBasicType) {
+                    if (relative && relative->subType() == Node::QmlClass)
+                        addLink(linkForNode(n,relative), arg, &html);
+                    else 
+                        html += arg.toString();
+                }
+                else
+                    addLink(linkForNode(n,relative), arg, &html);
                 handled = true;
             }
             else if (parseArg(src, headerTag, &i, srcSize, &arg, &par1)) {
@@ -3414,7 +3546,7 @@
         return QString();
     if (node->access() == Node::Private)
         return QString();
-
+ 
     fn = fileName(node);
 /*    if (!node->url().isEmpty())
         return fn;*/
@@ -3587,6 +3719,12 @@
                 if (!serviceName.isEmpty())
                     serviceClasses.insert(serviceName, *c);
             }
+            else if ((*c)->type() == Node::Fake &&
+                     (*c)->subType() == Node::QmlClass &&
+                     !(*c)->doc().isEmpty()) {
+                QString qmlClassName = (*c)->name();
+                qmlClasses.insert(qmlClassName,*c);
+            }
             else if ((*c)->isInnerNode()) {
                 findAllClasses(static_cast<InnerNode *>(*c));
             }
@@ -4292,57 +4430,103 @@
         return true;
     if (node->access() == Node::Private)
         return false;
-    if (!node->isInnerNode())
-        return false;
-
+
+    QString guid = QUuid::createUuid().toString();
+    QString url = PageGenerator::fileName(node);
     QString title;
     QString rawTitle;
     QString fullTitle;
-    const InnerNode* inner = static_cast<const InnerNode*>(node);
-        
-    writer.writeStartElement("page");
+    QStringList pageWords;
     QXmlStreamAttributes attributes;
-    QString t;
-    t.setNum(id++);
-    switch (node->type()) {
-    case Node::Fake:
-        {
-            const FakeNode* fake = static_cast<const FakeNode*>(node);
-            title = fake->fullTitle();
-            break;
-        }
-    case Node::Class:
-        {
-            title = node->name() + " Class Reference";
+
+    writer.writeStartElement("page");
+
+    if (node->isInnerNode()) {
+        const InnerNode* inner = static_cast<const InnerNode*>(node);
+        if (!inner->pageKeywords().isEmpty())
+            pageWords << inner->pageKeywords();
+
+        switch (node->type()) {
+        case Node::Fake:
+            {
+                const FakeNode* fake = static_cast<const FakeNode*>(node);
+                title = fake->fullTitle();
+                pageWords << title;
+                break;
+            }
+        case Node::Class:
+            {
+                title = node->name() + " Class Reference";
+                pageWords << node->name() << "class" << "reference";
+                break;
+            }
+        case Node::Namespace:
+            {
+                rawTitle = marker->plainName(inner);
+                fullTitle = marker->plainFullName(inner);
+                title = rawTitle + " Namespace Reference";
+                pageWords << rawTitle << "namespace" << "reference";
+                break;
+            }
+        default:
+            title = node->name();
+            pageWords << title;
             break;
         }
-    case Node::Namespace:
-        {
-            rawTitle = marker->plainName(inner);
-            fullTitle = marker->plainFullName(inner);
-            title = rawTitle + " Namespace Reference";
+    }
+    else {
+        switch (node->type()) {
+        case Node::Enum:
+            {
+                title = node->name() + " Enum Reference";
+                pageWords << node->name() << "enum" << "type";
+                url += "#" + node->name() + "-enum";
+                break;
+            }
+        case Node::Function:
+            {
+                title = node->name() + " Function Reference";
+                pageWords << node->name() << "function";
+                url += "#" + node->name();
+                break;
+            }
+        case Node::Property:
+            {
+                title = node->name() + " Property Reference";
+                pageWords << node->name() << "property";
+                url += "#" + node->name() + "-prop";
+                break;
+            }
+        case Node::Typedef:
+            {
+                title = node->name() + " Type Reference";
+                pageWords << node->name() << "typedef" << "type";
+                url += "#" + node->name();
+                break;
+            }
+        default:
+            title = node->name();
+            pageWords << title;
             break;
         }
-    default:
-        title = node->name();
-        break;
-    }
-    writer.writeAttribute("id",t);
-    writer.writeStartElement("pageWords");
-    writer.writeCharacters(title);
-    if (!inner->pageKeywords().isEmpty()) {
-        const QStringList& w = inner->pageKeywords();
-        for (int i = 0; i < w.size(); ++i) {
-            writer.writeCharacters(" ");
-            writer.writeCharacters(w.at(i).toLocal8Bit().constData());
+
+        Node* parent = node->parent();
+        if (parent && ((parent->type() == Node::Class) ||
+                       (parent->type() == Node::Namespace))) {
+            pageWords << parent->name();
         }
     }
+
+    writer.writeAttribute("id",guid);
+    writer.writeStartElement("pageWords");
+    writer.writeCharacters(pageWords.join(" "));
+
     writer.writeEndElement();
     writer.writeStartElement("pageTitle");
     writer.writeCharacters(title);
     writer.writeEndElement();
     writer.writeStartElement("pageUrl");
-    writer.writeCharacters(PageGenerator::fileName(node));
+    writer.writeCharacters(url);
     writer.writeEndElement();
     writer.writeStartElement("pageType");
     switch (node->pageType()) {
@@ -4360,6 +4544,35 @@
     }
     writer.writeEndElement();
     writer.writeEndElement();
+
+    if (node->type() == Node::Fake && node->doc().hasTableOfContents()) {
+        QList<Atom*> toc = node->doc().tableOfContents();
+        if (!toc.isEmpty()) {
+            for (int i = 0; i < toc.size(); ++i) {
+                Text headingText = Text::sectionHeading(toc.at(i));
+                QString s = headingText.toString();
+                writer.writeStartElement("page");
+                guid = QUuid::createUuid().toString();
+                QString internalUrl = url + "#" + Doc::canonicalTitle(s);
+                writer.writeAttribute("id",guid);
+                writer.writeStartElement("pageWords");
+                writer.writeCharacters(pageWords.join(" "));
+                writer.writeCharacters(" ");
+                writer.writeCharacters(s);
+                writer.writeEndElement();
+                writer.writeStartElement("pageTitle");
+                writer.writeCharacters(s);
+                writer.writeEndElement();
+                writer.writeStartElement("pageUrl");
+                writer.writeCharacters(internalUrl);
+                writer.writeEndElement();
+                writer.writeStartElement("pageType");
+                writer.writeCharacters("Article");
+                writer.writeEndElement();
+                writer.writeEndElement();
+            }
+        }
+    }
     return true;
 }
 
--- a/tools/qdoc3/htmlgenerator.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/tools/qdoc3/htmlgenerator.h	Mon Oct 04 01:19:32 2010 +0300
@@ -95,6 +95,10 @@
         LastSinceType
     };
 
+    enum Application {
+        Online,
+        Creator};
+
  public:
     HtmlGenerator();
     ~HtmlGenerator();
@@ -164,7 +168,10 @@
     void generateTableOfContents(const Node *node, 
                                  CodeMarker *marker, 
                                  QList<Section>* sections = 0);
-    QString generateListOfAllMemberFile(const InnerNode *inner, CodeMarker *marker);
+    QString generateListOfAllMemberFile(const InnerNode *inner, 
+                                        CodeMarker *marker);
+    QString generateAllQmlMembersFile(const QmlClassNode* qml_cn, 
+                                      CodeMarker* marker);
     QString generateLowStatusMemberFile(const InnerNode *inner, 
                                         CodeMarker *marker,
                                         CodeMarker::Status status);
@@ -294,14 +301,15 @@
     bool inTableHeader;
     int numTableRows;
     bool threeColumnEnumValueTable;
-    bool offlineDocs;
-    bool creatorDocs;
+    Application application;
     QString link;
     QStringList sectionNumber;
     QRegExp funcLeftParen;
     QString style;
     QString postHeader;
     QString postPostHeader;
+    QString creatorPostHeader;
+    QString creatorPostPostHeader;
     QString footer;
     QString address;
     bool pleaseGenerateMacRef;
@@ -322,6 +330,7 @@
     NodeMap obsoleteClasses;
     NodeMap namespaceIndex;
     NodeMap serviceClasses;
+    NodeMap qmlClasses;
     QMap<QString, NodeMap > funcIndex;
     QMap<Text, const Node *> legaleseTexts;
     NewSinceMaps newSinceMaps;
@@ -339,6 +348,8 @@
 #define HTMLGENERATOR_GENERATEMACREFS   "generatemacrefs" // ### document me
 #define HTMLGENERATOR_POSTHEADER        "postheader"
 #define HTMLGENERATOR_POSTPOSTHEADER    "postpostheader"
+#define HTMLGENERATOR_CREATORPOSTHEADER        "postheader"
+#define HTMLGENERATOR_CREATORPOSTPOSTHEADER    "postpostheader"
 #define HTMLGENERATOR_STYLE             "style"
 #define HTMLGENERATOR_STYLESHEETS       "stylesheets"
 #define HTMLGENERATOR_CUSTOMHEADELEMENTS "customheadelements"
--- a/tools/qdoc3/main.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tools/qdoc3/main.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -105,6 +105,7 @@
 static bool obsoleteLinks = false;
 static QStringList defines;
 static QHash<QString, Tree *> trees;
+static QString appArg; // application
 
 /*!
   Find the Tree for language \a lang and return a pointer to it.
@@ -147,7 +148,7 @@
  */
 static void printVersion()
 {
-    QString s = QString(tr("qdoc version ")) + QString(QT_VERSION_STR);
+    QString s = tr("qdoc version %1").arg(QT_VERSION_STR);
     Location::information(s);
 }
 
@@ -192,6 +193,24 @@
     config.load(fileName);
 
     /*
+      Set the application to which qdoc will create the output.
+      The two applications are:
+
+      creator: additional formatting for viewing in
+      the Creator application.
+
+      online: full-featured online version with search and
+      links to Qt topics
+    */
+    if (appArg.isEmpty()) {
+        qDebug() << "Warning: Application flag not specified on"
+                 << "command line. Options are -creator (default)"
+                 << "and -online.";
+        appArg = "creator";
+    }
+    config.setStringList(CONFIG_APPLICATION, QStringList(appArg));
+
+    /*
       Add the defines to the configuration variables.
      */
     QStringList defs = defines + config.getStringList(CONFIG_DEFINES);
@@ -462,12 +481,16 @@
         else if (opt == "-obsoletelinks") {
             obsoleteLinks = true;
         }
+	else if (opt == "-creator")
+		appArg = "creator";
+	else if (opt == "-online")
+		appArg = "online";
         else {
 	    qdocFiles.append(opt);
 	}
     }
 
-    if (qdocFiles.isEmpty()) {
+	if (qdocFiles.isEmpty()) {
         printHelp();
         return EXIT_FAILURE;
     }
@@ -475,8 +498,10 @@
     /*
       Main loop.
      */
-    foreach (QString qf, qdocFiles)
+    foreach (QString qf, qdocFiles) {
+        //qDebug() << "PROCESSING:" << qf;
 	processQdocconfFile(qf);
+    }
 
     qDeleteAll(trees);
     return EXIT_SUCCESS;
--- a/tools/qdoc3/node.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tools/qdoc3/node.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -652,8 +652,14 @@
 InnerNode::InnerNode(Type type, InnerNode *parent, const QString& name)
     : Node(type, parent, name)
 {
-    if (type == Class)
+    switch (type) {
+    case Class:
+    case Namespace:
         setPageType(ApiPage);
+        break;
+    default:
+        break;
+    }
 }
 
 /*!
@@ -845,6 +851,19 @@
 LeafNode::LeafNode(Type type, InnerNode *parent, const QString& name)
     : Node(type, parent, name)
 {
+    switch (type) {
+    case Enum:
+    case Function:
+    case Typedef:
+    case Variable:
+    case QmlProperty:
+    case QmlSignal:
+    case QmlMethod:
+        setPageType(ApiPage);
+        break;
+    default:
+        break;
+    }
 }
 
 /*!
@@ -1600,7 +1619,7 @@
       des(Trool_Default),
       att(attached)
 {
-    // nothing.
+    setPageType(ApiPage);
 }
 
 /*!
--- a/tools/qdoc3/qdoc3.pro	Fri Sep 17 08:34:18 2010 +0300
+++ b/tools/qdoc3/qdoc3.pro	Mon Oct 04 01:19:32 2010 +0300
@@ -6,6 +6,7 @@
 
 qdoc_bootstrapped {
     include(../../src/tools/bootstrap/bootstrap.pri)
+    SOURCES += ../../src/corelib/plugin/quuid.cpp
     DEFINES -= QT_NO_CAST_FROM_ASCII
     DEFINES += QT_NO_TRANSLATION
 } else {
--- a/tools/qdoc3/test/assistant.qdocconf	Fri Sep 17 08:34:18 2010 +0300
+++ b/tools/qdoc3/test/assistant.qdocconf	Mon Oct 04 01:19:32 2010 +0300
@@ -16,39 +16,39 @@
 qhp.Assistant.namespace           = com.trolltech.assistant.470
 qhp.Assistant.virtualFolder       = qdoc
 qhp.Assistant.indexTitle          = Qt Assistant Manual
-qhp.Assistant.extraFiles          = 									images/bg_l.png \
-           	    images/bg_l_blank.png \
-		     images/bg_ll_blank.png \
-			     images/bg_ul_blank.png \
-			     images/header_bg.png \
+qhp.Assistant.extraFiles          = images/bg_l.png \
+				    images/bg_l_blank.png \
+		     		    images/bg_ll_blank.png \
+			     	    images/bg_ul_blank.png \
+			     	    images/header_bg.png \
                              	    images/bg_r.png \
-									images/box_bg.png \
-									images/breadcrumb.png \
-									images/bullet_gt.png \
+				    images/box_bg.png \
+				    images/breadcrumb.png \
+				    images/bullet_gt.png \
                              	    images/bullet_dn.png \
-									images/bullet_sq.png \
+				    images/bullet_sq.png \
                              	    images/bullet_up.png \
-									images/arrow_down.png \
+				    images/arrow_down.png \
                              	    images/feedbackground.png \
                              	    images/horBar.png \
-									images/page.png \
-									images/page_bg.png \
-									images/sprites-combined.png \
-									images/spinner.gif \
+				    images/page.png \
+				    images/page_bg.png \
+				    images/sprites-combined.png \
+				    images/spinner.gif \
                              	    images/stylesheet-coffee-plastique.png \
                              	    images/taskmenuextension-example.png \
-                             	   images/coloreditorfactoryimage.png \
-                             	   images/dynamiclayouts-example.png \
-			     scripts/functions.js \
-			     scripts/jquery.js \
-			     scripts/narrow.js \
-			     scripts/superfish.js \
-			     style/narrow.css \
-			     style/superfish.css \
-			     style/style_ie6.css \
-			     style/style_ie7.css \
-			     style/style_ie8.css \
-			     style/style.css
+                             	    images/coloreditorfactoryimage.png \
+                             	    images/dynamiclayouts-example.png \
+			     	    scripts/functions.js \
+			     	    scripts/jquery.js \
+			     	    scripts/narrow.js \
+			     	    scripts/superfish.js \
+			     	    style/narrow.css \
+			     	    style/superfish.css \
+			     	    style/style_ie6.css \
+			     	    style/style_ie7.css \
+			     	    style/style_ie8.css \
+			     	    style/style.css
 
 qhp.Assistant.filterAttributes    = qt 4.7.0 tools assistant
 qhp.Assistant.customFilters.Assistant.name = Qt Assistant Manual
--- a/tools/qdoc3/test/qdeclarative.qdocconf	Fri Sep 17 08:34:18 2010 +0300
+++ b/tools/qdoc3/test/qdeclarative.qdocconf	Mon Oct 04 01:19:32 2010 +0300
@@ -28,32 +28,32 @@
 # Files not referenced in any qdoc file
 # See also extraimages.HTML
 qhp.Qml.extraFiles            = images/bg_l.png \
-                             	    images/bg_l_blank.png \
-                             	    images/bg_r.png \
-									images/box_bg.png \
-									images/breadcrumb.png \
-									images/bullet_gt.png \
-                             	    images/bullet_dn.png \
-									images/bullet_sq.png \
-                             	    images/bullet_up.png \
-                             	    images/feedbackground.png \
-                             	    images/horBar.png \
-									images/page.png \
-									images/page_bg.png \
-									images/sprites-combined.png \
-									images/arrow-down.png \
-									images/spinner.png \
-                             	    images/stylesheet-coffee-plastique.png \
-                             	    images/taskmenuextension-example.png \
-                             	   images/coloreditorfactoryimage.png \
-                             	   images/dynamiclayouts-example.png \
-									scripts/functions.js \
-									scripts/jquery.js \
-									style/OfflineStyle.css \
-									style/style_ie6.css \
-									style/style_ie7.css \
-									style/style_ie8.css \
-                             	    style/style.css
+                             	images/bg_l_blank.png \
+				images/bg_r.png \
+				images/box_bg.png \
+				images/breadcrumb.png \
+				images/bullet_gt.png \
+                             	images/bullet_dn.png \
+				images/bullet_sq.png \
+                             	images/bullet_up.png \
+                             	images/feedbackground.png \
+                             	images/horBar.png \
+				images/page.png \
+				images/page_bg.png \
+				images/sprites-combined.png \
+				images/arrow-down.png \
+				images/spinner.png \
+                             	images/stylesheet-coffee-plastique.png \
+                             	images/taskmenuextension-example.png \
+                             	images/coloreditorfactoryimage.png \
+                             	images/dynamiclayouts-example.png \
+				scripts/functions.js \
+				scripts/jquery.js \
+				style/OfflineStyle.css \
+				style/style_ie6.css \
+				style/style_ie7.css \
+				style/style_ie8.css \
+                             	style/style.css
 
 qhp.Qml.filterAttributes    = qt 4.7.0 qtrefdoc
 qhp.Qml.customFilters.Qt.name = Qt 4.7.0
--- a/tools/qdoc3/test/qt-api-only.qdocconf	Fri Sep 17 08:34:18 2010 +0300
+++ b/tools/qdoc3/test/qt-api-only.qdocconf	Mon Oct 04 01:19:32 2010 +0300
@@ -27,10 +27,7 @@
 
 # Remove the QML documentation from the Qt-only documentation.
 
-excludedirs += $QT_SOURCE_TREE/src/declarative \
-               $QT_SOURCE_TREE/src/imports \
-               $QT_SOURCE_TREE/src/3rdparty/webkit/WebKit/qt/declarative \
-               $QT_SOURCE_TREE/doc/src/declarative
+excludedirs += $QT_SOURCE_TREE/src/imports
 
 outputdir         = $QT_BUILD_TREE/doc-build/html-qt
 tagfile           = $QT_BUILD_TREE/doc-build/html-qt/qt.tags
--- a/tools/qdoc3/test/qt-build-docs.qdocconf	Fri Sep 17 08:34:18 2010 +0300
+++ b/tools/qdoc3/test/qt-build-docs.qdocconf	Mon Oct 04 01:19:32 2010 +0300
@@ -18,6 +18,7 @@
 qhp.Qt.namespace           = com.trolltech.qt.470
 qhp.Qt.virtualFolder       = qdoc
 qhp.Qt.indexTitle          = Qt Reference Documentation
+qhp.Qt.indexRoot           =
 
 # Files not referenced in any qdoc file (last four are needed by qtdemo)
 # See also extraimages.HTML
--- a/tools/qdoc3/test/qt-cpp-ignore.qdocconf	Fri Sep 17 08:34:18 2010 +0300
+++ b/tools/qdoc3/test/qt-cpp-ignore.qdocconf	Mon Oct 04 01:19:32 2010 +0300
@@ -64,6 +64,7 @@
                           Q_XMLSTREAM_EXPORT \
                           Q_XMLPATTERNS_EXPORT \
                           QDBUS_EXPORT \
+                          Q_DBUS_EXPORT \
                           QT_BEGIN_NAMESPACE \
                           QT_BEGIN_INCLUDE_NAMESPACE \
                           QT_END_NAMESPACE \
--- a/tools/qdoc3/test/qt-defines.qdocconf	Fri Sep 17 08:34:18 2010 +0300
+++ b/tools/qdoc3/test/qt-defines.qdocconf	Mon Oct 04 01:19:32 2010 +0300
@@ -20,29 +20,29 @@
 # See also qhp.Qt.extraFiles
 extraimages.HTML        = qt-logo \
                           trolltech-logo \
-						 bg_l.png \
-						 bg_l_blank.png \
-						 bg_ll_blank.png \
-						 bg_ul_blank.png \
-						 header_bg.png \
-						 bg_r.png \
-						 box_bg.png \
-						 breadcrumb.png \
-						 bullet_gt.png \
-						 bullet_dn.png \
-						 bullet_sq.png \
-						 bullet_up.png \
-						 arrow_down.png \
-						 feedbackground.png \
-						 horBar.png \
-						 page.png \
-						 page_bg.png \
-						 sprites-combined.png \
-						 spinner.gif \
-						 stylesheet-coffee-plastique.png \
-						 taskmenuextension-example.png \
-						 coloreditorfactoryimage.png \
-						 dynamiclayouts-example.png \
+                          bg_l.png \
+                          bg_l_blank.png \
+                          bg_ll_blank.png \
+                          bg_ul_blank.png \
+                          header_bg.png \
+                          bg_r.png \
+                          box_bg.png \
+                          breadcrumb.png \
+                          bullet_gt.png \
+                          bullet_dn.png \
+                          bullet_sq.png \
+                          bullet_up.png \
+                          arrow_down.png \
+                          feedbackground.png \
+                          horBar.png \
+                          page.png \
+                          page_bg.png \
+                          sprites-combined.png \
+                          spinner.gif \
+                          stylesheet-coffee-plastique.png \
+                          taskmenuextension-example.png \
+                          coloreditorfactoryimage.png \
+                          dynamiclayouts-example.png
 
 # This stuff is used by the new doc format.
 scriptdirs              = $QT_SOURCE_TREE/doc/src/template/scripts
--- a/tools/qdoc3/test/qt-html-templates.qdocconf	Fri Sep 17 08:34:18 2010 +0300
+++ b/tools/qdoc3/test/qt-html-templates.qdocconf	Mon Oct 04 01:19:32 2010 +0300
@@ -3,13 +3,13 @@
 									style/style_ie7.css \
 									style/style_ie8.css \
 									style/style_ie6.css
-									
+
 HTML.postheader         = " <div class=\"header\" id=\"qtdocheader\">\n" \
 			  "    <div class=\"content\"> \n" \
 			  "    <div id=\"nav-logo\">\n" \
 			  "      <a href=\"index.html\">Home</a></div>\n" \
 			  "    <a href=\"index.html\" class=\"qtref\"><span>Qt Reference Documentation</span></a>\n" \
-			  "		<div id=\"narrowsearch\"><form onsubmit=\"return false;\" action=\"\" id=\"qtdocsearch\">\n" \
+			  "		<div id=\"narrowsearch\"><form onsubmit=\"return false;\" action=\"\" id=\"qtdocsearchTop\">\n" \
 			  "		<fieldset>\n" \
               "		<input type=\"text\" value=\"\" id=\"pageType2\" name=\"searchstring\"/>\n" \
 			  "		 </fieldset>\n" \
@@ -27,7 +27,7 @@
 			  "    <div id=\"shortCut\">\n" \
 			  "      <ul>\n" \
 			  "        <li class=\"shortCut-topleft-inactive\"><span><a href=\"index.html\">Qt 4.7</a></span></li>\n" \
-			  "        <li class=\"shortCut-topleft-active\"><a href=\"http://qt.nokia.com/doc/\">ALL VERSIONS" \
+			  "        <li class=\"shortCut-topleft-active\"><a href=\"http://doc.qt.nokia.com\">ALL VERSIONS" \
 			  "        </a></li>\n" \
 			  "      </ul>\n" \
 			  "     </div>\n" \
@@ -38,16 +38,18 @@
 			" 			  <li><a href=\"functions.html\">Function index</a></li> \n" \
 			"			   <li><a href=\"modules.html\">Modules</a></li> \n" \
 			"			   <li><a href=\"namespaces.html\">Namespaces</a></li> \n" \
-			"			   <li><a href=\"qtglobal.html\">Global stuff</a></li> \n" \
-			"			   <li><a href=\"qdeclarativeelements.html\">QML elements</a></li> \n" \
+			"			   <li><a href=\"qtglobal.html\">Global Declarations</a></li> \n" \
+			"			   <li><a href=\"licensing.html\">Licenses and Credits</a></li> \n" \
 			"			   </ul> \n" \
 			"		 </li> \n" \
 			"		 <li><a href=\"#\">Qt Topics</a> \n" \
 			"			 <ul id=\"topmenuTopic\"> \n" \
-			"			   <li><a href=\"qt-basic-concepts.html\">Basic Qt architecture</a></li> \n" \
-			"			   <li><a href=\"declarativeui.html\">Device UI's &amp; Qt Quick</a></li> \n" \
-			"			   <li><a href=\"qt-gui-concepts.html\">Desktop UI components</a></li> \n" \
+			"			   <li><a href=\"qt-basic-concepts.html\">Programming with Qt</a></li> \n" \
+			"			   <li><a href=\"qtquick.html\">Device UI's &amp; Qt Quick</a></li> \n" \
+			"			   <li><a href=\"qt-gui-concepts.html\">UI Design with Qt</a></li> \n" \
+			"			   <li><a href=\"developing-with-qt.html\">Cross-platform and Platform-specific</a></li> \n" \
 			"			   <li><a href=\"platform-specific.html\">Platform-specific info</a></li> \n" \
+			"			   <li><a href=\"technology-apis.html\">Qt and Key Technologies</a></li> \n" \
 			"			   <li><a href=\"best-practices.html\">How-To's and Best Practices</a></li> \n" \
 			"			 </ul> \n" \
 			"		</li> \n" \
@@ -86,7 +88,7 @@
 			  "              <li class=\"defaultLink\"><a href=\"functions.html\">Function index</a></li>\n" \
 			  "              <li class=\"defaultLink\"><a href=\"modules.html\">Modules</a></li>\n" \
 			  "              <li class=\"defaultLink\"><a href=\"namespaces.html\">Namespaces</a></li>\n" \
-			  "              <li class=\"defaultLink\"><a href=\"qtglobal.html\">Global stuff</a></li>\n" \
+			  "              <li class=\"defaultLink\"><a href=\"qtglobal.html\">Global Declarations</a></li>\n" \
 			  "              <li class=\"defaultLink\"><a href=\"qdeclarativeelements.html\">QML elements</a></li>\n" \
 			  "            </ul> \n" \
 			  "          </div>\n" \
@@ -96,10 +98,13 @@
 			  "            Qt Topics</h2>\n" \
 			  "          <div id=\"list002\" class=\"list\">\n" \
 			  "            <ul id=\"ul002\" >\n" \
-			  "              <li class=\"defaultLink\"><a href=\"qt-basic-concepts.html\">Basic Qt architecture</a></li>\n" \
-			  "              <li class=\"defaultLink\"><a href=\"declarativeui.html\">Device UI's &amp; Qt Quick</a></li>\n" \
-			  "              <li class=\"defaultLink\"><a href=\"qt-gui-concepts.html\">Desktop UI components</a></li>\n" \
-			  "              <li class=\"defaultLink\"><a href=\"platform-specific.html\">Platform-specific info</a></li>\n" \
+			  "			   <li><a href=\"qt-basic-concepts.html\">Programming with Qt</a></li> \n" \
+			  "			   <li><a href=\"qtquick.html\">Device UI's &amp; Qt Quick</a></li> \n" \
+			  "			   <li><a href=\"qt-gui-concepts.html\">UI Design with Qt</a></li> \n" \
+			  "			   <li><a href=\"developing-with-qt.html\">Cross-platform and Platform-specific</a></li> \n" \
+			  "			   <li><a href=\"platform-specific.html\">Platform-specific info</a></li> \n" \
+			  "			   <li><a href=\"technology-apis.html\">Qt and Key Technologies</a></li> \n" \
+			  "			   <li><a href=\"best-practices.html\">How-To's and Best Practices</a></li> \n" \
 			  "            </ul>  \n" \
 			  "          </div>\n" \
 			  "        </div>\n" \
@@ -146,6 +151,7 @@
 			  "      <span></span>\n" \
 			  "    </div>\n" \
 			  "  </div> \n" \
+			  "  </div> \n" \
 			  "  <div class=\"footer\">\n" \
 			  "    <p>\n" \
 			  "      <acronym title=\"Copyright\">&copy;</acronym> 2008-2010 Nokia Corporation and/or its\n" \
@@ -158,11 +164,12 @@
 			  "  <div id=\"feedbackBox\">\n" \
 			  "      <div id=\"feedcloseX\" class=\"feedclose t_button\">X</div>\n" \
 			  "    <form id=\"feedform\" action=\"http://doc.qt.nokia.com/docFeedbck/feedback.php\" method=\"get\">\n" \
-			  "      <p id=\"noteHead\">Thank you for giving your feedback. <div class=\"note\">Make sure it is related to this specific page. For more general bugs and \n" \
-			  "      requests, please use the <a href=\"http://bugreports.qt.nokia.com/secure/Dashboard.jspa\">Qt Bug Tracker</a>.</div></p>\n" \
+			  "      <p id=\"noteHead\">Thank you for giving your feedback.</p> <div class=\"note\"><p>Make sure it is related to this specific page. For more general bugs and \n" \
+			  "      requests, please use the <a href=\"http://bugreports.qt.nokia.com/secure/Dashboard.jspa\">Qt Bug Tracker</a>.</p></div>\n" \
 			  "      <p><textarea id=\"feedbox\" name=\"feedText\" rows=\"5\" cols=\"40\"></textarea></p>\n" \
 			  "      <p><input id=\"feedsubmit\" class=\"feedclose\" type=\"submit\" name=\"feedback\" /></p>\n" \
 			  "    </form>\n" \
 			  "  </div>\n" \
 			  "  <div id=\"blurpage\">\n" \
-			  "  </div>\n"
+			  "  <!--/div -->\n" \
+                          "  </div>\n"
--- a/tools/qdoc3/test/qt-html-templates_ja_JP.qdocconf	Fri Sep 17 08:34:18 2010 +0300
+++ b/tools/qdoc3/test/qt-html-templates_ja_JP.qdocconf	Mon Oct 04 01:19:32 2010 +0300
@@ -160,19 +160,9 @@
 			  "  <div id=\"feedbackBox\">\n" \
 			  "      <div id=\"feedcloseX\" class=\"feedclose t_button\">X</div>\n" \
 			  "    <form id=\"feedform\" action=\"http://doc.qt.nokia.com/docFeedbck/feedback.php\" method=\"get\">\n" \
-			  "      <p><textarea id=\"feedbox\" name=\"feedText\" rows=\"5\" cols=\"40\">Please submit you feedback...</textarea></p>\n" \
+			  "      <p><textarea id=\"feedbox\" name=\"feedText\" rows=\"5\" cols=\"40\">Please submit your feedback...</textarea></p>\n" \
 			  "      <p><input id=\"feedsubmit\" class=\"feedclose\" type=\"submit\" name=\"feedback\" /></p>\n" \
 			  "    </form>\n" \
 			  "  </div>\n" \
 			  "  <div id=\"blurpage\">\n" \
-			  "  </div>\n" \
-			  "<script type=\"text/javascript\">\n" \
-			  "  var _gaq = _gaq || [];\n" \
-			  "  _gaq.push([\'_setAccount\', \'UA-4457116-5\']);\n" \
-			  "  _gaq.push([\'_trackPageview\']);\n" \
-			  "  (function() {\n" \
-			  "    var ga = document.createElement(\'script\'); ga.type = \'text/javascript\'; ga.async = true;\n" \
-			  "    ga.src = (\'https:\' == document.location.protocol ? \'https://ssl\' : \'http://www\') + \'.google-analytics.com/ga.js\';\n" \
-			  "    var s = document.getElementsByTagName(\'script\')[0]; s.parentNode.insertBefore(ga, s);\n" \
-			  "  })();\n" \
-			  "</script>\n"
+			  "  </div>\n"
--- a/tools/qdoc3/test/qt-html-templates_zh_CN.qdocconf	Fri Sep 17 08:34:18 2010 +0300
+++ b/tools/qdoc3/test/qt-html-templates_zh_CN.qdocconf	Mon Oct 04 01:19:32 2010 +0300
@@ -1,25 +1,168 @@
-HTML.stylesheets        = classic.css
-HTML.postheader         = "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%\">\n" \
-                          "<tr>\n" \
-                          "<td align=\"left\" valign=\"top\" width=\"32\">" \
-                          "<a href=\"http://qt.nokia.com/\"><img src=\"images/qt-logo.png\" align=\"left\" border=\"0\" /></a>" \
-                          "</td>\n" \
-                          "<td width=\"1\">&nbsp;&nbsp;</td>" \
-                          "<td class=\"postheader\" valign=\"center\">" \
-                          "<a href=\"http://qt.nokia.com/doc/4.7/index.html\">" \
-                          "<font color=\"#004faf\">主页</font></a>&nbsp;&middot;" \
-                          " <a href=\"http://qt.nokia.com/doc/4.7/classes.html\">" \
-                          "<font color=\"#004faf\">所有类</font></a>&nbsp;&middot;" \
-                          " <a href=\"http://qt.nokia.com/doc/4.7/functions.html\">" \
-                          "<font color=\"#004faf\">所有函数</font></a>&nbsp;&middot;" \
-                          " <a href=\"http://qt.nokia.com/doc/4.7/overviews.html\">" \
-                          "<font color=\"#004faf\">简介</font></a>" \
-                          "</td>" \
-                          "</tr></table>"
+HTML.stylesheets        =  style/style.css \
+                           style/OfflineStyle.css \
+                           style/style_ie7.css \
+                           style/style_ie8.css \
+                           style/style_ie6.css
 
-HTML.footer             = "<p /><address><hr /><div align=\"center\">\n" \
-                          "<table width=\"100%\" cellspacing=\"0\" border=\"0\"><tr class=\"address\">\n" \
-                          "<td width=\"40%\" align=\"left\">版权所有 &copy; 2010 诺基亚公司和/或其子公司</td>\n" \
-                          "<td width=\"20%\" align=\"center\"><a href=\"trademarks.html\">商标</a></td>\n" \
-                          "<td width=\"40%\" align=\"right\"><div align=\"right\">Qt \\version</div></td>\n" \
-                          "</tr></table></div></address>"
+HTML.postheader = " <div class=\"header\" id=\"qtdocheader\">\n" \
+              "    <div class=\"content\"> \n" \
+              "    <div id=\"nav-logo\">\n" \
+              "      <a href=\"index.html\">Home</a></div>\n" \
+              "    <a href=\"index.html\" class=\"qtref\"><span>Qt Reference Documentation</span></a>\n" \
+              "     <div id=\"narrowsearch\"><form onsubmit=\"return false;\" action=\"\" id=\"qtdocsearch\">\n" \
+              "     <fieldset>\n" \
+              "     <input type=\"text\" value=\"\" id=\"pageType\" name=\"searchstring\">\n" \
+              "      </fieldset>\n" \
+              "     </form></div>\n" \
+              "    <div id=\"nav-topright\">\n" \
+              "      <ul>\n" \
+              "        <li class=\"nav-topright-home\"><a href=\"http://qt.nokia.com/\">Qt HOME</a></li>\n" \
+              "        <li class=\"nav-topright-dev\"><a href=\"http://qt.nokia.com/developer\">DEV</a></li>\n" \
+              "        <li class=\"nav-topright-labs\"><a href=\"http://labs.qt.nokia.com/blogs/\">LABS</a></li>\n" \
+              "        <li class=\"nav-topright-doc nav-topright-doc-active\"><a href=\"http://doc.qt.nokia.com/\">\n" \
+              "          DOC</a></li>\n" \
+              "        <li class=\"nav-topright-blog\"><a href=\"http://blog.qt.nokia.com/\">BLOG</a></li>\n" \
+              "        <li class=\"nav-topright-shop\"><a title=\"SHOP\" href=\"http://shop.qt.nokia.com\">SHOP</a></li>\n" \
+              "      </ul>\n" \
+              "    </div>\n" \
+              "    <div id=\"shortCut\">\n" \
+              "      <ul>\n" \
+              "        <li class=\"shortCut-topleft-inactive\"><span><a href=\"index.html\">Qt 4.7</a></span></li>\n" \
+              "        <li class=\"shortCut-topleft-active\"><a href=\"http://qt.nokia.com/doc/\">ALL VERSIONS" \
+              "        </a></li>\n" \
+              "      </ul>\n" \
+              "     </div>\n" \
+             " <ul class=\"sf-menu sf-js-enabled sf-shadow\" id=\"narrowmenu\"> \n" \
+            "        <li><a href=\"#\">API Lookup</a> \n" \
+            "            <ul id=\"topmenuLook\"> \n" \
+            "              <li><a href=\"classes.html\">所有类</a></li> \n" \
+            "             <li><a href=\"functions.html\">所有函数</a></li> \n" \
+            "              <li><a href=\"modules.html\">Modules</a></li> \n" \
+            "              <li><a href=\"namespaces.html\">Namespaces</a></li> \n" \
+            "              <li><a href=\"qtglobal.html\">Global stuff</a></li> \n" \
+            "              <li><a href=\"qdeclarativeelements.html\">QML elements</a></li> \n" \
+            "              </ul> \n" \
+            "        </li> \n" \
+            "        <li><a href=\"#\">Qt Topics</a> \n" \
+            "            <ul id=\"topmenuTopic\"> \n" \
+            "              <li><a href=\"qt-basic-concepts.html\">Basic Qt architecture</a></li> \n" \
+            "              <li><a href=\"declarativeui.html\">Device UI's &amp; Qt Quick</a></li> \n" \
+            "              <li><a href=\"qt-gui-concepts.html\">Desktop UI components</a></li> \n" \
+            "              <li><a href=\"platform-specific.html\">Platform-specific info</a></li> \n" \
+            "            </ul> \n" \
+            "       </li> \n" \
+            "        <li><a href=\"#\">Examples</a> \n" \
+            "            <ul id=\"topmenuexample\"> \n" \
+            "                <li><a href=\"all-examples.html\">Examples</a></li> \n" \
+            "                <li><a href=\"tutorials.html\">Tutorials</a></li> \n" \
+            "                <li><a href=\"demos.html\">Demos</a></li> \n" \
+            "                <li><a href=\"qdeclarativeexamples.html\">QML Examples</a></li> \n" \
+            "                <li><a href=\"qdeclarativeexamples.html#Demos\">QML Demos</a></li> \n" \
+            "            </ul> \n" \
+            "        </li> \n" \
+            " </ul> \n" \
+              "    </div>\n" \
+              "  </div>\n" \
+              "  <div class=\"wrapper\">\n" \
+              "    <div class=\"hd\">\n" \
+              "      <span></span>\n" \
+              "    </div>\n" \
+              "    <div class=\"bd group\">\n" \
+              "      <div class=\"sidebar\">\n" \
+              "        <div class=\"searchlabel\">\n" \
+              "          Search index:</div>\n" \
+              "        <div class=\"search\">\n" \
+              "          <form id=\"qtdocsearch\" action=\"\" onsubmit=\"return false;\">\n" \
+              "            <fieldset>\n" \
+              "              <input type=\"text\" name=\"searchstring\" id=\"pageType\" value=\"\" />\n" \
+              "            </fieldset>\n" \
+              "          </form>\n" \
+              "        </div>\n" \
+              "        <div class=\"box first bottombar\" id=\"lookup\">\n" \
+              "          <h2 title=\"API Lookup\"><span></span>\n" \
+              "            API Lookup</h2>\n" \
+              "          <div  id=\"list001\" class=\"list\">\n" \
+              "          <ul id=\"ul001\" >\n" \
+              "              <li class=\"defaultLink\"><a href=\"classes.html\">所有类</a></li>\n" \
+              "              <li class=\"defaultLink\"><a href=\"functions.html\">所有函数</a></li>\n" \
+              "              <li class=\"defaultLink\"><a href=\"modules.html\">Modules</a></li>\n" \
+              "              <li class=\"defaultLink\"><a href=\"namespaces.html\">Namespaces</a></li>\n" \
+              "              <li class=\"defaultLink\"><a href=\"qtglobal.html\">Global stuff</a></li>\n" \
+              "              <li class=\"defaultLink\"><a href=\"qdeclarativeelements.html\">QML elements</a></li>\n" \
+              "            </ul> \n" \
+              "          </div>\n" \
+              "        </div>\n" \
+              "        <div class=\"box bottombar\" id=\"topics\">\n" \
+              "          <h2 title=\"Qt Topics\"><span></span>\n" \
+              "            Qt Topics</h2>\n" \
+              "          <div id=\"list002\" class=\"list\">\n" \
+              "            <ul id=\"ul002\" >\n" \
+              "              <li class=\"defaultLink\"><a href=\"qt-basic-concepts.html\">Basic Qt architecture</a></li>\n" \
+              "              <li class=\"defaultLink\"><a href=\"declarativeui.html\">Device UI's &amp; Qt Quick</a></li>\n" \
+              "              <li class=\"defaultLink\"><a href=\"qt-gui-concepts.html\">Desktop UI components</a></li>\n" \
+              "              <li class=\"defaultLink\"><a href=\"platform-specific.html\">Platform-specific info</a></li>\n" \
+              "            </ul>  \n" \
+              "          </div>\n" \
+              "        </div>\n" \
+              "        <div class=\"box\" id=\"examples\">\n" \
+              "          <h2 title=\"Examples\"><span></span>\n" \
+              "            Examples</h2>\n" \
+              "          <div id=\"list003\" class=\"list\">\n" \
+              "        <ul id=\"ul003\">\n" \
+              "              <li class=\"defaultLink\"><a href=\"all-examples.html\">Examples</a></li>\n" \
+              "              <li class=\"defaultLink\"><a href=\"tutorials.html\">Tutorials</a></li>\n" \
+              "              <li class=\"defaultLink\"><a href=\"demos.html\">Demos</a></li>\n" \
+              "              <li class=\"defaultLink\"><a href=\"qdeclarativeexamples.html\">QML Examples</a></li>\n" \
+              "              <li class=\"defaultLink\"><a href=\"qdeclarativeexamples.html#Demos\">QML Demos</a></li>\n" \
+              "            </ul> \n" \
+              "          </div>\n" \
+              "        </div>\n" \
+              "      </div>\n" \
+              "      <div class=\"wrap\">\n" \
+              "        <div class=\"toolbar\">\n" \
+              "          <div class=\"breadcrumb toolblock\">\n" \
+              "            <ul>\n" \
+              "              <li class=\"first\"><a href=\"index.html\">Home</a></li>\n" \
+              "              <!--  Bread crumbs goes here -->\n"
+
+HTML.postpostheader = "            </ul>\n" \
+              "          </div>\n" \
+              "          <div class=\"toolbuttons toolblock\">\n" \
+              "            <ul>\n" \
+              "              <li id=\"smallA\" class=\"t_button\">A</li>\n" \
+              "              <li id=\"medA\" class=\"t_button active\">A</li>\n" \
+              "              <li id=\"bigA\" class=\"t_button\">A</li>\n" \
+              "              <li id=\"print\" class=\"t_button\"><a href=\"javascript:this.print();\">\n" \
+              "                <span>Print</span></a></li>\n" \
+              "            </ul>\n" \
+              "          </div>\n" \
+              "        </div>\n" \
+              "        <div class=\"content\">\n"
+
+HTML.footer = "        <!-- /div -->\n" \
+              "        <div class=\"feedback t_button\">\n" \
+              "          [+] Documentation Feedback</div>\n" \
+              "      </div>\n" \
+              "    </div>\n" \
+              "    <div class=\"ft\">\n" \
+              "      <span></span>\n" \
+              "    </div>\n" \
+              "  </div> \n" \
+              "  <div class=\"footer\">\n" \
+              "    <p>\n" \
+              "      <acronym title=\"Copyright\">&copy;</acronym> 2008-2010 Nokia Corporation and/or its\n" \
+              "      subsidiaries. Nokia, Qt and their respective logos are trademarks of Nokia Corporation \n" \
+              "      in Finland and/or other countries worldwide.</p>\n" \
+              "    <p>\n" \
+              "      All other trademarks are property of their respective owners. <a title=\"Privacy Policy\"\n" \
+              "        href=\"http://qt.nokia.com/about/privacy-policy\">Privacy Policy</a></p>\n" \
+              "  </div>\n" \
+              "  <div id=\"feedbackBox\">\n" \
+              "      <div id=\"feedcloseX\" class=\"feedclose t_button\">X</div>\n" \
+              "    <form id=\"feedform\" action=\"http://doc.qt.nokia.com/docFeedbck/feedback.php\" method=\"get\">\n" \
+              "      <p><textarea id=\"feedbox\" name=\"feedText\" rows=\"5\" cols=\"40\">Please submit your feedback...</textarea></p>\n" \
+              "      <p><input id=\"feedsubmit\" class=\"feedclose\" type=\"submit\" name=\"feedback\" /></p>\n" \
+              "    </form>\n" \
+              "  </div>\n" \
+              "  <div id=\"blurpage\">\n" \
+              "  </div>\n"
--- a/tools/qdoc3/test/qt.qdocconf	Fri Sep 17 08:34:18 2010 +0300
+++ b/tools/qdoc3/test/qt.qdocconf	Mon Oct 04 01:19:32 2010 +0300
@@ -9,7 +9,6 @@
 version                 = %VERSION%
 description             = Qt Reference Documentation
 url                     = http://qt.nokia.com/doc/4.7
-online                  = true
 
 sourceencoding          = UTF-8
 outputencoding          = UTF-8
--- a/tools/qdoc3/tree.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tools/qdoc3/tree.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -1963,8 +1963,8 @@
         if ((node->subType() == Node::QmlClass) ||
             (node->subType() == Node::QmlBasicType)) {
             QString fb = node->fileBase();
-            if (fb.startsWith(QLatin1String("QML:")))
-                return node->fileBase() + ".html";
+            if (fb.startsWith(QLatin1String("qml-")))
+                return fb + ".html";
             else
                 return "qml-" + node->fileBase() + ".html";
         } else
@@ -1981,7 +1981,7 @@
     else if ((parentNode = node->parent())) {
         if (parentNode->subType() == Node::QmlPropertyGroup) {
             parentNode = parentNode->parent();
-            parentName = "qml-" + parentNode->fileBase() + ".html";
+            parentName = fullDocumentLocation(parentNode);
         }
         else
             parentName = fullDocumentLocation(node->parent());
--- a/tools/qml/Info_mac.plist	Fri Sep 17 08:34:18 2010 +0300
+++ b/tools/qml/Info_mac.plist	Mon Oct 04 01:19:32 2010 +0300
@@ -14,5 +14,36 @@
 	<string>@TYPEINFO@</string>
 	<key>CFBundleExecutable</key>
 	<string>@EXECUTABLE@</string>
+        <key>UTExportedTypeDeclarations</key>
+          <array>
+            <dict>
+              <key>UTTypeIdentifier</key>
+              <string>com.nokia.qt.qml</string>
+              <key>UTTypeDescription</key>
+              <string>Qt Markup Language</string>
+              <key>UTTypeConformsTo</key>
+              <array>
+                <string>public.plain-text</string>
+              </array>
+              <key>UTTypeTagSpecification</key>
+              <dict>
+                <key>public.filename-extension</key>
+                <array>
+                  <string>qml</string>
+                </array>
+              </dict>
+            </dict>
+          </array>
+        <key>CFBundleDocumentTypes</key>
+          <array>
+            <dict>
+              <key>LSItemContentTypes</key>
+                <array>
+                  <string>com.nokia.qt.qml</string>
+                </array>
+              <key>CFBundleTypeRole</key>
+              <string>Viewer</string>
+            </dict>
+          </array>
 </dict>
 </plist>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tools/qml/browser/Browser.qml	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,284 @@
+/****************************************************************************
+**
+** 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 QtDeclarative 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$
+**
+****************************************************************************/
+
+import Qt 4.7
+import Qt.labs.folderlistmodel 1.0
+
+Rectangle {
+    id: root
+    property bool keyPressed: false
+    property variant folders: folders1
+    property variant view: view1
+    width: 320
+    height: 480
+    color: palette.window
+
+    FolderListModel {
+        id: folders1
+        nameFilters: [ "*.qml" ]
+        folder: qmlViewerFolder
+    }
+    FolderListModel {
+        id: folders2
+        nameFilters: [ "*.qml" ]
+        folder: qmlViewerFolder
+    }
+
+    SystemPalette { id: palette }
+
+    function down(path) {
+        if (folders == folders1) {
+            view = view2
+            folders = folders2;
+            view1.state = "exitLeft";
+        } else {
+            view = view1
+            folders = folders1;
+            view2.state = "exitLeft";
+        }
+        view.x = root.width;
+        view.state = "current";
+        view.focus = true;
+        folders.folder = path;
+    }
+    function up() {
+        var path = folders.parentFolder;
+        if (folders == folders1) {
+            view = view2
+            folders = folders2;
+            view1.state = "exitRight";
+        } else {
+            view = view1
+            folders = folders1;
+            view2.state = "exitRight";
+        }
+        view.x = -root.width;
+        view.state = "current";
+        view.focus = true;
+        folders.folder = path;
+    }
+
+    Component {
+        id: folderDelegate
+        Rectangle {
+            id: wrapper
+            function launch() {
+                if (folders.isFolder(index)) {
+                    down(filePath);
+                } else {
+                    qmlViewer.launch(filePath);
+                }
+            }
+            width: root.width
+            height: 52
+            color: "transparent"
+            Rectangle {
+                id: highlight; visible: false
+                anchors.fill: parent
+                gradient: Gradient {
+                    GradientStop { id: t1; position: 0.0; color: palette.highlight }
+                    GradientStop { id: t2; position: 1.0; color: Qt.lighter(palette.highlight) }
+                }
+            }
+            Item {
+                width: 48; height: 48
+                Image { source: "images/folder.png"; anchors.centerIn: parent; visible: folders.isFolder(index)}
+            }
+            Text {
+                id: nameText
+                anchors.fill: parent; verticalAlignment: Text.AlignVCenter
+                text: fileName
+                anchors.leftMargin: 54
+                font.pixelSize: 32
+                color: (wrapper.ListView.isCurrentItem && root.keyPressed) ? palette.highlightedText : palette.windowText
+                elide: Text.ElideRight
+            }
+            MouseArea {
+                id: mouseRegion
+                anchors.fill: parent
+                onClicked: { if (folders == wrapper.ListView.view.model) launch() }
+            }
+            states: [
+                State {
+                    name: "pressed"
+                    when: mouseRegion.pressed
+                    PropertyChanges { target: highlight; visible: true }
+                    PropertyChanges { target: nameText; color: palette.highlightedText }
+                }
+            ]
+        }
+    }
+
+    ListView {
+        id: view1
+        anchors.top: titleBar.bottom
+        anchors.bottom: parent.bottom
+        x: 0
+        width: parent.width
+        model: folders1
+        delegate: folderDelegate
+        highlight: Rectangle { color: palette.highlight; visible: root.keyPressed && view1.count != 0 }
+        highlightMoveSpeed: 1000
+        pressDelay: 100
+        focus: true
+        state: "current"
+        states: [
+            State {
+                name: "current"
+                PropertyChanges { target: view1; x: 0 }
+            },
+            State {
+                name: "exitLeft"
+                PropertyChanges { target: view1; x: -root.width }
+            },
+            State {
+                name: "exitRight"
+                PropertyChanges { target: view1; x: root.width }
+            }
+        ]
+        transitions: [
+            Transition {
+                to: "current"
+                SequentialAnimation {
+                    NumberAnimation { properties: "x"; duration: 250 }
+                }
+            },
+            Transition {
+                NumberAnimation { properties: "x"; duration: 250 }
+                NumberAnimation { properties: "x"; duration: 250 }
+            }
+        ]
+        Keys.onPressed: { root.keyPressed = true; }
+    }
+
+    ListView {
+        id: view2
+        anchors.top: titleBar.bottom
+        anchors.bottom: parent.bottom
+        x: parent.width
+        width: parent.width
+        model: folders2
+        delegate: folderDelegate
+        highlight: Rectangle { color: palette.highlight; visible: root.keyPressed && view2.count != 0 }
+        highlightMoveSpeed: 1000
+        pressDelay: 100
+        states: [
+            State {
+                name: "current"
+                PropertyChanges { target: view2; x: 0 }
+            },
+            State {
+                name: "exitLeft"
+                PropertyChanges { target: view2; x: -root.width }
+            },
+            State {
+                name: "exitRight"
+                PropertyChanges { target: view2; x: root.width }
+            }
+        ]
+        transitions: [
+            Transition {
+                to: "current"
+                SequentialAnimation {
+                    NumberAnimation { properties: "x"; duration: 250 }
+                }
+            },
+            Transition {
+                NumberAnimation { properties: "x"; duration: 250 }
+            }
+        ]
+        Keys.onPressed: { root.keyPressed = true; }
+    }
+
+    Keys.onPressed: {
+        root.keyPressed = true;
+        if (event.key == Qt.Key_Return || event.key == Qt.Key_Select || event.key == Qt.Key_Right) {
+            view.currentItem.launch();
+            event.accepted = true;
+        } else if (event.key == Qt.Key_Left) {
+            up();
+        }
+    }
+
+    BorderImage {
+        source: "images/titlebar.sci";
+        width: parent.width;
+        height: 52
+        y: -7
+        id: titleBar
+
+        Rectangle {
+            id: upButton
+            width: 48
+            height: titleBar.height - 7
+            color: "transparent"
+
+            Image { anchors.centerIn: parent; source: "images/up.png" }
+            MouseArea { id: upRegion; anchors.centerIn: parent
+                width: 56
+                height: 56
+                onClicked: if (folders.parentFolder != "") up()
+            }
+            states: [
+                State {
+                    name: "pressed"
+                    when: upRegion.pressed
+                    PropertyChanges { target: upButton; color: palette.highlight }
+                }
+            ]
+        }
+        Rectangle {
+            color: "gray"
+            x: 48
+            width: 1
+            height: 44
+        }
+
+        Text {
+            anchors.left: upButton.right; anchors.right: parent.right; height: parent.height
+            anchors.leftMargin: 4; anchors.rightMargin: 4
+            text: folders.folder
+            color: "white"
+            elide: Text.ElideLeft; horizontalAlignment: Text.AlignRight; verticalAlignment: Text.AlignVCenter
+            font.pixelSize: 32
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tools/qml/browser/browser.qrc	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,9 @@
+<RCC>
+    <qresource prefix="/browser">
+        <file>Browser.qml</file>
+        <file>images/up.png</file>
+        <file>images/folder.png</file>
+        <file>images/titlebar.sci</file>
+        <file>images/titlebar.png</file>
+    </qresource>
+</RCC>
Binary file tools/qml/browser/images/folder.png has changed
Binary file tools/qml/browser/images/titlebar.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tools/qml/browser/images/titlebar.sci	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,5 @@
+border.left: 10
+border.top: 12
+border.bottom: 12
+border.right: 10
+source: titlebar.png
Binary file tools/qml/browser/images/up.png has changed
--- a/tools/qml/content/Browser.qml	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,284 +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 QtDeclarative 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$
-**
-****************************************************************************/
-
-import Qt 4.7
-import Qt.labs.folderlistmodel 1.0
-
-Rectangle {
-    id: root
-    property bool keyPressed: false
-    property variant folders: folders1
-    property variant view: view1
-    width: 320
-    height: 480
-    color: palette.window
-
-    FolderListModel {
-        id: folders1
-        nameFilters: [ "*.qml" ]
-        folder: qmlViewerFolder
-    }
-    FolderListModel {
-        id: folders2
-        nameFilters: [ "*.qml" ]
-        folder: qmlViewerFolder
-    }
-
-    SystemPalette { id: palette }
-
-    function down(path) {
-        if (folders == folders1) {
-            view = view2
-            folders = folders2;
-            view1.state = "exitLeft";
-        } else {
-            view = view1
-            folders = folders1;
-            view2.state = "exitLeft";
-        }
-        view.x = root.width;
-        view.state = "current";
-        view.focus = true;
-        folders.folder = path;
-    }
-    function up() {
-        var path = folders.parentFolder;
-        if (folders == folders1) {
-            view = view2
-            folders = folders2;
-            view1.state = "exitRight";
-        } else {
-            view = view1
-            folders = folders1;
-            view2.state = "exitRight";
-        }
-        view.x = -root.width;
-        view.state = "current";
-        view.focus = true;
-        folders.folder = path;
-    }
-
-    Component {
-        id: folderDelegate
-        Rectangle {
-            id: wrapper
-            function launch() {
-                if (folders.isFolder(index)) {
-                    down(filePath);
-                } else {
-                    qmlViewer.launch(filePath);
-                }
-            }
-            width: root.width
-            height: 52
-            color: "transparent"
-            Rectangle {
-                id: highlight; visible: false
-                anchors.fill: parent
-                gradient: Gradient {
-                    GradientStop { id: t1; position: 0.0; color: palette.highlight }
-                    GradientStop { id: t2; position: 1.0; color: Qt.lighter(palette.highlight) }
-                }
-            }
-            Item {
-                width: 48; height: 48
-                Image { source: "images/folder.png"; anchors.centerIn: parent; visible: folders.isFolder(index)}
-            }
-            Text {
-                id: nameText
-                anchors.fill: parent; verticalAlignment: Text.AlignVCenter
-                text: fileName
-                anchors.leftMargin: 54
-                font.pixelSize: 32
-                color: (wrapper.ListView.isCurrentItem && root.keyPressed) ? palette.highlightedText : palette.windowText
-                elide: Text.ElideRight
-            }
-            MouseArea {
-                id: mouseRegion
-                anchors.fill: parent
-                onClicked: { if (folders == wrapper.ListView.view.model) launch() }
-            }
-            states: [
-                State {
-                    name: "pressed"
-                    when: mouseRegion.pressed
-                    PropertyChanges { target: highlight; visible: true }
-                    PropertyChanges { target: nameText; color: palette.highlightedText }
-                }
-            ]
-        }
-    }
-
-    ListView {
-        id: view1
-        anchors.top: titleBar.bottom
-        anchors.bottom: parent.bottom
-        x: 0
-        width: parent.width
-        model: folders1
-        delegate: folderDelegate
-        highlight: Rectangle { color: palette.highlight; visible: root.keyPressed && view1.count != 0 }
-        highlightMoveSpeed: 1000
-        pressDelay: 100
-        focus: true
-        state: "current"
-        states: [
-            State {
-                name: "current"
-                PropertyChanges { target: view1; x: 0 }
-            },
-            State {
-                name: "exitLeft"
-                PropertyChanges { target: view1; x: -root.width }
-            },
-            State {
-                name: "exitRight"
-                PropertyChanges { target: view1; x: root.width }
-            }
-        ]
-        transitions: [
-            Transition {
-                to: "current"
-                SequentialAnimation {
-                    NumberAnimation { properties: "x"; duration: 250 }
-                }
-            },
-            Transition {
-                NumberAnimation { properties: "x"; duration: 250 }
-                NumberAnimation { properties: "x"; duration: 250 }
-            }
-        ]
-        Keys.onPressed: { root.keyPressed = true; }
-    }
-
-    ListView {
-        id: view2
-        anchors.top: titleBar.bottom
-        anchors.bottom: parent.bottom
-        x: parent.width
-        width: parent.width
-        model: folders2
-        delegate: folderDelegate
-        highlight: Rectangle { color: palette.highlight; visible: root.keyPressed && view2.count != 0 }
-        highlightMoveSpeed: 1000
-        pressDelay: 100
-        states: [
-            State {
-                name: "current"
-                PropertyChanges { target: view2; x: 0 }
-            },
-            State {
-                name: "exitLeft"
-                PropertyChanges { target: view2; x: -root.width }
-            },
-            State {
-                name: "exitRight"
-                PropertyChanges { target: view2; x: root.width }
-            }
-        ]
-        transitions: [
-            Transition {
-                to: "current"
-                SequentialAnimation {
-                    NumberAnimation { properties: "x"; duration: 250 }
-                }
-            },
-            Transition {
-                NumberAnimation { properties: "x"; duration: 250 }
-            }
-        ]
-        Keys.onPressed: { root.keyPressed = true; }
-    }
-
-    Keys.onPressed: {
-        root.keyPressed = true;
-        if (event.key == Qt.Key_Return || event.key == Qt.Key_Select || event.key == Qt.Key_Right) {
-            view.currentItem.launch();
-            event.accepted = true;
-        } else if (event.key == Qt.Key_Left) {
-            up();
-        }
-    }
-
-    BorderImage {
-        source: "images/titlebar.sci";
-        width: parent.width;
-        height: 52
-        y: -7
-        id: titleBar
-
-        Rectangle {
-            id: upButton
-            width: 48
-            height: titleBar.height - 7
-            color: "transparent"
-
-            Image { anchors.centerIn: parent; source: "images/up.png" }
-            MouseArea { id: upRegion; anchors.centerIn: parent
-                width: 56
-                height: 56
-                onClicked: if (folders.parentFolder != "") up()
-            }
-            states: [
-                State {
-                    name: "pressed"
-                    when: upRegion.pressed
-                    PropertyChanges { target: upButton; color: palette.highlight }
-                }
-            ]
-        }
-        Rectangle {
-            color: "gray"
-            x: 48
-            width: 1
-            height: 44
-        }
-
-        Text {
-            anchors.left: upButton.right; anchors.right: parent.right; height: parent.height
-            anchors.leftMargin: 4; anchors.rightMargin: 4
-            text: folders.folder
-            color: "white"
-            elide: Text.ElideLeft; horizontalAlignment: Text.AlignRight; verticalAlignment: Text.AlignVCenter
-            font.pixelSize: 32
-        }
-    }
-}
Binary file tools/qml/content/images/folder.png has changed
Binary file tools/qml/content/images/titlebar.png has changed
--- a/tools/qml/content/images/titlebar.sci	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-border.left: 10
-border.top: 12
-border.bottom: 12
-border.right: 10
-source: titlebar.png
Binary file tools/qml/content/images/up.png has changed
--- a/tools/qml/deviceorientation.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tools/qml/deviceorientation.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -53,6 +53,11 @@
         return m_orientation;
     }
 
+    void pauseListening() {
+    }
+    void resumeListening() {
+    }
+
     void setOrientation(Orientation o) {
         if (o != m_orientation) {
             m_orientation = o;
--- a/tools/qml/deviceorientation.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/tools/qml/deviceorientation.h	Mon Oct 04 01:19:32 2010 +0300
@@ -63,6 +63,9 @@
     virtual Orientation orientation() const = 0;
     virtual void setOrientation(Orientation) = 0;
 
+    virtual void pauseListening() = 0;
+    virtual void resumeListening() = 0;
+
     static DeviceOrientation *instance();
 
 signals:
--- a/tools/qml/deviceorientation_maemo5.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tools/qml/deviceorientation_maemo5.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -50,23 +50,9 @@
     Q_OBJECT
 public:
     MaemoOrientation()
-        : o(UnknownOrientation)
+        : o(UnknownOrientation), sensorEnabled(false)
     {
-        // enable the orientation sensor
-        QDBusConnection::systemBus().call(
-                QDBusMessage::createMethodCall(MCE_SERVICE, MCE_REQUEST_PATH,
-                                               MCE_REQUEST_IF, MCE_ACCELEROMETER_ENABLE_REQ));
-
-        // query the initial orientation
-        QDBusMessage reply = QDBusConnection::systemBus().call(
-                QDBusMessage::createMethodCall(MCE_SERVICE, MCE_REQUEST_PATH,
-                                               MCE_REQUEST_IF, MCE_DEVICE_ORIENTATION_GET));
-        if (reply.type() == QDBusMessage::ErrorMessage) {
-            qWarning("Unable to retrieve device orientation: %s", qPrintable(reply.errorMessage()));
-        } else {
-            o = toOrientation(reply.arguments().value(0).toString());
-        }
-
+        resumeListening();
         // connect to the orientation change signal
         QDBusConnection::systemBus().connect(QString(), MCE_SIGNAL_PATH, MCE_SIGNAL_IF,
                 MCE_DEVICE_ORIENTATION_SIG,
@@ -91,6 +77,40 @@
     {
     }
 
+    void pauseListening() {
+        if (sensorEnabled) {
+            // disable the orientation sensor
+            QDBusConnection::systemBus().call(
+                    QDBusMessage::createMethodCall(MCE_SERVICE, MCE_REQUEST_PATH,
+                                                   MCE_REQUEST_IF, MCE_ACCELEROMETER_DISABLE_REQ));
+            sensorEnabled = false;
+        }
+    }
+
+    void resumeListening() {
+        if (!sensorEnabled) {
+            // enable the orientation sensor
+            QDBusConnection::systemBus().call(
+                    QDBusMessage::createMethodCall(MCE_SERVICE, MCE_REQUEST_PATH,
+                                                   MCE_REQUEST_IF, MCE_ACCELEROMETER_ENABLE_REQ));
+
+            QDBusMessage reply = QDBusConnection::systemBus().call(
+                    QDBusMessage::createMethodCall(MCE_SERVICE, MCE_REQUEST_PATH,
+                                                   MCE_REQUEST_IF, MCE_DEVICE_ORIENTATION_GET));
+
+            if (reply.type() == QDBusMessage::ErrorMessage) {
+                qWarning("Unable to retrieve device orientation: %s", qPrintable(reply.errorMessage()));
+            } else {
+                Orientation orientation = toOrientation(reply.arguments().value(0).toString());
+                if (o != orientation) {
+                    o = orientation;
+                    emit orientationChanged();
+                }
+                sensorEnabled = true;
+            }
+        }
+    }
+
 private Q_SLOTS:
     void deviceOrientationChanged(const QString &newOrientation)
     {
@@ -116,6 +136,7 @@
 
 private:
     Orientation o;
+    bool sensorEnabled;
 };
 
 DeviceOrientation* DeviceOrientation::instance()
--- a/tools/qml/deviceorientation_symbian.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tools/qml/deviceorientation_symbian.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -52,7 +52,7 @@
     Q_OBJECT
 public:
     SymbianOrientation()
-        : DeviceOrientation(), m_current(UnknownOrientation), m_sensorChannel(0)
+        : DeviceOrientation(), m_current(UnknownOrientation), m_sensorChannel(0), m_channelOpen(false)
     {
         TRAP_IGNORE(initL());
         if (!m_sensorChannel)
@@ -84,6 +84,7 @@
                 TRAP(error, m_sensorChannel->OpenChannelL());
             if (!error) {
                 TRAP(error, m_sensorChannel->StartDataListeningL(this, 1, 1, 0));
+                m_channelOpen = true;
                 break;
            }
             if (error) {
@@ -107,25 +108,54 @@
 private:
     DeviceOrientation::Orientation m_current;
     CSensrvChannel *m_sensorChannel;
+    bool m_channelOpen;
+    void pauseListening() {
+        if (m_sensorChannel && m_channelOpen) {
+            m_sensorChannel->StopDataListening();
+            m_sensorChannel->CloseChannel();
+            m_channelOpen = false;
+        }
+    }
+
+    void resumeListening() {
+        if (m_sensorChannel && !m_channelOpen) {
+            TRAPD(error, m_sensorChannel->OpenChannelL());
+            if (!error) {
+                TRAP(error, m_sensorChannel->StartDataListeningL(this, 1, 1, 0));
+                if (!error) {
+                    m_channelOpen = true;
+                }
+            }
+            if (error) {
+                delete m_sensorChannel;
+                m_sensorChannel = 0;
+            }
+        }
+    }
 
     void DataReceived(CSensrvChannel &channel, TInt count, TInt dataLost)
     {
+        Q_UNUSED(dataLost)
         if (channel.GetChannelInfo().iChannelType == KSensrvChannelTypeIdOrientationData) {
             TSensrvOrientationData data;
             for (int i = 0; i < count; ++i) {
                 TPckgBuf<TSensrvOrientationData> dataBuf;
                 channel.GetData(dataBuf);
                 data = dataBuf();
-                Orientation o = UnknownOrientation;
+                Orientation orientation = UnknownOrientation;
                 switch (data.iDeviceOrientation) {
                 case TSensrvOrientationData::EOrientationDisplayUp:
-                    o = Portrait;
+                    orientation = Portrait;
                     break;
                 case TSensrvOrientationData::EOrientationDisplayRightUp:
-                    o = Landscape;
+                    orientation = Landscape;
                     break;
                 case TSensrvOrientationData::EOrientationDisplayLeftUp:
+                    orientation = LandscapeInverted;
+                    break;
                 case TSensrvOrientationData::EOrientationDisplayDown:
+                    orientation = PortraitInverted;
+                    break;
                 case TSensrvOrientationData::EOrientationUndefined:
                 case TSensrvOrientationData::EOrientationDisplayUpwards:
                 case TSensrvOrientationData::EOrientationDisplayDownwards:
@@ -133,8 +163,8 @@
                     break;
                 }
 
-                if (m_current != o && o != UnknownOrientation) {
-                    m_current = o;
+                if (m_current != orientation && orientation != UnknownOrientation) {
+                    m_current = orientation;
                     emit orientationChanged();
                 }
            }
--- a/tools/qml/main.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tools/qml/main.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -56,7 +56,8 @@
 
 QtMsgHandler systemMsgOutput = 0;
 
-
+static QDeclarativeViewer *openFile(const QString &fileName);
+static void showViewer(QDeclarativeViewer *viewer);
 
 #if defined (Q_OS_SYMBIAN)
 #include <unistd.h>
@@ -117,6 +118,11 @@
 
 #endif
 
+static QDeclarativeViewer* globalViewer = 0;
+
+// The qml file that is shown if the user didn't specify a QML file
+QString initialFile = "qrc:/startup/startup.qml";
+
 void usage()
 {
     qWarning("Usage: qmlviewer [options] <filename>");
@@ -175,6 +181,331 @@
 
 enum WarningsConfig { ShowWarnings, HideWarnings, DefaultWarnings };
 
+struct ViewerOptions
+{
+    ViewerOptions()
+        : frameless(false),
+          fps(0.0),
+          autorecord_from(0),
+          autorecord_to(0),
+          dither("none"),
+          runScript(false),
+          devkeys(false),
+          cache(0),
+          useGL(false),
+          fullScreen(false),
+          stayOnTop(false),
+          maximized(false),
+          useNativeFileBrowser(true),
+          experimentalGestures(false),
+          warningsConfig(DefaultWarnings),
+          sizeToView(true)
+    {
+#if defined(Q_OS_SYMBIAN)
+        maximized = true;
+        useNativeFileBrowser = false;
+#endif
+
+#if defined(Q_WS_MAC)
+        useGL = true;
+#endif
+    }
+
+    bool frameless;
+    double fps;
+    int autorecord_from;
+    int autorecord_to;
+    QString dither;
+    QString recordfile;
+    QStringList recordargs;
+    QStringList imports;
+    QStringList plugins;
+    QString script;
+    QString scriptopts;
+    bool runScript;
+    bool devkeys;
+    int cache;
+    QString translationFile;
+    bool useGL;
+    bool fullScreen;
+    bool stayOnTop;
+    bool maximized;
+    bool useNativeFileBrowser;
+    bool experimentalGestures;
+
+    WarningsConfig warningsConfig;
+    bool sizeToView;
+
+    QDeclarativeViewer::ScriptOptions scriptOptions;
+};
+
+static ViewerOptions opts;
+static QStringList fileNames;
+
+class Application : public QApplication
+{
+    Q_OBJECT
+public:
+    Application(int &argc, char **&argv)
+        : QApplication(argc, argv)
+    {}
+
+protected:
+    bool event(QEvent *ev)
+    {
+        if (ev->type() != QEvent::FileOpen)
+            return QApplication::event(ev);
+
+        QFileOpenEvent *fev = static_cast<QFileOpenEvent *>(ev);
+
+        globalViewer->open(fev->file());
+        if (!globalViewer->isVisible())
+            showViewer(globalViewer);
+
+        return true;
+    }
+
+private Q_SLOTS:
+    void showInitialViewer()
+    {
+        QApplication::processEvents();
+
+        QDeclarativeViewer *viewer = globalViewer;
+        if (!viewer)
+            return;
+        if (viewer->currentFile().isEmpty()) {
+            if(opts.useNativeFileBrowser)
+                viewer->open(initialFile);
+            else
+                viewer->openFile();
+        }
+        if (!viewer->isVisible())
+            showViewer(viewer);
+    }
+};
+
+static void parseScriptOptions()
+{
+    QStringList options =
+        opts.scriptopts.split(QLatin1Char(','), QString::SkipEmptyParts);
+
+    QDeclarativeViewer::ScriptOptions scriptOptions = 0;
+    for (int i = 0; i < options.count(); ++i) {
+        const QString &option = options.at(i);
+        if (option == QLatin1String("help")) {
+            scriptOptsUsage();
+        } else if (option == QLatin1String("play")) {
+            scriptOptions |= QDeclarativeViewer::Play;
+        } else if (option == QLatin1String("record")) {
+            scriptOptions |= QDeclarativeViewer::Record;
+        } else if (option == QLatin1String("testimages")) {
+            scriptOptions |= QDeclarativeViewer::TestImages;
+        } else if (option == QLatin1String("testerror")) {
+            scriptOptions |= QDeclarativeViewer::TestErrorProperty;
+        } else if (option == QLatin1String("exitoncomplete")) {
+            scriptOptions |= QDeclarativeViewer::ExitOnComplete;
+        } else if (option == QLatin1String("exitonfailure")) {
+            scriptOptions |= QDeclarativeViewer::ExitOnFailure;
+        } else if (option == QLatin1String("saveonexit")) {
+            scriptOptions |= QDeclarativeViewer::SaveOnExit;
+        } else if (option == QLatin1String("snapshot")) {
+            scriptOptions |= QDeclarativeViewer::Snapshot;
+        } else {
+            scriptOptsUsage();
+        }
+    }
+
+    opts.scriptOptions = scriptOptions;
+}
+
+static void parseCommandLineOptions(const QStringList &arguments)
+{
+    for (int i = 1; i < arguments.count(); ++i) {
+        bool lastArg = (i == arguments.count() - 1);
+        QString arg = arguments.at(i);
+        if (arg == "-frameless") {
+            opts.frameless = true;
+        } else if (arg == "-maximized") {
+            opts.maximized = true;
+        } else if (arg == "-fullscreen") {
+            opts.fullScreen = true;
+        } else if (arg == "-stayontop") {
+            opts.stayOnTop = true;
+        } else if (arg == "-netcache") {
+            if (lastArg) usage();
+            opts.cache = arguments.at(++i).toInt();
+        } else if (arg == "-recordrate") {
+            if (lastArg) usage();
+            opts.fps = arguments.at(++i).toDouble();
+        } else if (arg == "-recordfile") {
+            if (lastArg) usage();
+            opts.recordfile = arguments.at(++i);
+        } else if (arg == "-record") {
+            if (lastArg) usage();
+            opts.recordargs << arguments.at(++i);
+        } else if (arg == "-recorddither") {
+            if (lastArg) usage();
+            opts.dither = arguments.at(++i);
+        } else if (arg == "-autorecord") {
+            if (lastArg) usage();
+            QString range = arguments.at(++i);
+            int dash = range.indexOf('-');
+            if (dash > 0)
+                opts.autorecord_from = range.left(dash).toInt();
+            opts.autorecord_to = range.mid(dash+1).toInt();
+        } else if (arg == "-devicekeys") {
+            opts.devkeys = true;
+        } else if (arg == "-dragthreshold") {
+            if (lastArg) usage();
+            qApp->setStartDragDistance(arguments.at(++i).toInt());
+        } else if (arg == QLatin1String("-v") || arg == QLatin1String("-version")) {
+            qWarning("Qt QML Viewer version %s", QT_VERSION_STR);
+            exit(0);
+        } else if (arg == "-translation") {
+            if (lastArg) usage();
+            opts.translationFile = arguments.at(++i);
+        } else if (arg == "-opengl") {
+            opts.useGL = true;
+        } else if (arg == "-qmlbrowser") {
+            opts.useNativeFileBrowser = false;
+        } else if (arg == "-warnings") {
+            if (lastArg) usage();
+            QString warningsStr = arguments.at(++i);
+            if (warningsStr == QLatin1String("show")) {
+                opts.warningsConfig = ShowWarnings;
+            } else if (warningsStr == QLatin1String("hide")) {
+                opts.warningsConfig = HideWarnings;
+            } else {
+                usage();
+            }
+        } else if (arg == "-I" || arg == "-L") {
+            if (arg == "-L")
+                qWarning("-L option provided for compatibility only, use -I instead");
+            if (lastArg) {
+                QDeclarativeEngine tmpEngine;
+                QString paths = tmpEngine.importPathList().join(QLatin1String(":"));
+                qWarning("Current search path: %s", paths.toLocal8Bit().constData());
+                exit(0);
+            }
+            opts.imports << arguments.at(++i);
+        } else if (arg == "-P") {
+            if (lastArg) usage();
+            opts.plugins << arguments.at(++i);
+        } else if (arg == "-script") {
+            if (lastArg) usage();
+            opts.script = arguments.at(++i);
+        } else if (arg == "-scriptopts") {
+            if (lastArg) usage();
+            opts.scriptopts = arguments.at(++i);
+        } else if (arg == "-savescript") {
+            if (lastArg) usage();
+            opts.script = arguments.at(++i);
+            opts.runScript = false;
+        } else if (arg == "-playscript") {
+            if (lastArg) usage();
+            opts.script = arguments.at(++i);
+            opts.runScript = true;
+        } else if (arg == "-sizeviewtorootobject") {
+            opts.sizeToView = false;
+        } else if (arg == "-sizerootobjecttoview") {
+            opts.sizeToView = true;
+        } else if (arg == "-experimentalgestures") {
+            opts.experimentalGestures = true;
+        } else if (!arg.startsWith('-')) {
+            fileNames.append(arg);
+        } else if (true || arg == "-help") {
+            usage();
+        }
+    }
+
+    if (!opts.scriptopts.isEmpty()) {
+
+        parseScriptOptions();
+
+        if (opts.script.isEmpty())
+            usage();
+
+        if (!(opts.scriptOptions & QDeclarativeViewer::Record) && !(opts.scriptOptions & QDeclarativeViewer::Play))
+            scriptOptsUsage();
+    }  else if (!opts.script.isEmpty()) {
+        usage();
+    }
+
+}
+
+static QDeclarativeViewer *createViewer()
+{
+    Qt::WFlags wflags = (opts.frameless ? Qt::FramelessWindowHint : Qt::Widget);
+    if (opts.stayOnTop)
+        wflags |= Qt::WindowStaysOnTopHint;
+
+    QDeclarativeViewer *viewer = new QDeclarativeViewer(0, wflags);
+    viewer->setAttribute(Qt::WA_DeleteOnClose, true);
+    viewer->setUseGL(opts.useGL);
+
+    if (!opts.scriptopts.isEmpty()) {
+        viewer->setScriptOptions(opts.scriptOptions);
+        viewer->setScript(opts.script);
+    }
+
+#if !defined(Q_OS_SYMBIAN)
+    logger = viewer->warningsWidget();
+    if (opts.warningsConfig == ShowWarnings) {
+        logger.data()->setDefaultVisibility(LoggerWidget::ShowWarnings);
+        logger.data()->show();
+    } else if (opts.warningsConfig == HideWarnings){
+        logger.data()->setDefaultVisibility(LoggerWidget::HideWarnings);
+    }
+#endif
+
+    if (opts.experimentalGestures)
+        viewer->enableExperimentalGestures();
+
+    foreach (QString lib, opts.imports)
+        viewer->addLibraryPath(lib);
+
+    foreach (QString plugin, opts.plugins)
+        viewer->addPluginPath(plugin);
+
+    viewer->setNetworkCacheSize(opts.cache);
+    viewer->setRecordFile(opts.recordfile);
+    viewer->setSizeToView(opts.sizeToView);
+    if (opts.fps > 0)
+        viewer->setRecordRate(opts.fps);
+    if (opts.autorecord_to)
+        viewer->setAutoRecord(opts.autorecord_from, opts.autorecord_to);
+    if (opts.devkeys)
+        viewer->setDeviceKeys(true);
+    viewer->setRecordDither(opts.dither);
+    if (opts.recordargs.count())
+        viewer->setRecordArgs(opts.recordargs);
+
+    viewer->setUseNativeFileBrowser(opts.useNativeFileBrowser);
+
+    return viewer;
+}
+
+void showViewer(QDeclarativeViewer *viewer)
+{
+    if (opts.fullScreen)
+        viewer->showFullScreen();
+    else if (opts.maximized)
+        viewer->showMaximized();
+    else
+        viewer->show();
+    viewer->raise();
+}
+
+QDeclarativeViewer *openFile(const QString &fileName)
+{
+    QDeclarativeViewer *viewer = globalViewer;
+
+    viewer->open(fileName);
+    showViewer(viewer);
+
+    return viewer;
+}
+
 int main(int argc, char ** argv)
 {
 #if defined (Q_OS_SYMBIAN)
@@ -204,264 +535,54 @@
         QApplication::setGraphicsSystem("raster");
 #endif
 
-    QApplication app(argc, argv);
+    Application app(argc, argv);
     app.setApplicationName("QtQmlViewer");
     app.setOrganizationName("Nokia");
     app.setOrganizationDomain("nokia.com");
 
-
-    
     QDeclarativeViewer::registerTypes();
     QDeclarativeTester::registerTypes();
 
-    bool frameless = false;
-    QString fileName;
-    double fps = 0;
-    int autorecord_from = 0;
-    int autorecord_to = 0;
-    QString dither = "none";
-    QString recordfile;
-    QStringList recordargs;
-    QStringList imports;
-    QStringList plugins;
-    QString script;
-    QString scriptopts;
-    bool runScript = false;
-    bool devkeys = false;
-    int cache = 0;
-    QString translationFile;
-    bool useGL = false;
-    bool fullScreen = false;
-    bool stayOnTop = false;
-    bool maximized = false;
-    bool useNativeFileBrowser = true;
-    bool experimentalGestures = false;
+    parseCommandLineOptions(app.arguments());
 
-    WarningsConfig warningsConfig = DefaultWarnings;
-    bool sizeToView = true;
+    QTranslator qmlTranslator;
+    if (!opts.translationFile.isEmpty()) {
+        qmlTranslator.load(opts.translationFile);
+        app.installTranslator(&qmlTranslator);
+    }
 
-#if defined(Q_OS_SYMBIAN)
-    maximized = true;
-    useNativeFileBrowser = false;
-#endif
-
-#if defined(Q_WS_MAC)
-    useGL = true;
-#endif
+    if (opts.fullScreen && opts.maximized)
+        qWarning() << "Both -fullscreen and -maximized specified. Using -fullscreen.";
 
-    for (int i = 1; i < argc; ++i) {
-        bool lastArg = (i == argc - 1);
-        QString arg = argv[i];
-        if (arg == "-frameless") {
-            frameless = true;
-        } else if (arg == "-maximized") {
-            maximized = true;
-        } else if (arg == "-fullscreen") {
-            fullScreen = true;
-        } else if (arg == "-stayontop") {
-            stayOnTop = true;
-        } else if (arg == "-netcache") {
-            if (lastArg) usage();
-            cache = QString(argv[++i]).toInt();
-        } else if (arg == "-recordrate") {
-            if (lastArg) usage();
-            fps = QString(argv[++i]).toDouble();
-        } else if (arg == "-recordfile") {
-            if (lastArg) usage();
-            recordfile = QString(argv[++i]);
-        } else if (arg == "-record") {
-            if (lastArg) usage();
-            recordargs << QString(argv[++i]);
-        } else if (arg == "-recorddither") {
-            if (lastArg) usage();
-            dither = QString(argv[++i]);
-        } else if (arg == "-autorecord") {
-            if (lastArg) usage();
-            QString range = QString(argv[++i]);
-            int dash = range.indexOf('-');
-            if (dash > 0)
-                autorecord_from = range.left(dash).toInt();
-            autorecord_to = range.mid(dash+1).toInt();
-        } else if (arg == "-devicekeys") {
-            devkeys = true;
-        } else if (arg == "-dragthreshold") {
-            if (lastArg) usage();
-            app.setStartDragDistance(QString(argv[++i]).toInt());
-        } else if (arg == QLatin1String("-v") || arg == QLatin1String("-version")) {
-            qWarning("Qt QML Viewer version %s", QT_VERSION_STR);
-            exit(0);
-        } else if (arg == "-translation") {
-            if (lastArg) usage();
-            translationFile = argv[++i];
-        } else if (arg == "-opengl") {
-            useGL = true;
-        } else if (arg == "-qmlbrowser") {
-            useNativeFileBrowser = false;
-        } else if (arg == "-warnings") {
-            if (lastArg) usage();
-            QString warningsStr = QString(argv[++i]);
-            if (warningsStr == QLatin1String("show")) {
-                warningsConfig = ShowWarnings;
-            } else if (warningsStr == QLatin1String("hide")) {
-                warningsConfig = HideWarnings;
-            } else {
-                usage();
-            }
-        } else if (arg == "-I" || arg == "-L") {
-            if (arg == "-L")
-                qWarning("-L option provided for compatibility only, use -I instead");
-            if (lastArg) {
-                QDeclarativeEngine tmpEngine;
-                QString paths = tmpEngine.importPathList().join(QLatin1String(":"));
-                qWarning("Current search path: %s", paths.toLocal8Bit().constData());
-                exit(0);
-            }
-            imports << QString(argv[++i]);
-        } else if (arg == "-P") {
-            if (lastArg) usage();
-            plugins << QString(argv[++i]);
-        } else if (arg == "-script") {
-            if (lastArg) usage();
-            script = QString(argv[++i]);
-        } else if (arg == "-scriptopts") {
-            if (lastArg) usage();
-            scriptopts = QString(argv[++i]);
-        } else if (arg == "-savescript") {
-            if (lastArg) usage();
-            script = QString(argv[++i]);
-            runScript = false;
-        } else if (arg == "-playscript") {
-            if (lastArg) usage();
-            script = QString(argv[++i]);
-            runScript = true;
-        } else if (arg == "-sizeviewtorootobject") {
-            sizeToView = false;
-        } else if (arg == "-sizerootobjecttoview") {
-            sizeToView = true;
-        } else if (arg == "-experimentalgestures") {
-            experimentalGestures = true;
-        } else if (arg[0] != '-') {
-            fileName = arg;
-        } else if (1 || arg == "-help") {
-            usage();
+    if (fileNames.isEmpty()) {
+        QFile qmlapp(QLatin1String("qmlapp"));
+        if (qmlapp.exists() && qmlapp.open(QFile::ReadOnly)) {
+            QString content = QString::fromUtf8(qmlapp.readAll());
+            qmlapp.close();
+
+            int newline = content.indexOf(QLatin1Char('\n'));
+            if (newline >= 0)
+                fileNames += content.left(newline);
+            else
+                fileNames += content;
         }
     }
 
-    QTranslator qmlTranslator;
-    if (!translationFile.isEmpty()) {
-        qmlTranslator.load(translationFile);
-        app.installTranslator(&qmlTranslator);
-    }
-
-    Qt::WFlags wflags = (frameless ? Qt::FramelessWindowHint : Qt::Widget);
-    if (stayOnTop)
-        wflags |= Qt::WindowStaysOnTopHint;
-
-    QDeclarativeViewer *viewer = new QDeclarativeViewer(0, wflags);
-    viewer->setAttribute(Qt::WA_DeleteOnClose, true);
-    if (!scriptopts.isEmpty()) {
-        QStringList options =
-            scriptopts.split(QLatin1Char(','), QString::SkipEmptyParts);
+    globalViewer = createViewer();
 
-        QDeclarativeViewer::ScriptOptions scriptOptions = 0;
-        for (int i = 0; i < options.count(); ++i) {
-            const QString &option = options.at(i);
-            if (option == QLatin1String("help")) {
-                scriptOptsUsage();
-            } else if (option == QLatin1String("play")) {
-                scriptOptions |= QDeclarativeViewer::Play;
-            } else if (option == QLatin1String("record")) {
-                scriptOptions |= QDeclarativeViewer::Record;
-            } else if (option == QLatin1String("testimages")) {
-                scriptOptions |= QDeclarativeViewer::TestImages;
-            } else if (option == QLatin1String("testerror")) {
-                scriptOptions |= QDeclarativeViewer::TestErrorProperty;
-            } else if (option == QLatin1String("exitoncomplete")) {
-                scriptOptions |= QDeclarativeViewer::ExitOnComplete;
-            } else if (option == QLatin1String("exitonfailure")) {
-                scriptOptions |= QDeclarativeViewer::ExitOnFailure;
-            } else if (option == QLatin1String("saveonexit")) {
-                scriptOptions |= QDeclarativeViewer::SaveOnExit;
-            } else if (option == QLatin1String("snapshot")) {
-                scriptOptions |= QDeclarativeViewer::Snapshot;
-            } else {
-                scriptOptsUsage();
-            }
-        }
-
-        if (script.isEmpty())
-            usage();
-
-        if (!(scriptOptions & QDeclarativeViewer::Record) && !(scriptOptions & QDeclarativeViewer::Play))
-            scriptOptsUsage();
-        viewer->setScriptOptions(scriptOptions);
-        viewer->setScript(script);
-    }  else if (!script.isEmpty()) {
-        usage();
+    if (fileNames.isEmpty()) {
+        // show the initial viewer delayed.
+        // This prevents an initial viewer popping up while there
+        // are FileOpen events coming through the event queue
+        QTimer::singleShot(1, &app, SLOT(showInitialViewer()));
+    } else {
+        foreach (const QString &fileName, fileNames)
+            openFile(fileName);
     }
 
-#if !defined(Q_OS_SYMBIAN)
-    logger = viewer->warningsWidget();
-    if (warningsConfig == ShowWarnings) {
-        logger.data()->setDefaultVisibility(LoggerWidget::ShowWarnings);
-        logger.data()->show();
-    } else if (warningsConfig == HideWarnings){
-        logger.data()->setDefaultVisibility(LoggerWidget::HideWarnings);
-    }
-#endif
-
-    if (experimentalGestures)
-        viewer->enableExperimentalGestures();
-
-    foreach (QString lib, imports)
-        viewer->addLibraryPath(lib);
-
-    foreach (QString plugin, plugins)
-        viewer->addPluginPath(plugin);
-
-    viewer->setNetworkCacheSize(cache);
-    viewer->setRecordFile(recordfile);
-    viewer->setSizeToView(sizeToView);
-    if (fps>0)
-        viewer->setRecordRate(fps);
-    if (autorecord_to)
-        viewer->setAutoRecord(autorecord_from,autorecord_to);
-    if (devkeys)
-        viewer->setDeviceKeys(true);
-    viewer->setRecordDither(dither);
-    if (recordargs.count())
-        viewer->setRecordArgs(recordargs);
-
-    viewer->setUseNativeFileBrowser(useNativeFileBrowser);
-    if (fullScreen && maximized)
-        qWarning() << "Both -fullscreen and -maximized specified. Using -fullscreen.";
-
-    if (fileName.isEmpty()) {
-        QFile qmlapp(QLatin1String("qmlapp"));
-        if (qmlapp.exists() && qmlapp.open(QFile::ReadOnly)) {
-                QString content = QString::fromUtf8(qmlapp.readAll());
-                qmlapp.close();
-
-                int newline = content.indexOf(QLatin1Char('\n'));
-                if (newline >= 0)
-                    fileName = content.left(newline);
-                else
-                    fileName = content;
-            }
-    }
-
-    if (!fileName.isEmpty()) {
-        viewer->open(fileName);
-        fullScreen ? viewer->showFullScreen() : maximized ? viewer->showMaximized() : viewer->show();
-    } else {
-        if (!useNativeFileBrowser)
-            viewer->openFile();
-        fullScreen ? viewer->showFullScreen() : maximized ? viewer->showMaximized() : viewer->show();
-        if (useNativeFileBrowser)
-            viewer->openFile();
-    }
-    viewer->setUseGL(useGL);
-    viewer->raise();
+    QObject::connect(&app, SIGNAL(lastWindowClosed()), &app, SLOT(quit()));
 
     return app.exec();
 }
+
+#include "main.moc"
--- a/tools/qml/qml.pri	Fri Sep 17 08:34:18 2010 +0300
+++ b/tools/qml/qml.pri	Mon Oct 04 01:19:32 2010 +0300
@@ -16,7 +16,9 @@
            $$PWD/qdeclarativetester.cpp \
            $$PWD/loggerwidget.cpp
 
-RESOURCES = $$PWD/qmlruntime.qrc
+RESOURCES = $$PWD/browser/browser.qrc \
+            $$PWD/startup/startup.qrc
+
 symbian:!contains(S60_VERSION, 3.1):!contains(S60_VERSION, 3.2) {
    SOURCES += $$PWD/deviceorientation_symbian.cpp
    FORMS = $$PWD/recopts.ui \
--- a/tools/qml/qml.pro	Fri Sep 17 08:34:18 2010 +0300
+++ b/tools/qml/qml.pro	Mon Oct 04 01:19:32 2010 +0300
@@ -34,12 +34,15 @@
 }
 symbian {
     TARGET.UID3 = 0x20021317
-    include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri)
-    TARGET.EPOCHEAPSIZE = 0x20000 0x2000000
+    include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri)
+    TARGET.EPOCHEAPSIZE = 0x20000 0x4000000
     TARGET.CAPABILITY = NetworkServices ReadUserData
     !contains(S60_VERSION, 3.1):!contains(S60_VERSION, 3.2) {
         LIBS += -lsensrvclient -lsensrvutil
     }
+    contains(QT_CONFIG, s60): {
+        LIBS += -lavkon -lcone
+    }
 }
 mac {
     QMAKE_INFO_PLIST=Info_mac.plist
--- a/tools/qml/qmlruntime.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tools/qml/qmlruntime.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -85,6 +85,7 @@
 #include <QMenu>
 #include <QAction>
 #include <QFileDialog>
+#include <QInputDialog>
 #include <QTimer>
 #include <QGraphicsObject>
 #include <QNetworkProxyFactory>
@@ -98,10 +99,57 @@
 #include <QGLWidget>
 #endif
 
+#if defined(Q_WS_S60)
+#include <aknappui.h> // For locking app orientation
+#endif
+
 #include <qdeclarativetester.h>
 
 QT_BEGIN_NAMESPACE
 
+class DragAndDropView : public QDeclarativeView
+{
+    Q_OBJECT
+public:
+    DragAndDropView(QDeclarativeViewer *parent = 0)
+    : QDeclarativeView(parent)
+    {
+        setAcceptDrops(true);
+    }
+
+    void dragEnterEvent(QDragEnterEvent *event)
+    {
+        const QMimeData *mimeData = event->mimeData();
+        if (mimeData->hasUrls())
+            event->acceptProposedAction();
+    }
+
+    void dragMoveEvent(QDragMoveEvent *event)
+    {
+        event->acceptProposedAction();
+    }
+
+    void dragLeaveEvent(QDragLeaveEvent *event)
+    {
+        event->accept();
+    }
+
+    void dropEvent(QDropEvent *event)
+    {
+        const QMimeData *mimeData = event->mimeData();
+        if (!mimeData->hasUrls())
+            return;
+        const QList<QUrl> urlList = mimeData->urls();
+        foreach (const QUrl &url, urlList) {
+            if (url.scheme() == QLatin1String("file")) {
+                static_cast<QDeclarativeViewer *>(parent())->open(url.toLocalFile());
+                event->accept();
+                return;
+            }
+        }
+    }
+};
+
 class Runtime : public QObject
 {
     Q_OBJECT
@@ -557,6 +605,7 @@
     : QMainWindow(parent, flags)
       , loggerWindow(new LoggerWidget(this))
       , frame_stream(0)
+      , rotateAction(0)
       , orientation(0)
       , showWarningsWindow(0)
       , m_scriptOptions(0)
@@ -596,7 +645,7 @@
         recdlg->warning->hide();
     }
 
-    canvas = new QDeclarativeView(this);
+    canvas = new DragAndDropView(this);
 
     canvas->setAttribute(Qt::WA_OpaquePaintEvent);
     canvas->setAttribute(Qt::WA_NoSystemBackground);
@@ -605,7 +654,7 @@
 
     QObject::connect(canvas, SIGNAL(sceneResized(QSize)), this, SLOT(sceneResized(QSize)));
     QObject::connect(canvas, SIGNAL(statusChanged(QDeclarativeView::Status)), this, SLOT(statusChanged()));
-    QObject::connect(canvas->engine(), SIGNAL(quit()), QCoreApplication::instance (), SLOT(quit()));
+    QObject::connect(canvas->engine(), SIGNAL(quit()), this, SLOT(close()));
 
     QObject::connect(warningsWidget(), SIGNAL(opened()), this, SLOT(warningsWidgetOpened()));
     QObject::connect(warningsWidget(), SIGNAL(closed()), this, SLOT(warningsWidgetClosed()));
@@ -664,11 +713,14 @@
 void QDeclarativeViewer::createMenu()
 {
     QAction *openAction = new QAction(tr("&Open..."), this);
-    openAction->setShortcut(QKeySequence("Ctrl+O"));
+    openAction->setShortcuts(QKeySequence::Open);
     connect(openAction, SIGNAL(triggered()), this, SLOT(openFile()));
 
+    QAction *openUrlAction = new QAction(tr("Open &URL..."), this);
+    connect(openUrlAction, SIGNAL(triggered()), this, SLOT(openUrl()));
+
     QAction *reloadAction = new QAction(tr("&Reload"), this);
-    reloadAction->setShortcut(QKeySequence("Ctrl+R"));
+    reloadAction->setShortcuts(QKeySequence::Refresh);
     connect(reloadAction, SIGNAL(triggered()), this, SLOT(reload()));
 
     QAction *snapshotAction = new QAction(tr("&Take Snapshot"), this);
@@ -699,28 +751,40 @@
     fullscreenAction->setCheckable(true);
     connect(fullscreenAction, SIGNAL(triggered()), this, SLOT(toggleFullScreen()));
 
-    QAction *rotateOrientation = new QAction(tr("Rotate orientation"), this);
-    rotateOrientation->setShortcut(QKeySequence("Ctrl+T"));
-    connect(rotateOrientation, SIGNAL(triggered()), this, SLOT(rotateOrientation()));
+    rotateAction = new QAction(tr("Rotate orientation"), this);
+    rotateAction->setShortcut(QKeySequence("Ctrl+T"));
+    connect(rotateAction, SIGNAL(triggered()), this, SLOT(rotateOrientation()));
 
     orientation = new QActionGroup(this);
     orientation->setExclusive(true);
     connect(orientation, SIGNAL(triggered(QAction*)), this, SLOT(changeOrientation(QAction*)));
 
+#if defined(Q_OS_SYMBIAN)
+    QAction *autoOrientationAction = new QAction(tr("Auto-orientation"), this);
+    autoOrientationAction->setCheckable(true);
+#endif
     QAction *portraitAction = new QAction(tr("Portrait"), this);
     portraitAction->setCheckable(true);
     QAction *landscapeAction = new QAction(tr("Landscape"), this);
     landscapeAction->setCheckable(true);
+#if !defined(Q_OS_SYMBIAN)
     QAction *portraitInvAction = new QAction(tr("Portrait (inverted)"), this);
     portraitInvAction->setCheckable(true);
     QAction *landscapeInvAction = new QAction(tr("Landscape (inverted)"), this);
     landscapeInvAction->setCheckable(true);
+#endif
 
     QAction *aboutAction = new QAction(tr("&About Qt..."), this);
+    aboutAction->setMenuRole(QAction::AboutQtRole);
     connect(aboutAction, SIGNAL(triggered()), qApp, SLOT(aboutQt()));
 
+    QAction *closeAction = new QAction(tr("&Close"), this);
+    closeAction->setShortcuts(QKeySequence::Close);
+    connect(closeAction, SIGNAL(triggered()), this, SLOT(close()));
+
     QAction *quitAction = new QAction(tr("&Quit"), this);
-    quitAction->setShortcut(QKeySequence("Ctrl+Q"));
+    quitAction->setMenuRole(QAction::QuitRole);
+    quitAction->setShortcuts(QKeySequence::Quit);
     connect(quitAction, SIGNAL(triggered()), qApp, SLOT(quit()));
 
     QMenuBar *menu = menuBar();
@@ -729,6 +793,7 @@
 
 #if defined(Q_WS_MAEMO_5)
     menu->addAction(openAction);
+    menu->addAction(openUrlAction);
     menu->addAction(reloadAction);
 
     menu->addAction(snapshotAction);
@@ -749,11 +814,13 @@
 
     QMenu *fileMenu = menu->addMenu(tr("&File"));
     fileMenu->addAction(openAction);
+    fileMenu->addAction(openUrlAction);
     fileMenu->addAction(reloadAction);
     fileMenu->addSeparator();
+    fileMenu->addAction(closeAction);
+#if !defined(Q_OS_SYMBIAN)    
     fileMenu->addAction(quitAction);
 
-#if !defined(Q_OS_SYMBIAN)
     QMenu *recordMenu = menu->addMenu(tr("&Recording"));
     recordMenu->addAction(snapshotAction);
     recordMenu->addAction(recordAction);
@@ -763,22 +830,27 @@
     debugMenu->addAction(showWarningsWindow);
 #endif // ! Q_OS_SYMBIAN
 
-    QMenu *settingsMenu = menu->addMenu(tr("S&ettings"));
+    QMenu *settingsMenu = menu->addMenu(tr("&Settings"));
     settingsMenu->addAction(proxyAction);
-#if !defined(Q_OS_SYMBIAN)
+#if defined(Q_OS_SYMBIAN)
+    settingsMenu->addAction(fullscreenAction);
+#else 
     settingsMenu->addAction(recordOptions);
     settingsMenu->addMenu(loggerWindow->preferencesMenu());
-#else // ! Q_OS_SYMBIAN
-    settingsMenu->addAction(fullscreenAction);
-#endif // Q_OS_SYMBIAN
-    settingsMenu->addAction(rotateOrientation);
+#endif // !Q_OS_SYMBIAN
+    settingsMenu->addAction(rotateAction);
 
     QMenu *propertiesMenu = settingsMenu->addMenu(tr("Properties"));
 
+#if defined(Q_OS_SYMBIAN)
+    orientation->addAction(autoOrientationAction);
+#endif
     orientation->addAction(portraitAction);
     orientation->addAction(landscapeAction);
+#if !defined(Q_OS_SYMBIAN)
     orientation->addAction(portraitInvAction);
     orientation->addAction(landscapeInvAction);
+#endif
     propertiesMenu->addActions(orientation->actions());
 
     QMenu *helpMenu = menu->addMenu(tr("&Help"));
@@ -802,6 +874,23 @@
 
 void QDeclarativeViewer::rotateOrientation()
 {
+#if defined(Q_WS_S60)
+    CAknAppUi *appUi = static_cast<CAknAppUi *>(CEikonEnv::Static()->AppUi());
+    if (appUi) {
+        CAknAppUi::TAppUiOrientation oldOrientation = appUi->Orientation();
+        QString newOrientation;
+        if (oldOrientation == CAknAppUi::EAppUiOrientationPortrait) {
+            newOrientation = QLatin1String("Landscape");
+        } else {
+            newOrientation = QLatin1String("Portrait");
+        }
+        foreach (QAction *action, orientation->actions()) {
+            if (action->text() == newOrientation) {
+                changeOrientation(action);
+            }
+        }
+    }
+#else
     QAction *current = orientation->checkedAction();
     QList<QAction *> actions = orientation->actions();
     int index = actions.indexOf(current);
@@ -810,6 +899,7 @@
 
     QAction *newOrientation = actions[(index + 1) % actions.count()];
     changeOrientation(newOrientation);
+#endif
 }
 
 void QDeclarativeViewer::toggleFullScreen()
@@ -927,7 +1017,7 @@
 {
     QString cur = canvas->source().toLocalFile();
     if (useQmlFileBrowser) {
-        open("qrc:/content/Browser.qml");
+        open("qrc:/browser/Browser.qml");
     } else {
         QString fileName = QFileDialog::getOpenFileName(this, tr("Open QML file"), cur, tr("QML Files (*.qml)"));
         if (!fileName.isEmpty()) {
@@ -937,6 +1027,14 @@
     }
 }
 
+void QDeclarativeViewer::openUrl()
+{
+    QString cur = canvas->source().toLocalFile();
+    QString url= QInputDialog::getText(this, tr("Open QML file"), tr("URL of main QML file:"), QLineEdit::Normal, cur);
+    if (!url.isEmpty())
+        open(url);
+}
+
 void QDeclarativeViewer::statusChanged()
 {
     if (canvas->status() == QDeclarativeView::Error && tester)
@@ -1110,8 +1208,10 @@
 {
     if (event->type() == QEvent::WindowActivate) {
         Runtime::instance()->setActiveWindow(true);
+        DeviceOrientation::instance()->resumeListening();
     } else if (event->type() == QEvent::WindowDeactivate) {
         Runtime::instance()->setActiveWindow(false);
+        DeviceOrientation::instance()->pauseListening();
     }
     return QWidget::event(event);
 }
@@ -1319,9 +1419,24 @@
 {
     if (!action)
         return;
+    QString o = action->text();
     action->setChecked(true);
-
-    QString o = action->text();
+#if defined(Q_WS_S60)
+    CAknAppUi *appUi = static_cast<CAknAppUi *>(CEikonEnv::Static()->AppUi());
+    if (appUi) {
+        CAknAppUi::TAppUiOrientation orientation = appUi->Orientation();
+        if (o == QLatin1String("Auto-orientation")) {
+            appUi->SetOrientationL(CAknAppUi::EAppUiOrientationAutomatic);
+            rotateAction->setVisible(false);
+        } else if (o == QLatin1String("Portrait")) {
+            appUi->SetOrientationL(CAknAppUi::EAppUiOrientationPortrait);
+            rotateAction->setVisible(true);
+        } else if (o == QLatin1String("Landscape")) {
+            appUi->SetOrientationL(CAknAppUi::EAppUiOrientationLandscape);
+            rotateAction->setVisible(true);
+        }
+    }
+#else
     if (o == QLatin1String("Portrait"))
         DeviceOrientation::instance()->setOrientation(DeviceOrientation::Portrait);
     else if (o == QLatin1String("Landscape"))
@@ -1330,6 +1445,7 @@
         DeviceOrientation::instance()->setOrientation(DeviceOrientation::PortraitInverted);
     else if (o == QLatin1String("Landscape (inverted)"))
         DeviceOrientation::instance()->setOrientation(DeviceOrientation::LandscapeInverted);
+#endif
 }
 
 void QDeclarativeViewer::orientationChanged()
--- a/tools/qml/qmlruntime.h	Fri Sep 17 08:34:18 2010 +0300
+++ b/tools/qml/qmlruntime.h	Mon Oct 04 01:19:32 2010 +0300
@@ -105,6 +105,7 @@
 
     QDeclarativeView *view() const;
     LoggerWidget *warningsWidget() const;
+    QString currentFile() const { return currentFileOrUrl; }
 
     void enableExperimentalGestures();
 
@@ -112,6 +113,7 @@
     void sceneResized(QSize size);
     bool open(const QString&);
     void openFile();
+    void openUrl();
     void reload();
     void takeSnapShot();
     void toggleRecording();
@@ -169,8 +171,6 @@
     int record_autotime;
     bool devicemode;
     QAction *recordAction;
-    QString currentSkin;
-    bool scaleSkin;
     RecordingDialog *recdlg;
 
     void senseImageMagick();
@@ -179,6 +179,7 @@
     bool ffmpegAvailable;
     bool convertAvailable;
 
+    QAction *rotateAction;
     QActionGroup *orientation;
     QAction *showWarningsWindow;
 
--- a/tools/qml/qmlruntime.qrc	Fri Sep 17 08:34:18 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,9 +0,0 @@
-<RCC>
-    <qresource prefix="/" >
-        <file>content/Browser.qml</file>
-        <file>content/images/up.png</file>
-        <file>content/images/folder.png</file>
-        <file>content/images/titlebar.sci</file>
-        <file>content/images/titlebar.png</file>
-    </qresource>
-</RCC>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tools/qml/startup/Logo.qml	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,179 @@
+/****************************************************************************
+**
+** 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 QtDeclarative 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$
+**
+****************************************************************************/
+
+import Qt 4.7
+
+Rectangle {
+    id: myApp
+    width: 411
+    height: 411
+    color: "transparent"
+    property alias logoState : myApp.state
+    signal animationFinished
+
+    Item {
+        id: sketchBlueHolder
+        width: sketchLogo.width
+        height: sketchLogo.height
+        Image {
+            id: image1
+            x: -44
+            y: -45
+            smooth: true
+            source: "shadow.png"
+        }
+        Item {
+            clip: true
+            width: sketchLogo.width
+            height: sketchLogo.height
+            Image {
+                id: sketchLogo
+                smooth: true
+                source: "qt-sketch.jpg"
+            }
+            Image {
+                id: blueLogo
+                y: -420
+                smooth: true
+                source: "qt-blue.jpg"
+            }
+        }
+    }
+
+    states: [
+        State {
+            name: "showBlueprint"
+            PropertyChanges {
+                target: blueLogo
+                y: 0
+            }
+            PropertyChanges {
+                target: sketchLogo
+                opacity: 0
+            }
+        },
+        State {
+            extend: "showBlueprint"
+            name: "finale"
+            PropertyChanges {
+                target: fullLogo
+                opacity: 1
+            }
+            PropertyChanges {
+                target: backLogo
+                opacity: 1
+                scale: 1
+            }
+            PropertyChanges {
+                target: frontLogo
+                opacity: 1
+                scale: 1
+            }
+            PropertyChanges {
+                target: qtText
+                opacity: 1
+                scale: 1
+            }
+            PropertyChanges {
+                target: sketchBlueHolder
+                opacity: 0
+                scale: 1.4
+            }
+        }
+    ]
+
+    transitions: [
+        Transition {
+            to: "showBlueprint"
+            SequentialAnimation {
+                NumberAnimation { property: "y"; duration: 600; easing.type: "OutBounce" }
+                PropertyAction { target: sketchLogo; property: "opacity" }
+            }
+        },
+        Transition {
+            to: "finale"
+            PropertyAction { target: fullLogo; property: "opacity" }
+            SequentialAnimation {
+                NumberAnimation { target: backLogo; properties: "scale, opacity"; duration: 300 }
+                NumberAnimation { target: frontLogo; properties: "scale, opacity"; duration: 300 }
+                ParallelAnimation {
+                    NumberAnimation { target: qtText; properties: "opacity, scale"; duration: 400; easing.type: "OutQuad" }
+                    NumberAnimation { target: sketchBlueHolder; property: "opacity"; duration: 300; easing.type: "OutQuad" }
+                    NumberAnimation { target: sketchBlueHolder; property: "scale"; duration: 320; easing.type: "OutQuad" }
+                }
+                PauseAnimation { duration: 1000 }
+                ScriptAction { script: myApp.animationFinished() }
+            }
+        }
+    ]
+
+    Item {
+        id: fullLogo
+        opacity: 0
+        Image {
+            id: backLogo
+            x: -16
+            y: -41
+            opacity: 0
+            scale: 0.7
+            smooth: true
+            source: "qt-back.png"
+        }
+        Image {
+            id: frontLogo
+            x: -17
+            y: -41
+            opacity: 0
+            scale: 1.2
+            smooth: true
+            source: "qt-front.png"
+        }
+        Image {
+            id: qtText
+            x: -10
+            y: -41
+            opacity: 0
+            scale: 1.2
+            smooth: true
+            source: "qt-text.png"
+        }
+    }
+}
Binary file tools/qml/startup/qt-back.png has changed
Binary file tools/qml/startup/qt-blue.jpg has changed
Binary file tools/qml/startup/qt-front.png has changed
Binary file tools/qml/startup/qt-sketch.jpg has changed
Binary file tools/qml/startup/qt-text.png has changed
Binary file tools/qml/startup/quick-blur.png has changed
Binary file tools/qml/startup/quick-regular.png has changed
Binary file tools/qml/startup/shadow.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tools/qml/startup/startup.qml	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,173 @@
+/****************************************************************************
+**
+** 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 QtDeclarative 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$
+**
+****************************************************************************/
+
+import Qt 4.7
+
+Rectangle {
+    id: treatsApp
+    width: 800
+    height: 480
+    color: "darkgrey"
+    Component.onCompleted: treatsApp.state = "part1"
+    signal animationFinished
+
+    Item {
+        width: 800
+        height: 480
+        anchors.centerIn: parent
+        clip: true
+
+        Logo {
+            id: logo
+            x: 165
+            y: 35
+            rotation: -15
+            scale: 0.6
+            opacity: 0
+            onAnimationFinished: treatsApp.animationFinished();
+        }
+
+        Item {
+            id: quickblur
+            x: 800//325
+            y: 344
+            Image {
+                id: blurText
+                source: "quick-blur.png"
+            }
+            Image {
+                id: quickregular
+                x: -1
+                y: 0
+                opacity: 0
+                source: "quick-regular.png"
+            }
+            Image {
+                id: star
+                x: -1
+                y: 0
+                opacity: 0
+                source: "white-star.png"
+                smooth: true
+                NumberAnimation on rotation {
+                    from: 0
+                    to: 360
+                    loops: NumberAnimation.Infinite
+                    running: true
+                    duration: 2000                
+                }   
+            }
+        }
+    }
+
+    states: [
+        State {
+            name: "part1"
+            PropertyChanges {
+                target: logo
+                scale: 0.8
+                opacity: 1
+                rotation: 0
+            }
+            PropertyChanges {
+                target: treatsApp
+                color: "black"
+            }
+            PropertyChanges {
+                target: logo
+                y: 10
+            }
+            PropertyChanges {
+                target: quickblur
+                x: logo.x + 145
+            }
+            PropertyChanges {
+                target: blurText
+                opacity: 0
+            }
+            PropertyChanges {
+                target: quickregular
+                opacity: 1
+            }
+            PropertyChanges {
+                target: star
+                x: -7
+                y: -37
+            }
+        }
+    ]
+
+    transitions: [
+        Transition {
+            ParallelAnimation {
+                NumberAnimation { target: logo; property: "opacity"; duration: 500 }
+                NumberAnimation { target: logo; property: "scale"; duration: 4000; }
+                NumberAnimation { target: logo; property: "rotation"; duration: 2000; easing.type: "OutBack"}
+                ColorAnimation { duration: 3000}
+                SequentialAnimation {
+                    PauseAnimation { duration: 1000 }
+                    ScriptAction { script: logo.logoState = "showBlueprint" }
+                    PauseAnimation { duration: 800 }
+                    ScriptAction { script: logo.logoState = "finale" }
+                    PauseAnimation { duration: 800 }
+                    ParallelAnimation {
+                        NumberAnimation { target: quickblur; property: "x"; duration: 200;}
+                        SequentialAnimation {
+                            PauseAnimation { duration: 200}
+                            ParallelAnimation {
+                                NumberAnimation { target: blurText; property: "opacity"; duration: 300;}
+                                NumberAnimation { target: quickregular; property: "opacity"; duration: 300;}
+                            }
+                            NumberAnimation { target: star; property: "opacity"; from: 0; to: 1; duration: 500 }
+                            PauseAnimation { duration: 200 }
+                            NumberAnimation { target: star; property: "opacity"; from: 1; to: 0; duration: 500 }
+                        }
+                        SequentialAnimation {
+                            PauseAnimation { duration: 150}
+                            NumberAnimation { target: logo; property: "y"; duration: 300; easing.type: "OutBounce" }
+                        }
+                    }
+                }
+            }
+        }
+    ]   
+
+} // treatsApp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tools/qml/startup/startup.qrc	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,16 @@
+<RCC>
+    <qresource prefix="/startup">
+        <file>Logo.qml</file>
+        <file>qt-back.png</file>
+        <file>qt-blue.jpg</file>
+        <file>qt-front.png</file>
+        <file>qt-sketch.jpg</file>
+        <file>qt-text.png</file>
+        <file>quick-blur.png</file>
+        <file>quick-regular.png</file>
+        <file>shadow.png</file>
+        <file>startup.qml</file>
+        <file>startup.qrc</file>
+        <file>white-star.png</file>
+    </qresource>
+</RCC>
Binary file tools/qml/startup/white-star.png has changed
--- a/tools/qtconfig/main.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tools/qtconfig/main.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -42,6 +42,9 @@
 #include "ui_previewwidgetbase.h"
 #include "mainwindow.h"
 #include <QApplication>
+#include <QLibraryInfo>
+#include <QLocale>
+#include <QTranslator>
 
 QT_USE_NAMESPACE
 
@@ -50,6 +53,17 @@
     Q_INIT_RESOURCE(qtconfig);
 
     QApplication app(argc, argv);
+
+    QTranslator translator;
+    QTranslator qtTranslator;
+    QString sysLocale = QLocale::system().name();
+    QString resourceDir = QLibraryInfo::location(QLibraryInfo::TranslationsPath);
+    if (translator.load(QLatin1String("qtconfig_") + sysLocale, resourceDir)
+        && qtTranslator.load(QLatin1String("qt_") + sysLocale, resourceDir)) {
+        app.installTranslator(&translator);
+        app.installTranslator(&qtTranslator);
+    }
+
     MainWindow mw;
     mw.show();
     return app.exec();
--- a/tools/qvfb/main.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tools/qvfb/main.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -43,6 +43,9 @@
 
 #include <QApplication>
 #include <QRegExp>
+#include <QLibraryInfo>
+#include <QLocale>
+#include <QTranslator>
 #include <stdlib.h>
 #include <stdio.h>
 #include <signal.h>
@@ -73,6 +76,16 @@
 
     QApplication app( argc, argv );
 
+    QTranslator translator;
+    QTranslator qtTranslator;
+    QString sysLocale = QLocale::system().name();
+    QString resourceDir = QLibraryInfo::location(QLibraryInfo::TranslationsPath);
+    if (translator.load(QLatin1String("qvfb_") + sysLocale, resourceDir)
+        && qtTranslator.load(QLatin1String("qt_") + sysLocale, resourceDir)) {
+        app.installTranslator(&translator);
+        app.installTranslator(&qtTranslator);
+    }
+
     int width = 0;
     int height = 0;
     int depth = -32; // default, but overridable by skin
--- a/tools/qvfb/qvfb.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tools/qvfb/qvfb.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -398,47 +398,47 @@
 
 QMenu* QVFb::createFileMenu()
 {
-    QMenu *file = new QMenu( "File", this );
-    file->addAction( "Configure...", this, SLOT(configure()), 0 );
+    QMenu *file = new QMenu( tr("&File"), this );
+    file->addAction( tr("&Configure..."), this, SLOT(configure()), QKeySequence::Preferences );
     file->addSeparator();
-    file->addAction( "&Save image...", this, SLOT(saveImage()), 0 );
-    file->addAction( "&Animation...", this, SLOT(toggleAnimation()), 0 );
+    file->addAction( tr("&Save image..."), this, SLOT(saveImage()), QKeySequence::Save );
+    file->addAction( tr("&Animation..."), this, SLOT(toggleAnimation()), 0 );
     file->addSeparator();
-    file->addAction( "&Quit", qApp, SLOT(quit()) );
+    file->addAction( tr("&Quit"), qApp, SLOT(quit()), QKeySequence::Quit );
     return file;
 }
 
 QMenu* QVFb::createViewMenu()
 {
-    viewMenu = new QMenu( "View", this );
-    cursorAction = viewMenu->addAction( "Show &Cursor", this,
+    viewMenu = new QMenu( tr("&View"), this );
+    cursorAction = viewMenu->addAction( tr("Show &Cursor"), this,
                                         SLOT(toggleCursor()) );
     cursorAction->setCheckable(true);
     if ( view )
 	enableCursor(true);
-    viewMenu->addAction( "&Refresh Rate...", this, SLOT(changeRate()) );
+    viewMenu->addAction( tr("&Refresh Rate..."), this, SLOT(changeRate()) );
     viewMenu->addSeparator();
-    viewMenu->addAction( "No rotation", this, SLOT(setRot0()) );
-    viewMenu->addAction( "90\260 rotation", this, SLOT(setRot90()) );
-    viewMenu->addAction( "180\260 rotation", this, SLOT(setRot180()) );
-    viewMenu->addAction( "270\260 rotation", this, SLOT(setRot270()) );
+    viewMenu->addAction( tr("&No rotation"), this, SLOT(setRot0()) );
+    viewMenu->addAction( tr("&90\260 rotation"), this, SLOT(setRot90()) );
+    viewMenu->addAction( tr("1&80\260 rotation"), this, SLOT(setRot180()) );
+    viewMenu->addAction( tr("2&70\260 rotation"), this, SLOT(setRot270()) );
     viewMenu->addSeparator();
-    viewMenu->addAction( "Zoom scale &0.5", this, SLOT(setZoomHalf()) );
-    viewMenu->addAction( "Zoom scale 0.75", this, SLOT(setZoom075()) );
-    viewMenu->addAction( "Zoom scale &1", this, SLOT(setZoom1()) );
-    viewMenu->addAction( "Zoom scale &2", this, SLOT(setZoom2()) );
-    viewMenu->addAction( "Zoom scale &3", this, SLOT(setZoom3()) );
-    viewMenu->addAction( "Zoom scale &4", this, SLOT(setZoom4()) );
+    viewMenu->addAction( tr("Zoom scale &0.5"), this, SLOT(setZoomHalf()) );
+    viewMenu->addAction( tr("Zoom scale 0.7&5"), this, SLOT(setZoom075()) );
+    viewMenu->addAction( tr("Zoom scale &1"), this, SLOT(setZoom1()) );
+    viewMenu->addAction( tr("Zoom scale &2"), this, SLOT(setZoom2()) );
+    viewMenu->addAction( tr("Zoom scale &3"), this, SLOT(setZoom3()) );
+    viewMenu->addAction( tr("Zoom scale &4"), this, SLOT(setZoom4()) );
     viewMenu->addSeparator();
-    viewMenu->addAction( "Zoom scale...", this, SLOT(setZoom()) );
+    viewMenu->addAction( tr("Zoom &scale..."), this, SLOT(setZoom()) );
     return viewMenu;
 }
 
 
 QMenu* QVFb::createHelpMenu()
 {
-    QMenu *help = new QMenu( "Help", this );
-    help->addAction("About...", this, SLOT(about()));
+    QMenu *help = new QMenu( tr("&Help"), this );
+    help->addAction(tr("&About..."), this, SLOT(about()));
     return help;
 }
 
@@ -525,17 +525,17 @@
 void QVFb::saveImage()
 {
     QImage img = view->image();
-    QString filename = QFileDialog::getSaveFileName(this, "Save Main Screen image", "snapshot.png", "Portable Network Graphics (*.png)");
+    QString filename = QFileDialog::getSaveFileName(this, tr("Save Main Screen image"), tr("snapshot.png"), tr("Portable Network Graphics (*.png)"));
     if (!filename.isEmpty()){
         if(!img.save(filename,"PNG"))
-                QMessageBox::critical(this, "Save Main Screen Image", "Save failed. Check that you have permission to write to the target directory.");
+                QMessageBox::critical(this, tr("Save Main Screen Image"), tr("Save failed. Check that you have permission to write to the target directory."));
     }
     if (secondaryView) {
         QImage img = view->image();
-        QString filename = QFileDialog::getSaveFileName(this, "Save Second Screen image", "snapshot.png", "Portable Network Graphics (*.png)");
+        QString filename = QFileDialog::getSaveFileName(this, tr("Save Second Screen image"), tr("snapshot.png"), tr("Portable Network Graphics (*.png)"));
         if (!filename.isEmpty()) {
             if(!img.save(filename,"PNG"))
-                QMessageBox::critical(this, "Save Second Screen Image", "Save failed. Check that you have permission to write to the target directory.");
+                QMessageBox::critical(this, tr("Save Second Screen Image"), tr("Save failed. Check that you have permission to write to the target directory."));
         }
     }
 }
@@ -577,7 +577,7 @@
 
 void QVFb::about()
 {
-    QMessageBox::about(this, "About QVFB",
+    QMessageBox::about(this, tr("About QVFB"), tr(
 	"<h2>The Qt for Embedded Linux Virtual X11 Framebuffer</h2>"
 	"<p>This application runs under Qt for X11, emulating a simple framebuffer, "
 	"which the Qt for Embedded Linux server and clients can attach to just as if "
@@ -586,7 +586,7 @@
 	"Linux applications under X11 without having to switch to a virtual console. "
 	"This means you can comfortably use your other development tools such "
 	"as GUI profilers and debuggers."
-    );
+    ));
 }
 
 void QVFb::findSkins(const QString &currentSkin)
--- a/tools/qvfb/qvfbratedlg.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tools/qvfb/qvfbratedlg.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -55,7 +55,7 @@
     QVBoxLayout *tl = new QVBoxLayout(this);
     tl->setMargin(5);
 
-    QLabel *label = new QLabel("Target frame rate:", this);
+    QLabel *label = new QLabel(tr("Target frame rate:"), this);
     tl->addWidget(label);
 
     QHBoxLayout *hl = new QHBoxLayout();
@@ -67,15 +67,15 @@
     rateSlider->setValue(rate);
     hl->addWidget(rateSlider);
     connect(rateSlider, SIGNAL(valueChanged(int)), this, SLOT(rateChanged(int)));
-    rateLabel = new QLabel(QString("%1fps").arg(rate), this);
+    rateLabel = new QLabel(tr("%1fps").arg(rate), this);
     hl->addWidget(rateLabel);
 
     hl = new QHBoxLayout();
     tl->addItem(hl);
-    QPushButton *pb = new QPushButton("OK", this);
+    QPushButton *pb = new QPushButton(tr("OK"), this);
     connect(pb, SIGNAL(clicked()), this, SLOT(ok()));
     hl->addWidget(pb);
-    pb = new QPushButton("Cancel", this);
+    pb = new QPushButton(tr("Cancel"), this);
     connect(pb, SIGNAL(clicked()), this, SLOT(cancel()));
     hl->addWidget(pb);
 }
@@ -84,7 +84,7 @@
 {
     if (rateSlider->value() != r)
 	rateSlider->setValue(r);
-    rateLabel->setText(QString("%1fps").arg(r));
+    rateLabel->setText(tr("%1fps").arg(r));
     emit updateRate(r);
 }
 
--- a/tools/runonphone/main.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tools/runonphone/main.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -51,6 +51,7 @@
 
 #include "trksignalhandler.h"
 #include "serenum.h"
+#include "ossignalconverter.h"
 
 void printUsage(QTextStream& outstream, QString exeName)
 {
@@ -235,6 +236,8 @@
     QObject::connect(&handler, SIGNAL(getRegistersAndCallStack(uint,uint)), launcher.data(), SLOT(getRegistersAndCallStack(uint,uint)));
     QObject::connect(launcher.data(), SIGNAL(finished()), &handler, SLOT(finished()));
 
+    QObject::connect(OsSignalConverter::instance(), SIGNAL(terminate()), launcher.data(), SLOT(terminate()), Qt::QueuedConnection);
+
     QTimer timer;
     timer.setSingleShot(true);
     QObject::connect(&timer, SIGNAL(timeout()), &handler, SLOT(timeout()));
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tools/runonphone/ossignalconverter.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,120 @@
+/****************************************************************************
+**
+** 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 tools applications 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 "ossignalconverter_p.h"
+#include <signal.h>
+#include <QTimer>
+
+Q_GLOBAL_STATIC(OsSignalConverter, osSignalConverter);
+
+OsSignalConverter* OsSignalConverter::instance()
+{
+    return osSignalConverter();
+}
+
+OsSignalConverter::OsSignalConverter()
+: d(new OsSignalConverterPrivate(this))
+{
+};
+
+OsSignalConverter::~OsSignalConverter()
+{
+}
+
+OsSignalConverterPrivate::OsSignalConverterPrivate(OsSignalConverter* owner)
+: QObject(owner), q(owner), poller(new QTimer(this))
+{
+    trap();
+    connect(poller, SIGNAL(timeout()), this, SLOT(poll()));
+    poller->start(1000);
+}
+
+OsSignalConverterPrivate::~OsSignalConverterPrivate()
+{
+    untrap();
+}
+
+void OsSignalConverterPrivate::trap()
+{
+    signal(SIGINT, handler);
+    signal(SIGTERM, handler);
+#ifdef SIGBREAK
+    signal(SIGBREAK, handler);
+#endif
+#ifdef SIGHUP
+    signal(SIGHUP, handler);
+#endif
+#ifdef SIGQUIT
+    signal(SIGQUIT, handler);
+#endif
+}
+
+void OsSignalConverterPrivate::untrap()
+{
+    signal(SIGINT, SIG_DFL);
+    signal(SIGTERM, SIG_DFL);
+#ifdef SIGBREAK
+    signal(SIGBREAK, SIG_DFL);
+#endif
+#ifdef SIGHUP
+    signal(SIGHUP, SIG_DFL);
+#endif
+#ifdef SIGQUIT
+    signal(SIGQUIT, SIG_DFL);
+#endif
+}
+
+void OsSignalConverterPrivate::handler(int sig)
+{
+    untrap(); //allow 2nd ctrl-c to really kill us
+    terminateRequest = sig;
+}
+
+void OsSignalConverterPrivate::poll()
+{
+    if (terminateRequest) {
+        fprintf(stderr, "\n*** caught signal %d, terminating ***\n", terminateRequest);
+        poller->stop();
+        emit q->terminate();
+    }
+}
+
+sig_atomic_t OsSignalConverterPrivate::terminateRequest;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tools/runonphone/ossignalconverter.h	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,63 @@
+/****************************************************************************
+**
+** 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 tools applications 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 OSSIGNALCONVERTER_H
+#define OSSIGNALCONVERTER_H
+#include <QObject>
+
+class OsSignalConverterPrivate;
+
+class OsSignalConverter : public QObject
+{
+    friend class OsSignalConverterPrivate;
+    Q_OBJECT
+public:
+    static OsSignalConverter* instance();
+    OsSignalConverter();
+    ~OsSignalConverter();
+signals:
+    //emitted when this process is asked to quit, e.g. by SIGINT
+    void terminate();
+private:
+    OsSignalConverterPrivate *d;
+};
+
+#endif // OSSIGNALCONVERTER_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tools/runonphone/ossignalconverter_p.h	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,71 @@
+/****************************************************************************
+**
+** 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 tools applications 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 OSSIGNALCONVERTER_P_H
+#define OSSIGNALCONVERTER_P_H
+#include "ossignalconverter.h"
+#include <signal.h>
+
+class QTimer;
+class OsSignalConverterPrivate : public QObject
+{
+    Q_OBJECT
+public:
+    OsSignalConverterPrivate(OsSignalConverter* owner);
+    ~OsSignalConverterPrivate();
+private:
+
+    static void trap();
+    static void untrap();
+    static void handler(int signal);
+
+private slots:
+
+    void poll();
+
+private:
+
+    OsSignalConverter* q;
+    static sig_atomic_t terminateRequest;
+    QTimer *poller;
+};
+
+#endif // OSSIGNALCONVERTER_P_H
--- a/tools/runonphone/runonphone.pro	Fri Sep 17 08:34:18 2010 +0300
+++ b/tools/runonphone/runonphone.pro	Mon Oct 04 01:19:32 2010 +0300
@@ -7,10 +7,13 @@
 include(symbianutils/symbianutils.pri)
 
 SOURCES += main.cpp \
-    trksignalhandler.cpp
+    trksignalhandler.cpp \
+    ossignalconverter.cpp
 
 HEADERS += trksignalhandler.h \
-    serenum.h
+    serenum.h \
+    ossignalconverter.h \
+    ossignalconverter_p.h
 
 DEFINES += SYMBIANUTILS_INCLUDE_PRI
 
@@ -28,4 +31,5 @@
     SOURCES += serenum_stub.cpp
 }
 
-
+target.path=$$[QT_INSTALL_BINS]
+INSTALLS        += target
--- a/tools/shared/qtpropertybrowser/qtpropertymanager.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/tools/shared/qtpropertybrowser/qtpropertymanager.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -2399,15 +2399,23 @@
     if (it == d_ptr->m_values.constEnd())
         return QString();
 
-    QLocale loc = it.value();
+    const QLocale loc = it.value();
 
     int langIdx = 0;
     int countryIdx = 0;
-    metaEnumProvider()->localeToIndex(loc.language(), loc.country(), &langIdx, &countryIdx);
-    QString str = tr("%1, %2")
-            .arg(metaEnumProvider()->languageEnumNames().at(langIdx))
-            .arg(metaEnumProvider()->countryEnumNames(loc.language()).at(countryIdx));
-    return str;
+    const QtMetaEnumProvider *me = metaEnumProvider();
+    me->localeToIndex(loc.language(), loc.country(), &langIdx, &countryIdx);
+    if (langIdx < 0) {
+        qWarning("QtLocalePropertyManager::valueText: Unknown language %d", loc.language());
+        return tr("<Invalid>");
+    }
+    const QString languageName = me->languageEnumNames().at(langIdx);
+    if (countryIdx < 0) {
+        qWarning("QtLocalePropertyManager::valueText: Unknown country %d for %s", loc.country(), qPrintable(languageName));
+        return languageName;
+    }
+    const QString countryName = me->countryEnumNames(loc.language()).at(countryIdx);
+    return tr("%1, %2").arg(languageName, countryName);
 }
 
 /*!
@@ -2635,8 +2643,8 @@
     if (it == d_ptr->m_values.constEnd())
         return QString();
     const QPoint v = it.value();
-    return QString(tr("(%1, %2)").arg(QString::number(v.x()))
-                                 .arg(QString::number(v.y())));
+    return tr("(%1, %2)").arg(QString::number(v.x()))
+                         .arg(QString::number(v.y()));
 }
 
 /*!
@@ -2876,8 +2884,8 @@
         return QString();
     const QPointF v = it.value().val;
     const int dec =  it.value().decimals;
-    return QString(tr("(%1, %2)").arg(QString::number(v.x(), 'f', dec))
-                                 .arg(QString::number(v.y(), 'f', dec)));
+    return tr("(%1, %2)").arg(QString::number(v.x(), 'f', dec))
+                         .arg(QString::number(v.y(), 'f', dec));
 }
 
 /*!
@@ -3196,8 +3204,8 @@
     if (it == d_ptr->m_values.constEnd())
         return QString();
     const QSize v = it.value().val;
-    return QString(tr("%1 x %2").arg(QString::number(v.width()))
-                                .arg(QString::number(v.height())));
+    return tr("%1 x %2").arg(QString::number(v.width()))
+                        .arg(QString::number(v.height()));
 }
 
 /*!
@@ -3561,8 +3569,8 @@
         return QString();
     const QSizeF v = it.value().val;
     const int dec = it.value().decimals;
-    return QString(tr("%1 x %2").arg(QString::number(v.width(), 'f', dec))
-                                .arg(QString::number(v.height(), 'f', dec)));
+    return tr("%1 x %2").arg(QString::number(v.width(), 'f', dec))
+                        .arg(QString::number(v.height(), 'f', dec));
 }
 
 /*!
@@ -3954,10 +3962,10 @@
     if (it == d_ptr->m_values.constEnd())
         return QString();
     const QRect v = it.value().val;
-    return QString(tr("[(%1, %2), %3 x %4]").arg(QString::number(v.x()))
-                                .arg(QString::number(v.y()))
-                                .arg(QString::number(v.width()))
-                                .arg(QString::number(v.height())));
+    return tr("[(%1, %2), %3 x %4]").arg(QString::number(v.x()))
+                                    .arg(QString::number(v.y()))
+                                    .arg(QString::number(v.width()))
+                                    .arg(QString::number(v.height()));
 }
 
 /*!
--- a/translations/assistant_de.ts	Fri Sep 17 08:34:18 2010 +0300
+++ b/translations/assistant_de.ts	Mon Oct 04 01:19:32 2010 +0300
@@ -4,7 +4,6 @@
 <context>
     <name>AboutDialog</name>
     <message>
-        <location filename="../tools/assistant/tools/assistant/aboutdialog.cpp" line="+117"/>
         <source>&amp;Close</source>
         <translation>&amp;Schließen</translation>
     </message>
@@ -12,19 +11,16 @@
 <context>
     <name>AboutLabel</name>
     <message>
-        <location line="-15"/>
         <source>Warning</source>
         <translation>Achtung</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Unable to launch external application.
 </source>
         <translation>Fehler beim Starten der externen Anwendung.
 </translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>OK</source>
         <translation>OK</translation>
     </message>
@@ -32,17 +28,14 @@
 <context>
     <name>Assistant</name>
     <message>
-        <location filename="../tools/assistant/tools/assistant/main.cpp" line="+177"/>
         <source>Error registering documentation file &apos;%1&apos;: %2</source>
         <translation>Beim Registrieren der Dokumentationsdatei &apos;%1&apos; trat ein Fehler auf: %2</translation>
     </message>
     <message>
-        <location line="+39"/>
         <source>Error: %1</source>
         <translation>Fehler: %1</translation>
     </message>
     <message>
-        <location line="+42"/>
         <source>Could not register documentation file
 %1
 
@@ -54,12 +47,10 @@
 %2</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Documentation successfully registered.</source>
         <translation>Dokumentation erfolgreich registriert.</translation>
     </message>
     <message>
-        <location line="+12"/>
         <source>Could not unregister documentation file
 %1
 
@@ -71,27 +62,22 @@
 %2</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Documentation successfully unregistered.</source>
         <translation>Dokumentation erfolgreich entfernt.</translation>
     </message>
     <message>
-        <location line="+55"/>
         <source>Error reading collection file &apos;%1&apos;: %2.</source>
         <translation>Fehler beim Lesen der Katalogdatei &apos;%1&apos;: %2</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>Error creating collection file &apos;%1&apos;: %2.</source>
         <translation>Fehler beim Erstellen der Katalogdatei &apos;%1&apos;: %2.</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Error reading collection file &apos;%1&apos;: %2</source>
         <translation>Fehler beim Lesen der Katalogdatei &apos;%1&apos;: %2</translation>
     </message>
     <message>
-        <location line="+53"/>
         <source>Cannot load sqlite database driver!</source>
         <translation>Der Datenbanktreiber für SQLite kann nicht geladen werden.</translation>
     </message>
@@ -99,139 +85,229 @@
 <context>
     <name>BookmarkDialog</name>
     <message>
-        <location filename="../tools/assistant/tools/assistant/bookmarkdialog.ui"/>
         <source>Add Bookmark</source>
         <translation>Lesezeichen hinzufügen</translation>
     </message>
     <message>
-        <location/>
         <source>Bookmark:</source>
         <translation>Lesezeichen:</translation>
     </message>
     <message>
-        <location/>
         <source>Add in Folder:</source>
         <translation>Erstellen in:</translation>
     </message>
     <message>
-        <location/>
         <source>New Folder</source>
         <translation>Neuer Ordner</translation>
     </message>
     <message>
-        <location/>
         <source>+</source>
         <translation>+</translation>
     </message>
+    <message>
+        <source>Rename Folder</source>
+        <translation>Ordner umbenennen</translation>
+    </message>
 </context>
 <context>
     <name>BookmarkManager</name>
     <message>
-        <location filename="../tools/assistant/tools/assistant/bookmarkmanager.cpp" line="+151"/>
         <source>Untitled</source>
         <translation>Ohne Titel</translation>
     </message>
     <message>
-        <location line="+65"/>
         <source>Remove</source>
         <translation>Entfernen</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>Wenn Sie diesen Ordner löschen, wird auch&lt;br&gt;dessen kompletter Inhalt gelöscht. Möchten Sie wirklich fortfahren?</translation>
     </message>
     <message>
-        <location line="+147"/>
         <source>Manage Bookmarks...</source>
         <translation>Lesezeichen verwalten...</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Add Bookmark...</source>
         <translation>Lesezeichen hinzufügen ...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Ctrl+D</source>
         <translation>Ctrl+D</translation>
     </message>
     <message>
-        <location line="+68"/>
         <source>Delete Folder</source>
         <translation>Ordner löschen</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Rename Folder</source>
         <translation>Ordner umbenennen</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Show Bookmark</source>
         <translation>Lesezeichen öffnen</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Show Bookmark in New Tab</source>
         <translation>Lesezeichen in neuem Reiter öffnen</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Delete Bookmark</source>
         <translation>Lesezeichen löschen</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Rename Bookmark</source>
         <translation>Lesezeichen umbenennen</translation>
     </message>
 </context>
 <context>
+    <name>BookmarkManagerWidget</name>
+    <message>
+        <source>Manage Bookmarks</source>
+        <translation>Lesezeichen verwalten</translation>
+    </message>
+    <message>
+        <source>Search:</source>
+        <translation>Suche:</translation>
+    </message>
+    <message>
+        <source>Remove</source>
+        <translation>Entfernen</translation>
+    </message>
+    <message>
+        <source>Import and Backup</source>
+        <translation>Importieren und Sichern</translation>
+    </message>
+    <message>
+        <source>OK</source>
+        <translation>OK</translation>
+    </message>
+    <message>
+        <source>Import...</source>
+        <translation>Importieren...</translation>
+    </message>
+    <message>
+        <source>Export...</source>
+        <translation>Exportieren...</translation>
+    </message>
+    <message>
+        <source>Open File</source>
+        <translation>Datei öffnen</translation>
+    </message>
+    <message>
+        <source>Files (*.xbel)</source>
+        <translation>Dateien (*.xbel)</translation>
+    </message>
+    <message>
+        <source>Save File</source>
+        <translation>Datei speichern</translation>
+    </message>
+    <message>
+        <source>Qt Assistant</source>
+        <translation>Qt Assistant</translation>
+    </message>
+    <message>
+        <source>Unable to save bookmarks.</source>
+        <translation>Die Lesezeichen konnten nicht gespeichert werden.</translation>
+    </message>
+    <message>
+        <source>You are goingto delete a Folder, this will also&lt;br&gt; remove it&apos;s content. Are you sure to continue?</source>
+        <translation>Beim Löschen des Ordners wird auch dessen Inhalt entfernt.&lt;br&gt;Möchten Sie fortsetzen?</translation>
+    </message>
+    <message>
+        <source>Delete Folder</source>
+        <translation>Ordner löschen</translation>
+    </message>
+    <message>
+        <source>Rename Folder</source>
+        <translation>Ordner umbenennen</translation>
+    </message>
+    <message>
+        <source>Show Bookmark</source>
+        <translation>Lesezeichen anzeigen</translation>
+    </message>
+    <message>
+        <source>Show Bookmark in New Tab</source>
+        <translation>Lesezeichen in neuem Reiter öffnen</translation>
+    </message>
+    <message>
+        <source>Delete Bookmark</source>
+        <translation>Lesezeichen löschen</translation>
+    </message>
+    <message>
+        <source>Rename Bookmark</source>
+        <translation>Lesezeichen umbenennen</translation>
+    </message>
+</context>
+<context>
+    <name>BookmarkModel</name>
+    <message>
+        <source>Name</source>
+        <translation>Name</translation>
+    </message>
+    <message>
+        <source>Address</source>
+        <translation>Adresse</translation>
+    </message>
+    <message>
+        <source>Bookmarks Menu</source>
+        <translation>Lesezeichen-Menü</translation>
+    </message>
+</context>
+<context>
+    <name>BookmarkWidget</name>
+    <message>
+        <source>Bookmarks</source>
+        <translation>Lesezeichen</translation>
+    </message>
+    <message>
+        <source>Filter:</source>
+        <translation>Filter:</translation>
+    </message>
+    <message>
+        <source>Add</source>
+        <translation>Hinzufügen</translation>
+    </message>
+    <message>
+        <source>Remove</source>
+        <translation>Entfernen</translation>
+    </message>
+</context>
+<context>
     <name>CentralWidget</name>
     <message>
-        <location filename="../tools/assistant/tools/assistant/centralwidget.cpp" line="+121"/>
         <source>Add new page</source>
         <translation>Neue Seite hinzufügen</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Close current page</source>
         <translation>Aktuelle Seite schließen</translation>
     </message>
     <message>
-        <location line="+287"/>
         <source>Print Document</source>
         <translation>Drucken</translation>
     </message>
     <message>
-        <location line="+126"/>
-        <location line="+2"/>
         <source>unknown</source>
         <translation>unbekannt</translation>
     </message>
     <message>
-        <location line="+100"/>
         <source>Add New Page</source>
         <translation>Neue Seite hinzufügen</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Close This Page</source>
         <translation>Aktuelle Seite schließen</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Close Other Pages</source>
         <translation>Andere Seiten schließen</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Add Bookmark for this Page...</source>
         <translation>Lesezeichen für diese Seite hinzufügen ...</translation>
     </message>
     <message>
-        <location line="+264"/>
         <source>Search</source>
         <translation>Suchen</translation>
     </message>
@@ -239,62 +315,50 @@
 <context>
     <name>CmdLineParser</name>
     <message>
-        <location filename="../tools/assistant/tools/assistant/cmdlineparser.cpp" line="+137"/>
         <source>Unknown option: %1</source>
         <translation>Unbekannte Option: %1</translation>
     </message>
     <message>
-        <location line="+87"/>
         <source>Unknown widget: %1</source>
         <translation>Unbekanntes Widget-Objekt: %1</translation>
     </message>
     <message>
-        <location line="-54"/>
         <source>The collection file &apos;%1&apos; does not exist.</source>
         <translation>Die Katalogdatei &apos;%1&apos; existiert nicht.</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Missing collection file.</source>
         <translation>Fehlende Katalogdatei.</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>Invalid URL &apos;%1&apos;.</source>
         <translation>Ungültige URL &apos;%1&apos;.</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Missing URL.</source>
         <translation>Fehlende URL.</translation>
     </message>
     <message>
-        <location line="+38"/>
         <source>Missing widget.</source>
         <translation>Fehlendes Widget-Objekt.</translation>
     </message>
     <message>
-        <location line="+23"/>
         <source>The Qt help file &apos;%1&apos; does not exist.</source>
         <translation>Die Hilfedatei &apos;%1&apos; existiert nicht.</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Missing help file.</source>
         <translation>Fehlende Hilfedatei.</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>Missing filter argument.</source>
         <translation>Das Filter-Argument fehlt.</translation>
     </message>
     <message>
-        <location line="+20"/>
         <source>Error</source>
         <translation>Fehler</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Notice</source>
         <translation>Hinweis</translation>
     </message>
@@ -302,12 +366,10 @@
 <context>
     <name>ContentWindow</name>
     <message>
-        <location filename="../tools/assistant/tools/assistant/contentwindow.cpp" line="+171"/>
         <source>Open Link</source>
         <translation>Link öffnen</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Open Link in New Tab</source>
         <translation>Link in neuem Reiter öffnen</translation>
     </message>
@@ -315,40 +377,52 @@
 <context>
     <name>FilterNameDialogClass</name>
     <message>
-        <location filename="../tools/assistant/tools/assistant/filternamedialog.ui"/>
         <source>Add Filter Name</source>
         <translation>Filternamen hinzufügen</translation>
     </message>
     <message>
-        <location/>
         <source>Filter Name:</source>
         <translation>Filtername:</translation>
     </message>
 </context>
 <context>
+    <name>FindWidget</name>
+    <message>
+        <source>Previous</source>
+        <translation>Voriges</translation>
+    </message>
+    <message>
+        <source>Next</source>
+        <translation>Nächstes</translation>
+    </message>
+    <message>
+        <source>Case Sensitive</source>
+        <translation>Groß/Kleinschreibung beachten</translation>
+    </message>
+    <message>
+        <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;Seitenende erreicht</translation>
+    </message>
+</context>
+<context>
     <name>FontPanel</name>
     <message>
-        <location filename="../tools/shared/fontpanel/fontpanel.cpp" line="+63"/>
         <source>Font</source>
         <translation>Schriftart</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>&amp;Writing system</source>
         <translation>S&amp;kript</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>&amp;Family</source>
         <translation>&amp;Schriftart</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>&amp;Style</source>
         <translation>S&amp;chriftschnitt</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>&amp;Point size</source>
         <translation>&amp;Schriftgrad</translation>
     </message>
@@ -356,30 +430,37 @@
 <context>
     <name>HelpViewer</name>
     <message>
-        <location filename="../tools/assistant/tools/assistant/helpviewer.cpp" line="+56"/>
         <source>&lt;title&gt;about:blank&lt;/title&gt;</source>
         <translation>&lt;title&gt;about:blank&lt;/title&gt;</translation>
     </message>
     <message>
-        <location line="+6"/>
         <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;Fehler 404 ...&lt;/title&gt;&lt;div align=&quot;center&quot;&gt;&lt;br&gt;&lt;br&gt;&lt;h1&gt;Die Seite kann nicht gefunden werden.&lt;/h1&gt;&lt;br&gt;&lt;h3&gt;&apos;%1&apos;&lt;/h3&gt;&lt;/div&gt;</translation>
     </message>
+    <message>
+        <source>Copy &amp;Link Location</source>
+        <translation>&amp;Link-Adresse kopieren</translation>
+    </message>
+    <message>
+        <source>Open Link in New Tab	Ctrl+LMB</source>
+        <translation>Link in neuem Reiter öffnen (Strg + linke Maustaste)</translation>
+    </message>
+    <message>
+        <source>Open Link in New Tab</source>
+        <translation>Link in neuem Reiter öffnen</translation>
+    </message>
 </context>
 <context>
     <name>IndexWindow</name>
     <message>
-        <location filename="../tools/assistant/tools/assistant/indexwindow.cpp" line="+68"/>
         <source>&amp;Look for:</source>
         <translation>Suchen &amp;nach:</translation>
     </message>
     <message>
-        <location line="+74"/>
         <source>Open Link</source>
         <translation>Link öffnen</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Open Link in New Tab</source>
         <translation>Link in neuem Reiter öffnen</translation>
     </message>
@@ -387,99 +468,76 @@
 <context>
     <name>InstallDialog</name>
     <message>
-        <location filename="../tools/assistant/tools/assistant/installdialog.ui"/>
-        <location filename="../tools/assistant/tools/assistant/installdialog.cpp" line="+78"/>
         <source>Install Documentation</source>
         <translation>Dokumentation installieren</translation>
     </message>
     <message>
-        <location filename="../tools/assistant/tools/assistant/installdialog.cpp" line="+33"/>
         <source>Downloading documentation info...</source>
         <translation>Dokumentationsinformation herunterladen ...</translation>
     </message>
     <message>
-        <location line="+51"/>
         <source>Download canceled.</source>
         <translation>Herunterladen abgebrochen.</translation>
     </message>
     <message>
-        <location line="+28"/>
-        <location line="+79"/>
-        <location line="+27"/>
         <source>Done.</source>
         <translation>Fertig.</translation>
     </message>
     <message>
-        <location line="-91"/>
         <source>The file %1 already exists. Do you want to overwrite it?</source>
         <translation>Die Datei %1 existiert bereits. Möchten Sie sie überschreiben?</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>Unable to save the file %1: %2.</source>
         <translation>Die Datei %1 kann nicht gespeichert werden: %2.</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Downloading %1...</source>
         <translation>Herunterladen der Datei %1 ...</translation>
     </message>
     <message>
-        <location line="+20"/>
-        <location line="+42"/>
-        <location line="+40"/>
         <source>Download failed: %1.</source>
         <translation>Herunterladen fehlgeschlagen: %1.</translation>
     </message>
     <message>
-        <location line="-72"/>
         <source>Documentation info file is corrupt!</source>
         <translation>Die Dokumentationsdatei ist beschädigt.</translation>
     </message>
     <message>
-        <location line="+37"/>
         <source>Download failed: Downloaded file is corrupted.</source>
         <translation>Herunterladen fehlgeschlagen: Die Datei ist wahrscheinlich beschädigt.</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Installing documentation %1...</source>
         <translation>Dokumentation %1 installieren ...</translation>
     </message>
     <message>
-        <location line="+23"/>
         <source>Error while installing documentation:
 %1</source>
         <translation>Fehler bei der Installation von:
 %1</translation>
     </message>
     <message>
-        <location filename="../tools/assistant/tools/assistant/installdialog.ui"/>
         <source>Available Documentation:</source>
         <translation>Verfügbare Dokumentation:</translation>
     </message>
     <message>
-        <location/>
         <source>Install</source>
         <translation>Installieren</translation>
     </message>
     <message>
-        <location/>
         <source>Cancel</source>
         <translation>Abbrechen</translation>
     </message>
     <message>
-        <location/>
         <source>Close</source>
         <translation>Schließen</translation>
     </message>
     <message>
-        <location/>
         <source>Installation Path:</source>
         <translation>Installationsordner:</translation>
     </message>
     <message>
-        <location/>
         <source>...</source>
         <translation>...</translation>
     </message>
@@ -487,297 +545,234 @@
 <context>
     <name>MainWindow</name>
     <message>
-        <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="+123"/>
-        <location line="+369"/>
         <source>Index</source>
         <translation>Index</translation>
     </message>
     <message>
-        <location line="-363"/>
-        <location line="+361"/>
         <source>Contents</source>
         <translation>Inhalt</translation>
     </message>
     <message>
-        <location line="-354"/>
-        <location line="+358"/>
         <source>Bookmarks</source>
         <translation>Lesezeichen</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Search</source>
         <translation>Suchen</translation>
     </message>
     <message>
-        <location line="-338"/>
-        <location line="+680"/>
-        <location line="+284"/>
         <source>Qt Assistant</source>
         <translation>Qt Assistant</translation>
     </message>
     <message>
-        <location line="-705"/>
         <source>Page Set&amp;up...</source>
         <translation>S&amp;eite einrichten ...</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Print Preview...</source>
         <translation>Druckvorschau ...</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>&amp;Print...</source>
         <translation>&amp;Drucken ...</translation>
     </message>
     <message>
-        <location line="-10"/>
         <source>New &amp;Tab</source>
         <translation>Neuer &amp;Reiter</translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>&amp;Close Tab</source>
         <translation>Reiter &amp;schließen</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>&amp;Quit</source>
         <translation>&amp;Beenden</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>CTRL+Q</source>
         <translation>CTRL+Q</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>&amp;Copy selected Text</source>
         <translation>Ausgewählten Text &amp;kopieren</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>&amp;Find in Text...</source>
         <translation>&amp;Textsuche ...</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>&amp;Find</source>
         <translation>&amp;Suchen</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Find &amp;Next</source>
         <translation>&amp;Weitersuchen</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Find &amp;Previous</source>
         <translation>&amp;Vorheriges suchen</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Preferences...</source>
         <translation>Einstellungen ...</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Zoom &amp;in</source>
         <translation>&amp;Vergrößern</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Zoom &amp;out</source>
         <translation>Ver&amp;kleinern</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Normal &amp;Size</source>
         <translation>Standard&amp;größe</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;Startseite</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>&amp;Back</source>
         <translation>&amp;Rückwärts</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>&amp;Forward</source>
         <translation>&amp;Vorwärts</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Sync with Table of Contents</source>
         <translation>Seite mit Inhaltsangabe abgleichen</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Sync</source>
         <translation>Synchronisieren</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Next Page</source>
         <translation>Nächste Seite</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>Vorherige Seite</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Ctrl+Alt+Left</source>
         <translation>Ctrl+Alt+Left</translation>
     </message>
     <message>
-        <location line="+596"/>
         <source>Could not register file &apos;%1&apos;: %2</source>
         <translation>Die Datei &apos;%1&apos; konnte nicht registriert werden: %2</translation>
     </message>
     <message>
-        <location line="-589"/>
         <source>About...</source>
         <translation>Über ...</translation>
     </message>
     <message>
-        <location line="+21"/>
         <source>Navigation Toolbar</source>
         <translation>Navigationsleiste</translation>
     </message>
     <message>
-        <location line="+69"/>
         <source>Toolbars</source>
         <translation>Werkzeugleisten</translation>
     </message>
     <message>
-        <location line="+16"/>
         <source>Filter Toolbar</source>
         <translation>Filterleiste</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Filtered by:</source>
         <translation>Filter:</translation>
     </message>
     <message>
-        <location line="+26"/>
         <source>Address Toolbar</source>
         <translation>Adressleiste</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Address:</source>
         <translation>Adresse:</translation>
     </message>
     <message>
-        <location line="+112"/>
         <source>Could not find the associated content item.</source>
         <translation>Der zugehörige Inhaltseintrag konnte nicht gefunden werden.</translation>
     </message>
     <message>
-        <location line="+60"/>
         <source>About %1</source>
         <translation>Über %1</translation>
     </message>
     <message>
-        <location line="+175"/>
         <source>Updating search index</source>
         <translation>Suchindex wird aufgebaut</translation>
     </message>
     <message>
-        <location line="-669"/>
         <source>Looking for Qt Documentation...</source>
         <translation>Suche nach Qt-Dokumentation ...</translation>
     </message>
     <message>
-        <location line="+227"/>
         <source>&amp;Window</source>
         <translation>&amp;Fenster</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Minimize</source>
         <translation>Minimieren</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Ctrl+M</source>
         <translation>Ctrl+M</translation>
     </message>
     <message>
-        <location line="-2"/>
         <source>Zoom</source>
         <translation>Zoom</translation>
     </message>
     <message>
-        <location line="-169"/>
         <source>&amp;File</source>
         <translation>&amp;Datei</translation>
     </message>
     <message>
-        <location line="+32"/>
         <source>&amp;Edit</source>
         <translation>&amp;Bearbeiten</translation>
     </message>
     <message>
-        <location line="+27"/>
         <source>&amp;View</source>
         <translation>&amp;Ansicht</translation>
     </message>
     <message>
-        <location line="+30"/>
         <source>&amp;Go</source>
         <translation>&amp;Gehe zu</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>ALT+Home</source>
         <translation>ALT+Home</translation>
     </message>
     <message>
-        <location line="+30"/>
         <source>&amp;Bookmarks</source>
         <translation>&amp;Lesezeichen</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>&amp;Help</source>
         <translation>&amp;Hilfe</translation>
     </message>
     <message>
-        <location line="-38"/>
         <source>ALT+O</source>
         <translation>ALT+O</translation>
     </message>
@@ -785,48 +780,38 @@
 <context>
     <name>PreferencesDialog</name>
     <message>
-        <location filename="../tools/assistant/tools/assistant/preferencesdialog.cpp" line="+252"/>
-        <location line="+44"/>
         <source>Add Documentation</source>
         <translation>Dokumentation hinzufügen</translation>
     </message>
     <message>
-        <location line="-44"/>
         <source>Qt Compressed Help Files (*.qch)</source>
         <translation>Komprimierte Hilfedateien (*.qch)</translation>
     </message>
     <message>
-        <location line="+38"/>
         <source>The specified file is not a valid Qt Help File!</source>
         <translation>Die angegebene Datei ist keine Qt-Hilfedatei.</translation>
     </message>
     <message>
-        <location line="-8"/>
         <source>The namespace %1 is already registered!</source>
         <translation>Der Namespace %1 ist bereits registriert.</translation>
     </message>
     <message>
-        <location line="+32"/>
         <source>Remove Documentation</source>
         <translation>Dokumentation entfernen</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>Einige der derzeit geöffneten Dokumente stammen aus der Dokumentation, die Sie gerade zu löschen versuchen. Sie werden beim Löschen geschlossen.</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Cancel</source>
         <translation>Abbrechen</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>OK</source>
         <translation>OK</translation>
     </message>
     <message>
-        <location line="+83"/>
         <source>Use custom settings</source>
         <translation>Benutzerdefinierte Einstellungen verwenden</translation>
     </message>
@@ -834,117 +819,94 @@
 <context>
     <name>PreferencesDialogClass</name>
     <message>
-        <location filename="../tools/assistant/tools/assistant/preferencesdialog.ui"/>
         <source>Preferences</source>
         <translation>Einstellungen</translation>
     </message>
     <message>
-        <location/>
         <source>Fonts</source>
         <translation>Schriftart</translation>
     </message>
     <message>
-        <location/>
         <source>Font settings:</source>
         <translation>Schriftart:</translation>
     </message>
     <message>
-        <location/>
         <source>Browser</source>
         <translation>Browser</translation>
     </message>
     <message>
-        <location/>
         <source>Application</source>
         <translation>Anwendung</translation>
     </message>
     <message>
-        <location/>
         <source>Filters</source>
         <translation>Filter</translation>
     </message>
     <message>
-        <location/>
         <source>Filter:</source>
         <translation>Filter:</translation>
     </message>
     <message>
-        <location/>
         <source>Attributes:</source>
         <translation>Attribute:</translation>
     </message>
     <message>
-        <location/>
         <source>1</source>
         <translation>1</translation>
     </message>
     <message>
-        <location/>
         <source>Add</source>
         <translation>Hinzufügen</translation>
     </message>
     <message>
-        <location/>
         <source>Remove</source>
         <translation>Entfernen</translation>
     </message>
     <message>
-        <location/>
         <source>Documentation</source>
         <translation>Dokumentation</translation>
     </message>
     <message>
-        <location/>
         <source>Registered Documentation:</source>
         <translation>Registrierte Dokumentation:</translation>
     </message>
     <message>
-        <location/>
         <source>Add...</source>
         <translation>Hinzufügen ...</translation>
     </message>
     <message>
-        <location/>
         <source>Options</source>
         <translation>Einstellungen</translation>
     </message>
     <message>
-        <location/>
         <source>Current Page</source>
         <translation>Aktuelle Seite</translation>
     </message>
     <message>
-        <location/>
         <source>Restore to default</source>
         <translation>Voreinstellung wiederherstellen</translation>
     </message>
     <message>
-        <location/>
         <source>Homepage</source>
         <translation>Startseite</translation>
     </message>
     <message>
-        <location/>
         <source>On help start:</source>
         <translation>Zu Beginn:</translation>
     </message>
     <message>
-        <location/>
         <source>Show my home page</source>
         <translation>Startseite zeigen</translation>
     </message>
     <message>
-        <location/>
         <source>Show a blank page</source>
         <translation>Leere Seite zeigen</translation>
     </message>
     <message>
-        <location/>
         <source>Show my tabs from last session</source>
         <translation>Reiter aus letzter Sitzung zeigen</translation>
     </message>
     <message>
-        <location/>
         <source>Blank Page</source>
         <translation>Leere Seite</translation>
     </message>
@@ -952,12 +914,10 @@
 <context>
     <name>RemoteControl</name>
     <message>
-        <location filename="../tools/assistant/tools/assistant/remotecontrol.cpp" line="+165"/>
         <source>Debugging Remote Control</source>
         <translation>Debugging Remote Control</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Received Command: %1 %2</source>
         <translation>Empfangenes Kommando: %1 : %2</translation>
     </message>
@@ -965,22 +925,18 @@
 <context>
     <name>SearchWidget</name>
     <message>
-        <location filename="../tools/assistant/tools/assistant/searchwidget.cpp" line="+210"/>
         <source>&amp;Copy</source>
         <translation>&amp;Kopieren</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Copy &amp;Link Location</source>
         <translation>&amp;Link-Adresse kopieren</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Open Link in New Tab</source>
         <translation>Link in neuem Reiter öffnen</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Select All</source>
         <translation>Alles markieren</translation>
     </message>
@@ -988,27 +944,22 @@
 <context>
     <name>TopicChooser</name>
     <message>
-        <location filename="../tools/assistant/tools/assistant/topicchooser.cpp" line="+53"/>
         <source>Choose a topic for &lt;b&gt;%1&lt;/b&gt;:</source>
         <translation>Wählen Sie ein Thema für &lt;b&gt;%1&lt;/b&gt;:</translation>
     </message>
     <message>
-        <location filename="../tools/assistant/tools/assistant/topicchooser.ui"/>
         <source>Choose Topic</source>
         <translation>Thema wählen</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Topics</source>
         <translation>&amp;Themen</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Display</source>
         <translation>&amp;Anzeigen</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Close</source>
         <translation>&amp;Schließen</translation>
     </message>
--- a/translations/assistant_fr.ts	Fri Sep 17 08:34:18 2010 +0300
+++ b/translations/assistant_fr.ts	Mon Oct 04 01:19:32 2010 +0300
@@ -4,7 +4,7 @@
 <context>
     <name>AboutDialog</name>
     <message>
-        <location filename="../tools/assistant/tools/assistant/aboutdialog.cpp" line="+110"/>
+        <location filename="../tools/assistant/tools/assistant/aboutdialog.cpp" line="+117"/>
         <source>&amp;Close</source>
         <translation>&amp;Fermer</translation>
     </message>
@@ -12,7 +12,7 @@
 <context>
     <name>AboutLabel</name>
     <message>
-        <location line="-14"/>
+        <location line="-15"/>
         <source>Warning</source>
         <translation>Avertissement</translation>
     </message>
@@ -24,12 +24,81 @@
 </translation>
     </message>
     <message>
-        <location line="+1"/>
+        <location line="+0"/>
         <source>OK</source>
         <translation>OK</translation>
     </message>
 </context>
 <context>
+    <name>Assistant</name>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/main.cpp" line="+177"/>
+        <source>Error registering documentation file &apos;%1&apos;: %2</source>
+        <translation>Erreur lors de l&apos;enregistrement du fichier de documentation &apos;%1&apos; : %2</translation>
+    </message>
+    <message>
+        <location line="+39"/>
+        <source>Error: %1</source>
+        <translation>Erreur : %1</translation>
+    </message>
+    <message>
+        <location line="+42"/>
+        <source>Could not register documentation file
+%1
+
+Reason:
+%2</source>
+        <translation>Impossible d&apos;enregistrer le fichier de documentation
+%1
+
+Raison :
+%2</translation>
+    </message>
+    <message>
+        <location line="+6"/>
+        <source>Documentation successfully registered.</source>
+        <translation>Documentation enregistrée avec succès.</translation>
+    </message>
+    <message>
+        <location line="+12"/>
+        <source>Could not unregister documentation file
+%1
+
+Reason:
+%2</source>
+        <translation>Impossible de retirer le fichier de documentation
+%1
+
+Raison :
+%2</translation>
+    </message>
+    <message>
+        <location line="+8"/>
+        <source>Documentation successfully unregistered.</source>
+        <translation>Documentation retirée avec succès.</translation>
+    </message>
+    <message>
+        <location line="+55"/>
+        <source>Error reading collection file &apos;%1&apos;: %2.</source>
+        <translation>Erreur lors de la lecture du fichier de collection &apos;%1&apos; : %2.</translation>
+    </message>
+    <message>
+        <location line="+11"/>
+        <source>Error creating collection file &apos;%1&apos;: %2.</source>
+        <translation>Erreur lors de la création du fichier de collection &apos;%1&apos; : %2.</translation>
+    </message>
+    <message>
+        <location line="+7"/>
+        <source>Error reading collection file &apos;%1&apos;: %2</source>
+        <translation>Erreur lors de la lecture du fichier de collection &apos;%1&apos; : %2</translation>
+    </message>
+    <message>
+        <location line="+53"/>
+        <source>Cannot load sqlite database driver!</source>
+        <translation>Impossible de charger le driver de la base de données sqlite !</translation>
+    </message>
+</context>
+<context>
     <name>BookmarkDialog</name>
     <message>
         <location filename="../tools/assistant/tools/assistant/bookmarkdialog.ui"/>
@@ -57,21 +126,15 @@
         <translation>Nouveau dossier</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>Signets</translation>
+        <translation type="obsolete">Signets</translation>
     </message>
     <message>
-        <location line="-61"/>
         <source>Delete Folder</source>
-        <translation>Supprimer le dossier</translation>
+        <translation type="obsolete">Supprimer le dossier</translation>
     </message>
     <message>
-        <location line="+1"/>
+        <location filename="../tools/assistant/tools/assistant/bookmarkdialog.cpp" line="+227"/>
         <source>Rename Folder</source>
         <translation>Renommer le dossier</translation>
     </message>
@@ -79,12 +142,16 @@
 <context>
     <name>BookmarkManager</name>
     <message>
-        <location line="+435"/>
         <source>Bookmarks</source>
-        <translation>Signets</translation>
+        <translation type="obsolete">Signets</translation>
     </message>
     <message>
-        <location line="+37"/>
+        <location filename="../tools/assistant/tools/assistant/bookmarkmanager.cpp" line="+151"/>
+        <source>Untitled</source>
+        <translation>Sans titre</translation>
+    </message>
+    <message>
+        <location line="+65"/>
         <source>Remove</source>
         <translation>Suppression</translation>
     </message>
@@ -94,16 +161,127 @@
         <translation>Vous allez supprimer un dossier, ceci va aussi&lt;br&gt;supprimer son contenu. Voulez-vous continuer ?</translation>
     </message>
     <message>
-        <location line="+143"/>
-        <location line="+9"/>
+        <location line="+148"/>
+        <source>Manage Bookmarks...</source>
+        <translation>Gestion des signets...</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Add Bookmark...</source>
+        <translation>Ajouter un signet...</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Ctrl+D</source>
+        <translation>Ctrl+D</translation>
+    </message>
+    <message>
+        <location line="+68"/>
+        <source>Delete Folder</source>
+        <translation>Supprimer le dossier</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Rename Folder</source>
+        <translation>Renommer le dossier</translation>
+    </message>
+    <message>
+        <location line="+2"/>
+        <source>Show Bookmark</source>
+        <translation>Afficher le signet</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Show Bookmark in New Tab</source>
+        <translation>Afficher le signet dans un nouvel onglet</translation>
+    </message>
+    <message>
+        <location line="+2"/>
+        <source>Delete Bookmark</source>
+        <translation>Supprimer le signet</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Rename Bookmark</source>
+        <translation>Renommer le signet</translation>
+    </message>
+    <message>
         <source>New Folder</source>
-        <translation>Nouveau dossier</translation>
+        <translation type="obsolete">Nouveau dossier</translation>
     </message>
 </context>
 <context>
-    <name>BookmarkWidget</name>
+    <name>BookmarkManagerWidget</name>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/bookmarkmanagerwidget.ui"/>
+        <source>Manage Bookmarks</source>
+        <translation>Gestion des signets</translation>
+    </message>
+    <message>
+        <location/>
+        <source>Search:</source>
+        <translation>Recherche :</translation>
+    </message>
+    <message>
+        <location/>
+        <location filename="../tools/assistant/tools/assistant/bookmarkmanagerwidget.cpp" line="+258"/>
+        <source>Remove</source>
+        <translation>Supprimer</translation>
+    </message>
+    <message>
+        <location/>
+        <source>Import and Backup</source>
+        <translation>Importation et sauvegarde</translation>
+    </message>
+    <message>
+        <location/>
+        <location filename="../tools/assistant/tools/assistant/bookmarkmanagerwidget.cpp" line="-30"/>
+        <source>OK</source>
+        <translation>OK</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/bookmarkmanagerwidget.cpp" line="-142"/>
+        <source>Import...</source>
+        <translation>Importer...</translation>
+    </message>
     <message>
-        <location line="-463"/>
+        <location line="+1"/>
+        <source>Export...</source>
+        <translation>Exporter...</translation>
+    </message>
+    <message>
+        <location line="+112"/>
+        <source>Open File</source>
+        <translation>Ouvrir un fichier</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <location line="+16"/>
+        <source>Files (*.xbel)</source>
+        <translation>Fichiers (*.xbel)</translation>
+    </message>
+    <message>
+        <location line="-1"/>
+        <source>Save File</source>
+        <translation>Enregistrer le fichier</translation>
+    </message>
+    <message>
+        <location line="+12"/>
+        <source>Qt Assistant</source>
+        <translation>Qt Assistant</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Unable to save bookmarks.</source>
+        <translation>Impossible de sauvegarder les signets.</translation>
+    </message>
+    <message>
+        <location line="+30"/>
+        <source>You are goingto delete a Folder, this will also&lt;br&gt; remove it&apos;s content. Are you sure to continue?</source>
+        <translation>Vous êtes sur le point de supprimer un dossier, ceci supprimera&lt;br&gt; également son contenu. Voulez-vous continuer ?</translation>
+    </message>
+    <message>
+        <location line="+28"/>
         <source>Delete Folder</source>
         <translation>Supprimer le dossier</translation>
     </message>
@@ -123,7 +301,7 @@
         <translation>Afficher le signet dans un nouvel onglet</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>Delete Bookmark</source>
         <translation>Supprimer le signet</translation>
     </message>
@@ -132,26 +310,76 @@
         <source>Rename Bookmark</source>
         <translation>Renommer le signet</translation>
     </message>
+</context>
+<context>
+    <name>BookmarkModel</name>
     <message>
-        <location line="+38"/>
+        <location filename="../tools/assistant/tools/assistant/bookmarkmodel.cpp" line="+88"/>
+        <source>Name</source>
+        <translation>Nom</translation>
+    </message>
+    <message>
+        <location line="+0"/>
+        <source>Address</source>
+        <translation>Adresse</translation>
+    </message>
+    <message>
+        <location line="+2"/>
+        <source>Bookmarks Menu</source>
+        <translation>Menu signets</translation>
+    </message>
+</context>
+<context>
+    <name>BookmarkWidget</name>
+    <message>
+        <source>Delete Folder</source>
+        <translation type="obsolete">Supprimer le dossier</translation>
+    </message>
+    <message>
+        <source>Rename Folder</source>
+        <translation type="obsolete">Renommer le dossier</translation>
+    </message>
+    <message>
+        <source>Show Bookmark</source>
+        <translation type="obsolete">Afficher le signet</translation>
+    </message>
+    <message>
+        <source>Show Bookmark in New Tab</source>
+        <translation type="obsolete">Afficher le signet dans un nouvel onglet</translation>
+    </message>
+    <message>
+        <source>Delete Bookmark</source>
+        <translation type="obsolete">Supprimer le signet</translation>
+    </message>
+    <message>
+        <source>Rename Bookmark</source>
+        <translation type="obsolete">Renommer le signet</translation>
+    </message>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/bookmarkwidget.ui"/>
         <source>Filter:</source>
         <translation>Filtre :</translation>
     </message>
     <message>
-        <location line="+24"/>
+        <location/>
         <source>Add</source>
         <translation>Ajouter</translation>
     </message>
     <message>
-        <location line="+9"/>
+        <location/>
         <source>Remove</source>
         <translation>Retirer</translation>
     </message>
+    <message>
+        <location/>
+        <source>Bookmarks</source>
+        <translation>Signets</translation>
+    </message>
 </context>
 <context>
     <name>CentralWidget</name>
     <message>
-        <location filename="../tools/assistant/tools/assistant/centralwidget.cpp" line="+239"/>
+        <location filename="../tools/assistant/tools/assistant/centralwidget.cpp" line="+121"/>
         <source>Add new page</source>
         <translation>Créer une nouvelle page</translation>
     </message>
@@ -161,18 +389,18 @@
         <translation>Fermer la page courante</translation>
     </message>
     <message>
-        <location line="+312"/>
+        <location line="+287"/>
         <source>Print Document</source>
         <translation>Imprimer le document</translation>
     </message>
     <message>
-        <location line="+130"/>
+        <location line="+126"/>
         <location line="+2"/>
         <source>unknown</source>
         <translation>inconnu</translation>
     </message>
     <message>
-        <location line="+93"/>
+        <location line="+101"/>
         <source>Add New Page</source>
         <translation>Créer une nouvelle page</translation>
     </message>
@@ -192,15 +420,78 @@
         <translation>Ajouter un signet pour cette page...</translation>
     </message>
     <message>
-        <location line="+235"/>
+        <location line="+264"/>
         <source>Search</source>
         <translation>Recherche</translation>
     </message>
 </context>
 <context>
+    <name>CmdLineParser</name>
+    <message>
+        <location filename="../tools/assistant/tools/assistant/cmdlineparser.cpp" line="+137"/>
+        <source>Unknown option: %1</source>
+        <translation>Option inconnue : %1</translation>
+    </message>
+    <message>
+        <location line="+33"/>
+        <source>The collection file &apos;%1&apos; does not exist.</source>
+        <translation>Le fichier de collection &apos;%1&apos; n&apos;existe pas.</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Missing collection file.</source>
+        <translation>Fichier de collection manquant.</translation>
+    </message>
+    <message>
+        <location line="+13"/>
+        <source>Invalid URL &apos;%1&apos;.</source>
+        <translation>URL invalide &apos;%1&apos;.</translation>
+    </message>
+    <message>
+        <location line="+2"/>
+        <source>Missing URL.</source>
+        <translation>URL manquante.</translation>
+    </message>
+    <message>
+        <location line="+36"/>
+        <source>Unknown widget: %1</source>
+        <translation>Widget inconnu : %1</translation>
+    </message>
+    <message>
+        <location line="+2"/>
+        <source>Missing widget.</source>
+        <translation>Widget manquant.</translation>
+    </message>
+    <message>
+        <location line="+23"/>
+        <source>The Qt help file &apos;%1&apos; does not exist.</source>
+        <translation>Le fichier d&apos;aide Qt &apos;%1&apos; n&apos;existe pas.</translation>
+    </message>
+    <message>
+        <location line="+4"/>
+        <source>Missing help file.</source>
+        <translation>Fichier d&apos;aide manquant.</translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>Missing filter argument.</source>
+        <translation>Argument de filtre manquant.</translation>
+    </message>
+    <message>
+        <location line="+20"/>
+        <source>Error</source>
+        <translation>Erreur</translation>
+    </message>
+    <message>
+        <location line="+2"/>
+        <source>Notice</source>
+        <translation>Avertissement</translation>
+    </message>
+</context>
+<context>
     <name>ContentWindow</name>
     <message>
-        <location filename="../tools/assistant/tools/assistant/contentwindow.cpp" line="+158"/>
+        <location filename="../tools/assistant/tools/assistant/contentwindow.cpp" line="+173"/>
         <source>Open Link</source>
         <translation>Ouvrir le lien</translation>
     </message>
@@ -226,27 +517,26 @@
 <context>
     <name>FindWidget</name>
     <message>
-        <location filename="../tools/assistant/tools/assistant/centralwidget.cpp" line="-918"/>
+        <location filename="../tools/assistant/tools/assistant/findwidget.cpp" line="+85"/>
         <source>Previous</source>
         <translation>Précédent</translation>
     </message>
     <message>
-        <location line="+4"/>
+        <location line="+6"/>
         <source>Next</source>
         <translation>Suivant</translation>
     </message>
     <message>
-        <location line="+4"/>
+        <location line="+5"/>
         <source>Case Sensitive</source>
         <translation>Sensible à la casse</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Whole words</source>
-        <translation>Mots complets</translation>
+        <translation type="obsolete">Mots complets</translation>
     </message>
     <message>
-        <location line="+12"/>
+        <location line="+9"/>
         <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;Recherche à partir du début</translation>
     </message>
@@ -282,34 +572,37 @@
 <context>
     <name>HelpViewer</name>
     <message>
-        <location filename="../tools/assistant/tools/assistant/helpviewer.cpp" line="+281"/>
+        <location filename="../tools/assistant/tools/assistant/helpviewer_qwv.cpp" line="+260"/>
         <source>Open Link in New Tab</source>
         <translation>Ouvrir le lien dans un nouvel onglet</translation>
     </message>
     <message>
-        <location line="+147"/>
+        <location filename="../tools/assistant/tools/assistant/helpviewer.cpp" line="+58"/>
+        <source>&lt;title&gt;about:blank&lt;/title&gt;</source>
+        <translatorcomment>y&apos;a t&apos;il une autre traduction dans Firefox &amp; cie ?</translatorcomment>
+        <translation>&lt;title&gt;about:blank&lt;/title&gt;</translation>
+    </message>
+    <message>
+        <location line="+6"/>
         <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;Erreur 404...&lt;/title&gt;&lt;div align=&quot;center&quot;&gt;&lt;br&gt;&lt;br&gt;&lt;h1&gt;La page n&apos;a pas pu être trouvée&lt;/h1&gt;&lt;br&gt;&lt;h3&gt;&apos;%1&apos;&lt;/h3&gt;&lt;/div&gt;</translation>
     </message>
     <message>
-        <location line="+61"/>
         <source>Help</source>
-        <translation>Aide</translation>
+        <translation type="obsolete">Aide</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Unable to launch external application.
 </source>
-        <translation>Impossible de lancer l&apos;application externe.
+        <translation type="obsolete">Impossible de lancer l&apos;application externe.
 </translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>OK</source>
-        <translation>OK</translation>
+        <translation type="obsolete">OK</translation>
     </message>
     <message>
-        <location line="+63"/>
+        <location filename="../tools/assistant/tools/assistant/helpviewer_qtb.cpp" line="+230"/>
         <source>Copy &amp;Link Location</source>
         <translation>Copier l&apos;&amp;adresse cible</translation>
     </message>
@@ -323,12 +616,12 @@
 <context>
     <name>IndexWindow</name>
     <message>
-        <location filename="../tools/assistant/tools/assistant/indexwindow.cpp" line="+66"/>
+        <location filename="../tools/assistant/tools/assistant/indexwindow.cpp" line="+68"/>
         <source>&amp;Look for:</source>
         <translation>&amp;Rechercher :</translation>
     </message>
     <message>
-        <location line="+68"/>
+        <location line="+74"/>
         <source>Open Link</source>
         <translation>Ouvrir le lien</translation>
     </message>
@@ -342,7 +635,7 @@
     <name>InstallDialog</name>
     <message>
         <location filename="../tools/assistant/tools/assistant/installdialog.ui"/>
-        <location filename="../tools/assistant/tools/assistant/installdialog.cpp" line="+76"/>
+        <location filename="../tools/assistant/tools/assistant/installdialog.cpp" line="+78"/>
         <source>Install Documentation</source>
         <translation>Installer la documentation</translation>
     </message>
@@ -374,27 +667,27 @@
     <message>
         <location/>
         <source>...</source>
-        <translation>…</translation>
+        <translation>...</translation>
     </message>
     <message>
-        <location filename="../tools/assistant/tools/assistant/installdialog.cpp" line="+30"/>
+        <location filename="../tools/assistant/tools/assistant/installdialog.cpp" line="+33"/>
         <source>Downloading documentation info...</source>
-        <translation>Téléchargement des informations de la documentation…</translation>
+        <translation>Téléchargement des informations de la documentation...</translation>
     </message>
     <message>
-        <location line="+48"/>
+        <location line="+51"/>
         <source>Download canceled.</source>
         <translation>Téléchargement annulé.</translation>
     </message>
     <message>
-        <location line="+26"/>
-        <location line="+78"/>
+        <location line="+28"/>
+        <location line="+79"/>
         <location line="+27"/>
         <source>Done.</source>
         <translation>Terminé.</translation>
     </message>
     <message>
-        <location line="-90"/>
+        <location line="-91"/>
         <source>The file %1 already exists. Do you want to overwrite it?</source>
         <translation>Le fichier %1 existe déjà. Voulez-vous l&apos;écraser ?</translation>
     </message>
@@ -406,17 +699,17 @@
     <message>
         <location line="+8"/>
         <source>Downloading %1...</source>
-        <translation>Téléchargement de %1 en cours…</translation>
+        <translation>Téléchargement de %1 en cours...</translation>
     </message>
     <message>
-        <location line="+19"/>
+        <location line="+20"/>
         <location line="+42"/>
-        <location line="+38"/>
+        <location line="+40"/>
         <source>Download failed: %1.</source>
         <translation>Échec du téléchargement : %1.</translation>
     </message>
     <message>
-        <location line="-70"/>
+        <location line="-72"/>
         <source>Documentation info file is corrupt!</source>
         <translation>Le fichier d&apos;information de documentation est corrompu !</translation>
     </message>
@@ -428,10 +721,10 @@
     <message>
         <location line="+2"/>
         <source>Installing documentation %1...</source>
-        <translation>Installation de la documentation %1…</translation>
+        <translation>Installation de la documentation %1...</translation>
     </message>
     <message>
-        <location line="+22"/>
+        <location line="+23"/>
         <source>Error while installing documentation:
 %1</source>
         <translation>Erreur durant l&apos;installation de la documentation :
@@ -441,78 +734,81 @@
 <context>
     <name>MainWindow</name>
     <message>
-        <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="+110"/>
-        <location line="+383"/>
+        <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="+123"/>
+        <location line="+369"/>
         <source>Index</source>
         <translation>Index</translation>
     </message>
     <message>
-        <location line="-377"/>
-        <location line="+375"/>
+        <location line="-363"/>
+        <location line="+361"/>
         <source>Contents</source>
         <translation>Sommaire</translation>
     </message>
     <message>
-        <location line="-370"/>
-        <location line="+374"/>
+        <location line="-354"/>
+        <location line="+358"/>
         <source>Bookmarks</source>
         <translation>Signets</translation>
     </message>
     <message>
-        <location line="-362"/>
-        <location line="+207"/>
-        <location line="+514"/>
+        <location line="-336"/>
+        <location line="+680"/>
+        <location line="+284"/>
         <source>Qt Assistant</source>
         <translation>Qt Assistant</translation>
     </message>
     <message>
-        <location line="-546"/>
-        <location line="+5"/>
         <source>Unfiltered</source>
-        <translation>Non-filtré</translation>
+        <translation type="obsolete">Non-filtré</translation>
     </message>
     <message>
-        <location line="+21"/>
+        <location line="-772"/>
         <source>Looking for Qt Documentation...</source>
-        <translation>Recherche la documentation de Qt…</translation>
+        <translation>Recherche la documentation de Qt...</translation>
     </message>
     <message>
-        <location line="+84"/>
+        <location line="+60"/>
         <source>&amp;File</source>
         <translation>&amp;Fichier</translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+7"/>
         <source>Page Set&amp;up...</source>
-        <translation>&amp;Mise en page…</translation>
+        <translation>&amp;Mise en page...</translation>
     </message>
     <message>
         <location line="+2"/>
         <source>Print Preview...</source>
-        <translation>Aperçu avant impression…</translation>
+        <translation>Aperçu avant impression...</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>&amp;Print...</source>
-        <translation>&amp;Imprimer…</translation>
+        <translation>&amp;Imprimer...</translation>
     </message>
     <message>
-        <location line="+7"/>
+        <location line="-10"/>
         <source>New &amp;Tab</source>
         <translation>Nouvel ongle&amp;t</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+17"/>
         <source>&amp;Close Tab</source>
         <translation>&amp;Fermer l&apos;onglet</translation>
     </message>
     <message>
-        <location line="+4"/>
+        <location line="+5"/>
         <source>&amp;Quit</source>
         <translation>&amp;Quitter</translation>
     </message>
     <message>
-        <location line="+4"/>
+        <location line="+3"/>
+        <source>CTRL+Q</source>
+        <translation>CTRL+Q</translation>
+    </message>
+    <message>
+        <location line="+5"/>
         <source>&amp;Edit</source>
         <translation>&amp;Édition</translation>
     </message>
@@ -524,7 +820,7 @@
     <message>
         <location line="+8"/>
         <source>&amp;Find in Text...</source>
-        <translation>&amp;Rechercher dans le texte…</translation>
+        <translation>&amp;Rechercher dans le texte...</translation>
     </message>
     <message>
         <location line="+2"/>
@@ -544,7 +840,7 @@
     <message>
         <location line="+5"/>
         <source>Preferences...</source>
-        <translation>Préférences…</translation>
+        <translation>Préférences...</translation>
     </message>
     <message>
         <location line="+3"/>
@@ -652,32 +948,35 @@
         <translation>Ctrl+Alt+Left</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+4"/>
         <source>&amp;Bookmarks</source>
         <translation>Si&amp;gnets</translation>
     </message>
     <message>
-        <location line="+1"/>
-        <source>Add Bookmark...</source>
-        <translation>Ajouter un signet…</translation>
+        <location line="+592"/>
+        <source>Could not register file &apos;%1&apos;: %2</source>
+        <translation>Impossible d&apos;enregistrer le fichier &apos;%1&apos; : %2</translation>
     </message>
     <message>
-        <location line="+2"/>
-        <source>CTRL+D</source>
-        <translation>CTRL+D</translation>
+        <source>Add Bookmark...</source>
+        <translation type="obsolete">Ajouter un signet...</translation>
     </message>
     <message>
-        <location line="+2"/>
+        <source>CTRL+D</source>
+        <translation type="obsolete">CTRL+D</translation>
+    </message>
+    <message>
+        <location line="-590"/>
         <source>&amp;Help</source>
         <translation>Ai&amp;de</translation>
     </message>
     <message>
         <location line="+1"/>
         <source>About...</source>
-        <translation>À propos…</translation>
+        <translation>À propos...</translation>
     </message>
     <message>
-        <location line="+16"/>
+        <location line="+21"/>
         <source>Navigation Toolbar</source>
         <translation>Barre d&apos;outils de navigation</translation>
     </message>
@@ -702,12 +1001,12 @@
         <translation>Ctrl+M</translation>
     </message>
     <message>
-        <location line="+50"/>
+        <location line="+43"/>
         <source>Toolbars</source>
         <translation>Barres d&apos;outils</translation>
     </message>
     <message>
-        <location line="+15"/>
+        <location line="+16"/>
         <source>Filter Toolbar</source>
         <translation>Barre d&apos;outils de filtrage</translation>
     </message>
@@ -717,7 +1016,7 @@
         <translation>Filtre :</translation>
     </message>
     <message>
-        <location line="+25"/>
+        <location line="+26"/>
         <source>Address Toolbar</source>
         <translation>Barre d&apos;outils d&apos;adresse</translation>
     </message>
@@ -727,18 +1026,18 @@
         <translation>Adresse :</translation>
     </message>
     <message>
-        <location line="+114"/>
+        <location line="+112"/>
         <source>Could not find the associated content item.</source>
         <translatorcomment>what is item in this context? ← same question here</translatorcomment>
         <translation>Impossible de trouver l&apos;élément de contenu associé.</translation>
     </message>
     <message>
-        <location line="+71"/>
+        <location line="+60"/>
         <source>About %1</source>
         <translation>À propos de %1</translation>
     </message>
     <message>
-        <location line="+114"/>
+        <location line="+175"/>
         <source>Updating search index</source>
         <translation>Mise à jour de l&apos;index de recherche</translation>
     </message>
@@ -746,18 +1045,18 @@
 <context>
     <name>PreferencesDialog</name>
     <message>
-        <location filename="../tools/assistant/tools/assistant/preferencesdialog.cpp" line="+259"/>
-        <location line="+43"/>
+        <location filename="../tools/assistant/tools/assistant/preferencesdialog.cpp" line="+252"/>
+        <location line="+44"/>
         <source>Add Documentation</source>
         <translation>Ajouter de la documentation</translation>
     </message>
     <message>
-        <location line="-43"/>
+        <location line="-44"/>
         <source>Qt Compressed Help Files (*.qch)</source>
         <translation>Fichiers d&apos;aide Qt compressés (*.qch)</translation>
     </message>
     <message>
-        <location line="+29"/>
+        <location line="+30"/>
         <source>The namespace %1 is already registered!</source>
         <translation>L&apos;espace de nom %1 existe déjà !</translation>
     </message>
@@ -767,7 +1066,7 @@
         <translation>Le fichier spécifié n&apos;est pas un fichier d&apos;aide Qt valide !</translation>
     </message>
     <message>
-        <location line="+23"/>
+        <location line="+24"/>
         <source>Remove Documentation</source>
         <translation>Supprimer la documentation</translation>
     </message>
@@ -787,7 +1086,7 @@
         <translation>OK</translation>
     </message>
     <message>
-        <location line="+88"/>
+        <location line="+83"/>
         <source>Use custom settings</source>
         <translation>Utiliser des paramètres personnalisés</translation>
     </message>
@@ -863,7 +1162,7 @@
     <message>
         <location/>
         <source>Add...</source>
-        <translation>Ajouter…</translation>
+        <translation>Ajouter...</translation>
     </message>
     <message>
         <location/>
@@ -914,118 +1213,94 @@
 <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>Le fichier de collection spécifié n&apos;existe pas !</translation>
+        <translation type="obsolete">Le fichier de collection spécifié n&apos;existe pas !</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Missing collection file!</source>
-        <translation>Fichier de collection manquant !</translation>
+        <translation type="obsolete">Fichier de collection manquant !</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Invalid URL!</source>
-        <translation>URL invalide !</translation>
+        <translation type="obsolete">URL invalide !</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Missing URL!</source>
-        <translation>URL manquante !</translation>
+        <translation type="obsolete">URL manquante !</translation>
     </message>
     <message>
-        <location line="+17"/>
-        <location line="+19"/>
-        <location line="+19"/>
         <source>Unknown widget: %1</source>
-        <translation>Widget inconnu : %1</translation>
+        <translation type="obsolete">Widget inconnu : %1</translation>
     </message>
     <message>
-        <location line="-34"/>
-        <location line="+19"/>
-        <location line="+19"/>
         <source>Missing widget!</source>
-        <translation>Widget manquant !</translation>
+        <translation type="obsolete">Widget manquant !</translation>
     </message>
     <message>
-        <location line="+7"/>
-        <location line="+12"/>
         <source>The specified Qt help file does not exist!</source>
-        <translation>Le fichier d&apos;aide Qt spécifié n&apos;existe pas !</translation>
+        <translation type="obsolete">Le fichier d&apos;aide Qt spécifié n&apos;existe pas !</translation>
+    </message>
+    <message>
+        <source>Missing help file!</source>
+        <translation type="obsolete">Fichier d&apos;aide manquant !</translation>
     </message>
     <message>
-        <location line="-7"/>
-        <location line="+12"/>
-        <source>Missing help file!</source>
-        <translation>Fichier d&apos;aide manquant !</translation>
-    </message>
-    <message>
-        <location line="+7"/>
         <source>Missing filter argument!</source>
-        <translation>Argument de filtre manquant !</translation>
+        <translation type="obsolete">Argument de filtre manquant !</translation>
     </message>
     <message>
-        <location line="+12"/>
         <source>Unknown option: %1</source>
-        <translation>Option inconnue : %1</translation>
+        <translation type="obsolete">Option inconnue : %1</translation>
     </message>
     <message>
-        <location line="+30"/>
-        <location line="+2"/>
         <source>Qt Assistant</source>
-        <translation>Qt Assistant</translation>
+        <translation type="obsolete">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>Impossible d&apos;enregistrer le fichier de documentation
+        <translation type="obsolete">Impossible d&apos;enregistrer le fichier de documentation
 %1
 
 Raison :
 %2</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Documentation successfully registered.</source>
-        <translation>Documentation enregistrée avec succès.</translation>
+        <translation type="obsolete">Documentation enregistrée avec succès.</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Documentation successfully unregistered.</source>
-        <translation>Documentation retirée avec succès.</translation>
+        <translation type="obsolete">Documentation retirée avec succès.</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Could not unregister documentation file
 %1
 
 Reason:
 %2</source>
-        <translation>Impossible d&apos;enregistrer le fichier de documentation
+        <translation type="obsolete">Impossible d&apos;enregistrer le fichier de documentation
 %1
 
 Raison :
 %2</translation>
     </message>
     <message>
-        <location line="+37"/>
         <source>Cannot load sqlite database driver!</source>
-        <translation>Impossible de charger le driver de la base de données sqlite !</translation>
+        <translation type="obsolete">Impossible de charger le driver de la base de données sqlite !</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>The specified collection file could not be read!</source>
-        <translation>Le fichier de collection spécifié ne peut pas être lu !</translation>
+        <translation type="obsolete">Le fichier de collection spécifié ne peut pas être lu !</translation>
     </message>
 </context>
 <context>
     <name>RemoteControl</name>
     <message>
-        <location filename="../tools/assistant/tools/assistant/remotecontrol.cpp" line="+163"/>
+        <location filename="../tools/assistant/tools/assistant/remotecontrol.cpp" line="+165"/>
         <source>Debugging Remote Control</source>
         <translation>Débogage du contrôle à distance</translation>
     </message>
@@ -1038,7 +1313,7 @@
 <context>
     <name>SearchWidget</name>
     <message>
-        <location filename="../tools/assistant/tools/assistant/searchwidget.cpp" line="+196"/>
+        <location filename="../tools/assistant/tools/assistant/searchwidget.cpp" line="+210"/>
         <source>&amp;Copy</source>
         <translation>&amp;Copier</translation>
     </message>
@@ -1081,7 +1356,7 @@
         <translation>&amp;Fermer</translation>
     </message>
     <message>
-        <location filename="../tools/assistant/tools/assistant/topicchooser.cpp" line="+54"/>
+        <location filename="../tools/assistant/tools/assistant/topicchooser.cpp" line="+53"/>
         <source>Choose a topic for &lt;b&gt;%1&lt;/b&gt;:</source>
         <translation>Choisir le domaine pour &lt;b&gt;%1&lt;/b&gt; :</translation>
     </message>
--- a/translations/assistant_ja.ts	Fri Sep 17 08:34:18 2010 +0300
+++ b/translations/assistant_ja.ts	Mon Oct 04 01:19:32 2010 +0300
@@ -4,7 +4,6 @@
 <context>
     <name>AboutDialog</name>
     <message>
-        <location filename="../tools/assistant/tools/assistant/aboutdialog.cpp" line="+110"/>
         <source>&amp;Close</source>
         <translation>閉じる(&amp;C)</translation>
     </message>
@@ -12,940 +11,31 @@
 <context>
     <name>AboutLabel</name>
     <message>
-        <location line="-14"/>
         <source>Warning</source>
         <translation>警告</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Unable to launch external application.
 </source>
         <translation>外部アプリケーションを起動できません。
 </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/bookmarkmanager.cpp" line="+185"/>
-        <location line="+18"/>
-        <location line="+36"/>
-        <location line="+24"/>
-        <location line="+32"/>
-        <source>Bookmarks</source>
-        <translation>ブックマーク</translation>
-    </message>
-    <message>
-        <location filename="../tools/assistant/tools/assistant/bookmarkdialog.ui"/>
-        <source>Add Bookmark</source>
-        <translation>ブックマークの追加</translation>
-    </message>
-    <message>
-        <location/>
-        <source>Bookmark:</source>
-        <translation>ブックマーク:</translation>
-    </message>
-    <message>
-        <location/>
-        <source>Add in Folder:</source>
-        <translation>追加先フォルダ:</translation>
-    </message>
-    <message>
-        <location/>
-        <source>+</source>
-        <translation>+</translation>
-    </message>
-    <message>
-        <location/>
-        <source>New Folder</source>
-        <translation>新しいフォルダ</translation>
-    </message>
-    <message>
-        <location filename="../tools/assistant/tools/assistant/bookmarkmanager.cpp" line="-69"/>
-        <source>Delete Folder</source>
-        <translation>フォルダを削除</translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Rename Folder</source>
-        <translation>フォルダの名前変更</translation>
-    </message>
-</context>
-<context>
-    <name>BookmarkManager</name>
-    <message>
-        <location line="+450"/>
-        <source>Bookmarks</source>
-        <translation>ブックマーク</translation>
-    </message>
-    <message>
-        <location line="+36"/>
-        <source>Remove</source>
-        <translation>削除</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>フォルダを削除すると中身も削除されますが、続けてよろしいですか?</translation>
-    </message>
-    <message>
-        <location line="+109"/>
-        <location line="+9"/>
-        <source>New Folder</source>
-        <translation>新しいフォルダ</translation>
-    </message>
-</context>
-<context>
-    <name>BookmarkWidget</name>
-    <message>
-        <location line="-391"/>
-        <source>Filter:</source>
-        <translation>フィルタ:</translation>
-    </message>
-    <message>
-        <location line="+32"/>
-        <source>Remove</source>
-        <translation>削除</translation>
-    </message>
-    <message>
-        <location line="-78"/>
-        <source>Delete Folder</source>
-        <translation>フォルダを削除</translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Rename Folder</source>
-        <translation>フォルダの名前変更</translation>
-    </message>
-    <message>
-        <location line="+2"/>
-        <source>Show Bookmark</source>
-        <translation>ブックマークを開く</translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Show Bookmark in New Tab</source>
-        <translation>ブックマークを新しいタブで開く</translation>
-    </message>
-    <message>
-        <location line="+3"/>
-        <source>Delete Bookmark</source>
-        <translation>ブックマークを削除</translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Rename Bookmark</source>
-        <translation>ブックマークの名前変更</translation>
-    </message>
-    <message>
-        <location line="+61"/>
-        <source>Add</source>
-        <translation>追加</translation>
-    </message>
-</context>
-<context>
-    <name>CentralWidget</name>
-    <message>
-        <location filename="../tools/assistant/tools/assistant/centralwidget.cpp" line="+195"/>
-        <source>Add new page</source>
-        <translation>新しいページの追加</translation>
-    </message>
-    <message>
-        <location line="+9"/>
-        <source>Close current page</source>
-        <translation>現在のページを閉じる</translation>
-    </message>
-    <message>
-        <location line="+265"/>
-        <source>Print Document</source>
-        <translation>ドキュメントを印刷</translation>
-    </message>
-    <message>
-        <location line="+147"/>
-        <location line="+2"/>
-        <source>unknown</source>
-        <translation>不明</translation>
-    </message>
-    <message>
-        <location line="+96"/>
-        <source>Add New Page</source>
-        <translation>新しいページの追加</translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Close This Page</source>
-        <translation>このページを閉じる</translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Close Other Pages</source>
-        <translation>他のページを閉じる</translation>
-    </message>
-    <message>
-        <location line="+2"/>
-        <source>Add Bookmark for this Page...</source>
-        <translation>このページをブックマークに追加...</translation>
-    </message>
-    <message>
-        <location line="+257"/>
-        <source>Search</source>
-        <translation>検索</translation>
-    </message>
-</context>
-<context>
-    <name>ContentWindow</name>
-    <message>
-        <location filename="../tools/assistant/tools/assistant/contentwindow.cpp" line="+155"/>
-        <source>Open Link</source>
-        <translation>リンクを開く</translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Open Link in New Tab</source>
-        <translation>リンクを新しいタブで開く</translation>
-    </message>
-</context>
-<context>
-    <name>FilterNameDialogClass</name>
-    <message>
-        <location filename="../tools/assistant/tools/assistant/filternamedialog.ui"/>
-        <source>Add Filter Name</source>
-        <translation>フィルタ名を追加</translation>
-    </message>
-    <message>
-        <location/>
-        <source>Filter Name:</source>
-        <translation>フィルタ名:</translation>
-    </message>
-</context>
-<context>
-    <name>FindWidget</name>
-    <message>
-        <location filename="../tools/assistant/tools/assistant/centralwidget.cpp" line="-863"/>
-        <source>Previous</source>
-        <translation>戻る</translation>
-    </message>
-    <message>
-        <location line="+7"/>
-        <source>Next</source>
-        <translation>進む</translation>
-    </message>
-    <message>
-        <location line="+5"/>
-        <source>Case Sensitive</source>
-        <translation>大文字/小文字を区別する</translation>
-    </message>
-    <message>
-        <location line="+3"/>
-        <source>Whole words</source>
-        <translation>単語単位で検索する</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;見つからなければ先頭から検索する</translation>
-    </message>
-</context>
-<context>
-    <name>FontPanel</name>
+    <name>Assistant</name>
     <message>
-        <location filename="../tools/shared/fontpanel/fontpanel.cpp" line="+63"/>
-        <source>Font</source>
-        <translation>フォント</translation>
-    </message>
-    <message>
-        <location line="+11"/>
-        <source>&amp;Writing system</source>
-        <translation>文字セット(&amp;W)</translation>
-    </message>
-    <message>
-        <location line="+3"/>
-        <source>&amp;Family</source>
-        <translation>フォント名(&amp;F)</translation>
-    </message>
-    <message>
-        <location line="+4"/>
-        <source>&amp;Style</source>
-        <translation>スタイル(&amp;S)</translation>
-    </message>
-    <message>
-        <location line="+4"/>
-        <source>&amp;Point size</source>
-        <translation>サイズ(&amp;P)</translation>
-    </message>
-</context>
-<context>
-    <name>HelpViewer</name>
-    <message>
-        <location filename="../tools/assistant/tools/assistant/helpviewer.cpp" line="+481"/>
-        <source>Help</source>
-        <translation>ヘルプ</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;Error 404...&lt;/title&gt;&lt;div align=&quot;center&quot;&gt;&lt;br&gt;&lt;br&gt;&lt;h1&gt;ページが見つかりませんでした&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>リンクのURLをコピー(&amp;L)</translation>
-    </message>
-    <message>
-        <location line="+3"/>
-        <source>Open Link in New Tab	Ctrl+LMB</source>
-        <translation>リンクを新しいタブで開く	Ctrl+LMB</translation>
-    </message>
-    <message>
-        <location line="-267"/>
-        <source>Open Link in New Tab</source>
-        <translation>リンクを新しいタブで開く</translation>
-    </message>
-    <message>
-        <location line="+201"/>
-        <source>Unable to launch external application.
-</source>
-        <translation>外部アプリケーションを起動できません。
-</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;L):</translation>
-    </message>
-    <message>
-        <location line="+68"/>
-        <source>Open Link</source>
-        <translation>リンクを開く</translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Open Link in New Tab</source>
-        <translation>リンクを新しいタブで開く</translation>
-    </message>
-</context>
-<context>
-    <name>InstallDialog</name>
-    <message>
-        <location filename="../tools/assistant/tools/assistant/installdialog.cpp" line="+75"/>
-        <location filename="../tools/assistant/tools/assistant/installdialog.ui"/>
-        <source>Install Documentation</source>
-        <translation>ドキュメントのインストール</translation>
-    </message>
-    <message>
-        <location line="+30"/>
-        <source>Downloading documentation info...</source>
-        <translation>ドキュメント情報をダウンロード中...</translation>
-    </message>
-    <message>
-        <location line="+48"/>
-        <source>Download canceled.</source>
-        <translation>ダウンロードを中止しました。</translation>
-    </message>
-    <message>
-        <location line="+26"/>
-        <location line="+78"/>
-        <location line="+27"/>
-        <source>Done.</source>
-        <translation>完了.</translation>
-    </message>
-    <message>
-        <location line="-90"/>
-        <source>The file %1 already exists. Do you want to overwrite it?</source>
-        <translation>%1 は既に存在します。上書きしますか?</translation>
-    </message>
-    <message>
-        <location line="+11"/>
-        <source>Unable to save the file %1: %2.</source>
-        <translation>ファイルを保存できません。%1: %2.</translation>
-    </message>
-    <message>
-        <location line="+8"/>
-        <source>Downloading %1...</source>
-        <translation>%1 をダウンロード中...</translation>
-    </message>
-    <message>
-        <location line="+19"/>
-        <location line="+42"/>
-        <location line="+38"/>
-        <source>Download failed: %1.</source>
-        <translation>ダウンロード失敗: %1.</translation>
-    </message>
-    <message>
-        <location line="-70"/>
-        <source>Documentation info file is corrupt!</source>
-        <translation>ドキュメント情報ファイルが不正です!</translation>
-    </message>
-    <message>
-        <location line="+37"/>
-        <source>Download failed: Downloaded file is corrupted.</source>
-        <translation>ダウンロード失敗: ダウンロードしたファイルが不正です。</translation>
-    </message>
-    <message>
-        <location line="+2"/>
-        <source>Installing documentation %1...</source>
-        <translation>%1 のドキュメントをインストール中...</translation>
-    </message>
-    <message>
-        <location line="+22"/>
-        <source>Error while installing documentation:
-%1</source>
-        <translation>ドキュメントのインストール中にエラーが発生しました:
-%1 </translation>
-    </message>
-    <message>
-        <location filename="../tools/assistant/tools/assistant/installdialog.ui"/>
-        <source>Available Documentation:</source>
-        <translation>使用可能なドキュメント:</translation>
-    </message>
-    <message>
-        <location/>
-        <source>Install</source>
-        <translation>インストール</translation>
-    </message>
-    <message>
-        <location/>
-        <source>Cancel</source>
-        <translation>キャンセル</translation>
-    </message>
-    <message>
-        <location/>
-        <source>Close</source>
-        <translation>閉じる</translation>
-    </message>
-    <message>
-        <location/>
-        <source>Installation Path:</source>
-        <translation>インストール先のパス:</translation>
-    </message>
-    <message>
-        <location/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-</context>
-<context>
-    <name>MainWindow</name>
-    <message>
-        <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="+108"/>
-        <location line="+350"/>
-        <source>Index</source>
-        <translation>インデックス</translation>
-    </message>
-    <message>
-        <location line="-344"/>
-        <location line="+342"/>
-        <source>Contents</source>
-        <translation>コンテンツ</translation>
-    </message>
-    <message>
-        <location line="-337"/>
-        <location line="+341"/>
-        <source>Bookmarks</source>
-        <translation>ブックマーク</translation>
-    </message>
-    <message>
-        <location line="-329"/>
-        <location line="+331"/>
-        <source>Search</source>
-        <translation>検索</translation>
-    </message>
-    <message>
-        <location line="-319"/>
-        <location line="+192"/>
-        <location line="+470"/>
-        <source>Qt Assistant</source>
-        <translation>Qt Assistant</translation>
-    </message>
-    <message>
-        <location line="-501"/>
-        <location line="+4"/>
-        <source>Unfiltered</source>
-        <translation>フィルタなし</translation>
-    </message>
-    <message>
-        <location line="+84"/>
-        <source>Page Set&amp;up...</source>
-        <translation>ページ設定(&amp;U)...</translation>
-    </message>
-    <message>
-        <location line="+2"/>
-        <source>Print Preview...</source>
-        <translation>印刷プレビュー...</translation>
+        <source>Error registering documentation file &apos;%1&apos;: %2</source>
+        <translation>ドキュメントファイル &apos;%1&apos; の登録中にエラーが発生しました: %2</translation>
     </message>
     <message>
-        <location line="+3"/>
-        <source>&amp;Print...</source>
-        <translation>印刷(&amp;P)...</translation>
-    </message>
-    <message>
-        <location line="+6"/>
-        <source>New &amp;Tab</source>
-        <translation>新しいタブ(&amp;T)</translation>
-    </message>
-    <message>
-        <location line="+3"/>
-        <source>&amp;Close Tab</source>
-        <translation>タブを閉じる(&amp;C)</translation>
-    </message>
-    <message>
-        <location line="+4"/>
-        <source>&amp;Quit</source>
-        <translation>終了(&amp;Q)</translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>CTRL+Q</source>
-        <translation>CTRL+Q</translation>
-    </message>
-    <message>
-        <location line="+4"/>
-        <source>&amp;Copy selected Text</source>
-        <translation>選択中の文字をコピー(&amp;C)</translation>
-    </message>
-    <message>
-        <location line="+6"/>
-        <source>&amp;Find in Text...</source>
-        <translation>検索(&amp;F)...</translation>
-    </message>
-    <message>
-        <location line="+5"/>
-        <source>Find &amp;Next</source>
-        <translation>次を検索(&amp;N)</translation>
-    </message>
-    <message>
-        <location line="+4"/>
-        <source>Find &amp;Previous</source>
-        <translation>前を検索(&amp;P)</translation>
-    </message>
-    <message>
-        <location line="+5"/>
-        <source>Preferences...</source>
-        <translation>設定...</translation>
-    </message>
-    <message>
-        <location line="+4"/>
-        <source>Zoom &amp;in</source>
-        <translation>拡大(&amp;I)</translation>
-    </message>
-    <message>
-        <location line="+5"/>
-        <source>Zoom &amp;out</source>
-        <translation>縮小(&amp;O)</translation>
-    </message>
-    <message>
-        <location line="+5"/>
-        <source>Normal &amp;Size</source>
-        <translation>普通の大きさ(&amp;S)</translation>
-    </message>
-    <message>
-        <location line="+3"/>
-        <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;H)</translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Ctrl+Home</source>
-        <translation>Ctrl+Home</translation>
-    </message>
-    <message>
-        <location line="+3"/>
-        <source>&amp;Back</source>
-        <translation>戻る(&amp;B)</translation>
-    </message>
-    <message>
-        <location line="+5"/>
-        <source>&amp;Forward</source>
-        <translation>進む(&amp;F)</translation>
-    </message>
-    <message>
-        <location line="+5"/>
-        <source>Sync with Table of Contents</source>
-        <translation>内容と目次を同期する</translation>
-    </message>
-    <message>
-        <location line="+6"/>
-        <source>Next Page</source>
-        <translation>次のページ</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>前のページ</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>ブックマークの追加...</translation>
-    </message>
-    <message>
-        <location line="+4"/>
-        <source>About...</source>
-        <translation>Qt Assistant について...</translation>
-    </message>
-    <message>
-        <location line="+3"/>
-        <source>Navigation Toolbar</source>
-        <translation>ナビゲーション ツールバー</translation>
-    </message>
-    <message>
-        <location line="+74"/>
-        <source>Toolbars</source>
-        <translation>ツールバー</translation>
-    </message>
-    <message>
-        <location line="+15"/>
-        <source>Filter Toolbar</source>
-        <translation>フィルター ツールバー</translation>
-    </message>
-    <message>
-        <location line="+2"/>
-        <source>Filtered by:</source>
-        <translation>フィルタ条件:</translation>
-    </message>
-    <message>
-        <location line="+23"/>
-        <source>Address Toolbar</source>
-        <translation>アドレス ツールバー</translation>
-    </message>
-    <message>
-        <location line="+4"/>
-        <source>Address:</source>
-        <translation>アドレス:</translation>
-    </message>
-    <message>
-        <location line="+110"/>
-        <source>Could not find the associated content item.</source>
-        <translation>関連付いた内容が見つかりません。</translation>
-    </message>
-    <message>
-        <location line="+81"/>
-        <source>About %1</source>
-        <translation>%1 について</translation>
-    </message>
-    <message>
-        <location line="+115"/>
-        <source>Updating search index</source>
-        <translation>検索インデックスを更新中</translation>
-    </message>
-    <message>
-        <location line="-597"/>
-        <source>Looking for Qt Documentation...</source>
-        <translation>Qt ドキュメントを探しています...</translation>
-    </message>
-    <message>
-        <location line="+195"/>
-        <source>&amp;Window</source>
-        <translation>ウィンドウ(&amp;W)</translation>
-    </message>
-    <message>
-        <location line="+3"/>
-        <source>Minimize</source>
-        <translation>最小化</translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Ctrl+M</source>
-        <translation>Ctrl+M</translation>
-    </message>
-    <message>
-        <location line="-2"/>
-        <source>Zoom</source>
-        <translation>ズーム</translation>
-    </message>
-    <message>
-        <location line="-136"/>
-        <source>&amp;File</source>
-        <translation>ファイル(&amp;F)</translation>
-    </message>
-    <message>
-        <location line="+24"/>
-        <source>&amp;Edit</source>
-        <translation>編集(&amp;E)</translation>
-    </message>
-    <message>
-        <location line="+24"/>
-        <source>&amp;View</source>
-        <translation>表示(&amp;V)</translation>
-    </message>
-    <message>
-        <location line="+27"/>
-        <source>&amp;Go</source>
-        <translation>ジャンプ(&amp;G)</translation>
+        <source>Error: %1</source>
+        <translation>エラー: %1</translation>
     </message>
     <message>
-        <location line="+29"/>
-        <source>&amp;Bookmarks</source>
-        <translation>ブックマーク(&amp;B)</translation>
-    </message>
-    <message>
-        <location line="+4"/>
-        <source>&amp;Help</source>
-        <translation>ヘルプ(&amp;H)</translation>
-    </message>
-    <message>
-        <location line="-37"/>
-        <source>ALT+O</source>
-        <translation>ALT+O</translation>
-    </message>
-    <message>
-        <location line="+35"/>
-        <source>CTRL+D</source>
-        <translation>CTRL+D</translation>
-    </message>
-</context>
-<context>
-    <name>PreferencesDialog</name>
-    <message>
-        <location filename="../tools/assistant/tools/assistant/preferencesdialog.cpp" line="+237"/>
-        <location line="+7"/>
-        <location line="+6"/>
-        <source>Add Documentation</source>
-        <translation>ドキュメントの追加</translation>
-    </message>
-    <message>
-        <location line="-13"/>
-        <source>Qt Compressed Help Files (*.qch)</source>
-        <translation>圧縮済み Qt ヘルプファイル (*.qch)</translation>
-    </message>
-    <message>
-        <location line="+8"/>
-        <source>The specified file is not a valid Qt Help File!</source>
-        <translation>指定されたファイルは有効な Qt ヘルプ ファイルではありません!</translation>
-    </message>
-    <message>
-        <location line="+6"/>
-        <source>The namespace %1 is already registered!</source>
-        <translation>ネームスペース %1 は既に登録済みです!</translation>
-    </message>
-    <message>
-        <location line="+23"/>
-        <source>Remove Documentation</source>
-        <translation>ドキュメントの除去</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>除去しようとしているいくつかのドキュメントは Assistant 上で参照されています。除去すると、これらのドキュメントは閉じられます。</translation>
-    </message>
-    <message>
-        <location line="+2"/>
-        <source>Cancel</source>
-        <translation>キャンセル</translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>OK</source>
-        <translation>OK</translation>
-    </message>
-    <message>
-        <location line="+86"/>
-        <source>Use custom settings</source>
-        <translation>独自設定を使用する</translation>
-    </message>
-</context>
-<context>
-    <name>PreferencesDialogClass</name>
-    <message>
-        <location filename="../tools/assistant/tools/assistant/preferencesdialog.ui"/>
-        <source>Preferences</source>
-        <translation>設定</translation>
-    </message>
-    <message>
-        <location/>
-        <source>Fonts</source>
-        <translation>フォント</translation>
-    </message>
-    <message>
-        <location/>
-        <source>Font settings:</source>
-        <translation>フォント設定:</translation>
-    </message>
-    <message>
-        <location/>
-        <source>Browser</source>
-        <translation>ブラウザー</translation>
-    </message>
-    <message>
-        <location/>
-        <source>Application</source>
-        <translation>アプリケーション</translation>
-    </message>
-    <message>
-        <location/>
-        <source>Filters</source>
-        <translation>フィルタ</translation>
-    </message>
-    <message>
-        <location/>
-        <source>Filter:</source>
-        <translation>フィルタ:</translation>
-    </message>
-    <message>
-        <location/>
-        <source>Attributes:</source>
-        <translation>属性:</translation>
-    </message>
-    <message>
-        <location/>
-        <source>1</source>
-        <translation>1</translation>
-    </message>
-    <message>
-        <location/>
-        <source>Add</source>
-        <translation>追加</translation>
-    </message>
-    <message>
-        <location/>
-        <source>Remove</source>
-        <translation>削除</translation>
-    </message>
-    <message>
-        <location/>
-        <source>Documentation</source>
-        <translation>ドキュメント</translation>
-    </message>
-    <message>
-        <location/>
-        <source>Registered Documentation:</source>
-        <translation>登録済みドキュメント:</translation>
-    </message>
-    <message>
-        <location/>
-        <source>Add...</source>
-        <translation>追加...</translation>
-    </message>
-    <message>
-        <location/>
-        <source>Options</source>
-        <translation>オプション</translation>
-    </message>
-    <message>
-        <location/>
-        <source>Current Page</source>
-        <translation>現在のページ</translation>
-    </message>
-    <message>
-        <location/>
-        <source>Restore to default</source>
-        <translation>デフォルト設定に戻す</translation>
-    </message>
-    <message>
-        <location/>
-        <source>Homepage</source>
-        <translation>ホームページ</translation>
-    </message>
-</context>
-<context>
-    <name>QObject</name>
-    <message>
-        <location filename="../tools/assistant/tools/assistant/cmdlineparser.cpp" line="+110"/>
-        <source>The specified collection file does not exist!</source>
-        <translation>指定されたコレクションファイルは存在しません!</translation>
-    </message>
-    <message>
-        <location line="+4"/>
-        <source>Missing collection file!</source>
-        <translation>コレクションファイルが見つかりません!</translation>
-    </message>
-    <message>
-        <location line="+9"/>
-        <source>Invalid URL!</source>
-        <translation>不正なURLです!</translation>
-    </message>
-    <message>
-        <location line="+4"/>
-        <source>Missing URL!</source>
-        <translation>URLが見つかりません!</translation>
-    </message>
-    <message>
-        <location line="+17"/>
-        <location line="+19"/>
-        <location line="+19"/>
-        <source>Unknown widget: %1</source>
-        <translation>不明なウィジェット: %1</translation>
-    </message>
-    <message>
-        <location line="-34"/>
-        <location line="+19"/>
-        <location line="+19"/>
-        <source>Missing widget!</source>
-        <translation>ウィジェットが見つかりません!</translation>
-    </message>
-    <message>
-        <location line="+7"/>
-        <location line="+12"/>
-        <source>The specified Qt help file does not exist!</source>
-        <translation>指定された Qt ヘルプ ファイルが存在しません!</translation>
-    </message>
-    <message>
-        <location line="-7"/>
-        <location line="+12"/>
-        <source>Missing help file!</source>
-        <translation>ヘルプファイルが見つかりません!</translation>
-    </message>
-    <message>
-        <location line="+7"/>
-        <source>Missing filter argument!</source>
-        <translation>フィルタ引数が不足しています!</translation>
-    </message>
-    <message>
-        <location line="+10"/>
-        <source>Unknown option: %1</source>
-        <translation>不明なオプション: %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="+190"/>
         <source>Could not register documentation file
 %1
 
@@ -958,54 +48,1043 @@
 %2</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Documentation successfully registered.</source>
         <translation>ドキュメントの登録に成功しました。</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>Could not unregister documentation file
 %1
 
 Reason:
 %2</source>
-        <translation>ドキュメントファイルを解除できませんでした。
+        <translation>ドキュメントファイルの登録を解除できませんでした。
 %1
 
 原因:
 %2</translation>
     </message>
     <message>
-        <location line="-3"/>
         <source>Documentation successfully unregistered.</source>
-        <translation>ドキュメントの解放に成功しました。</translation>
+        <translation>ドキュメントの登録解除に成功しました。</translation>
+    </message>
+    <message>
+        <source>Error reading collection file &apos;%1&apos;: %2.</source>
+        <translation>コレクションファイル &apos;%1&apos; の読み込み中にエラーが発生しました: %2</translation>
     </message>
     <message>
-        <location line="+18"/>
+        <source>Error creating collection file &apos;%1&apos;: %2.</source>
+        <translation>コレクションファイル &apos;%1&apos; の作成中にエラーが発生しました: %2</translation>
+    </message>
+    <message>
+        <source>Error reading collection file &apos;%1&apos;: %2</source>
+        <translation>コレクションファイル &apos;%1&apos; の読み込み中にエラーが発生しました: %2</translation>
+    </message>
+    <message>
         <source>Cannot load sqlite database driver!</source>
         <translation>SQLite データベース ドライバーをロードできません!</translation>
     </message>
+</context>
+<context>
+    <name>BookmarkDialog</name>
     <message>
-        <location line="+9"/>
-        <source>The specified collection file could not be read!</source>
-        <translation>指定されたコレクションファイルは読み込めません!</translation>
+        <source>Bookmarks</source>
+        <translation type="obsolete">ブックマーク</translation>
+    </message>
+    <message>
+        <source>Add Bookmark</source>
+        <translation>ブックマークの追加</translation>
+    </message>
+    <message>
+        <source>Bookmark:</source>
+        <translation>ブックマーク:</translation>
+    </message>
+    <message>
+        <source>Add in Folder:</source>
+        <translation>追加先フォルダ:</translation>
+    </message>
+    <message>
+        <source>+</source>
+        <translation>+</translation>
+    </message>
+    <message>
+        <source>New Folder</source>
+        <translation>新しいフォルダ</translation>
+    </message>
+    <message>
+        <source>Delete Folder</source>
+        <translation type="obsolete">フォルダを削除</translation>
+    </message>
+    <message>
+        <source>Rename Folder</source>
+        <translation>フォルダの名前変更</translation>
+    </message>
+</context>
+<context>
+    <name>BookmarkManager</name>
+    <message>
+        <source>Bookmarks</source>
+        <translation type="obsolete">ブックマーク</translation>
+    </message>
+    <message>
+        <source>Untitled</source>
+        <translation>タイトルなし</translation>
+    </message>
+    <message>
+        <source>Remove</source>
+        <translation>削除</translation>
+    </message>
+    <message>
+        <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>フォルダを削除すると中身も削除されますが、続けてよろしいですか?</translation>
+    </message>
+    <message>
+        <source>Manage Bookmarks...</source>
+        <translation>ブックマークを管理...</translation>
+    </message>
+    <message>
+        <source>Add Bookmark...</source>
+        <translation>ブックマークの追加...</translation>
+    </message>
+    <message>
+        <source>Ctrl+D</source>
+        <translation>Ctrl+D</translation>
+    </message>
+    <message>
+        <source>Delete Folder</source>
+        <translation>フォルダを削除</translation>
+    </message>
+    <message>
+        <source>Rename Folder</source>
+        <translation>フォルダの名前変更</translation>
+    </message>
+    <message>
+        <source>Show Bookmark</source>
+        <translation>ブックマークを開く</translation>
+    </message>
+    <message>
+        <source>Show Bookmark in New Tab</source>
+        <translation>ブックマークを新しいタブで開く</translation>
+    </message>
+    <message>
+        <source>Delete Bookmark</source>
+        <translation>ブックマークを削除</translation>
+    </message>
+    <message>
+        <source>Rename Bookmark</source>
+        <translation>ブックマークの名前変更</translation>
+    </message>
+    <message>
+        <source>New Folder</source>
+        <translation type="obsolete">新しいフォルダ</translation>
+    </message>
+</context>
+<context>
+    <name>BookmarkManagerWidget</name>
+    <message>
+        <source>Manage Bookmarks</source>
+        <translation>ブックマークを管理</translation>
+    </message>
+    <message>
+        <source>Search:</source>
+        <translation>検索:</translation>
+    </message>
+    <message>
+        <source>Remove</source>
+        <translation>削除</translation>
+    </message>
+    <message>
+        <source>Import and Backup</source>
+        <translation>インポートとバックアップ</translation>
+    </message>
+    <message>
+        <source>OK</source>
+        <translation>OK</translation>
+    </message>
+    <message>
+        <source>Import...</source>
+        <translation>インポート...</translation>
+    </message>
+    <message>
+        <source>Export...</source>
+        <translation>エクスポート...</translation>
+    </message>
+    <message>
+        <source>Open File</source>
+        <translation>ファイルを開く</translation>
+    </message>
+    <message>
+        <source>Files (*.xbel)</source>
+        <translation>ファイル (*.xbel)</translation>
+    </message>
+    <message>
+        <source>Save File</source>
+        <translation>ファイルを保存</translation>
+    </message>
+    <message>
+        <source>Qt Assistant</source>
+        <translation>Qt Assistant</translation>
+    </message>
+    <message>
+        <source>Unable to save bookmarks.</source>
+        <translation>ブックマークを保存できません。</translation>
+    </message>
+    <message>
+        <source>You are goingto delete a Folder, this will also&lt;br&gt; remove it&apos;s content. Are you sure to continue?</source>
+        <translation>フォルダを削除するとその中身も削除されますが、続けてよろしいですか?</translation>
+    </message>
+    <message>
+        <source>Delete Folder</source>
+        <translation>フォルダを削除</translation>
+    </message>
+    <message>
+        <source>Rename Folder</source>
+        <translation>フォルダの名前変更</translation>
+    </message>
+    <message>
+        <source>Show Bookmark</source>
+        <translation>ブックマークを開く</translation>
+    </message>
+    <message>
+        <source>Show Bookmark in New Tab</source>
+        <translation>ブックマークを新しいタブで開く</translation>
+    </message>
+    <message>
+        <source>Delete Bookmark</source>
+        <translation>ブックマークを削除</translation>
+    </message>
+    <message>
+        <source>Rename Bookmark</source>
+        <translation>ブックマークの名前変更</translation>
+    </message>
+</context>
+<context>
+    <name>BookmarkModel</name>
+    <message>
+        <source>Name</source>
+        <translation>名前</translation>
+    </message>
+    <message>
+        <source>Address</source>
+        <translation>アドレス</translation>
+    </message>
+    <message>
+        <source>Bookmarks Menu</source>
+        <translation>ブックマークメニュー</translation>
+    </message>
+</context>
+<context>
+    <name>BookmarkWidget</name>
+    <message>
+        <source>Filter:</source>
+        <translation>フィルタ:</translation>
+    </message>
+    <message>
+        <source>Remove</source>
+        <translation>削除</translation>
+    </message>
+    <message>
+        <source>Delete Folder</source>
+        <translation type="obsolete">フォルダを削除</translation>
+    </message>
+    <message>
+        <source>Rename Folder</source>
+        <translation type="obsolete">フォルダの名前変更</translation>
+    </message>
+    <message>
+        <source>Show Bookmark</source>
+        <translation type="obsolete">ブックマークを開く</translation>
+    </message>
+    <message>
+        <source>Show Bookmark in New Tab</source>
+        <translation type="obsolete">ブックマークを新しいタブで開く</translation>
+    </message>
+    <message>
+        <source>Delete Bookmark</source>
+        <translation type="obsolete">ブックマークを削除</translation>
+    </message>
+    <message>
+        <source>Rename Bookmark</source>
+        <translation type="obsolete">ブックマークの名前変更</translation>
+    </message>
+    <message>
+        <source>Add</source>
+        <translation>追加</translation>
+    </message>
+    <message>
+        <source>Bookmarks</source>
+        <translation>ブックマーク</translation>
+    </message>
+</context>
+<context>
+    <name>CentralWidget</name>
+    <message>
+        <source>Add new page</source>
+        <translation>新しいページの追加</translation>
+    </message>
+    <message>
+        <source>Close current page</source>
+        <translation>現在のページを閉じる</translation>
+    </message>
+    <message>
+        <source>Print Document</source>
+        <translation>ドキュメントを印刷</translation>
+    </message>
+    <message>
+        <source>unknown</source>
+        <translation>不明</translation>
+    </message>
+    <message>
+        <source>Add New Page</source>
+        <translation>新しいページの追加</translation>
+    </message>
+    <message>
+        <source>Close This Page</source>
+        <translation>このページを閉じる</translation>
+    </message>
+    <message>
+        <source>Close Other Pages</source>
+        <translation>他のページを閉じる</translation>
+    </message>
+    <message>
+        <source>Add Bookmark for this Page...</source>
+        <translation>このページをブックマークに追加...</translation>
+    </message>
+    <message>
+        <source>Search</source>
+        <translation>検索</translation>
+    </message>
+</context>
+<context>
+    <name>CmdLineParser</name>
+    <message>
+        <source>Unknown option: %1</source>
+        <translation>不明なオプション: %1</translation>
+    </message>
+    <message>
+        <source>The collection file &apos;%1&apos; does not exist.</source>
+        <translation>コレクションファイル &apos;%1&apos; が存在しません。</translation>
+    </message>
+    <message>
+        <source>Missing collection file.</source>
+        <translation>コレクションファイルが見つかりません。</translation>
+    </message>
+    <message>
+        <source>Invalid URL &apos;%1&apos;.</source>
+        <translation>不正なURL &apos;%1&apos; です。</translation>
+    </message>
+    <message>
+        <source>Missing URL.</source>
+        <translation>URLが見つかりません。</translation>
+    </message>
+    <message>
+        <source>Unknown widget: %1</source>
+        <translation>不明なウィジェット: %1</translation>
+    </message>
+    <message>
+        <source>Missing widget.</source>
+        <translation>ウィジェットが見つかりません。</translation>
+    </message>
+    <message>
+        <source>The Qt help file &apos;%1&apos; does not exist.</source>
+        <translation>Qt のヘルプファイル &apos;%1&apos; が存在しません。</translation>
+    </message>
+    <message>
+        <source>Missing help file.</source>
+        <translation>ヘルプファイルが見つかりません。</translation>
+    </message>
+    <message>
+        <source>Missing filter argument.</source>
+        <translation>フィルタ引数が不足しています。</translation>
+    </message>
+    <message>
+        <source>Error</source>
+        <translation>エラー</translation>
+    </message>
+    <message>
+        <source>Notice</source>
+        <translation>注意</translation>
+    </message>
+</context>
+<context>
+    <name>ContentWindow</name>
+    <message>
+        <source>Open Link</source>
+        <translation>リンクを開く</translation>
+    </message>
+    <message>
+        <source>Open Link in New Tab</source>
+        <translation>リンクを新しいタブで開く</translation>
+    </message>
+</context>
+<context>
+    <name>FilterNameDialogClass</name>
+    <message>
+        <source>Add Filter Name</source>
+        <translation>フィルタ名を追加</translation>
+    </message>
+    <message>
+        <source>Filter Name:</source>
+        <translation>フィルタ名:</translation>
+    </message>
+</context>
+<context>
+    <name>FindWidget</name>
+    <message>
+        <source>Previous</source>
+        <translation>戻る</translation>
+    </message>
+    <message>
+        <source>Next</source>
+        <translation>進む</translation>
+    </message>
+    <message>
+        <source>Case Sensitive</source>
+        <translation>大文字/小文字を区別する</translation>
+    </message>
+    <message>
+        <source>Whole words</source>
+        <translation type="obsolete">単語単位で検索する</translation>
+    </message>
+    <message>
+        <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;見つからなければ先頭から検索する</translation>
+    </message>
+</context>
+<context>
+    <name>FontPanel</name>
+    <message>
+        <source>Font</source>
+        <translation>フォント</translation>
+    </message>
+    <message>
+        <source>&amp;Writing system</source>
+        <translation>文字セット(&amp;W)</translation>
+    </message>
+    <message>
+        <source>&amp;Family</source>
+        <translation>フォント名(&amp;F)</translation>
+    </message>
+    <message>
+        <source>&amp;Style</source>
+        <translation>スタイル(&amp;S)</translation>
+    </message>
+    <message>
+        <source>&amp;Point size</source>
+        <translation>サイズ(&amp;P)</translation>
+    </message>
+</context>
+<context>
+    <name>HelpViewer</name>
+    <message>
+        <source>Help</source>
+        <translation type="obsolete">ヘルプ</translation>
+    </message>
+    <message>
+        <source>OK</source>
+        <translation type="obsolete">OK</translation>
+    </message>
+    <message>
+        <source>&lt;title&gt;about:blank&lt;/title&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <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;Error 404...&lt;/title&gt;&lt;div align=&quot;center&quot;&gt;&lt;br&gt;&lt;br&gt;&lt;h1&gt;ページが見つかりませんでした&lt;/h1&gt;&lt;br&gt;&lt;h3&gt;&apos;%1&apos;&lt;/h3&gt;&lt;/div&gt;</translation>
+    </message>
+    <message>
+        <source>Copy &amp;Link Location</source>
+        <translation>リンクのURLをコピー(&amp;L)</translation>
+    </message>
+    <message>
+        <source>Open Link in New Tab	Ctrl+LMB</source>
+        <translation>リンクを新しいタブで開く	Ctrl+LMB</translation>
+    </message>
+    <message>
+        <source>Open Link in New Tab</source>
+        <translation>リンクを新しいタブで開く</translation>
+    </message>
+    <message>
+        <source>Unable to launch external application.
+</source>
+        <translation type="obsolete">外部アプリケーションを起動できません。
+</translation>
+    </message>
+</context>
+<context>
+    <name>IndexWindow</name>
+    <message>
+        <source>&amp;Look for:</source>
+        <translation>検索文字列(&amp;L):</translation>
+    </message>
+    <message>
+        <source>Open Link</source>
+        <translation>リンクを開く</translation>
+    </message>
+    <message>
+        <source>Open Link in New Tab</source>
+        <translation>リンクを新しいタブで開く</translation>
+    </message>
+</context>
+<context>
+    <name>InstallDialog</name>
+    <message>
+        <source>Install Documentation</source>
+        <translation>ドキュメントのインストール</translation>
+    </message>
+    <message>
+        <source>Downloading documentation info...</source>
+        <translation>ドキュメント情報をダウンロード中...</translation>
+    </message>
+    <message>
+        <source>Download canceled.</source>
+        <translation>ダウンロードを中止しました。</translation>
+    </message>
+    <message>
+        <source>Done.</source>
+        <translation>完了.</translation>
+    </message>
+    <message>
+        <source>The file %1 already exists. Do you want to overwrite it?</source>
+        <translation>%1 は既に存在します。上書きしますか?</translation>
+    </message>
+    <message>
+        <source>Unable to save the file %1: %2.</source>
+        <translation>ファイルを保存できません。%1: %2.</translation>
+    </message>
+    <message>
+        <source>Downloading %1...</source>
+        <translation>%1 をダウンロード中...</translation>
+    </message>
+    <message>
+        <source>Download failed: %1.</source>
+        <translation>ダウンロード失敗: %1.</translation>
+    </message>
+    <message>
+        <source>Documentation info file is corrupt!</source>
+        <translation>ドキュメント情報ファイルが不正です!</translation>
+    </message>
+    <message>
+        <source>Download failed: Downloaded file is corrupted.</source>
+        <translation>ダウンロード失敗: ダウンロードしたファイルが不正です。</translation>
+    </message>
+    <message>
+        <source>Installing documentation %1...</source>
+        <translation>%1 のドキュメントをインストール中...</translation>
+    </message>
+    <message>
+        <source>Error while installing documentation:
+%1</source>
+        <translation>ドキュメントのインストール中にエラーが発生しました:
+%1 </translation>
     </message>
     <message>
-        <location filename="../tools/assistant/tools/assistant/bookmarkmanager.cpp" line="+167"/>
-        <location line="+1"/>
+        <source>Available Documentation:</source>
+        <translation>使用可能なドキュメント:</translation>
+    </message>
+    <message>
+        <source>Install</source>
+        <translation>インストール</translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation>キャンセル</translation>
+    </message>
+    <message>
+        <source>Close</source>
+        <translation>閉じる</translation>
+    </message>
+    <message>
+        <source>Installation Path:</source>
+        <translation>インストール先のパス:</translation>
+    </message>
+    <message>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>MainWindow</name>
+    <message>
+        <source>Index</source>
+        <translation>インデックス</translation>
+    </message>
+    <message>
+        <source>Contents</source>
+        <translation>コンテンツ</translation>
+    </message>
+    <message>
+        <source>Bookmarks</source>
+        <translation>ブックマーク</translation>
+    </message>
+    <message>
+        <source>Search</source>
+        <translation>検索</translation>
+    </message>
+    <message>
+        <source>Qt Assistant</source>
+        <translation>Qt Assistant</translation>
+    </message>
+    <message>
+        <source>Unfiltered</source>
+        <translation type="obsolete">フィルタなし</translation>
+    </message>
+    <message>
+        <source>Page Set&amp;up...</source>
+        <translation>ページ設定(&amp;U)...</translation>
+    </message>
+    <message>
+        <source>Print Preview...</source>
+        <translation>印刷プレビュー...</translation>
+    </message>
+    <message>
+        <source>&amp;Print...</source>
+        <translation>印刷(&amp;P)...</translation>
+    </message>
+    <message>
+        <source>New &amp;Tab</source>
+        <translation>新しいタブ(&amp;T)</translation>
+    </message>
+    <message>
+        <source>&amp;Close Tab</source>
+        <translation>タブを閉じる(&amp;C)</translation>
+    </message>
+    <message>
+        <source>&amp;Quit</source>
+        <translation>終了(&amp;Q)</translation>
+    </message>
+    <message>
+        <source>CTRL+Q</source>
+        <translation>CTRL+Q</translation>
+    </message>
+    <message>
+        <source>&amp;Copy selected Text</source>
+        <translation>選択中の文字をコピー(&amp;C)</translation>
+    </message>
+    <message>
+        <source>&amp;Find in Text...</source>
+        <translation>検索(&amp;F)...</translation>
+    </message>
+    <message>
+        <source>&amp;Find</source>
+        <translation>検索(&amp;F)</translation>
+    </message>
+    <message>
+        <source>Find &amp;Next</source>
+        <translation>次を検索(&amp;N)</translation>
+    </message>
+    <message>
+        <source>Find &amp;Previous</source>
+        <translation>前を検索(&amp;P)</translation>
+    </message>
+    <message>
+        <source>Preferences...</source>
+        <translation>設定...</translation>
+    </message>
+    <message>
+        <source>Zoom &amp;in</source>
+        <translation>拡大(&amp;I)</translation>
+    </message>
+    <message>
+        <source>Zoom &amp;out</source>
+        <translation>縮小(&amp;O)</translation>
+    </message>
+    <message>
+        <source>Normal &amp;Size</source>
+        <translation>普通の大きさ(&amp;S)</translation>
+    </message>
+    <message>
+        <source>Ctrl+0</source>
+        <translation>Ctrl+0</translation>
+    </message>
+    <message>
+        <source>ALT+C</source>
+        <translation>ALT+C</translation>
+    </message>
+    <message>
+        <source>ALT+I</source>
+        <translation>ALT+I</translation>
+    </message>
+    <message>
+        <source>ALT+S</source>
+        <translation>ALT+S</translation>
+    </message>
+    <message>
+        <source>&amp;Home</source>
+        <translation>ホーム(&amp;H)</translation>
+    </message>
+    <message>
+        <source>Could not register file &apos;%1&apos;: %2</source>
+        <translation>ファイル &apos;%1&apos; を登録できませんでした: %2</translation>
+    </message>
+    <message>
+        <source>Ctrl+Home</source>
+        <translation type="obsolete">Ctrl+Home</translation>
+    </message>
+    <message>
+        <source>&amp;Back</source>
+        <translation>戻る(&amp;B)</translation>
+    </message>
+    <message>
+        <source>&amp;Forward</source>
+        <translation>進む(&amp;F)</translation>
+    </message>
+    <message>
+        <source>Sync with Table of Contents</source>
+        <translation>内容と目次を同期する</translation>
+    </message>
+    <message>
+        <source>Next Page</source>
+        <translation>次のページ</translation>
+    </message>
+    <message>
+        <source>Ctrl+Alt+Right</source>
+        <translation>Ctrl+Alt+Right</translation>
+    </message>
+    <message>
+        <source>Previous Page</source>
+        <translation>前のページ</translation>
+    </message>
+    <message>
+        <source>Ctrl+Alt+Left</source>
+        <translation>Ctrl+Alt+Left</translation>
+    </message>
+    <message>
+        <source>Add Bookmark...</source>
+        <translation type="obsolete">ブックマークの追加...</translation>
+    </message>
+    <message>
+        <source>About...</source>
+        <translation>Qt Assistant について...</translation>
+    </message>
+    <message>
+        <source>Navigation Toolbar</source>
+        <translation>ナビゲーション ツールバー</translation>
+    </message>
+    <message>
+        <source>Toolbars</source>
+        <translation>ツールバー</translation>
+    </message>
+    <message>
+        <source>Filter Toolbar</source>
+        <translation>フィルター ツールバー</translation>
+    </message>
+    <message>
+        <source>Filtered by:</source>
+        <translation>フィルタ条件:</translation>
+    </message>
+    <message>
+        <source>Address Toolbar</source>
+        <translation>アドレス ツールバー</translation>
+    </message>
+    <message>
+        <source>Address:</source>
+        <translation>アドレス:</translation>
+    </message>
+    <message>
+        <source>Could not find the associated content item.</source>
+        <translation>関連付いた内容が見つかりません。</translation>
+    </message>
+    <message>
+        <source>About %1</source>
+        <translation>%1 について</translation>
+    </message>
+    <message>
+        <source>Updating search index</source>
+        <translation>検索インデックスを更新中</translation>
+    </message>
+    <message>
+        <source>Looking for Qt Documentation...</source>
+        <translation>Qt ドキュメントを探しています...</translation>
+    </message>
+    <message>
+        <source>&amp;Window</source>
+        <translation>ウィンドウ(&amp;W)</translation>
+    </message>
+    <message>
+        <source>Minimize</source>
+        <translation>最小化</translation>
+    </message>
+    <message>
+        <source>Ctrl+M</source>
+        <translation>Ctrl+M</translation>
+    </message>
+    <message>
+        <source>Zoom</source>
+        <translation>ズーム</translation>
+    </message>
+    <message>
+        <source>&amp;File</source>
+        <translation>ファイル(&amp;F)</translation>
+    </message>
+    <message>
+        <source>&amp;Edit</source>
+        <translation>編集(&amp;E)</translation>
+    </message>
+    <message>
+        <source>&amp;View</source>
+        <translation>表示(&amp;V)</translation>
+    </message>
+    <message>
+        <source>&amp;Go</source>
+        <translation>ジャンプ(&amp;G)</translation>
+    </message>
+    <message>
+        <source>ALT+Home</source>
+        <translation>ALT+Home</translation>
+    </message>
+    <message>
+        <source>Sync</source>
+        <translation>同期</translation>
+    </message>
+    <message>
+        <source>&amp;Bookmarks</source>
+        <translation>ブックマーク(&amp;B)</translation>
+    </message>
+    <message>
+        <source>&amp;Help</source>
+        <translation>ヘルプ(&amp;H)</translation>
+    </message>
+    <message>
+        <source>ALT+O</source>
+        <translation>ALT+O</translation>
+    </message>
+    <message>
+        <source>CTRL+D</source>
+        <translation type="obsolete">CTRL+D</translation>
+    </message>
+</context>
+<context>
+    <name>PreferencesDialog</name>
+    <message>
+        <source>Add Documentation</source>
+        <translation>ドキュメントの追加</translation>
+    </message>
+    <message>
+        <source>Qt Compressed Help Files (*.qch)</source>
+        <translation>圧縮済み Qt ヘルプファイル (*.qch)</translation>
+    </message>
+    <message>
+        <source>The specified file is not a valid Qt Help File!</source>
+        <translation>指定されたファイルは有効な Qt ヘルプ ファイルではありません!</translation>
+    </message>
+    <message>
+        <source>The namespace %1 is already registered!</source>
+        <translation>ネームスペース %1 は既に登録済みです!</translation>
+    </message>
+    <message>
+        <source>Remove Documentation</source>
+        <translation>ドキュメントの除去</translation>
+    </message>
+    <message>
+        <source>Some documents currently opened in Assistant reference the documentation you are attempting to remove. Removing the documentation will close those documents.</source>
+        <translation>除去しようとしているいくつかのドキュメントは Assistant 上で参照されています。除去すると、これらのドキュメントは閉じられます。</translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation>キャンセル</translation>
+    </message>
+    <message>
+        <source>OK</source>
+        <translation>OK</translation>
+    </message>
+    <message>
+        <source>Use custom settings</source>
+        <translation>独自設定を使用する</translation>
+    </message>
+</context>
+<context>
+    <name>PreferencesDialogClass</name>
+    <message>
+        <source>Preferences</source>
+        <translation>設定</translation>
+    </message>
+    <message>
+        <source>Fonts</source>
+        <translation>フォント</translation>
+    </message>
+    <message>
+        <source>Font settings:</source>
+        <translation>フォント設定:</translation>
+    </message>
+    <message>
+        <source>Browser</source>
+        <translation>ブラウザー</translation>
+    </message>
+    <message>
+        <source>Application</source>
+        <translation>アプリケーション</translation>
+    </message>
+    <message>
+        <source>Filters</source>
+        <translation>フィルタ</translation>
+    </message>
+    <message>
+        <source>Filter:</source>
+        <translation>フィルタ:</translation>
+    </message>
+    <message>
+        <source>Attributes:</source>
+        <translation>属性:</translation>
+    </message>
+    <message>
+        <source>1</source>
+        <translation>1</translation>
+    </message>
+    <message>
+        <source>Add</source>
+        <translation>追加</translation>
+    </message>
+    <message>
+        <source>Remove</source>
+        <translation>削除</translation>
+    </message>
+    <message>
+        <source>Documentation</source>
+        <translation>ドキュメント</translation>
+    </message>
+    <message>
+        <source>Registered Documentation:</source>
+        <translation>登録済みドキュメント:</translation>
+    </message>
+    <message>
+        <source>Add...</source>
+        <translation>追加...</translation>
+    </message>
+    <message>
+        <source>Options</source>
+        <translation>オプション</translation>
+    </message>
+    <message>
+        <source>Current Page</source>
+        <translation>現在のページ</translation>
+    </message>
+    <message>
+        <source>Restore to default</source>
+        <translation>デフォルト設定に戻す</translation>
+    </message>
+    <message>
+        <source>Homepage</source>
+        <translation>ホームページ</translation>
+    </message>
+    <message>
+        <source>On help start:</source>
+        <translation>ヘルプの起動時:</translation>
+    </message>
+    <message>
+        <source>Show my home page</source>
+        <translation>ホームページを表示する</translation>
+    </message>
+    <message>
+        <source>Show a blank page</source>
+        <translation>空白ページを表示する</translation>
+    </message>
+    <message>
+        <source>Show my tabs from last session</source>
+        <translation>前回のセッションのタブを表示する</translation>
+    </message>
+    <message>
+        <source>Blank Page</source>
+        <translation>空白ページ</translation>
+    </message>
+</context>
+<context>
+    <name>QObject</name>
+    <message>
+        <source>The specified collection file does not exist!</source>
+        <translation type="obsolete">指定されたコレクションファイルは存在しません!</translation>
+    </message>
+    <message>
+        <source>Missing collection file!</source>
+        <translation type="obsolete">コレクションファイルが見つかりません!</translation>
+    </message>
+    <message>
+        <source>Invalid URL!</source>
+        <translation type="obsolete">不正なURLです!</translation>
+    </message>
+    <message>
+        <source>Missing URL!</source>
+        <translation type="obsolete">URLが見つかりません!</translation>
+    </message>
+    <message>
+        <source>Unknown widget: %1</source>
+        <translation type="obsolete">不明なウィジェット: %1</translation>
+    </message>
+    <message>
+        <source>Missing widget!</source>
+        <translation type="obsolete">ウィジェットが見つかりません!</translation>
+    </message>
+    <message>
+        <source>The specified Qt help file does not exist!</source>
+        <translation type="obsolete">指定された Qt ヘルプ ファイルが存在しません!</translation>
+    </message>
+    <message>
+        <source>Missing help file!</source>
+        <translation type="obsolete">ヘルプファイルが見つかりません!</translation>
+    </message>
+    <message>
+        <source>Missing filter argument!</source>
+        <translation type="obsolete">フィルタ引数が不足しています!</translation>
+    </message>
+    <message>
+        <source>Unknown option: %1</source>
+        <translation type="obsolete">不明なオプション: %1</translation>
+    </message>
+    <message>
+        <source>Qt Assistant</source>
+        <translation type="obsolete">Qt Assistant</translation>
+    </message>
+    <message>
+        <source>Could not register documentation file
+%1
+
+Reason:
+%2</source>
+        <translation type="obsolete">ドキュメントファイルを登録できませんでした。
+%1
+
+原因:
+%2</translation>
+    </message>
+    <message>
+        <source>Documentation successfully registered.</source>
+        <translation type="obsolete">ドキュメントの登録に成功しました。</translation>
+    </message>
+    <message>
+        <source>Could not unregister documentation file
+%1
+
+Reason:
+%2</source>
+        <translation type="obsolete">ドキュメントファイルを解除できませんでした。
+%1
+
+原因:
+%2</translation>
+    </message>
+    <message>
+        <source>Documentation successfully unregistered.</source>
+        <translation type="obsolete">ドキュメントの解放に成功しました。</translation>
+    </message>
+    <message>
+        <source>Cannot load sqlite database driver!</source>
+        <translation type="obsolete">SQLite データベース ドライバーをロードできません!</translation>
+    </message>
+    <message>
+        <source>The specified collection file could not be read!</source>
+        <translation type="obsolete">指定されたコレクションファイルは読み込めません!</translation>
+    </message>
+    <message>
         <source>Bookmark</source>
-        <translation>ブックマーク</translation>
+        <translation type="obsolete">ブックマーク</translation>
     </message>
 </context>
 <context>
     <name>RemoteControl</name>
     <message>
-        <location filename="../tools/assistant/tools/assistant/remotecontrol.cpp" line="+157"/>
         <source>Debugging Remote Control</source>
         <translation>リモート コントロールをデバッグ中</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Received Command: %1 %2</source>
         <translation>受信したコマンド: %1 %2</translation>
     </message>
@@ -1013,56 +1092,45 @@
 <context>
     <name>SearchWidget</name>
     <message>
-        <location filename="../tools/assistant/tools/assistant/searchwidget.cpp" line="+193"/>
         <source>&amp;Copy</source>
         <translation>コピー(&amp;C)</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Copy &amp;Link Location</source>
         <translation>リンクのURLをコピー(&amp;L)</translation>
     </message>
     <message>
-        <location line="+3"/>
-        <location line="+36"/>
         <source>Open Link in New Tab</source>
         <translation>リンクを新しいタブで開く</translation>
     </message>
     <message>
-        <location line="-29"/>
         <source>Select All</source>
         <translation>すべてを選択</translation>
     </message>
     <message>
-        <location line="+28"/>
         <source>Open Link</source>
-        <translation>リンクを開く</translation>
+        <translation type="obsolete">リンクを開く</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>&lt;b&gt;%1&lt;/b&gt; の検索先トピックを選択してください:</translation>
     </message>
     <message>
-        <location filename="../tools/assistant/tools/assistant/topicchooser.ui"/>
         <source>Choose Topic</source>
         <translation>トピックを選択</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Topics</source>
         <translation>トピック(&amp;T)</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Display</source>
         <translation>表示(&amp;D)</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Close</source>
         <translation>閉じる(&amp;C)</translation>
     </message>
--- a/translations/assistant_ru.ts	Fri Sep 17 08:34:18 2010 +0300
+++ b/translations/assistant_ru.ts	Mon Oct 04 01:19:32 2010 +0300
@@ -4,7 +4,6 @@
 <context>
     <name>AboutDialog</name>
     <message>
-        <location filename="../tools/assistant/tools/assistant/aboutdialog.cpp" line="+117"/>
         <source>&amp;Close</source>
         <translation>&amp;Закрыть</translation>
     </message>
@@ -12,19 +11,16 @@
 <context>
     <name>AboutLabel</name>
     <message>
-        <location line="-15"/>
         <source>Warning</source>
         <translation>Предупреждение</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Unable to launch external application.
 </source>
         <translation>Невозможно запустить внешнее приложение.
 </translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>OK</source>
         <translation>Закрыть</translation>
     </message>
@@ -32,17 +28,14 @@
 <context>
     <name>Assistant</name>
     <message>
-        <location filename="../tools/assistant/tools/assistant/main.cpp" line="+177"/>
         <source>Error registering documentation file &apos;%1&apos;: %2</source>
         <translation>Ошибка регистрации файла документации &apos;%1&apos;: %2</translation>
     </message>
     <message>
-        <location line="+39"/>
         <source>Error: %1</source>
         <translation>Ошибка: %1</translation>
     </message>
     <message>
-        <location line="+42"/>
         <source>Could not register documentation file
 %1
 
@@ -55,12 +48,10 @@
 %2</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Documentation successfully registered.</source>
         <translation>Документация успешно зарегистрирована.</translation>
     </message>
     <message>
-        <location line="+12"/>
         <source>Could not unregister documentation file
 %1
 
@@ -73,27 +64,22 @@
 %2</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Documentation successfully unregistered.</source>
         <translation>Документация успешно дерегистрирована.</translation>
     </message>
     <message>
-        <location line="+55"/>
         <source>Error reading collection file &apos;%1&apos;: %2.</source>
-        <translation type="unfinished">Ошибка чтения файла коллекции справки &apos;%1&apos;: %2.</translation>
+        <translation>Ошибка чтения файла коллекции справки &apos;%1&apos;: %2.</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>Error creating collection file &apos;%1&apos;: %2.</source>
-        <translation type="unfinished">Ошибка создания файла коллекции справки &apos;%1&apos;: %2.</translation>
+        <translation>Ошибка создания файла коллекции справки &apos;%1&apos;: %2.</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Error reading collection file &apos;%1&apos;: %2</source>
-        <translation type="unfinished">Ошибка чтения файла коллекции справки &apos;%1&apos;: %2</translation>
+        <translation>Ошибка чтения файла коллекции справки &apos;%1&apos;: %2</translation>
     </message>
     <message>
-        <location line="+53"/>
         <source>Cannot load sqlite database driver!</source>
         <translation>Не удалось загрузить драйвер баз данных sqlite!</translation>
     </message>
@@ -101,139 +87,229 @@
 <context>
     <name>BookmarkDialog</name>
     <message>
-        <location filename="../tools/assistant/tools/assistant/bookmarkdialog.ui"/>
         <source>Add Bookmark</source>
         <translation>Добавление закладки</translation>
     </message>
     <message>
-        <location/>
         <source>Bookmark:</source>
         <translation>Закладка:</translation>
     </message>
     <message>
-        <location/>
         <source>Add in Folder:</source>
         <translation>Добавить в папку:</translation>
     </message>
     <message>
-        <location/>
         <source>+</source>
         <translation>+</translation>
     </message>
     <message>
-        <location/>
         <source>New Folder</source>
         <translation>Новая папка</translation>
     </message>
+    <message>
+        <source>Rename Folder</source>
+        <translation>Переименовать папку</translation>
+    </message>
 </context>
 <context>
     <name>BookmarkManager</name>
     <message>
-        <location filename="../tools/assistant/tools/assistant/bookmarkmanager.cpp" line="+216"/>
         <source>Remove</source>
         <translation>Удалить</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>Удаление папки приведёт к удалению её содержимого.&lt;br&gt;Желаете продолжить?</translation>
     </message>
     <message>
-        <location line="+150"/>
         <source>Add Bookmark...</source>
         <translation>Добавить закладку...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Ctrl+D</source>
         <translation></translation>
     </message>
     <message>
-        <location line="-217"/>
         <source>Untitled</source>
         <translation>Неозаглавлено</translation>
     </message>
     <message>
-        <location line="+213"/>
         <source>Manage Bookmarks...</source>
         <translation>Управление закладками...</translation>
     </message>
     <message>
-        <location line="+72"/>
         <source>Delete Folder</source>
         <translation>Удалить папку</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Rename Folder</source>
         <translation>Переименовать папку</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Show Bookmark</source>
         <translation>Открыть закладку</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Show Bookmark in New Tab</source>
         <translation>Открыть закладку в новой вкладке</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Delete Bookmark</source>
         <translation>Удалить закладку</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Rename Bookmark</source>
         <translation>Переименовать закладку</translation>
     </message>
 </context>
 <context>
+    <name>BookmarkManagerWidget</name>
+    <message>
+        <source>Manage Bookmarks</source>
+        <translation>Управление закладками</translation>
+    </message>
+    <message>
+        <source>Search:</source>
+        <translation>Поиск:</translation>
+    </message>
+    <message>
+        <source>Remove</source>
+        <translation>Удалить</translation>
+    </message>
+    <message>
+        <source>Import and Backup</source>
+        <translation>Резервное копирование</translation>
+    </message>
+    <message>
+        <source>OK</source>
+        <translation>ОК</translation>
+    </message>
+    <message>
+        <source>Import...</source>
+        <translation>Импорт...</translation>
+    </message>
+    <message>
+        <source>Export...</source>
+        <translation>Экспорт...</translation>
+    </message>
+    <message>
+        <source>Open File</source>
+        <translation>Открыть файл</translation>
+    </message>
+    <message>
+        <source>Files (*.xbel)</source>
+        <translation>Файлы (*.xbel)</translation>
+    </message>
+    <message>
+        <source>Save File</source>
+        <translation>Сохранить файл</translation>
+    </message>
+    <message>
+        <source>Qt Assistant</source>
+        <translation>Qt Assistant</translation>
+    </message>
+    <message>
+        <source>Unable to save bookmarks.</source>
+        <translation>Невозможно сохранитьзакладки.</translation>
+    </message>
+    <message>
+        <source>You are goingto delete a Folder, this will also&lt;br&gt; remove it&apos;s content. Are you sure to continue?</source>
+        <translation>Удаление папки приведёт к удалению её содержимого.&lt;br&gt;Желаете продолжить?</translation>
+    </message>
+    <message>
+        <source>Delete Folder</source>
+        <translation>Удалить папку</translation>
+    </message>
+    <message>
+        <source>Rename Folder</source>
+        <translation>Переименовать папку</translation>
+    </message>
+    <message>
+        <source>Show Bookmark</source>
+        <translation>Открыть закладку</translation>
+    </message>
+    <message>
+        <source>Show Bookmark in New Tab</source>
+        <translation>Открыть закладку в новой вкладке</translation>
+    </message>
+    <message>
+        <source>Delete Bookmark</source>
+        <translation>Удалить закладку</translation>
+    </message>
+    <message>
+        <source>Rename Bookmark</source>
+        <translation>Переименовать закладку</translation>
+    </message>
+</context>
+<context>
+    <name>BookmarkModel</name>
+    <message>
+        <source>Name</source>
+        <translation>Название</translation>
+    </message>
+    <message>
+        <source>Address</source>
+        <translation>Адрес</translation>
+    </message>
+    <message>
+        <source>Bookmarks Menu</source>
+        <translation>Меню закладок</translation>
+    </message>
+</context>
+<context>
+    <name>BookmarkWidget</name>
+    <message>
+        <source>Bookmarks</source>
+        <translation>Закладки</translation>
+    </message>
+    <message>
+        <source>Filter:</source>
+        <translation>Фильтр:</translation>
+    </message>
+    <message>
+        <source>Add</source>
+        <translation>Добавить</translation>
+    </message>
+    <message>
+        <source>Remove</source>
+        <translation>Удалить</translation>
+    </message>
+</context>
+<context>
     <name>CentralWidget</name>
     <message>
-        <location filename="../tools/assistant/tools/assistant/centralwidget.cpp" line="+121"/>
         <source>Add new page</source>
         <translation>Открыть новую страницу</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Close current page</source>
         <translation>Закрыть текущую страницу</translation>
     </message>
     <message>
-        <location line="+287"/>
         <source>Print Document</source>
         <translation>Печать документа</translation>
     </message>
     <message>
-        <location line="+126"/>
-        <location line="+2"/>
         <source>unknown</source>
         <translation>безымянная вкладка</translation>
     </message>
     <message>
-        <location line="+101"/>
         <source>Add New Page</source>
         <translation>Открыть новую страницу</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Close This Page</source>
         <translation>Закрыть данную страницу</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Close Other Pages</source>
         <translation>Закрыть остальные страницы</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Add Bookmark for this Page...</source>
         <translation>Добавить закладку для этой страницы...</translation>
     </message>
     <message>
-        <location line="+264"/>
         <source>Search</source>
         <translation>Поиск</translation>
     </message>
@@ -241,62 +317,50 @@
 <context>
     <name>CmdLineParser</name>
     <message>
-        <location filename="../tools/assistant/tools/assistant/cmdlineparser.cpp" line="+137"/>
         <source>Unknown option: %1</source>
         <translation>Неизвестный параметр: %1</translation>
     </message>
     <message>
-        <location line="+87"/>
         <source>Unknown widget: %1</source>
         <translation>Неизвестный виджет: %1</translation>
     </message>
     <message>
-        <location line="-54"/>
         <source>The collection file &apos;%1&apos; does not exist.</source>
-        <translation type="unfinished">Файл коллекции справки &apos;%1&apos; не существует.</translation>
+        <translation>Файл коллекции справки &apos;%1&apos; не существует.</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Missing collection file.</source>
-        <translation type="unfinished">Отсутствует файл коллекции справки.</translation>
+        <translation>Отсутствует файл коллекции справки.</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>Invalid URL &apos;%1&apos;.</source>
         <translation>Некорректный URL &apos;%1&apos;.</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Missing URL.</source>
         <translation>Отсутствует URL.</translation>
     </message>
     <message>
-        <location line="+38"/>
         <source>Missing widget.</source>
         <translation>Отсутствует виджет.</translation>
     </message>
     <message>
-        <location line="+23"/>
         <source>The Qt help file &apos;%1&apos; does not exist.</source>
         <translation>Файл справки Qt &apos;%1&apos; не существует.</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Missing help file.</source>
         <translation>Отсутствует файл справки.</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>Missing filter argument.</source>
         <translation>Отсутствует параметр фильтра.</translation>
     </message>
     <message>
-        <location line="+20"/>
         <source>Error</source>
         <translation>Ошибка</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Notice</source>
         <translation>Замечание</translation>
     </message>
@@ -304,12 +368,10 @@
 <context>
     <name>ContentWindow</name>
     <message>
-        <location filename="../tools/assistant/tools/assistant/contentwindow.cpp" line="+173"/>
         <source>Open Link</source>
         <translation>Открыть ссылку</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Open Link in New Tab</source>
         <translation>Открыть ссылку в новой вкладке</translation>
     </message>
@@ -317,40 +379,52 @@
 <context>
     <name>FilterNameDialogClass</name>
     <message>
-        <location filename="../tools/assistant/tools/assistant/filternamedialog.ui"/>
         <source>Add Filter Name</source>
         <translation>Добавление фильтра</translation>
     </message>
     <message>
-        <location/>
         <source>Filter Name:</source>
         <translation>Название фильтра:</translation>
     </message>
 </context>
 <context>
+    <name>FindWidget</name>
+    <message>
+        <source>Previous</source>
+        <translation>Предыдущее</translation>
+    </message>
+    <message>
+        <source>Next</source>
+        <translation>Следующее</translation>
+    </message>
+    <message>
+        <source>Case Sensitive</source>
+        <translation>Учитывать регистр символов</translation>
+    </message>
+    <message>
+        <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;Поиск с начала</translation>
+    </message>
+</context>
+<context>
     <name>FontPanel</name>
     <message>
-        <location filename="../tools/shared/fontpanel/fontpanel.cpp" line="+63"/>
         <source>Font</source>
         <translation>Шрифт</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>&amp;Writing system</source>
         <translation>Система &amp;письма</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>&amp;Family</source>
         <translation>&amp;Шрифт</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>&amp;Style</source>
         <translation>&amp;Начертание</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>&amp;Point size</source>
         <translation>&amp;Размер</translation>
     </message>
@@ -358,30 +432,37 @@
 <context>
     <name>HelpViewer</name>
     <message>
-        <location filename="../tools/assistant/tools/assistant/helpviewer.cpp" line="+58"/>
         <source>&lt;title&gt;about:blank&lt;/title&gt;</source>
         <translation></translation>
     </message>
     <message>
-        <location line="+6"/>
         <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...&lt;/title&gt;&lt;div align=&quot;center&quot;&gt;&lt;br&gt;&lt;br&gt;&lt;h1&gt;Страница не найдена&lt;/h1&gt;&lt;br&gt;&lt;h3&gt;&apos;%1&apos;&lt;/h3&gt;&lt;/div&gt;</translation>
     </message>
+    <message>
+        <source>Copy &amp;Link Location</source>
+        <translation>Копировать &amp;адрес ссылки</translation>
+    </message>
+    <message>
+        <source>Open Link in New Tab	Ctrl+LMB</source>
+        <translation>Открыть ссылку в новой вкладке	Ctrl+LMB</translation>
+    </message>
+    <message>
+        <source>Open Link in New Tab</source>
+        <translation>Открыть ссылку в новой вкладке</translation>
+    </message>
 </context>
 <context>
     <name>IndexWindow</name>
     <message>
-        <location filename="../tools/assistant/tools/assistant/indexwindow.cpp" line="+68"/>
         <source>&amp;Look for:</source>
         <translation>&amp;Искать:</translation>
     </message>
     <message>
-        <location line="+74"/>
         <source>Open Link</source>
         <translation>Открыть ссылку</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Open Link in New Tab</source>
         <translation>Открыть ссылку в новой вкладке</translation>
     </message>
@@ -389,99 +470,76 @@
 <context>
     <name>InstallDialog</name>
     <message>
-        <location filename="../tools/assistant/tools/assistant/installdialog.ui"/>
-        <location filename="../tools/assistant/tools/assistant/installdialog.cpp" line="+78"/>
         <source>Install Documentation</source>
         <translation>Установка документации</translation>
     </message>
     <message>
-        <location filename="../tools/assistant/tools/assistant/installdialog.cpp" line="+33"/>
         <source>Downloading documentation info...</source>
         <translation>Загрузка информации о документации...</translation>
     </message>
     <message>
-        <location line="+51"/>
         <source>Download canceled.</source>
         <translation>Загрузка отменена.</translation>
     </message>
     <message>
-        <location line="+28"/>
-        <location line="+79"/>
-        <location line="+27"/>
         <source>Done.</source>
         <translation>Готово.</translation>
     </message>
     <message>
-        <location line="-91"/>
         <source>The file %1 already exists. Do you want to overwrite it?</source>
         <translation>Файл %1 уже существует. Желаете перезаписать его?</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>Unable to save the file %1: %2.</source>
         <translation>Невозможно сохранить файл %1: %2.</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Downloading %1...</source>
         <translation>Загрузка %1...</translation>
     </message>
     <message>
-        <location line="+20"/>
-        <location line="+42"/>
-        <location line="+40"/>
         <source>Download failed: %1.</source>
         <translation>Загрузка не удалась: %1.</translation>
     </message>
     <message>
-        <location line="-72"/>
         <source>Documentation info file is corrupt!</source>
         <translation>Файл информации о документации повреждён!</translation>
     </message>
     <message>
-        <location line="+37"/>
         <source>Download failed: Downloaded file is corrupted.</source>
         <translation>Загрузка не удалась: загруженный файл повреждён.</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Installing documentation %1...</source>
         <translation>Установка документации %1...</translation>
     </message>
     <message>
-        <location line="+23"/>
         <source>Error while installing documentation:
 %1</source>
         <translation>При установке документации возникла ошибка:
 %1</translation>
     </message>
     <message>
-        <location filename="../tools/assistant/tools/assistant/installdialog.ui"/>
         <source>Available Documentation:</source>
         <translation>Доступная документация:</translation>
     </message>
     <message>
-        <location/>
         <source>Install</source>
         <translation>Установить</translation>
     </message>
     <message>
-        <location/>
         <source>Cancel</source>
         <translation>Отмена</translation>
     </message>
     <message>
-        <location/>
         <source>Close</source>
         <translation>Закрыть</translation>
     </message>
     <message>
-        <location/>
         <source>Installation Path:</source>
         <translation>Путь установки:</translation>
     </message>
     <message>
-        <location/>
         <source>...</source>
         <translation>...</translation>
     </message>
@@ -489,297 +547,234 @@
 <context>
     <name>MainWindow</name>
     <message>
-        <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="+123"/>
-        <location line="+369"/>
         <source>Index</source>
         <translation>Указатель</translation>
     </message>
     <message>
-        <location line="-363"/>
-        <location line="+361"/>
         <source>Contents</source>
         <translation>Содержание</translation>
     </message>
     <message>
-        <location line="-354"/>
-        <location line="+358"/>
         <source>Bookmarks</source>
         <translation>Закладки</translation>
     </message>
     <message>
-        <location line="-336"/>
-        <location line="+680"/>
-        <location line="+284"/>
         <source>Qt Assistant</source>
         <translation>Qt Assistant</translation>
     </message>
     <message>
-        <location line="-772"/>
         <source>Looking for Qt Documentation...</source>
         <translation>Поиск документации Qt...</translation>
     </message>
     <message>
-        <location line="+60"/>
         <source>&amp;File</source>
         <translation>&amp;Файл</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Page Set&amp;up...</source>
         <translation>Параметры &amp;страницы...</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Print Preview...</source>
         <translation>Предпросмотр печати...</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>&amp;Print...</source>
         <translation>&amp;Печать...</translation>
     </message>
     <message>
-        <location line="-10"/>
         <source>New &amp;Tab</source>
         <translation>Новая &amp;вкладка</translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>&amp;Close Tab</source>
         <translation>&amp;Закрыть вкладку</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>&amp;Quit</source>
         <translation>В&amp;ыход</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>CTRL+Q</source>
         <translation></translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>&amp;Edit</source>
         <translation>&amp;Правка</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Copy selected Text</source>
         <translation>&amp;Копировать выделенный текст</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>&amp;Find in Text...</source>
         <translation>П&amp;оиск в тексте...</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>&amp;Find</source>
         <translation>&amp;Поиск</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Find &amp;Next</source>
         <translation>Найти &amp;следующее</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Find &amp;Previous</source>
         <translation>Найти &amp;предыдущее</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Preferences...</source>
         <translation>Настройки...</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>&amp;View</source>
         <translation>&amp;Вид</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Zoom &amp;in</source>
         <translation>У&amp;величить</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Zoom &amp;out</source>
         <translation>У&amp;меньшить</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Normal &amp;Size</source>
         <translation>Нормальный р&amp;азмер</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Ctrl+0</source>
         <translation></translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>ALT+C</source>
         <translation></translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>ALT+I</source>
         <translation></translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>ALT+O</source>
         <translation></translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Search</source>
         <translation>Поиск</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>ALT+S</source>
         <translation></translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>&amp;Go</source>
         <translation>&amp;Перейти</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Home</source>
         <translation>&amp;Домой</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>ALT+Home</source>
         <translation></translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>&amp;Back</source>
         <translation>&amp;Назад</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>&amp;Forward</source>
         <translation>&amp;Вперёд</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Sync with Table of Contents</source>
         <translation>Синхронизировать с оглавлением</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Sync</source>
         <translation>Синхронизировать</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Next Page</source>
         <translation>Следующая страница</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Ctrl+Alt+Right</source>
         <translation></translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Previous Page</source>
         <translation>Предыдущая страница</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Ctrl+Alt+Left</source>
         <translation></translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>&amp;Bookmarks</source>
         <translation>&amp;Закладки</translation>
     </message>
     <message>
-        <location line="+592"/>
         <source>Could not register file &apos;%1&apos;: %2</source>
         <translation>Не удалось зарегистрировать файл &apos;%1&apos;: %2</translation>
     </message>
     <message>
-        <location line="-590"/>
         <source>&amp;Help</source>
         <translation>&amp;Справка</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>About...</source>
         <translation>О программе...</translation>
     </message>
     <message>
-        <location line="+21"/>
         <source>Navigation Toolbar</source>
         <translation>Панель навигации</translation>
     </message>
     <message>
-        <location line="+22"/>
         <source>&amp;Window</source>
         <translation>&amp;Окно</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Zoom</source>
         <translation>Масштаб</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Minimize</source>
         <translation>Свернуть</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Ctrl+M</source>
         <translation></translation>
     </message>
     <message>
-        <location line="+43"/>
         <source>Toolbars</source>
         <translation>Панели инструментов</translation>
     </message>
     <message>
-        <location line="+16"/>
         <source>Filter Toolbar</source>
         <translation>Панель фильтров</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Filtered by:</source>
         <translation>Отфильтровано по:</translation>
     </message>
     <message>
-        <location line="+26"/>
         <source>Address Toolbar</source>
         <translation>Панель адреса</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Address:</source>
         <translation>Адрес:</translation>
     </message>
     <message>
-        <location line="+112"/>
         <source>Could not find the associated content item.</source>
         <translation>Не удалось найти элемент, связанный с содержанием.</translation>
     </message>
     <message>
-        <location line="+60"/>
         <source>About %1</source>
         <translation>О %1</translation>
     </message>
     <message>
-        <location line="+175"/>
         <source>Updating search index</source>
         <translation>Обновление поискового индекса</translation>
     </message>
@@ -787,48 +782,38 @@
 <context>
     <name>PreferencesDialog</name>
     <message>
-        <location filename="../tools/assistant/tools/assistant/preferencesdialog.cpp" line="+252"/>
-        <location line="+44"/>
         <source>Add Documentation</source>
         <translation>Добавить документацию</translation>
     </message>
     <message>
-        <location line="-44"/>
         <source>Qt Compressed Help Files (*.qch)</source>
         <translation>Сжатые файлы справки Qt (*.qch)</translation>
     </message>
     <message>
-        <location line="+30"/>
         <source>The namespace %1 is already registered!</source>
         <translation>Пространство имён %1 уже зарегистрировано!</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>The specified file is not a valid Qt Help File!</source>
         <translation>Указанный файл не является корректным файлом справки Qt!</translation>
     </message>
     <message>
-        <location line="+24"/>
         <source>Remove Documentation</source>
         <translation>Удалить документацию</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>Некоторые открытые в Qt Assistant документы ссылаются на документацию, которую вы пытаетесь удалить. Её удаление приведёт к закрытию этих документов.</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Cancel</source>
         <translation>Отмена</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>OK</source>
         <translation>Удалить</translation>
     </message>
     <message>
-        <location line="+83"/>
         <source>Use custom settings</source>
         <translation>Использовать индивидуальные настройки</translation>
     </message>
@@ -836,117 +821,94 @@
 <context>
     <name>PreferencesDialogClass</name>
     <message>
-        <location filename="../tools/assistant/tools/assistant/preferencesdialog.ui"/>
         <source>Preferences</source>
         <translation>Настройки</translation>
     </message>
     <message>
-        <location/>
         <source>Fonts</source>
         <translation>Шрифты</translation>
     </message>
     <message>
-        <location/>
         <source>Font settings:</source>
         <translation>Настройки шрифта:</translation>
     </message>
     <message>
-        <location/>
         <source>Browser</source>
         <translation>Обозреватель</translation>
     </message>
     <message>
-        <location/>
         <source>Application</source>
         <translation>Приложение</translation>
     </message>
     <message>
-        <location/>
         <source>Filters</source>
         <translation>Фильтры</translation>
     </message>
     <message>
-        <location/>
         <source>Filter:</source>
         <translation>Фильтр:</translation>
     </message>
     <message>
-        <location/>
         <source>Attributes:</source>
         <translation>Атрибуты:</translation>
     </message>
     <message>
-        <location/>
         <source>1</source>
         <translation>1</translation>
     </message>
     <message>
-        <location/>
         <source>Add</source>
         <translation>Добавить</translation>
     </message>
     <message>
-        <location/>
         <source>Remove</source>
         <translation>Удалить</translation>
     </message>
     <message>
-        <location/>
         <source>Documentation</source>
         <translation>Документация</translation>
     </message>
     <message>
-        <location/>
         <source>Registered Documentation:</source>
         <translation>Зарегистрированная документация:</translation>
     </message>
     <message>
-        <location/>
         <source>Add...</source>
         <translation>Добавить...</translation>
     </message>
     <message>
-        <location/>
         <source>Options</source>
         <translation>Параметры</translation>
     </message>
     <message>
-        <location/>
         <source>Homepage</source>
         <translation>Стартовая страница</translation>
     </message>
     <message>
-        <location/>
         <source>Current Page</source>
         <translation>Текущая страница</translation>
     </message>
     <message>
-        <location/>
         <source>Restore to default</source>
         <translation>Страница по умолчанию</translation>
     </message>
     <message>
-        <location/>
         <source>On help start:</source>
         <translation>При запуске:</translation>
     </message>
     <message>
-        <location/>
         <source>Show my home page</source>
         <translation>Отобразить стартовую страницу</translation>
     </message>
     <message>
-        <location/>
         <source>Show a blank page</source>
         <translation>Отобразить пустую страницу</translation>
     </message>
     <message>
-        <location/>
         <source>Show my tabs from last session</source>
         <translation>Восстановить предыдущую сессиию</translation>
     </message>
     <message>
-        <location/>
         <source>Blank Page</source>
         <translation>Пустая страница</translation>
     </message>
@@ -954,12 +916,10 @@
 <context>
     <name>RemoteControl</name>
     <message>
-        <location filename="../tools/assistant/tools/assistant/remotecontrol.cpp" line="+165"/>
         <source>Debugging Remote Control</source>
         <translation>Отладочное удалённое управление</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Received Command: %1 %2</source>
         <translation>Получена команда: %1 %2</translation>
     </message>
@@ -967,22 +927,18 @@
 <context>
     <name>SearchWidget</name>
     <message>
-        <location filename="../tools/assistant/tools/assistant/searchwidget.cpp" line="+210"/>
         <source>&amp;Copy</source>
         <translation>&amp;Копировать</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Copy &amp;Link Location</source>
         <translation>Копировать &amp;адрес ссылки</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Open Link in New Tab</source>
         <translation>Открыть ссылку в новой вкладке</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Select All</source>
         <translation>Выделить всё</translation>
     </message>
@@ -990,27 +946,22 @@
 <context>
     <name>TopicChooser</name>
     <message>
-        <location filename="../tools/assistant/tools/assistant/topicchooser.cpp" line="+53"/>
         <source>Choose a topic for &lt;b&gt;%1&lt;/b&gt;:</source>
         <translation>Выберите раздел для &lt;b&gt;%1&lt;/b&gt;:</translation>
     </message>
     <message>
-        <location filename="../tools/assistant/tools/assistant/topicchooser.ui"/>
         <source>Choose Topic</source>
         <translation>Выбор раздела</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Topics</source>
         <translation>&amp;Разделы</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Display</source>
         <translation>&amp;Показать</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Close</source>
         <translation>&amp;Закрыть</translation>
     </message>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/translations/assistant_sl.ts	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,972 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="sl">
+    <extra-po-header-po_revision_date>2010-08-28 14:36+0200</extra-po-header-po_revision_date>
+    <extra-po-headers>MIME-Version,Content-Type,Content-Transfer-Encoding,Plural-Forms,X-Language,X-Qt-Contexts,Last-Translator,PO-Revision-Date,Project-Id-Version,Language-Team,X-Generator</extra-po-headers>
+    <extra-po-header-x_generator>Lokalize 1.1</extra-po-header-x_generator>
+    <extra-po-header-language_team>Slovenian &lt;lugos-slo@lugos.si&gt;</extra-po-header-language_team>
+    <extra-po-header-project_id_version></extra-po-header-project_id_version>
+    <extra-po-header_comment># Jure Repinc &lt;jlp@holodeck1.com&gt;, 2010.</extra-po-header_comment>
+    <extra-po-header-last_translator>Jure Repinc &lt;jlp@holodeck1.com&gt;</extra-po-header-last_translator>
+<context>
+    <name>AboutDialog</name>
+    <message>
+        <source>&amp;Close</source>
+        <translation>&amp;Zapri</translation>
+    </message>
+</context>
+<context>
+    <name>AboutLabel</name>
+    <message>
+        <source>Warning</source>
+        <translation>Opozorilo</translation>
+    </message>
+    <message>
+        <source>Unable to launch external application.
+</source>
+        <translation>Zunanjega programa ni moč zagnati.
+</translation>
+    </message>
+    <message>
+        <source>OK</source>
+        <translation>V redu</translation>
+    </message>
+</context>
+<context>
+    <name>Assistant</name>
+    <message>
+        <source>Error registering documentation file &apos;%1&apos;: %2</source>
+        <translation>Napaka pri registraciji datoteke z dokumentacijo »%1«: %2</translation>
+    </message>
+    <message>
+        <source>Error: %1</source>
+        <translation>Napaka: %1</translation>
+    </message>
+    <message>
+        <source>Could not register documentation file
+%1
+
+Reason:
+%2</source>
+        <translation>Ni bilo moč registrirati datoteke z dokumentacijo
+%1
+
+Razlog:
+%2</translation>
+    </message>
+    <message>
+        <source>Documentation successfully registered.</source>
+        <translation>Dokumentacija je bila uspešno registrirana.</translation>
+    </message>
+    <message>
+        <source>Could not unregister documentation file
+%1
+
+Reason:
+%2</source>
+        <translation>Ni bilo moč od-registrirati datoteke z dokumentacijo
+%1
+
+Razlog:
+%2</translation>
+    </message>
+    <message>
+        <source>Documentation successfully unregistered.</source>
+        <translation>Dokumentacija je bila uspešno odstranjena iz registrira.</translation>
+    </message>
+    <message>
+        <source>Error reading collection file &apos;%1&apos;: %2.</source>
+        <translation>Napaka pri branju datoteke zbirke »%1«: %2.</translation>
+    </message>
+    <message>
+        <source>Error creating collection file &apos;%1&apos;: %2.</source>
+        <translation>Napaka pri ustvarjanju datoteke zbirke »%1«: %2.</translation>
+    </message>
+    <message>
+        <source>Cannot load sqlite database driver!</source>
+        <translation>Ni moč naložiti gonilnika za podatkovno zbirko SQLite.</translation>
+    </message>
+</context>
+<context>
+    <name>BookmarkDialog</name>
+    <message>
+        <source>Add Bookmark</source>
+        <translation>Dodaj zaznamek</translation>
+    </message>
+    <message>
+        <source>Bookmark:</source>
+        <translation>Zaznamek:</translation>
+    </message>
+    <message>
+        <source>Add in Folder:</source>
+        <translation>Dodaj v mapo:</translation>
+    </message>
+    <message>
+        <source>+</source>
+        <translation>+</translation>
+    </message>
+    <message>
+        <source>New Folder</source>
+        <translation>Nova mapa</translation>
+    </message>
+    <message>
+        <source>Rename Folder</source>
+        <translation>Preimenuj mapo</translation>
+    </message>
+</context>
+<context>
+    <name>BookmarkManager</name>
+    <message>
+        <source>Untitled</source>
+        <translation>Brez naslova</translation>
+    </message>
+    <message>
+        <source>Remove</source>
+        <translation>Odstrani</translation>
+    </message>
+    <message>
+        <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>Nameravate zbrisati mapo, pri čemer bo zbrisana&lt;br&gt;tudi njena vsebina. Ali res želite nadaljevati?</translation>
+    </message>
+    <message>
+        <source>Manage Bookmarks...</source>
+        <translation>Upravljanje zaznamkov ...</translation>
+    </message>
+    <message>
+        <source>Add Bookmark...</source>
+        <translation>Dodaj zaznamek ...</translation>
+    </message>
+    <message>
+        <source>Ctrl+D</source>
+        <translation>Ctrl+D</translation>
+    </message>
+    <message>
+        <source>Delete Folder</source>
+        <translation>Izbriši mapo</translation>
+    </message>
+    <message>
+        <source>Rename Folder</source>
+        <translation>Preimenuj mapo</translation>
+    </message>
+    <message>
+        <source>Show Bookmark</source>
+        <translation>Prikaži zaznamek</translation>
+    </message>
+    <message>
+        <source>Show Bookmark in New Tab</source>
+        <translation>Prikaži zaznamek v novem zavihku</translation>
+    </message>
+    <message>
+        <source>Delete Bookmark</source>
+        <translation>Izbriši zaznamek</translation>
+    </message>
+    <message>
+        <source>Rename Bookmark</source>
+        <translation>Preimenuj zaznamek</translation>
+    </message>
+</context>
+<context>
+    <name>BookmarkManagerWidget</name>
+    <message>
+        <source>Manage Bookmarks</source>
+        <translation>Upravljanje zaznamkov</translation>
+    </message>
+    <message>
+        <source>Search:</source>
+        <translation>Išči:</translation>
+    </message>
+    <message>
+        <source>Remove</source>
+        <translation>Odstrani</translation>
+    </message>
+    <message>
+        <source>Import and Backup</source>
+        <translation>Uvozi in ustvari varnostno kopijo</translation>
+    </message>
+    <message>
+        <source>OK</source>
+        <translation>V redu</translation>
+    </message>
+    <message>
+        <source>Import...</source>
+        <translation>Uvozi ...</translation>
+    </message>
+    <message>
+        <source>Export...</source>
+        <translation>Izvozi ...</translation>
+    </message>
+    <message>
+        <source>Open File</source>
+        <translation>Odpri datoteko</translation>
+    </message>
+    <message>
+        <source>Files (*.xbel)</source>
+        <translation>Datoteke (*.xbel)</translation>
+    </message>
+    <message>
+        <source>Save File</source>
+        <translation>Shrani datoteko</translation>
+    </message>
+    <message>
+        <source>Qt Assistant</source>
+        <translation>Qt Assistant</translation>
+    </message>
+    <message>
+        <source>Unable to save bookmarks.</source>
+        <translation>Zaznamkov ni moč shraniti.</translation>
+    </message>
+    <message>
+        <source>You are goingto delete a Folder, this will also&lt;br&gt; remove it&apos;s content. Are you sure to continue?</source>
+        <translation>Nameravate zbrisati mapo, pri čemer bo zbrisana&lt;br&gt;tudi njena vsebina. Ali res želite nadaljevati?</translation>
+    </message>
+    <message>
+        <source>Delete Folder</source>
+        <translation>Izbriši mapo</translation>
+    </message>
+    <message>
+        <source>Rename Folder</source>
+        <translation>Preimenuj mapo</translation>
+    </message>
+    <message>
+        <source>Show Bookmark</source>
+        <translation>Prikaži zaznamek</translation>
+    </message>
+    <message>
+        <source>Show Bookmark in New Tab</source>
+        <translation>Prikaži zaznamek v novem zavihku</translation>
+    </message>
+    <message>
+        <source>Delete Bookmark</source>
+        <translation>Izbriši zaznamek</translation>
+    </message>
+    <message>
+        <source>Rename Bookmark</source>
+        <translation>Preimenuj zaznamek</translation>
+    </message>
+</context>
+<context>
+    <name>BookmarkModel</name>
+    <message>
+        <source>Name</source>
+        <translation>Ime</translation>
+    </message>
+    <message>
+        <source>Address</source>
+        <translation>Naslov</translation>
+    </message>
+    <message>
+        <source>Bookmarks Menu</source>
+        <translation>Meni z zaznamki</translation>
+    </message>
+</context>
+<context>
+    <name>BookmarkWidget</name>
+    <message>
+        <source>Bookmarks</source>
+        <translation>Zaznamki</translation>
+    </message>
+    <message>
+        <source>Filter:</source>
+        <translation>Filter:</translation>
+    </message>
+    <message>
+        <source>Add</source>
+        <translation>Dodaj</translation>
+    </message>
+    <message>
+        <source>Remove</source>
+        <translation>Odstrani</translation>
+    </message>
+</context>
+<context>
+    <name>CentralWidget</name>
+    <message>
+        <source>Add new page</source>
+        <translation>Dodaj novo stran</translation>
+    </message>
+    <message>
+        <source>Close current page</source>
+        <translation>Zapri trenutno stran</translation>
+    </message>
+    <message>
+        <source>Print Document</source>
+        <translation>Natisni dokument</translation>
+    </message>
+    <message>
+        <source>unknown</source>
+        <translation>neznano</translation>
+    </message>
+    <message>
+        <source>Add New Page</source>
+        <translation>Dodaj novo stran</translation>
+    </message>
+    <message>
+        <source>Close This Page</source>
+        <translation>Zapri to stran</translation>
+    </message>
+    <message>
+        <source>Close Other Pages</source>
+        <translation>Zapri druge strani</translation>
+    </message>
+    <message>
+        <source>Add Bookmark for this Page...</source>
+        <translation>Dodaj zaznamek za to stran ...</translation>
+    </message>
+    <message>
+        <source>Search</source>
+        <translation>Iskanje</translation>
+    </message>
+</context>
+<context>
+    <name>CmdLineParser</name>
+    <message>
+        <source>Unknown option: %1</source>
+        <translation>Neznana možnost: %1</translation>
+    </message>
+    <message>
+        <source>The collection file &apos;%1&apos; does not exist.</source>
+        <translation>Datoteka zbirke »%1« ne obstaja.</translation>
+    </message>
+    <message>
+        <source>Missing collection file.</source>
+        <translation>Manjkajoča datoteka zbirke.</translation>
+    </message>
+    <message>
+        <source>Invalid URL &apos;%1&apos;.</source>
+        <translation>Neveljaven URL »%1«.</translation>
+    </message>
+    <message>
+        <source>Missing URL.</source>
+        <translation>Manjkajoč URL.</translation>
+    </message>
+    <message>
+        <source>Unknown widget: %1</source>
+        <translation>Neznan gradnik: %1</translation>
+    </message>
+    <message>
+        <source>Missing widget.</source>
+        <translation>Manjkajoč gradnik.</translation>
+    </message>
+    <message>
+        <source>The Qt help file &apos;%1&apos; does not exist.</source>
+        <translation>Datoteka s pomočjo za Qt »%1« ne obstaja.</translation>
+    </message>
+    <message>
+        <source>Missing help file.</source>
+        <translation>Manjkajoča datoteka s pomočjo.</translation>
+    </message>
+    <message>
+        <source>Missing filter argument.</source>
+        <translation>Manjkajoč argument filtra.</translation>
+    </message>
+    <message>
+        <source>Error</source>
+        <translation>Napaka</translation>
+    </message>
+    <message>
+        <source>Notice</source>
+        <translation>Opomba</translation>
+    </message>
+</context>
+<context>
+    <name>ContentWindow</name>
+    <message>
+        <source>Open Link</source>
+        <translation>Odpri povezavo</translation>
+    </message>
+    <message>
+        <source>Open Link in New Tab</source>
+        <translation>Odpri povezavo v novem zavihku</translation>
+    </message>
+</context>
+<context>
+    <name>FilterNameDialogClass</name>
+    <message>
+        <source>Add Filter Name</source>
+        <translation>Dodaj ime filtra</translation>
+    </message>
+    <message>
+        <source>Filter Name:</source>
+        <translation>Ime filtra:</translation>
+    </message>
+</context>
+<context>
+    <name>FindWidget</name>
+    <message>
+        <source>Previous</source>
+        <translation>Predhodno</translation>
+    </message>
+    <message>
+        <source>Next</source>
+        <translation>Naslednje</translation>
+    </message>
+    <message>
+        <source>Case Sensitive</source>
+        <translation>Loči velike in male črke</translation>
+    </message>
+    <message>
+        <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;Iskanje se nadaljuje na drugem koncu</translation>
+    </message>
+</context>
+<context>
+    <name>FontPanel</name>
+    <message>
+        <source>Font</source>
+        <translation>Pisava</translation>
+    </message>
+    <message>
+        <source>&amp;Writing system</source>
+        <translation>S&amp;istem pisanja</translation>
+    </message>
+    <message>
+        <source>&amp;Family</source>
+        <translation>&amp;Družina</translation>
+    </message>
+    <message>
+        <source>&amp;Style</source>
+        <translation>&amp;Slog</translation>
+    </message>
+    <message>
+        <source>&amp;Point size</source>
+        <translation>&amp;Velikost v točkah</translation>
+    </message>
+</context>
+<context>
+    <name>HelpViewer</name>
+    <message>
+        <source>&lt;title&gt;about:blank&lt;/title&gt;</source>
+        <translation>&lt;title&gt;about:blank&lt;/title&gt;</translation>
+    </message>
+    <message>
+        <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;Napaka 404&lt;/title&gt;&lt;div align=&quot;center&quot;&gt;&lt;br&gt;&lt;br&gt;&lt;h1&gt;Strani ni bilo moč najti&lt;/h1&gt;&lt;br&gt;&lt;h3&gt;»%1«&lt;/h3&gt;&lt;/div&gt;</translation>
+    </message>
+    <message>
+        <source>Copy &amp;Link Location</source>
+        <translation>Skopiraj &amp;povezavo do lokacije</translation>
+    </message>
+    <message>
+        <source>Open Link in New Tab	Ctrl+LMB</source>
+        <translation>Odpri povezavo v novem zavihku	Ctrl+LGM</translation>
+    </message>
+    <message>
+        <source>Open Link in New Tab</source>
+        <translation>Odpri povezavo v novem zavihku</translation>
+    </message>
+</context>
+<context>
+    <name>IndexWindow</name>
+    <message>
+        <source>&amp;Look for:</source>
+        <translation>&amp;Išči:</translation>
+    </message>
+    <message>
+        <source>Open Link</source>
+        <translation>Odpri povezavo</translation>
+    </message>
+    <message>
+        <source>Open Link in New Tab</source>
+        <translation>Odpri povezavo v novem zavihku</translation>
+    </message>
+</context>
+<context>
+    <name>InstallDialog</name>
+    <message>
+        <source>Install Documentation</source>
+        <translation>Namesti dokumentacijo</translation>
+    </message>
+    <message>
+        <source>Available Documentation:</source>
+        <translation>Razpoložljiva dokumentacija:</translation>
+    </message>
+    <message>
+        <source>Install</source>
+        <translation>Namesti</translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation>Prekliči</translation>
+    </message>
+    <message>
+        <source>Close</source>
+        <translation>Zapri</translation>
+    </message>
+    <message>
+        <source>Installation Path:</source>
+        <translation>Namestitvena pot:</translation>
+    </message>
+    <message>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <source>Downloading documentation info...</source>
+        <translation>Prejemanje podatkov o dokumentaciji ...</translation>
+    </message>
+    <message>
+        <source>Download canceled.</source>
+        <translation>Prejemanje preklicano.</translation>
+    </message>
+    <message>
+        <source>Done.</source>
+        <translation>Opravljeno.</translation>
+    </message>
+    <message>
+        <source>The file %1 already exists. Do you want to overwrite it?</source>
+        <translation>Datoteka %1 že obstaja. Ali jo želite nadomestiti?</translation>
+    </message>
+    <message>
+        <source>Unable to save the file %1: %2.</source>
+        <translation>Datoteke %1 ni moč shraniti: %2.</translation>
+    </message>
+    <message>
+        <source>Downloading %1...</source>
+        <translation>Prejemanje %1 ...</translation>
+    </message>
+    <message>
+        <source>Download failed: %1.</source>
+        <translation>Prejemanje ni uspelo: %1.</translation>
+    </message>
+    <message>
+        <source>Documentation info file is corrupt!</source>
+        <translation>Datoteka s podatki o dokumentaciji je poškodovana.</translation>
+    </message>
+    <message>
+        <source>Download failed: Downloaded file is corrupted.</source>
+        <translation>Prejemanje ni uspelo. Prejeta datoteka je poškodovana.</translation>
+    </message>
+    <message>
+        <source>Installing documentation %1...</source>
+        <translation>Nameščanje dokumentacije %1 ...</translation>
+    </message>
+    <message>
+        <source>Error while installing documentation:
+%1</source>
+        <translation>Napaka pri nameščanju dokumentacije:
+%1</translation>
+    </message>
+</context>
+<context>
+    <name>MainWindow</name>
+    <message>
+        <source>Index</source>
+        <translation>Kazalo</translation>
+    </message>
+    <message>
+        <source>Contents</source>
+        <translation>Vsebina</translation>
+    </message>
+    <message>
+        <source>Bookmarks</source>
+        <translation>Zaznamki</translation>
+    </message>
+    <message>
+        <source>Qt Assistant</source>
+        <translation>Qt Assistant</translation>
+    </message>
+    <message>
+        <source>Looking for Qt Documentation...</source>
+        <translation>iskanje dokumentacije za Qt ...</translation>
+    </message>
+    <message>
+        <source>&amp;File</source>
+        <translation>&amp;Datoteka</translation>
+    </message>
+    <message>
+        <source>New &amp;Tab</source>
+        <translation>Nov zavi&amp;hek</translation>
+    </message>
+    <message>
+        <source>Page Set&amp;up...</source>
+        <translation>Nastavitve stra&amp;ni ...</translation>
+    </message>
+    <message>
+        <source>Print Preview...</source>
+        <translation>Ogled tiskanja ...</translation>
+    </message>
+    <message>
+        <source>&amp;Print...</source>
+        <translation>Na&amp;tisni ...</translation>
+    </message>
+    <message>
+        <source>&amp;Close Tab</source>
+        <translation>&amp;Zapri zavihek</translation>
+    </message>
+    <message>
+        <source>&amp;Quit</source>
+        <translation>Konča&amp;j</translation>
+    </message>
+    <message>
+        <source>CTRL+Q</source>
+        <translation>Ctrl+Q</translation>
+    </message>
+    <message>
+        <source>&amp;Edit</source>
+        <translation>&amp;Urejanje</translation>
+    </message>
+    <message>
+        <source>&amp;Copy selected Text</source>
+        <translation>S&amp;kopiraj izbrano besedilo</translation>
+    </message>
+    <message>
+        <source>&amp;Find in Text...</source>
+        <translation>&amp;Najdi v besedilu ...</translation>
+    </message>
+    <message>
+        <source>&amp;Find</source>
+        <translation>&amp;Najdi</translation>
+    </message>
+    <message>
+        <source>Find &amp;Next</source>
+        <translation>Najdi na&amp;slednje</translation>
+    </message>
+    <message>
+        <source>Find &amp;Previous</source>
+        <translation>Najdi p&amp;rejšnje</translation>
+    </message>
+    <message>
+        <source>Preferences...</source>
+        <translation>Nastavitve ...</translation>
+    </message>
+    <message>
+        <source>&amp;View</source>
+        <translation>&amp;Videz</translation>
+    </message>
+    <message>
+        <source>Zoom &amp;in</source>
+        <translation>Po&amp;večaj</translation>
+    </message>
+    <message>
+        <source>Zoom &amp;out</source>
+        <translation>Z&amp;manjšaj</translation>
+    </message>
+    <message>
+        <source>Normal &amp;Size</source>
+        <translation>&amp;Običajna velikost</translation>
+    </message>
+    <message>
+        <source>Ctrl+0</source>
+        <translation>Ctrl+0</translation>
+    </message>
+    <message>
+        <source>ALT+C</source>
+        <translation>Alt+V</translation>
+    </message>
+    <message>
+        <source>ALT+I</source>
+        <translation>Alt+K</translation>
+    </message>
+    <message>
+        <source>ALT+O</source>
+        <translation>Alt+Z</translation>
+    </message>
+    <message>
+        <source>Search</source>
+        <translation>Iskanje</translation>
+    </message>
+    <message>
+        <source>ALT+S</source>
+        <translation>Alt+I</translation>
+    </message>
+    <message>
+        <source>&amp;Go</source>
+        <translation>&amp;Pojdi</translation>
+    </message>
+    <message>
+        <source>&amp;Home</source>
+        <translation>&amp;Domov</translation>
+    </message>
+    <message>
+        <source>ALT+Home</source>
+        <translation>Alt+Domov</translation>
+    </message>
+    <message>
+        <source>&amp;Back</source>
+        <translation>Na&amp;zaj</translation>
+    </message>
+    <message>
+        <source>&amp;Forward</source>
+        <translation>&amp;Naprej</translation>
+    </message>
+    <message>
+        <source>Sync with Table of Contents</source>
+        <translation>Uskladi s seznamom vsebine</translation>
+    </message>
+    <message>
+        <source>Sync</source>
+        <translation>Uskladi</translation>
+    </message>
+    <message>
+        <source>Next Page</source>
+        <translation>Naslednja stran</translation>
+    </message>
+    <message>
+        <source>Ctrl+Alt+Right</source>
+        <translation>Ctrl+Alt+Desno</translation>
+    </message>
+    <message>
+        <source>Previous Page</source>
+        <translation>Predhodna stran</translation>
+    </message>
+    <message>
+        <source>Ctrl+Alt+Left</source>
+        <translation>Ctrl+Alt+Levo</translation>
+    </message>
+    <message>
+        <source>&amp;Bookmarks</source>
+        <translation>&amp;Zaznamki</translation>
+    </message>
+    <message>
+        <source>&amp;Help</source>
+        <translation>&amp;Pomoč</translation>
+    </message>
+    <message>
+        <source>About...</source>
+        <translation>O ...</translation>
+    </message>
+    <message>
+        <source>Navigation Toolbar</source>
+        <translation>Orodjarna za krmarjenje</translation>
+    </message>
+    <message>
+        <source>&amp;Window</source>
+        <translation>&amp;Okno</translation>
+    </message>
+    <message>
+        <source>Zoom</source>
+        <translation>Povečava</translation>
+    </message>
+    <message>
+        <source>Minimize</source>
+        <translation>Pomanjšaj</translation>
+    </message>
+    <message>
+        <source>Ctrl+M</source>
+        <translation>Ctrl+M</translation>
+    </message>
+    <message>
+        <source>Toolbars</source>
+        <translation>Orodjarne</translation>
+    </message>
+    <message>
+        <source>Filter Toolbar</source>
+        <translation>Orodjarna filtra</translation>
+    </message>
+    <message>
+        <source>Filtered by:</source>
+        <translation>Filtrirano po:</translation>
+    </message>
+    <message>
+        <source>Address Toolbar</source>
+        <translation>Naslovna vrstica</translation>
+    </message>
+    <message>
+        <source>Address:</source>
+        <translation>Naslov:</translation>
+    </message>
+    <message>
+        <source>Could not find the associated content item.</source>
+        <translation>Povezane postavke vsebine ni bilo moč najti.</translation>
+    </message>
+    <message>
+        <source>About %1</source>
+        <translation>O %1</translation>
+    </message>
+    <message>
+        <source>Updating search index</source>
+        <translation>Posodabljanje kazala za iskanje</translation>
+    </message>
+    <message>
+        <source>Could not register file &apos;%1&apos;: %2</source>
+        <translation>Datoteke »%1« ni bilo moč registrirati: %2</translation>
+    </message>
+</context>
+<context>
+    <name>PreferencesDialog</name>
+    <message>
+        <source>Add Documentation</source>
+        <translation>Dodaj dokumentacijo</translation>
+    </message>
+    <message>
+        <source>Qt Compressed Help Files (*.qch)</source>
+        <translation>Stisnjene datoteke s pomočjo za Qt (*.qch)</translation>
+    </message>
+    <message>
+        <source>The namespace %1 is already registered!</source>
+        <translation>Imenski prostor %1 je že registriran.</translation>
+    </message>
+    <message>
+        <source>The specified file is not a valid Qt Help File!</source>
+        <translation>Navedena datoteka ni veljavna datoteka s pomočjo za Qt.</translation>
+    </message>
+    <message>
+        <source>Remove Documentation</source>
+        <translation>Odstrani dokumentacijo</translation>
+    </message>
+    <message>
+        <source>Some documents currently opened in Assistant reference the documentation you are attempting to remove. Removing the documentation will close those documents.</source>
+        <translation>Nekateri odprti dokumenti se sklicujejo na dokumentacijo, ki jo poskušate odstraniti. Odstranitev dokumentacije bo povzročila zaprtje teh dokumentov.</translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation>Prekliči</translation>
+    </message>
+    <message>
+        <source>OK</source>
+        <translation>V redu</translation>
+    </message>
+    <message>
+        <source>Use custom settings</source>
+        <translation>Uporabi nastavitve po meri</translation>
+    </message>
+</context>
+<context>
+    <name>PreferencesDialogClass</name>
+    <message>
+        <source>Preferences</source>
+        <translation>Nastavitve</translation>
+    </message>
+    <message>
+        <source>Fonts</source>
+        <translation>Pisave</translation>
+    </message>
+    <message>
+        <source>Font settings:</source>
+        <translation>Nastavitve pisav</translation>
+    </message>
+    <message>
+        <source>Browser</source>
+        <translation>Brskalnik</translation>
+    </message>
+    <message>
+        <source>Application</source>
+        <translation>Program</translation>
+    </message>
+    <message>
+        <source>Filters</source>
+        <translation>Filtri</translation>
+    </message>
+    <message>
+        <source>Filter:</source>
+        <translation>Filter:</translation>
+    </message>
+    <message>
+        <source>Attributes:</source>
+        <translation>Lastnosti:</translation>
+    </message>
+    <message>
+        <source>1</source>
+        <translation>1</translation>
+    </message>
+    <message>
+        <source>Add</source>
+        <translation>Dodaj</translation>
+    </message>
+    <message>
+        <source>Remove</source>
+        <translation>Odstrani</translation>
+    </message>
+    <message>
+        <source>Documentation</source>
+        <translation>Dokumentacija</translation>
+    </message>
+    <message>
+        <source>Registered Documentation:</source>
+        <translation>Registrirana dokumentacija</translation>
+    </message>
+    <message>
+        <source>Add...</source>
+        <translation>Dodaj ...</translation>
+    </message>
+    <message>
+        <source>Options</source>
+        <translation>Možnosti</translation>
+    </message>
+    <message>
+        <source>On help start:</source>
+        <translation>Ob zagonu pomoči:</translation>
+    </message>
+    <message>
+        <source>Show my home page</source>
+        <translation>Prikaži mojo domačo stran</translation>
+    </message>
+    <message>
+        <source>Show a blank page</source>
+        <translation>Prikaži prazno stran</translation>
+    </message>
+    <message>
+        <source>Show my tabs from last session</source>
+        <translation>Prikaži moje zavihke iz zadnje seje</translation>
+    </message>
+    <message>
+        <source>Homepage</source>
+        <translation>Domača stran</translation>
+    </message>
+    <message>
+        <source>Current Page</source>
+        <translation>Trenutna stran</translation>
+    </message>
+    <message>
+        <source>Blank Page</source>
+        <translation>Prazna stran</translation>
+    </message>
+    <message>
+        <source>Restore to default</source>
+        <translation>Ponastavi na privzeto</translation>
+    </message>
+</context>
+<context>
+    <name>RemoteControl</name>
+    <message>
+        <source>Debugging Remote Control</source>
+        <translation>Razhroščevanje oddaljenega nadzora</translation>
+    </message>
+    <message>
+        <source>Received Command: %1 %2</source>
+        <translation>Prejet ukaz: %1 %2</translation>
+    </message>
+</context>
+<context>
+    <name>SearchWidget</name>
+    <message>
+        <source>&amp;Copy</source>
+        <translation>S&amp;kopiraj</translation>
+    </message>
+    <message>
+        <source>Copy &amp;Link Location</source>
+        <translation>Skopiraj &amp;povezavo do lokacije</translation>
+    </message>
+    <message>
+        <source>Open Link in New Tab</source>
+        <translation>Odpri povezavo v novem &amp;zavihku</translation>
+    </message>
+    <message>
+        <source>Select All</source>
+        <translation>Izberi vse</translation>
+    </message>
+</context>
+<context>
+    <name>TopicChooser</name>
+    <message>
+        <source>Choose Topic</source>
+        <translation>Izberite temo</translation>
+    </message>
+    <message>
+        <source>&amp;Topics</source>
+        <translation>&amp;Teme</translation>
+    </message>
+    <message>
+        <source>&amp;Display</source>
+        <translation>&amp;Prikaži</translation>
+    </message>
+    <message>
+        <source>&amp;Close</source>
+        <translation>&amp;Zapri</translation>
+    </message>
+    <message>
+        <source>Choose a topic for &lt;b&gt;%1&lt;/b&gt;:</source>
+        <translation>Izberite temo za &lt;b&gt;%1&lt;/b&gt;:</translation>
+    </message>
+</context>
+</TS>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/translations/assistant_uk.ts	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,1537 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="uk_UA">
+<context>
+    <name>AboutDialog</name>
+    <message>
+        <source>&amp;Close</source>
+        <translation>&amp;Закрити</translation>
+    </message>
+</context>
+<context>
+    <name>AboutLabel</name>
+    <message>
+        <source>Warning</source>
+        <translation>Попередження</translation>
+    </message>
+    <message>
+        <source>Unable to launch external application.
+</source>
+        <translation>Неможливо запустити зовнішню програму.
+</translation>
+    </message>
+    <message>
+        <source>OK</source>
+        <translation>OK</translation>
+    </message>
+</context>
+<context>
+    <name>Assistant</name>
+    <message>
+        <source>Error registering documentation file &apos;%1&apos;: %2</source>
+        <translation>Помилка реєстрації файлу документації &apos;%1&apos;: %2</translation>
+    </message>
+    <message>
+        <source>Error: %1</source>
+        <translation>Помилка: %1</translation>
+    </message>
+    <message>
+        <source>Could not register documentation file
+%1
+
+Reason:
+%2</source>
+        <translation>Не вдалось зареєструвати файл документації
+%1
+
+Причина:
+%2</translation>
+    </message>
+    <message>
+        <source>Documentation successfully registered.</source>
+        <translation>Документацію успішно зареєстровано.</translation>
+    </message>
+    <message>
+        <source>Could not unregister documentation file
+%1
+
+Reason:
+%2</source>
+        <translation>Не вдалось скасувати реєстрацію файлу документації
+%1
+
+Причина:
+%2</translation>
+    </message>
+    <message>
+        <source>Documentation successfully unregistered.</source>
+        <translation>Реєстрацію документації успішно скасовано.</translation>
+    </message>
+    <message>
+        <source>Error reading collection file &apos;%1&apos;: %2.</source>
+        <translation>Помилка читання файлу колекції &apos;%1&apos;: %2.</translation>
+    </message>
+    <message>
+        <source>Error creating collection file &apos;%1&apos;: %2.</source>
+        <translation>Помилка створення файлу колекції &apos;%1&apos;: %2.</translation>
+    </message>
+    <message>
+        <source>Cannot load sqlite database driver!</source>
+        <translation>Неможливо завантажити драйвер бази даних SQLite!</translation>
+    </message>
+</context>
+<context>
+    <name>BookmarkDialog</name>
+    <message>
+        <source>Add Bookmark</source>
+        <translation>Додати закладку</translation>
+    </message>
+    <message>
+        <source>Bookmark:</source>
+        <translation>Закладка:</translation>
+    </message>
+    <message>
+        <source>Add in Folder:</source>
+        <translation>Додати в теку:</translation>
+    </message>
+    <message>
+        <source>+</source>
+        <translation>+</translation>
+    </message>
+    <message>
+        <source>New Folder</source>
+        <translation>Нова тека</translation>
+    </message>
+    <message>
+        <source>Rename Folder</source>
+        <translation>Перейменувати теку</translation>
+    </message>
+</context>
+<context>
+    <name>BookmarkItem</name>
+    <message>
+        <source>New Folder</source>
+        <translation>Нова тека</translation>
+    </message>
+    <message>
+        <source>Untitled</source>
+        <translation>Без назви</translation>
+    </message>
+</context>
+<context>
+    <name>BookmarkManager</name>
+    <message>
+        <source>Untitled</source>
+        <translation>Без назви</translation>
+    </message>
+    <message>
+        <source>Remove</source>
+        <translation>Видалити</translation>
+    </message>
+    <message>
+        <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>Ви збираєтесь видалити теку, що призведе до видалення її вмісту.&lt;br&gt;Ви впевнені, що хочете продовжити?</translation>
+    </message>
+    <message>
+        <source>Manage Bookmarks...</source>
+        <translation>Керування закладками...</translation>
+    </message>
+    <message>
+        <source>Add Bookmark...</source>
+        <translation>Додати закладку...</translation>
+    </message>
+    <message>
+        <source>Ctrl+D</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>Delete Folder</source>
+        <translation>Видалити теку</translation>
+    </message>
+    <message>
+        <source>Rename Folder</source>
+        <translation>Перейменувати теку</translation>
+    </message>
+    <message>
+        <source>Show Bookmark</source>
+        <translation>Показати закладку</translation>
+    </message>
+    <message>
+        <source>Show Bookmark in New Tab</source>
+        <translation>Показати закладку в новій вкладці</translation>
+    </message>
+    <message>
+        <source>Delete Bookmark</source>
+        <translation>Видалити закладку</translation>
+    </message>
+    <message>
+        <source>Rename Bookmark</source>
+        <translation>Перейменувати закладку</translation>
+    </message>
+</context>
+<context>
+    <name>BookmarkManagerWidget</name>
+    <message>
+        <source>Manage Bookmarks</source>
+        <translation>Керування закладками</translation>
+    </message>
+    <message>
+        <source>Search:</source>
+        <translation>Пошук:</translation>
+    </message>
+    <message>
+        <source>Remove</source>
+        <translation>Видалити</translation>
+    </message>
+    <message>
+        <source>Import and Backup</source>
+        <translation>Імпорт та резервування</translation>
+    </message>
+    <message>
+        <source>OK</source>
+        <translation>OK</translation>
+    </message>
+    <message>
+        <source>Import...</source>
+        <translation>Імпортувати...</translation>
+    </message>
+    <message>
+        <source>Export...</source>
+        <translation>Експортувати...</translation>
+    </message>
+    <message>
+        <source>Open File</source>
+        <translation>Відкрити файл</translation>
+    </message>
+    <message>
+        <source>Files (*.xbel)</source>
+        <translation>Файли (*.xbel)</translation>
+    </message>
+    <message>
+        <source>Save File</source>
+        <translation>Зберегти файл</translation>
+    </message>
+    <message>
+        <source>Qt Assistant</source>
+        <translation>Qt Assistant</translation>
+    </message>
+    <message>
+        <source>Unable to save bookmarks.</source>
+        <translation>Не можу зберегти закладки.</translation>
+    </message>
+    <message>
+        <source>You are goingto delete a Folder, this will also&lt;br&gt; remove it&apos;s content. Are you sure to continue?</source>
+        <translation>Ви збираєтесь видалити теку, що призведе до видалення її вмісту.&lt;br&gt;Ви впевнені, що хочете продовжити?</translation>
+    </message>
+    <message>
+        <source>Delete Folder</source>
+        <translation>Видалити теку</translation>
+    </message>
+    <message>
+        <source>Rename Folder</source>
+        <translation>Перейменувати теку</translation>
+    </message>
+    <message>
+        <source>Show Bookmark</source>
+        <translation>Показати закладку</translation>
+    </message>
+    <message>
+        <source>Show Bookmark in New Tab</source>
+        <translation>Показати закладку в новій вкладці</translation>
+    </message>
+    <message>
+        <source>Delete Bookmark</source>
+        <translation>Видалити закладку</translation>
+    </message>
+    <message>
+        <source>Rename Bookmark</source>
+        <translation>Перейменувати закладку</translation>
+    </message>
+</context>
+<context>
+    <name>BookmarkModel</name>
+    <message>
+        <source>Name</source>
+        <translation>Ім&apos;я</translation>
+    </message>
+    <message>
+        <source>Address</source>
+        <translation>Адреса</translation>
+    </message>
+    <message>
+        <source>Bookmarks Menu</source>
+        <translation>Меню закладок</translation>
+    </message>
+</context>
+<context>
+    <name>BookmarkWidget</name>
+    <message>
+        <source>Bookmarks</source>
+        <translation>Закладки</translation>
+    </message>
+    <message>
+        <source>Filter:</source>
+        <translation>Фільтр:</translation>
+    </message>
+    <message>
+        <source>Add</source>
+        <translation>Додати</translation>
+    </message>
+    <message>
+        <source>Remove</source>
+        <translation>Видалити</translation>
+    </message>
+</context>
+<context>
+    <name>CentralWidget</name>
+    <message>
+        <source>Add new page</source>
+        <translation>Додати нову сторінку</translation>
+    </message>
+    <message>
+        <source>Close current page</source>
+        <translation>Закрити поточну сторінку</translation>
+    </message>
+    <message>
+        <source>Print Document</source>
+        <translation>Друкувати документ</translation>
+    </message>
+    <message>
+        <source>unknown</source>
+        <translation>невідомо</translation>
+    </message>
+    <message>
+        <source>Add New Page</source>
+        <translation>Додати нову сторінку</translation>
+    </message>
+    <message>
+        <source>Close This Page</source>
+        <translation>Закрити цю сторінку</translation>
+    </message>
+    <message>
+        <source>Close Other Pages</source>
+        <translation>Закрити інші сторінки</translation>
+    </message>
+    <message>
+        <source>Add Bookmark for this Page...</source>
+        <translation>Додати закладку для цієї сторінки...</translation>
+    </message>
+    <message>
+        <source>Search</source>
+        <translation>Пошук</translation>
+    </message>
+</context>
+<context>
+    <name>CmdLineParser</name>
+    <message>
+        <source>Usage: assistant [Options]
+
+-collectionFile file       Uses the specified collection
+                           file instead of the default one
+-showUrl url               Shows the document with the
+                           url.
+-enableRemoteControl       Enables Assistant to be
+                           remotely controlled.
+-show widget               Shows the specified dockwidget
+                           which can be &quot;contents&quot;, &quot;index&quot;,
+                           &quot;bookmarks&quot; or &quot;search&quot;.
+-activate widget           Activates the specified dockwidget
+                           which can be &quot;contents&quot;, &quot;index&quot;,
+                           &quot;bookmarks&quot; or &quot;search&quot;.
+-hide widget               Hides the specified dockwidget
+                           which can be &quot;contents&quot;, &quot;index&quot;
+                           &quot;bookmarks&quot; or &quot;search&quot;.
+-register helpFile         Registers the specified help file
+                           (.qch) in the given collection
+                           file.
+-unregister helpFile       Unregisters the specified help file
+                           (.qch) from the give collection
+                           file.
+-setCurrentFilter filter   Set the filter as the active filter.
+-remove-search-index       Removes the full text search index.
+-rebuild-search-index      Re-builds the full text search index (potentially slow).
+-quiet                     Does not display any error or
+                           status message.
+-help                      Displays this help.
+</source>
+        <translation>Використання: assistant [Опції]
+
+-collectionFile файл       Використати вказаний файл колекції
+                           замість типового
+-showUrl URL               Показати документ з URL.
+-enableRemoteControl       Увімкнути віддалене керування Assistant.
+-show віджет               Показати вказаний віджет (може бути:
+                           &quot;contents&quot;, &quot;index&quot;, &quot;bookmarks&quot; чи &quot;search&quot;).
+-activate віджет           Активувати вказаний віджет (може бути:
+                           &quot;contents&quot;, &quot;index&quot;, &quot;bookmarks&quot; чи &quot;search&quot;).
+-hide віджет               Сховати вказаний віджет (може бути:
+                           &quot;contents&quot;, &quot;index&quot;, &quot;bookmarks&quot; чи &quot;search&quot;).
+-register файлДовідки      Зареєструвати вказаний файл довідки
+                           (.qch) в даному файлі колекції.
+-unregister файлДовідки    Скасувати реєстрацію вказаного файлу довідки
+                           (.qch) в даному файлі колекції.
+-setCurrentFilter фільтр   Встановити фільтр в якості активного.
+-remove-search-index       Видалити повнотекстовий пошуковий індекс.
+-rebuild-search-index      Перебудувати повнотекстовий пошуковий індекс (можливо довго).
+-quiet                     Не показувати жодних помилок чи статусних повідомлень.
+-help                      Показати цю довідку.
+</translation>
+    </message>
+    <message>
+        <source>Unknown option: %1</source>
+        <translation>Невідома опція: %1</translation>
+    </message>
+    <message>
+        <source>The collection file &apos;%1&apos; does not exist.</source>
+        <translation>Файл колекції &apos;%1&apos; не існує.</translation>
+    </message>
+    <message>
+        <source>Missing collection file.</source>
+        <translation>Відсутній файл колекції.</translation>
+    </message>
+    <message>
+        <source>Invalid URL &apos;%1&apos;.</source>
+        <translation>Неправильний URL &apos;%1&apos;.</translation>
+    </message>
+    <message>
+        <source>Missing URL.</source>
+        <translation>URL відсутній.</translation>
+    </message>
+    <message>
+        <source>Unknown widget: %1</source>
+        <translation>Невідомий віджет: %1</translation>
+    </message>
+    <message>
+        <source>Missing widget.</source>
+        <translation>Відсутній віджет.</translation>
+    </message>
+    <message>
+        <source>The Qt help file &apos;%1&apos; does not exist.</source>
+        <translation>Файл довідки Qt &apos;%1&apos; не існує.</translation>
+    </message>
+    <message>
+        <source>Missing help file.</source>
+        <translation>Відсутній файл довідки.</translation>
+    </message>
+    <message>
+        <source>Missing filter argument.</source>
+        <translation>Відсутній аргумент фільтра.</translation>
+    </message>
+    <message>
+        <source>Error</source>
+        <translation>Помилка</translation>
+    </message>
+    <message>
+        <source>Notice</source>
+        <translation>Примітка</translation>
+    </message>
+</context>
+<context>
+    <name>ContentWindow</name>
+    <message>
+        <source>Open Link</source>
+        <translation>Відкрити посилання</translation>
+    </message>
+    <message>
+        <source>Open Link in New Tab</source>
+        <translation>Відкрити посилання в новій вкладці</translation>
+    </message>
+</context>
+<context>
+    <name>ConversionWizard</name>
+    <message>
+        <source>Help Conversion Wizard</source>
+        <translation>Майстер конвертування довідки</translation>
+    </message>
+    <message>
+        <source>Converting %1...</source>
+        <translation>Конвертую %1...</translation>
+    </message>
+    <message>
+        <source>Writing help collection file...</source>
+        <translation>Записую файл колекції довідки...</translation>
+    </message>
+    <message>
+        <source>Done.</source>
+        <translation>Виконано.</translation>
+    </message>
+</context>
+<context>
+    <name>FilesPage</name>
+    <message>
+        <source>Form</source>
+        <translation>Форма</translation>
+    </message>
+    <message>
+        <source>Files:</source>
+        <translation>Файли:</translation>
+    </message>
+    <message>
+        <source>Remove</source>
+        <translation>Видалити</translation>
+    </message>
+    <message>
+        <source>Remove All</source>
+        <translation>Видалити все</translation>
+    </message>
+    <message>
+        <source>Unreferenced Files</source>
+        <translation>Файли,на які немає посилань</translation>
+    </message>
+    <message>
+        <source>Remove files which are neither referenced by a keyword nor by the TOC.</source>
+        <translation>Видаліть файли, на які немає посилань ні за ключовим словом, ні зі змісту.</translation>
+    </message>
+    <message>
+        <source>&lt;p&gt;&lt;b&gt;Warning:&lt;/b&gt; Be aware when removing images or stylesheets since those files are not directly referenced by the .adp or .dcf file.&lt;/p&gt;</source>
+        <translation>&lt;p&gt;&lt;b&gt;Попередження:&lt;/b&gt; Будьте уважними, при видаленні зображень чи таблиць стилів, оскільки на ці файли не має прямих посилань файла .adp чи .dcf.&lt;/p&gt;</translation>
+    </message>
+</context>
+<context>
+    <name>FilterNameDialogClass</name>
+    <message>
+        <source>Add Filter Name</source>
+        <translation>Додати назву фільтра</translation>
+    </message>
+    <message>
+        <source>Filter Name:</source>
+        <translation>Назва фільтра:</translation>
+    </message>
+</context>
+<context>
+    <name>FilterPage</name>
+    <message>
+        <source>Form</source>
+        <translation>Форма</translation>
+    </message>
+    <message>
+        <source>Filter attributes for current documentation (comma separated list):</source>
+        <translation>Атрибути фільтра для поточної документації (список, розділений комою):</translation>
+    </message>
+    <message>
+        <source>Custom Filters</source>
+        <translation>Користувацькі фільтри</translation>
+    </message>
+    <message>
+        <source>1</source>
+        <translation>1</translation>
+    </message>
+    <message>
+        <source>2</source>
+        <translation>2</translation>
+    </message>
+    <message>
+        <source>Add</source>
+        <translation>Додати</translation>
+    </message>
+    <message>
+        <source>Remove</source>
+        <translation>Видалити</translation>
+    </message>
+    <message>
+        <source>Filter Settings</source>
+        <translation>Налаштування фільтрів</translation>
+    </message>
+    <message>
+        <source>Specify the filter attributes for the documentation. If filter attributes are used, also define a custom filter for it. Both, the filter attributes and the custom filters are optional.</source>
+        <translation>Вкажіть атрибути фільтра для документації. Якщо використовуються атрибути фільтра, то, також, визначіть користувацький фільтр для нього. Як атрибути фільтра, так і користувацькі фільтри, є необов&apos;язковими.</translation>
+    </message>
+    <message>
+        <source>Filter Name</source>
+        <translation>Назва фільтра</translation>
+    </message>
+    <message>
+        <source>Filter Attributes</source>
+        <translation>Атрибути фільтра</translation>
+    </message>
+    <message>
+        <source>The custom filter &apos;%1&apos; is defined multiple times.</source>
+        <translation>Користувацький фільтр &apos;%1&apos; визначено декілька раз.</translation>
+    </message>
+    <message>
+        <source>The attributes for custom filter &apos;%1&apos; are defined multiple times.</source>
+        <translation>Атрибути для користувацького фільтра &apos;%1&apos; визначено декілька раз.</translation>
+    </message>
+    <message>
+        <source>unfiltered</source>
+        <comment>list of available documentation</comment>
+        <translation>без фільтра</translation>
+    </message>
+</context>
+<context>
+    <name>FindWidget</name>
+    <message>
+        <source>Previous</source>
+        <translation>Попередній</translation>
+    </message>
+    <message>
+        <source>Next</source>
+        <translation>Наступний</translation>
+    </message>
+    <message>
+        <source>Case Sensitive</source>
+        <translation>Враховувати регістр</translation>
+    </message>
+    <message>
+        <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;Пошук з початку</translation>
+    </message>
+</context>
+<context>
+    <name>FinishPage</name>
+    <message>
+        <source>Converting File</source>
+        <translation>Конвертування файлу</translation>
+    </message>
+    <message>
+        <source>Creating the new Qt help files from the old ADP file.</source>
+        <translation>Створення нових файлів довідки Qt зі старого файлу ADP.</translation>
+    </message>
+</context>
+<context>
+    <name>FontPanel</name>
+    <message>
+        <source>Font</source>
+        <translation>Шрифт</translation>
+    </message>
+    <message>
+        <source>&amp;Writing system</source>
+        <translation>Система &amp;писемності</translation>
+    </message>
+    <message>
+        <source>&amp;Family</source>
+        <translation>&amp;Шрифт</translation>
+    </message>
+    <message>
+        <source>&amp;Style</source>
+        <translation>&amp;Стиль</translation>
+    </message>
+    <message>
+        <source>&amp;Point size</source>
+        <translation>&amp;Розмір</translation>
+    </message>
+</context>
+<context>
+    <name>GeneralPage</name>
+    <message>
+        <source>Form</source>
+        <translation>Форма</translation>
+    </message>
+    <message>
+        <source>Namespace:</source>
+        <translation>Простір імен:</translation>
+    </message>
+    <message>
+        <source>Virtual Folder:</source>
+        <translation>Віртуальна тека:</translation>
+    </message>
+    <message>
+        <source>General Settings</source>
+        <translation>Загальні налаштування</translation>
+    </message>
+    <message>
+        <source>Specify the namespace and the virtual folder for the documentation.</source>
+        <translation>Вкажіть простір імен та віртуальну теку для документації.</translation>
+    </message>
+    <message>
+        <source>Namespace Error</source>
+        <translation>Помилка простору імен</translation>
+    </message>
+    <message>
+        <source>The namespace contains some invalid characters.</source>
+        <translation>Простір імен містить деякі неприпустимі символи.</translation>
+    </message>
+    <message>
+        <source>Virtual Folder Error</source>
+        <translation>Помилка віртуальної теки</translation>
+    </message>
+    <message>
+        <source>The virtual folder contains some invalid characters.</source>
+        <translation>Віртуальна тека містить деякі неприпустимі символи.</translation>
+    </message>
+</context>
+<context>
+    <name>HelpGenerator</name>
+    <message>
+        <source>Warning: %1</source>
+        <translation>Попередження: %1</translation>
+    </message>
+</context>
+<context>
+    <name>HelpViewer</name>
+    <message>
+        <source>&lt;title&gt;about:blank&lt;/title&gt;</source>
+        <translation>&lt;title&gt;about:blank&lt;/title&gt;</translation>
+    </message>
+    <message>
+        <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...&lt;/title&gt;&lt;div align=&quot;center&quot;&gt;&lt;br&gt;&lt;br&gt;&lt;h1&gt;Не вдалось знайти сторінку&lt;/h1&gt;&lt;br&gt;&lt;h3&gt;&apos;%1&apos;&lt;/h3&gt;&lt;/div&gt;</translation>
+    </message>
+    <message>
+        <source>Copy &amp;Link Location</source>
+        <translation>Копіювати &amp;адресу посилання</translation>
+    </message>
+    <message>
+        <source>Open Link in New Tab	Ctrl+LMB</source>
+        <translation>Відкрити посилання в новій вкладці 	Ctrl+LMB</translation>
+    </message>
+    <message>
+        <source>Open Link in New Tab</source>
+        <translation>Відкрити посилання в новій вкладці</translation>
+    </message>
+</context>
+<context>
+    <name>HelpWindow</name>
+    <message>
+        <source>&lt;center&gt;&lt;b&gt;Wizard Assistant&lt;/b&gt;&lt;/center&gt;</source>
+        <translation>&lt;center&gt;&lt;b&gt;Майстер Assistant&lt;/b&gt;&lt;/center&gt;</translation>
+    </message>
+</context>
+<context>
+    <name>IdentifierPage</name>
+    <message>
+        <source>Form</source>
+        <translation>Форма</translation>
+    </message>
+    <message>
+        <source>Create identifiers</source>
+        <translation>Створювати ідентифікатори</translation>
+    </message>
+    <message>
+        <source>Global prefix:</source>
+        <translation>Глобальний префікс:</translation>
+    </message>
+    <message>
+        <source>Inherit prefix from file names</source>
+        <translation>Успадковувати префікс з імен файлів</translation>
+    </message>
+    <message>
+        <source>Identifiers</source>
+        <translation>Ідентифікатори</translation>
+    </message>
+    <message>
+        <source>This page allows you to create identifiers from the keywords found in the .adp or .dcf file.</source>
+        <translation>Ця сторінка дозволяє вам створювати ідентифікатори з ключових слів, знайдених в файлі .adp чи .dcf.</translation>
+    </message>
+</context>
+<context>
+    <name>IndexWindow</name>
+    <message>
+        <source>&amp;Look for:</source>
+        <translation>&amp;Шукати:</translation>
+    </message>
+    <message>
+        <source>Open Link</source>
+        <translation>Відкрити посилання</translation>
+    </message>
+    <message>
+        <source>Open Link in New Tab</source>
+        <translation>Відкрити посилання в новій вкладці</translation>
+    </message>
+</context>
+<context>
+    <name>InputPage</name>
+    <message>
+        <source>Form</source>
+        <translation>Форма</translation>
+    </message>
+    <message>
+        <source>File name:</source>
+        <translation>Ім&apos;я файлу:</translation>
+    </message>
+    <message>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <source>Input File</source>
+        <translation>Вхідний файл</translation>
+    </message>
+    <message>
+        <source>Specify the .adp or .dcf file you want to convert to the new Qt help project format and/or collection format.</source>
+        <translation>Вкажіть файл .adp чи .dcf, який ви бажаєте сконвертувати до нового формату проекту довідки Qt та/або формату колекції.</translation>
+    </message>
+    <message>
+        <source>Open file</source>
+        <translation>Відкрити файл</translation>
+    </message>
+    <message>
+        <source>Qt Help Files (*.adp *.dcf)</source>
+        <translation>Файли довідки Qt (*.adp *.dcf)</translation>
+    </message>
+    <message>
+        <source>File Open Error</source>
+        <translation>Помилка відкриття файлу</translation>
+    </message>
+    <message>
+        <source>The specified file could not be opened!</source>
+        <translation>Не вдалось відкрити вказаний файл!</translation>
+    </message>
+    <message>
+        <source>File Parsing Error</source>
+        <translation>Помилка розбору файлу</translation>
+    </message>
+    <message>
+        <source>Parsing error in line %1!</source>
+        <translation>Помилка розбору в рядку %1!</translation>
+    </message>
+</context>
+<context>
+    <name>InstallDialog</name>
+    <message>
+        <source>Install Documentation</source>
+        <translation>Встановити документацію</translation>
+    </message>
+    <message>
+        <source>Available Documentation:</source>
+        <translation>Доступна документація:</translation>
+    </message>
+    <message>
+        <source>Install</source>
+        <translation>Встановити</translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation>Скасувати</translation>
+    </message>
+    <message>
+        <source>Close</source>
+        <translation>Закрити</translation>
+    </message>
+    <message>
+        <source>Installation Path:</source>
+        <translation>Шлях встановлення:</translation>
+    </message>
+    <message>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <source>Downloading documentation info...</source>
+        <translation>Звантажую інформацію про документацію...</translation>
+    </message>
+    <message>
+        <source>Download canceled.</source>
+        <translation>Звантаження скасоване.</translation>
+    </message>
+    <message>
+        <source>Done.</source>
+        <translation>Виконано.</translation>
+    </message>
+    <message>
+        <source>The file %1 already exists. Do you want to overwrite it?</source>
+        <translation>Файл %1 вже існує. Бажаєте перезаписати?</translation>
+    </message>
+    <message>
+        <source>Unable to save the file %1: %2.</source>
+        <translation>Неможливо зберегти файл %1: %2.</translation>
+    </message>
+    <message>
+        <source>Downloading %1...</source>
+        <translation>Звантажую %1...</translation>
+    </message>
+    <message>
+        <source>Download failed: %1.</source>
+        <translation>Звантаження провалилось: %1.</translation>
+    </message>
+    <message>
+        <source>Documentation info file is corrupt!</source>
+        <translation>Файл інформації про документацію пошкоджений!</translation>
+    </message>
+    <message>
+        <source>Download failed: Downloaded file is corrupted.</source>
+        <translation>Звантаження провалилось: Звантажений файл пошкоджений.</translation>
+    </message>
+    <message>
+        <source>Installing documentation %1...</source>
+        <translation>Встановлюю документацію %1...</translation>
+    </message>
+    <message>
+        <source>Error while installing documentation:
+%1</source>
+        <translation>Помилка під час встановлення документації:
+%1</translation>
+    </message>
+</context>
+<context>
+    <name>MainWindow</name>
+    <message>
+        <source>Index</source>
+        <translation>Покажчик</translation>
+    </message>
+    <message>
+        <source>Contents</source>
+        <translation>Зміст</translation>
+    </message>
+    <message>
+        <source>Bookmarks</source>
+        <translation>Закладки</translation>
+    </message>
+    <message>
+        <source>Qt Assistant</source>
+        <translation>Qt Assistant</translation>
+    </message>
+    <message>
+        <source>Looking for Qt Documentation...</source>
+        <translation>Пошук документації Qt...</translation>
+    </message>
+    <message>
+        <source>&amp;File</source>
+        <translation>&amp;Файл</translation>
+    </message>
+    <message>
+        <source>New &amp;Tab</source>
+        <translation>&amp;Нова вкладка</translation>
+    </message>
+    <message>
+        <source>Page Set&amp;up...</source>
+        <translation>Параметри &amp;сторінки...</translation>
+    </message>
+    <message>
+        <source>Print Preview...</source>
+        <translation>Попередній перегляд...</translation>
+    </message>
+    <message>
+        <source>&amp;Print...</source>
+        <translation>&amp;Друк...</translation>
+    </message>
+    <message>
+        <source>&amp;Close Tab</source>
+        <translation>&amp;Закрити вкладку</translation>
+    </message>
+    <message>
+        <source>&amp;Quit</source>
+        <translation>Ви&amp;йти</translation>
+    </message>
+    <message>
+        <source>CTRL+Q</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>&amp;Edit</source>
+        <translation>&amp;Правка</translation>
+    </message>
+    <message>
+        <source>&amp;Copy selected Text</source>
+        <translation>&amp;Копіювати виділений текст</translation>
+    </message>
+    <message>
+        <source>&amp;Find in Text...</source>
+        <translation>Пошук в &amp;тексті...</translation>
+    </message>
+    <message>
+        <source>&amp;Find</source>
+        <translation>По&amp;шук</translation>
+    </message>
+    <message>
+        <source>Find &amp;Next</source>
+        <translation>Знайти &amp;наступне</translation>
+    </message>
+    <message>
+        <source>Find &amp;Previous</source>
+        <translation>Знайти &amp;попереднє</translation>
+    </message>
+    <message>
+        <source>Preferences...</source>
+        <translation>Налаштування...</translation>
+    </message>
+    <message>
+        <source>&amp;View</source>
+        <translation>&amp;Вид</translation>
+    </message>
+    <message>
+        <source>Zoom &amp;in</source>
+        <translation>З&amp;більшити</translation>
+    </message>
+    <message>
+        <source>Zoom &amp;out</source>
+        <translation>З&amp;меншити</translation>
+    </message>
+    <message>
+        <source>Normal &amp;Size</source>
+        <translation>&amp;Нормальний розмір</translation>
+    </message>
+    <message>
+        <source>Ctrl+0</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>ALT+C</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>ALT+I</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>ALT+O</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>Search</source>
+        <translation>Пошук</translation>
+    </message>
+    <message>
+        <source>ALT+S</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>&amp;Go</source>
+        <translation>П&amp;ерейти</translation>
+    </message>
+    <message>
+        <source>&amp;Home</source>
+        <translation>&amp;Домівка</translation>
+    </message>
+    <message>
+        <source>ALT+Home</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>&amp;Back</source>
+        <translation>&amp;Назад</translation>
+    </message>
+    <message>
+        <source>&amp;Forward</source>
+        <translation>&amp;Вперед</translation>
+    </message>
+    <message>
+        <source>Sync with Table of Contents</source>
+        <translation>Синхронізувати зі змістом</translation>
+    </message>
+    <message>
+        <source>Sync</source>
+        <translation>Синхронізувати</translation>
+    </message>
+    <message>
+        <source>Next Page</source>
+        <translation>Наступна сторінка</translation>
+    </message>
+    <message>
+        <source>Ctrl+Alt+Right</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>Previous Page</source>
+        <translation>Попередня сторінка</translation>
+    </message>
+    <message>
+        <source>Ctrl+Alt+Left</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>&amp;Bookmarks</source>
+        <translation>&amp;Закладки</translation>
+    </message>
+    <message>
+        <source>&amp;Help</source>
+        <translation>&amp;Довідка</translation>
+    </message>
+    <message>
+        <source>About...</source>
+        <translation>Про...</translation>
+    </message>
+    <message>
+        <source>Navigation Toolbar</source>
+        <translation>Панель навігації</translation>
+    </message>
+    <message>
+        <source>&amp;Window</source>
+        <translation>В&amp;ікно</translation>
+    </message>
+    <message>
+        <source>Zoom</source>
+        <translation>Масштабувати</translation>
+    </message>
+    <message>
+        <source>Minimize</source>
+        <translation>Мінімізувати</translation>
+    </message>
+    <message>
+        <source>Ctrl+M</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>Toolbars</source>
+        <translation>Панелі</translation>
+    </message>
+    <message>
+        <source>Filter Toolbar</source>
+        <translation>Панель фільтрування</translation>
+    </message>
+    <message>
+        <source>Filtered by:</source>
+        <translation>Фільтрувати по:</translation>
+    </message>
+    <message>
+        <source>Address Toolbar</source>
+        <translation>Панель адреси</translation>
+    </message>
+    <message>
+        <source>Address:</source>
+        <translation>Адреса:</translation>
+    </message>
+    <message>
+        <source>Could not find the associated content item.</source>
+        <translation>Не вдалось знайти елемент, пов&apos;язаний зі змістом.</translation>
+    </message>
+    <message>
+        <source>&lt;center&gt;&lt;h3&gt;%1&lt;/h3&gt;&lt;p&gt;Version %2&lt;/p&gt;&lt;/center&gt;&lt;p&gt;Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).&lt;/p&gt;</source>
+        <translation>&lt;center&gt;&lt;h3&gt;%1&lt;/h3&gt;&lt;p&gt;Версія %2&lt;/p&gt;&lt;/center&gt;&lt;p&gt;Copyright (C) 2010 Корпорація Nokia та/або її дочірні компанії.&lt;/p&gt;</translation>
+    </message>
+    <message>
+        <source>About %1</source>
+        <translation>Про %1</translation>
+    </message>
+    <message>
+        <source>Updating search index</source>
+        <translation>Оновлюється покажчик пошуку</translation>
+    </message>
+    <message>
+        <source>Could not register file &apos;%1&apos;: %2</source>
+        <translation>Не вдалось зареєструвати файл &apos;%1&apos;: %2</translation>
+    </message>
+</context>
+<context>
+    <name>OutputPage</name>
+    <message>
+        <source>Form</source>
+        <translation>Форма</translation>
+    </message>
+    <message>
+        <source>Project file name:</source>
+        <translation>Ім&apos;я файлу проекту:</translation>
+    </message>
+    <message>
+        <source>Collection file name:</source>
+        <translation>Ім&apos;я файлу колекції:</translation>
+    </message>
+    <message>
+        <source>Output File Names</source>
+        <translation>Імена вихідний файлів</translation>
+    </message>
+    <message>
+        <source>Specify the file names for the output files.</source>
+        <translation>Вкажіть імена вихідних файлів.</translation>
+    </message>
+    <message>
+        <source>Convert...</source>
+        <translation>Конвертувати...</translation>
+    </message>
+    <message>
+        <source>Qt Help Project File</source>
+        <translation>Файл проекту довідки Qt</translation>
+    </message>
+    <message>
+        <source>Qt Help Collection Project File</source>
+        <translation>Файл проекту колекції довідки Qt</translation>
+    </message>
+    <message>
+        <source>The specified file %1 already exist.
+
+Do you want to remove it?</source>
+        <translation>Вказаний файл %1 вже існує
+
+Бажаєте видалити його?</translation>
+    </message>
+    <message>
+        <source>Remove</source>
+        <translation>Видалити</translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation>Скасувати</translation>
+    </message>
+</context>
+<context>
+    <name>PathPage</name>
+    <message>
+        <source>Form</source>
+        <translation>Форма</translation>
+    </message>
+    <message>
+        <source>File filters:</source>
+        <translation>Фільтри файлів:</translation>
+    </message>
+    <message>
+        <source>Documentation source file paths:</source>
+        <translation>Шляхи вхідних файлів документації:</translation>
+    </message>
+    <message>
+        <source>Add</source>
+        <translation>Додати</translation>
+    </message>
+    <message>
+        <source>Remove</source>
+        <translation>Видалити</translation>
+    </message>
+    <message>
+        <source>Source File Paths</source>
+        <translation>Шляхи вхідних файлів</translation>
+    </message>
+    <message>
+        <source>Specify the paths where the sources files are located. By default, all files in those directories matched by the file filter will be included.</source>
+        <translation>Вкажіть шляхи, де розташовані вхідні файли. Зазвичай, усі файли в цих теках, що відповідають фільтру файлів, будуть включені.</translation>
+    </message>
+    <message>
+        <source>Source File Path</source>
+        <translation>Шлях вхідного файлу</translation>
+    </message>
+</context>
+<context>
+    <name>PreferencesDialog</name>
+    <message>
+        <source>Add Documentation</source>
+        <translation>Додати документацію</translation>
+    </message>
+    <message>
+        <source>Qt Compressed Help Files (*.qch)</source>
+        <translation>Стиснені файли довідки Qt (*.qch)</translation>
+    </message>
+    <message>
+        <source>The namespace %1 is already registered!</source>
+        <translation>Простір імен %1 вже зареєстровано!</translation>
+    </message>
+    <message>
+        <source>The specified file is not a valid Qt Help File!</source>
+        <translation>Вказаний файл не є коректним файлом довідки Qt!</translation>
+    </message>
+    <message>
+        <source>Remove Documentation</source>
+        <translation>Видалити документацію</translation>
+    </message>
+    <message>
+        <source>Some documents currently opened in Assistant reference the documentation you are attempting to remove. Removing the documentation will close those documents.</source>
+        <translation>Деякі документи, що зараз відкриті в Assistant, пов&apos;язані з документацією, яку ви намагаєтесь видалити. Видалення документації призведе до закриття цих документів.</translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation>Скасувати</translation>
+    </message>
+    <message>
+        <source>OK</source>
+        <translation>OK</translation>
+    </message>
+    <message>
+        <source>Use custom settings</source>
+        <translation>Використовувати налаштування користувача</translation>
+    </message>
+</context>
+<context>
+    <name>PreferencesDialogClass</name>
+    <message>
+        <source>Preferences</source>
+        <translation>Налаштування</translation>
+    </message>
+    <message>
+        <source>Fonts</source>
+        <translation>Шрифти</translation>
+    </message>
+    <message>
+        <source>Font settings:</source>
+        <translation>Параметри шрифту:</translation>
+    </message>
+    <message>
+        <source>Browser</source>
+        <translation>Навігатор</translation>
+    </message>
+    <message>
+        <source>Application</source>
+        <translation>Програма</translation>
+    </message>
+    <message>
+        <source>Filters</source>
+        <translation>Фільтри</translation>
+    </message>
+    <message>
+        <source>Filter:</source>
+        <translation>Фільтр:</translation>
+    </message>
+    <message>
+        <source>Attributes:</source>
+        <translation>Атрибути:</translation>
+    </message>
+    <message>
+        <source>1</source>
+        <translation>1</translation>
+    </message>
+    <message>
+        <source>Add</source>
+        <translation>Додати</translation>
+    </message>
+    <message>
+        <source>Remove</source>
+        <translation>Видалити</translation>
+    </message>
+    <message>
+        <source>Documentation</source>
+        <translation>Документація</translation>
+    </message>
+    <message>
+        <source>Registered Documentation:</source>
+        <translation>Зареєстрована документація:</translation>
+    </message>
+    <message>
+        <source>Add...</source>
+        <translation>Додати...</translation>
+    </message>
+    <message>
+        <source>Options</source>
+        <translation>Опції</translation>
+    </message>
+    <message>
+        <source>On help start:</source>
+        <translation>При запуску довідки:</translation>
+    </message>
+    <message>
+        <source>Show my home page</source>
+        <translation>Показувати мою домашню сторінку</translation>
+    </message>
+    <message>
+        <source>Show a blank page</source>
+        <translation>Показувати порожню сторінку</translation>
+    </message>
+    <message>
+        <source>Show my tabs from last session</source>
+        <translation>Показувати вкладку з минулого сеансу</translation>
+    </message>
+    <message>
+        <source>Homepage</source>
+        <translation>Домашня сторінка</translation>
+    </message>
+    <message>
+        <source>Current Page</source>
+        <translation>Поточна сторінка</translation>
+    </message>
+    <message>
+        <source>Blank Page</source>
+        <translation>Порожня сторінка</translation>
+    </message>
+    <message>
+        <source>Restore to default</source>
+        <translation>Відновити типово</translation>
+    </message>
+</context>
+<context>
+    <name>QCollectionGenerator</name>
+    <message>
+        <source>Unknown token at line %1.</source>
+        <translation>Невідомий токен в рядку %1.</translation>
+    </message>
+    <message>
+        <source>Missing end tags.</source>
+        <translation>Відсутні кінцеві теги.</translation>
+    </message>
+    <message>
+        <source>Qt Collection Generator version 1.0 (Qt %1)
+</source>
+        <translation>Qt Collection Generator версії 1.0 (Qt %1)
+</translation>
+    </message>
+    <message>
+        <source>
+Usage:
+
+qcollectiongenerator &lt;collection-config-file&gt; [options]
+
+  -o &lt;collection-file&gt;   Generates a collection file
+                         called &lt;collection-file&gt;. If
+                         this option is not specified
+                         a default name will be used.
+  -v                     Displays the version of
+                         qcollectiongenerator.
+
+</source>
+        <translation>
+Використання:
+
+qcollectiongenerator &lt;файл-налаштувань-колекції&gt; [опції]
+
+  -o &lt;файл-колекції&gt;   Згенерувати файл колекції з іменем
+                                   &lt;файл-колекції&gt;. Якщо цю опцію не
+                                   вказано, то використовуватиметься
+                                   типове ім&apos;я
+  -v                               Показати версію qcollectiongenerator.
+
+</translation>
+    </message>
+    <message>
+        <source>Unknown token at line %1. Expected &quot;QtHelpCollectionProject&quot;.</source>
+        <translation>Невідомий токен в рядку %1. Очікувався &quot;QtHelpCollectionProject&quot;.</translation>
+    </message>
+    <message>
+        <source>Missing input or output file for help file generation.</source>
+        <translation>Відсутній вхідний чи вихідний файл для генерації файлу довідки.</translation>
+    </message>
+    <message>
+        <source>Missing output file name.</source>
+        <translation>Відсутнє ім&apos;я вихідного файлу.</translation>
+    </message>
+    <message>
+        <source>Missing collection config file.</source>
+        <translation>Відсутній файл налаштувань колекції.</translation>
+    </message>
+    <message>
+        <source>Could not open %1.
+</source>
+        <translation>Не вдалось відкрити %1.
+</translation>
+    </message>
+    <message>
+        <source>Reading collection config file...
+</source>
+        <translation>Читання файлу налаштувань колекції...
+</translation>
+    </message>
+    <message>
+        <source>Collection config file error: %1
+</source>
+        <translation>Помилка файлу налаштувань колекції: %1
+</translation>
+    </message>
+    <message>
+        <source>Generating help for %1...
+</source>
+        <translation>Генерування довідки для %1...
+</translation>
+    </message>
+    <message>
+        <source>Creating collection file...
+</source>
+        <translation>Створення файлу колекції...
+</translation>
+    </message>
+    <message>
+        <source>The file %1 cannot be overwritten.
+</source>
+        <translation>Неможливо перезаписати файл %1.
+</translation>
+    </message>
+    <message>
+        <source>Cannot open %1.
+</source>
+        <translation>Неможливо відкрити %1.
+</translation>
+    </message>
+    <message>
+        <source>Cannot open referenced image file %1.
+</source>
+        <translation>Неможливо відкрити файл зображення %1, на який є посилання.
+</translation>
+    </message>
+</context>
+<context>
+    <name>QHelpGenerator</name>
+    <message>
+        <source>Missing output file name.</source>
+        <translation>Відсутнє ім&apos;я вихідного файлу.</translation>
+    </message>
+    <message>
+        <source>Qt Help Generator version 1.0 (Qt %1)
+</source>
+        <translation>Qt Help Generator версії 1.0 (Qt %1)
+</translation>
+    </message>
+    <message>
+        <source>Missing Qt help project file.</source>
+        <translation>Відсутній файл проекту колекції довідки Qt.</translation>
+    </message>
+    <message>
+        <source>Could not open %1.
+</source>
+        <translation>Не вдалось відкрити %1.
+</translation>
+    </message>
+    <message>
+        <source>
+Usage:
+
+qhelpgenerator &lt;help-project-file&gt; [options]
+
+  -o &lt;compressed-file&gt;   Generates a Qt compressed help
+                         file called &lt;compressed-file&gt;.
+                         If this option is not specified
+                         a default name will be used.
+  -c                     Checks whether all links in HTML files
+                         point to files in this help project.
+  -v                     Displays the version of 
+                         qhelpgenerator.
+
+</source>
+        <translation>
+Використання:
+
+qhelpgenerator &lt;файл-проекту-довідки&gt; [опції]
+
+  -o &lt;стиснений-файл&gt;   Згенерувати стиснений файл довідки
+                                      з іменем &lt;стиснений-файл&gt;. Якщо цю
+                                      опцію не вказано, то буде використане
+                                      типове ім&apos;я.
+  -c                                 Перевірити, що усі посилання в файлах
+                                      HTML files вказують на файли в цьому
+                                      проекті довідки.
+  -v                                 Показати версію qhelpgenerator.
+
+</translation>
+    </message>
+    <message>
+        <source>Could not create output directory: %1
+</source>
+        <translation>Не вдалось створити вихідну теку: %1
+</translation>
+    </message>
+</context>
+<context>
+    <name>RemoteControl</name>
+    <message>
+        <source>Debugging Remote Control</source>
+        <translation>Зневадження віддаленого управління</translation>
+    </message>
+    <message>
+        <source>Received Command: %1 %2</source>
+        <translation>Отримано команду: %1 %2</translation>
+    </message>
+</context>
+<context>
+    <name>SearchWidget</name>
+    <message>
+        <source>&amp;Copy</source>
+        <translation>&amp;Копіювати</translation>
+    </message>
+    <message>
+        <source>Copy &amp;Link Location</source>
+        <translation>Копіювати &amp;адресу посилання</translation>
+    </message>
+    <message>
+        <source>Open Link in New Tab</source>
+        <translation>Відкрити посилання в новій вкладці</translation>
+    </message>
+    <message>
+        <source>Select All</source>
+        <translation>Виділити все</translation>
+    </message>
+</context>
+<context>
+    <name>TopicChooser</name>
+    <message>
+        <source>Choose Topic</source>
+        <translation>Оберіть тему</translation>
+    </message>
+    <message>
+        <source>&amp;Topics</source>
+        <translation>&amp;Теми</translation>
+    </message>
+    <message>
+        <source>&amp;Display</source>
+        <translation>&amp;Показати</translation>
+    </message>
+    <message>
+        <source>&amp;Close</source>
+        <translation>&amp;Закрити</translation>
+    </message>
+    <message>
+        <source>Choose a topic for &lt;b&gt;%1&lt;/b&gt;:</source>
+        <translation>Оберіть тему для &lt;b&gt;%1&lt;/b&gt;:</translation>
+    </message>
+</context>
+</TS>
--- a/translations/check-ts.xq	Fri Sep 17 08:34:18 2010 +0300
+++ b/translations/check-ts.xq	Mon Oct 04 01:19:32 2010 +0300
@@ -1,3 +1,3 @@
 for $file in tokenize($files, codepoints-to-string(10))
-    let $fresh := doc($file)/TS/context/message[not (translation/@type = 'obsolete')]
+    let $fresh := doc($file)/TS/context[not (name = 'QtXmlPatterns')]/message[not (translation/@type = 'obsolete')]
     return concat($file, ":", count($fresh/translation[not (@type = 'unfinished')]) * 100 idiv count($fresh))
--- a/translations/designer_de.ts	Fri Sep 17 08:34:18 2010 +0300
+++ b/translations/designer_de.ts	Mon Oct 04 01:19:32 2010 +0300
@@ -4,27 +4,22 @@
 <context>
     <name>AbstractFindWidget</name>
     <message>
-        <location filename="../tools/shared/findwidget/abstractfindwidget.cpp" line="+127"/>
         <source>&amp;Previous</source>
         <translation>&amp;Vorige</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>&amp;Next</source>
         <translation>&amp;Nächste</translation>
     </message>
     <message>
-        <location line="+24"/>
         <source>&amp;Case sensitive</source>
         <translation>&amp;Groß/Kleinschreibung</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Whole &amp;words</source>
         <translation>Nur ganze &amp;Worte</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;Die Suche hat das Ende erreicht</translation>
     </message>
@@ -32,17 +27,14 @@
 <context>
     <name>AddLinkDialog</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/addlinkdialog.ui"/>
         <source>Insert Link</source>
         <translation>Link einfügen</translation>
     </message>
     <message>
-        <location/>
         <source>Title:</source>
         <translation>Titel:</translation>
     </message>
     <message>
-        <location/>
         <source>URL:</source>
         <translation>URL:</translation>
     </message>
@@ -50,7 +42,6 @@
 <context>
     <name>AppFontDialog</name>
     <message>
-        <location filename="../tools/designer/src/designer/appfontdialog.cpp" line="+418"/>
         <source>Additional Fonts</source>
         <translation>Zusätzliche Schriftarten</translation>
     </message>
@@ -58,37 +49,30 @@
 <context>
     <name>AppFontManager</name>
     <message>
-        <location line="-267"/>
         <source>&apos;%1&apos; is not a file.</source>
         <translation>&apos;%1&apos; ist keine Datei.</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>The font file &apos;%1&apos; does not have read permissions.</source>
         <translation>Die Fontdatei &apos;%1&apos; hat keinen Lesezugriff.</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>The font file &apos;%1&apos; is already loaded.</source>
         <translation>Die Fontdatei ist bereits geladen.</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>The font file &apos;%1&apos; could not be loaded.</source>
         <translation>Die Fontdatei &apos;%1&apos; konnte nicht geladen werden.</translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>&apos;%1&apos; is not a valid font id.</source>
         <translation>&apos;%1&apos; ist keine gültige Id einer Schriftart.</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>There is no loaded font matching the id &apos;%1&apos;.</source>
         <translation>Es ist keine Schriftart mit der Id &apos;%1&apos; geladen.</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>The font &apos;%1&apos; (%2) could not be unloaded.</source>
         <translation>Die Schriftart  &apos;%1&apos; (%2) konnte nicht entladen werden.</translation>
     </message>
@@ -96,52 +80,42 @@
 <context>
     <name>AppFontWidget</name>
     <message>
-        <location line="+26"/>
         <source>Fonts</source>
         <translation>Schriftarten</translation>
     </message>
     <message>
-        <location line="+58"/>
         <source>Add font files</source>
         <translation>Schriftarten hinzufügen</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Remove current font file</source>
         <translation>Schriftart entfernen</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Remove all font files</source>
         <translation>Alle Schriftarten entfernen</translation>
     </message>
     <message>
-        <location line="+19"/>
         <source>Add Font Files</source>
         <translation>Schriftarten hinzufügen</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Font files (*.ttf)</source>
         <translation>Schriftarten (*.ttf)</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>Error Adding Fonts</source>
         <translation>Fehler beim Hinzufügen einer Schriftart</translation>
     </message>
     <message>
-        <location line="+24"/>
         <source>Error Removing Fonts</source>
         <translation>Fehler beim Entfernen von Schriftarten</translation>
     </message>
     <message>
-        <location line="+22"/>
         <source>Remove Fonts</source>
         <translation>Schriftarten entfernen</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Would you like to remove all fonts?</source>
         <translation>Möchten Sie alle Schriftarten entfernen?</translation>
     </message>
@@ -149,12 +123,10 @@
 <context>
     <name>AppearanceOptionsWidget</name>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_appearanceoptions.ui"/>
         <source>Form</source>
         <translation>Formular</translation>
     </message>
     <message>
-        <location/>
         <source>User Interface Mode</source>
         <translation>Fenstermodus</translation>
     </message>
@@ -162,17 +134,14 @@
 <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>Fehler beim Senden einer Anforderung: Das Programm Assistant antwortet nicht.</translation>
     </message>
     <message>
-        <location line="+39"/>
         <source>The binary &apos;%1&apos; does not exist.</source>
         <translation>Die ausführbare Datei &apos;%1&apos; existiert nicht.</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Unable to launch assistant (%1).</source>
         <translation>Das Programm Assistant kann nicht gestartet werden (%1).</translation>
     </message>
@@ -180,92 +149,74 @@
 <context>
     <name>BrushPropertyManager</name>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/brushpropertymanager.cpp" line="+159"/>
         <source>Style</source>
         <translation>Stil</translation>
     </message>
     <message>
-        <location line="-107"/>
         <source>No brush</source>
         <translation>Kein Muster</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Solid</source>
         <translation>Voll</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Dense 1</source>
         <translation>Dichte 1</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Dense 2</source>
         <translation>Dichte 2</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Dense 3</source>
         <translation>Dichte 3</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Dense 4</source>
         <translation>Dichte 4</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Dense 5</source>
         <translation>Dichte 5</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Dense 6</source>
         <translation>Dichte 6</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Dense 7</source>
         <translation>Dichte 7</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Horizontal</source>
         <translation>Horizontal</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Vertical</source>
         <translation>Vertikal</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Cross</source>
         <translation>Kreuzende Linien</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Backward diagonal</source>
         <translation>Rückwärtslehnende Diagonalen</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Forward diagonal</source>
         <translation>Vorwärtslehnende Diagonalen</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Crossing diagonal</source>
         <translation>Kreuzende Diagonalen</translation>
     </message>
     <message>
-        <location line="+104"/>
         <source>Color</source>
         <translation>Farbe</translation>
     </message>
     <message>
-        <location line="+105"/>
         <source>[%1, %2]</source>
         <translation>[%1, %2]</translation>
     </message>
@@ -273,360 +224,277 @@
 <context>
     <name>Command</name>
     <message>
-        <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditor.cpp" line="+208"/>
-        <location line="+258"/>
         <source>Change signal</source>
         <translation>Signal ändern</translation>
     </message>
     <message>
-        <location line="-256"/>
-        <location line="+268"/>
         <source>Change slot</source>
         <translation>Slot ändern</translation>
     </message>
     <message>
-        <location line="-220"/>
         <source>Change signal-slot connection</source>
         <translation>Signale-Slotverbindung ändern</translation>
     </message>
     <message>
-        <location line="+234"/>
         <source>Change sender</source>
         <translation>Sender ändern</translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>Change receiver</source>
         <translation>Empfänger ändern</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/connectionedit.cpp" line="+143"/>
         <source>Add connection</source>
         <translation>Verbindung hinzufügen</translation>
     </message>
     <message>
-        <location line="+54"/>
         <source>Adjust connection</source>
         <translation>Verbindung anpassen</translation>
     </message>
     <message>
-        <location line="+19"/>
         <source>Delete connections</source>
         <translation>Verbindungen löschen</translation>
     </message>
     <message>
-        <location line="+58"/>
         <source>Change source</source>
         <translation>Startpunkt ändern</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Change target</source>
         <translation>Endpunkt ändern</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; einfügen</translation>
     </message>
     <message>
-        <location line="+167"/>
         <source>Raise &apos;%1&apos;</source>
         <translation>&apos;%1&apos; nach vorn</translation>
     </message>
     <message>
-        <location line="+33"/>
         <source>Lower &apos;%1&apos;</source>
         <translation>&apos;%1&apos; nach hinten</translation>
     </message>
     <message>
-        <location line="+113"/>
         <source>Delete &apos;%1&apos;</source>
         <translation> &apos;%1&apos; löschen</translation>
     </message>
     <message>
-        <location line="+119"/>
         <source>Reparent &apos;%1&apos;</source>
         <translation> &apos;%1&apos; einem anderen Widget zuordnen</translation>
     </message>
     <message>
-        <location line="+53"/>
         <source>Promote to custom widget</source>
         <translation>Platzhalter für benutzerdefinierte Klasse erzeugen</translation>
     </message>
     <message>
-        <location line="+42"/>
         <source>Demote from custom widget</source>
         <translation>Platzhalter für benutzerdefinierte Klasse entfernen</translation>
     </message>
     <message>
-        <location line="+79"/>
         <source>Lay out using grid</source>
         <translation>Objekte tabellarisch anordnen</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Lay out vertically</source>
         <translation>Objekte senkrecht anordnen</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Lay out horizontally</source>
         <translation>Objekte waagrecht anordnen</translation>
     </message>
     <message>
-        <location line="+41"/>
         <source>Break layout</source>
         <translation>Layout auflösen</translation>
     </message>
     <message>
-        <location line="+240"/>
-        <location line="+235"/>
-        <location line="+78"/>
         <source>Move Page</source>
         <translation>Seite verschieben</translation>
     </message>
     <message>
-        <location line="-279"/>
-        <location line="+123"/>
-        <location line="+188"/>
-        <location line="+666"/>
         <source>Delete Page</source>
         <translation>Seite löschen</translation>
     </message>
     <message>
-        <location line="-939"/>
-        <location line="+123"/>
         <source>Page</source>
         <translation>Seite</translation>
     </message>
     <message>
-        <location line="+860"/>
         <source>page</source>
         <translation>Seite</translation>
     </message>
     <message>
-        <location line="-978"/>
-        <location line="+123"/>
-        <location line="+186"/>
-        <location line="+667"/>
         <source>Insert Page</source>
         <translation>Seite einfügen</translation>
     </message>
     <message>
-        <location line="-647"/>
         <source>Change Tab order</source>
         <translation>Seite ändern</translation>
     </message>
     <message>
-        <location line="+28"/>
         <source>Create Menu Bar</source>
         <translation>Menü erzeugen</translation>
     </message>
     <message>
-        <location line="+44"/>
         <source>Delete Menu Bar</source>
         <translation>Menüleiste löschen</translation>
     </message>
     <message>
-        <location line="+47"/>
         <source>Create Status Bar</source>
         <translation>Statuszeile erzeugen</translation>
     </message>
     <message>
-        <location line="+42"/>
         <source>Delete Status Bar</source>
         <translation>Statuszeile löschen</translation>
     </message>
     <message>
-        <location line="+45"/>
         <source>Add Tool Bar</source>
         <translation>Werkzeugleiste hinzufügen</translation>
     </message>
     <message>
-        <location line="+59"/>
         <source>Add Dock Window</source>
         <translation>Dockfenster hinzufügen</translation>
     </message>
     <message>
-        <location line="+53"/>
         <source>Adjust Size of &apos;%1&apos;</source>
         <translation>Größe von &apos;%1&apos; anpassen</translation>
     </message>
     <message>
-        <location line="+57"/>
         <source>Change Form Layout Item Geometry</source>
         <translation>Ändern des Formularlayout-Elements</translation>
     </message>
     <message>
-        <location line="+95"/>
         <source>Change Layout Item Geometry</source>
         <translation>Geometrie des Layoutelements ändern</translation>
     </message>
     <message>
-        <location line="+576"/>
         <source>Change Table Contents</source>
         <translation>Tabelleninhalt ändern</translation>
     </message>
     <message>
-        <location line="+107"/>
         <source>Change Tree Contents</source>
         <translation>Bauminhalt ändern</translation>
     </message>
     <message>
-        <location line="+74"/>
-        <location line="+146"/>
         <source>Add action</source>
         <translation>Aktion hinzufügen</translation>
     </message>
     <message>
-        <location line="-120"/>
-        <location line="+126"/>
         <source>Remove action</source>
         <translation> Aktion löschen</translation>
     </message>
     <message>
-        <location line="+53"/>
         <source>Add menu</source>
         <translation>Menü hinzufügen</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Remove menu</source>
         <translation>Menü löschen</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Create submenu</source>
         <translation>Untermenü erzeugen</translation>
     </message>
     <message>
-        <location line="+31"/>
         <source>Delete Tool Bar</source>
         <translation>Werkzeugleiste löschen</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_menu.cpp" line="+1194"/>
         <source>Set action text</source>
         <translation>Text der Aktion setzen</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Insert action</source>
         <translation>Aktion einfügen</translation>
     </message>
     <message>
-        <location line="+89"/>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_menubar.cpp" line="+915"/>
         <source>Move action</source>
         <translation>Aktion verschieben</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_menubar.cpp" line="-432"/>
         <source>Change Title</source>
         <translation>Titel ändern</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Insert Menu</source>
         <translation>Menü einfügen</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/signalslotdialog.cpp" line="+202"/>
         <source>Change signals/slots</source>
         <translation>Signale/Slots ändern</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_command.cpp" line="-867"/>
         <source>Delete Subwindow</source>
         <translation>Subfenster löschen</translation>
     </message>
     <message>
-        <location line="+44"/>
         <source>Insert Subwindow</source>
         <translation>Subfenster einfügen</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>subwindow</source>
         <translation>subwindow</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Subwindow</source>
         <translation>Subwindow</translation>
     </message>
     <message>
-        <location line="-1821"/>
         <source>Change Z-order of &apos;%1&apos;</source>
         <translation>Z-Reihenfolge von &apos;%1&apos; ändern</translation>
     </message>
     <message>
-        <location line="+625"/>
         <source>Simplify Grid Layout</source>
         <translation>Tabellarisches Layout vereinfachen</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/button_taskmenu.cpp" line="+221"/>
         <source>Create button group</source>
         <translation>Buttons gruppieren</translation>
     </message>
     <message>
-        <location line="+27"/>
         <source>Break button group</source>
         <translation>Button-Gruppierung aufheben</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Break button group &apos;%1&apos;</source>
         <translation>Gruppierung &apos;%1&apos; aufheben</translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>Add buttons to group</source>
         <translation>Buttons zur Gruppierung hinzufügen</translation>
     </message>
     <message>
-        <location line="+22"/>
         <source>Remove buttons from group</source>
         <translation>Buttons aus Gruppierung entfernen</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; in %3 umwandeln</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>Layout von &apos;%1&apos; von %2 in %3 umwandeln</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>&apos;%1&apos; zu &apos;%2&apos; hinzufügen</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> &apos;%1&apos; aus &apos;%2&apos; entfernen</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/scriptcommand.cpp" line="+55"/>
         <source>Change script</source>
         <translation>Skript ändern</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_propertycommand.cpp" line="+1225"/>
         <source>Changed &apos;%1&apos; of &apos;%2&apos;</source>
         <translation>&apos;%1&apos; von &apos;%2&apos; geändert</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>
@@ -635,12 +503,10 @@
         </translation>
     </message>
     <message>
-        <location line="+84"/>
         <source>Reset &apos;%1&apos; of &apos;%2&apos;</source>
         <translation>&apos;%1&apos; von &apos;%2&apos; zurücksetzen</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>
@@ -649,12 +515,10 @@
         </translation>
     </message>
     <message>
-        <location line="+89"/>
         <source>Add dynamic property &apos;%1&apos; to &apos;%2&apos;</source>
         <translation>Dynamische Eigenschaft &apos;%1&apos; zu &apos;%2&apos; hinzufügen</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>
@@ -663,12 +527,10 @@
         </translation>
     </message>
     <message>
-        <location line="+86"/>
         <source>Remove dynamic property &apos;%1&apos; from &apos;%2&apos;</source>
         <translation>Dynamische Eigenschaft &apos;%1&apos; von &apos;%2&apos; entfernen</translation>
     </message>
     <message numerus="yes">
-        <location line="+3"/>
         <source>Remove dynamic property &apos;%1&apos; from %n objects</source>
         <translation>
             <numerusform>Dynamische Eigenschaft &apos;%1&apos; des Objektes entfernen</numerusform>
@@ -679,22 +541,18 @@
 <context>
     <name>ConnectDialog</name>
     <message>
-        <location filename="../tools/designer/src/components/signalsloteditor/connectdialog.ui"/>
         <source>Configure Connection</source>
         <translation>Verbindung bearbeiten</translation>
     </message>
     <message>
-        <location/>
         <source>GroupBox</source>
         <translation>GroupBox</translation>
     </message>
     <message>
-        <location/>
         <source>Edit...</source>
         <translation>Ändern...</translation>
     </message>
     <message>
-        <location/>
         <source>Show signals and slots inherited from QWidget</source>
         <translation>Signale und Slots von QWidget anzeigen</translation>
     </message>
@@ -702,17 +560,14 @@
 <context>
     <name>ConnectionDelegate</name>
     <message>
-        <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditorwindow.cpp" line="+644"/>
         <source>&lt;object&gt;</source>
         <translation>&lt;Objekt&gt;</translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>&lt;signal&gt;</source>
         <translation>&lt;Signal&gt;</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>&lt;slot&gt;</source>
         <translation>&lt;Slot&gt;</translation>
     </message>
@@ -720,19 +575,16 @@
 <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>Standardauflösung (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>Hohe Auflösung (192 x 192)</translation>
@@ -741,89 +593,72 @@
 <context>
     <name>Designer</name>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/qdesigner_resource.cpp" line="+446"/>
         <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 konnte nicht gestartet werden.</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>%1 timed out.</source>
         <translation>Zeitüberschreitung bei der Ausführung von %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>Das Formular enthält freistehende Layoutelemente, die  &lt;b&gt;nicht&lt;/b&gt; gespeichert wurden.</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Perhaps you forgot to create a layout?</source>
         <translation>Haben Sie ein Layout eingefügt?</translation>
     </message>
     <message>
-        <location line="+205"/>
         <source>This file cannot be read because it was created using %1.</source>
         <translation>Die Datei kann nicht gelesen werden, da sie mit %1 erzeugt wurde.</translation>
     </message>
     <message>
-        <location line="+14"/>
         <source>This file was created using Designer from Qt-%1 and cannot be read.</source>
         <translation>Die Datei kann nicht gelesen werden, da sie mit dem Designer der Version %1 erzeugt wurde.</translation>
     </message>
     <message>
-        <location line="+82"/>
         <source>This file cannot be read because the extra info extension failed to load.</source>
         <translation>Die Datei kann nicht gelesen werden (Fehler beim Laden der Daten der ExtraInfoExtension).</translation>
     </message>
     <message>
-        <location line="-52"/>
         <source>The converted file could not be read.</source>
         <translation>Die konvertierte Datei konnte nicht gelesen werden.</translation>
     </message>
     <message>
-        <location line="-76"/>
         <source>Invalid UI file: The root element &lt;ui&gt; is missing.</source>
         <translation>Fehler beim Lesen der ui-Datei: Das Wurzelelement &lt;ui&gt; fehlt.</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>An error has occurred while reading the UI file at line %1, column %2: %3</source>
         <translation>Fehler beim Lesen der ui-Datei bei Zeile %1, Spalte %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>Die Datei wurde mit dem Designer der Version %1 erzeugt und wird zu einem neuen Formular konvertiert.</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>Sie bleibt unverändert.Das neue Formular  muss unter einem neuen Namen abgespeichert werden. </translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>This file was created using Designer from Qt-%1 and could not be read:
 %2</source>
         <translation>Das Lesen der von Designer %1 erzeugten Datei schlug fehl:
 %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>Bitte wandeln Sie sie mit dem Befehl &lt;b&gt;uic3&amp;nbsp;-convert&lt;/b&gt; zum Format von Qt 4.</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qsimpleresource.cpp" line="+339"/>
         <source>Custom Widgets</source>
         <translation>Benutzerdefinierte Widgets</translation>
     </message>
     <message>
-        <location line="+12"/>
         <source>Promoted Widgets</source>
         <translation>Platzhalter für benutzerdefinierte Klassen</translation>
     </message>
@@ -831,12 +666,10 @@
 <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 ist kein gültiger Wert der Aufzählung &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; konnte nicht  in einen Wert der Aufzählung &apos;%2&apos; konvertiert werden.</translation>
     </message>
@@ -844,7 +677,6 @@
 <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; konnte nicht  in einen Wert des Maskentyps &apos;%2&apos; konvertiert werden.</translation>
     </message>
@@ -852,13 +684,11 @@
 <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; ist keine gültige Zahl.</translation>
     </message>
     <message>
-        <location line="+23"/>
         <source>An invalid tag &lt;%1&gt; was encountered.</source>
         <translation>Ein ungültiges Element &apos;%1&apos; wurde festgestellt.</translation>
     </message>
@@ -866,27 +696,22 @@
 <context>
     <name>DeviceProfileDialog</name>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/deviceprofiledialog.ui"/>
         <source>&amp;Family</source>
         <translation>Schrift&amp;familie</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Point Size</source>
         <translation>Punktgröße</translation>
     </message>
     <message>
-        <location/>
         <source>Style</source>
         <translation>Stil</translation>
     </message>
     <message>
-        <location/>
         <source>Device DPI</source>
         <translation>Bildschirmauflösung</translation>
     </message>
     <message>
-        <location/>
         <source>Name</source>
         <translation>Name</translation>
     </message>
@@ -894,57 +719,46 @@
 <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>Die Pixmap-Datei &apos;%1&apos; konnte nicht geladen werden.</translation>
     </message>
     <message>
-        <location line="+64"/>
         <source>The skin directory &apos;%1&apos; does not contain a configuration file.</source>
         <translation>Das Skin-Verzeichnis &apos;%1&apos; enthält keine Konfigurationsdatei.</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>The skin configuration file &apos;%1&apos; could not be opened.</source>
         <translation>Die Skin-Konfigurationsdatei &apos;%1&apos; konnte nicht geöffnet werden.</translation>
     </message>
     <message>
-        <location line="+76"/>
         <source>Syntax error: %1</source>
         <translation>Syntaxfehler: %1</translation>
     </message>
     <message>
-        <location line="+54"/>
         <source>The skin cursor image file &apos;%1&apos; does not exist.</source>
         <translation>Die Skin-Bilddatei  &apos;%1&apos; für den Cursor existiert nicht.</translation>
     </message>
     <message>
-        <location line="+25"/>
         <source>Syntax error in area definition: %1</source>
         <translation>Die Bereichsdefinition enthält einen Syntaxfehler: %1</translation>
     </message>
     <message>
-        <location line="+38"/>
         <source>Mismatch in number of areas, expected %1, got %2.</source>
         <translation>Die angegebene Anzahl der Bereiche (%1) stimmt nicht; es wurden %2 Bereiche gefunden.</translation>
     </message>
     <message>
-        <location line="-187"/>
         <source>The skin configuration file &apos;%1&apos; could not be read: %2</source>
         <translation>Die Skin-Konfigurationsdatei &apos;%1&apos; konnte nicht gelesen werden: %2</translation>
     </message>
     <message>
-        <location line="+91"/>
         <source>The skin &quot;up&quot; image file &apos;%1&apos; does not exist.</source>
         <translation>Die Skin-Konfigurationsdatei &apos;%1&apos; (oben) existiert nicht.</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>The skin &quot;down&quot; image file &apos;%1&apos; does not exist.</source>
         <translation>Die Skin-Konfigurationsdatei &apos;%1&apos; (unten) existiert nicht.</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>The skin &quot;closed&quot; image file &apos;%1&apos; does not exist.</source>
         <translation>Die Skin-Konfigurationsdatei &apos;%1&apos; (geschlossen) existiert nicht.</translation>
     </message>
@@ -952,7 +766,6 @@
 <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;Auflösung&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>
@@ -961,13 +774,11 @@
 <context>
     <name>EmbeddedOptionsPage</name>
     <message>
-        <location line="+103"/>
         <source>Embedded Design</source>
         <extracomment>Tab in preferences dialog</extracomment>
         <translation>Embedded-Entwurf</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>Device Profiles</source>
         <extracomment>EmbeddedOptionsControl group box&quot;</extracomment>
         <translation>Profile</translation>
@@ -976,27 +787,22 @@
 <context>
     <name>FontPanel</name>
     <message>
-        <location filename="../tools/shared/fontpanel/fontpanel.cpp" line="+63"/>
         <source>Font</source>
         <translation>Schriftart</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>&amp;Writing system</source>
         <translation>Schrifts&amp;ystem</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>&amp;Family</source>
         <translation>Schrift&amp;familie</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>&amp;Style</source>
         <translation>&amp;Stil</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>&amp;Point size</source>
         <translation>&amp;Punktgröße</translation>
     </message>
@@ -1004,22 +810,18 @@
 <context>
     <name>FontPropertyManager</name>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/fontpropertymanager.cpp" line="+62"/>
         <source>PreferDefault</source>
         <translation>Voreinstellung bevorzugt</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>NoAntialias</source>
         <translation>Keine Kantenglättung</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>PreferAntialias</source>
         <translation>Kantenglättung bevorzugen</translation>
     </message>
     <message>
-        <location line="+61"/>
         <source>Antialiasing</source>
         <translation>Kantenglättung</translation>
     </message>
@@ -1027,43 +829,44 @@
 <context>
     <name>FormBuilder</name>
     <message>
-        <location filename="../tools/designer/src/lib/uilib/formbuilderextra.cpp" line="+375"/>
         <source>Invalid stretch value for &apos;%1&apos;: &apos;%2&apos;</source>
-        <extracomment>Parsing layout stretch values</extracomment>
+        <extracomment>Parsing layout stretch values
+----------
+Parsing layout stretch values
+----------
+Parsing layout stretch values</extracomment>
         <translation>Ungültiger Stretch-Wert für &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>
+        <extracomment>Parsing grid layout minimum size values
+----------
+Parsing grid layout minimum size values
+----------
+Parsing grid layout minimum size values</extracomment>
         <translation></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>Vergrößerungsfaktor für Vorschau</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Default Zoom</source>
         <translation>Vorgabe für Vergrößerungsfaktor</translation>
     </message>
     <message>
-        <location line="+29"/>
         <source>Forms</source>
         <extracomment>Tab in preferences dialog</extracomment>
         <translation>Formulare</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>Default Grid</source>
         <translation>Raster für neue Formulare</translation>
     </message>
@@ -1071,37 +874,30 @@
 <context>
     <name>FormLayoutRowDialog</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/formlayoutrowdialog.ui"/>
         <source>Add Form Layout Row</source>
         <translation>Formularlayoutzeile hinzufügen</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Label text:</source>
         <translation>Be&amp;schriftung:</translation>
     </message>
     <message>
-        <location/>
         <source>Field &amp;type:</source>
         <translation>&amp;Datentyp:</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Field name:</source>
         <translation>&amp;Feldname:</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Buddy:</source>
         <translation>&amp;Buddy:</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Row:</source>
         <translation>&amp;Zeile:</translation>
     </message>
     <message>
-        <location/>
         <source>Label &amp;name:</source>
         <translation>&amp;Label-Name:</translation>
     </message>
@@ -1109,12 +905,10 @@
 <context>
     <name>FormWindow</name>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/formwindow.cpp" line="+1754"/>
         <source>Unexpected element &lt;%1&gt;</source>
         <translation>Ungültiges Element &lt;%1&gt;</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Error while pasting clipboard contents at line %1, column %2: %3</source>
         <translation>Fehler beim Einfügen der Zwischenablage, Zeile %1, Spalte %2: %3</translation>
     </message>
@@ -1122,62 +916,50 @@
 <context>
     <name>FormWindowSettings</name>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/formwindowsettings.ui"/>
         <source>Form Settings</source>
         <translation>Formulareinstellungen</translation>
     </message>
     <message>
-        <location/>
         <source>Layout &amp;Default</source>
         <translation>&amp;Layout-Standardwerte</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Spacing:</source>
         <translation>A&amp;bstand:</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Margin:</source>
         <translation>&amp;Rand:</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Layout Function</source>
         <translation>Layout&amp;funktion</translation>
     </message>
     <message>
-        <location/>
         <source>Ma&amp;rgin:</source>
         <translation>Ra&amp;nd:</translation>
     </message>
     <message>
-        <location/>
         <source>Spa&amp;cing:</source>
         <translation>Abstan&amp;d:</translation>
     </message>
     <message>
-        <location/>
         <source>Embedded Design</source>
         <translation>Embedded-Entwurf</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Author</source>
         <translation>&amp;Autor</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Include Hints</source>
         <translation>&amp;Include-Dateien</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Pixmap Function</source>
         <translation>&amp;Pixmapfunktion</translation>
     </message>
     <message>
-        <location/>
         <source>Grid</source>
         <translation>Raster</translation>
     </message>
@@ -1185,7 +967,6 @@
 <context>
     <name>IconSelector</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/iconselector.cpp" line="+352"/>
         <source>All Pixmaps (</source>
         <translation>Alle Pixmap-Dateien (</translation>
     </message>
@@ -1193,7 +974,6 @@
 <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>Ausgewähltes Icon, aus</translation>
@@ -1202,33 +982,27 @@
 <context>
     <name>MainWindowBase</name>
     <message>
-        <location filename="../tools/designer/src/designer/mainwindow.cpp" line="+121"/>
         <source>Main</source>
         <extracomment>Not currently used (main tool bar)</extracomment>
         <translation>Haupt-Werkzeugleiste</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>File</source>
         <translation>Datei</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Edit</source>
         <translation>Bearbeiten</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Tools</source>
         <translation>Werkzeuge</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Form</source>
         <translation>Formular</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Qt Designer</source>
         <translation>Qt Designer</translation>
     </message>
@@ -1236,52 +1010,42 @@
 <context>
     <name>NewForm</name>
     <message>
-        <location filename="../tools/designer/src/designer/newform.cpp" line="+79"/>
         <source>C&amp;reate</source>
         <translation>&amp;Neu von Vorlage</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Recent</source>
         <translation>Zuletzt bearbeitet</translation>
     </message>
     <message>
-        <location line="+32"/>
         <source>&amp;Close</source>
         <translation>&amp;Schließen</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>&amp;Open...</source>
         <translation>&amp;Öffnen...</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>&amp;Recent Forms</source>
         <translation>&amp;Zuletzt bearbeitete Formulare</translation>
     </message>
     <message>
-        <location line="+64"/>
         <source>Read error</source>
         <translation>Lesefehler</translation>
     </message>
     <message>
-        <location line="-100"/>
         <source>New Form</source>
         <translation>Neues Formular</translation>
     </message>
     <message>
-        <location line="-5"/>
         <source>Show this Dialog on Startup</source>
         <translation>Diesen Dialog zu Beginn anzeigen</translation>
     </message>
     <message>
-        <location line="+128"/>
         <source>A temporary form file could not be created in %1.</source>
         <translation>In dem Verzeichnis %1 konnte keine temporäre Formulardatei angelegt werden.</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>The temporary form file %1 could not be written.</source>
         <translation>Die temporäre Formulardatei %1 konnte nicht geschrieben werden.</translation>
     </message>
@@ -1289,22 +1053,18 @@
 <context>
     <name>ObjectInspectorModel</name>
     <message>
-        <location filename="../tools/designer/src/components/objectinspector/objectinspectormodel.cpp" line="+360"/>
         <source>Object</source>
         <translation>Objekt</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Class</source>
         <translation>Klasse</translation>
     </message>
     <message>
-        <location line="+35"/>
         <source>separator</source>
         <translation>Trenner</translation>
     </message>
     <message>
-        <location line="+98"/>
         <source>&lt;noname&gt;</source>
         <translation>&lt;unbenannt&gt;</translation>
     </message>
@@ -1312,12 +1072,10 @@
 <context>
     <name>ObjectNameDialog</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_taskmenu.cpp" line="+158"/>
         <source>Change Object Name</source>
         <translation>Objektnamen bearbeiten</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Object Name</source>
         <translation>Objektname</translation>
     </message>
@@ -1325,12 +1083,10 @@
 <context>
     <name>PluginDialog</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/plugindialog.ui"/>
         <source>Plugin Information</source>
         <translation>Plugins</translation>
     </message>
     <message>
-        <location/>
         <source>1</source>
         <translation>1</translation>
     </message>
@@ -1338,7 +1094,6 @@
 <context>
     <name>PreferencesDialog</name>
     <message>
-        <location filename="../tools/designer/src/designer/preferencesdialog.ui"/>
         <source>Preferences</source>
         <translation>Einstellungen</translation>
     </message>
@@ -1346,32 +1101,26 @@
 <context>
     <name>PreviewConfigurationWidget</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/previewconfigurationwidget.ui"/>
         <source>Form</source>
         <translation>Formular</translation>
     </message>
     <message>
-        <location/>
         <source>Print/Preview Configuration</source>
         <translation>Druck/Vorschau</translation>
     </message>
     <message>
-        <location/>
         <source>Style</source>
         <translation>Stil</translation>
     </message>
     <message>
-        <location/>
         <source>Style sheet</source>
         <translation>Style sheet</translation>
     </message>
     <message>
-        <location/>
         <source>...</source>
         <translation>...</translation>
     </message>
     <message>
-        <location/>
         <source>Device skin</source>
         <translation>Geräte-Skin</translation>
     </message>
@@ -1379,7 +1128,6 @@
 <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>Nicht verwendet</translation>
@@ -1388,8 +1136,6 @@
 <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>Seite</translation>
     </message>
@@ -1397,58 +1143,47 @@
 <context>
     <name>QAbstractFormBuilder</name>
     <message>
-        <location filename="../tools/designer/src/lib/uilib/abstractformbuilder.cpp" line="+206"/>
         <source>Unexpected element &lt;%1&gt;</source>
         <translation>Ungültiges Element &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>Fehler beim Lesen der ui-Datei bei Zeile %1, Spalte %2: %3</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Invalid UI file: The root element &lt;ui&gt; is missing.</source>
         <translation>Fehler beim Lesen der ui-Datei: Das Wurzelelement &lt;ui&gt; fehlt.</translation>
     </message>
     <message>
-        <location line="+104"/>
         <source>The creation of a widget of the class &apos;%1&apos; failed.</source>
         <translation>Es konnte kein Widget der Klasse &apos;%1&apos; erzeugt werden.</translation>
     </message>
     <message>
-        <location line="+296"/>
         <source>Attempt to add child that is not of class QWizardPage to QWizard.</source>
         <translation>Es wurde versucht, einem Objekt der Klasse  QWizard eine Seite hinzuzufügen, die nicht vom Typ QWizardPage ist.</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>Es wurde versucht, ein Layout auf das Widget &apos;%1&apos; (%2) zu setzen, welches bereits ein Layout vom Typ %3 hat. Das deutet auf eine Inkonsistenz in der ui-Datei hin.</translation>
     </message>
     <message>
-        <location line="+144"/>
         <source>Empty widget item in %1 &apos;%2&apos;.</source>
         <translation>Leeres Widget-Item in %1 &apos;%2&apos;.</translation>
     </message>
     <message>
-        <location line="+680"/>
         <source>Flags property are not supported yet.</source>
         <translation>Eigenschaften des Typs &quot;Flag&quot; werden nicht unterstützt.</translation>
     </message>
     <message>
-        <location line="+81"/>
         <source>While applying tab stops: The widget &apos;%1&apos; could not be found.</source>
         <translation>Fehler beim Setzen der Tabulatorreihenfolge: Es konnte kein Widget mit dem Namen &apos;%1&apos; gefunden werden.</translation>
     </message>
     <message>
-        <location line="+908"/>
         <source>Invalid QButtonGroup reference &apos;%1&apos; referenced by &apos;%2&apos;.</source>
         <translation>Ungültige Referenz der Buttongruppe &apos;%1&apos;, referenziert von &apos;%2&apos;.</translation>
     </message>
     <message>
-        <location line="+511"/>
         <source>This version of the uitools library is linked without script support.</source>
         <translation>Dies Version der uitools-Bibliothek unterstützt keine Skripte.</translation>
     </message>
@@ -1456,12 +1191,10 @@
 <context>
     <name>QAxWidgetPlugin</name>
     <message>
-        <location filename="../tools/designer/src/plugins/activeqt/qaxwidgetplugin.cpp" line="+75"/>
         <source>ActiveX control</source>
         <translation>ActiveX-Steuerelement</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>ActiveX control widget</source>
         <translation>ActiveX-Widget</translation>
     </message>
@@ -1469,22 +1202,18 @@
 <context>
     <name>QAxWidgetTaskMenu</name>
     <message>
-        <location filename="../tools/designer/src/plugins/activeqt/qaxwidgettaskmenu.cpp" line="+119"/>
         <source>Set Control</source>
         <translation>Steuerelement setzen</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Reset Control</source>
         <translation>Steuerelement zurücksetzen</translation>
     </message>
     <message>
-        <location line="+41"/>
         <source>Licensed Control</source>
         <translation>Lizensiertes Steuerelement</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>The control requires a design-time license</source>
         <translation>Das Steuerelement erfordert eine Lizenz zur Entwurfszeit</translation>
     </message>
@@ -1492,67 +1221,54 @@
 <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 ist kein Platzhalter für eine benutzerdefinierte Klasse.</translation>
     </message>
     <message>
-        <location line="+65"/>
         <source>The base class %1 is invalid.</source>
         <translation>%1 ist keine gültige Basisklasse.</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>The class %1 already exists.</source>
         <translation>Es existiert bereits eine Klasse namens %1.</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Promoted Widgets</source>
         <translation>Platzhalter für benutzerdefinierte Klassen</translation>
     </message>
     <message>
-        <location line="+126"/>
         <source>The class %1 cannot be removed</source>
         <translation>Die Klasse %1 kann nicht gelöscht werden</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>The class %1 cannot be removed because it is still referenced.</source>
         <translation>Die Klasse %1 kann nicht gelöscht werden, da sie gegenwärtig verwendet wird.</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>The class %1 cannot be renamed</source>
         <translation>Die Klasse %1 kann nicht umbenannt werden</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>The class %1 cannot be renamed to an empty name.</source>
         <translation>Der Klassennamen darf nicht leer sein (%1).</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>There is already a class named %1.</source>
         <translation>Es existiert bereits eine Klasse namens %1.</translation>
     </message>
     <message>
-        <location line="+29"/>
         <source>Cannot set an empty include file.</source>
         <translation>Der Name der Include-Datei darf nicht leer sein.</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/uilib/formscriptrunner.cpp" line="+88"/>
         <source>Exception at line %1: %2</source>
         <translation>Ausnahmefehler bei Zeile %1: %2</translation>
     </message>
     <message>
-        <location line="+36"/>
         <source>Unknown error</source>
         <translation>Unbekannter Fehler</translation>
     </message>
     <message>
-        <location line="+50"/>
         <source>An error occurred while running the script for %1: %2
 Script: %3</source>
         <translation>Bei der Ausführung des Skripts für %1 trat ein Fehler auf: %2Skript: %3</translation>
@@ -1561,17 +1277,14 @@
 <context>
     <name>QDesigner</name>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner.cpp" line="+141"/>
         <source>%1 - warning</source>
         <translation>%1 - Warnung</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>Diese Anwendung kann in der Qt-Konsolen-Edition nicht benutzt werden</translation>
     </message>
@@ -1579,207 +1292,162 @@
 <context>
     <name>QDesignerActions</name>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_actions.cpp" line="+180"/>
         <source>Edit Widgets</source>
         <translation>Widgets bearbeiten</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>&amp;Quit</source>
         <translation>&amp;Beenden</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>&amp;Minimize</source>
         <translation>&amp;Minimieren</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Bring All to Front</source>
         <translation>Alle Formulare anzeigen</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Preferences...</source>
         <translation>Einstellungen...</translation>
     </message>
     <message>
-        <location line="+321"/>
         <source>Clear &amp;Menu</source>
         <translation>Menü &amp;löschen</translation>
     </message>
     <message>
-        <location line="-246"/>
         <source>CTRL+SHIFT+S</source>
         <translation>CTRL+SHIFT+S</translation>
     </message>
     <message>
-        <location line="+126"/>
         <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;Hilfe zum Qt Designer</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Current Widget Help</source>
         <translation>Hilfe zum ausgewählten Widget</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>What&apos;s New in Qt Designer?</source>
         <translation>Was gibt es Neues beim Qt Designer?</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>About Plugins</source>
         <translation>Plugins</translation>
     </message>
     <message>
-        <location line="+6"/>
-        <location line="+601"/>
         <source>About Qt Designer</source>
         <translation>Über Qt Designer</translation>
     </message>
     <message>
-        <location line="-595"/>
         <source>About Qt</source>
         <translation>Über Qt</translation>
     </message>
     <message>
-        <location line="+121"/>
-        <location line="+197"/>
         <source>Open Form</source>
         <translation>Formular öffnen</translation>
     </message>
     <message>
-        <location line="-196"/>
-        <location line="+37"/>
-        <location line="+160"/>
         <source>Designer UI files (*.%1);;All Files (*)</source>
         <translation>Designer-UI-Dateien (*.%1);;Alle Dateien (*)</translation>
     </message>
     <message>
-        <location line="-643"/>
         <source>%1 already exists.
 Do you want to replace it?</source>
         <translation>Die Datei %1 existiert bereits.
 Möchten Sie sie überschreiben?</translation>
     </message>
     <message>
-        <location line="-26"/>
         <source>Saved %1.</source>
         <translation>Das Formular %1 wurde gespeichert...</translation>
     </message>
     <message>
-        <location line="+394"/>
         <source>&amp;Recent Forms</source>
         <translation>&amp;Zuletzt bearbeitete Formulare</translation>
     </message>
     <message>
-        <location line="+202"/>
         <source>Designer</source>
         <translation>Designer</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Feature not implemented yet!</source>
         <translation>Diese Funktionalität ist noch nicht implementiert.</translation>
     </message>
     <message>
-        <location line="+59"/>
         <source>Read error</source>
         <translation>Lesefehler</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>%1
 Do you want to update the file location or generate a new form?</source>
         <translation>%1
 Möchten Sie einen anderen Namen eingeben oder ein neues Formular erzeugen?</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>&amp;Update</source>
         <translation>&amp;Anderer Name</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;New Form</source>
         <translation>&amp;Neues Formular</translation>
     </message>
     <message>
-        <location line="+77"/>
-        <location line="+40"/>
         <source>Save Form?</source>
         <translation>Formular speichern?</translation>
     </message>
     <message>
-        <location line="-39"/>
         <source>Could not open file</source>
         <translation>Die Datei konnte nicht geöffnet werden</translation>
     </message>
     <message>
-        <location line="+282"/>
-        <location line="+23"/>
         <source>The backup file %1 could not be written.</source>
         <translation>Hintergrundsicherung: Die Datei %1 konnte nicht geschrieben werden.</translation>
     </message>
     <message>
-        <location line="+107"/>
         <source>The backup directory %1 could not be created.</source>
         <translation>Hintergrundsicherung: Das Verzeichnis %1 konnte nicht angelegt werden.</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>The temporary backup directory %1 could not be created.</source>
         <translation>Hintergrundsicherung: Das temporäre Verzeichnis %1 konnte nicht angelegt werden.</translation>
     </message>
     <message>
-        <location line="+94"/>
         <source>Please close all forms to enable the loading of additional fonts.</source>
         <translation>Bitte schließen Sie alle Formulare, um zusätzliche Schriftarten zu laden.</translation>
     </message>
     <message>
-        <location line="-502"/>
         <source>Select New File</source>
         <translation>Andere Datei</translation>
     </message>
     <message>
-        <location line="+30"/>
         <source>Could not write file</source>
         <translation>Die Datei konnte nicht geschrieben werden</translation>
     </message>
     <message>
-        <location line="+201"/>
         <source>&amp;Close Preview</source>
         <translation>Vorschau &amp;schließen</translation>
     </message>
     <message>
-        <location line="-921"/>
         <source>Save &amp;Image...</source>
         <translation>&amp;Vorschaubild speichern...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Print...</source>
         <translation>&amp;Drucken...</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Additional Fonts...</source>
         <translation>&amp;Zusätzliche Schriftarten...</translation>
     </message>
     <message>
-        <location line="+674"/>
         <source>The file %1 could not be opened.
 Reason: %2
 Would you like to retry or select a different file?</source>
@@ -1788,7 +1456,6 @@
 Möchten Sie es noch einmal versuchen oder eine andere Datei auswählen?</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>
@@ -1797,96 +1464,74 @@
 Möchten Sie es noch einmal versuchen?</translation>
     </message>
     <message>
-        <location line="+429"/>
         <source>Image files (*.%1)</source>
         <translation>Bilddateien (*.%1)</translation>
     </message>
     <message>
-        <location line="+9"/>
-        <location line="+17"/>
         <source>Save Image</source>
         <translation>Bild speichern</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>The file %1 could not be written.</source>
         <translation>Die Datei %1 konnte nicht geschrieben werden.</translation>
     </message>
     <message>
-        <location line="-1186"/>
         <source>&amp;New...</source>
         <translation>&amp;Neu...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Open...</source>
         <translation>&amp;Öffnen...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Save</source>
         <translation>&amp;Speichern</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Save &amp;As...</source>
         <translation>Speichern &amp;unter...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Save A&amp;ll</source>
         <translation>&amp;Alles speichern</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Save As &amp;Template...</source>
         <translation>Als Vor&amp;lage abspeichern...</translation>
     </message>
     <message>
-        <location line="+1"/>
-        <location line="+924"/>
         <source>&amp;Close</source>
         <translation>&amp;Schließen</translation>
     </message>
     <message>
-        <location line="-919"/>
         <source>View &amp;Code...</source>
         <translation>&amp;Code anzeigen...</translation>
     </message>
     <message>
-        <location line="+447"/>
-        <location line="+248"/>
         <source>Save Form As</source>
         <translation>Formular unter einem anderen Namen speichern</translation>
     </message>
     <message>
-        <location line="+429"/>
         <source>Preview failed</source>
         <translation>Es konnte keine Vorschau erzeugt werden</translation>
     </message>
     <message>
-        <location line="-575"/>
         <source>Code generation failed</source>
         <translation>Es konnte kein Code generiert werden</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>Das Vorschaubild wurde unter %1 gespeichert.</translation>
     </message>
     <message>
-        <location line="+70"/>
         <source>Printed %1.</source>
         <translation>%1 wurde gedruckt.</translation>
     </message>
     <message>
-        <location line="-1162"/>
         <source>ALT+CTRL+S</source>
         <translation>ALT+CTRL+S</translation>
     </message>
@@ -1894,7 +1539,6 @@
 <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>Ansicht</translation>
@@ -1903,17 +1547,14 @@
 <context>
     <name>QDesignerAppearanceOptionsWidget</name>
     <message>
-        <location line="-53"/>
         <source>Docked Window</source>
         <translation>Dockfenster-Modus</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Multiple Top-Level Windows</source>
         <translation>Multifenster-Modus</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Toolwindow Font</source>
         <translation>Font für Dockfenster</translation>
     </message>
@@ -1921,22 +1562,18 @@
 <context>
     <name>QDesignerAxWidget</name>
     <message>
-        <location filename="../tools/designer/src/plugins/activeqt/qaxwidgettaskmenu.cpp" line="-71"/>
         <source>Reset control</source>
         <translation>Steuerelement zurücksetzen</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Set control</source>
         <translation>Steuerelement setzen</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/plugins/activeqt/qdesigneraxwidget.cpp" line="+179"/>
         <source>Control loaded</source>
         <translation>Steuerelement geladen</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>Beim Methodenaufruf des Typs %1, index %2 von &quot;%3&quot; trat eine COM-Ausnahme auf.</translation>
     </message>
@@ -1944,17 +1581,14 @@
 <context>
     <name>QDesignerFormBuilder</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_formbuilder.cpp" line="+89"/>
         <source>Script errors occurred:</source>
         <translation>Es sind Skriptfehler aufgetreten:</translation>
     </message>
     <message>
-        <location line="+307"/>
         <source>The preview failed to build.</source>
         <translation>Es konnte keine Vorschau erzeugt werden.</translation>
     </message>
     <message>
-        <location line="+65"/>
         <source>Designer</source>
         <translation>Designer</translation>
     </message>
@@ -1962,22 +1596,18 @@
 <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>Formular speichern?</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Do you want to save the changes to this document before closing?</source>
         <translation>Möchten Sie die Änderungen an diesem Formular speichern?</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>If you don&apos;t save, your changes will be lost.</source>
         <translation>Die Änderungen gehen verloren, wenn Sie nicht speichern. </translation>
     </message>
@@ -1985,38 +1615,30 @@
 <context>
     <name>QDesignerMenu</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_menu.cpp" line="-1179"/>
         <source>Type Here</source>
         <translation>Geben Sie Text ein</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Add Separator</source>
         <translation>Trenner hinzufügen</translation>
     </message>
     <message>
-        <location line="+371"/>
         <source>Insert separator</source>
         <translation>Trenner einfügen</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Remove action &apos;%1&apos;</source>
         <translation>Aktion &apos;%1&apos; löschen</translation>
     </message>
     <message>
-        <location line="-2"/>
         <source>Remove separator</source>
         <translation>Trenner löschen</translation>
     </message>
     <message>
-        <location line="+27"/>
-        <location line="+648"/>
         <source>Add separator</source>
         <translation>Trenner hinzufügen</translation>
     </message>
     <message>
-        <location line="-348"/>
         <source>Insert action</source>
         <translation>Aktion einfügen</translation>
     </message>
@@ -2024,22 +1646,18 @@
 <context>
     <name>QDesignerMenuBar</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_menubar.cpp" line="-375"/>
         <source>Type Here</source>
         <translation>Geben Sie Text ein</translation>
     </message>
     <message>
-        <location line="+298"/>
         <source>Remove Menu &apos;%1&apos;</source>
         <translation>Menü &apos;%1&apos; öschen</translation>
     </message>
     <message>
-        <location line="+12"/>
         <source>Remove Menu Bar</source>
         <translation>Menüleiste löschen</translation>
     </message>
     <message>
-        <location line="+70"/>
         <source>Menu</source>
         <translation>Menü</translation>
     </message>
@@ -2047,37 +1665,30 @@
 <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>Fehler beim Auswerten des XML des benutzerdefinierten Widgets %1: %2</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>A required attribute (&apos;%1&apos;) is missing.</source>
         <translation>Bei dem Element fehlt ein erforderliches Attribut (&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; ist keine gültige Spezifikation einer Eigenschaft. Die folgenden Typen werden unterstützt: %2</translation>
     </message>
     <message>
-        <location line="+20"/>
         <source>&apos;%1&apos; is not a valid string property specification.</source>
         <translation>&apos;%1&apos; ist keine gültige Spezifikation einer Zeichenketten-Eigenschaft.</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>Der XML-Code für das Widget %1 enthält kein gültiges Wurzelelement (&lt;widget&gt;, &lt;ui&gt;).</translation>
     </message>
     <message>
-        <location line="+12"/>
         <source>The class attribute for the class %1 is missing.</source>
         <translation>Das Klassenattribut der Klasse %1 fehlt.</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>The class attribute for the class %1 does not match the class name %2.</source>
         <translation>Das Klassenattribut der Klasse %1 entspricht nicht dem Klassennamen (%2).</translation>
     </message>
@@ -2085,7 +1696,6 @@
 <context>
     <name>QDesignerPropertySheet</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_propertysheet.cpp" line="+758"/>
         <source>Dynamic Properties</source>
         <translation>Dynamische Eigenschaften</translation>
     </message>
@@ -2093,31 +1703,26 @@
 <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>Der Layout-Typ &apos;%1&apos; wird nicht unterstützt; es wurde ein Grid-Layout erzeugt.</translation>
     </message>
     <message>
-        <location line="+239"/>
         <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>Die Container-Extension des Widgets &apos;%1&apos; (%2) gab für Seite %5 ein Widget &apos;%3&apos; (%4) zurück, was nicht von Designer verwaltet wird.
 Container-Seiten sollten ausschließlich im XML der domXML()-Methode spezifiziert werden.</translation>
     </message>
     <message>
-        <location line="+545"/>
         <source>Unexpected element &lt;%1&gt;</source>
         <extracomment>Parsing clipboard contents</extracomment>
         <translation>Ungültiges Element &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>Fehler beim Einfügen der Zwischenablage, Zeile %1, Spalte %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>Fehler beim Einfügen der Zwischenablage: Das Wurzelelement &lt;ui&gt; fehlt.</translation>
@@ -2126,12 +1731,10 @@
 <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>Das Vorlagenverzeichnis %1 konnte nicht angelegt werden.</translation>
     </message>
     <message>
-        <location line="+184"/>
         <source>An error has been encountered while parsing device profile XML: %1</source>
         <translation>Beim Lesen des Profils trat ein Fehler auf: %1</translation>
     </message>
@@ -2139,32 +1742,26 @@
 <context>
     <name>QDesignerToolWindow</name>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_toolwindow.cpp" line="+190"/>
         <source>Property Editor</source>
         <translation>Eigenschaften</translation>
     </message>
     <message>
-        <location line="+54"/>
         <source>Action Editor</source>
         <translation>Aktionseditor</translation>
     </message>
     <message>
-        <location line="+42"/>
         <source>Object Inspector</source>
         <translation>Objektanzeige</translation>
     </message>
     <message>
-        <location line="+35"/>
         <source>Resource Browser</source>
         <translation>Ressourcen</translation>
     </message>
     <message>
-        <location line="+34"/>
         <source>Signal/Slot Editor</source>
         <translation>Signale und Slots</translation>
     </message>
     <message>
-        <location line="+41"/>
         <source>Widget Box</source>
         <translation>Widget-Box</translation>
     </message>
@@ -2172,97 +1769,78 @@
 <context>
     <name>QDesignerWorkbench</name>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_workbench.cpp" line="+199"/>
         <source>&amp;File</source>
         <translation>&amp;Datei</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>F&amp;orm</source>
         <translation>F&amp;ormular</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Preview in</source>
         <translation>Vorschau im</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>&amp;Window</source>
         <translation>&amp;Fenster</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>&amp;Help</source>
         <translation>&amp;Hilfe</translation>
     </message>
     <message>
-        <location line="-15"/>
         <source>Edit</source>
         <translation>Bearbeiten</translation>
     </message>
     <message>
-        <location line="+38"/>
         <source>Toolbars</source>
         <translation>Werkzeugleisten</translation>
     </message>
     <message>
-        <location line="+466"/>
         <source>Save Forms?</source>
         <translation>Formulare speichern?</translation>
     </message>
     <message>
-        <location line="-495"/>
         <source>&amp;View</source>
         <translation>&amp;Ansicht</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>&amp;Settings</source>
         <translation>&amp;Einstellungen</translation>
     </message>
     <message>
-        <location line="+204"/>
         <source>Widget Box</source>
         <translation>Widgetbox</translation>
     </message>
     <message>
-        <location line="+293"/>
         <source>If you do not review your documents, all your changes will be lost.</source>
         <translation>Die Änderungen gehen verloren, wenn Sie sich die Formulare nicht noch einmal ansehen.</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Discard Changes</source>
         <translation>Änderungen verwerfen</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Review Changes</source>
         <translation>Änderungen ansehen</translation>
     </message>
     <message>
-        <location line="+95"/>
         <source>Backup Information</source>
         <translation>Information zur Hintergrundsicherung</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 wurde offenbar nicht ordnungsgemäß beendet; es existieren noch Dateien von der Hintergrundsicherung. Möchten Sie sie laden?</translation>
     </message>
     <message>
-        <location line="+111"/>
         <source>The file &lt;b&gt;%1&lt;/b&gt; could not be opened.</source>
         <translation>Die Datei &lt;b&gt;%1&lt;/b&gt; konnte nicht geöffnet werden.</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>Die Datei &lt;b&gt;%1&lt;/b&gt; ist keine gültige Designer-Datei.</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>Das Formular wurde geändert. Möchten Sie sich die Änderungen ansehen, bevor Sie das Programm beenden?</numerusform>
@@ -2273,53 +1851,47 @@
 <context>
     <name>QFormBuilder</name>
     <message>
-        <location filename="../tools/designer/src/lib/uilib/formbuilder.cpp" line="+168"/>
         <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>
+        <extracomment>Empty class name passed to widget factory method
+----------
+Empty class name passed to widget factory method
+----------
+Empty class name passed to widget factory method</extracomment>
         <translation>Der Methode %1 wurde ein leerer Klassennamen übergeben (Name &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 konnte kein benutzerdefiniertes Widget der Klasse &apos;%1&apos; erzeugen; es wurde ein Widget der Basisklasse &apos;%2&apos; erzeugt.</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>QFormBuilder was unable to create a widget of the class &apos;%1&apos;.</source>
         <translation>QFormBuilder konnte kein Objekt der Klasse &apos;%1&apos; erzeugen.</translation>
     </message>
     <message>
-        <location line="+61"/>
         <source>The layout type `%1&apos; is not supported.</source>
         <translation>Layouts des Typs `%1&apos; werden nicht unterstützt.</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>Die Eigenschaft %1 konnte nicht gelesen werden (Typ: Menge).</translation>
     </message>
     <message>
-        <location line="+23"/>
         <source>The enumeration-type property %1 could not be read.</source>
         <translation>Die Eigenschaft %1 konnte nicht gelesen werden (Typ: Aufzählung).</translation>
     </message>
     <message>
-        <location line="+190"/>
         <source>Reading properties of the type %1 is not supported yet.</source>
         <translation>Das Lesen von Eigenschaften des Typs %1 wird nicht unterstützt.</translation>
     </message>
     <message>
-        <location line="+266"/>
         <source>The property %1 could not be written. The type %2 is not supported yet.</source>
         <translation>Die Eigenschaft %1 konnte nicht geschrieben werden, da der Typ %2 nicht unterstützt wird.</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/uilib/properties_p.h" line="+132"/>
         <source>The enumeration-value &apos;%1&apos; is invalid. The default value &apos;%2&apos; will be used instead.</source>
         <translation>Der Aufzählungswert &apos;%1&apos; ist ungültig. Es wird der Vorgabewert &apos;%2&apos; verwendet.</translation>
     </message>
     <message>
-        <location line="+14"/>
         <source>The flag-value &apos;%1&apos; is invalid. Zero will be used instead.</source>
         <translation>Der Flag-Wert &apos;%1&apos; ist ungültig. Es wird der Wert 0 verwendet.</translation>
     </message>
@@ -2327,48 +1899,38 @@
 <context>
     <name>QStackedWidgetEventFilter</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_stackedbox.cpp" line="+194"/>
         <source>Previous Page</source>
         <translation>Vorige Seite</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Next Page</source>
         <translation>Nächste Seite</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Delete</source>
         <translation>Löschen</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Before Current Page</source>
         <translation>Davor</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>After Current Page</source>
         <translation>Danach</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Change Page Order...</source>
         <translation>Seiten umordnen....</translation>
     </message>
     <message>
-        <location line="+72"/>
         <source>Change Page Order</source>
         <translation>Seiten umordnen</translation>
     </message>
     <message>
-        <location line="+49"/>
         <source>Page %1 of %2</source>
         <translation>Seite %1 von %2</translation>
     </message>
     <message>
-        <location line="+10"/>
-        <location line="+4"/>
         <source>Insert Page</source>
         <translation>Seite einfügen</translation>
     </message>
@@ -2376,12 +1938,10 @@
 <context>
     <name>QStackedWidgetPreviewEventFilter</name>
     <message>
-        <location line="-153"/>
         <source>Go to previous page of %1 &apos;%2&apos; (%3/%4).</source>
         <translation>Gehe zur vorigen Seite von %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>Gehe zur nächste Seite von %1 &apos;%2&apos; (%3/%4).</translation>
     </message>
@@ -2389,28 +1949,22 @@
 <context>
     <name>QTabWidgetEventFilter</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_tabwidget.cpp" line="+89"/>
         <source>Delete</source>
         <translation>Löschen</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Before Current Page</source>
         <translation>Davor</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>After Current Page</source>
         <translation>Danach</translation>
     </message>
     <message>
-        <location line="+283"/>
         <source>Page %1 of %2</source>
         <translation>Seite %1 von %2</translation>
     </message>
     <message>
-        <location line="+10"/>
-        <location line="+4"/>
         <source>Insert Page</source>
         <translation>Seite einfügen</translation>
     </message>
@@ -2418,37 +1972,30 @@
 <context>
     <name>QToolBoxHelper</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_toolbox.cpp" line="+64"/>
         <source>Delete Page</source>
         <translation>Seite löschen</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Before Current Page</source>
         <translation>Davor</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>After Current Page</source>
         <translation>Danach</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Change Page Order...</source>
         <translation>Seiten umordnen....</translation>
     </message>
     <message>
-        <location line="+116"/>
         <source>Change Page Order</source>
         <translation>Seiten umordnen</translation>
     </message>
     <message>
-        <location line="+44"/>
         <source>Page %1 of %2</source>
         <translation>Seite %1 von %2</translation>
     </message>
     <message>
-        <location line="+12"/>
         <source>Insert Page</source>
         <translation>Seite einfügen</translation>
     </message>
@@ -2456,15 +2003,10 @@
 <context>
     <name>QtBoolEdit</name>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qtpropertybrowserutils.cpp" line="+255"/>
-        <location line="+10"/>
-        <location line="+25"/>
         <source>True</source>
         <translation>Wahr</translation>
     </message>
     <message>
-        <location line="-25"/>
-        <location line="+25"/>
         <source>False</source>
         <translation>Falsch</translation>
     </message>
@@ -2472,12 +2014,10 @@
 <context>
     <name>QtBoolPropertyManager</name>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="+1507"/>
         <source>True</source>
         <translation>Wahr</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>False</source>
         <translation>Falsch</translation>
     </message>
@@ -2485,7 +2025,6 @@
 <context>
     <name>QtCharEdit</name>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qteditorfactory.cpp" line="+1584"/>
         <source>Clear Char</source>
         <translation>Zeichen löschen</translation>
     </message>
@@ -2493,7 +2032,6 @@
 <context>
     <name>QtColorEditWidget</name>
     <message>
-        <location line="+605"/>
         <source>...</source>
         <translation>...</translation>
     </message>
@@ -2501,22 +2039,18 @@
 <context>
     <name>QtColorPropertyManager</name>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="+4718"/>
         <source>Red</source>
         <translation>Rot</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Green</source>
         <translation>Grün</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Blue</source>
         <translation>Blau</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Alpha</source>
         <translation>Alpha</translation>
     </message>
@@ -2524,97 +2058,78 @@
 <context>
     <name>QtCursorDatabase</name>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qtpropertybrowserutils.cpp" line="-234"/>
         <source>Arrow</source>
         <translation>Pfeil</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Up Arrow</source>
         <translation>Pfeil hoch</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Cross</source>
         <translation>Kreuzende Linien</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Wait</source>
         <translation>Sanduhr</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>IBeam</source>
         <translation>IBeam</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Size Vertical</source>
         <translation>Vertikal vergrößern</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Size Horizontal</source>
         <translation>Horizontal vergrößern</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Size Backslash</source>
         <translation>Vergrößern/Backslash</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Size Slash</source>
         <translation>Vergrößern/Slash</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Size All</source>
         <translation>Alles vergrößern</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Blank</source>
         <translation>Leer</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Split Vertical</source>
         <translation>Vertikal aufteilen</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Split Horizontal</source>
         <translation>Horizontal aufteilen</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Pointing Hand</source>
         <translation>Hand</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Forbidden</source>
         <translation>Verboten</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Open Hand</source>
         <translation>Geöffnete Hand</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Closed Hand</source>
         <translation>Geschlossene Hand</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>What&apos;s This</source>
         <translation>What&apos;s This</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Busy</source>
         <translation>Beschäftigt</translation>
     </message>
@@ -2622,12 +2137,10 @@
 <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>Schriftart auswählen</translation>
     </message>
@@ -2635,37 +2148,30 @@
 <context>
     <name>QtFontPropertyManager</name>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="-351"/>
         <source>Family</source>
         <translation>Familie</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>Point Size</source>
         <translation>Punktgröße</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Bold</source>
         <translation>Fett</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Italic</source>
         <translation>Kursiv</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Underline</source>
         <translation>Unterstreichen</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Strikeout</source>
         <translation>Durchgestrichen</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Kerning</source>
         <translation>Kerning</translation>
     </message>
@@ -2673,7 +2179,6 @@
 <context>
     <name>QtGradientDialog</name>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradientdialog.ui"/>
         <source>Edit Gradient</source>
         <translation>Gradienten bearbeiten</translation>
     </message>
@@ -2681,304 +2186,242 @@
 <context>
     <name>QtGradientEditor</name>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.cpp" line="+431"/>
         <source>Start X</source>
         <translation>Anfangswert X</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Start Y</source>
         <translation>Anfangswert Y</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Final X</source>
         <translation>Endwert X</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Final Y</source>
         <translation>Endwert Y</translation>
     </message>
     <message>
-        <location line="+7"/>
-        <location line="+24"/>
         <source>Central X</source>
         <translation>Mittelpunkt X</translation>
     </message>
     <message>
-        <location line="-20"/>
-        <location line="+24"/>
         <source>Central Y</source>
         <translation>Mittelpunkt Y</translation>
     </message>
     <message>
-        <location line="-20"/>
         <source>Focal X</source>
         <translation>Fokus X</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Focal Y</source>
         <translation>Fokus Y</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Radius</source>
         <translation>Radius</translation>
     </message>
     <message>
-        <location line="+16"/>
         <source>Angle</source>
         <translation>Winkel</translation>
     </message>
     <message>
-        <location line="+288"/>
         <source>Linear</source>
         <translation>Linear</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Radial</source>
         <translation>Radial</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Conical</source>
         <translation>Konisch</translation>
     </message>
     <message>
-        <location line="+20"/>
         <source>Pad</source>
         <translation>Auffüllen</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Repeat</source>
         <translation>Wiederholen</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Reflect</source>
         <translation>Spiegeln</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.ui"/>
         <source>Form</source>
         <translation>Form</translation>
     </message>
     <message>
-        <location/>
         <source>Gradient Editor</source>
         <translation>Gradienten bearbeiten</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>Bezugspunkte</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>Diese Fläche dient zum Bearbeiten der Bezugspunkte. Doppelklicken Sie auf einen Bezugspunkt, um ihn zu duplizieren. Doppelklicken Sie auf die Fläche, um einen neuen Bezugspunkt zu erzeugen. Benutzen Sie Drag &amp; Drop um einen Punkt zu verschieben. Die rechte Maustaste aktiviert ein Menü mit weiteren Optionen.</translation>
     </message>
     <message>
-        <location/>
         <source>Zoom</source>
         <translation>Vergrößern</translation>
     </message>
     <message>
-        <location/>
         <source>Position</source>
         <translation>Position</translation>
     </message>
     <message>
-        <location/>
         <source>Hue</source>
         <translation>Farbton</translation>
     </message>
     <message>
-        <location/>
         <source>H</source>
         <translation>H</translation>
     </message>
     <message>
-        <location/>
         <source>Saturation</source>
         <translation>Sättigung</translation>
     </message>
     <message>
-        <location/>
         <source>S</source>
         <translation>S</translation>
     </message>
     <message>
-        <location/>
         <source>Sat</source>
         <translation>Sättigung</translation>
     </message>
     <message>
-        <location/>
         <source>Value</source>
         <translation>Wert</translation>
     </message>
     <message>
-        <location/>
         <source>V</source>
         <translation>V</translation>
     </message>
     <message>
-        <location/>
         <source>Val</source>
         <translation>Wert</translation>
     </message>
     <message>
-        <location/>
         <source>Alpha</source>
         <translation>Alpha</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>Ausbreitung</translation>
     </message>
     <message>
-        <location/>
         <source>Color</source>
         <translation>Farbe</translation>
     </message>
     <message>
-        <location/>
         <source>Current stop&apos;s color</source>
         <translation>Farbe des Bezugspunkts</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>Position des Bezugspunkts</translation>
     </message>
     <message>
-        <location/>
         <source>%</source>
         <translation>%</translation>
     </message>
     <message>
-        <location/>
         <source>Zoom In</source>
         <translation>Vergrößern</translation>
     </message>
     <message>
-        <location/>
         <source>Zoom Out</source>
         <translation>Verkleinern</translation>
     </message>
     <message>
-        <location/>
         <source>Toggle details extension</source>
         <translation>Weiter Optionen einblenden</translation>
     </message>
     <message>
-        <location/>
         <source>&gt;</source>
         <translation>&gt;</translation>
     </message>
     <message>
-        <location/>
         <source>Linear Type</source>
         <translation>Typ linear</translation>
     </message>
     <message>
-        <location/>
         <source>...</source>
         <translation>...</translation>
     </message>
     <message>
-        <location/>
         <source>Radial Type</source>
         <translation>Typ radial</translation>
     </message>
     <message>
-        <location/>
         <source>Conical Type</source>
         <translation>Typ konisch</translation>
     </message>
     <message>
-        <location/>
         <source>Pad Spread</source>
         <translation>Auffüllen</translation>
     </message>
     <message>
-        <location/>
         <source>Repeat Spread</source>
         <translation>Wiederholen</translation>
     </message>
     <message>
-        <location/>
         <source>Reflect Spread</source>
         <translation>Spiegeln</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>Dieser Bereich zeigt eine Vorschau des in Bearbeitung befindlichen Gradienten. Hier können Gradienttyp-spezifische Parameter, wie Start- und Endpunkt, Radius etc. per Drag &amp; Drop bearbeitet werden.</translation>
     </message>
     <message>
-        <location/>
         <source>Show HSV specification</source>
         <translation>HSV-Spezifikation anzeigen</translation>
     </message>
     <message>
-        <location/>
         <source>Show RGB specification</source>
         <translation>RGB-Spezifikation anzeigen</translation>
     </message>
     <message>
-        <location/>
         <source>Reset Zoom</source>
         <translation>Vergrößerung zurücksetzen</translation>
     </message>
@@ -2986,37 +2429,30 @@
 <context>
     <name>QtGradientStopsWidget</name>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradientstopswidget.cpp" line="+947"/>
         <source>New Stop</source>
         <translation>Neuer Bezugspunkt</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Delete</source>
         <translation>Löschen</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Flip All</source>
         <translation>Alles umkehren</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Select All</source>
         <translation>Alles auswählen</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Zoom In</source>
         <translation>Vergrößern</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Zoom Out</source>
         <translation>Verkleinern</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Reset Zoom</source>
         <translation>Vergrößerung zurücksetzen</translation>
     </message>
@@ -3024,46 +2460,34 @@
 <context>
     <name>QtGradientView</name>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradientview.cpp" line="+107"/>
         <source>Grad</source>
         <translation>Grad</translation>
     </message>
     <message>
-        <location line="+26"/>
         <source>Remove Gradient</source>
         <translation>Gradient löschen</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Are you sure you want to remove the selected gradient?</source>
         <translation>Möchten Sie den ausgewählten Gradienten löschen?</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradientview.ui"/>
-        <location filename="../tools/shared/qtgradienteditor/qtgradientview.cpp" line="+74"/>
         <source>New...</source>
         <translation>Neu...</translation>
     </message>
     <message>
-        <location/>
-        <location filename="../tools/shared/qtgradienteditor/qtgradientview.cpp" line="+1"/>
         <source>Edit...</source>
         <translation>Ändern...</translation>
     </message>
     <message>
-        <location/>
-        <location filename="../tools/shared/qtgradienteditor/qtgradientview.cpp" line="+1"/>
         <source>Rename</source>
         <translation>Umbenennen</translation>
     </message>
     <message>
-        <location/>
-        <location filename="../tools/shared/qtgradienteditor/qtgradientview.cpp" line="+1"/>
         <source>Remove</source>
         <translation>Löschen</translation>
     </message>
     <message>
-        <location/>
         <source>Gradient View</source>
         <translation>Gradientenanzeige</translation>
     </message>
@@ -3071,8 +2495,6 @@
 <context>
     <name>QtGradientViewDialog</name>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradientviewdialog.ui"/>
-        <location filename="../tools/shared/qtgradienteditor/qtgradientviewdialog.h" line="+62"/>
         <source>Select Gradient</source>
         <translation>Gradienten auswählen</translation>
     </message>
@@ -3080,7 +2502,6 @@
 <context>
     <name>QtKeySequenceEdit</name>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qtpropertybrowserutils.cpp" line="+249"/>
         <source>Clear Shortcut</source>
         <translation>Tastenkürzel löschen</translation>
     </message>
@@ -3088,17 +2509,14 @@
 <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>Sprache</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Country</source>
         <translation>Land</translation>
     </message>
@@ -3106,17 +2524,14 @@
 <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>
@@ -3124,17 +2539,14 @@
 <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>
@@ -3142,12 +2554,10 @@
 <context>
     <name>QtPropertyBrowserUtils</name>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qtpropertybrowserutils.cpp" line="-156"/>
         <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>
@@ -3155,27 +2565,22 @@
 <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>Breite</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Height</source>
         <translation>Höhe</translation>
     </message>
@@ -3183,27 +2588,22 @@
 <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>Breite</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Height</source>
         <translation>Höhe</translation>
     </message>
@@ -3211,33 +2611,26 @@
 <context>
     <name>QtResourceEditorDialog</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qtresourceeditordialog.cpp" line="+1961"/>
         <source>Edit Resources</source>
         <translation>Ressourcen bearbeiten</translation>
     </message>
     <message>
-        <location line="+35"/>
         <source>New...</source>
         <translation>Neu...</translation>
     </message>
     <message>
-        <location line="-565"/>
-        <location line="+566"/>
         <source>New Resource File</source>
         <translation>Neue Ressourcendatei</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;Hinweis:&lt;/b&gt;&lt;p&gt;Die gewählte Datei: &lt;/p&gt;&lt;p&gt;%1&lt;/p&gt;&lt;p&gt;befindet sich außerhalb des Verzeichnisses der Ressourcendatei:&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;Bitte wählen Sie:&lt;/p&gt;&lt;table&gt;&lt;tr&gt;&lt;th align=&quot;left&quot;&gt;Kopieren&lt;/th&gt;&lt;td&gt;um die Datei in das Verzeichnis der Ressourcendatei zu kopieren.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th align=&quot;left&quot;&gt;Kopieren nach...&lt;/th&gt;&lt;td&gt;um die Datei in ein Unterverzeichnis der Ressourcendatei zu kopieren.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th align=&quot;left&quot;&gt;Beibehalten&lt;/th&gt;&lt;td&gt;um die Datei in ihrem gegenwärtigen Verzeichnis zu verwenden.&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</translation>
     </message>
     <message>
-        <location line="+288"/>
         <source>Could not copy
 %1
 to
@@ -3248,248 +2641,192 @@
 %2</translation>
     </message>
     <message>
-        <location line="+35"/>
         <source>A parse error occurred at line %1, column %2 of %3:
 %4</source>
         <translation>In der Datei %3 wurde bei Zeile %1, Spalte %2 ein Fehler gefunden:
  %4</translation>
     </message>
     <message>
-        <location line="+83"/>
         <source>Open...</source>
         <translation>Öffnen...</translation>
     </message>
     <message>
-        <location line="+2"/>
-        <location line="+11"/>
         <source>Remove</source>
         <translation>Löschen</translation>
     </message>
     <message>
-        <location line="-10"/>
-        <location line="+11"/>
         <source>Move Up</source>
         <translation>Nach oben</translation>
     </message>
     <message>
-        <location line="-10"/>
-        <location line="+11"/>
         <source>Move Down</source>
         <translation>Nach unten</translation>
     </message>
     <message>
-        <location line="-9"/>
-        <location line="+1"/>
         <source>Add Prefix</source>
         <translation>Präfix hinzufügen</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Add Files...</source>
         <translation>Dateien hinzufügen...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Change Prefix</source>
         <translation>Präfix ändern</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Change Language</source>
         <translation>Sprache ändern</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Change Alias</source>
         <translation>Alias ändern</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Clone Prefix...</source>
         <translation>Präfix doppeln...</translation>
     </message>
     <message>
-        <location line="+37"/>
         <source>Prefix / Path</source>
         <translation>Präfix / Pfad</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Language / Alias</source>
         <translation>Sprache / Alias</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;Warnung:&lt;/b&gt; Beim Neuladen der Ressourcen traten Fehler auf:&lt;/p&gt;&lt;pre&gt;%1&lt;/pre&gt;&lt;/html&gt;</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Resource Warning</source>
         <translation>Ressourcen - Warnung</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>Neue Datei</translation>
     </message>
     <message>
-        <location/>
         <source>N</source>
         <translation>N</translation>
     </message>
     <message>
-        <location/>
         <source>Remove File</source>
         <translation>Datei löschen</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>Neue Ressource</translation>
     </message>
     <message>
-        <location/>
         <source>A</source>
         <translation>A</translation>
     </message>
     <message>
-        <location/>
         <source>Remove Resource or File</source>
         <translation>Datei oder Ressource löschen</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>Die Datei %1 existiert bereits.
 Wollen Sie sie überschreiben?</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>Die Datei ist offenbar keine Ressourcendatei; an Stelle des erwarteten Elements &apos;%2&apos; wurde das Element &apos;%1&apos; gefunden.</translation>
     </message>
     <message>
-        <location line="+902"/>
         <source>%1 [read-only]</source>
         <translation>%1 [schreibgeschützt]</translation>
     </message>
     <message>
-        <location line="+2"/>
-        <location line="+198"/>
         <source>%1 [missing]</source>
         <translation>%1 [fehlt]</translation>
     </message>
     <message>
-        <location line="-72"/>
         <source>&lt;no prefix&gt;</source>
         <translation>&lt;kein Präfix&gt;</translation>
     </message>
     <message>
-        <location line="+322"/>
-        <location line="+25"/>
         <source>Resource files (*.qrc)</source>
         <translation>Ressourcendateien (*.qrc)</translation>
     </message>
     <message>
-        <location line="-2"/>
         <source>Import Resource File</source>
         <translation>Ressourcendatei importieren</translation>
     </message>
     <message>
-        <location line="+112"/>
         <source>newPrefix</source>
         <translation>newPrefix</translation>
     </message>
     <message>
-        <location line="+49"/>
         <source>Add Files</source>
         <translation>Dateien hinzufügen</translation>
     </message>
     <message>
-        <location line="+21"/>
         <source>Incorrect Path</source>
         <translation>Fehlerhafte Pfadangabe</translation>
     </message>
     <message>
-        <location line="+3"/>
-        <location line="+19"/>
-        <location line="+212"/>
-        <location line="+7"/>
         <source>Copy</source>
         <translation>Kopieren</translation>
     </message>
     <message>
-        <location line="-236"/>
         <source>Copy As...</source>
         <translation>Kopieren nach...</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Keep</source>
         <translation>Beibehalten</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Skip</source>
         <translation>Überspringen</translation>
     </message>
     <message>
-        <location line="+87"/>
         <source>Clone Prefix</source>
         <translation>Präfix doppeln</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>Bitte geben Sie den Suffix ein, der an den Namen der gedoppelten Dateien angehängt werden soll.
 Dies kann zum Beispiel eine Sprachkennung wie &quot;_de&quot; sein.</translation>
     </message>
     <message>
-        <location line="+113"/>
-        <location line="+4"/>
         <source>Copy As</source>
         <translation>Kopieren nach</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;Die gewählte Datei: &lt;/p&gt;&lt;p&gt;%1&lt;/p&gt;&lt;p&gt;befindet sich außerhalb des Verzeichnisses der Ressourcendatei:&lt;/p&gt;&lt;p&gt;%2&lt;/p&gt;&lt;p&gt;Bitte wählen Sie einen anderen Pfad, der im Verzeichnis der Ressourcendatei enthalten ist.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location line="+20"/>
         <source>Could not overwrite %1.</source>
         <translation>%1 konnte nicht überschrieben werden.</translation>
     </message>
     <message>
-        <location line="+54"/>
         <source>Save Resource File</source>
         <translation>Ressourcendatei speichern</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Could not write %1: %2</source>
         <translation>Die Datei %1konnte nicht geschrieben werden: %2</translation>
     </message>
     <message>
-        <location line="+71"/>
         <source>Open Resource File</source>
         <translation>Ressourcendatei öffnen</translation>
     </message>
@@ -3497,24 +2834,20 @@
 <context>
     <name>QtResourceView</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qtresourceview.cpp" line="+567"/>
         <source>Size: %1 x %2
 %3</source>
         <translation>Größe: %1 x %2
 %3</translation>
     </message>
     <message>
-        <location line="+20"/>
         <source>Edit Resources...</source>
         <translation>Ressourcen bearbeiten...</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Reload</source>
         <translation>Neu laden</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Copy Path</source>
         <translation>Pfad kopieren</translation>
     </message>
@@ -3522,7 +2855,6 @@
 <context>
     <name>QtResourceViewDialog</name>
     <message>
-        <location line="+252"/>
         <source>Select Resource</source>
         <translation>Ressource auswählen</translation>
     </message>
@@ -3530,17 +2862,14 @@
 <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>Breite</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Height</source>
         <translation>Höhe</translation>
     </message>
@@ -3548,33 +2877,26 @@
 <context>
     <name>QtSizePolicyPropertyManager</name>
     <message>
-        <location line="+1709"/>
-        <location line="+1"/>
         <source>&lt;Invalid&gt;</source>
         <translation>&lt;Ungültig&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>Horizontale Einstellung</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Vertical Policy</source>
         <translation>Vertikale Einstellung</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Horizontal Stretch</source>
         <translation>Horizontaler Dehnungsfaktor</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Vertical Stretch</source>
         <translation>Vertikaler Dehnungsfaktor</translation>
     </message>
@@ -3582,17 +2904,14 @@
 <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>Breite</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Height</source>
         <translation>Höhe</translation>
     </message>
@@ -3600,107 +2919,86 @@
 <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; T R E N N E R &gt;</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qttoolbardialog/qttoolbardialog.ui"/>
         <source>Customize Toolbars</source>
         <translation>Werkzeugleisten anpassen</translation>
     </message>
     <message>
-        <location/>
         <source>1</source>
         <translation>1</translation>
     </message>
     <message>
-        <location/>
         <source>Actions</source>
         <translation>Aktionen</translation>
     </message>
     <message>
-        <location/>
         <source>Toolbars</source>
         <translation>Werkzeugleisten</translation>
     </message>
     <message>
-        <location/>
         <source>New</source>
         <translation>Neu</translation>
     </message>
     <message>
-        <location/>
         <source>Remove</source>
         <translation>Löschen</translation>
     </message>
     <message>
-        <location/>
         <source>Rename</source>
         <translation>Umbenennen</translation>
     </message>
     <message>
-        <location/>
         <source>Up</source>
         <translation>Nach oben</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>Nach unten</translation>
     </message>
     <message>
-        <location/>
         <source>Current Toolbar Actions</source>
         <translation>Aktionen</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qttoolbardialog/qttoolbardialog.cpp" line="-544"/>
         <source>Custom Toolbar</source>
         <translation>Benutzerdefinierte Werkzeugleiste</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qttoolbardialog/qttoolbardialog.ui"/>
         <source>Add new toolbar</source>
         <translation>Neue Werkzeugleiste hinzufügen</translation>
     </message>
     <message>
-        <location/>
         <source>Remove selected toolbar</source>
         <translation>Ausgewählte Werkzeugleiste &apos;%1&apos; löschen</translation>
     </message>
     <message>
-        <location/>
         <source>Rename toolbar</source>
         <translation>Werkzeugleiste umbenennen</translation>
     </message>
     <message>
-        <location/>
         <source>Move action up</source>
         <translation>Aktion eins nach oben</translation>
     </message>
     <message>
-        <location/>
         <source>Remove action from toolbar</source>
         <translation>Aktion aus Werkzeugleiste entfernen</translation>
     </message>
     <message>
-        <location/>
         <source>Add action to toolbar</source>
         <translation>Aktion zu Werkzeugleiste hinzufügen</translation>
     </message>
     <message>
-        <location/>
         <source>Move action down</source>
         <translation>Aktion eins nach unten</translation>
     </message>
@@ -3708,12 +3006,10 @@
 <context>
     <name>QtTreePropertyBrowser</name>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qttreepropertybrowser.cpp" line="+442"/>
         <source>Property</source>
         <translation>Eigenschaft</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Value</source>
         <translation>Wert</translation>
     </message>
@@ -3721,64 +3017,52 @@
 <context>
     <name>SaveFormAsTemplate</name>
     <message>
-        <location filename="../tools/designer/src/designer/saveformastemplate.cpp" line="+72"/>
         <source>Add path...</source>
         <translation>Verzeichnis anlegen...</translation>
     </message>
     <message>
-        <location line="+23"/>
         <source>Template Exists</source>
         <translation>Die Vorlage existiert  bereits</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>A template with the name %1 already exists.
 Do you want overwrite the template?</source>
         <translation>Es existiert bereits eine Vorlage mit dem Namen %1.
 Möchten Sie sie überschreiben?</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Overwrite Template</source>
         <translation>Vorlage überschreiben</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Open Error</source>
         <translation>Fehler beim Öffnen</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>There was an error opening template %1 for writing. Reason: %2</source>
         <translation>Die Vorlage %1 konnte nicht in eine Datei geschrieben werden: %2</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>Write Error</source>
         <translation>Schreibfehler</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>There was an error writing the template %1 to disk. Reason: %2</source>
         <translation>Die Vorlage %1 konnte nicht in eine Datei geschrieben werden: %2</translation>
     </message>
     <message>
-        <location line="+27"/>
         <source>Pick a directory to save templates in</source>
         <translation>Wählen Sie ein Verzeichnis zum Abspeichern der Vorlagen aus</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/saveformastemplate.ui"/>
         <source>Save Form As Template</source>
         <translation>Formular als Vorlage abspeichern</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Category:</source>
         <translation>&amp;Kategorie:</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Name:</source>
         <translation>&amp;Name:</translation>
     </message>
@@ -3786,7 +3070,6 @@
 <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>Bei der Ausführung der Skripte für &quot;%1&quot; sind Fehler aufgetreten:
@@ -3796,22 +3079,18 @@
 <context>
     <name>SelectSignalDialog</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/selectsignaldialog.ui"/>
         <source>Go to slot</source>
         <translation></translation>
     </message>
     <message>
-        <location/>
         <source>Select signal</source>
         <translation></translation>
     </message>
     <message>
-        <location/>
         <source>signal</source>
         <translation>Signal</translation>
     </message>
     <message>
-        <location/>
         <source>class</source>
         <translation>Klasse</translation>
     </message>
@@ -3819,7 +3098,6 @@
 <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>SENDER(%1), SIGNAL(%2), EMPFÄNGER(%3), SLOT(%4)</translation>
     </message>
@@ -3827,32 +3105,26 @@
 <context>
     <name>SignalSlotDialogClass</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/signalslotdialog.ui"/>
         <source>Signals and slots</source>
         <translation>Signale und Slots</translation>
     </message>
     <message>
-        <location/>
         <source>Slots</source>
         <translation>Slots</translation>
     </message>
     <message>
-        <location/>
         <source>...</source>
         <translation>...</translation>
     </message>
     <message>
-        <location/>
         <source>Signals</source>
         <translation>Signale</translation>
     </message>
     <message>
-        <location/>
         <source>Add</source>
         <translation>Hinzufügen</translation>
     </message>
     <message>
-        <location/>
         <source>Delete</source>
         <translation>Löschen</translation>
     </message>
@@ -3860,12 +3132,10 @@
 <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>Horizontales Füllelement &apos;%1&apos;, %2 x %3</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Vertical Spacer &apos;%1&apos;, %2 x %3</source>
         <translation>Vertikales Füllelement &apos;%1&apos;, %2 x %3</translation>
     </message>
@@ -3873,7 +3143,6 @@
 <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>Verzeichnisse für Vorlagen</translation>
@@ -3882,52 +3151,42 @@
 <context>
     <name>ToolBarManager</name>
     <message>
-        <location filename="../tools/designer/src/designer/mainwindow.cpp" line="+89"/>
         <source>Configure Toolbars...</source>
         <translation>Werkzeugleiste konfigurieren...</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Window</source>
         <translation>Fenster</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Help</source>
         <translation>Hilfe</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Style</source>
         <translation>Stil</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Dock views</source>
         <translation>Dockfenster</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>File</source>
         <translation>Datei</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Edit</source>
         <translation>Bearbeiten</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Tools</source>
         <translation>Werkzeuge</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Form</source>
         <translation>Formular</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Toolbars</source>
         <translation>Werkzeugleisten</translation>
     </message>
@@ -3935,30 +3194,64 @@
 <context>
     <name>VersionDialog</name>
     <message>
-        <location filename="../tools/designer/src/designer/versiondialog.cpp" line="+170"/>
         <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;Version %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 type="unfinished"></translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>%1&lt;br/&gt;Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
+    <name>VideoPlayerTaskMenu</name>
+    <message>
+        <source>Available Mime Types</source>
+        <translation>Verfügbare Mime-Typen</translation>
+    </message>
+    <message>
+        <source>Display supported mime types...</source>
+        <translation>Verfügbare Mime-Typen anzeigen...</translation>
+    </message>
+    <message>
+        <source>Load...</source>
+        <translation>Laden...</translation>
+    </message>
+    <message>
+        <source>Play</source>
+        <translation>Wiedergabe</translation>
+    </message>
+    <message>
+        <source>Pause</source>
+        <translation>Pause</translation>
+    </message>
+    <message>
+        <source>Stop</source>
+        <translation>Stop</translation>
+    </message>
+    <message>
+        <source>Choose Video Player Media Source</source>
+        <translation>Medienquelle wählen</translation>
+    </message>
+    <message>
+        <source>An error has occurred in &apos;%1&apos;: %2</source>
+        <translation>In &apos;%1&apos; ist ein Fehler aufgetreten: %2</translation>
+    </message>
+    <message>
+        <source>Video Player Error</source>
+        <translation>Video Player Fehler</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>Die Datei enthält ein benutzerdefiniertes Widget &apos;%1&apos; dessen Basisklasse (%2) nicht mit dem Eintrag in der Widget-Datenbank übereinstimmt. Die Widget-Datenbank wird nicht geändert.</translation>
     </message>
@@ -3966,87 +3259,70 @@
 <context>
     <name>qdesigner_internal::ActionEditor</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/actioneditor.cpp" line="+139"/>
         <source>Actions</source>
         <translation>Aktionen</translation>
     </message>
     <message>
-        <location line="-16"/>
         <source>New...</source>
         <translation>Neu...</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Delete</source>
         <translation>Löschen</translation>
     </message>
     <message>
-        <location line="+313"/>
         <source>New action</source>
         <translation>Neue Aktion</translation>
     </message>
     <message>
-        <location line="+98"/>
         <source>Edit action</source>
         <translation>Aktion ändern</translation>
     </message>
     <message>
-        <location line="-417"/>
         <source>Edit...</source>
         <translation>Ändern...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Go to slot...</source>
         <translation>Slot anzeigen...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Copy</source>
         <translation>Kopieren</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Cut</source>
         <translation>Ausschneiden</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Paste</source>
         <translation>Einfügen</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Select all</source>
         <translation>Alles auswählen</translation>
     </message>
     <message>
-        <location line="+62"/>
         <source>Icon View</source>
         <translation>Icon-Ansicht</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Detailed View</source>
         <translation>Detaillierte Ansicht</translation>
     </message>
     <message>
-        <location line="+413"/>
         <source>Remove actions</source>
         <translation> Aktionen löschen</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Remove action &apos;%1&apos;</source>
         <translation>Aktion &apos;%1&apos; löschen</translation>
     </message>
     <message>
-        <location line="+186"/>
         <source>Used In</source>
         <translation>Verwendet in</translation>
     </message>
     <message>
-        <location line="-608"/>
         <source>Configure Action Editor</source>
         <translation>Aktionseditor konfigurieren</translation>
     </message>
@@ -4054,32 +3330,26 @@
 <context>
     <name>qdesigner_internal::ActionModel</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/actionrepository.cpp" line="+89"/>
         <source>Name</source>
         <translation>Name</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Used</source>
         <translation>Verwendet</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Text</source>
         <translation>Text</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Shortcut</source>
         <translation>Tastenkürzel</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Checkable</source>
         <translation>Ankreuzbar</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>ToolTip</source>
         <translation>ToolTip</translation>
     </message>
@@ -4087,27 +3357,22 @@
 <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>Bei dem Element fehlt das erforderliche Attribut &apos;%2&apos;.</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>Empty brush name encountered.</source>
         <translation>Fehlender Name bei der Brush-Definition.</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>An unexpected element &apos;%1&apos; was encountered.</source>
         <translation>Ein ungültiges Element &apos;%1&apos; wurde festgestellt.</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>Fehler beim Lesen der Brush-Datei &apos;%1&apos; bei Zeile %2, Spalte %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>Fehler beim Lesen der Ressourcen-Datei &apos;%1&apos; bei Zeile %2, Spalte %3: %4</translation>
     </message>
@@ -4115,17 +3380,14 @@
 <context>
     <name>qdesigner_internal::BuddyEditor</name>
     <message>
-        <location filename="../tools/designer/src/components/buddyeditor/buddyeditor.cpp" line="+261"/>
         <source>Add buddy</source>
         <translation>Buddy hinzufügen</translation>
     </message>
     <message>
-        <location line="+52"/>
         <source>Remove buddies</source>
         <translation>Buddies löschen</translation>
     </message>
     <message numerus="yes">
-        <location line="+24"/>
         <source>Remove %n buddies</source>
         <translation>
             <numerusform>Buddy  löschen</numerusform>
@@ -4133,7 +3395,6 @@
         </translation>
     </message>
     <message numerus="yes">
-        <location line="+51"/>
         <source>Add %n buddies</source>
         <translation>
             <numerusform>Buddy hinzufügen</numerusform>
@@ -4141,7 +3402,6 @@
         </translation>
     </message>
     <message>
-        <location line="+47"/>
         <source>Set automatically</source>
         <translation>Automatisch setzen</translation>
     </message>
@@ -4149,7 +3409,6 @@
 <context>
     <name>qdesigner_internal::BuddyEditorPlugin</name>
     <message>
-        <location filename="../tools/designer/src/components/buddyeditor/buddyeditor_plugin.cpp" line="+73"/>
         <source>Edit Buddies</source>
         <translation>Buddies bearbeiten</translation>
     </message>
@@ -4157,7 +3416,6 @@
 <context>
     <name>qdesigner_internal::BuddyEditorTool</name>
     <message>
-        <location filename="../tools/designer/src/components/buddyeditor/buddyeditor_tool.cpp" line="+56"/>
         <source>Edit Buddies</source>
         <translation>Buddies bearbeiten</translation>
     </message>
@@ -4165,12 +3423,10 @@
 <context>
     <name>qdesigner_internal::ButtonGroupMenu</name>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/button_taskmenu.cpp" line="+7"/>
         <source>Select members</source>
         <translation>Mitglieder auswählen</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Break</source>
         <translation>Aufheben</translation>
     </message>
@@ -4178,32 +3434,26 @@
 <context>
     <name>qdesigner_internal::ButtonTaskMenu</name>
     <message>
-        <location line="+121"/>
         <source>Assign to button group</source>
         <translation>Gruppierung</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Button group</source>
         <translation>Gruppierung</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>New button group</source>
         <translation>Neue Gruppierung</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Change text...</source>
         <translation>Text ändern...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>None</source>
         <translation>Keine</translation>
     </message>
     <message>
-        <location line="+101"/>
         <source>Button group &apos;%1&apos;</source>
         <translation>Gruppierung &apos;%1&apos;</translation>
     </message>
@@ -4211,57 +3461,46 @@
 <context>
     <name>qdesigner_internal::CodeDialog</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/codedialog.cpp" line="+95"/>
         <source>Save...</source>
         <translation>Speichern...</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Copy All</source>
         <translation>Alles kopieren</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>&amp;Find in Text...</source>
         <translation>&amp;Suchen...</translation>
     </message>
     <message>
-        <location line="+75"/>
         <source>A temporary form file could not be created in %1.</source>
         <translation>In dem Verzeichnis %1 konnte keine temporäre Formulardatei angelegt werden.</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>The temporary form file %1 could not be written.</source>
         <translation>Die temporäre Formulardatei %1 konnte nicht geschrieben werden.</translation>
     </message>
     <message>
-        <location line="+21"/>
         <source>%1 - [Code]</source>
         <translation>%1 - [Code]</translation>
     </message>
     <message>
-        <location line="+23"/>
         <source>Save Code</source>
         <translation>Code speichern</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Header Files (*.%1)</source>
         <translation>Include-Dateien  (*.%1)</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>The file %1 could not be opened: %2</source>
         <translation>Die Datei %1 konnte nicht geöffnet werden: %2</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>The file %1 could not be written: %2</source>
         <translation>Die Datei %1 konnte nicht geschrieben werden: %2</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>%1 - Error</source>
         <translation>%1 - Fehler</translation>
     </message>
@@ -4269,7 +3508,6 @@
 <context>
     <name>qdesigner_internal::ColorAction</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/richtexteditor.cpp" line="+246"/>
         <source>Text Color</source>
         <translation>Schriftfarbe</translation>
     </message>
@@ -4277,12 +3515,10 @@
 <context>
     <name>qdesigner_internal::ComboBoxTaskMenu</name>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/combobox_taskmenu.cpp" line="+68"/>
         <source>Edit Items...</source>
         <translation>Einträge ändern...</translation>
     </message>
     <message>
-        <location line="+38"/>
         <source>Change Combobox Contents</source>
         <translation>Inhalt der  Combobox  ändern</translation>
     </message>
@@ -4290,7 +3526,6 @@
 <context>
     <name>qdesigner_internal::CommandLinkButtonTaskMenu</name>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/button_taskmenu.cpp" line="+156"/>
         <source>Change description...</source>
         <translation>Beschreibung ändern...</translation>
     </message>
@@ -4298,17 +3533,14 @@
 <context>
     <name>qdesigner_internal::ConnectionEdit</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/connectionedit.cpp" line="+1313"/>
         <source>Select All</source>
         <translation>Alles auswählen</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Delete</source>
         <translation>Löschen</translation>
     </message>
     <message>
-        <location line="-5"/>
         <source>Deselect All</source>
         <translation>Auswahl rücksetzen</translation>
     </message>
@@ -4316,52 +3548,42 @@
 <context>
     <name>qdesigner_internal::ConnectionModel</name>
     <message>
-        <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditorwindow.cpp" line="-465"/>
         <source>Sender</source>
         <translation>Sender</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Signal</source>
         <translation></translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Receiver</source>
         <translation>Empfänger</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Slot</source>
         <translation>Slot</translation>
     </message>
     <message>
-        <location line="+90"/>
         <source>&lt;sender&gt;</source>
         <translation>&lt;Sender&gt;</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&lt;signal&gt;</source>
         <translation>&lt;Signal&gt;</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&lt;receiver&gt;</source>
         <translation>&lt;Receiver&gt;</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&lt;slot&gt;</source>
         <translation>&lt;Slot&gt;</translation>
     </message>
     <message>
-        <location line="+110"/>
         <source>Signal and Slot Editor</source>
         <translation>Signal/Slot editor</translation>
     </message>
     <message>
-        <location line="-2"/>
         <source>The connection already exists!&lt;br&gt;%1</source>
         <translation>Diese Verbindung existiert bereits!&lt;br&gt;%1&lt;/br&gt;</translation>
     </message>
@@ -4369,42 +3591,34 @@
 <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>Seite davor einfügen</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Insert Page After Current Page</source>
         <translation>Seite danach einfügen</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Add Subwindow</source>
         <translation>Subfenster hinzufügen</translation>
     </message>
     <message>
-        <location line="-40"/>
         <source>Delete</source>
         <translation>Löschen</translation>
     </message>
     <message>
-        <location line="+25"/>
         <source>Insert</source>
         <translation>Einfügen</translation>
     </message>
     <message>
-        <location line="+53"/>
         <source>Subwindow</source>
         <translation>Subwindow</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Page</source>
         <translation>Seite</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Page %1 of %2</source>
         <translation>Seite %1 von %2</translation>
     </message>
@@ -4412,19 +3626,16 @@
 <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>System (%1 x %2)</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>User defined</source>
         <translation>Benutzerdefiniert</translation>
     </message>
@@ -4432,49 +3643,38 @@
 <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>Linksbündig ausrichten</translation>
     </message>
     <message>
-        <location line="-5"/>
         <source>AlignHCenter</source>
         <translation>Horizontal zentrieren</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>AlignRight</source>
         <translation>Rechtsbündig ausrichten</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>AlignJustify</source>
         <translation>Blocksatz</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>AlignTop</source>
         <translation>Am oberen Rand ausrichten</translation>
     </message>
     <message>
-        <location line="+1"/>
-        <location line="+4"/>
         <source>AlignVCenter</source>
         <translation>Vertikal zentrieren</translation>
     </message>
     <message>
-        <location line="-3"/>
         <source>AlignBottom</source>
         <translation>Am unteren Rand zentrieren</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>Angepasst (eine Rolle)</numerusform>
@@ -4482,75 +3682,58 @@
         </translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Inherited</source>
         <translation>Geerbt</translation>
     </message>
     <message>
-        <location line="+566"/>
         <source>Horizontal</source>
         <translation>Horizontal</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Vertical</source>
         <translation>Vertikal</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Normal Off</source>
         <translation>Normal, aus</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Normal On</source>
         <translation>Normal, ein</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Disabled Off</source>
         <translation>Nicht verfügbar, aus</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Disabled On</source>
         <translation>Verfügbar, ein</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Active Off</source>
         <translation>Aktiv, aus</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Active On</source>
         <translation>Aktiv, ein</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Selected Off</source>
         <translation>Ausgewählt, aus</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Selected On</source>
         <translation>Ausgewählt, ein</translation>
     </message>
     <message>
-        <location line="+7"/>
-        <location line="+21"/>
         <source>translatable</source>
         <translation>Übersetzung</translation>
     </message>
     <message>
-        <location line="-15"/>
-        <location line="+21"/>
         <source>disambiguation</source>
         <translation>Kennung</translation>
     </message>
     <message>
-        <location line="-15"/>
-        <location line="+21"/>
         <source>comment</source>
         <translation>Kommentar</translation>
     </message>
@@ -4558,48 +3741,38 @@
 <context>
     <name>qdesigner_internal::DeviceProfileDialog</name>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/deviceprofiledialog.cpp" line="+63"/>
         <source>Device Profiles (*.%1)</source>
         <translation>Profile</translation>
     </message>
     <message>
-        <location line="+31"/>
         <source>Default</source>
         <translation>Vorgabe</translation>
     </message>
     <message>
-        <location line="+67"/>
         <source>Save Profile</source>
         <translation>Profil speichern</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>Save Profile - Error</source>
         <translation>Fehler beim Speichern des Profils</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Unable to open the file &apos;%1&apos; for writing: %2</source>
         <translation>Die Datei &apos;%1&apos; konnte nicht zum Schreiben geöffnet werden: %2</translation>
     </message>
     <message>
-        <location line="+14"/>
         <source>Unable to open the file &apos;%1&apos; for reading: %2</source>
         <translation>Die Datei &apos;%1&apos; konnte nicht zum Lesen geöffnet werden: %2</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>&apos;%1&apos; is not a valid profile: %2</source>
         <translation>&apos;%1&apos; ist kein gültiges Profil: %2</translation>
     </message>
     <message>
-        <location line="-12"/>
         <source>Open profile</source>
         <translation>Profil öffnen</translation>
     </message>
     <message>
-        <location line="+6"/>
-        <location line="+6"/>
         <source>Open Profile - Error</source>
         <translation>Fehler beim Öffnen des Profils</translation>
     </message>
@@ -4607,57 +3780,46 @@
 <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>Liste von Zeichenketten</translation>
     </message>
     <message>
-        <location/>
         <source>New String</source>
         <translation>Neue Zeichenkette</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;New</source>
         <translation>&amp;Neu</translation>
     </message>
     <message>
-        <location/>
         <source>Delete String</source>
         <translation>Zeichenkette löschen</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Delete</source>
         <translation>&amp;Löschen</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Value:</source>
         <translation>&amp;Wert:</translation>
     </message>
     <message>
-        <location/>
         <source>Move String Up</source>
         <translation>Zeichenkette eins nach oben</translation>
     </message>
     <message>
-        <location/>
         <source>Up</source>
         <translation>Hoch</translation>
     </message>
     <message>
-        <location/>
         <source>Move String Down</source>
         <translation>Zeichenkette eins nach unten</translation>
     </message>
     <message>
-        <location/>
         <source>Down</source>
         <translation>Runter</translation>
     </message>
@@ -4665,52 +3827,42 @@
 <context>
     <name>qdesigner_internal::EmbeddedOptionsControl</name>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/embeddedoptionspage.cpp" line="-260"/>
         <source>None</source>
         <translation>Vorgabe</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Add a profile</source>
         <translation>Profil hinzufügen</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Edit the selected profile</source>
         <translation>Ausgewähltes Profil modifizieren</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Delete the selected profile</source>
         <translation>Ausgewähltes Profil löschen</translation>
     </message>
     <message>
-        <location line="+22"/>
         <source>Add Profile</source>
         <translation>Profil hinzufügen</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>New profile</source>
         <translation>Neues Profil</translation>
     </message>
     <message>
-        <location line="+35"/>
         <source>Edit Profile</source>
         <translation>Profil ändern</translation>
     </message>
     <message>
-        <location line="+26"/>
         <source>Delete Profile</source>
         <translation>Profil löschen</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Would you like to delete the profile &apos;%1&apos;?</source>
         <translation>Möchten Sie das Profil &apos;%1&apos; löschen?</translation>
     </message>
     <message>
-        <location line="+55"/>
         <source>Default</source>
         <translation>Vorgabe</translation>
     </message>
@@ -4718,12 +3870,10 @@
 <context>
     <name>qdesigner_internal::FilterWidget</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/filterwidget.cpp" line="+160"/>
         <source>Filter</source>
         <translation>Filter</translation>
     </message>
     <message>
-        <location line="+36"/>
         <source>Clear text</source>
         <translation>Text löschen</translation>
     </message>
@@ -4731,12 +3881,10 @@
 <context>
     <name>qdesigner_internal::FormEditor</name>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/formeditor.cpp" line="+190"/>
         <source>Resource File Changed</source>
         <translation>Änderung einer Ressourcendatei</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>The file &quot;%1&quot; has changed outside Designer. Do you want to reload it?</source>
         <translation>Die Ressourcendatei &quot;%1&quot; wurde außerhalb Designer geändert. Möchten Sie sie neu laden?</translation>
     </message>
@@ -4744,7 +3892,6 @@
 <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>Zeile hinzufügen...</translation>
     </message>
@@ -4752,43 +3899,34 @@
 <context>
     <name>qdesigner_internal::FormWindow</name>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/formwindow.cpp" line="-1322"/>
         <source>Edit contents</source>
         <translation>Ändern</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>F2</source>
         <translation>F2</translation>
     </message>
     <message>
-        <location line="+840"/>
         <source>Resize</source>
         <translation>Größe ändern</translation>
     </message>
     <message>
-        <location line="+248"/>
         <source>Key Move</source>
         <translation>Verschieben mittels Tastatur</translation>
     </message>
     <message>
-        <location line="+317"/>
         <source>Paste error</source>
         <translation>Fehler beim Einfügen</translation>
     </message>
     <message>
-        <location line="+448"/>
         <source>Lay out</source>
         <translation>Layout</translation>
     </message>
     <message>
-        <location line="+485"/>
-        <location line="+55"/>
         <source>Drop widget</source>
         <translation>Widget einfügen</translation>
     </message>
     <message numerus="yes">
-        <location line="-1053"/>
         <source>Paste %n action(s)</source>
         <translation>
             <numerusform>Eine Aktion einfügen</numerusform>
@@ -4796,17 +3934,14 @@
         </translation>
     </message>
     <message>
-        <location line="-565"/>
         <source>Insert widget &apos;%1&apos;</source>
         <translation>Widget &apos;%1&apos; einfügen</translation>
     </message>
     <message>
-        <location line="+313"/>
         <source>Key Resize</source>
         <translation>Größe ändern mittels Tastatur</translation>
     </message>
     <message numerus="yes">
-        <location line="+254"/>
         <source>Paste %n widget(s)</source>
         <translation>
             <numerusform>Widget einfügen</numerusform>
@@ -4814,37 +3949,30 @@
         </translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Paste (%1 widgets, %2 actions)</source>
         <translation>Einfügen (%1 Widgets, %2 Aktionen)</translation>
     </message>
     <message>
-        <location line="+56"/>
         <source>Cannot paste widgets. Designer could not find a container without a layout to paste into.</source>
         <translation>Die Widgets konnten nicht eingefügt werden, da kein Container gefunden werden konnte, der nicht bereits ein Layout hat.</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>Bitte lösen Sie das Layout des gewünschten Containers auf und wählen Sie ihn erneut aus, um die Widgets einzufügen.</translation>
     </message>
     <message>
-        <location line="+406"/>
         <source>Select Ancestor</source>
         <translation>Übergeordnetes Widget auswählen</translation>
     </message>
     <message>
-        <location line="+573"/>
         <source>A QMainWindow-based form does not contain a central widget.</source>
         <translation>Ein auf QMainWindow basierendes Formular enthält kein zentrales Widget.</translation>
     </message>
     <message>
-        <location line="-794"/>
         <source>Raise widgets</source>
         <translation>Widgets nach vorn bringen</translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>Lower widgets</source>
         <translation>Widgets nach hinten setzen</translation>
     </message>
@@ -4852,12 +3980,10 @@
 <context>
     <name>qdesigner_internal::FormWindowBase</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/formwindowbase.cpp" line="+404"/>
         <source>Delete</source>
         <translation>Löschen</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Delete &apos;%1&apos;</source>
         <translation> &apos;%1&apos; löschen</translation>
     </message>
@@ -4865,200 +3991,159 @@
 <context>
     <name>qdesigner_internal::FormWindowManager</name>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/formwindowmanager.cpp" line="+365"/>
         <source>Cu&amp;t</source>
         <translation>&amp;Ausschneiden</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Cuts the selected widgets and puts them on the clipboard</source>
         <translation>Schneidet die ausgewählten Widgets aus und legt sie in der Zwischenablage ab</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>&amp;Copy</source>
         <translation>&amp;Kopieren</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Copies the selected widgets to the clipboard</source>
         <translation>Kopiert die ausgewählten Widgets in die Zwischenablage</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>&amp;Paste</source>
         <translation>&amp;Einfügen</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Pastes the clipboard&apos;s contents</source>
         <translation>Fügt den Inhalt der Zwischenablage ein</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>&amp;Delete</source>
         <translation>&amp;Löschen</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Deletes the selected widgets</source>
         <translation>Löscht die ausgewählten Widgets</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Select &amp;All</source>
         <translation>&amp;Alles auswählen</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Selects all widgets</source>
         <translation>Wählt alle Widget aus</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Bring to &amp;Front</source>
         <translation>Nach &amp;vorn</translation>
     </message>
     <message>
-        <location line="+3"/>
-        <location line="+1"/>
         <source>Raises the selected widgets</source>
         <translation>Bringt das ausgewählte Widget nach vorn</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Send to &amp;Back</source>
         <translation>Nach &amp;hinten</translation>
     </message>
     <message>
-        <location line="+3"/>
-        <location line="+1"/>
         <source>Lowers the selected widgets</source>
         <translation>Stellt das ausgewählte Widget nach hinten</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Adjust &amp;Size</source>
         <translation>&amp;Größe anpassen</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Adjusts the size of the selected widget</source>
         <translation>Berechnet die Größe des ausgewählten Widgets aus dem Layout und passt das Widget an</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Lay Out &amp;Horizontally</source>
         <translation>Objekte &amp;waagrecht anordnen</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Lays out the selected widgets horizontally</source>
         <translation>Ordnet die ausgewähltenObjekte waagrecht an</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Lay Out &amp;Vertically</source>
         <translation>Objekte &amp;senkrecht anordnen</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Lays out the selected widgets vertically</source>
         <translation>Ordnet die ausgewählten Objekte senkrecht an</translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>Lay Out in a &amp;Grid</source>
         <translation>Objekte &amp;tabellarisch anordnen</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Lays out the selected widgets in a grid</source>
         <translation>Ordnet die ausgewählten Objekte tabellarisch an</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Lay Out Horizontally in S&amp;plitter</source>
         <translation>Objekte waagrecht um Spl&amp;itter anordnen</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Lays out the selected widgets horizontally in a splitter</source>
         <translation>Ordnet die ausgewählten Objekte um einen Splitter waagrecht an</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Lay Out Vertically in Sp&amp;litter</source>
         <translation>Objekte senkrecht um Spl&amp;itter anordnen</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Lays out the selected widgets vertically in a splitter</source>
         <translation>Ordnet die ausgewählten Objekte um einen Splitter senkecht an</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>&amp;Break Layout</source>
         <translation>La&amp;yout auflösen</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Breaks the selected layout</source>
         <translation>Löst das ausgewählte Layout auf</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>&amp;Preview...</source>
         <translation>&amp;Vorschau...</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Preview current form</source>
         <translation>Vorschau des Formulars</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Form &amp;Settings...</source>
         <translation>Formular&amp;einstellungen...</translation>
     </message>
     <message>
-        <location line="+94"/>
         <source>Break Layout</source>
         <translation>Layout auflösen</translation>
     </message>
     <message>
-        <location line="+26"/>
         <source>Adjust Size</source>
         <translation>Größe anpassen</translation>
     </message>
     <message>
-        <location line="+43"/>
         <source>Could not create form preview</source>
         <comment>Title of warning message box</comment>
         <translation>Es konnte keine Vorschau erzeugt werden</translation>
     </message>
     <message>
-        <location line="+341"/>
         <source>Form Settings - %1</source>
         <translation>Formulareinstellungen - %1</translation>
     </message>
     <message>
-        <location line="-527"/>
         <source>Removes empty columns and rows</source>
         <translation>Entfernt unbesetzte Zeilen und Spalten</translation>
     </message>
     <message>
-        <location line="-50"/>
         <source>Lay Out in a &amp;Form Layout</source>
         <translation>Objekte in &amp;Formularlayout anordnen</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Lays out the selected widgets in a form layout</source>
         <translation>Ordnet die ausgewählten Objekte  in einem zweispaltigen Formularlayout an</translation>
     </message>
     <message>
-        <location line="+45"/>
         <source>Si&amp;mplify Grid Layout</source>
         <translation>Tabellarisches Layout &amp;vereinfachen</translation>
     </message>
@@ -5066,12 +4151,10 @@
 <context>
     <name>qdesigner_internal::FormWindowSettings</name>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/formwindowsettings.cpp" line="+193"/>
         <source>None</source>
         <translation>Kein</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Device Profile: %1</source>
         <translation>Profil: %1</translation>
     </message>
@@ -5079,37 +4162,30 @@
 <context>
     <name>qdesigner_internal::GridPanel</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/gridpanel.ui"/>
         <source>Visible</source>
         <translation>Sichtbar</translation>
     </message>
     <message>
-        <location/>
         <source>Snap</source>
         <translation>Einschnappen</translation>
     </message>
     <message>
-        <location/>
         <source>Reset</source>
         <translation>Rücksetzen</translation>
     </message>
     <message>
-        <location/>
         <source>Form</source>
         <translation>Formular</translation>
     </message>
     <message>
-        <location/>
         <source>Grid</source>
         <translation>Raster</translation>
     </message>
     <message>
-        <location/>
         <source>Grid &amp;X</source>
         <translation>Raster &amp;X</translation>
     </message>
     <message>
-        <location/>
         <source>Grid &amp;Y</source>
         <translation>Raster &amp;Y</translation>
     </message>
@@ -5117,7 +4193,6 @@
 <context>
     <name>qdesigner_internal::GroupBoxTaskMenu</name>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/groupbox_taskmenu.cpp" line="+82"/>
         <source>Change title...</source>
         <translation>Titel ändern...</translation>
     </message>
@@ -5125,7 +4200,6 @@
 <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-Sonderzeichen einfügen</translation>
     </message>
@@ -5133,92 +4207,74 @@
 <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>Die Pixmap-Datei &apos;%1&apos; kann nicht gelesen werden.</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>The file &apos;%1&apos; does not appear to be a valid pixmap file: %2</source>
         <translation>Die Datei &apos;%1&apos; ist keine gültige Pixmap-Datei: %2</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>The file &apos;%1&apos; could not be read: %2</source>
         <translation>Die Datei &apos;%1&apos; konnte nicht gelesen werden: %2</translation>
     </message>
     <message>
-        <location line="+40"/>
         <source>Pixmap Read Error</source>
         <translation>Fehler beim Lesen der Pixmap</translation>
     </message>
     <message>
-        <location line="+54"/>
         <source>...</source>
         <translation>...</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Normal Off</source>
         <translation>Normal, aus</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Normal On</source>
         <translation>Normal, ein</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Disabled Off</source>
         <translation>Nicht verfügbar, aus</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Disabled On</source>
         <translation>Verfügbar, ein</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Active Off</source>
         <translation>Aktiv, aus</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Active On</source>
         <translation>Aktiv, ein</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Selected Off</source>
         <translation>Ausgewählt, aus</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Selected On</source>
         <translation>Ausgewählt, ein</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Choose Resource...</source>
         <translation>Ressource auswählen...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Choose File...</source>
         <translation>Datei auswählen...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Reset</source>
         <translation>Rücksetzen</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Reset All</source>
         <translation>Alle rücksetzen</translation>
     </message>
     <message>
-        <location line="-85"/>
         <source>Choose a Pixmap</source>
         <translation>Pixmap-Datei auswählen</translation>
     </message>
@@ -5226,58 +4282,46 @@
 <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>Eigenschaften &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>Eigenschaften &amp;&gt;&gt;</translation>
     </message>
     <message>
-        <location/>
         <source>Items List</source>
         <translation>Liste der Elemente</translation>
     </message>
     <message>
-        <location/>
         <source>New Item</source>
         <translation>Neues Element</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;New</source>
         <translation>&amp;Neu</translation>
     </message>
     <message>
-        <location/>
         <source>Delete Item</source>
         <translation>Element löschen</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Delete</source>
         <translation>&amp;Löschen</translation>
     </message>
     <message>
-        <location/>
         <source>Move Item Up</source>
         <translation>Element eins nach oben</translation>
     </message>
     <message>
-        <location/>
         <source>U</source>
         <translation>U</translation>
     </message>
     <message>
-        <location/>
         <source>Move Item Down</source>
         <translation>Element eins nach unten</translation>
     </message>
     <message>
-        <location/>
         <source>D</source>
         <translation>D</translation>
     </message>
@@ -5285,12 +4329,10 @@
 <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>Formatierbaren Text ändern...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Change plain text...</source>
         <translation>Text ändern...</translation>
     </message>
@@ -5298,7 +4340,6 @@
 <context>
     <name>qdesigner_internal::LanguageResourceDialog</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/iconselector.cpp" line="-258"/>
         <source>Choose Resource</source>
         <translation>Ressource auswählen</translation>
     </message>
@@ -5306,7 +4347,6 @@
 <context>
     <name>qdesigner_internal::LineEditTaskMenu</name>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/lineedit_taskmenu.cpp" line="+80"/>
         <source>Change text...</source>
         <translation>Text ändern...</translation>
     </message>
@@ -5314,17 +4354,14 @@
 <context>
     <name>qdesigner_internal::ListWidgetEditor</name>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/listwidgeteditor.cpp" line="+101"/>
         <source>Edit List Widget</source>
         <translation>List-Widget ändern</translation>
     </message>
     <message>
-        <location line="+19"/>
         <source>Edit Combobox</source>
         <translation>Combobox ändern</translation>
     </message>
     <message>
-        <location line="-51"/>
         <source>New Item</source>
         <translation>Neues Element</translation>
     </message>
@@ -5332,12 +4369,10 @@
 <context>
     <name>qdesigner_internal::ListWidgetTaskMenu</name>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/listwidget_taskmenu.cpp" line="+67"/>
         <source>Edit Items...</source>
         <translation> Elemente ändern...</translation>
     </message>
     <message>
-        <location line="+38"/>
         <source>Change List Contents</source>
         <translation>Inhalt der Liste ändern</translation>
     </message>
@@ -5345,22 +4380,18 @@
 <context>
     <name>qdesigner_internal::MdiContainerWidgetTaskMenu</name>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/containerwidget_taskmenu.cpp" line="+118"/>
         <source>Next Subwindow</source>
         <translation>Nächste Unterfenster</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Previous Subwindow</source>
         <translation>Voriges Unterfenster</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Tile</source>
         <translation>Nebeneinander anordnen</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Cascade</source>
         <translation>Stapeln</translation>
     </message>
@@ -5368,7 +4399,6 @@
 <context>
     <name>qdesigner_internal::MenuTaskMenu</name>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/menutaskmenu.cpp" line="+56"/>
         <source>Remove</source>
         <translation>Löschen</translation>
     </message>
@@ -5376,7 +4406,6 @@
 <context>
     <name>qdesigner_internal::MorphMenu</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/morphmenu.cpp" line="+264"/>
         <source>Morph into</source>
         <translation>Widget umwandeln in</translation>
     </message>
@@ -5384,42 +4413,34 @@
 <context>
     <name>qdesigner_internal::NewActionDialog</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/newactiondialog.ui"/>
         <source>New Action...</source>
         <translation>Neue Aktion...</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Text:</source>
         <translation>&amp;Text:</translation>
     </message>
     <message>
-        <location/>
         <source>Shortcut:</source>
         <translation>Tastenkürzel</translation>
     </message>
     <message>
-        <location/>
         <source>Checkable:</source>
         <translation>Ankreuzbar:</translation>
     </message>
     <message>
-        <location/>
         <source>ToolTip:</source>
         <translation>ToolTip:</translation>
     </message>
     <message>
-        <location/>
         <source>...</source>
         <translation>...</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Icon:</source>
         <translation>&amp;Icon:</translation>
     </message>
     <message>
-        <location/>
         <source>Object &amp;name:</source>
         <translation>Objekt&amp;name:</translation>
     </message>
@@ -5427,40 +4448,33 @@
 <context>
     <name>qdesigner_internal::NewDynamicPropertyDialog</name>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/newdynamicpropertydialog.cpp" line="+134"/>
         <source>Set Property Name</source>
         <translation>Namen der Eigenschaft setzen</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>Das Objekt besitzt eine bereits eine Eigenschaft namens &apos;%1&apos;.
 Bitte wählen Sie einen anderen, eindeutigen Namen.</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/newdynamicpropertydialog.ui"/>
         <source>Create Dynamic Property</source>
         <translation>Dynamische Eigenschaft erzeugen</translation>
     </message>
     <message>
-        <location/>
         <source>Property Name</source>
         <translation>Name der Eigenschaft</translation>
     </message>
     <message>
-        <location/>
         <source>Property Type</source>
         <translation>Typ der Eigenschaft</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>Der Präfix  &apos;_q_&apos; wird von der Qt-Bibliothek für interne Zwecke verwendet.Bitte wählen Sie einen anderen Namen.</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/newdynamicpropertydialog.ui"/>
         <source>horizontalSpacer</source>
         <translation></translation>
     </message>
@@ -5468,83 +4482,67 @@
 <context>
     <name>qdesigner_internal::NewFormWidget</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/newformwidget.cpp" line="+104"/>
         <source>Default size</source>
         <translation>Vorgabe</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>QVGA portrait (240x320)</source>
         <translation>QVGA Hochformat (240x320)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>QVGA landscape (320x240)</source>
         <translation>QVGA Querformat (320x240)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>VGA portrait (480x640)</source>
         <translation>VGA Hochformat (480x640)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>VGA landscape (640x480)</source>
         <translation>VGA Querformat (640x480)</translation>
     </message>
     <message>
-        <location line="+66"/>
         <source>Widgets</source>
         <extracomment>New Form Dialog Categories</extracomment>
         <translation>Widgets</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Custom Widgets</source>
         <translation>Benutzerdefinierte Widgets</translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>None</source>
         <translation>Kein</translation>
     </message>
     <message>
-        <location line="+57"/>
         <source>Error loading form</source>
         <translation>Das Formular konnte nicht geladen werden</translation>
     </message>
     <message>
-        <location line="+244"/>
         <source>Unable to open the form template file &apos;%1&apos;: %2</source>
         <translation>Die Formularvorlage &apos;%1&apos; konnte nicht geöffnet werden: %2</translation>
     </message>
     <message>
-        <location line="+67"/>
         <source>Internal error: No template selected.</source>
         <translation>Interner Fehler: Es ist keine Vorlage selektiert.</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>Wählen Sie eine Vorlage für die Vorschau</translation>
     </message>
     <message>
-        <location/>
         <source>Embedded Design</source>
         <translation>Embedded-Entwurf</translation>
     </message>
     <message>
-        <location/>
         <source>Device:</source>
         <translation>Geräteprofil:</translation>
     </message>
     <message>
-        <location/>
         <source>Screen Size:</source>
         <translation>Bildschirmgröße:</translation>
     </message>
@@ -5552,37 +4550,30 @@
 <context>
     <name>qdesigner_internal::NewPromotedClassPanel</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_promotiondialog.cpp" line="+92"/>
         <source>Add</source>
         <translation>Hinzufügen</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>New Promoted Class</source>
         <translation>Neue Klasse</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Base class name:</source>
         <translation>Basisklasse:</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Promoted class name:</source>
         <translation>Klassenname:</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Header file:</source>
         <translation>Include-Datei:</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Global include</source>
         <translation>Globale Include-Datei</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>Reset</source>
         <translation>Rücksetzen</translation>
     </message>
@@ -5590,12 +4581,10 @@
 <context>
     <name>qdesigner_internal::ObjectInspector</name>
     <message>
-        <location filename="../tools/designer/src/components/objectinspector/objectinspector.cpp" line="+316"/>
         <source>Change Current Page</source>
         <translation>Seite wechseln</translation>
     </message>
     <message>
-        <location line="+438"/>
         <source>&amp;Find in Text...</source>
         <translation>&amp;Suchen...</translation>
     </message>
@@ -5603,32 +4592,26 @@
 <context>
     <name>qdesigner_internal::OrderDialog</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/orderdialog.cpp" line="+109"/>
         <source>Index %1 (%2)</source>
         <translation>Position %1 (%2)</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/orderdialog.ui"/>
         <source>Change Page Order</source>
         <translation>Seiten umordnen</translation>
     </message>
     <message>
-        <location/>
         <source>Page Order</source>
         <translation>Reihenfolge</translation>
     </message>
     <message>
-        <location/>
         <source>Move page up</source>
         <translation>Seite eins nach oben</translation>
     </message>
     <message>
-        <location/>
         <source>Move page down</source>
         <translation>Seite eins nach unten</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/orderdialog.cpp" line="+3"/>
         <source>%1 %2</source>
         <translation>%1 %2</translation>
     </message>
@@ -5636,47 +4619,38 @@
 <context>
     <name>qdesigner_internal::PaletteEditor</name>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/paletteeditor.ui"/>
         <source>Edit Palette</source>
         <translation>Palette ändern</translation>
     </message>
     <message>
-        <location/>
         <source>Tune Palette</source>
         <translation>Palette</translation>
     </message>
     <message>
-        <location/>
         <source>Show Details</source>
         <translation>Details einblenden</translation>
     </message>
     <message>
-        <location/>
         <source>Compute Details</source>
         <translation>Details berechnen</translation>
     </message>
     <message>
-        <location/>
         <source>Quick</source>
         <translation>Einfach</translation>
     </message>
     <message>
-        <location/>
         <source>Preview</source>
         <translation>Vorschau</translation>
     </message>
     <message>
-        <location/>
         <source>Disabled</source>
         <translation>Ausgegraut</translation>
     </message>
     <message>
-        <location/>
         <source>Inactive</source>
         <translation>Inaktiv</translation>
     </message>
     <message>
-        <location/>
         <source>Active</source>
         <translation>Aktiv</translation>
     </message>
@@ -5684,7 +4658,6 @@
 <context>
     <name>qdesigner_internal::PaletteEditorButton</name>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/paletteeditorbutton.cpp" line="+57"/>
         <source>Change Palette</source>
         <translation>Palette ändern</translation>
     </message>
@@ -5692,22 +4665,18 @@
 <context>
     <name>qdesigner_internal::PaletteModel</name>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/paletteeditor.cpp" line="+374"/>
         <source>Color Role</source>
         <translation>Farbrolle</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Active</source>
         <translation>Aktiv</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Inactive</source>
         <translation>Inaktiv</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Disabled</source>
         <translation>Ausgegraut</translation>
     </message>
@@ -5715,28 +4684,22 @@
 <context>
     <name>qdesigner_internal::PixmapEditor</name>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/designerpropertymanager.cpp" line="-1539"/>
         <source>Copy Path</source>
         <translation>Pfad kopieren</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Paste Path</source>
         <translation>Pfad einfügen</translation>
     </message>
     <message>
-        <location line="-3"/>
         <source>Choose Resource...</source>
         <translation>Ressource auswählen...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Choose File...</source>
         <translation>Datei auswählen...</translation>
     </message>
     <message>
-        <location line="+8"/>
-        <location line="+16"/>
         <source>...</source>
         <translation>...</translation>
     </message>
@@ -5744,7 +4707,6 @@
 <context>
     <name>qdesigner_internal::PlainTextEditorDialog</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/plaintexteditor.cpp" line="+65"/>
         <source>Edit text</source>
         <translation>Text bearbeiten</translation>
     </message>
@@ -5752,37 +4714,30 @@
 <context>
     <name>qdesigner_internal::PluginDialog</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/plugindialog.cpp" line="+72"/>
         <source>Components</source>
         <translation>Komponenten</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>Plugin Information</source>
         <translation>Plugins</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Refresh</source>
         <translation>Neu laden</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Scan for newly installed custom widget plugins.</source>
         <translation>Nach neu installierten Plugins mit benutzerdefinierten Widgets suchen.</translation>
     </message>
     <message>
-        <location line="+48"/>
         <source>Qt Designer couldn&apos;t find any plugins</source>
         <translation>Qt Designer kann keine Plugins finden</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Qt Designer found the following plugins</source>
         <translation>Qt Designer hat die folgenden Plugins gefunden</translation>
     </message>
     <message>
-        <location line="+55"/>
         <source>New custom widget plugins have been found.</source>
         <translation>Es wurden neu installierte Plugins mit benutzerdefinierten Widgets gefunden.</translation>
     </message>
@@ -5790,7 +4745,6 @@
 <context>
     <name>qdesigner_internal::PreviewActionGroup</name>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/previewactiongroup.cpp" line="+95"/>
         <source>%1 Style</source>
         <translation>%1-Stil</translation>
     </message>
@@ -5798,47 +4752,38 @@
 <context>
     <name>qdesigner_internal::PreviewConfigurationWidget</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/previewconfigurationwidget.cpp" line="+139"/>
         <source>Default</source>
         <translation>Vorgabe</translation>
     </message>
     <message>
-        <location line="+22"/>
         <source>None</source>
         <translation>Kein</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Browse...</source>
         <translation>Durchsuchen...</translation>
     </message>
     <message>
-        <location line="+118"/>
         <source>Load Custom Device Skin</source>
         <translation>Benutzerdefinierten Geräte-Skin laden </translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>All QVFB Skins (*.%1)</source>
         <translation>Alle QVFB-Skins (*.%1)</translation>
     </message>
     <message>
-        <location line="+16"/>
         <source>%1 - Duplicate Skin</source>
         <translation>%1 - Skin bereits vorhanden</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>The skin &apos;%1&apos; already exists.</source>
         <translation>Der Skin &apos;%1&apos; ist bereits vorhanden.</translation>
     </message>
     <message>
-        <location line="+14"/>
         <source>%1 - Error</source>
         <translation>%1 - Fehler</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>%1 is not a valid skin directory:
 %2</source>
         <translation>%1 ist kein gültiges Verzeichnis eines Skins:
@@ -5848,24 +4793,20 @@
 <context>
     <name>qdesigner_internal::PreviewDeviceSkin</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/previewmanager.cpp" line="+259"/>
         <source>&amp;Portrait</source>
         <translation>&amp;Hochformat</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Landscape (&amp;CCW)</source>
         <extracomment>Rotate form preview counter-clockwise</extracomment>
         <translation>Querformat (&amp;entgegen Uhrzeigersinn)</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>&amp;Landscape (CW)</source>
         <extracomment>Rotate form preview clockwise</extracomment>
         <translation>Querformat (im &amp;Uhrzeigersinn)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Close</source>
         <translation>&amp;Schließen</translation>
     </message>
@@ -5873,7 +4814,6 @@
 <context>
     <name>qdesigner_internal::PreviewManager</name>
     <message>
-        <location line="+426"/>
         <source>%1 - [Preview]</source>
         <translation>%1 - [Vorschau]</translation>
     </message>
@@ -5881,7 +4821,6 @@
 <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>
@@ -5891,57 +4830,46 @@
 <context>
     <name>qdesigner_internal::PreviewWidget</name>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/previewwidget.ui"/>
         <source>Preview Window</source>
         <translation>Vorschaufenster</translation>
     </message>
     <message>
-        <location/>
         <source>LineEdit</source>
         <translation></translation>
     </message>
     <message>
-        <location/>
         <source>ComboBox</source>
         <translation></translation>
     </message>
     <message>
-        <location/>
         <source>PushButton</source>
         <translation></translation>
     </message>
     <message>
-        <location/>
         <source>ButtonGroup2</source>
         <translation></translation>
     </message>
     <message>
-        <location/>
         <source>CheckBox1</source>
         <translation></translation>
     </message>
     <message>
-        <location/>
         <source>CheckBox2</source>
         <translation></translation>
     </message>
     <message>
-        <location/>
         <source>ButtonGroup</source>
         <translation></translation>
     </message>
     <message>
-        <location/>
         <source>RadioButton1</source>
         <translation></translation>
     </message>
     <message>
-        <location/>
         <source>RadioButton2</source>
         <translation></translation>
     </message>
     <message>
-        <location/>
         <source>RadioButton3</source>
         <translation></translation>
     </message>
@@ -5949,22 +4877,18 @@
 <context>
     <name>qdesigner_internal::PromotionModel</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/promotionmodel.cpp" line="+17"/>
         <source>Name</source>
         <translation>Name</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Header file</source>
         <translation>Include-Datei</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Global include</source>
         <translation>Globale Include-Datei</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Usage</source>
         <translation>Verwendet</translation>
     </message>
@@ -5972,27 +4896,22 @@
 <context>
     <name>qdesigner_internal::PromotionTaskMenu</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/promotiontaskmenu.cpp" line="+85"/>
         <source>Promoted widgets...</source>
         <translation>Benutzerdefinierte Klassen...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Promote to ...</source>
         <translation>Als Platzhalter für benutzerdefinierte Klasse festlegen...</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Promote to</source>
         <translation>Als Platzhalter für benutzerdefinierte Klasse festlegen</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Demote to %1</source>
         <translation>Platzhalter für benutzerdefinierte Klasse entfernen und in %1 wandeln</translation>
     </message>
     <message>
-        <location line="-2"/>
         <source>Change signals/slots...</source>
         <translation>Signale/Slots ändern...</translation>
     </message>
@@ -6000,59 +4919,48 @@
 <context>
     <name>qdesigner_internal::PropertyEditor</name>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/propertyeditor.cpp" line="+231"/>
         <source>Add Dynamic Property...</source>
         <translation>Dynamische Eigenschaft hinzufügen...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Remove Dynamic Property</source>
         <translation>Dynamische Eigenschaft löschen</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Tree View</source>
         <translation>Baumansicht</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Drop Down Button View</source>
         <translation>Detailansicht</translation>
     </message>
     <message>
-        <location line="+598"/>
         <source>Object: %1
 Class: %2</source>
         <translation>Objekt: %1
 Klasse: %2</translation>
     </message>
     <message>
-        <location line="-601"/>
         <source>Sorting</source>
         <translation>Sortiert</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Color Groups</source>
         <translation>Farbige Hervorhebung</translation>
     </message>
     <message>
-        <location line="+61"/>
         <source>Configure Property Editor</source>
         <translation>Anzeige der Eigenschaften konfigurieren</translation>
     </message>
     <message>
-        <location line="-14"/>
         <source>String...</source>
         <translation>Zeichenkette...</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Bool...</source>
         <translation>Boolescher Wert...</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Other...</source>
         <translation>Anderer Typ...</translation>
     </message>
@@ -6060,7 +4968,6 @@
 <context>
     <name>qdesigner_internal::PropertyLineEdit</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/propertylineedit.cpp" line="+88"/>
         <source>Insert line break</source>
         <translation>Zeilenumbruch einfügen</translation>
     </message>
@@ -6068,27 +4975,22 @@
 <context>
     <name>qdesigner_internal::QDesignerPromotionDialog</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_promotiondialog.cpp" line="+85"/>
         <source>Promoted Widgets</source>
         <translation>Platzhalter für benutzerdefinierte Widgets</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Promoted Classes</source>
         <translation>Platzhalter für benutzerdefinierte Klassen</translation>
     </message>
     <message>
-        <location line="+60"/>
         <source>Promote</source>
         <translation>Anwenden</translation>
     </message>
     <message>
-        <location line="+169"/>
         <source>%1 - Error</source>
         <translation>%1 - Fehler</translation>
     </message>
     <message>
-        <location line="-17"/>
         <source>Change signals/slots...</source>
         <translation>Signale/Slots ändern...</translation>
     </message>
@@ -6096,22 +4998,18 @@
 <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>Laden der Ressourcendatei</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>Die Ressourcendatei  &lt;p&gt;&lt;b&gt;%1&lt;/b&gt;&lt;/p&gt;&lt;p&gt; konnte nicht gefunden werden. Möchten Sie einen neuen Pfad eingeben?&lt;/p&gt;</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>New location for %1</source>
         <translation>Neuer Pfad für %1</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Resource files (*.qrc)</source>
         <translation>Ressourcendateien (*.qrc)</translation>
     </message>
@@ -6119,67 +5017,54 @@
 <context>
     <name>qdesigner_internal::QDesignerTaskMenu</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_taskmenu.cpp" line="+68"/>
         <source>Change objectName...</source>
         <translation>Objektnamen ändern...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Change toolTip...</source>
         <translation>ToolTip ändern...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Change whatsThis...</source>
         <translation>WhatsThis ändern...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Change styleSheet...</source>
         <translation>Stylesheet ändern...</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Create Menu Bar</source>
         <translation>Menüleiste erzeugen</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Add Tool Bar</source>
         <translation>Werkzeugleiste hinzufügen</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Create Status Bar</source>
         <translation>Statuszeile hinzufügen</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Remove Status Bar</source>
         <translation>Statuszeile löschen</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Change script...</source>
         <translation>Skript ändern...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Change signals/slots...</source>
         <translation>Signale/Slots ändern...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Go to slot...</source>
         <translation>Slot anzeigen...</translation>
     </message>
     <message>
-        <location line="+413"/>
         <source>no signals available</source>
         <translation>Es sind keine Signale vorhanden</translation>
     </message>
     <message numerus="yes">
-        <location line="+67"/>
         <source>Set size constraint on %n widget(s)</source>
         <translation>
             <numerusform>Größenbeschränkung eines Widgets festlegen</numerusform>
@@ -6187,47 +5072,38 @@
         </translation>
     </message>
     <message>
-        <location line="-477"/>
         <source>Size Constraints</source>
         <translation>Größe</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Set Minimum Width</source>
         <translation>Minimalbreite festlegen</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Set Minimum Height</source>
         <translation>Minimalhöhe  festlegen</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Set Minimum Size</source>
         <translation>Minimalgröße festlegen</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Set Maximum Width</source>
         <translation>Maximalbreite festlegen</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Set Maximum Height</source>
         <translation>Maximalhöhe festlegen</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Set Maximum Size</source>
         <translation>Maximalgröße festlegen</translation>
     </message>
     <message>
-        <location line="+235"/>
         <source>Edit ToolTip</source>
         <translation>ToolTip bearbeiten</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Edit WhatsThis</source>
         <translation>What&apos;sThis bearbeiten</translation>
     </message>
@@ -6235,41 +5111,33 @@
 <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>Ungültiges Element &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>Der XML-Code für das Widget %3 enthält einen Fehler bei Zeile %1, Spalte %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>Der XML-Code für das Widget %1 enthält keine Widgets.%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>Fehler bei Zeile %1 von %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>An Stelle des erwarteten &lt;widget&gt;- oder &lt;ui&gt;-Elementes wurde &lt;%1&gt; gefunden</translation>
     </message>
     <message>
-        <location line="+19"/>
         <source>Unexpected end of file encountered when parsing widgets.</source>
         <translation>Vorzeitiges Dateiende beim Lesen der Widget-Box-Konfiguration.</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>A widget element could not be found.</source>
         <translation>Es fehlt das Widget-Element.</translation>
     </message>
@@ -6277,73 +5145,58 @@
 <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>Farbton</translation>
     </message>
     <message>
-        <location line="-3"/>
         <source>Sat</source>
         <translation>Sättigung</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Val</source>
         <translation>Wert</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Saturation</source>
         <translation>Sättigung</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Value</source>
         <translation>Wert</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>Rot</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Green</source>
         <translation>Grün</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Blue</source>
         <translation>Blau</translation>
     </message>
@@ -6351,27 +5204,22 @@
 <context>
     <name>qdesigner_internal::RichTextEditorDialog</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/richtexteditor.cpp" line="+436"/>
         <source>Edit text</source>
         <translation>Text bearbeiten</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;Abbrechen</translation>
     </message>
     <message>
-        <location line="-9"/>
         <source>Rich Text</source>
         <translation>Text</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Source</source>
         <translation>Quelltext</translation>
     </message>
@@ -6379,72 +5227,58 @@
 <context>
     <name>qdesigner_internal::RichTextEditorToolBar</name>
     <message>
-        <location line="-294"/>
         <source>Bold</source>
         <translation>Fett</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>CTRL+B</source>
         <translation>CTRL+F</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Italic</source>
         <translation>Kursiv</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>CTRL+I</source>
         <translation>CTRL+K</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Underline</source>
         <translation>Unterstreichen</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>CTRL+U</source>
         <translation>CTRL+U</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>Left Align</source>
         <translation>Linksbündig ausrichten</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Center</source>
         <translation>Zentrieren</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Right Align</source>
         <translation>Rechtsbündig ausrichten</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Justify</source>
         <translation>Blocksatz</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Superscript</source>
         <translation>Hochstellung</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Subscript</source>
         <translation>Tiefstellung</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Insert &amp;Link</source>
         <translation>&amp;Link einfügen</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Insert &amp;Image</source>
         <translation>&amp;Bild einfügen</translation>
     </message>
@@ -6452,17 +5286,14 @@
 <context>
     <name>qdesigner_internal::ScriptDialog</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/scriptdialog.cpp" line="+66"/>
         <source>Edit script</source>
         <translation>Skript bearbeiten</translation>
     </message>
     <message>
-        <location line="+56"/>
         <source>Syntax error</source>
         <translation>Syntaxfehler</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;Geben Sie ein Qt-Skript zur Ausführung während des Formularaufbaus ein.&lt;br&gt;Auf das Widget und seine untergeordneten Widgets kann durch die Variablen &lt;i&gt;widget&lt;/i&gt; und &lt;i&gt;childWidgets&lt;/i&gt; zugegriffen werden.</translation>
     </message>
@@ -6470,7 +5301,6 @@
 <context>
     <name>qdesigner_internal::ScriptErrorDialog</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/scripterrordialog.cpp" line="+27"/>
         <source>Script errors</source>
         <translation>Skriptfehler</translation>
     </message>
@@ -6478,23 +5308,18 @@
 <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>Es existiert bereits ein Slot mit der Signatur &apos;%1&apos;.</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>There is already a signal with the signature &apos;%1&apos;.</source>
         <translation>Es existiert bereits ein Signal mit der Signatur &apos;%1&apos;.</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>%1 - Duplicate Signature</source>
         <translation>%1 - Doppelte Signatur</translation>
     </message>
     <message>
-        <location line="+21"/>
-        <location line="+76"/>
         <source>Signals/Slots of %1</source>
         <translation>Signale/Slots von %1</translation>
     </message>
@@ -6502,12 +5327,10 @@
 <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>Signale und Slots bearbeiten</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>F4</source>
         <translation>F4</translation>
     </message>
@@ -6515,7 +5338,6 @@
 <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>Signale und Slots bearbeiten</translation>
     </message>
@@ -6523,7 +5345,6 @@
 <context>
     <name>qdesigner_internal::StatusBarTaskMenu</name>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/toolbar_taskmenu.cpp" line="+81"/>
         <source>Remove</source>
         <translation>Löschen</translation>
     </message>
@@ -6531,7 +5352,6 @@
 <context>
     <name>qdesigner_internal::StringListEditorButton</name>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/stringlisteditorbutton.cpp" line="+56"/>
         <source>Change String List</source>
         <translation>Zeichenkettenliste ändern</translation>
     </message>
@@ -6539,38 +5359,30 @@
 <context>
     <name>qdesigner_internal::StyleSheetEditorDialog</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/stylesheeteditor.cpp" line="+97"/>
         <source>Edit Style Sheet</source>
         <translation>Stylesheet bearbeiten</translation>
     </message>
     <message>
-        <location line="-7"/>
-        <location line="+280"/>
         <source>Valid Style Sheet</source>
         <translation>Stylesheet gültig</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Invalid Style Sheet</source>
         <translation>Stylesheet ungültig</translation>
     </message>
     <message>
-        <location line="-281"/>
         <source>Add Resource...</source>
         <translation>Ressource hinzufügen...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Add Gradient...</source>
         <translation>Gradient hinzufügen...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Add Color...</source>
         <translation>Farbe hinzufügen...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Add Font...</source>
         <translation>Font hinzufügen...</translation>
     </message>
@@ -6578,27 +5390,22 @@
 <context>
     <name>qdesigner_internal::TabOrderEditor</name>
     <message>
-        <location filename="../tools/designer/src/components/tabordereditor/tabordereditor.cpp" line="+363"/>
         <source>Start from Here</source>
         <translation>Hier neu beginnen</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Restart</source>
         <translation>Neu beginnen</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Tab Order List...</source>
         <translation>Tabulatorreihenfolge...</translation>
     </message>
     <message>
-        <location line="+44"/>
         <source>Tab Order List</source>
         <translation>Tabulatorreihenfolge</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Tab Order</source>
         <translation>Tabulatorreihenfolge</translation>
     </message>
@@ -6606,7 +5413,6 @@
 <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>Tabulatorreihenfolge bearbeiten</translation>
     </message>
@@ -6614,7 +5420,6 @@
 <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>Tabulatorreihenfolge bearbeiten</translation>
     </message>
@@ -6622,48 +5427,38 @@
 <context>
     <name>qdesigner_internal::TableWidgetEditor</name>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/tablewidgeteditor.cpp" line="+67"/>
         <source>New Column</source>
         <translation>Neue Spalte</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>New Row</source>
         <translation>Neue Zeile</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>&amp;Columns</source>
         <translation>&amp;Spalten</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Rows</source>
         <translation>&amp;Zeilen</translation>
     </message>
     <message>
-        <location line="+137"/>
         <source>Properties &amp;&lt;&lt;</source>
         <translation>Eigenschaften &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>Eigenschaften &amp;&gt;&gt;</translation>
     </message>
     <message>
-        <location/>
         <source>Edit Table Widget</source>
         <translation>Table Widget ändern</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Items</source>
         <translation>&amp;Inhalt</translation>
     </message>
     <message>
-        <location/>
         <source>Table Items</source>
         <translation>Tabellenelemente</translation>
     </message>
@@ -6671,7 +5466,6 @@
 <context>
     <name>qdesigner_internal::TableWidgetTaskMenu</name>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/tablewidget_taskmenu.cpp" line="+64"/>
         <source>Edit Items...</source>
         <translation>Elemente ändern...</translation>
     </message>
@@ -6679,22 +5473,18 @@
 <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>Wählen Sie ein Verzeichnis zum Abspeichern der Vorlagen aus</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/templateoptionspage.ui"/>
         <source>Form</source>
         <translation></translation>
     </message>
     <message>
-        <location/>
         <source>Additional Template Paths</source>
         <translation>Zusätzliche Verzeichnisse für Vorlagen</translation>
     </message>
     <message>
-        <location/>
         <source>...</source>
         <translation>...</translation>
     </message>
@@ -6702,22 +5492,18 @@
 <context>
     <name>qdesigner_internal::TextEditTaskMenu</name>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/textedit_taskmenu.cpp" line="+59"/>
         <source>Change HTML...</source>
         <translation>HTML ändern...</translation>
     </message>
     <message>
-        <location line="-1"/>
         <source>Edit HTML</source>
         <translation>HTML bearbeiten</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>Edit Text</source>
         <translation>Text bearbeiten</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Change Plain Text...</source>
         <translation>Text ändern...</translation>
     </message>
@@ -6725,22 +5511,18 @@
 <context>
     <name>qdesigner_internal::TextEditor</name>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/designerpropertymanager.cpp" line="-204"/>
         <source>Choose Resource...</source>
         <translation>Ressource auswählen...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Choose File...</source>
         <translation>Datei auswählen...</translation>
     </message>
     <message>
-        <location line="+123"/>
         <source>Choose a File</source>
         <translation></translation>
     </message>
     <message>
-        <location line="-118"/>
         <source>...</source>
         <translation>...</translation>
     </message>
@@ -6748,27 +5530,22 @@
 <context>
     <name>qdesigner_internal::ToolBarEventFilter</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_toolbar.cpp" line="+234"/>
         <source>Insert Separator</source>
         <translation>Trenner einfügen</translation>
     </message>
     <message>
-        <location line="-65"/>
         <source>Remove action &apos;%1&apos;</source>
         <translation>Aktion &apos;%1&apos; löschen</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Remove Toolbar &apos;%1&apos;</source>
         <translation>Werkzeugleiste &apos;%1&apos; löschen</translation>
     </message>
     <message>
-        <location line="-28"/>
         <source>Insert Separator before &apos;%1&apos;</source>
         <translation>Trenner vor &apos;%1&apos; einfügen</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Append Separator</source>
         <translation>Trenner hinzufügen</translation>
     </message>
@@ -6776,125 +5553,98 @@
 <context>
     <name>qdesigner_internal::TreeWidgetEditor</name>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/treewidgeteditor.cpp" line="+76"/>
         <source>&amp;Columns</source>
         <translation>&amp;Spalten</translation>
     </message>
     <message>
-        <location line="+69"/>
         <source>Per column properties</source>
         <translation>Spalteneigenschaften</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Common properties</source>
         <translation>Gemeinsame Eigenschaften</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>Neues Element</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/treewidgeteditor.cpp" line="+194"/>
         <source>Properties &amp;&lt;&lt;</source>
         <translation>Eigenschaften &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>Eigenschaften &amp;&gt;&gt;</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/treewidgeteditor.cpp" line="-327"/>
         <source>New Column</source>
         <translation>Neue Spalte</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/treewidgeteditor.ui"/>
         <source>Edit Tree Widget</source>
         <translation>Tree Widget ändern</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Items</source>
         <translation>&amp;Inhalt</translation>
     </message>
     <message>
-        <location/>
         <source>Tree Items</source>
         <translation>Elemente</translation>
     </message>
     <message>
-        <location/>
-        <location filename="../tools/designer/src/components/taskmenu/treewidgeteditor.cpp" line="+150"/>
         <source>New Subitem</source>
         <translation></translation>
     </message>
     <message>
-        <location/>
         <source>New &amp;Subitem</source>
         <translation>Neues &amp;untergeordnetes Element</translation>
     </message>
     <message>
-        <location/>
         <source>Delete Item</source>
         <translation>Element löschen</translation>
     </message>
     <message>
-        <location/>
         <source>Move Item Left (before Parent Item)</source>
         <translation>Element nach links (vor übergeordnetes Element)</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>Element nach rechts (als untergeordnetes Element des nächsten gleichrangigen Elements)</translation>
     </message>
     <message>
-        <location/>
         <source>R</source>
         <translation>R</translation>
     </message>
     <message>
-        <location/>
         <source>Move Item Up</source>
         <translation>Element eins nach oben</translation>
     </message>
     <message>
-        <location/>
         <source>U</source>
         <translation>U</translation>
     </message>
     <message>
-        <location/>
         <source>Move Item Down</source>
         <translation>Element eins nach unten</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;Neu</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Delete</source>
         <translation>&amp;Löschen</translation>
     </message>
@@ -6902,7 +5652,6 @@
 <context>
     <name>qdesigner_internal::TreeWidgetTaskMenu</name>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/treewidget_taskmenu.cpp" line="+63"/>
         <source>Edit Items...</source>
         <translation>Elemente ändern...</translation>
     </message>
@@ -6910,7 +5659,6 @@
 <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>Warnung: Die Erzeugung des Widgets in der Widget-Box schlug fehl. Das könnte durch fehlerhaften XML-Code benutzerdefinierter Widgets verursacht worden sein.</translation>
     </message>
@@ -6918,42 +5666,34 @@
 <context>
     <name>qdesigner_internal::WidgetBoxTreeWidget</name>
     <message>
-        <location filename="../tools/designer/src/components/widgetbox/widgetboxtreewidget.cpp" line="-268"/>
         <source>Scratchpad</source>
         <translation>Ablage</translation>
     </message>
     <message>
-        <location line="+370"/>
         <source>Custom Widgets</source>
         <translation>Benutzerdefinierte Widgets</translation>
     </message>
     <message>
-        <location line="+263"/>
         <source>Expand all</source>
         <translation>Alles aufklappen</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Collapse all</source>
         <translation>Alles zuklappen</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>List View</source>
         <translation>Listenansicht</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Icon View</source>
         <translation>Icon-Ansicht</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Remove</source>
         <translation>Löschen</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Edit name</source>
         <translation>Namen ändern</translation>
     </message>
@@ -6961,7 +5701,6 @@
 <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>Es wurde ein Plugin gefunden, das ein benutzerdefiniertes Widget enthält, dessen Klassenname (%1) einer existierenden Klasse entspricht.</translation>
     </message>
@@ -6969,7 +5708,6 @@
 <context>
     <name>qdesigner_internal::WidgetEditorTool</name>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/tool_widgeteditor.cpp" line="+67"/>
         <source>Edit Widgets</source>
         <translation>Widgets bearbeiten</translation>
     </message>
@@ -6977,33 +5715,27 @@
 <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>Die Factory für benutzerdefinierte Widgets der Klasse %1 gab einen 0-Zeiger zurück.</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>Bei der Erzeugung von Widgets wurden widersprüchliche Klassennamen festgestellt: Die Factory für benutzerdefinierte Widgets der Klasse %1 gab ein Widget der Klasse %2 zurück.</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>Der Container  &apos;%1&apos; (%2) hat keine Seite, auf der ein Layout angelegt werden könnte. Das deutet auf eine inkonsistente ui-Datei hin; wahrscheinlich wurde ein Layout direkt auf dem Container spezifiziert.</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>Es wurde versucht, ein Layout auf das Widget &apos;%1&apos; (%2) zu setzen, welches bereits ein Layout vom Typ %3 hat. Das deutet auf eine Inkonsistenz in der ui-Datei hin.</translation>
     </message>
     <message>
-        <location line="+211"/>
         <source>Cannot create style &apos;%1&apos;.</source>
         <translation>Der Stil &apos;%1&apos; konnte nicht erzeugt werden.</translation>
     </message>
     <message>
-        <location line="-354"/>
         <source>%1 Widget</source>
         <translation>%1 Widget</translation>
     </message>
@@ -7011,12 +5743,10 @@
 <context>
     <name>qdesigner_internal::WizardContainerWidgetTaskMenu</name>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/containerwidget_taskmenu.cpp" line="-49"/>
         <source>Next</source>
         <translation>Nächste</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Back</source>
         <translation>Vorige</translation>
     </message>
@@ -7024,7 +5754,6 @@
 <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>
@@ -7033,7 +5762,6 @@
 <context>
     <name>qdesigner_internal::ZoomablePreviewDeviceSkin</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/previewmanager.cpp" line="-270"/>
         <source>&amp;Zoom</source>
         <translation>&amp;Vergrößern</translation>
     </message>
--- a/translations/designer_fr.ts	Fri Sep 17 08:34:18 2010 +0300
+++ b/translations/designer_fr.ts	Mon Oct 04 01:19:32 2010 +0300
@@ -4,27 +4,27 @@
 <context>
     <name>AbstractFindWidget</name>
     <message>
-        <location filename="../tools/shared/findwidget/abstractfindwidget.cpp" line="127"/>
+        <location filename="../tools/shared/findwidget/abstractfindwidget.cpp" line="+127"/>
         <source>&amp;Previous</source>
         <translation>&amp;Précédent</translation>
     </message>
     <message>
-        <location filename="../tools/shared/findwidget/abstractfindwidget.cpp" line="135"/>
+        <location line="+8"/>
         <source>&amp;Next</source>
         <translation>&amp;Suivant</translation>
     </message>
     <message>
-        <location filename="../tools/shared/findwidget/abstractfindwidget.cpp" line="159"/>
+        <location line="+24"/>
         <source>&amp;Case sensitive</source>
         <translation>&amp;Sensible à la casse</translation>
     </message>
     <message>
-        <location filename="../tools/shared/findwidget/abstractfindwidget.cpp" line="167"/>
+        <location line="+8"/>
         <source>Whole &amp;words</source>
         <translation>M&amp;ots complets</translation>
     </message>
     <message>
-        <location filename="../tools/shared/findwidget/abstractfindwidget.cpp" line="179"/>
+        <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;Recherche à partir du début</translation>
     </message>
@@ -32,17 +32,17 @@
 <context>
     <name>AddLinkDialog</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/addlinkdialog.ui" line="5"/>
+        <location filename="../tools/designer/src/lib/shared/addlinkdialog.ui"/>
         <source>Insert Link</source>
         <translation>Insérer lien</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/addlinkdialog.ui" line="19"/>
+        <location/>
         <source>Title:</source>
         <translation>Titre :</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/addlinkdialog.ui" line="36"/>
+        <location/>
         <source>URL:</source>
         <translation>URL :</translation>
     </message>
@@ -50,7 +50,7 @@
 <context>
     <name>AppFontDialog</name>
     <message>
-        <location filename="../tools/designer/src/designer/appfontdialog.cpp" line="418"/>
+        <location filename="../tools/designer/src/designer/appfontdialog.cpp" line="+418"/>
         <source>Additional Fonts</source>
         <translation>Polices additionnelles</translation>
     </message>
@@ -58,38 +58,38 @@
 <context>
     <name>AppFontManager</name>
     <message>
-        <location filename="../tools/designer/src/designer/appfontdialog.cpp" line="151"/>
+        <location line="-267"/>
         <source>&apos;%1&apos; is not a file.</source>
         <translation>&apos;%1&apos; n&apos;est pas un fichier.</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/appfontdialog.cpp" line="155"/>
+        <location line="+4"/>
         <source>The font file &apos;%1&apos; does not have read permissions.</source>
         <translation>Le fichier de la police &apos;%1&apos; n&apos;a pas les permissions de lecture.</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/appfontdialog.cpp" line="163"/>
+        <location line="+8"/>
         <source>The font file &apos;%1&apos; is already loaded.</source>
         <translation>Le fichier de la police &apos;%1&apos; est déjà chargé.</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/appfontdialog.cpp" line="170"/>
+        <location line="+7"/>
         <source>The font file &apos;%1&apos; could not be loaded.</source>
         <translatorcomment>passé composé plutôt</translatorcomment>
         <translation>Le fichier de la police &apos;%1&apos; n&apos;a pas pu chargé.</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/appfontdialog.cpp" line="187"/>
+        <location line="+17"/>
         <source>&apos;%1&apos; is not a valid font id.</source>
         <translation>&apos;%1&apos; n&apos;est pas un identifiant de police valide.</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/appfontdialog.cpp" line="198"/>
+        <location line="+11"/>
         <source>There is no loaded font matching the id &apos;%1&apos;.</source>
         <translation>Il n&apos;y a pas de police chargée correspondant à l&apos;identifiant &apos;%1&apos;.</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/appfontdialog.cpp" line="213"/>
+        <location line="+15"/>
         <source>The font &apos;%1&apos; (%2) could not be unloaded.</source>
         <translation>La police &apos;%1&apos; (%2) ne peut pas être déchargée.</translation>
     </message>
@@ -97,53 +97,53 @@
 <context>
     <name>AppFontWidget</name>
     <message>
-        <location filename="../tools/designer/src/designer/appfontdialog.cpp" line="239"/>
+        <location line="+26"/>
         <source>Fonts</source>
         <translation>Polices</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/appfontdialog.cpp" line="297"/>
+        <location line="+58"/>
         <source>Add font files</source>
         <translation>Ajouter des fichiers de polices</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/appfontdialog.cpp" line="302"/>
+        <location line="+5"/>
         <source>Remove current font file</source>
         <translation>Retirer le fichier de police courant</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/appfontdialog.cpp" line="306"/>
+        <location line="+4"/>
         <source>Remove all font files</source>
         <translation>Retirer tous les fichiers de polices</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/appfontdialog.cpp" line="325"/>
+        <location line="+19"/>
         <source>Add Font Files</source>
         <translation>Ajouter des fichiers de polices</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/appfontdialog.cpp" line="326"/>
+        <location line="+1"/>
         <source>Font files (*.ttf)</source>
         <translation>Fichier de polices (*.ttf)</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/appfontdialog.cpp" line="339"/>
+        <location line="+13"/>
         <source>Error Adding Fonts</source>
         <translation>Erreur dans l&apos;ajout de polices</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/appfontdialog.cpp" line="363"/>
+        <location line="+24"/>
         <source>Error Removing Fonts</source>
         <translatorcomment>s/de/des/  pour être cohérent avec le suivant...</translatorcomment>
         <translation>Erreur lors de la suppression des polices</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/appfontdialog.cpp" line="385"/>
+        <location line="+22"/>
         <source>Remove Fonts</source>
         <translation>Retirer les polices</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/appfontdialog.cpp" line="385"/>
+        <location line="+0"/>
         <source>Would you like to remove all fonts?</source>
         <translation>Voulez-vous supprimer toutes les polices ?</translation>
     </message>
@@ -151,12 +151,12 @@
 <context>
     <name>AppearanceOptionsWidget</name>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_appearanceoptions.ui" line="14"/>
+        <location filename="../tools/designer/src/designer/qdesigner_appearanceoptions.ui"/>
         <source>Form</source>
         <translation>Formulaire</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_appearanceoptions.ui" line="20"/>
+        <location/>
         <source>User Interface Mode</source>
         <translation>Mode de l&apos;interface utilisateur</translation>
     </message>
@@ -164,17 +164,17 @@
 <context>
     <name>AssistantClient</name>
     <message>
-        <location filename="../tools/designer/src/designer/assistantclient.cpp" line="100"/>
+        <location filename="../tools/designer/src/designer/assistantclient.cpp" line="+100"/>
         <source>Unable to send request: Assistant is not responding.</source>
         <translation>Impossible d&apos;envoyer la requête : Assistant ne répond pas.</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/assistantclient.cpp" line="139"/>
+        <location line="+39"/>
         <source>The binary &apos;%1&apos; does not exist.</source>
         <translation>Le binaire &apos;%1&apos; n&apos;existe pas.</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/assistantclient.cpp" line="148"/>
+        <location line="+9"/>
         <source>Unable to launch assistant (%1).</source>
         <translation>Impossible de démarrer Assistant (%1).</translation>
     </message>
@@ -182,93 +182,93 @@
 <context>
     <name>BrushPropertyManager</name>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/brushpropertymanager.cpp" line="52"/>
+        <location filename="../tools/designer/src/components/propertyeditor/brushpropertymanager.cpp" line="+52"/>
         <source>No brush</source>
         <translation>Pas de pinceau</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/brushpropertymanager.cpp" line="53"/>
+        <location line="+1"/>
         <source>Solid</source>
         <translatorcomment>c&apos;est plutôt continu ou &quot;trait continu&quot; pour moi</translatorcomment>
         <translation>Trait continu</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/brushpropertymanager.cpp" line="54"/>
+        <location line="+1"/>
         <source>Dense 1</source>
         <translation>Dense 1</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/brushpropertymanager.cpp" line="55"/>
+        <location line="+1"/>
         <source>Dense 2</source>
         <translation>Dense 2</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/brushpropertymanager.cpp" line="56"/>
+        <location line="+1"/>
         <source>Dense 3</source>
         <translation>Dense 3</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/brushpropertymanager.cpp" line="57"/>
+        <location line="+1"/>
         <source>Dense 4</source>
         <translation>Dense 4</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/brushpropertymanager.cpp" line="58"/>
+        <location line="+1"/>
         <source>Dense 5</source>
         <translation>Dense 5</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/brushpropertymanager.cpp" line="59"/>
+        <location line="+1"/>
         <source>Dense 6</source>
         <translation>Dense 6</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/brushpropertymanager.cpp" line="60"/>
+        <location line="+1"/>
         <source>Dense 7</source>
         <translation>Dense 7</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/brushpropertymanager.cpp" line="61"/>
+        <location line="+1"/>
         <source>Horizontal</source>
         <translation>Horizontal</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/brushpropertymanager.cpp" line="62"/>
+        <location line="+1"/>
         <source>Vertical</source>
         <translation>Vertical</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/brushpropertymanager.cpp" line="63"/>
+        <location line="+1"/>
         <source>Cross</source>
         <translation>Croix</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/brushpropertymanager.cpp" line="64"/>
+        <location line="+1"/>
         <source>Backward diagonal</source>
         <translation>Diagonale arrière</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/brushpropertymanager.cpp" line="65"/>
+        <location line="+1"/>
         <source>Forward diagonal</source>
         <translation>Diagonale avant</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/brushpropertymanager.cpp" line="66"/>
+        <location line="+1"/>
         <source>Crossing diagonal</source>
         <translation>Diagonale croisée</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/brushpropertymanager.cpp" line="149"/>
+        <location line="+93"/>
         <source>Style</source>
         <translation>Style</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/brushpropertymanager.cpp" line="160"/>
+        <location line="+11"/>
         <source>Color</source>
         <translation>Couleur</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/brushpropertymanager.cpp" line="265"/>
+        <location line="+105"/>
         <source>[%1, %2]</source>
         <translation>[%1, %2]</translation>
     </message>
@@ -276,353 +276,357 @@
 <context>
     <name>Command</name>
     <message>
-        <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditor.cpp" line="208"/>
-        <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditor.cpp" line="466"/>
+        <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditor.cpp" line="+208"/>
+        <location line="+258"/>
         <source>Change signal</source>
         <translation>Modifier le signal</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditor.cpp" line="210"/>
-        <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditor.cpp" line="478"/>
+        <location line="-256"/>
+        <location line="+268"/>
         <source>Change slot</source>
         <translation>Modifier le slot</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditor.cpp" line="258"/>
+        <location line="-220"/>
         <source>Change signal-slot connection</source>
         <translation>Modfier la connection signal-slot</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditor.cpp" line="492"/>
+        <location line="+234"/>
         <source>Change sender</source>
         <translatorcomment>expéditeur/source</translatorcomment>
         <translation>Modifier l&apos;envoyeur</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditor.cpp" line="510"/>
+        <location line="+18"/>
         <source>Change receiver</source>
         <translatorcomment>destinataire++/cible?</translatorcomment>
         <translation>Modifier le destinataire</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/button_taskmenu.cpp" line="221"/>
+        <location filename="../tools/designer/src/components/taskmenu/button_taskmenu.cpp" line="+221"/>
         <source>Create button group</source>
         <translation>Créer un groupe de boutons</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/button_taskmenu.cpp" line="248"/>
+        <location line="+27"/>
         <source>Break button group</source>
         <translation>Dissocier le groupe de bouton</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/button_taskmenu.cpp" line="257"/>
+        <location line="+9"/>
         <source>Break button group &apos;%1&apos;</source>
         <translation>Dissossier le groupe de bouton &apos;%1&apos;</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/button_taskmenu.cpp" line="274"/>
+        <location line="+17"/>
         <source>Add buttons to group</source>
         <translation>Ajouter les boutons au groupe</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/button_taskmenu.cpp" line="282"/>
-        <location filename="../tools/designer/src/lib/shared/formlayoutmenu.cpp" line="458"/>
+        <location filename="../tools/designer/src/lib/shared/formlayoutmenu.cpp" line="+458"/>
+        <location filename="../tools/designer/src/components/taskmenu/button_taskmenu.cpp" line="+8"/>
         <source>Add &apos;%1&apos; to &apos;%2&apos;</source>
         <extracomment>Command description for adding buttons to a QButtonGroup</extracomment>
         <translation>Ajouter &apos;%1&apos; à &apos;%2&apos;</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/button_taskmenu.cpp" line="296"/>
+        <location filename="../tools/designer/src/components/taskmenu/button_taskmenu.cpp" line="+14"/>
         <source>Remove buttons from group</source>
         <translation>Retirer les boutons du groupe</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/button_taskmenu.cpp" line="311"/>
+        <location line="+15"/>
         <source>Remove &apos;%1&apos; from &apos;%2&apos;</source>
         <extracomment>Command description for removing buttons from a QButtonGroup</extracomment>
         <translation>Retirer &apos;%1&apos; de &apos;%2&apos;</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/connectionedit.cpp" line="143"/>
+        <location filename="../tools/designer/src/lib/shared/connectionedit.cpp" line="+143"/>
         <source>Add connection</source>
         <translation>Ajouter une connexion</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/connectionedit.cpp" line="197"/>
+        <location line="+54"/>
         <source>Adjust connection</source>
         <translation>Réajuster les connexions</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/connectionedit.cpp" line="216"/>
+        <location line="+19"/>
         <source>Delete connections</source>
         <translation>Supprimer les connexions</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/connectionedit.cpp" line="274"/>
+        <location line="+58"/>
         <source>Change source</source>
         <translation>Modifier la source</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/connectionedit.cpp" line="276"/>
+        <location line="+2"/>
         <source>Change target</source>
         <translation>Modifier la cible</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/morphmenu.cpp" line="349"/>
+        <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>Transformer %1/&apos;%2&apos; en %3</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_command.cpp" line="149"/>
+        <location filename="../tools/designer/src/lib/shared/qdesigner_command.cpp" line="+149"/>
         <source>Insert &apos;%1&apos;</source>
         <translation>Insérer &apos;%1&apos;</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_command.cpp" line="282"/>
+        <location line="+133"/>
         <source>Change Z-order of &apos;%1&apos;</source>
         <translatorcomment>l&apos;ordre de &apos;%1&apos; sur l&apos;axe z? profondeur ?</translatorcomment>
         <translation>Modifier la profondeur de &apos;%1&apos;</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_command.cpp" line="316"/>
+        <location line="+34"/>
         <source>Raise &apos;%1&apos;</source>
         <translation>Élever &apos;%1&apos;</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_command.cpp" line="349"/>
+        <location line="+33"/>
         <source>Lower &apos;%1&apos;</source>
         <translation>Abaisser &apos;%1&apos;</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_command.cpp" line="462"/>
+        <location line="+113"/>
         <source>Delete &apos;%1&apos;</source>
         <translation>Supprimer &apos;%1&apos;</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_command.cpp" line="581"/>
+        <location line="+119"/>
         <source>Reparent &apos;%1&apos;</source>
         <translation>Reparenter &apos;%1&apos;</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_command.cpp" line="634"/>
+        <location line="+53"/>
         <source>Promote to custom widget</source>
         <translation>Promouvoir en widget personnalisé</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_command.cpp" line="676"/>
+        <location line="+42"/>
         <source>Demote from custom widget</source>
         <translation>Annuler la promotion en widget personnalisé</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_command.cpp" line="755"/>
+        <location line="+79"/>
         <source>Lay out using grid</source>
         <translation>Mettre en page à l&apos;aide d&apos;une grille</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_command.cpp" line="758"/>
+        <location line="+3"/>
         <source>Lay out vertically</source>
         <translation>Mettre en page verticalement</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_command.cpp" line="761"/>
         <source>Lay out horizontaly</source>
+        <translation type="obsolete">Mettre en page horizontalement</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Lay out horizontally</source>
         <translation>Mettre en page horizontalement</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_command.cpp" line="802"/>
+        <location line="+41"/>
         <source>Break layout</source>
         <translation>Casser la mise en page</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_command.cpp" line="907"/>
+        <location line="+105"/>
         <source>Simplify Grid Layout</source>
         <translation>Simplifier la mise en page en grille</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_command.cpp" line="1042"/>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_command.cpp" line="1277"/>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_command.cpp" line="1355"/>
+        <location line="+135"/>
+        <location line="+235"/>
+        <location line="+78"/>
         <source>Move Page</source>
         <translation>Déplacer la page</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_command.cpp" line="1076"/>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_command.cpp" line="1199"/>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_command.cpp" line="1387"/>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_command.cpp" line="2053"/>
+        <location line="-279"/>
+        <location line="+123"/>
+        <location line="+188"/>
+        <location line="+666"/>
         <source>Delete Page</source>
         <translation>Supprimer la page</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_command.cpp" line="1114"/>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_command.cpp" line="1237"/>
+        <location line="-939"/>
+        <location line="+123"/>
         <source>Page</source>
         <translation>Page</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_command.cpp" line="1119"/>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_command.cpp" line="1242"/>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_command.cpp" line="1428"/>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_command.cpp" line="2095"/>
+        <location line="-118"/>
+        <location line="+123"/>
+        <location line="+186"/>
+        <location line="+667"/>
         <source>Insert Page</source>
         <translation>Insérer une page</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_command.cpp" line="1448"/>
+        <location line="-647"/>
         <source>Change Tab order</source>
         <translation>Modifier l&apos;ordre des tabulations</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_command.cpp" line="1476"/>
+        <location line="+28"/>
         <source>Create Menu Bar</source>
         <translation>Créer une barre de menu</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_command.cpp" line="1520"/>
+        <location line="+44"/>
         <source>Delete Menu Bar</source>
         <translation>Supprimer la barre de menu</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_command.cpp" line="1567"/>
+        <location line="+47"/>
         <source>Create Status Bar</source>
         <translation>Créer une barre d&apos;état</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_command.cpp" line="1609"/>
+        <location line="+42"/>
         <source>Delete Status Bar</source>
         <translation>Supprimer la barre d&apos;état</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_command.cpp" line="1654"/>
+        <location line="+45"/>
         <source>Add Tool Bar</source>
         <translation>Ajouter une barre d&apos;outil</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_command.cpp" line="1713"/>
+        <location line="+59"/>
         <source>Add Dock Window</source>
         <translation>Ajouter une fenêtre ancrable</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_command.cpp" line="1766"/>
+        <location line="+53"/>
         <source>Adjust Size of &apos;%1&apos;</source>
         <translation>Ajuster les dimensions de &apos;%1&apos;</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_command.cpp" line="1823"/>
+        <location line="+57"/>
         <source>Change Form Layout Item Geometry</source>
         <translation>Modifier la géométrie de l&apos;élément de formulaire</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_command.cpp" line="1918"/>
+        <location line="+95"/>
         <source>Change Layout Item Geometry</source>
         <translation>Modifier la géométrie de l&apos;élément de mise en page</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_command.cpp" line="2056"/>
+        <location line="+138"/>
         <source>Delete Subwindow</source>
         <translation>Supprimer la sous-fenêtre</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_command.cpp" line="2097"/>
+        <location line="+41"/>
         <source>page</source>
         <translation>page</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_command.cpp" line="2100"/>
+        <location line="+3"/>
         <source>Insert Subwindow</source>
         <translation>Insérer une sous-fenêtre</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_command.cpp" line="2102"/>
+        <location line="+2"/>
         <source>subwindow</source>
         <translation>sous-fenêtre</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_command.cpp" line="2103"/>
+        <location line="+1"/>
         <source>Subwindow</source>
         <translation>Sous fenêtre</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_command.cpp" line="2494"/>
+        <location line="+391"/>
         <source>Change Table Contents</source>
         <translation>Modifier le contenu de la table</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_command.cpp" line="2601"/>
+        <location line="+107"/>
         <source>Change Tree Contents</source>
         <translation>Modifier le contenu de l&apos;arbre</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_command.cpp" line="2675"/>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_command.cpp" line="2821"/>
+        <location line="+74"/>
+        <location line="+146"/>
         <source>Add action</source>
         <translation>Ajouter une action</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_command.cpp" line="2701"/>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_command.cpp" line="2827"/>
+        <location line="-120"/>
+        <location line="+126"/>
         <source>Remove action</source>
         <translation>Supprimer l&apos;action</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_command.cpp" line="2880"/>
+        <location line="+53"/>
         <source>Add menu</source>
         <translation>Ajouter un menu</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_command.cpp" line="2886"/>
+        <location line="+6"/>
         <source>Remove menu</source>
         <translation>Supprimer le menu</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_command.cpp" line="2892"/>
+        <location line="+6"/>
         <source>Create submenu</source>
         <translation>Créer une sous-fenêtre</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_command.cpp" line="2923"/>
+        <location line="+31"/>
         <source>Delete Tool Bar</source>
         <translation>Supprimer la barre d&apos;outils</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_command2.cpp" line="154"/>
+        <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>Modifier la mise en page de &apos;%1&apos; de %2 à %3</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_menu.cpp" line="1195"/>
+        <location filename="../tools/designer/src/lib/shared/qdesigner_menu.cpp" line="+1196"/>
         <source>Set action text</source>
         <translation>Définir le texte de l&apos;action</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_menu.cpp" line="1198"/>
+        <location line="+3"/>
         <source>Insert action</source>
         <translation>Insérer action</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_menu.cpp" line="1287"/>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_menubar.cpp" line="907"/>
+        <location line="+89"/>
+        <location filename="../tools/designer/src/lib/shared/qdesigner_menubar.cpp" line="+915"/>
         <source>Move action</source>
         <translation>Déplacer action</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_menubar.cpp" line="483"/>
+        <location filename="../tools/designer/src/lib/shared/qdesigner_menubar.cpp" line="-432"/>
         <source>Change Title</source>
         <translation>Modifier le titre</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_menubar.cpp" line="485"/>
+        <location line="+2"/>
         <source>Insert Menu</source>
         <translation>Insérer menu</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_propertycommand.cpp" line="1213"/>
+        <location filename="../tools/designer/src/lib/shared/qdesigner_propertycommand.cpp" line="+1225"/>
         <source>Changed &apos;%1&apos; of &apos;%2&apos;</source>
         <translation>Modifier &apos;%1&apos; de &apos;%2&apos;</translation>
     </message>
     <message numerus="yes">
-        <location filename="../tools/designer/src/lib/shared/qdesigner_propertycommand.cpp" line="1216"/>
+        <location line="+3"/>
         <source>Changed &apos;%1&apos; of %n objects</source>
         <translation>
             <numerusform>Modifier &apos;%1&apos; de %n objet</numerusform>
@@ -630,12 +634,12 @@
         </translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_propertycommand.cpp" line="1292"/>
+        <location line="+84"/>
         <source>Reset &apos;%1&apos; of &apos;%2&apos;</source>
         <translation>Réinitialiser &apos;%1&apos; de &apos;%2&apos;</translation>
     </message>
     <message numerus="yes">
-        <location filename="../tools/designer/src/lib/shared/qdesigner_propertycommand.cpp" line="1295"/>
+        <location line="+3"/>
         <source>Reset &apos;%1&apos; of %n objects</source>
         <translation>
             <numerusform>Réinitialiser &apos;%1&apos; de %n objet</numerusform>
@@ -643,12 +647,12 @@
         </translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_propertycommand.cpp" line="1384"/>
+        <location line="+89"/>
         <source>Add dynamic property &apos;%1&apos; to &apos;%2&apos;</source>
         <translation>Ajouter la propriété dynamique &apos;%1&apos; à &apos;%2&apos;</translation>
     </message>
     <message numerus="yes">
-        <location filename="../tools/designer/src/lib/shared/qdesigner_propertycommand.cpp" line="1387"/>
+        <location line="+3"/>
         <source>Add dynamic property &apos;%1&apos; to %n objects</source>
         <translation>
             <numerusform>Ajouter la propriété dynamique &apos;%1&apos; à %n objet</numerusform>
@@ -656,12 +660,12 @@
         </translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_propertycommand.cpp" line="1473"/>
+        <location line="+86"/>
         <source>Remove dynamic property &apos;%1&apos; from &apos;%2&apos;</source>
         <translation>Supprimer la propriété dynamique &apos;%1&apos; de &apos;%2&apos;</translation>
     </message>
     <message numerus="yes">
-        <location filename="../tools/designer/src/lib/shared/qdesigner_propertycommand.cpp" line="1476"/>
+        <location line="+3"/>
         <source>Remove dynamic property &apos;%1&apos; from %n objects</source>
         <translation>
             <numerusform>Supprimer la propriété dynamique &apos;%1&apos; de %n objet</numerusform>
@@ -669,12 +673,12 @@
         </translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/scriptcommand.cpp" line="55"/>
+        <location filename="../tools/designer/src/lib/shared/scriptcommand.cpp" line="+55"/>
         <source>Change script</source>
         <translation>Modifier le script</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/signalslotdialog.cpp" line="202"/>
+        <location filename="../tools/designer/src/lib/shared/signalslotdialog.cpp" line="+202"/>
         <source>Change signals/slots</source>
         <translation>Modifier signaux/slots</translation>
     </message>
@@ -682,24 +686,22 @@
 <context>
     <name>ConnectDialog</name>
     <message>
-        <location filename="../tools/designer/src/components/signalsloteditor/connectdialog.ui" line="13"/>
+        <location filename="../tools/designer/src/components/signalsloteditor/connectdialog.ui"/>
         <source>Configure Connection</source>
         <translation>Configurer connexion</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/signalsloteditor/connectdialog.ui" line="19"/>
-        <location filename="../tools/designer/src/components/signalsloteditor/connectdialog.ui" line="59"/>
+        <location/>
         <source>GroupBox</source>
         <translation>GroupBox</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/signalsloteditor/connectdialog.ui" line="34"/>
-        <location filename="../tools/designer/src/components/signalsloteditor/connectdialog.ui" line="74"/>
+        <location/>
         <source>Edit...</source>
         <translation>Éditer...</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/signalsloteditor/connectdialog.ui" line="99"/>
+        <location/>
         <source>Show signals and slots inherited from QWidget</source>
         <translation>Afficher les signaux et slots hérités de QWidget</translation>
     </message>
@@ -707,17 +709,17 @@
 <context>
     <name>ConnectionDelegate</name>
     <message>
-        <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditorwindow.cpp" line="643"/>
+        <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditorwindow.cpp" line="+645"/>
         <source>&lt;object&gt;</source>
         <translation>&lt;objet&gt;</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditorwindow.cpp" line="661"/>
+        <location line="+18"/>
         <source>&lt;signal&gt;</source>
         <translation>&lt;signal&gt;</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditorwindow.cpp" line="661"/>
+        <location line="+0"/>
         <source>&lt;slot&gt;</source>
         <translation>&lt;slot&gt;</translation>
     </message>
@@ -725,19 +727,19 @@
 <context>
     <name>DPI_Chooser</name>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/dpi_chooser.cpp" line="69"/>
+        <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>Standard (96 x 96)</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/dpi_chooser.cpp" line="71"/>
+        <location line="+2"/>
         <source>Greenphone (179 x 185)</source>
         <extracomment>Embedded device screen resolution</extracomment>
         <translation>Greenphone (179 x 185)</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/dpi_chooser.cpp" line="73"/>
+        <location line="+2"/>
         <source>High (192 x 192)</source>
         <extracomment>Embedded device high definition screen resolution</extracomment>
         <translatorcomment>&quot;haute resolution&quot; would be missleading</translatorcomment>
@@ -747,89 +749,89 @@
 <context>
     <name>Designer</name>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/qdesigner_resource.cpp" line="449"/>
+        <location filename="../tools/designer/src/components/formeditor/qdesigner_resource.cpp" line="+446"/>
         <source>Qt Designer</source>
         <translation>Qt Designer</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/qdesigner_resource.cpp" line="459"/>
+        <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>Ce fichier contient des ressorts de premier niveau. &lt;br&gt;Ils ne sont &lt;b&gt;PAS&lt;/b&gt; sauvegardé dans le formulaire.</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/qdesigner_resource.cpp" line="461"/>
+        <location line="+2"/>
         <source>Perhaps you forgot to create a layout?</source>
         <translation>Peut-être avez-vous oublié de créer un layout ?</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/qdesigner_resource.cpp" line="634"/>
+        <location line="+173"/>
         <source>Invalid UI file: The root element &lt;ui&gt; is missing.</source>
         <translation>Fichier UI invalide. L&apos;élément racine &lt;ui&gt; est manquant.</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/qdesigner_resource.cpp" line="640"/>
+        <location line="+6"/>
         <source>An error has occurred while reading the UI file at line %1, column %2: %3</source>
-        <translation>Une erreur est survenue lors de la lecture du fichier UI à la ligne %1, colonne %2: %3</translation>
-    </message>
-    <message>
-        <location filename="../tools/designer/src/components/formeditor/qdesigner_resource.cpp" line="666"/>
+        <translation>Une erreur est survenue lors de la lecture du fichier UI à la ligne %1, colonne %2 : %3</translation>
+    </message>
+    <message>
+        <location line="+26"/>
         <source>This file cannot be read because it was created using %1.</source>
         <translation>Ce fichier ne peut pas être lu car il a été créé à l&apos;aide de %1.</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/qdesigner_resource.cpp" line="680"/>
+        <location line="+14"/>
         <source>This file was created using Designer from Qt-%1 and cannot be read.</source>
         <translation>Ce fichier a été créé à l&apos;aide du Designer de Qt-%1 et ne peut être lu.</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/qdesigner_resource.cpp" line="710"/>
+        <location line="+30"/>
         <source>The converted file could not be read.</source>
         <translation>Le fichier converti ne peut pas être lu.</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/qdesigner_resource.cpp" line="714"/>
+        <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>Ce fichier a été créé par le Designer de Qt-%1 et sera converti au nouveau format par Qt Designer.</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/qdesigner_resource.cpp" line="717"/>
+        <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>L&apos;ancienne interface n&apos;a pas été modifiée, vous devez sauvergarder l&apos;interface sous un nouveau nom.</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/qdesigner_resource.cpp" line="728"/>
+        <location line="+11"/>
         <source>This file was created using Designer from Qt-%1 and could not be read:
 %2</source>
         <translation>Le fichier a été créé à l&apos;aide de Designer de Qt-%1 et ne peut pas être lu :
 %2</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/qdesigner_resource.cpp" line="731"/>
+        <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>Veuillez le faire passer par &lt;b&gt;uic3&amp;nbsp;-convert&lt;/b&gt; pour le convertir au format de fichier de Qt 4.</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/qdesigner_resource.cpp" line="762"/>
+        <location line="+31"/>
         <source>This file cannot be read because the extra info extension failed to load.</source>
         <translation>Ce fichier ne peut pas être lu car les informations d&apos;extension n&apos;ont pu être chargées.</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_utils.cpp" line="682"/>
+        <location filename="../tools/designer/src/lib/shared/qdesigner_utils.cpp" line="+682"/>
         <source>Unable to launch %1.</source>
         <translation>Impossible de lancer %1.</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_utils.cpp" line="686"/>
+        <location line="+4"/>
         <source>%1 timed out.</source>
         <translation>%1 est arrivé à échéance.</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qsimpleresource.cpp" line="339"/>
+        <location filename="../tools/designer/src/lib/shared/qsimpleresource.cpp" line="+339"/>
         <source>Custom Widgets</source>
         <translation>Widgets personnalisés</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qsimpleresource.cpp" line="351"/>
+        <location line="+12"/>
         <source>Promoted Widgets</source>
         <translation>Widgets promus</translation>
     </message>
@@ -837,12 +839,12 @@
 <context>
     <name>DesignerMetaEnum</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_utils.cpp" line="173"/>
+        <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 n&apos;est pas une valeur d&apos;énumeration valide de &apos;%2&apos;.</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_utils.cpp" line="178"/>
+        <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; ne peut pas être converti en une valeur d&apos;énumération de type &apos;%2&apos;.</translation>
     </message>
@@ -850,7 +852,7 @@
 <context>
     <name>DesignerMetaFlags</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_utils.cpp" line="256"/>
+        <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; ne peut pas être converti en un drapeau de type &apos;%2&apos;.</translation>
     </message>
@@ -858,13 +860,13 @@
 <context>
     <name>DeviceProfile</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/deviceprofile.cpp" line="397"/>
+        <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; n&apos;est pas un nombre.</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/deviceprofile.cpp" line="420"/>
+        <location line="+23"/>
         <source>An invalid tag &lt;%1&gt; was encountered.</source>
         <translation>La balise invalide &lt;%1&gt; a été rencontré.</translation>
     </message>
@@ -872,27 +874,27 @@
 <context>
     <name>DeviceProfileDialog</name>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/deviceprofiledialog.ui" line="20"/>
+        <location filename="../tools/designer/src/components/formeditor/deviceprofiledialog.ui"/>
         <source>&amp;Family</source>
         <translation>&amp;Famille</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/deviceprofiledialog.ui" line="33"/>
+        <location/>
         <source>&amp;Point Size</source>
         <translation>&amp;Taille en points</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/deviceprofiledialog.ui" line="46"/>
+        <location/>
         <source>Style</source>
         <translation>Style</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/deviceprofiledialog.ui" line="59"/>
+        <location/>
         <source>Device DPI</source>
         <translation>PPP/DPI de l&apos;appareil</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/deviceprofiledialog.ui" line="69"/>
+        <location/>
         <source>Name</source>
         <translation>Nom</translation>
     </message>
@@ -900,57 +902,57 @@
 <context>
     <name>DeviceSkin</name>
     <message>
-        <location filename="../tools/shared/deviceskin/deviceskin.cpp" line="79"/>
+        <location filename="../tools/shared/deviceskin/deviceskin.cpp" line="+79"/>
         <source>The image file &apos;%1&apos; could not be loaded.</source>
         <translation>Le fichier image &apos;%1&apos; n&apos;a pas pu être chargé.</translation>
     </message>
     <message>
-        <location filename="../tools/shared/deviceskin/deviceskin.cpp" line="143"/>
+        <location line="+64"/>
         <source>The skin directory &apos;%1&apos; does not contain a configuration file.</source>
         <translation>Le repertoire de revêtement &apos;%1&apos; ne contient pas un fichier de configuration.</translation>
     </message>
     <message>
-        <location filename="../tools/shared/deviceskin/deviceskin.cpp" line="148"/>
+        <location line="+5"/>
         <source>The skin configuration file &apos;%1&apos; could not be opened.</source>
         <translation>Le fichier de configuration de revêtement &apos;%1&apos; ne peut pas être ouvert.</translation>
     </message>
     <message>
-        <location filename="../tools/shared/deviceskin/deviceskin.cpp" line="154"/>
+        <location line="+6"/>
         <source>The skin configuration file &apos;%1&apos; could not be read: %2</source>
-        <translation>Le fichier de configuration de revêtement &apos;%1&apos; ne peut pas être lu: %2</translation>
-    </message>
-    <message>
-        <location filename="../tools/shared/deviceskin/deviceskin.cpp" line="224"/>
+        <translation>Le fichier de configuration de revêtement &apos;%1&apos; ne peut pas être lu : %2</translation>
+    </message>
+    <message>
+        <location line="+70"/>
         <source>Syntax error: %1</source>
         <translation>Erreur de syntaxe : %1</translation>
     </message>
     <message>
-        <location filename="../tools/shared/deviceskin/deviceskin.cpp" line="245"/>
+        <location line="+21"/>
         <source>The skin &quot;up&quot; image file &apos;%1&apos; does not exist.</source>
         <translation>Le fichier image &quot;up&quot; de revêtement &apos;%1&apos; n&apos;existe pas.</translation>
     </message>
     <message>
-        <location filename="../tools/shared/deviceskin/deviceskin.cpp" line="255"/>
+        <location line="+10"/>
         <source>The skin &quot;down&quot; image file &apos;%1&apos; does not exist.</source>
         <translation>Le fichier image &quot;down&quot; de revêtement &apos;%1&apos; n&apos;existe pas.</translation>
     </message>
     <message>
-        <location filename="../tools/shared/deviceskin/deviceskin.cpp" line="266"/>
+        <location line="+11"/>
         <source>The skin &quot;closed&quot; image file &apos;%1&apos; does not exist.</source>
         <translation>Le fichier image &quot;closed&quot; de revêtement &apos;%1&apos; n&apos;existe pas.</translation>
     </message>
     <message>
-        <location filename="../tools/shared/deviceskin/deviceskin.cpp" line="278"/>
+        <location line="+12"/>
         <source>The skin cursor image file &apos;%1&apos; does not exist.</source>
         <translation>Le fichier image de revêtement &apos;%1&apos; n&apos;existe pas.</translation>
     </message>
     <message>
-        <location filename="../tools/shared/deviceskin/deviceskin.cpp" line="303"/>
+        <location line="+25"/>
         <source>Syntax error in area definition: %1</source>
         <translation>Erreur de syntaxe dans la zone de définition : %1</translation>
     </message>
     <message>
-        <location filename="../tools/shared/deviceskin/deviceskin.cpp" line="341"/>
+        <location line="+38"/>
         <source>Mismatch in number of areas, expected %1, got %2.</source>
         <translation>Incohérence dans le nombre de zones, %1 attendu, %2 reçu.</translation>
     </message>
@@ -958,7 +960,7 @@
 <context>
     <name>EmbeddedOptionsControl</name>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/embeddedoptionspage.cpp" line="307"/>
+        <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;Police&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;Résolution&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>
@@ -967,13 +969,13 @@
 <context>
     <name>EmbeddedOptionsPage</name>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/embeddedoptionspage.cpp" line="410"/>
+        <location line="+103"/>
         <source>Embedded Design</source>
         <extracomment>Tab in preferences dialog</extracomment>
         <translation>Design pour appareil mobile</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/embeddedoptionspage.cpp" line="420"/>
+        <location line="+10"/>
         <source>Device Profiles</source>
         <extracomment>EmbeddedOptionsControl group box&quot;</extracomment>
         <translation>Profils des appareils</translation>
@@ -982,27 +984,27 @@
 <context>
     <name>FontPanel</name>
     <message>
-        <location filename="../tools/shared/fontpanel/fontpanel.cpp" line="63"/>
+        <location filename="../tools/shared/fontpanel/fontpanel.cpp" line="+63"/>
         <source>Font</source>
         <translation>Police</translation>
     </message>
     <message>
-        <location filename="../tools/shared/fontpanel/fontpanel.cpp" line="74"/>
+        <location line="+11"/>
         <source>&amp;Writing system</source>
         <translation>&amp;Système d&apos;écriture</translation>
     </message>
     <message>
-        <location filename="../tools/shared/fontpanel/fontpanel.cpp" line="77"/>
+        <location line="+3"/>
         <source>&amp;Family</source>
         <translation>&amp;Famille</translation>
     </message>
     <message>
-        <location filename="../tools/shared/fontpanel/fontpanel.cpp" line="81"/>
+        <location line="+4"/>
         <source>&amp;Style</source>
         <translation>&amp;Style</translation>
     </message>
     <message>
-        <location filename="../tools/shared/fontpanel/fontpanel.cpp" line="85"/>
+        <location line="+4"/>
         <source>&amp;Point size</source>
         <translation>&amp;Taille en points</translation>
     </message>
@@ -1010,22 +1012,22 @@
 <context>
     <name>FontPropertyManager</name>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/fontpropertymanager.cpp" line="62"/>
+        <location filename="../tools/designer/src/components/propertyeditor/fontpropertymanager.cpp" line="+62"/>
         <source>PreferDefault</source>
         <translation>PreferDefault</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/fontpropertymanager.cpp" line="63"/>
+        <location line="+1"/>
         <source>NoAntialias</source>
         <translation>NoAntialias</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/fontpropertymanager.cpp" line="64"/>
+        <location line="+1"/>
         <source>PreferAntialias</source>
         <translation>PreferAntialias</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/fontpropertymanager.cpp" line="125"/>
+        <location line="+61"/>
         <source>Antialiasing</source>
         <translation>Antialiasing</translation>
     </message>
@@ -1033,43 +1035,51 @@
 <context>
     <name>FormBuilder</name>
     <message>
-        <location filename="../tools/designer/src/lib/uilib/formbuilderextra.cpp" line="359"/>
+        <location filename="../tools/designer/src/lib/uilib/formbuilderextra.cpp" line="+375"/>
         <source>Invalid stretch value for &apos;%1&apos;: &apos;%2&apos;</source>
-        <extracomment>Parsing layout stretch values</extracomment>
+        <extracomment>Parsing layout stretch values
+----------
+Parsing layout stretch values
+----------
+Parsing layout stretch values</extracomment>
         <translation>Valeur d&apos;extension invalide pour &apos;%1&apos; : &apos;%2&apos;</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/uilib/formbuilderextra.cpp" line="421"/>
+        <location line="+62"/>
         <source>Invalid minimum size for &apos;%1&apos;: &apos;%2&apos;</source>
-        <extracomment>Parsing grid layout minimum size values</extracomment>
+        <extracomment>Parsing grid layout minimum size values
+----------
+Parsing grid layout minimum size values
+----------
+Parsing grid layout minimum size values</extracomment>
         <translation>Taille minimum invalide pour &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"/>
+        <location filename="../tools/designer/src/components/formeditor/formeditor_optionspage.cpp" line="+91"/>
         <source>%1 %</source>
         <translation>%1 %</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/formeditor_optionspage.cpp" line="95"/>
+        <location line="+4"/>
         <source>Preview Zoom</source>
         <translation>Zoom de visualisation</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/formeditor_optionspage.cpp" line="97"/>
+        <location line="+2"/>
         <source>Default Zoom</source>
         <translation>Zoom par défaut</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/formeditor_optionspage.cpp" line="126"/>
+        <location line="+29"/>
         <source>Forms</source>
         <extracomment>Tab in preferences dialog</extracomment>
         <translation>Formulaires</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/formeditor_optionspage.cpp" line="139"/>
+        <location line="+13"/>
         <source>Default Grid</source>
         <translation>Grille par défaut</translation>
     </message>
@@ -1077,38 +1087,38 @@
 <context>
     <name>FormLayoutRowDialog</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/formlayoutrowdialog.ui" line="6"/>
+        <location filename="../tools/designer/src/lib/shared/formlayoutrowdialog.ui"/>
         <source>Add Form Layout Row</source>
         <translation>Ajouter une ligne de mise en page au formulaire</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/formlayoutrowdialog.ui" line="17"/>
+        <location/>
         <source>&amp;Label text:</source>
         <translation>&amp;Texte du label :</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/formlayoutrowdialog.ui" line="40"/>
+        <location/>
         <source>Field &amp;type:</source>
         <translation>&amp;Type du champ :</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/formlayoutrowdialog.ui" line="60"/>
+        <location/>
         <source>&amp;Field name:</source>
         <translation>&amp;Nom du champ :</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/formlayoutrowdialog.ui" line="70"/>
+        <location/>
         <source>&amp;Buddy:</source>
         <translatorcomment>copain c&apos;est un peu beaucoup ptet</translatorcomment>
         <translation>&amp;Copain :</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/formlayoutrowdialog.ui" line="87"/>
+        <location/>
         <source>&amp;Row:</source>
         <translation>&amp;Ligne :</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/formlayoutrowdialog.ui" line="103"/>
+        <location/>
         <source>Label &amp;name:</source>
         <translation>&amp;Nom du label :</translation>
     </message>
@@ -1116,12 +1126,12 @@
 <context>
     <name>FormWindow</name>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/formwindow.cpp" line="1701"/>
+        <location filename="../tools/designer/src/components/formeditor/formwindow.cpp" line="+1754"/>
         <source>Unexpected element &lt;%1&gt;</source>
         <translation>Element inattendu : &lt;%1&gt;</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/formwindow.cpp" line="1708"/>
+        <location line="+7"/>
         <source>Error while pasting clipboard contents at line %1, column %2: %3</source>
         <translation>Erreur lors du collage du contenu du presse-papier à la ligne %1, colonne %2 : %3</translation>
     </message>
@@ -1129,62 +1139,62 @@
 <context>
     <name>FormWindowSettings</name>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/formwindowsettings.ui" line="54"/>
+        <location filename="../tools/designer/src/components/formeditor/formwindowsettings.ui"/>
         <source>Form Settings</source>
         <translation>Configuration du formulaire</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/formwindowsettings.ui" line="68"/>
+        <location/>
         <source>Layout &amp;Default</source>
         <translation>Mise en page par &amp;défaut</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/formwindowsettings.ui" line="83"/>
+        <location/>
         <source>&amp;Spacing:</source>
         <translation>&amp;Espacements :</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/formwindowsettings.ui" line="93"/>
+        <location/>
         <source>&amp;Margin:</source>
         <translation>&amp;Marge :</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/formwindowsettings.ui" line="112"/>
+        <location/>
         <source>&amp;Layout Function</source>
         <translation>&amp;Fonction de mise en page</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/formwindowsettings.ui" line="133"/>
+        <location/>
         <source>Ma&amp;rgin:</source>
         <translation>Ma&amp;rge :</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/formwindowsettings.ui" line="143"/>
+        <location/>
         <source>Spa&amp;cing:</source>
         <translation>Espa&amp;cement :</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/formwindowsettings.ui" line="166"/>
+        <location/>
         <source>&amp;Pixmap Function</source>
         <translation>Fonction de &amp;pixmap</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/formwindowsettings.ui" line="219"/>
+        <location/>
         <source>&amp;Include Hints</source>
         <translation>Indication d&apos;&amp;include</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/formwindowsettings.ui" line="237"/>
+        <location/>
         <source>Grid</source>
         <translation>Grille</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/formwindowsettings.ui" line="244"/>
+        <location/>
         <source>Embedded Design</source>
         <translation>Design pour appareil mobile</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/formwindowsettings.ui" line="260"/>
+        <location/>
         <source>&amp;Author</source>
         <translation>&amp;Auteur</translation>
     </message>
@@ -1192,7 +1202,7 @@
 <context>
     <name>IconSelector</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/iconselector.cpp" line="352"/>
+        <location filename="../tools/designer/src/lib/shared/iconselector.cpp" line="+352"/>
         <source>All Pixmaps (</source>
         <translation>Tous les pixmaps (</translation>
     </message>
@@ -1200,7 +1210,7 @@
 <context>
     <name>ItemPropertyBrowser</name>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/itemlisteditor.cpp" line="66"/>
+        <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 Icon Selected off</translation>
@@ -1209,33 +1219,33 @@
 <context>
     <name>MainWindowBase</name>
     <message>
-        <location filename="../tools/designer/src/designer/mainwindow.cpp" line="119"/>
+        <location filename="../tools/designer/src/designer/mainwindow.cpp" line="+121"/>
         <source>Main</source>
         <extracomment>Not currently used (main tool bar)</extracomment>
         <translation>Principal</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/mainwindow.cpp" line="125"/>
+        <location line="+6"/>
         <source>File</source>
         <translation>Fichier</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/mainwindow.cpp" line="126"/>
+        <location line="+1"/>
         <source>Edit</source>
         <translation>Édition</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/mainwindow.cpp" line="127"/>
+        <location line="+1"/>
         <source>Tools</source>
         <translation>Outils</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/mainwindow.cpp" line="128"/>
+        <location line="+1"/>
         <source>Form</source>
         <translation>Formulaire</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/mainwindow.cpp" line="135"/>
+        <location line="+7"/>
         <source>Qt Designer</source>
         <translation>Qt Designer</translation>
     </message>
@@ -1243,52 +1253,52 @@
 <context>
     <name>NewForm</name>
     <message>
-        <location filename="../tools/designer/src/designer/newform.cpp" line="78"/>
+        <location filename="../tools/designer/src/designer/newform.cpp" line="+78"/>
         <source>Show this Dialog on Startup</source>
         <translation>Afficher cette boîte de dialogue au démarrage</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/newform.cpp" line="79"/>
+        <location line="+1"/>
         <source>C&amp;reate</source>
         <translation>C&amp;réer</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/newform.cpp" line="80"/>
+        <location line="+1"/>
         <source>Recent</source>
         <translation>Récent</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/newform.cpp" line="83"/>
+        <location line="+3"/>
         <source>New Form</source>
         <translation>Nouveau formulaire</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/newform.cpp" line="112"/>
+        <location line="+29"/>
         <source>&amp;Close</source>
         <translation>&amp;Fermer</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/newform.cpp" line="115"/>
+        <location line="+3"/>
         <source>&amp;Open...</source>
         <translation>&amp;Ouvrir...</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/newform.cpp" line="119"/>
+        <location line="+4"/>
         <source>&amp;Recent Forms</source>
         <translation>&amp;Formulaires récents</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/newform.cpp" line="183"/>
+        <location line="+64"/>
         <source>Read error</source>
         <translation>Erreur de lecture</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/newform.cpp" line="206"/>
+        <location line="+23"/>
         <source>A temporary form file could not be created in %1.</source>
         <translation>Un fichier temporaire de formulaire n&apos;a pas pu être créé dans %1.</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/newform.cpp" line="212"/>
+        <location line="+6"/>
         <source>The temporary form file %1 could not be written.</source>
         <translation>Le fichier temporaire de formulaire %1 n&apos;a pas pu être écrit.</translation>
     </message>
@@ -1296,22 +1306,22 @@
 <context>
     <name>ObjectInspectorModel</name>
     <message>
-        <location filename="../tools/designer/src/components/objectinspector/objectinspectormodel.cpp" line="360"/>
+        <location filename="../tools/designer/src/components/objectinspector/objectinspectormodel.cpp" line="+360"/>
         <source>Object</source>
         <translation>Objet</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/objectinspector/objectinspectormodel.cpp" line="361"/>
+        <location line="+1"/>
         <source>Class</source>
         <translation>Classe</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/objectinspector/objectinspectormodel.cpp" line="396"/>
+        <location line="+35"/>
         <source>separator</source>
         <translation>séparateur</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/objectinspector/objectinspectormodel.cpp" line="494"/>
+        <location line="+98"/>
         <source>&lt;noname&gt;</source>
         <translation>&lt;sans nom&gt;</translation>
     </message>
@@ -1319,12 +1329,12 @@
 <context>
     <name>ObjectNameDialog</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_taskmenu.cpp" line="158"/>
+        <location filename="../tools/designer/src/lib/shared/qdesigner_taskmenu.cpp" line="+158"/>
         <source>Change Object Name</source>
         <translation>Modifier le nom de l&apos;objet</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_taskmenu.cpp" line="162"/>
+        <location line="+4"/>
         <source>Object Name</source>
         <translation>Nom de l&apos;objet</translation>
     </message>
@@ -1332,12 +1342,12 @@
 <context>
     <name>PluginDialog</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/plugindialog.ui" line="54"/>
+        <location filename="../tools/designer/src/lib/shared/plugindialog.ui"/>
         <source>Plugin Information</source>
         <translation>Information du plugin</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/plugindialog.ui" line="80"/>
+        <location/>
         <source>1</source>
         <translation>1</translation>
     </message>
@@ -1345,7 +1355,7 @@
 <context>
     <name>PreferencesDialog</name>
     <message>
-        <location filename="../tools/designer/src/designer/preferencesdialog.ui" line="20"/>
+        <location filename="../tools/designer/src/designer/preferencesdialog.ui"/>
         <source>Preferences</source>
         <translation>Préférences</translation>
     </message>
@@ -1353,34 +1363,32 @@
 <context>
     <name>PreviewConfigurationWidget</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/previewconfigurationwidget.ui" line="5"/>
+        <location filename="../tools/designer/src/lib/shared/previewconfigurationwidget.ui"/>
         <source>Form</source>
         <translation>Formulaire</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/previewconfigurationwidget.ui" line="8"/>
+        <location/>
         <source>Print/Preview Configuration</source>
         <translation>Configuration d&apos;impression/prévisualisation</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/previewconfigurationwidget.ui" line="17"/>
+        <location/>
         <source>Style</source>
         <translation>Style</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/previewconfigurationwidget.ui" line="27"/>
+        <location/>
         <source>Style sheet</source>
         <translation>Feuille de style</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/previewconfigurationwidget.ui" line="46"/>
-        <location filename="../tools/designer/src/lib/shared/previewconfigurationwidget.ui" line="53"/>
-        <location filename="../tools/designer/src/lib/shared/previewconfigurationwidget.ui" line="74"/>
+        <location/>
         <source>...</source>
         <translation>...</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/previewconfigurationwidget.ui" line="62"/>
+        <location/>
         <source>Device skin</source>
         <translation>Revêtement de l&apos;appareil</translation>
     </message>
@@ -1388,7 +1396,7 @@
 <context>
     <name>PromotionModel</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/promotionmodel.cpp" line="112"/>
+        <location filename="../tools/designer/src/lib/shared/promotionmodel.cpp" line="+112"/>
         <source>Not used</source>
         <extracomment>Usage of promoted widgets</extracomment>
         <translation>Non utilisé</translation>
@@ -1397,8 +1405,8 @@
 <context>
     <name>Q3WizardContainer</name>
     <message>
-        <location filename="../tools/designer/src/plugins/widgets/q3wizard/q3wizard_container.cpp" line="172"/>
-        <location filename="../tools/designer/src/plugins/widgets/q3wizard/q3wizard_container.cpp" line="177"/>
+        <location filename="../tools/designer/src/plugins/widgets/q3wizard/q3wizard_container.cpp" line="+172"/>
+        <location line="+5"/>
         <source>Page</source>
         <translation>Page</translation>
     </message>
@@ -1406,59 +1414,59 @@
 <context>
     <name>QAbstractFormBuilder</name>
     <message>
-        <location filename="../tools/designer/src/lib/uilib/abstractformbuilder.cpp" line="206"/>
+        <location filename="../tools/designer/src/lib/uilib/abstractformbuilder.cpp" line="+206"/>
         <source>Unexpected element &lt;%1&gt;</source>
         <translation>Élément imprévu &lt;%1&gt;</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/uilib/abstractformbuilder.cpp" line="211"/>
+        <location line="+5"/>
         <source>An error has occurred while reading the UI file at line %1, column %2: %3</source>
         <translation>Une erreur s&apos;est produite lors de la lecture du fichier UI à la ligne %1, colonne %2 : %3</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/uilib/abstractformbuilder.cpp" line="217"/>
+        <location line="+6"/>
         <source>Invalid UI file: The root element &lt;ui&gt; is missing.</source>
         <translation>Fichier UI invalide : l&apos;élément racine &lt;ui&gt; est manquant.</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/uilib/abstractformbuilder.cpp" line="336"/>
+        <location line="+104"/>
         <source>The creation of a widget of the class &apos;%1&apos; failed.</source>
         <translation>La création d&apos;un widget de la classe &apos;%1&apos; a échoué.</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/uilib/abstractformbuilder.cpp" line="632"/>
+        <location line="+296"/>
         <source>Attempt to add child that is not of class QWizardPage to QWizard.</source>
         <translation>Tentative d&apos;ajout d&apos;enfant qui n&apos;est pas de la classe QWizardPage à QWizard.</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/uilib/abstractformbuilder.cpp" line="718"/>
+        <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>Tentative d&apos;ajout d&apos;un layout au widget &apos;%1&apos; (%2) qui a déjà un layout dont le type n&apos;est pas boîte %3.
 Ceci indique une incohérence dans le fichier ui.</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/uilib/abstractformbuilder.cpp" line="862"/>
+        <location line="+144"/>
         <source>Empty widget item in %1 &apos;%2&apos;.</source>
         <translation>Widget vide dans %1 &apos;%2&apos;.</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/uilib/abstractformbuilder.cpp" line="1542"/>
+        <location line="+680"/>
         <source>Flags property are not supported yet.</source>
         <translation>Les propriétés de type drapeau ne sont pas supportées.</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/uilib/abstractformbuilder.cpp" line="1623"/>
+        <location line="+81"/>
         <source>While applying tab stops: The widget &apos;%1&apos; could not be found.</source>
         <translation>Lors de l&apos;application des arrêts de tabulation : le widget &apos;%1&apos; ne peut pas être trouvé.</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/uilib/abstractformbuilder.cpp" line="2531"/>
+        <location line="+923"/>
         <source>Invalid QButtonGroup reference &apos;%1&apos; referenced by &apos;%2&apos;.</source>
         <translation>Référence invalide &apos;%1&apos; à QButtonGroup, référencé par &apos;%2&apos;.</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/uilib/abstractformbuilder.cpp" line="3042"/>
+        <location line="+511"/>
         <source>This version of the uitools library is linked without script support.</source>
         <translation>Cette version de la bibliothèque uitools n&apos;a pas le support des scripts.</translation>
     </message>
@@ -1466,12 +1474,12 @@
 <context>
     <name>QAxWidgetPlugin</name>
     <message>
-        <location filename="../tools/designer/src/plugins/activeqt/qaxwidgetplugin.cpp" line="75"/>
+        <location filename="../tools/designer/src/plugins/activeqt/qaxwidgetplugin.cpp" line="+75"/>
         <source>ActiveX control</source>
         <translation>Control ActiveX</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/plugins/activeqt/qaxwidgetplugin.cpp" line="80"/>
+        <location line="+5"/>
         <source>ActiveX control widget</source>
         <translation>Widget control ActiveX</translation>
     </message>
@@ -1479,22 +1487,22 @@
 <context>
     <name>QAxWidgetTaskMenu</name>
     <message>
-        <location filename="../tools/designer/src/plugins/activeqt/qaxwidgettaskmenu.cpp" line="119"/>
+        <location filename="../tools/designer/src/plugins/activeqt/qaxwidgettaskmenu.cpp" line="+119"/>
         <source>Set Control</source>
         <translation>Définir le contrôle</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/plugins/activeqt/qaxwidgettaskmenu.cpp" line="120"/>
+        <location line="+1"/>
         <source>Reset Control</source>
         <translation>Réinitialiser le contrôle</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/plugins/activeqt/qaxwidgettaskmenu.cpp" line="161"/>
+        <location line="+41"/>
         <source>Licensed Control</source>
         <translation>Contrôle licencié</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/plugins/activeqt/qaxwidgettaskmenu.cpp" line="162"/>
+        <location line="+1"/>
         <source>The control requires a design-time license</source>
         <translation>Le contrôle requiert une license par interface</translation>
     </message>
@@ -1502,67 +1510,67 @@
 <context>
     <name>QCoreApplication</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_promotion.cpp" line="83"/>
+        <location filename="../tools/designer/src/lib/shared/qdesigner_promotion.cpp" line="+83"/>
         <source>%1 is not a promoted class.</source>
         <translation>%1 n&apos;est pas une classe promue.</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_promotion.cpp" line="148"/>
+        <location line="+65"/>
         <source>The base class %1 is invalid.</source>
         <translation>La classe de base %1 est invalide.</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_promotion.cpp" line="155"/>
+        <location line="+7"/>
         <source>The class %1 already exists.</source>
         <translation>La classe %1 existe déjà.</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_promotion.cpp" line="164"/>
+        <location line="+9"/>
         <source>Promoted Widgets</source>
         <translation>Widgets promus</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_promotion.cpp" line="290"/>
+        <location line="+126"/>
         <source>The class %1 cannot be removed</source>
         <translation>La classe %1 ne peut pas être retirée</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_promotion.cpp" line="299"/>
+        <location line="+9"/>
         <source>The class %1 cannot be removed because it is still referenced.</source>
         <translation>La classe %1 ne peut pas être retirée car elle est toujours référencée.</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_promotion.cpp" line="309"/>
+        <location line="+10"/>
         <source>The class %1 cannot be renamed</source>
         <translation>La classe %1 ne peut pas être renommée</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_promotion.cpp" line="316"/>
+        <location line="+7"/>
         <source>The class %1 cannot be renamed to an empty name.</source>
         <translation>La classe %1 ne peut pas être renommé avec un nom vide.</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_promotion.cpp" line="321"/>
+        <location line="+5"/>
         <source>There is already a class named %1.</source>
         <translation>Une classe existe déjà avec le nom %1.</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_promotion.cpp" line="350"/>
+        <location line="+29"/>
         <source>Cannot set an empty include file.</source>
         <translation>Impossible de créer un fichier include vide.</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/uilib/formscriptrunner.cpp" line="88"/>
+        <location filename="../tools/designer/src/lib/uilib/formscriptrunner.cpp" line="+88"/>
         <source>Exception at line %1: %2</source>
         <translation>Exception à la ligne %1 : %2</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/uilib/formscriptrunner.cpp" line="124"/>
+        <location line="+36"/>
         <source>Unknown error</source>
         <translation>Erreur inconnue</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/uilib/formscriptrunner.cpp" line="174"/>
+        <location line="+50"/>
         <source>An error occurred while running the script for %1: %2
 Script: %3</source>
         <translation>Une erreur s&apos;est produite lors de l&apos;exécution du script de %1 : %2
@@ -1572,17 +1580,17 @@
 <context>
     <name>QDesigner</name>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner.cpp" line="141"/>
+        <location filename="../tools/designer/src/designer/qdesigner.cpp" line="+141"/>
         <source>%1 - warning</source>
         <translation>Avertissement - %1</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner.cpp" line="237"/>
+        <location line="+96"/>
         <source>Qt Designer</source>
         <translation>Qt Designer</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner.cpp" line="238"/>
+        <location line="+1"/>
         <source>This application cannot be used for the Console edition of Qt</source>
         <translation>Cette application ne peut pas être utilisée avec l&apos;édition console de Qt</translation>
     </message>
@@ -1590,228 +1598,228 @@
 <context>
     <name>QDesignerActions</name>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_actions.cpp" line="128"/>
+        <location filename="../tools/designer/src/designer/qdesigner_actions.cpp" line="+130"/>
         <source>Saved %1.</source>
         <translation>%1 sauvé.</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_actions.cpp" line="154"/>
+        <location line="+26"/>
         <source>%1 already exists.
 Do you want to replace it?</source>
         <translation>%1 existe déjà.
 Voulez-vous le remplacer ?</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_actions.cpp" line="178"/>
+        <location line="+24"/>
         <source>Edit Widgets</source>
         <translation>Éditer les widgets</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_actions.cpp" line="179"/>
+        <location line="+1"/>
         <source>&amp;New...</source>
         <translation>&amp;Nouveau...</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_actions.cpp" line="180"/>
+        <location line="+1"/>
         <source>&amp;Open...</source>
         <translation>&amp;Ouvrir...</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_actions.cpp" line="181"/>
+        <location line="+1"/>
         <source>&amp;Save</source>
         <translation>&amp;Enregistrer</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_actions.cpp" line="182"/>
+        <location line="+1"/>
         <source>Save &amp;As...</source>
         <translation>Enregistrer &amp;sous...</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_actions.cpp" line="183"/>
+        <location line="+1"/>
         <source>Save A&amp;ll</source>
         <translation>Enregistrer &amp;tout</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_actions.cpp" line="184"/>
+        <location line="+1"/>
         <source>Save As &amp;Template...</source>
         <translation>Sauver comme &amp;modèle...</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_actions.cpp" line="185"/>
-        <location filename="../tools/designer/src/designer/qdesigner_actions.cpp" line="1086"/>
+        <location line="+1"/>
+        <location line="+925"/>
         <source>&amp;Close</source>
         <translation>&amp;Fermer</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_actions.cpp" line="186"/>
+        <location line="-924"/>
         <source>Save &amp;Image...</source>
         <translation>Enregistrer &amp;image...</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_actions.cpp" line="187"/>
+        <location line="+1"/>
         <source>&amp;Print...</source>
         <translation>Im&amp;primer...</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_actions.cpp" line="188"/>
+        <location line="+1"/>
         <source>&amp;Quit</source>
         <translation>&amp;Quitter</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_actions.cpp" line="190"/>
+        <location line="+2"/>
         <source>View &amp;Code...</source>
         <translation>&amp;Visualizer le code...</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_actions.cpp" line="191"/>
+        <location line="+1"/>
         <source>&amp;Minimize</source>
         <translation>&amp;Minimiser</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_actions.cpp" line="193"/>
+        <location line="+2"/>
         <source>Bring All to Front</source>
         <translation>Amener tout au premier plan</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_actions.cpp" line="195"/>
+        <location line="+2"/>
         <source>Preferences...</source>
         <translation>Préférences...</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_actions.cpp" line="196"/>
+        <location line="+1"/>
         <source>Additional Fonts...</source>
         <translation>Polices additionnelles...</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_actions.cpp" line="258"/>
+        <location line="+72"/>
         <source>ALT+CTRL+S</source>
         <translation>ALT+CTRL+S</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_actions.cpp" line="260"/>
+        <location line="+2"/>
         <source>CTRL+SHIFT+S</source>
         <translation>CTRL+SHIFT+S</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_actions.cpp" line="373"/>
+        <location line="+127"/>
         <source>CTRL+R</source>
         <translation>CTRL+R</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_actions.cpp" line="391"/>
+        <location line="+18"/>
         <source>CTRL+M</source>
         <translation>CTRL+M</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_actions.cpp" line="422"/>
+        <location line="+31"/>
         <source>Qt Designer &amp;Help</source>
         <translation>&amp;Aide de Qt Designer</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_actions.cpp" line="429"/>
+        <location line="+7"/>
         <source>Current Widget Help</source>
         <translation>Aide du widget courant</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_actions.cpp" line="436"/>
+        <location line="+7"/>
         <source>What&apos;s New in Qt Designer?</source>
         <translation>Quoi de neuf dans Qt Designer ?</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_actions.cpp" line="443"/>
+        <location line="+7"/>
         <source>About Plugins</source>
         <translation>À propos des plugins</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_actions.cpp" line="449"/>
-        <location filename="../tools/designer/src/designer/qdesigner_actions.cpp" line="1050"/>
+        <location line="+6"/>
+        <location line="+601"/>
         <source>About Qt Designer</source>
         <translation>À propos de Qt Designer</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_actions.cpp" line="455"/>
+        <location line="-595"/>
         <source>About Qt</source>
         <translation>À propos de Qt</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_actions.cpp" line="493"/>
+        <location line="+38"/>
         <source>Clear &amp;Menu</source>
         <translation>Réinitialiser le &amp;menu</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_actions.cpp" line="499"/>
+        <location line="+6"/>
         <source>&amp;Recent Forms</source>
         <translation>Formulaires &amp;récents</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_actions.cpp" line="576"/>
-        <location filename="../tools/designer/src/designer/qdesigner_actions.cpp" line="773"/>
+        <location line="+77"/>
+        <location line="+197"/>
         <source>Open Form</source>
         <translation>Ouvrir le formulaire</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_actions.cpp" line="577"/>
-        <location filename="../tools/designer/src/designer/qdesigner_actions.cpp" line="614"/>
-        <location filename="../tools/designer/src/designer/qdesigner_actions.cpp" line="774"/>
+        <location line="-196"/>
+        <location line="+37"/>
+        <location line="+160"/>
         <source>Designer UI files (*.%1);;All Files (*)</source>
         <translation>Fichier UI de Qt Designer (*.%1);;Tous les fichiers(*)</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_actions.cpp" line="614"/>
-        <location filename="../tools/designer/src/designer/qdesigner_actions.cpp" line="862"/>
+        <location line="-160"/>
+        <location line="+248"/>
         <source>Save Form As</source>
         <translation>Enregistrer le formulaire sous</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_actions.cpp" line="701"/>
+        <location line="-161"/>
         <source>Designer</source>
         <translation>Designer</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_actions.cpp" line="701"/>
+        <location line="+0"/>
         <source>Feature not implemented yet!</source>
         <translation>Cette fonctionnalité n&apos;est pas encore implémentée !</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_actions.cpp" line="716"/>
+        <location line="+15"/>
         <source>Code generation failed</source>
         <translation>La génération du code à échoué</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_actions.cpp" line="760"/>
+        <location line="+44"/>
         <source>Read error</source>
         <translation>Erreur de lecture</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_actions.cpp" line="761"/>
+        <location line="+1"/>
         <source>%1
 Do you want to update the file location or generate a new form?</source>
         <translation>%1
 Voulez vous mettre à jour l&apos;emplacement du fichier ou générer un nouveau formulaire ?</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_actions.cpp" line="764"/>
+        <location line="+3"/>
         <source>&amp;Update</source>
         <translation>&amp;Mettre à jour</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_actions.cpp" line="765"/>
+        <location line="+1"/>
         <source>&amp;New Form</source>
         <translation>&amp;Nouveau formulaire</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_actions.cpp" line="842"/>
-        <location filename="../tools/designer/src/designer/qdesigner_actions.cpp" line="882"/>
+        <location line="+77"/>
+        <location line="+40"/>
         <source>Save Form?</source>
         <translation>Sauver le formulaire ?</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_actions.cpp" line="843"/>
+        <location line="-39"/>
         <source>Could not open file</source>
         <translation>Impossible d&apos;ouvrir le fichier</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_actions.cpp" line="847"/>
+        <location line="+4"/>
         <source>The file %1 could not be opened.
 Reason: %2
 Would you like to retry or select a different file?</source>
@@ -1820,17 +1828,17 @@
 Voulez-vous réessayer ou sélectionner un fichier différent ?</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_actions.cpp" line="853"/>
+        <location line="+6"/>
         <source>Select New File</source>
         <translation>Sélectionner un nouveau fichier</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_actions.cpp" line="883"/>
+        <location line="+30"/>
         <source>Could not write file</source>
         <translation>Impossible d&apos;écrire le fichier</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_actions.cpp" line="886"/>
+        <location line="+3"/>
         <source>It was not possible to write the entire file %1 to disk.
 Reason:%2
 Would you like to retry?</source>
@@ -1839,65 +1847,65 @@
 Voulez-vous réessayer ?</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_actions.cpp" line="1044"/>
-        <location filename="../tools/designer/src/designer/qdesigner_actions.cpp" line="1078"/>
+        <location line="+158"/>
+        <location line="+34"/>
         <source>Assistant</source>
         <translation>Assistant</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_actions.cpp" line="1084"/>
+        <location line="+6"/>
         <source>&amp;Close Preview</source>
         <translation>&amp;Fermer la prévisualisation</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_actions.cpp" line="1125"/>
-        <location filename="../tools/designer/src/designer/qdesigner_actions.cpp" line="1148"/>
+        <location line="+41"/>
+        <location line="+23"/>
         <source>The backup file %1 could not be written.</source>
         <translation>Le fichier de backup %1 n&apos;a pas pu être écrit.</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_actions.cpp" line="1255"/>
+        <location line="+107"/>
         <source>The backup directory %1 could not be created.</source>
         <translation>Le dossier de backup %1 n&apos;a pas pu être créé.</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_actions.cpp" line="1261"/>
+        <location line="+6"/>
         <source>The temporary backup directory %1 could not be created.</source>
         <translation>Le dossier temporaire de backup %1 n&apos;a pas pu être créé.</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_actions.cpp" line="1291"/>
+        <location line="+30"/>
         <source>Preview failed</source>
         <translation>La prévisualisation a échoué</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_actions.cpp" line="1315"/>
+        <location line="+24"/>
         <source>Image files (*.%1)</source>
         <translation>Fichiers image (*.%1)</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_actions.cpp" line="1324"/>
-        <location filename="../tools/designer/src/designer/qdesigner_actions.cpp" line="1341"/>
+        <location line="+9"/>
+        <location line="+17"/>
         <source>Save Image</source>
         <translation>Sauver image</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_actions.cpp" line="1337"/>
+        <location line="-4"/>
         <source>Saved image %1.</source>
         <translation>Image %1 sauvée.</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_actions.cpp" line="1342"/>
+        <location line="+5"/>
         <source>The file %1 could not be written.</source>
         <translation>Le fichier %1 n&apos;a pas pu être écrit.</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_actions.cpp" line="1355"/>
+        <location line="+13"/>
         <source>Please close all forms to enable the loading of additional fonts.</source>
         <translation>Veuillez fermer tous les formulaires pour activer le chargement de polices additionnelles.</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_actions.cpp" line="1407"/>
+        <location line="+52"/>
         <source>Printed %1.</source>
         <translation>Impression de %1 terminée.</translation>
     </message>
@@ -1905,7 +1913,7 @@
 <context>
     <name>QDesignerAppearanceOptionsPage</name>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_appearanceoptions.cpp" line="138"/>
+        <location filename="../tools/designer/src/designer/qdesigner_appearanceoptions.cpp" line="+138"/>
         <source>Appearance</source>
         <extracomment>Tab in preferences dialog</extracomment>
         <translation>Apparence</translation>
@@ -1914,17 +1922,17 @@
 <context>
     <name>QDesignerAppearanceOptionsWidget</name>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_appearanceoptions.cpp" line="85"/>
+        <location line="-53"/>
         <source>Docked Window</source>
         <translation>Fenêtre ancrable</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_appearanceoptions.cpp" line="86"/>
+        <location line="+1"/>
         <source>Multiple Top-Level Windows</source>
         <translation>Fenêtres multiples</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_appearanceoptions.cpp" line="91"/>
+        <location line="+5"/>
         <source>Toolwindow Font</source>
         <translation>Police des fenêtre d&apos;outils</translation>
     </message>
@@ -1932,22 +1940,22 @@
 <context>
     <name>QDesignerAxWidget</name>
     <message>
-        <location filename="../tools/designer/src/plugins/activeqt/qaxwidgettaskmenu.cpp" line="91"/>
+        <location filename="../tools/designer/src/plugins/activeqt/qaxwidgettaskmenu.cpp" line="-71"/>
         <source>Reset control</source>
         <translation>Réinitialiser les contrôles</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/plugins/activeqt/qaxwidgettaskmenu.cpp" line="93"/>
+        <location line="+2"/>
         <source>Set control</source>
         <translation>Définir les contrôles</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/plugins/activeqt/qdesigneraxwidget.cpp" line="179"/>
+        <location filename="../tools/designer/src/plugins/activeqt/qdesigneraxwidget.cpp" line="+179"/>
         <source>Control loaded</source>
         <translation>Contrôle chargé</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/plugins/activeqt/qdesigneraxwidget.cpp" line="219"/>
+        <location line="+40"/>
         <source>A COM exception occurred when executing a meta call of type %1, index %2 of &quot;%3&quot;.</source>
         <translation>Une exception COM a été levée lors de l&apos;execution du meta-appel de type %1, indice %2 de &quot;%3&quot;.</translation>
     </message>
@@ -1955,17 +1963,17 @@
 <context>
     <name>QDesignerFormBuilder</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_formbuilder.cpp" line="89"/>
+        <location filename="../tools/designer/src/lib/shared/qdesigner_formbuilder.cpp" line="+89"/>
         <source>Script errors occurred:</source>
         <translation>Erreurs du script :</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_formbuilder.cpp" line="396"/>
+        <location line="+307"/>
         <source>The preview failed to build.</source>
         <translation>La construction de la prévisualisation a échoué.</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_formbuilder.cpp" line="461"/>
+        <location line="+65"/>
         <source>Designer</source>
         <translation>Designer</translation>
     </message>
@@ -1973,22 +1981,22 @@
 <context>
     <name>QDesignerFormWindow</name>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_formwindow.cpp" line="217"/>
+        <location filename="../tools/designer/src/designer/qdesigner_formwindow.cpp" line="+217"/>
         <source>%1 - %2[*]</source>
         <translation>%1 - %2[*]</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_formwindow.cpp" line="227"/>
+        <location line="+10"/>
         <source>Save Form?</source>
         <translation>Enregistrer le formulaire ?</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_formwindow.cpp" line="228"/>
+        <location line="+1"/>
         <source>Do you want to save the changes to this document before closing?</source>
         <translation>Voulez-vous enregistrer les changements de ce document avant de le fermer ?</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_formwindow.cpp" line="230"/>
+        <location line="+2"/>
         <source>If you don&apos;t save, your changes will be lost.</source>
         <translation>Si vous ne sauvegardez pas, les changements seront perdus.</translation>
     </message>
@@ -1996,38 +2004,38 @@
 <context>
     <name>QDesignerMenu</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_menu.cpp" line="106"/>
+        <location filename="../tools/designer/src/lib/shared/qdesigner_menu.cpp" line="-1180"/>
         <source>Type Here</source>
         <translation>Taper ici</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_menu.cpp" line="109"/>
+        <location line="+3"/>
         <source>Add Separator</source>
         <translation>Ajouter séparateur</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_menu.cpp" line="480"/>
+        <location line="+371"/>
         <source>Insert separator</source>
         <translation>Insérer séparateur</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_menu.cpp" line="485"/>
+        <location line="+5"/>
         <source>Remove separator</source>
         <translation>Retirer séparateur</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_menu.cpp" line="487"/>
+        <location line="+2"/>
         <source>Remove action &apos;%1&apos;</source>
         <translation>Supprimer l&apos;action &apos;%1&apos;</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_menu.cpp" line="512"/>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_menu.cpp" line="1162"/>
+        <location line="+25"/>
+        <location line="+649"/>
         <source>Add separator</source>
         <translation>Ajouter séparateur</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_menu.cpp" line="814"/>
+        <location line="-349"/>
         <source>Insert action</source>
         <translation>Insérer action</translation>
     </message>
@@ -2035,22 +2043,22 @@
 <context>
     <name>QDesignerMenuBar</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_menubar.cpp" line="110"/>
+        <location filename="../tools/designer/src/lib/shared/qdesigner_menubar.cpp" line="-375"/>
         <source>Type Here</source>
         <translation>Taper ici</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_menubar.cpp" line="408"/>
+        <location line="+298"/>
         <source>Remove Menu &apos;%1&apos;</source>
         <translation>Supprimer menu &apos;%1&apos;</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_menubar.cpp" line="420"/>
+        <location line="+12"/>
         <source>Remove Menu Bar</source>
         <translation>Supprimer barre de menu</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_menubar.cpp" line="490"/>
+        <location line="+70"/>
         <source>Menu</source>
         <translation>Menu</translation>
     </message>
@@ -2058,37 +2066,37 @@
 <context>
     <name>QDesignerPluginManager</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/pluginmanager.cpp" line="271"/>
+        <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>Une erreur XML a été rencontrée lors de l&apos;analyse grammaticale du XML provenant du widget personnalisé %1 : %2</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/pluginmanager.cpp" line="276"/>
+        <location line="+5"/>
         <source>A required attribute (&apos;%1&apos;) is missing.</source>
         <translation>Un attribut obligatoire (&apos;%1&apos;) est manquant.</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/pluginmanager.cpp" line="314"/>
+        <location line="+38"/>
         <source>An invalid property specification (&apos;%1&apos;) was encountered. Supported types: %2</source>
         <translation>Une spécification invalide de propriété (&apos;%1&apos;) a été rencontrée. Types supportés : %2</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/pluginmanager.cpp" line="334"/>
+        <location line="+20"/>
         <source>&apos;%1&apos; is not a valid string property specification.</source>
         <translation>&apos;%1&apos; n&apos;est pas une spécification valide de propriété chaîne de caractères.</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/pluginmanager.cpp" line="374"/>
+        <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>Le XML du widget personnalisé %1 ne contient aucun des éléments &lt;widget&gt; ou &lt;ui&gt;.</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/pluginmanager.cpp" line="386"/>
+        <location line="+12"/>
         <source>The class attribute for the class %1 is missing.</source>
         <translation>L&apos;attribut de classe est manquant pour la classe %1.</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/pluginmanager.cpp" line="390"/>
+        <location line="+4"/>
         <source>The class attribute for the class %1 does not match the class name %2.</source>
         <translation>L&apos;attribut de classe pour la classe %1 ne correspond pas au nom de la classe %2.</translation>
     </message>
@@ -2096,7 +2104,7 @@
 <context>
     <name>QDesignerPropertySheet</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_propertysheet.cpp" line="754"/>
+        <location filename="../tools/designer/src/lib/shared/qdesigner_propertysheet.cpp" line="+762"/>
         <source>Dynamic Properties</source>
         <translation>Propriétés dynamiques</translation>
     </message>
@@ -2104,31 +2112,31 @@
 <context>
     <name>QDesignerResource</name>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/qdesigner_resource.cpp" line="1223"/>
+        <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>Le type de layout &apos;%1&apos; n&apos;est pas supporté, replacement par une grille.</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/qdesigner_resource.cpp" line="1466"/>
+        <location line="+239"/>
         <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>L&apos;extension du widget &apos;%1&apos; (%2) a retourné un widget non géré par Designer &apos;%3&apos; (%4) lors de la requête pour la page #%5.
 Les pages du conteneur ne devraient être ajoutées que par spécification dans le XML retourné par la méthode domXml() du widget personnalisé.</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/qdesigner_resource.cpp" line="2065"/>
+        <location line="+545"/>
         <source>Unexpected element &lt;%1&gt;</source>
         <extracomment>Parsing clipboard contents</extracomment>
         <translation>Élément inattendu &lt;%1&gt;</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/qdesigner_resource.cpp" line="2071"/>
+        <location line="+6"/>
         <source>Error while pasting clipboard contents at line %1, column %2: %3</source>
         <extracomment>Parsing clipboard contents</extracomment>
         <translation>Erreur lors du collage du contenu du presse-papier à la ligne %1, colonne %2 : %3</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/qdesigner_resource.cpp" line="2077"/>
+        <location line="+6"/>
         <source>Error while pasting clipboard contents: The root element &lt;ui&gt; is missing.</source>
         <extracomment>Parsing clipboard contents</extracomment>
         <translation>Erreur lors du collage du contenu du presse-papier. L&apos;élément racine &lt;ui&gt; est manquant.</translation>
@@ -2137,12 +2145,12 @@
 <context>
     <name>QDesignerSharedSettings</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/shared_settings.cpp" line="83"/>
+        <location filename="../tools/designer/src/lib/shared/shared_settings.cpp" line="+83"/>
         <source>The template path %1 could not be created.</source>
         <translation>Le chemin du modèle %1 n&apos;a pas pu être créé.</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/shared_settings.cpp" line="267"/>
+        <location line="+184"/>
         <source>An error has been encountered while parsing device profile XML: %1</source>
         <translation>Une erreur a été rencontrée lors de l&apos;analyse grammaticale du XML du profil de l&apos;appareil : %1</translation>
     </message>
@@ -2150,33 +2158,33 @@
 <context>
     <name>QDesignerToolWindow</name>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_toolwindow.cpp" line="190"/>
+        <location filename="../tools/designer/src/designer/qdesigner_toolwindow.cpp" line="+190"/>
         <source>Property Editor</source>
         <translation>Éditeur de propriétés</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_toolwindow.cpp" line="244"/>
+        <location line="+54"/>
         <source>Action Editor</source>
         <translation>Éditeur d&apos;actions</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_toolwindow.cpp" line="286"/>
+        <location line="+42"/>
         <source>Object Inspector</source>
         <translation>Inspecteur d&apos;objet</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_toolwindow.cpp" line="321"/>
+        <location line="+35"/>
         <source>Resource Browser</source>
         <translatorcomment>plural</translatorcomment>
         <translation>Explorateur de ressources</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_toolwindow.cpp" line="355"/>
+        <location line="+34"/>
         <source>Signal/Slot Editor</source>
         <translation>Éditeur de signaux et slots</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_toolwindow.cpp" line="396"/>
+        <location line="+41"/>
         <source>Widget Box</source>
         <translation>Boîte de widget</translation>
     </message>
@@ -2184,62 +2192,62 @@
 <context>
     <name>QDesignerWorkbench</name>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_workbench.cpp" line="199"/>
+        <location filename="../tools/designer/src/designer/qdesigner_workbench.cpp" line="+199"/>
         <source>&amp;File</source>
         <translation>&amp;Fichier</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_workbench.cpp" line="201"/>
+        <location line="+2"/>
         <source>Edit</source>
         <translation>Édition</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_workbench.cpp" line="205"/>
+        <location line="+4"/>
         <source>F&amp;orm</source>
         <translation>F&amp;ormulaire</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_workbench.cpp" line="206"/>
+        <location line="+1"/>
         <source>Preview in</source>
         <translation>Prévisualisation avec</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_workbench.cpp" line="210"/>
+        <location line="+4"/>
         <source>&amp;View</source>
         <translation>Afficha&amp;ge</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_workbench.cpp" line="212"/>
+        <location line="+2"/>
         <source>&amp;Settings</source>
         <translation>&amp;Configuration</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_workbench.cpp" line="214"/>
+        <location line="+2"/>
         <source>&amp;Window</source>
         <translation>Fe&amp;nêtre</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_workbench.cpp" line="216"/>
+        <location line="+2"/>
         <source>&amp;Help</source>
         <translation>&amp;Aide</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_workbench.cpp" line="239"/>
+        <location line="+23"/>
         <source>Toolbars</source>
         <translation>Barre d&apos;outils</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_workbench.cpp" line="416"/>
+        <location line="+177"/>
         <source>Widget Box</source>
         <translation>Boîte de widget</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_workbench.cpp" line="704"/>
+        <location line="+289"/>
         <source>Save Forms?</source>
         <translation>Enregistrer les formulaires ?</translation>
     </message>
     <message numerus="yes">
-        <location filename="../tools/designer/src/designer/qdesigner_workbench.cpp" line="705"/>
+        <location line="+1"/>
         <source>There are %n forms with unsaved changes. Do you want to review these changes before quitting?</source>
         <translation>
             <numerusform>Il y a %n formulaire avec des changements non-enregistrés. Voulez-vous vérifier les changements avant de quitter?</numerusform>
@@ -2247,37 +2255,37 @@
         </translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_workbench.cpp" line="708"/>
+        <location line="+3"/>
         <source>If you do not review your documents, all your changes will be lost.</source>
         <translation>Si vous ne vérifiez pas vos documents, tous les changements seront perdus.</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_workbench.cpp" line="709"/>
+        <location line="+1"/>
         <source>Discard Changes</source>
         <translation>Abandonner les changements</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_workbench.cpp" line="711"/>
+        <location line="+2"/>
         <source>Review Changes</source>
         <translation>Vérifier les changements</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_workbench.cpp" line="806"/>
+        <location line="+95"/>
         <source>Backup Information</source>
         <translation>Informations de sauvegarde</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_workbench.cpp" line="807"/>
+        <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>La dernière session de Designer n&apos;a pas été fermée correctement. Des fichiers de sauvegarde existent. Voulez-vous les charger ?</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_workbench.cpp" line="918"/>
+        <location line="+111"/>
         <source>The file &lt;b&gt;%1&lt;/b&gt; could not be opened.</source>
         <translation>Le fichier &lt;b&gt;%1&lt;/b&gt; n&apos;a pas pu être ouvert.</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_workbench.cpp" line="964"/>
+        <location line="+46"/>
         <source>The file &lt;b&gt;%1&lt;/b&gt; is not a valid Designer UI file.</source>
         <translation>Le fichier &lt;b&gt;%1&lt;/b&gt; n&apos;est pas un fichier valide d&apos;UI de Designer.</translation>
     </message>
@@ -2285,92 +2293,106 @@
 <context>
     <name>QFormBuilder</name>
     <message>
-        <location filename="../tools/designer/src/lib/uilib/formbuilder.cpp" line="163"/>
+        <location filename="../tools/designer/src/lib/uilib/formbuilder.cpp" line="+168"/>
         <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>
+        <extracomment>Empty class name passed to widget factory method
+----------
+Empty class name passed to widget factory method
+----------
+Empty class name passed to widget factory method</extracomment>
         <translation>Un nom de classe vide a été passé à %1 (nom d&apos;objet &apos;%2&apos;).</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/uilib/formbuilder.cpp" line="219"/>
+        <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 n&apos;a pas pu créer le widget personnalisé de classe &apos;%1&apos;; passage à la classe de base &apos;%2&apos;.</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/uilib/formbuilder.cpp" line="225"/>
+        <location line="+6"/>
         <source>QFormBuilder was unable to create a widget of the class &apos;%1&apos;.</source>
         <translation>QFormBuilder n&apos;a pas pu créer un widget de classe &apos;%1&apos;.</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/uilib/formbuilder.cpp" line="286"/>
+        <location line="+61"/>
         <source>The layout type `%1&apos; is not supported.</source>
         <translation>Le type de layout &apos;%1&apos; n&apos;est pas supporté.</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/uilib/properties.cpp" line="106"/>
+        <location filename="../tools/designer/src/lib/uilib/properties.cpp" line="+106"/>
         <source>The set-type property %1 could not be read.</source>
         <translation>Le type du setteur de propriété %1 n&apos;a pas pu être lu.</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/uilib/properties.cpp" line="129"/>
+        <location line="+23"/>
         <source>The enumeration-type property %1 could not be read.</source>
         <translation>Le type d&apos;énumeration de propriété %1 n&apos;a pas pu être lu.</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/uilib/properties.cpp" line="319"/>
+        <location line="+190"/>
         <source>Reading properties of the type %1 is not supported yet.</source>
         <translation>La lecture des propriétés de type %1 n&apos;est pas supporté.</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/uilib/properties.cpp" line="585"/>
+        <location line="+266"/>
         <source>The property %1 could not be written. The type %2 is not supported yet.</source>
         <translation>La propriété %1 ne peut pas être écrite. Le type %2 n&apos;est pas encore supporté.</translation>
     </message>
+    <message>
+        <location filename="../tools/designer/src/lib/uilib/properties_p.h" line="+132"/>
+        <source>The enumeration-value &apos;%1&apos; is invalid. The default value &apos;%2&apos; will be used instead.</source>
+        <translation>la valeur d&apos;énumération &apos;%1&apos; est invalide. La valeur par défaut &apos;%2&apos; sera utilisée à la place.</translation>
+    </message>
+    <message>
+        <location line="+14"/>
+        <source>The flag-value &apos;%1&apos; is invalid. Zero will be used instead.</source>
+        <translation>Le drapeau &apos;%1&apos; est invalide. Zero sera utilisé à la place.</translation>
+    </message>
 </context>
 <context>
     <name>QStackedWidgetEventFilter</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_stackedbox.cpp" line="194"/>
+        <location filename="../tools/designer/src/lib/shared/qdesigner_stackedbox.cpp" line="+194"/>
         <source>Previous Page</source>
         <translation>Page précédente</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_stackedbox.cpp" line="195"/>
+        <location line="+1"/>
         <source>Next Page</source>
         <translation>Page suivante</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_stackedbox.cpp" line="196"/>
+        <location line="+1"/>
         <source>Delete</source>
         <translation>Supprimer</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_stackedbox.cpp" line="197"/>
+        <location line="+1"/>
         <source>Before Current Page</source>
         <translation>Avant la page courante</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_stackedbox.cpp" line="198"/>
+        <location line="+1"/>
         <source>After Current Page</source>
         <translation>Après la page courante</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_stackedbox.cpp" line="199"/>
+        <location line="+1"/>
         <source>Change Page Order...</source>
         <translation>Modifier l&apos;ordre des pages...</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_stackedbox.cpp" line="271"/>
+        <location line="+72"/>
         <source>Change Page Order</source>
         <translation>Modifier l&apos;ordre des pages</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_stackedbox.cpp" line="320"/>
+        <location line="+49"/>
         <source>Page %1 of %2</source>
         <translation>Page %1 de %2</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_stackedbox.cpp" line="330"/>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_stackedbox.cpp" line="334"/>
+        <location line="+10"/>
+        <location line="+4"/>
         <source>Insert Page</source>
         <translation>Insérer page</translation>
     </message>
@@ -2378,12 +2400,12 @@
 <context>
     <name>QStackedWidgetPreviewEventFilter</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_stackedbox.cpp" line="181"/>
+        <location line="-153"/>
         <source>Go to previous page of %1 &apos;%2&apos; (%3/%4).</source>
         <translation>Aller à la page précédente de %1 &apos;%2&apos; (%3/%4).</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_stackedbox.cpp" line="185"/>
+        <location line="+4"/>
         <source>Go to next page of %1 &apos;%2&apos; (%3/%4).</source>
         <translation>Aller à la page suivante de %1 &apos;%2&apos; (%3/%4).</translation>
     </message>
@@ -2391,28 +2413,28 @@
 <context>
     <name>QTabWidgetEventFilter</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_tabwidget.cpp" line="89"/>
+        <location filename="../tools/designer/src/lib/shared/qdesigner_tabwidget.cpp" line="+89"/>
         <source>Delete</source>
         <translation>Supprimer</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_tabwidget.cpp" line="90"/>
+        <location line="+1"/>
         <source>Before Current Page</source>
         <translation>Avant la page courante</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_tabwidget.cpp" line="91"/>
+        <location line="+1"/>
         <source>After Current Page</source>
         <translation>Après la page courante</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_tabwidget.cpp" line="374"/>
+        <location line="+283"/>
         <source>Page %1 of %2</source>
         <translation>Page %1 de %2</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_tabwidget.cpp" line="384"/>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_tabwidget.cpp" line="388"/>
+        <location line="+10"/>
+        <location line="+4"/>
         <source>Insert Page</source>
         <translation>Insérer page</translation>
     </message>
@@ -2420,37 +2442,37 @@
 <context>
     <name>QToolBoxHelper</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_toolbox.cpp" line="64"/>
+        <location filename="../tools/designer/src/lib/shared/qdesigner_toolbox.cpp" line="+64"/>
         <source>Delete Page</source>
         <translation>Supprimer page</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_toolbox.cpp" line="65"/>
+        <location line="+1"/>
         <source>Before Current Page</source>
         <translation>Avant la page courante</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_toolbox.cpp" line="66"/>
+        <location line="+1"/>
         <source>After Current Page</source>
         <translation>Après la page courante</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_toolbox.cpp" line="67"/>
+        <location line="+1"/>
         <source>Change Page Order...</source>
         <translation>Modifier l&apos;ordre des pages...</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_toolbox.cpp" line="183"/>
+        <location line="+116"/>
         <source>Change Page Order</source>
         <translation>Modifier l&apos;ordre de pages</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_toolbox.cpp" line="227"/>
+        <location line="+44"/>
         <source>Page %1 of %2</source>
         <translation>Page %1 de %2</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_toolbox.cpp" line="239"/>
+        <location line="+12"/>
         <source>Insert Page</source>
         <translation>Insérer page</translation>
     </message>
@@ -2458,15 +2480,15 @@
 <context>
     <name>QtBoolEdit</name>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qtpropertybrowserutils.cpp" line="226"/>
-        <location filename="../tools/shared/qtpropertybrowser/qtpropertybrowserutils.cpp" line="236"/>
-        <location filename="../tools/shared/qtpropertybrowser/qtpropertybrowserutils.cpp" line="261"/>
+        <location filename="../tools/shared/qtpropertybrowser/qtpropertybrowserutils.cpp" line="+255"/>
+        <location line="+10"/>
+        <location line="+25"/>
         <source>True</source>
         <translation>Vrai</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qtpropertybrowserutils.cpp" line="236"/>
-        <location filename="../tools/shared/qtpropertybrowser/qtpropertybrowserutils.cpp" line="261"/>
+        <location line="-25"/>
+        <location line="+25"/>
         <source>False</source>
         <translation>Faux</translation>
     </message>
@@ -2474,12 +2496,12 @@
 <context>
     <name>QtBoolPropertyManager</name>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="1469"/>
+        <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="+1507"/>
         <source>True</source>
         <translation>Vrai</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="1470"/>
+        <location line="+1"/>
         <source>False</source>
         <translation>Faux</translation>
     </message>
@@ -2487,7 +2509,7 @@
 <context>
     <name>QtCharEdit</name>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qteditorfactory.cpp" line="1581"/>
+        <location filename="../tools/shared/qtpropertybrowser/qteditorfactory.cpp" line="+1584"/>
         <source>Clear Char</source>
         <translation>Effacer caractère</translation>
     </message>
@@ -2495,7 +2517,7 @@
 <context>
     <name>QtColorEditWidget</name>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qteditorfactory.cpp" line="2186"/>
+        <location line="+605"/>
         <source>...</source>
         <translation>...</translation>
     </message>
@@ -2503,22 +2525,22 @@
 <context>
     <name>QtColorPropertyManager</name>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="6213"/>
+        <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="+4718"/>
         <source>Red</source>
         <translation>Rouge</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="6221"/>
+        <location line="+8"/>
         <source>Green</source>
         <translation>Vert</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="6229"/>
+        <location line="+8"/>
         <source>Blue</source>
         <translation>Bleu</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="6237"/>
+        <location line="+8"/>
         <source>Alpha</source>
         <translation>Alpha</translation>
     </message>
@@ -2526,97 +2548,97 @@
 <context>
     <name>QtCursorDatabase</name>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qtpropertybrowserutils.cpp" line="55"/>
+        <location filename="../tools/shared/qtpropertybrowser/qtpropertybrowserutils.cpp" line="-234"/>
         <source>Arrow</source>
         <translation>Flèche</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qtpropertybrowserutils.cpp" line="57"/>
+        <location line="+2"/>
         <source>Up Arrow</source>
         <translation>Flèche vers le haut</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qtpropertybrowserutils.cpp" line="59"/>
+        <location line="+2"/>
         <source>Cross</source>
         <translation>Croix</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qtpropertybrowserutils.cpp" line="61"/>
+        <location line="+2"/>
         <source>Wait</source>
         <translation>Attendre</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qtpropertybrowserutils.cpp" line="63"/>
+        <location line="+2"/>
         <source>IBeam</source>
         <translation>IBeam</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qtpropertybrowserutils.cpp" line="65"/>
+        <location line="+2"/>
         <source>Size Vertical</source>
         <translation>Redimensionner verticalement</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qtpropertybrowserutils.cpp" line="67"/>
+        <location line="+2"/>
         <source>Size Horizontal</source>
         <translation>Redimensionner horizontalement</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qtpropertybrowserutils.cpp" line="69"/>
+        <location line="+2"/>
         <source>Size Backslash</source>
         <translation>Redimensionner diagonale droite</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qtpropertybrowserutils.cpp" line="71"/>
+        <location line="+2"/>
         <source>Size Slash</source>
         <translation>Redimensionner diagonale gauche</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qtpropertybrowserutils.cpp" line="73"/>
+        <location line="+2"/>
         <source>Size All</source>
         <translation>Redimensionner</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qtpropertybrowserutils.cpp" line="75"/>
+        <location line="+2"/>
         <source>Blank</source>
         <translation>Vide</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qtpropertybrowserutils.cpp" line="77"/>
+        <location line="+2"/>
         <source>Split Vertical</source>
         <translation>Scinder verticalement</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qtpropertybrowserutils.cpp" line="79"/>
+        <location line="+2"/>
         <source>Split Horizontal</source>
         <translation>Scinder horizontalement</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qtpropertybrowserutils.cpp" line="81"/>
+        <location line="+2"/>
         <source>Pointing Hand</source>
         <translation>Pointeur index</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qtpropertybrowserutils.cpp" line="83"/>
+        <location line="+2"/>
         <source>Forbidden</source>
         <translation>Interdit</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qtpropertybrowserutils.cpp" line="85"/>
+        <location line="+2"/>
         <source>Open Hand</source>
         <translation>Main ouverte</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qtpropertybrowserutils.cpp" line="87"/>
+        <location line="+2"/>
         <source>Closed Hand</source>
         <translation>Main fermée</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qtpropertybrowserutils.cpp" line="89"/>
+        <location line="+2"/>
         <source>What&apos;s This</source>
         <translation>Qu&apos;est-ce que c&apos;est ?</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qtpropertybrowserutils.cpp" line="91"/>
+        <location line="+2"/>
         <source>Busy</source>
         <translation>Occupé</translation>
     </message>
@@ -2624,12 +2646,12 @@
 <context>
     <name>QtFontEditWidget</name>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qteditorfactory.cpp" line="2384"/>
+        <location filename="../tools/shared/qtpropertybrowser/qteditorfactory.cpp" line="+198"/>
         <source>...</source>
         <translation>...</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qteditorfactory.cpp" line="2404"/>
+        <location line="+20"/>
         <source>Select Font</source>
         <translation>Selectionner police</translation>
     </message>
@@ -2637,37 +2659,37 @@
 <context>
     <name>QtFontPropertyManager</name>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="5886"/>
+        <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="-351"/>
         <source>Family</source>
         <translation>Famille</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="5899"/>
+        <location line="+13"/>
         <source>Point Size</source>
         <translation>Taille en points</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="5907"/>
+        <location line="+8"/>
         <source>Bold</source>
         <translation>Gras</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="5914"/>
+        <location line="+7"/>
         <source>Italic</source>
         <translation>Italique</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="5921"/>
+        <location line="+7"/>
         <source>Underline</source>
         <translation>Souligné</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="5928"/>
+        <location line="+7"/>
         <source>Strikeout</source>
         <translation>Barré</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="5935"/>
+        <location line="+7"/>
         <source>Kerning</source>
         <translation>Crénage</translation>
     </message>
@@ -2675,7 +2697,7 @@
 <context>
     <name>QtGradientDialog</name>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradientdialog.ui" line="53"/>
+        <location filename="../tools/shared/qtgradienteditor/qtgradientdialog.ui"/>
         <source>Edit Gradient</source>
         <translation>Modifier le gradient</translation>
     </message>
@@ -2683,316 +2705,304 @@
 <context>
     <name>QtGradientEditor</name>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.ui" line="53"/>
+        <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.ui"/>
         <source>Form</source>
         <translation>Formulaire</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.ui" line="101"/>
+        <location/>
         <source>Gradient Editor</source>
         <translation>Éditeur de gradient</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.ui" line="104"/>
+        <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>Cette zone montre une prévisualisation du gradient édité. Elle permet aussi d&apos;éditer les paramètres spécifiques au type de gradient tel que les points de départ et d&apos;arrivée, le rayon, etc. par glisser-déposer.</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.ui" line="120"/>
+        <location/>
         <source>1</source>
         <translation>1</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.ui" line="155"/>
+        <location/>
         <source>2</source>
         <translation>2</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.ui" line="190"/>
+        <location/>
         <source>3</source>
         <translation>3</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.ui" line="225"/>
+        <location/>
         <source>4</source>
         <translation>4</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.ui" line="260"/>
+        <location/>
         <source>5</source>
         <translation>5</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.ui" line="295"/>
+        <location/>
         <source>Gradient Stops Editor</source>
         <translation>Éditeur de point d&apos;arrêt du gradient</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.ui" line="298"/>
+        <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>Cette zone vous permet d&apos;éditer les points d&apos;arrêt du gardient. Double-cliquez sur un point d&apos;arrêt existant pour le dupliquer. Double-cliquez à l&apos;exterieur d&apos;un point d&apos;arrêt pour en créer un nouveau. Glissez-déposez un point pour le repositionner. Utilisez le bouton droit de la souris pour afficher le menu contextuel avec des actions supplémentaires.</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.ui" line="311"/>
+        <location/>
         <source>Zoom</source>
         <translation>Zoom</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.ui" line="330"/>
-        <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.ui" line="333"/>
+        <location/>
         <source>Reset Zoom</source>
         <translation>Réinitialiser le zoom</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.ui" line="346"/>
+        <location/>
         <source>Position</source>
         <translation>Position</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.ui" line="365"/>
-        <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.ui" line="414"/>
-        <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.ui" line="436"/>
+        <location/>
         <source>Hue</source>
         <translation>Teinte</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.ui" line="368"/>
+        <location/>
         <source>H</source>
         <translation>T</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.ui" line="455"/>
-        <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.ui" line="504"/>
+        <location/>
         <source>Saturation</source>
         <translation>Saturation</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.ui" line="458"/>
+        <location/>
         <source>S</source>
         <translation>S</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.ui" line="526"/>
+        <location/>
         <source>Sat</source>
         <translation>Sat</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.ui" line="545"/>
-        <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.ui" line="594"/>
+        <location/>
         <source>Value</source>
         <translation>Valeur</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.ui" line="548"/>
+        <location/>
         <source>V</source>
         <translation>V</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.ui" line="616"/>
+        <location/>
         <source>Val</source>
         <translation>Val</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.ui" line="635"/>
-        <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.ui" line="684"/>
-        <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.ui" line="706"/>
+        <location/>
         <source>Alpha</source>
         <translation>Alpha</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.ui" line="638"/>
+        <location/>
         <source>A</source>
         <translation>A</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.ui" line="719"/>
+        <location/>
         <source>Type</source>
         <translation>Type</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.ui" line="732"/>
+        <location/>
         <source>Spread</source>
         <translation>Étendue</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.ui" line="751"/>
+        <location/>
         <source>Color</source>
         <translation>Couleur</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.ui" line="764"/>
+        <location/>
         <source>Current stop&apos;s color</source>
         <translation>Couleur du point d&apos;arrêt courant</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.ui" line="786"/>
+        <location/>
         <source>Show HSV specification</source>
         <translation>Montrer les spécifications TSV/HSV</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.ui" line="789"/>
+        <location/>
         <source>HSV</source>
         <translation>TSV/HSV</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.ui" line="811"/>
+        <location/>
         <source>Show RGB specification</source>
         <translation>Affichier les spécifications RGB</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.ui" line="814"/>
+        <location/>
         <source>RGB</source>
         <translation>RGB</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.ui" line="842"/>
+        <location/>
         <source>Current stop&apos;s position</source>
         <translation>Position du point d&apos;arrêt courant</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.ui" line="1030"/>
+        <location/>
         <source>%</source>
         <translation>%</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.ui" line="1141"/>
+        <location/>
         <source>Zoom In</source>
         <translation>Zoomer</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.ui" line="1148"/>
+        <location/>
         <source>Zoom Out</source>
         <translation>Dézoomer</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.ui" line="1183"/>
+        <location/>
         <source>Toggle details extension</source>
         <translation>Inverser les détails d&apos;exention</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.ui" line="1186"/>
+        <location/>
         <source>&gt;</source>
         <translation>&gt;</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.ui" line="1205"/>
+        <location/>
         <source>Linear Type</source>
         <translation>Type linéaire</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.ui" line="1208"/>
-        <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.ui" line="1230"/>
-        <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.ui" line="1252"/>
-        <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.ui" line="1274"/>
-        <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.ui" line="1296"/>
-        <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.ui" line="1318"/>
+        <location/>
         <source>...</source>
         <translation>...</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.ui" line="1227"/>
+        <location/>
         <source>Radial Type</source>
         <translation>Type radial</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.ui" line="1249"/>
+        <location/>
         <source>Conical Type</source>
         <translation>Type conique</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.ui" line="1271"/>
+        <location/>
         <source>Pad Spread</source>
         <translation>Étendue par remplissage</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.ui" line="1293"/>
+        <location/>
         <source>Repeat Spread</source>
         <translation>Étendue par répétition</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.ui" line="1315"/>
+        <location/>
         <source>Reflect Spread</source>
         <translation>Étendue par réflexion</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.cpp" line="431"/>
+        <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.cpp" line="+431"/>
         <source>Start X</source>
         <translation>X de départ</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.cpp" line="435"/>
+        <location line="+4"/>
         <source>Start Y</source>
         <translation>Y de départ</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.cpp" line="439"/>
+        <location line="+4"/>
         <source>Final X</source>
         <translation>X de fin</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.cpp" line="443"/>
+        <location line="+4"/>
         <source>Final Y</source>
         <translation>Y de fin</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.cpp" line="450"/>
-        <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.cpp" line="474"/>
+        <location line="+7"/>
+        <location line="+24"/>
         <source>Central X</source>
         <translation>X central</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.cpp" line="454"/>
-        <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.cpp" line="478"/>
+        <location line="-20"/>
+        <location line="+24"/>
         <source>Central Y</source>
         <translation>Y central</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.cpp" line="458"/>
+        <location line="-20"/>
         <source>Focal X</source>
         <translation>X focal</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.cpp" line="462"/>
+        <location line="+4"/>
         <source>Focal Y</source>
         <translation>Y focal</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.cpp" line="466"/>
+        <location line="+4"/>
         <source>Radius</source>
         <translation>Rayon</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.cpp" line="482"/>
+        <location line="+16"/>
         <source>Angle</source>
         <translation>Angle</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.cpp" line="770"/>
+        <location line="+288"/>
         <source>Linear</source>
         <translation>Linéaire</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.cpp" line="771"/>
+        <location line="+1"/>
         <source>Radial</source>
         <translation>Radial</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.cpp" line="772"/>
+        <location line="+1"/>
         <source>Conical</source>
         <translation>Conique</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.cpp" line="792"/>
+        <location line="+20"/>
         <source>Pad</source>
         <translation>Remplissage</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.cpp" line="793"/>
+        <location line="+1"/>
         <source>Repeat</source>
         <translation>Répéter</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.cpp" line="794"/>
+        <location line="+1"/>
         <source>Reflect</source>
         <translation>Réflexion</translation>
     </message>
@@ -3000,37 +3010,37 @@
 <context>
     <name>QtGradientStopsWidget</name>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradientstopswidget.cpp" line="947"/>
+        <location filename="../tools/shared/qtgradienteditor/qtgradientstopswidget.cpp" line="+947"/>
         <source>New Stop</source>
         <translation>Nouveau point d&apos;arrêt</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradientstopswidget.cpp" line="948"/>
+        <location line="+1"/>
         <source>Delete</source>
         <translation>Supprimer</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradientstopswidget.cpp" line="949"/>
+        <location line="+1"/>
         <source>Flip All</source>
         <translation>Tout renverser</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradientstopswidget.cpp" line="950"/>
+        <location line="+1"/>
         <source>Select All</source>
         <translation>Tout sélectionner</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradientstopswidget.cpp" line="951"/>
+        <location line="+1"/>
         <source>Zoom In</source>
         <translation>Zoomer</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradientstopswidget.cpp" line="952"/>
+        <location line="+1"/>
         <source>Zoom Out</source>
         <translation>Dézoomer</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradientstopswidget.cpp" line="953"/>
+        <location line="+1"/>
         <source>Reset Zoom</source>
         <translation>Réinitialiser le zoom</translation>
     </message>
@@ -3038,46 +3048,46 @@
 <context>
     <name>QtGradientView</name>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradientview.ui" line="13"/>
+        <location filename="../tools/shared/qtgradienteditor/qtgradientview.ui"/>
         <source>Gradient View</source>
         <translation>Vue du gradient</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradientview.ui" line="39"/>
-        <location filename="../tools/shared/qtgradienteditor/qtgradientview.cpp" line="208"/>
+        <location/>
+        <location filename="../tools/shared/qtgradienteditor/qtgradientview.cpp" line="+208"/>
         <source>New...</source>
         <translation>Nouveau...</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradientview.ui" line="58"/>
-        <location filename="../tools/shared/qtgradienteditor/qtgradientview.cpp" line="209"/>
+        <location/>
+        <location filename="../tools/shared/qtgradienteditor/qtgradientview.cpp" line="+1"/>
         <source>Edit...</source>
         <translation>Éditer...</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradientview.ui" line="77"/>
-        <location filename="../tools/shared/qtgradienteditor/qtgradientview.cpp" line="210"/>
+        <location/>
+        <location filename="../tools/shared/qtgradienteditor/qtgradientview.cpp" line="+1"/>
         <source>Rename</source>
         <translation>Renommer</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradientview.ui" line="96"/>
-        <location filename="../tools/shared/qtgradienteditor/qtgradientview.cpp" line="211"/>
+        <location/>
+        <location filename="../tools/shared/qtgradienteditor/qtgradientview.cpp" line="+1"/>
         <source>Remove</source>
         <translation>Retirer</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradientview.cpp" line="107"/>
+        <location filename="../tools/shared/qtgradienteditor/qtgradientview.cpp" line="-104"/>
         <source>Grad</source>
         <translation>Gradient</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradientview.cpp" line="133"/>
+        <location line="+26"/>
         <source>Remove Gradient</source>
         <translation>Retirer gradient</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradientview.cpp" line="134"/>
+        <location line="+1"/>
         <source>Are you sure you want to remove the selected gradient?</source>
         <translation>Êtes-vous sûr de vouloir supprimer le gradient sélectionné ?</translation>
     </message>
@@ -3085,7 +3095,8 @@
 <context>
     <name>QtGradientViewDialog</name>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradientviewdialog.ui" line="53"/>
+        <location filename="../tools/shared/qtgradienteditor/qtgradientviewdialog.ui"/>
+        <location filename="../tools/shared/qtgradienteditor/qtgradientviewdialog.h" line="+62"/>
         <source>Select Gradient</source>
         <translation>Sélectionner gradient</translation>
     </message>
@@ -3093,7 +3104,7 @@
 <context>
     <name>QtKeySequenceEdit</name>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qtpropertybrowserutils.cpp" line="312"/>
+        <location filename="../tools/shared/qtpropertybrowser/qtpropertybrowserutils.cpp" line="+249"/>
         <source>Clear Shortcut</source>
         <translation>Effacer les racourcis</translation>
     </message>
@@ -3101,17 +3112,17 @@
 <context>
     <name>QtLocalePropertyManager</name>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="2394"/>
+        <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="-3541"/>
         <source>%1, %2</source>
         <translation>%1, %2</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="2447"/>
+        <location line="+53"/>
         <source>Language</source>
         <translation>Langue</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="2455"/>
+        <location line="+8"/>
         <source>Country</source>
         <translation>Pays</translation>
     </message>
@@ -3119,17 +3130,17 @@
 <context>
     <name>QtPointFPropertyManager</name>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="2866"/>
+        <location line="+411"/>
         <source>(%1, %2)</source>
         <translation>(%1, %2)</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="2937"/>
+        <location line="+71"/>
         <source>X</source>
         <translation>X</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="2945"/>
+        <location line="+8"/>
         <source>Y</source>
         <translation>Y</translation>
     </message>
@@ -3137,17 +3148,17 @@
 <context>
     <name>QtPointPropertyManager</name>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="2625"/>
+        <location line="-320"/>
         <source>(%1, %2)</source>
         <translation>(%1, %2)</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="2662"/>
+        <location line="+37"/>
         <source>X</source>
         <translation>X</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="2669"/>
+        <location line="+7"/>
         <source>Y</source>
         <translation>Y</translation>
     </message>
@@ -3155,12 +3166,12 @@
 <context>
     <name>QtPropertyBrowserUtils</name>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qtpropertybrowserutils.cpp" line="176"/>
+        <location filename="../tools/shared/qtpropertybrowser/qtpropertybrowserutils.cpp" line="-156"/>
         <source>[%1, %2, %3] (%4)</source>
         <translation>[%1, %2, %3] (%4)</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qtpropertybrowserutils.cpp" line="206"/>
+        <location line="+30"/>
         <source>[%1, %2]</source>
         <translation>[%1, %2]</translation>
     </message>
@@ -3168,27 +3179,27 @@
 <context>
     <name>QtRectFPropertyManager</name>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="4375"/>
+        <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 filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="4531"/>
+        <location line="+156"/>
         <source>X</source>
         <translation>X</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="4539"/>
+        <location line="+8"/>
         <source>Y</source>
         <translation>Y</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="4547"/>
+        <location line="+8"/>
         <source>Width</source>
         <translation>Largeur</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="4556"/>
+        <location line="+9"/>
         <source>Height</source>
         <translation>Hauteur</translation>
     </message>
@@ -3196,27 +3207,27 @@
 <context>
     <name>QtRectPropertyManager</name>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="3944"/>
+        <location line="-612"/>
         <source>[(%1, %2), %3 x %4]</source>
         <translation>[(%1, %2), %3 x %4]</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="4064"/>
+        <location line="+120"/>
         <source>X</source>
         <translation>X</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="4071"/>
+        <location line="+7"/>
         <source>Y</source>
         <translation>Y</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="4078"/>
+        <location line="+7"/>
         <source>Width</source>
         <translation>Largeur</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="4086"/>
+        <location line="+8"/>
         <source>Height</source>
         <translation>Hauteur</translation>
     </message>
@@ -3224,175 +3235,173 @@
 <context>
     <name>QtResourceEditorDialog</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qtresourceeditordialog.ui" line="13"/>
+        <location filename="../tools/designer/src/lib/shared/qtresourceeditordialog.ui"/>
         <source>Dialog</source>
         <translation>Dialogue</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qtresourceeditordialog.ui" line="39"/>
+        <location/>
         <source>New File</source>
         <translation>Nouveau fichier</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qtresourceeditordialog.ui" line="42"/>
-        <location filename="../tools/designer/src/lib/shared/qtresourceeditordialog.ui" line="92"/>
+        <location/>
         <source>N</source>
         <translation>N</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qtresourceeditordialog.ui" line="49"/>
+        <location/>
         <source>Remove File</source>
         <translation>Supprimer fichier</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qtresourceeditordialog.ui" line="52"/>
-        <location filename="../tools/designer/src/lib/shared/qtresourceeditordialog.ui" line="109"/>
+        <location/>
         <source>R</source>
         <translation>S</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qtresourceeditordialog.ui" line="75"/>
+        <location/>
         <source>I</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qtresourceeditordialog.ui" line="89"/>
+        <location/>
         <source>New Resource</source>
         <translation>Nouvelle ressource</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qtresourceeditordialog.ui" line="99"/>
+        <location/>
         <source>A</source>
         <translation>A</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qtresourceeditordialog.ui" line="106"/>
+        <location/>
         <source>Remove Resource or File</source>
         <translation>Supprimer ressource ou fichier</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qtresourceeditordialog.cpp" line="76"/>
+        <location filename="../tools/designer/src/lib/shared/qtresourceeditordialog.cpp" line="+76"/>
         <source>%1 already exists.
 Do you want to replace it?</source>
         <translation>%1 existe déjà.
 Voulez-vous le remplacer ?</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qtresourceeditordialog.cpp" line="81"/>
+        <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>Le fichier n&apos;est pas un fichier ressource; l&apos;élément &apos;%1&apos; a été trouvé à la place de %2.</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qtresourceeditordialog.cpp" line="983"/>
+        <location line="+902"/>
         <source>%1 [read-only]</source>
         <translation>%1 [lecture seule]</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qtresourceeditordialog.cpp" line="985"/>
-        <location filename="../tools/designer/src/lib/shared/qtresourceeditordialog.cpp" line="1183"/>
+        <location line="+2"/>
+        <location line="+198"/>
         <source>%1 [missing]</source>
         <translation>%1 [manquant]</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qtresourceeditordialog.cpp" line="1111"/>
+        <location line="-72"/>
         <source>&lt;no prefix&gt;</source>
         <translation>&lt;pas de préfixe&gt;</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qtresourceeditordialog.cpp" line="1431"/>
-        <location filename="../tools/designer/src/lib/shared/qtresourceeditordialog.cpp" line="1997"/>
+        <location line="+320"/>
+        <location line="+566"/>
         <source>New Resource File</source>
         <translation>Nouveau fichier de ressource</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qtresourceeditordialog.cpp" line="1433"/>
-        <location filename="../tools/designer/src/lib/shared/qtresourceeditordialog.cpp" line="1458"/>
+        <location line="-564"/>
+        <location line="+25"/>
         <source>Resource files (*.qrc)</source>
         <translation>Fichier de ressource (*.qrc)</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qtresourceeditordialog.cpp" line="1456"/>
+        <location line="-2"/>
         <source>Import Resource File</source>
         <translation>Importer fichier de ressource</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qtresourceeditordialog.cpp" line="1568"/>
+        <location line="+112"/>
         <source>newPrefix</source>
         <translation>newPrefix</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qtresourceeditordialog.cpp" line="1584"/>
+        <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;Avertissement :&lt;/b&gt; le fichier&lt;/p&gt;&lt;p&gt;%1&lt;/p&gt;&lt;p&gt;est en dehors du répertoire parent du fichier de ressource courant.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qtresourceeditordialog.cpp" line="1592"/>
+        <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;Pour résoudre le problème, appuyez sur :&lt;/p&gt;&lt;table&gt;&lt;tr&gt;&lt;th align=&quot;left&quot;&gt;Copier&lt;/th&gt;&lt;td&gt;Pour copier le fichier dans le répertoire parent du fichier de ressource.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th align=&quot;left&quot;&gt;Copier sous...&lt;/th&gt;&lt;td&gt;Pour copier le fichier ressource dans un sous-répertoire du répertoire parent du fichier de ressource.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th align=&quot;left&quot;&gt;Conserver&lt;/th&gt;&lt;td&gt;pour conserver l&apos;emplacement courant.&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qtresourceeditordialog.cpp" line="1617"/>
+        <location line="+25"/>
         <source>Add Files</source>
         <translation>Ajouter fichiers</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qtresourceeditordialog.cpp" line="1638"/>
+        <location line="+21"/>
         <source>Incorrect Path</source>
         <translation>Chemin incorrect</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qtresourceeditordialog.cpp" line="1641"/>
-        <location filename="../tools/designer/src/lib/shared/qtresourceeditordialog.cpp" line="1660"/>
-        <location filename="../tools/designer/src/lib/shared/qtresourceeditordialog.cpp" line="1872"/>
-        <location filename="../tools/designer/src/lib/shared/qtresourceeditordialog.cpp" line="1879"/>
+        <location line="+3"/>
+        <location line="+19"/>
+        <location line="+212"/>
+        <location line="+7"/>
         <source>Copy</source>
         <translation>Copier</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qtresourceeditordialog.cpp" line="1643"/>
+        <location line="-236"/>
         <source>Copy As...</source>
         <translation>Copier sous...</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qtresourceeditordialog.cpp" line="1645"/>
+        <location line="+2"/>
         <source>Keep</source>
         <translation>Conserver</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qtresourceeditordialog.cpp" line="1647"/>
+        <location line="+2"/>
         <source>Skip</source>
         <translation>Passer</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qtresourceeditordialog.cpp" line="1734"/>
+        <location line="+87"/>
         <source>Clone Prefix</source>
         <translation>Cloner le préfixe</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qtresourceeditordialog.cpp" line="1735"/>
+        <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>Entrez le suffixe que vous voulez ajouter aux noms des fichiers clonés.
 Ceci peut être une extension de langue par exemple, comme &quot;_fr&apos;.</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qtresourceeditordialog.cpp" line="1848"/>
-        <location filename="../tools/designer/src/lib/shared/qtresourceeditordialog.cpp" line="1852"/>
+        <location line="+113"/>
+        <location line="+4"/>
         <source>Copy As</source>
         <translation>Copier sous</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qtresourceeditordialog.cpp" line="1853"/>
+        <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;Le fichier sélectionné&lt;/p&gt;&lt;p&gt;%1&lt;/p&gt;&lt;p&gt;est en dehors du répertoire du fichier de ressource courant :&lt;/p&gt;&lt;p&gt;%2&lt;/p&gt;&lt;p&gt;Veuillez sélectionner un chemin dans le répertoire courant.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qtresourceeditordialog.cpp" line="1873"/>
+        <location line="+20"/>
         <source>Could not overwrite %1.</source>
         <translation>Impossible d&apos;écraser %1.</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qtresourceeditordialog.cpp" line="1880"/>
+        <location line="+7"/>
         <source>Could not copy
 %1
 to
@@ -3403,108 +3412,108 @@
 %2</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qtresourceeditordialog.cpp" line="1915"/>
+        <location line="+35"/>
         <source>A parse error occurred at line %1, column %2 of %3:
 %4</source>
         <translation>Une erreur d&apos;analyse grammaticale est apparue à la ligne %1, colonne %2 de %3 :
 %4</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qtresourceeditordialog.cpp" line="1927"/>
+        <location line="+12"/>
         <source>Save Resource File</source>
         <translation>Enregistrer le fichier de ressource</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qtresourceeditordialog.cpp" line="1928"/>
+        <location line="+1"/>
         <source>Could not write %1: %2</source>
         <translation>Impossible d&apos;écrire %1 : %2</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qtresourceeditordialog.cpp" line="1961"/>
+        <location line="+33"/>
         <source>Edit Resources</source>
         <translation>Éditer les ressources</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qtresourceeditordialog.cpp" line="1996"/>
+        <location line="+35"/>
         <source>New...</source>
         <translation>Nouveau...</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qtresourceeditordialog.cpp" line="1998"/>
+        <location line="+2"/>
         <source>Open...</source>
         <translation>Ouvrir...</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qtresourceeditordialog.cpp" line="1999"/>
+        <location line="+1"/>
         <source>Open Resource File</source>
         <translation>Ouvrir fichier de ressource</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qtresourceeditordialog.cpp" line="2000"/>
-        <location filename="../tools/designer/src/lib/shared/qtresourceeditordialog.cpp" line="2011"/>
+        <location line="+1"/>
+        <location line="+11"/>
         <source>Remove</source>
         <translation>Retirer</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qtresourceeditordialog.cpp" line="2001"/>
-        <location filename="../tools/designer/src/lib/shared/qtresourceeditordialog.cpp" line="2012"/>
+        <location line="-10"/>
+        <location line="+11"/>
         <source>Move Up</source>
         <translation>Vers le Haut</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qtresourceeditordialog.cpp" line="2002"/>
-        <location filename="../tools/designer/src/lib/shared/qtresourceeditordialog.cpp" line="2013"/>
+        <location line="-10"/>
+        <location line="+11"/>
         <source>Move Down</source>
         <translation>Vers le Bas</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qtresourceeditordialog.cpp" line="2004"/>
-        <location filename="../tools/designer/src/lib/shared/qtresourceeditordialog.cpp" line="2005"/>
+        <location line="-9"/>
+        <location line="+1"/>
         <source>Add Prefix</source>
         <translation>Ajouter préfixe</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qtresourceeditordialog.cpp" line="2006"/>
+        <location line="+1"/>
         <source>Add Files...</source>
         <translation>Ajouter fichiers...</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qtresourceeditordialog.cpp" line="2007"/>
+        <location line="+1"/>
         <source>Change Prefix</source>
         <translation>Modifier le préfixe</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qtresourceeditordialog.cpp" line="2008"/>
+        <location line="+1"/>
         <source>Change Language</source>
         <translation>Modifier la langue</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qtresourceeditordialog.cpp" line="2009"/>
+        <location line="+1"/>
         <source>Change Alias</source>
         <translation>Modifier l&apos;alias</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qtresourceeditordialog.cpp" line="2010"/>
+        <location line="+1"/>
         <source>Clone Prefix...</source>
         <translation>Cloner le préfixe...</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qtresourceeditordialog.cpp" line="2047"/>
+        <location line="+37"/>
         <source>Prefix / Path</source>
         <translation>Préfixe / chemin</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qtresourceeditordialog.cpp" line="2048"/>
+        <location line="+1"/>
         <source>Language / Alias</source>
         <translation>Langue / Alias</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qtresourceeditordialog.cpp" line="2165"/>
+        <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;Avertissement:&lt;/b&gt; Des problèmes sont apparus lors du rafraichissement des données des ressources :&lt;/p&gt;&lt;pre&gt;%1&lt;/pre&gt;&lt;/html&gt;</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qtresourceeditordialog.cpp" line="2167"/>
+        <location line="+2"/>
         <source>Resource Warning</source>
         <translation>Avertissement relatif aux ressources</translation>
     </message>
@@ -3512,24 +3521,24 @@
 <context>
     <name>QtResourceView</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qtresourceview.cpp" line="566"/>
+        <location filename="../tools/designer/src/lib/shared/qtresourceview.cpp" line="+567"/>
         <source>Size: %1 x %2
 %3</source>
         <translation>Taille : %1 x %2
 %3</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qtresourceview.cpp" line="586"/>
+        <location line="+20"/>
         <source>Edit Resources...</source>
         <translation>Éditer ressources...</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qtresourceview.cpp" line="592"/>
+        <location line="+6"/>
         <source>Reload</source>
         <translation>Recharger</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qtresourceview.cpp" line="599"/>
+        <location line="+7"/>
         <source>Copy Path</source>
         <translation>Copier le chemin</translation>
     </message>
@@ -3537,7 +3546,7 @@
 <context>
     <name>QtResourceViewDialog</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qtresourceview.cpp" line="849"/>
+        <location line="+252"/>
         <source>Select Resource</source>
         <translation>Séléctionner ressource</translation>
     </message>
@@ -3545,17 +3554,17 @@
 <context>
     <name>QtSizeFPropertyManager</name>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="3551"/>
+        <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="-535"/>
         <source>%1 x %2</source>
         <translation>%1 x %2</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="3681"/>
+        <location line="+130"/>
         <source>Width</source>
         <translation>Largeur</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="3690"/>
+        <location line="+9"/>
         <source>Height</source>
         <translation>Hauteur</translation>
     </message>
@@ -3563,33 +3572,33 @@
 <context>
     <name>QtSizePolicyPropertyManager</name>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="5399"/>
-        <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="5400"/>
+        <location line="+1709"/>
+        <location line="+1"/>
         <source>&lt;Invalid&gt;</source>
         <translation>&lt;Invalide&gt;</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="5401"/>
+        <location line="+1"/>
         <source>[%1, %2, %3, %4]</source>
         <translation>[%1, %2, %3, %4]</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="5446"/>
+        <location line="+45"/>
         <source>Horizontal Policy</source>
         <translation>Politique horizontale</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="5455"/>
+        <location line="+9"/>
         <source>Vertical Policy</source>
         <translation>Politique verticale</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="5464"/>
+        <location line="+9"/>
         <source>Horizontal Stretch</source>
         <translation>Étirement horizontal</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="5472"/>
+        <location line="+8"/>
         <source>Vertical Stretch</source>
         <translation>Étirement vertical</translation>
     </message>
@@ -3597,17 +3606,17 @@
 <context>
     <name>QtSizePropertyManager</name>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="3186"/>
+        <location line="-2286"/>
         <source>%1 x %2</source>
         <translation>%1 x %2</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="3282"/>
+        <location line="+96"/>
         <source>Width</source>
         <translation>Largeur</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="3290"/>
+        <location line="+8"/>
         <source>Height</source>
         <translation>Hauteur</translation>
     </message>
@@ -3615,107 +3624,107 @@
 <context>
     <name>QtToolBarDialog</name>
     <message>
-        <location filename="../tools/shared/qttoolbardialog/qttoolbardialog.ui" line="13"/>
+        <location filename="../tools/shared/qttoolbardialog/qttoolbardialog.ui"/>
         <source>Customize Toolbars</source>
         <translation>Personnaliser les barres d&apos;outils</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qttoolbardialog/qttoolbardialog.ui" line="26"/>
+        <location/>
         <source>1</source>
         <translation>1</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qttoolbardialog/qttoolbardialog.ui" line="34"/>
+        <location/>
         <source>Actions</source>
         <translation>Actions</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qttoolbardialog/qttoolbardialog.ui" line="49"/>
+        <location/>
         <source>Toolbars</source>
         <translation>Barres d&apos;outils</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qttoolbardialog/qttoolbardialog.ui" line="56"/>
+        <location/>
         <source>Add new toolbar</source>
         <translation>Ajouter une nouvelle barre d&apos;outils</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qttoolbardialog/qttoolbardialog.ui" line="59"/>
+        <location/>
         <source>New</source>
         <translation>Nouveau</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qttoolbardialog/qttoolbardialog.ui" line="66"/>
+        <location/>
         <source>Remove selected toolbar</source>
         <translation>Supprimer la barre d&apos;outils sélectionnée</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qttoolbardialog/qttoolbardialog.ui" line="69"/>
+        <location/>
         <source>Remove</source>
         <translation>Supprimer</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qttoolbardialog/qttoolbardialog.ui" line="76"/>
+        <location/>
         <source>Rename toolbar</source>
         <translation>Renommer la barre d&apos;outils</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qttoolbardialog/qttoolbardialog.ui" line="79"/>
+        <location/>
         <source>Rename</source>
         <translation>Renommer</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qttoolbardialog/qttoolbardialog.ui" line="102"/>
+        <location/>
         <source>Move action up</source>
         <translation>Déplacer l&apos;action vers le haut</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qttoolbardialog/qttoolbardialog.ui" line="105"/>
+        <location/>
         <source>Up</source>
         <translation>Monter</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qttoolbardialog/qttoolbardialog.ui" line="118"/>
+        <location/>
         <source>Remove action from toolbar</source>
         <translation>Retirer l&apos;action de la barre d&apos;outils</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qttoolbardialog/qttoolbardialog.ui" line="121"/>
+        <location/>
         <source>&lt;-</source>
         <translation>&lt;-</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qttoolbardialog/qttoolbardialog.ui" line="134"/>
+        <location/>
         <source>Add action to toolbar</source>
         <translation>Ajouter l&apos;action à la barre d&apos;outil</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qttoolbardialog/qttoolbardialog.ui" line="137"/>
+        <location/>
         <source>-&gt;</source>
         <translation>-&gt;</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qttoolbardialog/qttoolbardialog.ui" line="150"/>
+        <location/>
         <source>Move action down</source>
         <translation>Déplacer l&apos;action vers le bas</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qttoolbardialog/qttoolbardialog.ui" line="153"/>
+        <location/>
         <source>Down</source>
         <translation>Descendre</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qttoolbardialog/qttoolbardialog.ui" line="178"/>
+        <location/>
         <source>Current Toolbar Actions</source>
         <translation>Actions de la barre d&apos;outils courante</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qttoolbardialog/qttoolbardialog.cpp" line="1240"/>
+        <location filename="../tools/shared/qttoolbardialog/qttoolbardialog.cpp" line="+1240"/>
         <source>Custom Toolbar</source>
         <translation>Barre d&apos;outils personnalisée</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qttoolbardialog/qttoolbardialog.cpp" line="1784"/>
+        <location line="+544"/>
         <source>&lt; S E P A R A T O R &gt;</source>
         <translation>&lt; S É P A R A T E U R &gt;</translation>
     </message>
@@ -3723,12 +3732,12 @@
 <context>
     <name>QtTreePropertyBrowser</name>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qttreepropertybrowser.cpp" line="442"/>
+        <location filename="../tools/shared/qtpropertybrowser/qttreepropertybrowser.cpp" line="+442"/>
         <source>Property</source>
         <translation>Propriété</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qttreepropertybrowser.cpp" line="443"/>
+        <location line="+1"/>
         <source>Value</source>
         <translation>Valeur</translation>
     </message>
@@ -3736,64 +3745,64 @@
 <context>
     <name>SaveFormAsTemplate</name>
     <message>
-        <location filename="../tools/designer/src/designer/saveformastemplate.ui" line="45"/>
+        <location filename="../tools/designer/src/designer/saveformastemplate.ui"/>
         <source>Save Form As Template</source>
         <translation>Enregistrer le formulaire comme un modèle</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/saveformastemplate.ui" line="59"/>
+        <location/>
         <source>&amp;Name:</source>
         <translation>&amp;Nom :</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/saveformastemplate.ui" line="94"/>
+        <location/>
         <source>&amp;Category:</source>
         <translation>&amp;Catégorie :</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/saveformastemplate.cpp" line="72"/>
+        <location filename="../tools/designer/src/designer/saveformastemplate.cpp" line="+72"/>
         <source>Add path...</source>
         <translation>Ajouter chemin...</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/saveformastemplate.cpp" line="95"/>
+        <location line="+23"/>
         <source>Template Exists</source>
         <translation>Le modèle existe</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/saveformastemplate.cpp" line="96"/>
+        <location line="+1"/>
         <source>A template with the name %1 already exists.
 Do you want overwrite the template?</source>
         <translation>Un modèle existe déjà avec le nom %1.
 Voulez-vous le remplacer ?</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/saveformastemplate.cpp" line="99"/>
+        <location line="+3"/>
         <source>Overwrite Template</source>
         <translation>Remplacer modèle</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/saveformastemplate.cpp" line="106"/>
+        <location line="+7"/>
         <source>Open Error</source>
         <translation>Erreur d&apos;ouverture</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/saveformastemplate.cpp" line="107"/>
+        <location line="+1"/>
         <source>There was an error opening template %1 for writing. Reason: %2</source>
         <translation>Une erreur s&apos;est produite à l&apos;ouverture du modèle %1 en écriture. Raison : %2</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/saveformastemplate.cpp" line="120"/>
+        <location line="+13"/>
         <source>Write Error</source>
         <translation>Erreur d&apos;écriture</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/saveformastemplate.cpp" line="121"/>
+        <location line="+1"/>
         <source>There was an error writing the template %1 to disk. Reason: %2</source>
         <translation>Une erreur s&apos;est produite lors de l&apos;écriture du modèle %1 sur le disque. Raison : %2</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/saveformastemplate.cpp" line="148"/>
+        <location line="+27"/>
         <source>Pick a directory to save templates in</source>
         <translation>Sélectionner le dossier dans lequel le modèle sera enregistré</translation>
     </message>
@@ -3801,7 +3810,7 @@
 <context>
     <name>ScriptErrorDialog</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/scripterrordialog.cpp" line="59"/>
+        <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>Une erreur est apparue lors de l&apos;execution des scripts de &quot;%1&quot; :
@@ -3811,22 +3820,22 @@
 <context>
     <name>SelectSignalDialog</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/selectsignaldialog.ui" line="14"/>
+        <location filename="../tools/designer/src/lib/shared/selectsignaldialog.ui"/>
         <source>Go to slot</source>
         <translation>Aller au slot</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/selectsignaldialog.ui" line="20"/>
+        <location/>
         <source>Select signal</source>
         <translation>Sélectionner signal</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/selectsignaldialog.ui" line="33"/>
+        <location/>
         <source>signal</source>
         <translation>signal</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/selectsignaldialog.ui" line="38"/>
+        <location/>
         <source>class</source>
         <translation>classe</translation>
     </message>
@@ -3834,7 +3843,7 @@
 <context>
     <name>SignalSlotConnection</name>
     <message>
-        <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditor.cpp" line="152"/>
+        <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditor.cpp" line="-358"/>
         <source>SENDER(%1), SIGNAL(%2), RECEIVER(%3), SLOT(%4)</source>
         <translation>ENVOYER(%1), SIGNAL(%2), RECEVEUR(%3), SLOT(%4)</translation>
     </message>
@@ -3842,37 +3851,32 @@
 <context>
     <name>SignalSlotDialogClass</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/signalslotdialog.ui" line="13"/>
+        <location filename="../tools/designer/src/lib/shared/signalslotdialog.ui"/>
         <source>Signals and slots</source>
         <translation>Signaux et slots</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/signalslotdialog.ui" line="19"/>
+        <location/>
         <source>Slots</source>
         <translation>Slots</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/signalslotdialog.ui" line="30"/>
-        <location filename="../tools/designer/src/lib/shared/signalslotdialog.ui" line="79"/>
+        <location/>
         <source>Add</source>
         <translation>Ajouter</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/signalslotdialog.ui" line="33"/>
-        <location filename="../tools/designer/src/lib/shared/signalslotdialog.ui" line="43"/>
-        <location filename="../tools/designer/src/lib/shared/signalslotdialog.ui" line="82"/>
-        <location filename="../tools/designer/src/lib/shared/signalslotdialog.ui" line="92"/>
+        <location/>
         <source>...</source>
         <translation>...</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/signalslotdialog.ui" line="40"/>
-        <location filename="../tools/designer/src/lib/shared/signalslotdialog.ui" line="89"/>
+        <location/>
         <source>Delete</source>
         <translation>Supprimer</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/signalslotdialog.ui" line="68"/>
+        <location/>
         <source>Signals</source>
         <translation>Signaux</translation>
     </message>
@@ -3880,12 +3884,12 @@
 <context>
     <name>Spacer</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/spacer_widget.cpp" line="275"/>
+        <location filename="../tools/designer/src/lib/shared/spacer_widget.cpp" line="+275"/>
         <source>Horizontal Spacer &apos;%1&apos;, %2 x %3</source>
         <translation>Ressort horizontal &apos;%1&apos;, %2 x %3</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/spacer_widget.cpp" line="275"/>
+        <location line="+0"/>
         <source>Vertical Spacer &apos;%1&apos;, %2 x %3</source>
         <translation>Ressort vertical &apos;%1&apos;, %2 x %3</translation>
     </message>
@@ -3893,7 +3897,7 @@
 <context>
     <name>TemplateOptionsPage</name>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/templateoptionspage.cpp" line="156"/>
+        <location filename="../tools/designer/src/components/formeditor/templateoptionspage.cpp" line="+156"/>
         <source>Template Paths</source>
         <extracomment>Tab in preferences dialog</extracomment>
         <translation>Chemins des modèles</translation>
@@ -3902,32 +3906,52 @@
 <context>
     <name>ToolBarManager</name>
     <message>
-        <location filename="../tools/designer/src/designer/mainwindow.cpp" line="224"/>
+        <location filename="../tools/designer/src/designer/mainwindow.cpp" line="+89"/>
         <source>Configure Toolbars...</source>
         <translation>Configurer les barres d&apos;outils...</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/mainwindow.cpp" line="239"/>
+        <location line="+15"/>
         <source>Window</source>
         <translation>Fenêtre</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/mainwindow.cpp" line="240"/>
+        <location line="+1"/>
         <source>Help</source>
         <translation>Aide</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/mainwindow.cpp" line="247"/>
+        <location line="+7"/>
         <source>Style</source>
         <translation>Style</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/mainwindow.cpp" line="249"/>
+        <location line="+2"/>
         <source>Dock views</source>
         <translation>Ancrer les vues</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/mainwindow.cpp" line="255"/>
+        <location line="+6"/>
+        <source>File</source>
+        <translation>Fichier</translation>
+    </message>
+    <message>
+        <location line="+4"/>
+        <source>Edit</source>
+        <translation>Édition</translation>
+    </message>
+    <message>
+        <location line="+4"/>
+        <source>Tools</source>
+        <translation>Outils</translation>
+    </message>
+    <message>
+        <location line="+4"/>
+        <source>Form</source>
+        <translation>Formulaire</translation>
+    </message>
+    <message>
+        <location line="+4"/>
         <source>Toolbars</source>
         <translation>Barres d&apos;outils</translation>
     </message>
@@ -3935,30 +3959,78 @@
 <context>
     <name>VersionDialog</name>
     <message>
-        <location filename="../tools/designer/src/designer/versiondialog.cpp" line="171"/>
+        <location filename="../tools/designer/src/designer/versiondialog.cpp" line="+170"/>
         <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;Version %2</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/versiondialog.cpp" line="172"/>
+        <location line="+1"/>
         <source>Qt Designer</source>
         <translation>Qt Designer</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/versiondialog.cpp" line="173"/>
+        <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 est une interface de création d&apos;interface graphique pour les applications Qt.&lt;br/&gt;</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/versiondialog.cpp" line="175"/>
+        <location line="+2"/>
         <source>%1&lt;br/&gt;Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).</source>
         <translation>%1&lt;br/&gt;Copyright (C) 2010 Nokia Corporation et/ou ses filiales.</translation>
     </message>
 </context>
 <context>
+    <name>VideoPlayerTaskMenu</name>
+    <message>
+        <location filename="../tools/designer/src/plugins/phononwidgets/videoplayertaskmenu.cpp" line="+79"/>
+        <source>Available Mime Types</source>
+        <translation>Types MIME disponibles</translation>
+    </message>
+    <message>
+        <location line="+24"/>
+        <source>Display supported mime types...</source>
+        <translation>Afficher les types MIME supportés...</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Load...</source>
+        <translation>Ouvrir...</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Play</source>
+        <translation>Lecture</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Pause</source>
+        <translation>Pause</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Stop</source>
+        <translation>Arrêter</translation>
+    </message>
+    <message>
+        <location line="+32"/>
+        <source>Choose Video Player Media Source</source>
+        <translation>Choisir une source de média pour le lecteur video</translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>An error has occurred in &apos;%1&apos;: %2</source>
+        <translation>Une erreur s&apos;est produite dans &apos;%1&apos; : %2</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Video Player Error</source>
+        <translation>Erreur du lecteur video</translation>
+    </message>
+</context>
+<context>
     <name>WidgetDataBase</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/widgetdatabase.cpp" line="814"/>
+        <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>Le fichier contient un widget personnalisé &apos;%1&apos; dont la classe de base (%2) est différente de l&apos;entrée dans la base de données de widget (%3). La base de données de widget n&apos;a pas été modifiée.</translation>
     </message>
@@ -3966,87 +4038,87 @@
 <context>
     <name>qdesigner_internal::ActionEditor</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/actioneditor.cpp" line="123"/>
+        <location filename="../tools/designer/src/lib/shared/actioneditor.cpp" line="+123"/>
         <source>New...</source>
         <translation>Nouveau...</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/actioneditor.cpp" line="124"/>
+        <location line="+1"/>
         <source>Edit...</source>
         <translation>Éditer...</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/actioneditor.cpp" line="125"/>
+        <location line="+1"/>
         <source>Go to slot...</source>
         <translation>Aller au slot...</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/actioneditor.cpp" line="126"/>
+        <location line="+1"/>
         <source>Copy</source>
         <translation>Copier</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/actioneditor.cpp" line="127"/>
+        <location line="+1"/>
         <source>Cut</source>
         <translation>Couper</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/actioneditor.cpp" line="128"/>
+        <location line="+1"/>
         <source>Paste</source>
         <translation>Coller</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/actioneditor.cpp" line="129"/>
+        <location line="+1"/>
         <source>Select all</source>
         <translation>Tout sélectionner</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/actioneditor.cpp" line="130"/>
+        <location line="+1"/>
         <source>Delete</source>
         <translation>Supprimer</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/actioneditor.cpp" line="139"/>
+        <location line="+9"/>
         <source>Actions</source>
         <translation>Actions</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/actioneditor.cpp" line="188"/>
+        <location line="+49"/>
         <source>Configure Action Editor</source>
         <translation>Configurer l&apos;éditeur d&apos;action</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/actioneditor.cpp" line="191"/>
+        <location line="+3"/>
         <source>Icon View</source>
         <translation>Vue en icônes</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/actioneditor.cpp" line="197"/>
+        <location line="+6"/>
         <source>Detailed View</source>
         <translation>Vue détaillée</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/actioneditor.cpp" line="443"/>
+        <location line="+246"/>
         <source>New action</source>
         <translation>Nouvelle action</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/actioneditor.cpp" line="541"/>
+        <location line="+98"/>
         <source>Edit action</source>
         <translation>Editer action</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/actioneditor.cpp" line="610"/>
+        <location line="+69"/>
         <source>Remove action &apos;%1&apos;</source>
         <translation>Supprimer action &apos;%1&apos;</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/actioneditor.cpp" line="610"/>
+        <location line="+0"/>
         <source>Remove actions</source>
         <translation>Supprimer les actions</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/actioneditor.cpp" line="796"/>
+        <location line="+186"/>
         <source>Used In</source>
         <translation>Utilisé dans</translation>
     </message>
@@ -4054,32 +4126,32 @@
 <context>
     <name>qdesigner_internal::ActionModel</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/actionrepository.cpp" line="95"/>
+        <location filename="../tools/designer/src/lib/shared/actionrepository.cpp" line="+89"/>
         <source>Name</source>
         <translation>Nom</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/actionrepository.cpp" line="96"/>
+        <location line="+1"/>
         <source>Used</source>
         <translation>Utilisé</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/actionrepository.cpp" line="97"/>
+        <location line="+1"/>
         <source>Text</source>
         <translation>Texte</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/actionrepository.cpp" line="98"/>
+        <location line="+1"/>
         <source>Shortcut</source>
         <translation>Raccourci</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/actionrepository.cpp" line="99"/>
+        <location line="+1"/>
         <source>Checkable</source>
         <translation>Vérifiable</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/actionrepository.cpp" line="100"/>
+        <location line="+1"/>
         <source>ToolTip</source>
         <translation>Info-bulle</translation>
     </message>
@@ -4087,27 +4159,27 @@
 <context>
     <name>qdesigner_internal::BrushManagerProxy</name>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/brushmanagerproxy.cpp" line="219"/>
+        <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>L&apos;attribut requis &apos;%2&apos; est manquant pour l&apos;élément &apos;%1&apos;.</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/brushmanagerproxy.cpp" line="230"/>
+        <location line="+11"/>
         <source>Empty brush name encountered.</source>
         <translation>Un nom vide de pinceau a été rencontré.</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/brushmanagerproxy.cpp" line="240"/>
+        <location line="+10"/>
         <source>An unexpected element &apos;%1&apos; was encountered.</source>
         <translation>L&apos;élément inattendu &apos;%1&apos; a été rencontré.</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/brushmanagerproxy.cpp" line="247"/>
+        <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>Une erreur est apparue lors de la lecture du fichier &apos;%1&apos; de définition des pinceaux à la ligne %2, colonne %3: %4</translation>
-    </message>
-    <message>
-        <location filename="../tools/designer/src/components/formeditor/brushmanagerproxy.cpp" line="290"/>
+        <translation>Une erreur est apparue lors de la lecture du fichier &apos;%1&apos; de définition des pinceaux à la ligne %2, colonne %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>Une erreur est survenue lors de la lecture du fichier de ressource &apos;%1&apos; à la ligne %2, colonne %3 : %4</translation>
     </message>
@@ -4115,17 +4187,17 @@
 <context>
     <name>qdesigner_internal::BuddyEditor</name>
     <message>
-        <location filename="../tools/designer/src/components/buddyeditor/buddyeditor.cpp" line="261"/>
+        <location filename="../tools/designer/src/components/buddyeditor/buddyeditor.cpp" line="+261"/>
         <source>Add buddy</source>
         <translation>Ajouter un copain</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/buddyeditor/buddyeditor.cpp" line="313"/>
+        <location line="+52"/>
         <source>Remove buddies</source>
         <translation>Supprimer les copains</translation>
     </message>
     <message numerus="yes">
-        <location filename="../tools/designer/src/components/buddyeditor/buddyeditor.cpp" line="337"/>
+        <location line="+24"/>
         <source>Remove %n buddies</source>
         <translation>
             <numerusform>Supprimer %n copain</numerusform>
@@ -4133,7 +4205,7 @@
         </translation>
     </message>
     <message numerus="yes">
-        <location filename="../tools/designer/src/components/buddyeditor/buddyeditor.cpp" line="388"/>
+        <location line="+51"/>
         <source>Add %n buddies</source>
         <translation>
             <numerusform>Ajouter %n copain</numerusform>
@@ -4141,7 +4213,7 @@
         </translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/buddyeditor/buddyeditor.cpp" line="435"/>
+        <location line="+48"/>
         <source>Set automatically</source>
         <translation>Définir automatiquement</translation>
     </message>
@@ -4149,7 +4221,7 @@
 <context>
     <name>qdesigner_internal::BuddyEditorPlugin</name>
     <message>
-        <location filename="../tools/designer/src/components/buddyeditor/buddyeditor_plugin.cpp" line="73"/>
+        <location filename="../tools/designer/src/components/buddyeditor/buddyeditor_plugin.cpp" line="+73"/>
         <source>Edit Buddies</source>
         <translation>Éditer les copains</translation>
     </message>
@@ -4157,7 +4229,7 @@
 <context>
     <name>qdesigner_internal::BuddyEditorTool</name>
     <message>
-        <location filename="../tools/designer/src/components/buddyeditor/buddyeditor_tool.cpp" line="56"/>
+        <location filename="../tools/designer/src/components/buddyeditor/buddyeditor_tool.cpp" line="+56"/>
         <source>Edit Buddies</source>
         <translation>Éditer les copains</translation>
     </message>
@@ -4165,12 +4237,12 @@
 <context>
     <name>qdesigner_internal::ButtonGroupMenu</name>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/button_taskmenu.cpp" line="318"/>
+        <location filename="../tools/designer/src/components/taskmenu/button_taskmenu.cpp" line="+7"/>
         <source>Select members</source>
         <translation>Sélectionner les membres</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/button_taskmenu.cpp" line="319"/>
+        <location line="+1"/>
         <source>Break</source>
         <translation>Casser</translation>
     </message>
@@ -4178,32 +4250,32 @@
 <context>
     <name>qdesigner_internal::ButtonTaskMenu</name>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/button_taskmenu.cpp" line="440"/>
+        <location line="+121"/>
         <source>Assign to button group</source>
         <translation>Assigner au groupe de boutons</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/button_taskmenu.cpp" line="442"/>
+        <location line="+2"/>
         <source>Button group</source>
         <translation>Groupe de boutons</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/button_taskmenu.cpp" line="443"/>
+        <location line="+1"/>
         <source>New button group</source>
         <translation>Nouveau groupe de boutons</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/button_taskmenu.cpp" line="444"/>
+        <location line="+1"/>
         <source>Change text...</source>
         <translation>Modifier le texte...</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/button_taskmenu.cpp" line="445"/>
+        <location line="+1"/>
         <source>None</source>
         <translation>Aucun</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/button_taskmenu.cpp" line="546"/>
+        <location line="+101"/>
         <source>Button group &apos;%1&apos;</source>
         <translation>Groupe de boutons &apos;%1&apos;</translation>
     </message>
@@ -4211,57 +4283,57 @@
 <context>
     <name>qdesigner_internal::CodeDialog</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/codedialog.cpp" line="95"/>
+        <location filename="../tools/designer/src/lib/shared/codedialog.cpp" line="+95"/>
         <source>Save...</source>
         <translation>Enregistrer...</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/codedialog.cpp" line="99"/>
+        <location line="+4"/>
         <source>Copy All</source>
         <translation>Tout copier</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/codedialog.cpp" line="104"/>
+        <location line="+5"/>
         <source>&amp;Find in Text...</source>
         <translation>&amp;Rechercher dans le texte...</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/codedialog.cpp" line="179"/>
+        <location line="+75"/>
         <source>A temporary form file could not be created in %1.</source>
         <translation>Un fichier temporaire de formulaire n&apos;a pas pu être créé dans %1.</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/codedialog.cpp" line="185"/>
+        <location line="+6"/>
         <source>The temporary form file %1 could not be written.</source>
         <translation>Le fichier temporaire de formulaire %1 n&apos;a pas pu être écrit.</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/codedialog.cpp" line="206"/>
+        <location line="+21"/>
         <source>%1 - [Code]</source>
         <translation>%1 - [Code]</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/codedialog.cpp" line="229"/>
+        <location line="+23"/>
         <source>Save Code</source>
         <translation>Enregistrer le code</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/codedialog.cpp" line="229"/>
+        <location line="+0"/>
         <source>Header Files (*.%1)</source>
         <translation>Fichiers headers (*.%1)</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/codedialog.cpp" line="235"/>
+        <location line="+6"/>
         <source>The file %1 could not be opened: %2</source>
         <translation>Le fichier %1 ne peut pas être ouvert : %2</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/codedialog.cpp" line="240"/>
+        <location line="+5"/>
         <source>The file %1 could not be written: %2</source>
         <translation>Le fichier %1 ne peut pas être écrit : %2</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/codedialog.cpp" line="251"/>
+        <location line="+11"/>
         <source>%1 - Error</source>
         <translation>%1 - Erreur</translation>
     </message>
@@ -4269,7 +4341,7 @@
 <context>
     <name>qdesigner_internal::ColorAction</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/richtexteditor.cpp" line="246"/>
+        <location filename="../tools/designer/src/lib/shared/richtexteditor.cpp" line="+246"/>
         <source>Text Color</source>
         <translation>Couleur du texte</translation>
     </message>
@@ -4277,12 +4349,12 @@
 <context>
     <name>qdesigner_internal::ComboBoxTaskMenu</name>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/combobox_taskmenu.cpp" line="68"/>
+        <location filename="../tools/designer/src/components/taskmenu/combobox_taskmenu.cpp" line="+68"/>
         <source>Edit Items...</source>
         <translation>Éditer les éléments...</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/combobox_taskmenu.cpp" line="106"/>
+        <location line="+38"/>
         <source>Change Combobox Contents</source>
         <translation>Modifier le contenu du Combobox</translation>
     </message>
@@ -4290,7 +4362,7 @@
 <context>
     <name>qdesigner_internal::CommandLinkButtonTaskMenu</name>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/button_taskmenu.cpp" line="702"/>
+        <location filename="../tools/designer/src/components/taskmenu/button_taskmenu.cpp" line="+156"/>
         <source>Change description...</source>
         <translation>Modifier la description...</translation>
     </message>
@@ -4298,17 +4370,17 @@
 <context>
     <name>qdesigner_internal::ConnectionEdit</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/connectionedit.cpp" line="1589"/>
+        <location filename="../tools/designer/src/lib/shared/connectionedit.cpp" line="+1313"/>
         <source>Select All</source>
         <translation>Tout sélectionner</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/connectionedit.cpp" line="1592"/>
+        <location line="+3"/>
         <source>Deselect All</source>
         <translation>Désélectionner tout</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/connectionedit.cpp" line="1597"/>
+        <location line="+5"/>
         <source>Delete</source>
         <translation>Supprimer</translation>
     </message>
@@ -4316,52 +4388,52 @@
 <context>
     <name>qdesigner_internal::ConnectionModel</name>
     <message>
-        <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditorwindow.cpp" line="196"/>
+        <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditorwindow.cpp" line="-465"/>
         <source>Sender</source>
         <translation>Émetteur</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditorwindow.cpp" line="197"/>
+        <location line="+1"/>
         <source>Signal</source>
         <translation>Signal</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditorwindow.cpp" line="198"/>
+        <location line="+1"/>
         <source>Receiver</source>
         <translation>Receveur</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditorwindow.cpp" line="199"/>
+        <location line="+1"/>
         <source>Slot</source>
         <translation>Slot</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditorwindow.cpp" line="289"/>
+        <location line="+90"/>
         <source>&lt;sender&gt;</source>
         <translation>&lt;émetteur&gt;</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditorwindow.cpp" line="290"/>
+        <location line="+1"/>
         <source>&lt;signal&gt;</source>
         <translation>&lt;signal&gt;</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditorwindow.cpp" line="291"/>
+        <location line="+1"/>
         <source>&lt;receiver&gt;</source>
         <translation>&lt;receveur&gt;</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditorwindow.cpp" line="292"/>
+        <location line="+1"/>
         <source>&lt;slot&gt;</source>
         <translation>&lt;slot&gt;</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditorwindow.cpp" line="400"/>
+        <location line="+108"/>
         <source>The connection already exists!&lt;br&gt;%1</source>
         <translation>La connexion existe déjà !&lt;br&gt;%1</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditorwindow.cpp" line="402"/>
+        <location line="+2"/>
         <source>Signal and Slot Editor</source>
         <translation>Éditeur de signaux et slots</translation>
     </message>
@@ -4369,42 +4441,42 @@
 <context>
     <name>qdesigner_internal::ContainerWidgetTaskMenu</name>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/containerwidget_taskmenu.cpp" line="79"/>
+        <location filename="../tools/designer/src/components/taskmenu/containerwidget_taskmenu.cpp" line="+79"/>
         <source>Delete</source>
         <translation>Supprimer</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/containerwidget_taskmenu.cpp" line="104"/>
+        <location line="+25"/>
         <source>Insert</source>
         <translation>Insérer</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/containerwidget_taskmenu.cpp" line="107"/>
+        <location line="+3"/>
         <source>Insert Page Before Current Page</source>
         <translation>Insérer la page avant la page courante</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/containerwidget_taskmenu.cpp" line="111"/>
+        <location line="+4"/>
         <source>Insert Page After Current Page</source>
         <translation>Insérer la page après la page courante</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/containerwidget_taskmenu.cpp" line="119"/>
+        <location line="+8"/>
         <source>Add Subwindow</source>
         <translation>Ajouter sous-fenêtre</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/containerwidget_taskmenu.cpp" line="157"/>
+        <location line="+38"/>
         <source>Subwindow</source>
         <translation>Sous fenêtre</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/containerwidget_taskmenu.cpp" line="159"/>
+        <location line="+2"/>
         <source>Page</source>
         <translation>Page</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/containerwidget_taskmenu.cpp" line="160"/>
+        <location line="+1"/>
         <source>Page %1 of %2</source>
         <translation>Page %1 de %2</translation>
     </message>
@@ -4412,18 +4484,18 @@
 <context>
     <name>qdesigner_internal::DPI_Chooser</name>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/dpi_chooser.cpp" line="100"/>
+        <location filename="../tools/designer/src/components/formeditor/dpi_chooser.cpp" line="+27"/>
         <source>System (%1 x %2)</source>
         <extracomment>System resolution</extracomment>
         <translation>Système (%1 x %2)</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/dpi_chooser.cpp" line="107"/>
+        <location line="+7"/>
         <source>User defined</source>
         <translation>Défini par l&apos;utilisateur</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/dpi_chooser.cpp" line="125"/>
+        <location line="+18"/>
         <source> x </source>
         <extracomment>DPI X/Y separator</extracomment>
         <translation> x </translation>
@@ -4432,49 +4504,49 @@
 <context>
     <name>qdesigner_internal::DesignerPropertyManager</name>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/designerpropertymanager.cpp" line="647"/>
-        <location filename="../tools/designer/src/components/propertyeditor/designerpropertymanager.cpp" line="653"/>
+        <location filename="../tools/designer/src/components/propertyeditor/designerpropertymanager.cpp" line="+647"/>
+        <location line="+6"/>
         <source>AlignLeft</source>
         <translation>AlignementGauche</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/designerpropertymanager.cpp" line="648"/>
+        <location line="-5"/>
         <source>AlignHCenter</source>
         <translation>AlignementCentreH</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/designerpropertymanager.cpp" line="649"/>
+        <location line="+1"/>
         <source>AlignRight</source>
         <translation>AlignementDroite</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/designerpropertymanager.cpp" line="650"/>
+        <location line="+1"/>
         <source>AlignJustify</source>
         <translation>AlignementJustifié</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/designerpropertymanager.cpp" line="659"/>
+        <location line="+9"/>
         <source>AlignTop</source>
         <translation>AlignementSommet</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/designerpropertymanager.cpp" line="660"/>
-        <location filename="../tools/designer/src/components/propertyeditor/designerpropertymanager.cpp" line="664"/>
+        <location line="+1"/>
+        <location line="+4"/>
         <source>AlignVCenter</source>
         <translation>AlignementCentreV</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/designerpropertymanager.cpp" line="661"/>
+        <location line="-3"/>
         <source>AlignBottom</source>
         <translation>AlignementDessous</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/designerpropertymanager.cpp" line="1226"/>
+        <location line="+565"/>
         <source>%1, %2</source>
         <translation>%1, %2</translation>
     </message>
     <message numerus="yes">
-        <location filename="../tools/designer/src/components/propertyeditor/designerpropertymanager.cpp" line="1232"/>
+        <location line="+6"/>
         <source>Customized (%n roles)</source>
         <translation>
             <numerusform>Personnalisé (%n rôle)</numerusform>
@@ -4482,76 +4554,76 @@
         </translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/designerpropertymanager.cpp" line="1233"/>
+        <location line="+1"/>
         <source>Inherited</source>
         <translatorcomment>pour la palette</translatorcomment>
         <translation>Héritée</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/designerpropertymanager.cpp" line="1799"/>
+        <location line="+566"/>
         <source>Horizontal</source>
         <translation>Horizontal</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/designerpropertymanager.cpp" line="1808"/>
+        <location line="+9"/>
         <source>Vertical</source>
         <translation>Vertical</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/designerpropertymanager.cpp" line="1823"/>
+        <location line="+15"/>
         <source>Normal Off</source>
         <translation>Arrêt normal</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/designerpropertymanager.cpp" line="1824"/>
+        <location line="+1"/>
         <source>Normal On</source>
         <translation>Marche normal</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/designerpropertymanager.cpp" line="1825"/>
+        <location line="+1"/>
         <source>Disabled Off</source>
         <translation>Arrêt désactivé</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/designerpropertymanager.cpp" line="1826"/>
+        <location line="+1"/>
         <source>Disabled On</source>
         <translation>Marche désactivé</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/designerpropertymanager.cpp" line="1827"/>
+        <location line="+1"/>
         <source>Active Off</source>
         <translation>Arrêt activé</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/designerpropertymanager.cpp" line="1828"/>
+        <location line="+1"/>
         <source>Active On</source>
         <translation>Marche activé</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/designerpropertymanager.cpp" line="1829"/>
+        <location line="+1"/>
         <source>Selected Off</source>
         <translation>Arrêt sélectionné</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/designerpropertymanager.cpp" line="1830"/>
+        <location line="+1"/>
         <source>Selected On</source>
         <translation>Marche sélectionné</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/designerpropertymanager.cpp" line="1837"/>
-        <location filename="../tools/designer/src/components/propertyeditor/designerpropertymanager.cpp" line="1858"/>
+        <location line="+7"/>
+        <location line="+21"/>
         <source>translatable</source>
         <translation>Traduisible</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/designerpropertymanager.cpp" line="1843"/>
-        <location filename="../tools/designer/src/components/propertyeditor/designerpropertymanager.cpp" line="1864"/>
+        <location line="-15"/>
+        <location line="+21"/>
         <source>disambiguation</source>
         <translation>désambiguation</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/designerpropertymanager.cpp" line="1849"/>
-        <location filename="../tools/designer/src/components/propertyeditor/designerpropertymanager.cpp" line="1870"/>
+        <location line="-15"/>
+        <location line="+21"/>
         <source>comment</source>
         <translation>commentaire</translation>
     </message>
@@ -4559,48 +4631,48 @@
 <context>
     <name>qdesigner_internal::DeviceProfileDialog</name>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/deviceprofiledialog.cpp" line="63"/>
+        <location filename="../tools/designer/src/components/formeditor/deviceprofiledialog.cpp" line="+63"/>
         <source>Device Profiles (*.%1)</source>
         <translation>Profils d&apos;appareil (*.%1)</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/deviceprofiledialog.cpp" line="94"/>
+        <location line="+31"/>
         <source>Default</source>
         <translation>Par défaut</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/deviceprofiledialog.cpp" line="161"/>
+        <location line="+67"/>
         <source>Save Profile</source>
         <translation>Enregistrer le profil</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/deviceprofiledialog.cpp" line="171"/>
+        <location line="+10"/>
         <source>Save Profile - Error</source>
         <translation>Enregistrer le profile - Erreur</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/deviceprofiledialog.cpp" line="171"/>
+        <location line="+0"/>
         <source>Unable to open the file &apos;%1&apos; for writing: %2</source>
         <translation>Impossible d&apos;ouvrir le fichier &apos;%1&apos; en écriture : %2</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/deviceprofiledialog.cpp" line="179"/>
+        <location line="+8"/>
         <source>Open profile</source>
         <translation>Ouvrir profil</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/deviceprofiledialog.cpp" line="185"/>
-        <location filename="../tools/designer/src/components/formeditor/deviceprofiledialog.cpp" line="191"/>
+        <location line="+6"/>
+        <location line="+6"/>
         <source>Open Profile - Error</source>
         <translation>Ouvrir profil - Erreur</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/deviceprofiledialog.cpp" line="185"/>
+        <location line="-6"/>
         <source>Unable to open the file &apos;%1&apos; for reading: %2</source>
         <translation>Impossible d&apos;ouvrir le fichier &apos;%1&apos; en lecture : %2</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/deviceprofiledialog.cpp" line="191"/>
+        <location line="+6"/>
         <source>&apos;%1&apos; is not a valid profile: %2</source>
         <translation>&apos;%1&apos; n&apos;est pas un profil valide : %2</translation>
     </message>
@@ -4608,57 +4680,57 @@
 <context>
     <name>qdesigner_internal::Dialog</name>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/stringlisteditor.ui" line="53"/>
+        <location filename="../tools/designer/src/components/propertyeditor/stringlisteditor.ui"/>
         <source>Dialog</source>
         <translation>Boîte de dialogue</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/stringlisteditor.ui" line="65"/>
+        <location/>
         <source>StringList</source>
         <translation>Liste de chaîne de caractères</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/stringlisteditor.ui" line="93"/>
+        <location/>
         <source>New String</source>
         <translation>Nouvelle chaîne de caractères</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/stringlisteditor.ui" line="96"/>
+        <location/>
         <source>&amp;New</source>
         <translation>&amp;Nouveau</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/stringlisteditor.ui" line="106"/>
+        <location/>
         <source>Delete String</source>
         <translation>Supprimer la chaîne de caractères</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/stringlisteditor.ui" line="109"/>
+        <location/>
         <source>&amp;Delete</source>
         <translation>&amp;Supprimer</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/stringlisteditor.ui" line="142"/>
+        <location/>
         <source>&amp;Value:</source>
         <translation>&amp;Valeur : </translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/stringlisteditor.ui" line="180"/>
+        <location/>
         <source>Move String Up</source>
         <translation>Déplacer la chaîne de caractères vers le haut</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/stringlisteditor.ui" line="183"/>
+        <location/>
         <source>Up</source>
         <translation>Vers le haut</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/stringlisteditor.ui" line="190"/>
+        <location/>
         <source>Move String Down</source>
         <translation>Déplacer la chaîne de caractères vers le bas</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/stringlisteditor.ui" line="193"/>
+        <location/>
         <source>Down</source>
         <translation>Vers le bas</translation>
     </message>
@@ -4666,52 +4738,52 @@
 <context>
     <name>qdesigner_internal::EmbeddedOptionsControl</name>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/embeddedoptionspage.cpp" line="160"/>
+        <location filename="../tools/designer/src/components/formeditor/embeddedoptionspage.cpp" line="-260"/>
         <source>None</source>
         <translation>Aucun</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/embeddedoptionspage.cpp" line="164"/>
+        <location line="+4"/>
         <source>Add a profile</source>
         <translation>Ajouter un profil</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/embeddedoptionspage.cpp" line="170"/>
+        <location line="+6"/>
         <source>Edit the selected profile</source>
         <translation>Éditer le profile sélectionné</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/embeddedoptionspage.cpp" line="174"/>
+        <location line="+4"/>
         <source>Delete the selected profile</source>
         <translation>Supprimer le profil sélectionné</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/embeddedoptionspage.cpp" line="196"/>
+        <location line="+22"/>
         <source>Add Profile</source>
         <translation>Ajouter profil</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/embeddedoptionspage.cpp" line="203"/>
+        <location line="+7"/>
         <source>New profile</source>
         <translation>Nouveau profil</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/embeddedoptionspage.cpp" line="238"/>
+        <location line="+35"/>
         <source>Edit Profile</source>
         <translation>Éditer profil</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/embeddedoptionspage.cpp" line="264"/>
+        <location line="+26"/>
         <source>Delete Profile</source>
         <translation>Supprimer profil</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/embeddedoptionspage.cpp" line="265"/>
+        <location line="+1"/>
         <source>Would you like to delete the profile &apos;%1&apos;?</source>
         <translation>Voulez-vous supprimer le profil &apos;%1&apos; ?</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/embeddedoptionspage.cpp" line="320"/>
+        <location line="+55"/>
         <source>Default</source>
         <translation>Par défaut</translation>
     </message>
@@ -4719,20 +4791,29 @@
 <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;Filtre&gt;</translation>
+        <translation type="obsolete">&lt;Filtre&gt;</translation>
+    </message>
+    <message>
+        <location filename="../tools/designer/src/lib/shared/filterwidget.cpp" line="+163"/>
+        <source>Filter</source>
+        <translation>Filtre</translation>
+    </message>
+    <message>
+        <location line="+36"/>
+        <source>Clear text</source>
+        <translation>Effacer le texte</translation>
     </message>
 </context>
 <context>
     <name>qdesigner_internal::FormEditor</name>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/formeditor.cpp" line="190"/>
+        <location filename="../tools/designer/src/components/formeditor/formeditor.cpp" line="+190"/>
         <source>Resource File Changed</source>
         <translation>Fichier de ressource modifié</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/formeditor.cpp" line="191"/>
+        <location line="+1"/>
         <source>The file &quot;%1&quot; has changed outside Designer. Do you want to reload it?</source>
         <translation>Le fichier &quot;%1&quot; a été modifié en dehors de Designer. Voulez-vous le recharger ?</translation>
     </message>
@@ -4740,7 +4821,7 @@
 <context>
     <name>qdesigner_internal::FormLayoutMenu</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/formlayoutmenu.cpp" line="482"/>
+        <location filename="../tools/designer/src/lib/shared/formlayoutmenu.cpp" line="+24"/>
         <source>Add form layout row...</source>
         <translation>Ajouter une ligne au layout du formulaire...</translation>
     </message>
@@ -4748,33 +4829,37 @@
 <context>
     <name>qdesigner_internal::FormWindow</name>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/formwindow.cpp" line="441"/>
+        <location filename="../tools/designer/src/components/formeditor/formwindow.cpp" line="-1322"/>
         <source>Edit contents</source>
         <translation>Éditer le contenu</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/formwindow.cpp" line="442"/>
+        <location line="+1"/>
         <source>F2</source>
         <translation>F2</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/formwindow.cpp" line="1216"/>
+        <location line="+775"/>
         <source>Insert widget &apos;%1&apos;</source>
         <translation>Insérer le widget &apos;%1&apos;</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/formwindow.cpp" line="1283"/>
+        <location line="+65"/>
         <source>Resize</source>
         <translation>Redimensionner</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/formwindow.cpp" line="1501"/>
-        <location filename="../tools/designer/src/components/formeditor/formwindow.cpp" line="1516"/>
+        <location line="+248"/>
         <source>Key Move</source>
         <translation>Déplacement au clavier</translation>
     </message>
+    <message>
+        <location line="+0"/>
+        <source>Key Resize</source>
+        <translation>Redimensionnement au clavier</translation>
+    </message>
     <message numerus="yes">
-        <location filename="../tools/designer/src/components/formeditor/formwindow.cpp" line="1727"/>
+        <location line="+252"/>
         <source>Paste %n action(s)</source>
         <translation>
             <numerusform>Coller %n action</numerusform>
@@ -4782,7 +4867,7 @@
         </translation>
     </message>
     <message numerus="yes">
-        <location filename="../tools/designer/src/components/formeditor/formwindow.cpp" line="1729"/>
+        <location line="+2"/>
         <source>Paste %n widget(s)</source>
         <translation>
             <numerusform>Coller %n widget</numerusform>
@@ -4790,53 +4875,53 @@
         </translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/formwindow.cpp" line="1730"/>
+        <location line="+1"/>
         <source>Paste (%1 widgets, %2 actions)</source>
         <translation>Coller (%1 widgets, %2 actions)</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/formwindow.cpp" line="1786"/>
+        <location line="+56"/>
         <source>Cannot paste widgets. Designer could not find a container without a layout to paste into.</source>
         <translation>Impossible de coller les widgets. Designer n&apos;a pas trouvé de conteneur sans layout pour coller.</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/formwindow.cpp" line="1788"/>
+        <location line="+2"/>
         <source>Break the layout of the container you want to paste into, select this container and then paste again.</source>
         <translation>Retirez le layout du conteneur dans lequel vous voulez coller, sélectionnez ce conteneur et collez à nouveau.</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/formwindow.cpp" line="1792"/>
+        <location line="+4"/>
         <source>Paste error</source>
         <translation>Erreur de collage</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/formwindow.cpp" line="1975"/>
+        <location line="+181"/>
         <source>Raise widgets</source>
         <translation>Élever widgets</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/formwindow.cpp" line="1992"/>
+        <location line="+17"/>
         <source>Lower widgets</source>
         <translation>Descendre widgets</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/formwindow.cpp" line="2196"/>
+        <location line="+204"/>
         <source>Select Ancestor</source>
         <translation>Sélectionner les ancêtres</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/formwindow.cpp" line="2237"/>
+        <location line="+46"/>
         <source>Lay out</source>
         <translation>Mettre en page</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/formwindow.cpp" line="2730"/>
-        <location filename="../tools/designer/src/components/formeditor/formwindow.cpp" line="2785"/>
+        <location line="+485"/>
+        <location line="+55"/>
         <source>Drop widget</source>
         <translation>Supprimer widget</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/formwindow.cpp" line="2772"/>
+        <location line="-13"/>
         <source>A QMainWindow-based form does not contain a central widget.</source>
         <translation>Un formulaire basé sur QMainWindow ne contenant pas de widget central.</translation>
     </message>
@@ -4844,12 +4929,12 @@
 <context>
     <name>qdesigner_internal::FormWindowBase</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/formwindowbase.cpp" line="393"/>
+        <location filename="../tools/designer/src/lib/shared/formwindowbase.cpp" line="+404"/>
         <source>Delete &apos;%1&apos;</source>
         <translation>Supprimer &apos;%1&apos;</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/formwindowbase.cpp" line="393"/>
+        <location line="+0"/>
         <source>Delete</source>
         <translation>Supprimer</translation>
     </message>
@@ -4857,200 +4942,208 @@
 <context>
     <name>qdesigner_internal::FormWindowManager</name>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/formwindowmanager.cpp" line="364"/>
+        <location filename="../tools/designer/src/components/formeditor/formwindowmanager.cpp" line="+365"/>
         <source>Cu&amp;t</source>
         <translation>Co&amp;uper</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/formwindowmanager.cpp" line="367"/>
+        <location line="+3"/>
         <source>Cuts the selected widgets and puts them on the clipboard</source>
         <translation>Coupe les widgets sélectionnés et les place dans le presse-papiers</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/formwindowmanager.cpp" line="372"/>
+        <location line="+5"/>
         <source>&amp;Copy</source>
         <translation>Cop&amp;ier</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/formwindowmanager.cpp" line="375"/>
+        <location line="+3"/>
         <source>Copies the selected widgets to the clipboard</source>
         <translation>Copie les widgets sélectionnés dans le presse-papiers</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/formwindowmanager.cpp" line="380"/>
+        <location line="+5"/>
         <source>&amp;Paste</source>
         <translation>C&amp;oller</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/formwindowmanager.cpp" line="383"/>
+        <location line="+3"/>
         <source>Pastes the clipboard&apos;s contents</source>
         <translation>Colle le contenu du presse-papiers</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/formwindowmanager.cpp" line="388"/>
+        <location line="+5"/>
         <source>&amp;Delete</source>
         <translation>&amp;Supprimer</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/formwindowmanager.cpp" line="390"/>
+        <location line="+2"/>
         <source>Deletes the selected widgets</source>
         <translation>Supprime les widgets sélectionnés</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/formwindowmanager.cpp" line="395"/>
+        <location line="+5"/>
         <source>Select &amp;All</source>
         <translation>Tout &amp;sélectionner</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/formwindowmanager.cpp" line="398"/>
+        <location line="+3"/>
         <source>Selects all widgets</source>
         <translation>Sélectionne tous les widgets</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/formwindowmanager.cpp" line="403"/>
+        <location line="+5"/>
         <source>Bring to &amp;Front</source>
         <translation>Amener au premier &amp;plan</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/formwindowmanager.cpp" line="406"/>
-        <location filename="../tools/designer/src/components/formeditor/formwindowmanager.cpp" line="407"/>
+        <location line="+3"/>
+        <location line="+1"/>
         <source>Raises the selected widgets</source>
         <translation>Élève les widgets sélectionnés</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/formwindowmanager.cpp" line="411"/>
+        <location line="+4"/>
         <source>Send to &amp;Back</source>
         <translation>Placer en &amp;arrière plan</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/formwindowmanager.cpp" line="414"/>
-        <location filename="../tools/designer/src/components/formeditor/formwindowmanager.cpp" line="415"/>
+        <location line="+3"/>
+        <location line="+1"/>
         <source>Lowers the selected widgets</source>
         <translation>Descend les widgets sélectionnés</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/formwindowmanager.cpp" line="419"/>
+        <location line="+4"/>
         <source>Adjust &amp;Size</source>
         <translation>Ajuster les &amp;dimensions</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/formwindowmanager.cpp" line="422"/>
+        <location line="+3"/>
         <source>Adjusts the size of the selected widget</source>
         <translation>Ajuster les dimensions du widget sélectionné</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/formwindowmanager.cpp" line="428"/>
+        <location line="+6"/>
         <source>Lay Out &amp;Horizontally</source>
         <translation>Mettre en page &amp;horizontalement</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/formwindowmanager.cpp" line="431"/>
-        <source>Lays out the selected widgets horizontaly</source>
+        <location line="+3"/>
+        <source>Lays out the selected widgets horizontally</source>
         <translation>Mettre en page horizontalement les widgets sélectionnés</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/formwindowmanager.cpp" line="437"/>
+        <location line="+39"/>
+        <source>Lays out the selected widgets horizontally in a splitter</source>
+        <translation>Met en page les widgets sélectionnés horizontalement à l&apos;aide d&apos;un séparateur</translation>
+    </message>
+    <message>
+        <source>Lays out the selected widgets horizontaly</source>
+        <translation type="obsolete">Mettre en page horizontalement les widgets sélectionnés</translation>
+    </message>
+    <message>
+        <location line="-33"/>
         <source>Lay Out &amp;Vertically</source>
         <translation>Mettre en page &amp;verticalement</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/formwindowmanager.cpp" line="440"/>
+        <location line="+3"/>
         <source>Lays out the selected widgets vertically</source>
         <translation>Mettre en page verticalement les widgets sélectionnés</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/formwindowmanager.cpp" line="447"/>
+        <location line="+7"/>
         <source>Lay Out in a &amp;Form Layout</source>
         <translation>Mettre en page dans un layout de &amp;formulaire</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/formwindowmanager.cpp" line="450"/>
+        <location line="+3"/>
         <source>Lays out the selected widgets in a form layout</source>
         <translation>Mettre en page les widgets sélectionnés dans un layout de formulaire</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/formwindowmanager.cpp" line="457"/>
+        <location line="+7"/>
         <source>Lay Out in a &amp;Grid</source>
         <translation>Mettre en page dans une &amp;grille</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/formwindowmanager.cpp" line="460"/>
+        <location line="+3"/>
         <source>Lays out the selected widgets in a grid</source>
         <translation>Mettre en page les widgets sélectionnés dans une grille</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/formwindowmanager.cpp" line="467"/>
+        <location line="+7"/>
         <source>Lay Out Horizontally in S&amp;plitter</source>
         <translation>Mettre en page horizontalement avec un sé&amp;parateur</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/formwindowmanager.cpp" line="470"/>
         <source>Lays out the selected widgets horizontaly in a splitter</source>
-        <translation>Met en page les widgets sélectionnés horizontalement à l&apos;aide d&apos;un séparateur</translation>
-    </message>
-    <message>
-        <location filename="../tools/designer/src/components/formeditor/formwindowmanager.cpp" line="477"/>
+        <translation type="obsolete">Met en page les widgets sélectionnés horizontalement à l&apos;aide d&apos;un séparateur</translation>
+    </message>
+    <message>
+        <location line="+10"/>
         <source>Lay Out Vertically in Sp&amp;litter</source>
         <translation>Mettre en page verticalement avec un sépa&amp;rateur</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/formwindowmanager.cpp" line="480"/>
+        <location line="+3"/>
         <source>Lays out the selected widgets vertically in a splitter</source>
         <translation>Met en page les widgets sélectionnés verticalement à l&apos;aide d&apos;un séparateur</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/formwindowmanager.cpp" line="487"/>
+        <location line="+7"/>
         <source>&amp;Break Layout</source>
         <translation>&amp;Casser la mise en page</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/formwindowmanager.cpp" line="490"/>
+        <location line="+3"/>
         <source>Breaks the selected layout</source>
         <translation>Retire le layout sélectionné</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/formwindowmanager.cpp" line="495"/>
+        <location line="+5"/>
         <source>Si&amp;mplify Grid Layout</source>
         <translation>Si&amp;mplifier le layout de grille</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/formwindowmanager.cpp" line="497"/>
+        <location line="+2"/>
         <source>Removes empty columns and rows</source>
         <translation>Supprime les lignes et colonnes vides</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/formwindowmanager.cpp" line="503"/>
+        <location line="+6"/>
         <source>&amp;Preview...</source>
         <translation>&amp;Prévisualisation...</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/formwindowmanager.cpp" line="505"/>
+        <location line="+2"/>
         <source>Preview current form</source>
         <translation>Prévisualise le formulaire courant</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/formwindowmanager.cpp" line="520"/>
+        <location line="+15"/>
         <source>Form &amp;Settings...</source>
         <translation>Paramètres du &amp;formulaire...</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/formwindowmanager.cpp" line="612"/>
+        <location line="+94"/>
         <source>Break Layout</source>
         <translation>Casser la mise en page</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/formwindowmanager.cpp" line="638"/>
+        <location line="+26"/>
         <source>Adjust Size</source>
         <translation>Ajuster les dimensions</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/formwindowmanager.cpp" line="681"/>
+        <location line="+43"/>
         <source>Could not create form preview</source>
         <comment>Title of warning message box</comment>
         <translation>Impossible de créer la prévisualisation du formulaire</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/formwindowmanager.cpp" line="1022"/>
+        <location line="+341"/>
         <source>Form Settings - %1</source>
         <translation>Paramètres du formulaire - %1</translation>
     </message>
@@ -5058,12 +5151,12 @@
 <context>
     <name>qdesigner_internal::FormWindowSettings</name>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/formwindowsettings.cpp" line="193"/>
+        <location filename="../tools/designer/src/components/formeditor/formwindowsettings.cpp" line="+193"/>
         <source>None</source>
         <translation>Aucun</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/formwindowsettings.cpp" line="194"/>
+        <location line="+1"/>
         <source>Device Profile: %1</source>
         <translation>Profil de périphérique : %1</translation>
     </message>
@@ -5071,38 +5164,37 @@
 <context>
     <name>qdesigner_internal::GridPanel</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/gridpanel.ui" line="13"/>
+        <location filename="../tools/designer/src/lib/shared/gridpanel.ui"/>
         <source>Form</source>
         <translation>Formulaire</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/gridpanel.ui" line="31"/>
+        <location/>
         <source>Grid</source>
         <translation>Grille</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/gridpanel.ui" line="43"/>
+        <location/>
         <source>Visible</source>
         <translation>Visible</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/gridpanel.ui" line="50"/>
+        <location/>
         <source>Grid &amp;X</source>
         <translation>Grille &amp;X</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/gridpanel.ui" line="76"/>
-        <location filename="../tools/designer/src/lib/shared/gridpanel.ui" line="133"/>
+        <location/>
         <source>Snap</source>
         <translation>Grille aimantée</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/gridpanel.ui" line="85"/>
+        <location/>
         <source>Reset</source>
         <translation>Réinitialisé</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/gridpanel.ui" line="107"/>
+        <location/>
         <source>Grid &amp;Y</source>
         <translation>Grille &amp;Y</translation>
     </message>
@@ -5110,7 +5202,7 @@
 <context>
     <name>qdesigner_internal::GroupBoxTaskMenu</name>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/groupbox_taskmenu.cpp" line="82"/>
+        <location filename="../tools/designer/src/components/taskmenu/groupbox_taskmenu.cpp" line="+82"/>
         <source>Change title...</source>
         <translation>Modifier le titre...</translation>
     </message>
@@ -5118,7 +5210,7 @@
 <context>
     <name>qdesigner_internal::HtmlTextEdit</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/richtexteditor.cpp" line="188"/>
+        <location filename="../tools/designer/src/lib/shared/richtexteditor.cpp" line="-58"/>
         <source>Insert HTML entity</source>
         <translation>Insérer une entité HTML</translation>
     </message>
@@ -5126,92 +5218,92 @@
 <context>
     <name>qdesigner_internal::IconSelector</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/iconselector.cpp" line="328"/>
+        <location filename="../tools/designer/src/lib/shared/iconselector.cpp" line="-24"/>
         <source>The pixmap file &apos;%1&apos; cannot be read.</source>
         <translation>Le fichier pixmap &apos;%1&apos; ne peut pas être lu.</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/iconselector.cpp" line="334"/>
+        <location line="+6"/>
         <source>The file &apos;%1&apos; does not appear to be a valid pixmap file: %2</source>
         <translation>Le fichier &apos;%1&apos; n&apos;est pas un fichier de pixmap valide : %2</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/iconselector.cpp" line="343"/>
+        <location line="+9"/>
         <source>The file &apos;%1&apos; could not be read: %2</source>
         <translation>Le fichier &apos;%1&apos; ne peut pas être lu : %2</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/iconselector.cpp" line="376"/>
+        <location line="+33"/>
         <source>Choose a Pixmap</source>
         <translation>Choisissez un pixmap</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/iconselector.cpp" line="383"/>
+        <location line="+7"/>
         <source>Pixmap Read Error</source>
         <translation>Erreur de lecture de pixmap</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/iconselector.cpp" line="437"/>
+        <location line="+54"/>
         <source>...</source>
         <translation>...</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/iconselector.cpp" line="443"/>
+        <location line="+6"/>
         <source>Normal Off</source>
         <translation>Arrêt normal</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/iconselector.cpp" line="444"/>
+        <location line="+1"/>
         <source>Normal On</source>
         <translation>Marche normal</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/iconselector.cpp" line="445"/>
+        <location line="+1"/>
         <source>Disabled Off</source>
         <translation>Arrêt désactivé</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/iconselector.cpp" line="446"/>
+        <location line="+1"/>
         <source>Disabled On</source>
         <translation>Marche désactivé</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/iconselector.cpp" line="447"/>
+        <location line="+1"/>
         <source>Active Off</source>
         <translation>Arrêt activé</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/iconselector.cpp" line="448"/>
+        <location line="+1"/>
         <source>Active On</source>
         <translation>Marche activé</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/iconselector.cpp" line="449"/>
+        <location line="+1"/>
         <source>Selected Off</source>
         <translation>Arrêt sélectionné</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/iconselector.cpp" line="450"/>
+        <location line="+1"/>
         <source>Selected On</source>
         <translation>Marche sélectionné</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/iconselector.cpp" line="458"/>
+        <location line="+8"/>
         <source>Choose Resource...</source>
         <translation>Choisir ressource...</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/iconselector.cpp" line="459"/>
+        <location line="+1"/>
         <source>Choose File...</source>
         <translation>Choisir un fichier...</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/iconselector.cpp" line="460"/>
+        <location line="+1"/>
         <source>Reset</source>
         <translation>Réinitialiser</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/iconselector.cpp" line="461"/>
+        <location line="+1"/>
         <source>Reset All</source>
         <translation>Réinitialisé tout</translation>
     </message>
@@ -5219,58 +5311,58 @@
 <context>
     <name>qdesigner_internal::ItemListEditor</name>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/itemlisteditor.ui" line="68"/>
+        <location filename="../tools/designer/src/components/taskmenu/itemlisteditor.ui"/>
         <source>Items List</source>
         <translation>Liste d&apos;éléments</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/itemlisteditor.ui" line="77"/>
+        <location/>
         <source>New Item</source>
         <translation>Nouvel élément</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/itemlisteditor.ui" line="80"/>
+        <location/>
         <source>&amp;New</source>
         <translation>&amp;Nouveau</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/itemlisteditor.ui" line="87"/>
+        <location/>
         <source>Delete Item</source>
         <translation>Supprimer élément</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/itemlisteditor.ui" line="90"/>
+        <location/>
         <source>&amp;Delete</source>
         <translation>&amp;Supprimer</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/itemlisteditor.ui" line="110"/>
+        <location/>
         <source>Move Item Up</source>
         <translation>Déplacer l&apos;élément vers le haut</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/itemlisteditor.ui" line="113"/>
+        <location/>
         <source>U</source>
         <translation>Monter</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/itemlisteditor.ui" line="120"/>
+        <location/>
         <source>Move Item Down</source>
         <translation>Déplacer l&apos;élément vers le bas</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/itemlisteditor.ui" line="123"/>
+        <location/>
         <source>D</source>
         <translation>Descendre</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/itemlisteditor.ui" line="143"/>
-        <location filename="../tools/designer/src/components/taskmenu/itemlisteditor.cpp" line="426"/>
+        <location/>
+        <location filename="../tools/designer/src/components/taskmenu/itemlisteditor.cpp" line="+360"/>
         <source>Properties &amp;&gt;&gt;</source>
         <translation>Propriétés &amp;&gt;&gt;</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/itemlisteditor.cpp" line="424"/>
+        <location filename="../tools/designer/src/components/taskmenu/itemlisteditor.cpp" line="-2"/>
         <source>Properties &amp;&lt;&lt;</source>
         <translation>Propriétés &amp;&lt;&lt;</translation>
     </message>
@@ -5278,12 +5370,12 @@
 <context>
     <name>qdesigner_internal::LabelTaskMenu</name>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/label_taskmenu.cpp" line="85"/>
+        <location filename="../tools/designer/src/components/taskmenu/label_taskmenu.cpp" line="+85"/>
         <source>Change rich text...</source>
         <translation>Modifier texte riche...</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/label_taskmenu.cpp" line="86"/>
+        <location line="+1"/>
         <source>Change plain text...</source>
         <translation>Modifier texte simple...</translation>
     </message>
@@ -5291,7 +5383,7 @@
 <context>
     <name>qdesigner_internal::LanguageResourceDialog</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/iconselector.cpp" line="118"/>
+        <location filename="../tools/designer/src/lib/shared/iconselector.cpp" line="-343"/>
         <source>Choose Resource</source>
         <translation>Choisir ressource</translation>
     </message>
@@ -5299,7 +5391,7 @@
 <context>
     <name>qdesigner_internal::LineEditTaskMenu</name>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/lineedit_taskmenu.cpp" line="80"/>
+        <location filename="../tools/designer/src/components/taskmenu/lineedit_taskmenu.cpp" line="+80"/>
         <source>Change text...</source>
         <translation>Modifier texte...</translation>
     </message>
@@ -5307,17 +5399,17 @@
 <context>
     <name>qdesigner_internal::ListWidgetEditor</name>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/listwidgeteditor.cpp" line="69"/>
+        <location filename="../tools/designer/src/components/taskmenu/listwidgeteditor.cpp" line="+69"/>
         <source>New Item</source>
         <translation>Nouvel élément</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/listwidgeteditor.cpp" line="101"/>
+        <location line="+32"/>
         <source>Edit List Widget</source>
         <translation>Éditer le widget de liste</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/listwidgeteditor.cpp" line="120"/>
+        <location line="+19"/>
         <source>Edit Combobox</source>
         <translation>Éditer le Combobox</translation>
     </message>
@@ -5325,12 +5417,12 @@
 <context>
     <name>qdesigner_internal::ListWidgetTaskMenu</name>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/listwidget_taskmenu.cpp" line="67"/>
+        <location filename="../tools/designer/src/components/taskmenu/listwidget_taskmenu.cpp" line="+67"/>
         <source>Edit Items...</source>
         <translation>Éditer les éléments...</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/listwidget_taskmenu.cpp" line="105"/>
+        <location line="+38"/>
         <source>Change List Contents</source>
         <translation>Modifier le contenu de la liste</translation>
     </message>
@@ -5338,22 +5430,22 @@
 <context>
     <name>qdesigner_internal::MdiContainerWidgetTaskMenu</name>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/containerwidget_taskmenu.cpp" line="278"/>
+        <location filename="../tools/designer/src/components/taskmenu/containerwidget_taskmenu.cpp" line="+118"/>
         <source>Next Subwindow</source>
         <translation>Sous-fenêtre suivante</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/containerwidget_taskmenu.cpp" line="279"/>
+        <location line="+1"/>
         <source>Previous Subwindow</source>
         <translation>Sous-fenêtre précédente</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/containerwidget_taskmenu.cpp" line="280"/>
+        <location line="+1"/>
         <source>Tile</source>
         <translation>Côte à côte</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/containerwidget_taskmenu.cpp" line="281"/>
+        <location line="+1"/>
         <source>Cascade</source>
         <translation>Cascade</translation>
     </message>
@@ -5361,7 +5453,7 @@
 <context>
     <name>qdesigner_internal::MenuTaskMenu</name>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/menutaskmenu.cpp" line="56"/>
+        <location filename="../tools/designer/src/components/taskmenu/menutaskmenu.cpp" line="+56"/>
         <source>Remove</source>
         <translation>Supprimer</translation>
     </message>
@@ -5369,7 +5461,7 @@
 <context>
     <name>qdesigner_internal::MorphMenu</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/morphmenu.cpp" line="613"/>
+        <location filename="../tools/designer/src/lib/shared/morphmenu.cpp" line="+264"/>
         <source>Morph into</source>
         <translation>Transformer en</translation>
     </message>
@@ -5377,43 +5469,42 @@
 <context>
     <name>qdesigner_internal::NewActionDialog</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/newactiondialog.ui" line="46"/>
+        <location filename="../tools/designer/src/lib/shared/newactiondialog.ui"/>
         <source>New Action...</source>
         <translation>Nouvelle action...</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/newactiondialog.ui" line="54"/>
+        <location/>
         <source>&amp;Text:</source>
         <translation>&amp;Texte :</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/newactiondialog.ui" line="74"/>
+        <location/>
         <source>Object &amp;name:</source>
         <translation>&amp;Nom de l&apos;objet :</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/newactiondialog.ui" line="87"/>
+        <location/>
         <source>&amp;Icon:</source>
         <translation>&amp;Icône :</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/newactiondialog.ui" line="117"/>
+        <location/>
         <source>Shortcut:</source>
         <translation>Raccourci :</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/newactiondialog.ui" line="131"/>
+        <location/>
         <source>Checkable:</source>
         <translation>Peut être cochée :</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/newactiondialog.ui" line="138"/>
+        <location/>
         <source>ToolTip:</source>
         <translation>Info-bulle :</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/newactiondialog.ui" line="157"/>
-        <location filename="../tools/designer/src/lib/shared/newactiondialog.ui" line="178"/>
+        <location/>
         <source>...</source>
         <translation>...</translation>
     </message>
@@ -5421,39 +5512,39 @@
 <context>
     <name>qdesigner_internal::NewDynamicPropertyDialog</name>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/newdynamicpropertydialog.ui" line="13"/>
+        <location filename="../tools/designer/src/components/propertyeditor/newdynamicpropertydialog.ui"/>
         <source>Create Dynamic Property</source>
         <translation>Créer une propriété dynamique</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/newdynamicpropertydialog.ui" line="37"/>
+        <location/>
         <source>Property Name</source>
         <translation>Nom de la propriété</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/newdynamicpropertydialog.ui" line="49"/>
+        <location/>
         <source>horizontalSpacer</source>
         <translation>Espaceur horizontal</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/newdynamicpropertydialog.ui" line="73"/>
+        <location/>
         <source>Property Type</source>
         <translation>Type de la propriété</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/newdynamicpropertydialog.cpp" line="134"/>
+        <location filename="../tools/designer/src/components/propertyeditor/newdynamicpropertydialog.cpp" line="+134"/>
         <source>Set Property Name</source>
         <translation>Définir le nom de la propriété</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/newdynamicpropertydialog.cpp" line="145"/>
+        <location line="+11"/>
         <source>The current object already has a property named &apos;%1&apos;.
 Please select another, unique one.</source>
         <translation>L&apos;objet courant possède déjà une propriété nommée &apos;%1&apos;.
 Veuillez-sélectionner un autre nom.</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/newdynamicpropertydialog.cpp" line="149"/>
+        <location line="+4"/>
         <source>The &apos;_q_&apos; prefix is reserved for the Qt library.
 Please select another name.</source>
         <translation>Le préfixe «_q_» est réservé pour la bibliothèque Qt.
@@ -5463,83 +5554,83 @@
 <context>
     <name>qdesigner_internal::NewFormWidget</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/newformwidget.ui" line="82"/>
+        <location filename="../tools/designer/src/lib/shared/newformwidget.ui"/>
         <source>0</source>
         <translation>0</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/newformwidget.ui" line="101"/>
+        <location/>
         <source>Choose a template for a preview</source>
         <translation>Choisir un modèle pour la prévisualisation</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/newformwidget.ui" line="145"/>
+        <location/>
         <source>Embedded Design</source>
         <translation>Design pour appareil mobile</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/newformwidget.ui" line="157"/>
+        <location/>
         <source>Device:</source>
         <translation>Appareil :</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/newformwidget.ui" line="164"/>
+        <location/>
         <source>Screen Size:</source>
         <translation>Dimensions de l&apos;écran :</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/newformwidget.cpp" line="104"/>
+        <location filename="../tools/designer/src/lib/shared/newformwidget.cpp" line="+104"/>
         <source>Default size</source>
         <translation>Dimensions par défaut</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/newformwidget.cpp" line="105"/>
+        <location line="+1"/>
         <source>QVGA portrait (240x320)</source>
         <translation>QVGA portrait (240x320)</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/newformwidget.cpp" line="106"/>
+        <location line="+1"/>
         <source>QVGA landscape (320x240)</source>
         <translation>QVGA paysage (320x240)</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/newformwidget.cpp" line="107"/>
+        <location line="+1"/>
         <source>VGA portrait (480x640)</source>
         <translation>VGA portrait (480x640)</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/newformwidget.cpp" line="108"/>
+        <location line="+1"/>
         <source>VGA landscape (640x480)</source>
         <translation>VGA paysage (640x480)</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/newformwidget.cpp" line="174"/>
+        <location line="+66"/>
         <source>Widgets</source>
         <extracomment>New Form Dialog Categories</extracomment>
         <translation>Widgets</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/newformwidget.cpp" line="175"/>
+        <location line="+1"/>
         <source>Custom Widgets</source>
         <translation>Widgets personnalisé</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/newformwidget.cpp" line="193"/>
+        <location line="+18"/>
         <source>None</source>
         <translation>Aucun</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/newformwidget.cpp" line="250"/>
+        <location line="+57"/>
         <source>Error loading form</source>
         <translation>Erreur de chargement du formulaire</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/newformwidget.cpp" line="494"/>
+        <location line="+244"/>
         <source>Unable to open the form template file &apos;%1&apos;: %2</source>
         <translation>Impossible d&apos;ouvrir le fichier de modèle de formulaire &apos;%1&apos; : %2</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/newformwidget.cpp" line="561"/>
+        <location line="+67"/>
         <source>Internal error: No template selected.</source>
         <translation>Erreur interne : aucun modèle sélectionné.</translation>
     </message>
@@ -5547,37 +5638,37 @@
 <context>
     <name>qdesigner_internal::NewPromotedClassPanel</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_promotiondialog.cpp" line="92"/>
+        <location filename="../tools/designer/src/lib/shared/qdesigner_promotiondialog.cpp" line="+92"/>
         <source>Add</source>
         <translation>Ajouter</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_promotiondialog.cpp" line="94"/>
+        <location line="+2"/>
         <source>New Promoted Class</source>
         <translation>Nouvelle classe promue</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_promotiondialog.cpp" line="109"/>
+        <location line="+15"/>
         <source>Base class name:</source>
         <translation>Nom de la classe de base :</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_promotiondialog.cpp" line="110"/>
+        <location line="+1"/>
         <source>Promoted class name:</source>
         <translation>Nom de la classe promue :</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_promotiondialog.cpp" line="111"/>
+        <location line="+1"/>
         <source>Header file:</source>
         <translation>Fichier d&apos;en-tête :</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_promotiondialog.cpp" line="112"/>
+        <location line="+1"/>
         <source>Global include</source>
         <translation>En-tête global</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_promotiondialog.cpp" line="123"/>
+        <location line="+11"/>
         <source>Reset</source>
         <translation>Réinitialiser</translation>
     </message>
@@ -5585,7 +5676,12 @@
 <context>
     <name>qdesigner_internal::ObjectInspector</name>
     <message>
-        <location filename="../tools/designer/src/components/objectinspector/objectinspector.cpp" line="754"/>
+        <location filename="../tools/designer/src/components/objectinspector/objectinspector.cpp" line="+316"/>
+        <source>Change Current Page</source>
+        <translation>Modifier la page courante</translation>
+    </message>
+    <message>
+        <location line="+438"/>
         <source>&amp;Find in Text...</source>
         <translation>&amp;Rechercher dans le texte...</translation>
     </message>
@@ -5593,40 +5689,39 @@
 <context>
     <name>qdesigner_internal::ObjectInspector::ObjectInspectorPrivate</name>
     <message>
-        <location filename="../tools/designer/src/components/objectinspector/objectinspector.cpp" line="316"/>
         <source>Change Current Page</source>
-        <translation>Modifier la page courante</translation>
+        <translation type="obsolete">Modifier la page courante</translation>
     </message>
 </context>
 <context>
     <name>qdesigner_internal::OrderDialog</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/orderdialog.ui" line="53"/>
+        <location filename="../tools/designer/src/lib/shared/orderdialog.ui"/>
         <source>Change Page Order</source>
         <translation>Modifier l&apos;ordre des pages</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/orderdialog.ui" line="59"/>
+        <location/>
         <source>Page Order</source>
         <translation>Ordre des pages</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/orderdialog.ui" line="116"/>
+        <location/>
         <source>Move page up</source>
         <translation>Déplacer la page vers le haut</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/orderdialog.ui" line="123"/>
+        <location/>
         <source>Move page down</source>
         <translation>Déplacer la page vers le bas</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/orderdialog.cpp" line="109"/>
+        <location filename="../tools/designer/src/lib/shared/orderdialog.cpp" line="+109"/>
         <source>Index %1 (%2)</source>
         <translation>Indice %1 (%2)</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/orderdialog.cpp" line="112"/>
+        <location line="+3"/>
         <source>%1 %2</source>
         <translation>%1 %2</translation>
     </message>
@@ -5634,47 +5729,47 @@
 <context>
     <name>qdesigner_internal::PaletteEditor</name>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/paletteeditor.ui" line="61"/>
+        <location filename="../tools/designer/src/components/propertyeditor/paletteeditor.ui"/>
         <source>Edit Palette</source>
         <translation>Éditer la palette</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/paletteeditor.ui" line="85"/>
+        <location/>
         <source>Tune Palette</source>
         <translation>Ajuster la palette</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/paletteeditor.ui" line="122"/>
+        <location/>
         <source>Show Details</source>
         <translation>Afficher les détails</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/paletteeditor.ui" line="129"/>
+        <location/>
         <source>Compute Details</source>
         <translation>Calculer les détails</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/paletteeditor.ui" line="139"/>
+        <location/>
         <source>Quick</source>
         <translation>Rapide</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/paletteeditor.ui" line="157"/>
+        <location/>
         <source>Preview</source>
         <translation>Prévisualisation</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/paletteeditor.ui" line="169"/>
+        <location/>
         <source>Disabled</source>
         <translation>Désactivé</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/paletteeditor.ui" line="176"/>
+        <location/>
         <source>Inactive</source>
         <translation>Inactif</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/paletteeditor.ui" line="183"/>
+        <location/>
         <source>Active</source>
         <translation>Actif</translation>
     </message>
@@ -5682,7 +5777,7 @@
 <context>
     <name>qdesigner_internal::PaletteEditorButton</name>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/paletteeditorbutton.cpp" line="57"/>
+        <location filename="../tools/designer/src/components/propertyeditor/paletteeditorbutton.cpp" line="+57"/>
         <source>Change Palette</source>
         <translation>Modifier la palette</translation>
     </message>
@@ -5690,22 +5785,22 @@
 <context>
     <name>qdesigner_internal::PaletteModel</name>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/paletteeditor.cpp" line="374"/>
+        <location filename="../tools/designer/src/components/propertyeditor/paletteeditor.cpp" line="+374"/>
         <source>Color Role</source>
         <translation>Rôle de la couleur</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/paletteeditor.cpp" line="376"/>
+        <location line="+2"/>
         <source>Active</source>
         <translation>Actif</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/paletteeditor.cpp" line="378"/>
+        <location line="+2"/>
         <source>Inactive</source>
         <translation>Inactif</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/paletteeditor.cpp" line="380"/>
+        <location line="+2"/>
         <source>Disabled</source>
         <translation>Désactivé</translation>
     </message>
@@ -5713,28 +5808,28 @@
 <context>
     <name>qdesigner_internal::PixmapEditor</name>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/designerpropertymanager.cpp" line="329"/>
+        <location filename="../tools/designer/src/components/propertyeditor/designerpropertymanager.cpp" line="-1541"/>
         <source>Choose Resource...</source>
         <translation>Choisir ressource...</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/designerpropertymanager.cpp" line="330"/>
+        <location line="+1"/>
         <source>Choose File...</source>
         <translation>Choisir fichier...</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/designerpropertymanager.cpp" line="331"/>
+        <location line="+1"/>
         <source>Copy Path</source>
         <translation>Chemin de copie</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/designerpropertymanager.cpp" line="332"/>
+        <location line="+1"/>
         <source>Paste Path</source>
         <translation>Chemin de collage</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/designerpropertymanager.cpp" line="338"/>
-        <location filename="../tools/designer/src/components/propertyeditor/designerpropertymanager.cpp" line="354"/>
+        <location line="+6"/>
+        <location line="+16"/>
         <source>...</source>
         <translation>...</translation>
     </message>
@@ -5742,7 +5837,7 @@
 <context>
     <name>qdesigner_internal::PlainTextEditorDialog</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/plaintexteditor.cpp" line="65"/>
+        <location filename="../tools/designer/src/lib/shared/plaintexteditor.cpp" line="+65"/>
         <source>Edit text</source>
         <translation>Éditer le texte</translation>
     </message>
@@ -5750,37 +5845,37 @@
 <context>
     <name>qdesigner_internal::PluginDialog</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/plugindialog.cpp" line="72"/>
+        <location filename="../tools/designer/src/lib/shared/plugindialog.cpp" line="+72"/>
         <source>Components</source>
         <translation>Composants</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/plugindialog.cpp" line="85"/>
+        <location line="+13"/>
         <source>Plugin Information</source>
         <translation>Information sur les plugins</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/plugindialog.cpp" line="89"/>
+        <location line="+4"/>
         <source>Refresh</source>
         <translation>Rafraîchir</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/plugindialog.cpp" line="90"/>
+        <location line="+1"/>
         <source>Scan for newly installed custom widget plugins.</source>
         <translation>Recherche des plugins personnalisés récemment installés.</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/plugindialog.cpp" line="138"/>
+        <location line="+48"/>
         <source>Qt Designer couldn&apos;t find any plugins</source>
         <translation>Qt Designer n&apos;a trouvé aucun plugin</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/plugindialog.cpp" line="141"/>
+        <location line="+3"/>
         <source>Qt Designer found the following plugins</source>
         <translation>Qt Designer a trouvé les plugins suivants</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/plugindialog.cpp" line="196"/>
+        <location line="+55"/>
         <source>New custom widget plugins have been found.</source>
         <translation>De nouveaux plugins de widgets ont été trouvés.</translation>
     </message>
@@ -5788,7 +5883,7 @@
 <context>
     <name>qdesigner_internal::PreviewActionGroup</name>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/previewactiongroup.cpp" line="95"/>
+        <location filename="../tools/designer/src/components/formeditor/previewactiongroup.cpp" line="+95"/>
         <source>%1 Style</source>
         <translation>Style %1</translation>
     </message>
@@ -5796,77 +5891,103 @@
 <context>
     <name>qdesigner_internal::PreviewConfigurationWidget</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/previewconfigurationwidget.cpp" line="139"/>
+        <location filename="../tools/designer/src/lib/shared/previewconfigurationwidget.cpp" line="+139"/>
         <source>Default</source>
         <translation>Par défaut</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/previewconfigurationwidget.cpp" line="161"/>
+        <location line="+22"/>
         <source>None</source>
         <translation>Aucun</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/previewconfigurationwidget.cpp" line="167"/>
+        <location line="+6"/>
         <source>Browse...</source>
         <translation>Parcourir...</translation>
     </message>
+    <message>
+        <location line="+118"/>
+        <source>Load Custom Device Skin</source>
+        <translation>Charger le revêtement d&apos;appareil personnalisé</translation>
+    </message>
+    <message>
+        <location line="+2"/>
+        <source>All QVFB Skins (*.%1)</source>
+        <translation>Tous les revêtements QVFB (*.%1)</translation>
+    </message>
+    <message>
+        <location line="+16"/>
+        <source>%1 - Duplicate Skin</source>
+        <translation>%1 - Revêtement doublon</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>The skin &apos;%1&apos; already exists.</source>
+        <translation>Le revêtement &apos;%1&apos; existe déjà.</translation>
+    </message>
+    <message>
+        <location line="+14"/>
+        <source>%1 - Error</source>
+        <translation>%1 - Erreur</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>%1 is not a valid skin directory:
+%2</source>
+        <translation>%1 n&apos;est pas un répertoire de revêtements valide :
+%2</translation>
+    </message>
 </context>
 <context>
     <name>qdesigner_internal::PreviewConfigurationWidget::PreviewConfigurationWidgetPrivate</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/previewconfigurationwidget.cpp" line="285"/>
         <source>Load Custom Device Skin</source>
-        <translation>Charger le revêtement d&apos;appareil personnalisé</translation>
-    </message>
-    <message>
-        <location filename="../tools/designer/src/lib/shared/previewconfigurationwidget.cpp" line="287"/>
+        <translation type="obsolete">Charger le revêtement d&apos;appareil personnalisé</translation>
+    </message>
+    <message>
         <source>All QVFB Skins (*.%1)</source>
-        <translation>Tous les revêtements QVFB (*.%1)</translation>
-    </message>
-    <message>
-        <location filename="../tools/designer/src/lib/shared/previewconfigurationwidget.cpp" line="303"/>
+        <translation type="obsolete">Tous les revêtements QVFB (*.%1)</translation>
+    </message>
+    <message>
         <source>%1 - Duplicate Skin</source>
-        <translation>%1 - Revêtement doublon</translation>
-    </message>
-    <message>
-        <location filename="../tools/designer/src/lib/shared/previewconfigurationwidget.cpp" line="304"/>
+        <translation type="obsolete">%1 - Revêtement doublon</translation>
+    </message>
+    <message>
         <source>The skin &apos;%1&apos; already exists.</source>
-        <translation>Le revêtement &apos;%1&apos; existe déjà.</translation>
-    </message>
-    <message>
-        <location filename="../tools/designer/src/lib/shared/previewconfigurationwidget.cpp" line="318"/>
+        <translation type="obsolete">Le revêtement &apos;%1&apos; existe déjà.</translation>
+    </message>
+    <message>
         <source>%1 - Error</source>
-        <translation>%1 - -Erreur</translation>
-    </message>
-    <message>
-        <location filename="../tools/designer/src/lib/shared/previewconfigurationwidget.cpp" line="319"/>
+        <translation type="obsolete">%1 - -Erreur</translation>
+    </message>
+    <message>
         <source>%1 is not a valid skin directory:
 %2</source>
-        <translation>%1 n&apos;est pas un répertoire de revêtements valide :
+        <translation type="obsolete">%1 n&apos;est pas un répertoire de revêtements valide :
 %2</translation>
     </message>
 </context>
 <context>
     <name>qdesigner_internal::PreviewDeviceSkin</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/previewmanager.cpp" line="259"/>
+        <location filename="../tools/designer/src/lib/shared/previewmanager.cpp" line="+259"/>
         <source>&amp;Portrait</source>
         <translation>&amp;Portrait</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/previewmanager.cpp" line="261"/>
+        <location line="+2"/>
         <source>Landscape (&amp;CCW)</source>
         <extracomment>Rotate form preview counter-clockwise</extracomment>
         <translation>Paysage (&amp;dans le sens horaire)</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/previewmanager.cpp" line="263"/>
+        <location line="+2"/>
         <source>&amp;Landscape (CW)</source>
         <extracomment>Rotate form preview clockwise</extracomment>
         <translation>Paysage (&amp;dans le sens anti-horaire)</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/previewmanager.cpp" line="264"/>
+        <location line="+1"/>
         <source>&amp;Close</source>
         <translation>&amp;Fermer</translation>
     </message>
@@ -5874,7 +5995,7 @@
 <context>
     <name>qdesigner_internal::PreviewManager</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/previewmanager.cpp" line="690"/>
+        <location line="+426"/>
         <source>%1 - [Preview]</source>
         <translation>%1 - [prévisualisation]</translation>
     </message>
@@ -5882,7 +6003,7 @@
 <context>
     <name>qdesigner_internal::PreviewMdiArea</name>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/previewframe.cpp" line="72"/>
+        <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>
@@ -5893,57 +6014,57 @@
 <context>
     <name>qdesigner_internal::PreviewWidget</name>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/previewwidget.ui" line="61"/>
+        <location filename="../tools/designer/src/components/propertyeditor/previewwidget.ui"/>
         <source>Preview Window</source>
         <translation>Fenêtre de prévisualisation</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/previewwidget.ui" line="81"/>
+        <location/>
         <source>LineEdit</source>
         <translation>LineEdit</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/previewwidget.ui" line="89"/>
+        <location/>
         <source>ComboBox</source>
         <translation>ComboBox</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/previewwidget.ui" line="108"/>
+        <location/>
         <source>PushButton</source>
         <translation>PushButton</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/previewwidget.ui" line="166"/>
+        <location/>
         <source>ButtonGroup2</source>
         <translation>ButtonGroup2</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/previewwidget.ui" line="178"/>
+        <location/>
         <source>CheckBox1</source>
         <translation>CheckBox1</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/previewwidget.ui" line="188"/>
+        <location/>
         <source>CheckBox2</source>
         <translation>CheckBox2</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/previewwidget.ui" line="198"/>
+        <location/>
         <source>ButtonGroup</source>
         <translation>ButtonGroup</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/previewwidget.ui" line="210"/>
+        <location/>
         <source>RadioButton1</source>
         <translation>RadioButton1</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/previewwidget.ui" line="220"/>
+        <location/>
         <source>RadioButton2</source>
         <translation>RadioButton2</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/previewwidget.ui" line="227"/>
+        <location/>
         <source>RadioButton3</source>
         <translation>BoutonRadio1</translation>
     </message>
@@ -5951,22 +6072,22 @@
 <context>
     <name>qdesigner_internal::PromotionModel</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/promotionmodel.cpp" line="129"/>
+        <location filename="../tools/designer/src/lib/shared/promotionmodel.cpp" line="+17"/>
         <source>Name</source>
         <translation>Nom</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/promotionmodel.cpp" line="130"/>
+        <location line="+1"/>
         <source>Header file</source>
         <translation>Fichier d&apos;en-tête</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/promotionmodel.cpp" line="131"/>
+        <location line="+1"/>
         <source>Global include</source>
         <translation>En-tête global</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/promotionmodel.cpp" line="132"/>
+        <location line="+1"/>
         <source>Usage</source>
         <translation>Usage</translation>
     </message>
@@ -5974,27 +6095,27 @@
 <context>
     <name>qdesigner_internal::PromotionTaskMenu</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/promotiontaskmenu.cpp" line="85"/>
+        <location filename="../tools/designer/src/lib/shared/promotiontaskmenu.cpp" line="+85"/>
         <source>Promoted widgets...</source>
         <translation>Widgets promus...</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/promotiontaskmenu.cpp" line="86"/>
+        <location line="+1"/>
         <source>Promote to ...</source>
         <translation>Promouvoir en...</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/promotiontaskmenu.cpp" line="87"/>
+        <location line="+1"/>
         <source>Change signals/slots...</source>
         <translation>Modifier signaux/slots...</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/promotiontaskmenu.cpp" line="88"/>
+        <location line="+1"/>
         <source>Promote to</source>
         <translation>Promouvoir en</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/promotiontaskmenu.cpp" line="89"/>
+        <location line="+1"/>
         <source>Demote to %1</source>
         <translation>Rétrograder en %1</translation>
     </message>
@@ -6002,57 +6123,57 @@
 <context>
     <name>qdesigner_internal::PropertyEditor</name>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/propertyeditor.cpp" line="183"/>
+        <location filename="../tools/designer/src/components/propertyeditor/propertyeditor.cpp" line="+231"/>
         <source>Add Dynamic Property...</source>
         <translation>Ajouter une propriété dynamique...</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/propertyeditor.cpp" line="184"/>
+        <location line="+1"/>
         <source>Remove Dynamic Property</source>
         <translation>Supprimer la propriété dynamique</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/propertyeditor.cpp" line="185"/>
+        <location line="+1"/>
         <source>Sorting</source>
         <translation>Tri</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/propertyeditor.cpp" line="186"/>
+        <location line="+1"/>
         <source>Color Groups</source>
         <translation>Groupes de couleur</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/propertyeditor.cpp" line="187"/>
+        <location line="+1"/>
         <source>Tree View</source>
         <translation>Vue arborescente</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/propertyeditor.cpp" line="188"/>
+        <location line="+1"/>
         <source>Drop Down Button View</source>
-        <translation type="unfinished">Liste déroulante</translation>
-    </message>
-    <message>
-        <location filename="../tools/designer/src/components/propertyeditor/propertyeditor.cpp" line="238"/>
+        <translation>Liste déroulante</translation>
+    </message>
+    <message>
+        <location line="+45"/>
         <source>String...</source>
         <translation>Chaîne de caractères...</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/propertyeditor.cpp" line="241"/>
+        <location line="+3"/>
         <source>Bool...</source>
         <translation>Booléen...</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/propertyeditor.cpp" line="245"/>
+        <location line="+4"/>
         <source>Other...</source>
         <translation>Autre...</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/propertyeditor.cpp" line="252"/>
+        <location line="+7"/>
         <source>Configure Property Editor</source>
         <translation>Configurer l&apos;éditeur de propriétés</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/propertyeditor.cpp" line="785"/>
+        <location line="+539"/>
         <source>Object: %1
 Class: %2</source>
         <translation>Objet : %1
@@ -6062,7 +6183,7 @@
 <context>
     <name>qdesigner_internal::PropertyLineEdit</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/propertylineedit.cpp" line="88"/>
+        <location filename="../tools/designer/src/lib/shared/propertylineedit.cpp" line="+88"/>
         <source>Insert line break</source>
         <translation>Insérer saut de ligne</translation>
     </message>
@@ -6070,27 +6191,27 @@
 <context>
     <name>qdesigner_internal::QDesignerPromotionDialog</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_promotiondialog.cpp" line="208"/>
+        <location filename="../tools/designer/src/lib/shared/qdesigner_promotiondialog.cpp" line="+85"/>
         <source>Promoted Widgets</source>
         <translation>Widgets promus</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_promotiondialog.cpp" line="215"/>
+        <location line="+7"/>
         <source>Promoted Classes</source>
         <translation>Classes promues</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_promotiondialog.cpp" line="275"/>
+        <location line="+60"/>
         <source>Promote</source>
         <translation>Promouvoir</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_promotiondialog.cpp" line="427"/>
+        <location line="+152"/>
         <source>Change signals/slots...</source>
         <translation>Modifier signaux/slots...</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_promotiondialog.cpp" line="444"/>
+        <location line="+17"/>
         <source>%1 - Error</source>
         <translation>%1 - Erreur</translation>
     </message>
@@ -6098,22 +6219,22 @@
 <context>
     <name>qdesigner_internal::QDesignerResource</name>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/qdesigner_resource.cpp" line="2354"/>
+        <location filename="../tools/designer/src/components/formeditor/qdesigner_resource.cpp" line="+277"/>
         <source>Loading qrc file</source>
         <translation>Chargement du fichier qrc</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/qdesigner_resource.cpp" line="2355"/>
+        <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>Le fichier qrc spécifié &lt;p&gt;&lt;b&gt;%1&lt;/b&gt;&lt;/p&gt;&lt;p&gt;n&apos;a pas pu être trouvé. Voulez-vous mettre à jour l&apos;emplacement du fichier?&lt;/p&gt;</translation>
-    </message>
-    <message>
-        <location filename="../tools/designer/src/components/formeditor/qdesigner_resource.cpp" line="2361"/>
+        <translation>Le fichier qrc spécifié &lt;p&gt;&lt;b&gt;%1&lt;/b&gt;&lt;/p&gt;&lt;p&gt;n&apos;a pas pu être trouvé. Voulez-vous mettre à jour l&apos;emplacement du fichier ?&lt;/p&gt;</translation>
+    </message>
+    <message>
+        <location line="+6"/>
         <source>New location for %1</source>
         <translation>Nouvel emplacement pour %1</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/qdesigner_resource.cpp" line="2362"/>
+        <location line="+1"/>
         <source>Resource files (*.qrc)</source>
         <translation>Fichier de ressource (*.qrc)</translation>
     </message>
@@ -6121,112 +6242,112 @@
 <context>
     <name>qdesigner_internal::QDesignerTaskMenu</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_taskmenu.cpp" line="230"/>
+        <location filename="../tools/designer/src/lib/shared/qdesigner_taskmenu.cpp" line="+68"/>
         <source>Change objectName...</source>
         <translation>Modifier objectName...</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_taskmenu.cpp" line="231"/>
+        <location line="+1"/>
         <source>Change toolTip...</source>
         <translation>Modifier toolTip...</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_taskmenu.cpp" line="232"/>
+        <location line="+1"/>
         <source>Change whatsThis...</source>
         <translation>Modifier whatsThis...</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_taskmenu.cpp" line="233"/>
+        <location line="+1"/>
         <source>Change styleSheet...</source>
         <translation>Modifier la feuille de style...</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_taskmenu.cpp" line="236"/>
+        <location line="+3"/>
         <source>Create Menu Bar</source>
         <translation>Créer une barre de menus</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_taskmenu.cpp" line="237"/>
+        <location line="+1"/>
         <source>Add Tool Bar</source>
         <translation>Ajouter une barre d&apos;outils</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_taskmenu.cpp" line="238"/>
+        <location line="+1"/>
         <source>Create Status Bar</source>
         <translation>Créer une barre de status</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_taskmenu.cpp" line="239"/>
+        <location line="+1"/>
         <source>Remove Status Bar</source>
         <translation>Supprimer la barre de status</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_taskmenu.cpp" line="240"/>
+        <location line="+1"/>
         <source>Change script...</source>
         <translation>Modifier le script...</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_taskmenu.cpp" line="241"/>
+        <location line="+1"/>
         <source>Change signals/slots...</source>
         <translation>Modifier signaux/slots...</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_taskmenu.cpp" line="242"/>
+        <location line="+1"/>
         <source>Go to slot...</source>
         <translation>Aller au slot...</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_taskmenu.cpp" line="245"/>
+        <location line="+3"/>
         <source>Size Constraints</source>
         <translation>Contrainte de taille</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_taskmenu.cpp" line="249"/>
+        <location line="+4"/>
         <source>Set Minimum Width</source>
         <translation>Définir la largeur minimum</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_taskmenu.cpp" line="253"/>
+        <location line="+4"/>
         <source>Set Minimum Height</source>
         <translation>Définir la hauteur minimum</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_taskmenu.cpp" line="257"/>
+        <location line="+4"/>
         <source>Set Minimum Size</source>
         <translation>Définir la taille minimum</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_taskmenu.cpp" line="263"/>
+        <location line="+6"/>
         <source>Set Maximum Width</source>
         <translation>Définir la largeur maximum</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_taskmenu.cpp" line="267"/>
+        <location line="+4"/>
         <source>Set Maximum Height</source>
         <translation>Définir la hauteur maximum</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_taskmenu.cpp" line="271"/>
+        <location line="+4"/>
         <source>Set Maximum Size</source>
         <translation>Définir la taille maximum</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_taskmenu.cpp" line="506"/>
+        <location line="+235"/>
         <source>Edit ToolTip</source>
         <translation>Éditer l&apos;info-bulle</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_taskmenu.cpp" line="511"/>
+        <location line="+5"/>
         <source>Edit WhatsThis</source>
         <translation>Éditer «Qu&apos;est-ce»</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_taskmenu.cpp" line="655"/>
+        <location line="+144"/>
         <source>no signals available</source>
         <translation>Aucun signal disponible</translation>
     </message>
     <message numerus="yes">
-        <location filename="../tools/designer/src/lib/shared/qdesigner_taskmenu.cpp" line="722"/>
+        <location line="+67"/>
         <source>Set size constraint on %n widget(s)</source>
         <translation>
             <numerusform>Définir les contraintes de dimensions sur %n widget</numerusform>
@@ -6237,40 +6358,40 @@
 <context>
     <name>qdesigner_internal::QDesignerWidgetBox</name>
     <message>
-        <location filename="../tools/designer/src/components/widgetbox/widgetboxtreewidget.cpp" line="349"/>
+        <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>Une erreur a été rencontrée à la ligne %1 de %2 : %3</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/widgetbox/widgetboxtreewidget.cpp" line="488"/>
+        <location line="+139"/>
         <source>Unexpected element &lt;%1&gt; encountered when parsing for &lt;widget&gt; or &lt;ui&gt;</source>
         <translation>L&apos;élément inattendu &lt;%1&gt; a été rencontré lors de l&apos;analyse des élements &lt;widget&gt; et &lt;ui&gt;</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/widgetbox/widgetboxtreewidget.cpp" line="507"/>
+        <location line="+19"/>
         <source>Unexpected end of file encountered when parsing widgets.</source>
         <translation>Fin de fichier inattendue lors de l&apos;analyse grammaticale des widgets.</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/widgetbox/widgetboxtreewidget.cpp" line="516"/>
+        <location line="+9"/>
         <source>A widget element could not be found.</source>
         <translation>Un élement de widget n&apos;a pas pu être trouvé.</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_widgetbox.cpp" line="123"/>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_widgetbox.cpp" line="136"/>
+        <location filename="../tools/designer/src/lib/shared/qdesigner_widgetbox.cpp" line="+123"/>
+        <location line="+13"/>
         <source>Unexpected element &lt;%1&gt;</source>
         <translation>Élément &lt;%1&gt; inattendu</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_widgetbox.cpp" line="143"/>
+        <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>Une erreur d&apos;analyse grammaticale est apparue à la ligne %1, colonne %2 du code XML spécifiant le widget %3 : %4
 %5</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_widgetbox.cpp" line="152"/>
+        <location line="+9"/>
         <source>The XML code specified for the widget %1 does not contain any widget elements.
 %2</source>
         <translation>Le code XML spécifié pour le widget %1 ne contient aucun élément widget.
@@ -6280,73 +6401,73 @@
 <context>
     <name>qdesigner_internal::QtGradientStopsController</name>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradientstopscontroller.cpp" line="173"/>
+        <location filename="../tools/shared/qtgradienteditor/qtgradientstopscontroller.cpp" line="+173"/>
         <source>H</source>
         <translation>T</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradientstopscontroller.cpp" line="174"/>
+        <location line="+1"/>
         <source>S</source>
         <translation>S</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradientstopscontroller.cpp" line="175"/>
+        <location line="+1"/>
         <source>V</source>
         <translation>V</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradientstopscontroller.cpp" line="181"/>
-        <location filename="../tools/shared/qtgradienteditor/qtgradientstopscontroller.cpp" line="185"/>
+        <location line="+6"/>
+        <location line="+4"/>
         <source>Hue</source>
         <translation>Teinte</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradientstopscontroller.cpp" line="182"/>
+        <location line="-3"/>
         <source>Sat</source>
         <translation>Sat</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradientstopscontroller.cpp" line="183"/>
+        <location line="+1"/>
         <source>Val</source>
         <translation>Val</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradientstopscontroller.cpp" line="186"/>
+        <location line="+3"/>
         <source>Saturation</source>
         <translation>Saturation</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradientstopscontroller.cpp" line="187"/>
+        <location line="+1"/>
         <source>Value</source>
         <translation>Valeur</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradientstopscontroller.cpp" line="209"/>
+        <location line="+22"/>
         <source>R</source>
         <translation>R</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradientstopscontroller.cpp" line="210"/>
+        <location line="+1"/>
         <source>G</source>
         <translation>V</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradientstopscontroller.cpp" line="211"/>
+        <location line="+1"/>
         <source>B</source>
         <translation>B</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradientstopscontroller.cpp" line="217"/>
+        <location line="+6"/>
         <source>Red</source>
         <translation>Rouge</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradientstopscontroller.cpp" line="218"/>
+        <location line="+1"/>
         <source>Green</source>
         <translation>Vert</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradientstopscontroller.cpp" line="219"/>
+        <location line="+1"/>
         <source>Blue</source>
         <translation>Bleu</translation>
     </message>
@@ -6354,27 +6475,27 @@
 <context>
     <name>qdesigner_internal::RichTextEditorDialog</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/richtexteditor.cpp" line="624"/>
+        <location filename="../tools/designer/src/lib/shared/richtexteditor.cpp" line="+436"/>
         <source>Edit text</source>
         <translation>Éditer le texte</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/richtexteditor.cpp" line="647"/>
+        <location line="+23"/>
         <source>Rich Text</source>
         <translation>Texte riche</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/richtexteditor.cpp" line="648"/>
+        <location line="+1"/>
         <source>Source</source>
         <translation>Source</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/richtexteditor.cpp" line="654"/>
+        <location line="+6"/>
         <source>&amp;OK</source>
         <translation>&amp;OK</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/richtexteditor.cpp" line="656"/>
+        <location line="+2"/>
         <source>&amp;Cancel</source>
         <translation>&amp;Annuler</translation>
     </message>
@@ -6382,72 +6503,72 @@
 <context>
     <name>qdesigner_internal::RichTextEditorToolBar</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/richtexteditor.cpp" line="354"/>
+        <location line="-302"/>
         <source>Bold</source>
         <translation>Gras</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/richtexteditor.cpp" line="355"/>
+        <location line="+1"/>
         <source>CTRL+B</source>
         <translation>CTRL+B</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/richtexteditor.cpp" line="360"/>
+        <location line="+5"/>
         <source>Italic</source>
         <translation>Italique</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/richtexteditor.cpp" line="361"/>
+        <location line="+1"/>
         <source>CTRL+I</source>
         <translation>CTRL+I</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/richtexteditor.cpp" line="366"/>
+        <location line="+5"/>
         <source>Underline</source>
         <translation>Souligné</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/richtexteditor.cpp" line="367"/>
+        <location line="+1"/>
         <source>CTRL+U</source>
         <translation>CTRL+U</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/richtexteditor.cpp" line="380"/>
+        <location line="+13"/>
         <source>Left Align</source>
         <translation>Aligner à gauche</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/richtexteditor.cpp" line="385"/>
+        <location line="+5"/>
         <source>Center</source>
         <translation>Centrer</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/richtexteditor.cpp" line="390"/>
+        <location line="+5"/>
         <source>Right Align</source>
         <translation>Aligner à droite</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/richtexteditor.cpp" line="395"/>
+        <location line="+5"/>
         <source>Justify</source>
         <translation>Justifier</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/richtexteditor.cpp" line="404"/>
+        <location line="+9"/>
         <source>Superscript</source>
         <translation>Exposant</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/richtexteditor.cpp" line="410"/>
+        <location line="+6"/>
         <source>Subscript</source>
         <translation>Indice</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/richtexteditor.cpp" line="419"/>
+        <location line="+9"/>
         <source>Insert &amp;Link</source>
         <translation>Insérer &amp;lien</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/richtexteditor.cpp" line="424"/>
+        <location line="+5"/>
         <source>Insert &amp;Image</source>
         <translation>Insérer &amp;image</translation>
     </message>
@@ -6455,17 +6576,17 @@
 <context>
     <name>qdesigner_internal::ScriptDialog</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/scriptdialog.cpp" line="66"/>
+        <location filename="../tools/designer/src/lib/shared/scriptdialog.cpp" line="+66"/>
         <source>Edit script</source>
         <translation>Éditer le script</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/scriptdialog.cpp" line="71"/>
+        <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>&lt;html&gt;Entrez un snippet de code Qt Script à exécuter lors du chargement du formulaire.&lt;br&gt;Le widget et ses enfants sont accessibles via les variables &lt;i&gt;widget&lt;/i&gt; et &lt;i&gt;childWidgets&lt;/i&gt;, respectivement.</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/scriptdialog.cpp" line="122"/>
+        <location line="+51"/>
         <source>Syntax error</source>
         <translation>Erreur de syntaxe</translation>
     </message>
@@ -6473,7 +6594,7 @@
 <context>
     <name>qdesigner_internal::ScriptErrorDialog</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/scripterrordialog.cpp" line="86"/>
+        <location filename="../tools/designer/src/lib/shared/scripterrordialog.cpp" line="+27"/>
         <source>Script errors</source>
         <translation>Erreurs de script</translation>
     </message>
@@ -6481,23 +6602,23 @@
 <context>
     <name>qdesigner_internal::SignalSlotDialog</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/signalslotdialog.cpp" line="401"/>
+        <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>Un slot existe déjà avec la signature &apos;%1&apos;.</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/signalslotdialog.cpp" line="406"/>
+        <location line="+5"/>
         <source>There is already a signal with the signature &apos;%1&apos;.</source>
         <translation>Un signal existe déjà avec la signature &apos;%1&apos;.</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/signalslotdialog.cpp" line="413"/>
+        <location line="+7"/>
         <source>%1 - Duplicate Signature</source>
         <translation>%1 - Signature double</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/signalslotdialog.cpp" line="434"/>
-        <location filename="../tools/designer/src/lib/shared/signalslotdialog.cpp" line="510"/>
+        <location line="+21"/>
+        <location line="+76"/>
         <source>Signals/Slots of %1</source>
         <translation>Signaux/slots de %1</translation>
     </message>
@@ -6505,12 +6626,12 @@
 <context>
     <name>qdesigner_internal::SignalSlotEditorPlugin</name>
     <message>
-        <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditor_plugin.cpp" line="72"/>
+        <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditor_plugin.cpp" line="+72"/>
         <source>Edit Signals/Slots</source>
         <translation>Éditer signaux/slots</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditor_plugin.cpp" line="74"/>
+        <location line="+2"/>
         <source>F4</source>
         <translation>F4</translation>
     </message>
@@ -6518,7 +6639,7 @@
 <context>
     <name>qdesigner_internal::SignalSlotEditorTool</name>
     <message>
-        <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditor_tool.cpp" line="58"/>
+        <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditor_tool.cpp" line="+58"/>
         <source>Edit Signals/Slots</source>
         <translation>Éditer signaux/slots</translation>
     </message>
@@ -6526,7 +6647,7 @@
 <context>
     <name>qdesigner_internal::StatusBarTaskMenu</name>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/toolbar_taskmenu.cpp" line="81"/>
+        <location filename="../tools/designer/src/components/taskmenu/toolbar_taskmenu.cpp" line="+81"/>
         <source>Remove</source>
         <translation>Supprimer</translation>
     </message>
@@ -6534,7 +6655,7 @@
 <context>
     <name>qdesigner_internal::StringListEditorButton</name>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/stringlisteditorbutton.cpp" line="56"/>
+        <location filename="../tools/designer/src/components/propertyeditor/stringlisteditorbutton.cpp" line="+56"/>
         <source>Change String List</source>
         <translation>Modifier la liste de chaîne de caractères</translation>
     </message>
@@ -6542,38 +6663,38 @@
 <context>
     <name>qdesigner_internal::StyleSheetEditorDialog</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/stylesheeteditor.cpp" line="90"/>
-        <location filename="../tools/designer/src/lib/shared/stylesheeteditor.cpp" line="370"/>
+        <location filename="../tools/designer/src/lib/shared/stylesheeteditor.cpp" line="+90"/>
+        <location line="+280"/>
         <source>Valid Style Sheet</source>
         <translation>Feuille de style valide</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/stylesheeteditor.cpp" line="92"/>
+        <location line="-278"/>
         <source>Add Resource...</source>
         <translation>Ajouter ressource...</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/stylesheeteditor.cpp" line="93"/>
+        <location line="+1"/>
         <source>Add Gradient...</source>
         <translation>Ajouter gradient...</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/stylesheeteditor.cpp" line="94"/>
+        <location line="+1"/>
         <source>Add Color...</source>
         <translation>Ajouter couleur...</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/stylesheeteditor.cpp" line="95"/>
+        <location line="+1"/>
         <source>Add Font...</source>
         <translation>Ajouter police...</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/stylesheeteditor.cpp" line="97"/>
+        <location line="+2"/>
         <source>Edit Style Sheet</source>
         <translation>Éditer feuille de style</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/stylesheeteditor.cpp" line="373"/>
+        <location line="+276"/>
         <source>Invalid Style Sheet</source>
         <translation>Feuille de style invalide</translation>
     </message>
@@ -6581,27 +6702,27 @@
 <context>
     <name>qdesigner_internal::TabOrderEditor</name>
     <message>
-        <location filename="../tools/designer/src/components/tabordereditor/tabordereditor.cpp" line="363"/>
+        <location filename="../tools/designer/src/components/tabordereditor/tabordereditor.cpp" line="+363"/>
         <source>Start from Here</source>
         <translation>Démarrer à partir d&apos;ici</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/tabordereditor/tabordereditor.cpp" line="366"/>
+        <location line="+3"/>
         <source>Restart</source>
         <translation>Redémarrer</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/tabordereditor/tabordereditor.cpp" line="368"/>
+        <location line="+2"/>
         <source>Tab Order List...</source>
         <translation>Ordre de la liste de tabulation...</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/tabordereditor/tabordereditor.cpp" line="412"/>
+        <location line="+44"/>
         <source>Tab Order List</source>
         <translation>Ordre de la liste de tabulation</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/tabordereditor/tabordereditor.cpp" line="413"/>
+        <location line="+1"/>
         <source>Tab Order</source>
         <translation>Ordre des tabulations</translation>
     </message>
@@ -6609,7 +6730,7 @@
 <context>
     <name>qdesigner_internal::TabOrderEditorPlugin</name>
     <message>
-        <location filename="../tools/designer/src/components/tabordereditor/tabordereditor_plugin.cpp" line="73"/>
+        <location filename="../tools/designer/src/components/tabordereditor/tabordereditor_plugin.cpp" line="+73"/>
         <source>Edit Tab Order</source>
         <translation>Éditer l&apos;ordre des tabulations</translation>
     </message>
@@ -6617,7 +6738,7 @@
 <context>
     <name>qdesigner_internal::TabOrderEditorTool</name>
     <message>
-        <location filename="../tools/designer/src/components/tabordereditor/tabordereditor_tool.cpp" line="57"/>
+        <location filename="../tools/designer/src/components/tabordereditor/tabordereditor_tool.cpp" line="+57"/>
         <source>Edit Tab Order</source>
         <translation>Éditer l&apos;ordre des tabulations</translation>
     </message>
@@ -6625,48 +6746,48 @@
 <context>
     <name>qdesigner_internal::TableWidgetEditor</name>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/tablewidgeteditor.ui" line="53"/>
+        <location filename="../tools/designer/src/components/taskmenu/tablewidgeteditor.ui"/>
         <source>Edit Table Widget</source>
         <translation>Éditer le widget de table</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/tablewidgeteditor.ui" line="63"/>
+        <location/>
         <source>&amp;Items</source>
         <translation>&amp;Éléments</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/tablewidgeteditor.ui" line="75"/>
+        <location/>
         <source>Table Items</source>
         <translation>Éléments de la table</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/tablewidgeteditor.ui" line="97"/>
-        <location filename="../tools/designer/src/components/taskmenu/tablewidgeteditor.cpp" line="218"/>
+        <location/>
+        <location filename="../tools/designer/src/components/taskmenu/tablewidgeteditor.cpp" line="+218"/>
         <source>Properties &amp;&gt;&gt;</source>
         <translation>Propriétés &amp;&gt;&gt;</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/tablewidgeteditor.cpp" line="67"/>
+        <location filename="../tools/designer/src/components/taskmenu/tablewidgeteditor.cpp" line="-151"/>
         <source>New Column</source>
         <translation>Nouvelle colonne</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/tablewidgeteditor.cpp" line="70"/>
+        <location line="+3"/>
         <source>New Row</source>
         <translation>Nouvelle ligne</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/tablewidgeteditor.cpp" line="78"/>
+        <location line="+8"/>
         <source>&amp;Columns</source>
         <translation>&amp;Colonne</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/tablewidgeteditor.cpp" line="79"/>
+        <location line="+1"/>
         <source>&amp;Rows</source>
         <translation>&amp;Lignes</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/tablewidgeteditor.cpp" line="216"/>
+        <location line="+137"/>
         <source>Properties &amp;&lt;&lt;</source>
         <translation>Propriétés &amp;&lt;&lt;</translation>
     </message>
@@ -6674,7 +6795,7 @@
 <context>
     <name>qdesigner_internal::TableWidgetTaskMenu</name>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/tablewidget_taskmenu.cpp" line="64"/>
+        <location filename="../tools/designer/src/components/taskmenu/tablewidget_taskmenu.cpp" line="+64"/>
         <source>Edit Items...</source>
         <translation>Éditer les éléments...</translation>
     </message>
@@ -6682,23 +6803,22 @@
 <context>
     <name>qdesigner_internal::TemplateOptionsWidget</name>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/templateoptionspage.ui" line="13"/>
+        <location filename="../tools/designer/src/components/formeditor/templateoptionspage.ui"/>
         <source>Form</source>
         <translation>Formulaire</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/templateoptionspage.ui" line="19"/>
+        <location/>
         <source>Additional Template Paths</source>
         <translation>Chemins de modèles additionnels</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/templateoptionspage.ui" line="28"/>
-        <location filename="../tools/designer/src/components/formeditor/templateoptionspage.ui" line="35"/>
+        <location/>
         <source>...</source>
         <translation>...</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/templateoptionspage.cpp" line="138"/>
+        <location filename="../tools/designer/src/components/formeditor/templateoptionspage.cpp" line="-18"/>
         <source>Pick a directory to save templates in</source>
         <translation>Choisir un répertoire où enregistrer  les modèles</translation>
     </message>
@@ -6706,22 +6826,22 @@
 <context>
     <name>qdesigner_internal::TextEditTaskMenu</name>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/textedit_taskmenu.cpp" line="58"/>
+        <location filename="../tools/designer/src/components/taskmenu/textedit_taskmenu.cpp" line="+58"/>
         <source>Edit HTML</source>
         <translation>Éditer le HTML</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/textedit_taskmenu.cpp" line="59"/>
+        <location line="+1"/>
         <source>Change HTML...</source>
         <translation>Modifier le HTML...</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/textedit_taskmenu.cpp" line="68"/>
+        <location line="+9"/>
         <source>Edit Text</source>
         <translation>Éditer le texte</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/textedit_taskmenu.cpp" line="69"/>
+        <location line="+1"/>
         <source>Change Plain Text...</source>
         <translation>Modifier le texte simple...</translation>
     </message>
@@ -6729,22 +6849,22 @@
 <context>
     <name>qdesigner_internal::TextEditor</name>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/designerpropertymanager.cpp" line="150"/>
+        <location filename="../tools/designer/src/components/propertyeditor/designerpropertymanager.cpp" line="-204"/>
         <source>Choose Resource...</source>
         <translation>Choisir ressource...</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/designerpropertymanager.cpp" line="151"/>
+        <location line="+1"/>
         <source>Choose File...</source>
         <translation>Choisir fichier...</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/designerpropertymanager.cpp" line="156"/>
+        <location line="+5"/>
         <source>...</source>
         <translation>...</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/designerpropertymanager.cpp" line="274"/>
+        <location line="+118"/>
         <source>Choose a File</source>
         <translation>Choisir un fichier</translation>
     </message>
@@ -6752,27 +6872,27 @@
 <context>
     <name>qdesigner_internal::ToolBarEventFilter</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_toolbar.cpp" line="148"/>
+        <location filename="../tools/designer/src/lib/shared/qdesigner_toolbar.cpp" line="+148"/>
         <source>Insert Separator before &apos;%1&apos;</source>
         <translation>Insérer un séparateur avant &apos;%1&apos;</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_toolbar.cpp" line="157"/>
+        <location line="+9"/>
         <source>Append Separator</source>
         <translation>Ajouter un séparateur à la fin</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_toolbar.cpp" line="169"/>
+        <location line="+12"/>
         <source>Remove action &apos;%1&apos;</source>
         <translation>Supprimer l&apos;action &apos;%1&apos;</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_toolbar.cpp" line="176"/>
+        <location line="+7"/>
         <source>Remove Toolbar &apos;%1&apos;</source>
         <translation>Supprimer la barre d&apos;outils &apos;%1&apos;</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_toolbar.cpp" line="234"/>
+        <location line="+58"/>
         <source>Insert Separator</source>
         <translation>Insérer un séparateur</translation>
     </message>
@@ -6780,125 +6900,125 @@
 <context>
     <name>qdesigner_internal::TreeWidgetEditor</name>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/treewidgeteditor.ui" line="53"/>
+        <location filename="../tools/designer/src/components/taskmenu/treewidgeteditor.ui"/>
         <source>Edit Tree Widget</source>
         <translation>Éditer un widget d&apos;arborescence</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/treewidgeteditor.ui" line="63"/>
+        <location/>
         <source>&amp;Items</source>
         <translation>&amp;Éléments</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/treewidgeteditor.ui" line="87"/>
+        <location/>
         <source>Tree Items</source>
         <translation>Élément de l&apos;arbre</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/treewidgeteditor.ui" line="91"/>
+        <location/>
         <source>1</source>
         <translation>1</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/treewidgeteditor.ui" line="101"/>
-        <location filename="../tools/designer/src/components/taskmenu/treewidgeteditor.cpp" line="199"/>
+        <location/>
+        <location filename="../tools/designer/src/components/taskmenu/treewidgeteditor.cpp" line="+199"/>
         <source>New Item</source>
         <translation>Nouvel élément</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/treewidgeteditor.ui" line="104"/>
+        <location/>
         <source>&amp;New</source>
         <translation>&amp;Nouveau</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/treewidgeteditor.ui" line="111"/>
-        <location filename="../tools/designer/src/components/taskmenu/treewidgeteditor.cpp" line="218"/>
+        <location/>
+        <location filename="../tools/designer/src/components/taskmenu/treewidgeteditor.cpp" line="+19"/>
         <source>New Subitem</source>
         <translation>Nouveau sous-élément</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/treewidgeteditor.ui" line="114"/>
+        <location/>
         <source>New &amp;Subitem</source>
         <translation>Nouveau &amp;sous-élément</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/treewidgeteditor.ui" line="121"/>
+        <location/>
         <source>Delete Item</source>
         <translation>Supprimer l&apos;élément</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/treewidgeteditor.ui" line="124"/>
+        <location/>
         <source>&amp;Delete</source>
         <translation>&amp;Supprimer</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/treewidgeteditor.ui" line="144"/>
+        <location/>
         <source>Move Item Left (before Parent Item)</source>
         <translation>Déplacer l&apos;élément à gauche (avant l&apos;élément parent)</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/treewidgeteditor.ui" line="147"/>
+        <location/>
         <source>L</source>
         <translation>G</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/treewidgeteditor.ui" line="154"/>
+        <location/>
         <source>Move Item Right (as a First Subitem of the Next Sibling Item)</source>
         <translation>Déplacer l&apos;élément sur la droite (comme un premier sous-élément de l&apos;élément à droite)</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/treewidgeteditor.ui" line="157"/>
+        <location/>
         <source>R</source>
         <translation>D</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/treewidgeteditor.ui" line="164"/>
+        <location/>
         <source>Move Item Up</source>
         <translation>Déplacer l&apos;élément vers le haut</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/treewidgeteditor.ui" line="167"/>
+        <location/>
         <source>U</source>
         <translation>H</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/treewidgeteditor.ui" line="174"/>
+        <location/>
         <source>Move Item Down</source>
         <translation>Déplacer l&apos;élément vers le bas</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/treewidgeteditor.ui" line="177"/>
+        <location/>
         <source>D</source>
         <translation>B</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/treewidgeteditor.ui" line="197"/>
-        <location filename="../tools/designer/src/components/taskmenu/treewidgeteditor.cpp" line="395"/>
+        <location/>
+        <location filename="../tools/designer/src/components/taskmenu/treewidgeteditor.cpp" line="+177"/>
         <source>Properties &amp;&gt;&gt;</source>
         <translation>Propriétés &amp;&gt;&gt;</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/treewidgeteditor.cpp" line="68"/>
+        <location filename="../tools/designer/src/components/taskmenu/treewidgeteditor.cpp" line="-327"/>
         <source>New Column</source>
         <translation>Nouvelle colonne</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/treewidgeteditor.cpp" line="76"/>
+        <location line="+8"/>
         <source>&amp;Columns</source>
         <translation>&amp;Colonnes</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/treewidgeteditor.cpp" line="145"/>
+        <location line="+69"/>
         <source>Per column properties</source>
         <translation>Propriétés par colonnes</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/treewidgeteditor.cpp" line="146"/>
+        <location line="+1"/>
         <source>Common properties</source>
         <translation>Propritétés de colonnes</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/treewidgeteditor.cpp" line="393"/>
+        <location line="+247"/>
         <source>Properties &amp;&lt;&lt;</source>
         <translation>Propriétés &amp;&lt;&lt;</translation>
     </message>
@@ -6906,7 +7026,7 @@
 <context>
     <name>qdesigner_internal::TreeWidgetTaskMenu</name>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/treewidget_taskmenu.cpp" line="63"/>
+        <location filename="../tools/designer/src/components/taskmenu/treewidget_taskmenu.cpp" line="+63"/>
         <source>Edit Items...</source>
         <translation>Éditer les éléments...</translation>
     </message>
@@ -6914,7 +7034,7 @@
 <context>
     <name>qdesigner_internal::WidgetBox</name>
     <message>
-        <location filename="../tools/designer/src/components/widgetbox/widgetbox_dnditem.cpp" line="115"/>
+        <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>Avertissement : La création du widget a échoué dans la boîte de widget. Ceci peut être causé par un code XML invalide d&apos;un widget personnalisé.</translation>
     </message>
@@ -6922,42 +7042,42 @@
 <context>
     <name>qdesigner_internal::WidgetBoxTreeWidget</name>
     <message>
-        <location filename="../tools/designer/src/components/widgetbox/widgetboxtreewidget.cpp" line="248"/>
+        <location filename="../tools/designer/src/components/widgetbox/widgetboxtreewidget.cpp" line="-268"/>
         <source>Scratchpad</source>
         <translation>bloc-notes</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/widgetbox/widgetboxtreewidget.cpp" line="618"/>
+        <location line="+370"/>
         <source>Custom Widgets</source>
         <translation>Widgets personnalisés</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/widgetbox/widgetboxtreewidget.cpp" line="881"/>
+        <location line="+263"/>
         <source>Expand all</source>
         <translation>Tout étendre</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/widgetbox/widgetboxtreewidget.cpp" line="882"/>
+        <location line="+1"/>
         <source>Collapse all</source>
         <translation>Tout replier</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/widgetbox/widgetboxtreewidget.cpp" line="885"/>
+        <location line="+3"/>
         <source>List View</source>
         <translation>Vue de liste</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/widgetbox/widgetboxtreewidget.cpp" line="886"/>
+        <location line="+1"/>
         <source>Icon View</source>
         <translation>Vue en icônes</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/widgetbox/widgetboxtreewidget.cpp" line="901"/>
+        <location line="+15"/>
         <source>Remove</source>
         <translation>Supprimer</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/widgetbox/widgetboxtreewidget.cpp" line="903"/>
+        <location line="+2"/>
         <source>Edit name</source>
         <translation>Éditer le nom</translation>
     </message>
@@ -6965,7 +7085,7 @@
 <context>
     <name>qdesigner_internal::WidgetDataBase</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/widgetdatabase.cpp" line="403"/>
+        <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>Un plugin de widgets personnalisés dont un nom de classe (%1) correspond à une classe existante à été trouvé.</translation>
     </message>
@@ -6973,7 +7093,7 @@
 <context>
     <name>qdesigner_internal::WidgetEditorTool</name>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/tool_widgeteditor.cpp" line="67"/>
+        <location filename="../tools/designer/src/components/formeditor/tool_widgeteditor.cpp" line="+67"/>
         <source>Edit Widgets</source>
         <translation>Éditer les widgets</translation>
     </message>
@@ -6981,34 +7101,34 @@
 <context>
     <name>qdesigner_internal::WidgetFactory</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/widgetfactory.cpp" line="263"/>
+        <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>La fabrique (factory) de widget personnalisé, enregistrée pour les widgets de classe %1, a retourné 0.</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/widgetfactory.cpp" line="307"/>
+        <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>Une discordance de nom de classe est apparue lors de la création d&apos;un nouveau widget à l&apos;aide de la fabrique de widget personnalisé enregistrée pour la classe %1. La fabrique a retourné un widget de classe %2.</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/widgetfactory.cpp" line="406"/>
+        <location line="+99"/>
         <source>%1 Widget</source>
         <translation>%1 Widget</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/widgetfactory.cpp" line="496"/>
+        <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>Le conteneur &apos;%1&apos; de la page courante (%2) n&apos;a pas pu être déterminé lors de la création du layout. Ceci indique une incohérence dans le fichier ui, probablement un layout étant construit sur un widget conteneur.</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/widgetfactory.cpp" line="549"/>
+        <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>Temptative d&apos;ajout d&apos;un layout sur le widget &apos;%1&apos; (%2) qui a déjà un layout non pris en charge de type %3.
 Ceci indique une inconsistance dans le fichier ui.</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/widgetfactory.cpp" line="760"/>
+        <location line="+211"/>
         <source>Cannot create style &apos;%1&apos;.</source>
         <translation>Impossible de créer le style &apos;%1&apos;.</translation>
     </message>
@@ -7016,12 +7136,12 @@
 <context>
     <name>qdesigner_internal::WizardContainerWidgetTaskMenu</name>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/containerwidget_taskmenu.cpp" line="232"/>
+        <location filename="../tools/designer/src/components/taskmenu/containerwidget_taskmenu.cpp" line="-49"/>
         <source>Next</source>
         <translation>Suivant</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/containerwidget_taskmenu.cpp" line="233"/>
+        <location line="+1"/>
         <source>Back</source>
         <translation>Précédent</translation>
     </message>
@@ -7029,7 +7149,7 @@
 <context>
     <name>qdesigner_internal::ZoomMenu</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/zoomwidget.cpp" line="84"/>
+        <location filename="../tools/designer/src/lib/shared/zoomwidget.cpp" line="+84"/>
         <source>%1 %</source>
         <extracomment>Zoom factor</extracomment>
         <translation>%1 %</translation>
@@ -7038,7 +7158,7 @@
 <context>
     <name>qdesigner_internal::ZoomablePreviewDeviceSkin</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/previewmanager.cpp" line="420"/>
+        <location filename="../tools/designer/src/lib/shared/previewmanager.cpp" line="-270"/>
         <source>&amp;Zoom</source>
         <translation>&amp;Zoom</translation>
     </message>
--- a/translations/designer_ja.ts	Fri Sep 17 08:34:18 2010 +0300
+++ b/translations/designer_ja.ts	Mon Oct 04 01:19:32 2010 +0300
@@ -2,1199 +2,800 @@
 <!DOCTYPE TS>
 <TS version="2.0" language="ja_JP">
 <context>
-    <name></name>
-    <message>
-        <location filename="../tools/designer/src/components/propertyeditor/previewframe.cpp" line="+73"/>
-        <source>The moose in the noose
-ate the goose who was loose.</source>
-        <translation type="unfinished">坊主が屏風に上手に坊主の絵を描いた。</translation>
-    </message>
-    <message>
-        <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditorwindow.cpp" line="+647"/>
-        <source>&lt;object&gt;</source>
-        <translation type="unfinished">&lt;オブジェクト&gt;</translation>
-    </message>
-    <message>
-        <location line="+18"/>
-        <source>&lt;signal&gt;</source>
-        <translation type="unfinished">&lt;シグナル&gt;</translation>
-    </message>
-    <message>
-        <location line="+0"/>
-        <source>&lt;slot&gt;</source>
-        <translation type="unfinished">&lt;スロット&gt;</translation>
-    </message>
-</context>
-<context>
-    <name>@default</name>
-    <message>
-        <source>The moose in the noose
-ate the goose who was loose.</source>
-        <translation type="obsolete">坊主が屏風に上手に坊主の絵を描いた。</translation>
-    </message>
-    <message>
-        <source>&lt;object&gt;</source>
-        <translation type="obsolete">&lt;オブジェクト&gt;</translation>
-    </message>
-    <message>
-        <source>&lt;signal&gt;</source>
-        <translation type="obsolete">&lt;シグナル&gt;</translation>
-    </message>
-    <message>
-        <source>&lt;slot&gt;</source>
-        <translation type="obsolete">&lt;スロット&gt;</translation>
-    </message>
-    <message>
-        <source>Solid</source>
-        <translation type="obsolete">塗りつぶし</translation>
-    </message>
-    <message>
-        <source>Horizontal</source>
-        <translation type="obsolete">横</translation>
-    </message>
-    <message>
-        <source>Vertical</source>
-        <translation type="obsolete">縦</translation>
-    </message>
-    <message>
-        <source>Cross</source>
-        <translation type="obsolete">格子</translation>
-    </message>
-    <message>
-        <source>Texture</source>
-        <translation type="obsolete">テクスチャ</translation>
-    </message>
-    <message>
-        <source>Dense 1</source>
-        <translation type="obsolete">密度 1</translation>
-    </message>
-    <message>
-        <source>Dense 2</source>
-        <translation type="obsolete">密度 2</translation>
-    </message>
-    <message>
-        <source>Dense 3</source>
-        <translation type="obsolete">密度 3</translation>
-    </message>
-    <message>
-        <source>Dense 4</source>
-        <translation type="obsolete">密度 4</translation>
-    </message>
-    <message>
-        <source>Dense 5</source>
-        <translation type="obsolete">密度 5</translation>
-    </message>
-    <message>
-        <source>Dense 6</source>
-        <translation type="obsolete">密度 6</translation>
-    </message>
-    <message>
-        <source>Dense 7</source>
-        <translation type="obsolete">密度 7</translation>
-    </message>
-</context>
-<context>
     <name>AbstractFindWidget</name>
     <message>
-        <location filename="../tools/shared/findwidget/abstractfindwidget.cpp" line="+127"/>
         <source>&amp;Previous</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+8"/>
+        <translation>前を検索(&amp;P)</translation>
+    </message>
+    <message>
         <source>&amp;Next</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+24"/>
+        <translation>次を検索(&amp;N)</translation>
+    </message>
+    <message>
         <source>&amp;Case sensitive</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+8"/>
+        <translation>大文字/小文字を区別する(&amp;C)</translation>
+    </message>
+    <message>
         <source>Whole &amp;words</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+12"/>
+        <translation>単語単位で検索する(&amp;W)</translation>
+    </message>
+    <message>
         <source>&lt;img src=&quot;:/trolltech/shared/images/wrap.png&quot;&gt;&amp;nbsp;Search wrapped</source>
-        <translation type="unfinished"></translation>
+        <translation>&lt;img src=&quot;:/trolltech/shared/images/wrap.png&quot;&gt;&amp;nbsp;先頭から再び検索します</translation>
     </message>
 </context>
 <context>
     <name>AddLinkDialog</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/addlinkdialog.ui"/>
         <source>Insert Link</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location/>
+        <translation>リンクを挿入</translation>
+    </message>
+    <message>
         <source>Title:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location/>
+        <translation>タイトル:</translation>
+    </message>
+    <message>
         <source>URL:</source>
-        <translation type="unfinished"></translation>
+        <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 type="unfinished"></translation>
+        <translation>フォントの追加</translation>
     </message>
 </context>
 <context>
     <name>AppFontManager</name>
     <message>
-        <location line="-267"/>
         <source>&apos;%1&apos; is not a file.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+4"/>
+        <translation>&apos;%1&apos; はファイルではありません。</translation>
+    </message>
+    <message>
         <source>The font file &apos;%1&apos; does not have read permissions.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+8"/>
+        <translation>フォントファイル &apos;%1&apos; を読む権限がありません。</translation>
+    </message>
+    <message>
         <source>The font file &apos;%1&apos; is already loaded.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+7"/>
+        <translation>フォントファイル &apos;%1&apos; は既にロードされています。</translation>
+    </message>
+    <message>
         <source>The font file &apos;%1&apos; could not be loaded.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+17"/>
+        <translation>フォントファイル &apos;%1&apos; をロードできませんでした。</translation>
+    </message>
+    <message>
         <source>&apos;%1&apos; is not a valid font id.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+11"/>
+        <translation>&apos;%1&apos; は無効なフォント ID です。</translation>
+    </message>
+    <message>
         <source>There is no loaded font matching the id &apos;%1&apos;.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+15"/>
+        <translation>フォント ID &apos;%1&apos; に合致するフォントはロードされていません。</translation>
+    </message>
+    <message>
         <source>The font &apos;%1&apos; (%2) could not be unloaded.</source>
-        <translation type="unfinished"></translation>
+        <translation>フォント &apos;%1&apos; (%2) をアンロードできませんでした。</translation>
     </message>
 </context>
 <context>
     <name>AppFontWidget</name>
     <message>
-        <location line="+26"/>
         <source>Fonts</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+58"/>
+        <translation>フォント</translation>
+    </message>
+    <message>
         <source>Add font files</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+5"/>
+        <translation>フォントファイルを追加</translation>
+    </message>
+    <message>
         <source>Remove current font file</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+4"/>
+        <translation>現在のフォントファイルを削除</translation>
+    </message>
+    <message>
         <source>Remove all font files</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+19"/>
+        <translation>すべてのフォントファイルを削除</translation>
+    </message>
+    <message>
         <source>Add Font Files</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>フォントファイルを追加</translation>
+    </message>
+    <message>
         <source>Font files (*.ttf)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+13"/>
+        <translation>フォントファイル (*.ttf)</translation>
+    </message>
+    <message>
         <source>Error Adding Fonts</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+24"/>
+        <translation>フォントの追加エラー</translation>
+    </message>
+    <message>
         <source>Error Removing Fonts</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+22"/>
+        <translation>フォントの削除エラー</translation>
+    </message>
+    <message>
         <source>Remove Fonts</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+0"/>
+        <translation>フォントを削除</translation>
+    </message>
+    <message>
         <source>Would you like to remove all fonts?</source>
-        <translation type="unfinished"></translation>
+        <translation>全てのフォントを削除しますか?</translation>
     </message>
 </context>
 <context>
     <name>AppearanceOptionsWidget</name>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_appearanceoptions.ui"/>
         <source>Form</source>
-        <translation type="unfinished">フォーム</translation>
-    </message>
-    <message>
-        <location/>
+        <translation>フォーム</translation>
+    </message>
+    <message>
         <source>User Interface Mode</source>
-        <translation type="unfinished">ユーザインターフェースモード</translation>
+        <translation>ユーザインターフェースモード</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 type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+39"/>
+        <translation>リクエストを送信できません: Assistant が応答しません。</translation>
+    </message>
+    <message>
         <source>The binary &apos;%1&apos; does not exist.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+9"/>
+        <translation>バイナリファイル &apos;%1&apos; が存在しません。</translation>
+    </message>
+    <message>
         <source>Unable to launch assistant (%1).</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>BrushManagerProxy</name>
-    <message>
-        <location filename="../tools/designer/src/components/formeditor/brushmanagerproxy.cpp" line="+221"/>
-        <source>The element &apos;%1&apos; is missing the required attribute &apos;%2&apos;.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+11"/>
-        <source>Empty brush name encountered.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+10"/>
-        <source>An unexpected element &apos;%1&apos; was encountered.</source>
-        <translation type="unfinished"></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 type="unfinished"></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 type="unfinished"></translation>
+        <translation>assistant (%1) を起動できませんでした。</translation>
     </message>
 </context>
 <context>
     <name>BrushPropertyManager</name>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/brushpropertymanager.cpp" line="+52"/>
         <source>No brush</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>透明</translation>
+    </message>
+    <message>
         <source>Solid</source>
-        <translation type="unfinished">塗りつぶし</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>塗りつぶし</translation>
+    </message>
+    <message>
         <source>Dense 1</source>
-        <translation type="unfinished">密度 1</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>密度 1</translation>
+    </message>
+    <message>
         <source>Dense 2</source>
-        <translation type="unfinished">密度 2</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>密度 2</translation>
+    </message>
+    <message>
         <source>Dense 3</source>
-        <translation type="unfinished">密度 3</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>密度 3</translation>
+    </message>
+    <message>
         <source>Dense 4</source>
-        <translation type="unfinished">密度 4</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>密度 4</translation>
+    </message>
+    <message>
         <source>Dense 5</source>
-        <translation type="unfinished">密度 5</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>密度 5</translation>
+    </message>
+    <message>
         <source>Dense 6</source>
-        <translation type="unfinished">密度 6</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>密度 6</translation>
+    </message>
+    <message>
         <source>Dense 7</source>
-        <translation type="unfinished">密度 7</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>密度 7</translation>
+    </message>
+    <message>
         <source>Horizontal</source>
-        <translation type="unfinished">横</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>横線</translation>
+    </message>
+    <message>
         <source>Vertical</source>
-        <translation type="unfinished">縦</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>縦線</translation>
+    </message>
+    <message>
         <source>Cross</source>
-        <translation type="unfinished">格子</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>格子</translation>
+    </message>
+    <message>
         <source>Backward diagonal</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>斜線(右上がり)</translation>
+    </message>
+    <message>
         <source>Forward diagonal</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>斜線(右下がり)</translation>
+    </message>
+    <message>
         <source>Crossing diagonal</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Texture</source>
-        <translation type="obsolete">テクスチャ</translation>
-    </message>
-    <message>
-        <location line="+83"/>
+        <translation>交差する斜線</translation>
+    </message>
+    <message>
         <source>Style</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+11"/>
+        <translation>スタイル</translation>
+    </message>
+    <message>
         <source>Color</source>
-        <translation type="unfinished">色</translation>
-    </message>
-    <message>
-        <location line="+105"/>
+        <translation>色</translation>
+    </message>
+    <message>
         <source>[%1, %2]</source>
-        <translation type="unfinished"></translation>
+        <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>シグナルを変更</translation>
     </message>
     <message>
-        <location line="-256"/>
-        <location line="+268"/>
         <source>Change slot</source>
         <translation>スロットを変更</translation>
     </message>
     <message>
-        <location line="-220"/>
         <source>Change signal-slot connection</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+234"/>
+        <translation>シグナル/スロット接続を変更</translation>
+    </message>
+    <message>
         <source>Change sender</source>
         <translation>発信者を変更</translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>Change receiver</source>
         <translation>受信者を変更</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/connectionedit.cpp" line="+143"/>
         <source>Add connection</source>
         <translation>シグナル/スロット接続を追加</translation>
     </message>
     <message>
-        <location line="+54"/>
         <source>Adjust connection</source>
         <translation>シグナル/スロット接続を調整</translation>
     </message>
     <message>
-        <location line="+19"/>
         <source>Delete connections</source>
         <translation>シグナル/スロット接続を削除</translation>
     </message>
     <message>
-        <location line="+58"/>
         <source>Change source</source>
         <translation>ソースを変更</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Change target</source>
         <translation>ターゲットを変更</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; を挿入</translation>
     </message>
     <message>
-        <location line="+133"/>
         <source>Change Z-order of &apos;%1&apos;</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+34"/>
+        <translation>&apos;%1&apos; の Z オーダーを変更</translation>
+    </message>
+    <message>
         <source>Raise &apos;%1&apos;</source>
         <translation>&apos;%1&apos; を前面に移動</translation>
     </message>
     <message>
-        <location line="+33"/>
         <source>Lower &apos;%1&apos;</source>
         <translation>&apos;%1&apos; を背面に移動</translation>
     </message>
     <message>
-        <location line="+113"/>
         <source>Delete &apos;%1&apos;</source>
         <translation>&apos;%1&apos; を削除</translation>
     </message>
     <message>
-        <location line="+119"/>
         <source>Reparent &apos;%1&apos;</source>
         <translation>&apos;%1&apos; の親をつけかえ</translation>
     </message>
     <message>
-        <location line="+53"/>
         <source>Promote to custom widget</source>
         <translation>カスタムウィジェットに格上げ</translation>
     </message>
     <message>
-        <location line="+42"/>
         <source>Demote from custom widget</source>
         <translation>カスタムウィジェットから格下げ</translation>
     </message>
     <message>
-        <location line="+79"/>
         <source>Lay out using grid</source>
         <translation>格子状にレイアウト</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Lay out vertically</source>
-        <translation>垂直にレイアウト</translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>垂直に並べる</translation>
+    </message>
+    <message>
         <source>Lay out horizontally</source>
-        <translation>水平にレイアウト</translation>
-    </message>
-    <message>
-        <location line="+41"/>
+        <translation>水平に並べる</translation>
+    </message>
+    <message>
         <source>Break layout</source>
         <translation>レイアウトを破棄する</translation>
     </message>
     <message>
-        <location line="+105"/>
         <source>Simplify Grid Layout</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+135"/>
-        <location line="+235"/>
-        <location line="+78"/>
+        <translation>格子状のレイアウトを正規化する</translation>
+    </message>
+    <message>
         <source>Move Page</source>
         <translation>ページを移動</translation>
     </message>
     <message>
-        <location line="-279"/>
-        <location line="+123"/>
-        <location line="+188"/>
-        <location line="+666"/>
         <source>Delete Page</source>
         <translation>ページを削除</translation>
     </message>
     <message>
-        <location line="-939"/>
-        <location line="+123"/>
         <source>Page</source>
         <translation>ページ</translation>
     </message>
     <message>
-        <location line="-121"/>
-        <location line="+309"/>
-        <location line="+672"/>
         <source>page</source>
         <translation>ページ</translation>
     </message>
     <message>
-        <location line="-978"/>
-        <location line="+123"/>
-        <location line="+186"/>
-        <location line="+667"/>
         <source>Insert Page</source>
         <translation>ページを挿入</translation>
     </message>
     <message>
-        <location line="-856"/>
-        <source>tab</source>
-        <translation>タブ</translation>
-    </message>
-    <message>
-        <location line="+209"/>
         <source>Change Tab order</source>
         <translation>タブ順を変更</translation>
     </message>
     <message>
-        <location line="+28"/>
         <source>Create Menu Bar</source>
         <translation>メニューバーを作成</translation>
     </message>
     <message>
-        <location line="+44"/>
         <source>Delete Menu Bar</source>
         <translation>メニューバーを削除</translation>
     </message>
     <message>
-        <location line="+47"/>
         <source>Create Status Bar</source>
         <translation>ステータスバーを作成</translation>
     </message>
     <message>
-        <location line="+42"/>
         <source>Delete Status Bar</source>
         <translation>ステータスバーを削除</translation>
     </message>
     <message>
-        <location line="+45"/>
         <source>Add Tool Bar</source>
         <translation>ツールバーを追加</translation>
     </message>
     <message>
-        <source>Set Dock Window Widget</source>
-        <translation type="obsolete">ドックウィンドウウィジェットの設定</translation>
-    </message>
-    <message>
-        <location line="+59"/>
         <source>Add Dock Window</source>
         <translation>ドックウィンドウを追加</translation>
     </message>
     <message>
-        <location line="+53"/>
         <source>Adjust Size of &apos;%1&apos;</source>
         <translation>&apos;%1&apos; のサイズを調整</translation>
     </message>
     <message>
-        <location line="+57"/>
         <source>Change Form Layout Item Geometry</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+95"/>
+        <translation>フォームレイアウトのアイテムの座標を変更</translation>
+    </message>
+    <message>
         <source>Change Layout Item Geometry</source>
-        <translation>レイアウトアイテムの座標を変更</translation>
-    </message>
-    <message>
-        <source>Insert Row</source>
-        <translation type="obsolete">行を挿入</translation>
-    </message>
-    <message>
-        <location line="+576"/>
+        <translation>レイアウトのアイテムの座標を変更</translation>
+    </message>
+    <message>
         <source>Change Table Contents</source>
         <translation>テーブルの内容を変更</translation>
     </message>
     <message>
-        <location line="+107"/>
         <source>Change Tree Contents</source>
         <translation>ツリーの内容を変更</translation>
     </message>
     <message>
-        <location line="+74"/>
-        <location line="+146"/>
         <source>Add action</source>
         <translation>アクションを追加</translation>
     </message>
     <message>
-        <location line="-120"/>
-        <location line="+126"/>
         <source>Remove action</source>
-        <translation>アクションを消去</translation>
-    </message>
-    <message>
-        <location line="+53"/>
+        <translation>アクションを削除</translation>
+    </message>
+    <message>
         <source>Add menu</source>
         <translation>メニューを追加</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Remove menu</source>
-        <translation>メニューを消去</translation>
-    </message>
-    <message>
-        <location line="+6"/>
+        <translation>メニューを削除</translation>
+    </message>
+    <message>
         <source>Create submenu</source>
         <translation>サブメニューを作成</translation>
     </message>
     <message>
-        <location line="+31"/>
         <source>Delete Tool Bar</source>
         <translation>ツールバーを削除</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_menu.cpp" line="+1161"/>
         <source>Set action text</source>
         <translation>アクションのテキストを設定</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Insert action</source>
         <translation>アクションを挿入</translation>
     </message>
     <message>
-        <location line="+89"/>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_menubar.cpp" line="+891"/>
         <source>Move action</source>
         <translation>アクションを移動</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_menubar.cpp" line="-404"/>
         <source>Change Title</source>
         <translation>タイトルを変更</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Insert Menu</source>
         <translation>メニューを挿入</translation>
     </message>
     <message>
-        <source>changed &apos;%1&apos; of &apos;%2&apos;</source>
-        <translation type="obsolete">&apos;%2&apos; の &apos;%1&apos; を変更</translation>
-    </message>
-    <message numerus="yes">
-        <source>changed &apos;%1&apos; of %2 objects</source>
-        <translation type="obsolete">
-            <numerusform>&apos;%2&apos; オブジェクトの &apos;%1&apos; を変更</numerusform>
-        </translation>
-    </message>
-    <message>
-        <source>reset &apos;%1&apos; of &apos;%2&apos;</source>
-        <translation type="obsolete">&apos;%2&apos; の &apos;%1&apos; をリセット</translation>
-    </message>
-    <message numerus="yes">
-        <source>reset &apos;%1&apos; of %2 objects</source>
-        <translation type="obsolete">
-            <numerusform>&apos;%2&apos; オブジェクトの &apos;%1&apos; をリセット</numerusform>
-        </translation>
-    </message>
-    <message>
-        <source>add dynamic property &apos;%1&apos; to &apos;%2&apos;</source>
-        <translation type="obsolete">ダイナミックプロパティ &apos;%1&apos; を &apos;%2&apos; に追加</translation>
-    </message>
-    <message numerus="yes">
-        <source>add dynamic property &apos;%1&apos; to %2 objects</source>
-        <translation type="obsolete">
-            <numerusform>ダイナミックプロパティ &apos;%1&apos; を &apos;%2&apos; オブジェクトに追加</numerusform>
-        </translation>
-    </message>
-    <message>
-        <source>remove dynamic property &apos;%1&apos; from &apos;%2&apos;</source>
-        <translation type="obsolete">ダイナミックプロパティ &apos;%1&apos; を &apos;%2&apos; から削除</translation>
-    </message>
-    <message numerus="yes">
-        <source>remove dynamic property &apos;%1&apos; from %2 objects</source>
-        <translation type="obsolete">
-            <numerusform>ダイナミックプロパティ &apos;%1&apos; を &apos;%2&apos; オブジェクトから削除</numerusform>
-        </translation>
-    </message>
-    <message>
-        <source>changed comment of &apos;%1&apos; of &apos;%2&apos;</source>
-        <translation type="obsolete">&apos;%2&apos; の &apos;%1&apos; のコメントを変更</translation>
+        <source>Change signals/slots</source>
+        <translation>シグナル/スロットを変更</translation>
+    </message>
+    <message>
+        <source>Delete Subwindow</source>
+        <translation>サブウィンドウを削除</translation>
+    </message>
+    <message>
+        <source>Insert Subwindow</source>
+        <translation>サブウィンドウを挿入</translation>
+    </message>
+    <message>
+        <source>subwindow</source>
+        <translation>サブウィンドウ</translation>
+    </message>
+    <message>
+        <source>Subwindow</source>
+        <translation>サブウィンドウ</translation>
+    </message>
+    <message>
+        <source>Create button group</source>
+        <translation>ボタングループを作成</translation>
+    </message>
+    <message>
+        <source>Break button group</source>
+        <translation>ボタングループを破棄する</translation>
+    </message>
+    <message>
+        <source>Break button group &apos;%1&apos;</source>
+        <translation>ボタングループ &apos;%1&apos; を破棄する</translation>
+    </message>
+    <message>
+        <source>Add buttons to group</source>
+        <translation>グループにボタンを追加</translation>
+    </message>
+    <message>
+        <source>Add &apos;%1&apos; to &apos;%2&apos;</source>
+        <extracomment>Command description for adding buttons to a QButtonGroup</extracomment>
+        <translation>&apos;%2&apos; に &apos;%1&apos; を追加</translation>
+    </message>
+    <message>
+        <source>Remove buttons from group</source>
+        <translation>グループからボタンを削除</translation>
+    </message>
+    <message>
+        <source>Remove &apos;%1&apos; from &apos;%2&apos;</source>
+        <extracomment>Command description for removing buttons from a QButtonGroup</extracomment>
+        <translation>&apos;%2&apos; から &apos;%1&apos; を削除</translation>
+    </message>
+    <message>
+        <source>Morph %1/&apos;%2&apos; into %3</source>
+        <extracomment>MorphWidgetCommand description</extracomment>
+        <translation>%1/&apos;%2&apos; を %3 へ変更</translation>
+    </message>
+    <message>
+        <source>Change layout of &apos;%1&apos; from %2 to %3</source>
+        <translation>&apos;%1&apos; のレイアウトを %2 から %3 に変更</translation>
+    </message>
+    <message>
+        <source>Change script</source>
+        <translation>スクリプトを変更</translation>
+    </message>
+    <message>
+        <source>Changed &apos;%1&apos; of &apos;%2&apos;</source>
+        <translation>&apos;%2&apos; の &apos;%1&apos; を変更しました</translation>
     </message>
     <message numerus="yes">
-        <source>changed comment of &apos;%1&apos; of %2 objects</source>
-        <translation type="obsolete">
-            <numerusform>&apos;%2&apos; オブジェクトの &apos;%1&apos; のコメントを変更</numerusform>
+        <source>Changed &apos;%1&apos; of %n objects</source>
+        <translation>
+            <numerusform>%n 個のオブジェクトの &apos;%1&apos; を変更</numerusform>
         </translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/signalslotdialog.cpp" line="+202"/>
-        <source>Change signals/slots</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_command.cpp" line="-867"/>
-        <source>Delete Subwindow</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+44"/>
-        <source>Insert Subwindow</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+2"/>
-        <source>subwindow</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Subwindow</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../tools/designer/src/components/taskmenu/button_taskmenu.cpp" line="+225"/>
-        <source>Create button group</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+27"/>
-        <source>Break button group</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+9"/>
-        <source>Break button group &apos;%1&apos;</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+17"/>
-        <source>Add buttons to group</source>
-        <translation type="unfinished"></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 type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+14"/>
-        <source>Remove buttons from group</source>
-        <translation type="unfinished"></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 type="unfinished"></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 type="unfinished"></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 type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../tools/designer/src/lib/shared/scriptcommand.cpp" line="+55"/>
-        <source>Change script</source>
-        <translation type="unfinished">スクリプトを変更</translation>
-    </message>
-    <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_propertycommand.cpp" line="+1209"/>
-        <source>Changed &apos;%1&apos; of &apos;%2&apos;</source>
-        <translation type="unfinished"></translation>
+        <source>Reset &apos;%1&apos; of &apos;%2&apos;</source>
+        <translation>&apos;%2&apos; の &apos;%1&apos; をリセット</translation>
     </message>
     <message numerus="yes">
-        <location line="+3"/>
-        <source>Changed &apos;%1&apos; of %n objects</source>
-        <translation type="unfinished">
-            <numerusform></numerusform>
+        <source>Reset &apos;%1&apos; of %n objects</source>
+        <translation>
+            <numerusform>%n 個のオブジェクトの &apos;%1&apos; をリセット</numerusform>
         </translation>
     </message>
     <message>
-        <location line="+76"/>
-        <source>Reset &apos;%1&apos; of &apos;%2&apos;</source>
-        <translation type="unfinished"></translation>
+        <source>Add dynamic property &apos;%1&apos; to &apos;%2&apos;</source>
+        <translation>&apos;%2&apos; にダイナミックプロパティ &apos;%1&apos; を追加</translation>
     </message>
     <message numerus="yes">
-        <location line="+3"/>
-        <source>Reset &apos;%1&apos; of %n objects</source>
-        <translation type="unfinished">
-            <numerusform></numerusform>
+        <source>Add dynamic property &apos;%1&apos; to %n objects</source>
+        <translation>
+            <numerusform>%n 個のオブジェクトにダイナミックプロパティ &apos;%1&apos; を追加</numerusform>
         </translation>
     </message>
     <message>
-        <location line="+89"/>
-        <source>Add dynamic property &apos;%1&apos; to &apos;%2&apos;</source>
-        <translation type="unfinished"></translation>
+        <source>Remove dynamic property &apos;%1&apos; from &apos;%2&apos;</source>
+        <translation>&apos;%2&apos; からダイナミックプロパティ &apos;%1&apos; を削除</translation>
     </message>
     <message numerus="yes">
-        <location line="+3"/>
-        <source>Add dynamic property &apos;%1&apos; to %n objects</source>
-        <translation type="unfinished">
-            <numerusform></numerusform>
-        </translation>
-    </message>
-    <message>
-        <location line="+86"/>
-        <source>Remove dynamic property &apos;%1&apos; from &apos;%2&apos;</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message numerus="yes">
-        <location line="+3"/>
         <source>Remove dynamic property &apos;%1&apos; from %n objects</source>
-        <translation type="unfinished">
-            <numerusform></numerusform>
+        <translation>
+            <numerusform>%n 個のオブジェクトからダイナミックプロパティ &apos;%1&apos; を削除</numerusform>
         </translation>
     </message>
 </context>
 <context>
     <name>ConnectDialog</name>
     <message>
-        <location filename="../tools/designer/src/components/signalsloteditor/connectdialog.ui"/>
         <source>Configure Connection</source>
-        <translation type="unfinished">シグナル/スロット接続を設定</translation>
-    </message>
-    <message>
-        <location/>
+        <translation>シグナル/スロット接続を設定</translation>
+    </message>
+    <message>
         <source>GroupBox</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location/>
+        <translation>グループボックス</translation>
+    </message>
+    <message>
         <source>Edit...</source>
-        <translation type="unfinished">編集...</translation>
-    </message>
-    <message>
-        <location/>
+        <translation>編集...</translation>
+    </message>
+    <message>
         <source>Show signals and slots inherited from QWidget</source>
-        <translation type="unfinished"></translation>
+        <translation>QWidget から継承したシグナルとスロットを表示する</translation>
+    </message>
+</context>
+<context>
+    <name>ConnectionDelegate</name>
+    <message>
+        <source>&lt;object&gt;</source>
+        <translation>&lt;オブジェクト&gt;</translation>
+    </message>
+    <message>
+        <source>&lt;signal&gt;</source>
+        <translation>&lt;シグナル&gt;</translation>
+    </message>
+    <message>
+        <source>&lt;slot&gt;</source>
+        <translation>&lt;スロット&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 type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+2"/>
+        <translation>標準 (96 × 96)</translation>
+    </message>
+    <message>
         <source>Greenphone (179 x 185)</source>
         <extracomment>Embedded device screen resolution</extracomment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+2"/>
+        <translation>グリーンフォン (179 × 185)</translation>
+    </message>
+    <message>
         <source>High (192 x 192)</source>
         <extracomment>Embedded device high definition screen resolution</extracomment>
-        <translation type="unfinished"></translation>
+        <translation>高解像度 (192 × 192)</translation>
     </message>
 </context>
 <context>
     <name>Designer</name>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/qdesigner_resource.cpp" line="+439"/>
         <source>Qt Designer</source>
         <translation>Qt Designer</translation>
     </message>
     <message>
-        <source>This file contains top level spacers.&lt;br&gt;They have &lt;b&gt;NOT&lt;/b&gt; been saved into the form.&lt;br&gt;Perhaps you forgot to create a layout?</source>
-        <translation type="obsolete">このファイルには、トップレベルのスペーサが含まれています。&lt;br&gt;これらはフォームに保存されて&lt;b&gt;いませんでした&lt;/b&gt;。&lt;br&gt;もしや、レイアウトの指定を忘れていませんか?</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 type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+2"/>
+        <translation>このファイルには、トップレベルのスペーサが含まれています。&lt;br&gt;これらはフォームに保存されて&lt;b&gt;いませんでした&lt;/b&gt;。</translation>
+    </message>
+    <message>
         <source>Perhaps you forgot to create a layout?</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+173"/>
-        <source>Invalid ui file: The root element &lt;ui&gt; is missing.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+6"/>
-        <source>An error has occurred while reading the ui file at line %1, column %2: %3</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+26"/>
+        <translation>もしや、レイアウトの指定を忘れていませんか?</translation>
+    </message>
+    <message>
         <source>This file cannot be read because it was created using %1.</source>
         <translation>このファイルは読めません。%1 を使って作成されたからです。</translation>
     </message>
     <message>
-        <location line="+14"/>
         <source>This file was created using Designer from Qt-%1 and cannot be read.</source>
         <translation>このファイルは Qt-%1 の Designer で作成されたので、読めません。</translation>
     </message>
     <message>
-        <location line="+102"/>
         <source>This file cannot be read because the extra info extension failed to load.</source>
         <translation>このファイルは読めません。追加情報の拡張のロードに失敗したからです。</translation>
     </message>
     <message>
-        <location line="-72"/>
         <source>The converted file could not be read.</source>
         <translation>変換されたファイルを読めませんでした。</translation>
     </message>
     <message>
-        <location line="+4"/>
+        <source>Invalid UI file: The root element &lt;ui&gt; is missing.</source>
+        <translation>無効な UI ファイル: ルート要素 &lt;ui&gt; が見つかりません。</translation>
+    </message>
+    <message>
+        <source>An error has occurred while reading the UI file at line %1, column %2: %3</source>
+        <translation>UI ファイルの読み込み中にエラーが発生しました(%1 行、%2 列): %3</translation>
+    </message>
+    <message>
         <source>This file was created using Designer from Qt-%1 and will be converted to a new form by Qt Designer.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>このファイルは Qt-%1 の Designer で作成されたため、Qt Designer の新しいフォームに更新できません。</translation>
+    </message>
+    <message>
         <source>The old form has not been touched, but you will have to save the form under a new name.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+11"/>
+        <translation>古いフォームは変更していません。新しい名前でフォームをセーブしてください。</translation>
+    </message>
+    <message>
         <source>This file was created using Designer from Qt-%1 and could not be read:
 %2</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>このファイルは Qt-%1 の Designer で作成されたため、読み込めません:
+%2</translation>
+    </message>
+    <message>
         <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 type="unfinished"></translation>
-    </message>
-    <message>
-        <source>This file was created using Designer from Qt-%1 and will be converted to a new form by Qt Designer.
-The old form has been untouched, but you will have to save this form under a new name.</source>
-        <translation type="obsolete">このファイルは Qt-%1 の Designer で作成されたものですが、Qt Designer によって新しいフォームに変換されます。
-古いフォームは放置されてきましたが、新しい名前で保存する必要があります。</translation>
-    </message>
-    <message>
-        <source>This file was created using Designer from Qt-%1 and could not be read:&lt;br&gt;%2&lt;br&gt;Please run it through &lt;b&gt;uic3 -convert&lt;/b&gt; to convert it to Qt-4&apos;s ui format.</source>
-        <translation type="obsolete">このファイルは Qt-%1 の Designer で作成されたものですが、読めませんでした:&lt;br&gt;%2&lt;br&gt;&lt;b&gt;uic3 -convert&lt;/b&gt; を実行して、Qt 4 の UI フォーマットに変換してください。</translation>
-    </message>
-    <message>
-        <location line="+746"/>
+        <translation>&lt;b&gt;uic3&amp;nbsp;-convert&lt;/b&gt;コマンドを実行して、Qt-4 の ui ファイルの形式に更新してください。</translation>
+    </message>
+    <message>
         <source>Custom Widgets</source>
         <translation>カスタムウィジェット</translation>
     </message>
     <message>
-        <location line="+12"/>
         <source>Promoted Widgets</source>
         <translation>格上げされたウィジェット</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_utils.cpp" line="+682"/>
         <source>Unable to launch %1.</source>
         <translation>%1 を起動できませんでした。</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>%1 timed out.</source>
         <translation>%1 はタイムアウトしました。</translation>
     </message>
-    <message>
-        <source>Error opening resource file</source>
-        <translation type="obsolete">リソースファイルのオープンエラー</translation>
-    </message>
-    <message>
-        <source>Failed to open &quot;%1&quot;:
-%2</source>
-        <translation type="obsolete">&quot;%1&quot; のオープンに失敗: %2</translation>
-    </message>
-    <message>
-        <source>file name is empty</source>
-        <translation type="obsolete">ファイル名が空です</translation>
-    </message>
-    <message>
-        <source>XML error on line %1, col %2: %3</source>
-        <translation type="obsolete">%1 行目 %2 カラム目にXMLエラー: %3</translation>
-    </message>
-    <message>
-        <source>no &lt;RCC&gt; root element</source>
-        <translation type="obsolete">&lt;RCC&gt; ルートエレメントがありません</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 type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+5"/>
+        <translation>%1 は無効な列挙型 ’%2&apos; の値です。</translation>
+    </message>
+    <message>
         <source>&apos;%1&apos; could not be converted to an enumeration value of type &apos;%2&apos;.</source>
-        <translation type="unfinished"></translation>
+        <translation>&apos;%1&apos; は列挙型 &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 type="unfinished"></translation>
+        <translation>&apos;%1&apos; はフラグ &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 type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+23"/>
+        <translation>&apos;%1&apos; は数字ではありません。</translation>
+    </message>
+    <message>
         <source>An invalid tag &lt;%1&gt; was encountered.</source>
-        <translation type="unfinished"></translation>
+        <translation>無効なタグ &lt;%1&gt; に遭遇しました。</translation>
     </message>
 </context>
 <context>
     <name>DeviceProfileDialog</name>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/deviceprofiledialog.ui"/>
         <source>&amp;Family</source>
-        <translation type="unfinished">ファミリー(&amp;F)</translation>
-    </message>
-    <message>
-        <location/>
+        <translation>ファミリー(&amp;F)</translation>
+    </message>
+    <message>
         <source>&amp;Point Size</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location/>
+        <translation>ポイントサイズ(&amp;P)</translation>
+    </message>
+    <message>
         <source>Style</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location/>
+        <translation>スタイル</translation>
+    </message>
+    <message>
         <source>Device DPI</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location/>
+        <translation>デバイスのDPI</translation>
+    </message>
+    <message>
         <source>Name</source>
-        <translation type="unfinished">名前</translation>
+        <translation>名前</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 type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+64"/>
+        <translation>画像ファイル &apos;%1&apos; をロードできませんでした。</translation>
+    </message>
+    <message>
         <source>The skin directory &apos;%1&apos; does not contain a configuration file.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+5"/>
+        <translation>スキンのディレクトリ &apos;%1&apos; に設定ファイルが見つかりません。</translation>
+    </message>
+    <message>
         <source>The skin configuration file &apos;%1&apos; could not be opened.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+76"/>
+        <translation>スキンの設定ファイル &apos;%1&apos; がオープンできませんでした。</translation>
+    </message>
+    <message>
         <source>Syntax error: %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+54"/>
+        <translation>構文エラー: %1</translation>
+    </message>
+    <message>
         <source>The skin cursor image file &apos;%1&apos; does not exist.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+25"/>
+        <translation>スキンのカーソル画像 &apos;%1&apos; が存在しません。</translation>
+    </message>
+    <message>
         <source>Syntax error in area definition: %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+38"/>
+        <translation>領域定義の構文エラー: %1</translation>
+    </message>
+    <message>
         <source>Mismatch in number of areas, expected %1, got %2.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="-187"/>
+        <translation>領域の数が異なります(想定 %1、取得 %2)。</translation>
+    </message>
+    <message>
         <source>The skin configuration file &apos;%1&apos; could not be read: %2</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+91"/>
+        <translation>スキンの設定ファイル &apos;%1&apos; が読めませんでした: %2</translation>
+    </message>
+    <message>
         <source>The skin &quot;up&quot; image file &apos;%1&apos; does not exist.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+10"/>
+        <translation>スキンの&quot;up&quot;画像ファイル &apos;%1&apos; が存在しません。</translation>
+    </message>
+    <message>
         <source>The skin &quot;down&quot; image file &apos;%1&apos; does not exist.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+11"/>
+        <translation>スキンの&quot;down&quot;画像ファイル &apos;%1&apos; が存在しません。</translation>
+    </message>
+    <message>
         <source>The skin &quot;closed&quot; image file &apos;%1&apos; does not exist.</source>
-        <translation type="unfinished"></translation>
+        <translation>スキンの&quot;closed&quot;画像ファイル &apos;%1&apos; が存在しません。</translation>
     </message>
 </context>
 <context>
     <name>EmbeddedOptionsControl</name>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/embeddedoptionspage.cpp" line="+311"/>
         <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 type="unfinished"></translation>
+        <translation>&lt;html&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;フォント&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;スタイル&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;解像度&lt;/b&gt;&lt;/td&gt;&lt;td&gt;%4 × %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 type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+10"/>
+        <translation>デザインプロファイル</translation>
+    </message>
+    <message>
         <source>Device Profiles</source>
         <extracomment>EmbeddedOptionsControl group box&quot;</extracomment>
-        <translation type="unfinished"></translation>
+        <translation>デバイスプロファイル</translation>
     </message>
 </context>
 <context>
     <name>FontPanel</name>
     <message>
-        <location filename="../tools/shared/fontpanel/fontpanel.cpp" line="+63"/>
         <source>Font</source>
         <translation>フォント</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>&amp;Writing system</source>
         <translation>ライティングシステム(&amp;W)</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>&amp;Family</source>
         <translation>ファミリー(&amp;F)</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>&amp;Style</source>
         <translation>スタイル(&amp;S)</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>&amp;Point size</source>
         <translation>ポイントサイズ(&amp;P)</translation>
     </message>
@@ -1202,180 +803,156 @@
 <context>
     <name>FontPropertyManager</name>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/fontpropertymanager.cpp" line="+62"/>
         <source>PreferDefault</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>デフォルト優先</translation>
+    </message>
+    <message>
         <source>NoAntialias</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>アンチエイリアスなし</translation>
+    </message>
+    <message>
         <source>PreferAntialias</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+61"/>
+        <translation>アンチエイリアス優先</translation>
+    </message>
+    <message>
         <source>Antialiasing</source>
-        <translation type="unfinished"></translation>
+        <translation>アンチエイリアス</translation>
     </message>
 </context>
 <context>
     <name>FormBuilder</name>
     <message>
-        <location filename="../tools/designer/src/lib/uilib/formbuilderextra.cpp" line="+351"/>
         <source>Invalid stretch value for &apos;%1&apos;: &apos;%2&apos;</source>
-        <extracomment>Parsing layout stretch values</extracomment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+62"/>
+        <extracomment>Parsing layout stretch values
+----------
+Parsing layout stretch values
+----------
+Parsing layout stretch values</extracomment>
+        <translation>&apos;%1&apos; のストレッチ値が無効です: &apos;%2&apos;</translation>
+    </message>
+    <message>
         <source>Invalid minimum size for &apos;%1&apos;: &apos;%2&apos;</source>
-        <extracomment>Parsing grid layout minimum size values</extracomment>
-        <translation type="unfinished"></translation>
+        <extracomment>Parsing grid layout minimum size values
+----------
+Parsing grid layout minimum size values
+----------
+Parsing grid layout minimum size values</extracomment>
+        <translation>&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 type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+4"/>
+        <translation>%1 %</translation>
+    </message>
+    <message>
         <source>Preview Zoom</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+2"/>
+        <translation>プレビューの拡大表示</translation>
+    </message>
+    <message>
         <source>Default Zoom</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+29"/>
+        <translation>デフォルトの拡大率</translation>
+    </message>
+    <message>
         <source>Forms</source>
         <extracomment>Tab in preferences dialog</extracomment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+13"/>
+        <translation>フォーム</translation>
+    </message>
+    <message>
         <source>Default Grid</source>
-        <translation type="unfinished">デフォルトグリッド</translation>
+        <translation>デフォルトのグリッド表示</translation>
     </message>
 </context>
 <context>
     <name>FormLayoutRowDialog</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/formlayoutrowdialog.ui"/>
         <source>Add Form Layout Row</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location/>
+        <translation>フォームレイアウトに行を追加</translation>
+    </message>
+    <message>
         <source>&amp;Label text:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location/>
+        <translation>ラベルの文字列(&amp;L):</translation>
+    </message>
+    <message>
         <source>Field &amp;type:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location/>
+        <translation>フィールドの型(&amp;T):</translation>
+    </message>
+    <message>
         <source>&amp;Field name:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location/>
+        <translation>フィールドの名前(&amp;F):</translation>
+    </message>
+    <message>
         <source>&amp;Buddy:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location/>
+        <translation>&amp;Buddy:</translation>
+    </message>
+    <message>
         <source>&amp;Row:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location/>
+        <translation>行(&amp;R):</translation>
+    </message>
+    <message>
         <source>Label &amp;name:</source>
-        <translation type="unfinished"></translation>
+        <translation>ラベルの名前(&amp;N):</translation>
     </message>
 </context>
 <context>
     <name>FormWindow</name>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/formwindow.cpp" line="+1705"/>
         <source>Unexpected element &lt;%1&gt;</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+7"/>
+        <translation>予期せぬ要素 &lt;%1&gt;</translation>
+    </message>
+    <message>
         <source>Error while pasting clipboard contents at line %1, column %2: %3</source>
-        <translation type="unfinished"></translation>
+        <translation>クリップボードの内容の貼り付け中にエラーが発生しました(行 %1, 列 %2): %3</translation>
     </message>
 </context>
 <context>
     <name>FormWindowSettings</name>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/formwindowsettings.ui"/>
         <source>Form Settings</source>
         <translation>フォーム設定</translation>
     </message>
     <message>
-        <location/>
         <source>Layout &amp;Default</source>
         <translation>デフォルトのレイアウト(&amp;D)</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Spacing:</source>
         <translation>空白(&amp;S):</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Margin:</source>
         <translation>余白(&amp;M):</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Layout Function</source>
         <translation>レイアウト関数(&amp;L)</translation>
     </message>
     <message>
-        <location/>
         <source>Ma&amp;rgin:</source>
         <translation>余白(&amp;R):</translation>
     </message>
     <message>
-        <location/>
         <source>Spa&amp;cing:</source>
         <translation>空白(&amp;C):</translation>
     </message>
     <message>
-        <location/>
         <source>Embedded Design</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location/>
+        <translation>デザインプロファイル</translation>
+    </message>
+    <message>
         <source>&amp;Author</source>
         <translation>作者(&amp;A)</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Include Hints</source>
         <translation>フォームからインクルードするヘッダ(&amp;I)</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Pixmap Function</source>
         <translation>ピックスマップロード関数(&amp;P)</translation>
     </message>
     <message>
-        <location/>
         <source>Grid</source>
         <translation>グリッド</translation>
     </message>
@@ -1383,344 +960,175 @@
 <context>
     <name>IconSelector</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/iconselector.cpp" line="+353"/>
         <source>All Pixmaps (</source>
-        <translation type="unfinished">全てのピックスマップ (</translation>
+        <translation>すべてのピックスマップ (</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 type="unfinished"></translation>
     </message>
 </context>
 <context>
-    <name>LanguageResourceDialog</name>
-    <message>
-        <location filename="../tools/designer/src/lib/shared/iconselector.cpp" line="-235"/>
-        <source>Choose Resource</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>LayoutPropertySheet</name>
-    <message>
-        <source>Layout</source>
-        <translation type="obsolete">レイアウト</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 type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+6"/>
+        <translation>メイン</translation>
+    </message>
+    <message>
         <source>File</source>
-        <translation type="unfinished">ファイル</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>ファイル</translation>
+    </message>
+    <message>
         <source>Edit</source>
-        <translation type="unfinished">編集</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>編集</translation>
+    </message>
+    <message>
         <source>Tools</source>
-        <translation type="unfinished">ツール</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>ツール</translation>
+    </message>
+    <message>
         <source>Form</source>
-        <translation type="unfinished">フォーム</translation>
-    </message>
-    <message>
-        <location line="+7"/>
+        <translation>フォーム</translation>
+    </message>
+    <message>
         <source>Qt Designer</source>
-        <translation type="unfinished">Qt Designer</translation>
+        <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;R)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Recent</source>
-        <translation>最近</translation>
-    </message>
-    <message>
-        <location line="+32"/>
+        <translation>最近使用したフォーム</translation>
+    </message>
+    <message>
         <source>&amp;Close</source>
         <translation>閉じる(&amp;C)</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>&amp;Open...</source>
         <translation>オープン(&amp;O)...</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>&amp;Recent Forms</source>
         <translation>最近使用したフォーム(&amp;R)</translation>
     </message>
     <message>
-        <source>Error loading form</source>
-        <translation type="obsolete">フォームのロードエラー</translation>
-    </message>
-    <message>
-        <source>Choose a template for a preview</source>
-        <translation type="obsolete">プレビューのためテンプレートを選択</translation>
-    </message>
-    <message>
-        <location line="+64"/>
         <source>Read error</source>
         <translation>読み込みエラー</translation>
     </message>
     <message>
-        <location line="-100"/>
         <source>New Form</source>
         <translation>新しいフォーム</translation>
     </message>
     <message>
-        <source>0</source>
-        <translation type="obsolete">0</translation>
-    </message>
-    <message>
-        <location line="-5"/>
         <source>Show this Dialog on Startup</source>
         <translation>起動時にこのダイアログを表示</translation>
     </message>
     <message>
-        <source>Custom Widgets</source>
-        <translation type="obsolete">カスタムウィジェット</translation>
-    </message>
-    <message>
-        <location line="+128"/>
         <source>A temporary form file could not be created in %1.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+6"/>
+        <translation>一時フォームファイルを %1に作成できませんでした。</translation>
+    </message>
+    <message>
         <source>The temporary form file %1 could not be written.</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>NewFormWidget</name>
-    <message>
-        <location filename="../tools/designer/src/lib/shared/newformwidget.cpp" line="+495"/>
-        <source>Unable to open the form template file &apos;%1&apos;: %2</source>
-        <translation type="unfinished"></translation>
+        <translation>一時フォームファイル %1 に書き込めませんでした。</translation>
     </message>
 </context>
 <context>
     <name>ObjectInspectorModel</name>
     <message>
-        <location filename="../tools/designer/src/components/objectinspector/objectinspectormodel.cpp" line="+364"/>
         <source>Object</source>
-        <translation type="unfinished">オブジェクト</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>オブジェクト</translation>
+    </message>
+    <message>
         <source>Class</source>
-        <translation type="unfinished">クラス</translation>
-    </message>
-    <message>
-        <location line="+35"/>
+        <translation>クラス</translation>
+    </message>
+    <message>
         <source>separator</source>
-        <translation type="unfinished">セパレータ</translation>
-    </message>
-    <message>
-        <location line="+98"/>
+        <translation>セパレータ</translation>
+    </message>
+    <message>
         <source>&lt;noname&gt;</source>
-        <translation type="unfinished">&lt;名前なし&gt;</translation>
+        <translation>&lt;名前なし&gt;</translation>
     </message>
 </context>
 <context>
     <name>ObjectNameDialog</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_taskmenu.cpp" line="+162"/>
         <source>Change Object Name</source>
-        <translation type="unfinished">オブジェクト名を変更</translation>
-    </message>
-    <message>
-        <location line="+4"/>
+        <translation>オブジェクト名を変更</translation>
+    </message>
+    <message>
         <source>Object Name</source>
-        <translation type="unfinished">オブジェクト名</translation>
-    </message>
-</context>
-<context>
-    <name>Oubliette</name>
-    <message>
-        <source>Inventory</source>
-        <translation type="obsolete">棚卸し</translation>
-    </message>
-    <message>
-        <source>You have &lt;B&gt;No&lt;/B&gt; Items</source>
-        <translation type="obsolete">アイテムが&lt;B&gt;ありません&lt;/B&gt;</translation>
-    </message>
-    <message numerus="yes">
-        <source>You have %1 of %2 items</source>
-        <translation type="obsolete">
-            <numerusform>%2 アイテムのうちの %1 個を持っています</numerusform>
-        </translation>
-    </message>
-    <message>
-        <source>OK</source>
-        <translation type="obsolete">OK</translation>
-    </message>
-    <message>
-        <source>Easter Egg Found</source>
-        <translation type="obsolete">イースターエッグが見つかりました</translation>
-    </message>
-    <message>
-        <source>Welcome to the Trolltech Business Card Hunt
-Use the direction keys to move around and find the business cards for all the trolls.</source>
-        <translation type="obsolete">Trolltech の名刺捜しゲームへようこそ矢印キーを使って移動し、Trolltech の全社員の名刺を見つけてください。</translation>
-    </message>
-    <message>
-        <source>You Did It!</source>
-        <translation type="obsolete">よくできました!</translation>
-    </message>
-    <message>
-        <source>You&apos;ve collected all the Trolltech cards. It took you %1 steps.
-There&apos;s nothing more here. You should get back to work.</source>
-        <translation type="obsolete">あなたは Trolltech の全ての名刺を集めました。%1 回かかりました。これで終わりです。仕事に戻りましょう。</translation>
-    </message>
-    <message>
-        <source>That&apos;s rather anti-climatic</source>
-        <translation type="obsolete">それは社会の風潮に反することです</translation>
-    </message>
-    <message>
-        <source>Quit</source>
-        <translation type="obsolete">終了</translation>
+        <translation>オブジェクト名</translation>
     </message>
 </context>
 <context>
     <name>PluginDialog</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/plugindialog.ui"/>
         <source>Plugin Information</source>
-        <translation type="unfinished">プラグイン情報</translation>
-    </message>
-    <message>
-        <location/>
+        <translation>プラグイン情報</translation>
+    </message>
+    <message>
         <source>1</source>
-        <translation type="unfinished">1</translation>
+        <translation>1</translation>
     </message>
 </context>
 <context>
     <name>PreferencesDialog</name>
     <message>
-        <source>Docked Window</source>
-        <translation type="obsolete">ドックウィンドウ</translation>
-    </message>
-    <message>
-        <source>Multiple Top-Level Windows</source>
-        <translation type="obsolete">複数のトップレベルウィンドウ</translation>
-    </message>
-    <message>
-        <source>Toolwindow Font</source>
-        <translation type="obsolete">ツールウィンドウフォント</translation>
-    </message>
-    <message>
-        <source>Default Grid</source>
-        <translation type="obsolete">デフォルトグリッド</translation>
-    </message>
-    <message>
-        <source>Pick a directory to save templates in</source>
-        <translation type="obsolete">テンプレートを保存するディレクトリを選択してください</translation>
-    </message>
-    <message>
-        <location filename="../tools/designer/src/designer/preferencesdialog.ui"/>
         <source>Preferences</source>
         <translation>設定</translation>
     </message>
-    <message>
-        <source>User Interface Mode</source>
-        <translation type="obsolete">ユーザインターフェースモード</translation>
-    </message>
-    <message>
-        <source>Additional Template Paths</source>
-        <translation type="obsolete">追加のテンプレートパス</translation>
-    </message>
-    <message>
-        <source>...</source>
-        <translation type="obsolete">...</translation>
-    </message>
 </context>
 <context>
     <name>PreviewConfigurationWidget</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/previewconfigurationwidget.cpp" line="+155"/>
-        <source>Default</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+22"/>
-        <source>None</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+6"/>
-        <source>Browse...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../tools/designer/src/lib/shared/previewconfigurationwidget.ui"/>
         <source>Form</source>
-        <translation type="unfinished">フォーム</translation>
-    </message>
-    <message>
-        <location/>
+        <translation>フォーム</translation>
+    </message>
+    <message>
         <source>Print/Preview Configuration</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location/>
+        <translation>印刷/プレビューの設定</translation>
+    </message>
+    <message>
         <source>Style</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location/>
+        <translation>スタイル</translation>
+    </message>
+    <message>
         <source>Style sheet</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location/>
+        <translation>スタイルシート</translation>
+    </message>
+    <message>
         <source>...</source>
-        <translation type="unfinished">...</translation>
-    </message>
-    <message>
-        <location/>
+        <translation>...</translation>
+    </message>
+    <message>
         <source>Device skin</source>
-        <translation type="unfinished"></translation>
+        <translation>デバイススキン</translation>
     </message>
 </context>
 <context>
     <name>PromotionModel</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/promotionmodel.cpp" line="+116"/>
         <source>Not used</source>
         <extracomment>Usage of promoted widgets</extracomment>
-        <translation type="unfinished">使用されません</translation>
+        <translation>使用されていません</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>ページ</translation>
     </message>
@@ -1728,720 +1136,472 @@
 <context>
     <name>QAbstractFormBuilder</name>
     <message>
-        <location filename="../tools/designer/src/lib/uilib/abstractformbuilder.cpp" line="+206"/>
         <source>Unexpected element &lt;%1&gt;</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+5"/>
-        <source>An error has occurred while reading the ui file at line %1, column %2: %3</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+6"/>
-        <source>Invalid ui file: The root element &lt;ui&gt; is missing.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+119"/>
+        <translation>予期せぬ要素 &lt;%1&gt;</translation>
+    </message>
+    <message>
+        <source>An error has occurred while reading the UI file at line %1, column %2: %3</source>
+        <translation>UI ファイルの読み込み中にエラーが発生しました(%1 行、%2 列): %3</translation>
+    </message>
+    <message>
+        <source>Invalid UI file: The root element &lt;ui&gt; is missing.</source>
+        <translation>無効な UI ファイル: ルート要素 &lt;ui&gt; が見つかりません。</translation>
+    </message>
+    <message>
         <source>The creation of a widget of the class &apos;%1&apos; failed.</source>
-        <translation type="unfinished">クラス &apos;%1&apos; のウィジェットの作成に失敗しました。</translation>
-    </message>
-    <message>
-        <location line="+295"/>
+        <translation>クラス &apos;%1&apos; のウィジェットの作成に失敗しました。</translation>
+    </message>
+    <message>
         <source>Attempt to add child that is not of class QWizardPage to QWizard.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+86"/>
+        <translation>QWizardPage クラスを継承していないクラスは QWizard に追加できません。</translation>
+    </message>
+    <message>
         <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 type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+144"/>
+        <translation>ウィジェット &apos;%1&apos; (%2) は既にBOXタイプではないレイアウト %3 を所持しているため、レイアウトを追加できません。
+UI ファイルの記述が矛盾しています。</translation>
+    </message>
+    <message>
         <source>Empty widget item in %1 &apos;%2&apos;.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+684"/>
+        <translation>%1 &apos;%2&apos; は空のウィジェット要素です。</translation>
+    </message>
+    <message>
         <source>Flags property are not supported yet.</source>
-        <translation type="unfinished">フラグのプロパティはサポートされていません。</translation>
-    </message>
-    <message>
-        <location line="+81"/>
+        <translation>フラグのプロパティはサポートされていません。</translation>
+    </message>
+    <message>
         <source>While applying tab stops: The widget &apos;%1&apos; could not be found.</source>
-        <translation type="unfinished">タブストップの適用中: ウィジェット &apos;%1&apos; が見つかりません。</translation>
-    </message>
-    <message>
-        <location line="+749"/>
+        <translation>タブストップの適用中: ウィジェット &apos;%1&apos; が見つかりません。</translation>
+    </message>
+    <message>
         <source>Invalid QButtonGroup reference &apos;%1&apos; referenced by &apos;%2&apos;.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+518"/>
+        <translation>&apos;%2&apos; から参照された &apos;%1&apos; は無効な QButtonGroup です。</translation>
+    </message>
+    <message>
         <source>This version of the uitools library is linked without script support.</source>
-        <translation type="unfinished">このバージョンの uitools は、スクリプトがサポートされていないライブラリがリンクされています。</translation>
-    </message>
-</context>
-<context>
-    <name>QActiveXPlugin</name>
-    <message>
-        <source>ActiveX control</source>
-        <translation type="obsolete">ActiveX コントロール</translation>
-    </message>
-    <message>
-        <source>ActiveX control widget</source>
-        <translation type="obsolete">ActiveX コントロールウィジェット</translation>
-    </message>
-</context>
-<context>
-    <name>QActiveXPluginObject</name>
-    <message>
-        <source>Control loaded</source>
-        <translation type="obsolete">コントロールがロードされました</translation>
-    </message>
-</context>
-<context>
-    <name>QActiveXTaskMenu</name>
-    <message>
-        <source>Set Control</source>
-        <translation type="obsolete">コントロールを設定</translation>
-    </message>
-    <message>
-        <source>Licensed Control</source>
-        <translation type="obsolete">ライセンスされたコントロール</translation>
-    </message>
-    <message>
-        <source>The control requires a design-time license</source>
-        <translation type="obsolete">このコントロールを使用するには、開発時ライセンスが必要です</translation>
+        <translation>このバージョンの uitools は、スクリプトがサポートされていないライブラリがリンクされています。</translation>
     </message>
 </context>
 <context>
     <name>QAxWidgetPlugin</name>
     <message>
-        <location filename="../tools/designer/src/plugins/activeqt/qaxwidgetplugin.cpp" line="+75"/>
         <source>ActiveX control</source>
-        <translation type="unfinished">ActiveX コントロール</translation>
-    </message>
-    <message>
-        <location line="+5"/>
+        <translation>ActiveX コントロール</translation>
+    </message>
+    <message>
         <source>ActiveX control widget</source>
-        <translation type="unfinished">ActiveX コントロールウィジェット</translation>
+        <translation>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 type="unfinished">コントロールを設定</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>コントロールを設定</translation>
+    </message>
+    <message>
         <source>Reset Control</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+41"/>
+        <translation>コントロールをリセット</translation>
+    </message>
+    <message>
         <source>Licensed Control</source>
-        <translation type="unfinished">ライセンスされたコントロール</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>ライセンスされたコントロール</translation>
+    </message>
+    <message>
         <source>The control requires a design-time license</source>
-        <translation type="unfinished">このコントロールを使用するには、開発時ライセンスが必要です</translation>
+        <translation>このコントロールの利用には、開発時ライセンスが必要です</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 は格上げされたクラスではありません。</translation>
     </message>
     <message>
-        <location line="+65"/>
         <source>The base class %1 is invalid.</source>
-        <translation type="unfinished">ベースクラス %1 は無効です。</translation>
-    </message>
-    <message>
-        <location line="+7"/>
+        <translation>基底クラス %1 は無効です。</translation>
+    </message>
+    <message>
         <source>The class %1 already exists.</source>
-        <translation type="unfinished">%1 というクラスはすでに存在します。</translation>
-    </message>
-    <message>
-        <location line="+9"/>
+        <translation>クラス %1 は既に存在します。</translation>
+    </message>
+    <message>
         <source>Promoted Widgets</source>
-        <translation type="unfinished">格上げされたウィジェット</translation>
-    </message>
-    <message>
-        <location line="+126"/>
+        <translation>格上げされたウィジェット</translation>
+    </message>
+    <message>
         <source>The class %1 cannot be removed</source>
-        <translation type="unfinished">%1 というクラスを削除できません</translation>
-    </message>
-    <message>
-        <location line="+9"/>
+        <translation>クラス %1 を削除できません</translation>
+    </message>
+    <message>
         <source>The class %1 cannot be removed because it is still referenced.</source>
-        <translation type="unfinished">%1 というクラスは、参照されているので、削除できません。</translation>
-    </message>
-    <message>
-        <location line="+10"/>
+        <translation>クラス %1 は、参照されているため削除できません。</translation>
+    </message>
+    <message>
         <source>The class %1 cannot be renamed</source>
-        <translation type="unfinished">%1 というクラスをリネームできません</translation>
-    </message>
-    <message>
-        <location line="+7"/>
+        <translation>クラス %1 をリネームできません</translation>
+    </message>
+    <message>
         <source>The class %1 cannot be renamed to an empty name.</source>
-        <translation type="unfinished">%1 というクラスを空の名前にリネームすることはできません。</translation>
-    </message>
-    <message>
-        <location line="+5"/>
+        <translation>クラス %1 を空の名前にリネームすることはできません。</translation>
+    </message>
+    <message>
         <source>There is already a class named %1.</source>
-        <translation type="unfinished">%1 というクラスは存在します。</translation>
-    </message>
-    <message>
-        <location line="+29"/>
+        <translation>クラス %1 は既に存在します。</translation>
+    </message>
+    <message>
         <source>Cannot set an empty include file.</source>
-        <translation type="unfinished">空のインクルードファイルを設定できません。</translation>
-    </message>
-    <message>
-        <location filename="../tools/designer/src/lib/uilib/formscriptrunner.cpp" line="+88"/>
+        <translation>空のインクルードファイルを設定できません。</translation>
+    </message>
+    <message>
         <source>Exception at line %1: %2</source>
-        <translation type="unfinished">%1 行目で例外が発生: %2</translation>
-    </message>
-    <message>
-        <location line="+36"/>
+        <translation>%1 行目で例外が発生: %2</translation>
+    </message>
+    <message>
         <source>Unknown error</source>
-        <translation type="unfinished">不明なエラー</translation>
-    </message>
-    <message>
-        <location line="+50"/>
+        <translation>不明なエラー</translation>
+    </message>
+    <message>
         <source>An error occurred while running the script for %1: %2
 Script: %3</source>
-        <translation type="unfinished">%1 のためにスクリプトを実行していてエラーが発生しました: %2
+        <translation>%1 でスクリプトを実行中にエラーが発生しました: %2
 スクリプト: %3</translation>
     </message>
 </context>
 <context>
     <name>QDesigner</name>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner.cpp" line="+141"/>
         <source>%1 - warning</source>
-        <translation type="unfinished">%1 - 警告</translation>
-    </message>
-    <message>
-        <location line="+96"/>
+        <translation>%1 - 警告</translation>
+    </message>
+    <message>
         <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>このアプリケーションは、Qt コンソール版では使えません</translation>
     </message>
 </context>
 <context>
-    <name>QDesignerActionEditor</name>
-    <message>
-        <source>Action Editor</source>
-        <translation type="obsolete">アクションエディタ</translation>
-    </message>
-</context>
-<context>
     <name>QDesignerActions</name>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_actions.cpp" line="+178"/>
         <source>Edit Widgets</source>
         <translation>ウィジェットを編集</translation>
     </message>
     <message>
-        <source>&amp;New Form...</source>
-        <translation type="obsolete">新しいフォーム(&amp;N)...</translation>
-    </message>
-    <message>
-        <source>&amp;Open Form...</source>
-        <translation type="obsolete">フォームを開く(&amp;O)...</translation>
-    </message>
-    <message>
-        <source>&amp;Save Form</source>
-        <translation type="obsolete">フォームを保存(&amp;S)</translation>
-    </message>
-    <message>
-        <source>Save Form &amp;As...</source>
-        <translation type="obsolete">名前をつけてフォームを保存(&amp;A)...</translation>
-    </message>
-    <message>
-        <source>Save A&amp;ll Forms</source>
-        <translation type="obsolete">すべてのフォームを保存(&amp;L)</translation>
-    </message>
-    <message>
-        <source>Save Form As &amp;Template...</source>
-        <translation type="obsolete">フォームをテンプレートとして保存(&amp;T)...</translation>
-    </message>
-    <message>
-        <source>&amp;Close Form</source>
-        <translation type="obsolete">フォームを閉じる(&amp;C)</translation>
-    </message>
-    <message>
-        <location line="+10"/>
         <source>&amp;Quit</source>
         <translation>終了(&amp;Q)</translation>
     </message>
     <message>
-        <source>&amp;Preview</source>
-        <translation type="obsolete">プレビュー(&amp;P)</translation>
-    </message>
-    <message>
-        <source>Form &amp;Settings...</source>
-        <translation type="obsolete">フォームの設定(&amp;S)...</translation>
-    </message>
-    <message>
-        <location line="+3"/>
         <source>&amp;Minimize</source>
         <translation>最小化(&amp;M)</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Bring All to Front</source>
-        <translation>全てのウィンドウを前面に</translation>
-    </message>
-    <message>
-        <location line="+2"/>
+        <translation>すべてのウィンドウを前面に</translation>
+    </message>
+    <message>
         <source>Preferences...</source>
         <translation>設定...</translation>
     </message>
     <message>
-        <source>CTRL+N</source>
-        <translation type="obsolete">CTRL+N</translation>
-    </message>
-    <message>
-        <source>CTRL+O</source>
-        <translation type="obsolete">CTRL+O</translation>
-    </message>
-    <message>
-        <location line="+293"/>
         <source>Clear &amp;Menu</source>
         <translation>メニューをクリア(&amp;M)</translation>
     </message>
     <message>
-        <source>CTRL+S</source>
-        <translation type="obsolete">CTRL+S</translation>
-    </message>
-    <message>
-        <location line="-232"/>
         <source>CTRL+SHIFT+S</source>
         <translation>CTRL+SHIFT+S</translation>
     </message>
     <message>
-        <source>CTRL+W</source>
-        <translation type="obsolete">CTRL+W</translation>
-    </message>
-    <message>
-        <location line="+27"/>
-        <source>CTRL+Q</source>
-        <translation>CTRL+Q</translation>
-    </message>
-    <message>
-        <source>CTRL+Z</source>
-        <translation type="obsolete">CTRL+Z</translation>
-    </message>
-    <message>
-        <source>CTRL+SHIFT+Z</source>
-        <translation type="obsolete">CTRL+SHIFT+Z</translation>
-    </message>
-    <message>
-        <location line="+85"/>
         <source>CTRL+R</source>
         <translation>CTRL+R</translation>
     </message>
     <message>
-        <source>%1 Style</source>
-        <translation type="obsolete">%1 スタイル</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;H)</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Current Widget Help</source>
         <translation>現在のウィジェットのヘルプ</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>What&apos;s New in Qt Designer?</source>
         <translation>Qt Designer の新機能</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>About Plugins</source>
         <translation>プラグインについて</translation>
     </message>
     <message>
-        <location line="+6"/>
-        <location line="+601"/>
         <source>About Qt Designer</source>
         <translation>Qt Designer について</translation>
     </message>
     <message>
-        <location line="-595"/>
         <source>About Qt</source>
         <translation>Qt について</translation>
     </message>
     <message>
-        <location line="+121"/>
-        <location line="+197"/>
         <source>Open Form</source>
         <translation>フォームを開く</translation>
     </message>
     <message>
-        <location line="-196"/>
-        <location line="+37"/>
-        <location line="+160"/>
         <source>Designer UI files (*.%1);;All Files (*)</source>
         <translation>Designer UI ファイル(*.%1);;すべてのファイル (*)</translation>
     </message>
     <message>
-        <source>Save form as</source>
-        <translation type="obsolete">名前を付けてフォームを保存</translation>
-    </message>
-    <message>
-        <source>Save</source>
-        <translation type="obsolete">保存</translation>
-    </message>
-    <message>
-        <location line="-615"/>
         <source>%1 already exists.
 Do you want to replace it?</source>
-        <translation>%1 はすでに存在します。上書きしますか?</translation>
-    </message>
-    <message>
-        <location line="-26"/>
+        <translation>%1 は既に存在します。上書きしますか?</translation>
+    </message>
+    <message>
         <source>Saved %1.</source>
-        <translation>フォーム %1 は無事保存できました...</translation>
-    </message>
-    <message>
-        <location line="+68"/>
+        <translation>フォーム %1 を保存しました。</translation>
+    </message>
+    <message>
         <source>Additional Fonts...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+58"/>
+        <translation>フォントの追加...</translation>
+    </message>
+    <message>
         <source>ALT+CTRL+S</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+240"/>
+        <translation>ALT+CTRL+S</translation>
+    </message>
+    <message>
         <source>&amp;Recent Forms</source>
-        <translation type="unfinished">最近使用したフォーム(&amp;R)</translation>
-    </message>
-    <message>
-        <location line="+202"/>
+        <translation>最近使用したフォーム(&amp;R)</translation>
+    </message>
+    <message>
         <source>Designer</source>
         <translation>Designer</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Feature not implemented yet!</source>
         <translation>機能がまだ実装されていません!</translation>
     </message>
     <message>
-        <location line="+59"/>
         <source>Read error</source>
         <translation>読み込みエラー</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>%1
 Do you want to update the file location or generate a new form?</source>
         <translation>%1
 ファイルの位置を更新しますか、それとも新しいフォームを生成しますか?</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>&amp;Update</source>
         <translation>更新(&amp;U)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;New Form</source>
         <translation>新しいフォーム(&amp;N)</translation>
     </message>
     <message>
-        <location line="+77"/>
-        <location line="+40"/>
         <source>Save Form?</source>
         <translation>フォームを保存しますか?</translation>
     </message>
     <message>
-        <location line="-39"/>
         <source>Could not open file</source>
         <translation>ファイルをオープンできませんでした</translation>
     </message>
     <message>
-        <location line="+494"/>
         <source>Saved image %1.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+18"/>
+        <translation>画像 %1 を保存しました。</translation>
+    </message>
+    <message>
         <source>Please close all forms to enable the loading of additional fonts.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+52"/>
+        <translation>追加したフォントをロードするにはすべてのフォームを閉じてください。</translation>
+    </message>
+    <message>
         <source>Printed %1.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>The file, %1, could not be opened
-Reason: %2
-Would you like to retry or change your file?</source>
-        <translation type="obsolete">ファイル %1 はオープンできませんでした
-理由: %2
-リトライしますか、それともファイルを変更しますか?</translation>
-    </message>
-    <message>
-        <location line="-554"/>
+        <translation>%1 を印刷しました。</translation>
+    </message>
+    <message>
         <source>Select New File</source>
         <translation>新しいファイルを選択</translation>
     </message>
     <message>
-        <location line="+30"/>
         <source>Could not write file</source>
         <translation>ファイルに書き込むことができませんでした</translation>
     </message>
     <message>
-        <source>It was not possible to write the entire file, %1, to disk.
-Reason:%2
-Would you like to retry?</source>
-        <translation type="obsolete">ファイル %1 の全体をディスクに書き込むことができませんでした。
-理由: %2
-リトライしますか?</translation>
-    </message>
-    <message>
-        <location line="+201"/>
         <source>&amp;Close Preview</source>
         <translation>プレビューを閉じる(&amp;C)</translation>
     </message>
     <message>
-        <source>Form Settings - %1</source>
-        <translation type="obsolete">フォーム設定 - %1</translation>
-    </message>
-    <message>
-        <location line="-900"/>
         <source>&amp;New...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>新規(&amp;N)...</translation>
+    </message>
+    <message>
         <source>&amp;Open...</source>
-        <translation type="unfinished">オープン(&amp;O)...</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>開く(&amp;O)...</translation>
+    </message>
+    <message>
         <source>&amp;Save</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>保存(&amp;S)</translation>
+    </message>
+    <message>
         <source>Save &amp;As...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>名前をつけて保存(&amp;A)...</translation>
+    </message>
+    <message>
         <source>Save A&amp;ll</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>すべて保存(&amp;L)</translation>
+    </message>
+    <message>
         <source>Save As &amp;Template...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <location line="+896"/>
+        <translation>テンプレートとして保存(&amp;T)...</translation>
+    </message>
+    <message>
         <source>&amp;Close</source>
-        <translation type="unfinished">閉じる(&amp;C)</translation>
-    </message>
-    <message>
-        <location line="-895"/>
+        <translation>閉じる(&amp;C)</translation>
+    </message>
+    <message>
         <source>Save &amp;Image...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>画像を保存(&amp;I)...</translation>
+    </message>
+    <message>
         <source>&amp;Print...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>印刷(&amp;P)...</translation>
+    </message>
+    <message>
         <source>View &amp;Code...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+419"/>
-        <location line="+248"/>
+        <translation>コードを表示(&amp;C)...</translation>
+    </message>
+    <message>
         <source>Save Form As</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="-15"/>
+        <translation>名前を付けてフォームを保存</translation>
+    </message>
+    <message>
         <source>The file %1 could not be opened.
 Reason: %2
 Would you like to retry or select a different file?</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+39"/>
+        <translation>ファイル %1 はオープンできませんでした。
+原因: %2
+リトライしますか、それとも他のファイルを選択しますか?</translation>
+    </message>
+    <message>
         <source>It was not possible to write the entire file %1 to disk.
 Reason:%2
 Would you like to retry?</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+239"/>
-        <location line="+23"/>
+        <translation>ファイル %1 の全体をディスクに書き込むことができませんでした。
+原因: %2
+リトライしますか?</translation>
+    </message>
+    <message>
         <source>The backup file %1 could not be written.</source>
-        <translation type="unfinished">バックアップファイル %1 に書き込めませんでした。</translation>
-    </message>
-    <message>
-        <location line="+107"/>
+        <translation>バックアップファイル %1 に書き込めませんでした。</translation>
+    </message>
+    <message>
         <source>The backup directory %1 could not be created.</source>
-        <translation type="unfinished">バックアップディレクトリ %1 を作成できませんでした。</translation>
-    </message>
-    <message>
-        <location line="+6"/>
+        <translation>バックアップディレクトリ %1 を作成できませんでした。</translation>
+    </message>
+    <message>
         <source>The temporary backup directory %1 could not be created.</source>
-        <translation type="unfinished">バックアップ用の一時ディレクトリ %1 を作成できませんでした。</translation>
-    </message>
-    <message>
-        <location line="+30"/>
+        <translation>バックアップ用の一時ディレクトリ %1 を作成できませんでした。</translation>
+    </message>
+    <message>
         <source>Preview failed</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="-575"/>
+        <translation>プレビューできませんでした</translation>
+    </message>
+    <message>
         <source>Code generation failed</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+599"/>
+        <translation>コード生成に失敗しました</translation>
+    </message>
+    <message>
         <source>Image files (*.%1)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+9"/>
-        <location line="+17"/>
+        <translation>画像ファイル (*.%1)</translation>
+    </message>
+    <message>
         <source>Save Image</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>画像を保存</translation>
+    </message>
+    <message>
         <source>The file %1 could not be written.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="-298"/>
-        <location line="+34"/>
+        <translation>ファイル %1 に書き込めませんでした。</translation>
+    </message>
+    <message>
         <source>Assistant</source>
-        <translation type="unfinished"></translation>
+        <translation>Assistant</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 type="unfinished"></translation>
+        <translation>外観</translation>
     </message>
 </context>
 <context>
     <name>QDesignerAppearanceOptionsWidget</name>
     <message>
-        <location line="-53"/>
         <source>Docked Window</source>
-        <translation type="unfinished">ドックウィンドウ</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>ドックウィンドウ</translation>
+    </message>
+    <message>
         <source>Multiple Top-Level Windows</source>
-        <translation type="unfinished">複数のトップレベルウィンドウ</translation>
-    </message>
-    <message>
-        <location line="+5"/>
+        <translation>複数のトップレベルウィンドウ</translation>
+    </message>
+    <message>
         <source>Toolwindow Font</source>
-        <translation type="unfinished">ツールウィンドウフォント</translation>
+        <translation>ツールウィンドウのフォント</translation>
     </message>
 </context>
 <context>
     <name>QDesignerAxWidget</name>
     <message>
-        <location filename="../tools/designer/src/plugins/activeqt/qaxwidgettaskmenu.cpp" line="-71"/>
         <source>Reset control</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+2"/>
+        <translation>コントロールをリセット</translation>
+    </message>
+    <message>
         <source>Set control</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../tools/designer/src/plugins/activeqt/qdesigneraxwidget.cpp" line="+179"/>
+        <translation>コントロールを設定</translation>
+    </message>
+    <message>
         <source>Control loaded</source>
-        <translation type="unfinished">コントロールがロードされました</translation>
-    </message>
-    <message>
-        <location line="+40"/>
+        <translation>コントロールがロードされました</translation>
+    </message>
+    <message>
         <source>A COM exception occurred when executing a meta call of type %1, index %2 of &quot;%3&quot;.</source>
-        <translation type="unfinished"></translation>
+        <translation>型 %1, インデックス %2(&quot;%3&quot;)のメタコールの実行時に COM 例外が発生しました。</translation>
     </message>
 </context>
 <context>
     <name>QDesignerFormBuilder</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_formbuilder.cpp" line="+88"/>
         <source>Script errors occurred:</source>
-        <translation type="unfinished">スクリプトエラーが発生しました:</translation>
-    </message>
-    <message>
-        <location line="+304"/>
+        <translation>スクリプトエラーが発生しました:</translation>
+    </message>
+    <message>
         <source>The preview failed to build.</source>
-        <translation type="unfinished">プレビューのビルドに失敗しました。</translation>
-    </message>
-    <message>
-        <location line="+63"/>
+        <translation>プレビューのビルドに失敗しました。</translation>
+    </message>
+    <message>
         <source>Designer</source>
-        <translation type="unfinished">Designer</translation>
+        <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>フォームを保存しますか?</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Do you want to save the changes to this document before closing?</source>
         <translation>閉じる前に、このドキュメントの変更を保存しますか?</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>If you don&apos;t save, your changes will be lost.</source>
         <translation>保存しない場合は、行った変更は失われます。</translation>
     </message>
@@ -2449,38 +1609,30 @@
 <context>
     <name>QDesignerMenu</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_menu.cpp" line="-1160"/>
         <source>Type Here</source>
         <translation>ここに入力</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Add Separator</source>
         <translation>セパレータを追加</translation>
     </message>
     <message>
-        <location line="+372"/>
         <source>Insert separator</source>
         <translation>セパレータを挿入</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Remove separator</source>
-        <translation>セパレータを消去</translation>
-    </message>
-    <message>
-        <location line="+2"/>
+        <translation>セパレータを削除</translation>
+    </message>
+    <message>
         <source>Remove action &apos;%1&apos;</source>
-        <translation>アクション &apos;%1&apos; を消去</translation>
-    </message>
-    <message>
-        <location line="+25"/>
-        <location line="+628"/>
+        <translation>アクション &apos;%1&apos; を削除</translation>
+    </message>
+    <message>
         <source>Add separator</source>
         <translation>セパレータを追加</translation>
     </message>
     <message>
-        <location line="-326"/>
         <source>Insert action</source>
         <translation>アクションを挿入</translation>
     </message>
@@ -2488,75 +1640,56 @@
 <context>
     <name>QDesignerMenuBar</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_menubar.cpp" line="-381"/>
         <source>Type Here</source>
         <translation>ここに入力</translation>
     </message>
     <message>
-        <location line="+304"/>
         <source>Remove Menu &apos;%1&apos;</source>
-        <translation>メニュー &apos;%1&apos; を消去</translation>
-    </message>
-    <message>
-        <location line="+12"/>
+        <translation>メニュー &apos;%1&apos; を削除</translation>
+    </message>
+    <message>
         <source>Remove Menu Bar</source>
-        <translation>メニューバーを消去</translation>
-    </message>
-    <message>
-        <location line="+70"/>
+        <translation>メニューバーを削除</translation>
+    </message>
+    <message>
         <source>Menu</source>
         <translation>メニュー</translation>
     </message>
 </context>
 <context>
-    <name>QDesignerObjectInspector</name>
-    <message>
-        <source>Object Inspector</source>
-        <translation type="obsolete">オブジェクトインスペクタ</translation>
-    </message>
-</context>
-<context>
     <name>QDesignerPluginManager</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/pluginmanager.cpp" line="+249"/>
         <source>An XML error was encountered when parsing the XML of the custom widget %1: %2</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+27"/>
+        <translation>カスタムウィジェット %1 の XML のパース中に XML エラーが発生しました: %2</translation>
+    </message>
+    <message>
+        <source>A required attribute (&apos;%1&apos;) is missing.</source>
+        <translation>必須な属性(&apos;%1&apos;)がありません。</translation>
+    </message>
+    <message>
+        <source>An invalid property specification (&apos;%1&apos;) was encountered. Supported types: %2</source>
+        <translation>無効なプロパティの定義(&apos;%1&apos;)に遭遇しました。サポートする型: %2</translation>
+    </message>
+    <message>
+        <source>&apos;%1&apos; is not a valid string property specification.</source>
+        <translation>&apos;%1&apos; は無効な文字列プロパティの定義です。</translation>
+    </message>
+    <message>
         <source>The XML of the custom widget %1 does not contain any of the elements &lt;widget&gt; or &lt;ui&gt;.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+12"/>
+        <translation>カスタムウィジェット %1 の XML に &lt;widget&gt; と &lt;ui&gt; のどちらの要素もありません。</translation>
+    </message>
+    <message>
         <source>The class attribute for the class %1 is missing.</source>
-        <translation type="unfinished">%1 というクラスのクラス属性がありません。</translation>
-    </message>
-    <message>
-        <location line="+4"/>
+        <translation>クラス %1 にクラス属性がありません。</translation>
+    </message>
+    <message>
         <source>The class attribute for the class %1 does not match the class name %2.</source>
-        <translation type="unfinished">%1 というクラスのクラス属性は %2 というクラス名と一致しません。</translation>
-    </message>
-</context>
-<context>
-    <name>QDesignerPropertyEditor</name>
-    <message>
-        <source>Property Editor</source>
-        <translation type="obsolete">プロパティエディタ</translation>
-    </message>
-    <message>
-        <source>Ctrl+I</source>
-        <translation type="obsolete">Ctrl+I</translation>
+        <translation>クラス %1 のクラス属性はクラス名 %2 と一致しません。</translation>
     </message>
 </context>
 <context>
     <name>QDesignerPropertySheet</name>
     <message>
-        <source>Layout</source>
-        <translation type="obsolete">レイアウト</translation>
-    </message>
-    <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_propertysheet.cpp" line="+747"/>
         <source>Dynamic Properties</source>
         <translation>ダイナミックプロパティ</translation>
     </message>
@@ -2564,2112 +1697,1366 @@
 <context>
     <name>QDesignerResource</name>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/qdesigner_resource.cpp" line="-246"/>
         <source>The layout type &apos;%1&apos; is not supported, defaulting to grid.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+342"/>
+        <translation>レイアウト &apos;%1&apos; はサポートされていません。格子状のレイアウトを使用します。</translation>
+    </message>
+    <message>
         <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 type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+599"/>
+        <translation>ウィジェット &apos;%1&apos; (%2) のコンテナ拡張は %5 ページに Designer では利用できないウィジェット &apos;%3&apos; (%4) を使用しています。
+コンテナのページはカスタムウィジェットの domXml() メソッドが返す XML でのみ定義されている必要があります。</translation>
+    </message>
+    <message>
         <source>Unexpected element &lt;%1&gt;</source>
         <extracomment>Parsing clipboard contents</extracomment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+6"/>
+        <translation>予期せぬ要素 &lt;%1&gt;</translation>
+    </message>
+    <message>
         <source>Error while pasting clipboard contents at line %1, column %2: %3</source>
         <extracomment>Parsing clipboard contents</extracomment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+6"/>
+        <translation>クリップボードの内容の貼り付け中にエラーが発生しました(行 %1, 列 %2): %3</translation>
+    </message>
+    <message>
         <source>Error while pasting clipboard contents: The root element &lt;ui&gt; is missing.</source>
         <extracomment>Parsing clipboard contents</extracomment>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>QDesignerResourceEditor</name>
-    <message>
-        <source>Resource Editor</source>
-        <translation type="obsolete">リソースエディタ</translation>
+        <translation>クリップボードの内容の貼り付け中にエラーが発生しました: ルート要素 &lt;ui&gt; が見つかりません。</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 type="unfinished">テンプレートのパス %1 を作成できませんでした。</translation>
-    </message>
-    <message>
-        <location line="+184"/>
+        <translation>テンプレートのパス %1 を作成できませんでした。</translation>
+    </message>
+    <message>
         <source>An error has been encountered while parsing device profile XML: %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>QDesignerSignalSlotEditor</name>
-    <message>
-        <source>Signal/Slot Editor</source>
-        <translation type="obsolete">シグナル/スロットエディタ</translation>
-    </message>
-</context>
-<context>
-    <name>QDesignerStackedWidget</name>
-    <message>
-        <source>Previous Page</source>
-        <translation type="obsolete">前のページ</translation>
-    </message>
-    <message>
-        <source>Next Page</source>
-        <translation type="obsolete">次のページ</translation>
-    </message>
-    <message>
-        <source>Delete</source>
-        <translation type="obsolete">削除</translation>
-    </message>
-    <message>
-        <source>Before Current Page</source>
-        <translation type="obsolete">このページの前</translation>
-    </message>
-    <message>
-        <source>After Current Page</source>
-        <translation type="obsolete">このページの後</translation>
-    </message>
-    <message>
-        <source>Change Page Order...</source>
-        <translation type="obsolete">ページの順序を変更...</translation>
-    </message>
-    <message>
-        <source>Change Page Order</source>
-        <translation type="obsolete">ページの順序を変更</translation>
-    </message>
-    <message>
-        <source>Page %1 of %2</source>
-        <translation type="obsolete">%2 ページのうちの %1 ページ</translation>
-    </message>
-    <message>
-        <source>Insert Page</source>
-        <translation type="obsolete">ページを挿入</translation>
-    </message>
-</context>
-<context>
-    <name>QDesignerTabWidget</name>
-    <message>
-        <source>Delete</source>
-        <translation type="obsolete">削除</translation>
-    </message>
-    <message>
-        <source>Before Current Page</source>
-        <translation type="obsolete">このページの前</translation>
-    </message>
-    <message>
-        <source>After Current Page</source>
-        <translation type="obsolete">このページの後</translation>
-    </message>
-    <message>
-        <source>Page %1 of %2</source>
-        <translation type="obsolete">%2 ページのうちの %1 ページ</translation>
-    </message>
-    <message>
-        <source>Insert Page</source>
-        <translation type="obsolete">ページを挿入</translation>
-    </message>
-</context>
-<context>
-    <name>QDesignerTaskMenu</name>
-    <message>
-        <source>Change objectName...</source>
-        <translation type="obsolete">オブジェクト名を変更...</translation>
-    </message>
-    <message>
-        <source>Change toolTip...</source>
-        <translation type="obsolete">ツールチップを変更...</translation>
-    </message>
-    <message>
-        <source>Change whatsThis...</source>
-        <translation type="obsolete">ヒントを変更...</translation>
-    </message>
-    <message>
-        <source>Change styleSheet...</source>
-        <translation type="obsolete">スタイルシートを変更...</translation>
-    </message>
-    <message>
-        <source>Create Menu Bar</source>
-        <translation type="obsolete">メニューバーを作成</translation>
-    </message>
-    <message>
-        <source>Add Tool Bar</source>
-        <translation type="obsolete">ツールバーを追加</translation>
-    </message>
-    <message>
-        <source>Create Status Bar</source>
-        <translation type="obsolete">ステータスバーを作成</translation>
-    </message>
-    <message>
-        <source>Remove Status Bar</source>
-        <translation type="obsolete">ステータスバーを消去</translation>
-    </message>
-    <message>
-        <source>Change script...</source>
-        <translation type="obsolete">スクリプトを変更...</translation>
-    </message>
-</context>
-<context>
-    <name>QDesignerToolBox</name>
-    <message>
-        <source>Delete Page</source>
-        <translation type="obsolete">ページを削除</translation>
-    </message>
-    <message>
-        <source>Before Current Page</source>
-        <translation type="obsolete">このページの前</translation>
-    </message>
-    <message>
-        <source>After Current Page</source>
-        <translation type="obsolete">このページの後</translation>
-    </message>
-    <message>
-        <source>Change Page Order...</source>
-        <translation type="obsolete">ページの順序を変更...</translation>
-    </message>
-    <message>
-        <source>Change Page Order</source>
-        <translation type="obsolete">ページの順序を変更</translation>
-    </message>
-    <message>
-        <source>Page %1 of %2</source>
-        <translation type="obsolete">%2 ページのうちの %1 ページ</translation>
-    </message>
-    <message>
-        <source>Insert Page</source>
-        <translation type="obsolete">ページを挿入</translation>
+        <translation>デバイスプロファイルの XML のパース中にエラーが発生しました: %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 type="unfinished">プロパティエディタ</translation>
-    </message>
-    <message>
-        <location line="+54"/>
+        <translation>プロパティエディタ</translation>
+    </message>
+    <message>
         <source>Action Editor</source>
-        <translation type="unfinished">アクションエディタ</translation>
-    </message>
-    <message>
-        <location line="+42"/>
+        <translation>アクションエディタ</translation>
+    </message>
+    <message>
         <source>Object Inspector</source>
-        <translation type="unfinished">オブジェクトインスペクタ</translation>
-    </message>
-    <message>
-        <location line="+35"/>
+        <translation>オブジェクトインスペクタ</translation>
+    </message>
+    <message>
         <source>Resource Browser</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+34"/>
+        <translation>リソースブラウザ</translation>
+    </message>
+    <message>
         <source>Signal/Slot Editor</source>
-        <translation type="unfinished">シグナル/スロットエディタ</translation>
-    </message>
-    <message>
-        <location line="+41"/>
-        <source>Widget Box</source>
-        <translation type="unfinished">ウィジェットボックス</translation>
-    </message>
-</context>
-<context>
-    <name>QDesignerWidgetBox</name>
+        <translation>シグナル/スロットエディタ</translation>
+    </message>
     <message>
         <source>Widget Box</source>
-        <translation type="obsolete">ウィジェットボックス</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>
+        <translation>ウィジェットボックス</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)</translation>
     </message>
     <message>
-        <source>&amp;Recent Forms</source>
-        <translation type="obsolete">最近使用したフォーム(&amp;R)</translation>
-    </message>
-    <message>
-        <source>&amp;Edit</source>
-        <translation type="obsolete">編集(&amp;E)</translation>
-    </message>
-    <message>
-        <location line="+6"/>
         <source>F&amp;orm</source>
         <translation>フォーム(&amp;O)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Preview in</source>
         <translation>スタイルを指定してプレビュー</translation>
     </message>
     <message>
-        <source>&amp;Tools</source>
-        <translation type="obsolete">ツール(&amp;T)</translation>
-    </message>
-    <message>
-        <location line="+8"/>
         <source>&amp;Window</source>
         <translation>ウィンドウ(&amp;W)</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>&amp;Help</source>
         <translation>ヘルプ(&amp;H)</translation>
     </message>
     <message>
-        <source>File</source>
-        <translation type="obsolete">ファイル</translation>
-    </message>
-    <message>
-        <location line="-15"/>
         <source>Edit</source>
         <translation>編集</translation>
     </message>
     <message>
-        <source>Tools</source>
-        <translation type="obsolete">ツール</translation>
-    </message>
-    <message>
-        <source>Form</source>
-        <translation type="obsolete">フォーム</translation>
-    </message>
-    <message>
-        <location line="+38"/>
         <source>Toolbars</source>
         <translation>ツールバー</translation>
     </message>
     <message>
         <source>Widget Box</source>
-        <translation type="obsolete">ウィジェットボックス</translation>
-    </message>
-    <message>
-        <source>Qt Designer</source>
-        <translation type="obsolete">Qt Designer</translation>
-    </message>
-    <message>
-        <location line="+464"/>
+        <translation>ウィジェットボックス</translation>
+    </message>
+    <message>
         <source>Save Forms?</source>
         <translation>フォームを保存しますか?</translation>
     </message>
     <message>
-        <source>There are %1 forms with unsaved changes. Do you want to review these changes before quitting?</source>
-        <translation type="obsolete">変更分を保存されていないフォームが %1 個あります。終了する前に変更を確認しますか?</translation>
-    </message>
-    <message>
-        <source>If you don&apos;t review your documents, all your changes will be lost.</source>
-        <translation type="obsolete">ドキュメントを確認しない場合は、行ったすべての変更は失われます。</translation>
-    </message>
-    <message>
-        <location line="-493"/>
         <source>&amp;View</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+2"/>
+        <translation>表示(&amp;V)</translation>
+    </message>
+    <message>
         <source>&amp;Settings</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+495"/>
+        <translation>設定(&amp;S)</translation>
+    </message>
+    <message>
         <source>If you do not review your documents, all your changes will be lost.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>ドキュメントを確認しない場合、行ったすべての変更は失われます。</translation>
+    </message>
+    <message>
         <source>Discard Changes</source>
         <translation>変更を破棄</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Review Changes</source>
         <translation>変更内容を確認</translation>
     </message>
     <message>
-        <location line="+95"/>
         <source>Backup Information</source>
         <translation>バックアップ情報</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 type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Designer was not correctly terminated during your last session.There are existing Backup files, do you want to load them?</source>
-        <translation type="obsolete">前回使用したときに Designer は正しく終了されませんでした。バックアップファイルが存在します。ロードしますか?</translation>
-    </message>
-    <message>
-        <location line="+111"/>
+        <translation>前回使用したときに Designer は正しく終了されませんでした。バックアップファイルが存在します。ロードしますか?</translation>
+    </message>
+    <message>
+        <source>The file &lt;b&gt;%1&lt;/b&gt; is not a valid Designer UI file.</source>
+        <translation>ファイル &lt;b&gt;%1&lt;/b&gt; は、無効な Designer の UI ファイルです。</translation>
+    </message>
+    <message>
         <source>The file &lt;b&gt;%1&lt;/b&gt; could not be opened.</source>
         <translation>ファイル &lt;b&gt;%1&lt;/b&gt; はオープンできませんでした。</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>ファイル &lt;b&gt;%1&lt;/b&gt; は、有効な Designer の UI ファイルではありません。</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 type="unfinished">
-            <numerusform></numerusform>
+        <translation>
+            <numerusform>変更分を保存されていないフォームが %n 個あります。終了する前に変更を確認しますか?</numerusform>
         </translation>
     </message>
 </context>
 <context>
     <name>QFormBuilder</name>
     <message>
-        <location filename="../tools/designer/src/lib/uilib/formbuilder.cpp" line="+160"/>
         <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 type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+56"/>
+        <extracomment>Empty class name passed to widget factory method
+----------
+Empty class name passed to widget factory method
+----------
+Empty class name passed to widget factory method</extracomment>
+        <translation>%1 (オブジェクト名: %2)に空のクラス名が渡されました。</translation>
+    </message>
+    <message>
         <source>QFormBuilder was unable to create a custom widget of the class &apos;%1&apos;; defaulting to base class &apos;%2&apos;.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+6"/>
-        <source>QFormBuilder was unable to create a widget of the class &apos;%1&apos;.</source>
-        <translation type="unfinished">QFormBuilder は、クラス &apos;%1&apos; のウィジェットを作成できませんでした。</translation>
-    </message>
-    <message>
-        <location line="+64"/>
-        <source>The layout type `%1&apos; is not supported.</source>
-        <translation type="unfinished">レイアウトタイプ &apos;%1&apos; は、サポートされていません。</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 type="unfinished">Set型のプロパティ %1 を読めませんでした。</translation>
-    </message>
-    <message>
-        <location line="+23"/>
-        <source>The enumeration-type property %1 could not be read.</source>
-        <translation type="unfinished">Enum 型のプロパティ %1 を読めませんでした。</translation>
-    </message>
-    <message>
-        <location line="+190"/>
-        <source>Reading properties of the type %1 is not supported yet.</source>
-        <translation type="unfinished">%1 という型のプロパティの読み込みは、サポートされていません。</translation>
-    </message>
-    <message>
-        <location line="+266"/>
-        <source>The property %1 could not be written. The type %2 is not supported yet.</source>
-        <translation type="unfinished">プロパティ %1 を書き込めませんでした。%2 という型はサポートされていません。</translation>
-    </message>
-    <message>
-        <location filename="../tools/designer/src/lib/uilib/properties_p.h" line="+132"/>
-        <source>The enumeration-value &apos;%1&apos; is invalid. The default value &apos;%2&apos; will be used instead.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+14"/>
-        <source>The flag-value &apos;%1&apos; is invalid. Zero will be used instead.</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>QFormInternal::QCoreApplication</name>
-    <message>
-        <source>Syntax error.</source>
-        <translation type="obsolete">構文エラー。</translation>
-    </message>
-    <message>
-        <source>Exception at line %1: %2</source>
-        <translation type="obsolete">%1 行目で例外が発生: %2</translation>
-    </message>
-    <message>
-        <source>Unknown error</source>
-        <translation type="obsolete">不明なエラー</translation>
-    </message>
-    <message>
-        <source>An error occurred while running the script for %1: %2
-Script: %3</source>
-        <translation type="obsolete">%1 のためにスクリプトを実行していてエラーが発生しました: %2
-スクリプト: %3</translation>
-    </message>
-</context>
-<context>
-    <name>QFormInternal::QObject</name>
+        <translation>QFormBuilder はクラス &apos;%1&apos; のカスタムウィジェットを作成できませんでした。クラス &apos;%2&apos; で作成します。</translation>
+    </message>
     <message>
         <source>QFormBuilder was unable to create a widget of the class &apos;%1&apos;.</source>
-        <translation type="obsolete">QFormBuilder は、クラス &apos;%1&apos; のウィジェットを作成できませんでした。</translation>
+        <translation>QFormBuilder は、クラス &apos;%1&apos; のウィジェットを作成できませんでした。</translation>
     </message>
     <message>
         <source>The layout type `%1&apos; is not supported.</source>
-        <translation type="obsolete">レイアウトタイプ &apos;%1&apos; は、サポートされていません。</translation>
+        <translation>レイアウトタイプ &apos;%1&apos; はサポートされていません。</translation>
     </message>
     <message>
         <source>The set-type property %1 could not be read.</source>
-        <translation type="obsolete">Set型のプロパティ %1 を読めませんでした。</translation>
+        <translation>Set 型のプロパティ %1 を読めませんでした。</translation>
     </message>
     <message>
         <source>The enumeration-type property %1 could not be read.</source>
-        <translation type="obsolete">Enum 型のプロパティ %1 を読めませんでした。</translation>
+        <translation>Enum 型のプロパティ %1 を読めませんでした。</translation>
     </message>
     <message>
         <source>Reading properties of the type %1 is not supported yet.</source>
-        <translation type="obsolete">%1 という型のプロパティの読み込みは、サポートされていません。</translation>
+        <translation>%1 という型のプロパティの読み込みはサポートされていません。</translation>
     </message>
     <message>
         <source>The property %1 could not be written. The type %2 is not supported yet.</source>
-        <translation type="obsolete">プロパティ %1 を書き込めませんでした。%2 という型はサポートされていません。</translation>
-    </message>
-</context>
-<context>
-    <name>QObject</name>
-    <message>
-        <source>Show all signals and slots</source>
-        <translation type="obsolete">全てのシグナルとスロットを表示</translation>
-    </message>
-    <message>
-        <source>Configure Connection</source>
-        <translation type="obsolete">シグナル/スロット接続を設定</translation>
-    </message>
-    <message>
-        <source>A parse error occurred at line %1, column %2 of the XML code specified for the widget %3: %4
-%5</source>
-        <translation type="obsolete">ウィジェット %3 のために指定された XML コードの %1 行目の %2 カラム目でパースエラーが発生しました: %4
-%5</translation>
-    </message>
-    <message>
-        <source>The XML code specified for the widget %1 contains an invalid root element %2.
-%3</source>
-        <translation type="obsolete">ウィジェット %1 のために指定された XML コードは、無効なルートエレメント %2 を含んでいます。
-%3</translation>
-    </message>
-    <message>
-        <source>%1 - warning</source>
-        <translation type="obsolete">%1 - 警告</translation>
-    </message>
-    <message>
-        <source>The backup file %1 could not be written.</source>
-        <translation type="obsolete">バックアップファイル %1 に書き込めませんでした。</translation>
-    </message>
-    <message>
-        <source>The backup directory %1 could not be created.</source>
-        <translation type="obsolete">バックアップディレクトリ %1 を作成できませんでした。</translation>
-    </message>
-    <message>
-        <source>The temporary backup directory %1 could not be created.</source>
-        <translation type="obsolete">バックアップ用の一時ディレクトリ %1 を作成できませんでした。</translation>
-    </message>
-    <message>
-        <source>The template path %1 could not be created.</source>
-        <translation type="obsolete">テンプレートのパス %1 を作成できませんでした。</translation>
-    </message>
-    <message>
-        <source>The plugin &apos;%1&apos; failed to load: %2</source>
-        <translation type="obsolete">プラグイン &apos;%1&apos; をロードできませんでした: %2</translation>
-    </message>
-    <message>
-        <source>Not used</source>
-        <translation type="obsolete">使用されません</translation>
-    </message>
-    <message>
-        <source>Script errors occurred:</source>
-        <translation type="obsolete">スクリプトエラーが発生しました:</translation>
-    </message>
-    <message>
-        <source>Change Object Name</source>
-        <translation type="obsolete">オブジェクト名を変更</translation>
-    </message>
-    <message>
-        <source>Object Name</source>
-        <translation type="obsolete">オブジェクト名</translation>
-    </message>
-    <message>
-        <source>An error occurred while running the scripts for &quot;%1&quot;:
-</source>
-        <translation type="obsolete">&quot;%1&quot; のためにスクリプトを実行していてエラーが発生しました:
-</translation>
-    </message>
-    <message>
-        <source>The creation of a widget of the class &apos;%1&apos; failed.</source>
-        <translation type="obsolete">クラス &apos;%1&apos; のウィジェットの作成に失敗しました。</translation>
-    </message>
-    <message>
-        <source>Flags property are not supported yet.</source>
-        <translation type="obsolete">フラグのプロパティはサポートされていません。</translation>
-    </message>
-    <message>
-        <source>While applying tab stops: The widget &apos;%1&apos; could not be found.</source>
-        <translation type="obsolete">タブストップの適用中: ウィジェット &apos;%1&apos; が見つかりません。</translation>
-    </message>
-    <message>
-        <source>This version of the uitools library is linked without script support.</source>
-        <translation type="obsolete">このバージョンの uitools は、スクリプトがサポートされていないライブラリがリンクされています。</translation>
-    </message>
-    <message>
-        <source>The icon specified by %1 could not be opened: %2</source>
-        <translation type="obsolete">%1 で指定されたアイコンをオープンできませんでした: %2</translation>
-    </message>
-    <message>
-        <source>separator</source>
-        <translation type="obsolete">セパレータ</translation>
-    </message>
-    <message>
-        <source>Object</source>
-        <translation type="obsolete">オブジェクト</translation>
-    </message>
-    <message>
-        <source>Class</source>
-        <translation type="obsolete">クラス</translation>
-    </message>
-    <message>
-        <source>&lt;noname&gt;</source>
-        <translation type="obsolete">&lt;名前なし&gt;</translation>
-    </message>
-    <message>
-        <source>The widgetbox could not load the file %1.</source>
-        <translation type="obsolete">ウィジェットボックスは %1 というファイルをロードできませんでした。</translation>
-    </message>
-    <message>
-        <source>The widgetbox could not parse the file %1. An error occurred at line %2: %3</source>
-        <translation type="obsolete">ウィジェットボックスは、%1 というファイルをパースできません。%2 行目でエラーが発生しました: %3</translation>
-    </message>
-    <message>
-        <source>The file %1 does not appear to be a widgetbox file.</source>
-        <translation type="obsolete">%1 というファイルは、ウィジェットボックスのファイルではないようです。</translation>
-    </message>
-    <message>
-        <source>An error occurred while parsing the file %1: %2 is not a valid child of the root element.</source>
-        <translation type="obsolete">%1 というファイルのパース中にエラーが発生しました: %2 はルートエレメントの有効な子供ではありません。</translation>
-    </message>
-    <message>
-        <source>The class attribute for the class %1 does not match the class name %2.</source>
-        <translation type="obsolete">%1 というクラスのクラス属性は %2 というクラス名と一致しません。</translation>
-    </message>
-    <message>
-        <source>The class attribute for the class %1 is missing.</source>
-        <translation type="obsolete">%1 というクラスのクラス属性がありません。</translation>
-    </message>
-    <message>
-        <source>The style %1 could not be loaded.</source>
-        <translation type="obsolete">%1 というスタイルをロードできませんでした。</translation>
-    </message>
-    <message>
-        <source>The preview failed to build.</source>
-        <translation type="obsolete">プレビューのビルドに失敗しました。</translation>
-    </message>
-    <message>
-        <source>%1 - [Preview]</source>
-        <translation type="obsolete">%1 - [プレビュー]</translation>
-    </message>
-    <message>
-        <source>Designer</source>
-        <translation type="obsolete">Designer</translation>
-    </message>
-    <message>
-        <source>Change script</source>
-        <translation type="obsolete">スクリプトを変更</translation>
-    </message>
-    <message>
-        <source>A custom widget plugin whose class name (%1) matches that of an existing class has been found.</source>
-        <translation type="obsolete">クラス名 (%1) が既存のクラスと同じであるカスタムウィジェットプラグインが見つかりました。</translation>
-    </message>
-    <message>
-        <source>The custom widget factory registered for widgets of class %1 returned 0.</source>
-        <translation type="obsolete">%1 というクラスのウィジェットのために登録されたカスタムウィジェットファクトリーが 0 を返しました。</translation>
-    </message>
-    <message>
-        <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="obsolete">%1 というクラスのウィジェットのために登録されたカスタムウィジェットファクトリーを使ってウィジェットを作成しているときに、クラス名のミスマッチが発生しました。%2 というクラスのウィジェットを返しました。</translation>
-    </message>
-    <message>
-        <source>QFormBuilder was unable to create a widget of the class &apos;%1&apos;.</source>
-        <translation type="obsolete">QFormBuilder は、クラス &apos;%1&apos; のウィジェットを作成できませんでした。</translation>
-    </message>
-    <message>
-        <source>The layout type `%1&apos; is not supported.</source>
-        <translation type="obsolete">レイアウトタイプ &apos;%1&apos; は、サポートされていません。</translation>
-    </message>
-    <message>
-        <source>The set-type property %1 could not be read.</source>
-        <translation type="obsolete">Set型のプロパティ %1 を読めませんでした。</translation>
-    </message>
-    <message>
-        <source>The enumeration-type property %1 could not be read.</source>
-        <translation type="obsolete">Enum 型のプロパティ %1 を読めませんでした。</translation>
-    </message>
-    <message>
-        <source>Reading properties of the type %1 is not supported yet.</source>
-        <translation type="obsolete">%1 という型のプロパティの読み込みは、サポートされていません。</translation>
-    </message>
-    <message>
-        <source>The property %1 could not be written. The type %2 is not supported yet.</source>
-        <translation type="obsolete">プロパティ %1 を書き込めませんでした。%2 という型はサポートされていません。</translation>
-    </message>
-    <message>
-        <source>Color</source>
-        <translation type="obsolete">色</translation>
+        <translation>プロパティ %1 を書き込めませんでした。%2 という型はサポートされていません。</translation>
+    </message>
+    <message>
+        <source>The enumeration-value &apos;%1&apos; is invalid. The default value &apos;%2&apos; will be used instead.</source>
+        <translation>列挙型の値 &apos;%1&apos; は無効です。デフォルト値の &apos;%2&apos; を代わりに使用します。</translation>
+    </message>
+    <message>
+        <source>The flag-value &apos;%1&apos; is invalid. Zero will be used instead.</source>
+        <translation>フラグの値 &apos;%1&apos; は無効です。代わりに 0 を使用します。</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 type="unfinished">前のページ</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>前のページ</translation>
+    </message>
+    <message>
         <source>Next Page</source>
-        <translation type="unfinished">次のページ</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>次のページ</translation>
+    </message>
+    <message>
         <source>Delete</source>
-        <translation type="unfinished">削除</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>削除</translation>
+    </message>
+    <message>
         <source>Before Current Page</source>
-        <translation type="unfinished">このページの前</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>このページの前</translation>
+    </message>
+    <message>
         <source>After Current Page</source>
-        <translation type="unfinished">このページの後</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>このページの後</translation>
+    </message>
+    <message>
         <source>Change Page Order...</source>
-        <translation type="unfinished">ページの順序を変更...</translation>
-    </message>
-    <message>
-        <location line="+72"/>
+        <translation>ページの順序を変更...</translation>
+    </message>
+    <message>
         <source>Change Page Order</source>
-        <translation type="unfinished">ページの順序を変更</translation>
-    </message>
-    <message>
-        <location line="+49"/>
+        <translation>ページの順序を変更</translation>
+    </message>
+    <message>
         <source>Page %1 of %2</source>
-        <translation type="unfinished">%2 ページのうちの %1 ページ</translation>
-    </message>
-    <message>
-        <location line="+11"/>
+        <translation>%2 ページ中の %1 ページ目</translation>
+    </message>
+    <message>
         <source>Insert Page</source>
-        <translation type="unfinished">ページを挿入</translation>
+        <translation>ページを挿入</translation>
     </message>
 </context>
 <context>
     <name>QStackedWidgetPreviewEventFilter</name>
     <message>
-        <location line="-150"/>
         <source>Go to previous page of %1 &apos;%2&apos; (%3/%4).</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+4"/>
+        <translation>%1 &apos;%2&apos; の前のページに移動(%3/%4)。</translation>
+    </message>
+    <message>
         <source>Go to next page of %1 &apos;%2&apos; (%3/%4).</source>
-        <translation type="unfinished"></translation>
+        <translation>%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 type="unfinished">削除</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>削除</translation>
+    </message>
+    <message>
         <source>Before Current Page</source>
-        <translation type="unfinished">このページの前</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>このページの前</translation>
+    </message>
+    <message>
         <source>After Current Page</source>
-        <translation type="unfinished">このページの後</translation>
-    </message>
-    <message>
-        <location line="+283"/>
+        <translation>このページの後</translation>
+    </message>
+    <message>
         <source>Page %1 of %2</source>
-        <translation type="unfinished">%2 ページのうちの %1 ページ</translation>
-    </message>
-    <message>
-        <location line="+12"/>
+        <translation>%2 ページ中の %1 ページ目</translation>
+    </message>
+    <message>
         <source>Insert Page</source>
-        <translation type="unfinished">ページを挿入</translation>
+        <translation>ページを挿入</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 type="unfinished">ページを削除</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>ページを削除</translation>
+    </message>
+    <message>
         <source>Before Current Page</source>
-        <translation type="unfinished">このページの前</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>このページの前</translation>
+    </message>
+    <message>
         <source>After Current Page</source>
-        <translation type="unfinished">このページの後</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>このページの後</translation>
+    </message>
+    <message>
         <source>Change Page Order...</source>
-        <translation type="unfinished">ページの順序を変更...</translation>
-    </message>
-    <message>
-        <location line="+116"/>
+        <translation>ページの順序を変更...</translation>
+    </message>
+    <message>
         <source>Change Page Order</source>
-        <translation type="unfinished">ページの順序を変更</translation>
-    </message>
-    <message>
-        <location line="+44"/>
+        <translation>ページの順序を変更</translation>
+    </message>
+    <message>
         <source>Page %1 of %2</source>
-        <translation type="unfinished">%2 ページのうちの %1 ページ</translation>
-    </message>
-    <message>
-        <location line="+12"/>
+        <translation>%2 ページ中の %1 ページ目</translation>
+    </message>
+    <message>
         <source>Insert Page</source>
-        <translation type="unfinished">ページを挿入</translation>
+        <translation>ページを挿入</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 type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="-25"/>
-        <location line="+25"/>
+        <translation>真</translation>
+    </message>
+    <message>
         <source>False</source>
-        <translation type="unfinished"></translation>
+        <translation>偽</translation>
     </message>
 </context>
 <context>
     <name>QtBoolPropertyManager</name>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="+1477"/>
         <source>True</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>真</translation>
+    </message>
+    <message>
         <source>False</source>
-        <translation type="unfinished"></translation>
+        <translation>偽</translation>
     </message>
 </context>
 <context>
     <name>QtCharEdit</name>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qteditorfactory.cpp" line="+1601"/>
         <source>Clear Char</source>
-        <translation type="unfinished"></translation>
+        <translation>文字をクリア</translation>
     </message>
 </context>
 <context>
     <name>QtColorEditWidget</name>
     <message>
-        <location line="+611"/>
         <source>...</source>
-        <translation type="unfinished">...</translation>
+        <translation>...</translation>
     </message>
 </context>
 <context>
     <name>QtColorPropertyManager</name>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="+4777"/>
         <source>Red</source>
-        <translation type="unfinished">赤</translation>
-    </message>
-    <message>
-        <location line="+8"/>
+        <translation>赤</translation>
+    </message>
+    <message>
         <source>Green</source>
-        <translation type="unfinished">緑</translation>
-    </message>
-    <message>
-        <location line="+8"/>
+        <translation>緑</translation>
+    </message>
+    <message>
         <source>Blue</source>
-        <translation type="unfinished">青</translation>
-    </message>
-    <message>
-        <location line="+8"/>
+        <translation>青</translation>
+    </message>
+    <message>
         <source>Alpha</source>
-        <translation type="unfinished">アルファ</translation>
+        <translation>アルファ</translation>
     </message>
 </context>
 <context>
     <name>QtCursorDatabase</name>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qtpropertybrowserutils.cpp" line="-202"/>
         <source>Cross</source>
-        <translation type="unfinished">格子</translation>
-    </message>
-    <message>
-        <location line="-4"/>
+        <translation>十字型</translation>
+    </message>
+    <message>
         <source>Arrow</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+2"/>
+        <translation>矢印</translation>
+    </message>
+    <message>
         <source>Up Arrow</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+4"/>
+        <translation>上向き矢印</translation>
+    </message>
+    <message>
         <source>Wait</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+2"/>
+        <translation>待機</translation>
+    </message>
+    <message>
         <source>IBeam</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+2"/>
+        <translation>I ビーム</translation>
+    </message>
+    <message>
         <source>Size Vertical</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+2"/>
+        <translation>サイズ変更(縦方向)</translation>
+    </message>
+    <message>
         <source>Size Horizontal</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+2"/>
+        <translation>サイズ変更(横方向)</translation>
+    </message>
+    <message>
         <source>Size Backslash</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+2"/>
+        <translation>サイズ変更(バックスラッシュ)</translation>
+    </message>
+    <message>
         <source>Size Slash</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+2"/>
+        <translation>サイズ変更(スラッシュ)</translation>
+    </message>
+    <message>
         <source>Size All</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+2"/>
+        <translation>サイズ変更(4方向)</translation>
+    </message>
+    <message>
         <source>Blank</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+2"/>
+        <translation>なし</translation>
+    </message>
+    <message>
         <source>Split Vertical</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+2"/>
+        <translation>分割(縦方向)</translation>
+    </message>
+    <message>
         <source>Split Horizontal</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+2"/>
+        <translation>分割(横方向)</translation>
+    </message>
+    <message>
         <source>Pointing Hand</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+2"/>
+        <translation>ハンド(指差し)</translation>
+    </message>
+    <message>
         <source>Forbidden</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+2"/>
+        <translation>禁止</translation>
+    </message>
+    <message>
         <source>Open Hand</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+2"/>
+        <translation>ハンド(オープン)</translation>
+    </message>
+    <message>
         <source>Closed Hand</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+2"/>
+        <translation>ハンド(クローズ)</translation>
+    </message>
+    <message>
         <source>What&apos;s This</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+2"/>
+        <translation>ヘルプ</translation>
+    </message>
+    <message>
         <source>Busy</source>
-        <translation type="unfinished"></translation>
+        <translation>ビジー</translation>
     </message>
 </context>
 <context>
     <name>QtFontEditWidget</name>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qteditorfactory.cpp" line="+201"/>
         <source>...</source>
-        <translation type="unfinished">...</translation>
-    </message>
-    <message>
-        <location line="+20"/>
+        <translation>...</translation>
+    </message>
+    <message>
         <source>Select Font</source>
-        <translation type="unfinished"></translation>
+        <translation>フォントを選択</translation>
     </message>
 </context>
 <context>
     <name>QtFontPropertyManager</name>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="-332"/>
         <source>Bold</source>
-        <translation type="unfinished">ボールド</translation>
-    </message>
-    <message>
-        <location line="+7"/>
+        <translation>ボールド</translation>
+    </message>
+    <message>
         <source>Italic</source>
-        <translation type="unfinished">イタリック</translation>
-    </message>
-    <message>
-        <location line="+7"/>
+        <translation>イタリック</translation>
+    </message>
+    <message>
         <source>Underline</source>
-        <translation type="unfinished">下線</translation>
-    </message>
-    <message>
-        <location line="-35"/>
+        <translation>下線</translation>
+    </message>
+    <message>
         <source>Family</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+13"/>
+        <translation>ファミリー</translation>
+    </message>
+    <message>
         <source>Point Size</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+29"/>
+        <translation>ポイントサイズ</translation>
+    </message>
+    <message>
         <source>Strikeout</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+7"/>
+        <translation>取消線</translation>
+    </message>
+    <message>
         <source>Kerning</source>
-        <translation type="unfinished"></translation>
+        <translation>カーニング</translation>
     </message>
 </context>
 <context>
     <name>QtGradientDialog</name>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradientdialog.ui"/>
         <source>Edit Gradient</source>
-        <translation type="unfinished">グラデーションを編集</translation>
+        <translation>グラデーションを編集</translation>
     </message>
 </context>
 <context>
     <name>QtGradientEditor</name>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.cpp" line="+435"/>
         <source>Start X</source>
-        <translation type="unfinished">始点の X 座標</translation>
-    </message>
-    <message>
-        <location line="+4"/>
+        <translation>始点の X 座標</translation>
+    </message>
+    <message>
         <source>Start Y</source>
-        <translation type="unfinished">始点の Y 座標</translation>
-    </message>
-    <message>
-        <location line="+4"/>
+        <translation>始点の Y 座標</translation>
+    </message>
+    <message>
         <source>Final X</source>
-        <translation type="unfinished">終点の X 座標</translation>
-    </message>
-    <message>
-        <location line="+4"/>
+        <translation>終点の X 座標</translation>
+    </message>
+    <message>
         <source>Final Y</source>
-        <translation type="unfinished">終点の Y 座標</translation>
-    </message>
-    <message>
-        <location line="+7"/>
-        <location line="+24"/>
+        <translation>終点の Y 座標</translation>
+    </message>
+    <message>
         <source>Central X</source>
-        <translation type="unfinished">中心の X 座標</translation>
-    </message>
-    <message>
-        <location line="-20"/>
-        <location line="+24"/>
+        <translation>中心の X 座標</translation>
+    </message>
+    <message>
         <source>Central Y</source>
-        <translation type="unfinished">中心の Y 座標</translation>
-    </message>
-    <message>
-        <location line="-20"/>
+        <translation>中心の Y 座標</translation>
+    </message>
+    <message>
         <source>Focal X</source>
-        <translation type="unfinished">焦点の X 座標</translation>
-    </message>
-    <message>
-        <location line="+4"/>
+        <translation>焦点の X 座標</translation>
+    </message>
+    <message>
         <source>Focal Y</source>
-        <translation type="unfinished">焦点の Y 座標</translation>
-    </message>
-    <message>
-        <location line="+4"/>
+        <translation>焦点の Y 座標</translation>
+    </message>
+    <message>
         <source>Radius</source>
-        <translation type="unfinished">半径</translation>
-    </message>
-    <message>
-        <location line="+16"/>
+        <translation>半径</translation>
+    </message>
+    <message>
         <source>Angle</source>
-        <translation type="unfinished">角度</translation>
-    </message>
-    <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.ui"/>
+        <translation>角度</translation>
+    </message>
+    <message>
+        <source>Linear</source>
+        <translation>線状</translation>
+    </message>
+    <message>
+        <source>Radial</source>
+        <translation>放射状</translation>
+    </message>
+    <message>
+        <source>Conical</source>
+        <translation>円錐状</translation>
+    </message>
+    <message>
+        <source>Pad</source>
+        <translation>区切りの色で補充</translation>
+    </message>
+    <message>
+        <source>Repeat</source>
+        <translation>グラデーションの繰り返し</translation>
+    </message>
+    <message>
+        <source>Reflect</source>
+        <translation>グラデーションの反射</translation>
+    </message>
+    <message>
         <source>Form</source>
-        <translation type="unfinished">フォーム</translation>
-    </message>
-    <message>
-        <location/>
+        <translation>フォーム</translation>
+    </message>
+    <message>
         <source>Gradient Editor</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location/>
+        <translation>グラデーションエディタ</translation>
+    </message>
+    <message>
         <source>1</source>
-        <translation type="unfinished">1</translation>
-    </message>
-    <message>
-        <location/>
+        <translation>1</translation>
+    </message>
+    <message>
         <source>2</source>
-        <translation type="unfinished">2</translation>
-    </message>
-    <message>
-        <location/>
+        <translation>2</translation>
+    </message>
+    <message>
         <source>3</source>
-        <translation type="unfinished">3</translation>
-    </message>
-    <message>
-        <location/>
+        <translation>3</translation>
+    </message>
+    <message>
         <source>4</source>
-        <translation type="unfinished">4</translation>
-    </message>
-    <message>
-        <location/>
+        <translation>4</translation>
+    </message>
+    <message>
         <source>5</source>
-        <translation type="unfinished">5</translation>
-    </message>
-    <message>
-        <location/>
+        <translation>5</translation>
+    </message>
+    <message>
         <source>Gradient Stops Editor</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location/>
+        <translation>グラデーション制御点エディタ</translation>
+    </message>
+    <message>
         <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 type="unfinished"></translation>
-    </message>
-    <message>
-        <location/>
+        <translation>このよう息でグラデーションの制御点を編集できます。配置済みの制御点をダブルクリックすると制御点を複製します。制御点以外の場所をダブルクリックすると新しい制御点を作成します。ドラッグ &amp; ドロップで制御点の位置を調整します。マウスの右ボタンで表示されるポップアップメニューでそれ以外の操作を行います。</translation>
+    </message>
+    <message>
         <source>Zoom</source>
-        <translation type="unfinished">ズーム</translation>
-    </message>
-    <message>
-        <source>Zoom All</source>
-        <translation type="obsolete">すべてズーム</translation>
-    </message>
-    <message>
-        <location/>
+        <translation>ズーム</translation>
+    </message>
+    <message>
         <source>Position</source>
-        <translation type="unfinished">位置</translation>
-    </message>
-    <message>
-        <location/>
+        <translation>位置</translation>
+    </message>
+    <message>
         <source>Hue</source>
-        <translation type="unfinished">色相</translation>
-    </message>
-    <message>
-        <location/>
+        <translation>色相</translation>
+    </message>
+    <message>
         <source>H</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location/>
+        <translation>H</translation>
+    </message>
+    <message>
         <source>Saturation</source>
-        <translation type="unfinished">彩度</translation>
-    </message>
-    <message>
-        <location/>
+        <translation>彩度</translation>
+    </message>
+    <message>
         <source>S</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location/>
+        <translation>S</translation>
+    </message>
+    <message>
         <source>Sat</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location/>
+        <translation>彩度</translation>
+    </message>
+    <message>
         <source>Value</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location/>
+        <translation>明度</translation>
+    </message>
+    <message>
         <source>V</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location/>
+        <translation>V</translation>
+    </message>
+    <message>
         <source>Val</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location/>
+        <translation>明度</translation>
+    </message>
+    <message>
         <source>Alpha</source>
-        <translation type="unfinished">アルファ</translation>
-    </message>
-    <message>
-        <location/>
+        <translation>アルファ</translation>
+    </message>
+    <message>
         <source>A</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location/>
+        <translation>A</translation>
+    </message>
+    <message>
         <source>Type</source>
-        <translation type="unfinished">グラデーションのタイプ</translation>
-    </message>
-    <message>
-        <location/>
+        <translation>グラデーションのタイプ</translation>
+    </message>
+    <message>
         <source>Spread</source>
-        <translation type="unfinished">広がり方</translation>
-    </message>
-    <message>
-        <location/>
+        <translation>広がり方</translation>
+    </message>
+    <message>
         <source>Color</source>
-        <translation type="unfinished">色</translation>
-    </message>
-    <message>
-        <location/>
+        <translation>色</translation>
+    </message>
+    <message>
         <source>Current stop&apos;s color</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location/>
+        <translation>現在の制御点の色</translation>
+    </message>
+    <message>
         <source>HSV</source>
-        <translation type="unfinished">HSV</translation>
-    </message>
-    <message>
-        <location/>
+        <translation>HSV</translation>
+    </message>
+    <message>
         <source>RGB</source>
-        <translation type="unfinished">RGB</translation>
-    </message>
-    <message>
-        <location/>
+        <translation>RGB</translation>
+    </message>
+    <message>
         <source>Current stop&apos;s position</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location/>
+        <translation>現在の制御点の位置</translation>
+    </message>
+    <message>
         <source>%</source>
-        <translation type="unfinished">%</translation>
-    </message>
-    <message>
-        <location/>
+        <translation>%</translation>
+    </message>
+    <message>
         <source>Zoom In</source>
-        <translation type="unfinished">拡大</translation>
-    </message>
-    <message>
-        <location/>
+        <translation>拡大</translation>
+    </message>
+    <message>
         <source>Zoom Out</source>
-        <translation type="unfinished">縮小</translation>
-    </message>
-    <message>
-        <location/>
+        <translation>縮小</translation>
+    </message>
+    <message>
         <source>Toggle details extension</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location/>
+        <translation>詳細表示のオン/オフ</translation>
+    </message>
+    <message>
         <source>&gt;</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location/>
+        <translation>&gt;</translation>
+    </message>
+    <message>
         <source>Linear Type</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location/>
+        <translation>線形</translation>
+    </message>
+    <message>
         <source>...</source>
-        <translation type="unfinished">...</translation>
-    </message>
-    <message>
-        <location/>
+        <translation>...</translation>
+    </message>
+    <message>
         <source>Radial Type</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location/>
+        <translation>放射形</translation>
+    </message>
+    <message>
         <source>Conical Type</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location/>
+        <translation>円錐形</translation>
+    </message>
+    <message>
         <source>Pad Spread</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location/>
+        <translation>区切りの色で補充</translation>
+    </message>
+    <message>
         <source>Repeat Spread</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location/>
+        <translation>グラデーションの繰り返し</translation>
+    </message>
+    <message>
         <source>Reflect Spread</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location/>
+        <translation>グラデーションの反射</translation>
+    </message>
+    <message>
         <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 type="unfinished"></translation>
-    </message>
-    <message>
-        <location/>
+        <translation>この領域には編集中のグラデーションのプレビューを表示します。始点や終点、半径などのグラデーションを定義する各種のパラメータはドラッグ &amp; ドロップで編集できます。</translation>
+    </message>
+    <message>
         <source>Show HSV specification</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location/>
+        <translation>HSV 色空間で表示</translation>
+    </message>
+    <message>
         <source>Show RGB specification</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location/>
+        <translation>RGB 色空間で表示</translation>
+    </message>
+    <message>
         <source>Reset Zoom</source>
-        <translation type="unfinished"></translation>
+        <translation>ズームをリセット</translation>
     </message>
 </context>
 <context>
     <name>QtGradientStopsWidget</name>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradientstopswidget.cpp" line="+949"/>
         <source>New Stop</source>
-        <translation type="unfinished">新しい終点</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>新しい制御点</translation>
+    </message>
+    <message>
         <source>Delete</source>
-        <translation type="unfinished">削除</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>削除</translation>
+    </message>
+    <message>
         <source>Flip All</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>すべて反転</translation>
+    </message>
+    <message>
         <source>Select All</source>
-        <translation type="unfinished">すべてを選択</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>すべてを選択</translation>
+    </message>
+    <message>
         <source>Zoom In</source>
-        <translation type="unfinished">拡大</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>拡大</translation>
+    </message>
+    <message>
         <source>Zoom Out</source>
-        <translation type="unfinished">縮小</translation>
-    </message>
-    <message>
-        <source>Zoom All</source>
-        <translation type="obsolete">すべてズーム</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>縮小</translation>
+    </message>
+    <message>
         <source>Reset Zoom</source>
-        <translation type="unfinished"></translation>
+        <translation>ズームをリセット</translation>
     </message>
 </context>
 <context>
     <name>QtGradientView</name>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradientview.cpp" line="+107"/>
         <source>Grad</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+26"/>
+        <translation>グラデーション</translation>
+    </message>
+    <message>
         <source>Remove Gradient</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>グラデーションを削除</translation>
+    </message>
+    <message>
         <source>Are you sure you want to remove the selected gradient?</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+74"/>
-        <location filename="../tools/shared/qtgradienteditor/qtgradientview.ui"/>
+        <translation>選択されたグラデーションを削除しますか?</translation>
+    </message>
+    <message>
         <source>New...</source>
-        <translation type="unfinished">新規...</translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <location filename="../tools/shared/qtgradienteditor/qtgradientview.ui"/>
+        <translation>新規...</translation>
+    </message>
+    <message>
         <source>Edit...</source>
-        <translation type="unfinished">編集...</translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <location filename="../tools/shared/qtgradienteditor/qtgradientview.ui"/>
+        <translation>編集...</translation>
+    </message>
+    <message>
         <source>Rename</source>
-        <translation type="unfinished">名前の変更</translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <location filename="../tools/shared/qtgradienteditor/qtgradientview.ui"/>
+        <translation>名前の変更</translation>
+    </message>
+    <message>
         <source>Remove</source>
-        <translation type="unfinished">消去</translation>
-    </message>
-    <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradientview.ui"/>
+        <translation>削除</translation>
+    </message>
+    <message>
         <source>Gradient View</source>
-        <translation type="unfinished"></translation>
+        <translation>グラデーションビュー</translation>
     </message>
 </context>
 <context>
     <name>QtGradientViewDialog</name>
     <message>
-        <source>Edit Gradient</source>
-        <translation type="obsolete">グラデーションを編集</translation>
-    </message>
-    <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradientviewdialog.h" line="+62"/>
-        <location filename="../tools/shared/qtgradienteditor/qtgradientviewdialog.ui"/>
         <source>Select Gradient</source>
-        <translation type="unfinished"></translation>
+        <translation>グラデーションを選択</translation>
     </message>
 </context>
 <context>
     <name>QtKeySequenceEdit</name>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qtpropertybrowserutils.cpp" line="+221"/>
         <source>Clear Shortcut</source>
-        <translation type="unfinished">ショートカットをクリア</translation>
+        <translation>ショートカットをクリア</translation>
     </message>
 </context>
 <context>
     <name>QtLocalePropertyManager</name>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="-3561"/>
         <source>%1, %2</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+53"/>
+        <translation>%1, %2</translation>
+    </message>
+    <message>
         <source>Language</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+8"/>
+        <translation>言語</translation>
+    </message>
+    <message>
         <source>Country</source>
-        <translation type="unfinished"></translation>
+        <translation>国</translation>
     </message>
 </context>
 <context>
     <name>QtPointFPropertyManager</name>
     <message>
-        <location line="+415"/>
         <source>(%1, %2)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+71"/>
+        <translation>(%1, %2)</translation>
+    </message>
+    <message>
         <source>X</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+8"/>
+        <translation>X</translation>
+    </message>
+    <message>
         <source>Y</source>
-        <translation type="unfinished"></translation>
+        <translation>Y</translation>
     </message>
 </context>
 <context>
     <name>QtPointPropertyManager</name>
     <message>
-        <location line="-322"/>
         <source>(%1, %2)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+37"/>
+        <translation>(%1, %2)</translation>
+    </message>
+    <message>
         <source>X</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+7"/>
+        <translation>X</translation>
+    </message>
+    <message>
         <source>Y</source>
-        <translation type="unfinished"></translation>
+        <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 type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+30"/>
+        <translation>[%1, %2, %3] (%4)</translation>
+    </message>
+    <message>
         <source>[%1, %2]</source>
-        <translation type="unfinished"></translation>
+        <translation>[%1, %2]</translation>
     </message>
 </context>
 <context>
     <name>QtRectFPropertyManager</name>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="+1716"/>
         <source>[(%1, %2), %3 x %4]</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+156"/>
+        <translation>[(%1, %2), %3 × %4]</translation>
+    </message>
+    <message>
         <source>X</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+8"/>
+        <translation>X</translation>
+    </message>
+    <message>
         <source>Y</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+8"/>
+        <translation>Y</translation>
+    </message>
+    <message>
         <source>Width</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+9"/>
+        <translation>幅</translation>
+    </message>
+    <message>
         <source>Height</source>
-        <translation type="unfinished"></translation>
+        <translation>高さ</translation>
     </message>
 </context>
 <context>
     <name>QtRectPropertyManager</name>
     <message>
-        <location line="-614"/>
         <source>[(%1, %2), %3 x %4]</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+120"/>
+        <translation>[(%1, %2), %3 × %4]</translation>
+    </message>
+    <message>
         <source>X</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+7"/>
+        <translation>X</translation>
+    </message>
+    <message>
         <source>Y</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+7"/>
+        <translation>Y</translation>
+    </message>
+    <message>
         <source>Width</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+8"/>
+        <translation>幅</translation>
+    </message>
+    <message>
         <source>Height</source>
-        <translation type="unfinished"></translation>
+        <translation>高さ</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 type="unfinished">%1 はすでに存在します。上書きしますか?</translation>
-    </message>
-    <message>
-        <location line="+5"/>
+        <translation>%1 は既に存在します。
+上書きしますか?</translation>
+    </message>
+    <message>
         <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 type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+902"/>
+        <translation>このファイルはリソースファイルではありません。要素 &apos;%2&apos; があるべき場所に要素 &apos;%1&apos; が存在します。</translation>
+    </message>
+    <message>
         <source>%1 [read-only]</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+2"/>
-        <location line="+198"/>
+        <translation>%1 [読込専用]</translation>
+    </message>
+    <message>
         <source>%1 [missing]</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="-72"/>
+        <translation>%1 [見つかりません]</translation>
+    </message>
+    <message>
         <source>&lt;no prefix&gt;</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+320"/>
-        <location line="+567"/>
+        <translation>&lt;プレフィックスなし&gt;</translation>
+    </message>
+    <message>
         <source>New Resource File</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="-565"/>
-        <location line="+25"/>
+        <translation>新しいリソースファイル</translation>
+    </message>
+    <message>
         <source>Resource files (*.qrc)</source>
-        <translation type="unfinished">リソースファイル (*.qrc)</translation>
-    </message>
-    <message>
-        <location line="-2"/>
+        <translation>リソースファイル (*.qrc)</translation>
+    </message>
+    <message>
         <source>Import Resource File</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+112"/>
+        <translation>リソースファイルをインポート</translation>
+    </message>
+    <message>
         <source>newPrefix</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+49"/>
+        <translation>newPrefix</translation>
+    </message>
+    <message>
         <source>Add Files</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+21"/>
+        <translation>ファイルを追加</translation>
+    </message>
+    <message>
         <source>Incorrect Path</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+3"/>
-        <location line="+19"/>
-        <location line="+212"/>
-        <location line="+7"/>
+        <translation>不正なパス</translation>
+    </message>
+    <message>
         <source>Copy</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="-236"/>
+        <translation>コピー</translation>
+    </message>
+    <message>
         <source>Copy As...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+2"/>
+        <translation>名前を指定してコピー...</translation>
+    </message>
+    <message>
         <source>Keep</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+2"/>
+        <translation>キープ</translation>
+    </message>
+    <message>
         <source>Skip</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+87"/>
+        <translation>スキップ</translation>
+    </message>
+    <message>
         <source>Clone Prefix</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>プレフィックスを複製</translation>
+    </message>
+    <message>
         <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 type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+113"/>
-        <location line="+4"/>
+        <translation>複製されたファイルの名前に追加する後置詞を入力してください。
+この指定はたとえば言語を示す &quot;_ja&quot; の様に使用されます。</translation>
+    </message>
+    <message>
         <source>Copy As</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>名前を指定してコピー</translation>
+    </message>
+    <message>
         <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 type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+20"/>
+        <translation>&lt;p&gt;選択したファイル:&lt;/p&gt;&lt;p&gt;%1&lt;/p&gt;&lt;p&gt;は現在のリソースファイルのあるディレクトリにありません:&lt;/p&gt;&lt;p&gt;%2&lt;/p&gt;このディレクトリにある他のパスを選択してください。&lt;/p&gt;</translation>
+    </message>
+    <message>
         <source>Could not overwrite %1.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+54"/>
+        <translation>%1 を上書きできません。</translation>
+    </message>
+    <message>
         <source>Save Resource File</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+35"/>
+        <translation>リソースファイルを保存</translation>
+    </message>
+    <message>
         <source>Edit Resources</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+35"/>
+        <translation>リソースを編集</translation>
+    </message>
+    <message>
         <source>New...</source>
-        <translation type="unfinished">新規...</translation>
-    </message>
-    <message>
-        <location line="+2"/>
+        <translation>新規...</translation>
+    </message>
+    <message>
         <source>Open...</source>
-        <translation type="unfinished">開く...</translation>
-    </message>
-    <message>
-        <location line="-415"/>
+        <translation>開く...</translation>
+    </message>
+    <message>
         <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 type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+8"/>
+        <translation>&lt;p&gt;&lt;b&gt;警告:&lt;/b&gt; ファイル&lt;/p&gt;&lt;p&gt;%1&lt;/p&gt;&lt;p&gt;は現在のリソースファイルのあるディレクトリ以下とは別のディレクトリツリーにあります。&lt;/p&gt;</translation>
+    </message>
+    <message>
         <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 type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+288"/>
+        <translation>&lt;p&gt;この問題の解決には下記のいずれかのボタンを押してください:&lt;/p&gt;&lt;table&gt;&lt;tr&gt;&lt;th align=&quot;left&quot;&gt;コピー&lt;/th&gt;&lt;td&gt;ファイルをリソースファイルのあるディレクトリにコピーします。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th align=&quot;left&quot;&gt;名前を指定してコピー...&lt;/th&gt;&lt;td&gt;ファイルをリソースファイルのあるディレクトリもしくはそのサブディレクトリに名前を指定してコピーします。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th align=&quot;left&quot;&gt;キープ&lt;/th&gt;&lt;td&gt;現在のパスをそのまま使用します。&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</translation>
+    </message>
+    <message>
         <source>Could not copy
 %1
 to
 %2</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+35"/>
+        <translation>コピーできません:
+%1
+から
+%2
+へのコピー</translation>
+    </message>
+    <message>
         <source>A parse error occurred at line %1, column %2 of %3:
 %4</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+13"/>
+        <translation>%3 の %1 行 %2 列のパース中にエラーが発生しました:
+%4</translation>
+    </message>
+    <message>
         <source>Could not write %1: %2</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+72"/>
+        <translation>%1 に書き込むことが出来ませんでした: %2</translation>
+    </message>
+    <message>
         <source>Open Resource File</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <location line="+11"/>
+        <translation>リソースファイルを開く</translation>
+    </message>
+    <message>
         <source>Remove</source>
-        <translation type="unfinished">消去</translation>
-    </message>
-    <message>
-        <location line="-10"/>
-        <location line="+11"/>
+        <translation>削除</translation>
+    </message>
+    <message>
         <source>Move Up</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="-10"/>
-        <location line="+11"/>
+        <translation>上へ移動</translation>
+    </message>
+    <message>
         <source>Move Down</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="-9"/>
-        <location line="+1"/>
+        <translation>下へ移動</translation>
+    </message>
+    <message>
         <source>Add Prefix</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>プレフィックスを追加</translation>
+    </message>
+    <message>
         <source>Add Files...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>ファイルを追加...</translation>
+    </message>
+    <message>
         <source>Change Prefix</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>プレフィックスを変更</translation>
+    </message>
+    <message>
         <source>Change Language</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>言語を変更</translation>
+    </message>
+    <message>
         <source>Change Alias</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>エイリアスを変更</translation>
+    </message>
+    <message>
         <source>Clone Prefix...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+37"/>
+        <translation>プレフィックスを複製...</translation>
+    </message>
+    <message>
         <source>Prefix / Path</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>プレフィックス / パス</translation>
+    </message>
+    <message>
         <source>Language / Alias</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+119"/>
+        <translation>言語 / エイリアス</translation>
+    </message>
+    <message>
         <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 type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+2"/>
+        <translation>&lt;html&gt;&lt;p&gt;&lt;b&gt;警告:&lt;/b&gt; リソースのリロード中に問題が発生しました:&lt;/p&gt;&lt;pre&gt;%1&lt;/pre&gt;&lt;/html&gt;</translation>
+    </message>
+    <message>
         <source>Resource Warning</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../tools/designer/src/lib/shared/qtresourceeditordialog.ui"/>
+        <translation>リソースの警告</translation>
+    </message>
+    <message>
         <source>Dialog</source>
-        <translation type="unfinished">ダイアログ</translation>
-    </message>
-    <message>
-        <location/>
+        <translation>ダイアログ</translation>
+    </message>
+    <message>
         <source>New File</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location/>
+        <translation>新しいファイル</translation>
+    </message>
+    <message>
         <source>N</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location/>
+        <translation>N</translation>
+    </message>
+    <message>
         <source>Remove File</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location/>
+        <translation>ファイルを削除</translation>
+    </message>
+    <message>
         <source>R</source>
-        <translation type="unfinished">R</translation>
-    </message>
-    <message>
-        <location/>
+        <translation>R</translation>
+    </message>
+    <message>
         <source>I</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location/>
+        <translation>I</translation>
+    </message>
+    <message>
         <source>New Resource</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location/>
+        <translation>新しいリソース</translation>
+    </message>
+    <message>
         <source>A</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location/>
+        <translation>A</translation>
+    </message>
+    <message>
         <source>Remove Resource or File</source>
-        <translation type="unfinished"></translation>
+        <translation>リソースもしくはファイルの削除</translation>
     </message>
 </context>
 <context>
     <name>QtResourceView</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qtresourceview.cpp" line="+435"/>
         <source>Size: %1 x %2
 %3</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+18"/>
+        <translation>サイズ: %1 × %2
+%3</translation>
+    </message>
+    <message>
         <source>Edit Resources...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+5"/>
+        <translation>リソースを編集...</translation>
+    </message>
+    <message>
         <source>Reload</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+5"/>
+        <translation>再読込</translation>
+    </message>
+    <message>
         <source>Copy Path</source>
-        <translation type="unfinished"></translation>
+        <translation>パスをコピー</translation>
     </message>
 </context>
 <context>
     <name>QtResourceViewDialog</name>
     <message>
-        <location line="+247"/>
         <source>Select Resource</source>
-        <translation type="unfinished"></translation>
+        <translation>リソースを選択</translation>
     </message>
 </context>
 <context>
     <name>QtSizeFPropertyManager</name>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="-537"/>
         <source>%1 x %2</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+130"/>
+        <translation>%1 × %2</translation>
+    </message>
+    <message>
         <source>Width</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+9"/>
+        <translation>幅</translation>
+    </message>
+    <message>
         <source>Height</source>
-        <translation type="unfinished"></translation>
+        <translation>高さ</translation>
     </message>
 </context>
 <context>
     <name>QtSizePolicyPropertyManager</name>
     <message>
-        <location line="+1719"/>
-        <location line="+1"/>
         <source>&lt;Invalid&gt;</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>&lt;無効&gt;</translation>
+    </message>
+    <message>
         <source>[%1, %2, %3, %4]</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+45"/>
+        <translation>[%1, %2, %3, %4]</translation>
+    </message>
+    <message>
         <source>Horizontal Policy</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+9"/>
+        <translation>横方向のポリシー</translation>
+    </message>
+    <message>
         <source>Vertical Policy</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+9"/>
+        <translation>縦方向のポリシー</translation>
+    </message>
+    <message>
         <source>Horizontal Stretch</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+8"/>
+        <translation>横方向のストレッチ</translation>
+    </message>
+    <message>
         <source>Vertical Stretch</source>
-        <translation type="unfinished"></translation>
+        <translation>縦方向のストレッチ</translation>
     </message>
 </context>
 <context>
     <name>QtSizePropertyManager</name>
     <message>
-        <location line="-2298"/>
         <source>%1 x %2</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+96"/>
+        <translation>%1 × %2</translation>
+    </message>
+    <message>
         <source>Width</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+8"/>
+        <translation>幅</translation>
+    </message>
+    <message>
         <source>Height</source>
-        <translation type="unfinished"></translation>
+        <translation>高さ</translation>
     </message>
 </context>
 <context>
     <name>QtToolBarDialog</name>
     <message>
-        <location filename="../tools/shared/qttoolbardialog/qttoolbardialog.cpp" line="+1789"/>
         <source>&lt; S E P A R A T O R &gt;</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../tools/shared/qttoolbardialog/qttoolbardialog.ui"/>
+        <translation>&lt; セ パ レ ー タ ー &gt;</translation>
+    </message>
+    <message>
         <source>Customize Toolbars</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location/>
+        <translation>ツールバーのカスタマイズ</translation>
+    </message>
+    <message>
         <source>1</source>
-        <translation type="unfinished">1</translation>
-    </message>
-    <message>
-        <location/>
+        <translation>1</translation>
+    </message>
+    <message>
         <source>Actions</source>
-        <translation type="unfinished">アクション</translation>
-    </message>
-    <message>
-        <location/>
+        <translation>アクション</translation>
+    </message>
+    <message>
         <source>Toolbars</source>
-        <translation type="unfinished">ツールバー</translation>
-    </message>
-    <message>
-        <location/>
+        <translation>ツールバー</translation>
+    </message>
+    <message>
         <source>Add new toolbar</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location/>
+        <translation>ツールバーを追加</translation>
+    </message>
+    <message>
         <source>New</source>
-        <translation type="unfinished">新規</translation>
-    </message>
-    <message>
-        <location/>
+        <translation>新規</translation>
+    </message>
+    <message>
         <source>Remove selected toolbar</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location/>
+        <translation>選択したツールバーを削除</translation>
+    </message>
+    <message>
         <source>Remove</source>
-        <translation type="unfinished">消去</translation>
-    </message>
-    <message>
-        <location/>
+        <translation>削除</translation>
+    </message>
+    <message>
         <source>Rename toolbar</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location/>
+        <translation>ツールバーの名前の変更</translation>
+    </message>
+    <message>
         <source>Rename</source>
-        <translation type="unfinished">名前の変更</translation>
-    </message>
-    <message>
-        <location/>
+        <translation>名前の変更</translation>
+    </message>
+    <message>
         <source>Move action up</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location/>
+        <translation>アクションを上に移動</translation>
+    </message>
+    <message>
         <source>Up</source>
-        <translation type="unfinished">上へ</translation>
-    </message>
-    <message>
-        <location/>
+        <translation>上へ</translation>
+    </message>
+    <message>
         <source>Remove action from toolbar</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location/>
+        <translation>アクションをツールバーから削除</translation>
+    </message>
+    <message>
         <source>&lt;-</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location/>
+        <translation>←</translation>
+    </message>
+    <message>
         <source>Add action to toolbar</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location/>
+        <translation>アクションをツールバーに追加</translation>
+    </message>
+    <message>
         <source>-&gt;</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location/>
+        <translation>→</translation>
+    </message>
+    <message>
         <source>Move action down</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location/>
+        <translation>アクションを下に移動</translation>
+    </message>
+    <message>
         <source>Down</source>
-        <translation type="unfinished">下へ</translation>
-    </message>
-    <message>
-        <location/>
+        <translation>下へ</translation>
+    </message>
+    <message>
         <source>Current Toolbar Actions</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../tools/shared/qttoolbardialog/qttoolbardialog.cpp" line="-545"/>
+        <translation>現在のツールバーのアクション</translation>
+    </message>
+    <message>
         <source>Custom Toolbar</source>
-        <translation type="unfinished"></translation>
+        <translation>カスタムツールバー</translation>
     </message>
 </context>
 <context>
     <name>QtTreePropertyBrowser</name>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qttreepropertybrowser.cpp" line="+442"/>
         <source>Property</source>
-        <translation type="unfinished">プロパティ</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>プロパティ</translation>
+    </message>
+    <message>
         <source>Value</source>
-        <translation type="unfinished"></translation>
+        <translation>値</translation>
     </message>
 </context>
 <context>
     <name>SaveFormAsTemplate</name>
     <message>
-        <location filename="../tools/designer/src/designer/saveformastemplate.cpp" line="+72"/>
         <source>Add path...</source>
         <translation>パスを追加...</translation>
     </message>
     <message>
-        <location line="+23"/>
         <source>Template Exists</source>
         <translation>テンプレートが存在します</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>A template with the name %1 already exists.
 Do you want overwrite the template?</source>
-        <translation>%1 という名前のテンプレートがすでに存在します。
+        <translation>%1 という名前のテンプレートが既に存在します。
 上書きしますか?</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Overwrite Template</source>
         <translation>テンプレートを上書き</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Open Error</source>
         <translation>オープンエラー</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>There was an error opening template %1 for writing. Reason: %2</source>
         <translation>%1 というテンプレートを書き込み用にオープンしようとしてエラーになりました。理由: %2</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>Write Error</source>
         <translation>書き込みエラー</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>There was an error writing the template %1 to disk. Reason: %2</source>
         <translation>%1 というテンプレートをディスクに書き込もうとしてエラーになりました。理由: %2</translation>
     </message>
     <message>
-        <location line="+27"/>
         <source>Pick a directory to save templates in</source>
-        <translation type="unfinished">テンプレートを保存するディレクトリを選択してください</translation>
-    </message>
-    <message>
-        <location filename="../tools/designer/src/designer/saveformastemplate.ui"/>
+        <translation>テンプレートを保存するディレクトリを選択してください</translation>
+    </message>
+    <message>
         <source>Save Form As Template</source>
         <translation>フォームをテンプレートとして保存</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Category:</source>
         <translation>カテゴリ(&amp;C):</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Name:</source>
         <translation>名前(&amp;N):</translation>
     </message>
@@ -4677,347 +3064,343 @@
 <context>
     <name>ScriptErrorDialog</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/scripterrordialog.cpp" line="+63"/>
         <source>An error occurred while running the scripts for &quot;%1&quot;:
 </source>
-        <translation type="unfinished">&quot;%1&quot; のためにスクリプトを実行していてエラーが発生しました:
+        <translation>&quot;%1&quot; でスクリプトの実行中にエラーが発生しました:
 </translation>
     </message>
 </context>
 <context>
     <name>SelectSignalDialog</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/selectsignaldialog.ui"/>
         <source>Go to slot</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location/>
+        <translation>スロットへ移動</translation>
+    </message>
+    <message>
         <source>Select signal</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location/>
+        <translation>シグナルを選択</translation>
+    </message>
+    <message>
         <source>signal</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location/>
+        <translation>シグナル</translation>
+    </message>
+    <message>
         <source>class</source>
-        <translation type="unfinished"></translation>
+        <translation>クラス</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 type="unfinished"></translation>
+        <translation>送信者(%1), シグナル(%2), 受信者(%3), スロット(%4)</translation>
     </message>
 </context>
 <context>
     <name>SignalSlotDialogClass</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/signalslotdialog.ui"/>
         <source>Signals and slots</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location/>
+        <translation>シグナルとスロット</translation>
+    </message>
+    <message>
         <source>Slots</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location/>
+        <translation>スロット</translation>
+    </message>
+    <message>
         <source>...</source>
-        <translation type="unfinished">...</translation>
-    </message>
-    <message>
-        <location/>
+        <translation>...</translation>
+    </message>
+    <message>
         <source>Signals</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location/>
+        <translation>シグナル</translation>
+    </message>
+    <message>
         <source>Add</source>
-        <translation type="unfinished">追加</translation>
-    </message>
-    <message>
-        <location/>
+        <translation>追加</translation>
+    </message>
+    <message>
         <source>Delete</source>
-        <translation type="unfinished">削除</translation>
+        <translation>削除</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 type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+0"/>
+        <translation>横方向のスペーサー &apos;%1&apos;, %2 × %3</translation>
+    </message>
+    <message>
         <source>Vertical Spacer &apos;%1&apos;, %2 x %3</source>
-        <translation type="unfinished"></translation>
+        <translation>縦方向のスペーサー &apos;%1&apos;, %2 × %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 type="unfinished"></translation>
+        <translation>テンプレートのパス</translation>
     </message>
 </context>
 <context>
     <name>ToolBarManager</name>
     <message>
-        <location filename="../tools/designer/src/designer/mainwindow.cpp" line="+89"/>
         <source>Configure Toolbars...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+15"/>
+        <translation>ツールバーの設定...</translation>
+    </message>
+    <message>
         <source>Window</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>ウィンドウ</translation>
+    </message>
+    <message>
         <source>Help</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+7"/>
+        <translation>ヘルプ</translation>
+    </message>
+    <message>
         <source>Style</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+2"/>
+        <translation>スタイル</translation>
+    </message>
+    <message>
         <source>Dock views</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+6"/>
+        <translation>ドックビュー</translation>
+    </message>
+    <message>
+        <source>File</source>
+        <translation>ファイル</translation>
+    </message>
+    <message>
+        <source>Edit</source>
+        <translation>編集</translation>
+    </message>
+    <message>
+        <source>Tools</source>
+        <translation>ツール</translation>
+    </message>
+    <message>
+        <source>Form</source>
+        <translation>フォーム</translation>
+    </message>
+    <message>
         <source>Toolbars</source>
-        <translation type="unfinished">ツールバー</translation>
+        <translation>ツールバー</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;バージョン %2</translation>
     </message>
     <message>
-        <source> Open Source Edition</source>
-        <translation type="obsolete"> オープンソース版</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 は、Qt アプリケーションをデザインするための GUI ツールです。&lt;br/&gt;</translation>
     </message>
     <message>
-        <source>This version of Qt Designer is part of the Qt Open Source Edition, for use in the development of Open Source applications. Qt is a comprehensive C++ framework for cross-platform application development.&lt;br/&gt;&lt;br/&gt;You need a commercial Qt license for development of proprietary (closed source) applications. Please see &lt;a href=&quot;http://qt.nokia.com/company/model.html&quot;&gt;http://qt.nokia.com/company/model.html&lt;/a&gt; for an overview of Qt licensing.&lt;br/&gt;</source>
-        <translation type="obsolete">このバージョンの Qt Designer は、オープンソースアプリケーションを開発するための Qt オープンソース版の一部です。Qt は、クロスプラットフォームなアプリケーションを開発するための包括的な C++ のフレームワークです。&lt;br/&gt;&lt;br/&gt;独占的な(ソースが隠された)アプリケーションを開発するには、Qt の商用ライセンスが必要です。Qt のライセンスの概要については &lt;a href=&quot;http://qt.nokia.com/company/model.html&quot;&gt;http://qt.nokia.com/company/model.html&lt;/a&gt; をご覧ください。&lt;br/&gt;</translation>
-    </message>
-    <message>
-        <source>This program is licensed to you under the terms of the Qt Commercial License Agreement. For details, see the file LICENSE that came with this software distribution.&lt;br/&gt;</source>
-        <translation type="obsolete">このプログラムは、Qt 商用ライセンス契約書の定める条件の下であなたの利用が認められています。詳細は、ソフトウェアと一緒に配布される LICENSE ファイルを参照してください。&lt;br/&gt;</translation>
-    </message>
-    <message>
-        <location line="+5"/>
-        <source>%1&lt;br/&gt;%2&lt;br/&gt;Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).&lt;br/&gt;&lt;br/&gt;The program is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.&lt;br/&gt; </source>
-        <translation>%1&lt;br/&gt;%2&lt;br/&gt;Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). 全ての権利は保護されています。&lt;br/&gt;&lt;br/&gt;プログラムは「設計」、「市場性」および「特定の目的への適合性」も含む、あらゆる種類の「保証がなく」、「そのままで」提供されます。&lt;br/&gt;</translation>
+        <source>%1&lt;br/&gt;Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).</source>
+        <translation>%1&lt;br/&gt;Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).</translation>
+    </message>
+</context>
+<context>
+    <name>VideoPlayerTaskMenu</name>
+    <message>
+        <source>Available Mime Types</source>
+        <translation>利用可能な MIME タイプ</translation>
+    </message>
+    <message>
+        <source>Display supported mime types...</source>
+        <translation>サポートしている MIME タイプの表示...</translation>
+    </message>
+    <message>
+        <source>Load...</source>
+        <translation>ロード...</translation>
+    </message>
+    <message>
+        <source>Play</source>
+        <translation>再生</translation>
+    </message>
+    <message>
+        <source>Pause</source>
+        <translation>一時停止</translation>
+    </message>
+    <message>
+        <source>Stop</source>
+        <translation>停止</translation>
+    </message>
+    <message>
+        <source>Choose Video Player Media Source</source>
+        <translation>ビデオプレイヤーで再生するメディアのソースを選択</translation>
+    </message>
+    <message>
+        <source>An error has occurred in &apos;%1&apos;: %2</source>
+        <translation>&apos;%1&apos; でエラーが発生しました: %2</translation>
+    </message>
+    <message>
+        <source>Video Player Error</source>
+        <translation>ビデオプレイヤーエラー</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 type="unfinished"></translation>
+        <translation>ファイルに含まれるカスタムウィジェット &apos;%1&apos; の基底クラス(%2)が現在のウィジェットデータベースの基底クラス(%3)と異なります。ウィジェットデータベースは変更していません。</translation>
     </message>
 </context>
 <context>
     <name>qdesigner_internal::ActionEditor</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/actioneditor.cpp" line="+143"/>
         <source>Actions</source>
         <translation>アクション</translation>
     </message>
     <message>
-        <location line="-16"/>
         <source>New...</source>
         <translation>新規...</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Delete</source>
         <translation>削除</translation>
     </message>
     <message>
-        <location line="+307"/>
         <source>New action</source>
         <translation>新しいアクション</translation>
     </message>
     <message>
-        <location line="+98"/>
         <source>Edit action</source>
         <translation>アクションを編集</translation>
     </message>
     <message>
-        <source>Designer</source>
-        <translation type="obsolete">Designer</translation>
-    </message>
-    <message>
-        <source>Feature not implemented!</source>
-        <translation type="obsolete">その機能は実装されていません!</translation>
-    </message>
-    <message>
-        <location line="-411"/>
         <source>Edit...</source>
-        <translation type="unfinished">編集...</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>編集...</translation>
+    </message>
+    <message>
         <source>Go to slot...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>スロットへ移動...</translation>
+    </message>
+    <message>
         <source>Copy</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>コピー</translation>
+    </message>
+    <message>
         <source>Cut</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>切り取り</translation>
+    </message>
+    <message>
         <source>Paste</source>
-        <translation type="unfinished">貼り付け</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>貼り付け</translation>
+    </message>
+    <message>
         <source>Select all</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+54"/>
+        <translation>すべてを選択</translation>
+    </message>
+    <message>
         <source>Configure Action Editor</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>アクションエディタの設定</translation>
+    </message>
+    <message>
         <source>Icon View</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+6"/>
+        <translation>アイコン表示</translation>
+    </message>
+    <message>
         <source>Detailed View</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+412"/>
+        <translation>詳細表示</translation>
+    </message>
+    <message>
         <source>Remove actions</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+0"/>
+        <translation>アクションの削除</translation>
+    </message>
+    <message>
         <source>Remove action &apos;%1&apos;</source>
-        <translation type="unfinished">アクション &apos;%1&apos; を消去</translation>
-    </message>
-    <message>
-        <location line="+186"/>
+        <translation>アクション &apos;%1&apos; を削除</translation>
+    </message>
+    <message>
         <source>Used In</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>qdesigner_internal::ActionFilterWidget</name>
-    <message>
-        <source>Filter: </source>
-        <translation type="obsolete"> フィルタ: </translation>
+        <translation>使用元</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 type="unfinished">名前</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>名前</translation>
+    </message>
+    <message>
         <source>Used</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>使用中</translation>
+    </message>
+    <message>
         <source>Text</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>テキスト</translation>
+    </message>
+    <message>
         <source>Shortcut</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>ショートカット</translation>
+    </message>
+    <message>
         <source>Checkable</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>チェック可</translation>
+    </message>
+    <message>
         <source>ToolTip</source>
-        <translation type="unfinished"></translation>
+        <translation>ツールチップ</translation>
+    </message>
+</context>
+<context>
+    <name>qdesigner_internal::BrushManagerProxy</name>
+    <message>
+        <source>The element &apos;%1&apos; is missing the required attribute &apos;%2&apos;.</source>
+        <translation>要素 &apos;%1&apos; に必須な属性 &apos;%2&apos; がありません。</translation>
+    </message>
+    <message>
+        <source>Empty brush name encountered.</source>
+        <translation>ブラシの名前が空です。</translation>
+    </message>
+    <message>
+        <source>An unexpected element &apos;%1&apos; was encountered.</source>
+        <translation>予期せぬ要素 &lt;%1&gt; に遭遇しました。</translation>
+    </message>
+    <message>
+        <source>An error occurred when reading the brush definition file &apos;%1&apos; at line line %2, column %3: %4</source>
+        <translation>ブラシの定義ファイル &apos;%1&apos; の読み込み中にエラーが発生しました(%2 行, %3 列): %4</translation>
+    </message>
+    <message>
+        <source>An error occurred when reading the resource file &apos;%1&apos; at line %2, column %3: %4</source>
+        <translation>リソースファイル &apos;%1&apos; の読み込み中にエラーが発生しました(%2 行, %3 列): %4</translation>
     </message>
 </context>
 <context>
     <name>qdesigner_internal::BuddyEditor</name>
     <message>
-        <location filename="../tools/designer/src/components/buddyeditor/buddyeditor.cpp" line="+265"/>
         <source>Add buddy</source>
         <translation>buddy を追加</translation>
     </message>
     <message>
-        <location line="+52"/>
         <source>Remove buddies</source>
-        <translation>buddy を消去</translation>
+        <translation>buddy を削除</translation>
     </message>
     <message numerus="yes">
-        <location line="+24"/>
         <source>Remove %n buddies</source>
-        <translation type="unfinished">
-            <numerusform></numerusform>
+        <translation>
+            <numerusform>%n 個の buddy を削除</numerusform>
         </translation>
     </message>
     <message numerus="yes">
-        <location line="+51"/>
         <source>Add %n buddies</source>
-        <translation type="unfinished">
-            <numerusform></numerusform>
+        <translation>
+            <numerusform>%n 個の buddy を追加</numerusform>
         </translation>
     </message>
     <message>
-        <location line="+47"/>
         <source>Set automatically</source>
-        <translation type="unfinished"></translation>
+        <translation>自動的にセット</translation>
     </message>
 </context>
 <context>
     <name>qdesigner_internal::BuddyEditorPlugin</name>
     <message>
-        <location filename="../tools/designer/src/components/buddyeditor/buddyeditor_plugin.cpp" line="+77"/>
         <source>Edit Buddies</source>
         <translation>buddy を編集</translation>
     </message>
@@ -5025,7 +3408,6 @@
 <context>
     <name>qdesigner_internal::BuddyEditorTool</name>
     <message>
-        <location filename="../tools/designer/src/components/buddyeditor/buddyeditor_tool.cpp" line="+60"/>
         <source>Edit Buddies</source>
         <translation>buddy を編集</translation>
     </message>
@@ -5033,124 +3415,102 @@
 <context>
     <name>qdesigner_internal::ButtonGroupMenu</name>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/button_taskmenu.cpp" line="+7"/>
         <source>Select members</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>メンバーを選択</translation>
+    </message>
+    <message>
         <source>Break</source>
-        <translation type="unfinished"></translation>
+        <translation>ボタングループを破棄</translation>
     </message>
 </context>
 <context>
     <name>qdesigner_internal::ButtonTaskMenu</name>
     <message>
-        <location line="+121"/>
         <source>Assign to button group</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+2"/>
+        <translation>ボタングループに割り当て</translation>
+    </message>
+    <message>
         <source>Button group</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>ボタングループ</translation>
+    </message>
+    <message>
         <source>New button group</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>新しいボタングループ</translation>
+    </message>
+    <message>
         <source>Change text...</source>
         <translation>テキストを変更...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>None</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+101"/>
+        <translation>なし</translation>
+    </message>
+    <message>
         <source>Button group &apos;%1&apos;</source>
-        <translation type="unfinished"></translation>
+        <translation>ボタングループ &apos;%1&apos;</translation>
     </message>
 </context>
 <context>
     <name>qdesigner_internal::CodeDialog</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/codedialog.cpp" line="+99"/>
         <source>Save...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+4"/>
+        <translation>保存...</translation>
+    </message>
+    <message>
         <source>Copy All</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+5"/>
+        <translation>すべてコピー</translation>
+    </message>
+    <message>
         <source>&amp;Find in Text...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+75"/>
+        <translation>テキストを検索(&amp;F)...</translation>
+    </message>
+    <message>
         <source>A temporary form file could not be created in %1.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+6"/>
+        <translation>一時フォームファイルを %1に作成できませんでした。</translation>
+    </message>
+    <message>
         <source>The temporary form file %1 could not be written.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+21"/>
+        <translation>一時フォームファイル %1 に書き込めませんでした。</translation>
+    </message>
+    <message>
         <source>%1 - [Code]</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+23"/>
+        <translation>%1 - [コード]</translation>
+    </message>
+    <message>
         <source>Save Code</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+0"/>
+        <translation>コードを保存</translation>
+    </message>
+    <message>
         <source>Header Files (*.%1)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+6"/>
+        <translation>ヘッダファイル (*.%1)</translation>
+    </message>
+    <message>
         <source>The file %1 could not be opened: %2</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+5"/>
+        <translation>ファイル %1 はオープンできませんでした: %2</translation>
+    </message>
+    <message>
         <source>The file %1 could not be written: %2</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+11"/>
+        <translation>ファイル %1 に書き込めませんでした: %2</translation>
+    </message>
+    <message>
         <source>%1 - Error</source>
-        <translation type="unfinished">%1 - エラー</translation>
+        <translation>%1 - エラー</translation>
     </message>
 </context>
 <context>
     <name>qdesigner_internal::ColorAction</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/richtexteditor.cpp" line="+250"/>
         <source>Text Color</source>
-        <translation type="unfinished"></translation>
+        <translation>テキストの色</translation>
     </message>
 </context>
 <context>
     <name>qdesigner_internal::ComboBoxTaskMenu</name>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/combobox_taskmenu.cpp" line="+72"/>
         <source>Edit Items...</source>
         <translation>アイテムを編集...</translation>
     </message>
     <message>
-        <location line="+38"/>
         <source>Change Combobox Contents</source>
         <translation>コンボボックスの内容を変更</translation>
     </message>
@@ -5158,928 +3518,663 @@
 <context>
     <name>qdesigner_internal::CommandLinkButtonTaskMenu</name>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/button_taskmenu.cpp" line="+156"/>
         <source>Change description...</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>qdesigner_internal::ConnectionDelegate</name>
-    <message>
-        <source>&lt;object&gt;</source>
-        <translation type="obsolete">&lt;オブジェクト&gt;</translation>
-    </message>
-    <message>
-        <source>&lt;signal&gt;</source>
-        <translation type="obsolete">&lt;シグナル&gt;</translation>
-    </message>
-    <message>
-        <source>&lt;slot&gt;</source>
-        <translation type="obsolete">&lt;スロット&gt;</translation>
+        <translation>記述を変更...</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 type="unfinished">すべてを選択</translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>すべてを選択</translation>
+    </message>
+    <message>
         <source>Deselect All</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+5"/>
+        <translation>すべてを選択解除</translation>
+    </message>
+    <message>
         <source>Delete</source>
-        <translation type="unfinished">削除</translation>
+        <translation>削除</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>発信者</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Signal</source>
         <translation>シグナル</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Receiver</source>
         <translation>受信者</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Slot</source>
         <translation>スロット</translation>
     </message>
     <message>
-        <location line="+90"/>
         <source>&lt;sender&gt;</source>
         <translation>&lt;発信者&gt;</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&lt;signal&gt;</source>
         <translation>&lt;シグナル&gt;</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&lt;receiver&gt;</source>
         <translation>&lt;受信者&gt;</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&lt;slot&gt;</source>
         <translation>&lt;スロット&gt;</translation>
     </message>
     <message>
-        <location line="+108"/>
         <source>The connection already exists!&lt;br&gt;%1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+2"/>
+        <translation>その接続は既に存在します!&lt;br&gt;%1</translation>
+    </message>
+    <message>
         <source>Signal and Slot Editor</source>
         <translation>シグナルスロットエディタ</translation>
     </message>
-    <message>
-        <source>The connection already exists!&lt;br&gt;SENDER(%1), SIGNAL(%2), RECEIVER(%3), SLOT(%4)</source>
-        <translation type="obsolete">すでに接続が存在します!&lt;br&gt;送信者(%1)、シグナル(%2)、受信者(%3)、スロット(%4)</translation>
-    </message>
 </context>
 <context>
     <name>qdesigner_internal::ContainerWidgetTaskMenu</name>
     <message>
-        <source>Delete Page</source>
-        <translation type="obsolete">ページを削除</translation>
-    </message>
-    <message>
-        <location filename="../tools/designer/src/components/taskmenu/containerwidget_taskmenu.cpp" line="+112"/>
         <source>Insert Page Before Current Page</source>
         <translation>このページの前にページを挿入</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Insert Page After Current Page</source>
         <translation>このページの後にページを挿入</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Add Subwindow</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="-40"/>
+        <translation>新しいサブウィンドウ</translation>
+    </message>
+    <message>
         <source>Delete</source>
-        <translation type="unfinished">削除</translation>
-    </message>
-    <message>
-        <location line="+25"/>
+        <translation>削除</translation>
+    </message>
+    <message>
         <source>Insert</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+53"/>
+        <translation>挿入</translation>
+    </message>
+    <message>
         <source>Subwindow</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+2"/>
+        <translation>サブウィンドウ</translation>
+    </message>
+    <message>
         <source>Page</source>
-        <translation type="unfinished">ページ</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>ページ</translation>
+    </message>
+    <message>
         <source>Page %1 of %2</source>
-        <translation type="unfinished">%2 ページのうちの %1 ページ</translation>
+        <translation>%2 ページ中の %1 ページ目</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 type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+7"/>
+        <translation>システム (%1 × %2)</translation>
+    </message>
+    <message>
         <source>User defined</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+18"/>
+        <translation>ユーザ定義</translation>
+    </message>
+    <message>
         <source> x </source>
         <extracomment>DPI X/Y separator</extracomment>
-        <translation type="unfinished"></translation>
+        <translation> × </translation>
     </message>
 </context>
 <context>
     <name>qdesigner_internal::DesignerPropertyManager</name>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/designerpropertymanager.cpp" line="+644"/>
-        <location line="+6"/>
         <source>AlignLeft</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="-5"/>
+        <translation>左端揃え</translation>
+    </message>
+    <message>
         <source>AlignHCenter</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>中央揃え(横方向)</translation>
+    </message>
+    <message>
         <source>AlignRight</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>右端揃え</translation>
+    </message>
+    <message>
         <source>AlignJustify</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+9"/>
+        <translation>両端揃え</translation>
+    </message>
+    <message>
         <source>AlignTop</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <location line="+4"/>
+        <translation>上端揃え</translation>
+    </message>
+    <message>
         <source>AlignVCenter</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="-3"/>
+        <translation>中央揃え(縦方向)</translation>
+    </message>
+    <message>
         <source>AlignBottom</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+565"/>
+        <translation>下端揃え</translation>
+    </message>
+    <message>
         <source>%1, %2</source>
-        <translation type="unfinished"></translation>
+        <translation>%1, %2</translation>
     </message>
     <message numerus="yes">
-        <location line="+6"/>
         <source>Customized (%n roles)</source>
-        <translation type="unfinished">
-            <numerusform></numerusform>
+        <translation>
+            <numerusform>カスタムパレット (%n ロール)</numerusform>
         </translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Inherited</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+566"/>
+        <translation>親から継承</translation>
+    </message>
+    <message>
         <source>Horizontal</source>
-        <translation type="unfinished">横</translation>
-    </message>
-    <message>
-        <location line="+9"/>
+        <translation>横方向</translation>
+    </message>
+    <message>
         <source>Vertical</source>
-        <translation type="unfinished">縦</translation>
-    </message>
-    <message>
-        <location line="+15"/>
+        <translation>縦方向</translation>
+    </message>
+    <message>
         <source>Normal Off</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>通常 オフ</translation>
+    </message>
+    <message>
         <source>Normal On</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>通常 オン</translation>
+    </message>
+    <message>
         <source>Disabled Off</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>無効化 オフ</translation>
+    </message>
+    <message>
         <source>Disabled On</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>無効化 オン</translation>
+    </message>
+    <message>
         <source>Active Off</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>アクティブ オフ</translation>
+    </message>
+    <message>
         <source>Active On</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>アクティブ オン</translation>
+    </message>
+    <message>
         <source>Selected Off</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>選択済み オフ</translation>
+    </message>
+    <message>
         <source>Selected On</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+7"/>
-        <location line="+21"/>
+        <translation>選択済み オン</translation>
+    </message>
+    <message>
         <source>translatable</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="-15"/>
-        <location line="+21"/>
+        <translation>翻訳可能</translation>
+    </message>
+    <message>
         <source>disambiguation</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="-15"/>
-        <location line="+21"/>
+        <translation>あいまいさ回避</translation>
+    </message>
+    <message>
         <source>comment</source>
-        <translation type="unfinished"></translation>
+        <translation>コメント</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 type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+31"/>
+        <translation>デバイスプロファイル (*.%1)</translation>
+    </message>
+    <message>
         <source>Default</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+67"/>
+        <translation>デフォルト</translation>
+    </message>
+    <message>
         <source>Save Profile</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+10"/>
+        <translation>プロファイルを保存</translation>
+    </message>
+    <message>
         <source>Save Profile - Error</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+0"/>
+        <translation>プロファイルを保存 - エラー</translation>
+    </message>
+    <message>
         <source>Unable to open the file &apos;%1&apos; for writing: %2</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+8"/>
+        <translation>ファイル &apos;%1&apos; を書き込み用にオープンできませんでした: %2</translation>
+    </message>
+    <message>
         <source>Open profile</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+6"/>
-        <location line="+6"/>
+        <translation>プロファイルをオープン</translation>
+    </message>
+    <message>
         <source>Open Profile - Error</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="-6"/>
+        <translation>プロファイルをオープン - Error</translation>
+    </message>
+    <message>
         <source>Unable to open the file &apos;%1&apos; for reading: %2</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+6"/>
+        <translation>ファイル &apos;%1&apos; を読み込み用にオープンできませんでした: %2</translation>
+    </message>
+    <message>
         <source>&apos;%1&apos; is not a valid profile: %2</source>
-        <translation type="unfinished"></translation>
+        <translation>&apos;%1&apos; は無効なプロファイルです: %2</translation>
     </message>
 </context>
 <context>
     <name>qdesigner_internal::Dialog</name>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/stringlisteditor.ui"/>
         <source>Dialog</source>
         <translation>ダイアログ</translation>
     </message>
     <message>
-        <location/>
         <source>StringList</source>
         <translation>文字列リスト</translation>
     </message>
     <message>
-        <location/>
         <source>New String</source>
         <translation>新しい文字列</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;New</source>
         <translation>新規(&amp;N)</translation>
     </message>
     <message>
-        <location/>
         <source>Delete String</source>
         <translation>文字列を削除</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Delete</source>
         <translation>削除(&amp;D)</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Value:</source>
         <translation>値(&amp;V):</translation>
     </message>
     <message>
-        <location/>
         <source>Move String Up</source>
         <translation>文字列を上へ</translation>
     </message>
     <message>
-        <location/>
         <source>Up</source>
         <translation>上へ</translation>
     </message>
     <message>
-        <location/>
         <source>Move String Down</source>
         <translation>文字列を下へ</translation>
     </message>
     <message>
-        <location/>
         <source>Down</source>
         <translation>下へ</translation>
     </message>
 </context>
 <context>
-    <name>qdesigner_internal::EditableResourceModel</name>
-    <message>
-        <source>Invalid files</source>
-        <translation type="obsolete">無効なファイル</translation>
-    </message>
-    <message>
-        <source>Files referenced in a qrc must be in the qrc&apos;s directory or one of its subdirectories:&lt;p&gt;&lt;b&gt;%1&lt;/b&gt;&lt;p&gt;Some of the selected files do not comply with this.</source>
-        <translation type="obsolete">qrc から参照されているファイルは、qrc のディレクトリもしくはサブディレクトリのいずれかにある必要があります:&lt;p&gt;&lt;b&gt;%1&lt;/b&gt;&lt;p&gt;選択されたファイルの中には、この条件に従わないものがあります。</translation>
-    </message>
-    <message>
-        <source>Only insert files which comply</source>
-        <translation type="obsolete">条件に従うファイルだけを挿入する</translation>
-    </message>
-    <message>
-        <source>Files referenced in a qrc must be in the qrc&apos;s directory or one of its subdirectories:&lt;p&gt;&lt;b&gt;%1&lt;/b&gt;&lt;p&gt;The selected files do not comply with this.</source>
-        <translation type="obsolete">qrc から参照されているファイルは、qrc のディレクトリもしくはサブディレクトリのいずれかにある必要があります:&lt;p&gt;&lt;b&gt;%1&lt;/b&gt;&lt;p&gt;選択されたファイルは、この条件に従っていません。</translation>
-    </message>
-    <message>
-        <source>Error loading resource file</source>
-        <translation type="obsolete">リソースファイルのロードエラー</translation>
-    </message>
-    <message>
-        <source>Failed to open &quot;%1&quot;:
-%2</source>
-        <translation type="obsolete">&quot;%1&quot; のオープンに失敗: %2</translation>
-    </message>
-    <message>
-        <source>Error saving resource file</source>
-        <translation type="obsolete">リソースファイルの保存エラー</translation>
-    </message>
-    <message>
-        <source>Failed to save &quot;%1&quot;:
-%2</source>
-        <translation type="obsolete">&quot;%1&quot; の保存に失敗: 
-%2</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 type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+4"/>
+        <translation>なし</translation>
+    </message>
+    <message>
         <source>Add a profile</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+6"/>
+        <translation>プロファイルを追加</translation>
+    </message>
+    <message>
         <source>Edit the selected profile</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+4"/>
+        <translation>選択したプロファイルを編集</translation>
+    </message>
+    <message>
         <source>Delete the selected profile</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+22"/>
+        <translation>選択したプロファイルを削除</translation>
+    </message>
+    <message>
         <source>Add Profile</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+7"/>
+        <translation>プロファイルを追加</translation>
+    </message>
+    <message>
         <source>New profile</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+35"/>
+        <translation>新しいプロファイル</translation>
+    </message>
+    <message>
         <source>Edit Profile</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+26"/>
+        <translation>プロファイルを編集</translation>
+    </message>
+    <message>
         <source>Delete Profile</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>プロファイルを削除</translation>
+    </message>
+    <message>
         <source>Would you like to delete the profile &apos;%1&apos;?</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+55"/>
+        <translation>プロファイル &apos;%1&apos; を削除しますか?</translation>
+    </message>
+    <message>
         <source>Default</source>
-        <translation type="unfinished"></translation>
+        <translation>デフォルト</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 type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>qdesigner_internal::FindIconDialog</name>
-    <message>
-        <source>Find Icon</source>
-        <translation type="obsolete">アイコン検索</translation>
-    </message>
-    <message>
-        <source>Specify resource</source>
-        <translation type="obsolete">リソースを指定</translation>
-    </message>
-    <message>
-        <source>Specify image file</source>
-        <translation type="obsolete">イメージファイルを指定</translation>
-    </message>
-    <message>
-        <source>Parent directory</source>
-        <translation type="obsolete">親ディレクトリ</translation>
+        <source>Filter</source>
+        <translation>フィルタ</translation>
+    </message>
+    <message>
+        <source>Clear text</source>
+        <translation>テキストをクリア</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 type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>リソースファイルが変更されました</translation>
+    </message>
+    <message>
         <source>The file &quot;%1&quot; has changed outside Designer. Do you want to reload it?</source>
-        <translation type="unfinished"></translation>
+        <translation>ファイル &quot;%1&quot; は Designer 以外で変更されました。リロードしますか?</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 type="unfinished"></translation>
+        <translation>フォームレイアウトに行を追加...</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>内容を編集</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>F2</source>
         <translation>F2</translation>
     </message>
     <message>
-        <source>Insert widget &apos;%1</source>
-        <translation type="obsolete">ウィジェット &apos;%1 を挿入</translation>
-    </message>
-    <message>
-        <location line="+841"/>
         <source>Resize</source>
         <translation>サイズ変更</translation>
     </message>
     <message>
-        <location line="+218"/>
-        <location line="+15"/>
         <source>Key Move</source>
-        <translation>キーの移動</translation>
-    </message>
-    <message>
-        <source>Paste</source>
-        <translation type="obsolete">貼り付け</translation>
-    </message>
-    <message>
-        <location line="+276"/>
+        <translation>移動キー</translation>
+    </message>
+    <message>
         <source>Paste error</source>
         <translation>貼り付けエラー</translation>
     </message>
     <message>
-        <source>Can&apos;t paste widgets. Designer couldn&apos;t find a container
-to paste into which does not contain a layout. Break the layout
-of the container you want to paste into and select this container
-and then paste again.</source>
-        <translation type="obsolete">ウィジェットを貼り付けられません。Designer は、ウィジェットを貼り付けることができる、レイアウトを含まないコンテナを見つけることができませんでした。貼り付け先のコンテナのレイアウトを破棄し、もう一度そのコンテナを選んで貼り付けてください。</translation>
-    </message>
-    <message>
-        <source>Break layout</source>
-        <translation type="obsolete">レイアウトを破棄する</translation>
-    </message>
-    <message>
-        <location line="+442"/>
         <source>Lay out</source>
         <translation>レイアウト</translation>
     </message>
     <message>
-        <location line="+493"/>
-        <location line="+55"/>
         <source>Drop widget</source>
         <translation>ウィジェットの貼り付け</translation>
     </message>
     <message numerus="yes">
-        <location line="-1055"/>
         <source>Paste %n action(s)</source>
-        <translation type="unfinished">
-            <numerusform></numerusform>
+        <translation>
+            <numerusform>%n 個のアクションの貼り付け</numerusform>
         </translation>
     </message>
     <message>
-        <location line="-511"/>
         <source>Insert widget &apos;%1&apos;</source>
-        <translation type="unfinished"></translation>
+        <translation>ウィジェット &apos;%1&apos; を挿入</translation>
+    </message>
+    <message>
+        <source>Key Resize</source>
+        <translation>リサイズキー</translation>
     </message>
     <message numerus="yes">
-        <location line="+513"/>
         <source>Paste %n widget(s)</source>
-        <translation type="unfinished">
-            <numerusform></numerusform>
+        <translation>
+            <numerusform>%n 個のウィジェットの貼り付け</numerusform>
         </translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Paste (%1 widgets, %2 actions)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+56"/>
+        <translation>%1 個のウィジェットと %2 個のアクションの貼り付け</translation>
+    </message>
+    <message>
         <source>Cannot paste widgets. Designer could not find a container without a layout to paste into.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+2"/>
+        <translation>ウィジェットを貼り付けできません。Designer は貼り付け先となるレイアウトを持たないコンテナを見つけられません。</translation>
+    </message>
+    <message>
         <source>Break the layout of the container you want to paste into, select this container and then paste again.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+187"/>
+        <translation>貼り付け先となるコンテナのレイアウトを破棄して、改めてそのコンテナを選択して貼り付けてください。</translation>
+    </message>
+    <message>
         <source>Raise widgets</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+17"/>
+        <translation>ウィジェットを前面に移動</translation>
+    </message>
+    <message>
         <source>Lower widgets</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+201"/>
+        <translation>ウィジェットを後方に移動</translation>
+    </message>
+    <message>
         <source>Select Ancestor</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+576"/>
+        <translation>Ancestor を選択</translation>
+    </message>
+    <message>
         <source>A QMainWindow-based form does not contain a central widget.</source>
-        <translation type="unfinished"></translation>
+        <translation>QMainWindow ベースのフォームにセントラルウィジェットが含まれていません。</translation>
     </message>
 </context>
 <context>
     <name>qdesigner_internal::FormWindowBase</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/formwindowbase.cpp" line="+397"/>
         <source>Delete</source>
         <translation>削除</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Delete &apos;%1&apos;</source>
-        <translation type="unfinished">&apos;%1&apos; を削除</translation>
+        <translation>&apos;%1&apos; を削除</translation>
     </message>
 </context>
 <context>
     <name>qdesigner_internal::FormWindowManager</name>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/formwindowmanager.cpp" line="+368"/>
         <source>Cu&amp;t</source>
         <translation>切り取り(&amp;T)</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Cuts the selected widgets and puts them on the clipboard</source>
         <translation>選択されたウィジェットを切り取ってクリップボードに出力</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>&amp;Copy</source>
         <translation>コピー(&amp;C)</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Copies the selected widgets to the clipboard</source>
         <translation>選択されたウィジェットをクリップボードにコピー</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>&amp;Paste</source>
         <translation>貼り付け(&amp;P)</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Pastes the clipboard&apos;s contents</source>
         <translation>クリップボードの中身をペースト</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>&amp;Delete</source>
         <translation>削除(&amp;D)</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Deletes the selected widgets</source>
         <translation>選択したウィジェットを削除</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Select &amp;All</source>
         <translation>すべてを選択(&amp;A)</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Selects all widgets</source>
         <translation>すべてのウィジェットを選択</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Bring to &amp;Front</source>
         <translation>前面へ移動(&amp;F)</translation>
     </message>
     <message>
-        <location line="+3"/>
-        <location line="+1"/>
         <source>Raises the selected widgets</source>
         <translation>選択したウィジェットを前へ移動</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Send to &amp;Back</source>
         <translation>背面へ移動(&amp;B)</translation>
     </message>
     <message>
-        <location line="+3"/>
-        <location line="+1"/>
         <source>Lowers the selected widgets</source>
         <translation>選択したウィジェットを後へ移動</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Adjust &amp;Size</source>
         <translation>サイズ調整(&amp;S)</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Adjusts the size of the selected widget</source>
         <translation>選択されたウィジィトのサイズを調整</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Lay Out &amp;Horizontally</source>
         <translation>水平に並べる(&amp;H)</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Lays out the selected widgets horizontally</source>
         <translation>選択したウィジェットを水平に並べる</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Lay Out &amp;Vertically</source>
         <translation>垂直に並べる(&amp;V)</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Lays out the selected widgets vertically</source>
         <translation>選択したウィジェットを垂直に並べる</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Lay Out in a &amp;Form Layout</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>フォームレイアウトで並べる(&amp;F)</translation>
+    </message>
+    <message>
         <source>Lays out the selected widgets in a form layout</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+7"/>
+        <translation>選択したウィジェットをフォームレイアウトに配置</translation>
+    </message>
+    <message>
         <source>Lay Out in a &amp;Grid</source>
         <translation>格子状に並べる(&amp;G)</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Lays out the selected widgets in a grid</source>
         <translation>選択したウィジェットを格子状に並べる</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Lay Out Horizontally in S&amp;plitter</source>
         <translation>水平にスプリッタの中に並べる(&amp;P)</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Lays out the selected widgets horizontally in a splitter</source>
         <translation>選択されたウィジェットをスプリッタの中で水平方向に配置</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Lay Out Vertically in Sp&amp;litter</source>
         <translation>垂直にスプリッタの中に並べる(&amp;L)</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Lays out the selected widgets vertically in a splitter</source>
         <translation>選択されたウィジェットをスプリッタの中で垂直方向に配置</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>&amp;Break Layout</source>
         <translation>レイアウトを破棄(&amp;B)</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Breaks the selected layout</source>
         <translation>選択されたレイアウトを破棄</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Si&amp;mplify Grid Layout</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+8"/>
+        <translation>格子状のレイアウトを正規化する(&amp;M)</translation>
+    </message>
+    <message>
         <source>&amp;Preview...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+2"/>
+        <translation>プレビュー(&amp;P)...</translation>
+    </message>
+    <message>
         <source>Preview current form</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+14"/>
+        <translation>現在のフォームをプレビュー</translation>
+    </message>
+    <message>
         <source>Form &amp;Settings...</source>
-        <translation type="unfinished">フォームの設定(&amp;S)...</translation>
-    </message>
-    <message>
-        <location line="+78"/>
+        <translation>フォームの設定(&amp;S)...</translation>
+    </message>
+    <message>
         <source>Break Layout</source>
         <translation>レイアウトを破棄する</translation>
     </message>
     <message>
-        <location line="+26"/>
         <source>Adjust Size</source>
         <translation>サイズ調整</translation>
     </message>
     <message>
-        <location line="+43"/>
         <source>Could not create form preview</source>
         <comment>Title of warning message box</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+341"/>
+        <translation>フォームがプレビューできません</translation>
+    </message>
+    <message>
         <source>Form Settings - %1</source>
-        <translation type="unfinished">フォーム設定 - %1</translation>
-    </message>
-    <message>
-        <location line="-510"/>
+        <translation>フォーム設定 - %1</translation>
+    </message>
+    <message>
         <source>Removes empty columns and rows</source>
-        <translation type="unfinished"></translation>
+        <translation>空の列と行を削除</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 type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>なし</translation>
+    </message>
+    <message>
         <source>Device Profile: %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>qdesigner_internal::GraphicsPropertyEditor</name>
-    <message>
-        <source>&lt;no icon&gt;</source>
-        <translation type="obsolete">&lt;アイコンなし&gt;</translation>
-    </message>
-    <message>
-        <source>&lt;no pixmap&gt;</source>
-        <translation type="obsolete">&lt;ピックスマップなし&gt;</translation>
-    </message>
-    <message>
-        <source>...</source>
-        <translation type="obsolete">...</translation>
+        <translation>デバイスプロファイル: %1</translation>
     </message>
 </context>
 <context>
     <name>qdesigner_internal::GridPanel</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/gridpanel.ui"/>
         <source>Form</source>
         <translation>フォーム</translation>
     </message>
     <message>
-        <location/>
         <source>Grid</source>
         <translation>グリッド</translation>
     </message>
     <message>
-        <location/>
         <source>Visible</source>
         <translation>グリッドを表示</translation>
     </message>
     <message>
-        <location/>
         <source>Grid &amp;X</source>
         <translation>X軸のグリッド間隔(&amp;X)</translation>
     </message>
     <message>
-        <location/>
         <source>Snap</source>
         <translation>補正</translation>
     </message>
     <message>
-        <location/>
         <source>Reset</source>
         <translation>リセット</translation>
     </message>
     <message>
-        <location/>
         <source>Grid &amp;Y</source>
         <translation>Y軸のグリッド間隔(&amp;Y)</translation>
     </message>
@@ -6087,7 +4182,6 @@
 <context>
     <name>qdesigner_internal::GroupBoxTaskMenu</name>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/groupbox_taskmenu.cpp" line="+86"/>
         <source>Change title...</source>
         <translation>タイトルを変更...</translation>
     </message>
@@ -6095,180 +4189,153 @@
 <context>
     <name>qdesigner_internal::HtmlTextEdit</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/richtexteditor.cpp" line="-58"/>
         <source>Insert HTML entity</source>
-        <translation type="unfinished"></translation>
+        <translation>HTML エンティティを挿入</translation>
     </message>
 </context>
 <context>
     <name>qdesigner_internal::IconSelector</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/iconselector.cpp" line="+211"/>
         <source>The pixmap file &apos;%1&apos; cannot be read.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+6"/>
+        <translation>ピクスマップファイル &apos;%1&apos; を読めません。</translation>
+    </message>
+    <message>
         <source>The file &apos;%1&apos; does not appear to be a valid pixmap file: %2</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+9"/>
+        <translation>ファイル &apos;%1&apos; は無効な画像ファイルです: %2</translation>
+    </message>
+    <message>
         <source>The file &apos;%1&apos; could not be read: %2</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+33"/>
+        <translation>ファイル &apos;%1&apos; は読めませんでした: %2</translation>
+    </message>
+    <message>
         <source>Choose a Pixmap</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+7"/>
+        <translation>ピクスマップの選択</translation>
+    </message>
+    <message>
         <source>Pixmap Read Error</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+55"/>
+        <translation>ピクスマップの読み込みエラー</translation>
+    </message>
+    <message>
         <source>...</source>
-        <translation type="unfinished">...</translation>
-    </message>
-    <message>
-        <location line="+6"/>
+        <translation>...</translation>
+    </message>
+    <message>
         <source>Normal Off</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>通常 オフ</translation>
+    </message>
+    <message>
         <source>Normal On</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>通常 オン</translation>
+    </message>
+    <message>
         <source>Disabled Off</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>無効化 オフ</translation>
+    </message>
+    <message>
         <source>Disabled On</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>無効化 オン</translation>
+    </message>
+    <message>
         <source>Active Off</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>アクティブ オフ</translation>
+    </message>
+    <message>
         <source>Active On</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>アクティブ オン</translation>
+    </message>
+    <message>
         <source>Selected Off</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>選択済み オフ</translation>
+    </message>
+    <message>
         <source>Selected On</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+8"/>
+        <translation>選択済み オン</translation>
+    </message>
+    <message>
         <source>Choose Resource...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>リソースを選択...</translation>
+    </message>
+    <message>
         <source>Choose File...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>ファイルを選択...</translation>
+    </message>
+    <message>
         <source>Reset</source>
-        <translation type="unfinished">リセット</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>リセット</translation>
+    </message>
+    <message>
         <source>Reset All</source>
-        <translation type="unfinished"></translation>
+        <translation>すべてリセット</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 type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+2"/>
-        <location filename="../tools/designer/src/components/taskmenu/itemlisteditor.ui"/>
+        <translation>プロパティ &amp;&lt;&lt;</translation>
+    </message>
+    <message>
         <source>Properties &amp;&gt;&gt;</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../tools/designer/src/components/taskmenu/itemlisteditor.ui"/>
+        <translation>プロパティ &amp;&gt;&gt;</translation>
+    </message>
+    <message>
         <source>Items List</source>
-        <translation type="unfinished">アイテム一覧</translation>
-    </message>
-    <message>
-        <location/>
+        <translation>アイテム一覧</translation>
+    </message>
+    <message>
         <source>New Item</source>
-        <translation type="unfinished">新しいアイテム</translation>
-    </message>
-    <message>
-        <location/>
+        <translation>新しいアイテム</translation>
+    </message>
+    <message>
         <source>&amp;New</source>
-        <translation type="unfinished">新規(&amp;N)</translation>
-    </message>
-    <message>
-        <location/>
+        <translation>新規(&amp;N)</translation>
+    </message>
+    <message>
         <source>Delete Item</source>
-        <translation type="unfinished">アイテムを削除</translation>
-    </message>
-    <message>
-        <location/>
+        <translation>アイテムを削除</translation>
+    </message>
+    <message>
         <source>&amp;Delete</source>
-        <translation type="unfinished">削除(&amp;D)</translation>
-    </message>
-    <message>
-        <location/>
+        <translation>削除(&amp;D)</translation>
+    </message>
+    <message>
         <source>Move Item Up</source>
-        <translation type="unfinished">このアイテムを上へ</translation>
-    </message>
-    <message>
-        <location/>
+        <translation>このアイテムを上へ</translation>
+    </message>
+    <message>
         <source>U</source>
-        <translation type="unfinished">U</translation>
-    </message>
-    <message>
-        <location/>
+        <translation>U</translation>
+    </message>
+    <message>
         <source>Move Item Down</source>
-        <translation type="unfinished">このアイテムを下へ</translation>
-    </message>
-    <message>
-        <location/>
+        <translation>このアイテムを下へ</translation>
+    </message>
+    <message>
         <source>D</source>
-        <translation type="unfinished">D</translation>
+        <translation>D</translation>
     </message>
 </context>
 <context>
     <name>qdesigner_internal::LabelTaskMenu</name>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/label_taskmenu.cpp" line="+89"/>
         <source>Change rich text...</source>
         <translation>リッチテキストを変更...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Change plain text...</source>
         <translation>プレインテキストを変更...</translation>
     </message>
 </context>
 <context>
+    <name>qdesigner_internal::LanguageResourceDialog</name>
+    <message>
+        <source>Choose Resource</source>
+        <translation>リソースを選択</translation>
+    </message>
+</context>
+<context>
     <name>qdesigner_internal::LineEditTaskMenu</name>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/lineedit_taskmenu.cpp" line="+84"/>
         <source>Change text...</source>
         <translation>テキストを変更...</translation>
     </message>
@@ -6276,90 +4343,25 @@
 <context>
     <name>qdesigner_internal::ListWidgetEditor</name>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/listwidgeteditor.cpp" line="+105"/>
         <source>Edit List Widget</source>
         <translation>リストウィジェットを編集</translation>
     </message>
     <message>
-        <location line="+19"/>
         <source>Edit Combobox</source>
         <translation>コンボボックスを編集</translation>
     </message>
     <message>
-        <location line="-51"/>
         <source>New Item</source>
         <translation>新しいアイテム</translation>
     </message>
-    <message>
-        <source>Dialog</source>
-        <translation type="obsolete">ダイアログ</translation>
-    </message>
-    <message>
-        <source>Items List</source>
-        <translation type="obsolete">アイテム一覧</translation>
-    </message>
-    <message>
-        <source>Move Item Down</source>
-        <translation type="obsolete">このアイテムを下へ</translation>
-    </message>
-    <message>
-        <source>D</source>
-        <translation type="obsolete">D</translation>
-    </message>
-    <message>
-        <source>&amp;Pixmap</source>
-        <translation type="obsolete">ピックスマップ(&amp;P)</translation>
-    </message>
-    <message>
-        <source>Set Item Pixmap</source>
-        <translation type="obsolete">このアイテムのピックスマップを設定</translation>
-    </message>
-    <message>
-        <source>...</source>
-        <translation type="obsolete">...</translation>
-    </message>
-    <message>
-        <source>Reset Item Pixmap</source>
-        <translation type="obsolete">このアイテムのピックスマップをリセット</translation>
-    </message>
-    <message>
-        <source>&amp;Text</source>
-        <translation type="obsolete">テキスト(&amp;T)</translation>
-    </message>
-    <message>
-        <source>Set Item Text</source>
-        <translation type="obsolete">このアイテムのテキストを設定</translation>
-    </message>
-    <message>
-        <source>Move Item Up</source>
-        <translation type="obsolete">このアイテムを上へ</translation>
-    </message>
-    <message>
-        <source>U</source>
-        <translation type="obsolete">U</translation>
-    </message>
-    <message>
-        <source>&amp;New Item</source>
-        <translation type="obsolete">新しいアイテム(&amp;N)</translation>
-    </message>
-    <message>
-        <source>Delete Item</source>
-        <translation type="obsolete">アイテムを削除</translation>
-    </message>
-    <message>
-        <source>&amp;Delete Item</source>
-        <translation type="obsolete">アイテムを削除(&amp;D)</translation>
-    </message>
 </context>
 <context>
     <name>qdesigner_internal::ListWidgetTaskMenu</name>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/listwidget_taskmenu.cpp" line="+71"/>
         <source>Edit Items...</source>
         <translation>アイテムを編集...</translation>
     </message>
     <message>
-        <location line="+38"/>
         <source>Change List Contents</source>
         <translation>リストの内容を変更</translation>
     </message>
@@ -6367,81 +4369,67 @@
 <context>
     <name>qdesigner_internal::MdiContainerWidgetTaskMenu</name>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/containerwidget_taskmenu.cpp" line="+118"/>
         <source>Next Subwindow</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>次のサブウィンドウ</translation>
+    </message>
+    <message>
         <source>Previous Subwindow</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>前のサブウィンドウ</translation>
+    </message>
+    <message>
         <source>Tile</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>タイル表示</translation>
+    </message>
+    <message>
         <source>Cascade</source>
-        <translation type="unfinished"></translation>
+        <translation>カスケード表示</translation>
     </message>
 </context>
 <context>
     <name>qdesigner_internal::MenuTaskMenu</name>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/menutaskmenu.cpp" line="+60"/>
         <source>Remove</source>
-        <translation type="unfinished">消去</translation>
+        <translation>削除</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 type="unfinished"></translation>
+        <translation>他のクラスへ変更</translation>
     </message>
 </context>
 <context>
     <name>qdesigner_internal::NewActionDialog</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/newactiondialog.ui"/>
         <source>New Action...</source>
         <translation>新しいアクション...</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Text:</source>
         <translation>テキスト(&amp;T):</translation>
     </message>
     <message>
-        <location/>
         <source>Shortcut:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location/>
+        <translation>ショートカット:</translation>
+    </message>
+    <message>
         <source>Checkable:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location/>
+        <translation>チェック可:</translation>
+    </message>
+    <message>
         <source>ToolTip:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location/>
+        <translation>ツールチップ:</translation>
+    </message>
+    <message>
         <source>...</source>
-        <translation type="unfinished">...</translation>
-    </message>
-    <message>
-        <location/>
+        <translation>...</translation>
+    </message>
+    <message>
         <source>&amp;Icon:</source>
         <translation>アイコン(&amp;I):</translation>
     </message>
     <message>
-        <location/>
         <source>Object &amp;name:</source>
         <translation>オブジェクト名(&amp;N):</translation>
     </message>
@@ -6449,163 +4437,133 @@
 <context>
     <name>qdesigner_internal::NewDynamicPropertyDialog</name>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/newdynamicpropertydialog.cpp" line="+134"/>
         <source>Set Property Name</source>
         <translation>プロパティ名を設定</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>現在のオブジェクトには、すでに &apos;%1&apos; という名前のプロパティが存在します。
+        <translation>現在のオブジェクトには、既に &apos;%1&apos; という名前のプロパティが存在します。
 別のユニークな名前を選んでください。</translation>
     </message>
     <message>
-        <source>The &apos;_q_&apos; prefix is reserved for Qt library.
-Please select another name.</source>
-        <translation type="obsolete">&apos;_q_&apos; というプリフィックスは Qt ライブラリのために予約されています。
-別の名前を選んでください。</translation>
-    </message>
-    <message>
-        <location filename="../tools/designer/src/components/propertyeditor/newdynamicpropertydialog.ui"/>
         <source>Create Dynamic Property</source>
         <translation>ダイナミックプロパティを作成</translation>
     </message>
     <message>
-        <location/>
         <source>Property Name</source>
         <translation>プロパティ名</translation>
     </message>
     <message>
-        <location/>
         <source>Property Type</source>
         <translation>プロパティ型</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 type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../tools/designer/src/components/propertyeditor/newdynamicpropertydialog.ui"/>
+        <translation>前置詞 &apos;_q_&apos; は Qt ライブラリのために予約されています。
+別の名前を選んでください。</translation>
+    </message>
+    <message>
         <source>horizontalSpacer</source>
-        <translation type="unfinished"></translation>
+        <translation>横方向のスペーサー</translation>
     </message>
 </context>
 <context>
     <name>qdesigner_internal::NewFormWidget</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/newformwidget.cpp" line="-391"/>
         <source>Default size</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>デフォルトのサイズ</translation>
+    </message>
+    <message>
         <source>QVGA portrait (240x320)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>QVGA ポートレイト (240×320)</translation>
+    </message>
+    <message>
         <source>QVGA landscape (320x240)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>QVGA ランドスケープ (320×240)</translation>
+    </message>
+    <message>
         <source>VGA portrait (480x640)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>VGA ポートレイト (480×640)</translation>
+    </message>
+    <message>
         <source>VGA landscape (640x480)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+66"/>
+        <translation>VGA ランドスケープ (640×480)</translation>
+    </message>
+    <message>
         <source>Widgets</source>
         <extracomment>New Form Dialog Categories</extracomment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>ウィジェット</translation>
+    </message>
+    <message>
         <source>Custom Widgets</source>
-        <translation type="unfinished">カスタムウィジェット</translation>
-    </message>
-    <message>
-        <location line="+18"/>
+        <translation>カスタムウィジェット</translation>
+    </message>
+    <message>
         <source>None</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+57"/>
+        <translation>なし</translation>
+    </message>
+    <message>
         <source>Error loading form</source>
-        <translation type="unfinished">フォームのロードエラー</translation>
-    </message>
-    <message>
-        <location line="+312"/>
+        <translation>フォームのロードエラー</translation>
+    </message>
+    <message>
+        <source>Unable to open the form template file &apos;%1&apos;: %2</source>
+        <translation>フォームのテンプレートファイル &apos;%1&apos; をオープンできません: %2</translation>
+    </message>
+    <message>
         <source>Internal error: No template selected.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../tools/designer/src/lib/shared/newformwidget.ui"/>
+        <translation>内部エラー: テンプレートが選択されていません。</translation>
+    </message>
+    <message>
         <source>0</source>
-        <translation type="unfinished">0</translation>
-    </message>
-    <message>
-        <location/>
+        <translation>0</translation>
+    </message>
+    <message>
         <source>Choose a template for a preview</source>
-        <translation type="unfinished">プレビューのためテンプレートを選択</translation>
-    </message>
-    <message>
-        <location/>
+        <translation>プレビュー用のテンプレートを選択</translation>
+    </message>
+    <message>
         <source>Embedded Design</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location/>
+        <translation>デザインプロファイル</translation>
+    </message>
+    <message>
         <source>Device:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location/>
+        <translation>デバイス:</translation>
+    </message>
+    <message>
         <source>Screen Size:</source>
-        <translation type="unfinished"></translation>
+        <translation>画面サイズ:</translation>
     </message>
 </context>
 <context>
     <name>qdesigner_internal::NewPromotedClassPanel</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_promotiondialog.cpp" line="+96"/>
         <source>Add</source>
         <translation>追加</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>New Promoted Class</source>
         <translation>新しい格上げされたクラス</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Base class name:</source>
         <translation>ベースクラス名:</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Promoted class name:</source>
         <translation>格上げされたクラス名:</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Header file:</source>
         <translation>ヘッダファイル:</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Global include</source>
         <translation>グローバルにインクルードする</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>Reset</source>
         <translation>リセット</translation>
     </message>
@@ -6613,120 +4571,76 @@
 <context>
     <name>qdesigner_internal::ObjectInspector</name>
     <message>
-        <source>Object</source>
-        <translation type="obsolete">オブジェクト</translation>
-    </message>
-    <message>
-        <source>Class</source>
-        <translation type="obsolete">クラス</translation>
-    </message>
-    <message>
-        <source>&lt;noname&gt;</source>
-        <translation type="obsolete">&lt;名前なし&gt;</translation>
-    </message>
-    <message>
-        <source>separator</source>
-        <translation type="obsolete">セパレータ</translation>
-    </message>
-    <message>
-        <location filename="../tools/designer/src/components/objectinspector/objectinspector.cpp" line="+758"/>
+        <source>Change Current Page</source>
+        <translation>現在のページを変更</translation>
+    </message>
+    <message>
         <source>&amp;Find in Text...</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>qdesigner_internal::ObjectInspector::ObjectInspectorPrivate</name>
-    <message>
-        <location line="-438"/>
-        <source>Change Current Page</source>
-        <translation type="unfinished"></translation>
+        <translation>テキストを検索(&amp;F)...</translation>
     </message>
 </context>
 <context>
     <name>qdesigner_internal::OrderDialog</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/orderdialog.cpp" line="+113"/>
         <source>Index %1 (%2)</source>
         <translation>インデックス %1 (%2)</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>%1 %2</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../tools/designer/src/lib/shared/orderdialog.ui"/>
+        <translation>%1 %2</translation>
+    </message>
+    <message>
         <source>Change Page Order</source>
         <translation>ページの順序を変更</translation>
     </message>
     <message>
-        <location/>
         <source>Page Order</source>
         <translation>ページの順序</translation>
     </message>
     <message>
-        <source>Up</source>
-        <translation type="obsolete">上へ</translation>
-    </message>
-    <message>
-        <source>Down</source>
-        <translation type="obsolete">下へ</translation>
-    </message>
-    <message>
-        <location/>
         <source>Move page up</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location/>
+        <translation>このページを上へ</translation>
+    </message>
+    <message>
         <source>Move page down</source>
-        <translation type="unfinished"></translation>
+        <translation>このページを下へ</translation>
     </message>
 </context>
 <context>
     <name>qdesigner_internal::PaletteEditor</name>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/paletteeditor.ui"/>
         <source>Edit Palette</source>
         <translation>パレットを編集</translation>
     </message>
     <message>
-        <location/>
         <source>Tune Palette</source>
         <translation>パレットを調整</translation>
     </message>
     <message>
-        <location/>
         <source>Show Details</source>
-        <translation>全てのパレットを設定</translation>
-    </message>
-    <message>
-        <location/>
+        <translation>すべてのパレットを設定</translation>
+    </message>
+    <message>
         <source>Compute Details</source>
         <translation>アクティブパレットを設定</translation>
     </message>
     <message>
-        <location/>
         <source>Quick</source>
         <translation>簡易設定</translation>
     </message>
     <message>
-        <location/>
         <source>Preview</source>
         <translation>プレビュー</translation>
     </message>
     <message>
-        <location/>
         <source>Disabled</source>
         <translation>無効化</translation>
     </message>
     <message>
-        <location/>
         <source>Inactive</source>
         <translation>非アクティブ</translation>
     </message>
     <message>
-        <location/>
         <source>Active</source>
         <translation>アクティブ</translation>
     </message>
@@ -6734,7 +4648,6 @@
 <context>
     <name>qdesigner_internal::PaletteEditorButton</name>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/paletteeditorbutton.cpp" line="+61"/>
         <source>Change Palette</source>
         <translation>パレットを変更</translation>
     </message>
@@ -6742,22 +4655,18 @@
 <context>
     <name>qdesigner_internal::PaletteModel</name>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/paletteeditor.cpp" line="+381"/>
         <source>Color Role</source>
         <translation>色役割</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Active</source>
         <translation>アクティブ</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Inactive</source>
         <translation>非アクティブ</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Disabled</source>
         <translation>無効化</translation>
     </message>
@@ -6765,202 +4674,193 @@
 <context>
     <name>qdesigner_internal::PixmapEditor</name>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/designerpropertymanager.cpp" line="-1539"/>
         <source>Copy Path</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>パスをコピー</translation>
+    </message>
+    <message>
         <source>Paste Path</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="-3"/>
+        <translation>パスを貼り付け</translation>
+    </message>
+    <message>
         <source>Choose Resource...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>リソースを選択...</translation>
+    </message>
+    <message>
         <source>Choose File...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+8"/>
-        <location line="+16"/>
+        <translation>ファイルを選択...</translation>
+    </message>
+    <message>
         <source>...</source>
-        <translation type="unfinished">...</translation>
+        <translation>...</translation>
     </message>
 </context>
 <context>
     <name>qdesigner_internal::PlainTextEditorDialog</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/plaintexteditor.cpp" line="+69"/>
         <source>Edit text</source>
-        <translation type="unfinished">テキストを編集</translation>
+        <translation>テキストを編集</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>コンポーネント</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>Plugin Information</source>
         <translation>プラグイン情報</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Refresh</source>
         <translation>リフレッシュ</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Scan for newly installed custom widget plugins.</source>
         <translation>新しくインストールされたカスタムウィジェットプラグインをスキャンします。</translation>
     </message>
     <message>
-        <location line="+48"/>
         <source>Qt Designer couldn&apos;t find any plugins</source>
         <translation>プラグインは見つかりませんでした</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Qt Designer found the following plugins</source>
         <translation>以下のプラグインが見つかりました</translation>
     </message>
     <message>
-        <location line="+55"/>
         <source>New custom widget plugins have been found.</source>
         <translation>新しいカスタムウィジェットのプラグインが見つかりました。</translation>
     </message>
-    <message>
-        <source>TextLabel</source>
-        <translation type="obsolete">テキストラベル</translation>
-    </message>
-    <message>
-        <source>1</source>
-        <translation type="obsolete">1</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 type="unfinished">%1 スタイル</translation>
-    </message>
-</context>
-<context>
-    <name>qdesigner_internal::PreviewConfigurationWidget::PreviewConfigurationWidgetPrivate</name>
-    <message>
-        <location filename="../tools/designer/src/lib/shared/previewconfigurationwidget.cpp" line="+118"/>
+        <translation>%1 スタイル</translation>
+    </message>
+</context>
+<context>
+    <name>qdesigner_internal::PreviewConfigurationWidget</name>
+    <message>
+        <source>Default</source>
+        <translation>デフォルト</translation>
+    </message>
+    <message>
+        <source>None</source>
+        <translation>なし</translation>
+    </message>
+    <message>
+        <source>Browse...</source>
+        <translation>参照...</translation>
+    </message>
+    <message>
         <source>Load Custom Device Skin</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+2"/>
+        <translation>カスタムデバイススキンのロード</translation>
+    </message>
+    <message>
         <source>All QVFB Skins (*.%1)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+16"/>
+        <translation>すべての QVFB スキン (*.%1)</translation>
+    </message>
+    <message>
         <source>%1 - Duplicate Skin</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>%1 - 重複したスキン</translation>
+    </message>
+    <message>
         <source>The skin &apos;%1&apos; already exists.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+14"/>
+        <translation>スキン &apos;%1&apos; は既に存在します。</translation>
+    </message>
+    <message>
         <source>%1 - Error</source>
-        <translation type="unfinished">%1 - エラー</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>%1 - エラー</translation>
+    </message>
+    <message>
         <source>%1 is not a valid skin directory:
 %2</source>
-        <translation type="unfinished"></translation>
+        <translation>%1 は無効なスキンディレクトリです:
+%2</translation>
     </message>
 </context>
 <context>
     <name>qdesigner_internal::PreviewDeviceSkin</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/previewmanager.cpp" line="+218"/>
+        <source>&amp;Portrait</source>
+        <translation>ポートレイト(&amp;P)</translation>
+    </message>
+    <message>
+        <source>Landscape (&amp;CCW)</source>
+        <extracomment>Rotate form preview counter-clockwise</extracomment>
+        <translation>ランドスケープ (&amp;CCW)</translation>
+    </message>
+    <message>
+        <source>&amp;Landscape (CW)</source>
+        <extracomment>Rotate form preview clockwise</extracomment>
+        <translation>ランドスケープ(&amp;L) (CW)</translation>
+    </message>
+    <message>
         <source>&amp;Close</source>
-        <translation type="unfinished">閉じる(&amp;C)</translation>
+        <translation>閉じる(&amp;C)</translation>
     </message>
 </context>
 <context>
     <name>qdesigner_internal::PreviewManager</name>
     <message>
-        <location line="+345"/>
         <source>%1 - [Preview]</source>
-        <translation type="unfinished">%1 - [プレビュー]</translation>
-    </message>
-    <message>
-        <source>%1 Style</source>
-        <translation type="obsolete">%1 スタイル</translation>
+        <translation>%1 - [プレビュー]</translation>
+    </message>
+</context>
+<context>
+    <name>qdesigner_internal::PreviewMdiArea</name>
+    <message>
+        <source>The moose in the noose
+ate the goose who was loose.</source>
+        <extracomment>Palette editor background</extracomment>
+        <translation>坊主が屏風に上手に
+坊主の絵を描いた。</translation>
     </message>
 </context>
 <context>
     <name>qdesigner_internal::PreviewWidget</name>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/previewwidget.ui"/>
         <source>Preview Window</source>
         <translation>プレビューウィンドウ</translation>
     </message>
     <message>
-        <location/>
         <source>LineEdit</source>
         <translation>行編集</translation>
     </message>
     <message>
-        <location/>
         <source>ComboBox</source>
         <translation>コンボボックス</translation>
     </message>
     <message>
-        <location/>
         <source>PushButton</source>
         <translation>プッシュボタン</translation>
     </message>
     <message>
-        <location/>
         <source>ButtonGroup2</source>
         <translation>ボタングループ2</translation>
     </message>
     <message>
-        <location/>
         <source>CheckBox1</source>
         <translation>チェックボックス1</translation>
     </message>
     <message>
-        <location/>
         <source>CheckBox2</source>
         <translation>チェックボックス2</translation>
     </message>
     <message>
-        <location/>
         <source>ButtonGroup</source>
         <translation>ボタングループ</translation>
     </message>
     <message>
-        <location/>
         <source>RadioButton1</source>
         <translation>ラジオボタン1</translation>
     </message>
     <message>
-        <location/>
         <source>RadioButton2</source>
         <translation>ラジオボタン2</translation>
     </message>
     <message>
-        <location/>
         <source>RadioButton3</source>
         <translation>ラジオボタン3</translation>
     </message>
@@ -6968,22 +4868,18 @@
 <context>
     <name>qdesigner_internal::PromotionModel</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/promotionmodel.cpp" line="+17"/>
         <source>Name</source>
         <translation>名前</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Header file</source>
         <translation>ヘッダファイル</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Global include</source>
         <translation>グローバルにインクルードする</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Usage</source>
         <translation>使い方</translation>
     </message>
@@ -6991,184 +4887,120 @@
 <context>
     <name>qdesigner_internal::PromotionTaskMenu</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/promotiontaskmenu.cpp" line="+85"/>
         <source>Promoted widgets...</source>
         <translation>格上げされたウィジェット...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Promote to ...</source>
         <translation>格上げ先を指定...</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Promote to</source>
         <translation>格上げ先</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Demote to %1</source>
         <translation>%1 へ格下げ</translation>
     </message>
     <message>
-        <location line="-2"/>
         <source>Change signals/slots...</source>
-        <translation type="unfinished"></translation>
+        <translation>シグナル/スロットを変更...</translation>
     </message>
 </context>
 <context>
     <name>qdesigner_internal::PropertyEditor</name>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/propertyeditor.cpp" line="+188"/>
         <source>Add Dynamic Property...</source>
         <translation>ダイナミックプロパティを追加...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Remove Dynamic Property</source>
         <translation>ダイナミックプロパティを削除</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Sorting</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>ソート</translation>
+    </message>
+    <message>
         <source>Color Groups</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>カラーグループ</translation>
+    </message>
+    <message>
         <source>Tree View</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>ツリー表示</translation>
+    </message>
+    <message>
         <source>Drop Down Button View</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+63"/>
+        <translation>ドロップダウンボタン表示</translation>
+    </message>
+    <message>
         <source>Configure Property Editor</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+533"/>
+        <translation>プロパティエディタの設定</translation>
+    </message>
+    <message>
         <source>Object: %1
 Class: %2</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="-547"/>
+        <translation>オブジェクト: %1
+クラス: %2</translation>
+    </message>
+    <message>
         <source>String...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>文字列...</translation>
+    </message>
+    <message>
         <source>Bool...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+4"/>
+        <translation>ブーリアン...</translation>
+    </message>
+    <message>
         <source>Other...</source>
-        <translation type="unfinished"></translation>
+        <translation>その他...</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>改行を挿入</translation>
     </message>
 </context>
 <context>
-    <name>qdesigner_internal::QCoreApplication</name>
-    <message>
-        <source>The base class %1 is invalid.</source>
-        <translation type="obsolete">ベースクラス %1 は無効です。</translation>
-    </message>
-    <message>
-        <source>The class %1 already exists.</source>
-        <translation type="obsolete">%1 というクラスはすでに存在します。</translation>
-    </message>
-    <message>
-        <source>Promoted Widgets</source>
-        <translation type="obsolete">格上げされたウィジェット</translation>
-    </message>
-    <message>
-        <source>The class %1 cannot be removed</source>
-        <translation type="obsolete">%1 というクラスを削除できません</translation>
-    </message>
-    <message>
-        <source>The class %1 cannot be removed because it is still referenced.</source>
-        <translation type="obsolete">%1 というクラスは、参照されているので、削除できません。</translation>
-    </message>
-    <message>
-        <source>The class %1 cannot be renamed</source>
-        <translation type="obsolete">%1 というクラスをリネームできません</translation>
-    </message>
-    <message>
-        <source>The class %1 cannot be renamed to an empty name.</source>
-        <translation type="obsolete">%1 というクラスを空の名前にリネームすることはできません。</translation>
-    </message>
-    <message>
-        <source>There is already a class named %1.</source>
-        <translation type="obsolete">%1 というクラスは存在します。</translation>
-    </message>
-    <message>
-        <source>Cannot set an empty include file.</source>
-        <translation type="obsolete">空のインクルードファイルを設定できません。</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>格上げされたウィジェット</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Promoted Classes</source>
         <translation>格上げされたクラス</translation>
     </message>
     <message>
-        <location line="+60"/>
         <source>Promote</source>
         <translation>格上げ</translation>
     </message>
     <message>
-        <location line="+169"/>
         <source>%1 - Error</source>
         <translation>%1 - エラー</translation>
     </message>
     <message>
-        <location line="-17"/>
         <source>Change signals/slots...</source>
-        <translation type="unfinished"></translation>
+        <translation>シグナル/スロットを変更...</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>qrc ファイルをロードしています</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>指定された qrc ファイル &lt;p&gt;&lt;b&gt;%1&lt;/b&gt;&lt;/p&gt;&lt;p&gt;が見つかりません。ファイルの置き場所を変更したいですか?&lt;/p&gt;</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>New location for %1</source>
         <translation>%1 の新しい場所</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Resource files (*.qrc)</source>
         <translation>リソースファイル (*.qrc)</translation>
     </message>
@@ -7176,876 +5008,283 @@
 <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"/>
+        <translation>オブジェクト名を変更...</translation>
+    </message>
+    <message>
         <source>Change toolTip...</source>
-        <translation type="unfinished">ツールチップを変更...</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>ツールチップを変更...</translation>
+    </message>
+    <message>
         <source>Change whatsThis...</source>
-        <translation type="unfinished">ヒントを変更...</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>ヒントを変更...</translation>
+    </message>
+    <message>
         <source>Change styleSheet...</source>
-        <translation type="unfinished">スタイルシートを変更...</translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>スタイルシートを変更...</translation>
+    </message>
+    <message>
         <source>Create Menu Bar</source>
-        <translation type="unfinished">メニューバーを作成</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>メニューバーを作成</translation>
+    </message>
+    <message>
         <source>Add Tool Bar</source>
-        <translation type="unfinished">ツールバーを追加</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>ツールバーを追加</translation>
+    </message>
+    <message>
         <source>Create Status Bar</source>
-        <translation type="unfinished">ステータスバーを作成</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>ステータスバーを作成</translation>
+    </message>
+    <message>
         <source>Remove Status Bar</source>
-        <translation type="unfinished">ステータスバーを消去</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>ステータスバーを削除</translation>
+    </message>
+    <message>
         <source>Change script...</source>
-        <translation type="unfinished">スクリプトを変更...</translation>
-    </message>
-    <message>
-        <location line="+2"/>
+        <translation>スクリプトを変更...</translation>
+    </message>
+    <message>
         <source>Go to slot...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+264"/>
+        <translation>スロットへ移動...</translation>
+    </message>
+    <message>
         <source>Edit ToolTip</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+5"/>
+        <translation>ツールチップを編集</translation>
+    </message>
+    <message>
         <source>Edit WhatsThis</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+144"/>
+        <translation>ヒントを編集</translation>
+    </message>
+    <message>
         <source>no signals available</source>
-        <translation type="unfinished"></translation>
+        <translation>シグナルがありません</translation>
     </message>
     <message numerus="yes">
-        <location line="+67"/>
         <source>Set size constraint on %n widget(s)</source>
-        <translation type="unfinished">
-            <numerusform></numerusform>
+        <translation>
+            <numerusform>%n 個のウィジェットで限界サイズを設定</numerusform>
         </translation>
     </message>
     <message>
-        <location line="-481"/>
         <source>Change signals/slots...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+4"/>
+        <translation>シグナル/スロットを変更...</translation>
+    </message>
+    <message>
         <source>Size Constraints</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+4"/>
+        <translation>限界サイズ</translation>
+    </message>
+    <message>
         <source>Set Minimum Width</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+4"/>
+        <translation>幅の最小値を設定</translation>
+    </message>
+    <message>
         <source>Set Minimum Height</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+4"/>
+        <translation>高さの最小値を設定</translation>
+    </message>
+    <message>
         <source>Set Minimum Size</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+6"/>
+        <translation>サイズの最小値を設定</translation>
+    </message>
+    <message>
         <source>Set Maximum Width</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+4"/>
+        <translation>幅の最大値を設定</translation>
+    </message>
+    <message>
         <source>Set Maximum Height</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+4"/>
+        <translation>高さの最大値を設定</translation>
+    </message>
+    <message>
         <source>Set Maximum Size</source>
-        <translation type="unfinished"></translation>
+        <translation>サイズの最大値を設定</translation>
     </message>
 </context>
 <context>
     <name>qdesigner_internal::QDesignerWidgetBox</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_widgetbox.cpp" line="+127"/>
-        <location line="+13"/>
         <source>Unexpected element &lt;%1&gt;</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+7"/>
+        <translation>予期せぬ要素 &lt;%1&gt;</translation>
+    </message>
+    <message>
         <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">ウィジェット %3 のために指定された XML コードの %1 行目の %2 カラム目でパースエラーが発生しました: %4
+        <translation>ウィジェット %3 のために指定された XML コードの %1 行目の %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 type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>qdesigner_internal::QObject</name>
-    <message>
-        <source>The icon specified by %1 could not be opened: %2</source>
-        <translation type="obsolete">%1 で指定されたアイコンをオープンできませんでした: %2</translation>
-    </message>
-    <message>
-        <source>The widgetbox could not load the file %1.</source>
-        <translation type="obsolete">ウィジェットボックスは %1 というファイルをロードできませんでした。</translation>
-    </message>
-    <message>
-        <source>The widgetbox could not parse the file %1. An error occurred at line %2: %3</source>
-        <translation type="obsolete">ウィジェットボックスは、%1 というファイルをパースできません。%2 行目でエラーが発生しました: %3</translation>
-    </message>
-    <message>
-        <source>The file %1 does not appear to be a widgetbox file.</source>
-        <translation type="obsolete">%1 というファイルは、ウィジェットボックスのファイルではないようです。</translation>
-    </message>
-    <message>
-        <source>An error occurred while parsing the file %1: %2 is not a valid child of the root element.</source>
-        <translation type="obsolete">%1 というファイルのパース中にエラーが発生しました: %2 はルートエレメントの有効な子供ではありません。</translation>
-    </message>
-    <message>
-        <source>The class attribute for the class %1 does not match the class name %2.</source>
-        <translation type="obsolete">%1 というクラスのクラス属性は %2 というクラス名と一致しません。</translation>
-    </message>
-    <message>
-        <source>The class attribute for the class %1 is missing.</source>
-        <translation type="obsolete">%1 というクラスのクラス属性がありません。</translation>
-    </message>
-    <message>
-        <source>The style %1 could not be loaded.</source>
-        <translation type="obsolete">%1 というスタイルをロードできませんでした。</translation>
-    </message>
-    <message>
-        <source>The preview failed to build.</source>
-        <translation type="obsolete">プレビューのビルドに失敗しました。</translation>
-    </message>
-    <message>
-        <source>%1 - [Preview]</source>
-        <translation type="obsolete">%1 - [プレビュー]</translation>
-    </message>
-    <message>
-        <source>Designer</source>
-        <translation type="obsolete">Designer</translation>
-    </message>
-    <message>
-        <source>Change script</source>
-        <translation type="obsolete">スクリプトを変更</translation>
-    </message>
-    <message>
-        <source>A custom widget plugin whose class name (%1) matches that of an existing class has been found.</source>
-        <translation type="obsolete">クラス名 (%1) が既存のクラスと同じであるカスタムウィジェットプラグインが見つかりました。</translation>
-    </message>
-    <message>
-        <source>The custom widget factory registered for widgets of class %1 returned 0.</source>
-        <translation type="obsolete">%1 というクラスのウィジェットのために登録されたカスタムウィジェットファクトリーが 0 を返しました。</translation>
-    </message>
-    <message>
-        <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="obsolete">%1 というクラスのウィジェットのために登録されたカスタムウィジェットファクトリーを使ってウィジェットを作成しているときに、クラス名のミスマッチが発生しました。%2 というクラスのウィジェットを返しました。</translation>
-    </message>
-</context>
-<context>
-    <name>qdesigner_internal::QPropertyEditorModel</name>
-    <message>
-        <source>&lt;noname&gt;</source>
-        <translation type="obsolete">&lt;名前なし&gt;</translation>
-    </message>
-    <message>
-        <source>Property</source>
-        <translation type="obsolete">プロパティ</translation>
-    </message>
-    <message>
-        <source>Value</source>
-        <translation type="obsolete">値</translation>
-    </message>
-</context>
-<context>
-    <name>qdesigner_internal::QtBrushDialog</name>
-    <message>
-        <source>Edit Brush</source>
-        <translation type="obsolete">ブラシを編集</translation>
-    </message>
-</context>
-<context>
-    <name>qdesigner_internal::QtBrushEditor</name>
-    <message>
-        <source>New Brush</source>
-        <translation type="obsolete">新しいブラシ</translation>
-    </message>
-    <message>
-        <source>Gradient</source>
-        <translation type="obsolete">グラデーション</translation>
-    </message>
-    <message>
-        <source>Texture</source>
-        <translation type="obsolete">テクスチャ</translation>
-    </message>
-    <message>
-        <source>Color Pattern</source>
-        <translation type="obsolete">カラーパターン</translation>
-    </message>
-    <message>
-        <source>Rename	F2</source>
-        <translation type="obsolete">名前の変更	F2</translation>
-    </message>
-    <message>
-        <source>Form</source>
-        <translation type="obsolete">フォーム</translation>
-    </message>
-    <message>
-        <source>Edit...</source>
-        <translation type="obsolete">編集...</translation>
-    </message>
-    <message>
-        <source>Edit Gradient</source>
-        <translation type="obsolete">グラデーションを編集</translation>
-    </message>
-    <message>
-        <source>Gradient...</source>
-        <translation type="obsolete">グラデーション...</translation>
-    </message>
-    <message>
-        <source>Edit Color Pattern</source>
-        <translation type="obsolete">カラーパターンを編集</translation>
-    </message>
-    <message>
-        <source>Color Pattern...</source>
-        <translation type="obsolete">カラーパターン...</translation>
-    </message>
-    <message>
-        <source>Edit Texture</source>
-        <translation type="obsolete">テクスチャを編集</translation>
-    </message>
-    <message>
-        <source>Texture...</source>
-        <translation type="obsolete">テクスチャ...</translation>
-    </message>
-    <message>
-        <source>Remove From Custom</source>
-        <translation type="obsolete">カスタムカラーから除く</translation>
-    </message>
-    <message>
-        <source>Add To Custom</source>
-        <translation type="obsolete">カスタムカラーに追加</translation>
-    </message>
-    <message>
-        <source>Apply Custom</source>
-        <translation type="obsolete">カスタムカラーに適用</translation>
-    </message>
-    <message>
-        <source>Apply</source>
-        <translation type="obsolete">適用</translation>
-    </message>
-</context>
-<context>
-    <name>qdesigner_internal::QtBrushPatternDialog</name>
-    <message>
-        <source>Edit Color Pattern</source>
-        <translation type="obsolete">カラーパターンを編集</translation>
-    </message>
-</context>
-<context>
-    <name>qdesigner_internal::QtBrushPatternEditor</name>
-    <message>
-        <source>Hue</source>
-        <translation type="obsolete">色相</translation>
-    </message>
-    <message>
-        <source>Saturation</source>
-        <translation type="obsolete">彩度</translation>
-    </message>
-    <message>
-        <source>Value</source>
-        <translation type="obsolete">明度</translation>
-    </message>
-    <message>
-        <source>Red</source>
-        <translation type="obsolete">赤</translation>
-    </message>
-    <message>
-        <source>Green</source>
-        <translation type="obsolete">緑</translation>
-    </message>
-    <message>
-        <source>Blue</source>
-        <translation type="obsolete">青</translation>
-    </message>
-    <message>
-        <source>No Brush</source>
-        <translation type="obsolete">透明</translation>
-    </message>
-    <message>
-        <source>Solid</source>
-        <translation type="obsolete">塗りつぶし</translation>
-    </message>
-    <message>
-        <source>Dense 1</source>
-        <translation type="obsolete">密度 1</translation>
-    </message>
-    <message>
-        <source>Dense 2</source>
-        <translation type="obsolete">密度 2</translation>
-    </message>
-    <message>
-        <source>Dense 3</source>
-        <translation type="obsolete">密度 3</translation>
-    </message>
-    <message>
-        <source>Dense 4</source>
-        <translation type="obsolete">密度 4</translation>
-    </message>
-    <message>
-        <source>Dense 5</source>
-        <translation type="obsolete">密度 5</translation>
-    </message>
-    <message>
-        <source>Dense 6</source>
-        <translation type="obsolete">密度 6</translation>
-    </message>
-    <message>
-        <source>Dense 7</source>
-        <translation type="obsolete">密度 7</translation>
-    </message>
-    <message>
-        <source>Horizontal</source>
-        <translation type="obsolete">横</translation>
-    </message>
-    <message>
-        <source>Vertical</source>
-        <translation type="obsolete">縦</translation>
-    </message>
-    <message>
-        <source>Cross</source>
-        <translation type="obsolete">格子</translation>
-    </message>
-    <message>
-        <source>Backward Diagonal</source>
-        <translation type="obsolete">左下から右上の斜線</translation>
-    </message>
-    <message>
-        <source>Forward Diagonal</source>
-        <translation type="obsolete">左上から右下への斜線</translation>
-    </message>
-    <message>
-        <source>Crossing Diagonal</source>
-        <translation type="obsolete">交差する斜線</translation>
-    </message>
-    <message>
-        <source>Form</source>
-        <translation type="obsolete">フォーム</translation>
-    </message>
-    <message>
-        <source>Pattern</source>
-        <translation type="obsolete">パターン</translation>
-    </message>
-    <message>
-        <source>Alpha</source>
-        <translation type="obsolete">アルファ</translation>
-    </message>
-    <message>
-        <source>Color</source>
-        <translation type="obsolete">色</translation>
-    </message>
-    <message>
-        <source>Preview</source>
-        <translation type="obsolete">プレビュー</translation>
-    </message>
-    <message>
-        <source>HSV</source>
-        <translation type="obsolete">HSV</translation>
-    </message>
-    <message>
-        <source>RGB</source>
-        <translation type="obsolete">RGB</translation>
-    </message>
-</context>
-<context>
-    <name>qdesigner_internal::QtGradientDialog</name>
-    <message>
-        <source>Edit Gradient</source>
-        <translation type="obsolete">グラデーションを編集</translation>
-    </message>
-</context>
-<context>
-    <name>qdesigner_internal::QtGradientEditor</name>
-    <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.cpp" line="+289"/>
-        <source>Linear</source>
-        <translation type="unfinished">線状</translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Radial</source>
-        <translation type="unfinished">放射状</translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Conical</source>
-        <translation type="unfinished">円錐状</translation>
-    </message>
-    <message>
-        <location line="+20"/>
-        <source>Pad</source>
-        <translation type="unfinished">区切りの色で補充</translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Repeat</source>
-        <translation type="unfinished">グラデーションの繰り返し</translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Reflect</source>
-        <translation type="unfinished">グラデーションの反射</translation>
-    </message>
-    <message>
-        <source>Form</source>
-        <translation type="obsolete">フォーム</translation>
-    </message>
-    <message>
-        <source>Start X</source>
-        <translation type="obsolete">始点の X 座標</translation>
-    </message>
-    <message>
-        <source>Start Y</source>
-        <translation type="obsolete">始点の Y 座標</translation>
-    </message>
-    <message>
-        <source>Final X</source>
-        <translation type="obsolete">終点の X 座標</translation>
-    </message>
-    <message>
-        <source>Final Y</source>
-        <translation type="obsolete">終点の Y 座標</translation>
-    </message>
-    <message>
-        <source>Spread</source>
-        <translation type="obsolete">広がり方</translation>
-    </message>
-    <message>
-        <source>Central Y</source>
-        <translation type="obsolete">中心の Y 座標</translation>
-    </message>
-    <message>
-        <source>Focal X</source>
-        <translation type="obsolete">焦点の X 座標</translation>
-    </message>
-    <message>
-        <source>Focal Y</source>
-        <translation type="obsolete">焦点の Y 座標</translation>
-    </message>
-    <message>
-        <source>Radius</source>
-        <translation type="obsolete">半径</translation>
-    </message>
-    <message>
-        <source>Central X</source>
-        <translation type="obsolete">中心の X 座標</translation>
-    </message>
-    <message>
-        <source>Angle</source>
-        <translation type="obsolete">角度</translation>
-    </message>
-    <message>
-        <source>Type</source>
-        <translation type="obsolete">グラデーションのタイプ</translation>
+        <translation>ウィジェット %1 を定義する XML のコードにどのウィジェットの要素もありません。
+%2</translation>
+    </message>
+    <message>
+        <source>An error has been encountered at line %1 of %2: %3</source>
+        <translation>%2 の %1 行目でエラーが発生しました: %3</translation>
+    </message>
+    <message>
+        <source>Unexpected element &lt;%1&gt; encountered when parsing for &lt;widget&gt; or &lt;ui&gt;</source>
+        <translation>&lt;widget&gt; もしくは &lt;ui&gt; のパース中に予期せぬ要素 &lt;%1&gt; が現れました</translation>
+    </message>
+    <message>
+        <source>Unexpected end of file encountered when parsing widgets.</source>
+        <translation>ウィジェットのパース中に予期せずファイルが途中で終了しました。</translation>
+    </message>
+    <message>
+        <source>A widget element could not be found.</source>
+        <translation>ウィジェット要素が見つかりません。</translation>
     </message>
 </context>
 <context>
     <name>qdesigner_internal::QtGradientStopsController</name>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradientstopscontroller.cpp" line="+177"/>
         <source>H</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>H</translation>
+    </message>
+    <message>
         <source>S</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>S</translation>
+    </message>
+    <message>
         <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">R</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::QtGradientStopsEditor</name>
+        <translation>V</translation>
+    </message>
     <message>
         <source>Hue</source>
-        <translation type="obsolete">色相</translation>
+        <translation>色相</translation>
+    </message>
+    <message>
+        <source>Sat</source>
+        <translation>彩度</translation>
+    </message>
+    <message>
+        <source>Val</source>
+        <translation>明度</translation>
     </message>
     <message>
         <source>Saturation</source>
-        <translation type="obsolete">彩度</translation>
+        <translation>彩度</translation>
     </message>
     <message>
         <source>Value</source>
-        <translation type="obsolete">明度</translation>
+        <translation>明度</translation>
+    </message>
+    <message>
+        <source>R</source>
+        <translation>R</translation>
+    </message>
+    <message>
+        <source>G</source>
+        <translation>G</translation>
+    </message>
+    <message>
+        <source>B</source>
+        <translation>B</translation>
     </message>
     <message>
         <source>Red</source>
-        <translation type="obsolete">赤</translation>
+        <translation>赤</translation>
     </message>
     <message>
         <source>Green</source>
-        <translation type="obsolete">緑</translation>
+        <translation>緑</translation>
     </message>
     <message>
         <source>Blue</source>
-        <translation type="obsolete">青</translation>
-    </message>
-    <message>
-        <source>Form</source>
-        <translation type="obsolete">フォーム</translation>
-    </message>
-    <message>
-        <source>%</source>
-        <translation type="obsolete">%</translation>
-    </message>
-    <message>
-        <source>Position</source>
-        <translation type="obsolete">位置</translation>
-    </message>
-    <message>
-        <source>Zoom</source>
-        <translation type="obsolete">ズーム</translation>
-    </message>
-    <message>
-        <source>Color</source>
-        <translation type="obsolete">色</translation>
-    </message>
-    <message>
-        <source>Zoom All</source>
-        <translation type="obsolete">すべてズーム</translation>
-    </message>
-    <message>
-        <source>Alpha</source>
-        <translation type="obsolete">アルファ</translation>
-    </message>
-    <message>
-        <source>Zoom Out</source>
-        <translation type="obsolete">縮小</translation>
-    </message>
-    <message>
-        <source>Zoom In</source>
-        <translation type="obsolete">拡大</translation>
-    </message>
-    <message>
-        <source>HSV</source>
-        <translation type="obsolete">HSV</translation>
-    </message>
-    <message>
-        <source>RGB</source>
-        <translation type="obsolete">RGB</translation>
-    </message>
-</context>
-<context>
-    <name>qdesigner_internal::QtGradientStopsWidget</name>
-    <message>
-        <source>New Stop</source>
-        <translation type="obsolete">新しい終点</translation>
-    </message>
-    <message>
-        <source>Delete</source>
-        <translation type="obsolete">削除</translation>
-    </message>
-    <message>
-        <source>Select All</source>
-        <translation type="obsolete">すべてを選択</translation>
-    </message>
-    <message>
-        <source>Zoom In</source>
-        <translation type="obsolete">拡大</translation>
-    </message>
-    <message>
-        <source>Zoom Out</source>
-        <translation type="obsolete">縮小</translation>
-    </message>
-    <message>
-        <source>Zoom All</source>
-        <translation type="obsolete">すべてズーム</translation>
-    </message>
-</context>
-<context>
-    <name>qdesigner_internal::ResourceEditor</name>
-    <message>
-        <source>&lt;no resource files&gt;</source>
-        <translation type="obsolete">&lt;リソースファイルなし&gt;</translation>
-    </message>
-    <message>
-        <source>Open file</source>
-        <translation type="obsolete">ファイルをオープン</translation>
-    </message>
-    <message>
-        <source>All files (*)</source>
-        <translation type="obsolete">すべてのファイル(*)</translation>
-    </message>
-    <message>
-        <source>Resource Editor</source>
-        <translation type="obsolete">リソースエディタ</translation>
-    </message>
-    <message>
-        <source>Resource Editor: %1</source>
-        <translation type="obsolete">リソースエディタ: %1</translation>
-    </message>
-    <message>
-        <source>New...</source>
-        <translation type="obsolete">新規...</translation>
-    </message>
-    <message>
-        <source>Open...</source>
-        <translation type="obsolete">開く...</translation>
-    </message>
-    <message>
-        <source>Untitled</source>
-        <translation type="obsolete">タイトルなし</translation>
-    </message>
-    <message>
-        <source>Save resource file</source>
-        <translation type="obsolete">リソースファイルを保存</translation>
-    </message>
-    <message>
-        <source>Resource files (*.qrc)</source>
-        <translation type="obsolete">リソースファイル (*.qrc)</translation>
-    </message>
-    <message>
-        <source>New resource file</source>
-        <translation type="obsolete">新しいリソースファイル</translation>
-    </message>
-    <message>
-        <source>Open resource file</source>
-        <translation type="obsolete">リソースファイルを開く</translation>
-    </message>
-    <message>
-        <source>Resource editor</source>
-        <translation type="obsolete">リソースエディタ</translation>
-    </message>
-    <message>
-        <source>Current Resource:</source>
-        <translation type="obsolete">現在のリソース:</translation>
-    </message>
-    <message>
-        <source>...</source>
-        <translation type="obsolete">...</translation>
-    </message>
-    <message>
-        <source>+</source>
-        <translation type="obsolete">+</translation>
-    </message>
-    <message>
-        <source>-</source>
-        <translation type="obsolete">-</translation>
-    </message>
-    <message>
-        <source>&amp;Add Files...</source>
-        <translation type="obsolete">ファイルを追加(&amp;A)...</translation>
+        <translation>青</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>テキストを編集</translation>
     </message>
     <message>
-        <location line="+30"/>
         <source>&amp;OK</source>
         <translation>OK(&amp;O)</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>&amp;Cancel</source>
         <translation>キャンセル(&amp;C)</translation>
     </message>
     <message>
-        <location line="-9"/>
         <source>Rich Text</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>リッチテキスト</translation>
+    </message>
+    <message>
         <source>Source</source>
-        <translation type="unfinished"></translation>
+        <translation>ソース</translation>
     </message>
 </context>
 <context>
     <name>qdesigner_internal::RichTextEditorToolBar</name>
     <message>
-        <location line="-224"/>
         <source>Insert &amp;Image</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="-70"/>
+        <translation>画像を挿入(&amp;I)</translation>
+    </message>
+    <message>
         <source>Bold</source>
         <translation>ボールド</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>CTRL+B</source>
         <translation>CTRL+B</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Italic</source>
         <translation>イタリック</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>CTRL+I</source>
         <translation>Ctrl+I</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Underline</source>
         <translation>下線</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>CTRL+U</source>
         <translation>CTRL+U</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>Left Align</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+5"/>
+        <translation>左端揃え</translation>
+    </message>
+    <message>
         <source>Center</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+5"/>
+        <translation>中央揃え</translation>
+    </message>
+    <message>
         <source>Right Align</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+5"/>
+        <translation>右端揃え</translation>
+    </message>
+    <message>
         <source>Justify</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+9"/>
+        <translation>両端揃え</translation>
+    </message>
+    <message>
         <source>Superscript</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+6"/>
+        <translation>上付き文字</translation>
+    </message>
+    <message>
         <source>Subscript</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+9"/>
+        <translation>下付き文字</translation>
+    </message>
+    <message>
         <source>Insert &amp;Link</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Color</source>
-        <translation type="obsolete">色</translation>
+        <translation>リンクを挿入(&amp;L)</translation>
     </message>
 </context>
 <context>
     <name>qdesigner_internal::ScriptDialog</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/scriptdialog.cpp" line="+68"/>
         <source>Edit script</source>
         <translation>スクリプトを編集</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>&lt;html&gt;フォームをロードしているときに実行する Qt スクリプトの断片を入力してください。&lt;br&gt;ウィジェットとその子ウィジェットは、それぞれ &lt;i&gt;widget&lt;/i&gt;、&lt;i&gt;childWidgets&lt;/i&gt; という変数でアクセスできます。</translation>
     </message>
     <message>
-        <location line="+50"/>
         <source>Syntax error</source>
         <translation>構文エラー</translation>
     </message>
@@ -8053,51 +5292,36 @@
 <context>
     <name>qdesigner_internal::ScriptErrorDialog</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/scripterrordialog.cpp" line="+27"/>
         <source>Script errors</source>
         <translation>スクリプトのエラー</translation>
     </message>
 </context>
 <context>
-    <name>qdesigner_internal::Sentinel</name>
-    <message>
-        <source>New Tool Bar</source>
-        <translation type="obsolete">新しいツールバー</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"/>
+        <translation>シグネイチャが &apos;%1&apos; であるスロットは既に存在します。</translation>
+    </message>
+    <message>
         <source>There is already a signal with the signature &apos;%1&apos;.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+7"/>
+        <translation>シグネイチャが &apos;%1&apos; であるシグナルは既に存在します。</translation>
+    </message>
+    <message>
         <source>%1 - Duplicate Signature</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+21"/>
-        <location line="+76"/>
+        <translation>%1 - 重複したシグネイチャ</translation>
+    </message>
+    <message>
         <source>Signals/Slots of %1</source>
-        <translation type="unfinished"></translation>
+        <translation>%1 のシグナル/スロット</translation>
     </message>
 </context>
 <context>
     <name>qdesigner_internal::SignalSlotEditorPlugin</name>
     <message>
-        <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditor_plugin.cpp" line="+76"/>
         <source>Edit Signals/Slots</source>
         <translation>シグナル/スロットを編集</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>F4</source>
         <translation>F4</translation>
     </message>
@@ -8105,7 +5329,6 @@
 <context>
     <name>qdesigner_internal::SignalSlotEditorTool</name>
     <message>
-        <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditor_tool.cpp" line="+62"/>
         <source>Edit Signals/Slots</source>
         <translation>シグナル/スロットを編集</translation>
     </message>
@@ -8113,114 +5336,74 @@
 <context>
     <name>qdesigner_internal::StatusBarTaskMenu</name>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/toolbar_taskmenu.cpp" line="+85"/>
         <source>Remove</source>
-        <translation type="unfinished">消去</translation>
+        <translation>削除</translation>
     </message>
 </context>
 <context>
     <name>qdesigner_internal::StringListEditorButton</name>
     <message>
-        <source>Change StringList</source>
-        <translation type="obsolete">文字列リストを変更</translation>
-    </message>
-    <message>
-        <location filename="../tools/designer/src/components/propertyeditor/stringlisteditorbutton.cpp" line="+60"/>
         <source>Change String List</source>
-        <translation type="unfinished"></translation>
+        <translation>文字列のリストを変更</translation>
     </message>
 </context>
 <context>
     <name>qdesigner_internal::StyleSheetEditorDialog</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/stylesheeteditor.cpp" line="+101"/>
         <source>Edit Style Sheet</source>
         <translation>スタイルシートを変更</translation>
     </message>
     <message>
-        <location line="-7"/>
-        <location line="+283"/>
         <source>Valid Style Sheet</source>
         <translation>有効なスタイルシート</translation>
     </message>
     <message>
-        <location line="-279"/>
         <source>Add Color...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>色を追加...</translation>
+    </message>
+    <message>
         <source>Add Font...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+281"/>
+        <translation>フォントを追加...</translation>
+    </message>
+    <message>
         <source>Invalid Style Sheet</source>
-        <translation type="unfinished">無効なスタイルシート</translation>
-    </message>
-    <message>
-        <location line="-284"/>
+        <translation>無効なスタイルシート</translation>
+    </message>
+    <message>
         <source>Add Resource...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>リソースを追加...</translation>
+    </message>
+    <message>
         <source>Add Gradient...</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>qdesigner_internal::StyledButton</name>
-    <message>
-        <source>All Pixmaps (</source>
-        <translation type="obsolete">全てのピックスマップ (</translation>
-    </message>
-    <message>
-        <source>%1-Pixmaps (%2)
-</source>
-        <translation type="obsolete">%1-ピックスマップ(%2)</translation>
-    </message>
-    <message>
-        <source>All Files (*.*)</source>
-        <translation type="obsolete">すべてのファイル(*.*)</translation>
-    </message>
-    <message>
-        <source>Open Image</source>
-        <translation type="obsolete">イメージを開く</translation>
+        <translation>グラデーションを追加...</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"/>
+        <translation>この番号から設定</translation>
+    </message>
+    <message>
         <source>Restart</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+2"/>
+        <translation>1番から設定</translation>
+    </message>
+    <message>
         <source>Tab Order List...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+44"/>
+        <translation>タブ順のリスト...</translation>
+    </message>
+    <message>
         <source>Tab Order List</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>タブ順のリスト</translation>
+    </message>
+    <message>
         <source>Tab Order</source>
-        <translation type="unfinished"></translation>
+        <translation>タブ順</translation>
     </message>
 </context>
 <context>
     <name>qdesigner_internal::TabOrderEditorPlugin</name>
     <message>
-        <location filename="../tools/designer/src/components/tabordereditor/tabordereditor_plugin.cpp" line="+77"/>
         <source>Edit Tab Order</source>
         <translation>タブ順を編集</translation>
     </message>
@@ -8228,7 +5411,6 @@
 <context>
     <name>qdesigner_internal::TabOrderEditorTool</name>
     <message>
-        <location filename="../tools/designer/src/components/tabordereditor/tabordereditor_tool.cpp" line="+61"/>
         <source>Edit Tab Order</source>
         <translation>タブ順を編集</translation>
     </message>
@@ -8236,168 +5418,45 @@
 <context>
     <name>qdesigner_internal::TableWidgetEditor</name>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/tablewidgeteditor.cpp" line="+71"/>
         <source>New Column</source>
         <translation>新しい列</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>New Row</source>
         <translation>新しい行</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>&amp;Columns</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>列(&amp;C)</translation>
+    </message>
+    <message>
         <source>&amp;Rows</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+137"/>
+        <translation>行(&amp;R)</translation>
+    </message>
+    <message>
         <source>Properties &amp;&lt;&lt;</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+2"/>
-        <location filename="../tools/designer/src/components/taskmenu/tablewidgeteditor.ui"/>
+        <translation>プロパティ &amp;&lt;&lt;</translation>
+    </message>
+    <message>
         <source>Properties &amp;&gt;&gt;</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../tools/designer/src/components/taskmenu/tablewidgeteditor.ui"/>
+        <translation>プロパティ &amp;&gt;&gt;</translation>
+    </message>
+    <message>
         <source>Edit Table Widget</source>
         <translation>テーブルウィジェットを編集</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Items</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Rows</source>
-        <translation type="obsolete">行</translation>
-    </message>
-    <message>
-        <source>Move Row Down</source>
-        <translation type="obsolete">この行を下へ</translation>
-    </message>
-    <message>
-        <source>D</source>
-        <translation type="obsolete">D</translation>
-    </message>
-    <message>
-        <source>Move Row Up</source>
-        <translation type="obsolete">この行を上へ</translation>
-    </message>
-    <message>
-        <source>U</source>
-        <translation type="obsolete">U</translation>
-    </message>
-    <message>
-        <source>Table Rows</source>
-        <translation type="obsolete">テーブルの行</translation>
-    </message>
-    <message>
-        <source>New</source>
-        <translation type="obsolete">新規</translation>
-    </message>
-    <message>
-        <source>Rename Row</source>
-        <translation type="obsolete">行の名前を変更</translation>
-    </message>
-    <message>
-        <source>Rename</source>
-        <translation type="obsolete">名前の変更</translation>
-    </message>
-    <message>
-        <source>Delete Row</source>
-        <translation type="obsolete">行を削除</translation>
-    </message>
-    <message>
-        <source>Delete</source>
-        <translation type="obsolete">削除</translation>
-    </message>
-    <message>
-        <source>Pixmap</source>
-        <translation type="obsolete">ピックスマップ</translation>
-    </message>
-    <message>
-        <source>Set Row Pixmap</source>
-        <translation type="obsolete">この行のピックスマップを設定</translation>
-    </message>
-    <message>
-        <source>...</source>
-        <translation type="obsolete">...</translation>
-    </message>
-    <message>
-        <source>Reset Row Pixmap</source>
-        <translation type="obsolete">この行のピックスマップをリセット</translation>
-    </message>
-    <message>
-        <location/>
+        <translation>アイテム(&amp;I)</translation>
+    </message>
+    <message>
         <source>Table Items</source>
         <translation>テーブルのアイテム</translation>
     </message>
-    <message>
-        <source>&amp;Text</source>
-        <translation type="obsolete">テキスト(&amp;T)</translation>
-    </message>
-    <message>
-        <source>Set Item Text</source>
-        <translation type="obsolete">このアイテムのテキストを設定</translation>
-    </message>
-    <message>
-        <source>Reset Item Pixmap</source>
-        <translation type="obsolete">このアイテムのピックスマップをリセット</translation>
-    </message>
-    <message>
-        <source>Set Item Pixmap</source>
-        <translation type="obsolete">このアイテムのピックスマップを設定</translation>
-    </message>
-    <message>
-        <source>&amp;Pixmap</source>
-        <translation type="obsolete">ピックスマップ(&amp;P)</translation>
-    </message>
-    <message>
-        <source>Columns</source>
-        <translation type="obsolete">列</translation>
-    </message>
-    <message>
-        <source>Rename Column</source>
-        <translation type="obsolete">列の名前を変更</translation>
-    </message>
-    <message>
-        <source>Delete Column</source>
-        <translation type="obsolete">列を削除</translation>
-    </message>
-    <message>
-        <source>Move Column Up</source>
-        <translation type="obsolete">この列を上へ</translation>
-    </message>
-    <message>
-        <source>Move Column Down</source>
-        <translation type="obsolete">この列を下へ</translation>
-    </message>
-    <message>
-        <source>Table Columns</source>
-        <translation type="obsolete">テーブルの列</translation>
-    </message>
-    <message>
-        <source>Set Column Pixmap</source>
-        <translation type="obsolete">この列のピックスマップを設定</translation>
-    </message>
-    <message>
-        <source>Reset Column Pixmap</source>
-        <translation type="obsolete">この列のピックスマップをリセット</translation>
-    </message>
 </context>
 <context>
     <name>qdesigner_internal::TableWidgetTaskMenu</name>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/tablewidget_taskmenu.cpp" line="+68"/>
         <source>Edit Items...</source>
         <translation>アイテムを編集...</translation>
     </message>
@@ -8405,321 +5464,185 @@
 <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"/>
+        <translation>テンプレートを保存するディレクトリを選択してください</translation>
+    </message>
+    <message>
         <source>Form</source>
-        <translation type="unfinished">フォーム</translation>
-    </message>
-    <message>
-        <location/>
+        <translation>フォーム</translation>
+    </message>
+    <message>
         <source>Additional Template Paths</source>
-        <translation type="unfinished">追加のテンプレートパス</translation>
-    </message>
-    <message>
-        <location/>
+        <translation>追加のテンプレートパス</translation>
+    </message>
+    <message>
         <source>...</source>
-        <translation type="unfinished">...</translation>
+        <translation>...</translation>
     </message>
 </context>
 <context>
     <name>qdesigner_internal::TextEditTaskMenu</name>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/textedit_taskmenu.cpp" line="+62"/>
         <source>Edit HTML</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>HTML を編集</translation>
+    </message>
+    <message>
         <source>Change HTML...</source>
         <translation>HTML を変更...</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Edit Text</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>テキストを編集</translation>
+    </message>
+    <message>
         <source>Change Plain Text...</source>
-        <translation type="unfinished"></translation>
+        <translation>プレインテキストを変更...</translation>
     </message>
 </context>
 <context>
     <name>qdesigner_internal::TextEditor</name>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/designerpropertymanager.cpp" line="-201"/>
         <source>Choose Resource...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>リソースを選択...</translation>
+    </message>
+    <message>
         <source>Choose File...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+120"/>
+        <translation>ファイルを選択...</translation>
+    </message>
+    <message>
         <source>Choose a File</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="-115"/>
+        <translation>ファイルを選択</translation>
+    </message>
+    <message>
         <source>...</source>
-        <translation type="unfinished">...</translation>
+        <translation>...</translation>
     </message>
 </context>
 <context>
     <name>qdesigner_internal::ToolBarEventFilter</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_toolbar.cpp" line="+239"/>
         <source>Insert Separator</source>
         <translation>セパレータを挿入</translation>
     </message>
     <message>
-        <location line="-65"/>
         <source>Remove action &apos;%1&apos;</source>
-        <translation>アクション &apos;%1&apos; を消去</translation>
-    </message>
-    <message>
-        <location line="+7"/>
+        <translation>アクション &apos;%1&apos; を削除</translation>
+    </message>
+    <message>
         <source>Remove Toolbar &apos;%1&apos;</source>
-        <translation>ツールバー &apos;%1&apos; を消去</translation>
-    </message>
-    <message>
-        <location line="-28"/>
+        <translation>ツールバー &apos;%1&apos; を削除</translation>
+    </message>
+    <message>
         <source>Insert Separator before &apos;%1&apos;</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+9"/>
+        <translation>&apos;%1&apos; の前にセパレータを挿入</translation>
+    </message>
+    <message>
         <source>Append Separator</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>qdesigner_internal::ToolBarTaskMenu</name>
-    <message>
-        <source>Customize...</source>
-        <translation type="obsolete">カスタマイズ...</translation>
+        <translation>セパレータを追加</translation>
     </message>
 </context>
 <context>
     <name>qdesigner_internal::TreeWidgetEditor</name>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/treewidgeteditor.cpp" line="+80"/>
         <source>&amp;Columns</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+69"/>
+        <translation>列(&amp;C)</translation>
+    </message>
+    <message>
         <source>Per column properties</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>各列毎のプロパティ</translation>
+    </message>
+    <message>
         <source>Common properties</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+53"/>
-        <location filename="../tools/designer/src/components/taskmenu/treewidgeteditor.ui"/>
+        <translation>共通するプロパティ</translation>
+    </message>
+    <message>
         <source>New Item</source>
         <translation>新しいアイテム</translation>
     </message>
     <message>
-        <location line="+194"/>
         <source>Properties &amp;&lt;&lt;</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+2"/>
-        <location filename="../tools/designer/src/components/taskmenu/treewidgeteditor.ui"/>
+        <translation>プロパティ &amp;&lt;&lt;</translation>
+    </message>
+    <message>
         <source>Properties &amp;&gt;&gt;</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>New Sub Item</source>
-        <translation type="obsolete">新しいサブアイテム</translation>
-    </message>
-    <message>
-        <location line="-327"/>
+        <translation>プロパティ &amp;&gt;&gt;</translation>
+    </message>
+    <message>
         <source>New Column</source>
         <translation>新しい列</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/treewidgeteditor.ui"/>
         <source>Edit Tree Widget</source>
         <translation>ツリーウィジェットを編集</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Items</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location/>
+        <translation>アイテム(&amp;I)</translation>
+    </message>
+    <message>
         <source>Tree Items</source>
         <translation>ツリーのアイテム</translation>
     </message>
     <message>
-        <source>&amp;Pixmap</source>
-        <translation type="obsolete">ピックスマップ(&amp;P)</translation>
-    </message>
-    <message>
-        <source>Set Item Pixmap</source>
-        <translation type="obsolete">このアイテムのピックスマップを設定</translation>
-    </message>
-    <message>
-        <source>...</source>
-        <translation type="obsolete">...</translation>
-    </message>
-    <message>
-        <source>Reset Item Pixmap</source>
-        <translation type="obsolete">このアイテムのピックスマップをリセット</translation>
-    </message>
-    <message>
-        <source>&amp;Text</source>
-        <translation type="obsolete">テキスト(&amp;T)</translation>
-    </message>
-    <message>
-        <source>Set Item Text</source>
-        <translation type="obsolete">このアイテムのテキストを設定</translation>
-    </message>
-    <message>
-        <source>&amp;New Item</source>
-        <translation type="obsolete">新しいアイテム(&amp;N)</translation>
-    </message>
-    <message>
-        <location filename="../tools/designer/src/components/taskmenu/treewidgeteditor.cpp" line="+150"/>
-        <location filename="../tools/designer/src/components/taskmenu/treewidgeteditor.ui"/>
         <source>New Subitem</source>
         <translation>新しいサブアイテム</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/treewidgeteditor.ui"/>
         <source>New &amp;Subitem</source>
         <translation>新しいサブアイテム(&amp;S)</translation>
     </message>
     <message>
-        <location/>
         <source>Delete Item</source>
         <translation>アイテムを削除</translation>
     </message>
     <message>
-        <source>&amp;Delete Item</source>
-        <translation type="obsolete">アイテムを削除(&amp;D)</translation>
-    </message>
-    <message>
-        <location/>
         <source>&amp;New</source>
-        <translation type="unfinished">新規(&amp;N)</translation>
-    </message>
-    <message>
-        <location/>
+        <translation>新規(&amp;N)</translation>
+    </message>
+    <message>
         <source>&amp;Delete</source>
-        <translation type="unfinished">削除(&amp;D)</translation>
-    </message>
-    <message>
-        <location/>
+        <translation>削除(&amp;D)</translation>
+    </message>
+    <message>
         <source>Move Item Left (before Parent Item)</source>
         <translation>このアイテムを左へ(親アイテムの前に)</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>このアイテムを右へ(すぐ後の兄弟アイテムの最初のサブアイテム)</translation>
     </message>
     <message>
-        <location/>
         <source>R</source>
         <translation>R</translation>
     </message>
     <message>
-        <location/>
         <source>Move Item Up</source>
         <translation>このアイテムを上へ</translation>
     </message>
     <message>
-        <location/>
         <source>U</source>
         <translation>U</translation>
     </message>
     <message>
-        <location/>
         <source>Move Item Down</source>
         <translation>このアイテムを下へ</translation>
     </message>
     <message>
-        <location/>
         <source>D</source>
         <translation>D</translation>
     </message>
     <message>
-        <source>Columns</source>
-        <translation type="obsolete">列</translation>
-    </message>
-    <message>
-        <source>Pixmap</source>
-        <translation type="obsolete">ピックスマップ</translation>
-    </message>
-    <message>
-        <source>Set Column Pixmap</source>
-        <translation type="obsolete">この列のピックスマップを設定</translation>
-    </message>
-    <message>
-        <source>Reset Column Pixmap</source>
-        <translation type="obsolete">この列のピックスマップをリセット</translation>
-    </message>
-    <message>
-        <source>New</source>
-        <translation type="obsolete">新規</translation>
-    </message>
-    <message>
-        <source>Rename Column</source>
-        <translation type="obsolete">列の名前を変更</translation>
-    </message>
-    <message>
-        <source>Rename</source>
-        <translation type="obsolete">名前の変更</translation>
-    </message>
-    <message>
-        <source>Delete Column</source>
-        <translation type="obsolete">列を削除</translation>
-    </message>
-    <message>
-        <source>Delete</source>
-        <translation type="obsolete">削除</translation>
-    </message>
-    <message>
-        <source>Move Column Up</source>
-        <translation type="obsolete">この列を上へ</translation>
-    </message>
-    <message>
-        <source>Move Column Down</source>
-        <translation type="obsolete">この列を下へ</translation>
-    </message>
-    <message>
-        <source>Tree Columns</source>
-        <translation type="obsolete">ツリーの列</translation>
-    </message>
-    <message>
-        <location/>
         <source>1</source>
-        <translation type="unfinished">1</translation>
+        <translation>1</translation>
     </message>
 </context>
 <context>
     <name>qdesigner_internal::TreeWidgetTaskMenu</name>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/treewidget_taskmenu.cpp" line="+67"/>
         <source>Edit Items...</source>
         <translation>アイテムを編集...</translation>
     </message>
@@ -8727,93 +5650,55 @@
 <context>
     <name>qdesigner_internal::WidgetBox</name>
     <message>
-        <location filename="../tools/designer/src/components/widgetbox/widgetbox_dnditem.cpp" line="+113"/>
         <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::WidgetBoxTreeView</name>
-    <message>
-        <source>Scratchpad</source>
-        <translation type="obsolete">スクラッチパッド</translation>
-    </message>
-    <message>
-        <source>Custom Widgets</source>
-        <translation type="obsolete">カスタムウィジェット</translation>
-    </message>
-    <message>
-        <source>Expand all</source>
-        <translation type="obsolete">すべて展開する</translation>
-    </message>
-    <message>
-        <source>Collapse all</source>
-        <translation type="obsolete">すべて折りたたむ</translation>
-    </message>
-    <message>
-        <source>Remove</source>
-        <translation type="obsolete">消去</translation>
-    </message>
-    <message>
-        <source>Edit name</source>
-        <translation type="obsolete">名前を編集</translation>
+        <translation>警告: ウィジェットボックス内にウィジェットを作成できません。カスタムウィジェットの XML が無効です。</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"/>
+        <translation>スクラッチパッド</translation>
+    </message>
+    <message>
         <source>Custom Widgets</source>
-        <translation type="unfinished">カスタムウィジェット</translation>
-    </message>
-    <message>
-        <location line="+260"/>
+        <translation>カスタムウィジェット</translation>
+    </message>
+    <message>
         <source>Expand all</source>
-        <translation type="unfinished">すべて展開する</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>すべて展開する</translation>
+    </message>
+    <message>
         <source>Collapse all</source>
-        <translation type="unfinished">すべて折りたたむ</translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>すべて折りたたむ</translation>
+    </message>
+    <message>
         <source>List View</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>リスト表示</translation>
+    </message>
+    <message>
         <source>Icon View</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+15"/>
+        <translation>アイコン表示</translation>
+    </message>
+    <message>
         <source>Remove</source>
-        <translation type="unfinished">消去</translation>
-    </message>
-    <message>
-        <location line="+2"/>
+        <translation>削除</translation>
+    </message>
+    <message>
         <source>Edit name</source>
-        <translation type="unfinished">名前を編集</translation>
+        <translation>名前を編集</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">クラス名 (%1) が既存のクラスと同じであるカスタムウィジェットプラグインが見つかりました。</translation>
+        <translation>クラス名 (%1) が既存のクラスと同じであるカスタムウィジェットプラグインが見つかりました。</translation>
     </message>
 </context>
 <context>
     <name>qdesigner_internal::WidgetEditorTool</name>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/tool_widgeteditor.cpp" line="+71"/>
         <source>Edit Widgets</source>
         <translation>ウィジェットを編集</translation>
     </message>
@@ -8821,57 +5706,56 @@
 <context>
     <name>qdesigner_internal::WidgetFactory</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/widgetfactory.cpp" line="+267"/>
         <source>The custom widget factory registered for widgets of class %1 returned 0.</source>
-        <translation type="unfinished">%1 というクラスのウィジェットのために登録されたカスタムウィジェットファクトリーが 0 を返しました。</translation>
-    </message>
-    <message>
-        <location line="+44"/>
+        <translation>クラス %1 のウィジェット用に登録されたカスタムウィジェットファクトリーが 0 を返しました。</translation>
+    </message>
+    <message>
         <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">%1 というクラスのウィジェットのために登録されたカスタムウィジェットファクトリーを使ってウィジェットを作成しているときに、クラス名のミスマッチが発生しました。%2 というクラスのウィジェットを返しました。</translation>
-    </message>
-    <message>
-        <location line="+99"/>
+        <translation>クラス %1 のウィジェット用に登録されたカスタムウィジェットファクトリーを用いてウィジェットを作成中に、クラス名のミスマッチが発生しました。%2 というクラスのウィジェットを返しました。</translation>
+    </message>
+    <message>
         <source>%1 Widget</source>
         <translation>%1 ウィジェット</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"/>
+        <translation>コンテナ &apos;%1&apos; (%2) の現在のページにレイアウトが作成できません。UI ファイルに矛盾が発生しています。レイアウトがコンテナウィジェット上に作成されている可能性があります。</translation>
+    </message>
+    <message>
         <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"/>
+        <translation>ウィジェット &apos;%1&apos; (%2) にレイアウトを追加できません。既に %3 型のレイアウトが存在します。
+UI ファイルに矛盾が発生しています。</translation>
+    </message>
+    <message>
         <source>Cannot create style &apos;%1&apos;.</source>
-        <translation type="unfinished"></translation>
+        <translation>スタイル &apos;%1&apos; を作成できません。</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"/>
+        <translation>進む</translation>
+    </message>
+    <message>
         <source>Back</source>
-        <translation type="unfinished"></translation>
+        <translation>戻る</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>
+        <translation>%1 %</translation>
+    </message>
+</context>
+<context>
+    <name>qdesigner_internal::ZoomablePreviewDeviceSkin</name>
+    <message>
+        <source>&amp;Zoom</source>
+        <translation>ズーム(&amp;Z)</translation>
     </message>
 </context>
 </TS>
--- a/translations/designer_pl.ts	Fri Sep 17 08:34:18 2010 +0300
+++ b/translations/designer_pl.ts	Mon Oct 04 01:19:32 2010 +0300
@@ -4,27 +4,22 @@
 <context>
     <name>AbstractFindWidget</name>
     <message>
-        <location filename="../tools/shared/findwidget/abstractfindwidget.cpp" line="+127"/>
         <source>&amp;Previous</source>
         <translation>&amp;Poprzednie</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>&amp;Next</source>
         <translation>&amp;Następne</translation>
     </message>
     <message>
-        <location line="+24"/>
         <source>&amp;Case sensitive</source>
         <translation>Uwzględniaj &amp;wielkość liter</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Whole &amp;words</source>
         <translation>&amp;Całe słowa</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;Przeszukano od początku</translation>
     </message>
@@ -32,17 +27,14 @@
 <context>
     <name>AddLinkDialog</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/addlinkdialog.ui"/>
         <source>Insert Link</source>
         <translation>Wstaw odsyłacz</translation>
     </message>
     <message>
-        <location/>
         <source>Title:</source>
         <translation>Tytuł:</translation>
     </message>
     <message>
-        <location/>
         <source>URL:</source>
         <translation>Adres URL:</translation>
     </message>
@@ -50,7 +42,6 @@
 <context>
     <name>AppFontDialog</name>
     <message>
-        <location filename="../tools/designer/src/designer/appfontdialog.cpp" line="+418"/>
         <source>Additional Fonts</source>
         <translation>Dodatkowe czcionki</translation>
     </message>
@@ -58,37 +49,30 @@
 <context>
     <name>AppFontManager</name>
     <message>
-        <location line="-267"/>
         <source>&apos;%1&apos; is not a file.</source>
         <translation>&apos;%1&apos; nie jest plikiem.</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>The font file &apos;%1&apos; does not have read permissions.</source>
         <translation>Plik z czcionką &apos;%1&apos; nie ma praw do odczytu.</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>The font file &apos;%1&apos; is already loaded.</source>
         <translation>Plik z czcionką &apos;%1&apos; jest już wczytany.</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>The font file &apos;%1&apos; could not be loaded.</source>
         <translation>Nie można wczytać pliku z czcionką %1.</translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>&apos;%1&apos; is not a valid font id.</source>
         <translation>&apos;%1&apos; nie jest poprawnym identyfikatorem czcionki.</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>There is no loaded font matching the id &apos;%1&apos;.</source>
         <translation>Brak wczytanej czcionki o identyfikatorze &apos;%1&apos;.</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>The font &apos;%1&apos; (%2) could not be unloaded.</source>
         <translation>Nie można usunąć czcionki &apos;%1&apos; (%2).</translation>
     </message>
@@ -96,52 +80,42 @@
 <context>
     <name>AppFontWidget</name>
     <message>
-        <location line="+26"/>
         <source>Fonts</source>
         <translation>Czcionki</translation>
     </message>
     <message>
-        <location line="+58"/>
         <source>Add font files</source>
         <translation>Dodaj pliki z czcionkami</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Remove current font file</source>
         <translation>Usuń bieżący plik z czcionką</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Remove all font files</source>
         <translation>Usuń wszystkie pliki z czcionkami</translation>
     </message>
     <message>
-        <location line="+19"/>
         <source>Add Font Files</source>
         <translation>Dodaj pliki z czcionkami</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Font files (*.ttf)</source>
         <translation>Pliki z czcionkami (*.ttf)</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>Error Adding Fonts</source>
         <translation>Błąd podczas dodawania czcionek</translation>
     </message>
     <message>
-        <location line="+24"/>
         <source>Error Removing Fonts</source>
         <translation>Błąd podczas usuwania czcionek</translation>
     </message>
     <message>
-        <location line="+22"/>
         <source>Remove Fonts</source>
         <translation>Unuń czcionki</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Would you like to remove all fonts?</source>
         <translation>Czy chcesz usunąć wszystkie czcionki?</translation>
     </message>
@@ -149,12 +123,10 @@
 <context>
     <name>AppearanceOptionsWidget</name>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_appearanceoptions.ui"/>
         <source>Form</source>
         <translation>Formularz</translation>
     </message>
     <message>
-        <location/>
         <source>User Interface Mode</source>
         <translation>Tryb interfejsu użytkownika</translation>
     </message>
@@ -162,17 +134,14 @@
 <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>Nie można wysłac komendy. Asystent nie odpowiada.</translation>
     </message>
     <message>
-        <location line="+39"/>
         <source>The binary &apos;%1&apos; does not exist.</source>
         <translation>Plik binarny &apos;%1&apos; nie istnieje.</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Unable to launch assistant (%1).</source>
         <translation>Nie można uruchomić asystenta (%1).</translation>
     </message>
@@ -180,92 +149,74 @@
 <context>
     <name>BrushPropertyManager</name>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/brushpropertymanager.cpp" line="+52"/>
         <source>No brush</source>
         <translation>Brak szczotki</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Solid</source>
         <translation>Jednolity</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Dense 1</source>
         <translation>Gęstość 1</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Dense 2</source>
         <translation>Gęstość 2</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Dense 3</source>
         <translation>Gęstość 3</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Dense 4</source>
         <translation>Gęstość 4</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Dense 5</source>
         <translation>Gęstość 5</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Dense 6</source>
         <translation>Gęstość 6</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Dense 7</source>
         <translation>Gęstość 7</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Horizontal</source>
         <translation>Poziomo</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Vertical</source>
         <translation>Pionowo</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Cross</source>
         <translation>Krzyżyk</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Backward diagonal</source>
         <translation>Linie pochylone w prawo</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Forward diagonal</source>
         <translation>Linie pochylone w lewo</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Crossing diagonal</source>
         <translation>Linie krzyżujące się</translation>
     </message>
     <message>
-        <location line="+93"/>
         <source>Style</source>
         <translation>Styl</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>Color</source>
         <translation>Kolor</translation>
     </message>
     <message>
-        <location line="+105"/>
         <source>[%1, %2]</source>
         <translation>[%1, %2]</translation>
     </message>
@@ -273,360 +224,277 @@
 <context>
     <name>Command</name>
     <message>
-        <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditor.cpp" line="+208"/>
-        <location line="+258"/>
         <source>Change signal</source>
         <translation>Zmień sygnał</translation>
     </message>
     <message>
-        <location line="-256"/>
-        <location line="+268"/>
         <source>Change slot</source>
         <translation>Zmień slot</translation>
     </message>
     <message>
-        <location line="-220"/>
         <source>Change signal-slot connection</source>
         <translation>Zmień połączenie sygnału ze slotem</translation>
     </message>
     <message>
-        <location line="+234"/>
         <source>Change sender</source>
         <translation>Zmień nadawcę</translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>Change receiver</source>
         <translation>Zmień odbiorcę</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/connectionedit.cpp" line="+143"/>
         <source>Add connection</source>
         <translation>Dodaj połączenie</translation>
     </message>
     <message>
-        <location line="+54"/>
         <source>Adjust connection</source>
         <translation>Dopasuj połączenie</translation>
     </message>
     <message>
-        <location line="+19"/>
         <source>Delete connections</source>
         <translation>Usuń połączenia</translation>
     </message>
     <message>
-        <location line="+58"/>
         <source>Change source</source>
         <translation>Zmień źródło</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Change target</source>
         <translation>Zmień przeznaczenie</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_command.cpp" line="+149"/>
         <source>Insert &apos;%1&apos;</source>
         <translation>Wstaw &apos;%1&apos;</translation>
     </message>
     <message>
-        <location line="+167"/>
         <source>Raise &apos;%1&apos;</source>
         <translation>Przenieś na wierzch &apos;%1&apos;</translation>
     </message>
     <message>
-        <location line="+33"/>
         <source>Lower &apos;%1&apos;</source>
         <translation>Przenieś na spód &apos;%1&apos;</translation>
     </message>
     <message>
-        <location line="+113"/>
         <source>Delete &apos;%1&apos;</source>
         <translation>Usuń &apos;%1&apos;</translation>
     </message>
     <message>
-        <location line="+119"/>
         <source>Reparent &apos;%1&apos;</source>
         <translation>Zmień rodzica &apos;%1&apos;</translation>
     </message>
     <message>
-        <location line="+53"/>
         <source>Promote to custom widget</source>
         <translation>Zastąp widżet</translation>
     </message>
     <message>
-        <location line="+42"/>
         <source>Demote from custom widget</source>
         <translation>Przywróć do oryginalnego widżetu</translation>
     </message>
     <message>
-        <location line="+79"/>
         <source>Lay out using grid</source>
         <translation>Rozmieść używając siatki</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Lay out vertically</source>
         <translation>Rozmieść w pionie</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Lay out horizontally</source>
         <translation>Rozmieść w poziomie</translation>
     </message>
     <message>
-        <location line="+41"/>
         <source>Break layout</source>
         <translation>Usuń rozmieszczenie</translation>
     </message>
     <message>
-        <location line="+240"/>
-        <location line="+235"/>
-        <location line="+78"/>
         <source>Move Page</source>
         <translation>Przenieś stronę</translation>
     </message>
     <message>
-        <location line="-279"/>
-        <location line="+123"/>
-        <location line="+188"/>
-        <location line="+666"/>
         <source>Delete Page</source>
         <translation>Usuń stronę</translation>
     </message>
     <message>
-        <location line="-939"/>
-        <location line="+123"/>
         <source>Page</source>
         <translation>Strona</translation>
     </message>
     <message>
-        <location line="+860"/>
         <source>page</source>
         <translation>strona</translation>
     </message>
     <message>
-        <location line="-978"/>
-        <location line="+123"/>
-        <location line="+186"/>
-        <location line="+667"/>
         <source>Insert Page</source>
         <translation>Wstaw stronę</translation>
     </message>
     <message>
-        <location line="-647"/>
         <source>Change Tab order</source>
         <translation>Zmień kolejność tabulacji</translation>
     </message>
     <message>
-        <location line="+28"/>
         <source>Create Menu Bar</source>
         <translation>Utwórz pasek menu</translation>
     </message>
     <message>
-        <location line="+44"/>
         <source>Delete Menu Bar</source>
         <translation>Usuń pasek menu</translation>
     </message>
     <message>
-        <location line="+47"/>
         <source>Create Status Bar</source>
         <translation>Utwórz pasek stanu</translation>
     </message>
     <message>
-        <location line="+42"/>
         <source>Delete Status Bar</source>
         <translation>Usuń pasek stanu</translation>
     </message>
     <message>
-        <location line="+45"/>
         <source>Add Tool Bar</source>
         <translation>Dodaj pasek narzędzi</translation>
     </message>
     <message>
-        <location line="+59"/>
         <source>Add Dock Window</source>
         <translation>Dodaj okno dokowalne</translation>
     </message>
     <message>
-        <location line="+53"/>
         <source>Adjust Size of &apos;%1&apos;</source>
         <translation>Dopasuj rozmiar &apos;%1&apos;</translation>
     </message>
     <message>
-        <location line="+57"/>
         <source>Change Form Layout Item Geometry</source>
         <translation>Zmień geometrię elementu w formularzu</translation>
     </message>
     <message>
-        <location line="+95"/>
         <source>Change Layout Item Geometry</source>
         <translation>Zmień geometrię elementu w rozmieszczeniu</translation>
     </message>
     <message>
-        <location line="+576"/>
         <source>Change Table Contents</source>
         <translation>Zmień zawartość tabeli</translation>
     </message>
     <message>
-        <location line="+107"/>
         <source>Change Tree Contents</source>
         <translation>Zmień zawartość drzewa</translation>
     </message>
     <message>
-        <location line="+74"/>
-        <location line="+146"/>
         <source>Add action</source>
         <translation>Dodaj akcję</translation>
     </message>
     <message>
-        <location line="-120"/>
-        <location line="+126"/>
         <source>Remove action</source>
         <translation>Usuń akcję</translation>
     </message>
     <message>
-        <location line="+53"/>
         <source>Add menu</source>
         <translation>Dodaj menu</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Remove menu</source>
         <translation>Usuń menu</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Create submenu</source>
         <translation>Utwórz podmenu</translation>
     </message>
     <message>
-        <location line="+31"/>
         <source>Delete Tool Bar</source>
         <translation>Usuń pasek narzędzi</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_menu.cpp" line="+1196"/>
         <source>Set action text</source>
         <translation>Ustaw tekst akcji</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Insert action</source>
         <translation>Wstaw akcję</translation>
     </message>
     <message>
-        <location line="+89"/>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_menubar.cpp" line="+915"/>
         <source>Move action</source>
         <translation>Przenieś akcję</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_menubar.cpp" line="-432"/>
         <source>Change Title</source>
         <translation>Zmień tytuł</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Insert Menu</source>
         <translation>Wstaw menu</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/signalslotdialog.cpp" line="+202"/>
         <source>Change signals/slots</source>
         <translation>Zmień sygnały/sloty</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_command.cpp" line="-867"/>
         <source>Delete Subwindow</source>
         <translation>Usuń podokno</translation>
     </message>
     <message>
-        <location line="+44"/>
         <source>Insert Subwindow</source>
         <translation>Wstaw 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>Zmień porządek głębokości (Z-order) dla &apos;%1&apos;</translation>
     </message>
     <message>
-        <location line="+625"/>
         <source>Simplify Grid Layout</source>
         <translation>Uprość rozmieszczenie w siatce</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/button_taskmenu.cpp" line="+221"/>
         <source>Create button group</source>
         <translation>Utwórz grupę przycisków</translation>
     </message>
     <message>
-        <location line="+27"/>
         <source>Break button group</source>
         <translation>Usuń grupę przycisków</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Break button group &apos;%1&apos;</source>
         <translation>Usuń grupę przycisków &apos;%1&apos;</translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>Add buttons to group</source>
         <translation>Dodaj przyciski do grupy</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/formlayoutmenu.cpp" line="+458"/>
-        <location filename="../tools/designer/src/components/taskmenu/button_taskmenu.cpp" line="+8"/>
         <source>Add &apos;%1&apos; to &apos;%2&apos;</source>
         <extracomment>Command description for adding buttons to a QButtonGroup</extracomment>
         <translation>Dodaj &apos;%1&apos; do &apos;%2&apos;</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/button_taskmenu.cpp" line="+14"/>
         <source>Remove buttons from group</source>
         <translation>Usuń przyciski z grupy</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>Usuń &apos;%1&apos; z &apos;%2&apos;</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>Przekształć %1/%2 w %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>Zmień rozmieszczenie widżetu &apos;%1&apos; z %2 na %3</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/scriptcommand.cpp" line="+55"/>
         <source>Change script</source>
         <translation>Zmień skrypt</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_propertycommand.cpp" line="+1225"/>
         <source>Changed &apos;%1&apos; of &apos;%2&apos;</source>
         <translation>Zmień &apos;%1&apos; w &apos;%2&apos;</translation>
     </message>
     <message numerus="yes">
-        <location line="+3"/>
         <source>Changed &apos;%1&apos; of %n objects</source>
         <translation>
             <numerusform>Zmieniono &apos;%1&apos; w %n obiekcie</numerusform>
@@ -635,12 +503,10 @@
         </translation>
     </message>
     <message>
-        <location line="+84"/>
         <source>Reset &apos;%1&apos; of &apos;%2&apos;</source>
         <translation>Przywróć domyślną wartość &apos;%1&apos; w &apos;%2&apos;</translation>
     </message>
     <message numerus="yes">
-        <location line="+3"/>
         <source>Reset &apos;%1&apos; of %n objects</source>
         <translation>
             <numerusform>Przywrócono domyślną wartość &apos;%1&apos; w &apos;%n&apos; obiekcie</numerusform>
@@ -649,12 +515,10 @@
         </translation>
     </message>
     <message>
-        <location line="+89"/>
         <source>Add dynamic property &apos;%1&apos; to &apos;%2&apos;</source>
         <translation>Dodaj dynamiczną właściwość &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>
         <translation>
             <numerusform>Dodaj dynamiczną właściwość &apos;%1&apos; do %n obiektu</numerusform>
@@ -663,12 +527,10 @@
         </translation>
     </message>
     <message>
-        <location line="+86"/>
         <source>Remove dynamic property &apos;%1&apos; from &apos;%2&apos;</source>
         <translation>Usuń dynamiczną właściwość &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>Usuń dynamiczną właściwość &apos;%1&apos; z %n obiektu</numerusform>
@@ -680,22 +542,18 @@
 <context>
     <name>ConnectDialog</name>
     <message>
-        <location filename="../tools/designer/src/components/signalsloteditor/connectdialog.ui"/>
         <source>Configure Connection</source>
         <translation>Skonfiguruj połączenie</translation>
     </message>
     <message>
-        <location/>
         <source>GroupBox</source>
         <translation>GroupBox</translation>
     </message>
     <message>
-        <location/>
         <source>Edit...</source>
         <translation>Edycja...</translation>
     </message>
     <message>
-        <location/>
         <source>Show signals and slots inherited from QWidget</source>
         <translation>Pokaż sygnały i sloty klasy QWidget</translation>
     </message>
@@ -703,17 +561,14 @@
 <context>
     <name>ConnectionDelegate</name>
     <message>
-        <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditorwindow.cpp" line="+645"/>
         <source>&lt;object&gt;</source>
         <translation>&lt;obiekt&gt;</translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>&lt;signal&gt;</source>
         <translation>&lt;sygnał&gt;</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>&lt;slot&gt;</source>
         <translation>&lt;slot&gt;</translation>
     </message>
@@ -721,19 +576,16 @@
 <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>Standardowa (96 x 96)</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Greenphone (179 x 185)</source>
         <extracomment>Embedded device screen resolution</extracomment>
         <translation>Greenphone&apos;a (179 x 185)</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>High (192 x 192)</source>
         <extracomment>Embedded device high definition screen resolution</extracomment>
         <translation>Wysoka (192 x 192)</translation>
@@ -742,89 +594,72 @@
 <context>
     <name>Designer</name>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/qdesigner_resource.cpp" line="+446"/>
         <source>Qt Designer</source>
         <translation>Qt Designer</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qsimpleresource.cpp" line="+339"/>
         <source>Custom Widgets</source>
         <translation>Własne widżety</translation>
     </message>
     <message>
-        <location line="+12"/>
         <source>Promoted Widgets</source>
         <translation>Zastępcze widżety</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_utils.cpp" line="+682"/>
         <source>Unable to launch %1.</source>
         <translation>Nie można uruchomić %1.</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>%1 timed out.</source>
         <translation>%1 przekroczony czas operacji.</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/qdesigner_resource.cpp" line="+217"/>
         <source>This file cannot be read because it was created using %1.</source>
         <translation>Nie można odczytać pliku ponieważ został utworzony przy użyciu %1.</translation>
     </message>
     <message>
-        <location line="+96"/>
         <source>This file cannot be read because the extra info extension failed to load.</source>
         <translation>Nie można odczytać pliku ponieważ dodatkowe informacje nie mogły zostać załadowane.</translation>
     </message>
     <message>
-        <location line="-52"/>
         <source>The converted file could not be read.</source>
         <translation>Nie można odczytać skonwertowanego pliku.</translation>
     </message>
     <message>
-        <location line="-76"/>
         <source>Invalid UI file: The root element &lt;ui&gt; is missing.</source>
         <translation>Niepoprawny plik UI: brak głównego elementu &lt;ui&gt;.</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>An error has occurred while reading the UI file at line %1, column %2: %3</source>
         <translation>Wystąpił błąd podczas czytania zawartości pliku UI, linia %1, kolumna %2: %3</translation>
     </message>
     <message>
-        <location line="+40"/>
         <source>This file was created using Designer from Qt-%1 and cannot be read.</source>
         <translation>Ten plik został utworzony za pomocą Qt Designer w wersji %1 i nie można go odczytać.</translation>
     </message>
     <message>
-        <location line="-221"/>
         <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>Ten plik zawiera dystansy na najwyższym poziomie.&lt;br&gt;&lt;b&gt;NIE&lt;/b&gt; zostały one jednak zachowane w pliku.</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Perhaps you forgot to create a layout?</source>
         <translation>Możliwe że zapomniałeś utworzyć rozmieszczenia?</translation>
     </message>
     <message>
-        <location line="+253"/>
         <source>This file was created using Designer from Qt-%1 and will be converted to a new form by Qt Designer.</source>
         <translation>Ten plik został utworzony za pomocą Qt Designer w wersji %1 i będzie skonwertowany przez Qt Designer&apos;a do nowego formularza.</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>Stary formularz nie był zmieniony, ale nowy będzie musiał być zapisany pod nową nazwą.</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 plik został utworzony za pomocą Qt Designer w wersji %1 i nie można go odczytać.
 %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>Uruchom go przez &lt;b&gt;uic3&amp;nbsp;-convert&lt;/b&gt; aby skonwertować do formatu Qt-4.</translation>
     </message>
@@ -832,12 +667,10 @@
 <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 nie jest poprawną wartością typu wyliczeniowego &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>Nie można skonwertować &apos;%1&apos; do wartości typu wyliczeniowego &apos;%2&apos;.</translation>
     </message>
@@ -845,7 +678,6 @@
 <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>Nie można skonwertować &apos;%1&apos; do wartości typu flaga &apos;%2&apos;.</translation>
     </message>
@@ -853,13 +685,11 @@
 <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; nie jest liczbą.</translation>
     </message>
     <message>
-        <location line="+23"/>
         <source>An invalid tag &lt;%1&gt; was encountered.</source>
         <translation>Napotkano niepoprawny tag &lt;%1&gt;.</translation>
     </message>
@@ -867,27 +697,22 @@
 <context>
     <name>DeviceProfileDialog</name>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/deviceprofiledialog.ui"/>
         <source>&amp;Family</source>
         <translation>&amp;Rodzina</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Point Size</source>
         <translation>&amp;Wielkość punktu</translation>
     </message>
     <message>
-        <location/>
         <source>Style</source>
         <translation>Styl</translation>
     </message>
     <message>
-        <location/>
         <source>Device DPI</source>
         <translation>Rozdzielczość urządzenia</translation>
     </message>
     <message>
-        <location/>
         <source>Name</source>
         <translation>Nazwa</translation>
     </message>
@@ -895,57 +720,46 @@
 <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>Nie można wczytać pliku z obrazkiem %1.</translation>
     </message>
     <message>
-        <location line="+64"/>
         <source>The skin directory &apos;%1&apos; does not contain a configuration file.</source>
         <translation>Katalog ze skórkami (skin) &apos;%1&apos; nie zawiera pliku konfiguracyjnego.</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>The skin configuration file &apos;%1&apos; could not be opened.</source>
         <translation>Nie można otworzyć pliku z konfiguracją skórki (skin) &apos;%1&apos;.</translation>
     </message>
     <message>
-        <location line="+76"/>
         <source>Syntax error: %1</source>
         <translation>Błąd składni: %1</translation>
     </message>
     <message>
-        <location line="+54"/>
         <source>The skin cursor image file &apos;%1&apos; does not exist.</source>
         <translation>Plik z obrazkiem kursora &apos;%1&apos; dla skórki (skin) nie istnieje.</translation>
     </message>
     <message>
-        <location line="+25"/>
         <source>Syntax error in area definition: %1</source>
         <translation>Błąd składni w definicji obszaru: %1</translation>
     </message>
     <message>
-        <location line="+38"/>
         <source>Mismatch in number of areas, expected %1, got %2.</source>
         <translation>Niezgodność w ilości obszarów, spodziewano się %1, otrzymano %2.</translation>
     </message>
     <message>
-        <location line="-187"/>
         <source>The skin configuration file &apos;%1&apos; could not be read: %2</source>
         <translation>Nie można odczytać pliku z konfiguracją skórki (skin) &apos;%1&apos;, powód: %2</translation>
     </message>
     <message>
-        <location line="+91"/>
         <source>The skin &quot;up&quot; image file &apos;%1&apos; does not exist.</source>
         <translation>Plik z obrazkiem &quot;do góry&quot; &apos;%1&apos; dla skórki (skin) nie istnieje.</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>The skin &quot;down&quot; image file &apos;%1&apos; does not exist.</source>
         <translation>Plik z obrazkiem &quot;w dół&quot; &apos;%1&apos; dla skórki (skin) nie istnieje.</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>The skin &quot;closed&quot; image file &apos;%1&apos; does not exist.</source>
         <translation>Plik z obrazkiem &quot;zamknięte&quot; &apos;%1&apos; dla skórki (skin) nie istnieje.</translation>
     </message>
@@ -953,7 +767,6 @@
 <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;Styl&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;Rozdzielczość&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>
@@ -962,13 +775,11 @@
 <context>
     <name>EmbeddedOptionsPage</name>
     <message>
-        <location line="+103"/>
         <source>Embedded Design</source>
         <extracomment>Tab in preferences dialog</extracomment>
         <translation>Projekt dla urządzeń specjalizowanych</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>Device Profiles</source>
         <extracomment>EmbeddedOptionsControl group box&quot;</extracomment>
         <translation>Profile urządzeń</translation>
@@ -977,27 +788,22 @@
 <context>
     <name>FontPanel</name>
     <message>
-        <location filename="../tools/shared/fontpanel/fontpanel.cpp" line="+63"/>
         <source>Font</source>
         <translation>Czcionka</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>&amp;Writing system</source>
         <translation>Sys&amp;tem pisania</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>&amp;Family</source>
         <translation>&amp;Rodzina</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;Wielkość punktu</translation>
     </message>
@@ -1005,22 +811,18 @@
 <context>
     <name>FontPropertyManager</name>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/fontpropertymanager.cpp" line="+62"/>
         <source>PreferDefault</source>
         <translation>Preferuj domyślny</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>NoAntialias</source>
         <translation>Brak antyaliasingu</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>PreferAntialias</source>
         <translation>Preferuj antyaliasing</translation>
     </message>
     <message>
-        <location line="+61"/>
         <source>Antialiasing</source>
         <translation>Antyaliasing</translation>
     </message>
@@ -1028,7 +830,6 @@
 <context>
     <name>FormBuilder</name>
     <message>
-        <location filename="../tools/designer/src/lib/uilib/formbuilderextra.cpp" line="+375"/>
         <source>Invalid stretch value for &apos;%1&apos;: &apos;%2&apos;</source>
         <extracomment>Parsing layout stretch values
 ----------
@@ -1038,7 +839,6 @@
         <translation>Niepoprawna wartość rozciągniecia dla &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
 ----------
@@ -1051,28 +851,23 @@
 <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>Powiększanie podglądu</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Default Zoom</source>
         <translation>Domyślne powiększenie</translation>
     </message>
     <message>
-        <location line="+29"/>
         <source>Forms</source>
         <extracomment>Tab in preferences dialog</extracomment>
         <translation>Formularze</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>Default Grid</source>
         <translation>Domyślna siatka</translation>
     </message>
@@ -1080,37 +875,30 @@
 <context>
     <name>FormLayoutRowDialog</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/formlayoutrowdialog.ui"/>
         <source>Add Form Layout Row</source>
         <translation>Dodaj wiersz do formularza</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Label text:</source>
         <translation>Text &amp;etykiety:</translation>
     </message>
     <message>
-        <location/>
         <source>Field &amp;type:</source>
         <translation>&amp;Typ pola:</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Field name:</source>
         <translation>Nazwa &amp;pola:</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Buddy:</source>
         <translation>Etykieta &amp;skojarzona:</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Row:</source>
         <translation>&amp;Wiersz:</translation>
     </message>
     <message>
-        <location/>
         <source>Label &amp;name:</source>
         <translation>&amp;Nazwa etykiety:</translation>
     </message>
@@ -1118,12 +906,10 @@
 <context>
     <name>FormWindow</name>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/formwindow.cpp" line="+1754"/>
         <source>Unexpected element &lt;%1&gt;</source>
         <translation>Niespodziewany element &lt;%1&gt;</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Error while pasting clipboard contents at line %1, column %2: %3</source>
         <translation>Błąd podczas wklejania zawartości schowka, linia %1, kolumna %2: %3</translation>
     </message>
@@ -1131,62 +917,50 @@
 <context>
     <name>FormWindowSettings</name>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/formwindowsettings.ui"/>
         <source>Form Settings</source>
         <translation>Ustawienia formularza</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Pixmap Function</source>
         <translation>Funkcja ustawiania &amp;pixmapy</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Include Hints</source>
         <translation>Dodatkowe pliki &amp;nagłówkowe</translation>
     </message>
     <message>
-        <location/>
         <source>Embedded Design</source>
         <translation>Projekt dla urządzeń specjalizowanych</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Author</source>
         <translation>&amp;Autor</translation>
     </message>
     <message>
-        <location/>
         <source>Layout &amp;Default</source>
         <translation>&amp;Rozmieszczenie domyślne</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Spacing:</source>
         <translation>&amp;Odstępy:</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Margin:</source>
         <translation>&amp;Marginesy:</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Layout Function</source>
         <translation>Funkcja &amp;rozmieszczania widżetów</translation>
     </message>
     <message>
-        <location/>
         <source>Ma&amp;rgin:</source>
         <translation>Ma&amp;rginesy:</translation>
     </message>
     <message>
-        <location/>
         <source>Spa&amp;cing:</source>
         <translation>Od&amp;stępy:</translation>
     </message>
     <message>
-        <location/>
         <source>Grid</source>
         <translation>Siatka</translation>
     </message>
@@ -1194,7 +968,6 @@
 <context>
     <name>IconSelector</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/iconselector.cpp" line="+352"/>
         <source>All Pixmaps (</source>
         <translation>Wszystkie pixmapy (</translation>
     </message>
@@ -1202,7 +975,6 @@
 <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 ikona wybrana wyłączona</translation>
@@ -1211,33 +983,27 @@
 <context>
     <name>MainWindowBase</name>
     <message>
-        <location filename="../tools/designer/src/designer/mainwindow.cpp" line="+121"/>
         <source>Main</source>
         <extracomment>Not currently used (main tool bar)</extracomment>
         <translation>Główny</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>File</source>
         <translation>Plik</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Edit</source>
         <translation>Edycja</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Tools</source>
         <translation>Narzędzia</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Form</source>
         <translation>Formularz</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Qt Designer</source>
         <translation>Qt Designer</translation>
     </message>
@@ -1245,52 +1011,42 @@
 <context>
     <name>NewForm</name>
     <message>
-        <location filename="../tools/designer/src/designer/newform.cpp" line="+83"/>
         <source>New Form</source>
         <translation>Nowy formularz</translation>
     </message>
     <message>
-        <location line="+32"/>
         <source>&amp;Open...</source>
         <translation>&amp;Otwórz...</translation>
     </message>
     <message>
-        <location line="-36"/>
         <source>C&amp;reate</source>
         <translation>&amp;Utwórz</translation>
     </message>
     <message>
-        <location line="+33"/>
         <source>&amp;Close</source>
         <translation>Za&amp;mknij</translation>
     </message>
     <message>
-        <location line="-34"/>
         <source>Show this Dialog on Startup</source>
         <translation>Pokazuj to okno przy uruchamianiu</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Recent</source>
         <translation>Ostatnie</translation>
     </message>
     <message>
-        <location line="+39"/>
         <source>&amp;Recent Forms</source>
         <translation>Os&amp;tatnio edytowane formularze</translation>
     </message>
     <message>
-        <location line="+64"/>
         <source>Read error</source>
         <translation>Błąd odczytu</translation>
     </message>
     <message>
-        <location line="+23"/>
         <source>A temporary form file could not be created in %1.</source>
         <translation>Nie można utworzyć pliku z tymczasowym formularzem w %1.</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>The temporary form file %1 could not be written.</source>
         <translation>Nie można zapisać pliku z tymczasowym formularzem w %1.</translation>
     </message>
@@ -1298,22 +1054,18 @@
 <context>
     <name>ObjectInspectorModel</name>
     <message>
-        <location filename="../tools/designer/src/components/objectinspector/objectinspectormodel.cpp" line="+360"/>
         <source>Object</source>
         <translation>Obiekt</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Class</source>
         <translation>Klasa</translation>
     </message>
     <message>
-        <location line="+35"/>
         <source>separator</source>
         <translation>separator</translation>
     </message>
     <message>
-        <location line="+98"/>
         <source>&lt;noname&gt;</source>
         <translation>&lt;brak_nazwy&gt;</translation>
     </message>
@@ -1321,12 +1073,10 @@
 <context>
     <name>ObjectNameDialog</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_taskmenu.cpp" line="+158"/>
         <source>Change Object Name</source>
         <translation>Zmień nazwę obiektu</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Object Name</source>
         <translation>Nazwa obiektu</translation>
     </message>
@@ -1334,12 +1084,10 @@
 <context>
     <name>PluginDialog</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/plugindialog.ui"/>
         <source>Plugin Information</source>
         <translation>Informacje o wtyczkach</translation>
     </message>
     <message>
-        <location/>
         <source>1</source>
         <translation>1</translation>
     </message>
@@ -1347,7 +1095,6 @@
 <context>
     <name>PreferencesDialog</name>
     <message>
-        <location filename="../tools/designer/src/designer/preferencesdialog.ui"/>
         <source>Preferences</source>
         <translation>Ustawienia</translation>
     </message>
@@ -1355,32 +1102,26 @@
 <context>
     <name>PreviewConfigurationWidget</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/previewconfigurationwidget.ui"/>
         <source>Form</source>
         <translation>Formularz</translation>
     </message>
     <message>
-        <location/>
         <source>Print/Preview Configuration</source>
         <translation>Konfiguracja wydruku/podglądu</translation>
     </message>
     <message>
-        <location/>
         <source>Style</source>
         <translation>Styl</translation>
     </message>
     <message>
-        <location/>
         <source>Style sheet</source>
         <translation>Arkusz stylu</translation>
     </message>
     <message>
-        <location/>
         <source>...</source>
         <translation>...</translation>
     </message>
     <message>
-        <location/>
         <source>Device skin</source>
         <translation>Skórka (skin) urządzenia</translation>
     </message>
@@ -1388,7 +1129,6 @@
 <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>Nie używana</translation>
@@ -1397,8 +1137,6 @@
 <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>Strona</translation>
     </message>
@@ -1406,59 +1144,48 @@
 <context>
     <name>QAbstractFormBuilder</name>
     <message>
-        <location filename="../tools/designer/src/lib/uilib/abstractformbuilder.cpp" line="+206"/>
         <source>Unexpected element &lt;%1&gt;</source>
         <translation>Niespodziewany element &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>Wystąpił błąd podczas czytania zawartości pliku ui, linia %1, kolumna %2: %3</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Invalid UI file: The root element &lt;ui&gt; is missing.</source>
         <translation>Niepoprawny plik UI: brak głównego elementu &lt;ui&gt;.</translation>
     </message>
     <message>
-        <location line="+104"/>
         <source>The creation of a widget of the class &apos;%1&apos; failed.</source>
         <translation>Utworzenie widżetu klasy &apos;%1&apos; nie powiodło się.</translation>
     </message>
     <message>
-        <location line="+296"/>
         <source>Attempt to add child that is not of class QWizardPage to QWizard.</source>
         <translation>Próba dodania potomka który nie jest klasy QWizardPage do QWizard.</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>Próba dodania rozmieszczenia do widżetu &apos;%1&apos; (%2) który posiada już niezarządzane rozmieszczenie typu %3.
 To wskazuje na niespójność w pliku ui.</translation>
     </message>
     <message>
-        <location line="+144"/>
         <source>Empty widget item in %1 &apos;%2&apos;.</source>
         <translation>Pusty element w %1 &apos;%2&apos;.</translation>
     </message>
     <message>
-        <location line="+680"/>
         <source>Flags property are not supported yet.</source>
         <translation>Właściwości typu flaga nie są jeszcze obsługiwane.</translation>
     </message>
     <message>
-        <location line="+81"/>
         <source>While applying tab stops: The widget &apos;%1&apos; could not be found.</source>
         <translation>Podczas przypisywania kolejności tabulacji: widżet &apos;%1&apos; nie został znaleziony.</translation>
     </message>
     <message>
-        <location line="+923"/>
         <source>Invalid QButtonGroup reference &apos;%1&apos; referenced by &apos;%2&apos;.</source>
         <translation>Niepoprawny odnośnik QButtonGroup &apos;%1&apos;, użyty w &apos;%2&apos;.</translation>
     </message>
     <message>
-        <location line="+511"/>
         <source>This version of the uitools library is linked without script support.</source>
         <translation>Ta wersja biblioteki uitools nie zawiera obsługi skryptów.</translation>
     </message>
@@ -1466,12 +1193,10 @@
 <context>
     <name>QAxWidgetPlugin</name>
     <message>
-        <location filename="../tools/designer/src/plugins/activeqt/qaxwidgetplugin.cpp" line="+75"/>
         <source>ActiveX control</source>
         <translation>Kontrolka ActiveX</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>ActiveX control widget</source>
         <translation>Widżet z kontrolką ActiveX</translation>
     </message>
@@ -1479,22 +1204,18 @@
 <context>
     <name>QAxWidgetTaskMenu</name>
     <message>
-        <location filename="../tools/designer/src/plugins/activeqt/qaxwidgettaskmenu.cpp" line="+119"/>
         <source>Set Control</source>
         <translation>Ustaw kontrolkę</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Reset Control</source>
         <translation>Przywróć pustą zawartość kontrolce</translation>
     </message>
     <message>
-        <location line="+41"/>
         <source>Licensed Control</source>
         <translation>Kontrolka licencjonowana</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>The control requires a design-time license</source>
         <translation>Kontrolka wymaga licencji podczas projektowania</translation>
     </message>
@@ -1502,67 +1223,54 @@
 <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 nie jest klasą zastępczą.</translation>
     </message>
     <message>
-        <location line="+65"/>
         <source>The base class %1 is invalid.</source>
         <translation>Klasa podstawowa %1 jest niewłaściwa.</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>The class %1 already exists.</source>
         <translation>Klasa %1 już istnieje.</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Promoted Widgets</source>
         <translation>Zastępcze widżety</translation>
     </message>
     <message>
-        <location line="+126"/>
         <source>The class %1 cannot be removed</source>
         <translation>Nie można usunąć klasy %1</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>The class %1 cannot be removed because it is still referenced.</source>
         <translation>Nie można usunąć klasy %1 ponieważ w dalszym ciągu są do niej odwołania.</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>The class %1 cannot be renamed</source>
         <translation>Nie można zmienić nazwy klasy %1</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>The class %1 cannot be renamed to an empty name.</source>
         <translation>Nie można zmienić nazwy klasy %1 na pustą nazwę.</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>There is already a class named %1.</source>
         <translation>Istnieje już klasa o nazwie %1.</translation>
     </message>
     <message>
-        <location line="+29"/>
         <source>Cannot set an empty include file.</source>
         <translation>Nie można ustawić pustego pliku nagłówkowego.</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/uilib/formscriptrunner.cpp" line="+88"/>
         <source>Exception at line %1: %2</source>
         <translation>Wyjątek w linii %1: %2</translation>
     </message>
     <message>
-        <location line="+36"/>
         <source>Unknown error</source>
         <translation>Nieznany błąd</translation>
     </message>
     <message>
-        <location line="+50"/>
         <source>An error occurred while running the script for %1: %2
 Script: %3</source>
         <translation>Wystąpił błąd podczas uruchamiana skryptu dla %1: %2
@@ -1572,17 +1280,14 @@
 <context>
     <name>QDesigner</name>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner.cpp" line="+141"/>
         <source>%1 - warning</source>
         <translation>%1 - ostrzeżenie</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>Nie można użyć tej aplikacji w wydaniu Qt Console</translation>
     </message>
@@ -1590,105 +1295,82 @@
 <context>
     <name>QDesignerActions</name>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_actions.cpp" line="+519"/>
         <source>Clear &amp;Menu</source>
         <translation>Wyczyść &amp;menu</translation>
     </message>
     <message>
-        <location line="-329"/>
         <source>&amp;Quit</source>
         <translation>Za&amp;kończ</translation>
     </message>
     <message>
-        <location line="-10"/>
         <source>Edit Widgets</source>
         <translation>Modyfikuj widżety</translation>
     </message>
     <message>
-        <location line="+219"/>
         <source>CTRL+R</source>
         <translation>CTRL+R</translation>
     </message>
     <message>
-        <location line="-206"/>
         <source>&amp;Minimize</source>
         <translation>&amp;Zminimalizuj</translation>
     </message>
     <message>
-        <location line="+224"/>
         <source>CTRL+M</source>
         <translation>CTRL+M</translation>
     </message>
     <message>
-        <location line="-222"/>
         <source>Bring All to Front</source>
         <translation>Wszystkie na wierzch</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Additional Fonts...</source>
         <translation>Dodatkowe czcionki...</translation>
     </message>
     <message>
-        <location line="+250"/>
         <source>Qt Designer &amp;Help</source>
         <translation>Pomo&amp;c Qt Designer</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Current Widget Help</source>
         <translation>Pomoc dla bieżącego widżetu</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>What&apos;s New in Qt Designer?</source>
         <translation>Co nowego w Qt Designer?</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>About Plugins</source>
         <translation>Informacje o wtyczkach</translation>
     </message>
     <message>
-        <location line="+6"/>
-        <location line="+601"/>
         <source>About Qt Designer</source>
         <translation>Informacje o Qt Designer</translation>
     </message>
     <message>
-        <location line="-595"/>
         <source>About Qt</source>
         <translation>Informacje o Qt</translation>
     </message>
     <message>
-        <location line="+44"/>
         <source>&amp;Recent Forms</source>
         <translation>Os&amp;tatnio edytowane formularze</translation>
     </message>
     <message>
-        <location line="+77"/>
-        <location line="+197"/>
         <source>Open Form</source>
         <translation>Otwórz formularz</translation>
     </message>
     <message>
-        <location line="-72"/>
         <source>Designer</source>
         <translation>Projektant</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Feature not implemented yet!</source>
         <translation>Cecha nie zaimplementowana!</translation>
     </message>
     <message>
-        <location line="+141"/>
-        <location line="+40"/>
         <source>Save Form?</source>
         <translation>Zachować formularz?</translation>
     </message>
     <message>
-        <location line="-35"/>
         <source>The file %1 could not be opened.
 Reason: %2
 Would you like to retry or select a different file?</source>
@@ -1697,145 +1379,114 @@
 Czy chcesz spróbować ponownie lub zmienić nazwę pliku?</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Select New File</source>
         <translation>Wybierz nowy plik</translation>
     </message>
     <message>
-        <location line="-723"/>
         <source>%1 already exists.
 Do you want to replace it?</source>
         <translation>%1 już istnieje.
 Czy chcesz go zastąpić?</translation>
     </message>
     <message>
-        <location line="+954"/>
         <source>&amp;Close Preview</source>
         <translation>Za&amp;mknij podgląd</translation>
     </message>
     <message>
-        <location line="-913"/>
         <source>Preferences...</source>
         <translation>Ustawienia...</translation>
     </message>
     <message>
-        <location line="+75"/>
         <source>CTRL+SHIFT+S</source>
         <translation>CTRL+SHIFT+S</translation>
     </message>
     <message>
-        <location line="+331"/>
-        <location line="+37"/>
-        <location line="+160"/>
         <source>Designer UI files (*.%1);;All Files (*)</source>
         <translation>Pliki Designer UI (*.%1);;Wszystkie pliki (*)</translation>
     </message>
     <message>
-        <location line="-670"/>
         <source>Saved %1.</source>
         <translation>Formularz %1 zachowany pomyślnie.</translation>
     </message>
     <message>
-        <location line="+656"/>
         <source>Read error</source>
         <translation>Błąd odczytu</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>%1
 Do you want to update the file location or generate a new form?</source>
         <translation>%1
 Czy chcesz zaktualizować położenie pliku lub wygenerować nowy formularz?</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>&amp;Update</source>
         <translation>&amp;Uaktualnij</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;New Form</source>
         <translation>Nowy &amp;formularz</translation>
     </message>
     <message>
-        <location line="+78"/>
         <source>Could not open file</source>
         <translation>Nie można otworzyć pliku</translation>
     </message>
     <message>
-        <location line="+40"/>
         <source>Could not write file</source>
         <translation>Nie można zapisać pliku</translation>
     </message>
     <message>
-        <location line="-728"/>
         <source>&amp;New...</source>
         <translation>&amp;Nowy...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Open...</source>
         <translation>&amp;Otwórz...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Save</source>
         <translation>&amp;Zachowaj</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Save &amp;As...</source>
         <translation>Zachowaj j&amp;ako...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Save A&amp;ll</source>
         <translation>Zachowaj &amp;wszystko</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Save As &amp;Template...</source>
         <translation>Zachowaj jako &amp;szablon...</translation>
     </message>
     <message>
-        <location line="+1"/>
-        <location line="+925"/>
         <source>&amp;Close</source>
         <translation>Za&amp;mknij</translation>
     </message>
     <message>
-        <location line="-924"/>
         <source>Save &amp;Image...</source>
         <translation>Zachowaj o&amp;brazek...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Print...</source>
         <translation>&amp;Drukuj...</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>View &amp;Code...</source>
         <translation>Pokaż &amp;kod...</translation>
     </message>
     <message>
-        <location line="+448"/>
-        <location line="+248"/>
         <source>Save Form As</source>
         <translation>Zachowaj formularz jako</translation>
     </message>
     <message>
-        <location line="+429"/>
         <source>Preview failed</source>
         <translation>Nie można utworzyć podglądu</translation>
     </message>
     <message>
-        <location line="-575"/>
         <source>Code generation failed</source>
         <translation>Nie można wygenerować kodu</translation>
     </message>
     <message>
-        <location line="+170"/>
         <source>It was not possible to write the entire file %1 to disk.
 Reason:%2
 Would you like to retry?</source>
@@ -1844,60 +1495,46 @@
 Czy chcesz spróbować ponownie?</translation>
     </message>
     <message>
-        <location line="+239"/>
-        <location line="+23"/>
         <source>The backup file %1 could not be written.</source>
         <translation>Nie można zapisać pliku zapasowego %1.</translation>
     </message>
     <message>
-        <location line="+107"/>
         <source>The backup directory %1 could not be created.</source>
         <translation>Nie można utworzyć katalogu %1 na pliki zapasowe.</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>The temporary backup directory %1 could not be created.</source>
         <translation>Nie można utworzyć tymczasowego katalogu %1 na pliki zapasowe.</translation>
     </message>
     <message>
-        <location line="+54"/>
         <source>Image files (*.%1)</source>
         <translation>Pliki z obrazkami (*.%1)</translation>
     </message>
     <message>
-        <location line="+9"/>
-        <location line="+17"/>
         <source>Save Image</source>
         <translation>Zachowaj obrazek</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>The file %1 could not be written.</source>
         <translation>Nie można zapisać pliku %1.</translation>
     </message>
     <message>
-        <location line="-298"/>
-        <location line="+34"/>
         <source>Assistant</source>
         <translation>Assistant</translation>
     </message>
     <message>
-        <location line="+259"/>
         <source>Saved image %1.</source>
         <translation>Zachowano obrazek %1.</translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>Please close all forms to enable the loading of additional fonts.</source>
         <translation>Zamknij wszystkie formularze aby umożliwić wczytanie dodatkowych czcionek.</translation>
     </message>
     <message>
-        <location line="+52"/>
         <source>Printed %1.</source>
         <translation>Wydrukowano %1.</translation>
     </message>
     <message>
-        <location line="-1163"/>
         <source>ALT+CTRL+S</source>
         <translation>ALT+CTRL+S</translation>
     </message>
@@ -1905,7 +1542,6 @@
 <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>Wygląd</translation>
@@ -1914,17 +1550,14 @@
 <context>
     <name>QDesignerAppearanceOptionsWidget</name>
     <message>
-        <location line="-53"/>
         <source>Docked Window</source>
         <translation>Okna dokowalne</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Multiple Top-Level Windows</source>
         <translation>Wiele okien głównych</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Toolwindow Font</source>
         <translation>Czcionka okna narzędzi</translation>
     </message>
@@ -1932,22 +1565,18 @@
 <context>
     <name>QDesignerAxWidget</name>
     <message>
-        <location filename="../tools/designer/src/plugins/activeqt/qaxwidgettaskmenu.cpp" line="-71"/>
         <source>Reset control</source>
         <translation>Przywróć pustą zawartość kontrolce</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Set control</source>
         <translation>Ustaw kontrolkę</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/plugins/activeqt/qdesigneraxwidget.cpp" line="+179"/>
         <source>Control loaded</source>
         <translation>Kontrolka wczytana</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>Wystąpił wyjątek COM podczas wykonywania metody typu %1 o indeksie %2 w &quot;%3&quot;.</translation>
     </message>
@@ -1955,17 +1584,14 @@
 <context>
     <name>QDesignerFormBuilder</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_formbuilder.cpp" line="+89"/>
         <source>Script errors occurred:</source>
         <translation>Wystąpiły błędy w skrypcie:</translation>
     </message>
     <message>
-        <location line="+307"/>
         <source>The preview failed to build.</source>
         <translation>Nie można utworzyć podglądu.</translation>
     </message>
     <message>
-        <location line="+65"/>
         <source>Designer</source>
         <translation>Projektant</translation>
     </message>
@@ -1973,22 +1599,18 @@
 <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>Zachować formularz?</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Do you want to save the changes to this document before closing?</source>
         <translation>Czy chcesz zachować zmiany w tym dokumencie przed zamknięciem?</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>If you don&apos;t save, your changes will be lost.</source>
         <translation>Jeśli ich nie zachowasz, zostaną utracone.</translation>
     </message>
@@ -1996,38 +1618,30 @@
 <context>
     <name>QDesignerMenu</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_menu.cpp" line="-1180"/>
         <source>Type Here</source>
         <translation>Wpisz tutaj</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Add Separator</source>
         <translation>Dodaj separator</translation>
     </message>
     <message>
-        <location line="+378"/>
         <source>Remove action &apos;%1&apos;</source>
         <translation>Usuń akcję &apos;%1&apos;</translation>
     </message>
     <message>
-        <location line="+325"/>
         <source>Insert action</source>
         <translation>Wstaw akcję</translation>
     </message>
     <message>
-        <location line="-300"/>
-        <location line="+649"/>
         <source>Add separator</source>
         <translation>Dodaj separator</translation>
     </message>
     <message>
-        <location line="-681"/>
         <source>Insert separator</source>
         <translation>Wstaw separator</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Remove separator</source>
         <translation>Usuń separator</translation>
     </message>
@@ -2035,22 +1649,18 @@
 <context>
     <name>QDesignerMenuBar</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_menubar.cpp" line="-375"/>
         <source>Type Here</source>
         <translation>Wpisz tutaj</translation>
     </message>
     <message>
-        <location line="+298"/>
         <source>Remove Menu &apos;%1&apos;</source>
         <translation>Usuń menu &apos;%1&apos;</translation>
     </message>
     <message>
-        <location line="+12"/>
         <source>Remove Menu Bar</source>
         <translation>Usuń pasek menu</translation>
     </message>
     <message>
-        <location line="+70"/>
         <source>Menu</source>
         <translation>Menu</translation>
     </message>
@@ -2058,37 +1668,30 @@
 <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>Wystąpił błąd XML podczas przetwarzania kodu XML dla własnego widżetu %1: %2</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>A required attribute (&apos;%1&apos;) is missing.</source>
         <translation>Brak wymaganego atrybutu &quot;%1&quot;.</translation>
     </message>
     <message>
-        <location line="+38"/>
         <source>An invalid property specification (&apos;%1&apos;) was encountered. Supported types: %2</source>
         <translation>Wystąpiła błędna specyfikacja właściwości &quot;%1&quot;. Obsługiwane typy: %2</translation>
     </message>
     <message>
-        <location line="+20"/>
         <source>&apos;%1&apos; is not a valid string property specification.</source>
         <translation>&quot;%1&quot; nie jest poprawną specyfikacją właściwości typu ciąg.</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>Kod XML własnego widżetu %1 nie zawiera żadnego elementu &lt;widget&gt; ani &lt;ui&gt;.</translation>
     </message>
     <message>
-        <location line="+12"/>
         <source>The class attribute for the class %1 is missing.</source>
         <translation>Atrybut &quot;class&quot; dla klasy %1 nie istnieje.</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>The class attribute for the class %1 does not match the class name %2.</source>
         <translation>Atrybut &quot;class&quot; dla klasy %1 nie odpowiada nazwie klasy %2.</translation>
     </message>
@@ -2096,7 +1699,6 @@
 <context>
     <name>QDesignerPropertySheet</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_propertysheet.cpp" line="+762"/>
         <source>Dynamic Properties</source>
         <translation>Dynamiczne właściwości</translation>
     </message>
@@ -2104,31 +1706,26 @@
 <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>Rozmieszczenie typu &apos;%1&apos; nie jest obsługiwane. Będzie ono zastąpione siatką.</translation>
     </message>
     <message>
-        <location line="+239"/>
         <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>Rozszerzenie pojemnikowe widżetu &quot;%1&quot; (%2) zwróciło widżet który nie jest zarządzany przez Designera &quot;%3&quot; (%4) podczas pytania o stronę #%5.
 Strony pojemników powinny być dodawane jedynie poprzez wyspecyfikowanie ich w XML zwróconym przez metodę domXml() w widżecie użytkownika.</translation>
     </message>
     <message>
-        <location line="+545"/>
         <source>Unexpected element &lt;%1&gt;</source>
         <extracomment>Parsing clipboard contents</extracomment>
         <translation>Niespodziewany element &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>Błąd podczas wklejania zawartości schowka, linia %1, kolumna %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>Błąd podczas wklejania zawartości schowka: Brak głównego elementu &lt;ui&gt;.</translation>
@@ -2137,12 +1734,10 @@
 <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>Nie można utworzyć ścieżki %1 dla szablonów.</translation>
     </message>
     <message>
-        <location line="+184"/>
         <source>An error has been encountered while parsing device profile XML: %1</source>
         <translation>Wystąpił błąd podczas przetwarzania kodu XML dla profilu urządzenia: %1</translation>
     </message>
@@ -2150,32 +1745,26 @@
 <context>
     <name>QDesignerToolWindow</name>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_toolwindow.cpp" line="+190"/>
         <source>Property Editor</source>
         <translation>Edytor właściwości</translation>
     </message>
     <message>
-        <location line="+54"/>
         <source>Action Editor</source>
         <translation>Edytor akcji</translation>
     </message>
     <message>
-        <location line="+42"/>
         <source>Object Inspector</source>
         <translation>Hierarchia obiektów</translation>
     </message>
     <message>
-        <location line="+35"/>
         <source>Resource Browser</source>
         <translation>Przeglądarka zasobów</translation>
     </message>
     <message>
-        <location line="+34"/>
         <source>Signal/Slot Editor</source>
         <translation>Edytor sygnałów/slotów</translation>
     </message>
     <message>
-        <location line="+41"/>
         <source>Widget Box</source>
         <translation>Panel widżetów</translation>
     </message>
@@ -2183,97 +1772,78 @@
 <context>
     <name>QDesignerWorkbench</name>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_workbench.cpp" line="+199"/>
         <source>&amp;File</source>
         <translation>&amp;Plik</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>F&amp;orm</source>
         <translation>&amp;Formularz</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Preview in</source>
         <translation>Podgląd w stylu</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>&amp;View</source>
         <translation>&amp;Widok</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>&amp;Settings</source>
         <translation>U&amp;stawienia</translation>
     </message>
     <message>
-        <location line="+204"/>
         <source>Widget Box</source>
         <translation>Panel widżetów</translation>
     </message>
     <message>
-        <location line="+392"/>
         <source>The last session of Designer was not terminated correctly. Backup files were left behind. Do you want to load them?</source>
         <translation>Designer nie został poprawnie zamknięty w trakcie ostatniej sesji. Istnieją pliki zapasowe, czy chcesz je otworzyć?</translation>
     </message>
     <message>
-        <location line="+157"/>
         <source>The file &lt;b&gt;%1&lt;/b&gt; is not a valid Designer UI file.</source>
         <translation>Plik &lt;b&gt;%1&lt;/b&gt; nie jest poprawnym plikiem UI Designera.</translation>
     </message>
     <message>
-        <location line="-751"/>
         <source>&amp;Window</source>
         <translation>&amp;Okno</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>&amp;Help</source>
         <translation>Pomo&amp;c</translation>
     </message>
     <message>
-        <location line="-15"/>
         <source>Edit</source>
         <translation>Edycja</translation>
     </message>
     <message>
-        <location line="+38"/>
         <source>Toolbars</source>
         <translation>Paski narzędzi</translation>
     </message>
     <message>
-        <location line="+466"/>
         <source>Save Forms?</source>
         <translation>Zachować formularze?</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>If you do not review your documents, all your changes will be lost.</source>
         <translation>Jeśli nie przejrzysz dokumentów, wszystkie zmiany zostaną utracone.</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Review Changes</source>
         <translation>Przeglądnij zmiany</translation>
     </message>
     <message>
-        <location line="-2"/>
         <source>Discard Changes</source>
         <translation>Odrzuć zmiany</translation>
     </message>
     <message>
-        <location line="+97"/>
         <source>Backup Information</source>
         <translation>Informacja o kopiach zapasowych</translation>
     </message>
     <message>
-        <location line="+112"/>
         <source>The file &lt;b&gt;%1&lt;/b&gt; could not be opened.</source>
         <translation>Nie można otworzyć pliku &lt;b&gt;%1&lt;/b&gt;.</translation>
     </message>
     <message numerus="yes">
-        <location line="-213"/>
         <source>There are %n forms with unsaved changes. Do you want to review these changes before quitting?</source>
         <translation>
             <numerusform>Jest %n formularz z niezachowanymi zmianami. Czy chcesz przejrzeć zmiany przed wyjściem z programu?</numerusform>
@@ -2285,7 +1855,6 @@
 <context>
     <name>QFormBuilder</name>
     <message>
-        <location filename="../tools/designer/src/lib/uilib/formbuilder.cpp" line="+168"/>
         <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
 ----------
@@ -2295,47 +1864,38 @@
         <translation>Pusta nazwa klasy została przekazana do %1 (nazwa obiektu: &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 nie mógł utworzyć własnego widżetu klasy &apos;%1&apos;. Będzie on zastąpiony klasą bazową &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>QFormBuilder nie mógł utworzyć widżetu klasy &apos;%1&apos;.</translation>
     </message>
     <message>
-        <location line="+61"/>
         <source>The layout type `%1&apos; is not supported.</source>
         <translation>Typ rozmieszczenia &apos;%1&apos; nie jest obsługiwany.</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>Nie można odczytać właściwości %1 typu zbiór.</translation>
     </message>
     <message>
-        <location line="+23"/>
         <source>The enumeration-type property %1 could not be read.</source>
         <translation>Nie można odczytać właściwości %1 typu wyliczeniowego.</translation>
     </message>
     <message>
-        <location line="+190"/>
         <source>Reading properties of the type %1 is not supported yet.</source>
         <translation>Odczytywanie właściwości typu %1 nie jest jeszcze obsługiwane.</translation>
     </message>
     <message>
-        <location line="+266"/>
         <source>The property %1 could not be written. The type %2 is not supported yet.</source>
         <translation>Nie można zapisać właściwości %1. Typ %2 nie jest jeszcze obsługiwany.</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/uilib/properties_p.h" line="+132"/>
         <source>The enumeration-value &apos;%1&apos; is invalid. The default value &apos;%2&apos; will be used instead.</source>
         <translation>Wartość &quot;%1&quot; typu wyliczeniowego jest niepoprawna. Użyta zostanie domyślna wartość &quot;%2&quot;.</translation>
     </message>
     <message>
-        <location line="+14"/>
         <source>The flag-value &apos;%1&apos; is invalid. Zero will be used instead.</source>
         <translation>Wartość &quot;%1&quot; flagi jest niepoprawna. Użyta zostanie wartość zerowa.</translation>
     </message>
@@ -2343,48 +1903,38 @@
 <context>
     <name>QStackedWidgetEventFilter</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_stackedbox.cpp" line="+194"/>
         <source>Previous Page</source>
         <translation>Poprzednia strona</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Next Page</source>
         <translation>Następna strona</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Delete</source>
         <translation>Usuń</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Before Current Page</source>
         <translation>Przed bieżącą stroną</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>After Current Page</source>
         <translation>Za bieżącą stroną</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Change Page Order...</source>
         <translation>Zmień porządek stron...</translation>
     </message>
     <message>
-        <location line="+72"/>
         <source>Change Page Order</source>
         <translation>Zmień porządek stron</translation>
     </message>
     <message>
-        <location line="+49"/>
         <source>Page %1 of %2</source>
         <translation>Strona %1 z %2</translation>
     </message>
     <message>
-        <location line="+10"/>
-        <location line="+4"/>
         <source>Insert Page</source>
         <translation>Wstaw stronę</translation>
     </message>
@@ -2392,12 +1942,10 @@
 <context>
     <name>QStackedWidgetPreviewEventFilter</name>
     <message>
-        <location line="-153"/>
         <source>Go to previous page of %1 &apos;%2&apos; (%3/%4).</source>
         <translation>Przejdź do poprzedniej strony %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>Przejdź do następnej strony %1 &apos;%2&apos; (%3/%4).</translation>
     </message>
@@ -2405,28 +1953,22 @@
 <context>
     <name>QTabWidgetEventFilter</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_tabwidget.cpp" line="+89"/>
         <source>Delete</source>
         <translation>Usuń</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Before Current Page</source>
         <translation>Przed bieżącą stroną</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>After Current Page</source>
         <translation>Za bieżącą stroną</translation>
     </message>
     <message>
-        <location line="+283"/>
         <source>Page %1 of %2</source>
         <translation>Strona %1 z %2</translation>
     </message>
     <message>
-        <location line="+10"/>
-        <location line="+4"/>
         <source>Insert Page</source>
         <translation>Wstaw stronę</translation>
     </message>
@@ -2434,37 +1976,30 @@
 <context>
     <name>QToolBoxHelper</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_toolbox.cpp" line="+64"/>
         <source>Delete Page</source>
         <translation>Usuń stronę</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Before Current Page</source>
         <translation>Przed bieżącą stroną</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>After Current Page</source>
         <translation>Za bieżącą stroną</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Change Page Order...</source>
         <translation>Zmień porządek stron...</translation>
     </message>
     <message>
-        <location line="+116"/>
         <source>Change Page Order</source>
         <translation>Zmień porządek stron</translation>
     </message>
     <message>
-        <location line="+44"/>
         <source>Page %1 of %2</source>
         <translation>Strona %1 z %2</translation>
     </message>
     <message>
-        <location line="+12"/>
         <source>Insert Page</source>
         <translation>Wstaw stronę</translation>
     </message>
@@ -2472,15 +2007,10 @@
 <context>
     <name>QtBoolEdit</name>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qtpropertybrowserutils.cpp" line="+255"/>
-        <location line="+10"/>
-        <location line="+25"/>
         <source>True</source>
         <translation>Prawda</translation>
     </message>
     <message>
-        <location line="-25"/>
-        <location line="+25"/>
         <source>False</source>
         <translation>Fałsz</translation>
     </message>
@@ -2488,12 +2018,10 @@
 <context>
     <name>QtBoolPropertyManager</name>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="+1507"/>
         <source>True</source>
         <translation>Prawda</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>False</source>
         <translation>Fałsz</translation>
     </message>
@@ -2501,7 +2029,6 @@
 <context>
     <name>QtCharEdit</name>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qteditorfactory.cpp" line="+1584"/>
         <source>Clear Char</source>
         <translation>Wyczyść znak</translation>
     </message>
@@ -2509,7 +2036,6 @@
 <context>
     <name>QtColorEditWidget</name>
     <message>
-        <location line="+605"/>
         <source>...</source>
         <translation>...</translation>
     </message>
@@ -2517,22 +2043,18 @@
 <context>
     <name>QtColorPropertyManager</name>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="+4718"/>
         <source>Red</source>
         <translation>Czerwień</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Green</source>
         <translation>Zieleń</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Blue</source>
         <translation>Błękit</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Alpha</source>
         <translation>Kanał alfa</translation>
     </message>
@@ -2540,97 +2062,78 @@
 <context>
     <name>QtCursorDatabase</name>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qtpropertybrowserutils.cpp" line="-230"/>
         <source>Cross</source>
         <translation>Krzyż</translation>
     </message>
     <message>
-        <location line="-4"/>
         <source>Arrow</source>
         <translation>Strzałka</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Up Arrow</source>
         <translation>Strzałka do góry</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Wait</source>
         <translation>Oczekiwanie</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>IBeam</source>
         <translation>Kursor tekstowy</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Size Vertical</source>
         <translation>Rozmiar N-S</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Size Horizontal</source>
         <translation>Rozmiar W-E</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Size Backslash</source>
         <translation>Rozmiar NW-SE</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Size Slash</source>
         <translation>Rozmiar NE-SW</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Size All</source>
         <translation>Rozmiar N-E-S-W</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Blank</source>
         <translation>Pusty</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Split Vertical</source>
         <translation>Podzielony pionowo</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Split Horizontal</source>
         <translation>Podzielony poziomo</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Pointing Hand</source>
         <translation>Rączka wskazująca</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Forbidden</source>
         <translation>Zabroniony</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Open Hand</source>
         <translation>Rączka otwarta</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Closed Hand</source>
         <translation>Rączka zamknięta</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>What&apos;s This</source>
         <translation>Co to jest</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Busy</source>
         <translation>Zajęty</translation>
     </message>
@@ -2638,12 +2141,10 @@
 <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>Wybierz czcionkę</translation>
     </message>
@@ -2651,37 +2152,30 @@
 <context>
     <name>QtFontPropertyManager</name>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="-330"/>
         <source>Bold</source>
         <translation>Pogrubiony</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Italic</source>
         <translation>Kursywa</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Underline</source>
         <translation>Podkreślony</translation>
     </message>
     <message>
-        <location line="-35"/>
         <source>Family</source>
         <translation>Rodzina</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>Point Size</source>
         <translation>Wielkość punktu</translation>
     </message>
     <message>
-        <location line="+29"/>
         <source>Strikeout</source>
         <translation>Przekreślony</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Kerning</source>
         <translation>Kerning</translation>
     </message>
@@ -2689,7 +2183,6 @@
 <context>
     <name>QtGradientDialog</name>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradientdialog.ui"/>
         <source>Edit Gradient</source>
         <translation>Modyfikuj gradient</translation>
     </message>
@@ -2697,304 +2190,242 @@
 <context>
     <name>QtGradientEditor</name>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.cpp" line="+431"/>
         <source>Start X</source>
         <translation>Początek X</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Start Y</source>
         <translation>Początek Y</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Final X</source>
         <translation>Koniec X</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Final Y</source>
         <translation>Koniec Y</translation>
     </message>
     <message>
-        <location line="+7"/>
-        <location line="+24"/>
         <source>Central X</source>
         <translation>Środek X</translation>
     </message>
     <message>
-        <location line="-20"/>
-        <location line="+24"/>
         <source>Central Y</source>
         <translation>Środek Y</translation>
     </message>
     <message>
-        <location line="-20"/>
         <source>Focal X</source>
         <translation>Ogniskowa X</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Focal Y</source>
         <translation>Ogniskowa Y</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Radius</source>
         <translation>Promień</translation>
     </message>
     <message>
-        <location line="+16"/>
         <source>Angle</source>
         <translation>Kąt</translation>
     </message>
     <message>
-        <location line="+288"/>
         <source>Linear</source>
         <translation>Liniowy</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Radial</source>
         <translation>Radialny</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Conical</source>
         <translation>Stożkowy</translation>
     </message>
     <message>
-        <location line="+20"/>
         <source>Pad</source>
         <translation>Brak</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Repeat</source>
         <translation>Powtórzone</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Reflect</source>
         <translation>Odbite</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.ui"/>
         <source>Form</source>
         <translation>Formularz</translation>
     </message>
     <message>
-        <location/>
         <source>Gradient Editor</source>
         <translation>Edytor gradientu</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>Edytor punktów gradientu</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>Ten obszar pozwala na edycję punktów gradientu. Aby skopiować istniejący punkt kliknij dwukrotnie na jego uchwyt. W celu stworzenia nowego punktu kliknij dwukrotnie poza istniejącymi uchwytami punków. Przeciągnij i upuść uchwyt aby go przesunąć. Naciśnij prawy przycisk myszy aby pokazać menu z dodatkowymi akcjami.</translation>
     </message>
     <message>
-        <location/>
         <source>Zoom</source>
         <translation>Powiększenie</translation>
     </message>
     <message>
-        <location/>
         <source>Position</source>
         <translation>Pozycja</translation>
     </message>
     <message>
-        <location/>
         <source>Hue</source>
         <translation>Barwa</translation>
     </message>
     <message>
-        <location/>
         <source>H</source>
         <translation>H</translation>
     </message>
     <message>
-        <location/>
         <source>Saturation</source>
         <translation>Nasycenie</translation>
     </message>
     <message>
-        <location/>
         <source>S</source>
         <translation>S</translation>
     </message>
     <message>
-        <location/>
         <source>Sat</source>
         <translation>Nasycenie</translation>
     </message>
     <message>
-        <location/>
         <source>Value</source>
         <translation>Wartość</translation>
     </message>
     <message>
-        <location/>
         <source>V</source>
         <translation>V</translation>
     </message>
     <message>
-        <location/>
         <source>Val</source>
         <translation>Wartość</translation>
     </message>
     <message>
-        <location/>
         <source>Alpha</source>
         <translation>Kanał alfa</translation>
     </message>
     <message>
-        <location/>
         <source>A</source>
         <translation>A</translation>
     </message>
     <message>
-        <location/>
         <source>Type</source>
         <translation>Rodzaj</translation>
     </message>
     <message>
-        <location/>
         <source>Spread</source>
         <translation>Rozciąganie</translation>
     </message>
     <message>
-        <location/>
         <source>Color</source>
         <translation>Kolor</translation>
     </message>
     <message>
-        <location/>
         <source>Current stop&apos;s color</source>
         <translation>Kolor bieżącego punktu</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>Pozycja bieżącego punktu</translation>
     </message>
     <message>
-        <location/>
         <source>%</source>
         <translation>%</translation>
     </message>
     <message>
-        <location/>
         <source>Zoom In</source>
         <translation>Powiększ</translation>
     </message>
     <message>
-        <location/>
         <source>Zoom Out</source>
         <translation>Pomniejsz</translation>
     </message>
     <message>
-        <location/>
         <source>Toggle details extension</source>
         <translation>Przełącz rozszerzenie ze szczegółami</translation>
     </message>
     <message>
-        <location/>
         <source>&gt;</source>
         <translation>&gt;</translation>
     </message>
     <message>
-        <location/>
         <source>Linear Type</source>
         <translation>Typ liniowy</translation>
     </message>
     <message>
-        <location/>
         <source>...</source>
         <translation>...</translation>
     </message>
     <message>
-        <location/>
         <source>Radial Type</source>
         <translation>Typ radialny</translation>
     </message>
     <message>
-        <location/>
         <source>Conical Type</source>
         <translation>Typ stożkowy</translation>
     </message>
     <message>
-        <location/>
         <source>Pad Spread</source>
         <translation>Powtarzaj punkt brzegowy</translation>
     </message>
     <message>
-        <location/>
         <source>Repeat Spread</source>
         <translation>Powtarzaj cały zakres</translation>
     </message>
     <message>
-        <location/>
         <source>Reflect Spread</source>
         <translation>Powtarzaj z odbiciami</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>Ten obszar pokazuje podgląd edytowanego gradientu. Możesz tutaj również zmieniać parametry specyficzne dla typu gradientu, takie jak: punkt początkowy i końcowy, promień, itp... poprzez przeciągnięcie i upuszczenie uchwytu.</translation>
     </message>
     <message>
-        <location/>
         <source>Show HSV specification</source>
         <translation>Pokaż specyfikację HSV</translation>
     </message>
     <message>
-        <location/>
         <source>Show RGB specification</source>
         <translation>Pokaż specyfikację RGB</translation>
     </message>
     <message>
-        <location/>
         <source>Reset Zoom</source>
         <translation>Normalny rozmiar</translation>
     </message>
@@ -3002,37 +2433,30 @@
 <context>
     <name>QtGradientStopsWidget</name>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradientstopswidget.cpp" line="+947"/>
         <source>New Stop</source>
         <translation>Nowy punkt</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Delete</source>
         <translation>Usuń</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Flip All</source>
         <translation>Odwróć wszystko</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Select All</source>
         <translation>Zaznacz wszystko</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Zoom In</source>
         <translation>Powiększ</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Zoom Out</source>
         <translation>Pomniejsz</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Reset Zoom</source>
         <translation>Normalny rozmiar</translation>
     </message>
@@ -3040,46 +2464,34 @@
 <context>
     <name>QtGradientView</name>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradientview.cpp" line="+107"/>
         <source>Grad</source>
         <translation>Grad</translation>
     </message>
     <message>
-        <location line="+26"/>
         <source>Remove Gradient</source>
         <translation>Usuń gradient</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Are you sure you want to remove the selected gradient?</source>
         <translation>Czy na pewno chcesz usunąć zaznaczony gradient?</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradientview.ui"/>
-        <location filename="../tools/shared/qtgradienteditor/qtgradientview.cpp" line="+74"/>
         <source>New...</source>
         <translation>Nowy...</translation>
     </message>
     <message>
-        <location/>
-        <location filename="../tools/shared/qtgradienteditor/qtgradientview.cpp" line="+1"/>
         <source>Edit...</source>
         <translation>Modyfikuj...</translation>
     </message>
     <message>
-        <location/>
-        <location filename="../tools/shared/qtgradienteditor/qtgradientview.cpp" line="+1"/>
         <source>Rename</source>
         <translation>Zmień nazwę</translation>
     </message>
     <message>
-        <location/>
-        <location filename="../tools/shared/qtgradienteditor/qtgradientview.cpp" line="+1"/>
         <source>Remove</source>
         <translation>Usuń</translation>
     </message>
     <message>
-        <location/>
         <source>Gradient View</source>
         <translation>Widok gradientów</translation>
     </message>
@@ -3087,8 +2499,6 @@
 <context>
     <name>QtGradientViewDialog</name>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradientviewdialog.ui"/>
-        <location filename="../tools/shared/qtgradienteditor/qtgradientviewdialog.h" line="+62"/>
         <source>Select Gradient</source>
         <translation>Wybierz gradient</translation>
     </message>
@@ -3096,7 +2506,6 @@
 <context>
     <name>QtKeySequenceEdit</name>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qtpropertybrowserutils.cpp" line="+249"/>
         <source>Clear Shortcut</source>
         <translation>Wyczyść skrót</translation>
     </message>
@@ -3104,17 +2513,14 @@
 <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>Język</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Country</source>
         <translation>Kraj</translation>
     </message>
@@ -3122,17 +2528,14 @@
 <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>
@@ -3140,17 +2543,14 @@
 <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>
@@ -3158,12 +2558,10 @@
 <context>
     <name>QtPropertyBrowserUtils</name>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qtpropertybrowserutils.cpp" line="-156"/>
         <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>
@@ -3171,27 +2569,22 @@
 <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>Szerokość</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Height</source>
         <translation>Wysokość</translation>
     </message>
@@ -3199,27 +2592,22 @@
 <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>Szerokość</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Height</source>
         <translation>Wysokość</translation>
     </message>
@@ -3227,128 +2615,98 @@
 <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 już istnieje.
 Czy chcesz go zastąpić?</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>Plik nie wygląda na plik z zasobami; znaleziono element &apos;%1&apos; podczas gdy oczekiwano elementu &apos;%2&apos;.</translation>
     </message>
     <message>
-        <location line="+902"/>
         <source>%1 [read-only]</source>
         <translation>%1 - [tylko do odczytu]</translation>
     </message>
     <message>
-        <location line="+2"/>
-        <location line="+198"/>
         <source>%1 [missing]</source>
         <translation>%1 - [brak pliku]</translation>
     </message>
     <message>
-        <location line="-72"/>
         <source>&lt;no prefix&gt;</source>
         <translation>&lt;brak przedrostka&gt;</translation>
     </message>
     <message>
-        <location line="+320"/>
-        <location line="+566"/>
         <source>New Resource File</source>
         <translation>Nowy plik z zasobami</translation>
     </message>
     <message>
-        <location line="-564"/>
-        <location line="+25"/>
         <source>Resource files (*.qrc)</source>
         <translation>Pliki z zasobami (*.qrc)</translation>
     </message>
     <message>
-        <location line="-2"/>
         <source>Import Resource File</source>
         <translation>Zaimportuj plik z zasobami</translation>
     </message>
     <message>
-        <location line="+112"/>
         <source>newPrefix</source>
         <translation>nowyPrzedrostek</translation>
     </message>
     <message>
-        <location line="+49"/>
         <source>Add Files</source>
         <translation>Dodaj pliki</translation>
     </message>
     <message>
-        <location line="+21"/>
         <source>Incorrect Path</source>
         <translation>Niepoprawna ścieżka</translation>
     </message>
     <message>
-        <location line="+3"/>
-        <location line="+19"/>
-        <location line="+212"/>
-        <location line="+7"/>
         <source>Copy</source>
         <translation>Skopiuj</translation>
     </message>
     <message>
-        <location line="-236"/>
         <source>Copy As...</source>
         <translation>Skopiuj jako...</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Keep</source>
         <translation>Pozostaw</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Skip</source>
         <translation>Opuść</translation>
     </message>
     <message>
-        <location line="+87"/>
         <source>Clone Prefix</source>
         <translation>Sklonuj przedrostek</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>Wprowadź przyrostek jaki ma być dodany do sklonowanych plików.
 To może być np. rozszerzenie określające język: &quot;_de&quot;.</translation>
     </message>
     <message>
-        <location line="+113"/>
-        <location line="+4"/>
         <source>Copy As</source>
         <translation>Skopiuj 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;Zaznaczony plik:&lt;/p&gt;&lt;p&gt;%1&lt;/p&gt;&lt;p&gt;jest umiejscowiony na zewnątrz katalogu z bieżącym plikiem z zasobami:&lt;/p&gt;&lt;p&gt;%2&lt;/p&gt;&lt;p&gt;Zaznacz inną ścieżkę w tym katalogu.&lt;p&gt;</translation>
     </message>
     <message>
-        <location line="+20"/>
         <source>Could not overwrite %1.</source>
         <translation>Nie można nadpisać %1.</translation>
     </message>
     <message>
-        <location line="-289"/>
         <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;Ostrzeżenie:&lt;/b&gt; Plik&lt;/p&gt;&lt;p&gt;%1&lt;/p&gt;&lt;p&gt;jest na zewnątrz katalogu w którym jest bieżący plik z zasobami.&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;Aby rozwiązać problem, naciśnij:&lt;/p&gt;&lt;table&gt;&lt;tr&gt;&lt;th align=&quot;left&quot;&gt;Skopiuj&lt;/th&gt;&lt;td&gt;żeby skopiować plik do katalogu w którym jest plik z zasobami.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th align=&quot;left&quot;&gt;Skopiuj jako...&lt;/th&gt;&lt;td&gt;żeby skopiować plik do poddrzewa katalogu w którym jest plik z zasobami.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th align=&quot;left&quot;&gt;Zatrzymaj&lt;/th&gt;&lt;td&gt;żeby użyć jego bieżącą ścieżkę.&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</translation>
     </message>
     <message>
-        <location line="+288"/>
         <source>Could not copy
 %1
 to
@@ -3359,153 +2717,120 @@
 %2</translation>
     </message>
     <message>
-        <location line="+35"/>
         <source>A parse error occurred at line %1, column %2 of %3:
 %4</source>
         <translation>Wystąpił błąd przetwarzania w linii %1, kolumnie %2 w %3:
 %4</translation>
     </message>
     <message>
-        <location line="+12"/>
         <source>Save Resource File</source>
         <translation>Zachowaj plik z zasobami</translation>
     </message>
     <message>
-        <location line="+34"/>
         <source>Edit Resources</source>
         <translation>Edytor zasobów</translation>
     </message>
     <message>
-        <location line="+35"/>
         <source>New...</source>
         <translation>Nowy...</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Open...</source>
         <translation>Otwórz...</translation>
     </message>
     <message>
-        <location line="+2"/>
-        <location line="+11"/>
         <source>Remove</source>
         <translation>Usuń</translation>
     </message>
     <message>
-        <location line="-10"/>
-        <location line="+11"/>
         <source>Move Up</source>
         <translation>Przenieś do góry</translation>
     </message>
     <message>
-        <location line="-10"/>
-        <location line="+11"/>
         <source>Move Down</source>
         <translation>Przenieś w dół</translation>
     </message>
     <message>
-        <location line="-9"/>
-        <location line="+1"/>
         <source>Add Prefix</source>
         <translation>Dodaj przedrostek</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Add Files...</source>
         <translation>Dodaj pliki...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Change Prefix</source>
         <translation>Zmień przedrostek</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Change Language</source>
         <translation>Zmień język</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Change Alias</source>
         <translation>Zmień alias</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Clone Prefix...</source>
         <translation>Sklonuj przedrostek...</translation>
     </message>
     <message>
-        <location line="+37"/>
         <source>Prefix / Path</source>
         <translation>Przedrostek / Ścieżka</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Language / Alias</source>
         <translation>Język / Alias</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;Ostrzeżenie:&lt;/b&gt; Natrafiono na problemy podczas przeładowania zasobów:&lt;/p&gt;&lt;pre&gt;%1&lt;/pre&gt;&lt;/html&gt;</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Resource Warning</source>
         <translation>Ostrzeżenie z systemu zasobów</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qtresourceeditordialog.ui"/>
         <source>Dialog</source>
         <translation>Okno dialogowe</translation>
     </message>
     <message>
-        <location/>
         <source>New File</source>
         <translation>Nowy plik</translation>
     </message>
     <message>
-        <location/>
         <source>N</source>
         <translation>N</translation>
     </message>
     <message>
-        <location/>
         <source>Remove File</source>
         <translation>Usuń plik</translation>
     </message>
     <message>
-        <location/>
         <source>R</source>
         <translation>R</translation>
     </message>
     <message>
-        <location/>
         <source>I</source>
         <translation>I</translation>
     </message>
     <message>
-        <location/>
         <source>New Resource</source>
         <translation>Nowy zasób</translation>
     </message>
     <message>
-        <location/>
         <source>A</source>
         <translation>A</translation>
     </message>
     <message>
-        <location/>
         <source>Remove Resource or File</source>
         <translation>Usuń zasób lub plik</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qtresourceeditordialog.cpp" line="-239"/>
         <source>Could not write %1: %2</source>
         <translation>Nie można zapisać &quot;%1&quot;, %2</translation>
     </message>
     <message>
-        <location line="+71"/>
         <source>Open Resource File</source>
         <translation>Otwórz plik z zasobami</translation>
     </message>
@@ -3513,24 +2838,20 @@
 <context>
     <name>QtResourceView</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qtresourceview.cpp" line="+567"/>
         <source>Size: %1 x %2
 %3</source>
         <translation>Rozmiar: %1 x %2
 %3</translation>
     </message>
     <message>
-        <location line="+20"/>
         <source>Edit Resources...</source>
         <translation>Modyfikuj zasoby...</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Reload</source>
         <translation>Przeładuj</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Copy Path</source>
         <translation>Skopiuj ścieżkę</translation>
     </message>
@@ -3538,7 +2859,6 @@
 <context>
     <name>QtResourceViewDialog</name>
     <message>
-        <location line="+252"/>
         <source>Select Resource</source>
         <translation>Wybierz zasób</translation>
     </message>
@@ -3546,17 +2866,14 @@
 <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>Szerokość</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Height</source>
         <translation>Wysokość</translation>
     </message>
@@ -3564,33 +2881,26 @@
 <context>
     <name>QtSizePolicyPropertyManager</name>
     <message>
-        <location line="+1709"/>
-        <location line="+1"/>
         <source>&lt;Invalid&gt;</source>
         <translation>&lt;Niepoprawna&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>Strategia pozioma</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Vertical Policy</source>
         <translation>Strategia pionowa</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Horizontal Stretch</source>
         <translation>Rozciąganie w poziomie</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Vertical Stretch</source>
         <translation>Rozciąganie w pionie</translation>
     </message>
@@ -3598,17 +2908,14 @@
 <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>Szerokość</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Height</source>
         <translation>Wysokość</translation>
     </message>
@@ -3616,107 +2923,86 @@
 <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; S E P A R A T O R &gt;</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qttoolbardialog/qttoolbardialog.ui"/>
         <source>Customize Toolbars</source>
         <translation>Dostosuj paski narzędzi</translation>
     </message>
     <message>
-        <location/>
         <source>1</source>
         <translation>1</translation>
     </message>
     <message>
-        <location/>
         <source>Actions</source>
         <translation>Akcje</translation>
     </message>
     <message>
-        <location/>
         <source>Toolbars</source>
         <translation>Paski narzędzi</translation>
     </message>
     <message>
-        <location/>
         <source>New</source>
         <translation>Nowy</translation>
     </message>
     <message>
-        <location/>
         <source>Remove</source>
         <translation>Usuń</translation>
     </message>
     <message>
-        <location/>
         <source>Rename</source>
         <translation>Zmień nazwę</translation>
     </message>
     <message>
-        <location/>
         <source>Up</source>
         <translation>Do góry</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>W dół</translation>
     </message>
     <message>
-        <location/>
         <source>Current Toolbar Actions</source>
         <translation>Akcje bieżącego paska narzędzi</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qttoolbardialog/qttoolbardialog.cpp" line="-544"/>
         <source>Custom Toolbar</source>
         <translation>Własne paski narzędzi</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qttoolbardialog/qttoolbardialog.ui"/>
         <source>Add new toolbar</source>
         <translation>Dodaj nowy pasek narzędzi</translation>
     </message>
     <message>
-        <location/>
         <source>Remove selected toolbar</source>
         <translation>Usuń wybrany pasek narzędzi</translation>
     </message>
     <message>
-        <location/>
         <source>Rename toolbar</source>
         <translation>Zmień nazwę paska narzędzi</translation>
     </message>
     <message>
-        <location/>
         <source>Move action up</source>
         <translation>Przenieś akcję w górę</translation>
     </message>
     <message>
-        <location/>
         <source>Remove action from toolbar</source>
         <translation>Usuń akcję z paska narzędzi</translation>
     </message>
     <message>
-        <location/>
         <source>Add action to toolbar</source>
         <translation>Dodaj akcję do paska narzędzi</translation>
     </message>
     <message>
-        <location/>
         <source>Move action down</source>
         <translation>Przenieś akcję w dół</translation>
     </message>
@@ -3724,12 +3010,10 @@
 <context>
     <name>QtTreePropertyBrowser</name>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qttreepropertybrowser.cpp" line="+442"/>
         <source>Property</source>
         <translation>Właściwość</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Value</source>
         <translation>Wartość</translation>
     </message>
@@ -3737,64 +3021,52 @@
 <context>
     <name>SaveFormAsTemplate</name>
     <message>
-        <location filename="../tools/designer/src/designer/saveformastemplate.cpp" line="+72"/>
         <source>Add path...</source>
         <translation>Dodaj ścieżkę...</translation>
     </message>
     <message>
-        <location line="+23"/>
         <source>Template Exists</source>
         <translation>Szablon istnieje</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Overwrite Template</source>
         <translation>Nadpisz szablon</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Open Error</source>
         <translation>Błąd otwarcia</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>There was an error opening template %1 for writing. Reason: %2</source>
         <translation>Wystąpił błąd podczas otwierania szablonu %1 do zapisu. Powód: %2</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>Write Error</source>
         <translation>Błąd zapisu</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>There was an error writing the template %1 to disk. Reason: %2</source>
         <translation>Wystąpił błąd podczas zapisywania szablonu %1 na dysk. Powód: %2</translation>
     </message>
     <message>
-        <location line="+27"/>
         <source>Pick a directory to save templates in</source>
         <translation>Wybierz katalog do zachowywania szablonów</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/saveformastemplate.ui"/>
         <source>&amp;Category:</source>
         <translation>&amp;Kategoria:</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Name:</source>
         <translation>&amp;Nazwa:</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/saveformastemplate.cpp" line="-52"/>
         <source>A template with the name %1 already exists.
 Do you want overwrite the template?</source>
         <translation>Szablon o nazwie %1 już istnieje.
 Czy chcesz nadpisać szablon?</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/saveformastemplate.ui"/>
         <source>Save Form As Template</source>
         <translation>Zachowaj formularz jako szablon</translation>
     </message>
@@ -3802,7 +3074,6 @@
 <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>Wystąpił błąd podczas uruchamiana skryptu dla &quot;%1&quot;:
@@ -3812,22 +3083,18 @@
 <context>
     <name>SelectSignalDialog</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/selectsignaldialog.ui"/>
         <source>Go to slot</source>
         <translation>Przejdź do slotu</translation>
     </message>
     <message>
-        <location/>
         <source>Select signal</source>
         <translation>Wybierz sygnał</translation>
     </message>
     <message>
-        <location/>
         <source>signal</source>
         <translation>sygnał</translation>
     </message>
     <message>
-        <location/>
         <source>class</source>
         <translation>klasa</translation>
     </message>
@@ -3835,7 +3102,6 @@
 <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>NADAJNIK(%1), SYGNAŁ(%2), ODBIORNIK(%3), SLOT(%4)</translation>
     </message>
@@ -3843,32 +3109,26 @@
 <context>
     <name>SignalSlotDialogClass</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/signalslotdialog.ui"/>
         <source>Signals and slots</source>
         <translation>Sygnały i sloty</translation>
     </message>
     <message>
-        <location/>
         <source>Slots</source>
         <translation>Sloty</translation>
     </message>
     <message>
-        <location/>
         <source>...</source>
         <translation>...</translation>
     </message>
     <message>
-        <location/>
         <source>Signals</source>
         <translation>Sygnały</translation>
     </message>
     <message>
-        <location/>
         <source>Add</source>
         <translation>Dodaj</translation>
     </message>
     <message>
-        <location/>
         <source>Delete</source>
         <translation>Usuń</translation>
     </message>
@@ -3876,12 +3136,10 @@
 <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>Poziomy dystans &apos;%1&apos;, %2 x %3</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Vertical Spacer &apos;%1&apos;, %2 x %3</source>
         <translation>Pionowy dystans &apos;%1&apos;, %2 x %3</translation>
     </message>
@@ -3889,7 +3147,6 @@
 <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>Ścieżki z szablonami</translation>
@@ -3898,52 +3155,42 @@
 <context>
     <name>ToolBarManager</name>
     <message>
-        <location filename="../tools/designer/src/designer/mainwindow.cpp" line="+89"/>
         <source>Configure Toolbars...</source>
         <translation>Skonfiguruj paski narzędzi...</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Window</source>
         <translation>Okno</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Help</source>
         <translation>Pomoc</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Style</source>
         <translation>Styl</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Dock views</source>
         <translation>Dokowalne widoki</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>File</source>
         <translation>Plik</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Edit</source>
         <translation>Edycja</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Tools</source>
         <translation>Narzędzia</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Form</source>
         <translation>Formularz</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Toolbars</source>
         <translation>Paski narzędzi</translation>
     </message>
@@ -3951,22 +3198,18 @@
 <context>
     <name>VersionDialog</name>
     <message>
-        <location filename="../tools/designer/src/designer/versiondialog.cpp" line="+171"/>
         <source>Qt Designer</source>
         <translation>Qt Designer</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>%1&lt;br/&gt;Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-4"/>
         <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;Wersja %2</translation>
     </message>
     <message>
-        <location line="+2"/>
         <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 jest aplikacją umożliwiającą projektowanie interfejsów graficznych użytkownika w aplikacjach korzystających z Qt.&lt;br/&gt;</translation>
     </message>
@@ -3974,47 +3217,38 @@
 <context>
     <name>VideoPlayerTaskMenu</name>
     <message>
-        <location filename="../tools/designer/src/plugins/phononwidgets/videoplayertaskmenu.cpp" line="+79"/>
         <source>Available Mime Types</source>
         <translation>Dostępne typy mime</translation>
     </message>
     <message>
-        <location line="+24"/>
         <source>Display supported mime types...</source>
         <translation>Pokaż dostępne typy mime...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Load...</source>
         <translation>Załaduj...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Play</source>
         <translation>Odtwórz</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Pause</source>
         <translation>Pauza</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Stop</source>
         <translation>Zatrzymaj</translation>
     </message>
     <message>
-        <location line="+32"/>
         <source>Choose Video Player Media Source</source>
         <translation>Wybierz źródło odtwarzacza wideo</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>An error has occurred in &apos;%1&apos;: %2</source>
         <translation>Wystąpił błąd w &quot;%1&quot;: %2</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Video Player Error</source>
         <translation>Błąd odtwarzacza wideo</translation>
     </message>
@@ -4022,7 +3256,6 @@
 <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>Plik zawiera własny widżet &apos;%1&apos; którego klasa bazowa (%2) różni się od bieżącego elementu w bazie danych z widżetami (%3). Baza danych z widżetami została niezmieniona.</translation>
     </message>
@@ -4030,87 +3263,70 @@
 <context>
     <name>qdesigner_internal::ActionEditor</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/actioneditor.cpp" line="+139"/>
         <source>Actions</source>
         <translation>Akcje</translation>
     </message>
     <message>
-        <location line="-16"/>
         <source>New...</source>
         <translation>Nowa...</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Delete</source>
         <translation>Usuń</translation>
     </message>
     <message>
-        <location line="+313"/>
         <source>New action</source>
         <translation>Nowa akcja</translation>
     </message>
     <message>
-        <location line="+98"/>
         <source>Edit action</source>
         <translation>Modyfikuj akcję</translation>
     </message>
     <message>
-        <location line="-417"/>
         <source>Edit...</source>
         <translation>Modyfikuj...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Go to slot...</source>
         <translation>Przejdź do slotu...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Copy</source>
         <translation>Skopiuj</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Cut</source>
         <translation>Wytnij</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Paste</source>
         <translation>Wklej</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Select all</source>
         <translation>Zaznacz wszystko</translation>
     </message>
     <message>
-        <location line="+59"/>
         <source>Configure Action Editor</source>
         <translation>Skonfiguruj edytor akcji</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Icon View</source>
         <translation>Widok z ikonkami</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Detailed View</source>
         <translation>Szczegółowy widok</translation>
     </message>
     <message>
-        <location line="+413"/>
         <source>Remove actions</source>
         <translation>Usuń akcje</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Remove action &apos;%1&apos;</source>
         <translation>Usuń akcję &apos;%1&apos;</translation>
     </message>
     <message>
-        <location line="+186"/>
         <source>Used In</source>
         <translation>Użyta w</translation>
     </message>
@@ -4118,32 +3334,26 @@
 <context>
     <name>qdesigner_internal::ActionModel</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/actionrepository.cpp" line="+89"/>
         <source>Name</source>
         <translation>Nazwa</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Used</source>
         <translation>Użyta</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Text</source>
         <translation>Tekst</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Shortcut</source>
         <translation>Skrót</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Checkable</source>
         <translation>Przełączalny</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>ToolTip</source>
         <translation>Podpowiedź</translation>
     </message>
@@ -4151,27 +3361,22 @@
 <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>Brak wymaganego atrybutu &apos;%2&apos; w elemencie &apos;%1&apos;.</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>Empty brush name encountered.</source>
         <translation>Wystąpiła pusta nazwa szczotki.</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>An unexpected element &apos;%1&apos; was encountered.</source>
         <translation>Wystąpił niespodziewany element &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>Wystąpił błąd podczas czytania pliku z definicją szczotki &apos;%1&apos; w linii %2, w kolumnie %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>Wystąpił błąd podczas czytania pliku z zasobami &apos;%1&apos; w linii %2, w kolumnie %3: %4</translation>
     </message>
@@ -4179,17 +3384,14 @@
 <context>
     <name>qdesigner_internal::BuddyEditor</name>
     <message>
-        <location filename="../tools/designer/src/components/buddyeditor/buddyeditor.cpp" line="+261"/>
         <source>Add buddy</source>
         <translation>Dodaj skojarzoną etykietę</translation>
     </message>
     <message>
-        <location line="+52"/>
         <source>Remove buddies</source>
         <translation>Usuń skojarzoną etykietę</translation>
     </message>
     <message numerus="yes">
-        <location line="+24"/>
         <source>Remove %n buddies</source>
         <translation>
             <numerusform>Usuń %n skojarzoną etykietę</numerusform>
@@ -4198,7 +3400,6 @@
         </translation>
     </message>
     <message numerus="yes">
-        <location line="+51"/>
         <source>Add %n buddies</source>
         <translation>
             <numerusform>Dodaj %n skojarzoną etykietę</numerusform>
@@ -4207,7 +3408,6 @@
         </translation>
     </message>
     <message>
-        <location line="+48"/>
         <source>Set automatically</source>
         <translation>Ustaw automatycznie</translation>
     </message>
@@ -4215,7 +3415,6 @@
 <context>
     <name>qdesigner_internal::BuddyEditorPlugin</name>
     <message>
-        <location filename="../tools/designer/src/components/buddyeditor/buddyeditor_plugin.cpp" line="+73"/>
         <source>Edit Buddies</source>
         <translation>Modyfikuj skojarzone etykiety</translation>
     </message>
@@ -4223,7 +3422,6 @@
 <context>
     <name>qdesigner_internal::BuddyEditorTool</name>
     <message>
-        <location filename="../tools/designer/src/components/buddyeditor/buddyeditor_tool.cpp" line="+56"/>
         <source>Edit Buddies</source>
         <translation>Modyfikuj skojarzone etykiety</translation>
     </message>
@@ -4231,12 +3429,10 @@
 <context>
     <name>qdesigner_internal::ButtonGroupMenu</name>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/button_taskmenu.cpp" line="+7"/>
         <source>Select members</source>
         <translation>Zaznacz składniki grupy</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Break</source>
         <translation>Usuń grupę</translation>
     </message>
@@ -4244,32 +3440,26 @@
 <context>
     <name>qdesigner_internal::ButtonTaskMenu</name>
     <message>
-        <location line="+121"/>
         <source>Assign to button group</source>
         <translation>Przypisz do grupy przycisków</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Button group</source>
         <translation>Grupa przycisków</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>New button group</source>
         <translation>Nowej</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Change text...</source>
         <translation>Zmień tekst...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>None</source>
         <translation>Żadnej</translation>
     </message>
     <message>
-        <location line="+101"/>
         <source>Button group &apos;%1&apos;</source>
         <translation>Grupa przycisków &apos;%1&apos;</translation>
     </message>
@@ -4277,57 +3467,46 @@
 <context>
     <name>qdesigner_internal::CodeDialog</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/codedialog.cpp" line="+95"/>
         <source>Save...</source>
         <translation>Zachowaj...</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Copy All</source>
         <translation>Skopiuj wszystko</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>&amp;Find in Text...</source>
         <translation>Z&amp;najdź w tekście...</translation>
     </message>
     <message>
-        <location line="+75"/>
         <source>A temporary form file could not be created in %1.</source>
         <translation>Nie można utworzyć pliku z tymczasowym formularzem w %1.</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>The temporary form file %1 could not be written.</source>
         <translation>Nie można zapisać pliku z tymczasowym formularzem w %1.</translation>
     </message>
     <message>
-        <location line="+21"/>
         <source>%1 - [Code]</source>
         <translation>%1 - [Kod]</translation>
     </message>
     <message>
-        <location line="+23"/>
         <source>Save Code</source>
         <translation>Zachowaj kod</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Header Files (*.%1)</source>
         <translation>Pliki nagłówkowe (*.%1)</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>The file %1 could not be opened: %2</source>
         <translation>Nie można otworzyć pliku &quot;%1&quot;, %2</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>The file %1 could not be written: %2</source>
         <translation>Nie można zapisać pliku &quot;%1&quot;, %2</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>%1 - Error</source>
         <translation>%1 - Błąd</translation>
     </message>
@@ -4335,7 +3514,6 @@
 <context>
     <name>qdesigner_internal::ColorAction</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/richtexteditor.cpp" line="+246"/>
         <source>Text Color</source>
         <translation>Color tekstu</translation>
     </message>
@@ -4343,12 +3521,10 @@
 <context>
     <name>qdesigner_internal::ComboBoxTaskMenu</name>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/combobox_taskmenu.cpp" line="+68"/>
         <source>Edit Items...</source>
         <translation>Modyfikuj elementy...</translation>
     </message>
     <message>
-        <location line="+38"/>
         <source>Change Combobox Contents</source>
         <translation>Zmień zawartość combobox&apos;a</translation>
     </message>
@@ -4356,7 +3532,6 @@
 <context>
     <name>qdesigner_internal::CommandLinkButtonTaskMenu</name>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/button_taskmenu.cpp" line="+156"/>
         <source>Change description...</source>
         <translation>Zmień opis...</translation>
     </message>
@@ -4364,17 +3539,14 @@
 <context>
     <name>qdesigner_internal::ConnectionEdit</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/connectionedit.cpp" line="+1313"/>
         <source>Select All</source>
         <translation>Zaznacz wszystko</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Delete</source>
         <translation>Usuń</translation>
     </message>
     <message>
-        <location line="-5"/>
         <source>Deselect All</source>
         <translation>Odznacz wszystko</translation>
     </message>
@@ -4382,52 +3554,42 @@
 <context>
     <name>qdesigner_internal::ConnectionModel</name>
     <message>
-        <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditorwindow.cpp" line="-465"/>
         <source>Sender</source>
         <translation>Nadajnik</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Signal</source>
         <translation>Sygnał</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Receiver</source>
         <translation>Odbiornik</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Slot</source>
         <translation>Slot</translation>
     </message>
     <message>
-        <location line="+90"/>
         <source>&lt;sender&gt;</source>
         <translation>&lt;nadajnik&gt;</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&lt;signal&gt;</source>
         <translation>&lt;sygnał&gt;</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&lt;receiver&gt;</source>
         <translation>&lt;odbiornik&gt;</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&lt;slot&gt;</source>
         <translation>&lt;slot&gt;</translation>
     </message>
     <message>
-        <location line="+110"/>
         <source>Signal and Slot Editor</source>
         <translation>Edytor sygnałów i slotów</translation>
     </message>
     <message>
-        <location line="-2"/>
         <source>The connection already exists!&lt;br&gt;%1</source>
         <translation>Połączenie już istnieje!&lt;br&gt;%1</translation>
     </message>
@@ -4435,42 +3597,34 @@
 <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>Wstaw stronę przed bieżącą stroną</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Insert Page After Current Page</source>
         <translation>Wstaw stronę za bieżącą stroną</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Add Subwindow</source>
         <translation>Dodaj podokno</translation>
     </message>
     <message>
-        <location line="-40"/>
         <source>Delete</source>
         <translation>Usuń</translation>
     </message>
     <message>
-        <location line="+25"/>
         <source>Insert</source>
         <translation>Wstaw</translation>
     </message>
     <message>
-        <location line="+53"/>
         <source>Subwindow</source>
         <translation>Podokno</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Page</source>
         <translation>Strona</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Page %1 of %2</source>
         <translation>Strona %1 z %2</translation>
     </message>
@@ -4478,18 +3632,15 @@
 <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>Systemowa (%1 x %2)</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>User defined</source>
         <translation>Zdefiniowana przez użytkownika</translation>
     </message>
     <message>
-        <location line="+18"/>
         <source> x </source>
         <extracomment>DPI X/Y separator</extracomment>
         <translation> x </translation>
@@ -4498,49 +3649,38 @@
 <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>Wyrównanie do lewej</translation>
     </message>
     <message>
-        <location line="-5"/>
         <source>AlignHCenter</source>
         <translation>Wyrównanie w poziomie do środka</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>AlignRight</source>
         <translation>Wyrównanie do prawej</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>AlignJustify</source>
         <translation>Wyjustowanie</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>AlignTop</source>
         <translation>Wyrównanie do góry</translation>
     </message>
     <message>
-        <location line="+1"/>
-        <location line="+4"/>
         <source>AlignVCenter</source>
         <translation>Wyrównanie w pionie do środka</translation>
     </message>
     <message>
-        <location line="-3"/>
         <source>AlignBottom</source>
         <translation>Wyrównanie do dołu</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>Dostosowana (%n rola)</numerusform>
@@ -4549,75 +3689,58 @@
         </translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Inherited</source>
         <translation>Odziedziczony</translation>
     </message>
     <message>
-        <location line="+566"/>
         <source>Horizontal</source>
         <translation>Poziomo</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Vertical</source>
         <translation>Pionowo</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Normal Off</source>
         <translation>Normalny wyciśnięty</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Normal On</source>
         <translation>Normalny wciśnięty</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Disabled Off</source>
         <translation>Wyłączony wyciśnięty</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Disabled On</source>
         <translation>Wyłączony wciśnięty</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Active Off</source>
         <translation>Aktywny wyciśnięty</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Active On</source>
         <translation>Aktywny wciśnięty</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Selected Off</source>
         <translation>Zaznaczony wyciśnięty</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Selected On</source>
         <translation>Zaznaczony wciśnięty</translation>
     </message>
     <message>
-        <location line="+7"/>
-        <location line="+21"/>
         <source>translatable</source>
         <translation>przetłumaczalny</translation>
     </message>
     <message>
-        <location line="-15"/>
-        <location line="+21"/>
         <source>disambiguation</source>
         <translation>ujednoznacznienie</translation>
     </message>
     <message>
-        <location line="-15"/>
-        <location line="+21"/>
         <source>comment</source>
         <translation>komentarz</translation>
     </message>
@@ -4625,48 +3748,38 @@
 <context>
     <name>qdesigner_internal::DeviceProfileDialog</name>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/deviceprofiledialog.cpp" line="+63"/>
         <source>Device Profiles (*.%1)</source>
         <translation>Profile urządzeń (*.%1)</translation>
     </message>
     <message>
-        <location line="+31"/>
         <source>Default</source>
         <translation>Domyślny</translation>
     </message>
     <message>
-        <location line="+67"/>
         <source>Save Profile</source>
         <translation>Zachowaj profil</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>Save Profile - Error</source>
         <translation>Błąd podczas zachowywania profilu</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Unable to open the file &apos;%1&apos; for writing: %2</source>
         <translation>Nie można otworzyć pliku &apos;%1&apos; do zapisu: %2</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Open profile</source>
         <translation>Otwórz profil</translation>
     </message>
     <message>
-        <location line="+6"/>
-        <location line="+6"/>
         <source>Open Profile - Error</source>
         <translation>Błąd podczas otwierania profilu</translation>
     </message>
     <message>
-        <location line="-6"/>
         <source>Unable to open the file &apos;%1&apos; for reading: %2</source>
         <translation>Nie można otworzyć pliku &apos;%1&apos; do odczytu: %2</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>&apos;%1&apos; is not a valid profile: %2</source>
         <translation>&apos;%1&apos; nie jest poprawnym profilem: %2</translation>
     </message>
@@ -4674,57 +3787,46 @@
 <context>
     <name>qdesigner_internal::Dialog</name>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/stringlisteditor.ui"/>
         <source>Dialog</source>
         <translation>Okno dialogowe</translation>
     </message>
     <message>
-        <location/>
         <source>StringList</source>
         <translation>Lista napisów</translation>
     </message>
     <message>
-        <location/>
         <source>New String</source>
         <translation>Nowy napis</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;New</source>
         <translation>&amp;Nowy</translation>
     </message>
     <message>
-        <location/>
         <source>Delete String</source>
         <translation>Usuń napis</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Delete</source>
         <translation>&amp;Usuń</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Value:</source>
         <translation>&amp;Wartość:</translation>
     </message>
     <message>
-        <location/>
         <source>Move String Up</source>
         <translation>Przenieś w górę</translation>
     </message>
     <message>
-        <location/>
         <source>Up</source>
         <translation>Do góry</translation>
     </message>
     <message>
-        <location/>
         <source>Move String Down</source>
         <translation>Przenieś w dół</translation>
     </message>
     <message>
-        <location/>
         <source>Down</source>
         <translation>W dół</translation>
     </message>
@@ -4732,52 +3834,42 @@
 <context>
     <name>qdesigner_internal::EmbeddedOptionsControl</name>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/embeddedoptionspage.cpp" line="-260"/>
         <source>None</source>
         <translation>Brak</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Add a profile</source>
         <translation>Dodaj profil</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Edit the selected profile</source>
         <translation>Modyfikuj zaznaczony profil</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Delete the selected profile</source>
         <translation>Usuń zaznaczony profil</translation>
     </message>
     <message>
-        <location line="+22"/>
         <source>Add Profile</source>
         <translation>Dodaj profil</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>New profile</source>
         <translation>Nowy profil</translation>
     </message>
     <message>
-        <location line="+35"/>
         <source>Edit Profile</source>
         <translation>Modyfikuj profil</translation>
     </message>
     <message>
-        <location line="+26"/>
         <source>Delete Profile</source>
         <translation>Usuń profil</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Would you like to delete the profile &apos;%1&apos;?</source>
         <translation>Czy chcesz usunąć profil &apos;%1&apos;?</translation>
     </message>
     <message>
-        <location line="+55"/>
         <source>Default</source>
         <translation>Domyślny</translation>
     </message>
@@ -4785,12 +3877,10 @@
 <context>
     <name>qdesigner_internal::FilterWidget</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/filterwidget.cpp" line="+163"/>
         <source>Filter</source>
         <translation>Filtr</translation>
     </message>
     <message>
-        <location line="+36"/>
         <source>Clear text</source>
         <translation>Wyczyść tekst</translation>
     </message>
@@ -4798,12 +3888,10 @@
 <context>
     <name>qdesigner_internal::FormEditor</name>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/formeditor.cpp" line="+190"/>
         <source>Resource File Changed</source>
         <translation>Zmieniony plik z zasobami</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>The file &quot;%1&quot; has changed outside Designer. Do you want to reload it?</source>
         <translation>Plik &quot;%1&quot; zmienił się na zewnątrz Designera. Czy chcesz go ponownie załadować?</translation>
     </message>
@@ -4811,7 +3899,6 @@
 <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>Dodaj wiersz do formularza...</translation>
     </message>
@@ -4819,58 +3906,46 @@
 <context>
     <name>qdesigner_internal::FormWindow</name>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/formwindow.cpp" line="-1322"/>
         <source>Edit contents</source>
         <translation>Modyfikuj zawartość</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>F2</source>
         <translation>F2</translation>
     </message>
     <message>
-        <location line="+840"/>
         <source>Resize</source>
         <translation>Zmień rozmiar</translation>
     </message>
     <message>
-        <location line="+248"/>
         <source>Key Move</source>
         <translation>Przeniesienie</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Key Resize</source>
         <translation>Zmiana rozmiaru</translation>
     </message>
     <message>
-        <location line="+311"/>
         <source>Cannot paste widgets. Designer could not find a container without a layout to paste into.</source>
         <translation>Nie można wkleić widżetów. Nie można było odnaleźć pojemnika bez rozmieszczenia do którego można by wkleić widżety.</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>Usuń rozmieszczenie w pojemniku do którego chcesz wkleić, zaznacz ten pojemnik i ponownie wklej.</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Paste error</source>
         <translation>Błąd wklejania</translation>
     </message>
     <message>
-        <location line="+448"/>
         <source>Lay out</source>
         <translation>Rozmieść</translation>
     </message>
     <message>
-        <location line="+485"/>
-        <location line="+55"/>
         <source>Drop widget</source>
         <translation>Upuść widżet</translation>
     </message>
     <message numerus="yes">
-        <location line="-1053"/>
         <source>Paste %n action(s)</source>
         <translation>
             <numerusform>Wklej %n akcję</numerusform>
@@ -4879,12 +3954,10 @@
         </translation>
     </message>
     <message>
-        <location line="-565"/>
         <source>Insert widget &apos;%1&apos;</source>
         <translation>Wstaw widżet &apos;%1</translation>
     </message>
     <message numerus="yes">
-        <location line="+567"/>
         <source>Paste %n widget(s)</source>
         <translation>
             <numerusform>Wklej %n widżet</numerusform>
@@ -4893,27 +3966,22 @@
         </translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Paste (%1 widgets, %2 actions)</source>
         <translation>Wklej (%1 widżetów, %2 akcji)</translation>
     </message>
     <message>
-        <location line="+464"/>
         <source>Select Ancestor</source>
         <translation>Wybierz przodka</translation>
     </message>
     <message>
-        <location line="+573"/>
         <source>A QMainWindow-based form does not contain a central widget.</source>
         <translation>Formularz bazujący na QMainWindow nie zawiera centralnego widżetu.</translation>
     </message>
     <message>
-        <location line="-794"/>
         <source>Raise widgets</source>
         <translation>Przenieś widżety na wierzch</translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>Lower widgets</source>
         <translation>Przenieś widżety na spód</translation>
     </message>
@@ -4921,12 +3989,10 @@
 <context>
     <name>qdesigner_internal::FormWindowBase</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/formwindowbase.cpp" line="+404"/>
         <source>Delete</source>
         <translation>Usuń</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Delete &apos;%1&apos;</source>
         <translation>Usuń &apos;%1&apos;</translation>
     </message>
@@ -4934,200 +4000,159 @@
 <context>
     <name>qdesigner_internal::FormWindowManager</name>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/formwindowmanager.cpp" line="+365"/>
         <source>Cu&amp;t</source>
         <translation>Wy&amp;tnij</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Cuts the selected widgets and puts them on the clipboard</source>
         <translation>Wycina zaznaczone widżety i umieszcza je w schowku</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>&amp;Copy</source>
         <translation>S&amp;kopiuj</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Copies the selected widgets to the clipboard</source>
         <translation>Kopiuje zaznaczone widżety do schowka</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>&amp;Paste</source>
         <translation>Wk&amp;lej</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Pastes the clipboard&apos;s contents</source>
         <translation>Wkleja zawartość schowka</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>&amp;Delete</source>
         <translation>&amp;Usuń</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Deletes the selected widgets</source>
         <translation>Usuwa zaznaczone widżety</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Select &amp;All</source>
         <translation>Zaznacz &amp;wszystko</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Selects all widgets</source>
         <translation>Wybiera wszystkie widżety</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Bring to &amp;Front</source>
         <translation>Przenieś na w&amp;ierzch</translation>
     </message>
     <message>
-        <location line="+3"/>
-        <location line="+1"/>
         <source>Raises the selected widgets</source>
         <translation>Przenosi zaznaczone widżety na wierzch</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Send to &amp;Back</source>
         <translation>Przenieś na &amp;spód</translation>
     </message>
     <message>
-        <location line="+3"/>
-        <location line="+1"/>
         <source>Lowers the selected widgets</source>
         <translation>Przenosi zaznaczone widżety na spód</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Adjust &amp;Size</source>
         <translation>Dopasuj &amp;wielkość</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Adjusts the size of the selected widget</source>
         <translation>Dopasuj wielkość zaznaczonego widżetu</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Lay Out &amp;Horizontally</source>
         <translation>Rozmieść w po&amp;ziomie</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Lays out the selected widgets horizontally</source>
         <translation>Rozmieszcza zaznaczone widżety w poziomie</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Lay Out &amp;Vertically</source>
         <translation>Rozmieść w pio&amp;nie</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Lays out the selected widgets vertically</source>
         <translation>Rozmieszcza zaznaczone widżety w pionie</translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>Lay Out in a &amp;Grid</source>
         <translation>Rozmieść w &amp;siatce</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Lays out the selected widgets in a grid</source>
         <translation>Rozmieszcza zaznaczone widżety w siatce</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Lay Out Horizontally in S&amp;plitter</source>
         <translation>Rozmieść poziomo w s&amp;plitterze</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Lays out the selected widgets horizontally in a splitter</source>
         <translation>Rozmieszcza zaznaczone widżety poziomo w splitterze</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Lay Out Vertically in Sp&amp;litter</source>
         <translation>Rozmieść pionowo w sp&amp;litterze</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Lays out the selected widgets vertically in a splitter</source>
         <translation>Rozmieszcza zaznaczone widżety pionowo w splitterze</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>&amp;Break Layout</source>
         <translation>&amp;Usuń rozmieszczenie</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Breaks the selected layout</source>
         <translation>Usuwa zaznaczone rozmieszczenie</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>&amp;Preview...</source>
         <translation>Pod&amp;gląd...</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Preview current form</source>
         <translation>Podgląd bierzącego formularza</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Form &amp;Settings...</source>
         <translation>Us&amp;tawienia formularza...</translation>
     </message>
     <message>
-        <location line="+94"/>
         <source>Break Layout</source>
         <translation>Usuń rozmieszczenie</translation>
     </message>
     <message>
-        <location line="+26"/>
         <source>Adjust Size</source>
         <translation>Dopasuj wielkość</translation>
     </message>
     <message>
-        <location line="+43"/>
         <source>Could not create form preview</source>
         <comment>Title of warning message box</comment>
         <translation>Nie można utworzyć podglądu formularza</translation>
     </message>
     <message>
-        <location line="+341"/>
         <source>Form Settings - %1</source>
         <translation>Ustawienia formularza - %1</translation>
     </message>
     <message>
-        <location line="-527"/>
         <source>Removes empty columns and rows</source>
         <translation>Usuń puste kolumny i wiersze</translation>
     </message>
     <message>
-        <location line="-50"/>
         <source>Lay Out in a &amp;Form Layout</source>
         <translation>Rozmieść w &amp;formularzu</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Lays out the selected widgets in a form layout</source>
         <translation>Rozmieszcza zaznaczone widżety w formularzu</translation>
     </message>
     <message>
-        <location line="+45"/>
         <source>Si&amp;mplify Grid Layout</source>
         <translation>Up&amp;rość rozmieszczenie w siatce</translation>
     </message>
@@ -5135,12 +4160,10 @@
 <context>
     <name>qdesigner_internal::FormWindowSettings</name>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/formwindowsettings.cpp" line="+193"/>
         <source>None</source>
         <translation>Żaden</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Device Profile: %1</source>
         <translation>Profil urządzenia: %1</translation>
     </message>
@@ -5148,37 +4171,30 @@
 <context>
     <name>qdesigner_internal::GridPanel</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/gridpanel.ui"/>
         <source>Visible</source>
         <translation>Widoczna</translation>
     </message>
     <message>
-        <location/>
         <source>Snap</source>
         <translation>Przyciągaj</translation>
     </message>
     <message>
-        <location/>
         <source>Reset</source>
         <translation>Przywróć ustawienia</translation>
     </message>
     <message>
-        <location/>
         <source>Form</source>
         <translation>Formularz</translation>
     </message>
     <message>
-        <location/>
         <source>Grid</source>
         <translation>Siatka</translation>
     </message>
     <message>
-        <location/>
         <source>Grid &amp;X</source>
         <translation>Siatka &amp;X</translation>
     </message>
     <message>
-        <location/>
         <source>Grid &amp;Y</source>
         <translation>Siatka &amp;Y</translation>
     </message>
@@ -5186,7 +4202,6 @@
 <context>
     <name>qdesigner_internal::GroupBoxTaskMenu</name>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/groupbox_taskmenu.cpp" line="+82"/>
         <source>Change title...</source>
         <translation>Zmień tytuł...</translation>
     </message>
@@ -5194,7 +4209,6 @@
 <context>
     <name>qdesigner_internal::HtmlTextEdit</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/richtexteditor.cpp" line="-58"/>
         <source>Insert HTML entity</source>
         <translation>Wstaw jednostkę HTML</translation>
     </message>
@@ -5202,92 +4216,74 @@
 <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>Nie można odczytać pliku z pixmapą %1.</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>The file &apos;%1&apos; does not appear to be a valid pixmap file: %2</source>
         <translation>Plik &apos;%1&apos; nie wygląda na poprawny plik z pixmapą: %2</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>The file &apos;%1&apos; could not be read: %2</source>
         <translation>Nie można odczytać pliku &quot;%1&quot;, %2</translation>
     </message>
     <message>
-        <location line="+40"/>
         <source>Pixmap Read Error</source>
         <translation>Błąd przy odczycie pixmapy</translation>
     </message>
     <message>
-        <location line="+54"/>
         <source>...</source>
         <translation>...</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Normal Off</source>
         <translation>Normalny wyciśnięty</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Normal On</source>
         <translation>Normalny wciśnięty</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Disabled Off</source>
         <translation>Wyłączony wyciśnięty</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Disabled On</source>
         <translation>Wyłączony wciśnięty</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Active Off</source>
         <translation>Aktywny wyciśnięty</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Active On</source>
         <translation>Aktywny wciśnięty</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Selected Off</source>
         <translation>Zaznaczony wyciśnięty</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Selected On</source>
         <translation>Zaznaczony wciśnięty</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Choose Resource...</source>
         <translation>Wybierz zasób...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Choose File...</source>
         <translation>Wybierz plik...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Reset</source>
         <translation>Przywróć</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Reset All</source>
         <translation>Przywróć wszystkie</translation>
     </message>
     <message>
-        <location line="-85"/>
         <source>Choose a Pixmap</source>
         <translation>Wybierz pixmapę</translation>
     </message>
@@ -5295,58 +4291,46 @@
 <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>Własciwości &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>Własciwości &amp;&gt;&gt;</translation>
     </message>
     <message>
-        <location/>
         <source>Items List</source>
         <translation>Lista elementów</translation>
     </message>
     <message>
-        <location/>
         <source>New Item</source>
         <translation>Nowy element</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;New</source>
         <translation>&amp;Nowy</translation>
     </message>
     <message>
-        <location/>
         <source>Delete Item</source>
         <translation>Usuń element</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Delete</source>
         <translation>&amp;Usuń</translation>
     </message>
     <message>
-        <location/>
         <source>Move Item Up</source>
         <translation>Przenieś element do góry</translation>
     </message>
     <message>
-        <location/>
         <source>U</source>
         <translation>U</translation>
     </message>
     <message>
-        <location/>
         <source>Move Item Down</source>
         <translation>Przenieś element w dół</translation>
     </message>
     <message>
-        <location/>
         <source>D</source>
         <translation>D</translation>
     </message>
@@ -5354,12 +4338,10 @@
 <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>Zmień tekst sformatowany...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Change plain text...</source>
         <translation>Zmień zwykły tekst...</translation>
     </message>
@@ -5367,7 +4349,6 @@
 <context>
     <name>qdesigner_internal::LanguageResourceDialog</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/iconselector.cpp" line="-258"/>
         <source>Choose Resource</source>
         <translation>Wybierz zasób</translation>
     </message>
@@ -5375,7 +4356,6 @@
 <context>
     <name>qdesigner_internal::LineEditTaskMenu</name>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/lineedit_taskmenu.cpp" line="+80"/>
         <source>Change text...</source>
         <translation>Zmień tekst...</translation>
     </message>
@@ -5383,17 +4363,14 @@
 <context>
     <name>qdesigner_internal::ListWidgetEditor</name>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/listwidgeteditor.cpp" line="+69"/>
         <source>New Item</source>
         <translation>Nowy element</translation>
     </message>
     <message>
-        <location line="+32"/>
         <source>Edit List Widget</source>
         <translation>Modyfikuj listę</translation>
     </message>
     <message>
-        <location line="+19"/>
         <source>Edit Combobox</source>
         <translation>Modyfikuj combobox</translation>
     </message>
@@ -5401,12 +4378,10 @@
 <context>
     <name>qdesigner_internal::ListWidgetTaskMenu</name>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/listwidget_taskmenu.cpp" line="+67"/>
         <source>Edit Items...</source>
         <translation>Modyfikuj elementy...</translation>
     </message>
     <message>
-        <location line="+38"/>
         <source>Change List Contents</source>
         <translation>Zmień zawartość listy</translation>
     </message>
@@ -5414,22 +4389,18 @@
 <context>
     <name>qdesigner_internal::MdiContainerWidgetTaskMenu</name>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/containerwidget_taskmenu.cpp" line="+118"/>
         <source>Next Subwindow</source>
         <translation>Następne podokno</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Previous Subwindow</source>
         <translation>Poprzednie podokno</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Tile</source>
         <translation>Obok siebie</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Cascade</source>
         <translation>Kaskadowo</translation>
     </message>
@@ -5437,7 +4408,6 @@
 <context>
     <name>qdesigner_internal::MenuTaskMenu</name>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/menutaskmenu.cpp" line="+56"/>
         <source>Remove</source>
         <translation>Usuń</translation>
     </message>
@@ -5445,7 +4415,6 @@
 <context>
     <name>qdesigner_internal::MorphMenu</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/morphmenu.cpp" line="+264"/>
         <source>Morph into</source>
         <translation>Przekształć w</translation>
     </message>
@@ -5453,42 +4422,34 @@
 <context>
     <name>qdesigner_internal::NewActionDialog</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/newactiondialog.ui"/>
         <source>New Action...</source>
         <translation>Nowa akcja...</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Text:</source>
         <translation>&amp;Tekst:</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Icon:</source>
         <translation>&amp;Ikonka:</translation>
     </message>
     <message>
-        <location/>
         <source>Shortcut:</source>
         <translation>Skrót:</translation>
     </message>
     <message>
-        <location/>
         <source>Checkable:</source>
         <translation>Przełączalny:</translation>
     </message>
     <message>
-        <location/>
         <source>ToolTip:</source>
         <translation>Podpowiedź:</translation>
     </message>
     <message>
-        <location/>
         <source>...</source>
         <translation>...</translation>
     </message>
     <message>
-        <location/>
         <source>Object &amp;name:</source>
         <translation>&amp;Nazwa obiektu:</translation>
     </message>
@@ -5496,41 +4457,34 @@
 <context>
     <name>qdesigner_internal::NewDynamicPropertyDialog</name>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/newdynamicpropertydialog.cpp" line="+134"/>
         <source>Set Property Name</source>
         <translation>Ustaw nazwę właściwości</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>Bieżący obiekt posiada już właściwość o nazwie &apos;%1&apos;.
 Wybierz inną, unikalną nazwę.</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/newdynamicpropertydialog.ui"/>
         <source>Create Dynamic Property</source>
         <translation>Utwórz dynamiczną właściwość</translation>
     </message>
     <message>
-        <location/>
         <source>Property Name</source>
         <translation>Nazwa właściwości</translation>
     </message>
     <message>
-        <location/>
         <source>Property Type</source>
         <translation>Typ właściwości</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>Przedrostek &apos;_q_&apos; jest zarezerwowany dla biblioteki Qt.
 Wybierz inną nazwę.</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/newdynamicpropertydialog.ui"/>
         <source>horizontalSpacer</source>
         <translation>poziomy dystans</translation>
     </message>
@@ -5538,83 +4492,67 @@
 <context>
     <name>qdesigner_internal::NewFormWidget</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/newformwidget.cpp" line="+104"/>
         <source>Default size</source>
         <translation>Domyślny rozmiar</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>QVGA portrait (240x320)</source>
         <translation>QVGA portret (240x320)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>QVGA landscape (320x240)</source>
         <translation>QVGA pejzaż (320x240)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>VGA portrait (480x640)</source>
         <translation>VGA portret (480x640)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>VGA landscape (640x480)</source>
         <translation>VGA pejzaż (640x480)</translation>
     </message>
     <message>
-        <location line="+66"/>
         <source>Widgets</source>
         <extracomment>New Form Dialog Categories</extracomment>
         <translation>Widżety</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Custom Widgets</source>
         <translation>Własne widżety</translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>None</source>
         <translation>Żadne</translation>
     </message>
     <message>
-        <location line="+57"/>
         <source>Error loading form</source>
         <translation>Błąd podczas ładowania formularza</translation>
     </message>
     <message>
-        <location line="+244"/>
         <source>Unable to open the form template file &apos;%1&apos;: %2</source>
         <translation>Nie można otworzyć pliku &apos;%1&apos; z szablonem formularza: %2</translation>
     </message>
     <message>
-        <location line="+67"/>
         <source>Internal error: No template selected.</source>
         <translation>Błąd wewnętrzny: Nie zaznaczono szablonu.</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>Wybierz szablon do podglądu</translation>
     </message>
     <message>
-        <location/>
         <source>Embedded Design</source>
         <translation>Projekt dla urządzeń specjalizowanych</translation>
     </message>
     <message>
-        <location/>
         <source>Device:</source>
         <translation>Urządzenie:</translation>
     </message>
     <message>
-        <location/>
         <source>Screen Size:</source>
         <translation>Rozmiar ekranu:</translation>
     </message>
@@ -5622,37 +4560,30 @@
 <context>
     <name>qdesigner_internal::NewPromotedClassPanel</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_promotiondialog.cpp" line="+92"/>
         <source>Add</source>
         <translation>Dodaj</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>New Promoted Class</source>
         <translation>Nowa klasa zastępcza</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Base class name:</source>
         <translation>Nazwa bazowej klasy:</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Promoted class name:</source>
         <translation>Nazwa zastępczej klasy:</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Header file:</source>
         <translation>Plik nagłówkowy:</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Global include</source>
         <translation>Nagłówek globalny</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>Reset</source>
         <translation>Przywróć ustawienia</translation>
     </message>
@@ -5660,12 +4591,10 @@
 <context>
     <name>qdesigner_internal::ObjectInspector</name>
     <message>
-        <location filename="../tools/designer/src/components/objectinspector/objectinspector.cpp" line="+316"/>
         <source>Change Current Page</source>
         <translation>Zmień bieżącą stronę</translation>
     </message>
     <message>
-        <location line="+438"/>
         <source>&amp;Find in Text...</source>
         <translation>Z&amp;najdź w tekście...</translation>
     </message>
@@ -5673,32 +4602,26 @@
 <context>
     <name>qdesigner_internal::OrderDialog</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/orderdialog.cpp" line="+109"/>
         <source>Index %1 (%2)</source>
         <translation>Indeks %1 (%2)</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/orderdialog.ui"/>
         <source>Change Page Order</source>
         <translation>Zmień porządek stron</translation>
     </message>
     <message>
-        <location/>
         <source>Page Order</source>
         <translation>Porządek stron</translation>
     </message>
     <message>
-        <location/>
         <source>Move page up</source>
         <translation>Przenieś stronę do góry</translation>
     </message>
     <message>
-        <location/>
         <source>Move page down</source>
         <translation>Przenieś stronę w dół</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/orderdialog.cpp" line="+3"/>
         <source>%1 %2</source>
         <translation>%1 %2</translation>
     </message>
@@ -5706,47 +4629,38 @@
 <context>
     <name>qdesigner_internal::PaletteEditor</name>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/paletteeditor.ui"/>
         <source>Edit Palette</source>
         <translation>Modyfikuj paletę</translation>
     </message>
     <message>
-        <location/>
         <source>Tune Palette</source>
         <translation>Dopasuj paletę</translation>
     </message>
     <message>
-        <location/>
         <source>Show Details</source>
         <translation>Pokazuj szczegóły</translation>
     </message>
     <message>
-        <location/>
         <source>Compute Details</source>
         <translation>Obliczaj szczegóły</translation>
     </message>
     <message>
-        <location/>
         <source>Quick</source>
         <translation>Szybko</translation>
     </message>
     <message>
-        <location/>
         <source>Preview</source>
         <translation>Podgląd</translation>
     </message>
     <message>
-        <location/>
         <source>Disabled</source>
         <translation>Wyszarzony</translation>
     </message>
     <message>
-        <location/>
         <source>Inactive</source>
         <translation>Nieaktywny</translation>
     </message>
     <message>
-        <location/>
         <source>Active</source>
         <translation>Aktywny</translation>
     </message>
@@ -5754,7 +4668,6 @@
 <context>
     <name>qdesigner_internal::PaletteEditorButton</name>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/paletteeditorbutton.cpp" line="+57"/>
         <source>Change Palette</source>
         <translation>Zmień paletę</translation>
     </message>
@@ -5762,22 +4675,18 @@
 <context>
     <name>qdesigner_internal::PaletteModel</name>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/paletteeditor.cpp" line="+374"/>
         <source>Color Role</source>
         <translation>Rola koloru</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Active</source>
         <translation>Aktywna</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Inactive</source>
         <translation>Nieaktywna</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Disabled</source>
         <translation>Wyszarzona</translation>
     </message>
@@ -5785,28 +4694,22 @@
 <context>
     <name>qdesigner_internal::PixmapEditor</name>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/designerpropertymanager.cpp" line="-1539"/>
         <source>Copy Path</source>
         <translation>Skopiuj ścieżkę</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Paste Path</source>
         <translation>Wklej ścieżkę</translation>
     </message>
     <message>
-        <location line="-3"/>
         <source>Choose Resource...</source>
         <translation>Wybierz zasób...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Choose File...</source>
         <translation>Wybierz plik...</translation>
     </message>
     <message>
-        <location line="+8"/>
-        <location line="+16"/>
         <source>...</source>
         <translation>...</translation>
     </message>
@@ -5814,7 +4717,6 @@
 <context>
     <name>qdesigner_internal::PlainTextEditorDialog</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/plaintexteditor.cpp" line="+65"/>
         <source>Edit text</source>
         <translation>Modyfikuj tekst</translation>
     </message>
@@ -5822,37 +4724,30 @@
 <context>
     <name>qdesigner_internal::PluginDialog</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/plugindialog.cpp" line="+72"/>
         <source>Components</source>
         <translation>Komponenty</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>Plugin Information</source>
         <translation>Informacje o wtyczkach</translation>
     </message>
     <message>
-        <location line="+53"/>
         <source>Qt Designer couldn&apos;t find any plugins</source>
         <translation>Qt Designer nie mógł znaleźć żadnej wtyczki</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Qt Designer found the following plugins</source>
         <translation>Qt Designer znalazł następujące wtyczki:</translation>
     </message>
     <message>
-        <location line="-52"/>
         <source>Refresh</source>
         <translation>Odśwież</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Scan for newly installed custom widget plugins.</source>
         <translation>Szukaj nowo zainstalowanych wtyczek z widżetami.</translation>
     </message>
     <message>
-        <location line="+106"/>
         <source>New custom widget plugins have been found.</source>
         <translation>Znaleziono nową wtyczkę z widżetami.</translation>
     </message>
@@ -5860,7 +4755,6 @@
 <context>
     <name>qdesigner_internal::PreviewActionGroup</name>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/previewactiongroup.cpp" line="+95"/>
         <source>%1 Style</source>
         <translation>Styl %1</translation>
     </message>
@@ -5868,47 +4762,38 @@
 <context>
     <name>qdesigner_internal::PreviewConfigurationWidget</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/previewconfigurationwidget.cpp" line="+139"/>
         <source>Default</source>
         <translation>Domyślny</translation>
     </message>
     <message>
-        <location line="+22"/>
         <source>None</source>
         <translation>Żadna</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Browse...</source>
         <translation>Przeglądaj...</translation>
     </message>
     <message>
-        <location line="+118"/>
         <source>Load Custom Device Skin</source>
         <translation>Załaduj dostosowaną skórkę (skin) urządzenia</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>All QVFB Skins (*.%1)</source>
         <translation>Wszystkie skórki (skin) QVFB (*.%1)</translation>
     </message>
     <message>
-        <location line="+16"/>
         <source>%1 - Duplicate Skin</source>
         <translation>%1 - zduplikowana skórka (skin)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>The skin &apos;%1&apos; already exists.</source>
         <translation>Skórka (skin) &apos;%1&apos; już istnieje.</translation>
     </message>
     <message>
-        <location line="+14"/>
         <source>%1 - Error</source>
         <translation>%1 - Błąd</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>%1 is not a valid skin directory:
 %2</source>
         <translation>%1 nie jest poprawnym katalogiem ze skórką (skin)
@@ -5918,24 +4803,20 @@
 <context>
     <name>qdesigner_internal::PreviewDeviceSkin</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/previewmanager.cpp" line="+259"/>
         <source>&amp;Portrait</source>
         <translation>P&amp;ortret</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Landscape (&amp;CCW)</source>
         <extracomment>Rotate form preview counter-clockwise</extracomment>
         <translation>Pejzaż (&amp;CCW)</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>&amp;Landscape (CW)</source>
         <extracomment>Rotate form preview clockwise</extracomment>
         <translation>P&amp;ejzaż (CW)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Close</source>
         <translation>Za&amp;mknij</translation>
     </message>
@@ -5943,7 +4824,6 @@
 <context>
     <name>qdesigner_internal::PreviewManager</name>
     <message>
-        <location line="+426"/>
         <source>%1 - [Preview]</source>
         <translation>%1 - [Podgląd]</translation>
     </message>
@@ -5951,7 +4831,6 @@
 <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>
@@ -5962,57 +4841,46 @@
 <context>
     <name>qdesigner_internal::PreviewWidget</name>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/previewwidget.ui"/>
         <source>Preview Window</source>
         <translation>Podgląd okna</translation>
     </message>
     <message>
-        <location/>
         <source>LineEdit</source>
         <translation>LineEdit</translation>
     </message>
     <message>
-        <location/>
         <source>ComboBox</source>
         <translation>Combobox</translation>
     </message>
     <message>
-        <location/>
         <source>PushButton</source>
         <translation>PushButton</translation>
     </message>
     <message>
-        <location/>
         <source>ButtonGroup2</source>
         <translation>ButtonGroup2</translation>
     </message>
     <message>
-        <location/>
         <source>CheckBox1</source>
         <translation>Checkbox1</translation>
     </message>
     <message>
-        <location/>
         <source>CheckBox2</source>
         <translation>CheckBox2</translation>
     </message>
     <message>
-        <location/>
         <source>ButtonGroup</source>
         <translation>ButtonGroup</translation>
     </message>
     <message>
-        <location/>
         <source>RadioButton1</source>
         <translation>RadioButton1</translation>
     </message>
     <message>
-        <location/>
         <source>RadioButton2</source>
         <translation>RadioButton2</translation>
     </message>
     <message>
-        <location/>
         <source>RadioButton3</source>
         <translation>RadioBUtton3</translation>
     </message>
@@ -6020,22 +4888,18 @@
 <context>
     <name>qdesigner_internal::PromotionModel</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/promotionmodel.cpp" line="+17"/>
         <source>Name</source>
         <translation>Nazwa</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Header file</source>
         <translation>Plik nagłówkowy</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Global include</source>
         <translation>Nagłówek globalny</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Usage</source>
         <translation>Użycie</translation>
     </message>
@@ -6043,27 +4907,22 @@
 <context>
     <name>qdesigner_internal::PromotionTaskMenu</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/promotiontaskmenu.cpp" line="+85"/>
         <source>Promoted widgets...</source>
         <translation>Zastępcze widżety...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Promote to ...</source>
         <translation>Zastąp...</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Promote to</source>
         <translation>Zastąp</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Demote to %1</source>
         <translation>Przywróć do %1</translation>
     </message>
     <message>
-        <location line="-2"/>
         <source>Change signals/slots...</source>
         <translation>Zmień sygnały/sloty...</translation>
     </message>
@@ -6071,59 +4930,48 @@
 <context>
     <name>qdesigner_internal::PropertyEditor</name>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/propertyeditor.cpp" line="+231"/>
         <source>Add Dynamic Property...</source>
         <translation>Dodaj dynamiczną właściwość ...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Remove Dynamic Property</source>
         <translation>Usuń dynamiczną właściwość</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Sorting</source>
         <translation>Sortowanie</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Color Groups</source>
         <translation>Kolorowanie grup</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Tree View</source>
         <translation>Widok drzewiasty</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Drop Down Button View</source>
         <translation>Widok z rozszerzalnymi przyciskami</translation>
     </message>
     <message>
-        <location line="+59"/>
         <source>Configure Property Editor</source>
         <translation>Skonfiguruj edytor właściwości</translation>
     </message>
     <message>
-        <location line="+539"/>
         <source>Object: %1
 Class: %2</source>
         <translation>Obiekt: %1
 Klasa: %2</translation>
     </message>
     <message>
-        <location line="-553"/>
         <source>String...</source>
         <translation>String...</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Bool...</source>
         <translation>Bool...</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Other...</source>
         <translation>Inne...</translation>
     </message>
@@ -6131,7 +4979,6 @@
 <context>
     <name>qdesigner_internal::PropertyLineEdit</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/propertylineedit.cpp" line="+88"/>
         <source>Insert line break</source>
         <translation>Wstaw znak końca linii</translation>
     </message>
@@ -6139,27 +4986,22 @@
 <context>
     <name>qdesigner_internal::QDesignerPromotionDialog</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_promotiondialog.cpp" line="+85"/>
         <source>Promoted Widgets</source>
         <translation>Zastępcze widżety</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Promoted Classes</source>
         <translation>Zastępcze klasy</translation>
     </message>
     <message>
-        <location line="+60"/>
         <source>Promote</source>
         <translation>Zastąp</translation>
     </message>
     <message>
-        <location line="+169"/>
         <source>%1 - Error</source>
         <translation>%1 - Błąd</translation>
     </message>
     <message>
-        <location line="-17"/>
         <source>Change signals/slots...</source>
         <translation>Zmień sygnały/sloty...</translation>
     </message>
@@ -6167,22 +5009,18 @@
 <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>ładowanie pliku qrc</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>Plik qrc &lt;p&gt;&lt;b&gt;%1&lt;/b&gt;&lt;/p&gt;&lt;p&gt; nie został znaleziony. Czy chcesz uaktualnić ścieżkę do pliku?&lt;/p&gt;</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>New location for %1</source>
         <translation>Nowe położenie dla %1</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Resource files (*.qrc)</source>
         <translation>Pliki z zasobami (*.qrc)</translation>
     </message>
@@ -6190,57 +5028,46 @@
 <context>
     <name>qdesigner_internal::QDesignerTaskMenu</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_taskmenu.cpp" line="+68"/>
         <source>Change objectName...</source>
         <translation>Zmień nazwę obiektu...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Change toolTip...</source>
         <translation>Zmień podpowiedź...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Change whatsThis...</source>
         <translation>Zmień &quot;co to jest&quot;...</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Create Menu Bar</source>
         <translation>Utwórz pasek menu</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Add Tool Bar</source>
         <translation>Dodaj pasek narzędzi</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Create Status Bar</source>
         <translation>Utwórz pasek stanu</translation>
     </message>
     <message>
-        <location line="-5"/>
         <source>Change styleSheet...</source>
         <translation>Zmień arkusz stylu...</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Remove Status Bar</source>
         <translation>Usuń pasek stanu</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Change script...</source>
         <translation>Zmień skrypt...</translation>
     </message>
     <message>
-        <location line="+415"/>
         <source>no signals available</source>
         <translation>brak dostępnych sygnałów</translation>
     </message>
     <message numerus="yes">
-        <location line="+67"/>
         <source>Set size constraint on %n widget(s)</source>
         <translation>
             <numerusform>Ustaw ograniczenie rozmiaru w %n obiekcie</numerusform>
@@ -6249,57 +5076,46 @@
         </translation>
     </message>
     <message>
-        <location line="-481"/>
         <source>Change signals/slots...</source>
         <translation>Zmień sygnały/sloty...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Go to slot...</source>
         <translation>Przejdź do slotu...</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Size Constraints</source>
         <translation>Ograniczenia rozmiaru</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Set Minimum Width</source>
         <translation>Ustaw minimalną szerokość</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Set Minimum Height</source>
         <translation>Ustaw minimalną wysokość</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Set Minimum Size</source>
         <translation>Ustaw minimalny rozmiar</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Set Maximum Width</source>
         <translation>Ustaw maksymalną szerokość</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Set Maximum Height</source>
         <translation>Ustaw maksymalną wysokość</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Set Maximum Size</source>
         <translation>Ustaw maksymalny rozmiar</translation>
     </message>
     <message>
-        <location line="+235"/>
         <source>Edit ToolTip</source>
         <translation>Modyfikuj podpowiedź</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Edit WhatsThis</source>
         <translation>Modyfikuj &quot;Co to jest&quot;</translation>
     </message>
@@ -6307,42 +5123,34 @@
 <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>Niespodziewany element &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>Wystąpił błąd przetwarzania w linii %1, kolumnie %2 kodu XML określonego dla widżetu %3: %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>Kod XML określony dla widżetu %1 nie zawiera żadnego elementu typu widżet.
 %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>Wystąpił błąd w linii %1 w %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>Wystąpił niespodziewany element &lt;%1&gt; podczas przetwarzania elementu &lt;widget&gt; lub &lt;ui&gt;</translation>
     </message>
     <message>
-        <location line="+19"/>
         <source>Unexpected end of file encountered when parsing widgets.</source>
         <translation>Wystąpił niespodziewany koniec pliku podczas przetwarzania widżetów.</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>A widget element could not be found.</source>
         <translation>Nie można odnależć elementu &lt;widget&gt;.</translation>
     </message>
@@ -6350,73 +5158,58 @@
 <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>Barwa</translation>
     </message>
     <message>
-        <location line="-3"/>
         <source>Sat</source>
         <translation>Nas.</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Val</source>
         <translation>Wart.</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Saturation</source>
         <translation>Nasycenie</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Value</source>
         <translation>Wartość</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>Czerwień</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Green</source>
         <translation>Zieleń</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Blue</source>
         <translation>Błękit</translation>
     </message>
@@ -6424,27 +5217,22 @@
 <context>
     <name>qdesigner_internal::RichTextEditorDialog</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/richtexteditor.cpp" line="+436"/>
         <source>Edit text</source>
         <translation>Modyfikuj tekst</translation>
     </message>
     <message>
-        <location line="+32"/>
         <source>&amp;Cancel</source>
         <translation>&amp;Anuluj</translation>
     </message>
     <message>
-        <location line="-2"/>
         <source>&amp;OK</source>
         <translation>&amp;OK</translation>
     </message>
     <message>
-        <location line="-7"/>
         <source>Rich Text</source>
         <translation>Rich Text</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Source</source>
         <translation>Źródło</translation>
     </message>
@@ -6452,72 +5240,58 @@
 <context>
     <name>qdesigner_internal::RichTextEditorToolBar</name>
     <message>
-        <location line="-294"/>
         <source>Bold</source>
         <translation>Pogrubienie</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Italic</source>
         <translation>Kursywa</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>CTRL+I</source>
         <translation>CTRL+I</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Underline</source>
         <translation>Podkreślenie</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>CTRL+U</source>
         <translation>CTRL+U</translation>
     </message>
     <message>
-        <location line="-12"/>
         <source>CTRL+B</source>
         <translation>CTRL+B</translation>
     </message>
     <message>
-        <location line="+25"/>
         <source>Left Align</source>
         <translation>Wyrównanie do lewej</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Center</source>
         <translation>Wyrównanie do środka</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Right Align</source>
         <translation>Wyrównanie do prawej</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Justify</source>
         <translation>Wyjustuj</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Superscript</source>
         <translation>Indeks górny</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Subscript</source>
         <translation>Indeks dolny</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Insert &amp;Link</source>
         <translation>Wstaw &amp;Odsyłacz</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Insert &amp;Image</source>
         <translation>Wstaw &amp;obrazek</translation>
     </message>
@@ -6525,17 +5299,14 @@
 <context>
     <name>qdesigner_internal::ScriptDialog</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/scriptdialog.cpp" line="+66"/>
         <source>Edit script</source>
         <translation>Modyfikuj skrypt</translation>
     </message>
     <message>
-        <location line="+56"/>
         <source>Syntax error</source>
         <translation>Błąd składni</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;Wprowadź skrypt Qt który będzie wykonany podczas ładowania formularza.&lt;br&gt;Widżet i jego dzieci są dostępne przez zmienne &lt;i&gt;widget&lt;/i&gt; i &lt;i&gt;childWidgets&lt;/i&gt;, odpowiednio.</translation>
     </message>
@@ -6543,7 +5314,6 @@
 <context>
     <name>qdesigner_internal::ScriptErrorDialog</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/scripterrordialog.cpp" line="+27"/>
         <source>Script errors</source>
         <translation>Błędy skryptu</translation>
     </message>
@@ -6551,23 +5321,18 @@
 <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>Slot &apos;%1&apos; już istnieje.</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>There is already a signal with the signature &apos;%1&apos;.</source>
         <translation>Sygnał &apos;%1&apos; już istnieje.</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>%1 - Duplicate Signature</source>
         <translation>%1 - zduplikowany zapis</translation>
     </message>
     <message>
-        <location line="+21"/>
-        <location line="+76"/>
         <source>Signals/Slots of %1</source>
         <translation>Sygnały/sloty obiektu %1</translation>
     </message>
@@ -6575,12 +5340,10 @@
 <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>Modyfikuj sygnały/sloty</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>F4</source>
         <translation>F4</translation>
     </message>
@@ -6588,7 +5351,6 @@
 <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>Modyfikuj sygnały/sloty</translation>
     </message>
@@ -6596,7 +5358,6 @@
 <context>
     <name>qdesigner_internal::StatusBarTaskMenu</name>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/toolbar_taskmenu.cpp" line="+81"/>
         <source>Remove</source>
         <translation>Usuń</translation>
     </message>
@@ -6604,7 +5365,6 @@
 <context>
     <name>qdesigner_internal::StringListEditorButton</name>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/stringlisteditorbutton.cpp" line="+56"/>
         <source>Change String List</source>
         <translation>Zmień listę tekstów</translation>
     </message>
@@ -6612,38 +5372,30 @@
 <context>
     <name>qdesigner_internal::StyleSheetEditorDialog</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/stylesheeteditor.cpp" line="+97"/>
         <source>Edit Style Sheet</source>
         <translation>Modyfikuj arkusz stylu</translation>
     </message>
     <message>
-        <location line="-7"/>
-        <location line="+280"/>
         <source>Valid Style Sheet</source>
         <translation>Poprawny arkusz stylu</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Invalid Style Sheet</source>
         <translation>Niepoprawny arkusz stylu</translation>
     </message>
     <message>
-        <location line="-281"/>
         <source>Add Resource...</source>
         <translation>Dodaj zasób...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Add Gradient...</source>
         <translation>Dodaj gradient...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Add Color...</source>
         <translation>Dodaj kolor...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Add Font...</source>
         <translation>Dodaj czcionkę...</translation>
     </message>
@@ -6651,27 +5403,22 @@
 <context>
     <name>qdesigner_internal::TabOrderEditor</name>
     <message>
-        <location filename="../tools/designer/src/components/tabordereditor/tabordereditor.cpp" line="+363"/>
         <source>Start from Here</source>
         <translation>Rozpocznij stąd</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Restart</source>
         <translation>Rozpocznij od nowa</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Tab Order List...</source>
         <translation>Lista kolejności tabulacji...</translation>
     </message>
     <message>
-        <location line="+44"/>
         <source>Tab Order List</source>
         <translation>Lista kolejności tabulacji</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Tab Order</source>
         <translation>Kolejność tabulacji</translation>
     </message>
@@ -6679,7 +5426,6 @@
 <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>Modyfikuj kolejność tabulacji</translation>
     </message>
@@ -6687,7 +5433,6 @@
 <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>Modyfikuj kolejność tabulacji</translation>
     </message>
@@ -6695,48 +5440,38 @@
 <context>
     <name>qdesigner_internal::TableWidgetEditor</name>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/tablewidgeteditor.ui"/>
         <source>Edit Table Widget</source>
         <translation>Modyfikuj tablę</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Items</source>
         <translation>&amp;Elementy</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/tablewidgeteditor.cpp" line="+70"/>
         <source>New Row</source>
         <translation>Nowy wiersz</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>&amp;Columns</source>
         <translation>&amp;Kolumny</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Rows</source>
         <translation>&amp;Wiersze</translation>
     </message>
     <message>
-        <location line="+137"/>
         <source>Properties &amp;&lt;&lt;</source>
         <translation>Własciwości &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>Własciwości &amp;&gt;&gt;</translation>
     </message>
     <message>
-        <location/>
         <source>Table Items</source>
         <translation>Elementy tabeli</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/tablewidgeteditor.cpp" line="-151"/>
         <source>New Column</source>
         <translation>Nowa kolumna</translation>
     </message>
@@ -6744,7 +5479,6 @@
 <context>
     <name>qdesigner_internal::TableWidgetTaskMenu</name>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/tablewidget_taskmenu.cpp" line="+64"/>
         <source>Edit Items...</source>
         <translation>Modyfikuj elementy...</translation>
     </message>
@@ -6752,22 +5486,18 @@
 <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>Wybierz katalog do zachowywania szablonów</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/templateoptionspage.ui"/>
         <source>Form</source>
         <translation>Formularz</translation>
     </message>
     <message>
-        <location/>
         <source>Additional Template Paths</source>
         <translation>Dodatkowe ścieżki z szablonami</translation>
     </message>
     <message>
-        <location/>
         <source>...</source>
         <translation>...</translation>
     </message>
@@ -6775,22 +5505,18 @@
 <context>
     <name>qdesigner_internal::TextEditTaskMenu</name>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/textedit_taskmenu.cpp" line="+59"/>
         <source>Change HTML...</source>
         <translation>Zmień HTML...</translation>
     </message>
     <message>
-        <location line="-1"/>
         <source>Edit HTML</source>
         <translation>Modyfikuj HTML</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>Edit Text</source>
         <translation>Modyfikuj tekst</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Change Plain Text...</source>
         <translation>Zmień zwykły tekst...</translation>
     </message>
@@ -6798,22 +5524,18 @@
 <context>
     <name>qdesigner_internal::TextEditor</name>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/designerpropertymanager.cpp" line="-204"/>
         <source>Choose Resource...</source>
         <translation>Wybierz zasób...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Choose File...</source>
         <translation>Wybierz plik...</translation>
     </message>
     <message>
-        <location line="+123"/>
         <source>Choose a File</source>
         <translation>Wybierz plik</translation>
     </message>
     <message>
-        <location line="-118"/>
         <source>...</source>
         <translation>...</translation>
     </message>
@@ -6821,27 +5543,22 @@
 <context>
     <name>qdesigner_internal::ToolBarEventFilter</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_toolbar.cpp" line="+234"/>
         <source>Insert Separator</source>
         <translation>Wstaw separator</translation>
     </message>
     <message>
-        <location line="-65"/>
         <source>Remove action &apos;%1&apos;</source>
         <translation>Usuń akcję &apos;%1&apos;</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Remove Toolbar &apos;%1&apos;</source>
         <translation>Usuń pasek narzędzi &apos;%1&apos;</translation>
     </message>
     <message>
-        <location line="-28"/>
         <source>Insert Separator before &apos;%1&apos;</source>
         <translation>Wstaw separator przed &apos;%1&apos;</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Append Separator</source>
         <translation>Dodaj separator</translation>
     </message>
@@ -6849,125 +5566,98 @@
 <context>
     <name>qdesigner_internal::TreeWidgetEditor</name>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/treewidgeteditor.ui"/>
         <source>Edit Tree Widget</source>
         <translation>Modyfikuj drzewo</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Items</source>
         <translation>&amp;Elementy</translation>
     </message>
     <message>
-        <location/>
         <source>Tree Items</source>
         <translation>Drzewo elementów</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/treewidgeteditor.cpp" line="+76"/>
         <source>&amp;Columns</source>
         <translation>&amp;Kolumny</translation>
     </message>
     <message>
-        <location line="+69"/>
         <source>Per column properties</source>
         <translation>Właściowści dla kolumny</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Common properties</source>
         <translation>Wspólne właściwości</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>Nowy element</translation>
     </message>
     <message>
-        <location/>
-        <location filename="../tools/designer/src/components/taskmenu/treewidgeteditor.cpp" line="+19"/>
         <source>New Subitem</source>
         <translation>Nowy podelement</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/treewidgeteditor.cpp" line="+175"/>
         <source>Properties &amp;&lt;&lt;</source>
         <translation>Własciwości &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>Własciwości &amp;&gt;&gt;</translation>
     </message>
     <message>
-        <location/>
         <source>New &amp;Subitem</source>
         <translation>Nowy &amp;podelement</translation>
     </message>
     <message>
-        <location/>
         <source>Delete Item</source>
         <translation>Usuń element</translation>
     </message>
     <message>
-        <location/>
         <source>Move Item Left (before Parent Item)</source>
         <translation>Przenieś element w lewo (przed element nadrzędny)</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>Przenieś element w prawo (jako pierwszy podelement kolejnego elementu)</translation>
     </message>
     <message>
-        <location/>
         <source>R</source>
         <translation>R</translation>
     </message>
     <message>
-        <location/>
         <source>Move Item Up</source>
         <translation>Przenieś element do góry</translation>
     </message>
     <message>
-        <location/>
         <source>U</source>
         <translation>U</translation>
     </message>
     <message>
-        <location/>
         <source>Move Item Down</source>
         <translation>Przenieś element w dół</translation>
     </message>
     <message>
-        <location/>
         <source>D</source>
         <translation>D</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/treewidgeteditor.cpp" line="-327"/>
         <source>New Column</source>
         <translation>Nowa kolumna</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/treewidgeteditor.ui"/>
         <source>1</source>
         <translation>1</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;New</source>
         <translation>&amp;Nowy</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Delete</source>
         <translation>&amp;Usuń</translation>
     </message>
@@ -6975,7 +5665,6 @@
 <context>
     <name>qdesigner_internal::TreeWidgetTaskMenu</name>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/treewidget_taskmenu.cpp" line="+63"/>
         <source>Edit Items...</source>
         <translation>Modyfikujj elementy...</translation>
     </message>
@@ -6983,7 +5672,6 @@
 <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>Ostrzeżenie: Błąd tworzenia widżetu w panelu widżetów. Mogło to być spowodowane niepoprawnym kodem XML widżetu.</translation>
     </message>
@@ -6991,42 +5679,34 @@
 <context>
     <name>qdesigner_internal::WidgetBoxTreeWidget</name>
     <message>
-        <location filename="../tools/designer/src/components/widgetbox/widgetboxtreewidget.cpp" line="-268"/>
         <source>Scratchpad</source>
         <translation>Notatnik</translation>
     </message>
     <message>
-        <location line="+370"/>
         <source>Custom Widgets</source>
         <translation>Własne widżety</translation>
     </message>
     <message>
-        <location line="+263"/>
         <source>Expand all</source>
         <translation>Rozwiń wszystkie</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Collapse all</source>
         <translation>Zwiń wszystkie</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>List View</source>
         <translation>Widok w formie listy</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Icon View</source>
         <translation>Widok z ikonkami</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Remove</source>
         <translation>Usuń</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Edit name</source>
         <translation>Modyfikuj nazwę</translation>
     </message>
@@ -7034,7 +5714,6 @@
 <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>Została znaleziona wtyczka widżetu, w której nazwa klasy (%1) odpowiada istniejącej już klasie.</translation>
     </message>
@@ -7042,7 +5721,6 @@
 <context>
     <name>qdesigner_internal::WidgetEditorTool</name>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/tool_widgeteditor.cpp" line="+67"/>
         <source>Edit Widgets</source>
         <translation>Modyfikuj widżety</translation>
     </message>
@@ -7050,34 +5728,28 @@
 <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>Fabryka widżetów użytkownika zarejestrowana dla widżetów klasy %1 zwróciła 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>Wystąpiła niezgodność nazwy klasy podczas tworzenia widżetu przy pomocy fabryki widżetów użytkownika zarejestrowanej dla klasy %1. Zwrócony został widżet klasy %2.</translation>
     </message>
     <message>
-        <location line="+99"/>
         <source>%1 Widget</source>
         <translation>Widżet %1</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>Podczas tworzenia rozmieszczenia nie można było określić bieżącej strony (%2) pojemnika &apos;%1&apos;. Wskazuje to na niespójność pliku ui, prawdopodobnie utworzone zostało zbędne rozmieszczenie dla tego pojemnika.</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>Próba dodania rozmieszczenia do widżetu &apos;%1&apos; (%2) który posiada już niezarządzane rozmieszczenie typu %3.
 To wskazuje na niespójność w pliku &quot;ui&quot;.</translation>
     </message>
     <message>
-        <location line="+211"/>
         <source>Cannot create style &apos;%1&apos;.</source>
         <translation>Nie można utworzyć stylu &apos;%1&apos;.</translation>
     </message>
@@ -7085,12 +5757,10 @@
 <context>
     <name>qdesigner_internal::WizardContainerWidgetTaskMenu</name>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/containerwidget_taskmenu.cpp" line="-49"/>
         <source>Next</source>
         <translation>Dalej</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Back</source>
         <translation>Wstecz</translation>
     </message>
@@ -7098,7 +5768,6 @@
 <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>
@@ -7107,7 +5776,6 @@
 <context>
     <name>qdesigner_internal::ZoomablePreviewDeviceSkin</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/previewmanager.cpp" line="-270"/>
         <source>&amp;Zoom</source>
         <translation>&amp;Powiększenie</translation>
     </message>
--- a/translations/designer_ru.ts	Fri Sep 17 08:34:18 2010 +0300
+++ b/translations/designer_ru.ts	Mon Oct 04 01:19:32 2010 +0300
@@ -4,27 +4,22 @@
 <context>
     <name>AbstractFindWidget</name>
     <message>
-        <location filename="../tools/shared/findwidget/abstractfindwidget.cpp" line="+127"/>
         <source>&amp;Previous</source>
         <translation>&amp;Предыдущий</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>&amp;Next</source>
         <translation>&amp;Следующий</translation>
     </message>
     <message>
-        <location line="+24"/>
         <source>&amp;Case sensitive</source>
         <translation>&amp;Учитывать регистр</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Whole &amp;words</source>
         <translation>Слова &amp;целиком</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;Поиск с начала</translation>
     </message>
@@ -32,17 +27,14 @@
 <context>
     <name>AddLinkDialog</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/addlinkdialog.ui"/>
         <source>Insert Link</source>
         <translation>Вставить ссылку</translation>
     </message>
     <message>
-        <location/>
         <source>Title:</source>
         <translation>Заголовок:</translation>
     </message>
     <message>
-        <location/>
         <source>URL:</source>
         <translation>URL:</translation>
     </message>
@@ -50,7 +42,6 @@
 <context>
     <name>AppFontDialog</name>
     <message>
-        <location filename="../tools/designer/src/designer/appfontdialog.cpp" line="+418"/>
         <source>Additional Fonts</source>
         <translation>Дополнительные шрифты</translation>
     </message>
@@ -58,37 +49,30 @@
 <context>
     <name>AppFontManager</name>
     <message>
-        <location line="-267"/>
         <source>&apos;%1&apos; is not a file.</source>
         <translation>&apos;%1&apos; не является файлом.</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>The font file &apos;%1&apos; does not have read permissions.</source>
         <translation>Файл шрифтов &apos;%1&apos; не доступен для чтения.</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>The font file &apos;%1&apos; is already loaded.</source>
         <translation>Файл шрифтов &apos;%1&apos;уже загружен.</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>The font file &apos;%1&apos; could not be loaded.</source>
         <translation>Файл шрифтов &apos;%1&apos; не может быть загружен.</translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>&apos;%1&apos; is not a valid font id.</source>
         <translation>&apos;%1&apos; не является корректным идентификатором шрифта.</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>There is no loaded font matching the id &apos;%1&apos;.</source>
         <translation>Нет загруженного шрифта, соответствующего идентификатору &apos;%1&apos;.</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>The font &apos;%1&apos; (%2) could not be unloaded.</source>
         <translation>Шрифт &apos;%1&apos; (%2) не может быть выгружен.</translation>
     </message>
@@ -96,52 +80,42 @@
 <context>
     <name>AppFontWidget</name>
     <message>
-        <location line="+26"/>
         <source>Fonts</source>
         <translation>Шрифты</translation>
     </message>
     <message>
-        <location line="+58"/>
         <source>Add font files</source>
         <translation>Добавить файлы шрифтов</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Remove current font file</source>
         <translation>Удалить текущий файл шрифта</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Remove all font files</source>
         <translation>Удалить все файлы шрифтов</translation>
     </message>
     <message>
-        <location line="+19"/>
         <source>Add Font Files</source>
         <translation>Добавить файлы шрифтов</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Font files (*.ttf)</source>
         <translation>Файлы шрифтов (*.ttf)</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>Error Adding Fonts</source>
         <translation>Ошибка добавления шрифтов</translation>
     </message>
     <message>
-        <location line="+24"/>
         <source>Error Removing Fonts</source>
         <translation>Ошибка удаления шрифтов</translation>
     </message>
     <message>
-        <location line="+22"/>
         <source>Remove Fonts</source>
         <translation>Удалить шрифты</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Would you like to remove all fonts?</source>
         <translation>Желаете удалить все шрифты?</translation>
     </message>
@@ -149,12 +123,10 @@
 <context>
     <name>AppearanceOptionsWidget</name>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_appearanceoptions.ui"/>
         <source>Form</source>
         <translation>Форма</translation>
     </message>
     <message>
-        <location/>
         <source>User Interface Mode</source>
         <translation>Режим пользовательского интерфейса</translation>
     </message>
@@ -162,17 +134,14 @@
 <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>Невозможно отправить запрос: Qt Assistant не отвечает.</translation>
     </message>
     <message>
-        <location line="+39"/>
         <source>The binary &apos;%1&apos; does not exist.</source>
         <translation>Исполняемый файл &apos;%1&apos; не существует.</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Unable to launch assistant (%1).</source>
         <translation>Невозможно запустить Qt Assistant (%1).</translation>
     </message>
@@ -180,92 +149,74 @@
 <context>
     <name>BrushPropertyManager</name>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/brushpropertymanager.cpp" line="+52"/>
         <source>No brush</source>
         <translation>Пустая</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Solid</source>
         <translation>Сплошная</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Dense 1</source>
         <translation>Плотность 1</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Dense 2</source>
         <translation>Плотность 2</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Dense 3</source>
         <translation>Плотность 3</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Dense 4</source>
         <translation>Плотность 4</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Dense 5</source>
         <translation>Плотность 5</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Dense 6</source>
         <translation>Плотность 6</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Dense 7</source>
         <translation>Плотность 7</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Horizontal</source>
         <translation>Горизонтальная</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Vertical</source>
         <translation>Вертикальная</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Cross</source>
         <translation>Крестообразная</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Backward diagonal</source>
         <translation>Обратная диагональ</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Forward diagonal</source>
         <translation>Диагональ</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Crossing diagonal</source>
         <translation>Пересекающиеся диагонали</translation>
     </message>
     <message>
-        <location line="+93"/>
         <source>Style</source>
         <translation>Стиль</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>Color</source>
         <translation>Цвет</translation>
     </message>
     <message>
-        <location line="+105"/>
         <source>[%1, %2]</source>
         <translation>[%1, %2]</translation>
     </message>
@@ -273,350 +224,269 @@
 <context>
     <name>Command</name>
     <message>
-        <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditor.cpp" line="+208"/>
-        <location line="+258"/>
         <source>Change signal</source>
         <translation>Сменить сигнал</translation>
     </message>
     <message>
-        <location line="-256"/>
-        <location line="+268"/>
         <source>Change slot</source>
         <translation>Сменить слот</translation>
     </message>
     <message>
-        <location line="-220"/>
         <source>Change signal-slot connection</source>
         <translation>Изменить соединение сигнал-слот</translation>
     </message>
     <message>
-        <location line="+234"/>
         <source>Change sender</source>
         <translation>Сменить отправителя</translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>Change receiver</source>
         <translation>Сменить получателя</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/button_taskmenu.cpp" line="+221"/>
         <source>Create button group</source>
         <translation>Создать группу кнопок</translation>
     </message>
     <message>
-        <location line="+27"/>
         <source>Break button group</source>
         <translation>Разбить группу кнопок</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Break button group &apos;%1&apos;</source>
         <translation>Разбить группу кнопок &apos;%1&apos;</translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>Add buttons to group</source>
         <translation>Добавить кнопки в группу</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; в &apos;%2&apos;</translation>
     </message>
     <message>
-        <location line="+14"/>
         <source>Remove buttons from group</source>
         <translation>Удалить кнопки из группы</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; из &apos;%2&apos;</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/connectionedit.cpp" line="+143"/>
         <source>Add connection</source>
         <translation>Добавить соединение</translation>
     </message>
     <message>
-        <location line="+54"/>
         <source>Adjust connection</source>
         <translation>Настроить соединение</translation>
     </message>
     <message>
-        <location line="+19"/>
         <source>Delete connections</source>
         <translation>Удалить соединения</translation>
     </message>
     <message>
-        <location line="+58"/>
         <source>Change source</source>
         <translation>Сменить источник</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Change target</source>
         <translation>Сменить приёмника</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; в %3</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;</translation>
     </message>
     <message>
-        <location line="+133"/>
         <source>Change Z-order of &apos;%1&apos;</source>
         <translation type="unfinished">Изменить порядок удалённости &apos;%1&apos;</translation>
     </message>
     <message>
-        <location line="+34"/>
         <source>Raise &apos;%1&apos;</source>
         <translation>Поднять &apos;%1&apos;</translation>
     </message>
     <message>
-        <location line="+33"/>
         <source>Lower &apos;%1&apos;</source>
         <translation>Опустить &apos;%1&apos;</translation>
     </message>
     <message>
-        <location line="+113"/>
         <source>Delete &apos;%1&apos;</source>
         <translation>Удалить &apos;%1&apos;</translation>
     </message>
     <message>
-        <location line="+119"/>
         <source>Reparent &apos;%1&apos;</source>
         <translation>Сменить владельца у &apos;%1&apos;</translation>
     </message>
     <message>
-        <location line="+53"/>
         <source>Promote to custom widget</source>
         <translation type="unfinished">Преобразовать в пользовательский виджет</translation>
     </message>
     <message>
-        <location line="+42"/>
         <source>Demote from custom widget</source>
         <translation type="unfinished">Преобразовать из пользовательского виджета</translation>
     </message>
     <message>
-        <location line="+79"/>
         <source>Lay out using grid</source>
         <translation>Скомпоновать, используя сетку</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Lay out vertically</source>
         <translation>Скомпоновать по вертикали</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Lay out horizontally</source>
         <translation>Скомпоновать по горизонтали</translation>
     </message>
     <message>
-        <location line="+41"/>
         <source>Break layout</source>
         <translation>Разбить компоновку</translation>
     </message>
     <message>
-        <location line="+105"/>
         <source>Simplify Grid Layout</source>
         <translation type="unfinished">Упрощённая компоновка по сетке</translation>
     </message>
     <message>
-        <location line="+135"/>
-        <location line="+235"/>
-        <location line="+78"/>
         <source>Move Page</source>
         <translation>Переместить страницу</translation>
     </message>
     <message>
-        <location line="-279"/>
-        <location line="+123"/>
-        <location line="+188"/>
-        <location line="+666"/>
         <source>Delete Page</source>
         <translation>Удалить страницу</translation>
     </message>
     <message>
-        <location line="-939"/>
-        <location line="+123"/>
         <source>Page</source>
         <translation>Страница</translation>
     </message>
     <message>
-        <location line="+860"/>
         <source>page</source>
         <translation>страница</translation>
     </message>
     <message>
-        <location line="-978"/>
-        <location line="+123"/>
-        <location line="+186"/>
-        <location line="+667"/>
         <source>Insert Page</source>
         <translation>Вставить страницу</translation>
     </message>
     <message>
-        <location line="-647"/>
         <source>Change Tab order</source>
         <translation>Изменить последовательность переключений</translation>
     </message>
     <message>
-        <location line="+28"/>
         <source>Create Menu Bar</source>
         <translation>Создать панель меню</translation>
     </message>
     <message>
-        <location line="+44"/>
         <source>Delete Menu Bar</source>
         <translation>Удалить панель меню</translation>
     </message>
     <message>
-        <location line="+47"/>
         <source>Create Status Bar</source>
         <translation>Создать строку состояния</translation>
     </message>
     <message>
-        <location line="+42"/>
         <source>Delete Status Bar</source>
         <translation>Удалить строку состояния</translation>
     </message>
     <message>
-        <location line="+45"/>
         <source>Add Tool Bar</source>
         <translation>Добавить панель инструментов</translation>
     </message>
     <message>
-        <location line="+59"/>
         <source>Add Dock Window</source>
         <translation type="unfinished">Добавить прикрепляемое окно</translation>
     </message>
     <message>
-        <location line="+53"/>
         <source>Adjust Size of &apos;%1&apos;</source>
         <translation>Подогнать размер &apos;%1&apos;</translation>
     </message>
     <message>
-        <location line="+57"/>
         <source>Change Form Layout Item Geometry</source>
         <translation type="unfinished">Изменить геометрию элементов компоновки столбцами</translation>
     </message>
     <message>
-        <location line="+95"/>
         <source>Change Layout Item Geometry</source>
         <translation type="unfinished">Изменить геометрию элементов компоновки</translation>
     </message>
     <message>
-        <location line="+138"/>
         <source>Delete Subwindow</source>
         <translation>Удалить дочернее окно</translation>
     </message>
     <message>
-        <location line="+44"/>
         <source>Insert Subwindow</source>
         <translation>Вставить дочернее окно</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>subwindow</source>
         <translation>дочернее окно</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Subwindow</source>
         <translation>Дочернее окно</translation>
     </message>
     <message>
-        <location line="+391"/>
         <source>Change Table Contents</source>
         <translation>Изменить содержимое таблицы</translation>
     </message>
     <message>
-        <location line="+107"/>
         <source>Change Tree Contents</source>
         <translation>Изменить содержимое дерева</translation>
     </message>
     <message>
-        <location line="+74"/>
-        <location line="+146"/>
         <source>Add action</source>
         <translation>Добавить действие</translation>
     </message>
     <message>
-        <location line="-120"/>
-        <location line="+126"/>
         <source>Remove action</source>
         <translation>Удалить действие</translation>
     </message>
     <message>
-        <location line="+53"/>
         <source>Add menu</source>
         <translation>Добавить меню</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Remove menu</source>
         <translation>Удалить меню</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Create submenu</source>
         <translation>Создать дочернее меню</translation>
     </message>
     <message>
-        <location line="+31"/>
         <source>Delete Tool Bar</source>
         <translation>Удалить панель инструментов</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; с %2 на %3</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_menu.cpp" line="+1194"/>
         <source>Set action text</source>
         <translation>Установить текст действия</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Insert action</source>
         <translation>Вставить действие</translation>
     </message>
     <message>
-        <location line="+89"/>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_menubar.cpp" line="+915"/>
         <source>Move action</source>
         <translation>Переместить действие</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_menubar.cpp" line="-432"/>
         <source>Change Title</source>
         <translation>Изменить заголовок</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Insert Menu</source>
         <translation>Вставить меню</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_propertycommand.cpp" line="+1225"/>
         <source>Changed &apos;%1&apos; of &apos;%2&apos;</source>
         <translation>Изменено &apos;%1&apos; у &apos;%2&apos;</translation>
     </message>
     <message numerus="yes">
-        <location line="+3"/>
         <source>Changed &apos;%1&apos; of %n objects</source>
         <translation>
             <numerusform>Изменено &apos;%1&apos; у %n объекта</numerusform>
@@ -625,12 +495,10 @@
         </translation>
     </message>
     <message>
-        <location line="+84"/>
         <source>Reset &apos;%1&apos; of &apos;%2&apos;</source>
         <translation>Восстановлено &apos;%1&apos; у &apos;%2&apos;</translation>
     </message>
     <message numerus="yes">
-        <location line="+3"/>
         <source>Reset &apos;%1&apos; of %n objects</source>
         <translation>
             <numerusform>Восстановлено &apos;%1&apos; у %n объекта</numerusform>
@@ -639,12 +507,10 @@
         </translation>
     </message>
     <message>
-        <location line="+89"/>
         <source>Add dynamic property &apos;%1&apos; to &apos;%2&apos;</source>
         <translation>Добавлено динамическое свойство &apos;%1&apos; &apos;%2&apos;</translation>
     </message>
     <message numerus="yes">
-        <location line="+3"/>
         <source>Add dynamic property &apos;%1&apos; to %n objects</source>
         <translation>
             <numerusform>Добавлено динамическое свойство &apos;%1&apos; %n объекту</numerusform>
@@ -653,12 +519,10 @@
         </translation>
     </message>
     <message>
-        <location line="+86"/>
         <source>Remove dynamic property &apos;%1&apos; from &apos;%2&apos;</source>
         <translation>Удалено динамическое свойство &apos;%1&apos; у &apos;%2&apos;</translation>
     </message>
     <message numerus="yes">
-        <location line="+3"/>
         <source>Remove dynamic property &apos;%1&apos; from %n objects</source>
         <translation>
             <numerusform>Удалено динамическое свойство &apos;%1&apos; у %n объекта</numerusform>
@@ -667,12 +531,10 @@
         </translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/scriptcommand.cpp" line="+55"/>
         <source>Change script</source>
         <translation>Изменить сценарий</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/signalslotdialog.cpp" line="+202"/>
         <source>Change signals/slots</source>
         <translation>Изменить сигналы/слоты</translation>
     </message>
@@ -680,22 +542,18 @@
 <context>
     <name>ConnectDialog</name>
     <message>
-        <location filename="../tools/designer/src/components/signalsloteditor/connectdialog.ui"/>
         <source>Configure Connection</source>
         <translation>Настройка соединения</translation>
     </message>
     <message>
-        <location/>
         <source>GroupBox</source>
         <translation>GroupBox</translation>
     </message>
     <message>
-        <location/>
         <source>Edit...</source>
         <translation>Изменить...</translation>
     </message>
     <message>
-        <location/>
         <source>Show signals and slots inherited from QWidget</source>
         <translation>Показывать сигналы и слоты, унаследованные от QWidget</translation>
     </message>
@@ -703,17 +561,14 @@
 <context>
     <name>ConnectionDelegate</name>
     <message>
-        <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditorwindow.cpp" line="+644"/>
         <source>&lt;object&gt;</source>
         <translation>&lt;объект&gt;</translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>&lt;signal&gt;</source>
         <translation>&lt;сигнал&gt;</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>&lt;slot&gt;</source>
         <translation>&lt;слот&gt;</translation>
     </message>
@@ -721,19 +576,16 @@
 <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>Стандартное (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>Высокое (192 x 192)</translation>
@@ -742,89 +594,72 @@
 <context>
     <name>Designer</name>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/qdesigner_resource.cpp" line="+446"/>
         <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>Этот файл содержит верхнеуровневые разделители.&lt;br&gt;Они &lt;b&gt;НЕ&lt;/b&gt; были сохранены в форме.</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Perhaps you forgot to create a layout?</source>
         <translation>Возможно, вы забыли создать компоновщик?</translation>
     </message>
     <message>
-        <location line="+173"/>
         <source>Invalid UI file: The root element &lt;ui&gt; is missing.</source>
         <translation>Некорректный файл UI: Отсутствует корневой элемент &lt;ui&gt;.</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>An error has occurred while reading the UI file at line %1, column %2: %3</source>
         <translation>При чтении файла UI в строке %1 позиции %2 возникла ошибка: %3</translation>
     </message>
     <message>
-        <location line="+26"/>
         <source>This file cannot be read because it was created using %1.</source>
         <translation>Не удалось прочитать файл, так как он был создан с использованием %1.</translation>
     </message>
     <message>
-        <location line="+14"/>
         <source>This file was created using Designer from Qt-%1 and cannot be read.</source>
         <translation>Не удалось прочитать файл, так как он был создан с использованием Designer из Qt-%1.</translation>
     </message>
     <message>
-        <location line="+30"/>
         <source>The converted file could not be read.</source>
         <translation>Не удалось прочитать преобразованный файл.</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>Этот файл был создан с использованием Designer из Qt-%1 и будет преобразован в новый формат.</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>Старая форма была изменена, но вы можете сохранить форму под новым именем.</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>This file was created using Designer from Qt-%1 and could not be read:
 %2</source>
         <translation>Не удалось прочитать файл, так как он был создан с использованием Designer из Qt-%1:
 %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>Пожалуйста, пропустите его через &lt;b&gt;uic3&amp;nbsp;-convert&lt;/b&gt; для преобразования в формат ui для Qt-4.</translation>
     </message>
     <message>
-        <location line="+31"/>
         <source>This file cannot be read because the extra info extension failed to load.</source>
         <translation>Не удалось прочитать файл, так как возникла ошибка при загрузке расширения дополнительной информации.</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qsimpleresource.cpp" line="+339"/>
         <source>Custom Widgets</source>
         <translation>Пользовательские виджеты</translation>
     </message>
     <message>
-        <location line="+12"/>
         <source>Promoted Widgets</source>
         <translation type="unfinished">Преобразованные виджеты</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_utils.cpp" line="+682"/>
         <source>Unable to launch %1.</source>
         <translation>Невозможно запустить %1.</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>%1 timed out.</source>
         <translation>%1 время ожидания истекло.</translation>
     </message>
@@ -832,12 +667,10 @@
 <context>
     <name>DesignerMetaEnum</name>
     <message>
-        <location line="-513"/>
         <source>%1 is not a valid enumeration value of &apos;%2&apos;.</source>
         <translation>%1 не является корректным перечислением типа &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; к значению перечисления &apos;%2&apos;.</translation>
     </message>
@@ -845,7 +678,6 @@
 <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; к флаговому значению типа &apos;%2&apos;.</translation>
     </message>
@@ -853,13 +685,11 @@
 <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; не является числом.</translation>
     </message>
     <message>
-        <location line="+23"/>
         <source>An invalid tag &lt;%1&gt; was encountered.</source>
         <translation>Обнаружен некоррекнтый тэг &lt;%1&gt;.</translation>
     </message>
@@ -867,27 +697,22 @@
 <context>
     <name>DeviceProfileDialog</name>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/deviceprofiledialog.ui"/>
         <source>&amp;Family</source>
         <translation>&amp;Шрифт</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Point Size</source>
         <translation>&amp;Размер</translation>
     </message>
     <message>
-        <location/>
         <source>Style</source>
         <translation>Начертание</translation>
     </message>
     <message>
-        <location/>
         <source>Device DPI</source>
         <translation>DPI устройства</translation>
     </message>
     <message>
-        <location/>
         <source>Name</source>
         <translation>Название</translation>
     </message>
@@ -895,57 +720,46 @@
 <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>Не удалось загрузить файл изображения &apos;%1&apos;.</translation>
     </message>
     <message>
-        <location line="+64"/>
         <source>The skin directory &apos;%1&apos; does not contain a configuration file.</source>
         <translation>Каталог &apos;%1&apos; не содержит файла настроек обложки.</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>The skin configuration file &apos;%1&apos; could not be opened.</source>
         <translation>Не удалось открыть файл настроек обложки &apos;%1&apos;.</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>The skin configuration file &apos;%1&apos; could not be read: %2</source>
         <translation>Не удалось прочитать файл настроек обложки &apos;%1&apos;: %2</translation>
     </message>
     <message>
-        <location line="+70"/>
         <source>Syntax error: %1</source>
         <translation>Синтаксическая ошибка: %1</translation>
     </message>
     <message>
-        <location line="+21"/>
         <source>The skin &quot;up&quot; image file &apos;%1&apos; does not exist.</source>
         <translation>Отсутствует файл изображения &quot;up&quot; обложки &apos;%1&apos;.</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>The skin &quot;down&quot; image file &apos;%1&apos; does not exist.</source>
         <translation>Отсутствует файл изображения &quot;down&quot; обложки &apos;%1&apos;.</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>The skin &quot;closed&quot; image file &apos;%1&apos; does not exist.</source>
         <translation>Отсутствует файл изображения обложки &quot;closed&quot; &apos;%1&apos;.</translation>
     </message>
     <message>
-        <location line="+12"/>
         <source>The skin cursor image file &apos;%1&apos; does not exist.</source>
         <translation>Отсутствует файл изображения курсора обложки &apos;%1&apos;.</translation>
     </message>
     <message>
-        <location line="+25"/>
         <source>Syntax error in area definition: %1</source>
         <translation>Синтаксическая ошибка в определении области: %1</translation>
     </message>
     <message>
-        <location line="+38"/>
         <source>Mismatch in number of areas, expected %1, got %2.</source>
         <translation>Несоответствие количества областей: ожидалось %1, найдено %2.</translation>
     </message>
@@ -953,7 +767,6 @@
 <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;Шрифт&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;Стиль&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;Разрешение&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>
@@ -962,13 +775,11 @@
 <context>
     <name>EmbeddedOptionsPage</name>
     <message>
-        <location line="+103"/>
         <source>Embedded Design</source>
         <extracomment>Tab in preferences dialog</extracomment>
         <translation type="unfinished">Оформление портативных устройств</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>Device Profiles</source>
         <extracomment>EmbeddedOptionsControl group box&quot;</extracomment>
         <translation>Профили устройств</translation>
@@ -977,27 +788,22 @@
 <context>
     <name>FontPanel</name>
     <message>
-        <location filename="../tools/shared/fontpanel/fontpanel.cpp" line="+63"/>
         <source>Font</source>
         <translation>Шрифт</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>&amp;Writing system</source>
         <translation>Система &amp;письма</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>&amp;Family</source>
         <translation>&amp;Шрифт</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>&amp;Style</source>
         <translation>&amp;Начертание</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>&amp;Point size</source>
         <translation>&amp;Размер</translation>
     </message>
@@ -1005,22 +811,18 @@
 <context>
     <name>FontPropertyManager</name>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/fontpropertymanager.cpp" line="+62"/>
         <source>PreferDefault</source>
         <translation>По умолчанию</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>NoAntialias</source>
         <translation>Без сглаживания</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>PreferAntialias</source>
         <translation>Сглаживание, если возможно</translation>
     </message>
     <message>
-        <location line="+61"/>
         <source>Antialiasing</source>
         <translation>Сглаживание</translation>
     </message>
@@ -1028,43 +830,44 @@
 <context>
     <name>FormBuilder</name>
     <message>
-        <location filename="../tools/designer/src/lib/uilib/formbuilderextra.cpp" line="+375"/>
         <source>Invalid stretch value for &apos;%1&apos;: &apos;%2&apos;</source>
-        <extracomment>Parsing layout stretch values</extracomment>
+        <extracomment>Parsing layout stretch values
+----------
+Parsing layout stretch values
+----------
+Parsing layout stretch values</extracomment>
         <translation>Некорректный коэффициент растяжения для &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>
+        <extracomment>Parsing grid layout minimum size values
+----------
+Parsing grid layout minimum size values
+----------
+Parsing grid layout minimum size values</extracomment>
         <translation>Некорректный минимальный размер для &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>Масштаб предпросмотра</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Default Zoom</source>
         <translation>Масштаб по умолчанию</translation>
     </message>
     <message>
-        <location line="+29"/>
         <source>Forms</source>
         <extracomment>Tab in preferences dialog</extracomment>
         <translation>Формы</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>Default Grid</source>
         <translation>Сетка по умолчанию</translation>
     </message>
@@ -1072,37 +875,30 @@
 <context>
     <name>FormLayoutRowDialog</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/formlayoutrowdialog.ui"/>
         <source>Add Form Layout Row</source>
         <translation type="unfinished">Добавление строки  компоновщика формы</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Label text:</source>
         <translation>Текст &amp;метки:</translation>
     </message>
     <message>
-        <location/>
         <source>Field &amp;type:</source>
         <translation>&amp;Тип поля:</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Field name:</source>
         <translation>Имя п&amp;оля:</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Buddy:</source>
         <translation>П&amp;артнёр:</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Row:</source>
         <translation>&amp;Строка:</translation>
     </message>
     <message>
-        <location/>
         <source>Label &amp;name:</source>
         <translation>Имя м&amp;етки:</translation>
     </message>
@@ -1110,12 +906,10 @@
 <context>
     <name>FormWindow</name>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/formwindow.cpp" line="+1754"/>
         <source>Unexpected element &lt;%1&gt;</source>
         <translation>Неожиданный элемент &lt;%1&gt;</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Error while pasting clipboard contents at line %1, column %2: %3</source>
         <translation>Ошибка вставки содержимого из буфера обмена в строке %1, позиции %2: %3</translation>
     </message>
@@ -1123,62 +917,50 @@
 <context>
     <name>FormWindowSettings</name>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/formwindowsettings.ui"/>
         <source>Form Settings</source>
         <translation>Настройки формы</translation>
     </message>
     <message>
-        <location/>
         <source>Layout &amp;Default</source>
         <translation>Компоновка по &amp;умолчанию</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Spacing:</source>
         <translation>&amp;Отступ:</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Margin:</source>
         <translation>&amp;Границы:</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Layout Function</source>
         <translation>&amp;Функция компоновки</translation>
     </message>
     <message>
-        <location/>
         <source>Ma&amp;rgin:</source>
         <translation>Г&amp;раницы:</translation>
     </message>
     <message>
-        <location/>
         <source>Spa&amp;cing:</source>
         <translation>О&amp;тступ:</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Author</source>
         <translation>&amp;Автор</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Include Hints</source>
         <translation>&amp;Подключить подсказки</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Pixmap Function</source>
         <translation type="unfinished">&amp;Загрузчик изображений</translation>
     </message>
     <message>
-        <location/>
         <source>Grid</source>
         <translation>Сетка</translation>
     </message>
     <message>
-        <location/>
         <source>Embedded Design</source>
         <translation type="unfinished">Оформление портативных устройств</translation>
     </message>
@@ -1186,7 +968,6 @@
 <context>
     <name>IconSelector</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/iconselector.cpp" line="+352"/>
         <source>All Pixmaps (</source>
         <translation>Растровые изображения (</translation>
     </message>
@@ -1194,7 +975,6 @@
 <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 Пикт Выделена откл</translation>
@@ -1203,33 +983,27 @@
 <context>
     <name>MainWindowBase</name>
     <message>
-        <location filename="../tools/designer/src/designer/mainwindow.cpp" line="+121"/>
         <source>Main</source>
         <extracomment>Not currently used (main tool bar)</extracomment>
         <translation>Главное</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>File</source>
         <translation>Файл</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Edit</source>
         <translation>Правка</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Tools</source>
         <translation>Инструменты</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Form</source>
         <translation>Форма</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Qt Designer</source>
         <translation>Qt Designer</translation>
     </message>
@@ -1237,52 +1011,42 @@
 <context>
     <name>NewForm</name>
     <message>
-        <location filename="../tools/designer/src/designer/newform.cpp" line="+79"/>
         <source>C&amp;reate</source>
         <translation>&amp;Создать</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Recent</source>
         <translation>Последние</translation>
     </message>
     <message>
-        <location line="+32"/>
         <source>&amp;Close</source>
         <translation>&amp;Закрыть</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>&amp;Open...</source>
         <translation>&amp;Открыть...</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>&amp;Recent Forms</source>
         <translation>&amp;Последние формы</translation>
     </message>
     <message>
-        <location line="+64"/>
         <source>Read error</source>
         <translation>Ошибка чтения</translation>
     </message>
     <message>
-        <location line="-100"/>
         <source>New Form</source>
         <translation>Новая форма</translation>
     </message>
     <message>
-        <location line="-5"/>
         <source>Show this Dialog on Startup</source>
         <translation>Показывать диалог при старте</translation>
     </message>
     <message>
-        <location line="+128"/>
         <source>A temporary form file could not be created in %1.</source>
         <translation>Временный файл формы не может быть создан в %1.</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>The temporary form file %1 could not be written.</source>
         <translation>Временный файл формы %1 не может быть записан.</translation>
     </message>
@@ -1290,22 +1054,18 @@
 <context>
     <name>ObjectInspectorModel</name>
     <message>
-        <location filename="../tools/designer/src/components/objectinspector/objectinspectormodel.cpp" line="+360"/>
         <source>Object</source>
         <translation>Объект</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Class</source>
         <translation>Класс</translation>
     </message>
     <message>
-        <location line="+35"/>
         <source>separator</source>
         <translation>разделитель</translation>
     </message>
     <message>
-        <location line="+98"/>
         <source>&lt;noname&gt;</source>
         <translation>&lt;без имени&gt;</translation>
     </message>
@@ -1313,12 +1073,10 @@
 <context>
     <name>ObjectNameDialog</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_taskmenu.cpp" line="+158"/>
         <source>Change Object Name</source>
         <translation>Изменить имя объекта</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Object Name</source>
         <translation>Имя объекта</translation>
     </message>
@@ -1326,12 +1084,10 @@
 <context>
     <name>PluginDialog</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/plugindialog.ui"/>
         <source>Plugin Information</source>
         <translation>Информация о модуле</translation>
     </message>
     <message>
-        <location/>
         <source>1</source>
         <translation>1</translation>
     </message>
@@ -1339,7 +1095,6 @@
 <context>
     <name>PreferencesDialog</name>
     <message>
-        <location filename="../tools/designer/src/designer/preferencesdialog.ui"/>
         <source>Preferences</source>
         <translation>Настройки</translation>
     </message>
@@ -1347,32 +1102,26 @@
 <context>
     <name>PreviewConfigurationWidget</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/previewconfigurationwidget.ui"/>
         <source>Form</source>
         <translation>Форма</translation>
     </message>
     <message>
-        <location/>
         <source>Print/Preview Configuration</source>
         <translation>Настройка печати/предпросмотра</translation>
     </message>
     <message>
-        <location/>
         <source>Style</source>
         <translation>Стиль</translation>
     </message>
     <message>
-        <location/>
         <source>Style sheet</source>
         <translation>Таблица стилей</translation>
     </message>
     <message>
-        <location/>
         <source>...</source>
         <translation>...</translation>
     </message>
     <message>
-        <location/>
         <source>Device skin</source>
         <translation>Обложка устройства</translation>
     </message>
@@ -1380,7 +1129,6 @@
 <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>Не используется</translation>
@@ -1389,8 +1137,6 @@
 <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>Страница</translation>
     </message>
@@ -1398,59 +1144,48 @@
 <context>
     <name>QAbstractFormBuilder</name>
     <message>
-        <location filename="../tools/designer/src/lib/uilib/abstractformbuilder.cpp" line="+206"/>
         <source>Unexpected element &lt;%1&gt;</source>
         <translation>Неожиданный элемент &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>Возникла ошибка при чтении файла UI в строке %1 позиции %2: %3</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Invalid UI file: The root element &lt;ui&gt; is missing.</source>
         <translation>Некорректный файл UI: отсутствует корневой элемент &lt;ui&gt;.</translation>
     </message>
     <message>
-        <location line="+104"/>
         <source>The creation of a widget of the class &apos;%1&apos; failed.</source>
         <translation>Не удалось создание виджета класса &apos;%1&apos;.</translation>
     </message>
     <message>
-        <location line="+296"/>
         <source>Attempt to add child that is not of class QWizardPage to QWizard.</source>
         <translation>Попытка добавить в QWizard дочерний виджет, который не является классом 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>Попытка добавить компоновщик виджету &apos;%1&apos; (%2), у которого уже имеется компоновщик типа %3.
 Это указывает на некорректность файла UI.</translation>
     </message>
     <message>
-        <location line="+144"/>
         <source>Empty widget item in %1 &apos;%2&apos;.</source>
         <translation>Пустой элемент виджета в %1 &apos;%2&apos;.</translation>
     </message>
     <message>
-        <location line="+680"/>
         <source>Flags property are not supported yet.</source>
         <translation>Флаговые свойства еще не поддерживаются.</translation>
     </message>
     <message>
-        <location line="+81"/>
         <source>While applying tab stops: The widget &apos;%1&apos; could not be found.</source>
         <translation>При применении позиций табуляции: не удалось найти виджет &apos;%1&apos;.</translation>
     </message>
     <message>
-        <location line="+908"/>
         <source>Invalid QButtonGroup reference &apos;%1&apos; referenced by &apos;%2&apos;.</source>
         <translation>&apos;%2&apos; содержит некорректную ссылку на QButtonGroup &apos;%1&apos;.</translation>
     </message>
     <message>
-        <location line="+511"/>
         <source>This version of the uitools library is linked without script support.</source>
         <translation>Данная версия библиотеки uitools собрана без поддержки сценариев.</translation>
     </message>
@@ -1458,12 +1193,10 @@
 <context>
     <name>QAxWidgetPlugin</name>
     <message>
-        <location filename="../tools/designer/src/plugins/activeqt/qaxwidgetplugin.cpp" line="+75"/>
         <source>ActiveX control</source>
         <translation>Элемент управления ActiveX</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>ActiveX control widget</source>
         <translation>Виджет элемента управления ActiveX</translation>
     </message>
@@ -1471,22 +1204,18 @@
 <context>
     <name>QAxWidgetTaskMenu</name>
     <message>
-        <location filename="../tools/designer/src/plugins/activeqt/qaxwidgettaskmenu.cpp" line="+119"/>
         <source>Set Control</source>
         <translation>Установить элемент управления</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Reset Control</source>
         <translation type="unfinished">Удалить элемент управления</translation>
     </message>
     <message>
-        <location line="+41"/>
         <source>Licensed Control</source>
         <translation>Лицензионный элемент управления</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>The control requires a design-time license</source>
         <translation>Компонент требует лицензию периода разработки</translation>
     </message>
@@ -1494,68 +1223,55 @@
 <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 type="unfinished">%1 не является преобразованным классом.</translation>
     </message>
     <message>
-        <location line="+65"/>
         <source>The base class %1 is invalid.</source>
         <translation>Неверный базовый класс %1.</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>The class %1 already exists.</source>
         <translation>Класс %1 уже существует.</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Promoted Widgets</source>
         <translation type="unfinished">Преобразованные виджеты</translation>
     </message>
     <message>
-        <location line="+126"/>
         <source>The class %1 cannot be removed</source>
         <translation>Нельзя удалить класс %1</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>The class %1 cannot be removed because it is still referenced.</source>
         <translation>Нельзя удалить класс %1, так как на него ещё есть ссылки.</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>The class %1 cannot be renamed</source>
         <translation>Нельзя переименовать класс %1</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>The class %1 cannot be renamed to an empty name.</source>
         <translation>Нельзя дать классу %1 пустое имя.</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>There is already a class named %1.</source>
         <translation>Уже есть класс с именем %1.</translation>
     </message>
     <message>
-        <location line="+29"/>
         <source>Cannot set an empty include file.</source>
         <translatorcomment>перевод близко к тексту - буквальный совсем глаз режет</translatorcomment>
         <translation>Пустое имя у подключаемого файла не допустимо.</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/uilib/formscriptrunner.cpp" line="+88"/>
         <source>Exception at line %1: %2</source>
         <translation>Исключение в строке %1: %2</translation>
     </message>
     <message>
-        <location line="+36"/>
         <source>Unknown error</source>
         <translation>Неизвестная ошибка</translation>
     </message>
     <message>
-        <location line="+50"/>
         <source>An error occurred while running the script for %1: %2
 Script: %3</source>
         <translation>При выполнении сценария %1 возникла ошибка: %2
@@ -1565,17 +1281,14 @@
 <context>
     <name>QDesigner</name>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner.cpp" line="+141"/>
         <source>%1 - warning</source>
         <translation>%1 - предупреждение</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>Это приложение не может быть использовано для консольной версии Qt</translation>
     </message>
@@ -1583,248 +1296,194 @@
 <context>
     <name>QDesignerActions</name>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_actions.cpp" line="+130"/>
         <source>Saved %1.</source>
         <translation>Сохранено %1.</translation>
     </message>
     <message>
-        <location line="+50"/>
         <source>Edit Widgets</source>
         <translation>Изменение виджетов</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>&amp;Quit</source>
         <translation>&amp;Выход</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>&amp;Minimize</source>
         <translation>&amp;Свернуть</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Bring All to Front</source>
         <translation>Перенести все назад</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Preferences...</source>
         <translation>Настройки...</translation>
     </message>
     <message>
-        <location line="+322"/>
         <source>Clear &amp;Menu</source>
         <translation>Очистить &amp;меню</translation>
     </message>
     <message>
-        <location line="-247"/>
         <source>CTRL+SHIFT+S</source>
         <translation></translation>
     </message>
     <message>
-        <location line="+127"/>
         <source>CTRL+R</source>
         <translation></translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>CTRL+M</source>
         <translation></translation>
     </message>
     <message>
-        <location line="+31"/>
         <source>Qt Designer &amp;Help</source>
         <translation>&amp;Справка по Qt Designer</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Current Widget Help</source>
         <translation>Справка по виджету</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>What&apos;s New in Qt Designer?</source>
         <translation>Что нового в Qt Designer?</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>About Plugins</source>
         <translation>О модулях</translation>
     </message>
     <message>
-        <location line="+6"/>
-        <location line="+601"/>
         <source>About Qt Designer</source>
         <translation>О Qt Designer</translation>
     </message>
     <message>
-        <location line="-595"/>
         <source>About Qt</source>
         <translation>О Qt</translation>
     </message>
     <message>
-        <location line="+121"/>
-        <location line="+197"/>
         <source>Open Form</source>
         <translation>Открыть форму</translation>
     </message>
     <message>
-        <location line="-196"/>
-        <location line="+37"/>
-        <location line="+160"/>
         <source>Designer UI files (*.%1);;All Files (*)</source>
         <translation>UI файлы Qt Designer (*.%1);;Все файлы (*)</translation>
     </message>
     <message>
-        <location line="-644"/>
         <source>%1 already exists.
 Do you want to replace it?</source>
         <translation>%1 уже существует.
 Хотите заменить его?</translation>
     </message>
     <message>
-        <location line="+42"/>
         <source>Additional Fonts...</source>
         <translation>Дополнительные шрифты...</translation>
     </message>
     <message>
-        <location line="+327"/>
         <source>&amp;Recent Forms</source>
         <translation>&amp;Последние формы</translation>
     </message>
     <message>
-        <location line="+202"/>
         <source>Designer</source>
         <translation>Qt Designer</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Feature not implemented yet!</source>
         <translation>Возможность ещё не реализована!</translation>
     </message>
     <message>
-        <location line="+59"/>
         <source>Read error</source>
         <translation>Ошиька чтения</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>%1
 Do you want to update the file location or generate a new form?</source>
         <translation>%1
 Вы хотите обновить расположение файла или генерировать новую форму?</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>&amp;Update</source>
         <translation>&amp;Обновить</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;New Form</source>
         <translation>&amp;Новая форма</translation>
     </message>
     <message>
-        <location line="+77"/>
-        <location line="+40"/>
         <source>Save Form?</source>
         <translation>Сохранить форму?</translation>
     </message>
     <message>
-        <location line="-39"/>
         <source>Could not open file</source>
         <translation>Невозможно открыть файл</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>Select New File</source>
         <translation>Выбрать новый файл</translation>
     </message>
     <message>
-        <location line="+30"/>
         <source>Could not write file</source>
         <translation>Невозможно записать файл</translation>
     </message>
     <message>
-        <location line="+201"/>
         <source>&amp;Close Preview</source>
         <translation>&amp;Закрыть предпросмотр</translation>
     </message>
     <message>
-        <location line="-929"/>
         <source>&amp;New...</source>
         <translation>&amp;Новый...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Open...</source>
         <translation>&amp;Открыть...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Save</source>
         <translation>&amp;Сохранить</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Save &amp;As...</source>
         <translation>Сохранить &amp;как...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Save A&amp;ll</source>
         <translation>Сохранить &amp;все</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Save As &amp;Template...</source>
         <translation>Сохранить как &amp;шаблон...</translation>
     </message>
     <message>
-        <location line="+1"/>
-        <location line="+925"/>
         <source>&amp;Close</source>
         <translation>&amp;Закрыть</translation>
     </message>
     <message>
-        <location line="-924"/>
         <source>Save &amp;Image...</source>
         <translation>Сохранить &amp;Изображение...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Print...</source>
         <translation>&amp;Печать...</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>View &amp;Code...</source>
         <translation>Показать &amp;код...</translation>
     </message>
     <message>
-        <location line="+78"/>
         <source>ALT+CTRL+S</source>
         <translation></translation>
     </message>
     <message>
-        <location line="+370"/>
-        <location line="+248"/>
         <source>Save Form As</source>
         <translation>Сохранить форму как</translation>
     </message>
     <message>
-        <location line="+429"/>
         <source>Preview failed</source>
         <translation>Ошибка предпросмотра</translation>
     </message>
     <message>
-        <location line="-575"/>
         <source>Code generation failed</source>
         <translation>Ошибка генерации кода</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>
@@ -1833,7 +1492,6 @@
 Вы хотите повторить или выбрать другой файл?</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>
@@ -1842,55 +1500,42 @@
 Желаете повторить?</translation>
     </message>
     <message>
-        <location line="+158"/>
-        <location line="+34"/>
         <source>Assistant</source>
         <translation>Qt Assistant</translation>
     </message>
     <message>
-        <location line="+47"/>
-        <location line="+23"/>
         <source>The backup file %1 could not be written.</source>
         <translation>Не удалось записать файл резервной копии %1.</translation>
     </message>
     <message>
-        <location line="+107"/>
         <source>The backup directory %1 could not be created.</source>
         <translation>Не удалось создать каталог резервных копий %1.</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>The temporary backup directory %1 could not be created.</source>
         <translation>Не удалось создать временный каталог резервных копий %1.</translation>
     </message>
     <message>
-        <location line="+54"/>
         <source>Image files (*.%1)</source>
         <translation>Файлы изображений (*.%1)</translation>
     </message>
     <message>
-        <location line="+9"/>
-        <location line="+17"/>
         <source>Save Image</source>
         <translation>Сохранить изображение</translation>
     </message>
     <message>
-        <location line="-4"/>
         <source>Saved image %1.</source>
         <translation>Сохранить изображение %1.</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>The file %1 could not be written.</source>
         <translation>Файл %1 не может быть записан.</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>Please close all forms to enable the loading of additional fonts.</source>
         <translation>Пожалуйста закройте все формы, чтобы разрешить загрузку дополнительных шрифтов.</translation>
     </message>
     <message>
-        <location line="+52"/>
         <source>Printed %1.</source>
         <translation>Распечатано %1.</translation>
     </message>
@@ -1898,7 +1543,6 @@
 <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>Оформление</translation>
@@ -1907,17 +1551,14 @@
 <context>
     <name>QDesignerAppearanceOptionsWidget</name>
     <message>
-        <location line="-53"/>
         <source>Docked Window</source>
         <translation>Всё в одном окне верхнего уровня</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Multiple Top-Level Windows</source>
         <translation>Множество окон верхнего уровня</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Toolwindow Font</source>
         <translation>Шрифт окна инструментов</translation>
     </message>
@@ -1925,22 +1566,18 @@
 <context>
     <name>QDesignerAxWidget</name>
     <message>
-        <location filename="../tools/designer/src/plugins/activeqt/qaxwidgettaskmenu.cpp" line="-71"/>
         <source>Reset control</source>
         <translation type="unfinished">Сбросить элемент управления</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Set control</source>
         <translation>Установить элемент управления</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/plugins/activeqt/qdesigneraxwidget.cpp" line="+179"/>
         <source>Control loaded</source>
         <translation>Элемент управления загружен</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 type="unfinished">Возникло исключение COM при выполнении мета-вызова типа %1, индекс %2 &quot;%3&quot;.</translation>
     </message>
@@ -1948,17 +1585,14 @@
 <context>
     <name>QDesignerFormBuilder</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_formbuilder.cpp" line="+89"/>
         <source>Script errors occurred:</source>
         <translation>Возникла ошибка сценария:</translation>
     </message>
     <message>
-        <location line="+307"/>
         <source>The preview failed to build.</source>
         <translation>Не удалось создать предпросмотр.</translation>
     </message>
     <message>
-        <location line="+65"/>
         <source>Designer</source>
         <translation>Qt Designer</translation>
     </message>
@@ -1966,22 +1600,18 @@
 <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>Сохранить форму?</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Do you want to save the changes to this document before closing?</source>
         <translation>Документ был изменен, хотите сохранить изменения?</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>If you don&apos;t save, your changes will be lost.</source>
         <translation>Если вы не сохраните, ваши изменения будут потеряны.</translation>
     </message>
@@ -1989,38 +1619,30 @@
 <context>
     <name>QDesignerMenu</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_menu.cpp" line="-1179"/>
         <source>Type Here</source>
         <translation>Пишите здесь</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Add Separator</source>
         <translation>Добавить разделитель</translation>
     </message>
     <message>
-        <location line="+371"/>
         <source>Insert separator</source>
         <translation>Вставить разделитель</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Remove separator</source>
         <translation>Удалить разделитель</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Remove action &apos;%1&apos;</source>
         <translation>Удалить действие &apos;%1&apos;</translation>
     </message>
     <message>
-        <location line="+25"/>
-        <location line="+648"/>
         <source>Add separator</source>
         <translation>Добавить разделитель</translation>
     </message>
     <message>
-        <location line="-348"/>
         <source>Insert action</source>
         <translation>Вставить действие</translation>
     </message>
@@ -2028,22 +1650,18 @@
 <context>
     <name>QDesignerMenuBar</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_menubar.cpp" line="-375"/>
         <source>Type Here</source>
         <translation>Пишите здесь</translation>
     </message>
     <message>
-        <location line="+298"/>
         <source>Remove Menu &apos;%1&apos;</source>
         <translation>Удалить меню &apos;%1&apos;</translation>
     </message>
     <message>
-        <location line="+12"/>
         <source>Remove Menu Bar</source>
         <translation>Удалить панель меню</translation>
     </message>
     <message>
-        <location line="+70"/>
         <source>Menu</source>
         <translation>Меню</translation>
     </message>
@@ -2051,37 +1669,30 @@
 <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>Обнаружена ошибка XML при разборе XML пользовательского виджета %1: %2</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>A required attribute (&apos;%1&apos;) is missing.</source>
         <translation>Отсутствует необходимый атрибут (&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;) свойства. Поддерживаются типы: %2</translation>
     </message>
     <message>
-        <location line="+20"/>
         <source>&apos;%1&apos; is not a valid string property specification.</source>
         <translation>&apos;%1&apos; не является корректной спецификацией строкового свойства.</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>XML пользовательского виджета %1 не содержит элементов &lt;widget&gt; и &lt;ui&gt;.</translation>
     </message>
     <message>
-        <location line="+12"/>
         <source>The class attribute for the class %1 is missing.</source>
         <translation>Отсутствует атрибут для класса %1.</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>The class attribute for the class %1 does not match the class name %2.</source>
         <translation>Атрибут для класса %1 не совпадает с именем класса %2.</translation>
     </message>
@@ -2089,7 +1700,6 @@
 <context>
     <name>QDesignerPropertySheet</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_propertysheet.cpp" line="+758"/>
         <source>Dynamic Properties</source>
         <translation>Динамические свойства</translation>
     </message>
@@ -2097,31 +1707,26 @@
 <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>Компоновка типа &apos;%1&apos; не поддерживается, заменена на компоновку сеткой.</translation>
     </message>
     <message>
-        <location line="+239"/>
         <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>Контейнерное расширение виджета &apos;%1&apos; (%2) возвратило виджет, который не управляется Qt Designer &apos;%3&apos; (%4), при запросе страницы №%5.
 Страницы контейнера должны быть добавлены указанием их в XML, который возвращается методом domXml() пользовательского виджета.</translation>
     </message>
     <message>
-        <location line="+545"/>
         <source>Unexpected element &lt;%1&gt;</source>
         <extracomment>Parsing clipboard contents</extracomment>
         <translation>Неожиданный элемент &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>Ошибка вставки содержимого буфера обмена в строку %1, позицию %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>Ошибка вставки содержимого буфера обмена: отсутствует корневой элемент &lt;ui&gt;.</translation>
@@ -2130,12 +1735,10 @@
 <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>Не удалось создать временный путь %1.</translation>
     </message>
     <message>
-        <location line="+184"/>
         <source>An error has been encountered while parsing device profile XML: %1</source>
         <translation>Обнаружена ошибка при разборе XML профиля устройства: %1</translation>
     </message>
@@ -2143,32 +1746,26 @@
 <context>
     <name>QDesignerToolWindow</name>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_toolwindow.cpp" line="+190"/>
         <source>Property Editor</source>
         <translation>Редактор свойств</translation>
     </message>
     <message>
-        <location line="+54"/>
         <source>Action Editor</source>
         <translation>Редактор действий</translation>
     </message>
     <message>
-        <location line="+42"/>
         <source>Object Inspector</source>
         <translation>Инспектор объектов</translation>
     </message>
     <message>
-        <location line="+35"/>
         <source>Resource Browser</source>
         <translation>Обозреватель ресурсов</translation>
     </message>
     <message>
-        <location line="+34"/>
         <source>Signal/Slot Editor</source>
         <translation>Редактор Сигналов/Слотов</translation>
     </message>
     <message>
-        <location line="+41"/>
         <source>Widget Box</source>
         <translation>Панель виджетов</translation>
     </message>
@@ -2176,47 +1773,38 @@
 <context>
     <name>QDesignerWorkbench</name>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_workbench.cpp" line="+199"/>
         <source>&amp;File</source>
         <translation>&amp;Файл</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>F&amp;orm</source>
         <translation>Ф&amp;орма</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Preview in</source>
         <translation>Предпросмотр в</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>&amp;Window</source>
         <translation>&amp;Окно</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>&amp;Help</source>
         <translation>&amp;Справка</translation>
     </message>
     <message>
-        <location line="-15"/>
         <source>Edit</source>
         <translation>Правка</translation>
     </message>
     <message>
-        <location line="+38"/>
         <source>Toolbars</source>
         <translation>Панель инструментов</translation>
     </message>
     <message>
-        <location line="+466"/>
         <source>Save Forms?</source>
         <translation>Сохранить форму?</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 форма с несохранёнными изменениями. Желаете просмотреть изменения перед выходом?</numerusform>
@@ -2225,52 +1813,42 @@
         </translation>
     </message>
     <message>
-        <location line="-496"/>
         <source>&amp;View</source>
         <translation>&amp;Вид</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>&amp;Settings</source>
         <translation>&amp;Настройки</translation>
     </message>
     <message>
-        <location line="+204"/>
         <source>Widget Box</source>
         <translation>Панель виджетов</translation>
     </message>
     <message>
-        <location line="+293"/>
         <source>If you do not review your documents, all your changes will be lost.</source>
         <translation type="unfinished">Если не просматривать изменения, все изменения будут потеряны.</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Discard Changes</source>
         <translation>Отменить изменения</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Review Changes</source>
         <translation>Показать изменения</translation>
     </message>
     <message>
-        <location line="+95"/>
         <source>Backup Information</source>
         <translation type="unfinished">Информация о резервированых копиях</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>Последняя сессия Qt Designer не была завершена корректно. Остались резервные копии файлов. Желаете загрузить их?</translation>
     </message>
     <message>
-        <location line="+111"/>
         <source>The file &lt;b&gt;%1&lt;/b&gt; could not be opened.</source>
         <translation>Не удалось открыть файл &lt;b&gt;%1&lt;/b&gt;.</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>Файл &lt;b&gt;%1&lt;/b&gt; не является корректным UI файлом Qt Designer.</translation>
     </message>
@@ -2278,53 +1856,47 @@
 <context>
     <name>QFormBuilder</name>
     <message>
-        <location filename="../tools/designer/src/lib/uilib/formbuilder.cpp" line="+168"/>
         <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>
+        <extracomment>Empty class name passed to widget factory method
+----------
+Empty class name passed to widget factory method
+----------
+Empty class name passed to widget factory method</extracomment>
         <translation>Методу %1 (объекта &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 не смог создать пользовательский виджет класса &apos;%1&apos;; был создан базовый класс &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>QFormBuilder не смог создать пользовательский виджет класса &apos;%1&apos;.</translation>
     </message>
     <message>
-        <location line="+61"/>
         <source>The layout type `%1&apos; is not supported.</source>
         <translation>Компоновка типа &apos;%1&apos; не поддерживается.</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>Не удалось прочитать свойство %1 множественного типа.</translation>
     </message>
     <message>
-        <location line="+23"/>
         <source>The enumeration-type property %1 could not be read.</source>
         <translation>Не удалось прочитать свойство %1 перечисляемого типа.</translation>
     </message>
     <message>
-        <location line="+190"/>
         <source>Reading properties of the type %1 is not supported yet.</source>
         <translation>Чтение свойств типа %1 ещё не поддерживается.</translation>
     </message>
     <message>
-        <location line="+266"/>
         <source>The property %1 could not be written. The type %2 is not supported yet.</source>
         <translation>Не удалось записать свойство %1. Тип %2 ещё не поддерживается.</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/uilib/properties_p.h" line="+132"/>
         <source>The enumeration-value &apos;%1&apos; is invalid. The default value &apos;%2&apos; will be used instead.</source>
         <translation>Значение &apos;%1&apos; перечисляемого типа некорректно. Будет использовано значение по умолчанию &apos;%2&apos;.</translation>
     </message>
     <message>
-        <location line="+14"/>
         <source>The flag-value &apos;%1&apos; is invalid. Zero will be used instead.</source>
         <translation>Значение флага &apos;%1&apos; перечисляемого типа некорректно. Будет использовано значение &apos;0&apos; (нуль).</translation>
     </message>
@@ -2332,48 +1904,38 @@
 <context>
     <name>QStackedWidgetEventFilter</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_stackedbox.cpp" line="+194"/>
         <source>Previous Page</source>
         <translation>Предыдущая страница</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Next Page</source>
         <translation>Следующая страница</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Delete</source>
         <translation>Удалить</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Before Current Page</source>
         <translation>Перед текущей страницей</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>After Current Page</source>
         <translation>После текущей страницы</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Change Page Order...</source>
         <translation>Изменить порядок страниц...</translation>
     </message>
     <message>
-        <location line="+72"/>
         <source>Change Page Order</source>
         <translation>Изменить порядок страниц</translation>
     </message>
     <message>
-        <location line="+49"/>
         <source>Page %1 of %2</source>
         <translation>Страница %1 из %2</translation>
     </message>
     <message>
-        <location line="+10"/>
-        <location line="+4"/>
         <source>Insert Page</source>
         <translation>Вставить страницу</translation>
     </message>
@@ -2381,12 +1943,10 @@
 <context>
     <name>QStackedWidgetPreviewEventFilter</name>
     <message>
-        <location line="-153"/>
         <source>Go to previous page of %1 &apos;%2&apos; (%3/%4).</source>
         <translation>Перейти к предыдущей странице из %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>Перейти к следующей странице из %1 &apos;%2&apos; (%3/%4).</translation>
     </message>
@@ -2394,28 +1954,22 @@
 <context>
     <name>QTabWidgetEventFilter</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_tabwidget.cpp" line="+89"/>
         <source>Delete</source>
         <translation>Удалить</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Before Current Page</source>
         <translation>Перед текущей страницей</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>After Current Page</source>
         <translation>После текущей страницы</translation>
     </message>
     <message>
-        <location line="+283"/>
         <source>Page %1 of %2</source>
         <translation>Страница %1 из %2</translation>
     </message>
     <message>
-        <location line="+10"/>
-        <location line="+4"/>
         <source>Insert Page</source>
         <translation>Вставить страницу</translation>
     </message>
@@ -2423,37 +1977,30 @@
 <context>
     <name>QToolBoxHelper</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_toolbox.cpp" line="+64"/>
         <source>Delete Page</source>
         <translation>Удалить страницу</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Before Current Page</source>
         <translation>Перед текущей страницей</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>After Current Page</source>
         <translation>После текущей страницы</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Change Page Order...</source>
         <translation>Изменить порядок страниц...</translation>
     </message>
     <message>
-        <location line="+116"/>
         <source>Change Page Order</source>
         <translation>Изменить порядок страниц</translation>
     </message>
     <message>
-        <location line="+44"/>
         <source>Page %1 of %2</source>
         <translation>Страница %1 из %2</translation>
     </message>
     <message>
-        <location line="+12"/>
         <source>Insert Page</source>
         <translation>Вставить страницу</translation>
     </message>
@@ -2461,15 +2008,10 @@
 <context>
     <name>QtBoolEdit</name>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qtpropertybrowserutils.cpp" line="+255"/>
-        <location line="+10"/>
-        <location line="+25"/>
         <source>True</source>
         <translation>Вкл.</translation>
     </message>
     <message>
-        <location line="-25"/>
-        <location line="+25"/>
         <source>False</source>
         <translation>Выкл.</translation>
     </message>
@@ -2477,12 +2019,10 @@
 <context>
     <name>QtBoolPropertyManager</name>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="+1507"/>
         <source>True</source>
         <translation>Вкл.</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>False</source>
         <translation>Выкл.</translation>
     </message>
@@ -2490,7 +2030,6 @@
 <context>
     <name>QtCharEdit</name>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qteditorfactory.cpp" line="+1584"/>
         <source>Clear Char</source>
         <translation>Стереть символ</translation>
     </message>
@@ -2498,7 +2037,6 @@
 <context>
     <name>QtColorEditWidget</name>
     <message>
-        <location line="+605"/>
         <source>...</source>
         <translation>...</translation>
     </message>
@@ -2506,22 +2044,18 @@
 <context>
     <name>QtColorPropertyManager</name>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="+4718"/>
         <source>Red</source>
         <translation>Красный</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Green</source>
         <translation>Зелёный</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Blue</source>
         <translation>Синий</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Alpha</source>
         <translation>Альфа</translation>
     </message>
@@ -2529,97 +2063,78 @@
 <context>
     <name>QtCursorDatabase</name>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qtpropertybrowserutils.cpp" line="-234"/>
         <source>Arrow</source>
         <translation>Arrow</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Up Arrow</source>
         <translation>Up Arrow</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Cross</source>
         <translation>Cross</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Wait</source>
         <translation>Wait</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>IBeam</source>
         <translation>IBeam</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Size Vertical</source>
         <translation>Size Vertical</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Size Horizontal</source>
         <translation>Size Horizontal</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Size Backslash</source>
         <translation>Size Backslash</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Size Slash</source>
         <translation>Size Slash</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Size All</source>
         <translation>Size All</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Blank</source>
         <translation>Blank</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Split Vertical</source>
         <translation>Split Vertical</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Split Horizontal</source>
         <translation>Split Horizontal</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Pointing Hand</source>
         <translation>Pointing Hand</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Forbidden</source>
         <translation>Forbidden</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Open Hand</source>
         <translation>Open Hand</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Closed Hand</source>
         <translation>Closed Hand</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>What&apos;s This</source>
         <translation>What&apos;s This</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Busy</source>
         <translation>Busy</translation>
     </message>
@@ -2627,12 +2142,10 @@
 <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>Выбрать шрифт</translation>
     </message>
@@ -2640,37 +2153,30 @@
 <context>
     <name>QtFontPropertyManager</name>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="-351"/>
         <source>Family</source>
         <translation>Шрифт</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>Point Size</source>
         <translation>Размер</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Bold</source>
         <translation>Жирный</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Italic</source>
         <translation>Курсив</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Underline</source>
         <translation>Подчёркнутый</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Strikeout</source>
         <translation>Зачёркнутый</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Kerning</source>
         <translation>Интервал</translation>
     </message>
@@ -2678,7 +2184,6 @@
 <context>
     <name>QtGradientDialog</name>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradientdialog.ui"/>
         <source>Edit Gradient</source>
         <translation>Правка градиента</translation>
     </message>
@@ -2686,304 +2191,242 @@
 <context>
     <name>QtGradientEditor</name>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.cpp" line="+431"/>
         <source>Start X</source>
         <translation>X начала</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Start Y</source>
         <translation>Y начала</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Final X</source>
         <translation>X конца</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Final Y</source>
         <translation>Y конца</translation>
     </message>
     <message>
-        <location line="+7"/>
-        <location line="+24"/>
         <source>Central X</source>
         <translation>X центра</translation>
     </message>
     <message>
-        <location line="-20"/>
-        <location line="+24"/>
         <source>Central Y</source>
         <translation>Y центра</translation>
     </message>
     <message>
-        <location line="-20"/>
         <source>Focal X</source>
         <translation>X фокуса</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Focal Y</source>
         <translation>Y фокуса</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Radius</source>
         <translation>Радиус</translation>
     </message>
     <message>
-        <location line="+16"/>
         <source>Angle</source>
         <translation>Угол</translation>
     </message>
     <message>
-        <location line="+288"/>
         <source>Linear</source>
         <translation type="unfinished">Линейный</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Radial</source>
         <translation type="unfinished">Радиальный</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Conical</source>
         <translation type="unfinished">Конический</translation>
     </message>
     <message>
-        <location line="+20"/>
         <source>Pad</source>
         <translation type="unfinished">Равномерная</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Repeat</source>
         <translation type="unfinished">Цикличная</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Reflect</source>
         <translation type="unfinished">Зеркальная</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.ui"/>
         <source>Form</source>
         <translation>Форма</translation>
     </message>
     <message>
-        <location/>
         <source>Gradient Editor</source>
         <translation>Редактор градиента</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>Эта область отображает предварительный вариант настраиваемого градиента. Также она позволяет менять с помощью перетаскивания характерные для градиента параметры, такие как: начальная и конечная точки, радиус и пр.</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>Редактор опорных точек градиента</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>Эта область позволяет редактировать опорные точки градиента. Двойной щелчок на существующей точке создаст её копию. Двойной клик вне существующей точки создаст новую. Точки можно перемещать путем удерживания левой кнопки. По правой кнопке можно получить контекстное меню дополнительных действий.</translation>
     </message>
     <message>
-        <location/>
         <source>Zoom</source>
         <translation>Масштаб</translation>
     </message>
     <message>
-        <location/>
         <source>Reset Zoom</source>
         <translation>100%</translation>
     </message>
     <message>
-        <location/>
         <source>Position</source>
         <translation>Положение</translation>
     </message>
     <message>
-        <location/>
         <source>Hue</source>
         <translation>Оттенок</translation>
     </message>
     <message>
-        <location/>
         <source>H</source>
         <translation>H</translation>
     </message>
     <message>
-        <location/>
         <source>Saturation</source>
         <translation>Насыщенность</translation>
     </message>
     <message>
-        <location/>
         <source>S</source>
         <translation>S</translation>
     </message>
     <message>
-        <location/>
         <source>Sat</source>
         <translation>Насыщение</translation>
     </message>
     <message>
-        <location/>
         <source>Value</source>
         <translation>Значение</translation>
     </message>
     <message>
-        <location/>
         <source>V</source>
         <translation>V</translation>
     </message>
     <message>
-        <location/>
         <source>Val</source>
         <translation>Значение</translation>
     </message>
     <message>
-        <location/>
         <source>Alpha</source>
         <translation>Альфа</translation>
     </message>
     <message>
-        <location/>
         <source>A</source>
         <translation>A</translation>
     </message>
     <message>
-        <location/>
         <source>Type</source>
         <translation>Тип</translation>
     </message>
     <message>
-        <location/>
         <source>Spread</source>
         <translation>Заливка</translation>
     </message>
     <message>
-        <location/>
         <source>Color</source>
         <translation>Цвет</translation>
     </message>
     <message>
-        <location/>
         <source>Current stop&apos;s color</source>
         <translation>Цвет текущей точки</translation>
     </message>
     <message>
-        <location/>
         <source>Show HSV specification</source>
         <translation>Настройки в виде HSV</translation>
     </message>
     <message>
-        <location/>
         <source>HSV</source>
         <translation>HSV</translation>
     </message>
     <message>
-        <location/>
         <source>Show RGB specification</source>
         <translation>Настройки в виде RGB</translation>
     </message>
     <message>
-        <location/>
         <source>RGB</source>
         <translation>RGB</translation>
     </message>
     <message>
-        <location/>
         <source>Current stop&apos;s position</source>
         <translation>Положение текущей точки</translation>
     </message>
     <message>
-        <location/>
         <source>%</source>
         <translation>%</translation>
     </message>
     <message>
-        <location/>
         <source>Zoom In</source>
         <translation>Увеличить</translation>
     </message>
     <message>
-        <location/>
         <source>Zoom Out</source>
         <translation>Уменьшить</translation>
     </message>
     <message>
-        <location/>
         <source>Toggle details extension</source>
         <translation>Показать/скрыть детальные настройки</translation>
     </message>
     <message>
-        <location/>
         <source>&gt;</source>
         <translation>&gt;</translation>
     </message>
     <message>
-        <location/>
         <source>Linear Type</source>
         <translation>Линейный тип</translation>
     </message>
     <message>
-        <location/>
         <source>...</source>
         <translation>...</translation>
     </message>
     <message>
-        <location/>
         <source>Radial Type</source>
         <translation>Радиальный тип</translation>
     </message>
     <message>
-        <location/>
         <source>Conical Type</source>
         <translation>Конический тип</translation>
     </message>
     <message>
-        <location/>
         <source>Pad Spread</source>
         <translation>Равномерная заливка</translation>
     </message>
     <message>
-        <location/>
         <source>Repeat Spread</source>
         <translation>Цикличная заливка</translation>
     </message>
     <message>
-        <location/>
         <source>Reflect Spread</source>
         <translation>Зеркальная заливка</translation>
     </message>
@@ -2991,37 +2434,30 @@
 <context>
     <name>QtGradientStopsWidget</name>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradientstopswidget.cpp" line="+947"/>
         <source>New Stop</source>
         <translation>Новая точка</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Delete</source>
         <translation>Удалить</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Flip All</source>
         <translation>Отобразить зеркально</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Select All</source>
         <translation>Выделить всё</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Zoom In</source>
         <translation>Увеличить</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Zoom Out</source>
         <translation>Уменьшить</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Reset Zoom</source>
         <translation>Сбросить масштаб</translation>
     </message>
@@ -3029,46 +2465,34 @@
 <context>
     <name>QtGradientView</name>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradientview.cpp" line="+107"/>
         <source>Grad</source>
         <translation>Градиент</translation>
     </message>
     <message>
-        <location line="+26"/>
         <source>Remove Gradient</source>
         <translation>Удалить градиент</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Are you sure you want to remove the selected gradient?</source>
         <translation>Вы действительно желаете удалить выбранный градиент?</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradientview.ui"/>
-        <location filename="../tools/shared/qtgradienteditor/qtgradientview.cpp" line="+74"/>
         <source>New...</source>
         <translation>Новый...</translation>
     </message>
     <message>
-        <location/>
-        <location filename="../tools/shared/qtgradienteditor/qtgradientview.cpp" line="+1"/>
         <source>Edit...</source>
         <translation>Правка...</translation>
     </message>
     <message>
-        <location/>
-        <location filename="../tools/shared/qtgradienteditor/qtgradientview.cpp" line="+1"/>
         <source>Rename</source>
         <translation>Переименовать</translation>
     </message>
     <message>
-        <location/>
-        <location filename="../tools/shared/qtgradienteditor/qtgradientview.cpp" line="+1"/>
         <source>Remove</source>
         <translation>Удалить</translation>
     </message>
     <message>
-        <location/>
         <source>Gradient View</source>
         <translation>Просмотр градиента</translation>
     </message>
@@ -3076,8 +2500,6 @@
 <context>
     <name>QtGradientViewDialog</name>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradientviewdialog.ui"/>
-        <location filename="../tools/shared/qtgradienteditor/qtgradientviewdialog.h" line="+62"/>
         <source>Select Gradient</source>
         <translation>Выбрать градиент</translation>
     </message>
@@ -3085,7 +2507,6 @@
 <context>
     <name>QtKeySequenceEdit</name>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qtpropertybrowserutils.cpp" line="+249"/>
         <source>Clear Shortcut</source>
         <translation>Удалить комбинацию горячих клавиш</translation>
     </message>
@@ -3093,17 +2514,14 @@
 <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>Язык</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Country</source>
         <translation>Страна</translation>
     </message>
@@ -3111,17 +2529,14 @@
 <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>
@@ -3129,17 +2544,14 @@
 <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>
@@ -3147,12 +2559,10 @@
 <context>
     <name>QtPropertyBrowserUtils</name>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qtpropertybrowserutils.cpp" line="-156"/>
         <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>
@@ -3160,27 +2570,22 @@
 <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>Ширина</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Height</source>
         <translation>Высота</translation>
     </message>
@@ -3188,27 +2593,22 @@
 <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>Ширина</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Height</source>
         <translation>Высота</translation>
     </message>
@@ -3216,128 +2616,98 @@
 <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 уже существует.
 Хотите заменить его?</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>Похоже, файл не является файлом ресурсов, так как вместо элемента &apos;%2&apos; стоит &apos;%1&apos;.</translation>
     </message>
     <message>
-        <location line="+902"/>
         <source>%1 [read-only]</source>
         <translation>%1 [только для чтения]</translation>
     </message>
     <message>
-        <location line="+2"/>
-        <location line="+198"/>
         <source>%1 [missing]</source>
         <translation>%1 [отсутствует]</translation>
     </message>
     <message>
-        <location line="-72"/>
         <source>&lt;no prefix&gt;</source>
         <translation>&lt;без префикса&gt;</translation>
     </message>
     <message>
-        <location line="+320"/>
-        <location line="+566"/>
         <source>New Resource File</source>
         <translation>Новый файл ресурсов</translation>
     </message>
     <message>
-        <location line="-564"/>
-        <location line="+25"/>
         <source>Resource files (*.qrc)</source>
         <translation>Файл ресурсов (*.qrc)</translation>
     </message>
     <message>
-        <location line="-2"/>
         <source>Import Resource File</source>
         <translation>Импортировать файл ресурсов</translation>
     </message>
     <message>
-        <location line="+112"/>
         <source>newPrefix</source>
         <translation type="unfinished">newPrefix</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;Предупреждение:&lt;/b&gt; Файл&lt;/p&gt;&lt;p&gt;%1&lt;/p&gt;&lt;p&gt;находится за пределами каталога текущего файла ресурсов.&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;Для решения нажмите:&lt;/p&gt;&lt;table&gt;&lt;tr&gt;&lt;th align=&quot;left&quot;&gt;Копировать&lt;/th&gt;&lt;td&gt;, чтобы скопировать в каталог файла ресурсов.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th align=&quot;left&quot;&gt;Копировать как...&lt;/th&gt;&lt;td&gt;, чтобы скопировать в подкаталог каталога файла ресурсов.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th align=&quot;left&quot;&gt;Оставить&lt;/th&gt;&lt;td&gt;, чтобы использовать текущее размещение.&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</translation>
     </message>
     <message>
-        <location line="+25"/>
         <source>Add Files</source>
         <translation>Добавить файлы</translation>
     </message>
     <message>
-        <location line="+21"/>
         <source>Incorrect Path</source>
         <translation>Неверный путь</translation>
     </message>
     <message>
-        <location line="+3"/>
-        <location line="+19"/>
-        <location line="+212"/>
-        <location line="+7"/>
         <source>Copy</source>
         <translation>Копировать</translation>
     </message>
     <message>
-        <location line="-236"/>
         <source>Copy As...</source>
         <translation>Копировать как...</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Keep</source>
         <translation>Оставить</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Skip</source>
         <translation>Пропустить</translation>
     </message>
     <message>
-        <location line="+87"/>
         <source>Clone Prefix</source>
         <translation>Приставка при клонировании</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>Введите окончание, которое нужно добавлять к именам клонируемых файлов.
 Это может быть, например, языковое расширение, вроде &quot;_ru&quot;.</translation>
     </message>
     <message>
-        <location line="+113"/>
-        <location line="+4"/>
         <source>Copy As</source>
         <translation>Копировать как</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;Выбранный файл:&lt;/p&gt;&lt;p&gt;%1&lt;/p&gt;&lt;p&gt;находится вне каталога текущего файла ресурсов:&lt;/p&gt;&lt;p&gt;%2&lt;/p&gt;&lt;p&gt;Пожалуйста, выберите путь внутри этого каталога.&lt;p&gt;</translation>
     </message>
     <message>
-        <location line="+20"/>
         <source>Could not overwrite %1.</source>
         <translation>Не удалось перезаписать %1.</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Could not copy
 %1
 to
@@ -3348,153 +2718,120 @@
 %2</translation>
     </message>
     <message>
-        <location line="+35"/>
         <source>A parse error occurred at line %1, column %2 of %3:
 %4</source>
         <translation>Возникла ошибка разбора в строке %1 позиции %2 из %3:
 %4</translation>
     </message>
     <message>
-        <location line="+12"/>
         <source>Save Resource File</source>
         <translation>Сохранение файла ресурсов</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Could not write %1: %2</source>
         <translation>Не удалось записать %1: %2</translation>
     </message>
     <message>
-        <location line="+33"/>
         <source>Edit Resources</source>
         <translation>Правка ресурсов</translation>
     </message>
     <message>
-        <location line="+35"/>
         <source>New...</source>
         <translation>Новый...</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Open...</source>
         <translation>Открыть...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Open Resource File</source>
         <translation>Открыть файл ресурсов</translation>
     </message>
     <message>
-        <location line="+1"/>
-        <location line="+11"/>
         <source>Remove</source>
         <translation>Удалить</translation>
     </message>
     <message>
-        <location line="-10"/>
-        <location line="+11"/>
         <source>Move Up</source>
         <translation>Поднять</translation>
     </message>
     <message>
-        <location line="-10"/>
-        <location line="+11"/>
         <source>Move Down</source>
         <translation>Опустить</translation>
     </message>
     <message>
-        <location line="-9"/>
-        <location line="+1"/>
         <source>Add Prefix</source>
         <translation>Добавить приставку</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Add Files...</source>
         <translation>Добавить файлы...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Change Prefix</source>
         <translation>Сменить приставку</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Change Language</source>
         <translation>Сменить язык</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Change Alias</source>
         <translation>Сменить псевдоним</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Clone Prefix...</source>
         <translation>Приставка при клонировании...</translation>
     </message>
     <message>
-        <location line="+37"/>
         <source>Prefix / Path</source>
         <translation>Приставка / Путь</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Language / Alias</source>
         <translation>Язык / Псевдоним</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;Предупреждение:&lt;/b&gt; Возникли проблемы при перезагрузке ресурсов:&lt;/p&gt;&lt;pre&gt;%1&lt;/pre&gt;&lt;/html&gt;</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Resource Warning</source>
         <translation type="unfinished">Предупреждение</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qtresourceeditordialog.ui"/>
         <source>Dialog</source>
         <translation>Диалог</translation>
     </message>
     <message>
-        <location/>
         <source>New File</source>
         <translation>Новый файл</translation>
     </message>
     <message>
-        <location/>
         <source>N</source>
         <translation>N</translation>
     </message>
     <message>
-        <location/>
         <source>Remove File</source>
         <translation>Удалить файл</translation>
     </message>
     <message>
-        <location/>
         <source>R</source>
         <translation>R</translation>
     </message>
     <message>
-        <location/>
         <source>I</source>
         <translation>I</translation>
     </message>
     <message>
-        <location/>
         <source>New Resource</source>
         <translation>Новый ресурс</translation>
     </message>
     <message>
-        <location/>
         <source>A</source>
         <translation>A</translation>
     </message>
     <message>
-        <location/>
         <source>Remove Resource or File</source>
         <translation>Удалить ресурс или файл</translation>
     </message>
@@ -3502,24 +2839,20 @@
 <context>
     <name>QtResourceView</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qtresourceview.cpp" line="+567"/>
         <source>Size: %1 x %2
 %3</source>
         <translation>Размер: %1 x %2
 %3</translation>
     </message>
     <message>
-        <location line="+20"/>
         <source>Edit Resources...</source>
         <translation>Изменить ресурсы...</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Reload</source>
         <translation>Перезагрузить</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Copy Path</source>
         <translation>Скопировать путь</translation>
     </message>
@@ -3527,7 +2860,6 @@
 <context>
     <name>QtResourceViewDialog</name>
     <message>
-        <location line="+252"/>
         <source>Select Resource</source>
         <translation>Выбрать ресурс</translation>
     </message>
@@ -3535,17 +2867,14 @@
 <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>Ширина</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Height</source>
         <translation>Высота</translation>
     </message>
@@ -3553,33 +2882,26 @@
 <context>
     <name>QtSizePolicyPropertyManager</name>
     <message>
-        <location line="+1709"/>
-        <location line="+1"/>
         <source>&lt;Invalid&gt;</source>
         <translation>&lt;Неверный&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>Горизонтальная политика</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Vertical Policy</source>
         <translation>Вертикальная политика</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Horizontal Stretch</source>
         <translation>Горизонтальное растяжение</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Vertical Stretch</source>
         <translation>Вертикальное растяжение</translation>
     </message>
@@ -3587,17 +2909,14 @@
 <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>Ширина</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Height</source>
         <translation>Высота</translation>
     </message>
@@ -3605,107 +2924,86 @@
 <context>
     <name>QtToolBarDialog</name>
     <message>
-        <location filename="../tools/shared/qttoolbardialog/qttoolbardialog.cpp" line="+1240"/>
         <source>Custom Toolbar</source>
         <translation>Пользовательская панель инструментов</translation>
     </message>
     <message>
-        <location line="+544"/>
         <source>&lt; S E P A R A T O R &gt;</source>
         <translation>&lt; Р А З Д Е Л И Т Е Л Ь &gt;</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qttoolbardialog/qttoolbardialog.ui"/>
         <source>Customize Toolbars</source>
         <translation>Настройка панелей инструментов</translation>
     </message>
     <message>
-        <location/>
         <source>1</source>
         <translation>1</translation>
     </message>
     <message>
-        <location/>
         <source>Actions</source>
         <translation>Действия</translation>
     </message>
     <message>
-        <location/>
         <source>Toolbars</source>
         <translation>Панель инструментов</translation>
     </message>
     <message>
-        <location/>
         <source>Add new toolbar</source>
         <translation>Добавить новую панель инструментов</translation>
     </message>
     <message>
-        <location/>
         <source>New</source>
         <translation>Новая</translation>
     </message>
     <message>
-        <location/>
         <source>Remove selected toolbar</source>
         <translation>Удалить выбранную панель инструментов</translation>
     </message>
     <message>
-        <location/>
         <source>Remove</source>
         <translation>Удалить</translation>
     </message>
     <message>
-        <location/>
         <source>Rename toolbar</source>
         <translation>Переименовать панель инструментов</translation>
     </message>
     <message>
-        <location/>
         <source>Rename</source>
         <translation>Переименовать</translation>
     </message>
     <message>
-        <location/>
         <source>Move action up</source>
         <translation>Переместить действие вверх</translation>
     </message>
     <message>
-        <location/>
         <source>Up</source>
         <translation>Вверх</translation>
     </message>
     <message>
-        <location/>
         <source>Remove action from toolbar</source>
         <translation>Удалить действие из панели инструментов</translation>
     </message>
     <message>
-        <location/>
         <source>&lt;-</source>
         <translation>&lt;-</translation>
     </message>
     <message>
-        <location/>
         <source>Add action to toolbar</source>
         <translation>Добавить действие на панель инструментов</translation>
     </message>
     <message>
-        <location/>
         <source>-&gt;</source>
         <translation>-&gt;</translation>
     </message>
     <message>
-        <location/>
         <source>Move action down</source>
         <translation>Переместить действие вниз</translation>
     </message>
     <message>
-        <location/>
         <source>Down</source>
         <translation>Вниз</translation>
     </message>
     <message>
-        <location/>
         <source>Current Toolbar Actions</source>
         <translation>Текущие действия панели инструментов</translation>
     </message>
@@ -3713,12 +3011,10 @@
 <context>
     <name>QtTreePropertyBrowser</name>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qttreepropertybrowser.cpp" line="+442"/>
         <source>Property</source>
         <translation>Свойство</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Value</source>
         <translation>Значение</translation>
     </message>
@@ -3726,64 +3022,52 @@
 <context>
     <name>SaveFormAsTemplate</name>
     <message>
-        <location filename="../tools/designer/src/designer/saveformastemplate.cpp" line="+72"/>
         <source>Add path...</source>
         <translation>Добавить путь...</translation>
     </message>
     <message>
-        <location line="+23"/>
         <source>Template Exists</source>
         <translation>Шаблон существует</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>A template with the name %1 already exists.
 Do you want overwrite the template?</source>
         <translation>Шаблон с именем %1 уже существует.
 Желаете заменить шаблон?</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Overwrite Template</source>
         <translation>Заменить шаблон</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Open Error</source>
         <translation>Ошибка открытия</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>There was an error opening template %1 for writing. Reason: %2</source>
         <translation>Возникла ошибка открытия шаблона %1 для записи. Причина: %2</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>Write Error</source>
         <translation>Ошибка записи</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>There was an error writing the template %1 to disk. Reason: %2</source>
         <translation>Возникла ошибка записи шаблона %1 на диск. Причина: %2</translation>
     </message>
     <message>
-        <location line="+27"/>
         <source>Pick a directory to save templates in</source>
         <translation>Выберите каталог для сохранения шаблонов</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/saveformastemplate.ui"/>
         <source>Save Form As Template</source>
         <translation>Сохранить форму как шаблон</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Category:</source>
         <translation>&amp;Категория:</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Name:</source>
         <translation>&amp;Имя:</translation>
     </message>
@@ -3791,7 +3075,6 @@
 <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>При выполнения сценариев для &quot;%1&quot; возникла ошибка:
@@ -3801,22 +3084,18 @@
 <context>
     <name>SelectSignalDialog</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/selectsignaldialog.ui"/>
         <source>Go to slot</source>
         <translation>Переход к слоту</translation>
     </message>
     <message>
-        <location/>
         <source>Select signal</source>
         <translation>Выбор сигнала</translation>
     </message>
     <message>
-        <location/>
         <source>signal</source>
         <translation>сигнал</translation>
     </message>
     <message>
-        <location/>
         <source>class</source>
         <translation>класс</translation>
     </message>
@@ -3824,7 +3103,6 @@
 <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>ОТПРАВИТЕЛЬ(%1), СИГНАЛ(%2), ПОЛУЧАТЕЛЬ(%3), СЛОТ(%4)</translation>
     </message>
@@ -3832,32 +3110,26 @@
 <context>
     <name>SignalSlotDialogClass</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/signalslotdialog.ui"/>
         <source>Signals and slots</source>
         <translation>Сигналы и слоты</translation>
     </message>
     <message>
-        <location/>
         <source>Slots</source>
         <translation>Слоты</translation>
     </message>
     <message>
-        <location/>
         <source>Add</source>
         <translation>Добавить</translation>
     </message>
     <message>
-        <location/>
         <source>...</source>
         <translation>...</translation>
     </message>
     <message>
-        <location/>
         <source>Delete</source>
         <translation>Удалить</translation>
     </message>
     <message>
-        <location/>
         <source>Signals</source>
         <translation>Сигналы</translation>
     </message>
@@ -3865,12 +3137,10 @@
 <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>Горизонтальный разделитель &apos;%1&apos;, %2 x %3</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Vertical Spacer &apos;%1&apos;, %2 x %3</source>
         <translation>Вертикальный разделитель &apos;%1&apos;, %2 x %3</translation>
     </message>
@@ -3878,7 +3148,6 @@
 <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>
@@ -3888,52 +3157,42 @@
 <context>
     <name>ToolBarManager</name>
     <message>
-        <location filename="../tools/designer/src/designer/mainwindow.cpp" line="+89"/>
         <source>Configure Toolbars...</source>
         <translation>Настройка панелей инструментов...</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Window</source>
         <translation>Окно</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Help</source>
         <translation>Справка</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Style</source>
         <translation>Стиль</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Dock views</source>
         <translation type="unfinished">Прикрепляемые панели</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>File</source>
         <translation type="unfinished">Файл</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Edit</source>
         <translation type="unfinished">Правка</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Tools</source>
         <translation type="unfinished">Инструменты</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Form</source>
         <translation type="unfinished">Форма</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Toolbars</source>
         <translation>Панели инструментов</translation>
     </message>
@@ -3941,30 +3200,64 @@
 <context>
     <name>VersionDialog</name>
     <message>
-        <location filename="../tools/designer/src/designer/versiondialog.cpp" line="+170"/>
         <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;Версия %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 - дизайнер графического интерфейса пользователя для Qt-приложений.&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;Copyright (C) 2010 Корпорация Nokia и/или её дочерние подразделения.</translation>
     </message>
 </context>
 <context>
+    <name>VideoPlayerTaskMenu</name>
+    <message>
+        <source>Available Mime Types</source>
+        <translation type="unfinished">Доступные типы данных</translation>
+    </message>
+    <message>
+        <source>Display supported mime types...</source>
+        <translation type="unfinished">Показывать поддерживаемые типы данных...</translation>
+    </message>
+    <message>
+        <source>Load...</source>
+        <translation>Загрузить...</translation>
+    </message>
+    <message>
+        <source>Play</source>
+        <translation>Воспроизвести</translation>
+    </message>
+    <message>
+        <source>Pause</source>
+        <translation>Пауза</translation>
+    </message>
+    <message>
+        <source>Stop</source>
+        <translation>Остановить</translation>
+    </message>
+    <message>
+        <source>Choose Video Player Media Source</source>
+        <translation>Выберите источник медиа-данных</translation>
+    </message>
+    <message>
+        <source>An error has occurred in &apos;%1&apos;: %2</source>
+        <translation>В &quot;%1&quot; произошла ошибка: %2</translation>
+    </message>
+    <message>
+        <source>Video Player Error</source>
+        <translation>Ошибка видеоплеера</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>Файл содержит пользовательский виджет &apos;%1&apos;, базовый класс (%2) которого отличается от текущей записи в базе виджетов (%3). База виджетов оставлена без изменений.</translation>
     </message>
@@ -3972,87 +3265,70 @@
 <context>
     <name>qdesigner_internal::ActionEditor</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/actioneditor.cpp" line="+123"/>
         <source>New...</source>
         <translation>Новое...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Edit...</source>
         <translation>Правка...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Go to slot...</source>
         <translation>Перейти к слоту...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Copy</source>
         <translation>Копировать</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Cut</source>
         <translation>Вырезать</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Paste</source>
         <translation>Вставить</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Select all</source>
         <translation>Выделить всё</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Delete</source>
         <translation>Удалить</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Actions</source>
         <translation>Действия</translation>
     </message>
     <message>
-        <location line="+49"/>
         <source>Configure Action Editor</source>
         <translation>Настроить редактор действий</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Icon View</source>
         <translation type="unfinished">Значки</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Detailed View</source>
         <translation type="unfinished">Подробно</translation>
     </message>
     <message>
-        <location line="+246"/>
         <source>New action</source>
         <translation>Новое действие</translation>
     </message>
     <message>
-        <location line="+98"/>
         <source>Edit action</source>
         <translation>Правка действия</translation>
     </message>
     <message>
-        <location line="+69"/>
         <source>Remove action &apos;%1&apos;</source>
         <translation>Удалить действие &apos;%1&apos;</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Remove actions</source>
         <translation>Удаление дествий</translation>
     </message>
     <message>
-        <location line="+186"/>
         <source>Used In</source>
         <translation>Используется в</translation>
     </message>
@@ -4060,32 +3336,26 @@
 <context>
     <name>qdesigner_internal::ActionModel</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/actionrepository.cpp" line="+89"/>
         <source>Name</source>
         <translation>Имя</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Used</source>
         <translation>Используется</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Text</source>
         <translation>Текст</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Shortcut</source>
         <translation>Горячая клавиша</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Checkable</source>
         <translation>Триггерное</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>ToolTip</source>
         <translation>Подсказка</translation>
     </message>
@@ -4093,27 +3363,22 @@
 <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>У элемента &apos;%1&apos; отсутствует необходимый атрибут &apos;%2&apos;.</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>Empty brush name encountered.</source>
         <translation>Обнаружено пустое название кисти.</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>An unexpected element &apos;%1&apos; was encountered.</source>
         <translation>Обнаружен неожиданный элемент &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>При чтении файла описания кистей &apos;%1&apos; возникла ошибка разбора строки %2 в позиции %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>При чтении файла ресурсов &apos;%1&apos; возникла ошибка разбора строки %2 в позиции %3: %4</translation>
     </message>
@@ -4121,17 +3386,14 @@
 <context>
     <name>qdesigner_internal::BuddyEditor</name>
     <message>
-        <location filename="../tools/designer/src/components/buddyeditor/buddyeditor.cpp" line="+261"/>
         <source>Add buddy</source>
         <translation>Добавить партнёра</translation>
     </message>
     <message>
-        <location line="+52"/>
         <source>Remove buddies</source>
         <translation>Удалить партнёров</translation>
     </message>
     <message numerus="yes">
-        <location line="+24"/>
         <source>Remove %n buddies</source>
         <translation>
             <numerusform>Удалить %n партнёра</numerusform>
@@ -4140,7 +3402,6 @@
         </translation>
     </message>
     <message numerus="yes">
-        <location line="+51"/>
         <source>Add %n buddies</source>
         <translation>
             <numerusform>Добавить %n партнёра</numerusform>
@@ -4149,7 +3410,6 @@
         </translation>
     </message>
     <message>
-        <location line="+47"/>
         <source>Set automatically</source>
         <translation>Установить автоматически</translation>
     </message>
@@ -4157,7 +3417,6 @@
 <context>
     <name>qdesigner_internal::BuddyEditorPlugin</name>
     <message>
-        <location filename="../tools/designer/src/components/buddyeditor/buddyeditor_plugin.cpp" line="+73"/>
         <source>Edit Buddies</source>
         <translation>Изменение партнёров</translation>
     </message>
@@ -4165,7 +3424,6 @@
 <context>
     <name>qdesigner_internal::BuddyEditorTool</name>
     <message>
-        <location filename="../tools/designer/src/components/buddyeditor/buddyeditor_tool.cpp" line="+56"/>
         <source>Edit Buddies</source>
         <translation>Изменение партнёров</translation>
     </message>
@@ -4173,12 +3431,10 @@
 <context>
     <name>qdesigner_internal::ButtonGroupMenu</name>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/button_taskmenu.cpp" line="+7"/>
         <source>Select members</source>
         <translation>Выбрать элементы</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Break</source>
         <translation>Разделить</translation>
     </message>
@@ -4186,32 +3442,26 @@
 <context>
     <name>qdesigner_internal::ButtonTaskMenu</name>
     <message>
-        <location line="+121"/>
         <source>Assign to button group</source>
         <translation>Назначить группу кнопок</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Button group</source>
         <translation>Группа кнопок</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>New button group</source>
         <translation>Новая группа кнопок</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Change text...</source>
         <translation>Изменить текст...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>None</source>
         <translation>Нет</translation>
     </message>
     <message>
-        <location line="+101"/>
         <source>Button group &apos;%1&apos;</source>
         <translation>Группа кнопок &apos;%1&apos;</translation>
     </message>
@@ -4219,57 +3469,46 @@
 <context>
     <name>qdesigner_internal::CodeDialog</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/codedialog.cpp" line="+95"/>
         <source>Save...</source>
         <translation>Сохранить...</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Copy All</source>
         <translation>Копировать всё</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>&amp;Find in Text...</source>
         <translation>&amp;Найти в тексте...</translation>
     </message>
     <message>
-        <location line="+75"/>
         <source>A temporary form file could not be created in %1.</source>
         <translation>Не удалось создать временный файл формы в %1.</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>The temporary form file %1 could not be written.</source>
         <translation>Не удалось записать временный файл формы %1.</translation>
     </message>
     <message>
-        <location line="+21"/>
         <source>%1 - [Code]</source>
         <translation>%1 - [код]</translation>
     </message>
     <message>
-        <location line="+23"/>
         <source>Save Code</source>
         <translation>Сохранить код</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Header Files (*.%1)</source>
         <translation>Заголовочные файлы (*.%1)</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>The file %1 could not be opened: %2</source>
         <translation>Не удалось открыть файл %1: %2</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>The file %1 could not be written: %2</source>
         <translation>Не удалось записать файл %1: %2</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>%1 - Error</source>
         <translation>%1 - Ошибка</translation>
     </message>
@@ -4277,7 +3516,6 @@
 <context>
     <name>qdesigner_internal::ColorAction</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/richtexteditor.cpp" line="+246"/>
         <source>Text Color</source>
         <translation>Цвет текста</translation>
     </message>
@@ -4285,12 +3523,10 @@
 <context>
     <name>qdesigner_internal::ComboBoxTaskMenu</name>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/combobox_taskmenu.cpp" line="+68"/>
         <source>Edit Items...</source>
         <translation>Изменить элементы...</translation>
     </message>
     <message>
-        <location line="+38"/>
         <source>Change Combobox Contents</source>
         <translation>Изменено содержимое Combobox</translation>
     </message>
@@ -4298,7 +3534,6 @@
 <context>
     <name>qdesigner_internal::CommandLinkButtonTaskMenu</name>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/button_taskmenu.cpp" line="+156"/>
         <source>Change description...</source>
         <translation>Изменить описание...</translation>
     </message>
@@ -4306,17 +3541,14 @@
 <context>
     <name>qdesigner_internal::ConnectionEdit</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/connectionedit.cpp" line="+1313"/>
         <source>Select All</source>
         <translation>Выделить всё</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Deselect All</source>
         <translation>Снять выделение</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Delete</source>
         <translation>Удалить</translation>
     </message>
@@ -4324,52 +3556,42 @@
 <context>
     <name>qdesigner_internal::ConnectionModel</name>
     <message>
-        <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditorwindow.cpp" line="-465"/>
         <source>Sender</source>
         <translation>Отправитель</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Signal</source>
         <translation>Сигнал</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Receiver</source>
         <translation>Получатель</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Slot</source>
         <translation>Слот</translation>
     </message>
     <message>
-        <location line="+90"/>
         <source>&lt;sender&gt;</source>
         <translation>&lt;отправитель&gt;</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&lt;signal&gt;</source>
         <translation>&lt;сигнал&gt;</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&lt;receiver&gt;</source>
         <translation>&lt;получатель&gt;</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&lt;slot&gt;</source>
         <translation>&lt;слот&gt;</translation>
     </message>
     <message>
-        <location line="+108"/>
         <source>The connection already exists!&lt;br&gt;%1</source>
         <translation>Подключение уже существует!&lt;br&gt;%1</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Signal and Slot Editor</source>
         <translation>Радактор сигналов и слотов</translation>
     </message>
@@ -4377,42 +3599,34 @@
 <context>
     <name>qdesigner_internal::ContainerWidgetTaskMenu</name>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/containerwidget_taskmenu.cpp" line="+79"/>
         <source>Delete</source>
         <translation>Удалить</translation>
     </message>
     <message>
-        <location line="+25"/>
         <source>Insert</source>
         <translation>Вставить</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Insert Page Before Current Page</source>
         <translation>Вставить страницу перед текущей</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Insert Page After Current Page</source>
         <translation>Вставить страницу после текущей</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Add Subwindow</source>
         <translation>Добавить дочернее окно</translation>
     </message>
     <message>
-        <location line="+38"/>
         <source>Subwindow</source>
         <translation>Дочернее окно</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Page</source>
         <translation>Страница</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Page %1 of %2</source>
         <translation>Страница %1 из %2</translation>
     </message>
@@ -4420,18 +3634,15 @@
 <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>Системное (%1 x %2)</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>User defined</source>
         <translation>Пользовательское</translation>
     </message>
     <message>
-        <location line="+18"/>
         <source> x </source>
         <extracomment>DPI X/Y separator</extracomment>
         <translation> x </translation>
@@ -4440,49 +3651,38 @@
 <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></translation>
     </message>
     <message>
-        <location line="-5"/>
         <source>AlignHCenter</source>
         <translation></translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>AlignRight</source>
         <translation></translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>AlignJustify</source>
         <translation></translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>AlignTop</source>
         <translation></translation>
     </message>
     <message>
-        <location line="+1"/>
-        <location line="+4"/>
         <source>AlignVCenter</source>
         <translation></translation>
     </message>
     <message>
-        <location line="-3"/>
         <source>AlignBottom</source>
         <translation></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>Настроено (%n роль)</numerusform>
@@ -4491,75 +3691,58 @@
         </translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Inherited</source>
         <translation>Унаследованная</translation>
     </message>
     <message>
-        <location line="+566"/>
         <source>Horizontal</source>
         <translation>Горизонтальное</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Vertical</source>
         <translation>Вертикальное</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Normal Off</source>
         <translation type="unfinished">Нормальный, выкл</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Normal On</source>
         <translation type="unfinished">Нормальный, вкл</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Disabled Off</source>
         <translation type="unfinished">Выключенный, выкл</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Disabled On</source>
         <translation type="unfinished">Выключенный, вкл</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Active Off</source>
         <translation type="unfinished">Активный, выкл</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Active On</source>
         <translation type="unfinished">Активный, вкл</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Selected Off</source>
         <translation type="unfinished">Выбранный, выкл</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Selected On</source>
         <translation type="unfinished">Выбранный, вкл</translation>
     </message>
     <message>
-        <location line="+7"/>
-        <location line="+21"/>
         <source>translatable</source>
         <translation>переводимый</translation>
     </message>
     <message>
-        <location line="-15"/>
-        <location line="+21"/>
         <source>disambiguation</source>
         <translation>уточнение</translation>
     </message>
     <message>
-        <location line="-15"/>
-        <location line="+21"/>
         <source>comment</source>
         <translation>примечание</translation>
     </message>
@@ -4567,48 +3750,38 @@
 <context>
     <name>qdesigner_internal::DeviceProfileDialog</name>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/deviceprofiledialog.cpp" line="+63"/>
         <source>Device Profiles (*.%1)</source>
         <translation>Профили устройства (*.%1)</translation>
     </message>
     <message>
-        <location line="+31"/>
         <source>Default</source>
         <translation>По умолчанию</translation>
     </message>
     <message>
-        <location line="+67"/>
         <source>Save Profile</source>
         <translation>Сохранение профиля</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>Save Profile - Error</source>
         <translation>Ошибка сохранения профиля</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Unable to open the file &apos;%1&apos; for writing: %2</source>
         <translation>Не удалось открыть файл &apos;%1&apos; для записи: %2</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Open profile</source>
         <translation>Открытие профиля</translation>
     </message>
     <message>
-        <location line="+6"/>
-        <location line="+6"/>
         <source>Open Profile - Error</source>
         <translation>Ошибка отрытия профиля</translation>
     </message>
     <message>
-        <location line="-6"/>
         <source>Unable to open the file &apos;%1&apos; for reading: %2</source>
         <translation>Не удалось открыть файл &apos;%1&apos; для чтения: %2</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>&apos;%1&apos; is not a valid profile: %2</source>
         <translation>&apos;%1&apos; не является корректным профилем: %2</translation>
     </message>
@@ -4616,57 +3789,46 @@
 <context>
     <name>qdesigner_internal::Dialog</name>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/stringlisteditor.ui"/>
         <source>Dialog</source>
         <translation>Диалог</translation>
     </message>
     <message>
-        <location/>
         <source>StringList</source>
         <translation>Список строк</translation>
     </message>
     <message>
-        <location/>
         <source>New String</source>
         <translation>Новая строка</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;New</source>
         <translation>&amp;Новая</translation>
     </message>
     <message>
-        <location/>
         <source>Delete String</source>
         <translation>Удалить строку</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Delete</source>
         <translation>&amp;Удалить</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Value:</source>
         <translation>&amp;Значение:</translation>
     </message>
     <message>
-        <location/>
         <source>Move String Up</source>
         <translation>Переместить строку вверх</translation>
     </message>
     <message>
-        <location/>
         <source>Up</source>
         <translation>Вверх</translation>
     </message>
     <message>
-        <location/>
         <source>Move String Down</source>
         <translation>Переместить строку вниз</translation>
     </message>
     <message>
-        <location/>
         <source>Down</source>
         <translation> Вниз </translation>
     </message>
@@ -4674,52 +3836,42 @@
 <context>
     <name>qdesigner_internal::EmbeddedOptionsControl</name>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/embeddedoptionspage.cpp" line="-260"/>
         <source>None</source>
         <translation>Нет</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Add a profile</source>
         <translation>Добавить профиль</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Edit the selected profile</source>
         <translation>Изменить выбранный профиль</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Delete the selected profile</source>
         <translation>Удалить выбранный профиль</translation>
     </message>
     <message>
-        <location line="+22"/>
         <source>Add Profile</source>
         <translation>Добавление профиля</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>New profile</source>
         <translation>Новый профиль</translation>
     </message>
     <message>
-        <location line="+35"/>
         <source>Edit Profile</source>
         <translation>Изменение профиля</translation>
     </message>
     <message>
-        <location line="+26"/>
         <source>Delete Profile</source>
         <translation>Удаление профиля</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Would you like to delete the profile &apos;%1&apos;?</source>
         <translation>Желаете удалить профиль &apos;%1&apos;?</translation>
     </message>
     <message>
-        <location line="+55"/>
         <source>Default</source>
         <translation>По умолчанию</translation>
     </message>
@@ -4727,12 +3879,10 @@
 <context>
     <name>qdesigner_internal::FilterWidget</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/filterwidget.cpp" line="+163"/>
         <source>Filter</source>
         <translation>Фильтр</translation>
     </message>
     <message>
-        <location line="+36"/>
         <source>Clear text</source>
         <translation>Очистить текст</translation>
     </message>
@@ -4740,12 +3890,10 @@
 <context>
     <name>qdesigner_internal::FormEditor</name>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/formeditor.cpp" line="+190"/>
         <source>Resource File Changed</source>
         <translation>Файл ресурсов был изменён</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>The file &quot;%1&quot; has changed outside Designer. Do you want to reload it?</source>
         <translation>Файл &quot;%1&quot; был изменён вне Qt Designer. Желаете перезагрузить его?</translation>
     </message>
@@ -4753,7 +3901,6 @@
 <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>Добавить строку компоновщика формы...</translation>
     </message>
@@ -4761,37 +3908,30 @@
 <context>
     <name>qdesigner_internal::FormWindow</name>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/formwindow.cpp" line="-1322"/>
         <source>Edit contents</source>
         <translation>Изменить содержимое</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>F2</source>
         <translation></translation>
     </message>
     <message>
-        <location line="+775"/>
         <source>Insert widget &apos;%1&apos;</source>
         <translation>Вставить виджет &apos;%1&apos;</translation>
     </message>
     <message>
-        <location line="+65"/>
         <source>Resize</source>
         <translation>Изменение размера</translation>
     </message>
     <message>
-        <location line="+248"/>
         <source>Key Move</source>
         <translation type="unfinished">Перемещение клавишей</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Key Resize</source>
         <translation type="unfinished">Изменение размера клавишей</translation>
     </message>
     <message numerus="yes">
-        <location line="+252"/>
         <source>Paste %n action(s)</source>
         <translation type="unfinished">
             <numerusform>Вставлено %n действие</numerusform>
@@ -4800,7 +3940,6 @@
         </translation>
     </message>
     <message numerus="yes">
-        <location line="+2"/>
         <source>Paste %n widget(s)</source>
         <translation type="unfinished">
             <numerusform>Вставлен %n виджет</numerusform>
@@ -4809,53 +3948,42 @@
         </translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Paste (%1 widgets, %2 actions)</source>
         <translation type="unfinished">Вставлено (%1 виджетов, %2 действий)</translation>
     </message>
     <message>
-        <location line="+56"/>
         <source>Cannot paste widgets. Designer could not find a container without a layout to paste into.</source>
         <translation type="unfinished">Не удалось вставить виджеты. Qt Designer не смог найти контейнер без компоновщика для вставки виджетов.</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>Удалите компоновщик из контейнера, в который желаете вставить виджеты, выберите его и повторите вставку.</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Paste error</source>
         <translation>Ошибка вставки</translation>
     </message>
     <message>
-        <location line="+181"/>
         <source>Raise widgets</source>
         <translation>Поднятие виджетов</translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>Lower widgets</source>
         <translation>Опускание виджетов</translation>
     </message>
     <message>
-        <location line="+204"/>
         <source>Select Ancestor</source>
         <translation>Выбрать предка</translation>
     </message>
     <message>
-        <location line="+46"/>
         <source>Lay out</source>
         <translation>Компоновка</translation>
     </message>
     <message>
-        <location line="+485"/>
-        <location line="+55"/>
         <source>Drop widget</source>
         <translation type="unfinished">Вставка виджета</translation>
     </message>
     <message>
-        <location line="-13"/>
         <source>A QMainWindow-based form does not contain a central widget.</source>
         <translation>Форма, основанная на QMainWindow, не содержит центрального виджета.</translation>
     </message>
@@ -4863,12 +3991,10 @@
 <context>
     <name>qdesigner_internal::FormWindowBase</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/formwindowbase.cpp" line="+404"/>
         <source>Delete &apos;%1&apos;</source>
         <translation>Удалить &apos;%1&apos;</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Delete</source>
         <translation>Удалить</translation>
     </message>
@@ -4876,200 +4002,159 @@
 <context>
     <name>qdesigner_internal::FormWindowManager</name>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/formwindowmanager.cpp" line="+365"/>
         <source>Cu&amp;t</source>
         <translation>&amp;Вырезать</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Cuts the selected widgets and puts them on the clipboard</source>
         <translation>Вырезает выбранные виджеты и помещает их в буфер обмена</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>&amp;Copy</source>
         <translation>&amp;Копировать</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Copies the selected widgets to the clipboard</source>
         <translation>Копирует выбранные виджеты в буфер обмена</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>&amp;Paste</source>
         <translation>В&amp;ставить</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Pastes the clipboard&apos;s contents</source>
         <translation>Вставляет содержимое буфера обмена</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>&amp;Delete</source>
         <translation>&amp;Удалить</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Deletes the selected widgets</source>
         <translation>Удаляет выбранные виджеты</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Select &amp;All</source>
         <translation>&amp;Выделить все</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Selects all widgets</source>
         <translation>Выделяет все виджеты</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Bring to &amp;Front</source>
         <translation>Переместить &amp;вперед</translation>
     </message>
     <message>
-        <location line="+3"/>
-        <location line="+1"/>
         <source>Raises the selected widgets</source>
         <translation>Поднимает выбранные виджеты на передний план</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Send to &amp;Back</source>
         <translation>Переместить &amp;назад</translation>
     </message>
     <message>
-        <location line="+3"/>
-        <location line="+1"/>
         <source>Lowers the selected widgets</source>
         <translation>Опускает выбранные виджеты на задний план</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Adjust &amp;Size</source>
         <translation>Подогнать &amp;размер</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Adjusts the size of the selected widget</source>
         <translation>Подгоняет размер выбранного виджета</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Lay Out &amp;Horizontally</source>
         <translation>Скомпоновать по &amp;горизонтали</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Lays out the selected widgets horizontally</source>
         <translation>Компонует выделенные виджеты по горизонтали (QHBoxLayout)</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Lay Out &amp;Vertically</source>
         <translation>Скомпоновать по &amp;вертикали</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Lays out the selected widgets vertically</source>
         <translation>Компонует выделенные виджеты по вертикали (QVBoxLayout)</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Lay Out in a &amp;Form Layout</source>
         <translation>Скомпоновать в &amp;две колонки</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Lays out the selected widgets in a form layout</source>
         <translation>Компонует выделенные виджеты в две колонки (QFormLayout)</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Lay Out in a &amp;Grid</source>
         <translation>Скомпоновать по &amp;сетке</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Lays out the selected widgets in a grid</source>
         <translation>Компонует выделенные виджеты по сетке (QGridLayout)</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Lay Out Horizontally in S&amp;plitter</source>
         <translation>Скомпоновать по г&amp;оризонтали с разделителем</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Lays out the selected widgets horizontally in a splitter</source>
         <translation>Компонует выделенные виджеты по горизонтали (QSplitter)</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Lay Out Vertically in Sp&amp;litter</source>
         <translation>Скомпоновать по в&amp;ертикали с разделителем</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Lays out the selected widgets vertically in a splitter</source>
         <translation>Компонует выделенные виджеты по вертикали (QSplitter)</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>&amp;Break Layout</source>
         <translation>&amp;Удалить компоновщик</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Breaks the selected layout</source>
         <translation>Удаляет выбранный компоновщик</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Si&amp;mplify Grid Layout</source>
         <translation>Упрост&amp;ить компоновку по сетке</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Removes empty columns and rows</source>
         <translation>Удаляет пустые колонки и строки в QGridLayout</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>&amp;Preview...</source>
         <translation>&amp;Предпросмотр...</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Preview current form</source>
         <translation>Предпросмотр формы</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Form &amp;Settings...</source>
         <translation>&amp;Настройки формы...</translation>
     </message>
     <message>
-        <location line="+94"/>
         <source>Break Layout</source>
         <translation>Удалить компоновщик</translation>
     </message>
     <message>
-        <location line="+26"/>
         <source>Adjust Size</source>
         <translation>Подогнать размер</translation>
     </message>
     <message>
-        <location line="+43"/>
         <source>Could not create form preview</source>
         <comment>Title of warning message box</comment>
         <translation>Не удалось создать предпросмотр формы</translation>
     </message>
     <message>
-        <location line="+341"/>
         <source>Form Settings - %1</source>
         <translation>Настройки формы - %1</translation>
     </message>
@@ -5077,12 +4162,10 @@
 <context>
     <name>qdesigner_internal::FormWindowSettings</name>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/formwindowsettings.cpp" line="+193"/>
         <source>None</source>
         <translation>Нет</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Device Profile: %1</source>
         <translation>Профиль устройства: %1</translation>
     </message>
@@ -5090,37 +4173,30 @@
 <context>
     <name>qdesigner_internal::GridPanel</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/gridpanel.ui"/>
         <source>Form</source>
         <translation>Форма</translation>
     </message>
     <message>
-        <location/>
         <source>Grid</source>
         <translation>Сетка</translation>
     </message>
     <message>
-        <location/>
         <source>Visible</source>
         <translation>Видимая</translation>
     </message>
     <message>
-        <location/>
         <source>Grid &amp;X</source>
         <translation>Сетка &amp;X</translation>
     </message>
     <message>
-        <location/>
         <source>Snap</source>
         <translation>Прилипать</translation>
     </message>
     <message>
-        <location/>
         <source>Reset</source>
         <translation>Сбросить</translation>
     </message>
     <message>
-        <location/>
         <source>Grid &amp;Y</source>
         <translation>Сетка &amp;Y</translation>
     </message>
@@ -5128,7 +4204,6 @@
 <context>
     <name>qdesigner_internal::GroupBoxTaskMenu</name>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/groupbox_taskmenu.cpp" line="+82"/>
         <source>Change title...</source>
         <translation>Изменить заголовок...</translation>
     </message>
@@ -5136,7 +4211,6 @@
 <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</translation>
     </message>
@@ -5144,92 +4218,74 @@
 <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>Невозможно прочитать файл растрового изображения &apos;%1&apos;.</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>The file &apos;%1&apos; does not appear to be a valid pixmap file: %2</source>
         <translation>Файл &apos;%1&apos; не похож на корректный файл растрового изображения: %2</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>The file &apos;%1&apos; could not be read: %2</source>
         <translation>Не удалось прочитать файл %1: %2</translation>
     </message>
     <message>
-        <location line="+33"/>
         <source>Choose a Pixmap</source>
         <translation>Выбор растрового изображения</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Pixmap Read Error</source>
         <translation>Ошибка чтения растрового изображения</translation>
     </message>
     <message>
-        <location line="+54"/>
         <source>...</source>
         <translation>...</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Normal Off</source>
         <translation type="unfinished">Нормальный, выкл</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Normal On</source>
         <translation type="unfinished">Нормальный, вкл</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Disabled Off</source>
         <translation type="unfinished">Выключенный, выкл</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Disabled On</source>
         <translation type="unfinished">Выключенный, вкл</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Active Off</source>
         <translation type="unfinished">Активный, выкл</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Active On</source>
         <translation type="unfinished">Активный, вкл</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Selected Off</source>
         <translation type="unfinished">Выбранный, выкл</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Selected On</source>
         <translation type="unfinished">Выбранный, вкл</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Choose Resource...</source>
         <translation>Выбрать ресурс...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Choose File...</source>
         <translation>Выбрать файл...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Reset</source>
         <translation>Сбросить</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Reset All</source>
         <translation>Сбросить всё</translation>
     </message>
@@ -5237,58 +4293,46 @@
 <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>Свойства &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>Свойства &amp;&gt;&gt;</translation>
     </message>
     <message>
-        <location/>
         <source>Items List</source>
         <translation>Список элементов</translation>
     </message>
     <message>
-        <location/>
         <source>New Item</source>
         <translation>Новый элемент</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;New</source>
         <translation>&amp;Новый</translation>
     </message>
     <message>
-        <location/>
         <source>Delete Item</source>
         <translation>Удалить элемент</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Delete</source>
         <translation>&amp;Удалить</translation>
     </message>
     <message>
-        <location/>
         <source>Move Item Up</source>
         <translation>Переместить элемент вверх</translation>
     </message>
     <message>
-        <location/>
         <source>U</source>
         <translation>U</translation>
     </message>
     <message>
-        <location/>
         <source>Move Item Down</source>
         <translation>Переместить элемент вниз</translation>
     </message>
     <message>
-        <location/>
         <source>D</source>
         <translation>D</translation>
     </message>
@@ -5296,12 +4340,10 @@
 <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>Изменить форматированный текст...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Change plain text...</source>
         <translation>Изменить обычный текст...</translation>
     </message>
@@ -5309,7 +4351,6 @@
 <context>
     <name>qdesigner_internal::LanguageResourceDialog</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/iconselector.cpp" line="-343"/>
         <source>Choose Resource</source>
         <translation>Выбор ресурса</translation>
     </message>
@@ -5317,7 +4358,6 @@
 <context>
     <name>qdesigner_internal::LineEditTaskMenu</name>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/lineedit_taskmenu.cpp" line="+80"/>
         <source>Change text...</source>
         <translation>Изменить текст...</translation>
     </message>
@@ -5325,17 +4365,14 @@
 <context>
     <name>qdesigner_internal::ListWidgetEditor</name>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/listwidgeteditor.cpp" line="+69"/>
         <source>New Item</source>
         <translation>Новый элемент</translation>
     </message>
     <message>
-        <location line="+32"/>
         <source>Edit List Widget</source>
         <translation>Изменение виджета List</translation>
     </message>
     <message>
-        <location line="+19"/>
         <source>Edit Combobox</source>
         <translation>Изменение виджета ComboBox</translation>
     </message>
@@ -5343,12 +4380,10 @@
 <context>
     <name>qdesigner_internal::ListWidgetTaskMenu</name>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/listwidget_taskmenu.cpp" line="+67"/>
         <source>Edit Items...</source>
         <translation>Изменить элементы...</translation>
     </message>
     <message>
-        <location line="+38"/>
         <source>Change List Contents</source>
         <translation>Изменение содержимого списка</translation>
     </message>
@@ -5356,22 +4391,18 @@
 <context>
     <name>qdesigner_internal::MdiContainerWidgetTaskMenu</name>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/containerwidget_taskmenu.cpp" line="+118"/>
         <source>Next Subwindow</source>
         <translation>Следующее дочернее докно</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Previous Subwindow</source>
         <translation>Предыдущее дочернее докно</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Tile</source>
         <translation>Замостить</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Cascade</source>
         <translation>Каскадом</translation>
     </message>
@@ -5379,7 +4410,6 @@
 <context>
     <name>qdesigner_internal::MenuTaskMenu</name>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/menutaskmenu.cpp" line="+56"/>
         <source>Remove</source>
         <translation>Удалить</translation>
     </message>
@@ -5387,7 +4417,6 @@
 <context>
     <name>qdesigner_internal::MorphMenu</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/morphmenu.cpp" line="+264"/>
         <source>Morph into</source>
         <translation>Преобразовать в</translation>
     </message>
@@ -5395,42 +4424,34 @@
 <context>
     <name>qdesigner_internal::NewActionDialog</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/newactiondialog.ui"/>
         <source>New Action...</source>
         <translation>Новое действие...</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Text:</source>
         <translation>&amp;Текст:</translation>
     </message>
     <message>
-        <location/>
         <source>Object &amp;name:</source>
         <translation>&amp;Имя объекта:</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Icon:</source>
         <translation>&amp;Значок:</translation>
     </message>
     <message>
-        <location/>
         <source>Shortcut:</source>
         <translation>Горячая клавиша:</translation>
     </message>
     <message>
-        <location/>
         <source>Checkable:</source>
         <translation>Триггерное:</translation>
     </message>
     <message>
-        <location/>
         <source>ToolTip:</source>
         <translation>Подсказка:</translation>
     </message>
     <message>
-        <location/>
         <source>...</source>
         <translation>...</translation>
     </message>
@@ -5438,41 +4459,34 @@
 <context>
     <name>qdesigner_internal::NewDynamicPropertyDialog</name>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/newdynamicpropertydialog.cpp" line="+134"/>
         <source>Set Property Name</source>
         <translation>Установка имени свойства</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>Объект уже содержит свойство с именем &apos;%1&apos;.
 Укажите другое имя.</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>The &apos;_q_&apos; prefix is reserved for the Qt library.
 Please select another name.</source>
         <translation>Приставка &apos;_q_&apos; зарезервирована для целей библиотеки Qt.
 Укажите другое имя.</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/newdynamicpropertydialog.ui"/>
         <source>Create Dynamic Property</source>
         <translation>Создание динамического свойства</translation>
     </message>
     <message>
-        <location/>
         <source>Property Name</source>
         <translation>Имя свойства</translation>
     </message>
     <message>
-        <location/>
         <source>horizontalSpacer</source>
         <translation></translation>
     </message>
     <message>
-        <location/>
         <source>Property Type</source>
         <translation>Тип свойства</translation>
     </message>
@@ -5480,83 +4494,67 @@
 <context>
     <name>qdesigner_internal::NewFormWidget</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/newformwidget.cpp" line="+104"/>
         <source>Default size</source>
         <translation>Размер по умолчанию</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>QVGA portrait (240x320)</source>
         <translation>QVGA книжная (240x320)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>QVGA landscape (320x240)</source>
         <translation>QVGA альбомная (320x240)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>VGA portrait (480x640)</source>
         <translation>VGA книжная (480x640)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>VGA landscape (640x480)</source>
         <translation>VGA альбомная (640x480)</translation>
     </message>
     <message>
-        <location line="+66"/>
         <source>Widgets</source>
         <extracomment>New Form Dialog Categories</extracomment>
         <translation>Виджеты</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Custom Widgets</source>
         <translation>Пользовательские виджеты</translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>None</source>
         <translation>Нет</translation>
     </message>
     <message>
-        <location line="+57"/>
         <source>Error loading form</source>
         <translation>Ошибка загрузки формы</translation>
     </message>
     <message>
-        <location line="+244"/>
         <source>Unable to open the form template file &apos;%1&apos;: %2</source>
         <translation>Невозможно открыть файл шаблона формы &apos;%1&apos;: %2</translation>
     </message>
     <message>
-        <location line="+67"/>
         <source>Internal error: No template selected.</source>
         <translation>Внутренняя ошибка: Шаблон не выбран.</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>Выберите шаблон для предпросмотра</translation>
     </message>
     <message>
-        <location/>
         <source>Embedded Design</source>
         <translation type="unfinished">Оформление портативных устройств</translation>
     </message>
     <message>
-        <location/>
         <source>Device:</source>
         <translation>Устройство:</translation>
     </message>
     <message>
-        <location/>
         <source>Screen Size:</source>
         <translation>Размер экрана:</translation>
     </message>
@@ -5564,37 +4562,30 @@
 <context>
     <name>qdesigner_internal::NewPromotedClassPanel</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_promotiondialog.cpp" line="+92"/>
         <source>Add</source>
         <translation>Добавить</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>New Promoted Class</source>
         <translation type="unfinished">Новый преобразованный класс</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Base class name:</source>
         <translation>Имя базового класса:</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Promoted class name:</source>
         <translation type="unfinished">Имя преобразованного класса:</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Header file:</source>
         <translation>Заголовочный файл:</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Global include</source>
         <translation type="unfinished">Глобальное включение</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>Reset</source>
         <translation>Восстановить</translation>
     </message>
@@ -5602,12 +4593,10 @@
 <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;Найти в тексте...</translation>
     </message>
     <message>
-        <location line="-438"/>
         <source>Change Current Page</source>
         <translation>Смена текущей страницы</translation>
     </message>
@@ -5615,32 +4604,26 @@
 <context>
     <name>qdesigner_internal::OrderDialog</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/orderdialog.cpp" line="+109"/>
         <source>Index %1 (%2)</source>
         <translation>Индекс %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"/>
         <source>Change Page Order</source>
         <translation>Изменение порядка страниц</translation>
     </message>
     <message>
-        <location/>
         <source>Page Order</source>
         <translation>Порядок страниц</translation>
     </message>
     <message>
-        <location/>
         <source>Move page up</source>
         <translation>Переместить страницу выше</translation>
     </message>
     <message>
-        <location/>
         <source>Move page down</source>
         <translation>Переместить страницу ниже</translation>
     </message>
@@ -5648,47 +4631,38 @@
 <context>
     <name>qdesigner_internal::PaletteEditor</name>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/paletteeditor.ui"/>
         <source>Edit Palette</source>
         <translation>Правка палитры</translation>
     </message>
     <message>
-        <location/>
         <source>Tune Palette</source>
         <translation>Настройка палитры</translation>
     </message>
     <message>
-        <location/>
         <source>Show Details</source>
         <translation type="unfinished">Показывать детали</translation>
     </message>
     <message>
-        <location/>
         <source>Compute Details</source>
         <translation type="unfinished">Расчитывать детали</translation>
     </message>
     <message>
-        <location/>
         <source>Quick</source>
         <translation type="unfinished">Быстрый</translation>
     </message>
     <message>
-        <location/>
         <source>Preview</source>
         <translation>Предпросмотр</translation>
     </message>
     <message>
-        <location/>
         <source>Disabled</source>
         <translation>Выключенная</translation>
     </message>
     <message>
-        <location/>
         <source>Inactive</source>
         <translation>Неактивная</translation>
     </message>
     <message>
-        <location/>
         <source>Active</source>
         <translation>Активная</translation>
     </message>
@@ -5696,7 +4670,6 @@
 <context>
     <name>qdesigner_internal::PaletteEditorButton</name>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/paletteeditorbutton.cpp" line="+57"/>
         <source>Change Palette</source>
         <translation type="unfinished">Изменить палитру</translation>
     </message>
@@ -5704,22 +4677,18 @@
 <context>
     <name>qdesigner_internal::PaletteModel</name>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/paletteeditor.cpp" line="+374"/>
         <source>Color Role</source>
         <translation>Роль цвета</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Active</source>
         <translation>Активный</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Inactive</source>
         <translation>Неактивный</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Disabled</source>
         <translation>Выключенный</translation>
     </message>
@@ -5727,28 +4696,22 @@
 <context>
     <name>qdesigner_internal::PixmapEditor</name>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/designerpropertymanager.cpp" line="-1541"/>
         <source>Choose Resource...</source>
         <translation>Выбрать ресурс...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Choose File...</source>
         <translation>Выбрать файл...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Copy Path</source>
         <translation>Скопировать путь</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Paste Path</source>
         <translation>Вставить путь</translation>
     </message>
     <message>
-        <location line="+6"/>
-        <location line="+16"/>
         <source>...</source>
         <translation>...</translation>
     </message>
@@ -5756,7 +4719,6 @@
 <context>
     <name>qdesigner_internal::PlainTextEditorDialog</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/plaintexteditor.cpp" line="+65"/>
         <source>Edit text</source>
         <translation>Правка текста</translation>
     </message>
@@ -5764,37 +4726,30 @@
 <context>
     <name>qdesigner_internal::PluginDialog</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/plugindialog.cpp" line="+72"/>
         <source>Components</source>
         <translation>Компоненты</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>Plugin Information</source>
         <translation>Информация о модуле</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Refresh</source>
         <translation>Обновить</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Scan for newly installed custom widget plugins.</source>
         <translation>Поиск вновь установленных модулей пользовательских виджетов.</translation>
     </message>
     <message>
-        <location line="+48"/>
         <source>Qt Designer couldn&apos;t find any plugins</source>
         <translation>Qt Designer не может найти ни одного модуля</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Qt Designer found the following plugins</source>
         <translation>Qt Designer нашёл следующие модули</translation>
     </message>
     <message>
-        <location line="+55"/>
         <source>New custom widget plugins have been found.</source>
         <translation>Найдены новые модули пользовательских виджетов.</translation>
     </message>
@@ -5802,7 +4757,6 @@
 <context>
     <name>qdesigner_internal::PreviewActionGroup</name>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/previewactiongroup.cpp" line="+95"/>
         <source>%1 Style</source>
         <translation>Стиль %1</translation>
     </message>
@@ -5810,47 +4764,38 @@
 <context>
     <name>qdesigner_internal::PreviewConfigurationWidget</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/previewconfigurationwidget.cpp" line="+139"/>
         <source>Default</source>
         <translation>По умолчанию</translation>
     </message>
     <message>
-        <location line="+22"/>
         <source>None</source>
         <translation>Нет</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Browse...</source>
         <translation>Обзор...</translation>
     </message>
     <message>
-        <location line="+118"/>
         <source>Load Custom Device Skin</source>
         <translation>Загрузить особую обложку устройства</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>All QVFB Skins (*.%1)</source>
         <translation>Все обложки QVFB (*.%1)</translation>
     </message>
     <message>
-        <location line="+16"/>
         <source>%1 - Duplicate Skin</source>
         <translation>%1 - Повторяющаяся обложка</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>The skin &apos;%1&apos; already exists.</source>
         <translation>Обложка &apos;%1&apos; уже существует.</translation>
     </message>
     <message>
-        <location line="+14"/>
         <source>%1 - Error</source>
         <translation>%1 - Ошибка</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>%1 is not a valid skin directory:
 %2</source>
         <translation>%1 не является корректным каталогом обложек:
@@ -5860,24 +4805,20 @@
 <context>
     <name>qdesigner_internal::PreviewDeviceSkin</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/previewmanager.cpp" line="+259"/>
         <source>&amp;Portrait</source>
         <translation>&amp;Книжная</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Landscape (&amp;CCW)</source>
         <extracomment>Rotate form preview counter-clockwise</extracomment>
         <translation>Альбомная (&amp;против ЧС)</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>&amp;Landscape (CW)</source>
         <extracomment>Rotate form preview clockwise</extracomment>
         <translation>&amp;Альбомная (по ЧС)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Close</source>
         <translation>&amp;Закрыть</translation>
     </message>
@@ -5885,7 +4826,6 @@
 <context>
     <name>qdesigner_internal::PreviewManager</name>
     <message>
-        <location line="+426"/>
         <source>%1 - [Preview]</source>
         <translation>%1 - [Предпросмотр]</translation>
     </message>
@@ -5893,7 +4833,6 @@
 <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>
@@ -5903,57 +4842,46 @@
 <context>
     <name>qdesigner_internal::PreviewWidget</name>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/previewwidget.ui"/>
         <source>Preview Window</source>
         <translation>Окно предпросмотра</translation>
     </message>
     <message>
-        <location/>
         <source>LineEdit</source>
         <translation>LineEdit</translation>
     </message>
     <message>
-        <location/>
         <source>ComboBox</source>
         <translation>ComboBox</translation>
     </message>
     <message>
-        <location/>
         <source>PushButton</source>
         <translation>PushButton</translation>
     </message>
     <message>
-        <location/>
         <source>ButtonGroup2</source>
         <translation>ButtonGroup2</translation>
     </message>
     <message>
-        <location/>
         <source>CheckBox1</source>
         <translation>CheckBox1</translation>
     </message>
     <message>
-        <location/>
         <source>CheckBox2</source>
         <translation>CheckBox2</translation>
     </message>
     <message>
-        <location/>
         <source>ButtonGroup</source>
         <translation>ButtonGroup</translation>
     </message>
     <message>
-        <location/>
         <source>RadioButton1</source>
         <translation>RadioButton1</translation>
     </message>
     <message>
-        <location/>
         <source>RadioButton2</source>
         <translation>RadioButton2</translation>
     </message>
     <message>
-        <location/>
         <source>RadioButton3</source>
         <translation>RadioButton3</translation>
     </message>
@@ -5961,22 +4889,18 @@
 <context>
     <name>qdesigner_internal::PromotionModel</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/promotionmodel.cpp" line="+17"/>
         <source>Name</source>
         <translation>Имя</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Header file</source>
         <translation>Заголовочный файл</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Global include</source>
         <translation>Глобальное включение</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Usage</source>
         <translation>Использование</translation>
     </message>
@@ -5984,27 +4908,22 @@
 <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>Изменить сигналы/слоты...</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">Преобразовать в %1</translation>
     </message>
@@ -6012,57 +4931,46 @@
 <context>
     <name>qdesigner_internal::PropertyEditor</name>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/propertyeditor.cpp" line="+231"/>
         <source>Add Dynamic Property...</source>
         <translation>Добавить динамическое свойство...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Remove Dynamic Property</source>
         <translation>Удалить динамическое свойство</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Sorting</source>
         <translation>Сортировка</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Color Groups</source>
         <translation type="unfinished">Цветовые группы</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Tree View</source>
         <translation>Древовидный список</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Drop Down Button View</source>
         <translation type="unfinished">Вид выпадающего списка</translation>
     </message>
     <message>
-        <location line="+45"/>
         <source>String...</source>
         <translation>Строка...</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Bool...</source>
         <translation>Булево...</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Other...</source>
         <translation>Другое...</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Configure Property Editor</source>
         <translation>Настроить радактор свойств</translation>
     </message>
     <message>
-        <location line="+539"/>
         <source>Object: %1
 Class: %2</source>
         <translation>Объект: %1
@@ -6072,7 +4980,6 @@
 <context>
     <name>qdesigner_internal::PropertyLineEdit</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/propertylineedit.cpp" line="+88"/>
         <source>Insert line break</source>
         <translation>Вставить разрыв строки</translation>
     </message>
@@ -6080,27 +4987,22 @@
 <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>Изменить сигналы/слоты...</translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>%1 - Error</source>
         <translation>%1 - Ошибка</translation>
     </message>
@@ -6108,22 +5010,18 @@
 <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>Загрузка файла qrc</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>Не удалось найти указанный файл qrc &lt;p&gt;&lt;b&gt;%1&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Желаете обновить его расположение?&lt;/p&gt;</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>New location for %1</source>
         <translation>Новое расположение %1</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Resource files (*.qrc)</source>
         <translation>Файл ресурсов (*.qrc)</translation>
     </message>
@@ -6131,112 +5029,90 @@
 <context>
     <name>qdesigner_internal::QDesignerTaskMenu</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_taskmenu.cpp" line="+68"/>
         <source>Change objectName...</source>
         <translation>Изменить objectName...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Change toolTip...</source>
         <translation>Изменить toolTip...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Change whatsThis...</source>
         <translation>Изменить whatsThis...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Change styleSheet...</source>
         <translation>Изменить styleSheet...</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Create Menu Bar</source>
         <translation>Создать панель меню</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Add Tool Bar</source>
         <translation>Добавить панель инструментов</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Create Status Bar</source>
         <translation>Создать строку состояния</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Remove Status Bar</source>
         <translation>Удалить строку состояния</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Change script...</source>
         <translation>Изменить сценарий...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Change signals/slots...</source>
         <translation>Изменить сигналы/слоты...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Go to slot...</source>
         <translation>Перейти к слоту...</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Size Constraints</source>
         <translation>Ограничения размера</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Set Minimum Width</source>
         <translation>Установить минимальную ширину</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Set Minimum Height</source>
         <translation>Установить минимальную высоту</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Set Minimum Size</source>
         <translation>Установить минимальный размер</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Set Maximum Width</source>
         <translation>Установить максимальную ширину</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Set Maximum Height</source>
         <translation>Установить максимальную высоту</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Set Maximum Size</source>
         <translation>Установить максимальный размер</translation>
     </message>
     <message>
-        <location line="+235"/>
         <source>Edit ToolTip</source>
         <translation>Правка текста всплывающей подсказки</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Edit WhatsThis</source>
         <translation>Правка текста подсказки режима &quot;Что это?&quot;</translation>
     </message>
     <message>
-        <location line="+144"/>
         <source>no signals available</source>
         <translation>Нет доступных сигналов</translation>
     </message>
     <message numerus="yes">
-        <location line="+67"/>
         <source>Set size constraint on %n widget(s)</source>
         <translation>
             <numerusform>Установка ограничений размера для %n виджета</numerusform>
@@ -6248,42 +5124,34 @@
 <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>Неожиданный элемент &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>Возникла ошибка разбора в строке %1 позиции %2 кода XML, определённого для виджета %3: %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>Код XML, определённый для виджета %1, не содержит каких-либо элементов виджетов.
 %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>Обнаружена ошибка в строке %1 из %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>Обнаружен неожиданный элемент &lt;%1&gt; вместо &lt;widget&gt; или &lt;ui&gt;</translation>
     </message>
     <message>
-        <location line="+19"/>
         <source>Unexpected end of file encountered when parsing widgets.</source>
         <translation>Файл неожиданно закончился при разборе виджетов.</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>A widget element could not be found.</source>
         <translation>Не удалось обнаружить элемент виджета.</translation>
     </message>
@@ -6291,73 +5159,58 @@
 <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>Оттенок</translation>
     </message>
     <message>
-        <location line="-3"/>
         <source>Sat</source>
         <translation>Насыщ</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Val</source>
         <translation>Знач</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Saturation</source>
         <translation>Насыщенность</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Value</source>
         <translation>Значение</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>Красный</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Green</source>
         <translation>Зелёный</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Blue</source>
         <translation>Синий</translation>
     </message>
@@ -6365,27 +5218,22 @@
 <context>
     <name>qdesigner_internal::RichTextEditorDialog</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/richtexteditor.cpp" line="+436"/>
         <source>Edit text</source>
         <translation>Правка текста</translation>
     </message>
     <message>
-        <location line="+23"/>
         <source>Rich Text</source>
         <translation>Форматированный текст</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Source</source>
         <translation type="unfinished">Исходник</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>&amp;OK</source>
         <translation>&amp;ОК</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>&amp;Cancel</source>
         <translation>От&amp;мена</translation>
     </message>
@@ -6393,72 +5241,58 @@
 <context>
     <name>qdesigner_internal::RichTextEditorToolBar</name>
     <message>
-        <location line="-302"/>
         <source>Bold</source>
         <translation>Жирный</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>CTRL+B</source>
         <translation></translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Italic</source>
         <translation>Курсив</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>CTRL+I</source>
         <translation></translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Underline</source>
         <translation>Подчёркнутый</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>CTRL+U</source>
         <translation></translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>Left Align</source>
         <translation>По левому краю</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Center</source>
         <translation>По центру</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Right Align</source>
         <translation>По правому краю</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Justify</source>
         <translation>По ширине</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Superscript</source>
         <translation>Верхний индекс</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Subscript</source>
         <translation>Нижний индекс</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Insert &amp;Link</source>
         <translation>Вставить &amp;ссылку</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Insert &amp;Image</source>
         <translation>Вставить &amp;изображение</translation>
     </message>
@@ -6466,17 +5300,14 @@
 <context>
     <name>qdesigner_internal::ScriptDialog</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/scriptdialog.cpp" line="+66"/>
         <source>Edit script</source>
         <translation>Правка сценария</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>&lt;html&gt;Укажите сценарий Qt, который должен выполняться при загрузке формы.&lt;br&gt;Виджет и его дочерние виджеты доступны через переменные &lt;i&gt;widget&lt;/i&gt; и &lt;i&gt;childWidgets&lt;/i&gt;.</translation>
     </message>
     <message>
-        <location line="+51"/>
         <source>Syntax error</source>
         <translation>Синтаксическая ошибка</translation>
     </message>
@@ -6484,7 +5315,6 @@
 <context>
     <name>qdesigner_internal::ScriptErrorDialog</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/scripterrordialog.cpp" line="+27"/>
         <source>Script errors</source>
         <translation>Ошибки сценария</translation>
     </message>
@@ -6492,23 +5322,18 @@
 <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>Уже есть слот с сигнатурой &apos;%1&apos;.</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>There is already a signal with the signature &apos;%1&apos;.</source>
         <translation>Уже есть сигнал с сигнатурой &apos;%1&apos;.</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>%1 - Duplicate Signature</source>
         <translation>%1 - Повторяющаяся сигнатура</translation>
     </message>
     <message>
-        <location line="+21"/>
-        <location line="+76"/>
         <source>Signals/Slots of %1</source>
         <translation>Сигналы/слоты %1</translation>
     </message>
@@ -6516,12 +5341,10 @@
 <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>Изменение сигналов/слотов</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>F4</source>
         <translation></translation>
     </message>
@@ -6529,7 +5352,6 @@
 <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>Изменение сигналов/слотов</translation>
     </message>
@@ -6537,7 +5359,6 @@
 <context>
     <name>qdesigner_internal::StatusBarTaskMenu</name>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/toolbar_taskmenu.cpp" line="+81"/>
         <source>Remove</source>
         <translation>Удалить</translation>
     </message>
@@ -6545,7 +5366,6 @@
 <context>
     <name>qdesigner_internal::StringListEditorButton</name>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/stringlisteditorbutton.cpp" line="+56"/>
         <source>Change String List</source>
         <translation>Изменить список строк</translation>
     </message>
@@ -6553,38 +5373,30 @@
 <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>Корректная таблица стилей</translation>
     </message>
     <message>
-        <location line="-278"/>
         <source>Add Resource...</source>
         <translation>Добавить ресурс...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Add Gradient...</source>
         <translation>Добавить градиент...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Add Color...</source>
         <translation>Добавить цвет...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Add Font...</source>
         <translation>Добавить шрифт...</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Edit Style Sheet</source>
         <translation>Правка таблицы стилей</translation>
     </message>
     <message>
-        <location line="+276"/>
         <source>Invalid Style Sheet</source>
         <translation>Некорректная таблица стилей</translation>
     </message>
@@ -6592,27 +5404,22 @@
 <context>
     <name>qdesigner_internal::TabOrderEditor</name>
     <message>
-        <location filename="../tools/designer/src/components/tabordereditor/tabordereditor.cpp" line="+363"/>
         <source>Start from Here</source>
         <translation>Начать отсюда</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Restart</source>
         <translation>Перезапустить</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Tab Order List...</source>
         <translation>Список порядка переключений...</translation>
     </message>
     <message>
-        <location line="+44"/>
         <source>Tab Order List</source>
         <translation>Список порядка переключений</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Tab Order</source>
         <translation>Порядок переключений</translation>
     </message>
@@ -6620,7 +5427,6 @@
 <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>Изменение порядка переключений</translation>
     </message>
@@ -6628,7 +5434,6 @@
 <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>Изменить порядок переключений</translation>
     </message>
@@ -6636,48 +5441,38 @@
 <context>
     <name>qdesigner_internal::TableWidgetEditor</name>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/tablewidgeteditor.ui"/>
-        <location filename="../tools/designer/src/components/taskmenu/tablewidgeteditor.cpp" line="+218"/>
         <source>Properties &amp;&gt;&gt;</source>
         <translation>Свойства &amp;&gt;&gt;</translation>
     </message>
     <message>
-        <location/>
         <source>Edit Table Widget</source>
         <translation>Правка табличного виджета</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Items</source>
         <translation>&amp;Элементы</translation>
     </message>
     <message>
-        <location/>
         <source>Table Items</source>
         <translation>Элементы таблицы</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/tablewidgeteditor.cpp" line="-151"/>
         <source>New Column</source>
         <translation>Новый столбец</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>New Row</source>
         <translation>Новая строка</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>&amp;Columns</source>
         <translation>С&amp;толбцы</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Rows</source>
         <translation>&amp;Строки</translation>
     </message>
     <message>
-        <location line="+137"/>
         <source>Properties &amp;&lt;&lt;</source>
         <translation>Свойства &amp;&lt;&lt;</translation>
     </message>
@@ -6685,7 +5480,6 @@
 <context>
     <name>qdesigner_internal::TableWidgetTaskMenu</name>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/tablewidget_taskmenu.cpp" line="+64"/>
         <source>Edit Items...</source>
         <translation>Изменить элементы...</translation>
     </message>
@@ -6693,22 +5487,18 @@
 <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>Выберите каталог для сохранения шаблонов</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/templateoptionspage.ui"/>
         <source>Form</source>
         <translation>Форма</translation>
     </message>
     <message>
-        <location/>
         <source>Additional Template Paths</source>
         <translation>Дополнительные пути к шаблонам</translation>
     </message>
     <message>
-        <location/>
         <source>...</source>
         <translation>...</translation>
     </message>
@@ -6716,22 +5506,18 @@
 <context>
     <name>qdesigner_internal::TextEditTaskMenu</name>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/textedit_taskmenu.cpp" line="+58"/>
         <source>Edit HTML</source>
         <translation>Правка HTML</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Change HTML...</source>
         <translation>Изменить HTML...</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Edit Text</source>
         <translation>Правка текста</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Change Plain Text...</source>
         <translation>Правка обычного текста...</translation>
     </message>
@@ -6739,22 +5525,18 @@
 <context>
     <name>qdesigner_internal::TextEditor</name>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/designerpropertymanager.cpp" line="-204"/>
         <source>Choose Resource...</source>
         <translation>Выбрать ресурс...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Choose File...</source>
         <translation>Выбрать файл...</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>...</source>
         <translation>...</translation>
     </message>
     <message>
-        <location line="+118"/>
         <source>Choose a File</source>
         <translation>Выбор файла</translation>
     </message>
@@ -6762,27 +5544,22 @@
 <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>Вставить разделитель перед &apos;%1&apos;</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Append Separator</source>
         <translation>Добавить разделитель</translation>
     </message>
     <message>
-        <location line="+12"/>
         <source>Remove action &apos;%1&apos;</source>
         <translation>Удалить действие &apos;%1&apos;</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Remove Toolbar &apos;%1&apos;</source>
         <translation>Удалить панель инструментов &apos;%1&apos;</translation>
     </message>
     <message>
-        <location line="+58"/>
         <source>Insert Separator</source>
         <translation>Вставить разделитель</translation>
     </message>
@@ -6790,125 +5567,98 @@
 <context>
     <name>qdesigner_internal::TreeWidgetEditor</name>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/treewidgeteditor.cpp" line="+68"/>
         <source>New Column</source>
         <translation>Новый столбец</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>&amp;Columns</source>
         <translation>С&amp;толбцы</translation>
     </message>
     <message>
-        <location line="+69"/>
         <source>Per column properties</source>
         <translation>Свойства столбца</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Common properties</source>
         <translation>Общие свойства</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>Новый элемент</translation>
     </message>
     <message>
-        <location/>
-        <location filename="../tools/designer/src/components/taskmenu/treewidgeteditor.cpp" line="+19"/>
         <source>New Subitem</source>
         <translation>Новый дочерний элемент</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/treewidgeteditor.cpp" line="+175"/>
         <source>Properties &amp;&lt;&lt;</source>
         <translation>Свойства &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>Свойства &amp;&gt;&gt;</translation>
     </message>
     <message>
-        <location/>
         <source>Edit Tree Widget</source>
         <translation type="unfinished">Изменение виджета Дерево</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Items</source>
         <translation>&amp;Элементы</translation>
     </message>
     <message>
-        <location/>
         <source>Tree Items</source>
         <translation>Элементы дерева</translation>
     </message>
     <message>
-        <location/>
         <source>1</source>
         <translation>1</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;New</source>
         <translation>&amp;Новый</translation>
     </message>
     <message>
-        <location/>
         <source>New &amp;Subitem</source>
         <translation>Новый &amp;дочерний элемент</translation>
     </message>
     <message>
-        <location/>
         <source>Delete Item</source>
         <translation>Удалить элемент</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Delete</source>
         <translation>&amp;Удалить</translation>
     </message>
     <message>
-        <location/>
         <source>Move Item Left (before Parent Item)</source>
         <translation>Переместить элемент влево (перед родительским)</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>Переместить элемент вправо (сделать первым дочерним элементом соседнего элемента)</translation>
     </message>
     <message>
-        <location/>
         <source>R</source>
         <translation></translation>
     </message>
     <message>
-        <location/>
         <source>Move Item Up</source>
         <translation>Переместить элемент вверх</translation>
     </message>
     <message>
-        <location/>
         <source>U</source>
         <translation>U</translation>
     </message>
     <message>
-        <location/>
         <source>Move Item Down</source>
         <translation>Переместить элемент вниз</translation>
     </message>
     <message>
-        <location/>
         <source>D</source>
         <translation>D</translation>
     </message>
@@ -6916,7 +5666,6 @@
 <context>
     <name>qdesigner_internal::TreeWidgetTaskMenu</name>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/treewidget_taskmenu.cpp" line="+63"/>
         <source>Edit Items...</source>
         <translation>Изменить элементы...</translation>
     </message>
@@ -6924,7 +5673,6 @@
 <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>Предупреждение: Не удалось создать виджет. Это могло произойти из-за некорректного XML пользовательского виджета.</translation>
     </message>
@@ -6932,42 +5680,34 @@
 <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>Пользовательские виджеты</translation>
     </message>
     <message>
-        <location line="+263"/>
         <source>Expand all</source>
         <translation>Развернуть всё</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Collapse all</source>
         <translation>Свернуть всё</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>List View</source>
         <translation>Список</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Icon View</source>
         <translation>Значки</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Remove</source>
         <translation>Удалить</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Edit name</source>
         <translation>Изменить имя</translation>
     </message>
@@ -6975,7 +5715,6 @@
 <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>Обнаружен пользовательский модуль виджета, имя класса (%1) которого совпадает с уже имеющимся.</translation>
     </message>
@@ -6983,7 +5722,6 @@
 <context>
     <name>qdesigner_internal::WidgetEditorTool</name>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/tool_widgeteditor.cpp" line="+67"/>
         <source>Edit Widgets</source>
         <translation>Изменение виджетов</translation>
     </message>
@@ -6991,34 +5729,28 @@
 <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>Пользовательская фабрика виджетов, зарегистрированная для класса %1, вернула 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>Обнаружено несоответствие имени класса при создании виджета с использованием пользовательской фабрики виджетов, зарегистрированной для класса %1. Она вернула виджет класса %2.</translation>
     </message>
     <message>
-        <location line="+99"/>
         <source>%1 Widget</source>
         <translation>Виджет %1</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">При создании компоновщика не удалось определить текущую страницу контейнера &apos;%1&apos; (%2). Это указывает на некорректность файла ui - возможно, компоновщик был создан для контейнерного виджета.</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>Попытка добавить компоновщик виджету &apos;%1&apos; (%2), у которого уже есть компоновщик типа %3.
 Это указывает на некорректность файла ui.</translation>
     </message>
     <message>
-        <location line="+211"/>
         <source>Cannot create style &apos;%1&apos;.</source>
         <translation>Не удалось создать стиль &apos;%1&apos;.</translation>
     </message>
@@ -7026,12 +5758,10 @@
 <context>
     <name>qdesigner_internal::WizardContainerWidgetTaskMenu</name>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/containerwidget_taskmenu.cpp" line="-49"/>
         <source>Next</source>
         <translation>Далее</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Back</source>
         <translation>Назад</translation>
     </message>
@@ -7039,7 +5769,6 @@
 <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>
@@ -7048,7 +5777,6 @@
 <context>
     <name>qdesigner_internal::ZoomablePreviewDeviceSkin</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/previewmanager.cpp" line="-270"/>
         <source>&amp;Zoom</source>
         <translation>Мас&amp;штаб</translation>
     </message>
--- a/translations/designer_sl.ts	Fri Sep 17 08:34:18 2010 +0300
+++ b/translations/designer_sl.ts	Mon Oct 04 01:19:32 2010 +0300
@@ -1,30 +1,32 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!DOCTYPE TS>
 <TS version="2.0" language="sl_SI">
+    <extra-po-header-po_revision_date>2010-08-28 14:05+0200</extra-po-header-po_revision_date>
+    <extra-po-headers>MIME-Version,Content-Type,Content-Transfer-Encoding,Plural-Forms,X-Language,X-Qt-Contexts,Last-Translator,PO-Revision-Date,Project-Id-Version,Language-Team,X-Generator</extra-po-headers>
+    <extra-po-header-x_generator>Lokalize 1.1</extra-po-header-x_generator>
+    <extra-po-header-language_team>Slovenian &lt;lugos-slo@lugos.si&gt;</extra-po-header-language_team>
+    <extra-po-header-project_id_version></extra-po-header-project_id_version>
+    <extra-po-header_comment># Jure Repinc &lt;jlp@holodeck1.com&gt;, 2010.</extra-po-header_comment>
+    <extra-po-header-last_translator>Jure Repinc &lt;jlp@holodeck1.com&gt;</extra-po-header-last_translator>
 <context>
     <name>AbstractFindWidget</name>
     <message>
-        <location filename="../tools/shared/findwidget/abstractfindwidget.cpp" line="+127"/>
         <source>&amp;Previous</source>
         <translation>&amp;Predhodni</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>&amp;Next</source>
         <translation>&amp;Naslednji</translation>
     </message>
     <message>
-        <location line="+24"/>
         <source>&amp;Case sensitive</source>
         <translation>O&amp;bčutljiv na velikost črk</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Whole &amp;words</source>
         <translation>&amp;Cele besede</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;Iskanje se nadaljuje na drugem koncu</translation>
     </message>
@@ -32,17 +34,14 @@
 <context>
     <name>AddLinkDialog</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/addlinkdialog.ui"/>
         <source>Insert Link</source>
         <translation>Vstavi povezavo</translation>
     </message>
     <message>
-        <location/>
         <source>Title:</source>
         <translation>Besedilo:</translation>
     </message>
     <message>
-        <location/>
         <source>URL:</source>
         <translation>URL:</translation>
     </message>
@@ -50,7 +49,6 @@
 <context>
     <name>AppFontDialog</name>
     <message>
-        <location filename="../tools/designer/src/designer/appfontdialog.cpp" line="+418"/>
         <source>Additional Fonts</source>
         <translation>Dodatne pisave</translation>
     </message>
@@ -58,37 +56,30 @@
 <context>
     <name>AppFontManager</name>
     <message>
-        <location line="-267"/>
         <source>&apos;%1&apos; is not a file.</source>
         <translation>»%1« ni datoteka.</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>The font file &apos;%1&apos; does not have read permissions.</source>
         <translation>Datoteka s pisavo »%1« nima dovoljenj za branje.</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>The font file &apos;%1&apos; is already loaded.</source>
         <translation>Datoteka s pisavo »%1« je že naložena.</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>The font file &apos;%1&apos; could not be loaded.</source>
         <translation>Datoteke s pisavo »%1« ni bilo moč naložiti.</translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>&apos;%1&apos; is not a valid font id.</source>
         <translation>»%1« ni veljaven ID za pisavo.</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>There is no loaded font matching the id &apos;%1&apos;.</source>
         <translation>Ni naložene pisave, ki bi se ujemala z ID-jem »%1«.</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>The font &apos;%1&apos; (%2) could not be unloaded.</source>
         <translation>Pisave »%1« (%2) ni bilo moč odstraniti.</translation>
     </message>
@@ -96,52 +87,42 @@
 <context>
     <name>AppFontWidget</name>
     <message>
-        <location line="+26"/>
         <source>Fonts</source>
         <translation>Pisave</translation>
     </message>
     <message>
-        <location line="+58"/>
         <source>Add font files</source>
         <translation>Dodaj datoteke s pisavami</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Remove current font file</source>
         <translation>Odstrani trenutno datoteko s pisavo</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Remove all font files</source>
         <translation>Odstrani vse datoteke s pisavami</translation>
     </message>
     <message>
-        <location line="+19"/>
         <source>Add Font Files</source>
         <translation>Dodaj datoteke s pisavami</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Font files (*.ttf)</source>
         <translation>Datoteke s pisavami (*.ttf)</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>Error Adding Fonts</source>
         <translation>Napaka pri dodajanju pisav</translation>
     </message>
     <message>
-        <location line="+24"/>
         <source>Error Removing Fonts</source>
         <translation>Napaka pri odstranjevanju pisav</translation>
     </message>
     <message>
-        <location line="+22"/>
         <source>Remove Fonts</source>
         <translation>Odstrani pisave</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Would you like to remove all fonts?</source>
         <translation>Ali želite odstraniti vse pisave?</translation>
     </message>
@@ -149,12 +130,10 @@
 <context>
     <name>AppearanceOptionsWidget</name>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_appearanceoptions.ui"/>
         <source>Form</source>
         <translation>Obrazec</translation>
     </message>
     <message>
-        <location/>
         <source>User Interface Mode</source>
         <translation>Način uporabniškega vmesnika</translation>
     </message>
@@ -162,17 +141,14 @@
 <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>Ni moč poslati zahtevka: pomočnik se ne odziva.</translation>
     </message>
     <message>
-        <location line="+39"/>
         <source>The binary &apos;%1&apos; does not exist.</source>
         <translation>Program »%1« ne obstaja.</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Unable to launch assistant (%1).</source>
         <translation>Ni moč zaganti pomočnika (%1).</translation>
     </message>
@@ -180,92 +156,74 @@
 <context>
     <name>BrushPropertyManager</name>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/brushpropertymanager.cpp" line="+52"/>
         <source>No brush</source>
         <translation>Brez čopiča</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Solid</source>
         <translation>Enobarven</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Dense 1</source>
         <translation>Gost 1</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Dense 2</source>
         <translation>Gost 2</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Dense 3</source>
         <translation>Gost 3</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Dense 4</source>
         <translation>Gost 4</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Dense 5</source>
         <translation>Gost 5</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Dense 6</source>
         <translation>Gost 6</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Dense 7</source>
         <translation>Gost 7</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Horizontal</source>
         <translation>Vodoraven</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Vertical</source>
         <translation>Navpičen</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Cross</source>
         <translation>Križ</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Backward diagonal</source>
         <translation>Poševen nazaj</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Forward diagonal</source>
         <translation>Poševen naprej</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Crossing diagonal</source>
         <translation>Poševen prekrižan</translation>
     </message>
     <message>
-        <location line="+83"/>
         <source>Style</source>
         <translation>Slog</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>Color</source>
         <translation>Barva</translation>
     </message>
     <message>
-        <location line="+105"/>
         <source>[%1, %2]</source>
         <translation>[%1, %2]</translation>
     </message>
@@ -273,360 +231,280 @@
 <context>
     <name>Command</name>
     <message>
-        <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditor.cpp" line="+208"/>
-        <location line="+258"/>
         <source>Change signal</source>
         <translation>Spremeni signal</translation>
     </message>
     <message>
-        <location line="-256"/>
-        <location line="+268"/>
         <source>Change slot</source>
         <translation>Spremeni režo</translation>
     </message>
     <message>
-        <location line="-220"/>
         <source>Change signal-slot connection</source>
         <translation>Spremeni povezavo signal-reža</translation>
     </message>
     <message>
-        <location line="+234"/>
         <source>Change sender</source>
         <translation>Spremeni pošiljatelja</translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>Change receiver</source>
         <translation>Spremeni prejemnika</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/connectionedit.cpp" line="+143"/>
         <source>Add connection</source>
         <translation>Dodaj povezavo</translation>
     </message>
     <message>
-        <location line="+54"/>
         <source>Adjust connection</source>
         <translation>Prilagodi povezavo</translation>
     </message>
     <message>
-        <location line="+19"/>
         <source>Delete connections</source>
         <translation>Zbriši povezave</translation>
     </message>
     <message>
-        <location line="+58"/>
         <source>Change source</source>
         <translation>Spremeni izvor</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Change target</source>
         <translation>Spremeni cilj</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_command.cpp" line="+149"/>
         <source>Insert &apos;%1&apos;</source>
         <translation>Vstavi »%1«</translation>
     </message>
     <message>
-        <location line="+167"/>
         <source>Raise &apos;%1&apos;</source>
         <translation>Dvigni »%1«</translation>
     </message>
     <message>
-        <location line="+33"/>
         <source>Lower &apos;%1&apos;</source>
         <translation>Spusti »%1«</translation>
     </message>
     <message>
-        <location line="+113"/>
         <source>Delete &apos;%1&apos;</source>
         <translation>Zbriši »%1«</translation>
     </message>
     <message>
-        <location line="+119"/>
         <source>Reparent &apos;%1&apos;</source>
         <translation>Spremeni starša od »%1«</translation>
     </message>
     <message>
-        <location line="+53"/>
         <source>Promote to custom widget</source>
         <translation>Povišaj v gradnik po meri</translation>
     </message>
     <message>
-        <location line="+42"/>
         <source>Demote from custom widget</source>
         <translation>Ponižaj iz gradnika po meri</translation>
     </message>
     <message>
-        <location line="+79"/>
         <source>Lay out using grid</source>
         <translation>Razporedi z uporabo mreže</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Lay out vertically</source>
         <translation>Razporedi navpično</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Lay out horizontally</source>
         <translation>Razporedi vodoravno</translation>
     </message>
     <message>
-        <location line="+41"/>
         <source>Break layout</source>
         <translation>Razbij razporeditev</translation>
     </message>
     <message>
-        <location line="+240"/>
-        <location line="+235"/>
-        <location line="+78"/>
         <source>Move Page</source>
         <translation>Premakni stran</translation>
     </message>
     <message>
-        <location line="-279"/>
-        <location line="+123"/>
-        <location line="+188"/>
-        <location line="+666"/>
         <source>Delete Page</source>
         <translation>Zbriši stran</translation>
     </message>
     <message>
-        <location line="-939"/>
-        <location line="+123"/>
         <source>Page</source>
         <translation>Stran</translation>
     </message>
     <message>
-        <location line="+860"/>
         <source>page</source>
         <translation>stran</translation>
     </message>
     <message>
-        <location line="-978"/>
-        <location line="+123"/>
-        <location line="+186"/>
-        <location line="+667"/>
         <source>Insert Page</source>
         <translation>Vstavi stran</translation>
     </message>
     <message>
-        <location line="-647"/>
         <source>Change Tab order</source>
         <translation>Spremeni vrstni red tabulatorke</translation>
     </message>
     <message>
-        <location line="+28"/>
         <source>Create Menu Bar</source>
         <translation>Ustvari menijsko vrstico</translation>
     </message>
     <message>
-        <location line="+44"/>
         <source>Delete Menu Bar</source>
         <translation>Zbriši menijsko vrstico</translation>
     </message>
     <message>
-        <location line="+47"/>
         <source>Create Status Bar</source>
         <translation>Ustvari vrstico stanja</translation>
     </message>
     <message>
-        <location line="+42"/>
         <source>Delete Status Bar</source>
         <translation>Zbriši vrstico stanja</translation>
     </message>
     <message>
-        <location line="+45"/>
         <source>Add Tool Bar</source>
         <translation>Dodaj orodjarno</translation>
     </message>
     <message>
-        <location line="+59"/>
         <source>Add Dock Window</source>
         <translation>Dodaj podokno</translation>
     </message>
     <message>
-        <location line="+53"/>
         <source>Adjust Size of &apos;%1&apos;</source>
         <translation>Prilagodi velikost za »%1«</translation>
     </message>
     <message>
-        <location line="+57"/>
         <source>Change Form Layout Item Geometry</source>
         <translation>Spremeni geometrijo razporeditve na obrazcu</translation>
     </message>
     <message>
-        <location line="+95"/>
         <source>Change Layout Item Geometry</source>
         <translation>Spremeni geometrijo razporeda</translation>
     </message>
     <message>
-        <location line="+576"/>
         <source>Change Table Contents</source>
         <translation>Spremeni vsebino tabele</translation>
     </message>
     <message>
-        <location line="+107"/>
         <source>Change Tree Contents</source>
         <translation>Spremeni vsebino drevesa</translation>
     </message>
     <message>
-        <location line="+74"/>
-        <location line="+146"/>
         <source>Add action</source>
         <translation>Dodaj dejanje</translation>
     </message>
     <message>
-        <location line="-120"/>
-        <location line="+126"/>
         <source>Remove action</source>
         <translation>Odstrani dejanje</translation>
     </message>
     <message>
-        <location line="+53"/>
         <source>Add menu</source>
         <translation>Dodaj meni</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Remove menu</source>
         <translation>Odstrani meni</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Create submenu</source>
         <translation>Ustvari podmeni</translation>
     </message>
     <message>
-        <location line="+31"/>
         <source>Delete Tool Bar</source>
         <translation>Zbriši orodjarno</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_menu.cpp" line="+1195"/>
         <source>Set action text</source>
         <translation>Nastavi besedilo dejanja</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Insert action</source>
         <translation>Vstavi dejanje</translation>
     </message>
     <message>
-        <location line="+89"/>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_menubar.cpp" line="+907"/>
         <source>Move action</source>
         <translation>Premakni dejanje</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_menubar.cpp" line="-424"/>
         <source>Change Title</source>
         <translation>Spremeni naslov</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Insert Menu</source>
         <translation>Vstavi meni</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/signalslotdialog.cpp" line="+202"/>
         <source>Change signals/slots</source>
         <translation>Spremeni signale/reže</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_command.cpp" line="-867"/>
         <source>Delete Subwindow</source>
         <translation>Zbriši podokno</translation>
     </message>
     <message>
-        <location line="+44"/>
         <source>Insert Subwindow</source>
         <translation>Vstavi 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>Spremeni vrstni red v smeri Z od »%1«</translation>
     </message>
     <message>
-        <location line="+625"/>
         <source>Simplify Grid Layout</source>
         <translation>Poenostavi razporeditev v mrežo</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/button_taskmenu.cpp" line="+221"/>
         <source>Create button group</source>
         <translation>Ustvari skupino gumbov</translation>
     </message>
     <message>
-        <location line="+27"/>
         <source>Break button group</source>
         <translation>Razbij skupino gumbov</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Break button group &apos;%1&apos;</source>
         <translation>Razbij skupino gumbov »%1«</translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>Add buttons to group</source>
         <translation>Dodaj gumbe v skupino</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>
+        <extracomment>Command description for adding buttons to a QButtonGroup
+</extracomment>
         <translation>Dodaj »%1« v »%2«</translation>
     </message>
     <message>
-        <location line="+14"/>
         <source>Remove buttons from group</source>
         <translation>Odstrani gumbe iz te skupine</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>
+        <extracomment>Command description for removing buttons from a QButtonGroup
+</extracomment>
         <translation>Odstrani »%1« iz »%2«</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>
+        <extracomment>MorphWidgetCommand description
+</extracomment>
         <translation>Pretvori %1/»%2« v %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>Spremeni razpored od »%1« iz %2 v %3</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/scriptcommand.cpp" line="+55"/>
         <source>Change script</source>
         <translation>Spremeni 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>Spremenil »%1« od »%2«</translation>
     </message>
     <message numerus="yes">
-        <location line="+3"/>
         <source>Changed &apos;%1&apos; of %n objects</source>
         <translation>
             <numerusform>Spremenil »%1« od %n objekta</numerusform>
@@ -636,12 +514,10 @@
         </translation>
     </message>
     <message>
-        <location line="+76"/>
         <source>Reset &apos;%1&apos; of &apos;%2&apos;</source>
         <translation>Ponastavi »%1« od »%2«</translation>
     </message>
     <message numerus="yes">
-        <location line="+3"/>
         <source>Reset &apos;%1&apos; of %n objects</source>
         <translation>
             <numerusform>Ponastavi »%1« od %n objekta</numerusform>
@@ -651,12 +527,10 @@
         </translation>
     </message>
     <message>
-        <location line="+89"/>
         <source>Add dynamic property &apos;%1&apos; to &apos;%2&apos;</source>
         <translation>Dodaj dinamično lastnost »%1« k »%2«</translation>
     </message>
     <message numerus="yes">
-        <location line="+3"/>
         <source>Add dynamic property &apos;%1&apos; to %n objects</source>
         <translation>
             <numerusform>Dodaj dinamično lastnost »%1« k %n objektu</numerusform>
@@ -666,12 +540,10 @@
         </translation>
     </message>
     <message>
-        <location line="+86"/>
         <source>Remove dynamic property &apos;%1&apos; from &apos;%2&apos;</source>
         <translation>Odstrani dinamično lastnost »%1« od »%2«</translation>
     </message>
     <message numerus="yes">
-        <location line="+3"/>
         <source>Remove dynamic property &apos;%1&apos; from %n objects</source>
         <translation>
             <numerusform>Odstrani dinamično lastnost »%1« od %n objekta</numerusform>
@@ -684,22 +556,18 @@
 <context>
     <name>ConnectDialog</name>
     <message>
-        <location filename="../tools/designer/src/components/signalsloteditor/connectdialog.ui"/>
         <source>Configure Connection</source>
         <translation>Nastavi povezavo</translation>
     </message>
     <message>
-        <location/>
         <source>GroupBox</source>
         <translation>Skupina</translation>
     </message>
     <message>
-        <location/>
         <source>Edit...</source>
         <translation>Urejanje ...</translation>
     </message>
     <message>
-        <location/>
         <source>Show signals and slots inherited from QWidget</source>
         <translation>Prikaži signale in reže podedovane od QWidget</translation>
     </message>
@@ -707,17 +575,14 @@
 <context>
     <name>ConnectionDelegate</name>
     <message>
-        <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditorwindow.cpp" line="+643"/>
         <source>&lt;object&gt;</source>
         <translation>&lt;objekt&gt;</translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>&lt;signal&gt;</source>
         <translation>&lt;signal&gt;</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>&lt;slot&gt;</source>
         <translation>&lt;reža&gt;</translation>
     </message>
@@ -725,110 +590,93 @@
 <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>
+        <extracomment>Embedded device standard screen resolution
+</extracomment>
         <translation>Običajna (96 × 96)</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Greenphone (179 x 185)</source>
-        <extracomment>Embedded device screen resolution</extracomment>
+        <extracomment>Embedded device screen resolution
+</extracomment>
         <translation>Greenphone (179 × 185)</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>High (192 x 192)</source>
-        <extracomment>Embedded device high definition screen resolution</extracomment>
+        <extracomment>Embedded device high definition screen resolution
+</extracomment>
         <translation>Visoka (192 × 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>Ta datoteka vsebuje praznine, ki so na vrhu.&lt;br&gt;&lt;b&gt;Niso&lt;/b&gt; bile shranjene v ta obrazec.</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Perhaps you forgot to create a layout?</source>
         <translation>Morda ste pozabili ustvariti razpored?</translation>
     </message>
     <message>
-        <location line="+173"/>
         <source>Invalid UI file: The root element &lt;ui&gt; is missing.</source>
         <translation>Neveljavna datoteka UI: manjka vrhnji element &lt;ui&gt;.</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>An error has occurred while reading the UI file at line %1, column %2: %3</source>
         <translation>Prišlo je do napake med branjem datoteke UI v vrstici %1, stolpcu %2: %3</translation>
     </message>
     <message>
-        <location line="+26"/>
         <source>This file cannot be read because it was created using %1.</source>
         <translation>Te datoteke ni moč prebrati, ker je bila ustvarjena z %1.</translation>
     </message>
     <message>
-        <location line="+14"/>
         <source>This file was created using Designer from Qt-%1 and cannot be read.</source>
         <translation>Ta datoteka je bila ustvarjena s Qt Designerjem iz Qt %1 in je ni moč prebrati.</translation>
     </message>
     <message>
-        <location line="+82"/>
         <source>This file cannot be read because the extra info extension failed to load.</source>
         <translation>Te datoteke ni moč prebrati, ker je spodletelo nalaganje razširitve za dodatne podatke.</translation>
     </message>
     <message>
-        <location line="-52"/>
         <source>The converted file could not be read.</source>
         <translation>Pretvorjene datoteke ni bilo moč prebrati.</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>Ta datoteka je bila ustvarjena s Qt Designerjem iz Qt %1 in bo pretvorjena v novo obliko.</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>Stara oblika ni bila spremenjena, vendar boste novo obliko morali shraniti pod novim imenom.</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>This file was created using Designer from Qt-%1 and could not be read:
 %2</source>
         <translation>Ta datoteka je bila ustvarjena s Qt Designerjem iz Qt %1 in je ni bilo moč prebrati:
 %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>Poženite jo skozi &lt;b&gt;uic3&amp;nbsp;-convert&lt;/b&gt; in jo tako pretvorite v zapis UI za Qt 4.</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qsimpleresource.cpp" line="+339"/>
         <source>Custom Widgets</source>
         <translation>Gradniki po meri</translation>
     </message>
     <message>
-        <location line="+12"/>
         <source>Promoted Widgets</source>
         <translation>Povišani gradniki</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_utils.cpp" line="+682"/>
         <source>Unable to launch %1.</source>
         <translation>Ni moč zagnati %1.</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>%1 timed out.</source>
         <translation>Čas za %1 je potekel.</translation>
     </message>
@@ -836,12 +684,10 @@
 <context>
     <name>DesignerMetaEnum</name>
     <message>
-        <location line="-513"/>
         <source>%1 is not a valid enumeration value of &apos;%2&apos;.</source>
         <translation>%1 ni veljavna vrednost številčenja od »%2«.</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>»%1« ne more biti pretvorjeno v vrednost številčenja vrste »%2«.</translation>
     </message>
@@ -849,7 +695,6 @@
 <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>»%1« ne more biti pretvorjeno v vrednost zastavice vrste »%2«.</translation>
     </message>
@@ -857,13 +702,12 @@
 <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>
+        <extracomment>Reading a number for an embedded device profile
+</extracomment>
         <translation>»%1« ni številka.</translation>
     </message>
     <message>
-        <location line="+23"/>
         <source>An invalid tag &lt;%1&gt; was encountered.</source>
         <translation>Dosežena je bila neveljavna oznaka &lt;%1&gt;.</translation>
     </message>
@@ -871,27 +715,22 @@
 <context>
     <name>DeviceProfileDialog</name>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/deviceprofiledialog.ui"/>
         <source>&amp;Family</source>
         <translation>&amp;Družina</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Point Size</source>
-        <translation>&amp;Velikost točke</translation>
-    </message>
-    <message>
-        <location/>
+        <translation>&amp;Velikost v točkah</translation>
+    </message>
+    <message>
         <source>Style</source>
         <translation>Slog</translation>
     </message>
     <message>
-        <location/>
         <source>Device DPI</source>
         <translation>Ločljivost (točk/palec)</translation>
     </message>
     <message>
-        <location/>
         <source>Name</source>
         <translation>Ime</translation>
     </message>
@@ -899,57 +738,46 @@
 <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>Slikovne datoteke »%1« ni bilo moč naložiti.</translation>
     </message>
     <message>
-        <location line="+64"/>
         <source>The skin directory &apos;%1&apos; does not contain a configuration file.</source>
         <translation>Mapa s temo »%1« ne vsebuje nastavitvene datoteke.</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>The skin configuration file &apos;%1&apos; could not be opened.</source>
         <translation>Nastavitvene datoteke za temo »%1« ni bilo moč odpreti.</translation>
     </message>
     <message>
-        <location line="+76"/>
         <source>Syntax error: %1</source>
         <translation>Skladenjska napaka: %1</translation>
     </message>
     <message>
-        <location line="+54"/>
         <source>The skin cursor image file &apos;%1&apos; does not exist.</source>
         <translation>Slikovna datoteka s kazalcem za temo »%1« ne obstaja.</translation>
     </message>
     <message>
-        <location line="+25"/>
         <source>Syntax error in area definition: %1</source>
         <translation>Skladenjska napaka pri določitvi območja: %1</translation>
     </message>
     <message>
-        <location line="+38"/>
         <source>Mismatch in number of areas, expected %1, got %2.</source>
         <translation>Neujemanje v številu območij, pričakovano %1, dobljeno %2.</translation>
     </message>
     <message>
-        <location line="-187"/>
         <source>The skin configuration file &apos;%1&apos; could not be read: %2</source>
         <translation>Nastavitvene datoteke za temo »%1« ni bilo moč prebrati: %2</translation>
     </message>
     <message>
-        <location line="+91"/>
         <source>The skin &quot;up&quot; image file &apos;%1&apos; does not exist.</source>
         <translation>Datoteka slike »up« teme »%1« ne obstaja.</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>The skin &quot;down&quot; image file &apos;%1&apos; does not exist.</source>
         <translation>Datoteka slike »down« teme »%1« ne obstaja.</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>The skin &quot;closed&quot; image file &apos;%1&apos; does not exist.</source>
         <translation>Datoteka slike »closed« teme »%1« ne obstaja.</translation>
     </message>
@@ -957,74 +785,65 @@
 <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>
+        <extracomment>Format embedded device profile description
+</extracomment>
         <translation>&lt;html&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Pisava&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;Slog&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;Ločljivost&lt;/b&gt;&lt;/td&gt;&lt;td&gt;%4 × %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>
+        <extracomment>Tab in preferences dialog
+</extracomment>
         <translation>Vgrajena zasnova</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>Device Profiles</source>
-        <extracomment>EmbeddedOptionsControl group box&quot;</extracomment>
+        <extracomment>EmbeddedOptionsControl group box&quot;
+</extracomment>
         <translation>Profili naprav</translation>
     </message>
 </context>
 <context>
     <name>FontPanel</name>
     <message>
-        <location filename="../tools/shared/fontpanel/fontpanel.cpp" line="+63"/>
         <source>Font</source>
         <translation>Pisava</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>&amp;Writing system</source>
         <translation>S&amp;istem pisanja</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>&amp;Family</source>
         <translation>&amp;Družina</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>&amp;Style</source>
         <translation>&amp;Slog</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>&amp;Point size</source>
-        <translation>&amp;Velikost točke</translation>
+        <translation>&amp;Velikost v točkah</translation>
     </message>
 </context>
 <context>
     <name>FontPropertyManager</name>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/fontpropertymanager.cpp" line="+62"/>
         <source>PreferDefault</source>
         <translation>Prednost ima privzeto</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>NoAntialias</source>
         <translation>Brez glajenja robov</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>PreferAntialias</source>
         <translation>Prednost ima glajenje robov</translation>
     </message>
     <message>
-        <location line="+61"/>
         <source>Antialiasing</source>
         <translation>Glajenje robov</translation>
     </message>
@@ -1032,43 +851,47 @@
 <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>
+        <extracomment>Parsing layout stretch values
+----------
+Parsing layout stretch values
+----------
+Parsing layout stretch values
+</extracomment>
         <translation>Neveljavna vrednost razširjanja za »%1«: »%2«</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>
+        <extracomment>Parsing grid layout minimum size values
+----------
+Parsing grid layout minimum size values
+----------
+Parsing grid layout minimum size values
+</extracomment>
         <translation>Neveljavna najmanjša velikost za »%1«: »%2«</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>Povečava ogleda</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Default Zoom</source>
         <translation>Privzeta povečava</translation>
     </message>
     <message>
-        <location line="+29"/>
         <source>Forms</source>
-        <extracomment>Tab in preferences dialog</extracomment>
+        <extracomment>Tab in preferences dialog
+</extracomment>
         <translation>Obrazci</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>Default Grid</source>
         <translation>Privzeta mreža</translation>
     </message>
@@ -1076,37 +899,30 @@
 <context>
     <name>FormLayoutRowDialog</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/formlayoutrowdialog.ui"/>
         <source>Add Form Layout Row</source>
         <translation>Dodaj vrstico razporeditve na obrazcu</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Label text:</source>
         <translation>&amp;Besedilo oznake:</translation>
     </message>
     <message>
-        <location/>
         <source>Field &amp;type:</source>
         <translation>&amp;Vrsta polja:</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Field name:</source>
         <translation>&amp;Ime polja:</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Buddy:</source>
         <translation>&amp;Kolega:</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Row:</source>
         <translation>&amp;Vrstica:</translation>
     </message>
     <message>
-        <location/>
         <source>Label &amp;name:</source>
         <translation>&amp;Ime oznake:</translation>
     </message>
@@ -1114,12 +930,10 @@
 <context>
     <name>FormWindow</name>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/formwindow.cpp" line="+1701"/>
         <source>Unexpected element &lt;%1&gt;</source>
         <translation>Nepričakovan element &lt;%1&gt;</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Error while pasting clipboard contents at line %1, column %2: %3</source>
         <translation>Napaka pri lepljenju vsebine odložišča v vrstici %1, stolpcu %2: %3</translation>
     </message>
@@ -1127,62 +941,50 @@
 <context>
     <name>FormWindowSettings</name>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/formwindowsettings.ui"/>
         <source>Form Settings</source>
         <translation>Nastavitve obrazca</translation>
     </message>
     <message>
-        <location/>
         <source>Layout &amp;Default</source>
         <translation>&amp;Privzeto za razpored</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Spacing:</source>
         <translation>&amp;Razmik:</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Margin:</source>
         <translation>&amp;Rob:</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Layout Function</source>
         <translation>&amp;Funkcija za razpored</translation>
     </message>
     <message>
-        <location/>
         <source>Ma&amp;rgin:</source>
         <translation>R&amp;ob:</translation>
     </message>
     <message>
-        <location/>
         <source>Spa&amp;cing:</source>
         <translation>R&amp;azmik:</translation>
     </message>
     <message>
-        <location/>
         <source>Embedded Design</source>
         <translation>Vgrajena zasnova</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Author</source>
         <translation>&amp;Avtor</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Include Hints</source>
         <translation>Namigi za &amp;vključevanje</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Pixmap Function</source>
         <translation>F&amp;unkcija za sličico</translation>
     </message>
     <message>
-        <location/>
         <source>Grid</source>
         <translation>Mreža</translation>
     </message>
@@ -1190,7 +992,6 @@
 <context>
     <name>IconSelector</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/iconselector.cpp" line="+352"/>
         <source>All Pixmaps (</source>
         <translation>Vse sličice (</translation>
     </message>
@@ -1198,42 +999,37 @@
 <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>
+        <extracomment>Sample string to determinate the width for the first column of the list item property browser
+</extracomment>
         <translation>XX Ikona Izbrano izklopljeno</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>
+        <extracomment>Not currently used (main tool bar)
+</extracomment>
         <translation>Glavna</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>File</source>
         <translation>Datoteka</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Edit</source>
         <translation>Urejanje</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Tools</source>
         <translation>Orodja</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Form</source>
         <translation>Obrazec</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Qt Designer</source>
         <translation>Qt Designer</translation>
     </message>
@@ -1241,52 +1037,42 @@
 <context>
     <name>NewForm</name>
     <message>
-        <location filename="../tools/designer/src/designer/newform.cpp" line="+79"/>
         <source>C&amp;reate</source>
         <translation>&amp;Ustvari</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Recent</source>
         <translation>Nedavno</translation>
     </message>
     <message>
-        <location line="+32"/>
         <source>&amp;Close</source>
         <translation>&amp;Zapri</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>&amp;Open...</source>
         <translation>&amp;Odpri ...</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>&amp;Recent Forms</source>
         <translation>&amp;Nedavni obrazci</translation>
     </message>
     <message>
-        <location line="+64"/>
         <source>Read error</source>
         <translation>Napaka pri branju</translation>
     </message>
     <message>
-        <location line="-100"/>
         <source>New Form</source>
         <translation>Nov obrazec</translation>
     </message>
     <message>
-        <location line="-5"/>
         <source>Show this Dialog on Startup</source>
         <translation>Prikaži to pogovorno okno ob zagonu</translation>
     </message>
     <message>
-        <location line="+128"/>
         <source>A temporary form file could not be created in %1.</source>
         <translation>Začasne datoteke obrazca v %1 ni bilo moč ustvariti.</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>The temporary form file %1 could not be written.</source>
         <translation>V začasno datoteko obrazca %1 ni bilo moč pisati.</translation>
     </message>
@@ -1294,22 +1080,18 @@
 <context>
     <name>ObjectInspectorModel</name>
     <message>
-        <location filename="../tools/designer/src/components/objectinspector/objectinspectormodel.cpp" line="+360"/>
         <source>Object</source>
         <translation>Objekt</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Class</source>
         <translation>Razred</translation>
     </message>
     <message>
-        <location line="+35"/>
         <source>separator</source>
         <translation>ločitelj</translation>
     </message>
     <message>
-        <location line="+98"/>
         <source>&lt;noname&gt;</source>
         <translation>&lt;neimenovano&gt;</translation>
     </message>
@@ -1317,12 +1099,10 @@
 <context>
     <name>ObjectNameDialog</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_taskmenu.cpp" line="+158"/>
         <source>Change Object Name</source>
         <translation>Spremeni ime objekta</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Object Name</source>
         <translation>Ime objekta</translation>
     </message>
@@ -1330,12 +1110,10 @@
 <context>
     <name>PluginDialog</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/plugindialog.ui"/>
         <source>Plugin Information</source>
         <translation>Podatki o vstavkih</translation>
     </message>
     <message>
-        <location/>
         <source>1</source>
         <translation>1</translation>
     </message>
@@ -1343,7 +1121,6 @@
 <context>
     <name>PreferencesDialog</name>
     <message>
-        <location filename="../tools/designer/src/designer/preferencesdialog.ui"/>
         <source>Preferences</source>
         <translation>Nastavitve</translation>
     </message>
@@ -1351,32 +1128,26 @@
 <context>
     <name>PreviewConfigurationWidget</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/previewconfigurationwidget.ui"/>
         <source>Form</source>
         <translation>Obrazec</translation>
     </message>
     <message>
-        <location/>
         <source>Print/Preview Configuration</source>
         <translation>Nastavitev tiskanja/ogleda</translation>
     </message>
     <message>
-        <location/>
         <source>Style</source>
         <translation>Slog</translation>
     </message>
     <message>
-        <location/>
         <source>Style sheet</source>
         <translation>Slogovna predloga</translation>
     </message>
     <message>
-        <location/>
         <source>...</source>
         <translation>...</translation>
     </message>
     <message>
-        <location/>
         <source>Device skin</source>
         <translation>Tema naprave</translation>
     </message>
@@ -1384,17 +1155,15 @@
 <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>
+        <extracomment>Usage of promoted widgets
+</extracomment>
         <translation>Ni uporabljeno</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>Stran</translation>
     </message>
@@ -1402,59 +1171,48 @@
 <context>
     <name>QAbstractFormBuilder</name>
     <message>
-        <location filename="../tools/designer/src/lib/uilib/abstractformbuilder.cpp" line="+206"/>
         <source>Unexpected element &lt;%1&gt;</source>
         <translation>Nepričakovan element &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>Prišlo je do napake med branjem datoteke UI v vrstici %1, stolpcu %2: %3</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Invalid UI file: The root element &lt;ui&gt; is missing.</source>
         <translation>Neveljavna datoteka UI: manjka vrhnji element &lt;ui&gt;.</translation>
     </message>
     <message>
-        <location line="+119"/>
         <source>The creation of a widget of the class &apos;%1&apos; failed.</source>
         <translation>Ustvarjanje gradnika razreda »%1« ni uspelo.</translation>
     </message>
     <message>
-        <location line="+296"/>
         <source>Attempt to add child that is not of class QWizardPage to QWizard.</source>
         <translation>Poskus dodajanja podgradnika, ki ni razreda QWizardPage ali QWizard.</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>Poskus dodajanja razporeda gradniku »%1« (%2), ki že ima razpored ne-okvirne vrste %3.
 To nakazuje na neskladnost v datoteki *.ui.</translation>
     </message>
     <message>
-        <location line="+144"/>
         <source>Empty widget item in %1 &apos;%2&apos;.</source>
         <translation>Prazna postavka gradnika v %1 »%2«.</translation>
     </message>
     <message>
-        <location line="+680"/>
         <source>Flags property are not supported yet.</source>
         <translation>Lastnosti z zastavicami še niso podprte.</translation>
     </message>
     <message>
-        <location line="+81"/>
         <source>While applying tab stops: The widget &apos;%1&apos; could not be found.</source>
         <translation>Med uveljavljanjem postankov tabulatorke: gradnika »%1« ni bilo moč najti.</translation>
     </message>
     <message>
-        <location line="+908"/>
         <source>Invalid QButtonGroup reference &apos;%1&apos; referenced by &apos;%2&apos;.</source>
         <translation>Neveljavna referenca »%1« na QButtonGroup od »%2«.</translation>
     </message>
     <message>
-        <location line="+511"/>
         <source>This version of the uitools library is linked without script support.</source>
         <translation>Ta različica knjižnice uitools nima podpore za skripte.</translation>
     </message>
@@ -1462,12 +1220,10 @@
 <context>
     <name>QAxWidgetPlugin</name>
     <message>
-        <location filename="../tools/designer/src/plugins/activeqt/qaxwidgetplugin.cpp" line="+75"/>
         <source>ActiveX control</source>
         <translation>Kontrolnik ActiveX</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>ActiveX control widget</source>
         <translation>Gradnik kontrolnika ActiveX</translation>
     </message>
@@ -1475,22 +1231,18 @@
 <context>
     <name>QAxWidgetTaskMenu</name>
     <message>
-        <location filename="../tools/designer/src/plugins/activeqt/qaxwidgettaskmenu.cpp" line="+119"/>
         <source>Set Control</source>
         <translation>Nastavi kontrolnik</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Reset Control</source>
         <translation>Ponastavi kontrolnik</translation>
     </message>
     <message>
-        <location line="+41"/>
         <source>Licensed Control</source>
         <translation>Licenciran kontrolnik</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>The control requires a design-time license</source>
         <translation>Kontrolnik potrebuje licenco za čas snovanja</translation>
     </message>
@@ -1498,67 +1250,54 @@
 <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 ni povišan razred.</translation>
     </message>
     <message>
-        <location line="+65"/>
         <source>The base class %1 is invalid.</source>
         <translation>Osnovni razred %1 ni veljaven.</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>The class %1 already exists.</source>
         <translation>Razred %1 že obstaja.</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Promoted Widgets</source>
         <translation>Povišani gradniki</translation>
     </message>
     <message>
-        <location line="+126"/>
         <source>The class %1 cannot be removed</source>
         <translation>Razreda %1 ni moč odstraniti</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>The class %1 cannot be removed because it is still referenced.</source>
         <translation>Razreda %1 ni moč odstraniti, ker se nanj še vedno nanašajo reference.</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>The class %1 cannot be renamed</source>
         <translation>Razreda %1 ni moč preimenovati</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>The class %1 cannot be renamed to an empty name.</source>
         <translation>Razreda %1 ni moč preimenovati s praznim imenom.</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>There is already a class named %1.</source>
         <translation>Razred z imenom %1 že obstaja.</translation>
     </message>
     <message>
-        <location line="+29"/>
         <source>Cannot set an empty include file.</source>
         <translation>Ni moč nastaviti prazne vključene datoteke.</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/uilib/formscriptrunner.cpp" line="+88"/>
         <source>Exception at line %1: %2</source>
         <translation>Izjema v vrstici %1: %2</translation>
     </message>
     <message>
-        <location line="+36"/>
         <source>Unknown error</source>
         <translation>Neznana napaka</translation>
     </message>
     <message>
-        <location line="+50"/>
         <source>An error occurred while running the script for %1: %2
 Script: %3</source>
         <translation>Prišlo je do napake pri zaganjanju skripta za %1: %2
@@ -1568,17 +1307,14 @@
 <context>
     <name>QDesigner</name>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner.cpp" line="+141"/>
         <source>%1 - warning</source>
         <translation>%1 - opozorilo</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>Programa ni moč uporabiti za konzolno izdajo Qt</translation>
     </message>
@@ -1586,186 +1322,146 @@
 <context>
     <name>QDesignerActions</name>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_actions.cpp" line="+178"/>
         <source>Edit Widgets</source>
         <translation>Urejanje gradnikov</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>&amp;Quit</source>
         <translation>Konča&amp;j</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>&amp;Minimize</source>
         <translation>Po&amp;manjšaj</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Bring All to Front</source>
         <translation>Prinesi vse v ospredje</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Preferences...</source>
         <translation>Nastavitve ...</translation>
     </message>
     <message>
-        <location line="+298"/>
         <source>Clear &amp;Menu</source>
         <translation>Počisti &amp;meni</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>P&amp;riročnik za Qt Designer</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Current Widget Help</source>
         <translation>Pomoč za trenutni gradnik</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>What&apos;s New in Qt Designer?</source>
         <translation>Kaj je novega v Qt Designerju?</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>About Plugins</source>
         <translation>O vstavkih</translation>
     </message>
     <message>
-        <location line="+6"/>
-        <location line="+601"/>
         <source>About Qt Designer</source>
         <translation>O 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>Odpri obrazec</translation>
     </message>
     <message>
-        <location line="-196"/>
-        <location line="+37"/>
-        <location line="+160"/>
         <source>Designer UI files (*.%1);;All Files (*)</source>
         <translation>Designerjeve datoteke UI (*.%1);;Vse datoteke (*)</translation>
     </message>
     <message>
-        <location line="-620"/>
         <source>%1 already exists.
 Do you want to replace it?</source>
         <translation>%1 že obstaja.
 Ali jo želite nadomestiti?</translation>
     </message>
     <message>
-        <location line="-26"/>
         <source>Saved %1.</source>
         <translation>Shranil %1.</translation>
     </message>
     <message>
-        <location line="+68"/>
         <source>Additional Fonts...</source>
         <translation>Dodatne pisave ...</translation>
     </message>
     <message>
-        <location line="+303"/>
         <source>&amp;Recent Forms</source>
         <translation>N&amp;edavni obrazci</translation>
     </message>
     <message>
-        <location line="+202"/>
         <source>Designer</source>
         <translation>Qt Designer</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Feature not implemented yet!</source>
         <translation>Zmožnost še ni izdelana.</translation>
     </message>
     <message>
-        <location line="+59"/>
         <source>Read error</source>
         <translation>Napaka pri branju</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>%1
 Do you want to update the file location or generate a new form?</source>
         <translation>%1
 Ali želite posodobiti lokacijo datoteke ali ustvariti nov obrazec?</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>&amp;Update</source>
         <translation>&amp;Posodobi</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;New Form</source>
         <translation>&amp;Nov obrazec</translation>
     </message>
     <message>
-        <location line="+77"/>
-        <location line="+40"/>
         <source>Save Form?</source>
         <translation>Shranim obrazec?</translation>
     </message>
     <message>
-        <location line="-39"/>
         <source>Could not open file</source>
         <translation>Ni bilo moč odpreti datoteke</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>Select New File</source>
         <translation>Izberite novo datoteko</translation>
     </message>
     <message>
-        <location line="+30"/>
         <source>Could not write file</source>
         <translation>Ni bilo moč zapisati datoteke</translation>
     </message>
     <message>
-        <location line="+201"/>
         <source>&amp;Close Preview</source>
         <translation>&amp;Zapri ogled</translation>
     </message>
     <message>
-        <location line="-898"/>
         <source>Save &amp;Image...</source>
         <translation>S&amp;hrani sliko ...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Print...</source>
         <translation>&amp;Natisni ...</translation>
     </message>
     <message>
-        <location line="+660"/>
         <source>The file %1 could not be opened.
 Reason: %2
 Would you like to retry or select a different file?</source>
@@ -1774,7 +1470,6 @@
 Ali žalite poskusiti znova ali izbrati drugo datoteko?</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>
@@ -1783,117 +1478,90 @@
 Ali želite poskusiti znova?</translation>
     </message>
     <message>
-        <location line="+239"/>
-        <location line="+23"/>
         <source>The backup file %1 could not be written.</source>
         <translation>Varnostne kopije datoteke %1 ni bilo moč zapisati.</translation>
     </message>
     <message>
-        <location line="+107"/>
         <source>The backup directory %1 could not be created.</source>
         <translation>Mape %1 za varnostne kopije ni bilo moč ustvariti.</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>The temporary backup directory %1 could not be created.</source>
         <translation>Začasne mape %1 za varnostne kopije ni bilo moč ustvariti.</translation>
     </message>
     <message>
-        <location line="+54"/>
         <source>Image files (*.%1)</source>
         <translation>Slikovne datoteke (*.%1)</translation>
     </message>
     <message>
-        <location line="+9"/>
-        <location line="+17"/>
         <source>Save Image</source>
         <translation>Shrani sliko</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>The file %1 could not be written.</source>
         <translation>Datoteke %1 ni bilo moč zapisati.</translation>
     </message>
     <message>
-        <location line="-1163"/>
         <source>&amp;New...</source>
         <translation>&amp;Nova ...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Open...</source>
         <translation>&amp;Odpri ...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Save</source>
         <translation>&amp;Shrani</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Save &amp;As...</source>
         <translation>Shrani &amp;kot ...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Save A&amp;ll</source>
         <translation>Shrani &amp;vse</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Save As &amp;Template...</source>
         <translation>Shrani kot &amp;predlogo ...</translation>
     </message>
     <message>
-        <location line="+1"/>
-        <location line="+901"/>
         <source>&amp;Close</source>
         <translation>&amp;Zapri</translation>
     </message>
     <message>
-        <location line="-896"/>
         <source>View &amp;Code...</source>
         <translation>Prikaži &amp;kodo ...</translation>
     </message>
     <message>
-        <location line="+424"/>
-        <location line="+248"/>
         <source>Save Form As</source>
         <translation>Shrani obrazec kot</translation>
     </message>
     <message>
-        <location line="+429"/>
         <source>Preview failed</source>
         <translation>Ogled ni uspel</translation>
     </message>
     <message>
-        <location line="-575"/>
         <source>Code generation failed</source>
         <translation>Ustvarjanje kode ni uspelo</translation>
     </message>
     <message>
-        <location line="+328"/>
-        <location line="+34"/>
         <source>Assistant</source>
         <translation>Pomočnik</translation>
     </message>
     <message>
-        <location line="+259"/>
         <source>Saved image %1.</source>
         <translation>Shranil sliko %1.</translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>Please close all forms to enable the loading of additional fonts.</source>
         <translation>Da bi omogočili nalaganje dodatnih pisav zaprite vse obrazce.</translation>
     </message>
     <message>
-        <location line="+52"/>
         <source>Printed %1.</source>
         <translation>Natisnil %1.</translation>
     </message>
     <message>
-        <location line="-1149"/>
         <source>ALT+CTRL+S</source>
         <translation>ALT+CTRL+S</translation>
     </message>
@@ -1901,26 +1569,23 @@
 <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>
+        <extracomment>Tab in preferences dialog
+</extracomment>
         <translation>Videz</translation>
     </message>
 </context>
 <context>
     <name>QDesignerAppearanceOptionsWidget</name>
     <message>
-        <location line="-53"/>
         <source>Docked Window</source>
         <translation>Zasidrana okna</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Multiple Top-Level Windows</source>
         <translation>Več ločenih oken</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Toolwindow Font</source>
         <translation>Pisava oken z orodji</translation>
     </message>
@@ -1928,22 +1593,18 @@
 <context>
     <name>QDesignerAxWidget</name>
     <message>
-        <location filename="../tools/designer/src/plugins/activeqt/qaxwidgettaskmenu.cpp" line="-71"/>
         <source>Reset control</source>
         <translation>Ponastavi kontrolnik</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Set control</source>
         <translation>Nastavi kontrolnik</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/plugins/activeqt/qdesigneraxwidget.cpp" line="+179"/>
         <source>Control loaded</source>
         <translation>Kontrolnik je naložen</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>med izvajanjem meta-klica vrste %1 je prišlo do izjeme COM, indeks %2 od »%3«.</translation>
     </message>
@@ -1951,17 +1612,14 @@
 <context>
     <name>QDesignerFormBuilder</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_formbuilder.cpp" line="+89"/>
         <source>Script errors occurred:</source>
         <translation>Prišlo je do napak v skriptu:</translation>
     </message>
     <message>
-        <location line="+307"/>
         <source>The preview failed to build.</source>
         <translation>Grajenje ogleda ni uspelo.</translation>
     </message>
     <message>
-        <location line="+65"/>
         <source>Designer</source>
         <translation>Qt Designer</translation>
     </message>
@@ -1969,22 +1627,18 @@
 <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>Shranim obrazec?</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Do you want to save the changes to this document before closing?</source>
         <translation>Ali želite pred zaprtjem shraniti spremembe v tem dokumentu?</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>If you don&apos;t save, your changes will be lost.</source>
         <translation>Če ne shranite, bodo spremembe izgubljene.</translation>
     </message>
@@ -1992,38 +1646,30 @@
 <context>
     <name>QDesignerMenu</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_menu.cpp" line="-1181"/>
         <source>Type Here</source>
         <translation>Pišite sem</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Add Separator</source>
         <translation>Dodaj ločnico</translation>
     </message>
     <message>
-        <location line="+371"/>
         <source>Insert separator</source>
         <translation>Vstavi ločnico</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Remove separator</source>
         <translation>Odstrani ločnico</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Remove action &apos;%1&apos;</source>
         <translation>Odstrani dejanje »%1«</translation>
     </message>
     <message>
-        <location line="+25"/>
-        <location line="+650"/>
         <source>Add separator</source>
         <translation>Dodaj ločnico</translation>
     </message>
     <message>
-        <location line="-348"/>
         <source>Insert action</source>
         <translation>Vstavi dejanje</translation>
     </message>
@@ -2031,22 +1677,18 @@
 <context>
     <name>QDesignerMenuBar</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_menubar.cpp" line="-375"/>
         <source>Type Here</source>
         <translation>Pišite sem</translation>
     </message>
     <message>
-        <location line="+298"/>
         <source>Remove Menu &apos;%1&apos;</source>
         <translation>Odstrani meni »%1«</translation>
     </message>
     <message>
-        <location line="+12"/>
         <source>Remove Menu Bar</source>
         <translation>Odstrani menijsko vrstico</translation>
     </message>
     <message>
-        <location line="+70"/>
         <source>Menu</source>
         <translation>Meni</translation>
     </message>
@@ -2054,37 +1696,30 @@
 <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>Med razčlenjevanjem datoteke XML gradnika po meri %1 je prišlo do napake XML: %2</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>A required attribute (&apos;%1&apos;) is missing.</source>
         <translation>Manjka obvezna lastnost (»%1«).</translation>
     </message>
     <message>
-        <location line="+38"/>
         <source>An invalid property specification (&apos;%1&apos;) was encountered. Supported types: %2</source>
         <translation>Dosežena je bila neveljavna specifikacija lastnosti (»%1«). Podprte vrste: %2</translation>
     </message>
     <message>
-        <location line="+20"/>
         <source>&apos;%1&apos; is not a valid string property specification.</source>
         <translation>»%1« ni veljavna specifikacija lastnosti z nizom.</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>XML gradnika po meri »%1« ne vsebuje niti elementa &lt;widget&gt; niti &lt;ui&gt;.</translation>
     </message>
     <message>
-        <location line="+12"/>
         <source>The class attribute for the class %1 is missing.</source>
         <translation>Manjka razredna lastnost za razred %1.</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>The class attribute for the class %1 does not match the class name %2.</source>
         <translation>Razredna lastnost za razred %1 se ne ujema z razredovim imenom %2.</translation>
     </message>
@@ -2092,7 +1727,6 @@
 <context>
     <name>QDesignerPropertySheet</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_propertysheet.cpp" line="+754"/>
         <source>Dynamic Properties</source>
         <translation>Dinamične lastnosti</translation>
     </message>
@@ -2100,45 +1734,41 @@
 <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>Vrsta razpored »%1« ni podprta, preklapljam na mrežo.</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>Ko je bila povprašana po strani št. %5, je razširitev vsebnika gradnika »%1« (%2) vrnila gradnik, s katerim ne upravlja Qt Designer »%3« (%4).
 Strani vsebnikov naj bi bile dodane z navedbo v XML-u, ki ga vrne metoda domXml() gradnika po meri.</translation>
     </message>
     <message>
-        <location line="+599"/>
         <source>Unexpected element &lt;%1&gt;</source>
-        <extracomment>Parsing clipboard contents</extracomment>
+        <extracomment>Parsing clipboard contents
+</extracomment>
         <translation>Nepričakovan element &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>
+        <extracomment>Parsing clipboard contents
+</extracomment>
         <translation>Napaka pri lepljenju vsebine odložišča v vrstici %1, stolpcu %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>
+        <extracomment>Parsing clipboard contents
+</extracomment>
         <translation>Napaka pri lepljenju vsebine odložišča: manjka vrhnji element &lt;ui&gt;.</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>Poti %1 za predlogo ni bilo moč ustvariti.</translation>
     </message>
     <message>
-        <location line="+184"/>
         <source>An error has been encountered while parsing device profile XML: %1</source>
         <translation>Med razčlenjevanjem XML-a profila naprave je prišlo do napake: %1</translation>
     </message>
@@ -2146,32 +1776,26 @@
 <context>
     <name>QDesignerToolWindow</name>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_toolwindow.cpp" line="+190"/>
         <source>Property Editor</source>
         <translation>Urejevalnik lastnosti</translation>
     </message>
     <message>
-        <location line="+54"/>
         <source>Action Editor</source>
         <translation>Urejevalnik dejanj</translation>
     </message>
     <message>
-        <location line="+42"/>
         <source>Object Inspector</source>
         <translation>Preiskovalnik objektov</translation>
     </message>
     <message>
-        <location line="+35"/>
         <source>Resource Browser</source>
         <translation>Brskalnik po virih</translation>
     </message>
     <message>
-        <location line="+34"/>
         <source>Signal/Slot Editor</source>
         <translation>Urejevalnik signalov/rež</translation>
     </message>
     <message>
-        <location line="+41"/>
         <source>Widget Box</source>
         <translation>Podokno z gradniki</translation>
     </message>
@@ -2179,97 +1803,78 @@
 <context>
     <name>QDesignerWorkbench</name>
     <message>
-        <location filename="../tools/designer/src/designer/qdesigner_workbench.cpp" line="+199"/>
         <source>&amp;File</source>
         <translation>&amp;Datoteka</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>F&amp;orm</source>
         <translation>&amp;Obrazec</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Preview in</source>
         <translation>Ogled v</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>&amp;Window</source>
         <translation>O&amp;kno</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>&amp;Help</source>
         <translation>&amp;Pomoč</translation>
     </message>
     <message>
-        <location line="-15"/>
         <source>Edit</source>
         <translation>Urejanje</translation>
     </message>
     <message>
-        <location line="+38"/>
         <source>Toolbars</source>
         <translation>Orodjarne</translation>
     </message>
     <message>
-        <location line="+465"/>
         <source>Save Forms?</source>
         <translation>Shranim obrazce?</translation>
     </message>
     <message>
-        <location line="-494"/>
         <source>&amp;View</source>
         <translation>&amp;Videz</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>&amp;Settings</source>
         <translation>&amp;Nastavitve</translation>
     </message>
     <message>
-        <location line="+204"/>
         <source>Widget Box</source>
         <translation>Podokno z gradniki</translation>
     </message>
     <message>
-        <location line="+292"/>
         <source>If you do not review your documents, all your changes will be lost.</source>
         <translation>Če ne pregledate svojih dokumentov, bodo vse spremembe izgubljene.</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Discard Changes</source>
         <translation>Zavrzi spremembe</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Review Changes</source>
         <translation>Pregled sprememb</translation>
     </message>
     <message>
-        <location line="+95"/>
         <source>Backup Information</source>
         <translation>Podatki o varnostnih kopijah</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>Zadnja seja Qt Designerja ni bila končana pravilno. Na disku so ostale varnostne kopije datotek. Ali jih želite naložiti?</translation>
     </message>
     <message>
-        <location line="+111"/>
         <source>The file &lt;b&gt;%1&lt;/b&gt; could not be opened.</source>
         <translation>Datoteke &lt;b&gt;%1&lt;/b&gt; ni bilo moč odpreti.</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>Datoteka &lt;b&gt;%1&lt;/b&gt; ni veljavna Designerjeva datoteka UI.</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>Odprt je %n obrazec z neshranjenimi spremembami. Ali želite pred zaprtjem pregledati te spremembe?</numerusform>
@@ -2282,92 +1887,87 @@
 <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>
+        <extracomment>Empty class name passed to widget factory method
+----------
+Empty class name passed to widget factory method
+----------
+Empty class name passed to widget factory method
+</extracomment>
         <translation>Prazno ime razreda je bilo posredovano do %1 (ime objekta: »%2«).</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 ni mogel ustvariti gradnika po meri razreda »%1«; uporabljen je bil osnovni razred »%2«.</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>QFormBuilder was unable to create a widget of the class &apos;%1&apos;.</source>
         <translation>QFormBuilder ni mogel ustvariti gradnika razreda »%1«.</translation>
     </message>
     <message>
-        <location line="+61"/>
         <source>The layout type `%1&apos; is not supported.</source>
         <translation>Vrsta razporeda »%1« ni podprta.</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>Lastnosti %1 z vrsto množice ni bilo moč prebrati.</translation>
     </message>
     <message>
-        <location line="+23"/>
         <source>The enumeration-type property %1 could not be read.</source>
         <translation>Lastnosti %1 z vrsto naštevanja ni bilo moč prebrati.</translation>
     </message>
     <message>
-        <location line="+190"/>
         <source>Reading properties of the type %1 is not supported yet.</source>
         <translation>Branje lastnosti vrste %1 še ni podprto.</translation>
     </message>
     <message>
-        <location line="+266"/>
         <source>The property %1 could not be written. The type %2 is not supported yet.</source>
         <translation>Lastnosti %1 ni bilo moč zapisati. Vrsta %2 še ni podprta.</translation>
     </message>
+    <message>
+        <source>The enumeration-value &apos;%1&apos; is invalid. The default value &apos;%2&apos; will be used instead.</source>
+        <translation>Vrednost oštevilčenja »%1« ni veljavna. Namesto nje bo uporabljena privzeta vrednost »%2«.</translation>
+    </message>
+    <message>
+        <source>The flag-value &apos;%1&apos; is invalid. Zero will be used instead.</source>
+        <translation>Vrednost zastavice »%1« ni veljavna. Namesto nje bo uporabljena ničla.</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>Predhodna stran</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Next Page</source>
         <translation>Naslednja stran</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Delete</source>
         <translation>Zbriši</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Before Current Page</source>
         <translation>Pred trenutno stran</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>After Current Page</source>
         <translation>Za trenutno stran</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Change Page Order...</source>
         <translation>Spremeni vrstni red strani ...</translation>
     </message>
     <message>
-        <location line="+72"/>
         <source>Change Page Order</source>
         <translation>Spremeni vrstni red strani</translation>
     </message>
     <message>
-        <location line="+49"/>
         <source>Page %1 of %2</source>
         <translation>Stran %1 od %2</translation>
     </message>
     <message>
-        <location line="+10"/>
-        <location line="+4"/>
         <source>Insert Page</source>
         <translation>Vstavi stran</translation>
     </message>
@@ -2375,12 +1975,10 @@
 <context>
     <name>QStackedWidgetPreviewEventFilter</name>
     <message>
-        <location line="-153"/>
         <source>Go to previous page of %1 &apos;%2&apos; (%3/%4).</source>
         <translation>Pojdi na predhodno stran od %1 »%2« (%3/%4).</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Go to next page of %1 &apos;%2&apos; (%3/%4).</source>
         <translation>Pojdi na naslednjo stran od %1 »%2« (%3/%4).</translation>
     </message>
@@ -2388,28 +1986,22 @@
 <context>
     <name>QTabWidgetEventFilter</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_tabwidget.cpp" line="+89"/>
         <source>Delete</source>
         <translation>Zbriši</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Before Current Page</source>
         <translation>Pred trenutno stran</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>After Current Page</source>
         <translation>Za trenutno stran</translation>
     </message>
     <message>
-        <location line="+283"/>
         <source>Page %1 of %2</source>
         <translation>Stran %1 od %2</translation>
     </message>
     <message>
-        <location line="+10"/>
-        <location line="+4"/>
         <source>Insert Page</source>
         <translation>Vstavi stran</translation>
     </message>
@@ -2417,37 +2009,30 @@
 <context>
     <name>QToolBoxHelper</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_toolbox.cpp" line="+64"/>
         <source>Delete Page</source>
         <translation>Zbriši stran</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Before Current Page</source>
         <translation>Pred trenutno stran</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>After Current Page</source>
         <translation>Za trenutno stran</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Change Page Order...</source>
         <translation>Spremeni vrsti red strani ...</translation>
     </message>
     <message>
-        <location line="+116"/>
         <source>Change Page Order</source>
         <translation>Spremeni vrstni red strani</translation>
     </message>
     <message>
-        <location line="+44"/>
         <source>Page %1 of %2</source>
         <translation>Stran %1 od %2</translation>
     </message>
     <message>
-        <location line="+12"/>
         <source>Insert Page</source>
         <translation>Vstavi stran</translation>
     </message>
@@ -2455,15 +2040,10 @@
 <context>
     <name>QtBoolEdit</name>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qtpropertybrowserutils.cpp" line="+226"/>
-        <location line="+10"/>
-        <location line="+25"/>
         <source>True</source>
         <translation>Pravilno</translation>
     </message>
     <message>
-        <location line="-25"/>
-        <location line="+25"/>
         <source>False</source>
         <translation>Napačno</translation>
     </message>
@@ -2471,12 +2051,10 @@
 <context>
     <name>QtBoolPropertyManager</name>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="+1469"/>
         <source>True</source>
         <translation>Pravilno</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>False</source>
         <translation>Napačno</translation>
     </message>
@@ -2484,7 +2062,6 @@
 <context>
     <name>QtCharEdit</name>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qteditorfactory.cpp" line="+1581"/>
         <source>Clear Char</source>
         <translation>Počisti znak</translation>
     </message>
@@ -2492,7 +2069,6 @@
 <context>
     <name>QtColorEditWidget</name>
     <message>
-        <location line="+605"/>
         <source>...</source>
         <translation>...</translation>
     </message>
@@ -2500,22 +2076,18 @@
 <context>
     <name>QtColorPropertyManager</name>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="+4743"/>
         <source>Red</source>
         <translation>Rdeča</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Green</source>
         <translation>Zelena</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Blue</source>
         <translation>Modra</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Alpha</source>
         <translation>Alfa</translation>
     </message>
@@ -2523,97 +2095,78 @@
 <context>
     <name>QtCursorDatabase</name>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qtpropertybrowserutils.cpp" line="-206"/>
         <source>Arrow</source>
         <translation>Puščica</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Up Arrow</source>
         <translation>Puščica navzgor</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Cross</source>
         <translation>Križec</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Wait</source>
         <translation>Čakanje</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>IBeam</source>
         <translation>Črtica |</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Size Vertical</source>
         <translation>Velikost navpično</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Size Horizontal</source>
         <translation>Velikost vodoravno</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Size Backslash</source>
         <translation>Velikost poševno nazaj</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Size Slash</source>
         <translation>Velikost poševno</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Size All</source>
         <translation>Velikost v vse smeri</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Blank</source>
         <translation>Prazno</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Split Vertical</source>
         <translation>Razdelitev navpično</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Split Horizontal</source>
         <translation>Razdelitev vodoravno</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Pointing Hand</source>
         <translation>Roka, ki kaže</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Forbidden</source>
         <translation>Prepovedano</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Open Hand</source>
         <translation>Odprta dlan</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Closed Hand</source>
         <translation>Zaprta dlan</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>What&apos;s This</source>
         <translation>Kaj je to</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Busy</source>
         <translation>Zasedeno</translation>
     </message>
@@ -2621,12 +2174,10 @@
 <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>Izberite pisavo</translation>
     </message>
@@ -2634,37 +2185,30 @@
 <context>
     <name>QtFontPropertyManager</name>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="-351"/>
         <source>Family</source>
         <translation>Družina</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>Point Size</source>
-        <translation>Velikost točke</translation>
-    </message>
-    <message>
-        <location line="+8"/>
+        <translation>Velikost v točkah</translation>
+    </message>
+    <message>
         <source>Bold</source>
         <translation>Polkrepko</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Italic</source>
         <translation>Ležeče</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Underline</source>
         <translation>Podčrtano</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Strikeout</source>
         <translation>Prečrtano</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Kerning</source>
         <translation>Spodsekavanje</translation>
     </message>
@@ -2672,7 +2216,6 @@
 <context>
     <name>QtGradientDialog</name>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradientdialog.ui"/>
         <source>Edit Gradient</source>
         <translation>Uredi preliv</translation>
     </message>
@@ -2680,304 +2223,242 @@
 <context>
     <name>QtGradientEditor</name>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.cpp" line="+431"/>
         <source>Start X</source>
         <translation>Začetni X</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Start Y</source>
         <translation>Začetni Y</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Final X</source>
         <translation>Končni X</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Final Y</source>
         <translation>Končni Y</translation>
     </message>
     <message>
-        <location line="+7"/>
-        <location line="+24"/>
         <source>Central X</source>
         <translation>Središčni X</translation>
     </message>
     <message>
-        <location line="-20"/>
-        <location line="+24"/>
         <source>Central Y</source>
         <translation>Središčni Y</translation>
     </message>
     <message>
-        <location line="-20"/>
         <source>Focal X</source>
         <translation>Žariščni X</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Focal Y</source>
         <translation>Žariščni Y</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Radius</source>
         <translation>Polmer</translation>
     </message>
     <message>
-        <location line="+16"/>
         <source>Angle</source>
         <translation>Kot</translation>
     </message>
     <message>
-        <location line="+288"/>
         <source>Linear</source>
         <translation>Linearen</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Radial</source>
         <translation>Radialen</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Conical</source>
         <translation>Stožčast</translation>
     </message>
     <message>
-        <location line="+20"/>
         <source>Pad</source>
         <translation>Zapolni</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Repeat</source>
         <translation>Ponovi</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Reflect</source>
         <translation>Odbij</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.ui"/>
         <source>Form</source>
         <translation>Obrazec</translation>
     </message>
     <message>
-        <location/>
         <source>Gradient Editor</source>
         <translation>Urejevalnik preliva</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>Urejevalnik postankov preliva</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>To območje vam omogoča urejanje postankov preliva. Da podvojite obstoječo ročko postanka dvokliknite nanjo. Za ustvaritev novega postanka dvokliknite izven obstoječih ročic postankov. Da spremenite položaj postanka povlecite in spustite njegovo ročko. Če kliknete z desnim gumbom miške, se bo pojavil priročni meni z dodatnimi dejanji.</translation>
     </message>
     <message>
-        <location/>
         <source>Zoom</source>
         <translation>Povečava</translation>
     </message>
     <message>
-        <location/>
         <source>Position</source>
         <translation>Položaj</translation>
     </message>
     <message>
-        <location/>
         <source>Hue</source>
         <translation>Odtenek</translation>
     </message>
     <message>
-        <location/>
         <source>H</source>
         <translation>H</translation>
     </message>
     <message>
-        <location/>
         <source>Saturation</source>
         <translation>Zasičenost</translation>
     </message>
     <message>
-        <location/>
         <source>S</source>
         <translation>S</translation>
     </message>
     <message>
-        <location/>
         <source>Sat</source>
         <translation>Zas.</translation>
     </message>
     <message>
-        <location/>
         <source>Value</source>
         <translation>Vrednost</translation>
     </message>
     <message>
-        <location/>
         <source>V</source>
         <translation>V</translation>
     </message>
     <message>
-        <location/>
         <source>Val</source>
         <translation>Vre.</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>Vrsta</translation>
     </message>
     <message>
-        <location/>
         <source>Spread</source>
         <translation>Razširitev</translation>
     </message>
     <message>
-        <location/>
         <source>Color</source>
         <translation>Barva</translation>
     </message>
     <message>
-        <location/>
         <source>Current stop&apos;s color</source>
         <translation>Barva trenutnega postanka</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>Položaj trenutnega postanka</translation>
     </message>
     <message>
-        <location/>
         <source>%</source>
         <translation> %</translation>
     </message>
     <message>
-        <location/>
         <source>Zoom In</source>
         <translation>Povečaj</translation>
     </message>
     <message>
-        <location/>
         <source>Zoom Out</source>
         <translation>Zmanjšaj</translation>
     </message>
     <message>
-        <location/>
         <source>Toggle details extension</source>
         <translation>Preklopi prikaz podrobnosti</translation>
     </message>
     <message>
-        <location/>
         <source>&gt;</source>
         <translation>&gt;</translation>
     </message>
     <message>
-        <location/>
         <source>Linear Type</source>
         <translation>Linearna vrsta</translation>
     </message>
     <message>
-        <location/>
         <source>...</source>
         <translation>...</translation>
     </message>
     <message>
-        <location/>
         <source>Radial Type</source>
         <translation>Radialna vrsta</translation>
     </message>
     <message>
-        <location/>
         <source>Conical Type</source>
         <translation>Stožčasta vrsta</translation>
     </message>
     <message>
-        <location/>
         <source>Pad Spread</source>
         <translation>Razširitev z zapolnitvijo</translation>
     </message>
     <message>
-        <location/>
         <source>Repeat Spread</source>
         <translation>Razširitev s ponovitvijo</translation>
     </message>
     <message>
-        <location/>
         <source>Reflect Spread</source>
         <translation>Razširitev z odbojem</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>To območje prikazuje ogled urejevanega preliva. Omogoča vam tudi urejanje parametrov, ki so specifični za vrsto preliva, na primer začetna in končna točka, polmer in podobno. Za to uporabite vlečenje in spuščanje.</translation>
     </message>
     <message>
-        <location/>
         <source>Show HSV specification</source>
         <translation>Prikaži specifikacijo HSV</translation>
     </message>
     <message>
-        <location/>
         <source>Show RGB specification</source>
         <translation>Prikaži specifikacijo RGB</translation>
     </message>
     <message>
-        <location/>
         <source>Reset Zoom</source>
         <translation>Ponastavi povečavo</translation>
     </message>
@@ -2985,37 +2466,30 @@
 <context>
     <name>QtGradientStopsWidget</name>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradientstopswidget.cpp" line="+947"/>
         <source>New Stop</source>
         <translation>Nov postanek</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Delete</source>
         <translation>Zbriši</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Flip All</source>
         <translation>Obrni vse</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Select All</source>
         <translation>Izberi vse</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Zoom In</source>
         <translation>Povečaj</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Zoom Out</source>
         <translation>Zmanjšaj</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Reset Zoom</source>
         <translation>Ponastavi povečavo</translation>
     </message>
@@ -3023,46 +2497,34 @@
 <context>
     <name>QtGradientView</name>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradientview.cpp" line="+107"/>
         <source>Grad</source>
         <translation>Preliv</translation>
     </message>
     <message>
-        <location line="+26"/>
         <source>Remove Gradient</source>
         <translation>Odstrani preliv</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Are you sure you want to remove the selected gradient?</source>
         <translation>Ali res želite odstraniti izbrani preliv?</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>Urejanje ...</translation>
     </message>
     <message>
-        <location/>
-        <location filename="../tools/shared/qtgradienteditor/qtgradientview.cpp" line="+1"/>
         <source>Rename</source>
         <translation>Preimenuj</translation>
     </message>
     <message>
-        <location/>
-        <location filename="../tools/shared/qtgradienteditor/qtgradientview.cpp" line="+1"/>
         <source>Remove</source>
         <translation>Odstrani</translation>
     </message>
     <message>
-        <location/>
         <source>Gradient View</source>
         <translation>Prikaz preliva</translation>
     </message>
@@ -3070,7 +2532,6 @@
 <context>
     <name>QtGradientViewDialog</name>
     <message>
-        <location filename="../tools/shared/qtgradienteditor/qtgradientviewdialog.ui"/>
         <source>Select Gradient</source>
         <translation>Izberite preliv</translation>
     </message>
@@ -3078,7 +2539,6 @@
 <context>
     <name>QtKeySequenceEdit</name>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qtpropertybrowserutils.cpp" line="+221"/>
         <source>Clear Shortcut</source>
         <translation>Počisti bližnjico</translation>
     </message>
@@ -3086,17 +2546,14 @@
 <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>Jezik</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Country</source>
         <translation>Država</translation>
     </message>
@@ -3104,17 +2561,14 @@
 <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>
@@ -3122,17 +2576,14 @@
 <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>
@@ -3140,12 +2591,10 @@
 <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>
@@ -3153,27 +2602,22 @@
 <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 × %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>Širina</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Height</source>
         <translation>Višina</translation>
     </message>
@@ -3181,27 +2625,22 @@
 <context>
     <name>QtRectPropertyManager</name>
     <message>
-        <location line="-612"/>
         <source>[(%1, %2), %3 x %4]</source>
         <translation>[(%1, %2), %3 × %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>Širina</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Height</source>
         <translation>Višina</translation>
     </message>
@@ -3209,128 +2648,98 @@
 <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 že obstaja.
 Ali jo želite nadomestiti?</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>Kot kaže datoteka ni datoteka z viri. Najden je bil element »%1«, pričakovan pa element »%2«.</translation>
     </message>
     <message>
-        <location line="+902"/>
         <source>%1 [read-only]</source>
         <translation>%1 [samo za branje]</translation>
     </message>
     <message>
-        <location line="+2"/>
-        <location line="+198"/>
         <source>%1 [missing]</source>
         <translation>%1 [manjka]</translation>
     </message>
     <message>
-        <location line="-72"/>
         <source>&lt;no prefix&gt;</source>
         <translation>&lt;brez predpone&gt;</translation>
     </message>
     <message>
-        <location line="+320"/>
-        <location line="+566"/>
         <source>New Resource File</source>
         <translation>Nova datoteka z viri</translation>
     </message>
     <message>
-        <location line="-564"/>
-        <location line="+25"/>
         <source>Resource files (*.qrc)</source>
         <translation>Datoteke z viri (*.qrc)</translation>
     </message>
     <message>
-        <location line="-2"/>
         <source>Import Resource File</source>
         <translation>Uvozi datoteko z viri</translation>
     </message>
     <message>
-        <location line="+112"/>
         <source>newPrefix</source>
         <translation>novaPredpona</translation>
     </message>
     <message>
-        <location line="+49"/>
         <source>Add Files</source>
         <translation>Dodaj datoteke</translation>
     </message>
     <message>
-        <location line="+21"/>
         <source>Incorrect Path</source>
         <translation>Nepravilna pot</translation>
     </message>
     <message>
-        <location line="+3"/>
-        <location line="+19"/>
-        <location line="+212"/>
-        <location line="+7"/>
         <source>Copy</source>
         <translation>Skopiraj</translation>
     </message>
     <message>
-        <location line="-236"/>
         <source>Copy As...</source>
         <translation>Skopiraj kot ...</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Keep</source>
         <translation>Obdrži</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Skip</source>
         <translation>Preskoči</translation>
     </message>
     <message>
-        <location line="+87"/>
         <source>Clone Prefix</source>
         <translation>Kloniraj predpono</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>Vnesite pripono, ki jo želite dodati imenom kloniranih datotek.
 To bi, na primer, lahko bila pripona jezika kot je »_sl«.</translation>
     </message>
     <message>
-        <location line="+113"/>
-        <location line="+4"/>
         <source>Copy As</source>
         <translation>Skopiraj kot</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;Izbrana datoteka:&lt;/p&gt;&lt;p&gt;%1&lt;/p&gt;&lt;p&gt;je izven mape trenutne datoteke z viri:&lt;/p&gt;&lt;p&gt;%2&lt;/p&gt;&lt;p&gt;Izberite drugo pot znotraj te mape.&lt;p&gt;</translation>
     </message>
     <message>
-        <location line="+20"/>
         <source>Could not overwrite %1.</source>
         <translation>Ni bilo moč nadomestiti %1.</translation>
     </message>
     <message>
-        <location line="-289"/>
         <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;Opozorilo:&lt;/b&gt; Datoteka&lt;/p&gt;&lt;p&gt;%1&lt;/p&gt;&lt;p&gt;je izven matične mape trenutne datoteke z viri.&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;Da razrešite težavo, kliknite:&lt;/p&gt;&lt;table&gt;&lt;tr&gt;&lt;th align=&quot;left&quot;&gt;Skopiraj&lt;/th&gt;&lt;td&gt;da skopirate datoteko v matično mapo datoteke z viri&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th align=&quot;left&quot;&gt;Skopiraj kot ...&lt;/th&gt;&lt;td&gt;da skopirate datoteko v podmapo matične mape datoteke z viri&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th align=&quot;left&quot;&gt;Obdrži&lt;/th&gt;&lt;td&gt;da uporabite trenutno lokacijo&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</translation>
     </message>
     <message>
-        <location line="+288"/>
         <source>Could not copy
 %1
 to
@@ -3341,153 +2750,120 @@
 %2</translation>
     </message>
     <message>
-        <location line="+35"/>
         <source>A parse error occurred at line %1, column %2 of %3:
 %4</source>
         <translation>Prišlo je do napake razčlenjevanja v vrstici %1, stolpcu %2 v %3:
 %4</translation>
     </message>
     <message>
-        <location line="+12"/>
         <source>Save Resource File</source>
         <translation>Shrani datoteko z viri</translation>
     </message>
     <message>
-        <location line="+34"/>
         <source>Edit Resources</source>
         <translation>Urejanje virov</translation>
     </message>
     <message>
-        <location line="+35"/>
         <source>New...</source>
         <translation>Nova ...</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Open...</source>
         <translation>Odpri ...</translation>
     </message>
     <message>
-        <location line="+2"/>
-        <location line="+11"/>
         <source>Remove</source>
         <translation>Odstrani</translation>
     </message>
     <message>
-        <location line="-10"/>
-        <location line="+11"/>
         <source>Move Up</source>
         <translation>Premakni gor</translation>
     </message>
     <message>
-        <location line="-10"/>
-        <location line="+11"/>
         <source>Move Down</source>
         <translation>Pomakni dol</translation>
     </message>
     <message>
-        <location line="-9"/>
-        <location line="+1"/>
         <source>Add Prefix</source>
         <translation>Dodaj predpono</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Add Files...</source>
         <translation>Dodaj datoteke ...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Change Prefix</source>
         <translation>Spremeni predpono</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Change Language</source>
         <translation>Spremeni jezik</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Change Alias</source>
         <translation>Spremeni drugo ime</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Clone Prefix...</source>
         <translation>Kloniraj predpono ...</translation>
     </message>
     <message>
-        <location line="+37"/>
         <source>Prefix / Path</source>
         <translation>Predpona / pot</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Language / Alias</source>
         <translation>Jezik / drugo ime</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;Opozorilo:&lt;/b&gt; Med ponovnim nalaganjem virov je prišlo do težav:&lt;/p&gt;&lt;pre&gt;%1&lt;/pre&gt;&lt;/html&gt;</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Resource Warning</source>
         <translation>Opozorilo o virih</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qtresourceeditordialog.ui"/>
         <source>Dialog</source>
         <translation>Pogovorno okno</translation>
     </message>
     <message>
-        <location/>
         <source>New File</source>
         <translation>Nova datoteka</translation>
     </message>
     <message>
-        <location/>
         <source>N</source>
         <translation>N</translation>
     </message>
     <message>
-        <location/>
         <source>Remove File</source>
         <translation>Odstrani datoteko</translation>
     </message>
     <message>
-        <location/>
         <source>R</source>
         <translation>R</translation>
     </message>
     <message>
-        <location/>
         <source>I</source>
         <translation>I</translation>
     </message>
     <message>
-        <location/>
         <source>New Resource</source>
         <translation>Nov vir</translation>
     </message>
     <message>
-        <location/>
         <source>A</source>
         <translation>A</translation>
     </message>
     <message>
-        <location/>
         <source>Remove Resource or File</source>
         <translation>Odstrani vir ali datoteko</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qtresourceeditordialog.cpp" line="-239"/>
         <source>Could not write %1: %2</source>
         <translation>Ni moč zapisati %1: %2</translation>
     </message>
     <message>
-        <location line="+71"/>
         <source>Open Resource File</source>
         <translation>Odpri datoteko z viri</translation>
     </message>
@@ -3495,24 +2871,20 @@
 <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 × %2
 %3</translation>
     </message>
     <message>
-        <location line="+20"/>
         <source>Edit Resources...</source>
         <translation>Urejanje virov ...</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Reload</source>
         <translation>Znova naloži</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Copy Path</source>
         <translation>Skopiraj pot</translation>
     </message>
@@ -3520,7 +2892,6 @@
 <context>
     <name>QtResourceViewDialog</name>
     <message>
-        <location line="+250"/>
         <source>Select Resource</source>
         <translation>Izberite vir</translation>
     </message>
@@ -3528,17 +2899,14 @@
 <context>
     <name>QtSizeFPropertyManager</name>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="-535"/>
         <source>%1 x %2</source>
         <translation>%1 × %2</translation>
     </message>
     <message>
-        <location line="+130"/>
         <source>Width</source>
         <translation>Širina</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Height</source>
         <translation>Višina</translation>
     </message>
@@ -3546,33 +2914,26 @@
 <context>
     <name>QtSizePolicyPropertyManager</name>
     <message>
-        <location line="+1709"/>
-        <location line="+1"/>
         <source>&lt;Invalid&gt;</source>
         <translation>&lt;neveljavno&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>Vodoravna politika</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Vertical Policy</source>
         <translation>Navpična politika</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Horizontal Stretch</source>
         <translation>Vodoravna praznina</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Vertical Stretch</source>
         <translation>Navpična praznina</translation>
     </message>
@@ -3580,17 +2941,14 @@
 <context>
     <name>QtSizePropertyManager</name>
     <message>
-        <location line="-2286"/>
         <source>%1 x %2</source>
         <translation>%1 × %2</translation>
     </message>
     <message>
-        <location line="+96"/>
         <source>Width</source>
         <translation>Širina</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Height</source>
         <translation>Višina</translation>
     </message>
@@ -3598,107 +2956,86 @@
 <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; L O Č I T E L J &gt;</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qttoolbardialog/qttoolbardialog.ui"/>
         <source>Customize Toolbars</source>
         <translation>Prilagodi orodjarne</translation>
     </message>
     <message>
-        <location/>
         <source>1</source>
         <translation>1</translation>
     </message>
     <message>
-        <location/>
         <source>Actions</source>
         <translation>Dejanja</translation>
     </message>
     <message>
-        <location/>
         <source>Toolbars</source>
         <translation>Orodjarne</translation>
     </message>
     <message>
-        <location/>
         <source>New</source>
         <translation>Novo</translation>
     </message>
     <message>
-        <location/>
         <source>Remove</source>
         <translation>Odstrani</translation>
     </message>
     <message>
-        <location/>
         <source>Rename</source>
         <translation>Preimenuj</translation>
     </message>
     <message>
-        <location/>
         <source>Up</source>
         <translation>Gor</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>Trenutna dejanja v orodjarni</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qttoolbardialog/qttoolbardialog.cpp" line="-544"/>
         <source>Custom Toolbar</source>
         <translation>Orodjarna po meri</translation>
     </message>
     <message>
-        <location filename="../tools/shared/qttoolbardialog/qttoolbardialog.ui"/>
         <source>Add new toolbar</source>
         <translation>Dodaj novo orodjarno</translation>
     </message>
     <message>
-        <location/>
         <source>Remove selected toolbar</source>
         <translation>Odstrani izbrano orodjarno</translation>
     </message>
     <message>
-        <location/>
         <source>Rename toolbar</source>
         <translation>Preimenuj orodjarno</translation>
     </message>
     <message>
-        <location/>
         <source>Move action up</source>
         <translation>Premakni dejanje gor</translation>
     </message>
     <message>
-        <location/>
         <source>Remove action from toolbar</source>
         <translation>Odstrani dejanje iz orodjarne</translation>
     </message>
     <message>
-        <location/>
         <source>Add action to toolbar</source>
         <translation>Dodaj dejanje v orodjarno</translation>
     </message>
     <message>
-        <location/>
         <source>Move action down</source>
         <translation>Premakni dejanje dol</translation>
     </message>
@@ -3706,12 +3043,10 @@
 <context>
     <name>QtTreePropertyBrowser</name>
     <message>
-        <location filename="../tools/shared/qtpropertybrowser/qttreepropertybrowser.cpp" line="+442"/>
         <source>Property</source>
         <translation>Lastnost</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Value</source>
         <translation>Vrednost</translation>
     </message>
@@ -3719,64 +3054,52 @@
 <context>
     <name>SaveFormAsTemplate</name>
     <message>
-        <location filename="../tools/designer/src/designer/saveformastemplate.cpp" line="+72"/>
         <source>Add path...</source>
         <translation>Dodaj pot ...</translation>
     </message>
     <message>
-        <location line="+23"/>
         <source>Template Exists</source>
         <translation>Predloga obstaja</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>A template with the name %1 already exists.
 Do you want overwrite the template?</source>
         <translation>Predloga z imenom %1 že obstaja.
 Ali želite nadomestiti predlogo?</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Overwrite Template</source>
         <translation>Nadomesti predlogo</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Open Error</source>
         <translation>Napaka pri odpiranju</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>There was an error opening template %1 for writing. Reason: %2</source>
         <translation>Prišlo je do napake pri odpiranju predloge %1 za pisanje. Razlog: %2</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>Write Error</source>
         <translation>Napaka pri pisanju</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>There was an error writing the template %1 to disk. Reason: %2</source>
         <translation>Prišlo je do napake pri pisanju predloge %1 na disk. Razlog: %2</translation>
     </message>
     <message>
-        <location line="+27"/>
         <source>Pick a directory to save templates in</source>
         <translation>Izberite mapo za shranjevanje predlog</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/designer/saveformastemplate.ui"/>
         <source>Save Form As Template</source>
         <translation>Shranjevanje obrazca kot predloge</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Category:</source>
         <translation>&amp;Kategorija:</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Name:</source>
         <translation>&amp;Ime:</translation>
     </message>
@@ -3784,7 +3107,6 @@
 <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>Prišlo je do napake med poganjanjem skriptov za »%1«:
@@ -3794,22 +3116,18 @@
 <context>
     <name>SelectSignalDialog</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/selectsignaldialog.ui"/>
         <source>Go to slot</source>
         <translation>Pojdi na režo</translation>
     </message>
     <message>
-        <location/>
         <source>Select signal</source>
         <translation>Izbiranje signala</translation>
     </message>
     <message>
-        <location/>
         <source>signal</source>
         <translation>signal</translation>
     </message>
     <message>
-        <location/>
         <source>class</source>
         <translation>razred</translation>
     </message>
@@ -3817,7 +3135,6 @@
 <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>POŠILJATELJ(%1), SIGNAL(%2), PREJEMNIK (%3), REŽA(%4)</translation>
     </message>
@@ -3825,32 +3142,26 @@
 <context>
     <name>SignalSlotDialogClass</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/signalslotdialog.ui"/>
         <source>Signals and slots</source>
         <translation>Signali in reže</translation>
     </message>
     <message>
-        <location/>
         <source>Slots</source>
         <translation>Reže</translation>
     </message>
     <message>
-        <location/>
         <source>...</source>
         <translation>...</translation>
     </message>
     <message>
-        <location/>
         <source>Signals</source>
         <translation>Signali</translation>
     </message>
     <message>
-        <location/>
         <source>Add</source>
         <translation>Dodaj</translation>
     </message>
     <message>
-        <location/>
         <source>Delete</source>
         <translation>Zbriši</translation>
     </message>
@@ -3858,12 +3169,10 @@
 <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>Vodoravni ločitelj »%1«, %2 x %3</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Vertical Spacer &apos;%1&apos;, %2 x %3</source>
         <translation>Navpični ločitelj »%1«, %2 x %3</translation>
     </message>
@@ -3871,41 +3180,51 @@
 <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>
+        <extracomment>Tab in preferences dialog
+</extracomment>
         <translation>Poti za predloge</translation>
     </message>
 </context>
 <context>
     <name>ToolBarManager</name>
     <message>
-        <location filename="../tools/designer/src/designer/mainwindow.cpp" line="+89"/>
         <source>Configure Toolbars...</source>
         <translation>Nastavi orodjarne ...</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Window</source>
         <translation>Okno</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Help</source>
         <translation>Pomoč</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Style</source>
         <translation>Slog</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Dock views</source>
         <translation>Podokna</translation>
     </message>
     <message>
-        <location line="+6"/>
+        <source>File</source>
+        <translation>Datoteka</translation>
+    </message>
+    <message>
+        <source>Edit</source>
+        <translation>Urejanje</translation>
+    </message>
+    <message>
+        <source>Tools</source>
+        <translation>Orodja</translation>
+    </message>
+    <message>
+        <source>Form</source>
+        <translation>Obrazec</translation>
+    </message>
+    <message>
         <source>Toolbars</source>
         <translation>Orodjarne</translation>
     </message>
@@ -3913,30 +3232,64 @@
 <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;Različica %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 snovalnik grafičnih uporabniških vmesnikov za Qt programe.&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;Avtorske pravice © 2009 Nokia Corporation in/ali njene podružnice.</translation>
     </message>
 </context>
 <context>
+    <name>VideoPlayerTaskMenu</name>
+    <message>
+        <source>Available Mime Types</source>
+        <translation>Razpoložljive vrste MIME</translation>
+    </message>
+    <message>
+        <source>Display supported mime types...</source>
+        <translation>Prikaži podprte vrste MIME ...</translation>
+    </message>
+    <message>
+        <source>Load...</source>
+        <translation>Naloži ...</translation>
+    </message>
+    <message>
+        <source>Play</source>
+        <translation>Predvajaj</translation>
+    </message>
+    <message>
+        <source>Pause</source>
+        <translation>Premor</translation>
+    </message>
+    <message>
+        <source>Stop</source>
+        <translation>Ustavi</translation>
+    </message>
+    <message>
+        <source>Choose Video Player Media Source</source>
+        <translation>Izberite večpredstavnostni vir za predvajalnik videa</translation>
+    </message>
+    <message>
+        <source>An error has occurred in &apos;%1&apos;: %2</source>
+        <translation>V »%1« je prišlo do napake: %2</translation>
+    </message>
+    <message>
+        <source>Video Player Error</source>
+        <translation>Napaka predvajalnika videa</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>Datoteka vsebuje gradnik po meri »%1«, katerega osnovni razred (%2) se razlikuje od trenutnega vnosa v podatkovni zbirki gradnikov (%3). Podatkovna zbirka gradnikov je ostala nespremenjena.</translation>
     </message>
@@ -3944,87 +3297,70 @@
 <context>
     <name>qdesigner_internal::ActionEditor</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/actioneditor.cpp" line="+139"/>
         <source>Actions</source>
         <translation>Dejanja</translation>
     </message>
     <message>
-        <location line="-16"/>
         <source>New...</source>
         <translation>Novo ...</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Delete</source>
         <translation>Zbriši</translation>
     </message>
     <message>
-        <location line="+313"/>
         <source>New action</source>
         <translation>Novo dejanje</translation>
     </message>
     <message>
-        <location line="+98"/>
         <source>Edit action</source>
         <translation>Uredi dejanje</translation>
     </message>
     <message>
-        <location line="-417"/>
         <source>Edit...</source>
         <translation>Uredi ...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Go to slot...</source>
         <translation>Pojdi na režo ...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Copy</source>
         <translation>Skopiraj</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Cut</source>
         <translation>Izreži</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Paste</source>
         <translation>Prilepi</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Select all</source>
         <translation>Izberi vse</translation>
     </message>
     <message>
-        <location line="+62"/>
         <source>Icon View</source>
         <translation>Prikaz ikon</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Detailed View</source>
         <translation>Prikaz podrobnosti</translation>
     </message>
     <message>
-        <location line="+413"/>
         <source>Remove actions</source>
         <translation>Odstrani dejanja</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Remove action &apos;%1&apos;</source>
         <translation>Odstrani dejanje »%1«</translation>
     </message>
     <message>
-        <location line="+186"/>
         <source>Used In</source>
         <translation>Uporabljeno v</translation>
     </message>
     <message>
-        <location line="-608"/>
         <source>Configure Action Editor</source>
         <translation>Nastavi urejevalnik dejanj</translation>
     </message>
@@ -4032,32 +3368,26 @@
 <context>
     <name>qdesigner_internal::ActionModel</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/actionrepository.cpp" line="+95"/>
         <source>Name</source>
         <translation>Ime</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Used</source>
         <translation>Uporabljeno</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Text</source>
         <translation>Besedilo</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Shortcut</source>
         <translation>Bližnjica</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Checkable</source>
         <translation>Stikalo</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>ToolTip</source>
         <translation>Namig</translation>
     </message>
@@ -4065,27 +3395,22 @@
 <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>Elementu »%1« manjka obvezna lastnost »%2«.</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>Empty brush name encountered.</source>
         <translation>Doseženo je bilo prazno ime čopiča.</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>An unexpected element &apos;%1&apos; was encountered.</source>
         <translation>Dosežen je bil nepričakovan element »%1«.</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>Prišlo je do napake pri branju datoteke z definicijo čopiča »%1«, v vrstici %2 in stolpcu %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>Prišlo je do napake pri branju datoteke z viri »%1«, v vrstici %2 in stolpcu %3: %4</translation>
     </message>
@@ -4093,17 +3418,14 @@
 <context>
     <name>qdesigner_internal::BuddyEditor</name>
     <message>
-        <location filename="../tools/designer/src/components/buddyeditor/buddyeditor.cpp" line="+261"/>
         <source>Add buddy</source>
         <translation>Dodaj kolega</translation>
     </message>
     <message>
-        <location line="+52"/>
         <source>Remove buddies</source>
         <translation>Odstrani kolege</translation>
     </message>
     <message numerus="yes">
-        <location line="+24"/>
         <source>Remove %n buddies</source>
         <translation>
             <numerusform>Odstrani %n kolega</numerusform>
@@ -4113,7 +3435,6 @@
         </translation>
     </message>
     <message numerus="yes">
-        <location line="+51"/>
         <source>Add %n buddies</source>
         <translation>
             <numerusform>Dodaj %n kolega</numerusform>
@@ -4123,7 +3444,6 @@
         </translation>
     </message>
     <message>
-        <location line="+47"/>
         <source>Set automatically</source>
         <translation>Nastavi samodejno</translation>
     </message>
@@ -4131,7 +3451,6 @@
 <context>
     <name>qdesigner_internal::BuddyEditorPlugin</name>
     <message>
-        <location filename="../tools/designer/src/components/buddyeditor/buddyeditor_plugin.cpp" line="+73"/>
         <source>Edit Buddies</source>
         <translation>Urejanje kolegov</translation>
     </message>
@@ -4139,7 +3458,6 @@
 <context>
     <name>qdesigner_internal::BuddyEditorTool</name>
     <message>
-        <location filename="../tools/designer/src/components/buddyeditor/buddyeditor_tool.cpp" line="+56"/>
         <source>Edit Buddies</source>
         <translation>Urejanje kolegov</translation>
     </message>
@@ -4147,12 +3465,10 @@
 <context>
     <name>qdesigner_internal::ButtonGroupMenu</name>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/button_taskmenu.cpp" line="+7"/>
         <source>Select members</source>
         <translation>Izberi člane</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Break</source>
         <translation>Razbij</translation>
     </message>
@@ -4160,32 +3476,26 @@
 <context>
     <name>qdesigner_internal::ButtonTaskMenu</name>
     <message>
-        <location line="+121"/>
         <source>Assign to button group</source>
         <translation>Dodeli skupini gumbov</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Button group</source>
         <translation>Skupina gumbov</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>New button group</source>
         <translation>Novi skupini gumbov</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Change text...</source>
         <translation>Spremeni besedilo ...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>None</source>
         <translation>Nobeni</translation>
     </message>
     <message>
-        <location line="+101"/>
         <source>Button group &apos;%1&apos;</source>
         <translation>Skupina gumbov »%1«</translation>
     </message>
@@ -4193,57 +3503,46 @@
 <context>
     <name>qdesigner_internal::CodeDialog</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/codedialog.cpp" line="+95"/>
         <source>Save...</source>
         <translation>Shrani ...</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Copy All</source>
         <translation>Skopiraj vse</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>&amp;Find in Text...</source>
         <translation>&amp;Najdi v besedilu ...</translation>
     </message>
     <message>
-        <location line="+75"/>
         <source>A temporary form file could not be created in %1.</source>
         <translation>Začasne datoteke obrazca v %1 ni bilo moč ustvariti.</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>The temporary form file %1 could not be written.</source>
         <translation>V začasno datoteko obrazca %1 ni bilo moč pisati.</translation>
     </message>
     <message>
-        <location line="+21"/>
         <source>%1 - [Code]</source>
         <translation>%1 - [koda]</translation>
     </message>
     <message>
-        <location line="+23"/>
         <source>Save Code</source>
         <translation>Shrani kodo</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Header Files (*.%1)</source>
         <translation>Datoteke z glavo (*.%1)</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>The file %1 could not be opened: %2</source>
         <translation>Datoteke »%1« ni bilo moč odpreti: %2</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>The file %1 could not be written: %2</source>
         <translation>Datoteke »%1« ni bilo moč zapisati: %2</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>%1 - Error</source>
         <translation>%1 - napaka</translation>
     </message>
@@ -4251,7 +3550,6 @@
 <context>
     <name>qdesigner_internal::ColorAction</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/richtexteditor.cpp" line="+246"/>
         <source>Text Color</source>
         <translation>Barva besedila</translation>
     </message>
@@ -4259,12 +3557,10 @@
 <context>
     <name>qdesigner_internal::ComboBoxTaskMenu</name>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/combobox_taskmenu.cpp" line="+68"/>
         <source>Edit Items...</source>
         <translation>Uredi postavke ...</translation>
     </message>
     <message>
-        <location line="+38"/>
         <source>Change Combobox Contents</source>
         <translation>Spreminjanje vsebine spustnega seznama</translation>
     </message>
@@ -4272,7 +3568,6 @@
 <context>
     <name>qdesigner_internal::CommandLinkButtonTaskMenu</name>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/button_taskmenu.cpp" line="+156"/>
         <source>Change description...</source>
         <translation>Spremeni opis ...</translation>
     </message>
@@ -4280,17 +3575,14 @@
 <context>
     <name>qdesigner_internal::ConnectionEdit</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/connectionedit.cpp" line="+1313"/>
         <source>Select All</source>
         <translation>Izberi vse</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Deselect All</source>
         <translation>Odizberi vse</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Delete</source>
         <translation>Zbriši</translation>
     </message>
@@ -4298,52 +3590,42 @@
 <context>
     <name>qdesigner_internal::ConnectionModel</name>
     <message>
-        <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditorwindow.cpp" line="-465"/>
         <source>Sender</source>
         <translation>Pošiljatelj</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Signal</source>
         <translation>Signal</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Receiver</source>
         <translation>Prejemnik</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Slot</source>
         <translation>Reža</translation>
     </message>
     <message>
-        <location line="+90"/>
         <source>&lt;sender&gt;</source>
         <translation>&lt;pošiljatelj&gt;</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&lt;signal&gt;</source>
         <translation>&lt;signal&gt;</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&lt;receiver&gt;</source>
         <translation>&lt;prejemnik&gt;</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&lt;slot&gt;</source>
         <translation>&lt;reža&gt;</translation>
     </message>
     <message>
-        <location line="+110"/>
         <source>Signal and Slot Editor</source>
         <translation>Urejevalnik signalov in rež</translation>
     </message>
     <message>
-        <location line="-2"/>
         <source>The connection already exists!&lt;br&gt;%1</source>
         <translation>Povezava že obstaja!&lt;br&gt;%1</translation>
     </message>
@@ -4351,42 +3633,34 @@
 <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>Vstavi stran pred trenutno stran</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Insert Page After Current Page</source>
         <translation>Vstavi stran za trenutno stran</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Add Subwindow</source>
         <translation>Dodaj podokno</translation>
     </message>
     <message>
-        <location line="-40"/>
         <source>Delete</source>
         <translation>Zbriši</translation>
     </message>
     <message>
-        <location line="+25"/>
         <source>Insert</source>
         <translation>Vstavi</translation>
     </message>
     <message>
-        <location line="+53"/>
         <source>Subwindow</source>
         <translation>Podokno</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Page</source>
         <translation>Stran %1</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Page %1 of %2</source>
         <translation>Stran %1 od %2</translation>
     </message>
@@ -4394,69 +3668,57 @@
 <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>
+        <extracomment>System resolution
+</extracomment>
         <translation>Sistemska (%1 x %2)</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>User defined</source>
         <translation>Uporabniško določena</translation>
     </message>
     <message>
-        <location line="+18"/>
         <source> x </source>
-        <extracomment>DPI X/Y separator</extracomment>
+        <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>Poravnaj levo</translation>
     </message>
     <message>
-        <location line="-5"/>
         <source>AlignHCenter</source>
         <translation>Poravnaj sredinsko (vodoravno)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>AlignRight</source>
         <translation>Poravnaj desno</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>AlignJustify</source>
         <translation>Poravnaj obojestransko</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>AlignTop</source>
         <translation>Poravnaj na vrh</translation>
     </message>
     <message>
-        <location line="+1"/>
-        <location line="+4"/>
         <source>AlignVCenter</source>
         <translation>Poravnaj sredinsko (navpično)</translation>
     </message>
     <message>
-        <location line="-3"/>
         <source>AlignBottom</source>
         <translation>Poravnaj na dno</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>Po meri (%n vloga)</numerusform>
@@ -4466,75 +3728,58 @@
         </translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Inherited</source>
         <translation>Podedovano</translation>
     </message>
     <message>
-        <location line="+566"/>
         <source>Horizontal</source>
         <translation>Vodoravno</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Vertical</source>
         <translation>Navpično</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Normal Off</source>
         <translation>Normalna in izključena</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Normal On</source>
         <translation>Normalna in vključena</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Disabled Off</source>
         <translation>Onemogočena in izključena</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Disabled On</source>
         <translation>Onemogočena in vključena</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Active Off</source>
         <translation>Aktivna in izključena</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Active On</source>
         <translation>Aktivna in vključena</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Selected Off</source>
         <translation>Izbrana in izključena</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Selected On</source>
         <translation>Izbrana in vključena</translation>
     </message>
     <message>
-        <location line="+7"/>
-        <location line="+21"/>
         <source>translatable</source>
         <translation>prevedljivo</translation>
     </message>
     <message>
-        <location line="-15"/>
-        <location line="+21"/>
         <source>disambiguation</source>
         <translation>razločitev</translation>
     </message>
     <message>
-        <location line="-15"/>
-        <location line="+21"/>
         <source>comment</source>
         <translation>komentar</translation>
     </message>
@@ -4542,48 +3787,38 @@
 <context>
     <name>qdesigner_internal::DeviceProfileDialog</name>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/deviceprofiledialog.cpp" line="+63"/>
         <source>Device Profiles (*.%1)</source>
         <translation>Profili naprav (*.%1)</translation>
     </message>
     <message>
-        <location line="+31"/>
         <source>Default</source>
         <translation>Privzeti</translation>
     </message>
     <message>
-        <location line="+67"/>
         <source>Save Profile</source>
         <translation>Shrani profil</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>Save Profile - Error</source>
         <translation>Shranjevanje profila - napaka</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Unable to open the file &apos;%1&apos; for writing: %2</source>
         <translation>Datoteke »%1« ni moč odpreti za pisanje: %2</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Open profile</source>
         <translation>Odpri profil</translation>
     </message>
     <message>
-        <location line="+6"/>
-        <location line="+6"/>
         <source>Open Profile - Error</source>
         <translation>Odpiranje profila - napaka</translation>
     </message>
     <message>
-        <location line="-6"/>
         <source>Unable to open the file &apos;%1&apos; for reading: %2</source>
         <translation>Datoteke »%1« ni moč odpreti za branje: %2</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>&apos;%1&apos; is not a valid profile: %2</source>
         <translation>»%1« ni veljaven profil: %2</translation>
     </message>
@@ -4591,57 +3826,46 @@
 <context>
     <name>qdesigner_internal::Dialog</name>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/stringlisteditor.ui"/>
         <source>Dialog</source>
         <translation>PogovornoOkno</translation>
     </message>
     <message>
-        <location/>
         <source>StringList</source>
         <translation>SeznamNizov</translation>
     </message>
     <message>
-        <location/>
         <source>New String</source>
         <translation>Nov niz</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;New</source>
         <translation>&amp;Nov</translation>
     </message>
     <message>
-        <location/>
         <source>Delete String</source>
         <translation>Z&amp;briši niz</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Delete</source>
         <translation>&amp;Zbriši</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Value:</source>
         <translation>&amp;Vrednost:</translation>
     </message>
     <message>
-        <location/>
         <source>Move String Up</source>
         <translation>Premakni niz gor</translation>
     </message>
     <message>
-        <location/>
         <source>Up</source>
         <translation>Gor</translation>
     </message>
     <message>
-        <location/>
         <source>Move String Down</source>
         <translation>Premakni niz dol</translation>
     </message>
     <message>
-        <location/>
         <source>Down</source>
         <translation>Dol</translation>
     </message>
@@ -4649,52 +3873,42 @@
 <context>
     <name>qdesigner_internal::EmbeddedOptionsControl</name>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/embeddedoptionspage.cpp" line="-260"/>
         <source>None</source>
         <translation>Noben</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Add a profile</source>
         <translation>Dodaj profil</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Edit the selected profile</source>
         <translation>Uredi izbrani profil</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Delete the selected profile</source>
         <translation>Zbriši izbrani profil</translation>
     </message>
     <message>
-        <location line="+22"/>
         <source>Add Profile</source>
         <translation>Dodaj 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>Uredi profil</translation>
     </message>
     <message>
-        <location line="+26"/>
         <source>Delete Profile</source>
         <translation>Zbriši profil</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Would you like to delete the profile &apos;%1&apos;?</source>
         <translation>Ali želite zbrisati profil »%1«?</translation>
     </message>
     <message>
-        <location line="+55"/>
         <source>Default</source>
         <translation>Privzeti</translation>
     </message>
@@ -4702,20 +3916,21 @@
 <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;filter&gt;</translation>
+        <source>Filter</source>
+        <translation>Filter</translation>
+    </message>
+    <message>
+        <source>Clear text</source>
+        <translation>Počisti besedilo</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>Datoteka z viri je bila spremenjena</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>The file &quot;%1&quot; has changed outside Designer. Do you want to reload it?</source>
         <translation>Datoteka »%1« je bila spremenjena izven Qt Designerja. Ali jo želite naložiti znova?</translation>
     </message>
@@ -4723,7 +3938,6 @@
 <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>Dodaj vrstico razporeditve na obrazcu ...</translation>
     </message>
@@ -4731,54 +3945,46 @@
 <context>
     <name>qdesigner_internal::FormWindow</name>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/formwindow.cpp" line="-1267"/>
         <source>Edit contents</source>
         <translation>Uredi vsebino</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>F2</source>
         <translation>F2</translation>
     </message>
     <message>
-        <location line="+841"/>
         <source>Resize</source>
         <translation>Spremeni velikost</translation>
     </message>
     <message>
-        <location line="+218"/>
-        <location line="+15"/>
         <source>Key Move</source>
         <translation>Premik s tipko</translation>
     </message>
     <message>
-        <location line="+270"/>
+        <source>Key Resize</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <source>Cannot paste widgets. Designer could not find a container without a layout to paste into.</source>
         <translation>Ni moč prilepiti gradnikov. Qt Designer ni mogel najti vsebnika brez razporeditve, v katerega bi prilepil.</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>Razbijte razporeditev za vsebnik, v katerega želite prilepiti, nato izberite vsebnik in prilepite znova.</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Paste error</source>
         <translation>Napaka prilepljanja</translation>
     </message>
     <message>
-        <location line="+445"/>
         <source>Lay out</source>
         <translation>Razporedi</translation>
     </message>
     <message>
-        <location line="+493"/>
-        <location line="+55"/>
         <source>Drop widget</source>
         <translation>Spusti gradnik</translation>
     </message>
     <message numerus="yes">
-        <location line="-1058"/>
         <source>Paste %n action(s)</source>
         <translation>
             <numerusform>Prilepi %n dejanje</numerusform>
@@ -4788,12 +3994,10 @@
         </translation>
     </message>
     <message>
-        <location line="-511"/>
         <source>Insert widget &apos;%1&apos;</source>
         <translation>Vstavi gradnik »%1«</translation>
     </message>
     <message numerus="yes">
-        <location line="+513"/>
         <source>Paste %n widget(s)</source>
         <translation>
             <numerusform>Prilepi %n gradnik</numerusform>
@@ -4803,27 +4007,22 @@
         </translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Paste (%1 widgets, %2 actions)</source>
         <translation>Prilepi (gradnikov: %1, dejanj: %2)</translation>
     </message>
     <message>
-        <location line="+466"/>
         <source>Select Ancestor</source>
         <translation>Izberi predhodnika</translation>
     </message>
     <message>
-        <location line="+576"/>
         <source>A QMainWindow-based form does not contain a central widget.</source>
         <translation>Obrazec temelječ na QMainWindow ne vsebuje osrednjega gradnika.</translation>
     </message>
     <message>
-        <location line="-797"/>
         <source>Raise widgets</source>
         <translation>Dvigni gradnike</translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>Lower widgets</source>
         <translation>Spusti gradnike</translation>
     </message>
@@ -4831,12 +4030,10 @@
 <context>
     <name>qdesigner_internal::FormWindowBase</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/formwindowbase.cpp" line="+393"/>
         <source>Delete</source>
         <translation>Zbriši</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Delete &apos;%1&apos;</source>
         <translation>Zbriši »%1«</translation>
     </message>
@@ -4844,200 +4041,159 @@
 <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;Izreži</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Cuts the selected widgets and puts them on the clipboard</source>
         <translation>Izreže izbrane gradnike in jih odloži na odložišče</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>&amp;Copy</source>
         <translation>S&amp;kopiraj</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Copies the selected widgets to the clipboard</source>
         <translation>Skopira izbrane gradnike na odložišče</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>&amp;Paste</source>
         <translation>Pri&amp;lepi</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Pastes the clipboard&apos;s contents</source>
         <translation>Prilepi vsebino odložišča</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>&amp;Delete</source>
         <translation>&amp;Zbriši</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Deletes the selected widgets</source>
         <translation>Zbriše izbrane gradnike</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Select &amp;All</source>
         <translation>Izberi &amp;vse</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Selects all widgets</source>
         <translation>Izbere vse gradnike</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Bring to &amp;Front</source>
         <translation>Prinesi v o&amp;spredje</translation>
     </message>
     <message>
-        <location line="+3"/>
-        <location line="+1"/>
         <source>Raises the selected widgets</source>
         <translation>Dvigne izbrane gradnike</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Send to &amp;Back</source>
         <translation>Pošlji v &amp;ozadje</translation>
     </message>
     <message>
-        <location line="+3"/>
-        <location line="+1"/>
         <source>Lowers the selected widgets</source>
         <translation>Spusti izbrane gradnike</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Adjust &amp;Size</source>
         <translation>Prilagodi ve&amp;likost</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Adjusts the size of the selected widget</source>
         <translation>Prilagodi velikost izbranega gradnika</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Lay Out &amp;Horizontally</source>
         <translation>Razporedi &amp;vodoravno</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Lays out the selected widgets horizontally</source>
         <translation>Izbrane gradnike razporedi vodoravno</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Lay Out &amp;Vertically</source>
         <translation>Razporedi &amp;navpično</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Lays out the selected widgets vertically</source>
         <translation>Izbrane gradnike razporedi navpično</translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>Lay Out in a &amp;Grid</source>
         <translation>Razporedi v &amp;mrežo</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Lays out the selected widgets in a grid</source>
         <translation>Razporedi izbrane gradnike v mrežo</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Lay Out Horizontally in S&amp;plitter</source>
         <translation>Razporedi vodoravno v ra&amp;zdelilnik</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Lays out the selected widgets horizontally in a splitter</source>
         <translation>Izbrane gradnike razporedi vodoravno v razdelilnik</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Lay Out Vertically in Sp&amp;litter</source>
         <translation>Razporedi navpično v raz&amp;delilnik</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Lays out the selected widgets vertically in a splitter</source>
         <translation>Izbrane gradnike razporedi navpično v razdelilnik</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>&amp;Break Layout</source>
         <translation>&amp;Razbij razporeditev</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Breaks the selected layout</source>
         <translation>Razbij izbrano razporeditev</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>&amp;Preview...</source>
         <translation>Prikaži &amp;ogled ...</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Preview current form</source>
         <translation>Prikaže ogled trenutnega obrazca</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Form &amp;Settings...</source>
         <translation>&amp;Nastavi obrazec ...</translation>
     </message>
     <message>
-        <location line="+92"/>
         <source>Break Layout</source>
         <translation>Razbij razporeditev</translation>
     </message>
     <message>
-        <location line="+26"/>
         <source>Adjust Size</source>
         <translation>Prilagodi velikost</translation>
     </message>
     <message>
-        <location line="+43"/>
         <source>Could not create form preview</source>
         <comment>Title of warning message box</comment>
         <translation>Ni bilo moč ustvariti ogleda obrazca</translation>
     </message>
     <message>
-        <location line="+341"/>
         <source>Form Settings - %1</source>
         <translation>Nastavitve obrazca - %1</translation>
     </message>
     <message>
-        <location line="-525"/>
         <source>Removes empty columns and rows</source>
         <translation>Odstrani prazne stolpce in vrstice</translation>
     </message>
     <message>
-        <location line="-50"/>
         <source>Lay Out in a &amp;Form Layout</source>
         <translation>Razporedi v razporeditev na &amp;obrazcu</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Lays out the selected widgets in a form layout</source>
         <translation>Razporedi izbrane gradnike v razporeditev na obrazcu</translation>
     </message>
     <message>
-        <location line="+45"/>
         <source>Si&amp;mplify Grid Layout</source>
         <translation>Po&amp;enostavi razporeditev v mrežo</translation>
     </message>
@@ -5045,12 +4201,10 @@
 <context>
     <name>qdesigner_internal::FormWindowSettings</name>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/formwindowsettings.cpp" line="+193"/>
         <source>None</source>
         <translation>Noben</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Device Profile: %1</source>
         <translation>Profil naprave: %1</translation>
     </message>
@@ -5058,37 +4212,30 @@
 <context>
     <name>qdesigner_internal::GridPanel</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/gridpanel.ui"/>
         <source>Form</source>
         <translation>Obrazec</translation>
     </message>
     <message>
-        <location/>
         <source>Grid</source>
         <translation>Mreža</translation>
     </message>
     <message>
-        <location/>
         <source>Visible</source>
         <translation>Vidna</translation>
     </message>
     <message>
-        <location/>
         <source>Grid &amp;X</source>
         <translation>Mreža &amp;X</translation>
     </message>
     <message>
-        <location/>
         <source>Snap</source>
         <translation>Pripni</translation>
     </message>
     <message>
-        <location/>
         <source>Reset</source>
         <translation>Ponastavi</translation>
     </message>
     <message>
-        <location/>
         <source>Grid &amp;Y</source>
         <translation>Mreža &amp;Y</translation>
     </message>
@@ -5096,7 +4243,6 @@
 <context>
     <name>qdesigner_internal::GroupBoxTaskMenu</name>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/groupbox_taskmenu.cpp" line="+82"/>
         <source>Change title...</source>
         <translation>Spremeni naslov ...</translation>
     </message>
@@ -5104,7 +4250,6 @@
 <context>
     <name>qdesigner_internal::HtmlTextEdit</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/richtexteditor.cpp" line="-58"/>
         <source>Insert HTML entity</source>
         <translation>Vstavi entiteto HTML</translation>
     </message>
@@ -5112,92 +4257,74 @@
 <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>Datoteke s sličico »%1« ni moč prebrati.</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>The file &apos;%1&apos; does not appear to be a valid pixmap file: %2</source>
         <translation>Kot kaže »%1« ni veljavna datoteka s sličico: %2</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>The file &apos;%1&apos; could not be read: %2</source>
         <translation>Datoteke »%1« ni bilo moč prebrati: %2</translation>
     </message>
     <message>
-        <location line="+40"/>
         <source>Pixmap Read Error</source>
         <translation>Napaka pri branju sličice</translation>
     </message>
     <message>
-        <location line="+54"/>
         <source>...</source>
         <translation>...</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Normal Off</source>
         <translation>Normalna in izključena</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Normal On</source>
         <translation>Normalna in vključena</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Disabled Off</source>
         <translation>Onemogočena in izključena</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Disabled On</source>
         <translation>Onemogočena in vključena</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Active Off</source>
         <translation>Aktivna in izključena</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Active On</source>
         <translation>Aktivna in vključena</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Selected Off</source>
         <translation>Izbrana in izključena</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Selected On</source>
         <translation>Izbrana in vključena</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Choose Resource...</source>
         <translation>Izberi vir ...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Choose File...</source>
         <translation>Izberi datoteko ...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Reset</source>
         <translation>Ponastavi</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Reset All</source>
         <translation>Ponastavi vse</translation>
     </message>
     <message>
-        <location line="-85"/>
         <source>Choose a Pixmap</source>
         <translation>Izbiranje sličice</translation>
     </message>
@@ -5205,58 +4332,46 @@
 <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>Lastnosti &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>Lastnosti &amp;&gt;&gt;</translation>
     </message>
     <message>
-        <location/>
         <source>Items List</source>
         <translation>Seznam postavk</translation>
     </message>
     <message>
-        <location/>
         <source>New Item</source>
         <translation>Nova postavka</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;New</source>
         <translation>&amp;Nova</translation>
     </message>
     <message>
-        <location/>
         <source>Delete Item</source>
         <translation>Zbriši postavko</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Delete</source>
         <translation>&amp;Zbriši</translation>
     </message>
     <message>
-        <location/>
         <source>Move Item Up</source>
         <translation>Premakni postavko gor</translation>
     </message>
     <message>
-        <location/>
         <source>U</source>
         <translation>G</translation>
     </message>
     <message>
-        <location/>
         <source>Move Item Down</source>
         <translation>Premakni postavko dol</translation>
     </message>
     <message>
-        <location/>
         <source>D</source>
         <translation>D</translation>
     </message>
@@ -5264,12 +4379,10 @@
 <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>Spremeni bogato besedilo ...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Change plain text...</source>
         <translation>Spremeni navadno besedilo ...</translation>
     </message>
@@ -5277,7 +4390,6 @@
 <context>
     <name>qdesigner_internal::LanguageResourceDialog</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/iconselector.cpp" line="-258"/>
         <source>Choose Resource</source>
         <translation>Izberite vir</translation>
     </message>
@@ -5285,7 +4397,6 @@
 <context>
     <name>qdesigner_internal::LineEditTaskMenu</name>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/lineedit_taskmenu.cpp" line="+80"/>
         <source>Change text...</source>
         <translation>Spremeni besedilo ...</translation>
     </message>
@@ -5293,17 +4404,14 @@
 <context>
     <name>qdesigner_internal::ListWidgetEditor</name>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/listwidgeteditor.cpp" line="+101"/>
         <source>Edit List Widget</source>
         <translation>Urejanje gradnika s seznamom</translation>
     </message>
     <message>
-        <location line="+19"/>
         <source>Edit Combobox</source>
         <translation>Urejanje spustnega seznama</translation>
     </message>
     <message>
-        <location line="-51"/>
         <source>New Item</source>
         <translation>Nova postavka</translation>
     </message>
@@ -5311,12 +4419,10 @@
 <context>
     <name>qdesigner_internal::ListWidgetTaskMenu</name>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/listwidget_taskmenu.cpp" line="+67"/>
         <source>Edit Items...</source>
         <translation>Uredi postavke ...</translation>
     </message>
     <message>
-        <location line="+38"/>
         <source>Change List Contents</source>
         <translation>Spreminjanje vsebine seznama</translation>
     </message>
@@ -5324,22 +4430,18 @@
 <context>
     <name>qdesigner_internal::MdiContainerWidgetTaskMenu</name>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/containerwidget_taskmenu.cpp" line="+118"/>
         <source>Next Subwindow</source>
         <translation>Naslednje podokno</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Previous Subwindow</source>
         <translation>Predhodno podokno</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Tile</source>
         <translation>Tlakuj</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Cascade</source>
         <translation>V kaskado</translation>
     </message>
@@ -5347,7 +4449,6 @@
 <context>
     <name>qdesigner_internal::MenuTaskMenu</name>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/menutaskmenu.cpp" line="+56"/>
         <source>Remove</source>
         <translation>Odstrani</translation>
     </message>
@@ -5355,7 +4456,6 @@
 <context>
     <name>qdesigner_internal::MorphMenu</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/morphmenu.cpp" line="+264"/>
         <source>Morph into</source>
         <translation>Pretvori v</translation>
     </message>
@@ -5363,42 +4463,34 @@
 <context>
     <name>qdesigner_internal::NewActionDialog</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/newactiondialog.ui"/>
         <source>New Action...</source>
         <translation>Novo dejanje ...</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Text:</source>
         <translation>&amp;Besedilo:</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Icon:</source>
         <translation>&amp;Ikona:</translation>
     </message>
     <message>
-        <location/>
         <source>Shortcut:</source>
         <translation>Bližnjica:</translation>
     </message>
     <message>
-        <location/>
         <source>Checkable:</source>
         <translation>Stikalo:</translation>
     </message>
     <message>
-        <location/>
         <source>ToolTip:</source>
         <translation>Namig:</translation>
     </message>
     <message>
-        <location/>
         <source>...</source>
         <translation>...</translation>
     </message>
     <message>
-        <location/>
         <source>Object &amp;name:</source>
         <translation>&amp;Ime objekta:</translation>
     </message>
@@ -5406,39 +4498,32 @@
 <context>
     <name>qdesigner_internal::NewDynamicPropertyDialog</name>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/newdynamicpropertydialog.cpp" line="+134"/>
         <source>Set Property Name</source>
         <translation>Nastavi ime lastnosti</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>Trenutni objekt že ima lastnost z imenom »%1«.Izberite drugo, edinstveno ime</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/newdynamicpropertydialog.ui"/>
         <source>Create Dynamic Property</source>
         <translation>Ustvari dinamično lastnost</translation>
     </message>
     <message>
-        <location/>
         <source>Property Name</source>
         <translation>Ime lastnosti</translation>
     </message>
     <message>
-        <location/>
         <source>Property Type</source>
         <translation>Vrsta lastnosti</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>Predpona »_q_« je rezervirana za knjižnico Qt.Izberite drugo ime.</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/newdynamicpropertydialog.ui"/>
         <source>horizontalSpacer</source>
         <translation>vodoravnaPraznina</translation>
     </message>
@@ -5446,83 +4531,68 @@
 <context>
     <name>qdesigner_internal::NewFormWidget</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/newformwidget.cpp" line="+104"/>
         <source>Default size</source>
         <translation>Privzeta velikost</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>QVGA portrait (240x320)</source>
         <translation>QVGA, pokončno (240x320)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>QVGA landscape (320x240)</source>
         <translation>QVGA, ležeče (320x240)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>VGA portrait (480x640)</source>
         <translation>VGA, pokončno (480x640)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>VGA landscape (640x480)</source>
         <translation>VGA, ležeče (640x480)</translation>
     </message>
     <message>
-        <location line="+66"/>
         <source>Widgets</source>
-        <extracomment>New Form Dialog Categories</extracomment>
+        <extracomment>New Form Dialog Categories
+</extracomment>
         <translation>Gradniki</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Custom Widgets</source>
         <translation>Gradniki po meri</translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>None</source>
         <translation>Nobena</translation>
     </message>
     <message>
-        <location line="+57"/>
         <source>Error loading form</source>
         <translation>Napaka pri nalaganju obrazca</translation>
     </message>
     <message>
-        <location line="+244"/>
         <source>Unable to open the form template file &apos;%1&apos;: %2</source>
         <translation>Ni moč odpreti datoteke s predlogo obrazca »%1«: %2</translation>
     </message>
     <message>
-        <location line="+67"/>
         <source>Internal error: No template selected.</source>
         <translation>Notranja napaka: izbrane ni nobene predloge.</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>Izberite predlogo za ogled</translation>
     </message>
     <message>
-        <location/>
         <source>Embedded Design</source>
         <translation>Vgrajena zasnova</translation>
     </message>
     <message>
-        <location/>
         <source>Device:</source>
         <translation>Naprava:</translation>
     </message>
     <message>
-        <location/>
         <source>Screen Size:</source>
         <translation>Velikost zaslona</translation>
     </message>
@@ -5530,37 +4600,30 @@
 <context>
     <name>qdesigner_internal::NewPromotedClassPanel</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_promotiondialog.cpp" line="+92"/>
         <source>Add</source>
         <translation>Dodaj</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>New Promoted Class</source>
         <translation>Nov povišan razred</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Base class name:</source>
         <translation>Ime osnovnega razreda:</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Promoted class name:</source>
         <translation>Ime povišanega razreda:</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Header file:</source>
         <translation>Datoteka z glavo:</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Global include</source>
         <translation>Globalna vključitev</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>Reset</source>
         <translation>Ponastavi</translation>
     </message>
@@ -5568,48 +4631,37 @@
 <context>
     <name>qdesigner_internal::ObjectInspector</name>
     <message>
-        <location filename="../tools/designer/src/components/objectinspector/objectinspector.cpp" line="+754"/>
+        <source>Change Current Page</source>
+        <translation type="unfinished">Spreminjanje trenutne strani</translation>
+    </message>
+    <message>
         <source>&amp;Find in Text...</source>
         <translation>&amp;Najdi v besedilu ...</translation>
     </message>
 </context>
 <context>
-    <name>qdesigner_internal::ObjectInspector::ObjectInspectorPrivate</name>
-    <message>
-        <location line="-438"/>
-        <source>Change Current Page</source>
-        <translation>Spreminjanje trenutne strani</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>Indeks %1 (%2)</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/orderdialog.ui"/>
         <source>Change Page Order</source>
         <translation>Spreminjanje vrstnega reda strani</translation>
     </message>
     <message>
-        <location/>
         <source>Page Order</source>
         <translation>Vrstni red strani</translation>
     </message>
     <message>
-        <location/>
         <source>Move page up</source>
         <translation>Premakni stran gor</translation>
     </message>
     <message>
-        <location/>
         <source>Move page down</source>
         <translation>Premakni stran dol</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/lib/shared/orderdialog.cpp" line="+3"/>
         <source>%1 %2</source>
         <translation>%1 %2</translation>
     </message>
@@ -5617,47 +4669,38 @@
 <context>
     <name>qdesigner_internal::PaletteEditor</name>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/paletteeditor.ui"/>
         <source>Edit Palette</source>
         <translation>Urejanje palete</translation>
     </message>
     <message>
-        <location/>
         <source>Tune Palette</source>
         <translation>Nastavitev palete</translation>
     </message>
     <message>
-        <location/>
         <source>Show Details</source>
         <translation>Prikaži podrobnosti</translation>
     </message>
     <message>
-        <location/>
         <source>Compute Details</source>
         <translation>izračunaj podrobnosti</translation>
     </message>
     <message>
-        <location/>
         <source>Quick</source>
         <translation>Hitro</translation>
     </message>
     <message>
-        <location/>
         <source>Preview</source>
         <translation>Ogled</translation>
     </message>
     <message>
-        <location/>
         <source>Disabled</source>
         <translation>Onemogočeno</translation>
     </message>
     <message>
-        <location/>
         <source>Inactive</source>
         <translation>Neaktivno</translation>
     </message>
     <message>
-        <location/>
         <source>Active</source>
         <translation>Aktivno</translation>
     </message>
@@ -5665,7 +4708,6 @@
 <context>
     <name>qdesigner_internal::PaletteEditorButton</name>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/paletteeditorbutton.cpp" line="+57"/>
         <source>Change Palette</source>
         <translation>Spremeni paleto</translation>
     </message>
@@ -5673,22 +4715,18 @@
 <context>
     <name>qdesigner_internal::PaletteModel</name>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/paletteeditor.cpp" line="+374"/>
         <source>Color Role</source>
         <translation>Vloga barve</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Active</source>
         <translation>Aktivno</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Inactive</source>
         <translation>Neaktivno</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Disabled</source>
         <translation>Onemogočeno</translation>
     </message>
@@ -5696,28 +4734,22 @@
 <context>
     <name>qdesigner_internal::PixmapEditor</name>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/designerpropertymanager.cpp" line="-1539"/>
         <source>Copy Path</source>
         <translation>Skopiraj pot</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Paste Path</source>
         <translation>Prilepi pot</translation>
     </message>
     <message>
-        <location line="-3"/>
         <source>Choose Resource...</source>
         <translation>Izberi vir ...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Choose File...</source>
         <translation>Izberi datoteko ...</translation>
     </message>
     <message>
-        <location line="+8"/>
-        <location line="+16"/>
         <source>...</source>
         <translation>...</translation>
     </message>
@@ -5725,7 +4757,6 @@
 <context>
     <name>qdesigner_internal::PlainTextEditorDialog</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/plaintexteditor.cpp" line="+65"/>
         <source>Edit text</source>
         <translation>Uredi besedilo</translation>
     </message>
@@ -5733,37 +4764,30 @@
 <context>
     <name>qdesigner_internal::PluginDialog</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/plugindialog.cpp" line="+72"/>
         <source>Components</source>
         <translation>Komponente</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>Plugin Information</source>
         <translation>Podatki o vstavkih</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Refresh</source>
         <translation>Osveži</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Scan for newly installed custom widget plugins.</source>
         <translation>Preveri razpoložljivost na novo nameščenih vstavkov za gradnike po meri.</translation>
     </message>
     <message>
-        <location line="+48"/>
         <source>Qt Designer couldn&apos;t find any plugins</source>
         <translation>Qt Designer ni našel nobenega vstavka</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Qt Designer found the following plugins</source>
         <translation>Qt Designer je našel naslednje vstavke</translation>
     </message>
     <message>
-        <location line="+55"/>
         <source>New custom widget plugins have been found.</source>
         <translation>Najdeni so bili vstavki za nove gradnike po meri.</translation>
     </message>
@@ -5771,7 +4795,6 @@
 <context>
     <name>qdesigner_internal::PreviewActionGroup</name>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/previewactiongroup.cpp" line="+95"/>
         <source>%1 Style</source>
         <translation>Slog %1</translation>
     </message>
@@ -5779,50 +4802,38 @@
 <context>
     <name>qdesigner_internal::PreviewConfigurationWidget</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/previewconfigurationwidget.cpp" line="+139"/>
         <source>Default</source>
         <translation>Privzeto</translation>
     </message>
     <message>
-        <location line="+22"/>
         <source>None</source>
         <translation>Brez</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Browse...</source>
         <translation>Brskaj ...</translation>
     </message>
-</context>
-<context>
-    <name>qdesigner_internal::PreviewConfigurationWidget::PreviewConfigurationWidgetPrivate</name>
-    <message>
-        <location line="+118"/>
+    <message>
         <source>Load Custom Device Skin</source>
-        <translation>Naloži temo za napravo po meri</translation>
-    </message>
-    <message>
-        <location line="+2"/>
+        <translation type="unfinished">Naloži temo za napravo po meri</translation>
+    </message>
+    <message>
         <source>All QVFB Skins (*.%1)</source>
         <translation>Vse teme za QVFB (*.%1)</translation>
     </message>
     <message>
-        <location line="+16"/>
         <source>%1 - Duplicate Skin</source>
         <translation>%1 - podvojena tema</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>The skin &apos;%1&apos; already exists.</source>
         <translation>Tema »%1« že obstaja.</translation>
     </message>
     <message>
-        <location line="+14"/>
         <source>%1 - Error</source>
         <translation>%1 - napaka</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>%1 is not a valid skin directory:
 %2</source>
         <translation>%1 ni veljavna mapa s temo:
@@ -5832,24 +4843,22 @@
 <context>
     <name>qdesigner_internal::PreviewDeviceSkin</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/previewmanager.cpp" line="+259"/>
         <source>&amp;Portrait</source>
         <translation>&amp;Pokončno</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Landscape (&amp;CCW)</source>
-        <extracomment>Rotate form preview counter-clockwise</extracomment>
+        <extracomment>Rotate form preview counter-clockwise
+</extracomment>
         <translation>L&amp;ežeče (v nasprotni smeri ure)</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>&amp;Landscape (CW)</source>
-        <extracomment>Rotate form preview clockwise</extracomment>
+        <extracomment>Rotate form preview clockwise
+</extracomment>
         <translation>&amp;Ležeče (v smeri ure)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Close</source>
         <translation>&amp;Zapri</translation>
     </message>
@@ -5857,7 +4866,6 @@
 <context>
     <name>qdesigner_internal::PreviewManager</name>
     <message>
-        <location line="+426"/>
         <source>%1 - [Preview]</source>
         <translation>%1 - [ogled]</translation>
     </message>
@@ -5865,10 +4873,10 @@
 <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>
+        <extracomment>Palette editor background
+</extracomment>
         <translation>Šerif bo za vajo spet
 skuhal domače žgance.</translation>
     </message>
@@ -5876,57 +4884,46 @@
 <context>
     <name>qdesigner_internal::PreviewWidget</name>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/previewwidget.ui"/>
         <source>Preview Window</source>
         <translation>Okno ogleda</translation>
     </message>
     <message>
-        <location/>
         <source>LineEdit</source>
         <translation>UrejevalnaVrstica</translation>
     </message>
     <message>
-        <location/>
         <source>ComboBox</source>
         <translation>SpustniSeznam</translation>
     </message>
     <message>
-        <location/>
         <source>PushButton</source>
         <translation>Gumb</translation>
     </message>
     <message>
-        <location/>
         <source>ButtonGroup2</source>
         <translation>SkupinaGumbov2</translation>
     </message>
     <message>
-        <location/>
         <source>CheckBox1</source>
         <translation>PotrditvenoPolje1</translation>
     </message>
     <message>
-        <location/>
         <source>CheckBox2</source>
         <translation>PotrditvenoPolje2</translation>
     </message>
     <message>
-        <location/>
         <source>ButtonGroup</source>
         <translation>SkupinaGumbov</translation>
     </message>
     <message>
-        <location/>
         <source>RadioButton1</source>
         <translation>IzbirniGumb1</translation>
     </message>
     <message>
-        <location/>
         <source>RadioButton2</source>
         <translation>IzbirniGumb2</translation>
     </message>
     <message>
-        <location/>
         <source>RadioButton3</source>
         <translation>IzbirniGumb3</translation>
     </message>
@@ -5934,22 +4931,18 @@
 <context>
     <name>qdesigner_internal::PromotionModel</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/promotionmodel.cpp" line="+17"/>
         <source>Name</source>
         <translation>Ime</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Header file</source>
         <translation>Datoteka z glavo</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Global include</source>
         <translation>Globalna vključitev</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Usage</source>
         <translation>Uporaba</translation>
     </message>
@@ -5957,27 +4950,22 @@
 <context>
     <name>qdesigner_internal::PromotionTaskMenu</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/promotiontaskmenu.cpp" line="+85"/>
         <source>Promoted widgets...</source>
         <translation>Povišani gradniki ...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Promote to ...</source>
         <translation>Povišaj v ...</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Promote to</source>
         <translation>Povišaj v</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Demote to %1</source>
         <translation>Ponižaj v %1</translation>
     </message>
     <message>
-        <location line="-2"/>
         <source>Change signals/slots...</source>
         <translation>Spremeni signale/reže ...</translation>
     </message>
@@ -5985,59 +4973,48 @@
 <context>
     <name>qdesigner_internal::PropertyEditor</name>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/propertyeditor.cpp" line="+183"/>
         <source>Add Dynamic Property...</source>
         <translation>Dodaj dinamično lastnost ...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Remove Dynamic Property</source>
         <translation>Odstrani dinamično lastnost</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Tree View</source>
         <translation>Drevesni prikaz</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Drop Down Button View</source>
         <translation>Gumb s spustim seznamom za prikaz</translation>
     </message>
     <message>
-        <location line="+597"/>
         <source>Object: %1
 Class: %2</source>
         <translation>Objekt: %1
 Razred: %2</translation>
     </message>
     <message>
-        <location line="-600"/>
         <source>Sorting</source>
         <translation>Razvrsti</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Color Groups</source>
         <translation>Obarvaj skupine</translation>
     </message>
     <message>
-        <location line="+66"/>
         <source>Configure Property Editor</source>
         <translation>Nastavi urejevalnik lastnosti</translation>
     </message>
     <message>
-        <location line="-14"/>
         <source>String...</source>
         <translation>Niz ...</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Bool...</source>
         <translation>Bool ...</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Other...</source>
         <translation>Drugo ...</translation>
     </message>
@@ -6045,7 +5022,6 @@
 <context>
     <name>qdesigner_internal::PropertyLineEdit</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/propertylineedit.cpp" line="+88"/>
         <source>Insert line break</source>
         <translation>Vstavi prelom vrstice</translation>
     </message>
@@ -6053,27 +5029,22 @@
 <context>
     <name>qdesigner_internal::QDesignerPromotionDialog</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_promotiondialog.cpp" line="+85"/>
         <source>Promoted Widgets</source>
         <translation>Povišani gradniki</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Promoted Classes</source>
         <translation>Povišani razredi</translation>
     </message>
     <message>
-        <location line="+60"/>
         <source>Promote</source>
         <translation>Povišaj</translation>
     </message>
     <message>
-        <location line="+169"/>
         <source>%1 - Error</source>
         <translation>%1 - napaka</translation>
     </message>
     <message>
-        <location line="-17"/>
         <source>Change signals/slots...</source>
         <translation>Spremeni signale/reže ...</translation>
     </message>
@@ -6081,22 +5052,18 @@
 <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>Nalaganje datoteke *.qrc</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>Podane datoteke *.qrc &lt;p&gt;&lt;b&gt;%1&lt;/b&gt;&lt;/p&gt;&lt;p&gt;ni bilo moč najti. Ali želite posodobiti lokacijo datoteke?&lt;/p&gt;</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>New location for %1</source>
         <translation>Nova lokacija za %1</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Resource files (*.qrc)</source>
         <translation>Datoteke z viri (*.qrc)</translation>
     </message>
@@ -6104,7 +5071,6 @@
 <context>
     <name>qdesigner_internal::QDesignerTaskMenu</name>
     <message numerus="yes">
-        <location filename="../tools/designer/src/lib/shared/qdesigner_taskmenu.cpp" line="+560"/>
         <source>Set size constraint on %n widget(s)</source>
         <translation>
             <numerusform>Nastavi omejitev velikosti za %n gradnik</numerusform>
@@ -6114,107 +5080,86 @@
         </translation>
     </message>
     <message>
-        <location line="-492"/>
         <source>Change objectName...</source>
         <translation>Spremeni ime objekta ...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Change toolTip...</source>
         <translation>Spremeni namig ...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Change whatsThis...</source>
         <translation>Spremeni KajJeTo ...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Change styleSheet...</source>
         <translation>Spremeni slogovno predlogo ...</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Create Menu Bar</source>
         <translation>Ustvari menijsko vrstico</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Add Tool Bar</source>
         <translation>Dodaj orodjarno</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Create Status Bar</source>
         <translation>Ustvari vrstico stanja</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Remove Status Bar</source>
         <translation>Odstrani vrstico stanja</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Change script...</source>
         <translation>Spremeni skript ...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Change signals/slots...</source>
         <translation>Spremeni signale/reže ...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Go to slot...</source>
         <translation>Pojdi na režo ...</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Size Constraints</source>
         <translation>Omejitve velikosti</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Set Minimum Width</source>
         <translation>Nastavi najmanjšo širino</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Set Minimum Height</source>
         <translation>Nastavi najmanjšo višino</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Set Minimum Size</source>
         <translation>Nastavi najmanjšo velikost</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Set Maximum Width</source>
         <translation>Nastavi največjo širino</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Set Maximum Height</source>
         <translation>Nastavi največjo višino</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Set Maximum Size</source>
         <translation>Nastavi največjo velikost</translation>
     </message>
     <message>
-        <location line="+235"/>
         <source>Edit ToolTip</source>
         <translation>Uredi namig</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Edit WhatsThis</source>
         <translation>Uredi KajJeTo</translation>
     </message>
     <message>
-        <location line="+144"/>
         <source>no signals available</source>
         <translation>na voljo ni nobenega signala</translation>
     </message>
@@ -6222,13 +5167,10 @@
 <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>Nepričakovan element &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>Prišlo je do napake razčlenjevanja v vrstici %1, stolpcu %2 kode XML za gradnik %3: %4
@@ -6236,29 +5178,24 @@
 %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>Koda XML za gradnik %1 ne vsebuje nobenega elementa gradnika.
 %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>Prišlo je do napake v vrstici %1 v %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>Med razčlenjevanjem za &lt;widget&gt; ali &lt;ui&gt; je bil dosežen nepričakovan element &lt;%1&gt;.</translation>
     </message>
     <message>
-        <location line="+19"/>
         <source>Unexpected end of file encountered when parsing widgets.</source>
         <translation>Med razčlenjevanjem gradnikov je bil dosežen nepričakovan konec datoteke.</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>A widget element could not be found.</source>
         <translation>Ni bilo moč najti elementa gradnika.</translation>
     </message>
@@ -6266,73 +5203,58 @@
 <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>Odtenek</translation>
     </message>
     <message>
-        <location line="-3"/>
         <source>Sat</source>
         <translation>Zasičenost</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Val</source>
         <translation>Vrednost</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Saturation</source>
         <translation>Zasičenost</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Value</source>
         <translation>Vrednost</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>Rdeča</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Green</source>
         <translation>Zelena</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Blue</source>
         <translation>Modra</translation>
     </message>
@@ -6340,27 +5262,22 @@
 <context>
     <name>qdesigner_internal::RichTextEditorDialog</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/richtexteditor.cpp" line="+436"/>
         <source>Edit text</source>
         <translation>Uredi besedilo</translation>
     </message>
     <message>
-        <location line="+30"/>
         <source>&amp;OK</source>
         <translation>&amp;V redu</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>&amp;Cancel</source>
         <translation>&amp;Prekliči</translation>
     </message>
     <message>
-        <location line="-9"/>
         <source>Rich Text</source>
         <translation>Bogato besedilo</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Source</source>
         <translation>Izvorna koda</translation>
     </message>
@@ -6368,72 +5285,58 @@
 <context>
     <name>qdesigner_internal::RichTextEditorToolBar</name>
     <message>
-        <location line="-294"/>
         <source>Bold</source>
         <translation>Polkrepko</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>CTRL+B</source>
         <translation>Ctrl+B</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Italic</source>
         <translation>Ležeče</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>CTRL+I</source>
         <translation>CTRL+I</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Underline</source>
         <translation>Podčrtano</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>CTRL+U</source>
         <translation>CTRL+U</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>Left Align</source>
         <translation>Poravnaj levo</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Center</source>
         <translation>Na sredino</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Right Align</source>
         <translation>Poravnaj desno</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Justify</source>
         <translation>Obojestransko</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Superscript</source>
         <translation>Nadpisano</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Subscript</source>
         <translation>Podpisano</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Insert &amp;Link</source>
         <translation>Vstavi &amp;povezavo</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Insert &amp;Image</source>
         <translation>Vstavi &amp;sliko</translation>
     </message>
@@ -6441,17 +5344,14 @@
 <context>
     <name>qdesigner_internal::ScriptDialog</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/scriptdialog.cpp" line="+66"/>
         <source>Edit script</source>
         <translation>Uredi skript</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>&lt;html&gt;Vnesite delček Qt Scripta, ki bo izveden med nalaganjem obrazca.&lt;br&gt;Gradnik in njegovi podgradniki so dostopni prek spremenljivk &lt;i&gt;widget&lt;/i&gt; in &lt;i&gt;childWidgets&lt;/i&gt;.</translation>
     </message>
     <message>
-        <location line="+51"/>
         <source>Syntax error</source>
         <translation>Skladenjska napaka</translation>
     </message>
@@ -6459,7 +5359,6 @@
 <context>
     <name>qdesigner_internal::ScriptErrorDialog</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/scripterrordialog.cpp" line="+27"/>
         <source>Script errors</source>
         <translation>Napake v skriptu</translation>
     </message>
@@ -6467,23 +5366,18 @@
 <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>Reža z odtisom »%1« že obstaja.</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>There is already a signal with the signature &apos;%1&apos;.</source>
         <translation>Signal z odtisom »%1« že obstaja.</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>%1 - Duplicate Signature</source>
         <translation>%1 - podvojen odtis</translation>
     </message>
     <message>
-        <location line="+21"/>
-        <location line="+76"/>
         <source>Signals/Slots of %1</source>
         <translation>Signali/reže od %1</translation>
     </message>
@@ -6491,12 +5385,10 @@
 <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>Urejanje signalov/rež</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>F4</source>
         <translation>F4</translation>
     </message>
@@ -6504,7 +5396,6 @@
 <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>Urejanje signalov/rež</translation>
     </message>
@@ -6512,7 +5403,6 @@
 <context>
     <name>qdesigner_internal::StatusBarTaskMenu</name>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/toolbar_taskmenu.cpp" line="+81"/>
         <source>Remove</source>
         <translation>Odstrani</translation>
     </message>
@@ -6520,7 +5410,6 @@
 <context>
     <name>qdesigner_internal::StringListEditorButton</name>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/stringlisteditorbutton.cpp" line="+56"/>
         <source>Change String List</source>
         <translation>Spreminjanje seznama nizov</translation>
     </message>
@@ -6528,38 +5417,30 @@
 <context>
     <name>qdesigner_internal::StyleSheetEditorDialog</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/stylesheeteditor.cpp" line="+97"/>
         <source>Edit Style Sheet</source>
         <translation>Urejanje slogovne predloge</translation>
     </message>
     <message>
-        <location line="-7"/>
-        <location line="+280"/>
         <source>Valid Style Sheet</source>
         <translation>Veljavna slogovna predloga</translation>
     </message>
     <message>
-        <location line="-278"/>
         <source>Add Resource...</source>
         <translation>Dodaj vir ...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Add Gradient...</source>
         <translation>Dodaj preliv ...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Add Color...</source>
         <translation>Dodaj barvo ...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Add Font...</source>
         <translation>Dodaj pisavo ...</translation>
     </message>
     <message>
-        <location line="+278"/>
         <source>Invalid Style Sheet</source>
         <translation>Neveljavna slogovna predloga</translation>
     </message>
@@ -6567,27 +5448,22 @@
 <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čni od tu</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Restart</source>
         <translation>Začni znova</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Tab Order List...</source>
         <translation>Seznam vrstnega reda tabulatorke ...</translation>
     </message>
     <message>
-        <location line="+44"/>
         <source>Tab Order List</source>
         <translation>Seznam vrstnega reda tabulatorke</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Tab Order</source>
         <translation>Vrstni red tabulatorke</translation>
     </message>
@@ -6595,7 +5471,6 @@
 <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>Urejanje vrstnega reda tabulatorke</translation>
     </message>
@@ -6603,7 +5478,6 @@
 <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>Urejanja vrstnega reda tabulatorke</translation>
     </message>
@@ -6611,48 +5485,38 @@
 <context>
     <name>qdesigner_internal::TableWidgetEditor</name>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/tablewidgeteditor.cpp" line="+67"/>
         <source>New Column</source>
         <translation>Nov stolpec</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>New Row</source>
         <translation>Nova vrstica</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>&amp;Columns</source>
         <translation>&amp;Stolpci</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Rows</source>
         <translation>&amp;Vrstice</translation>
     </message>
     <message>
-        <location line="+137"/>
         <source>Properties &amp;&lt;&lt;</source>
         <translation>Lastnosti &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>Lastnosti &amp;&gt;&gt;</translation>
     </message>
     <message>
-        <location/>
         <source>Edit Table Widget</source>
         <translation>Urejanje gradnika s tabelo</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Items</source>
         <translation>&amp;Postavke</translation>
     </message>
     <message>
-        <location/>
         <source>Table Items</source>
         <translation>Postavke v tabeli</translation>
     </message>
@@ -6660,7 +5524,6 @@
 <context>
     <name>qdesigner_internal::TableWidgetTaskMenu</name>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/tablewidget_taskmenu.cpp" line="+64"/>
         <source>Edit Items...</source>
         <translation>Uredi postavke ...</translation>
     </message>
@@ -6668,22 +5531,18 @@
 <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>Izberite mapo za shranjevanje predlog</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/templateoptionspage.ui"/>
         <source>Form</source>
         <translation>Obrazec</translation>
     </message>
     <message>
-        <location/>
         <source>Additional Template Paths</source>
         <translation>Dodatne poti za predloge</translation>
     </message>
     <message>
-        <location/>
         <source>...</source>
         <translation>...</translation>
     </message>
@@ -6691,22 +5550,18 @@
 <context>
     <name>qdesigner_internal::TextEditTaskMenu</name>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/textedit_taskmenu.cpp" line="+59"/>
         <source>Change HTML...</source>
         <translation>Spremeni HTML ...</translation>
     </message>
     <message>
-        <location line="-1"/>
         <source>Edit HTML</source>
         <translation>Urejanje HTML-ja</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>Edit Text</source>
         <translation>Urejanje besedila</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Change Plain Text...</source>
         <translation>Spremeni navadno besedilo ...</translation>
     </message>
@@ -6714,22 +5569,18 @@
 <context>
     <name>qdesigner_internal::TextEditor</name>
     <message>
-        <location filename="../tools/designer/src/components/propertyeditor/designerpropertymanager.cpp" line="-204"/>
         <source>Choose Resource...</source>
         <translation>Izberi vir ...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Choose File...</source>
         <translation>Izberi datoteko ...</translation>
     </message>
     <message>
-        <location line="+123"/>
         <source>Choose a File</source>
         <translation>Izbiranje datoteke</translation>
     </message>
     <message>
-        <location line="-118"/>
         <source>...</source>
         <translation>...</translation>
     </message>
@@ -6737,27 +5588,22 @@
 <context>
     <name>qdesigner_internal::ToolBarEventFilter</name>
     <message>
-        <location filename="../tools/designer/src/lib/shared/qdesigner_toolbar.cpp" line="+234"/>
         <source>Insert Separator</source>
         <translation>Vstavi ločitelja</translation>
     </message>
     <message>
-        <location line="-65"/>
         <source>Remove action &apos;%1&apos;</source>
         <translation>Odstrani dejanje »%1«</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Remove Toolbar &apos;%1&apos;</source>
         <translation>Odstrani orodjarno »%1«</translation>
     </message>
     <message>
-        <location line="-28"/>
         <source>Insert Separator before &apos;%1&apos;</source>
         <translation>Vstavi ločitelja pred »%1«</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Append Separator</source>
         <translation>Dodaj ločitelja</translation>
     </message>
@@ -6765,125 +5611,98 @@
 <context>
     <name>qdesigner_internal::TreeWidgetEditor</name>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/treewidgeteditor.cpp" line="+76"/>
         <source>&amp;Columns</source>
         <translation>&amp;Stolpci</translation>
     </message>
     <message>
-        <location line="+69"/>
         <source>Per column properties</source>
         <translation>Lastnosti za stolpec</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Common properties</source>
         <translation>Skupne lastnosti</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>Nova postavka</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/treewidgeteditor.cpp" line="+194"/>
         <source>Properties &amp;&lt;&lt;</source>
         <translation>Lastnosti &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>Lastnosti &amp;&gt;&gt;</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/treewidgeteditor.cpp" line="-327"/>
         <source>New Column</source>
         <translation>Nov stolpec</translation>
     </message>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/treewidgeteditor.ui"/>
         <source>Edit Tree Widget</source>
         <translation>Urejanje gradnika z drevesom</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Items</source>
         <translation>&amp;Postavke</translation>
     </message>
     <message>
-        <location/>
         <source>Tree Items</source>
         <translation>Postavke v drevesu</translation>
     </message>
     <message>
-        <location/>
-        <location filename="../tools/designer/src/components/taskmenu/treewidgeteditor.cpp" line="+150"/>
         <source>New Subitem</source>
         <translation>Nova podpostavka</translation>
     </message>
     <message>
-        <location/>
         <source>New &amp;Subitem</source>
         <translation>Nova &amp;podpostavka</translation>
     </message>
     <message>
-        <location/>
         <source>Delete Item</source>
         <translation>Zbriši postavko</translation>
     </message>
     <message>
-        <location/>
         <source>Move Item Left (before Parent Item)</source>
         <translation>Premakni postavko levo (pred matično postavko)</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>Premakni postavko desno (kot prvo podpostavko sledeče postavke)</translation>
     </message>
     <message>
-        <location/>
         <source>R</source>
         <translation>E</translation>
     </message>
     <message>
-        <location/>
         <source>Move Item Up</source>
         <translation>Premakni postavko gor</translation>
     </message>
     <message>
-        <location/>
         <source>U</source>
         <translation>G</translation>
     </message>
     <message>
-        <location/>
         <source>Move Item Down</source>
         <translation>Premakni postavko 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;Nova</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Delete</source>
         <translation>&amp;Zbriši</translation>
     </message>
@@ -6891,7 +5710,6 @@
 <context>
     <name>qdesigner_internal::TreeWidgetTaskMenu</name>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/treewidget_taskmenu.cpp" line="+63"/>
         <source>Edit Items...</source>
         <translation>Uredi postavke ...</translation>
     </message>
@@ -6899,7 +5717,6 @@
 <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>Opozorilo: ustvarjanje gradnika v podoknu z gradniki ni uspelo. Za to je morda kriv neveljaven XML gradnika po meri.</translation>
     </message>
@@ -6907,42 +5724,34 @@
 <context>
     <name>qdesigner_internal::WidgetBoxTreeWidget</name>
     <message>
-        <location filename="../tools/designer/src/components/widgetbox/widgetboxtreewidget.cpp" line="-268"/>
         <source>Scratchpad</source>
         <translation>Beležnica</translation>
     </message>
     <message>
-        <location line="+370"/>
         <source>Custom Widgets</source>
         <translation>Gradniki po meri</translation>
     </message>
     <message>
-        <location line="+263"/>
         <source>Expand all</source>
         <translation>Razširi vse</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Collapse all</source>
         <translation>Skrči vse</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>List View</source>
         <translation>Prikaz seznama</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Icon View</source>
         <translation>Prikaz ikon</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Remove</source>
         <translation>Odstrani</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Edit name</source>
         <translation>Urejanje imena</translation>
     </message>
@@ -6950,7 +5759,6 @@
 <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>Najden je bil vstavek gradnika po meri, katerega ime (%1) je enako imenu obstoječega razreda.</translation>
     </message>
@@ -6958,7 +5766,6 @@
 <context>
     <name>qdesigner_internal::WidgetEditorTool</name>
     <message>
-        <location filename="../tools/designer/src/components/formeditor/tool_widgeteditor.cpp" line="+67"/>
         <source>Edit Widgets</source>
         <translation>Urejanje gradnikov</translation>
     </message>
@@ -6966,34 +5773,28 @@
 <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>Tovarna gradnikov po meri, ki je registrirana za gradnike razreda %1, je vrnila 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>Med ustvarjanjem gradnika z uporabo tovarne gradnikov po meri, ki je registrirana za gradnike razreda %1, je prišlo do neujemanja v imenu razreda. Tovarna je vrnila gradnik razreda %2.</translation>
     </message>
     <message>
-        <location line="+99"/>
         <source>%1 Widget</source>
         <translation>Gradnik %1</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>Trenutne strani vsebnika »%1« (%2) med dodajanjem razporeda ni bilo moč določiti. To nakazuje na neskladnost v datoteki *.ui. Verjetno je na vsebovalnem gradniku zgrajen razpored.</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>Poskus dodajanja razporeda gradniku »%1« (%2), ki že ima neupravljan razpored vrste %3.
 To nakazuje na neskladnost v datoteki *.ui.</translation>
     </message>
     <message>
-        <location line="+211"/>
         <source>Cannot create style &apos;%1&apos;.</source>
         <translation>Ni moč ustvariti sloga »%1«.</translation>
     </message>
@@ -7001,12 +5802,10 @@
 <context>
     <name>qdesigner_internal::WizardContainerWidgetTaskMenu</name>
     <message>
-        <location filename="../tools/designer/src/components/taskmenu/containerwidget_taskmenu.cpp" line="-49"/>
         <source>Next</source>
         <translation>Naprej</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Back</source>
         <translation>Nazaj</translation>
     </message>
@@ -7014,18 +5813,62 @@
 <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>
+        <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;Povečava</translation>
     </message>
 </context>
+<context>
+    <name></name>
+    <message>
+        <source>&lt;Filter&gt;</source>
+        <comment>qdesigner_internal::FilterWidget|</comment>
+        <translation type="obsolete">&lt;filter&gt;</translation>
+    </message>
+    <message>
+        <source>Change Current Page</source>
+        <comment>qdesigner_internal::ObjectInspector::ObjectInspectorPrivate|</comment>
+        <translation type="obsolete">Spreminjanje trenutne strani</translation>
+    </message>
+    <message>
+        <source>Load Custom Device Skin</source>
+        <comment>qdesigner_internal::PreviewConfigurationWidget::PreviewConfigurationWidgetPrivate|</comment>
+        <translation type="obsolete">Naloži temo za napravo po meri</translation>
+    </message>
+    <message>
+        <source>All QVFB Skins (*.%1)</source>
+        <comment>qdesigner_internal::PreviewConfigurationWidget::PreviewConfigurationWidgetPrivate|</comment>
+        <translation type="obsolete">Vse teme za QVFB (*.%1)</translation>
+    </message>
+    <message>
+        <source>%1 - Duplicate Skin</source>
+        <comment>qdesigner_internal::PreviewConfigurationWidget::PreviewConfigurationWidgetPrivate|</comment>
+        <translation type="obsolete">%1 - podvojena tema</translation>
+    </message>
+    <message>
+        <source>The skin &apos;%1&apos; already exists.</source>
+        <comment>qdesigner_internal::PreviewConfigurationWidget::PreviewConfigurationWidgetPrivate|</comment>
+        <translation type="obsolete">Tema »%1« že obstaja.</translation>
+    </message>
+    <message>
+        <source>%1 - Error</source>
+        <comment>qdesigner_internal::PreviewConfigurationWidget::PreviewConfigurationWidgetPrivate|</comment>
+        <translation type="obsolete">%1 - napaka</translation>
+    </message>
+    <message>
+        <source>%1 is not a valid skin directory:
+%2</source>
+        <comment>qdesigner_internal::PreviewConfigurationWidget::PreviewConfigurationWidgetPrivate|</comment>
+        <translation type="obsolete">%1 ni veljavna mapa s temo:
+%2</translation>
+    </message>
+</context>
 </TS>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/translations/designer_uk.ts	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,5838 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="uk_UA">
+<context>
+    <name>AbstractFindWidget</name>
+    <message>
+        <source>&amp;Previous</source>
+        <translation>&amp;Попередній</translation>
+    </message>
+    <message>
+        <source>&amp;Next</source>
+        <translation>&amp;Наступний</translation>
+    </message>
+    <message>
+        <source>&amp;Case sensitive</source>
+        <translation>Враховувати &amp;регістр</translation>
+    </message>
+    <message>
+        <source>Whole &amp;words</source>
+        <translation>Цілі &amp;слова</translation>
+    </message>
+    <message>
+        <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;Пошук з початку</translation>
+    </message>
+</context>
+<context>
+    <name>AbstractItemEditor</name>
+    <message>
+        <source>Selectable</source>
+        <translation>Можна вибирати</translation>
+    </message>
+    <message>
+        <source>Editable</source>
+        <translation>Можна редагувати</translation>
+    </message>
+    <message>
+        <source>DragEnabled</source>
+        <translation>Можна тягти</translation>
+    </message>
+    <message>
+        <source>DropEnabled</source>
+        <translation>Можна кидати</translation>
+    </message>
+    <message>
+        <source>UserCheckable</source>
+        <translation>Користувач може позначати</translation>
+    </message>
+    <message>
+        <source>Enabled</source>
+        <translation>Увімкнено</translation>
+    </message>
+    <message>
+        <source>Tristate</source>
+        <translation>Три стани</translation>
+    </message>
+    <message>
+        <source>Unchecked</source>
+        <translation>Не позначено</translation>
+    </message>
+    <message>
+        <source>PartiallyChecked</source>
+        <translation>Частково позначено</translation>
+    </message>
+    <message>
+        <source>Checked</source>
+        <translation>Позначено</translation>
+    </message>
+</context>
+<context>
+    <name>AddLinkDialog</name>
+    <message>
+        <source>Insert Link</source>
+        <translation>Вставити посилання</translation>
+    </message>
+    <message>
+        <source>Title:</source>
+        <translation>Заголовок:</translation>
+    </message>
+    <message>
+        <source>URL:</source>
+        <translation>URL:</translation>
+    </message>
+</context>
+<context>
+    <name>AppFontDialog</name>
+    <message>
+        <source>Additional Fonts</source>
+        <translation>Додаткові шрифти</translation>
+    </message>
+</context>
+<context>
+    <name>AppFontManager</name>
+    <message>
+        <source>&apos;%1&apos; is not a file.</source>
+        <translation>&apos;%1&apos; не є файлом.</translation>
+    </message>
+    <message>
+        <source>The font file &apos;%1&apos; does not have read permissions.</source>
+        <translation>Файл шрифту &apos;%1&apos; не доступний для читання.</translation>
+    </message>
+    <message>
+        <source>The font file &apos;%1&apos; is already loaded.</source>
+        <translation>Файл шрифти &apos;%1&apos; вже завантажено.</translation>
+    </message>
+    <message>
+        <source>The font file &apos;%1&apos; could not be loaded.</source>
+        <translation>Не вдалось завантажити файл шрифт &apos;%1&apos;.</translation>
+    </message>
+    <message>
+        <source>&apos;%1&apos; is not a valid font id.</source>
+        <translation>&apos;%1&apos; не є правильним ідентифікатором шрифт.</translation>
+    </message>
+    <message>
+        <source>There is no loaded font matching the id &apos;%1&apos;.</source>
+        <translation>Відсутній завантажений шрифт, що відповідає ідентифікатору &apos;%1&apos;.</translation>
+    </message>
+    <message>
+        <source>The font &apos;%1&apos; (%2) could not be unloaded.</source>
+        <translation>Не вдалось вивантажити шрифт &apos;%1&apos; (%2).</translation>
+    </message>
+</context>
+<context>
+    <name>AppFontWidget</name>
+    <message>
+        <source>Fonts</source>
+        <translation>Шрифти</translation>
+    </message>
+    <message>
+        <source>Add font files</source>
+        <translation>Додати файли шрифтів</translation>
+    </message>
+    <message>
+        <source>Remove current font file</source>
+        <translation>Видалити поточний файл шрифт</translation>
+    </message>
+    <message>
+        <source>Remove all font files</source>
+        <translation>Видалити усі файли шрифтів</translation>
+    </message>
+    <message>
+        <source>Add Font Files</source>
+        <translation>Додати файли шрифтів</translation>
+    </message>
+    <message>
+        <source>Font files (*.ttf)</source>
+        <translation>Файли шрифтів (*.ttf)</translation>
+    </message>
+    <message>
+        <source>Error Adding Fonts</source>
+        <translation>Помилка додавання шрифтів</translation>
+    </message>
+    <message>
+        <source>Error Removing Fonts</source>
+        <translation>Помилка видалення шрифтів</translation>
+    </message>
+    <message>
+        <source>Remove Fonts</source>
+        <translation>Видалити шрифти</translation>
+    </message>
+    <message>
+        <source>Would you like to remove all fonts?</source>
+        <translation>Бажаєте видалити усі шрифти?</translation>
+    </message>
+</context>
+<context>
+    <name>AppearanceOptionsWidget</name>
+    <message>
+        <source>Form</source>
+        <translation>Форма</translation>
+    </message>
+    <message>
+        <source>User Interface Mode</source>
+        <translation>Режим інтерфейсу користувача</translation>
+    </message>
+</context>
+<context>
+    <name>AssistantClient</name>
+    <message>
+        <source>Unable to send request: Assistant is not responding.</source>
+        <translation>Неможливо надіслати запит. Assistant не відповідає.</translation>
+    </message>
+    <message>
+        <source>The binary &apos;%1&apos; does not exist.</source>
+        <translation>Виконуваний файл &apos;%1&apos; не існує.</translation>
+    </message>
+    <message>
+        <source>Unable to launch assistant (%1).</source>
+        <translation>Неможливо запустити Assistant (%1).</translation>
+    </message>
+</context>
+<context>
+    <name>BrushPropertyManager</name>
+    <message>
+        <source>No brush</source>
+        <translation>Без пензля</translation>
+    </message>
+    <message>
+        <source>Solid</source>
+        <translation>Суцільна</translation>
+    </message>
+    <message>
+        <source>Dense 1</source>
+        <translation>Густина 1</translation>
+    </message>
+    <message>
+        <source>Dense 2</source>
+        <translation>Густина 2</translation>
+    </message>
+    <message>
+        <source>Dense 3</source>
+        <translation>Густина 3</translation>
+    </message>
+    <message>
+        <source>Dense 4</source>
+        <translation>Густина 4</translation>
+    </message>
+    <message>
+        <source>Dense 5</source>
+        <translation>Густина 5</translation>
+    </message>
+    <message>
+        <source>Dense 6</source>
+        <translation>Густина 6</translation>
+    </message>
+    <message>
+        <source>Dense 7</source>
+        <translation>Густина 7</translation>
+    </message>
+    <message>
+        <source>Horizontal</source>
+        <translation>Горизонтальний</translation>
+    </message>
+    <message>
+        <source>Vertical</source>
+        <translation>Вертикальний</translation>
+    </message>
+    <message>
+        <source>Cross</source>
+        <translation>Хрестоподібний</translation>
+    </message>
+    <message>
+        <source>Backward diagonal</source>
+        <translation>Зворотня діагональ</translation>
+    </message>
+    <message>
+        <source>Forward diagonal</source>
+        <translation>Пряма діагональ</translation>
+    </message>
+    <message>
+        <source>Crossing diagonal</source>
+        <translation>Діагоналі, що перетинаються</translation>
+    </message>
+    <message>
+        <source>Style</source>
+        <translation>Стиль</translation>
+    </message>
+    <message>
+        <source>Color</source>
+        <translation>Колір</translation>
+    </message>
+    <message>
+        <source>[%1, %2]</source>
+        <translation>[%1, %2]</translation>
+    </message>
+</context>
+<context>
+    <name>Command</name>
+    <message>
+        <source>Add connection</source>
+        <translation>Додати з&apos;єднання</translation>
+    </message>
+    <message>
+        <source>Adjust connection</source>
+        <translation>Налаштувати з&apos;єднання</translation>
+    </message>
+    <message>
+        <source>Delete connections</source>
+        <translation>Видалити з&apos;єднання</translation>
+    </message>
+    <message>
+        <source>Change source</source>
+        <translation>Змінити джерело</translation>
+    </message>
+    <message>
+        <source>Change target</source>
+        <translation>Зміни ціль</translation>
+    </message>
+    <message>
+        <source>Add &apos;%1&apos; to &apos;%2&apos;</source>
+        <extracomment>Command description for adding buttons to a QButtonGroup</extracomment>
+        <translation>Додати &apos;%1&apos; до &apos;%2&apos;</translation>
+    </message>
+    <message>
+        <source>Morph %1/&apos;%2&apos; into %3</source>
+        <extracomment>MorphWidgetCommand description</extracomment>
+        <translation>Перетворити %1/%2 в %3</translation>
+    </message>
+    <message>
+        <source>Insert &apos;%1&apos;</source>
+        <translation>Вставити &apos;%1&apos;</translation>
+    </message>
+    <message>
+        <source>Change Z-order of &apos;%1&apos;</source>
+        <translation>Змінити порядок глибина для &apos;%1&apos;</translation>
+    </message>
+    <message>
+        <source>Raise &apos;%1&apos;</source>
+        <translation>Підняти &apos;%1&apos;</translation>
+    </message>
+    <message>
+        <source>Lower &apos;%1&apos;</source>
+        <translation>Опустити &apos;%1&apos;</translation>
+    </message>
+    <message>
+        <source>Delete &apos;%1&apos;</source>
+        <translation>Видалити &apos;%1&apos;</translation>
+    </message>
+    <message>
+        <source>Reparent &apos;%1&apos;</source>
+        <translation>Змінити власника &apos;%1&apos;</translation>
+    </message>
+    <message>
+        <source>Promote to custom widget</source>
+        <translation>Перетворити на користувацький віджет</translation>
+    </message>
+    <message>
+        <source>Demote from custom widget</source>
+        <translation>Перетворити з користувацького віджета</translation>
+    </message>
+    <message>
+        <source>Lay out using grid</source>
+        <translation>Розташувати, використовуючи сітку</translation>
+    </message>
+    <message>
+        <source>Lay out vertically</source>
+        <translation>Розташувати вертикально</translation>
+    </message>
+    <message>
+        <source>Lay out horizontally</source>
+        <translation>Розташувати горизонтально</translation>
+    </message>
+    <message>
+        <source>Break layout</source>
+        <translation>Розбити розташування</translation>
+    </message>
+    <message>
+        <source>Simplify Grid Layout</source>
+        <translation>Спрощене розташування по сітці</translation>
+    </message>
+    <message>
+        <source>Move Page</source>
+        <translation>Пересунути сторінку</translation>
+    </message>
+    <message>
+        <source>Delete Page</source>
+        <translation>Видалити сторінку</translation>
+    </message>
+    <message>
+        <source>Page</source>
+        <translation>Сторінка</translation>
+    </message>
+    <message>
+        <source>Insert Page</source>
+        <translation>Вставити сторінку</translation>
+    </message>
+    <message>
+        <source>Change Tab order</source>
+        <translation>Змінити порядок обходу</translation>
+    </message>
+    <message>
+        <source>Create Menu Bar</source>
+        <translation>Створити панель меню</translation>
+    </message>
+    <message>
+        <source>Delete Menu Bar</source>
+        <translation>Видалити панель меню</translation>
+    </message>
+    <message>
+        <source>Create Status Bar</source>
+        <translation>Створити рядок статусу</translation>
+    </message>
+    <message>
+        <source>Delete Status Bar</source>
+        <translation>Видалити рядок статусу</translation>
+    </message>
+    <message>
+        <source>Add Tool Bar</source>
+        <translation>Додати панель інструментів</translation>
+    </message>
+    <message>
+        <source>Add Dock Window</source>
+        <translation>Додати прикріплене вікно</translation>
+    </message>
+    <message>
+        <source>Adjust Size of &apos;%1&apos;</source>
+        <translation>Підігнати розмір &apos;%1&apos;</translation>
+    </message>
+    <message>
+        <source>Change Form Layout Item Geometry</source>
+        <translation>Змінити геометрію елемента розташування формою</translation>
+    </message>
+    <message>
+        <source>Change Layout Item Geometry</source>
+        <translation>Змінити геометрію елемента розташування</translation>
+    </message>
+    <message>
+        <source>Delete Subwindow</source>
+        <translation>Видалити підвікно</translation>
+    </message>
+    <message>
+        <source>page</source>
+        <translation>сторінка</translation>
+    </message>
+    <message>
+        <source>Insert Subwindow</source>
+        <translation>Вставити підвікно</translation>
+    </message>
+    <message>
+        <source>subwindow</source>
+        <translation>підвікно</translation>
+    </message>
+    <message>
+        <source>Subwindow</source>
+        <translation>Підвікно</translation>
+    </message>
+    <message>
+        <source>Change Table Contents</source>
+        <translation>Змінити зміст таблиці</translation>
+    </message>
+    <message>
+        <source>Change Tree Contents</source>
+        <translation>Змінити зміст дерева</translation>
+    </message>
+    <message>
+        <source>Add action</source>
+        <translation>Додати дію</translation>
+    </message>
+    <message>
+        <source>Remove action</source>
+        <translation>Видалити дію</translation>
+    </message>
+    <message>
+        <source>Add menu</source>
+        <translation>Додати меню</translation>
+    </message>
+    <message>
+        <source>Remove menu</source>
+        <translation>Видалити меню</translation>
+    </message>
+    <message>
+        <source>Create submenu</source>
+        <translation>Створити підменю</translation>
+    </message>
+    <message>
+        <source>Delete Tool Bar</source>
+        <translation>Видалити панель інструментів</translation>
+    </message>
+    <message>
+        <source>Change layout of &apos;%1&apos; from %2 to %3</source>
+        <translation>Змінити розташування &apos;%1&apos; з %2 на %3</translation>
+    </message>
+    <message>
+        <source>Set action text</source>
+        <translation>Встановити текст дії</translation>
+    </message>
+    <message>
+        <source>Insert action</source>
+        <translation>Вставити дію</translation>
+    </message>
+    <message>
+        <source>Move action</source>
+        <translation>Пересунути дію</translation>
+    </message>
+    <message>
+        <source>Change Title</source>
+        <translation>Змінити заголовок</translation>
+    </message>
+    <message>
+        <source>Insert Menu</source>
+        <translation>Вставити меню</translation>
+    </message>
+    <message>
+        <source>Changed &apos;%1&apos; of &apos;%2&apos;</source>
+        <translation>Змінено &apos;%1&apos; з &apos;%2&apos;</translation>
+    </message>
+    <message numerus="yes">
+        <source>Changed &apos;%1&apos; of %n objects</source>
+        <translation>
+            <numerusform>Змінено &apos;%1&apos; з &apos;%n&apos; oб&apos;єкта</numerusform>
+            <numerusform>Змінено &apos;%1&apos; з &apos;%n&apos; oб&apos;єктів</numerusform>
+            <numerusform>Змінено &apos;%1&apos; з &apos;%n&apos; oб&apos;єктів</numerusform>
+        </translation>
+    </message>
+    <message>
+        <source>Reset &apos;%1&apos; of &apos;%2&apos;</source>
+        <translation>Відновлено &apos;%1&apos; з &apos;%2&apos;</translation>
+    </message>
+    <message numerus="yes">
+        <source>Reset &apos;%1&apos; of %n objects</source>
+        <translation>
+            <numerusform>Відновлено &apos;%1&apos; з %n об&apos;єкта</numerusform>
+            <numerusform>Відновлено &apos;%1&apos; з %n об&apos;єктів</numerusform>
+            <numerusform>Відновлено &apos;%1&apos; з %n об&apos;єктів</numerusform>
+        </translation>
+    </message>
+    <message>
+        <source>Add dynamic property &apos;%1&apos; to &apos;%2&apos;</source>
+        <translation>Додати динамічну властивість &apos;%1&apos; до &apos;%2&apos;</translation>
+    </message>
+    <message numerus="yes">
+        <source>Add dynamic property &apos;%1&apos; to %n objects</source>
+        <translation>
+            <numerusform>Додати динамічну властивість &apos;%1&apos; до &apos;%n&apos; об&apos;єкта</numerusform>
+            <numerusform>Додати динамічну властивість &apos;%1&apos; до &apos;%n&apos; об&apos;єктів</numerusform>
+            <numerusform>Додати динамічну властивість &apos;%1&apos; до &apos;%n&apos; об&apos;єктів</numerusform>
+        </translation>
+    </message>
+    <message>
+        <source>Remove dynamic property &apos;%1&apos; from &apos;%2&apos;</source>
+        <translation>Видалити динамічну властивість &apos;%1&apos; у &apos;%2&apos;</translation>
+    </message>
+    <message numerus="yes">
+        <source>Remove dynamic property &apos;%1&apos; from %n objects</source>
+        <translation>
+            <numerusform>Видалити динамічну властивість &apos;%1&apos; у &apos;%n&apos; об&apos;єкта</numerusform>
+            <numerusform>Видалити динамічну властивість &apos;%1&apos; у &apos;%n&apos; об&apos;єктів</numerusform>
+            <numerusform>Видалити динамічну властивість &apos;%1&apos; у &apos;%n&apos; об&apos;єктів</numerusform>
+        </translation>
+    </message>
+    <message>
+        <source>Change script</source>
+        <translation>Змінити скрипт</translation>
+    </message>
+    <message>
+        <source>Change signals/slots</source>
+        <translation>Змінити сигнали/слоти</translation>
+    </message>
+    <message>
+        <source>Change signal</source>
+        <translation>Змінити сигнал</translation>
+    </message>
+    <message>
+        <source>Change slot</source>
+        <translation>Змінити слот</translation>
+    </message>
+    <message>
+        <source>Change signal-slot connection</source>
+        <translation>Змінити з&apos;єднання сигнал-слот</translation>
+    </message>
+    <message>
+        <source>Change sender</source>
+        <translation>Змінити відправника</translation>
+    </message>
+    <message>
+        <source>Change receiver</source>
+        <translation>Змінити отримувача</translation>
+    </message>
+    <message>
+        <source>Create button group</source>
+        <translation>Створити групу кнопок</translation>
+    </message>
+    <message>
+        <source>Break button group</source>
+        <translation>Розбити групу кнопок</translation>
+    </message>
+    <message>
+        <source>Break button group &apos;%1&apos;</source>
+        <translation>Розбити групу кнопок &apos;%1&apos;</translation>
+    </message>
+    <message>
+        <source>Add buttons to group</source>
+        <translation>Додати кнопки до групи</translation>
+    </message>
+    <message>
+        <source>Remove buttons from group</source>
+        <translation>Видалити кнопки з групи</translation>
+    </message>
+    <message>
+        <source>Remove &apos;%1&apos; from &apos;%2&apos;</source>
+        <extracomment>Command description for removing buttons from a QButtonGroup</extracomment>
+        <translation>Видалити &apos;%1&apos; з &apos;%2&apos;</translation>
+    </message>
+</context>
+<context>
+    <name>ConnectDialog</name>
+    <message>
+        <source>Configure Connection</source>
+        <translation>Налаштування з&apos;єднання</translation>
+    </message>
+    <message>
+        <source>GroupBox</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>Edit...</source>
+        <translation>Редагувати...</translation>
+    </message>
+    <message>
+        <source>Show signals and slots inherited from QWidget</source>
+        <translation>Показувати сигнали та слоти успадковані від QWidget</translation>
+    </message>
+</context>
+<context>
+    <name>ConnectionDelegate</name>
+    <message>
+        <source>&lt;object&gt;</source>
+        <translation>&lt;об&apos;єкт&gt;</translation>
+    </message>
+    <message>
+        <source>&lt;signal&gt;</source>
+        <translation>&lt;сигнал&gt;</translation>
+    </message>
+    <message>
+        <source>&lt;slot&gt;</source>
+        <translation>&lt;слот&gt;</translation>
+    </message>
+</context>
+<context>
+    <name>DPI_Chooser</name>
+    <message>
+        <source>Standard (96 x 96)</source>
+        <extracomment>Embedded device standard screen resolution</extracomment>
+        <translation>Стандартна (96 x 96)</translation>
+    </message>
+    <message>
+        <source>Greenphone (179 x 185)</source>
+        <extracomment>Embedded device screen resolution</extracomment>
+        <translation>Greenphone (179 x 185)</translation>
+    </message>
+    <message>
+        <source>High (192 x 192)</source>
+        <extracomment>Embedded device high definition screen resolution</extracomment>
+        <translation>Висока (192 x 192)</translation>
+    </message>
+</context>
+<context>
+    <name>Designer</name>
+    <message>
+        <source>Unable to launch %1.</source>
+        <translation>Неможливо запустити %1.</translation>
+    </message>
+    <message>
+        <source>%1 timed out.</source>
+        <translation>Час очікування %1 вичерпано.</translation>
+    </message>
+    <message>
+        <source>Custom Widgets</source>
+        <translation>Віджети користувача</translation>
+    </message>
+    <message>
+        <source>Promoted Widgets</source>
+        <translation>Перетворені віджети</translation>
+    </message>
+    <message>
+        <source>Qt Designer</source>
+        <translation>Qt Designer</translation>
+    </message>
+    <message>
+        <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>Цей файл містить роздільники верхнього рівня.&lt;br&gt;Вони &lt;b&gt;НЕ&lt;/b&gt; будуть збережені в формі.</translation>
+    </message>
+    <message>
+        <source>Perhaps you forgot to create a layout?</source>
+        <translation>Можливо, ви забули створити розташування?</translation>
+    </message>
+    <message>
+        <source>Invalid UI file: The root element &lt;ui&gt; is missing.</source>
+        <translation>Неправильний файл UI: Кореневий елемент &lt;ui&gt; відсутній.</translation>
+    </message>
+    <message>
+        <source>An error has occurred while reading the UI file at line %1, column %2: %3</source>
+        <translation>Під час читання файлу UI сталася помилка в рядку %1, позиція %2: %3</translation>
+    </message>
+    <message>
+        <source>This file cannot be read because it was created using %1.</source>
+        <translation>Неможливо прочитати файл, бо його було створено з використанням %1.</translation>
+    </message>
+    <message>
+        <source>This file was created using Designer from Qt-%1 and cannot be read.</source>
+        <translation>Неможливо прочитати файл, бо його було створено з використанням Designer з Qt-%1.</translation>
+    </message>
+    <message>
+        <source>The converted file could not be read.</source>
+        <translation>Не вдалось прочитати конвертований файл.</translation>
+    </message>
+    <message>
+        <source>This file was created using Designer from Qt-%1 and will be converted to a new form by Qt Designer.</source>
+        <translation>Цей файл було створено з використанням Designer з Qt-%1.і його буде сконвертовано до нової форми.</translation>
+    </message>
+    <message>
+        <source>The old form has not been touched, but you will have to save the form under a new name.</source>
+        <translation>Стара форма не змінилася, але ви маєте зберегти форму під новим іменем.</translation>
+    </message>
+    <message>
+        <source>This file was created using Designer from Qt-%1 and could not be read:
+%2</source>
+        <translation>Не вдалось прочитати файл, бо його було створено з використанням Designer з Qt-%1:
+%2</translation>
+    </message>
+    <message>
+        <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>Будь ласка, пропустіть його через &lt;b&gt;uic3&amp;nbsp;-convert&lt;/b&gt;, щоб сконвертувати до формату Qt-4.</translation>
+    </message>
+    <message>
+        <source>This file cannot be read because the extra info extension failed to load.</source>
+        <translation>Неможливо прочитати цей файл, бо трапився збій при завантаженні розширення додаткової інформації.</translation>
+    </message>
+</context>
+<context>
+    <name>DesignerMetaEnum</name>
+    <message>
+        <source>%1 is not a valid enumeration value of &apos;%2&apos;.</source>
+        <translation>%1 не є правильним значення для переліку &apos;%2&apos;.</translation>
+    </message>
+    <message>
+        <source>&apos;%1&apos; could not be converted to an enumeration value of type &apos;%2&apos;.</source>
+        <translation>Не вдалось сконвертувати &apos;%1&apos;до типу значень переліку &apos;%2&apos;.</translation>
+    </message>
+</context>
+<context>
+    <name>DesignerMetaFlags</name>
+    <message>
+        <source>&apos;%1&apos; could not be converted to a flag value of type &apos;%2&apos;.</source>
+        <translation>Не вдалось перетворити &apos;%1&apos; прапорця типу &apos;%2&apos;.</translation>
+    </message>
+</context>
+<context>
+    <name>DeviceProfile</name>
+    <message>
+        <source>&apos;%1&apos; is not a number.</source>
+        <extracomment>Reading a number for an embedded device profile</extracomment>
+        <translation>&apos;%1&apos; не є числом.</translation>
+    </message>
+    <message>
+        <source>An invalid tag &lt;%1&gt; was encountered.</source>
+        <translation>Знайдено неправильний тег &lt;%1&gt;.</translation>
+    </message>
+</context>
+<context>
+    <name>DeviceProfileDialog</name>
+    <message>
+        <source>&amp;Family</source>
+        <translation>&amp;Сім&apos;я</translation>
+    </message>
+    <message>
+        <source>&amp;Point Size</source>
+        <translation>&amp;Розмір точки</translation>
+    </message>
+    <message>
+        <source>Style</source>
+        <translation>Стиль</translation>
+    </message>
+    <message>
+        <source>Device DPI</source>
+        <translation>DPI пристрою</translation>
+    </message>
+    <message>
+        <source>Name</source>
+        <translation>Назва</translation>
+    </message>
+</context>
+<context>
+    <name>DeviceSkin</name>
+    <message>
+        <source>The image file &apos;%1&apos; could not be loaded.</source>
+        <translation>Не вдалось завантажити файл зображення &apos;%1&apos;.</translation>
+    </message>
+    <message>
+        <source>The skin directory &apos;%1&apos; does not contain a configuration file.</source>
+        <translation>Тека обкладинки &apos;%1&apos; не містить файлу налаштувань.</translation>
+    </message>
+    <message>
+        <source>The skin configuration file &apos;%1&apos; could not be opened.</source>
+        <translation>Не вдалось відкрити файл налаштувань &apos;%1&apos;.</translation>
+    </message>
+    <message>
+        <source>The skin configuration file &apos;%1&apos; could not be read: %2</source>
+        <translation>Не вдалось прочитати файл налаштувань &apos;%1&apos;: %2</translation>
+    </message>
+    <message>
+        <source>Syntax error: %1</source>
+        <translation>Синтаксична помилка: %1</translation>
+    </message>
+    <message>
+        <source>The skin &quot;up&quot; image file &apos;%1&apos; does not exist.</source>
+        <translation>Зображення обкладинки &quot;вгору&quot; &apos;%1&apos; не існує.</translation>
+    </message>
+    <message>
+        <source>The skin &quot;down&quot; image file &apos;%1&apos; does not exist.</source>
+        <translation>Зображення обкладинки &quot;вниз&quot; &apos;%1&apos; не існує.</translation>
+    </message>
+    <message>
+        <source>The skin &quot;closed&quot; image file &apos;%1&apos; does not exist.</source>
+        <translation>Зображення обкладинки &quot;закрито&quot; &apos;%1&apos; не існує.</translation>
+    </message>
+    <message>
+        <source>The skin cursor image file &apos;%1&apos; does not exist.</source>
+        <translation>Зображення обкладинки для курсору &apos;%1&apos; не існує.</translation>
+    </message>
+    <message>
+        <source>Syntax error in area definition: %1</source>
+        <translation>Синтаксична помилка в описі області: %1</translation>
+    </message>
+    <message>
+        <source>Mismatch in number of areas, expected %1, got %2.</source>
+        <translation>Не збігається кількість областей, очікувалось %1, отримано %2.</translation>
+    </message>
+</context>
+<context>
+    <name>EmbeddedOptionsControl</name>
+    <message>
+        <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;Шрифт&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;Стиль&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;Роздільна здатність&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>
+        <source>Embedded Design</source>
+        <extracomment>Tab in preferences dialog</extracomment>
+        <translation>Дизайн для портативних пристроїв</translation>
+    </message>
+    <message>
+        <source>Device Profiles</source>
+        <extracomment>EmbeddedOptionsControl group box&quot;</extracomment>
+        <translation>Профілі пристроїв</translation>
+    </message>
+</context>
+<context>
+    <name>FontPanel</name>
+    <message>
+        <source>Font</source>
+        <translation>Шрифт</translation>
+    </message>
+    <message>
+        <source>&amp;Writing system</source>
+        <translation>Система &amp;письма</translation>
+    </message>
+    <message>
+        <source>&amp;Family</source>
+        <translation>&amp;Сім&apos;я</translation>
+    </message>
+    <message>
+        <source>&amp;Style</source>
+        <translation>Сти&amp;ль</translation>
+    </message>
+    <message>
+        <source>&amp;Point size</source>
+        <translation>&amp;Розмір точки</translation>
+    </message>
+</context>
+<context>
+    <name>FontPropertyManager</name>
+    <message>
+        <source>PreferDefault</source>
+        <translation>Надавати перевагу типовому</translation>
+    </message>
+    <message>
+        <source>NoAntialias</source>
+        <translation>Без згладжування</translation>
+    </message>
+    <message>
+        <source>PreferAntialias</source>
+        <translation>Надавати перевагу згладжування</translation>
+    </message>
+    <message>
+        <source>Antialiasing</source>
+        <translation>Згладжування</translation>
+    </message>
+</context>
+<context>
+    <name>FormBuilder</name>
+    <message>
+        <source>Invalid stretch value for &apos;%1&apos;: &apos;%2&apos;</source>
+        <extracomment>Parsing layout stretch values
+----------
+Parsing layout stretch values
+----------
+Parsing layout stretch values</extracomment>
+        <translation>Неправильне значення розтягування для &apos;%1&apos;: &apos;%2&apos;</translation>
+    </message>
+    <message>
+        <source>Invalid minimum size for &apos;%1&apos;: &apos;%2&apos;</source>
+        <extracomment>Parsing grid layout minimum size values
+----------
+Parsing grid layout minimum size values
+----------
+Parsing grid layout minimum size values</extracomment>
+        <translation>Неправильне значення мінімального розміру для &apos;%1&apos;: &apos;%2&apos;</translation>
+    </message>
+</context>
+<context>
+    <name>FormEditorOptionsPage</name>
+    <message>
+        <source>%1 %</source>
+        <translation>%1 %</translation>
+    </message>
+    <message>
+        <source>Preview Zoom</source>
+        <translation>Масштаб попереднього перегляду</translation>
+    </message>
+    <message>
+        <source>Default Zoom</source>
+        <translation>Типовий масштаб</translation>
+    </message>
+    <message>
+        <source>Forms</source>
+        <extracomment>Tab in preferences dialog</extracomment>
+        <translation>Форми</translation>
+    </message>
+    <message>
+        <source>Default Grid</source>
+        <translation>Типова сітка</translation>
+    </message>
+</context>
+<context>
+    <name>FormLayoutRowDialog</name>
+    <message>
+        <source>Add Form Layout Row</source>
+        <translation>Додати рядок до розташування формою</translation>
+    </message>
+    <message>
+        <source>&amp;Label text:</source>
+        <translation>Текст &amp;мітки:</translation>
+    </message>
+    <message>
+        <source>Field &amp;type:</source>
+        <translation>&amp;Тип поля:</translation>
+    </message>
+    <message>
+        <source>&amp;Field name:</source>
+        <translation>Назва &amp;поля:</translation>
+    </message>
+    <message>
+        <source>&amp;Buddy:</source>
+        <translation>Прив&apos;&amp;язка:</translation>
+    </message>
+    <message>
+        <source>&amp;Row:</source>
+        <translation>&amp;Рядок:</translation>
+    </message>
+    <message>
+        <source>Label &amp;name:</source>
+        <translation>&amp;Назва мітки:</translation>
+    </message>
+</context>
+<context>
+    <name>FormWindow</name>
+    <message>
+        <source>Unexpected element &lt;%1&gt;</source>
+        <translation>Неочікуваний елемент &lt;%1&gt;</translation>
+    </message>
+    <message>
+        <source>Error while pasting clipboard contents at line %1, column %2: %3</source>
+        <translation>Помилка під час вставки змісту буферу обміну в рядку %1, позиція %2: %3</translation>
+    </message>
+</context>
+<context>
+    <name>FormWindowSettings</name>
+    <message>
+        <source>Form Settings</source>
+        <translation>Налаштування форми</translation>
+    </message>
+    <message>
+        <source>Layout &amp;Default</source>
+        <translation>&amp;Типове розташування</translation>
+    </message>
+    <message>
+        <source>&amp;Spacing:</source>
+        <translation>&amp;Відступ:</translation>
+    </message>
+    <message>
+        <source>&amp;Margin:</source>
+        <translation>&amp;Границя:</translation>
+    </message>
+    <message>
+        <source>&amp;Layout Function</source>
+        <translation>Функція р&amp;озташування</translation>
+    </message>
+    <message>
+        <source>Ma&amp;rgin:</source>
+        <translation>Г&amp;раниця:</translation>
+    </message>
+    <message>
+        <source>Spa&amp;cing:</source>
+        <translation>В&amp;ідступ:</translation>
+    </message>
+    <message>
+        <source>&amp;Pixmap Function</source>
+        <translation>Функція растрового &amp;зображення</translation>
+    </message>
+    <message>
+        <source>&amp;Include Hints</source>
+        <translation>Включити під&amp;казки</translation>
+    </message>
+    <message>
+        <source>Grid</source>
+        <translation>Сітка</translation>
+    </message>
+    <message>
+        <source>Embedded Design</source>
+        <translation>Дизайн для портативних пристроїв</translation>
+    </message>
+    <message>
+        <source>&amp;Author</source>
+        <translation>&amp;Автор</translation>
+    </message>
+</context>
+<context>
+    <name>IconSelector</name>
+    <message>
+        <source>All Pixmaps (</source>
+        <translation>Усі растрові зображення (</translation>
+    </message>
+</context>
+<context>
+    <name>ItemPropertyBrowser</name>
+    <message>
+        <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 Значок Виділено вимк</translation>
+    </message>
+</context>
+<context>
+    <name>MainWindowBase</name>
+    <message>
+        <source>Main</source>
+        <extracomment>Not currently used (main tool bar)</extracomment>
+        <translation>Головна</translation>
+    </message>
+    <message>
+        <source>File</source>
+        <translation>Файл</translation>
+    </message>
+    <message>
+        <source>Edit</source>
+        <translation>Правка</translation>
+    </message>
+    <message>
+        <source>Tools</source>
+        <translation>Інструменти</translation>
+    </message>
+    <message>
+        <source>Form</source>
+        <translation>Форма</translation>
+    </message>
+    <message>
+        <source>Qt Designer</source>
+        <translation>Qt Designer</translation>
+    </message>
+</context>
+<context>
+    <name>NewForm</name>
+    <message>
+        <source>Show this Dialog on Startup</source>
+        <translation>Показувати цей діалог під час запуску</translation>
+    </message>
+    <message>
+        <source>C&amp;reate</source>
+        <translation>&amp;Створити</translation>
+    </message>
+    <message>
+        <source>Recent</source>
+        <translation>Нещодавні</translation>
+    </message>
+    <message>
+        <source>New Form</source>
+        <translation>Нова форма</translation>
+    </message>
+    <message>
+        <source>&amp;Close</source>
+        <translation>З&amp;акрити</translation>
+    </message>
+    <message>
+        <source>&amp;Open...</source>
+        <translation>&amp;Відкрити...</translation>
+    </message>
+    <message>
+        <source>&amp;Recent Forms</source>
+        <translation>Нещодавні &amp;форми</translation>
+    </message>
+    <message>
+        <source>Read error</source>
+        <translation>Помилка читання</translation>
+    </message>
+    <message>
+        <source>A temporary form file could not be created in %1.</source>
+        <translation>Не вдалось створити тимчасовий файл форми в %1.</translation>
+    </message>
+    <message>
+        <source>The temporary form file %1 could not be written.</source>
+        <translation>Не вдалось записати тимчасовий файл форми %1.</translation>
+    </message>
+</context>
+<context>
+    <name>ObjectInspectorModel</name>
+    <message>
+        <source>Object</source>
+        <translation>Об&apos;єкт</translation>
+    </message>
+    <message>
+        <source>Class</source>
+        <translation>Клас</translation>
+    </message>
+    <message>
+        <source>separator</source>
+        <translation>розділювач</translation>
+    </message>
+    <message>
+        <source>&lt;noname&gt;</source>
+        <translation>&lt;без назви&gt;</translation>
+    </message>
+</context>
+<context>
+    <name>ObjectNameDialog</name>
+    <message>
+        <source>Change Object Name</source>
+        <translation>Змінити назву об&apos;єкта</translation>
+    </message>
+    <message>
+        <source>Object Name</source>
+        <translation>Назва об&apos;єкта</translation>
+    </message>
+</context>
+<context>
+    <name>PluginDialog</name>
+    <message>
+        <source>Plugin Information</source>
+        <translation>Інформація про додатки</translation>
+    </message>
+    <message>
+        <source>1</source>
+        <translation>1</translation>
+    </message>
+</context>
+<context>
+    <name>PreferencesDialog</name>
+    <message>
+        <source>Preferences</source>
+        <translation>Налаштування</translation>
+    </message>
+</context>
+<context>
+    <name>PreviewConfigurationWidget</name>
+    <message>
+        <source>Form</source>
+        <translation>Форма</translation>
+    </message>
+    <message>
+        <source>Print/Preview Configuration</source>
+        <translation>Налаштування друку/попереднього перегляду</translation>
+    </message>
+    <message>
+        <source>Style</source>
+        <translation>Стиль</translation>
+    </message>
+    <message>
+        <source>Style sheet</source>
+        <translation>Таблиця стилів</translation>
+    </message>
+    <message>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <source>Device skin</source>
+        <translation>Обкладинка пристрою</translation>
+    </message>
+</context>
+<context>
+    <name>PromotionModel</name>
+    <message>
+        <source>Not used</source>
+        <extracomment>Usage of promoted widgets</extracomment>
+        <translation>Не використовується</translation>
+    </message>
+</context>
+<context>
+    <name>Q3WizardContainer</name>
+    <message>
+        <source>Page</source>
+        <translation>Сторінка</translation>
+    </message>
+</context>
+<context>
+    <name>QAbstractFormBuilder</name>
+    <message>
+        <source>Unexpected element &lt;%1&gt;</source>
+        <translation>Неочікуваний елемент &lt;%1&gt;</translation>
+    </message>
+    <message>
+        <source>An error has occurred while reading the UI file at line %1, column %2: %3</source>
+        <translation>Під час читання файлу UI &apos;%1&apos; сталася помилка в рядку %2, позиція %3</translation>
+    </message>
+    <message>
+        <source>Invalid UI file: The root element &lt;ui&gt; is missing.</source>
+        <translation>Неправильний файл UI: Кореневий елемент &lt;ui&gt; відсутній.</translation>
+    </message>
+    <message>
+        <source>The creation of a widget of the class &apos;%1&apos; failed.</source>
+        <translation>Збій створення віджета класу &apos;%1&apos;.</translation>
+    </message>
+    <message>
+        <source>Attempt to add child that is not of class QWizardPage to QWizard.</source>
+        <translation>Спроба додати до QWizard нащадка, який не є класом QWizardPage.</translation>
+    </message>
+    <message>
+        <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>Спроба додати розташування для віджета &apos;%1&apos; (%2), який вже має розташування %3.
+Це вказує на некоректність в файлі UI.</translation>
+    </message>
+    <message>
+        <source>Empty widget item in %1 &apos;%2&apos;.</source>
+        <translation>Пустий елемент віджета в %1 &apos;%2&apos;.</translation>
+    </message>
+    <message>
+        <source>Flags property are not supported yet.</source>
+        <translation>Властивості-прапорці ще не підтримуються.</translation>
+    </message>
+    <message>
+        <source>While applying tab stops: The widget &apos;%1&apos; could not be found.</source>
+        <translation>Під час застосування позицій табуляції: Не вдалось знайти віджет &apos;%1&apos;.</translation>
+    </message>
+    <message>
+        <source>Invalid QButtonGroup reference &apos;%1&apos; referenced by &apos;%2&apos;.</source>
+        <translation>&apos;%2&apos; містить неправильне посилання на QButtonGroup &apos;%1&apos;.</translation>
+    </message>
+    <message>
+        <source>This version of the uitools library is linked without script support.</source>
+        <translation>Ця версія бібліотеки uitools зібрана без підтримки скриптів.</translation>
+    </message>
+</context>
+<context>
+    <name>QAxWidgetPlugin</name>
+    <message>
+        <source>ActiveX control</source>
+        <translation>Елемент керування ActiveX</translation>
+    </message>
+    <message>
+        <source>ActiveX control widget</source>
+        <translation>Віджет елемента керування ActiveX</translation>
+    </message>
+</context>
+<context>
+    <name>QAxWidgetTaskMenu</name>
+    <message>
+        <source>Set Control</source>
+        <translation>Встановити елемент керування</translation>
+    </message>
+    <message>
+        <source>Reset Control</source>
+        <translation>Скинути елемент керування</translation>
+    </message>
+    <message>
+        <source>Licensed Control</source>
+        <translation>Ліцензований елемент керування</translation>
+    </message>
+    <message>
+        <source>The control requires a design-time license</source>
+        <translation>Цей елемент управління вимагає ліцензії для розробки</translation>
+    </message>
+</context>
+<context>
+    <name>QCoreApplication</name>
+    <message>
+        <source>Exception at line %1: %2</source>
+        <translation>Виключна ситуація в рядку %1: %2</translation>
+    </message>
+    <message>
+        <source>Unknown error</source>
+        <translation>Невідома помилка</translation>
+    </message>
+    <message>
+        <source>An error occurred while running the script for %1: %2
+Script: %3</source>
+        <translation>Під час виконання скрипту для %1 сталася помилка: %2
+Скрипт: %3</translation>
+    </message>
+    <message>
+        <source>%1 is not a promoted class.</source>
+        <translation>%1 не є перетвореним класом.</translation>
+    </message>
+    <message>
+        <source>The base class %1 is invalid.</source>
+        <translation>Неправильний базовий клас %1.</translation>
+    </message>
+    <message>
+        <source>The class %1 already exists.</source>
+        <translation>Клас %1 вже існує.</translation>
+    </message>
+    <message>
+        <source>Promoted Widgets</source>
+        <translation>Перетворені віджети</translation>
+    </message>
+    <message>
+        <source>The class %1 cannot be removed</source>
+        <translation>Неможливо видалити клас %1</translation>
+    </message>
+    <message>
+        <source>The class %1 cannot be removed because it is still referenced.</source>
+        <translation>Неможливо видалити клас %1, оскільки на нього досі є посилання.</translation>
+    </message>
+    <message>
+        <source>The class %1 cannot be renamed</source>
+        <translation>Неможливо перейменувати клас %1</translation>
+    </message>
+    <message>
+        <source>The class %1 cannot be renamed to an empty name.</source>
+        <translation>Неможливо дати класу %1 пусте ім&apos;я.</translation>
+    </message>
+    <message>
+        <source>There is already a class named %1.</source>
+        <translation>Вже існує клас з іменем %1.</translation>
+    </message>
+    <message>
+        <source>Cannot set an empty include file.</source>
+        <translation>Неможливо встановити порожнє ім&apos;я файлу заголовків.</translation>
+    </message>
+</context>
+<context>
+    <name>QDesigner</name>
+    <message>
+        <source>%1 - warning</source>
+        <translation>%1 - попередження</translation>
+    </message>
+    <message>
+        <source>Qt Designer</source>
+        <translation>Qt Designer</translation>
+    </message>
+    <message>
+        <source>This application cannot be used for the Console edition of Qt</source>
+        <translation>Ця програма не може бути використана консольною редакцією Qt</translation>
+    </message>
+</context>
+<context>
+    <name>QDesignerActions</name>
+    <message>
+        <source>Saved %1.</source>
+        <translation>Збережено %1.</translation>
+    </message>
+    <message>
+        <source>%1 already exists.
+Do you want to replace it?</source>
+        <translation>%1 вже існує.
+Бажаєте замінити його?</translation>
+    </message>
+    <message>
+        <source>Edit Widgets</source>
+        <translation>Редагувати віджети</translation>
+    </message>
+    <message>
+        <source>&amp;New...</source>
+        <translation>&amp;Новий...</translation>
+    </message>
+    <message>
+        <source>&amp;Open...</source>
+        <translation>&amp;Відкрити...</translation>
+    </message>
+    <message>
+        <source>&amp;Save</source>
+        <translation>&amp;Зберегти</translation>
+    </message>
+    <message>
+        <source>Save &amp;As...</source>
+        <translation>Зберегти &amp;як...</translation>
+    </message>
+    <message>
+        <source>Save A&amp;ll</source>
+        <translation>Зберегти &amp;усе</translation>
+    </message>
+    <message>
+        <source>Save As &amp;Template...</source>
+        <translation>Зберегти як &amp;шаблон...</translation>
+    </message>
+    <message>
+        <source>&amp;Close</source>
+        <translation>З&amp;акрити</translation>
+    </message>
+    <message>
+        <source>Save &amp;Image...</source>
+        <translation>Зберегти з&amp;ображення...</translation>
+    </message>
+    <message>
+        <source>&amp;Print...</source>
+        <translation>&amp;Друк...</translation>
+    </message>
+    <message>
+        <source>&amp;Quit</source>
+        <translation>Ви&amp;йти</translation>
+    </message>
+    <message>
+        <source>View &amp;Code...</source>
+        <translation>Переглянути &amp;код...</translation>
+    </message>
+    <message>
+        <source>&amp;Minimize</source>
+        <translation>&amp;Мінімізувати</translation>
+    </message>
+    <message>
+        <source>Bring All to Front</source>
+        <translation>Усе на передній план</translation>
+    </message>
+    <message>
+        <source>Preferences...</source>
+        <translation>Налаштування...</translation>
+    </message>
+    <message>
+        <source>Additional Fonts...</source>
+        <translation>Додаткові шрифти...</translation>
+    </message>
+    <message>
+        <source>ALT+CTRL+S</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>CTRL+SHIFT+S</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>CTRL+R</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>CTRL+M</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>Qt Designer &amp;Help</source>
+        <translation>&amp;Довідка по Qt Designer</translation>
+    </message>
+    <message>
+        <source>Current Widget Help</source>
+        <translation>Довідка по поточному віджету</translation>
+    </message>
+    <message>
+        <source>What&apos;s New in Qt Designer?</source>
+        <translation>Що нового в Qt Designer?</translation>
+    </message>
+    <message>
+        <source>About Plugins</source>
+        <translation>Про додатки</translation>
+    </message>
+    <message>
+        <source>About Qt Designer</source>
+        <translation>Про Qt Designer</translation>
+    </message>
+    <message>
+        <source>About Qt</source>
+        <translation>Про Qt</translation>
+    </message>
+    <message>
+        <source>Clear &amp;Menu</source>
+        <translation>Очистити &amp;меню</translation>
+    </message>
+    <message>
+        <source>&amp;Recent Forms</source>
+        <translation>Нещодавні &amp;форми</translation>
+    </message>
+    <message>
+        <source>Open Form</source>
+        <translation>Відкрити форму</translation>
+    </message>
+    <message>
+        <source>Designer UI files (*.%1);;All Files (*)</source>
+        <translation>UI файли Designer (*.%1);;Всі файли (*)</translation>
+    </message>
+    <message>
+        <source>Save Form As</source>
+        <translation>Зберегти форму як</translation>
+    </message>
+    <message>
+        <source>Designer</source>
+        <translation>Designer</translation>
+    </message>
+    <message>
+        <source>Feature not implemented yet!</source>
+        <translation>Можливість ще не реалізована!</translation>
+    </message>
+    <message>
+        <source>Code generation failed</source>
+        <translation>Збій генерації коду</translation>
+    </message>
+    <message>
+        <source>Read error</source>
+        <translation>Помилка читання</translation>
+    </message>
+    <message>
+        <source>%1
+Do you want to update the file location or generate a new form?</source>
+        <translation>%1
+Бажаєте оновити розташування файлу чи згенерувати нову форму?</translation>
+    </message>
+    <message>
+        <source>&amp;Update</source>
+        <translation>&amp;Оновити</translation>
+    </message>
+    <message>
+        <source>&amp;New Form</source>
+        <translation>&amp;Нова форма</translation>
+    </message>
+    <message>
+        <source>Save Form?</source>
+        <translation>Зберегти форму?</translation>
+    </message>
+    <message>
+        <source>Could not open file</source>
+        <translation>Не вдалось відкрити файл</translation>
+    </message>
+    <message>
+        <source>The file %1 could not be opened.
+Reason: %2
+Would you like to retry or select a different file?</source>
+        <translation>Не вдалось відкрити файл %1.
+Причина: %2
+Чи не хотіли б ви спробувати ще раз чи вибрати інший файл?</translation>
+    </message>
+    <message>
+        <source>Select New File</source>
+        <translation>Оберіть новий файл</translation>
+    </message>
+    <message>
+        <source>Could not write file</source>
+        <translation>Не вдалось записати файл</translation>
+    </message>
+    <message>
+        <source>It was not possible to write the entire file %1 to disk.
+Reason:%2
+Would you like to retry?</source>
+        <translation>Не вдалось записати цілий файл %1 на диск.
+Причина:%2
+Бажаєте спробувати ще раз?</translation>
+    </message>
+    <message>
+        <source>Assistant</source>
+        <translation>Assistant</translation>
+    </message>
+    <message>
+        <source>&amp;Close Preview</source>
+        <translation>З&amp;акрити попередній перегляд</translation>
+    </message>
+    <message>
+        <source>The backup file %1 could not be written.</source>
+        <translation>Не вдалось записати файл резервної копії %1.</translation>
+    </message>
+    <message>
+        <source>The backup directory %1 could not be created.</source>
+        <translation>Не вдалось створити теку резервних копій %1.</translation>
+    </message>
+    <message>
+        <source>The temporary backup directory %1 could not be created.</source>
+        <translation>Не вдалось створити тимчасову теку резервних копій %1.</translation>
+    </message>
+    <message>
+        <source>Preview failed</source>
+        <translation>Збій попереднього перегляду</translation>
+    </message>
+    <message>
+        <source>Image files (*.%1)</source>
+        <translation>Файли зображень (*.%1)</translation>
+    </message>
+    <message>
+        <source>Save Image</source>
+        <translation>Зберегти зображення</translation>
+    </message>
+    <message>
+        <source>Saved image %1.</source>
+        <translation>Збережено зображення %1.</translation>
+    </message>
+    <message>
+        <source>The file %1 could not be written.</source>
+        <translation>Не вдалось записати файл %1.</translation>
+    </message>
+    <message>
+        <source>Please close all forms to enable the loading of additional fonts.</source>
+        <translation>Будь ласка, закрийте усі форми, щоб дозволити завантаження додаткових шрифтів.</translation>
+    </message>
+    <message>
+        <source>Printed %1.</source>
+        <translation>Надруковано %1.</translation>
+    </message>
+</context>
+<context>
+    <name>QDesignerAppearanceOptionsPage</name>
+    <message>
+        <source>Appearance</source>
+        <extracomment>Tab in preferences dialog</extracomment>
+        <translation></translation>
+    </message>
+</context>
+<context>
+    <name>QDesignerAppearanceOptionsWidget</name>
+    <message>
+        <source>Docked Window</source>
+        <translation>Прикріплені вікна</translation>
+    </message>
+    <message>
+        <source>Multiple Top-Level Windows</source>
+        <translation>Декілька вікон верхнього рівня</translation>
+    </message>
+    <message>
+        <source>Toolwindow Font</source>
+        <translation>Шрифт інструментальних вікон</translation>
+    </message>
+</context>
+<context>
+    <name>QDesignerAxWidget</name>
+    <message>
+        <source>Reset control</source>
+        <translation>Скинути елемент керування</translation>
+    </message>
+    <message>
+        <source>Set control</source>
+        <translation>Встановити елемент керування</translation>
+    </message>
+    <message>
+        <source>Control loaded</source>
+        <translation>Елемент керування завантажено</translation>
+    </message>
+    <message>
+        <source>A COM exception occurred when executing a meta call of type %1, index %2 of &quot;%3&quot;.</source>
+        <translation>Виникла виключна ситуація COM під час здійснення мета-виклику типу %1, індекс %2 з &quot;%3&quot;.</translation>
+    </message>
+</context>
+<context>
+    <name>QDesignerFormBuilder</name>
+    <message>
+        <source>Script errors occurred:</source>
+        <translation>Трапились помилки скрипту:</translation>
+    </message>
+    <message>
+        <source>The preview failed to build.</source>
+        <translation>Збій побудови попереднього перегляду.</translation>
+    </message>
+    <message>
+        <source>Designer</source>
+        <translation>Designer</translation>
+    </message>
+</context>
+<context>
+    <name>QDesignerFormWindow</name>
+    <message>
+        <source>%1 - %2[*]</source>
+        <translation>%1 - %2[*]</translation>
+    </message>
+    <message>
+        <source>Save Form?</source>
+        <translation>Зберегти форму?</translation>
+    </message>
+    <message>
+        <source>Do you want to save the changes to this document before closing?</source>
+        <translation>Бажаєте зберегти зміни до цього документи перед тим як закрити?</translation>
+    </message>
+    <message>
+        <source>If you don&apos;t save, your changes will be lost.</source>
+        <translation>Якщо ви не збережете, ваші зміни будуть втрачені.</translation>
+    </message>
+</context>
+<context>
+    <name>QDesignerMenu</name>
+    <message>
+        <source>Type Here</source>
+        <translation>Набирайте тут</translation>
+    </message>
+    <message>
+        <source>Add Separator</source>
+        <translation>Додати розділювач</translation>
+    </message>
+    <message>
+        <source>Insert separator</source>
+        <translation>Вставити розділювач</translation>
+    </message>
+    <message>
+        <source>Remove separator</source>
+        <translation>Видалити розділювач</translation>
+    </message>
+    <message>
+        <source>Remove action &apos;%1&apos;</source>
+        <translation>Видалити дію &apos;%1&apos;</translation>
+    </message>
+    <message>
+        <source>Add separator</source>
+        <translation>Додати розділювач</translation>
+    </message>
+    <message>
+        <source>Insert action</source>
+        <translation>Вставити дію</translation>
+    </message>
+</context>
+<context>
+    <name>QDesignerMenuBar</name>
+    <message>
+        <source>Type Here</source>
+        <translation>Набирайте тут</translation>
+    </message>
+    <message>
+        <source>Remove Menu &apos;%1&apos;</source>
+        <translation>Видалити меню &apos;%1&apos;</translation>
+    </message>
+    <message>
+        <source>Remove Menu Bar</source>
+        <translation>Видалити панель меню</translation>
+    </message>
+    <message>
+        <source>Menu</source>
+        <translation>Меню</translation>
+    </message>
+</context>
+<context>
+    <name>QDesignerPluginManager</name>
+    <message>
+        <source>An XML error was encountered when parsing the XML of the custom widget %1: %2</source>
+        <translation>Під час розбору XML користувацького віджета %1 сталась помилка XML: %2</translation>
+    </message>
+    <message>
+        <source>A required attribute (&apos;%1&apos;) is missing.</source>
+        <translation>Обов&apos;язковий атрибут (&apos;%1&apos;) відсутній.</translation>
+    </message>
+    <message>
+        <source>An invalid property specification (&apos;%1&apos;) was encountered. Supported types: %2</source>
+        <translation>Знайдено неправильну специфікацію властивості (&apos;%1&apos;). Підтримувані типи: %2</translation>
+    </message>
+    <message>
+        <source>&apos;%1&apos; is not a valid string property specification.</source>
+        <translation>&apos;%1&apos; не є правильною специфікацією рядкової властивості.</translation>
+    </message>
+    <message>
+        <source>The XML of the custom widget %1 does not contain any of the elements &lt;widget&gt; or &lt;ui&gt;.</source>
+        <translation>XML користувацького віджета %1 не містить жодного з елементів &lt;widget&gt; або &lt;ui&gt;.</translation>
+    </message>
+    <message>
+        <source>The class attribute for the class %1 is missing.</source>
+        <translation>Відсутній атрибут для класу %1.</translation>
+    </message>
+    <message>
+        <source>The class attribute for the class %1 does not match the class name %2.</source>
+        <translation>Атрибут &quot;клас&quot; для класу %1 не збігається з іменем класу %2.</translation>
+    </message>
+</context>
+<context>
+    <name>QDesignerPropertySheet</name>
+    <message>
+        <source>Dynamic Properties</source>
+        <translation>Динамічні властивості</translation>
+    </message>
+</context>
+<context>
+    <name>QDesignerResource</name>
+    <message>
+        <source>The layout type &apos;%1&apos; is not supported, defaulting to grid.</source>
+        <translation>Тип розташування &apos;%1&apos; не підтримується, використовуємо сітку.</translation>
+    </message>
+    <message>
+        <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>Контейнерне розширення &apos;%1&apos; (%2) повернуло віджет, який не може бути керований за допомогою Qt Designer &apos;%3&apos; (%4) під час запиту сторінки №%5.
+Сторінки контейнера повинні додаватись лише за допомогою вказування їх в XML, що повертається методом domXml() віджета користувача.</translation>
+    </message>
+    <message>
+        <source>Unexpected element &lt;%1&gt;</source>
+        <extracomment>Parsing clipboard contents</extracomment>
+        <translation>Неочікуваний елемент &lt;%1&gt;</translation>
+    </message>
+    <message>
+        <source>Error while pasting clipboard contents at line %1, column %2: %3</source>
+        <extracomment>Parsing clipboard contents</extracomment>
+        <translation>Помилка під час вставки змісту буферу обміну в рядку %1, позиція %2: %3</translation>
+    </message>
+    <message>
+        <source>Error while pasting clipboard contents: The root element &lt;ui&gt; is missing.</source>
+        <extracomment>Parsing clipboard contents</extracomment>
+        <translation>Помилка під час вставки змісту буферу обміну. Кореневий елемент &lt;ui&gt; відсутній.</translation>
+    </message>
+</context>
+<context>
+    <name>QDesignerSharedSettings</name>
+    <message>
+        <source>The template path %1 could not be created.</source>
+        <translation>Не вдалось створити шлях до шаблону %1.</translation>
+    </message>
+    <message>
+        <source>An error has been encountered while parsing device profile XML: %1</source>
+        <translation>Трапилась помилка під час розбору XML профілю пристрою: %1</translation>
+    </message>
+</context>
+<context>
+    <name>QDesignerToolWindow</name>
+    <message>
+        <source>Property Editor</source>
+        <translation>Редактор властивостей</translation>
+    </message>
+    <message>
+        <source>Action Editor</source>
+        <translation>Редактор дій</translation>
+    </message>
+    <message>
+        <source>Object Inspector</source>
+        <translation>Інспектор об&apos;єктів</translation>
+    </message>
+    <message>
+        <source>Resource Browser</source>
+        <translation>Оглядач ресурсів</translation>
+    </message>
+    <message>
+        <source>Signal/Slot Editor</source>
+        <translation>Редактор сигналів/слотів</translation>
+    </message>
+    <message>
+        <source>Widget Box</source>
+        <translation>Панель віджетів</translation>
+    </message>
+</context>
+<context>
+    <name>QDesignerWorkbench</name>
+    <message>
+        <source>&amp;File</source>
+        <translation>&amp;Файл</translation>
+    </message>
+    <message>
+        <source>Edit</source>
+        <translation>Правка</translation>
+    </message>
+    <message>
+        <source>F&amp;orm</source>
+        <translation>Ф&amp;орма</translation>
+    </message>
+    <message>
+        <source>Preview in</source>
+        <translation>Попередній перегляд в</translation>
+    </message>
+    <message>
+        <source>&amp;View</source>
+        <translation>&amp;Вид</translation>
+    </message>
+    <message>
+        <source>&amp;Settings</source>
+        <translation>&amp;Налаштування</translation>
+    </message>
+    <message>
+        <source>&amp;Window</source>
+        <translation>В&amp;ікно</translation>
+    </message>
+    <message>
+        <source>&amp;Help</source>
+        <translation>&amp;Довідка</translation>
+    </message>
+    <message>
+        <source>Toolbars</source>
+        <translation>Панелі інструментів</translation>
+    </message>
+    <message>
+        <source>Widget Box</source>
+        <translation>Панель віджетів</translation>
+    </message>
+    <message>
+        <source>Save Forms?</source>
+        <translation>Зберегти форми?</translation>
+    </message>
+    <message numerus="yes">
+        <source>There are %n forms with unsaved changes. Do you want to review these changes before quitting?</source>
+        <translation>
+            <numerusform>Є %n форма з незбереженими змінами. Бажаєте переглянути ці зміни перед виходом?</numerusform>
+            <numerusform>Є %n форми з незбереженими змінами. Бажаєте переглянути ці зміни перед виходом?</numerusform>
+            <numerusform>Є %n форм з незбереженими змінами. Бажаєте переглянути ці зміни перед виходом?</numerusform>
+        </translation>
+    </message>
+    <message>
+        <source>If you do not review your documents, all your changes will be lost.</source>
+        <translation>Якщо ви не переглянете ваші документи, усі ваші зміну будуть втрачені.</translation>
+    </message>
+    <message>
+        <source>Discard Changes</source>
+        <translation>Відхилити зміни</translation>
+    </message>
+    <message>
+        <source>Review Changes</source>
+        <translation>Переглянути зміни</translation>
+    </message>
+    <message>
+        <source>Backup Information</source>
+        <translation>Інформація про резервні копії</translation>
+    </message>
+    <message>
+        <source>The last session of Designer was not terminated correctly. Backup files were left behind. Do you want to load them?</source>
+        <translation>Останній сеанс Qt Designer не був правильно завершений. Залишились резервні копії файлів. Бажаєте їх завантажити?</translation>
+    </message>
+    <message>
+        <source>The file &lt;b&gt;%1&lt;/b&gt; could not be opened.</source>
+        <translation>Не вдалось відкрити файл &lt;b&gt;%1&lt;/b&gt;.</translation>
+    </message>
+    <message>
+        <source>The file &lt;b&gt;%1&lt;/b&gt; is not a valid Designer UI file.</source>
+        <translation>Файл &lt;b&gt;%1&lt;/b&gt; не є правильним файлом UI Qt Designer.</translation>
+    </message>
+</context>
+<context>
+    <name>QFormBuilder</name>
+    <message>
+        <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
+----------
+Empty class name passed to widget factory method
+----------
+Empty class name passed to widget factory method</extracomment>
+        <translation>До %1 було передане пусте ім&apos;я класу (ім&apos;я об&apos;єкта: &apos;%2&apos;).</translation>
+    </message>
+    <message>
+        <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 не зміг створити користувацький віджет класу &apos;%1&apos;; було створено базовий клас &apos;%2&apos;.</translation>
+    </message>
+    <message>
+        <source>QFormBuilder was unable to create a widget of the class &apos;%1&apos;.</source>
+        <translation>QFormBuilder не зміг створити віджет класу &apos;%1&apos;.</translation>
+    </message>
+    <message>
+        <source>The layout type `%1&apos; is not supported.</source>
+        <translation>Тип розташування &apos;%1&apos; не підтримується.</translation>
+    </message>
+    <message>
+        <source>The set-type property %1 could not be read.</source>
+        <translation>Не вдалось прочитати властивість %1 типу &quot;множина&quot;.</translation>
+    </message>
+    <message>
+        <source>The enumeration-type property %1 could not be read.</source>
+        <translation>Не вдалось прочитати властивість %1 типу &quot;перелік&quot;.</translation>
+    </message>
+    <message>
+        <source>Reading properties of the type %1 is not supported yet.</source>
+        <translation>Читання властивостей типу %1 ще не підтримується.</translation>
+    </message>
+    <message>
+        <source>The property %1 could not be written. The type %2 is not supported yet.</source>
+        <translation>Не вдалось записати властивість %1. Тип %2 ще не підтримується.</translation>
+    </message>
+    <message>
+        <source>The enumeration-value &apos;%1&apos; is invalid. The default value &apos;%2&apos; will be used instead.</source>
+        <translation>Неправильне значення &apos;%1&apos; для переліку. Натомість, буде використано типове значення &apos;%2&apos;.</translation>
+    </message>
+    <message>
+        <source>The flag-value &apos;%1&apos; is invalid. Zero will be used instead.</source>
+        <translation>Неправильне значення &apos;%1&apos; для прапорців. Натомість, буде використано нуль.</translation>
+    </message>
+</context>
+<context>
+    <name>QStackedWidgetEventFilter</name>
+    <message>
+        <source>Previous Page</source>
+        <translation>Попередня сторінка</translation>
+    </message>
+    <message>
+        <source>Next Page</source>
+        <translation>Наступна сторінка</translation>
+    </message>
+    <message>
+        <source>Delete</source>
+        <translation>Видалити</translation>
+    </message>
+    <message>
+        <source>Before Current Page</source>
+        <translation>Перед поточною сторінкою</translation>
+    </message>
+    <message>
+        <source>After Current Page</source>
+        <translation>Після поточною сторінкою</translation>
+    </message>
+    <message>
+        <source>Change Page Order...</source>
+        <translation>Змінити порядок сторінок...</translation>
+    </message>
+    <message>
+        <source>Change Page Order</source>
+        <translation>Змінити порядок сторінок</translation>
+    </message>
+    <message>
+        <source>Page %1 of %2</source>
+        <translation>Сторінка %1 з %2</translation>
+    </message>
+    <message>
+        <source>Insert Page</source>
+        <translation>Вставити сторінку</translation>
+    </message>
+</context>
+<context>
+    <name>QStackedWidgetPreviewEventFilter</name>
+    <message>
+        <source>Go to previous page of %1 &apos;%2&apos; (%3/%4).</source>
+        <translation>Перейти до попередньої сторінки з %1 &apos;%2&apos; (%3/%4).</translation>
+    </message>
+    <message>
+        <source>Go to next page of %1 &apos;%2&apos; (%3/%4).</source>
+        <translation>Перейти до наступної сторінки з %1 &apos;%2&apos; (%3/%4).</translation>
+    </message>
+</context>
+<context>
+    <name>QTabWidgetEventFilter</name>
+    <message>
+        <source>Delete</source>
+        <translation>Видалити</translation>
+    </message>
+    <message>
+        <source>Before Current Page</source>
+        <translation>Перед поточною сторінкою</translation>
+    </message>
+    <message>
+        <source>After Current Page</source>
+        <translation>Після поточної сторінки</translation>
+    </message>
+    <message>
+        <source>Page %1 of %2</source>
+        <translation>Сторінка %1 з %2</translation>
+    </message>
+    <message>
+        <source>Insert Page</source>
+        <translation>Вставити сторінку</translation>
+    </message>
+</context>
+<context>
+    <name>QToolBoxHelper</name>
+    <message>
+        <source>Delete Page</source>
+        <translation>Видалити сторінку</translation>
+    </message>
+    <message>
+        <source>Before Current Page</source>
+        <translation>Перед поточною сторінкою</translation>
+    </message>
+    <message>
+        <source>After Current Page</source>
+        <translation>Після поточної сторінки</translation>
+    </message>
+    <message>
+        <source>Change Page Order...</source>
+        <translation>Змінити порядок сторінок...</translation>
+    </message>
+    <message>
+        <source>Change Page Order</source>
+        <translation>Змінити порядок сторінок</translation>
+    </message>
+    <message>
+        <source>Page %1 of %2</source>
+        <translation>Сторінка %1 з %2</translation>
+    </message>
+    <message>
+        <source>Insert Page</source>
+        <translation>Вставити сторінку</translation>
+    </message>
+</context>
+<context>
+    <name>QtBoolEdit</name>
+    <message>
+        <source>True</source>
+        <translation>Істинно</translation>
+    </message>
+    <message>
+        <source>False</source>
+        <translation>Хибно</translation>
+    </message>
+</context>
+<context>
+    <name>QtBoolPropertyManager</name>
+    <message>
+        <source>True</source>
+        <translation>Істинно</translation>
+    </message>
+    <message>
+        <source>False</source>
+        <translation>Хибно</translation>
+    </message>
+</context>
+<context>
+    <name>QtCharEdit</name>
+    <message>
+        <source>Clear Char</source>
+        <translation>Стерти символ</translation>
+    </message>
+</context>
+<context>
+    <name>QtColorEditWidget</name>
+    <message>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>QtColorPropertyManager</name>
+    <message>
+        <source>Red</source>
+        <translation>Червоний</translation>
+    </message>
+    <message>
+        <source>Green</source>
+        <translation>Зелений</translation>
+    </message>
+    <message>
+        <source>Blue</source>
+        <translation>Блакитний</translation>
+    </message>
+    <message>
+        <source>Alpha</source>
+        <translation>Альфа</translation>
+    </message>
+</context>
+<context>
+    <name>QtCursorDatabase</name>
+    <message>
+        <source>Arrow</source>
+        <translation>Стрілка</translation>
+    </message>
+    <message>
+        <source>Up Arrow</source>
+        <translation>Стрілка вгору</translation>
+    </message>
+    <message>
+        <source>Cross</source>
+        <translation>Хрест</translation>
+    </message>
+    <message>
+        <source>Wait</source>
+        <translation>Очікування</translation>
+    </message>
+    <message>
+        <source>IBeam</source>
+        <translation>Текстовий</translation>
+    </message>
+    <message>
+        <source>Size Vertical</source>
+        <translation>Вертикальний розмір</translation>
+    </message>
+    <message>
+        <source>Size Horizontal</source>
+        <translation>Горизонтальний розмір</translation>
+    </message>
+    <message>
+        <source>Size Backslash</source>
+        <translation>Зворотній слеш</translation>
+    </message>
+    <message>
+        <source>Size Slash</source>
+        <translation>Слеш</translation>
+    </message>
+    <message>
+        <source>Size All</source>
+        <translation>В усі сторони</translation>
+    </message>
+    <message>
+        <source>Blank</source>
+        <translation>Пусто</translation>
+    </message>
+    <message>
+        <source>Split Vertical</source>
+        <translation>Розділити вертикально</translation>
+    </message>
+    <message>
+        <source>Split Horizontal</source>
+        <translation>Розділити вертикально</translation>
+    </message>
+    <message>
+        <source>Pointing Hand</source>
+        <translation>Вказівний перст</translation>
+    </message>
+    <message>
+        <source>Forbidden</source>
+        <translation>Заборонено</translation>
+    </message>
+    <message>
+        <source>Open Hand</source>
+        <translation>Відкрита рука</translation>
+    </message>
+    <message>
+        <source>Closed Hand</source>
+        <translation>Закрита рука</translation>
+    </message>
+    <message>
+        <source>What&apos;s This</source>
+        <translation>Що це</translation>
+    </message>
+    <message>
+        <source>Busy</source>
+        <translation>Зайнятий</translation>
+    </message>
+</context>
+<context>
+    <name>QtFontEditWidget</name>
+    <message>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <source>Select Font</source>
+        <translation>Оберіть шрифт</translation>
+    </message>
+</context>
+<context>
+    <name>QtFontPropertyManager</name>
+    <message>
+        <source>Family</source>
+        <translation>Сім&apos;я</translation>
+    </message>
+    <message>
+        <source>Point Size</source>
+        <translation>Розмір точки</translation>
+    </message>
+    <message>
+        <source>Bold</source>
+        <translation>Жирний</translation>
+    </message>
+    <message>
+        <source>Italic</source>
+        <translation>Курсив</translation>
+    </message>
+    <message>
+        <source>Underline</source>
+        <translation>Підкреслений</translation>
+    </message>
+    <message>
+        <source>Strikeout</source>
+        <translation>Перекреслений</translation>
+    </message>
+    <message>
+        <source>Kerning</source>
+        <translation>Кернінг</translation>
+    </message>
+</context>
+<context>
+    <name>QtGradientDialog</name>
+    <message>
+        <source>Edit Gradient</source>
+        <translation>Редагувати градієнт</translation>
+    </message>
+</context>
+<context>
+    <name>QtGradientEditor</name>
+    <message>
+        <source>Form</source>
+        <translation>Форма</translation>
+    </message>
+    <message>
+        <source>Gradient Editor</source>
+        <translation>Редактор градієнту</translation>
+    </message>
+    <message>
+        <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>В цій області відображається попередній перегляд градієнту, що редагується. Вона також дозволяє за допомогою &quot;drag &amp; drop&quot; редагувати специфічні до типу градієнта параметри, такі як: початкова та кінцева точки, радіус та ін.</translation>
+    </message>
+    <message>
+        <source>1</source>
+        <translation>1</translation>
+    </message>
+    <message>
+        <source>2</source>
+        <translation>2</translation>
+    </message>
+    <message>
+        <source>3</source>
+        <translation>3</translation>
+    </message>
+    <message>
+        <source>4</source>
+        <translation>4</translation>
+    </message>
+    <message>
+        <source>5</source>
+        <translation>5</translation>
+    </message>
+    <message>
+        <source>Gradient Stops Editor</source>
+        <translation>Редактор точок градієнту</translation>
+    </message>
+    <message>
+        <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>Ця область дозволяє вам редагувати точки градієнту. Подвійне клацання на існуючій точці створює її дублікат. Подвійне клацання поза межами існуючої точки створює нову точку. Перетягніть точку мишею, щоб змінити її позицію. Використовуйте праву кнопку миші, щоб отримати контекстне меню з додатковими діями.</translation>
+    </message>
+    <message>
+        <source>Zoom</source>
+        <translation>Масштаб</translation>
+    </message>
+    <message>
+        <source>Reset Zoom</source>
+        <translation>Скинути</translation>
+    </message>
+    <message>
+        <source>Position</source>
+        <translation>Положення</translation>
+    </message>
+    <message>
+        <source>Hue</source>
+        <translation>Відтінок</translation>
+    </message>
+    <message>
+        <source>H</source>
+        <translation>H</translation>
+    </message>
+    <message>
+        <source>Saturation</source>
+        <translation>Насиченість</translation>
+    </message>
+    <message>
+        <source>S</source>
+        <translation>S</translation>
+    </message>
+    <message>
+        <source>Sat</source>
+        <translation>Насиченість</translation>
+    </message>
+    <message>
+        <source>Value</source>
+        <translation>Значення</translation>
+    </message>
+    <message>
+        <source>V</source>
+        <translation>V</translation>
+    </message>
+    <message>
+        <source>Val</source>
+        <translation>Значення</translation>
+    </message>
+    <message>
+        <source>Alpha</source>
+        <translation>Альфа</translation>
+    </message>
+    <message>
+        <source>A</source>
+        <translation>A</translation>
+    </message>
+    <message>
+        <source>Type</source>
+        <translation>Тип</translation>
+    </message>
+    <message>
+        <source>Spread</source>
+        <translation>Заливка</translation>
+    </message>
+    <message>
+        <source>Color</source>
+        <translation>Колір</translation>
+    </message>
+    <message>
+        <source>Current stop&apos;s color</source>
+        <translation>Колір поточної точки</translation>
+    </message>
+    <message>
+        <source>Show HSV specification</source>
+        <translation>Показати у вигляді HSV</translation>
+    </message>
+    <message>
+        <source>HSV</source>
+        <translation>HSV</translation>
+    </message>
+    <message>
+        <source>Show RGB specification</source>
+        <translation>Показати у вигляді RGB</translation>
+    </message>
+    <message>
+        <source>RGB</source>
+        <translation>RGB</translation>
+    </message>
+    <message>
+        <source>Current stop&apos;s position</source>
+        <translation>Позиція поточної точки</translation>
+    </message>
+    <message>
+        <source>%</source>
+        <translation>%</translation>
+    </message>
+    <message>
+        <source>Zoom In</source>
+        <translation>Збільшити</translation>
+    </message>
+    <message>
+        <source>Zoom Out</source>
+        <translation>Зменшити</translation>
+    </message>
+    <message>
+        <source>Toggle details extension</source>
+        <translation>Показати/приховати деталі</translation>
+    </message>
+    <message>
+        <source>&gt;</source>
+        <translation>&gt;</translation>
+    </message>
+    <message>
+        <source>Linear Type</source>
+        <translation>Лінійний тип</translation>
+    </message>
+    <message>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <source>Radial Type</source>
+        <translation>Радіальний тип</translation>
+    </message>
+    <message>
+        <source>Conical Type</source>
+        <translation>Конічний тип</translation>
+    </message>
+    <message>
+        <source>Pad Spread</source>
+        <translation>Рівномірна заливка</translation>
+    </message>
+    <message>
+        <source>Repeat Spread</source>
+        <translation>Повторна заливка</translation>
+    </message>
+    <message>
+        <source>Reflect Spread</source>
+        <translation>Дзеркальна заливка</translation>
+    </message>
+    <message>
+        <source>Start X</source>
+        <translation>X початку</translation>
+    </message>
+    <message>
+        <source>Start Y</source>
+        <translation>Y початку</translation>
+    </message>
+    <message>
+        <source>Final X</source>
+        <translation>X кінця</translation>
+    </message>
+    <message>
+        <source>Final Y</source>
+        <translation>Y кінця</translation>
+    </message>
+    <message>
+        <source>Central X</source>
+        <translation>X центру</translation>
+    </message>
+    <message>
+        <source>Central Y</source>
+        <translation>Y центру</translation>
+    </message>
+    <message>
+        <source>Focal X</source>
+        <translation>X фокусу</translation>
+    </message>
+    <message>
+        <source>Focal Y</source>
+        <translation>Y фокусу</translation>
+    </message>
+    <message>
+        <source>Radius</source>
+        <translation>Радіус</translation>
+    </message>
+    <message>
+        <source>Angle</source>
+        <translation>Кут</translation>
+    </message>
+    <message>
+        <source>Linear</source>
+        <translation>Лінійний</translation>
+    </message>
+    <message>
+        <source>Radial</source>
+        <translation>Радіальний</translation>
+    </message>
+    <message>
+        <source>Conical</source>
+        <translation>Конічний</translation>
+    </message>
+    <message>
+        <source>Pad</source>
+        <translation>Рівномірна</translation>
+    </message>
+    <message>
+        <source>Repeat</source>
+        <translation>Повторна</translation>
+    </message>
+    <message>
+        <source>Reflect</source>
+        <translation>Дзеркальна</translation>
+    </message>
+</context>
+<context>
+    <name>QtGradientStopsWidget</name>
+    <message>
+        <source>New Stop</source>
+        <translation>Нова точка</translation>
+    </message>
+    <message>
+        <source>Delete</source>
+        <translation>Видалити</translation>
+    </message>
+    <message>
+        <source>Flip All</source>
+        <translation>Відобразити дзеркально</translation>
+    </message>
+    <message>
+        <source>Select All</source>
+        <translation>Виділити все</translation>
+    </message>
+    <message>
+        <source>Zoom In</source>
+        <translation>Збільшити</translation>
+    </message>
+    <message>
+        <source>Zoom Out</source>
+        <translation>Зменшити</translation>
+    </message>
+    <message>
+        <source>Reset Zoom</source>
+        <translation>Скинути</translation>
+    </message>
+</context>
+<context>
+    <name>QtGradientView</name>
+    <message>
+        <source>Gradient View</source>
+        <translation>Перегляд градієнту</translation>
+    </message>
+    <message>
+        <source>New...</source>
+        <translation>Новий...</translation>
+    </message>
+    <message>
+        <source>Edit...</source>
+        <translation>Редагувати...</translation>
+    </message>
+    <message>
+        <source>Rename</source>
+        <translation>Перейменувати</translation>
+    </message>
+    <message>
+        <source>Remove</source>
+        <translation>Видалити</translation>
+    </message>
+    <message>
+        <source>Grad</source>
+        <translation>Градієнт</translation>
+    </message>
+    <message>
+        <source>Remove Gradient</source>
+        <translation>Видалити градієнт</translation>
+    </message>
+    <message>
+        <source>Are you sure you want to remove the selected gradient?</source>
+        <translation>Ви впевнені, що бажаєте видалити виділений градієнт?</translation>
+    </message>
+</context>
+<context>
+    <name>QtGradientViewDialog</name>
+    <message>
+        <source>Select Gradient</source>
+        <translation>Обрати градієнт</translation>
+    </message>
+</context>
+<context>
+    <name>QtKeySequenceEdit</name>
+    <message>
+        <source>Clear Shortcut</source>
+        <translation>Видалити поєднання клавіш</translation>
+    </message>
+</context>
+<context>
+    <name>QtLocalePropertyManager</name>
+    <message>
+        <source>&lt;Invalid&gt;</source>
+        <translation>&lt;Неправильний&gt;</translation>
+    </message>
+    <message>
+        <source>%1, %2</source>
+        <translation>%1, %2</translation>
+    </message>
+    <message>
+        <source>Language</source>
+        <translation>Мова</translation>
+    </message>
+    <message>
+        <source>Country</source>
+        <translation>Країна</translation>
+    </message>
+</context>
+<context>
+    <name>QtPointFPropertyManager</name>
+    <message>
+        <source>(%1, %2)</source>
+        <translation>(%1, %2)</translation>
+    </message>
+    <message>
+        <source>X</source>
+        <translation>X</translation>
+    </message>
+    <message>
+        <source>Y</source>
+        <translation>Y</translation>
+    </message>
+</context>
+<context>
+    <name>QtPointPropertyManager</name>
+    <message>
+        <source>(%1, %2)</source>
+        <translation>(%1, %2)</translation>
+    </message>
+    <message>
+        <source>X</source>
+        <translation>X</translation>
+    </message>
+    <message>
+        <source>Y</source>
+        <translation>Y</translation>
+    </message>
+</context>
+<context>
+    <name>QtPropertyBrowserUtils</name>
+    <message>
+        <source>[%1, %2, %3] (%4)</source>
+        <translation>[%1, %2, %3] (%4)</translation>
+    </message>
+    <message>
+        <source>[%1, %2]</source>
+        <translation>[%1, %2]</translation>
+    </message>
+</context>
+<context>
+    <name>QtRectFPropertyManager</name>
+    <message>
+        <source>[(%1, %2), %3 x %4]</source>
+        <translation>[(%1, %2), %3 x %4]</translation>
+    </message>
+    <message>
+        <source>X</source>
+        <translation>X</translation>
+    </message>
+    <message>
+        <source>Y</source>
+        <translation>Y</translation>
+    </message>
+    <message>
+        <source>Width</source>
+        <translation>Ширина</translation>
+    </message>
+    <message>
+        <source>Height</source>
+        <translation>Висота</translation>
+    </message>
+</context>
+<context>
+    <name>QtRectPropertyManager</name>
+    <message>
+        <source>[(%1, %2), %3 x %4]</source>
+        <translation>[(%1, %2), %3 x %4]</translation>
+    </message>
+    <message>
+        <source>X</source>
+        <translation>X</translation>
+    </message>
+    <message>
+        <source>Y</source>
+        <translation>Y</translation>
+    </message>
+    <message>
+        <source>Width</source>
+        <translation>Ширина</translation>
+    </message>
+    <message>
+        <source>Height</source>
+        <translation>Висота</translation>
+    </message>
+</context>
+<context>
+    <name>QtResourceEditorDialog</name>
+    <message>
+        <source>Dialog</source>
+        <translation>Діалог</translation>
+    </message>
+    <message>
+        <source>New File</source>
+        <translation>Новий файл</translation>
+    </message>
+    <message>
+        <source>N</source>
+        <translation>Н</translation>
+    </message>
+    <message>
+        <source>Remove File</source>
+        <translation>Видалити файл</translation>
+    </message>
+    <message>
+        <source>R</source>
+        <translation>В</translation>
+    </message>
+    <message>
+        <source>I</source>
+        <translation>Ф</translation>
+    </message>
+    <message>
+        <source>New Resource</source>
+        <translation>Новий ресурс</translation>
+    </message>
+    <message>
+        <source>A</source>
+        <translation>Д</translation>
+    </message>
+    <message>
+        <source>Remove Resource or File</source>
+        <translation>Видалити ресурс або файл</translation>
+    </message>
+    <message>
+        <source>%1 already exists.
+Do you want to replace it?</source>
+        <translation>%1 вже існує.
+Бажаєте замінити його?</translation>
+    </message>
+    <message>
+        <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>Не схоже, що файл є файлом ресурсів, елемент &apos;%1&apos; було знайдено, замість &apos;%2&apos;.</translation>
+    </message>
+    <message>
+        <source>%1 [read-only]</source>
+        <translation>%1 [лише для читання]</translation>
+    </message>
+    <message>
+        <source>%1 [missing]</source>
+        <translation>%1 [відсутній]</translation>
+    </message>
+    <message>
+        <source>&lt;no prefix&gt;</source>
+        <translation>&lt;без префіксу&gt;</translation>
+    </message>
+    <message>
+        <source>New Resource File</source>
+        <translation>Новий файл ресурсів</translation>
+    </message>
+    <message>
+        <source>Resource files (*.qrc)</source>
+        <translation>Файли ресурсів (*.qrc)</translation>
+    </message>
+    <message>
+        <source>Import Resource File</source>
+        <translation>Імпортувати файл ресурсів</translation>
+    </message>
+    <message>
+        <source>newPrefix</source>
+        <translation></translation>
+    </message>
+    <message>
+        <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;Попередження:&lt;/b&gt; Файл&lt;/p&gt;&lt;p&gt;%1&lt;/p&gt;&lt;p&gt;знаходиться поза межами батьківської теки поточного файлу ресурсів.&lt;/p&gt;</translation>
+    </message>
+    <message>
+        <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;Щоб вирішити цю проблему, натисніть:&lt;/p&gt;&lt;table&gt;&lt;tr&gt;&lt;th align=&quot;left&quot;&gt;Копіювати&lt;/th&gt;&lt;td&gt;, щоб скопіювати файл до батьківської теки файлу ресурсів.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th align=&quot;left&quot;&gt;Копіювати як...&lt;/th&gt;&lt;td&gt;, щоб скопіювати файл в підтеку батьківської теки файлу ресурсів.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th align=&quot;left&quot;&gt;Залишити&lt;/th&gt;&lt;td&gt;, щоб використовувати поточне розміщення.&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</translation>
+    </message>
+    <message>
+        <source>Add Files</source>
+        <translation>Додати файли</translation>
+    </message>
+    <message>
+        <source>Incorrect Path</source>
+        <translation>Неправильний шлях</translation>
+    </message>
+    <message>
+        <source>Copy</source>
+        <translation>Копіювати</translation>
+    </message>
+    <message>
+        <source>Copy As...</source>
+        <translation>Копіювати як...</translation>
+    </message>
+    <message>
+        <source>Keep</source>
+        <translation>Залишити</translation>
+    </message>
+    <message>
+        <source>Skip</source>
+        <translation>Пропустити</translation>
+    </message>
+    <message>
+        <source>Clone Prefix</source>
+        <translation>Префікс клонування</translation>
+    </message>
+    <message>
+        <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>Введіть суфікс, який ви хочете додавати до імен клонованих файлів.
+Це може бути, наприклад, мовне розширення, як &quot;_uk&quot;.</translation>
+    </message>
+    <message>
+        <source>Copy As</source>
+        <translation>Копіювати як</translation>
+    </message>
+    <message>
+        <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;Обраний файл&lt;/p&gt;&lt;p&gt;%1&lt;/p&gt;&lt;p&gt;знаходиться поза межами батьківської теки поточного файлу ресурсів.&lt;/p&gt;&lt;p&gt;%2&lt;/p&gt;Будь ласка, оберіть інший шлях всередині цієї теки.&lt;p&gt;&lt;p&gt;</translation>
+    </message>
+    <message>
+        <source>Could not overwrite %1.</source>
+        <translation>Не вдалось перезаписати %1.</translation>
+    </message>
+    <message>
+        <source>Could not copy
+%1
+to
+%2</source>
+        <translation>Не вдалось скопіювати
+%1
+до
+%2</translation>
+    </message>
+    <message>
+        <source>A parse error occurred at line %1, column %2 of %3:
+%4</source>
+        <translation>Сталась помилка розбору в рядку %1, позиція %2 з %3
+%4</translation>
+    </message>
+    <message>
+        <source>Save Resource File</source>
+        <translation>Зберегти файл ресурсів</translation>
+    </message>
+    <message>
+        <source>Could not write %1: %2</source>
+        <translation>Не вдалось записати %1: %2</translation>
+    </message>
+    <message>
+        <source>Edit Resources</source>
+        <translation>Редагування ресурсів</translation>
+    </message>
+    <message>
+        <source>New...</source>
+        <translation>Новий...</translation>
+    </message>
+    <message>
+        <source>Open...</source>
+        <translation>Відкрити...</translation>
+    </message>
+    <message>
+        <source>Open Resource File</source>
+        <translation>Відкрити файл ресурсів</translation>
+    </message>
+    <message>
+        <source>Remove</source>
+        <translation>Видалити</translation>
+    </message>
+    <message>
+        <source>Move Up</source>
+        <translation>Пересунути вгору</translation>
+    </message>
+    <message>
+        <source>Move Down</source>
+        <translation>Пересунути вниз</translation>
+    </message>
+    <message>
+        <source>Add Prefix</source>
+        <translation>Додати префікс</translation>
+    </message>
+    <message>
+        <source>Add Files...</source>
+        <translation>Додати файли...</translation>
+    </message>
+    <message>
+        <source>Change Prefix</source>
+        <translation>Змінити префікс</translation>
+    </message>
+    <message>
+        <source>Change Language</source>
+        <translation>Змінити мову</translation>
+    </message>
+    <message>
+        <source>Change Alias</source>
+        <translation>Додати псевдонім</translation>
+    </message>
+    <message>
+        <source>Clone Prefix...</source>
+        <translation>Префікс клонування...</translation>
+    </message>
+    <message>
+        <source>Prefix / Path</source>
+        <translation>Префікс / Шлях</translation>
+    </message>
+    <message>
+        <source>Language / Alias</source>
+        <translation>Мова / Псевдонім</translation>
+    </message>
+    <message>
+        <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;Попередження:&lt;/b&gt; Під час перезавантаження ресурсів виникли проблеми:&lt;/p&gt;&lt;pre&gt;%1&lt;/pre&gt;&lt;/html&gt;</translation>
+    </message>
+    <message>
+        <source>Resource Warning</source>
+        <translation>Попередження про ресурси</translation>
+    </message>
+</context>
+<context>
+    <name>QtResourceView</name>
+    <message>
+        <source>Size: %1 x %2
+%3</source>
+        <translation>Розмір: %1 x %2
+%3</translation>
+    </message>
+    <message>
+        <source>Edit Resources...</source>
+        <translation>Редагувати ресурси...</translation>
+    </message>
+    <message>
+        <source>Reload</source>
+        <translation>Перезавантажити</translation>
+    </message>
+    <message>
+        <source>Copy Path</source>
+        <translation>Копіювати шлях</translation>
+    </message>
+</context>
+<context>
+    <name>QtResourceViewDialog</name>
+    <message>
+        <source>Select Resource</source>
+        <translation>Оберіть ресурс</translation>
+    </message>
+</context>
+<context>
+    <name>QtSizeFPropertyManager</name>
+    <message>
+        <source>%1 x %2</source>
+        <translation>%1 x %2</translation>
+    </message>
+    <message>
+        <source>Width</source>
+        <translation>Ширина</translation>
+    </message>
+    <message>
+        <source>Height</source>
+        <translation>Висота</translation>
+    </message>
+</context>
+<context>
+    <name>QtSizePolicyPropertyManager</name>
+    <message>
+        <source>&lt;Invalid&gt;</source>
+        <translation>&lt;Неправильний&gt;</translation>
+    </message>
+    <message>
+        <source>[%1, %2, %3, %4]</source>
+        <translation>[%1, %2, %3, %4]</translation>
+    </message>
+    <message>
+        <source>Horizontal Policy</source>
+        <translation>Горизонтальна політика</translation>
+    </message>
+    <message>
+        <source>Vertical Policy</source>
+        <translation>Вертикальна політика</translation>
+    </message>
+    <message>
+        <source>Horizontal Stretch</source>
+        <translation>Горизонтальне розтягування</translation>
+    </message>
+    <message>
+        <source>Vertical Stretch</source>
+        <translation>Вертикальне розтягування</translation>
+    </message>
+</context>
+<context>
+    <name>QtSizePropertyManager</name>
+    <message>
+        <source>%1 x %2</source>
+        <translation>%1 x %2</translation>
+    </message>
+    <message>
+        <source>Width</source>
+        <translation>Ширина</translation>
+    </message>
+    <message>
+        <source>Height</source>
+        <translation>Висота</translation>
+    </message>
+</context>
+<context>
+    <name>QtToolBarDialog</name>
+    <message>
+        <source>Customize Toolbars</source>
+        <translation>Налаштувати панелі інструментів</translation>
+    </message>
+    <message>
+        <source>1</source>
+        <translation>1</translation>
+    </message>
+    <message>
+        <source>Actions</source>
+        <translation>Дії</translation>
+    </message>
+    <message>
+        <source>Toolbars</source>
+        <translation>Панелі інструментів</translation>
+    </message>
+    <message>
+        <source>Add new toolbar</source>
+        <translation>Додати нову панель інструментів</translation>
+    </message>
+    <message>
+        <source>New</source>
+        <translation>Нова</translation>
+    </message>
+    <message>
+        <source>Remove selected toolbar</source>
+        <translation>Видалити виділену панель інструментів</translation>
+    </message>
+    <message>
+        <source>Remove</source>
+        <translation>Видалити</translation>
+    </message>
+    <message>
+        <source>Rename toolbar</source>
+        <translation>Перейменувати панель інструментів</translation>
+    </message>
+    <message>
+        <source>Rename</source>
+        <translation>Перейменувати</translation>
+    </message>
+    <message>
+        <source>Move action up</source>
+        <translation>Пересунути дію вгору</translation>
+    </message>
+    <message>
+        <source>Up</source>
+        <translation>Вгору</translation>
+    </message>
+    <message>
+        <source>Remove action from toolbar</source>
+        <translation>Видалити дію з панелі інструментів</translation>
+    </message>
+    <message>
+        <source>&lt;-</source>
+        <translation>&lt;-</translation>
+    </message>
+    <message>
+        <source>Add action to toolbar</source>
+        <translation>Додати дію до панелі інструментів</translation>
+    </message>
+    <message>
+        <source>-&gt;</source>
+        <translation>-&gt;</translation>
+    </message>
+    <message>
+        <source>Move action down</source>
+        <translation>Пересунути дію вниз</translation>
+    </message>
+    <message>
+        <source>Down</source>
+        <translation>Вниз</translation>
+    </message>
+    <message>
+        <source>Current Toolbar Actions</source>
+        <translation>Поточні дії панелі інструментів</translation>
+    </message>
+    <message>
+        <source>Custom Toolbar</source>
+        <translation>Користувацька панель інструментів</translation>
+    </message>
+    <message>
+        <source>&lt; S E P A R A T O R &gt;</source>
+        <translation>&lt; Р О З Д І Л Ю В А Ч &gt;</translation>
+    </message>
+</context>
+<context>
+    <name>QtTreePropertyBrowser</name>
+    <message>
+        <source>Property</source>
+        <translation>Властивість</translation>
+    </message>
+    <message>
+        <source>Value</source>
+        <translation>Значення</translation>
+    </message>
+</context>
+<context>
+    <name>SaveFormAsTemplate</name>
+    <message>
+        <source>Save Form As Template</source>
+        <translation>Зберегти форму як шаблон</translation>
+    </message>
+    <message>
+        <source>&amp;Name:</source>
+        <translation>&amp;Назва:</translation>
+    </message>
+    <message>
+        <source>&amp;Category:</source>
+        <translation>&amp;Категорія:</translation>
+    </message>
+    <message>
+        <source>Add path...</source>
+        <translation>Додати шлях...</translation>
+    </message>
+    <message>
+        <source>Template Exists</source>
+        <translation>Шаблон існує</translation>
+    </message>
+    <message>
+        <source>A template with the name %1 already exists.
+Do you want overwrite the template?</source>
+        <translation>Шаблон з іменем %1 вже існує.
+Бажаєте перезаписати його?</translation>
+    </message>
+    <message>
+        <source>Overwrite Template</source>
+        <translation>Перезаписати шаблон</translation>
+    </message>
+    <message>
+        <source>Open Error</source>
+        <translation>Помилка відкриття</translation>
+    </message>
+    <message>
+        <source>There was an error opening template %1 for writing. Reason: %2</source>
+        <translation>Під час відкриття шаблону %1 для запису сталася помилка. Причина: %2</translation>
+    </message>
+    <message>
+        <source>Write Error</source>
+        <translation>Помилка запису</translation>
+    </message>
+    <message>
+        <source>There was an error writing the template %1 to disk. Reason: %2</source>
+        <translation>Під час запису шаблону %1 на диск сталася помилка. Причина: %2</translation>
+    </message>
+    <message>
+        <source>Pick a directory to save templates in</source>
+        <translation>Виберіть теку для збереження шаблонів</translation>
+    </message>
+</context>
+<context>
+    <name>ScriptErrorDialog</name>
+    <message>
+        <source>An error occurred while running the scripts for &quot;%1&quot;:
+</source>
+        <translation>Під час виконання скриптів для &quot;%1&quot; сталася помилка:
+</translation>
+    </message>
+</context>
+<context>
+    <name>SelectSignalDialog</name>
+    <message>
+        <source>Go to slot</source>
+        <translation>Перейти до слота</translation>
+    </message>
+    <message>
+        <source>Select signal</source>
+        <translation>Оберіть сигнал</translation>
+    </message>
+    <message>
+        <source>signal</source>
+        <translation>сигнал</translation>
+    </message>
+    <message>
+        <source>class</source>
+        <translation>клас</translation>
+    </message>
+</context>
+<context>
+    <name>SignalSlotConnection</name>
+    <message>
+        <source>SENDER(%1), SIGNAL(%2), RECEIVER(%3), SLOT(%4)</source>
+        <translation>НАДСИЛАЧ(%1), СИГНАЛ(%2), ОТРИМУВАЧ(%3), СЛОТ(%4)</translation>
+    </message>
+</context>
+<context>
+    <name>SignalSlotDialogClass</name>
+    <message>
+        <source>Signals and slots</source>
+        <translation>Сигнали та слоти</translation>
+    </message>
+    <message>
+        <source>Slots</source>
+        <translation>Слоти</translation>
+    </message>
+    <message>
+        <source>Add</source>
+        <translation>Додати</translation>
+    </message>
+    <message>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <source>Delete</source>
+        <translation>Видалити</translation>
+    </message>
+    <message>
+        <source>Signals</source>
+        <translation>Сигнали</translation>
+    </message>
+</context>
+<context>
+    <name>Spacer</name>
+    <message>
+        <source>Horizontal Spacer &apos;%1&apos;, %2 x %3</source>
+        <translation>Горизонтальний роздільник &apos;%1&apos;, %2 x %3</translation>
+    </message>
+    <message>
+        <source>Vertical Spacer &apos;%1&apos;, %2 x %3</source>
+        <translation>Вертикальний роздільник &apos;%1&apos;, %2 x %3</translation>
+    </message>
+</context>
+<context>
+    <name>TemplateOptionsPage</name>
+    <message>
+        <source>Template Paths</source>
+        <extracomment>Tab in preferences dialog</extracomment>
+        <translation>Шляхи до шаблонів</translation>
+    </message>
+</context>
+<context>
+    <name>ToolBarManager</name>
+    <message>
+        <source>Configure Toolbars...</source>
+        <translation>Налаштувати панелі інструментів...</translation>
+    </message>
+    <message>
+        <source>Window</source>
+        <translation>Вікно</translation>
+    </message>
+    <message>
+        <source>Help</source>
+        <translation>Довідка</translation>
+    </message>
+    <message>
+        <source>Style</source>
+        <translation>Стиль</translation>
+    </message>
+    <message>
+        <source>Dock views</source>
+        <translation>Прикріплюванні панелі</translation>
+    </message>
+    <message>
+        <source>File</source>
+        <translation>Файл</translation>
+    </message>
+    <message>
+        <source>Edit</source>
+        <translation>Правка</translation>
+    </message>
+    <message>
+        <source>Tools</source>
+        <translation>Інструменти</translation>
+    </message>
+    <message>
+        <source>Form</source>
+        <translation>Форма</translation>
+    </message>
+    <message>
+        <source>Toolbars</source>
+        <translation>Панелі інструментів</translation>
+    </message>
+</context>
+<context>
+    <name>VersionDialog</name>
+    <message>
+        <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;Версія %2</translation>
+    </message>
+    <message>
+        <source>Qt Designer</source>
+        <translation>Qt Designer</translation>
+    </message>
+    <message>
+        <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 - це дизайнер графічного інтерфейсу користувача для програм Qt.&lt;br/&gt;</translation>
+    </message>
+    <message>
+        <source>%1&lt;br/&gt;Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).</source>
+        <translation>%1&lt;br/&gt;Copyright (C) 2010 Корпорація Nokia та/або її дочірні компанії.</translation>
+    </message>
+</context>
+<context>
+    <name>VideoPlayerTaskMenu</name>
+    <message>
+        <source>Available Mime Types</source>
+        <translation>Доступні типи MIME</translation>
+    </message>
+    <message>
+        <source>Display supported mime types...</source>
+        <translation>Показати підтримувані типи MIME...</translation>
+    </message>
+    <message>
+        <source>Load...</source>
+        <translation>Завантажити...</translation>
+    </message>
+    <message>
+        <source>Play</source>
+        <translation>Грати</translation>
+    </message>
+    <message>
+        <source>Pause</source>
+        <translation>Пауза</translation>
+    </message>
+    <message>
+        <source>Stop</source>
+        <translation>Зупинити</translation>
+    </message>
+    <message>
+        <source>Choose Video Player Media Source</source>
+        <translation>Оберіть джерело медіа для відеопрогравача</translation>
+    </message>
+    <message>
+        <source>An error has occurred in &apos;%1&apos;: %2</source>
+        <translation>Сталась помилка в &apos;%1&apos;: %2</translation>
+    </message>
+    <message>
+        <source>Video Player Error</source>
+        <translation>Помилка відеопрогравача</translation>
+    </message>
+</context>
+<context>
+    <name>WidgetDataBase</name>
+    <message>
+        <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>Цей файл містить користувацький віджет &apos;%1&apos;, чий базовий клас (%2) відрізняється від поточного елементу в базі даних віджетів (%3). Базу даних віджетів залишено без змін.</translation>
+    </message>
+</context>
+<context>
+    <name>qdesigner_internal::ActionEditor</name>
+    <message>
+        <source>New...</source>
+        <translation>Новий...</translation>
+    </message>
+    <message>
+        <source>Edit...</source>
+        <translation>Редагувати...</translation>
+    </message>
+    <message>
+        <source>Go to slot...</source>
+        <translation>Перейти до слота...</translation>
+    </message>
+    <message>
+        <source>Copy</source>
+        <translation>Копіювати</translation>
+    </message>
+    <message>
+        <source>Cut</source>
+        <translation>Вирізати</translation>
+    </message>
+    <message>
+        <source>Paste</source>
+        <translation>Вставити</translation>
+    </message>
+    <message>
+        <source>Select all</source>
+        <translation>Виділити все</translation>
+    </message>
+    <message>
+        <source>Delete</source>
+        <translation>Видалити</translation>
+    </message>
+    <message>
+        <source>Actions</source>
+        <translation>Дії</translation>
+    </message>
+    <message>
+        <source>Configure Action Editor</source>
+        <translation>Налаштувати редактор дій</translation>
+    </message>
+    <message>
+        <source>Icon View</source>
+        <translation>Значками</translation>
+    </message>
+    <message>
+        <source>Detailed View</source>
+        <translation>Детально</translation>
+    </message>
+    <message>
+        <source>New action</source>
+        <translation>Нова дія</translation>
+    </message>
+    <message>
+        <source>Edit action</source>
+        <translation>Редагувати дію</translation>
+    </message>
+    <message>
+        <source>Remove action &apos;%1&apos;</source>
+        <translation>Видалити дію &apos;%1&apos;</translation>
+    </message>
+    <message>
+        <source>Remove actions</source>
+        <translation>Видалити дії</translation>
+    </message>
+    <message>
+        <source>Used In</source>
+        <translation>Використовується в</translation>
+    </message>
+</context>
+<context>
+    <name>qdesigner_internal::ActionModel</name>
+    <message>
+        <source>Name</source>
+        <translation>Назва</translation>
+    </message>
+    <message>
+        <source>Used</source>
+        <translation>Використовується</translation>
+    </message>
+    <message>
+        <source>Text</source>
+        <translation>Текст</translation>
+    </message>
+    <message>
+        <source>Shortcut</source>
+        <translation>Поєднання клавіш</translation>
+    </message>
+    <message>
+        <source>Checkable</source>
+        <translation>Прапорець</translation>
+    </message>
+    <message>
+        <source>ToolTip</source>
+        <translation>Спливаюча підказка</translation>
+    </message>
+</context>
+<context>
+    <name>qdesigner_internal::BrushManagerProxy</name>
+    <message>
+        <source>The element &apos;%1&apos; is missing the required attribute &apos;%2&apos;.</source>
+        <translation>У елемента &apos;%1&apos; відсутній обов&apos;язковий атрибут &apos;%2&apos;.</translation>
+    </message>
+    <message>
+        <source>Empty brush name encountered.</source>
+        <translation>Знайдено порожня назва пензля.</translation>
+    </message>
+    <message>
+        <source>An unexpected element &apos;%1&apos; was encountered.</source>
+        <translation>Знайдено неочікуваний елемент &apos;%1&apos;.</translation>
+    </message>
+    <message>
+        <source>An error occurred when reading the brush definition file &apos;%1&apos; at line line %2, column %3: %4</source>
+        <translation>Під час читання файлу опису пензля &apos;%1&apos; сталася помилка в рядку %2, позиція %3: %4</translation>
+    </message>
+    <message>
+        <source>An error occurred when reading the resource file &apos;%1&apos; at line %2, column %3: %4</source>
+        <translation>Під час читання файлу ресурсів &apos;%1&apos; сталася помилка в рядку %2, позиція %3: %4</translation>
+    </message>
+</context>
+<context>
+    <name>qdesigner_internal::BuddyEditor</name>
+    <message>
+        <source>Add buddy</source>
+        <translation>Додати прив&apos;язку</translation>
+    </message>
+    <message>
+        <source>Remove buddies</source>
+        <translation>Видалити прив&apos;язки</translation>
+    </message>
+    <message numerus="yes">
+        <source>Remove %n buddies</source>
+        <translation>
+            <numerusform>Видалити %n прив&apos;язку</numerusform>
+            <numerusform>Видалити %n прив&apos;язки</numerusform>
+            <numerusform>Видалити %n прив&apos;язок</numerusform>
+        </translation>
+    </message>
+    <message numerus="yes">
+        <source>Add %n buddies</source>
+        <translation>
+            <numerusform>Додати %n прив&apos;язку</numerusform>
+            <numerusform>Додати %n прив&apos;язки</numerusform>
+            <numerusform>Додати %n прив&apos;язок</numerusform>
+        </translation>
+    </message>
+    <message>
+        <source>Set automatically</source>
+        <translation>Встановити автоматично</translation>
+    </message>
+</context>
+<context>
+    <name>qdesigner_internal::BuddyEditorPlugin</name>
+    <message>
+        <source>Edit Buddies</source>
+        <translation>Редагувати прив&apos;язки</translation>
+    </message>
+</context>
+<context>
+    <name>qdesigner_internal::BuddyEditorTool</name>
+    <message>
+        <source>Edit Buddies</source>
+        <translation>Редагувати прив&apos;язки</translation>
+    </message>
+</context>
+<context>
+    <name>qdesigner_internal::ButtonGroupMenu</name>
+    <message>
+        <source>Select members</source>
+        <translation>Обрати членів</translation>
+    </message>
+    <message>
+        <source>Break</source>
+        <translation>Розбити</translation>
+    </message>
+</context>
+<context>
+    <name>qdesigner_internal::ButtonTaskMenu</name>
+    <message>
+        <source>Assign to button group</source>
+        <translation>Призначити до групи кнопок</translation>
+    </message>
+    <message>
+        <source>Button group</source>
+        <translation>Група кнопок</translation>
+    </message>
+    <message>
+        <source>New button group</source>
+        <translation>Нова група кнопок</translation>
+    </message>
+    <message>
+        <source>Change text...</source>
+        <translation>Змінити текст...</translation>
+    </message>
+    <message>
+        <source>None</source>
+        <translation>Немає</translation>
+    </message>
+    <message>
+        <source>Button group &apos;%1&apos;</source>
+        <translation>Група кнопок &apos;%1&apos;</translation>
+    </message>
+</context>
+<context>
+    <name>qdesigner_internal::CodeDialog</name>
+    <message>
+        <source>Save...</source>
+        <translation>Зберегти...</translation>
+    </message>
+    <message>
+        <source>Copy All</source>
+        <translation>Копіювати все</translation>
+    </message>
+    <message>
+        <source>&amp;Find in Text...</source>
+        <translation>&amp;Знайти в тексті...</translation>
+    </message>
+    <message>
+        <source>A temporary form file could not be created in %1.</source>
+        <translation>Не вдалось створити тимчасовий файл форми в %1.</translation>
+    </message>
+    <message>
+        <source>The temporary form file %1 could not be written.</source>
+        <translation>Не вдалось записати тимчасовий файл форми %1.</translation>
+    </message>
+    <message>
+        <source>%1 - [Code]</source>
+        <translation>%1 - [код]</translation>
+    </message>
+    <message>
+        <source>Save Code</source>
+        <translation>Зберегти код</translation>
+    </message>
+    <message>
+        <source>Header Files (*.%1)</source>
+        <translation>Файли заголовків (*.%1)</translation>
+    </message>
+    <message>
+        <source>The file %1 could not be opened: %2</source>
+        <translation>Не вдалось відкрити файл %1: %2</translation>
+    </message>
+    <message>
+        <source>The file %1 could not be written: %2</source>
+        <translation>Не вдалось записати файл %1: %2</translation>
+    </message>
+    <message>
+        <source>%1 - Error</source>
+        <translation>%1 - Помилка</translation>
+    </message>
+</context>
+<context>
+    <name>qdesigner_internal::ColorAction</name>
+    <message>
+        <source>Text Color</source>
+        <translation>Колір тексту</translation>
+    </message>
+</context>
+<context>
+    <name>qdesigner_internal::ComboBoxTaskMenu</name>
+    <message>
+        <source>Edit Items...</source>
+        <translation>Редагувати елементи...</translation>
+    </message>
+    <message>
+        <source>Change Combobox Contents</source>
+        <translation>Змінити зміст випадаючого списку</translation>
+    </message>
+</context>
+<context>
+    <name>qdesigner_internal::CommandLinkButtonTaskMenu</name>
+    <message>
+        <source>Change description...</source>
+        <translation>Змінити опис...</translation>
+    </message>
+</context>
+<context>
+    <name>qdesigner_internal::ConnectionEdit</name>
+    <message>
+        <source>Select All</source>
+        <translation>Виділити все</translation>
+    </message>
+    <message>
+        <source>Deselect All</source>
+        <translation>Зняти виділення</translation>
+    </message>
+    <message>
+        <source>Delete</source>
+        <translation>Видалити</translation>
+    </message>
+</context>
+<context>
+    <name>qdesigner_internal::ConnectionModel</name>
+    <message>
+        <source>Sender</source>
+        <translation>Надсилач</translation>
+    </message>
+    <message>
+        <source>Signal</source>
+        <translation>Сигнал</translation>
+    </message>
+    <message>
+        <source>Receiver</source>
+        <translation>Отримувач</translation>
+    </message>
+    <message>
+        <source>Slot</source>
+        <translation>Слот</translation>
+    </message>
+    <message>
+        <source>&lt;sender&gt;</source>
+        <translation>&lt;надсилач&gt;</translation>
+    </message>
+    <message>
+        <source>&lt;signal&gt;</source>
+        <translation>&lt;сигнал&gt;</translation>
+    </message>
+    <message>
+        <source>&lt;receiver&gt;</source>
+        <translation>&lt;отримувач&gt;</translation>
+    </message>
+    <message>
+        <source>&lt;slot&gt;</source>
+        <translation>&lt;слот&gt;</translation>
+    </message>
+    <message>
+        <source>The connection already exists!&lt;br&gt;%1</source>
+        <translation>З&apos;єднання вже існує!&lt;br&gt;%1</translation>
+    </message>
+    <message>
+        <source>Signal and Slot Editor</source>
+        <translation>Редактор сигналів та слотів</translation>
+    </message>
+</context>
+<context>
+    <name>qdesigner_internal::ContainerWidgetTaskMenu</name>
+    <message>
+        <source>Delete</source>
+        <translation>Видалити</translation>
+    </message>
+    <message>
+        <source>Insert</source>
+        <translation>Вставити</translation>
+    </message>
+    <message>
+        <source>Insert Page Before Current Page</source>
+        <translation>Вставити сторінку перед поточною сторінкою</translation>
+    </message>
+    <message>
+        <source>Insert Page After Current Page</source>
+        <translation>Вставити сторінку після поточної сторінки</translation>
+    </message>
+    <message>
+        <source>Add Subwindow</source>
+        <translation>Додати підвікно</translation>
+    </message>
+    <message>
+        <source>Subwindow</source>
+        <translation>Підвікно</translation>
+    </message>
+    <message>
+        <source>Page</source>
+        <translation>Сторінка</translation>
+    </message>
+    <message>
+        <source>Page %1 of %2</source>
+        <translation>Сторінка %1 з %2</translation>
+    </message>
+</context>
+<context>
+    <name>qdesigner_internal::DPI_Chooser</name>
+    <message>
+        <source>System (%1 x %2)</source>
+        <extracomment>System resolution</extracomment>
+        <translation>Системна (%1 x %2)</translation>
+    </message>
+    <message>
+        <source>User defined</source>
+        <translation>Визначена користувачем</translation>
+    </message>
+    <message>
+        <source> x </source>
+        <extracomment>DPI X/Y separator</extracomment>
+        <translation> x </translation>
+    </message>
+</context>
+<context>
+    <name>qdesigner_internal::DesignerPropertyManager</name>
+    <message>
+        <source>AlignLeft</source>
+        <translation>Вліво</translation>
+    </message>
+    <message>
+        <source>AlignHCenter</source>
+        <translation>По центру</translation>
+    </message>
+    <message>
+        <source>AlignRight</source>
+        <translation>Вправо</translation>
+    </message>
+    <message>
+        <source>AlignJustify</source>
+        <translation>По ширині</translation>
+    </message>
+    <message>
+        <source>AlignTop</source>
+        <translation>Догори</translation>
+    </message>
+    <message>
+        <source>AlignVCenter</source>
+        <translation>По центру</translation>
+    </message>
+    <message>
+        <source>AlignBottom</source>
+        <translation>Донизу</translation>
+    </message>
+    <message>
+        <source>%1, %2</source>
+        <translation>%1, %2</translation>
+    </message>
+    <message numerus="yes">
+        <source>Customized (%n roles)</source>
+        <translation>
+            <numerusform>Користувацька (%n роль)</numerusform>
+            <numerusform>Користувацька (%n ролі)</numerusform>
+            <numerusform>Користувацька (%n ролей)</numerusform>
+        </translation>
+    </message>
+    <message>
+        <source>Inherited</source>
+        <translation>Успадкована</translation>
+    </message>
+    <message>
+        <source>Horizontal</source>
+        <translation>Горизонтальне</translation>
+    </message>
+    <message>
+        <source>Vertical</source>
+        <translation>Вертикальне</translation>
+    </message>
+    <message>
+        <source>Normal Off</source>
+        <translation>Нормальний, вимк</translation>
+    </message>
+    <message>
+        <source>Normal On</source>
+        <translation>Нормальний, увімк</translation>
+    </message>
+    <message>
+        <source>Disabled Off</source>
+        <translation>Вимкнений, вимк</translation>
+    </message>
+    <message>
+        <source>Disabled On</source>
+        <translation>Вимкнений, увімк</translation>
+    </message>
+    <message>
+        <source>Active Off</source>
+        <translation>Активний, вимк</translation>
+    </message>
+    <message>
+        <source>Active On</source>
+        <translation>Активний, увімк</translation>
+    </message>
+    <message>
+        <source>Selected Off</source>
+        <translation>Обраний, вимк</translation>
+    </message>
+    <message>
+        <source>Selected On</source>
+        <translation>Обраний, увімк</translation>
+    </message>
+    <message>
+        <source>translatable</source>
+        <translation>перекладати</translation>
+    </message>
+    <message>
+        <source>disambiguation</source>
+        <translation>уточнення</translation>
+    </message>
+    <message>
+        <source>comment</source>
+        <translation>коментар</translation>
+    </message>
+</context>
+<context>
+    <name>qdesigner_internal::DeviceProfileDialog</name>
+    <message>
+        <source>Device Profiles (*.%1)</source>
+        <translation>Профілі пристроїв (*.%1)</translation>
+    </message>
+    <message>
+        <source>Default</source>
+        <translation>Типовий</translation>
+    </message>
+    <message>
+        <source>Save Profile</source>
+        <translation>Зберегти профіль</translation>
+    </message>
+    <message>
+        <source>Save Profile - Error</source>
+        <translation>Збереження профілю - Помилка</translation>
+    </message>
+    <message>
+        <source>Unable to open the file &apos;%1&apos; for writing: %2</source>
+        <translation>Неможливо відкрити файл &apos;%1&apos; для запису: %2</translation>
+    </message>
+    <message>
+        <source>Open profile</source>
+        <translation>Відкрити профіль</translation>
+    </message>
+    <message>
+        <source>Open Profile - Error</source>
+        <translation>Відкриття профілю - Помилка</translation>
+    </message>
+    <message>
+        <source>Unable to open the file &apos;%1&apos; for reading: %2</source>
+        <translation>Неможливо відкрити файл &apos;%1&apos; для читання: %2</translation>
+    </message>
+    <message>
+        <source>&apos;%1&apos; is not a valid profile: %2</source>
+        <translation>&apos;%1&apos; не є правильним профілем: %2</translation>
+    </message>
+</context>
+<context>
+    <name>qdesigner_internal::Dialog</name>
+    <message>
+        <source>Dialog</source>
+        <translation>Діалог</translation>
+    </message>
+    <message>
+        <source>StringList</source>
+        <translation>Список рядків</translation>
+    </message>
+    <message>
+        <source>New String</source>
+        <translation>Новий рядок</translation>
+    </message>
+    <message>
+        <source>&amp;New</source>
+        <translation>&amp;Новий</translation>
+    </message>
+    <message>
+        <source>Delete String</source>
+        <translation>Видалити рядок</translation>
+    </message>
+    <message>
+        <source>&amp;Delete</source>
+        <translation>Ви&amp;далити</translation>
+    </message>
+    <message>
+        <source>&amp;Value:</source>
+        <translation>&amp;Значення:</translation>
+    </message>
+    <message>
+        <source>Move String Up</source>
+        <translation>Пересунути рядок вгору</translation>
+    </message>
+    <message>
+        <source>Up</source>
+        <translation>Вгору</translation>
+    </message>
+    <message>
+        <source>Move String Down</source>
+        <translation>Пересунути рядок донизу</translation>
+    </message>
+    <message>
+        <source>Down</source>
+        <translation>Вниз</translation>
+    </message>
+</context>
+<context>
+    <name>qdesigner_internal::EmbeddedOptionsControl</name>
+    <message>
+        <source>None</source>
+        <translation>Немає</translation>
+    </message>
+    <message>
+        <source>Add a profile</source>
+        <translation>Додати профіль</translation>
+    </message>
+    <message>
+        <source>Edit the selected profile</source>
+        <translation>Редагувати виділений профіль</translation>
+    </message>
+    <message>
+        <source>Delete the selected profile</source>
+        <translation>Видалити виділений профіль</translation>
+    </message>
+    <message>
+        <source>Add Profile</source>
+        <translation>Додати профіль</translation>
+    </message>
+    <message>
+        <source>New profile</source>
+        <translation>Новий профіль</translation>
+    </message>
+    <message>
+        <source>Edit Profile</source>
+        <translation>Редагувати профіль</translation>
+    </message>
+    <message>
+        <source>Delete Profile</source>
+        <translation>Видалити профіль</translation>
+    </message>
+    <message>
+        <source>Would you like to delete the profile &apos;%1&apos;?</source>
+        <translation>Бажаєте видалити профіль &apos;%1&apos;?</translation>
+    </message>
+    <message>
+        <source>Default</source>
+        <translation>Типовий</translation>
+    </message>
+</context>
+<context>
+    <name>qdesigner_internal::FilterWidget</name>
+    <message>
+        <source>Filter</source>
+        <translation>Фільтр</translation>
+    </message>
+    <message>
+        <source>Clear text</source>
+        <translation>Очистити текст</translation>
+    </message>
+</context>
+<context>
+    <name>qdesigner_internal::FormEditor</name>
+    <message>
+        <source>Resource File Changed</source>
+        <translation>Файли ресурсів було змінено</translation>
+    </message>
+    <message>
+        <source>The file &quot;%1&quot; has changed outside Designer. Do you want to reload it?</source>
+        <translation>Файл &quot;%1&quot; було змінено поза Qt Designer. Бажаєте перезавантажити його?</translation>
+    </message>
+</context>
+<context>
+    <name>qdesigner_internal::FormLayoutMenu</name>
+    <message>
+        <source>Add form layout row...</source>
+        <translation>Додати рядок до розташування формою...</translation>
+    </message>
+</context>
+<context>
+    <name>qdesigner_internal::FormWindow</name>
+    <message>
+        <source>Edit contents</source>
+        <translation>Редагувати зміст</translation>
+    </message>
+    <message>
+        <source>F2</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>Insert widget &apos;%1&apos;</source>
+        <translation>Вставити віджет &apos;%1&apos;</translation>
+    </message>
+    <message>
+        <source>Resize</source>
+        <translation>Змінити розмір</translation>
+    </message>
+    <message>
+        <source>Key Resize</source>
+        <translation>Зміна розміру клавішею</translation>
+    </message>
+    <message>
+        <source>Key Move</source>
+        <translation>Переміщення клавішею</translation>
+    </message>
+    <message numerus="yes">
+        <source>Paste %n action(s)</source>
+        <translation>
+            <numerusform>Вставити %n дію</numerusform>
+            <numerusform>Вставити %n дії</numerusform>
+            <numerusform>Вставити %n дій</numerusform>
+        </translation>
+    </message>
+    <message numerus="yes">
+        <source>Paste %n widget(s)</source>
+        <translation>
+            <numerusform>Вставити %n віджет</numerusform>
+            <numerusform>Вставити %n віджети</numerusform>
+            <numerusform>Вставити %n віджетів</numerusform>
+        </translation>
+    </message>
+    <message>
+        <source>Paste (%1 widgets, %2 actions)</source>
+        <translation>Вставити (%1 віджетів, %2 дії)</translation>
+    </message>
+    <message>
+        <source>Cannot paste widgets. Designer could not find a container without a layout to paste into.</source>
+        <translation>Неможливо вставити віджети. Qt Designer&apos;у не вдалось знайти контейнер без розташування для вставки.</translation>
+    </message>
+    <message>
+        <source>Break the layout of the container you want to paste into, select this container and then paste again.</source>
+        <translation>Розбийте розташування контейнеру, в який ви бажаєте вставити, виділіть цей контейнер та вставте знову.</translation>
+    </message>
+    <message>
+        <source>Paste error</source>
+        <translation>Помилка вставки</translation>
+    </message>
+    <message>
+        <source>Raise widgets</source>
+        <translation>Підняти віджети</translation>
+    </message>
+    <message>
+        <source>Lower widgets</source>
+        <translation>Опустити віджети</translation>
+    </message>
+    <message>
+        <source>Select Ancestor</source>
+        <translation>Обрати предка</translation>
+    </message>
+    <message>
+        <source>Lay out</source>
+        <translation>Розташування</translation>
+    </message>
+    <message>
+        <source>Drop widget</source>
+        <translation>Кинути віджет</translation>
+    </message>
+    <message>
+        <source>A QMainWindow-based form does not contain a central widget.</source>
+        <translation>Форма, що базується на QMainWindow не містить центрального віджета.</translation>
+    </message>
+</context>
+<context>
+    <name>qdesigner_internal::FormWindowBase</name>
+    <message>
+        <source>Delete &apos;%1&apos;</source>
+        <translation>Видалити &apos;%1&apos;</translation>
+    </message>
+    <message>
+        <source>Delete</source>
+        <translation>Видалити</translation>
+    </message>
+</context>
+<context>
+    <name>qdesigner_internal::FormWindowManager</name>
+    <message>
+        <source>Cu&amp;t</source>
+        <translation>Вирі&amp;зати</translation>
+    </message>
+    <message>
+        <source>Cuts the selected widgets and puts them on the clipboard</source>
+        <translation>Вирізає виділені віджети та розміщує їх в буфері обміну</translation>
+    </message>
+    <message>
+        <source>&amp;Copy</source>
+        <translation>&amp;Копіювати</translation>
+    </message>
+    <message>
+        <source>Copies the selected widgets to the clipboard</source>
+        <translation>Копіює виділені віджети до буферу обміну</translation>
+    </message>
+    <message>
+        <source>&amp;Paste</source>
+        <translation>&amp;Вставити</translation>
+    </message>
+    <message>
+        <source>Pastes the clipboard&apos;s contents</source>
+        <translation>Вставляє зміст буферу обміну</translation>
+    </message>
+    <message>
+        <source>&amp;Delete</source>
+        <translation>Ви&amp;далити</translation>
+    </message>
+    <message>
+        <source>Deletes the selected widgets</source>
+        <translation>Видаляє виділені віджети</translation>
+    </message>
+    <message>
+        <source>Select &amp;All</source>
+        <translation>Виділити в&amp;се</translation>
+    </message>
+    <message>
+        <source>Selects all widgets</source>
+        <translation>Виділяє усі віджети</translation>
+    </message>
+    <message>
+        <source>Bring to &amp;Front</source>
+        <translation>На &amp;передній план</translation>
+    </message>
+    <message>
+        <source>Raises the selected widgets</source>
+        <translation>Піднімає виділені віджети</translation>
+    </message>
+    <message>
+        <source>Send to &amp;Back</source>
+        <translation>На зад&amp;ній план</translation>
+    </message>
+    <message>
+        <source>Lowers the selected widgets</source>
+        <translation>Опускає виділені віджети</translation>
+    </message>
+    <message>
+        <source>Adjust &amp;Size</source>
+        <translation>Підігнати &amp;розмір</translation>
+    </message>
+    <message>
+        <source>Adjusts the size of the selected widget</source>
+        <translation>Підганяє розмір виділених віджетів</translation>
+    </message>
+    <message>
+        <source>Lay Out &amp;Horizontally</source>
+        <translation>Розташувати &amp;горизонтально</translation>
+    </message>
+    <message>
+        <source>Lays out the selected widgets horizontally</source>
+        <translation>Розташовує виділені віджети горизонтально</translation>
+    </message>
+    <message>
+        <source>Lay Out &amp;Vertically</source>
+        <translation>Розташувати &amp;вертикально</translation>
+    </message>
+    <message>
+        <source>Lays out the selected widgets vertically</source>
+        <translation>Розташовує виділені віджети вертикально</translation>
+    </message>
+    <message>
+        <source>Lay Out in a &amp;Form Layout</source>
+        <translation>Розташувати по &amp;формі</translation>
+    </message>
+    <message>
+        <source>Lays out the selected widgets in a form layout</source>
+        <translation>Розташовує виділені віджети по формі</translation>
+    </message>
+    <message>
+        <source>Lay Out in a &amp;Grid</source>
+        <translation>Розташувати, використовуючи &amp;сітку</translation>
+    </message>
+    <message>
+        <source>Lays out the selected widgets in a grid</source>
+        <translation>Розташовує виділені віджети по сітці</translation>
+    </message>
+    <message>
+        <source>Lay Out Horizontally in S&amp;plitter</source>
+        <translation>Розташувати г&amp;оризонтально з розділювачем</translation>
+    </message>
+    <message>
+        <source>Lays out the selected widgets horizontally in a splitter</source>
+        <translation>Розташовує виділені віджети горизонтально з розділювачем</translation>
+    </message>
+    <message>
+        <source>Lay Out Vertically in Sp&amp;litter</source>
+        <translation>Розташувати в&amp;ертикально з розділювачем</translation>
+    </message>
+    <message>
+        <source>Lays out the selected widgets vertically in a splitter</source>
+        <translation>Розташовує виділені віджети вертикально з розділювачем</translation>
+    </message>
+    <message>
+        <source>&amp;Break Layout</source>
+        <translation>Розби&amp;ти розташування</translation>
+    </message>
+    <message>
+        <source>Breaks the selected layout</source>
+        <translation>Розбиває виділено розташування</translation>
+    </message>
+    <message>
+        <source>Si&amp;mplify Grid Layout</source>
+        <translation>Спро&amp;щене розташування по сітці</translation>
+    </message>
+    <message>
+        <source>Removes empty columns and rows</source>
+        <translation>Видаляє пусті рядки та колонки</translation>
+    </message>
+    <message>
+        <source>&amp;Preview...</source>
+        <translation>Попередній перегля&amp;д...</translation>
+    </message>
+    <message>
+        <source>Preview current form</source>
+        <translation>Попередній перегляд поточної форми</translation>
+    </message>
+    <message>
+        <source>Form &amp;Settings...</source>
+        <translation>Нала&amp;штування форми...</translation>
+    </message>
+    <message>
+        <source>Break Layout</source>
+        <translation>Розбити розташування</translation>
+    </message>
+    <message>
+        <source>Adjust Size</source>
+        <translation>Підігнати розмір</translation>
+    </message>
+    <message>
+        <source>Could not create form preview</source>
+        <comment>Title of warning message box</comment>
+        <translation>Не вдалось створити попередній перегляд форми</translation>
+    </message>
+    <message>
+        <source>Form Settings - %1</source>
+        <translation>Налаштування форми - %1</translation>
+    </message>
+</context>
+<context>
+    <name>qdesigner_internal::FormWindowSettings</name>
+    <message>
+        <source>None</source>
+        <translation>Немає</translation>
+    </message>
+    <message>
+        <source>Device Profile: %1</source>
+        <translation>Профіль пристрою: %1</translation>
+    </message>
+</context>
+<context>
+    <name>qdesigner_internal::GridPanel</name>
+    <message>
+        <source>Form</source>
+        <translation>Форма</translation>
+    </message>
+    <message>
+        <source>Grid</source>
+        <translation>Сітка</translation>
+    </message>
+    <message>
+        <source>Visible</source>
+        <translation>Видима</translation>
+    </message>
+    <message>
+        <source>Grid &amp;X</source>
+        <translation>Сітка &amp;X</translation>
+    </message>
+    <message>
+        <source>Snap</source>
+        <translation>Прив&apos;язка</translation>
+    </message>
+    <message>
+        <source>Reset</source>
+        <translation>Скинути</translation>
+    </message>
+    <message>
+        <source>Grid &amp;Y</source>
+        <translation>Сітка &amp;Y</translation>
+    </message>
+</context>
+<context>
+    <name>qdesigner_internal::GroupBoxTaskMenu</name>
+    <message>
+        <source>Change title...</source>
+        <translation>Змінити заголовок...</translation>
+    </message>
+</context>
+<context>
+    <name>qdesigner_internal::HtmlTextEdit</name>
+    <message>
+        <source>Insert HTML entity</source>
+        <translation>Вставити елемент HTML</translation>
+    </message>
+</context>
+<context>
+    <name>qdesigner_internal::IconSelector</name>
+    <message>
+        <source>The pixmap file &apos;%1&apos; cannot be read.</source>
+        <translation>Неможливо прочитати файл растрового зображення &apos;%1&apos;.</translation>
+    </message>
+    <message>
+        <source>The file &apos;%1&apos; does not appear to be a valid pixmap file: %2</source>
+        <translation>Файл &apos;%1&apos; не схожий на правильний файл растрового зображення: %2</translation>
+    </message>
+    <message>
+        <source>The file &apos;%1&apos; could not be read: %2</source>
+        <translation>Не вдалось прочитати файл &apos;%1&apos;: %2</translation>
+    </message>
+    <message>
+        <source>Choose a Pixmap</source>
+        <translation>Оберіть растрове зображення</translation>
+    </message>
+    <message>
+        <source>Pixmap Read Error</source>
+        <translation>Помилка читання растрового зображення</translation>
+    </message>
+    <message>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <source>Normal Off</source>
+        <translation>Нормальний, вимк</translation>
+    </message>
+    <message>
+        <source>Normal On</source>
+        <translation>Нормальний, увімк</translation>
+    </message>
+    <message>
+        <source>Disabled Off</source>
+        <translation>Вимкнений, вимк</translation>
+    </message>
+    <message>
+        <source>Disabled On</source>
+        <translation>Вимкнений, увімк</translation>
+    </message>
+    <message>
+        <source>Active Off</source>
+        <translation>Активний, вимк</translation>
+    </message>
+    <message>
+        <source>Active On</source>
+        <translation>Активний, увімк</translation>
+    </message>
+    <message>
+        <source>Selected Off</source>
+        <translation>Обраний, вимк</translation>
+    </message>
+    <message>
+        <source>Selected On</source>
+        <translation>Обраний, увімк</translation>
+    </message>
+    <message>
+        <source>Choose Resource...</source>
+        <translation>Оберіть ресурс...</translation>
+    </message>
+    <message>
+        <source>Choose File...</source>
+        <translation>Оберіть файл...</translation>
+    </message>
+    <message>
+        <source>Reset</source>
+        <translation>Скинути</translation>
+    </message>
+    <message>
+        <source>Reset All</source>
+        <translation>Скинути все</translation>
+    </message>
+</context>
+<context>
+    <name>qdesigner_internal::ItemListEditor</name>
+    <message>
+        <source>Items List</source>
+        <translation>Список елементів</translation>
+    </message>
+    <message>
+        <source>New Item</source>
+        <translation>Новий елемент</translation>
+    </message>
+    <message>
+        <source>&amp;New</source>
+        <translation>&amp;Новий</translation>
+    </message>
+    <message>
+        <source>Delete Item</source>
+        <translation>Видалити елемент</translation>
+    </message>
+    <message>
+        <source>&amp;Delete</source>
+        <translation>Ви&amp;далити</translation>
+    </message>
+    <message>
+        <source>Move Item Up</source>
+        <translation>Пересунути елемент вгору</translation>
+    </message>
+    <message>
+        <source>U</source>
+        <translation>В</translation>
+    </message>
+    <message>
+        <source>Move Item Down</source>
+        <translation>Пересунути елемент вниз</translation>
+    </message>
+    <message>
+        <source>D</source>
+        <translation>Н</translation>
+    </message>
+    <message>
+        <source>Properties &amp;&gt;&gt;</source>
+        <translation>Властивост&amp;і &gt;&gt;</translation>
+    </message>
+    <message>
+        <source>Properties &amp;&lt;&lt;</source>
+        <translation>Властивост&amp;і &lt;&lt;</translation>
+    </message>
+</context>
+<context>
+    <name>qdesigner_internal::LabelTaskMenu</name>
+    <message>
+        <source>Change rich text...</source>
+        <translation>Змінити форматований текст...</translation>
+    </message>
+    <message>
+        <source>Change plain text...</source>
+        <translation>Змінити простий текст...</translation>
+    </message>
+</context>
+<context>
+    <name>qdesigner_internal::LanguageResourceDialog</name>
+    <message>
+        <source>Choose Resource</source>
+        <translation>Оберіть ресурс</translation>
+    </message>
+</context>
+<context>
+    <name>qdesigner_internal::LineEditTaskMenu</name>
+    <message>
+        <source>Change text...</source>
+        <translation>Змінити текст...</translation>
+    </message>
+</context>
+<context>
+    <name>qdesigner_internal::ListWidgetEditor</name>
+    <message>
+        <source>New Item</source>
+        <translation>Новий елемент</translation>
+    </message>
+    <message>
+        <source>Edit List Widget</source>
+        <translation>Редагування віджета &quot;Список&quot;</translation>
+    </message>
+    <message>
+        <source>Edit Combobox</source>
+        <translation>Редагування віджета &quot;Випадаючий список&quot;</translation>
+    </message>
+</context>
+<context>
+    <name>qdesigner_internal::ListWidgetTaskMenu</name>
+    <message>
+        <source>Edit Items...</source>
+        <translation>Редагувати елементи...</translation>
+    </message>
+    <message>
+        <source>Change List Contents</source>
+        <translation>Змінити зміст списку</translation>
+    </message>
+</context>
+<context>
+    <name>qdesigner_internal::MdiContainerWidgetTaskMenu</name>
+    <message>
+        <source>Next Subwindow</source>
+        <translation>Наступне підвікно</translation>
+    </message>
+    <message>
+        <source>Previous Subwindow</source>
+        <translation>Попереднє підвікно</translation>
+    </message>
+    <message>
+        <source>Tile</source>
+        <translation>Плиткою</translation>
+    </message>
+    <message>
+        <source>Cascade</source>
+        <translation>Каскадом</translation>
+    </message>
+</context>
+<context>
+    <name>qdesigner_internal::MenuTaskMenu</name>
+    <message>
+        <source>Remove</source>
+        <translation>Видалити</translation>
+    </message>
+</context>
+<context>
+    <name>qdesigner_internal::MorphMenu</name>
+    <message>
+        <source>Morph into</source>
+        <translation>Перетворити на</translation>
+    </message>
+</context>
+<context>
+    <name>qdesigner_internal::NewActionDialog</name>
+    <message>
+        <source>New Action...</source>
+        <translation>Нова дія...</translation>
+    </message>
+    <message>
+        <source>&amp;Text:</source>
+        <translation>&amp;Текст:</translation>
+    </message>
+    <message>
+        <source>Object &amp;name:</source>
+        <translation>&amp;Ім&apos;я об&apos;єкта:</translation>
+    </message>
+    <message>
+        <source>&amp;Icon:</source>
+        <translation>&amp;Значок:</translation>
+    </message>
+    <message>
+        <source>Shortcut:</source>
+        <translation>Поєднання клавіш:</translation>
+    </message>
+    <message>
+        <source>Checkable:</source>
+        <translation>Прапорець:</translation>
+    </message>
+    <message>
+        <source>ToolTip:</source>
+        <translation>Спливаюча підказка:</translation>
+    </message>
+    <message>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>qdesigner_internal::NewDynamicPropertyDialog</name>
+    <message>
+        <source>Create Dynamic Property</source>
+        <translation>Створити динамічну властивість</translation>
+    </message>
+    <message>
+        <source>Property Name</source>
+        <translation>Ім&apos;я властивості</translation>
+    </message>
+    <message>
+        <source>horizontalSpacer</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>Property Type</source>
+        <translation>Тип властивості</translation>
+    </message>
+    <message>
+        <source>Set Property Name</source>
+        <translation>Встановіть ім&apos;я властивості</translation>
+    </message>
+    <message>
+        <source>The current object already has a property named &apos;%1&apos;.
+Please select another, unique one.</source>
+        <translation>Поточний об&apos;єкт вже має властивість з іменем &apos;%1&apos;.
+Будь ласка, оберіть інше, унікальне ім&apos;я.</translation>
+    </message>
+    <message>
+        <source>The &apos;_q_&apos; prefix is reserved for the Qt library.
+Please select another name.</source>
+        <translation>Префікс &apos;_q_&apos; зарезервовано для бібліотеки Qt.
+Будь ласка, оберіть інше ім&apos;я.</translation>
+    </message>
+</context>
+<context>
+    <name>qdesigner_internal::NewFormWidget</name>
+    <message>
+        <source>0</source>
+        <translation>0</translation>
+    </message>
+    <message>
+        <source>Choose a template for a preview</source>
+        <translation>Оберіть шаблон для попереднього перегляду</translation>
+    </message>
+    <message>
+        <source>Embedded Design</source>
+        <translation>Дизайн для портативних пристроїв</translation>
+    </message>
+    <message>
+        <source>Device:</source>
+        <translation>Пристрій:</translation>
+    </message>
+    <message>
+        <source>Screen Size:</source>
+        <translation>Розмір екрану:</translation>
+    </message>
+    <message>
+        <source>Default size</source>
+        <translation>Типовий розмір</translation>
+    </message>
+    <message>
+        <source>QVGA portrait (240x320)</source>
+        <translation>QVGA книжкою (240x320)</translation>
+    </message>
+    <message>
+        <source>QVGA landscape (320x240)</source>
+        <translation>QVGA альбомом (320x240)</translation>
+    </message>
+    <message>
+        <source>VGA portrait (480x640)</source>
+        <translation>VGA книжкою (480x640)</translation>
+    </message>
+    <message>
+        <source>VGA landscape (640x480)</source>
+        <translation>VGA альбомом (640x480)</translation>
+    </message>
+    <message>
+        <source>Widgets</source>
+        <extracomment>New Form Dialog Categories</extracomment>
+        <translation>Віджети</translation>
+    </message>
+    <message>
+        <source>Custom Widgets</source>
+        <translation>Віджети користувача</translation>
+    </message>
+    <message>
+        <source>None</source>
+        <translation>Немає</translation>
+    </message>
+    <message>
+        <source>Error loading form</source>
+        <translation>Помилка завантаження форми</translation>
+    </message>
+    <message>
+        <source>Unable to open the form template file &apos;%1&apos;: %2</source>
+        <translation>Неможливо відкрити файл шаблону форми &apos;%1&apos;: %2</translation>
+    </message>
+    <message>
+        <source>Internal error: No template selected.</source>
+        <translation>Внутрішня помилка. Не обрано шаблон.</translation>
+    </message>
+</context>
+<context>
+    <name>qdesigner_internal::NewPromotedClassPanel</name>
+    <message>
+        <source>Add</source>
+        <translation>Додати</translation>
+    </message>
+    <message>
+        <source>New Promoted Class</source>
+        <translation>Новий перетворений клас</translation>
+    </message>
+    <message>
+        <source>Base class name:</source>
+        <translation>Ім&apos;я базового класу:</translation>
+    </message>
+    <message>
+        <source>Promoted class name:</source>
+        <translation>Ім&apos;я перетвореного класу:</translation>
+    </message>
+    <message>
+        <source>Header file:</source>
+        <translation>Файл заголовків:</translation>
+    </message>
+    <message>
+        <source>Global include</source>
+        <translation>Глобальне включення</translation>
+    </message>
+    <message>
+        <source>Reset</source>
+        <translation>Скинути</translation>
+    </message>
+</context>
+<context>
+    <name>qdesigner_internal::ObjectInspector</name>
+    <message>
+        <source>Change Current Page</source>
+        <translation>Змінити поточну сторінку</translation>
+    </message>
+    <message>
+        <source>&amp;Find in Text...</source>
+        <translation>&amp;Знайти в тексті...</translation>
+    </message>
+</context>
+<context>
+    <name>qdesigner_internal::OrderDialog</name>
+    <message>
+        <source>Change Page Order</source>
+        <translation>Змінити порядок сторінок</translation>
+    </message>
+    <message>
+        <source>Page Order</source>
+        <translation>Порядок сторінок</translation>
+    </message>
+    <message>
+        <source>Move page up</source>
+        <translation>Пересунути сторінку вгору</translation>
+    </message>
+    <message>
+        <source>Move page down</source>
+        <translation>Пересунути сторінку вниз</translation>
+    </message>
+    <message>
+        <source>Index %1 (%2)</source>
+        <translation>Індекс %1 (%2)</translation>
+    </message>
+    <message>
+        <source>%1 %2</source>
+        <translation>%1 %2</translation>
+    </message>
+</context>
+<context>
+    <name>qdesigner_internal::PaletteEditor</name>
+    <message>
+        <source>Edit Palette</source>
+        <translation>Редагувати палітру</translation>
+    </message>
+    <message>
+        <source>Tune Palette</source>
+        <translation>Налаштувати палітру</translation>
+    </message>
+    <message>
+        <source>Show Details</source>
+        <translation>Показати деталі</translation>
+    </message>
+    <message>
+        <source>Compute Details</source>
+        <translation>Розраховувати деталі</translation>
+    </message>
+    <message>
+        <source>Quick</source>
+        <translation>Швидко</translation>
+    </message>
+    <message>
+        <source>Preview</source>
+        <translation>Попередній перегляд</translation>
+    </message>
+    <message>
+        <source>Disabled</source>
+        <translation>Вимкнений</translation>
+    </message>
+    <message>
+        <source>Inactive</source>
+        <translation>Неактивний</translation>
+    </message>
+    <message>
+        <source>Active</source>
+        <translation>Активний</translation>
+    </message>
+</context>
+<context>
+    <name>qdesigner_internal::PaletteEditorButton</name>
+    <message>
+        <source>Change Palette</source>
+        <translation>Змінити палітру</translation>
+    </message>
+</context>
+<context>
+    <name>qdesigner_internal::PaletteModel</name>
+    <message>
+        <source>Color Role</source>
+        <translation>Кольорова роль</translation>
+    </message>
+    <message>
+        <source>Active</source>
+        <translation>Активна</translation>
+    </message>
+    <message>
+        <source>Inactive</source>
+        <translation>Неактивний</translation>
+    </message>
+    <message>
+        <source>Disabled</source>
+        <translation>Вимкнений</translation>
+    </message>
+</context>
+<context>
+    <name>qdesigner_internal::PixmapEditor</name>
+    <message>
+        <source>Choose Resource...</source>
+        <translation>Оберіть ресурс...</translation>
+    </message>
+    <message>
+        <source>Choose File...</source>
+        <translation>Оберіть файл...</translation>
+    </message>
+    <message>
+        <source>Copy Path</source>
+        <translation>Копіювати шлях</translation>
+    </message>
+    <message>
+        <source>Paste Path</source>
+        <translation>Вставити шлях</translation>
+    </message>
+    <message>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>qdesigner_internal::PlainTextEditorDialog</name>
+    <message>
+        <source>Edit text</source>
+        <translation>Редагувати текст</translation>
+    </message>
+</context>
+<context>
+    <name>qdesigner_internal::PluginDialog</name>
+    <message>
+        <source>Components</source>
+        <translation>Компоненти</translation>
+    </message>
+    <message>
+        <source>Plugin Information</source>
+        <translation>Інформація про додаток</translation>
+    </message>
+    <message>
+        <source>Refresh</source>
+        <translation>Оновити</translation>
+    </message>
+    <message>
+        <source>Scan for newly installed custom widget plugins.</source>
+        <translation>Шукати нові встановлені додатки користувацьких віджетів.</translation>
+    </message>
+    <message>
+        <source>Loaded Plugins</source>
+        <translation>Завантажені додатки</translation>
+    </message>
+    <message>
+        <source>Failed Plugins</source>
+        <translation>Проблемні додатки</translation>
+    </message>
+    <message>
+        <source>Qt Designer couldn&apos;t find any plugins</source>
+        <translation>Qt Designer&apos;у не вдалось знайти жодного додатку</translation>
+    </message>
+    <message>
+        <source>Qt Designer found the following plugins</source>
+        <translation>Qt Designer знайшов наступні додатки</translation>
+    </message>
+    <message>
+        <source>New custom widget plugins have been found.</source>
+        <translation>Були знайдені нові додатки користувацьких віджетів.</translation>
+    </message>
+</context>
+<context>
+    <name>qdesigner_internal::PreviewActionGroup</name>
+    <message>
+        <source>%1 Style</source>
+        <translation>Стиль %1</translation>
+    </message>
+</context>
+<context>
+    <name>qdesigner_internal::PreviewConfigurationWidget</name>
+    <message>
+        <source>Default</source>
+        <translation>Типово</translation>
+    </message>
+    <message>
+        <source>None</source>
+        <translation>Немає</translation>
+    </message>
+    <message>
+        <source>Browse...</source>
+        <translation>Огляд...</translation>
+    </message>
+    <message>
+        <source>Load Custom Device Skin</source>
+        <translation>Завантажити користувацьку обкладинку пристрою</translation>
+    </message>
+    <message>
+        <source>All QVFB Skins (*.%1)</source>
+        <translation>Усі обкладинки QVFB (*.%1)</translation>
+    </message>
+    <message>
+        <source>%1 - Duplicate Skin</source>
+        <translation>%1 - Обкладинка-дублікат</translation>
+    </message>
+    <message>
+        <source>The skin &apos;%1&apos; already exists.</source>
+        <translation>Обкладинка &apos;%1&apos; вже існує.</translation>
+    </message>
+    <message>
+        <source>%1 - Error</source>
+        <translation>%1 - Помилка</translation>
+    </message>
+    <message>
+        <source>%1 is not a valid skin directory:
+%2</source>
+        <translation>%1 не є правильною текою обкладинки:
+%2</translation>
+    </message>
+</context>
+<context>
+    <name>qdesigner_internal::PreviewDeviceSkin</name>
+    <message>
+        <source>&amp;Portrait</source>
+        <translation>Книжка</translation>
+    </message>
+    <message>
+        <source>Landscape (&amp;CCW)</source>
+        <extracomment>Rotate form preview counter-clockwise</extracomment>
+        <translation>Альбом (проти ГС)</translation>
+    </message>
+    <message>
+        <source>&amp;Landscape (CW)</source>
+        <extracomment>Rotate form preview clockwise</extracomment>
+        <translation>Альбом (за ГС)</translation>
+    </message>
+    <message>
+        <source>&amp;Close</source>
+        <translation>Закрити</translation>
+    </message>
+</context>
+<context>
+    <name>qdesigner_internal::PreviewManager</name>
+    <message>
+        <source>%1 - [Preview]</source>
+        <translation>%1 - [Перегляд]</translation>
+    </message>
+</context>
+<context>
+    <name>qdesigner_internal::PreviewMdiArea</name>
+    <message>
+        <source>The moose in the noose
+ate the goose who was loose.</source>
+        <extracomment>Palette editor background</extracomment>
+        <translation>Кричав Архип, Архип охрип,
+Не треба Архипу кричати до хрипу.</translation>
+    </message>
+</context>
+<context>
+    <name>qdesigner_internal::PreviewWidget</name>
+    <message>
+        <source>Preview Window</source>
+        <translation>Вікно попереднього перегляду</translation>
+    </message>
+    <message>
+        <source>LineEdit</source>
+        <translation>Поле введення</translation>
+    </message>
+    <message>
+        <source>ComboBox</source>
+        <translation>Випадаючий список</translation>
+    </message>
+    <message>
+        <source>PushButton</source>
+        <translation>Кнопка</translation>
+    </message>
+    <message>
+        <source>ButtonGroup2</source>
+        <translation>Група кнопок 2</translation>
+    </message>
+    <message>
+        <source>CheckBox1</source>
+        <translation>Прапорець 1</translation>
+    </message>
+    <message>
+        <source>CheckBox2</source>
+        <translation>Прапорець 2</translation>
+    </message>
+    <message>
+        <source>ButtonGroup</source>
+        <translation>Група кнопок</translation>
+    </message>
+    <message>
+        <source>RadioButton1</source>
+        <translation>Перемикач 1</translation>
+    </message>
+    <message>
+        <source>RadioButton2</source>
+        <translation>Перемикач 2</translation>
+    </message>
+    <message>
+        <source>RadioButton3</source>
+        <translation>Перемикач 3</translation>
+    </message>
+</context>
+<context>
+    <name>qdesigner_internal::PromotionModel</name>
+    <message>
+        <source>Name</source>
+        <translation>Назва</translation>
+    </message>
+    <message>
+        <source>Header file</source>
+        <translation>Файл заголовків</translation>
+    </message>
+    <message>
+        <source>Global include</source>
+        <translation>Глобальне включення</translation>
+    </message>
+    <message>
+        <source>Usage</source>
+        <translation>Використання</translation>
+    </message>
+</context>
+<context>
+    <name>qdesigner_internal::PromotionTaskMenu</name>
+    <message>
+        <source>Promoted widgets...</source>
+        <translation>Перетворені віджети...</translation>
+    </message>
+    <message>
+        <source>Promote to ...</source>
+        <translation>Перетворити на...</translation>
+    </message>
+    <message>
+        <source>Change signals/slots...</source>
+        <translation>Змінити сигнали/слоти...</translation>
+    </message>
+    <message>
+        <source>Promote to</source>
+        <translation>Перетворити на</translation>
+    </message>
+    <message>
+        <source>Demote to %1</source>
+        <translation>Перетворити на %1</translation>
+    </message>
+</context>
+<context>
+    <name>qdesigner_internal::PropertyEditor</name>
+    <message>
+        <source>Add Dynamic Property...</source>
+        <translation>Додати динамічну властивість...</translation>
+    </message>
+    <message>
+        <source>Remove Dynamic Property</source>
+        <translation>Видалити динамічну властивість</translation>
+    </message>
+    <message>
+        <source>Sorting</source>
+        <translation>Сортування</translation>
+    </message>
+    <message>
+        <source>Color Groups</source>
+        <translation>Групи кольорів</translation>
+    </message>
+    <message>
+        <source>Tree View</source>
+        <translation>Деревом</translation>
+    </message>
+    <message>
+        <source>Drop Down Button View</source>
+        <translation>Випадаючим списком</translation>
+    </message>
+    <message>
+        <source>String...</source>
+        <translation>Рядки...</translation>
+    </message>
+    <message>
+        <source>Bool...</source>
+        <translation>Булева...</translation>
+    </message>
+    <message>
+        <source>Other...</source>
+        <translation>Інше...</translation>
+    </message>
+    <message>
+        <source>Configure Property Editor</source>
+        <translation>Налаштувати редактор властивостей</translation>
+    </message>
+    <message>
+        <source>Object: %1
+Class: %2</source>
+        <translation>Об&apos;єкт: %1
+Клас: %2</translation>
+    </message>
+</context>
+<context>
+    <name>qdesigner_internal::PropertyLineEdit</name>
+    <message>
+        <source>Insert line break</source>
+        <translation>Insert розрив рядка</translation>
+    </message>
+</context>
+<context>
+    <name>qdesigner_internal::QDesignerPromotionDialog</name>
+    <message>
+        <source>Promoted Widgets</source>
+        <translation>Перетворені віджети</translation>
+    </message>
+    <message>
+        <source>Promoted Classes</source>
+        <translation>Перетворені класи</translation>
+    </message>
+    <message>
+        <source>Promote</source>
+        <translation>Перетворити</translation>
+    </message>
+    <message>
+        <source>Change signals/slots...</source>
+        <translation>Змінити сигнали/слоти...</translation>
+    </message>
+    <message>
+        <source>%1 - Error</source>
+        <translation>%1 - Помилка</translation>
+    </message>
+</context>
+<context>
+    <name>qdesigner_internal::QDesignerResource</name>
+    <message>
+        <source>Loading qrc file</source>
+        <translation>Завантаження файлу qrc</translation>
+    </message>
+    <message>
+        <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>Не вдалось знайти вказаний файл qrc &lt;p&gt;&lt;b&gt;%1&lt;/b&gt;&lt;/p&gt;&lt;p&gt;. Бажаєте оновити розташування файлу?&lt;/p&gt;</translation>
+    </message>
+    <message>
+        <source>New location for %1</source>
+        <translation>Нове розташування для %1</translation>
+    </message>
+    <message>
+        <source>Resource files (*.qrc)</source>
+        <translation>Файли ресурсів (*.qrc)</translation>
+    </message>
+</context>
+<context>
+    <name>qdesigner_internal::QDesignerTaskMenu</name>
+    <message>
+        <source>Change objectName...</source>
+        <translation>Змінити objectName...</translation>
+    </message>
+    <message>
+        <source>Change toolTip...</source>
+        <translation>Змінити toolTip...</translation>
+    </message>
+    <message>
+        <source>Change whatsThis...</source>
+        <translation>Змінити whatsThis...</translation>
+    </message>
+    <message>
+        <source>Change styleSheet...</source>
+        <translation>Змінити styleSheet...</translation>
+    </message>
+    <message>
+        <source>Create Menu Bar</source>
+        <translation>Створити панель меню</translation>
+    </message>
+    <message>
+        <source>Add Tool Bar</source>
+        <translation>Додати панель інструментів</translation>
+    </message>
+    <message>
+        <source>Create Status Bar</source>
+        <translation>Створити рядок статусу</translation>
+    </message>
+    <message>
+        <source>Remove Status Bar</source>
+        <translation>Видалити рядок статусу</translation>
+    </message>
+    <message>
+        <source>Change script...</source>
+        <translation>Змінити скрипт...</translation>
+    </message>
+    <message>
+        <source>Change signals/slots...</source>
+        <translation>Змінити сигнали/слоти...</translation>
+    </message>
+    <message>
+        <source>Go to slot...</source>
+        <translation>Перейти до слота...</translation>
+    </message>
+    <message>
+        <source>Size Constraints</source>
+        <translation>Обмеження розміру</translation>
+    </message>
+    <message>
+        <source>Set Minimum Width</source>
+        <translation>Встановити мінімальну ширину</translation>
+    </message>
+    <message>
+        <source>Set Minimum Height</source>
+        <translation>Встановити мінімальну висоту</translation>
+    </message>
+    <message>
+        <source>Set Minimum Size</source>
+        <translation>Встановити мінімальний розмір</translation>
+    </message>
+    <message>
+        <source>Set Maximum Width</source>
+        <translation>Встановити максимальну ширину</translation>
+    </message>
+    <message>
+        <source>Set Maximum Height</source>
+        <translation>Встановити максимальну висоту</translation>
+    </message>
+    <message>
+        <source>Set Maximum Size</source>
+        <translation>Встановити максимальний розмір</translation>
+    </message>
+    <message>
+        <source>Edit ToolTip</source>
+        <translation>Редагувати спливаючу підказку</translation>
+    </message>
+    <message>
+        <source>Edit WhatsThis</source>
+        <translation>Редагування підказки &quot;Що це?&quot;</translation>
+    </message>
+    <message>
+        <source>no signals available</source>
+        <translation>немає доступних сигналів</translation>
+    </message>
+    <message numerus="yes">
+        <source>Set size constraint on %n widget(s)</source>
+        <translation>
+            <numerusform>Встановити обмеження розміру для %n віджета</numerusform>
+            <numerusform>Встановити обмеження розміру для %n віджетів</numerusform>
+            <numerusform>Встановити обмеження розміру для %n віджетів</numerusform>
+        </translation>
+    </message>
+</context>
+<context>
+    <name>qdesigner_internal::QDesignerWidgetBox</name>
+    <message>
+        <source>Unexpected element &lt;%1&gt;</source>
+        <translation>Неочікуваний елемент &lt;%1&gt;</translation>
+    </message>
+    <message>
+        <source>A parse error occurred at line %1, column %2 of the XML code specified for the widget %3: %4
+%5</source>
+        <translation>Під час розбору XML коду, вказаного для віджета %3, сталась помилка в рядку %1, позиція %2: %4
+%5</translation>
+    </message>
+    <message>
+        <source>The XML code specified for the widget %1 does not contain any widget elements.
+%2</source>
+        <translation>XML код, вказаний для віджета %1, не містить жодного елемента віджета.
+%2</translation>
+    </message>
+    <message>
+        <source>An error has been encountered at line %1 of %2: %3</source>
+        <translation>Сталась помилка в рядку %1 з %2: %3</translation>
+    </message>
+    <message>
+        <source>Unexpected element &lt;%1&gt; encountered when parsing for &lt;widget&gt; or &lt;ui&gt;</source>
+        <translation>Під час розбору &lt;widget&gt; або &lt;ui&gt; було знайдено неочікуваний елемент &lt;%1&gt;</translation>
+    </message>
+    <message>
+        <source>Unexpected end of file encountered when parsing widgets.</source>
+        <translation>Під час розбору віджетів несподівано закінчився файл.</translation>
+    </message>
+    <message>
+        <source>A widget element could not be found.</source>
+        <translation>Не вдалось знайти елемент віджета.</translation>
+    </message>
+</context>
+<context>
+    <name>qdesigner_internal::QtGradientStopsController</name>
+    <message>
+        <source>H</source>
+        <translation>H</translation>
+    </message>
+    <message>
+        <source>S</source>
+        <translation>S</translation>
+    </message>
+    <message>
+        <source>V</source>
+        <translation>V</translation>
+    </message>
+    <message>
+        <source>Hue</source>
+        <translation>Відтінок</translation>
+    </message>
+    <message>
+        <source>Sat</source>
+        <translation>Насиченість</translation>
+    </message>
+    <message>
+        <source>Val</source>
+        <translation>Значення</translation>
+    </message>
+    <message>
+        <source>Saturation</source>
+        <translation>Насиченість</translation>
+    </message>
+    <message>
+        <source>Value</source>
+        <translation>Значення</translation>
+    </message>
+    <message>
+        <source>R</source>
+        <translation>R</translation>
+    </message>
+    <message>
+        <source>G</source>
+        <translation>G</translation>
+    </message>
+    <message>
+        <source>B</source>
+        <translation>B</translation>
+    </message>
+    <message>
+        <source>Red</source>
+        <translation>Червоний</translation>
+    </message>
+    <message>
+        <source>Green</source>
+        <translation>Зелений</translation>
+    </message>
+    <message>
+        <source>Blue</source>
+        <translation>Блакитний</translation>
+    </message>
+</context>
+<context>
+    <name>qdesigner_internal::RichTextEditorDialog</name>
+    <message>
+        <source>Edit text</source>
+        <translation>Редагувати текст</translation>
+    </message>
+    <message>
+        <source>Rich Text</source>
+        <translation>Форматований текст</translation>
+    </message>
+    <message>
+        <source>Source</source>
+        <translation>Код</translation>
+    </message>
+    <message>
+        <source>&amp;OK</source>
+        <translation>&amp;OK</translation>
+    </message>
+    <message>
+        <source>&amp;Cancel</source>
+        <translation>&amp;Скасувати</translation>
+    </message>
+</context>
+<context>
+    <name>qdesigner_internal::RichTextEditorToolBar</name>
+    <message>
+        <source>Bold</source>
+        <translation>Жирний</translation>
+    </message>
+    <message>
+        <source>CTRL+B</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>Italic</source>
+        <translation>Курсив</translation>
+    </message>
+    <message>
+        <source>CTRL+I</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>Underline</source>
+        <translation>Підкреслений</translation>
+    </message>
+    <message>
+        <source>CTRL+U</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>Left Align</source>
+        <translation>Вліво</translation>
+    </message>
+    <message>
+        <source>Center</source>
+        <translation>По центру</translation>
+    </message>
+    <message>
+        <source>Right Align</source>
+        <translation>Вправо</translation>
+    </message>
+    <message>
+        <source>Justify</source>
+        <translation>По ширині</translation>
+    </message>
+    <message>
+        <source>Superscript</source>
+        <translation>Верхній індекс</translation>
+    </message>
+    <message>
+        <source>Subscript</source>
+        <translation>Нижній індекс</translation>
+    </message>
+    <message>
+        <source>Insert &amp;Link</source>
+        <translation>Вставити &amp;посилання</translation>
+    </message>
+    <message>
+        <source>Insert &amp;Image</source>
+        <translation>Вставити &amp;зображення</translation>
+    </message>
+</context>
+<context>
+    <name>qdesigner_internal::ScriptDialog</name>
+    <message>
+        <source>Edit script</source>
+        <translation>Редагування скрипту</translation>
+    </message>
+    <message>
+        <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;Введіть фрагмент коду Qt Script, що має виконуватись під час завантаження форми.&lt;br&gt;Віджет та його діти доступні через змінні &lt;i&gt;widget&lt;/i&gt; та &lt;i&gt;childWidgets&lt;/i&gt;, відповідно.</translation>
+    </message>
+    <message>
+        <source>Syntax error</source>
+        <translation>Синтаксична помилка</translation>
+    </message>
+</context>
+<context>
+    <name>qdesigner_internal::ScriptErrorDialog</name>
+    <message>
+        <source>Script errors</source>
+        <translation>Помилки скрипту</translation>
+    </message>
+</context>
+<context>
+    <name>qdesigner_internal::SignalSlotDialog</name>
+    <message>
+        <source>There is already a slot with the signature &apos;%1&apos;.</source>
+        <translation>Вже існує слот з сигнатурою &apos;%1&apos;.</translation>
+    </message>
+    <message>
+        <source>There is already a signal with the signature &apos;%1&apos;.</source>
+        <translation>Вже існує сигнал з сигнатурою &apos;%1&apos;.</translation>
+    </message>
+    <message>
+        <source>%1 - Duplicate Signature</source>
+        <translation>%1 - Повторна сигнатура</translation>
+    </message>
+    <message>
+        <source>Signals/Slots of %1</source>
+        <translation>Сигнали/слоти %1</translation>
+    </message>
+</context>
+<context>
+    <name>qdesigner_internal::SignalSlotEditorPlugin</name>
+    <message>
+        <source>Edit Signals/Slots</source>
+        <translation>Редагувати сигнали/слоти</translation>
+    </message>
+    <message>
+        <source>F4</source>
+        <translation>F4</translation>
+    </message>
+</context>
+<context>
+    <name>qdesigner_internal::SignalSlotEditorTool</name>
+    <message>
+        <source>Edit Signals/Slots</source>
+        <translation>Редагувати сигнали/слоти</translation>
+    </message>
+</context>
+<context>
+    <name>qdesigner_internal::StatusBarTaskMenu</name>
+    <message>
+        <source>Remove</source>
+        <translation>Видалити</translation>
+    </message>
+</context>
+<context>
+    <name>qdesigner_internal::StringListEditorButton</name>
+    <message>
+        <source>Change String List</source>
+        <translation>Змінити список рядків</translation>
+    </message>
+</context>
+<context>
+    <name>qdesigner_internal::StyleSheetEditorDialog</name>
+    <message>
+        <source>Valid Style Sheet</source>
+        <translation>Коректна таблиця стилів</translation>
+    </message>
+    <message>
+        <source>Add Resource...</source>
+        <translation>Додати ресурс...</translation>
+    </message>
+    <message>
+        <source>Add Gradient...</source>
+        <translation>Додати градієнт...</translation>
+    </message>
+    <message>
+        <source>Add Color...</source>
+        <translation>Додати колір...</translation>
+    </message>
+    <message>
+        <source>Add Font...</source>
+        <translation>Додати шрифт...</translation>
+    </message>
+    <message>
+        <source>Edit Style Sheet</source>
+        <translation>Редагувати таблицю стилів</translation>
+    </message>
+    <message>
+        <source>Invalid Style Sheet</source>
+        <translation>Неправильна таблиця стилів</translation>
+    </message>
+</context>
+<context>
+    <name>qdesigner_internal::TabOrderEditor</name>
+    <message>
+        <source>Start from Here</source>
+        <translation>Почати звідси</translation>
+    </message>
+    <message>
+        <source>Restart</source>
+        <translation>Почати спочатку</translation>
+    </message>
+    <message>
+        <source>Tab Order List...</source>
+        <translation>Список порядку обходу...</translation>
+    </message>
+    <message>
+        <source>Tab Order List</source>
+        <translation>Список порядку обходу</translation>
+    </message>
+    <message>
+        <source>Tab Order</source>
+        <translation>Порядок обходу</translation>
+    </message>
+</context>
+<context>
+    <name>qdesigner_internal::TabOrderEditorPlugin</name>
+    <message>
+        <source>Edit Tab Order</source>
+        <translation>Редагувати порядок обходу</translation>
+    </message>
+</context>
+<context>
+    <name>qdesigner_internal::TabOrderEditorTool</name>
+    <message>
+        <source>Edit Tab Order</source>
+        <translation>Редагувати порядок обходу</translation>
+    </message>
+</context>
+<context>
+    <name>qdesigner_internal::TableWidgetEditor</name>
+    <message>
+        <source>Edit Table Widget</source>
+        <translation>Редагування віджета &quot;Таблиця&quot;</translation>
+    </message>
+    <message>
+        <source>&amp;Items</source>
+        <translation>&amp;Елементи</translation>
+    </message>
+    <message>
+        <source>Table Items</source>
+        <translation>Елементи таблиці</translation>
+    </message>
+    <message>
+        <source>Properties &amp;&gt;&gt;</source>
+        <translation>Властивост&amp;і &gt;&gt;</translation>
+    </message>
+    <message>
+        <source>New Column</source>
+        <translation>Новий стовпчик</translation>
+    </message>
+    <message>
+        <source>New Row</source>
+        <translation>Новий рядок</translation>
+    </message>
+    <message>
+        <source>&amp;Columns</source>
+        <translation>&amp;Стовпці</translation>
+    </message>
+    <message>
+        <source>&amp;Rows</source>
+        <translation>&amp;Рядки</translation>
+    </message>
+    <message>
+        <source>Properties &amp;&lt;&lt;</source>
+        <translation>Властивост&amp;і &lt;&lt;</translation>
+    </message>
+</context>
+<context>
+    <name>qdesigner_internal::TableWidgetTaskMenu</name>
+    <message>
+        <source>Edit Items...</source>
+        <translation>Редагувати елементи...</translation>
+    </message>
+</context>
+<context>
+    <name>qdesigner_internal::TemplateOptionsWidget</name>
+    <message>
+        <source>Form</source>
+        <translation>Форма</translation>
+    </message>
+    <message>
+        <source>Additional Template Paths</source>
+        <translation>Додаткові шляхи до шаблонів</translation>
+    </message>
+    <message>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <source>Pick a directory to save templates in</source>
+        <translation>Виберіть теку для збереження шаблонів</translation>
+    </message>
+</context>
+<context>
+    <name>qdesigner_internal::TextEditTaskMenu</name>
+    <message>
+        <source>Edit HTML</source>
+        <translation>Редагувати HTML</translation>
+    </message>
+    <message>
+        <source>Change HTML...</source>
+        <translation>Змінити HTML...</translation>
+    </message>
+    <message>
+        <source>Edit Text</source>
+        <translation>Редагувати текст</translation>
+    </message>
+    <message>
+        <source>Change Plain Text...</source>
+        <translation>Змінити простий текст...</translation>
+    </message>
+</context>
+<context>
+    <name>qdesigner_internal::TextEditor</name>
+    <message>
+        <source>Choose Resource...</source>
+        <translation>Оберіть ресурс...</translation>
+    </message>
+    <message>
+        <source>Choose File...</source>
+        <translation>Оберіть файл...</translation>
+    </message>
+    <message>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <source>Choose a File</source>
+        <translation>Оберіть файл</translation>
+    </message>
+</context>
+<context>
+    <name>qdesigner_internal::ToolBarEventFilter</name>
+    <message>
+        <source>Insert Separator before &apos;%1&apos;</source>
+        <translation>Вставити розділювач перед %1</translation>
+    </message>
+    <message>
+        <source>Append Separator</source>
+        <translation>Приєднати розділювач</translation>
+    </message>
+    <message>
+        <source>Remove action &apos;%1&apos;</source>
+        <translation>Видалити дію &apos;%1&apos;</translation>
+    </message>
+    <message>
+        <source>Remove Toolbar &apos;%1&apos;</source>
+        <translation>Видалити панель інструментів &apos;%1&apos;</translation>
+    </message>
+    <message>
+        <source>Insert Separator</source>
+        <translation>Вставити розділювач</translation>
+    </message>
+</context>
+<context>
+    <name>qdesigner_internal::TreeWidgetEditor</name>
+    <message>
+        <source>Edit Tree Widget</source>
+        <translation>Редагування віджета &quot;Дерево&quot;</translation>
+    </message>
+    <message>
+        <source>&amp;Items</source>
+        <translation>&amp;Елементи</translation>
+    </message>
+    <message>
+        <source>Tree Items</source>
+        <translation>Елементи дерева</translation>
+    </message>
+    <message>
+        <source>1</source>
+        <translation>1</translation>
+    </message>
+    <message>
+        <source>New Item</source>
+        <translation>Новий елемент</translation>
+    </message>
+    <message>
+        <source>&amp;New</source>
+        <translation>&amp;Новий</translation>
+    </message>
+    <message>
+        <source>New Subitem</source>
+        <translation>Новий піделемент</translation>
+    </message>
+    <message>
+        <source>New &amp;Subitem</source>
+        <translation>Новий &amp;піделемент</translation>
+    </message>
+    <message>
+        <source>Delete Item</source>
+        <translation>Видалити елемент</translation>
+    </message>
+    <message>
+        <source>&amp;Delete</source>
+        <translation>Ви&amp;далити</translation>
+    </message>
+    <message>
+        <source>Move Item Left (before Parent Item)</source>
+        <translation>Пересунути елемент вліво (перед батьківським)</translation>
+    </message>
+    <message>
+        <source>L</source>
+        <translation>Л</translation>
+    </message>
+    <message>
+        <source>Move Item Right (as a First Subitem of the Next Sibling Item)</source>
+        <translation>Пересунути елемент вправо (як перший піделемент наступного сусіда)</translation>
+    </message>
+    <message>
+        <source>R</source>
+        <translation>П</translation>
+    </message>
+    <message>
+        <source>Move Item Up</source>
+        <translation>Пересунути елемент вгору</translation>
+    </message>
+    <message>
+        <source>U</source>
+        <translation>В</translation>
+    </message>
+    <message>
+        <source>Move Item Down</source>
+        <translation>Пересунути елемент вниз</translation>
+    </message>
+    <message>
+        <source>D</source>
+        <translation>Н</translation>
+    </message>
+    <message>
+        <source>Properties &amp;&gt;&gt;</source>
+        <translation>Властивост&amp;і &gt;&gt;</translation>
+    </message>
+    <message>
+        <source>New Column</source>
+        <translation>Новий стовпчик</translation>
+    </message>
+    <message>
+        <source>&amp;Columns</source>
+        <translation>&amp;Стовпці</translation>
+    </message>
+    <message>
+        <source>Per column properties</source>
+        <translation>Властивості стовпця</translation>
+    </message>
+    <message>
+        <source>Common properties</source>
+        <translation>Загальні властивості</translation>
+    </message>
+    <message>
+        <source>Properties &amp;&lt;&lt;</source>
+        <translation>Властивост&amp;і &lt;&lt;</translation>
+    </message>
+</context>
+<context>
+    <name>qdesigner_internal::TreeWidgetTaskMenu</name>
+    <message>
+        <source>Edit Items...</source>
+        <translation>Редагувати елементи...</translation>
+    </message>
+</context>
+<context>
+    <name>qdesigner_internal::WidgetBox</name>
+    <message>
+        <source>Warning: Widget creation failed in the widget box. This could be caused by invalid custom widget XML.</source>
+        <translation>Попередження: Збій створення віджета в панелі віджетів. Причиною цього може бути неправильний XML користувацького віджета.</translation>
+    </message>
+</context>
+<context>
+    <name>qdesigner_internal::WidgetBoxTreeWidget</name>
+    <message>
+        <source>Scratchpad</source>
+        <translation>Нотатник</translation>
+    </message>
+    <message>
+        <source>Custom Widgets</source>
+        <translation>Віджети користувача</translation>
+    </message>
+    <message>
+        <source>Expand all</source>
+        <translation>Розгорнути все</translation>
+    </message>
+    <message>
+        <source>Collapse all</source>
+        <translation>Згорнути все</translation>
+    </message>
+    <message>
+        <source>List View</source>
+        <translation>Списком</translation>
+    </message>
+    <message>
+        <source>Icon View</source>
+        <translation>Значками</translation>
+    </message>
+    <message>
+        <source>Remove</source>
+        <translation>Видалити</translation>
+    </message>
+    <message>
+        <source>Edit name</source>
+        <translation>Редагувати ім&apos;я</translation>
+    </message>
+</context>
+<context>
+    <name>qdesigner_internal::WidgetDataBase</name>
+    <message>
+        <source>A custom widget plugin whose class name (%1) matches that of an existing class has been found.</source>
+        <translation>Користувацький додаток віджета з іменем класу (%1) збігається з існуючим класом.</translation>
+    </message>
+</context>
+<context>
+    <name>qdesigner_internal::WidgetEditorTool</name>
+    <message>
+        <source>Edit Widgets</source>
+        <translation>Редагувати віджети</translation>
+    </message>
+</context>
+<context>
+    <name>qdesigner_internal::WidgetFactory</name>
+    <message>
+        <source>The custom widget factory registered for widgets of class %1 returned 0.</source>
+        <translation>Користувацька фабрика віджетів, що зареєстрована для класу %1, повернула 0.</translation>
+    </message>
+    <message>
+        <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>Сталася розбіжність імені класу під час створення віджета, використовуючи користувацьку фабрику віджетів, що зареєстрована для класу %1. Вона повернула віджет класу %2.</translation>
+    </message>
+    <message>
+        <source>%1 Widget</source>
+        <translation>Віджет %1</translation>
+    </message>
+    <message>
+        <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>Не вдалось визначити поточну сторінку контейнера &apos;%1&apos; (%2) під час створення розташування. Це вказує на некоректність файлу UI, можливо, розташування було створене на контейнерному віджеті.</translation>
+    </message>
+    <message>
+        <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>Спроба додати розташування для віджета &apos;%1&apos; (%2), який вже має некероване розташування %3.
+Це вказує на некоректність в файлі UI.</translation>
+    </message>
+    <message>
+        <source>Cannot create style &apos;%1&apos;.</source>
+        <translation>Неможливо створити стиль &apos;%1&apos;.</translation>
+    </message>
+</context>
+<context>
+    <name>qdesigner_internal::WizardContainerWidgetTaskMenu</name>
+    <message>
+        <source>Next</source>
+        <translation>Далі</translation>
+    </message>
+    <message>
+        <source>Back</source>
+        <translation>Назад</translation>
+    </message>
+</context>
+<context>
+    <name>qdesigner_internal::ZoomMenu</name>
+    <message>
+        <source>%1 %</source>
+        <extracomment>Zoom factor</extracomment>
+        <translation>%1 %</translation>
+    </message>
+</context>
+<context>
+    <name>qdesigner_internal::ZoomablePreviewDeviceSkin</name>
+    <message>
+        <source>&amp;Zoom</source>
+        <translation>Масштаб</translation>
+    </message>
+</context>
+</TS>
--- a/translations/linguist_de.ts	Fri Sep 17 08:34:18 2010 +0300
+++ b/translations/linguist_de.ts	Mon Oct 04 01:19:32 2010 +0300
@@ -4,7 +4,6 @@
 <context>
     <name>AboutDialog</name>
     <message>
-        <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+1366"/>
         <source>Qt Linguist</source>
         <translation>Qt Linguist</translation>
     </message>
@@ -12,27 +11,22 @@
 <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>Automatische Übersetzung von &apos;%1&apos; - Qt Linguist</translation>
     </message>
     <message>
-        <location line="+37"/>
         <source>Searching, please wait...</source>
         <translation>Suche, bitte warten ...</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>&amp;Cancel</source>
         <translation>&amp;Abbrechen</translation>
     </message>
     <message>
-        <location line="+42"/>
         <source>Linguist batch translator</source>
         <translation>Automatischer Übersetzer (Linguist)</translation>
     </message>
     <message numerus="yes">
-        <location line="+1"/>
         <source>Batch translated %n entries</source>
         <translation>
             <numerusform>1 Eintrag wurde automatisch übersetzt</numerusform>
@@ -40,62 +34,50 @@
         </translation>
     </message>
     <message>
-        <location filename="../tools/linguist/linguist/batchtranslation.ui"/>
         <source>Qt Linguist - Batch Translation</source>
         <translation>Qt Linguist - Automatische Übersetzung</translation>
     </message>
     <message>
-        <location/>
         <source>Options</source>
         <translation>Optionen</translation>
     </message>
     <message>
-        <location/>
         <source>Set translated entries to finished</source>
         <translation>Übersetzung als erledigt markieren</translation>
     </message>
     <message>
-        <location/>
         <source>Retranslate entries with existing translation</source>
         <translation>Einträge mit bereits existierender Übersetzung neu übersetzen</translation>
     </message>
     <message>
-        <location/>
         <source>Translate also finished entries</source>
         <translation>Erledigte Einträge übersetzen</translation>
     </message>
     <message>
-        <location/>
         <source>Phrase book preference</source>
         <translation>Wörterbücher</translation>
     </message>
     <message>
-        <location/>
         <source>Move up</source>
         <translation>Nach oben</translation>
     </message>
     <message>
-        <location/>
         <source>Move down</source>
         <translation>Nach unten</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Run</source>
         <translation>&amp;Ausführen</translation>
     </message>
     <message>
-        <location/>
         <source>Cancel</source>
         <translation>Abbrechen</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>Geänderte Einträge werden als unerledigt gekennzeichnet, wenn die obige Einstellung &apos;Übersetzung als erledigt markieren&apos; nicht aktiviert ist</translation>
     </message>
     <message>
-        <location/>
         <source>The batch translator will search through the selected phrase books in the order given above</source>
         <translation>Der automatische Übersetzer wird in der angegebenen Reihenfolge durch die ausgewählten Wörterbücher gehen</translation>
     </message>
@@ -103,45 +85,36 @@
 <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;Mehrfach vorhandene Meldungen in &apos;%1&apos;:</translation>
     </message>
     <message>
-        <location line="+4"/>
-        <location line="+8"/>
         <source>&lt;p&gt;[more duplicates omitted]</source>
         <translation>&lt;p&gt;[weitere mehrfach vorhandene Nachrichten weggelassen]</translation>
     </message>
     <message>
-        <location line="-5"/>
         <source>&lt;p&gt;* ID: %1</source>
         <translation>&lt;p&gt;* ID: %1</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>&lt;p&gt;* Context: %1&lt;br&gt;* Source: %2</source>
         <translation>&lt;p&gt;* Kontext: %1&lt;br&gt;* Quelle: %2</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>&lt;br&gt;* Comment: %3</source>
         <translation>&lt;br&gt;* Kommentar: %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>Die Regeln zur Pluralbildung der Sprache &apos;%1&apos; sind in Linguist nicht definiert.
 Es wird mit einer einfachen Universalform gearbeitet.</translation>
     </message>
     <message>
-        <location line="+56"/>
         <source>Cannot create &apos;%2&apos;: %1</source>
         <translation>&apos;%2&apos; kann nicht erzeugt werden: %1</translation>
     </message>
     <message>
-        <location line="+56"/>
         <source>Universal Form</source>
         <translation>Universalform</translation>
     </message>
@@ -149,37 +122,30 @@
 <context>
     <name>ErrorsView</name>
     <message>
-        <location filename="../tools/linguist/linguist/errorsview.cpp" line="+76"/>
         <source>Accelerator possibly superfluous in translation.</source>
         <translation>Möglicherweise überflüssiger Kurzbefehl im Übersetzungstext.</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Accelerator possibly missing in translation.</source>
         <translation>Kurzbefehl fehlt im Übersetzungstext.</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Translation does not end with the same punctuation as the source text.</source>
         <translation>Interpunktion am Ende des Übersetzungstextes unterscheidet sich von Interpunktion des Ursprungstextes.</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>A phrase book suggestion for &apos;%1&apos; was ignored.</source>
         <translation>Ein Vorschlag aus dem Wörterbuch für &apos;%1&apos; wurde nicht berücksichtigt.</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Translation does not refer to the same place markers as in the source text.</source>
         <translation>Platzhalter im Übersetzungstext und Ursprungstext unterscheiden sich.</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Translation does not contain the necessary %n place marker.</source>
         <translation>Der erforderliche Platzhalter (%n) fehlt in der Übersetzung.</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Unknown error</source>
         <translation>Unbekannter Fehler</translation>
     </message>
@@ -187,97 +153,78 @@
 <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>Dieses Fenster erlaubt die Suche in der Übersetzungsdatei.</translation>
     </message>
     <message>
-        <location/>
         <source>Type in the text to search for.</source>
         <translation>Geben Sie den Text ein, nach dem gesucht werden soll.</translation>
     </message>
     <message>
-        <location/>
         <source>Options</source>
         <translation>Optionen</translation>
     </message>
     <message>
-        <location/>
         <source>Source texts are searched when checked.</source>
         <translation>Wenn aktiviert, wird in den Ursprungstexten gesucht.</translation>
     </message>
     <message>
-        <location/>
         <source>Translations are searched when checked.</source>
         <translation>Wenn ausgewählt, wird in den Übersetzungen gesucht.</translation>
     </message>
     <message>
-        <location/>
         <source>Texts such as &apos;TeX&apos; and &apos;tex&apos; are considered as different when checked.</source>
         <translation>Wenn aktiviert, werden Texte wie &apos;TeX&apos; und &apos;tex&apos; als unterschiedlich betrachtet.</translation>
     </message>
     <message>
-        <location/>
         <source>Comments and contexts are searched when checked.</source>
         <translation>Wenn ausgewählt, werden Kommentare und Kontextnamen durchsucht.</translation>
     </message>
     <message>
-        <location/>
         <source>Find</source>
         <translation>Suchen</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Find what:</source>
         <translation>&amp;Suchmuster:</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Source texts</source>
         <translation>&amp;Ursprungstexte</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Translations</source>
         <translation>&amp;Übersetzungen</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Match case</source>
         <translation>&amp;Groß-/Kleinschreibung beachten</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Comments</source>
         <translation>&amp;Kommentare</translation>
     </message>
     <message>
-        <location/>
         <source>Ignore &amp;accelerators</source>
         <translation>Tastenkürzel &amp;ignorieren</translation>
     </message>
     <message>
-        <location/>
         <source>Click here to find the next occurrence of the text you typed in.</source>
         <translation>Klicken Sie hier, um zum nächsten Vorkommen des Suchtextes zu springen.</translation>
     </message>
     <message>
-        <location/>
         <source>Find Next</source>
         <translation>Weitersuchen</translation>
     </message>
     <message>
-        <location/>
         <source>Click here to close this window.</source>
         <translation>Klicken Sie hier, um das Fenster zu schließen.</translation>
     </message>
     <message>
-        <location/>
         <source>Cancel</source>
         <translation>Abbrechen</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>
@@ -286,30 +233,25 @@
 <context>
     <name>FormMultiWidget</name>
     <message>
-        <location filename="../tools/linguist/linguist/messageeditorwidgets.cpp" line="+302"/>
         <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>Bestätigung - Qt Linguist</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Delete non-empty length variant?</source>
         <translation>Soll die ausgefüllte Längenvariante gelöscht werden?</translation>
     </message>
@@ -317,7 +259,6 @@
 <context>
     <name>LRelease</name>
     <message numerus="yes">
-        <location filename="../tools/linguist/shared/qm.cpp" line="+763"/>
         <source>Dropped %n message(s) which had no ID.</source>
         <translation>
             <numerusform>Es wurde ein Eintrag ohne Bezeichner gelöscht.</numerusform>
@@ -325,7 +266,6 @@
         </translation>
     </message>
     <message numerus="yes">
-        <location line="+4"/>
         <source>Excess context/disambiguation dropped from %n message(s).</source>
         <translation>
             <numerusform>Es wurde überflüssiger Kontext beziehungsweise überflüssige Infomation zur Unterscheidung bei einem Eintrag entfernt.</numerusform>
@@ -333,10 +273,23 @@
         </translation>
     </message>
     <message numerus="yes">
-        <location line="+8"/>
+        <source>    Generated %n translation(s) (%1 finished and %2 unfinished)</source>
+        <translation>
+            <numerusform>    Eine Übersetzung wurde erzeugt (%1 abgeschlossen und %2 nicht abgeschlossen)</numerusform>
+            <numerusform>    %n Übersetzungen wurden erzeugt (%1 abgeschlossen und %2 nicht abgeschlossen)</numerusform>
+        </translation>
+    </message>
+    <message numerus="yes">
+        <source>    Ignored %n untranslated source text(s)</source>
+        <translation>
+            <numerusform>    Ein nicht übersetzter Text wurde ignoriert</numerusform>
+            <numerusform>    %n nicht übersetzte Texte wurden ignoriert</numerusform>
+        </translation>
+    </message>
+    <message numerus="yes">
         <source>    Generated %n translation(s) (%1 finished and %2 unfinished)
 </source>
-        <translation>
+        <translation type="obsolete">
             <numerusform>    Eine Übersetzung wurde erzeugt (%1 abgeschlossen und %2 nicht abgeschlossen)
 </numerusform>
             <numerusform>   %n Übersetzungen wurden erzeugt (%1 abgeschlossene und %2 nicht abgeschlossene)
@@ -344,10 +297,9 @@
         </translation>
     </message>
     <message numerus="yes">
-        <location line="+4"/>
         <source>    Ignored %n untranslated source text(s)
 </source>
-        <translation>
+        <translation type="obsolete">
             <numerusform>    Ein nicht übersetzter Text wurde ignoriert
 </numerusform>
             <numerusform>    %n nicht übersetzte Texte wurden ignoriert
@@ -358,628 +310,496 @@
 <context>
     <name>MainWindow</name>
     <message>
-        <location filename="../tools/linguist/linguist/mainwindow.ui"/>
         <source>MainWindow</source>
         <translation>Hauptfenster</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Phrases</source>
         <translation>&amp;Wörterbuch</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Close Phrase Book</source>
         <translation>Wörterbuch &amp;Schließen</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Edit Phrase Book</source>
         <translation>Wörterbuch &amp;bearbeiten</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Print Phrase Book</source>
         <translation>Wörterbuch &amp;drucken</translation>
     </message>
     <message>
-        <location/>
         <source>V&amp;alidation</source>
         <translation>V&amp;alidierung</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;View</source>
         <translation>&amp;Ansicht</translation>
     </message>
     <message>
-        <location/>
         <source>Vie&amp;ws</source>
         <translation>&amp;Ansichten</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Toolbars</source>
         <translation>&amp;Werkzeugleisten</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Help</source>
         <translation>&amp;Hilfe</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Translation</source>
         <translation>&amp;Übersetzung</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;File</source>
         <translation>&amp;Datei</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Edit</source>
         <translation>&amp;Bearbeiten</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Open...</source>
         <translation>Ö&amp;ffnen ...</translation>
     </message>
     <message>
-        <location/>
         <source>Open a Qt translation source file (TS file) for editing</source>
         <translation>Qt-Übersetzungsdatei (TS-Datei) zum Bearbeiten öffnen</translation>
     </message>
     <message>
-        <location/>
         <source>Ctrl+O</source>
         <translation>Ctrl+O</translation>
     </message>
     <message>
-        <location/>
         <source>E&amp;xit</source>
         <translation>&amp;Beenden</translation>
     </message>
     <message>
-        <location/>
         <source>Close this window and exit.</source>
         <translation>Dieses Fenster schließen und das Programm beenden.</translation>
     </message>
     <message>
-        <location/>
         <source>Ctrl+Q</source>
         <translation>Ctrl+Q</translation>
     </message>
     <message>
-        <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+668"/>
-        <location line="+15"/>
         <source>&amp;Save</source>
         <translation>&amp;Speichern</translation>
     </message>
     <message>
-        <location filename="../tools/linguist/linguist/mainwindow.ui"/>
         <source>Save changes made to this Qt translation source file</source>
         <translation>Änderungen an der Qt-Übersetzungsdatei speichern</translation>
     </message>
     <message>
-        <location/>
         <source>Move to the previous unfinished item.</source>
         <translation>Zum vorherigen unerledigten Eintrag gehen.</translation>
     </message>
     <message>
-        <location/>
         <source>Move to the next unfinished item.</source>
         <translation>Zum nächsten unerledigten Eintrag gehen.</translation>
     </message>
     <message>
-        <location/>
         <source>Move to the previous item.</source>
         <translation>Zum vorigen Eintrag gehen.</translation>
     </message>
     <message>
-        <location/>
         <source>Move to the next item.</source>
         <translation>Zum nächsten Eintrag gehen.</translation>
     </message>
     <message>
-        <location/>
         <source>Mark this item as done and move to the next unfinished item.</source>
         <translation>Diesen Eintrag als erledigt markieren und zum nächsten unerledigten Eintrag gehen.</translation>
     </message>
     <message>
-        <location/>
         <source>Copy from source text</source>
         <translation>Ursprungstext übernehmen</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>Die Prüfung der Tastenkürzel, das heißt, die Übereinstimmung der kaufmännischen Und-Zeichen in Quelle und Übersetzung ein- bzw. ausschalten. Bei Fehlschlag wird eine Warnung im Hinweis-Fenster angezeigt.</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>Die Prüfung der Satzendezeichen am Ende des Textes ein- bzw. ausschalten. Bei Fehlschlag wird eine Warnung im Hinweis-Fenster angezeigt.</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>Die Prüfung der Verwendung der Wörterbuchvorschläge ein- bzw. ausschalten. Bei Fehlschlag wird eine Warnung im Hinweis-Fenster angezeigt.</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>Die Prüfung der Platzhalter, das heißt, ob %1, %2 usw. in Ursprungstext und Übersetzung übereinstimmend verwendet werden, ein- bzw. ausschalten. Bei Fehlschlag wird eine Warnung im Hinweis-Fenster angezeigt.</translation>
     </message>
     <message>
-        <location/>
         <source>Open Read-O&amp;nly...</source>
         <translation>Schr&amp;eibgeschützt öffnen ...</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Save All</source>
         <translation>&amp;Alle speichern</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>Speichern &amp;unter...</translation>
     </message>
     <message>
-        <location/>
         <source>Save As...</source>
         <translation>Speichern unter ...</translation>
     </message>
     <message>
-        <location/>
         <source>Save changes made to this Qt translation source file into a new file.</source>
         <translation>Änderungen an dieser Qt-Übersetzungsdatei in einer neuen Datei speichern.</translation>
     </message>
     <message>
-        <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+4"/>
         <source>&amp;Release</source>
         <translation>&amp;Freigeben</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-Nachrichtendatei (QM-Datei) aus der aktuellen Übersetzungsdatei erzeugen.</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Print...</source>
         <translation>&amp;Drucken ...</translation>
     </message>
     <message>
-        <location/>
         <source>Ctrl+P</source>
         <translation>Ctrl+P</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Undo</source>
         <translation>&amp;Rückgängig</translation>
     </message>
     <message>
-        <location/>
         <source>Recently Opened &amp;Files</source>
         <translation>Zu&amp;letzt bearbeitete Dateien</translation>
     </message>
     <message>
-        <location/>
         <source>Save</source>
         <translation>Speichern</translation>
     </message>
     <message>
-        <location/>
         <source>Print a list of all the translation units in the current translation source file.</source>
         <translation>Liste aller Übersetzungseinheiten in der aktuellen Übersetzungsdatei drucken.</translation>
     </message>
     <message>
-        <location/>
         <source>Undo the last editing operation performed on the current translation.</source>
         <translation>Die letzte Änderung an der Übersetzung rückgängig machen.</translation>
     </message>
     <message>
-        <location/>
         <source>Ctrl+Z</source>
         <translation>Ctrl+Z</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Redo</source>
         <translation>&amp;Wiederherstellen</translation>
     </message>
     <message>
-        <location/>
         <source>Redo an undone editing operation performed on the translation.</source>
         <translation>Die letzte rückgängig gemachte Änderung wieder herstellen.</translation>
     </message>
     <message>
-        <location/>
         <source>Ctrl+Y</source>
         <translation>Ctrl+Y</translation>
     </message>
     <message>
-        <location/>
         <source>Cu&amp;t</source>
         <translation>&amp;Ausschneiden</translation>
     </message>
     <message>
-        <location/>
         <source>Copy the selected translation text to the clipboard and deletes it.</source>
         <translation>Den ausgewählten Übersetzungstext in die Zwischenablage kopieren und löschen.</translation>
     </message>
     <message>
-        <location/>
         <source>Ctrl+X</source>
         <translation>Ctrl+X</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Copy</source>
         <translation>&amp;Kopieren</translation>
     </message>
     <message>
-        <location/>
         <source>Copy the selected translation text to the clipboard.</source>
         <translation>Den ausgewählten Übersetzungstext in die Zwischenablage kopieren.</translation>
     </message>
     <message>
-        <location/>
         <source>Ctrl+C</source>
         <translation>Ctrl+C</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Paste</source>
         <translation>&amp;Einfügen</translation>
     </message>
     <message>
-        <location/>
         <source>Paste the clipboard text into the translation.</source>
         <translation>Text aus der Zwischenablage in die Übersetzung einfügen.</translation>
     </message>
     <message>
-        <location/>
         <source>Ctrl+V</source>
         <translation>Ctrl+V</translation>
     </message>
     <message>
-        <location/>
         <source>Select &amp;All</source>
         <translation>Alles &amp;markieren</translation>
     </message>
     <message>
-        <location/>
         <source>Select the whole translation text.</source>
         <translation>Den gesamten Übersetzungstext auswählen.</translation>
     </message>
     <message>
-        <location/>
         <source>Ctrl+A</source>
         <translation>Ctrl+A</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Find...</source>
         <translation>&amp;Suchen ...</translation>
     </message>
     <message>
-        <location/>
         <source>Search for some text in the translation source file.</source>
         <translation>In der Übersetzungsdatei nach Text suchen.</translation>
     </message>
     <message>
-        <location/>
         <source>Ctrl+F</source>
         <translation>Ctrl+F</translation>
     </message>
     <message>
-        <location/>
         <source>Find &amp;Next</source>
         <translation>&amp;Weitersuchen</translation>
     </message>
     <message>
-        <location/>
         <source>Continue the search where it was left.</source>
         <translation>Die Suche fortsetzen.</translation>
     </message>
     <message>
-        <location/>
         <source>F3</source>
         <translation>F3</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Prev Unfinished</source>
         <translation>&amp;Vorheriger Unerledigter</translation>
     </message>
     <message>
-        <location/>
         <source>Close</source>
         <translation>Schließen</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Close All</source>
         <translation>A&amp;lle schließen</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;Nächster Unerledigter</translation>
     </message>
     <message>
-        <location/>
         <source>P&amp;rev</source>
         <translation>V&amp;orheriger</translation>
     </message>
     <message>
-        <location/>
         <source>Ctrl+Shift+K</source>
         <translation>Ctrl+Shift+K</translation>
     </message>
     <message>
-        <location/>
         <source>Ne&amp;xt</source>
         <translation>Nä&amp;chster</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Done and Next</source>
         <translation>&amp;Fertig und Nächster</translation>
     </message>
     <message>
-        <location/>
         <source>Copies the source text into the translation field.</source>
         <translation>Kopiert den Ursprungstext in das Übersetzungsfeld.</translation>
     </message>
     <message>
-        <location/>
         <source>Ctrl+B</source>
         <translation>Ctrl+B</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Accelerators</source>
         <translation>&amp;Kurzbefehle</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Ending Punctuation</source>
         <translation>&amp;Punktierung am Ende</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Phrase matches</source>
         <translation>&amp;Wörterbuch</translation>
     </message>
     <message>
-        <location/>
         <source>Place &amp;Marker Matches</source>
         <translation>Platz&amp;halter</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;New Phrase Book...</source>
         <translation>&amp;Neues Wörterbuch ...</translation>
     </message>
     <message>
-        <location/>
         <source>Create a new phrase book.</source>
         <translation>Ein neues Wörterbuch erzeugen.</translation>
     </message>
     <message>
-        <location/>
         <source>Ctrl+N</source>
         <translation>Ctrl+N</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Open Phrase Book...</source>
         <translation>&amp;Wörterbuch öffnen ...</translation>
     </message>
     <message>
-        <location/>
         <source>Open a phrase book to assist translation.</source>
         <translation>Ein Wörterbuch zur Unterstützung bei der Übersetzung öffnen.</translation>
     </message>
     <message>
-        <location/>
         <source>Ctrl+H</source>
         <translation>Ctrl+H</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Reset Sorting</source>
         <translation>&amp;Sortierung zurücksetzen</translation>
     </message>
     <message>
-        <location/>
         <source>Sort the items back in the same order as in the message file.</source>
         <translation>Die Einträge in der gleichen Reihenfolge wie in der ursprünglichen Übersetzungsdatei sortieren.</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Display guesses</source>
         <translation>&amp;Vorschläge anzeigen</translation>
     </message>
     <message>
-        <location/>
         <source>Set whether or not to display translation guesses.</source>
         <translation>Darstellung von Übersetzungsvorschlägen aktivieren/deaktivieren.</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Statistics</source>
         <translation>S&amp;tatistik</translation>
     </message>
     <message>
-        <location/>
         <source>Display translation statistics.</source>
         <translation>Zeige Übersetzungsstatistik an.</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Manual</source>
         <translation>&amp;Handbuch</translation>
     </message>
     <message>
-        <location/>
         <source>F1</source>
         <translation>F1</translation>
     </message>
     <message>
-        <location/>
         <source>About Qt Linguist</source>
         <translation>Über Qt Linguist</translation>
     </message>
     <message>
-        <location/>
         <source>About Qt</source>
         <translation>Über Qt</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;What&apos;s This?</source>
         <translation>&amp;Direkthilfe</translation>
     </message>
     <message>
-        <location/>
         <source>What&apos;s This?</source>
         <translation>Direkthilfe</translation>
     </message>
     <message>
-        <location/>
         <source>Enter What&apos;s This? mode.</source>
         <translation>Direkthilfe-Modus aktivieren.</translation>
     </message>
     <message>
-        <location/>
         <source>Shift+F1</source>
         <translation>Shift+F1</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Search And Translate...</source>
         <translation>Suchen und &amp;übersetzen ...</translation>
     </message>
     <message>
-        <location/>
         <source>Replace the translation on all entries that matches the search source text.</source>
         <translation>Die Übersetzung aller Einträge ersetzen, die dem Suchtext entsprechen.</translation>
     </message>
     <message>
-        <location/>
-        <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+21"/>
         <source>&amp;Batch Translation...</source>
         <translation>&amp;Automatische Übersetzung ...</translation>
     </message>
     <message>
-        <location/>
         <source>Batch translate all entries using the information in the phrase books.</source>
         <translation>Alle Einträge automatisch mit Hilfe des Wörterbuchs übersetzen.</translation>
     </message>
     <message>
-        <location/>
-        <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-34"/>
-        <location line="+10"/>
         <source>Release As...</source>
         <translation>Freigeben unter ...</translation>
     </message>
     <message>
-        <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-2035"/>
         <source></source>
         <comment>This is the application&apos;s main window.</comment>
         <translation></translation>
     </message>
     <message>
-        <location line="+190"/>
         <source>Source text</source>
         <translation>Ursprungstext</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>Kontext</translation>
     </message>
     <message>
-        <location line="-62"/>
         <source>Items</source>
         <translation>Einträge</translation>
     </message>
     <message>
-        <location line="+79"/>
         <source>This panel lists the source contexts.</source>
         <translation>Dieser Bereich zeigt die Kontexte an.</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>Strings</source>
         <translation>Zeichenketten</translation>
     </message>
     <message>
-        <location line="+37"/>
         <source>Phrases and guesses</source>
         <translation>Wörterbuch und Vorschläge</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>Sources and Forms</source>
         <translation>Quelldateien und Formulare</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Warnings</source>
         <translation>Hinweise</translation>
     </message>
     <message>
-        <location line="+59"/>
         <source> MOD </source>
         <comment>status bar: file(s) modified</comment>
         <translation>Geändert</translation>
     </message>
     <message>
-        <location line="+139"/>
         <source>Loading...</source>
         <translation>Lade ...</translation>
     </message>
     <message>
-        <location line="+32"/>
-        <location line="+22"/>
         <source>Loading File - Qt Linguist</source>
         <translation>Laden - 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>
@@ -988,7 +808,6 @@
 Sollen die bereits geöffneten Dateien vorher geschlossen werden?</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>
@@ -997,7 +816,6 @@
 Soll die erstgenannte Datei übersprungen werden?</translation>
     </message>
     <message numerus="yes">
-        <location line="+61"/>
         <source>%n translation unit(s) loaded.</source>
         <translation>
             <numerusform>Eine Übersetzungseinheit geladen.</numerusform>
@@ -1005,124 +823,84 @@
         </translation>
     </message>
     <message>
-        <location line="+94"/>
         <source>Related files (%1);;</source>
         <translation>Verwandte Dateien (%1);;</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Open Translation Files</source>
         <translation>Übersetzungsdateien öffnen</translation>
     </message>
     <message>
-        <location line="+10"/>
-        <location line="+31"/>
         <source>File saved.</source>
         <translation>Datei gespeichert.</translation>
     </message>
     <message>
-        <location filename="../tools/linguist/linguist/mainwindow.ui"/>
-        <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+15"/>
-        <location line="+1187"/>
         <source>Release</source>
         <translation>Freigeben</translation>
     </message>
     <message>
-        <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-1186"/>
         <source>Qt message files for released applications (*.qm)
 All files (*)</source>
         <translation>Qt-Nachrichtendateien (*.qm)
 Alle Dateien (*)</translation>
     </message>
     <message>
-        <location line="+3"/>
-        <location line="+12"/>
         <source>File created.</source>
         <translation>Datei erzeugt.</translation>
     </message>
     <message>
-        <location line="+34"/>
-        <location line="+355"/>
         <source>Printing...</source>
         <translation>Drucke ...</translation>
     </message>
     <message>
-        <location line="-347"/>
         <source>Context: %1</source>
         <translation>Kontext: %1</translation>
     </message>
     <message>
-        <location line="+32"/>
         <source>finished</source>
         <translation>erledigt</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>unresolved</source>
         <translation>ungelöst</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>obsolete</source>
         <translation>veraltet</translation>
     </message>
     <message>
-        <location line="+15"/>
-        <location line="+307"/>
         <source>Printing... (page %1)</source>
         <translation>Drucke ... (Seite %1)</translation>
     </message>
     <message>
-        <location line="-300"/>
-        <location line="+307"/>
         <source>Printing completed</source>
         <translation>Drucken beendet</translation>
     </message>
     <message>
-        <location line="-305"/>
-        <location line="+307"/>
         <source>Printing aborted</source>
         <translation>Drucken abgebrochen</translation>
     </message>
     <message>
-        <location line="-232"/>
         <source>Search wrapped.</source>
         <translation>Suche beginnt von oben.</translation>
     </message>
     <message>
-        <location line="+17"/>
-        <location line="+278"/>
-        <location line="+34"/>
-        <location line="+24"/>
-        <location line="+22"/>
-        <location line="+538"/>
-        <location line="+1"/>
-        <location line="+274"/>
-        <location line="+40"/>
-        <location line="+10"/>
         <source>Qt Linguist</source>
         <translation>Qt Linguist</translation>
     </message>
     <message>
-        <location line="-1220"/>
-        <location line="+102"/>
         <source>Cannot find the string &apos;%1&apos;.</source>
         <translation>Kann Zeichenkette &apos;%1&apos; nicht finden.</translation>
     </message>
     <message>
-        <location line="-82"/>
         <source>Search And Translate in &apos;%1&apos; - Qt Linguist</source>
         <translation>Suchen und übersetzen in &apos;%1&apos; - Qt Linguist</translation>
     </message>
     <message>
-        <location line="+34"/>
-        <location line="+23"/>
-        <location line="+24"/>
         <source>Translate - Qt Linguist</source>
         <translation>Übersetzung - Qt Linguist</translation>
     </message>
     <message numerus="yes">
-        <location line="-46"/>
         <source>Translated %n entry(s)</source>
         <translation>
             <numerusform>Ein Eintrag übersetzt</numerusform>
@@ -1130,39 +908,32 @@
         </translation>
     </message>
     <message>
-        <location line="+23"/>
         <source>No more occurrences of &apos;%1&apos;. Start over?</source>
         <translation>Keine weiteren Vorkommen von &apos;%1&apos;. Von vorne beginnen?</translation>
     </message>
     <message>
-        <location line="+30"/>
         <source>Create New Phrase Book</source>
         <translation>Erzeugen eines neuen Wörterbuchs</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Qt phrase books (*.qph)
 All files (*)</source>
         <translation>Qt-Wörterbücher (*.qph)
 Alle Dateien (*)</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>Phrase book created.</source>
         <translation>Wörterbuch erzeugt.</translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>Open Phrase Book</source>
         <translation>Wörterbuch öffnen</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Qt phrase books (*.qph);;All files (*)</source>
         <translation>Qt-Wörterbücher (*.qph);;Alle Dateien (*)</translation>
     </message>
     <message numerus="yes">
-        <location line="+7"/>
         <source>%n phrase(s) loaded.</source>
         <translation>
             <numerusform>Ein Wörterbucheintrag geladen.</numerusform>
@@ -1170,328 +941,254 @@
         </translation>
     </message>
     <message>
-        <location line="+93"/>
-        <location line="+3"/>
-        <location line="+7"/>
         <source>Add to phrase book</source>
         <translation>Hinzufügen zum Wörterbuch</translation>
     </message>
     <message>
-        <location line="-9"/>
         <source>No appropriate phrasebook found.</source>
         <translation>Es kann kein geeignetes Wörterbuch gefunden werden.</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Adding entry to phrasebook %1</source>
         <translation>Eintrag zu Wörterbuch %1 hinzufügen</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Select phrase book to add to</source>
         <translation>Zu welchem Wörterbuch soll der Eintrag hinzugefügt werden?</translation>
     </message>
     <message>
-        <location line="+29"/>
         <source>Unable to launch Qt Assistant (%1)</source>
         <translation>Qt Assistant kann nicht gestartet werden (%1)</translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>Version %1</source>
         <translation>Version %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) 2010 Nokia Corporation and/or its subsidiary(-ies).</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+38"/>
         <source>Do you want to save the modified files?</source>
         <translation>Möchten Sie die geänderten Dateien speichern?</translation>
     </message>
     <message>
-        <location line="+22"/>
         <source>Do you want to save &apos;%1&apos;?</source>
         <translation>Möchten Sie &apos;%1&apos; speichern?</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>Es wurden alle Übersetzungseinheiten abgearbeitet.</translation>
     </message>
     <message>
-        <location line="+198"/>
         <source>&amp;Window</source>
         <translation>&amp;Fenster</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Minimize</source>
         <translation>Minimieren</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>Handbuch zu %1 anzeigen.</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Display information about %1.</source>
         <translation>Informationen über %1 anzeigen.</translation>
     </message>
     <message>
-        <location line="+70"/>
         <source>&amp;Save &apos;%1&apos;</source>
         <translation>&apos;%1&apos; &amp;speichern</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Save &apos;%1&apos; &amp;As...</source>
         <translation>&apos;%1&apos; speichern &amp;unter ...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Release &apos;%1&apos;</source>
         <translation>&apos;%1&apos; freigeben</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Release &apos;%1&apos; As...</source>
         <translation>&apos;%1&apos; freigeben unter ...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Close &apos;%1&apos;</source>
         <translation>&apos;%1&apos; &amp;schließen</translation>
     </message>
     <message>
-        <location line="+6"/>
-        <location line="+13"/>
         <source>&amp;Close</source>
         <translation>&amp;Schließen</translation>
     </message>
     <message>
-        <location line="-10"/>
         <source>Save All</source>
         <translation>Alles speichern</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>Alles f&amp;reigeben</translation>
     </message>
     <message>
-        <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+1"/>
         <source>Close All</source>
         <translation>Alle schließen</translation>
     </message>
     <message>
-        <location line="+23"/>
         <source>Translation File &amp;Settings for &apos;%1&apos;...</source>
         <translation>Einstellungen der Übersetzungs&amp;datei für &apos;%1&apos; ...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Batch Translation of &apos;%1&apos;...</source>
         <translation>&amp;Automatische Übersetzung von &apos;%1&apos; ...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Search And &amp;Translate in &apos;%1&apos;...</source>
         <translation>Suchen und &amp;übersetzen in &apos;%1&apos; ...</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Search And &amp;Translate...</source>
         <translation>Suchen und &amp;übersetzen ...</translation>
     </message>
     <message>
-        <location filename="../tools/linguist/linguist/mainwindow.ui"/>
-        <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+51"/>
         <source>File</source>
         <translation>Datei</translation>
     </message>
     <message>
-        <location/>
-        <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+7"/>
         <source>Edit</source>
         <translation>Bearbeiten</translation>
     </message>
     <message>
-        <location/>
-        <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+6"/>
         <source>Translation</source>
         <translation>Übersetzung</translation>
     </message>
     <message>
-        <location/>
-        <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+6"/>
         <source>Validation</source>
         <translation>Validierung</translation>
     </message>
     <message>
-        <location/>
-        <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+7"/>
         <source>Help</source>
         <translation>Hilfe</translation>
     </message>
     <message>
-        <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+84"/>
         <source>Cannot read from phrase book &apos;%1&apos;.</source>
         <translation>Wörterbuch &apos;%1&apos; kann nicht gelesen werden.</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Close this phrase book.</source>
         <translation>Dieses Wörterbuch schließen.</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Enables you to add, modify, or delete entries in this phrase book.</source>
         <translation>Erlaubt das Hinzufügen, Ändern und Entfernen von Wörterbuch-Einträgen.</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Print the entries in this phrase book.</source>
         <translation>Die Einträge des Wörterbuchs drucken.</translation>
     </message>
     <message>
-        <location line="+16"/>
         <source>Cannot create phrase book &apos;%1&apos;.</source>
         <translation>Wörterbuch &apos;%1&apos; kann nicht erzeugt werden.</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>Do you want to save phrase book &apos;%1&apos;?</source>
         <translation>Möchten Sie das Wörterbuch &apos;%1&apos; speichern?</translation>
     </message>
     <message>
-        <location line="+349"/>
         <source>All</source>
         <translation>Alle</translation>
     </message>
     <message>
-        <location filename="../tools/linguist/linguist/mainwindow.ui"/>
         <source>Open/Refresh Form &amp;Preview</source>
         <translation>&amp;Vorschau öffnen/aktualisieren</translation>
     </message>
     <message>
-        <location/>
         <source>Form Preview Tool</source>
         <translation>Vorschau für Eingabemasken</translation>
     </message>
     <message>
-        <location/>
         <source>F5</source>
         <translation>F5</translation>
     </message>
     <message>
-        <location/>
-        <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-562"/>
         <source>Translation File &amp;Settings...</source>
         <translation>E&amp;instellungen ...</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Add to Phrase Book</source>
         <translation>Zum Wörterbuch &amp;hinzufügen</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>Vorheriger unerledigter Eintrag</translation>
     </message>
     <message>
-        <location/>
         <source>Next unfinished item</source>
         <translation>Nächster unerledigter Eintrag</translation>
     </message>
     <message>
-        <location/>
         <source>Move to previous item</source>
         <translation>Zum vorigen Eintrag gehen</translation>
     </message>
     <message>
-        <location/>
         <source>Next item</source>
         <translation>Nächster Eintrag</translation>
     </message>
     <message>
-        <location/>
         <source>Mark item as done and move to the next unfinished item</source>
         <translation>Eintrag als erledigt markieren und zum nächsten unerledigten Eintrag gehen</translation>
     </message>
     <message>
-        <location/>
         <source>Copies the source text into the translation field</source>
         <translation>Kopiert den Ursprungstext in das Übersetzungsfeld</translation>
     </message>
     <message>
-        <location/>
         <source>Toggle the validity check of accelerators</source>
         <translation>Prüfung der Tastenkürzel ein- bzw. ausschalten</translation>
     </message>
     <message>
-        <location/>
         <source>Toggle the validity check of ending punctuation</source>
         <translation>Prüfung der Satzendezeichen am Ende des Textes ein- bzw. ausschalten</translation>
     </message>
     <message>
-        <location/>
         <source>Toggle checking that phrase suggestions are used</source>
         <translation>Überprüfung, ob Wörterbucheinträge benutzt werden, aktivieren/deaktivieren</translation>
     </message>
     <message>
-        <location/>
         <source>Toggle the validity check of place markers</source>
         <translation>Prüfung der Platzhalter ein- bzw. ausschalten&apos;</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>Eine Qt-Nachrichtendatei aus der aktuellen Übersetzungsdatei erzeugen. Der Dateiname wird automatisch aus dem Namen der TS-Datei abgeleitet.</translation>
     </message>
     <message>
-        <location/>
         <source>Length Variants</source>
         <translation>Längenvarianten</translation>
     </message>
     <message>
-        <location/>
         <source>Display information about the Qt toolkit by Nokia.</source>
         <translation>Zeigt Informationen über das Qt-Toolkit von Nokia an.</translation>
     </message>
@@ -1499,103 +1196,83 @@
 <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>Russisch</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>German</source>
         <translation>Deutsch</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Japanese</source>
         <translation>Japanisch</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>French</source>
         <translation>Französisch</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Polish</source>
         <translation>Polnisch</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Chinese</source>
         <translation>Chinesisch</translation>
     </message>
     <message>
-        <location line="+47"/>
         <source>This whole panel allows you to view and edit the translation of some source text.</source>
         <translation>Dieser Bereich erlaubt die Darstellung und Änderung der Übersetzung eines Textes.</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>Source text</source>
         <translation>Ursprungstext</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>This area shows the source text.</source>
         <translation>Dieser Bereich zeigt den Ursprungstext.</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Source text (Plural)</source>
         <translation>Ursprungstext (Plural)</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>This area shows the plural form of the source text.</source>
         <translation>Dieser Bereich zeigt die Pluralform des Ursprungstexts.</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Developer comments</source>
         <translation>Hinweise des Entwicklers</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>Dieser Bereich zeigt eventuelle Kommentare und den Kontext, in dem der Text auftritt.</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>Hier können Sie Hinweise für den eigenen Gebrauch eintragen. Diese haben keinen Einflusse auf die Übersetzung.</translation>
     </message>
     <message>
-        <location line="+234"/>
         <source>%1 translation (%2)</source>
         <translation>Übersetzung %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>Hier können Sie die Übersetzung des Ursprungstextes eingeben bzw. ändern.</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>%1 translation</source>
         <translation>Übersetzung %1</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>%1 translator comments</source>
         <translation>%1 Hinweise des Übersetzers</translation>
     </message>
     <message>
-        <location line="+157"/>
         <source>&apos;%1&apos;
 Line: %2</source>
         <translation>&apos;%1&apos;
@@ -1605,22 +1282,18 @@
 <context>
     <name>MessageModel</name>
     <message>
-        <location filename="../tools/linguist/linguist/messagemodel.cpp" line="+839"/>
         <source>Completion status for %1</source>
         <translation>Bearbeitungsstand von %1</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>&lt;file header&gt;</source>
         <translation>&lt;Dateikopf&gt;</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>&lt;context comment&gt;</source>
         <translation>&lt;Kontexthinweis&gt;</translation>
     </message>
     <message>
-        <location line="+71"/>
         <source>&lt;unnamed context&gt;</source>
         <translation>&lt;unbenannter Kontext&gt;</translation>
     </message>
@@ -1628,7 +1301,6 @@
 <context>
     <name>MsgEdit</name>
     <message>
-        <location filename="../tools/linguist/linguist/messageeditor.cpp" line="-602"/>
         <source></source>
         <comment>This is the right panel of the main window.</comment>
         <translation></translation>
@@ -1637,113 +1309,91 @@
 <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>(Neuer Eintrag)</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>Wörterbuch &apos;%1&apos; kann nicht gespeichert werden.</translation>
     </message>
     <message>
-        <location filename="../tools/linguist/linguist/phrasebookbox.ui"/>
         <source>Edit Phrase Book</source>
         <translation>Wörterbuch bearbeiten</translation>
     </message>
     <message>
-        <location/>
         <source>This window allows you to add, modify, or delete entries in a phrase book.</source>
         <translation>Dieses Fenster erlaubt das Hinzufügen, Ändern und Entfernen von Wörterbuch-Einträgen.</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Translation:</source>
         <translation>&amp;Übersetzung:</translation>
     </message>
     <message>
-        <location/>
         <source>This is the phrase in the target language corresponding to the source phrase.</source>
         <translation>Dies ist der Text, der in der Zielsprache dem Ursprungstext entspricht.</translation>
     </message>
     <message>
-        <location/>
         <source>S&amp;ource phrase:</source>
         <translation>&amp;Ursprungstext:</translation>
     </message>
     <message>
-        <location/>
         <source>This is a definition for the source phrase.</source>
         <translation>Dies ist die Definition des Ursprungstextes.</translation>
     </message>
     <message>
-        <location/>
         <source>This is the phrase in the source language.</source>
         <translation>Dies ist der Text der Ursprungssprache.</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Definition:</source>
         <translation>&amp;Definition:</translation>
     </message>
     <message>
-        <location/>
         <source>Click here to add the phrase to the phrase book.</source>
         <translation>Einen neuen Eintrag ins Wörterbuch einfügen.</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;New Entry</source>
         <translation>&amp;Neuer Eintrag</translation>
     </message>
     <message>
-        <location/>
         <source>Click here to remove the entry from the phrase book.</source>
         <translation>Den Eintrag aus dem Wörterbuch entfernen.</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Remove Entry</source>
         <translation>&amp;Eintrag entfernen</translation>
     </message>
     <message>
-        <location/>
         <source>Settin&amp;gs...</source>
         <translation>&amp;Einstellungen ...</translation>
     </message>
     <message>
-        <location/>
         <source>Click here to save the changes made.</source>
         <translation>Änderungen speichern.</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Save</source>
         <translation>&amp;Speichern</translation>
     </message>
     <message>
-        <location/>
         <source>Click here to close this window.</source>
         <translation>Klicken Sie hier, um das Fenster zu schließen.</translation>
     </message>
     <message>
-        <location/>
         <source>Close</source>
         <translation>Schließen</translation>
     </message>
@@ -1751,17 +1401,14 @@
 <context>
     <name>PhraseModel</name>
     <message>
-        <location filename="../tools/linguist/linguist/phrasemodel.cpp" line="+117"/>
         <source>Source phrase</source>
         <translation>Ursprungstext</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Translation</source>
         <translation>Übersetzung</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Definition</source>
         <translation>Definition</translation>
     </message>
@@ -1769,22 +1416,18 @@
 <context>
     <name>PhraseView</name>
     <message>
-        <location filename="../tools/linguist/linguist/phraseview.cpp" line="+122"/>
         <source>Insert</source>
         <translation>Einfügen</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Edit</source>
         <translation>Bearbeiten</translation>
     </message>
     <message>
-        <location line="+113"/>
         <source>Guess (%1)</source>
         <translation>Vorschlag (%1)</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Guess</source>
         <translation>Vorschlag</translation>
     </message>
@@ -1792,63 +1435,46 @@
 <context>
     <name>QObject</name>
     <message>
-        <location filename="../tools/linguist/shared/qm.cpp" line="+12"/>
         <source>Compiled Qt translations</source>
         <translation>Kompilierte Qt-Übersetzungen</translation>
     </message>
     <message>
-        <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-1302"/>
         <source>Translation files (%1);;</source>
         <translation>Übersetzungsdateien (%1);;</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>All files (*)</source>
         <translation>Alle Dateien (*)</translation>
     </message>
     <message>
-        <location filename="../tools/linguist/linguist/messagemodel.cpp" line="-1134"/>
-        <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="+817"/>
         <source>GNU Gettext localization files</source>
         <translation>GNU-Gettext-Übersetzungsdateien</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>GNU Gettext localization template files</source>
         <translation>Vorlagen für GNU-Gettext-Übersetzungsdateien</translation>
     </message>
     <message>
-        <location filename="../tools/linguist/shared/ts.cpp" line="+752"/>
         <source>Qt translation sources (format 1.1)</source>
         <translation>Qt-Übersetzungsdateien (Formatversion 1.1)</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Qt translation sources (format 2.0)</source>
         <translation>Qt-Übersetzungsdateien (Formatversion 2.0)</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Qt translation sources (latest format)</source>
         <translation>Qt-Übersetzungsdateien (aktuelles Format)</translation>
     </message>
     <message>
-        <location filename="../tools/linguist/shared/xliff.cpp" line="+829"/>
         <source>XLIFF localization files</source>
         <translation>XLIFF-Übersetzungsdateien</translation>
     </message>
     <message>
-        <location filename="../tools/linguist/shared/qph.cpp" line="+195"/>
         <source>Qt Linguist &apos;Phrase Book&apos;</source>
         <translation>Qt-Linguist-Wörterbuch</translation>
     </message>
@@ -1856,17 +1482,14 @@
 <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;Quelltext nicht verfügbar&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;Datei %1 nicht vorhanden&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;Datei %1 nicht lesbar&lt;/i&gt;</translation>
     </message>
@@ -1874,42 +1497,34 @@
 <context>
     <name>Statistics</name>
     <message>
-        <location filename="../tools/linguist/linguist/statistics.ui"/>
         <source>Statistics</source>
         <translation>Statistiken</translation>
     </message>
     <message>
-        <location/>
         <source>Translation</source>
         <translation>Übersetzung</translation>
     </message>
     <message>
-        <location/>
         <source>Source</source>
         <translation>Quelle</translation>
     </message>
     <message>
-        <location/>
         <source>0</source>
         <translation>0</translation>
     </message>
     <message>
-        <location/>
         <source>Words:</source>
         <translation>Wörter:</translation>
     </message>
     <message>
-        <location/>
         <source>Characters:</source>
         <translation>Zeichen:</translation>
     </message>
     <message>
-        <location/>
         <source>Characters (with spaces):</source>
         <translation>Zeichen (mit Leerzeichen):</translation>
     </message>
     <message>
-        <location/>
         <source>Close</source>
         <translation>Schließen</translation>
     </message>
@@ -1917,72 +1532,58 @@
 <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>Dieses Fenster erlaubt die Suche in der Übersetzungsdatei.</translation>
     </message>
     <message>
-        <location/>
         <source>Type in the text to search for.</source>
         <translation>Geben Sie den Text ein, nach dem gesucht werden soll.</translation>
     </message>
     <message>
-        <location/>
         <source>Find &amp;source text:</source>
         <translation>&amp;Ursprungstext:</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Translate to:</source>
         <translation>&amp;Übersetzung:</translation>
     </message>
     <message>
-        <location/>
         <source>Search options</source>
         <translation>Sucheinstellungen</translation>
     </message>
     <message>
-        <location/>
         <source>Texts such as &apos;TeX&apos; and &apos;tex&apos; are considered as different when checked.</source>
         <translation>Wenn aktiviert, werden Texte wie &apos;TeX&apos; und &apos;tex&apos; als unterschiedlich betrachtet.</translation>
     </message>
     <message>
-        <location/>
         <source>Match &amp;case</source>
         <translation>&amp;Groß-/Kleinschreibung beachten</translation>
     </message>
     <message>
-        <location/>
         <source>Mark new translation as &amp;finished</source>
         <translation>Neue Übersetzung als &amp;erledigt markieren</translation>
     </message>
     <message>
-        <location/>
         <source>Click here to find the next occurrence of the text you typed in.</source>
         <translation>Klicken Sie hier, um zum nächsten Vorkommen des Suchtextes zu springen.</translation>
     </message>
     <message>
-        <location/>
         <source>Find Next</source>
         <translation>Weitersuchen</translation>
     </message>
     <message>
-        <location/>
         <source>Translate</source>
         <translation>Übersetzen</translation>
     </message>
     <message>
-        <location/>
         <source>Translate All</source>
         <translation>Alle übersetzen</translation>
     </message>
     <message>
-        <location/>
         <source>Click here to close this window.</source>
         <translation>Klicken Sie hier, um das Fenster zu schließen.</translation>
     </message>
     <message>
-        <location/>
         <source>Cancel</source>
         <translation>Abbrechen</translation>
     </message>
@@ -1990,33 +1591,26 @@
 <context>
     <name>TranslationSettingsDialog</name>
     <message>
-        <location filename="../tools/linguist/linguist/translationsettingsdialog.cpp" line="+93"/>
         <source>Any Country</source>
         <translation>Land</translation>
     </message>
     <message>
-        <location line="-22"/>
-        <location line="+8"/>
         <source>Settings for &apos;%1&apos; - Qt Linguist</source>
         <translation>Einstellungen für &apos;%1&apos; - Qt Linguist</translation>
     </message>
     <message>
-        <location filename="../tools/linguist/linguist/translationsettings.ui"/>
         <source>Source language</source>
         <translation>Ursprungssprache</translation>
     </message>
     <message>
-        <location/>
         <source>Language</source>
         <translation>Sprache</translation>
     </message>
     <message>
-        <location/>
         <source>Country/Region</source>
         <translation>Land/Region</translation>
     </message>
     <message>
-        <location/>
         <source>Target language</source>
         <translation>Zielsprache</translation>
     </message>
--- a/translations/linguist_fr.ts	Fri Sep 17 08:34:18 2010 +0300
+++ b/translations/linguist_fr.ts	Mon Oct 04 01:19:32 2010 +0300
@@ -2,17 +2,9 @@
 <!DOCTYPE TS>
 <TS version="2.0">
 <context>
-    <name></name>
-    <message>
-        <location filename="../tools/linguist/linguist/phrasebookbox.cpp" line="+59"/>
-        <source>(New Entry)</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
     <name>AboutDialog</name>
     <message>
-        <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+1357"/>
+        <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+1366"/>
         <source>Qt Linguist</source>
         <translation type="unfinished"></translation>
     </message>
@@ -68,11 +60,6 @@
     </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 type="unfinished"></translation>
-    </message>
-    <message>
-        <location/>
         <source>Translate also finished entries</source>
         <translation type="unfinished"></translation>
     </message>
@@ -93,11 +80,6 @@
     </message>
     <message>
         <location/>
-        <source>The batch translator will search through the selected phrase books in the order given above.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location/>
         <source>&amp;Run</source>
         <translation type="unfinished"></translation>
     </message>
@@ -106,6 +88,16 @@
         <source>Cancel</source>
         <translation type="unfinished"></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 type="unfinished"></translation>
+    </message>
+    <message>
+        <location/>
+        <source>The batch translator will search through the selected phrase books in the order given above</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>DataModel</name>
@@ -116,11 +108,17 @@
     </message>
     <message>
         <location line="+4"/>
+        <location line="+8"/>
         <source>&lt;p&gt;[more duplicates omitted]</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="-5"/>
+        <source>&lt;p&gt;* ID: %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+8"/>
         <source>&lt;p&gt;* Context: %1&lt;br&gt;* Source: %2</source>
         <translation type="unfinished"></translation>
     </message>
@@ -130,7 +128,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+70"/>
+        <location line="+71"/>
         <source>Linguist does not know the plural rules for &apos;%1&apos;.
 Will assume a single universal form.</source>
         <translation type="unfinished"></translation>
@@ -284,19 +282,62 @@
     </message>
 </context>
 <context>
+    <name>FormMultiWidget</name>
+    <message>
+        <location filename="../tools/linguist/linguist/messageeditorwidgets.cpp" line="+302"/>
+        <source>Alt+Delete</source>
+        <extracomment>translate, but don&apos;t change</extracomment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Shift+Alt+Insert</source>
+        <extracomment>translate, but don&apos;t change</extracomment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Alt+Insert</source>
+        <extracomment>translate, but don&apos;t change</extracomment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+131"/>
+        <source>Confirmation - Qt Linguist</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Delete non-empty length variant?</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>LRelease</name>
     <message numerus="yes">
-        <location filename="../tools/linguist/shared/qm.cpp" line="+715"/>
-        <source>    Generated %n translation(s) (%1 finished and %2 unfinished)
-</source>
+        <location filename="../tools/linguist/shared/qm.cpp" line="+763"/>
+        <source>Dropped %n message(s) which had no ID.</source>
         <translation type="unfinished">
             <numerusform></numerusform>
         </translation>
     </message>
     <message numerus="yes">
         <location line="+4"/>
-        <source>    Ignored %n untranslated source text(s)
-</source>
+        <source>Excess context/disambiguation dropped from %n message(s).</source>
+        <translation type="unfinished">
+            <numerusform></numerusform>
+        </translation>
+    </message>
+    <message numerus="yes">
+        <location line="+8"/>
+        <source>    Generated %n translation(s) (%1 finished and %2 unfinished)</source>
+        <translation type="unfinished">
+            <numerusform></numerusform>
+        </translation>
+    </message>
+    <message numerus="yes">
+        <location line="+4"/>
+        <source>    Ignored %n untranslated source text(s)</source>
         <translation type="unfinished">
             <numerusform></numerusform>
         </translation>
@@ -400,7 +441,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+646"/>
+        <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+668"/>
         <location line="+15"/>
         <source>&amp;Save</source>
         <translation type="unfinished"></translation>
@@ -412,51 +453,26 @@
     </message>
     <message>
         <location/>
-        <source>Previous unfinished item.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location/>
         <source>Move to the previous unfinished item.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location/>
-        <source>Next unfinished item.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location/>
         <source>Move to the next unfinished item.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location/>
-        <source>Move to previous item.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location/>
         <source>Move to the previous item.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location/>
-        <source>Next item.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location/>
         <source>Move to the next item.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location/>
-        <source>Mark item as done and move to the next unfinished item.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location/>
         <source>Mark this item as done and move to the next unfinished item.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -467,21 +483,11 @@
     </message>
     <message>
         <location/>
-        <source>Toggle the validity check of accelerators.</source>
-        <translation type="unfinished"></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 type="unfinished"></translation>
     </message>
     <message>
         <location/>
-        <source>Toggle the validity check of ending punctuation.</source>
-        <translation type="unfinished"></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 type="unfinished"></translation>
     </message>
@@ -492,11 +498,6 @@
     </message>
     <message>
         <location/>
-        <source>Toggle the validity check of place markers.</source>
-        <translation type="unfinished"></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 type="unfinished"></translation>
     </message>
@@ -516,14 +517,14 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location/>
         <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-14"/>
         <location line="+11"/>
-        <location filename="../tools/linguist/linguist/mainwindow.ui"/>
         <source>Save &amp;As...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../tools/linguist/linguist/mainwindow.ui"/>
+        <location/>
         <source>Save As...</source>
         <translation type="unfinished"></translation>
     </message>
@@ -764,11 +765,6 @@
     </message>
     <message>
         <location/>
-        <source>Toggle checking that phrase suggestions are used.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location/>
         <source>Place &amp;Marker Matches</source>
         <translation type="unfinished"></translation>
     </message>
@@ -854,11 +850,6 @@
     </message>
     <message>
         <location/>
-        <source>Display information about the Qt toolkit by Trolltech.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location/>
         <source>&amp;What&apos;s This?</source>
         <translation type="unfinished"></translation>
     </message>
@@ -888,36 +879,31 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location/>
         <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+21"/>
-        <location filename="../tools/linguist/linguist/mainwindow.ui"/>
         <source>&amp;Batch Translation...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../tools/linguist/linguist/mainwindow.ui"/>
+        <location/>
         <source>Batch translate all entries using the information in the phrase books.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location/>
         <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-34"/>
         <location line="+10"/>
-        <location filename="../tools/linguist/linguist/mainwindow.ui"/>
         <source>Release As...</source>
         <translation type="unfinished"></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. The filename will automatically be determined from the name of the .ts file.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-2004"/>
+        <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-2035"/>
         <source></source>
         <comment>This is the application&apos;s main window.</comment>
         <translation></translation>
     </message>
     <message>
-        <location line="+195"/>
+        <location line="+190"/>
         <source>Source text</source>
         <translation type="unfinished"></translation>
     </message>
@@ -929,27 +915,27 @@
     </message>
     <message>
         <location line="-2"/>
-        <location line="+61"/>
+        <location line="+63"/>
         <source>Context</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-60"/>
+        <location line="-62"/>
         <source>Items</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+77"/>
+        <location line="+79"/>
         <source>This panel lists the source contexts.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+15"/>
+        <location line="+13"/>
         <source>Strings</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+39"/>
+        <location line="+37"/>
         <source>Phrases and guesses</source>
         <translation type="unfinished"></translation>
     </message>
@@ -970,7 +956,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+125"/>
+        <location line="+139"/>
         <source>Loading...</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1002,7 +988,7 @@
         </translation>
     </message>
     <message>
-        <location line="+93"/>
+        <location line="+94"/>
         <source>Related files (%1);;</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1018,14 +1004,14 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+15"/>
-        <location line="+1164"/>
         <location filename="../tools/linguist/linguist/mainwindow.ui"/>
+        <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+15"/>
+        <location line="+1187"/>
         <source>Release</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-1163"/>
+        <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-1186"/>
         <source>Qt message files for released applications (*.qm)
 All files (*)</source>
         <translation type="unfinished"></translation>
@@ -1037,7 +1023,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+27"/>
+        <location line="+34"/>
         <location line="+355"/>
         <source>Printing...</source>
         <translation type="unfinished"></translation>
@@ -1088,10 +1074,10 @@
     <message>
         <location line="+17"/>
         <location line="+278"/>
-        <location line="+40"/>
+        <location line="+34"/>
         <location line="+24"/>
         <location line="+22"/>
-        <location line="+516"/>
+        <location line="+538"/>
         <location line="+1"/>
         <location line="+274"/>
         <location line="+40"/>
@@ -1100,7 +1086,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-1204"/>
+        <location line="-1220"/>
         <location line="+102"/>
         <source>Cannot find the string &apos;%1&apos;.</source>
         <translation type="unfinished"></translation>
@@ -1195,12 +1181,12 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+6"/>
-        <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;%2&lt;/p&gt;&lt;p&gt;Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).&lt;/p&gt;&lt;p&gt;The program is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.&lt;/p&gt;</source>
+        <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 type="unfinished"></translation>
     </message>
     <message>
-        <location line="+41"/>
+        <location line="+38"/>
         <source>Do you want to save the modified files?</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1226,7 +1212,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+176"/>
+        <location line="+198"/>
         <source>&amp;Window</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1287,13 +1273,13 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+1"/>
         <location filename="../tools/linguist/linguist/mainwindow.ui"/>
+        <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+1"/>
         <source>&amp;Release All</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+1"/>
+        <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+1"/>
         <source>Close All</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1318,37 +1304,37 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+51"/>
         <location filename="../tools/linguist/linguist/mainwindow.ui"/>
+        <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+51"/>
         <source>File</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+7"/>
-        <location filename="../tools/linguist/linguist/mainwindow.ui"/>
+        <location/>
+        <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+7"/>
         <source>Edit</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+6"/>
-        <location filename="../tools/linguist/linguist/mainwindow.ui"/>
+        <location/>
+        <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+6"/>
         <source>Translation</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+6"/>
-        <location filename="../tools/linguist/linguist/mainwindow.ui"/>
+        <location/>
+        <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+6"/>
         <source>Validation</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+7"/>
-        <location filename="../tools/linguist/linguist/mainwindow.ui"/>
+        <location/>
+        <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+7"/>
         <source>Help</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+84"/>
+        <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+84"/>
         <source>Cannot read from phrase book &apos;%1&apos;.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1378,7 +1364,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+314"/>
+        <location line="+349"/>
         <source>All</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1398,13 +1384,13 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-527"/>
-        <location filename="../tools/linguist/linguist/mainwindow.ui"/>
+        <location/>
+        <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-562"/>
         <source>Translation File &amp;Settings...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../tools/linguist/linguist/mainwindow.ui"/>
+        <location/>
         <source>&amp;Add to Phrase Book</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1423,11 +1409,87 @@
         <source>Ctrl+Shift+J</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location/>
+        <source>Previous unfinished item</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location/>
+        <source>Next unfinished item</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location/>
+        <source>Move to previous item</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location/>
+        <source>Next item</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location/>
+        <source>Mark item as done and move to the next unfinished item</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location/>
+        <source>Copies the source text into the translation field</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location/>
+        <source>Toggle the validity check of accelerators</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location/>
+        <source>Toggle the validity check of ending punctuation</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location/>
+        <source>Toggle checking that phrase suggestions are used</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location/>
+        <source>Toggle the validity check of place markers</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location/>
+        <source>Display information about the Qt toolkit by Nokia.</source>
+        <translation type="unfinished"></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 type="unfinished"></translation>
+    </message>
+    <message>
+        <location/>
+        <source>Length Variants</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>MessageEditor</name>
     <message>
-        <location filename="../tools/linguist/linguist/messageeditor.cpp" line="+72"/>
+        <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 type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+1"/>
         <source>German</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1452,12 +1514,12 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+50"/>
+        <location line="+47"/>
         <source>This whole panel allows you to view and edit the translation of some source text.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+25"/>
+        <location line="+10"/>
         <source>Source text</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1467,7 +1529,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+4"/>
         <source>Source text (Plural)</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1477,7 +1539,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+4"/>
         <source>Developer comments</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1492,12 +1554,12 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+205"/>
+        <location line="+234"/>
         <source>%1 translation (%2)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+19"/>
+        <location line="+9"/>
         <source>This is where you can enter or modify the translation of the above source text.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1512,7 +1574,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+138"/>
+        <location line="+157"/>
         <source>&apos;%1&apos;
 Line: %2</source>
         <translation type="unfinished"></translation>
@@ -1521,7 +1583,7 @@
 <context>
     <name>MessageModel</name>
     <message>
-        <location filename="../tools/linguist/linguist/messagemodel.cpp" line="+832"/>
+        <location filename="../tools/linguist/linguist/messagemodel.cpp" line="+839"/>
         <source>Completion status for %1</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1544,7 +1606,7 @@
 <context>
     <name>MsgEdit</name>
     <message>
-        <location filename="../tools/linguist/linguist/messageeditor.cpp" line="-577"/>
+        <location filename="../tools/linguist/linguist/messageeditor.cpp" line="-600"/>
         <source></source>
         <comment>This is the right panel of the main window.</comment>
         <translation></translation>
@@ -1553,13 +1615,18 @@
 <context>
     <name>PhraseBookBox</name>
     <message>
-        <location filename="../tools/linguist/linguist/phrasebookbox.cpp" line="-45"/>
+        <location filename="../tools/linguist/linguist/phrasebookbox.cpp" line="+14"/>
         <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="+53"/>
+        <location line="+52"/>
+        <source>(New Entry)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
         <source>%1[*] - Qt Linguist</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1680,7 +1747,7 @@
 <context>
     <name>PhraseView</name>
     <message>
-        <location filename="../tools/linguist/linguist/phraseview.cpp" line="+121"/>
+        <location filename="../tools/linguist/linguist/phraseview.cpp" line="+122"/>
         <source>Insert</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1708,7 +1775,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-1279"/>
+        <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-1302"/>
         <source>Translation files (%1);;</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1718,8 +1785,8 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../tools/linguist/linguist/messagemodel.cpp" line="-1118"/>
-        <location line="+18"/>
+        <location filename="../tools/linguist/linguist/messagemodel.cpp" line="-1134"/>
+        <location line="+27"/>
         <location line="+67"/>
         <location line="+39"/>
         <location line="+17"/>
@@ -1729,23 +1796,13 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../tools/linguist/shared/cpp.cpp" line="+1072"/>
-        <source>C++ source files</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../tools/linguist/shared/java.cpp" line="+646"/>
-        <source>Java source files</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../tools/linguist/shared/po.cpp" line="+651"/>
+        <location filename="../tools/linguist/shared/po.cpp" line="+870"/>
         <source>GNU Gettext localization files</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../tools/linguist/shared/qscript.cpp" line="+2399"/>
-        <source>Qt Script source files</source>
+        <location line="+7"/>
+        <source>GNU Gettext localization template files</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
@@ -1764,22 +1821,12 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../tools/linguist/shared/ui.cpp" line="+213"/>
-        <source>Qt Designer form files</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+9"/>
-        <source>Qt Jambi form files</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../tools/linguist/shared/xliff.cpp" line="+817"/>
+        <location filename="../tools/linguist/shared/xliff.cpp" line="+829"/>
         <source>XLIFF localization files</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../tools/linguist/shared/qph.cpp" line="+192"/>
+        <location filename="../tools/linguist/shared/qph.cpp" line="+195"/>
         <source>Qt Linguist &apos;Phrase Book&apos;</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1930,12 +1977,12 @@
 <context>
     <name>TranslationSettingsDialog</name>
     <message>
-        <location filename="../tools/linguist/linguist/translationsettingsdialog.cpp" line="+68"/>
+        <location filename="../tools/linguist/linguist/translationsettingsdialog.cpp" line="+93"/>
         <source>Any Country</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+11"/>
+        <location line="-22"/>
         <location line="+8"/>
         <source>Settings for &apos;%1&apos; - Qt Linguist</source>
         <translation type="unfinished"></translation>
--- a/translations/linguist_ja.ts	Fri Sep 17 08:34:18 2010 +0300
+++ b/translations/linguist_ja.ts	Mon Oct 04 01:19:32 2010 +0300
@@ -2,24 +2,8 @@
 <!DOCTYPE TS>
 <TS version="2.0" language="ja">
 <context>
-    <name></name>
-    <message>
-        <location filename="../tools/linguist/linguist/phrasebookbox.cpp" line="+59"/>
-        <source>(New Entry)</source>
-        <translation>(新しい項目)</translation>
-    </message>
-</context>
-<context>
-    <name>@default</name>
-    <message>
-        <source>(New Phrase)</source>
-        <translation type="obsolete">(新しいフレーズ)</translation>
-    </message>
-</context>
-<context>
     <name>AboutDialog</name>
     <message>
-        <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+1357"/>
         <source>Qt Linguist</source>
         <translation>Qt Linguist</translation>
     </message>
@@ -27,209 +11,140 @@
 <context>
     <name>BatchTranslationDialog</name>
     <message>
-        <source>Batch translated %1 entries</source>
-        <translation type="obsolete">%1 項目が一括翻訳されました</translation>
-    </message>
-    <message>
-        <location filename="../tools/linguist/linguist/batchtranslationdialog.cpp" line="+116"/>
         <source>&amp;Cancel</source>
         <translation>キャンセル(&amp;C)</translation>
     </message>
     <message>
-        <location line="+42"/>
         <source>Linguist batch translator</source>
         <translation>Linguist の一括翻訳</translation>
     </message>
     <message>
-        <location line="-42"/>
         <source>Searching, please wait...</source>
         <translation>検索しています、お待ちください...</translation>
     </message>
     <message>
-        <location line="-37"/>
         <source>Batch Translation of &apos;%1&apos; - Qt Linguist</source>
         <translation>&apos;%1&apos; の一括翻訳 - Qt Linguist</translation>
     </message>
     <message numerus="yes">
-        <location line="+80"/>
         <source>Batch translated %n entries</source>
         <translation>
             <numerusform>%n 項目が一括翻訳されました</numerusform>
         </translation>
     </message>
     <message>
-        <location filename="../tools/linguist/linguist/batchtranslation.ui"/>
         <source>Qt Linguist - Batch Translation</source>
         <translation>Qt Linguist - 一括翻訳</translation>
     </message>
     <message>
-        <location/>
         <source>Options</source>
         <translation>オプション</translation>
     </message>
     <message>
-        <location/>
         <source>Set translated entries to finished</source>
         <translation>翻訳された項目を完了にする</translation>
     </message>
     <message>
-        <location/>
         <source>Retranslate entries with existing translation</source>
         <translation>訳語がある項目を再度翻訳する</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>注意:&apos;翻訳された項目を完了にする&apos;にチェックがついていない場合、翻訳された項目は未完了になります.</translation>
-    </message>
-    <message>
-        <location/>
         <source>Translate also finished entries</source>
         <translation>完了している項目も翻訳する</translation>
     </message>
     <message>
-        <location/>
         <source>Phrase book preference</source>
         <translation>フレーズブックの設定</translation>
     </message>
     <message>
-        <location/>
         <source>Move up</source>
         <translation>上に移動</translation>
     </message>
     <message>
-        <location/>
         <source>Move down</source>
         <translation>下に移動</translation>
     </message>
     <message>
-        <location/>
-        <source>The batch translator will search through the selected phrase books in the order given above.</source>
-        <translation>一括翻訳機能は、上記で選択された順にフレーズブックを検索します。</translation>
-    </message>
-    <message>
-        <location/>
         <source>&amp;Run</source>
         <translation>実行(&amp;R)</translation>
     </message>
     <message>
-        <location/>
         <source>Cancel</source>
         <translation>キャンセル</translation>
     </message>
-</context>
-<context>
-    <name>ContextModel</name>
     <message>
-        <source>Context</source>
-        <translation type="obsolete">コンテキスト</translation>
+        <source>Note that the modified entries will be reset to unfinished if &apos;Set translated entries to finished&apos; above is unchecked</source>
+        <translation>注意:「翻訳された項目を完了にする」にチェックがついていない場合、翻訳された項目は未完了になります</translation>
     </message>
     <message>
-        <source>Done</source>
-        <translation type="obsolete">完了</translation>
-    </message>
-    <message>
-        <source>Items</source>
-        <translation type="obsolete">項目数</translation>
+        <source>The batch translator will search through the selected phrase books in the order given above</source>
+        <translation>一括翻訳機能は、上記で選択された順にフレーズブックを検索します</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;&apos;%1&apos; に重複したメッセージが見つかりました:</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>&lt;p&gt;[more duplicates omitted]</source>
         <translation>&lt;p&gt;[さらに重複している部分は省略されました]</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <source>&lt;p&gt;* ID: %1</source>
+        <translation>&lt;p&gt; *.ID: %1</translation>
+    </message>
+    <message>
         <source>&lt;p&gt;* Context: %1&lt;br&gt;* Source: %2</source>
         <translation>&lt;p&gt;* コンテキスト: %1&lt;br&gt;* ソーステキスト: %2</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>&lt;br&gt;* Comment: %3</source>
         <translation>&lt;br&gt;* コメント: %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>Linguist は&apos;%1&apos;の複数のルールを知りません。
 単一の共通形式とみなします。</translation>
     </message>
     <message>
-        <location line="+56"/>
         <source>Cannot create &apos;%2&apos;: %1</source>
         <translation>&apos;%2&apos; を作成できません: %1</translation>
     </message>
     <message>
-        <location line="+56"/>
         <source>Universal Form</source>
         <translation>共通形式</translation>
     </message>
 </context>
 <context>
-    <name>EditorPage</name>
-    <message>
-        <source>Source text</source>
-        <translation type="obsolete">ソーステキスト</translation>
-    </message>
-    <message>
-        <source>Translation (%1)</source>
-        <translation type="obsolete">訳 (%1)</translation>
-    </message>
-    <message>
-        <source>This area shows the source text.</source>
-        <translation type="obsolete">この領域はソーステキストを表示します。</translation>
-    </message>
-    <message>
-        <source>This area shows a comment that may guide you, and the context in which the text occurs.</source>
-        <translation type="obsolete">この領域は、手助けとなるコメントと、テキストが出てくるコンテキストを表示します。</translation>
-    </message>
-    <message>
-        <source>This is where you can enter or modify the translation of some source text.</source>
-        <translation type="obsolete">ソーステキストの訳を入力したり変更したりできるところです。</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>訳に余分なアクセラレータがついています。</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Accelerator possibly missing in translation.</source>
         <translation>訳にアクセラレータが欠けています。</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Translation does not end with the same punctuation as the source text.</source>
         <translation>訳がソーステキストと同じ句読点で終わっていません。</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>A phrase book suggestion for &apos;%1&apos; was ignored.</source>
         <translation>&apos;%1&apos; についてのフレーズブックの示唆を無視しています。</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Translation does not refer to the same place markers as in the source text.</source>
         <translation>訳語にはソーステキストと同じ数の &quot;%&quot; がありません。</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Translation does not contain the necessary %n place marker.</source>
-        <translation>訳語に必要な %n 個のプレースマーカー &quot;%&quot; がありません。</translation>
+        <translation>訳語に必要なプレースマーカー &quot;%&quot; が %n 個足りません。</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Unknown error</source>
         <translation>未知のエラー</translation>
     </message>
@@ -237,691 +152,473 @@
 <context>
     <name>FindDialog</name>
     <message>
-        <location filename="../tools/linguist/linguist/finddialog.ui"/>
         <source>Cancel</source>
         <translation>キャンセル</translation>
     </message>
     <message>
-        <location/>
         <source>Click here to close this window.</source>
         <translation>このウィンドウを閉じるにはここをクリックします。</translation>
     </message>
     <message>
-        <location/>
         <source>Find</source>
         <translation>検索</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Find what:</source>
         <translation>検索する文字列(&amp;F):</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Source texts</source>
         <translation>ソーステキスト(&amp;S)</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Translations</source>
         <translation>訳語(&amp;T)</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Match case</source>
         <translation>大/小文字の区別(&amp;M)</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Comments</source>
         <translation>コメント(&amp;C)</translation>
     </message>
     <message>
-        <location/>
         <source>Ignore &amp;accelerators</source>
         <translation>アクセラレータを無視(&amp;A)</translation>
     </message>
     <message>
-        <location/>
         <source>Click here to find the next occurrence of the text you typed in.</source>
         <translation>入力したテキストが次に出てくる箇所を見つけるにはここをクリックします。</translation>
     </message>
     <message>
-        <source>Comments</source>
-        <translation type="obsolete">コメント</translation>
-    </message>
-    <message>
-        <location/>
         <source>Comments and contexts are searched when checked.</source>
         <translation>選択するとコメントとコンテキストが検索されます。</translation>
     </message>
     <message>
-        <location/>
         <source>Find Next</source>
         <translation>次を検索</translation>
     </message>
     <message>
-        <source>Find what:</source>
-        <translation type="obsolete">検索対象:</translation>
-    </message>
-    <message>
-        <source>Match case</source>
-        <translation type="obsolete">大文字・小文字の区別</translation>
-    </message>
-    <message>
-        <location/>
         <source>Options</source>
         <translation>オプション</translation>
     </message>
     <message>
-        <source>Qt Linguist</source>
-        <translation type="obsolete">Qt Linguist</translation>
-    </message>
-    <message>
-        <source>Source texts</source>
-        <translation type="obsolete">ソーステキスト</translation>
-    </message>
-    <message>
-        <location/>
         <source>Source texts are searched when checked.</source>
         <translation>選択するとソーステキストが検索されます。</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; と &apos;tex&apos; は異なるものと見なされます。</translation>
     </message>
     <message>
-        <location/>
         <source>This window allows you to search for some text in the translation source file.</source>
         <translation>このウィンドウで翻訳ソースファイル内のテキストを検索できます。</translation>
     </message>
     <message>
-        <source>Translations</source>
-        <translation type="obsolete">訳</translation>
-    </message>
-    <message>
-        <location/>
         <source>Translations are searched when checked.</source>
         <translation>選択すると訳が検索されます。</translation>
     </message>
     <message>
-        <location/>
         <source>Type in the text to search for.</source>
         <translation>検索するテキストを入力してください。</translation>
     </message>
     <message>
-        <location filename="../tools/linguist/linguist/finddialog.cpp" line="+14"/>
         <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>FormHolder</name>
+    <name>FormMultiWidget</name>
     <message>
-        <source>Preview Form</source>
-        <translation type="obsolete">フォームをプレビュー</translation>
+        <source>Alt+Delete</source>
+        <extracomment>translate, but don&apos;t change</extracomment>
+        <translation>Alt+Delete</translation>
     </message>
-</context>
-<context>
-    <name>FormatTextEdit</name>
     <message>
-        <source>&amp;Copy</source>
-        <translation type="obsolete">コピー(&amp;C)</translation>
+        <source>Shift+Alt+Insert</source>
+        <extracomment>translate, but don&apos;t change</extracomment>
+        <translation>Shift+Alt+Insert</translation>
     </message>
     <message>
-        <source>Ctrl+C</source>
-        <translation type="obsolete">Ctrl+C</translation>
+        <source>Alt+Insert</source>
+        <extracomment>translate, but don&apos;t change</extracomment>
+        <translation>Alt+Insert</translation>
     </message>
     <message>
-        <source>Select &amp;All</source>
-        <translation type="obsolete">すべてを選択(&amp;A)</translation>
+        <source>Confirmation - Qt Linguist</source>
+        <translation>確認 - Qt Linguist</translation>
     </message>
     <message>
-        <source>Ctrl+A</source>
-        <translation type="obsolete">Ctrl+A</translation>
+        <source>Delete non-empty length variant?</source>
+        <translation>空ではない単数形・複数形を削除しますか?</translation>
     </message>
 </context>
 <context>
     <name>LRelease</name>
     <message numerus="yes">
-        <location filename="../tools/linguist/shared/qm.cpp" line="+715"/>
-        <source>    Generated %n translation(s) (%1 finished and %2 unfinished)
-</source>
+        <source>Dropped %n message(s) which had no ID.</source>
         <translation>
-            <numerusform>     %n 件の訳語 (%1 件が完了、 %2 件が未完了) を生成しました
-</numerusform>
+            <numerusform>ID のない %n 件のメッセージを無視しました。</numerusform>
         </translation>
     </message>
     <message numerus="yes">
-        <location line="+4"/>
-        <source>    Ignored %n untranslated source text(s)
-</source>
+        <source>Excess context/disambiguation dropped from %n message(s).</source>
         <translation>
-            <numerusform>     %n 件の未翻訳のソーステキストを無視しました
-</numerusform>
+            <numerusform>不要な文脈やあいまいさ回避のコメントを %n 件のメッセージで無視しました。</numerusform>
         </translation>
     </message>
-</context>
-<context>
-    <name>LanguagesDialog</name>
-    <message>
-        <source>File</source>
-        <translation type="obsolete">ファイル</translation>
+    <message numerus="yes">
+        <source>    Generated %n translation(s) (%1 finished and %2 unfinished)</source>
+        <translation>
+            <numerusform>     %n 件のメッセージを翻訳しました(完了 %1 件、未完了 %2 件)</numerusform>
+        </translation>
+    </message>
+    <message numerus="yes">
+        <source>    Ignored %n untranslated source text(s)</source>
+        <translation>
+            <numerusform>     %n 件の未翻訳のソーステキストを無視しました</numerusform>
+        </translation>
     </message>
 </context>
 <context>
     <name>MainWindow</name>
     <message>
-        <location filename="../tools/linguist/linguist/mainwindow.ui"/>
         <source>About Qt</source>
         <translation>Qt について</translation>
     </message>
     <message>
-        <location/>
         <source>About Qt Linguist</source>
         <translation>Qt Linguist について</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Accelerators</source>
         <translation>アクセラレータの確認(&amp;A)</translation>
     </message>
     <message>
-        <location/>
         <source>Batch translate all entries using the information in the phrase books.</source>
         <translation>フレーズブックにある情報を用いて、全項目を一括翻訳します。</translation>
     </message>
     <message>
-        <source>&amp;Batch Translation</source>
-        <translation type="obsolete">一括翻訳(&amp;B)</translation>
-    </message>
-    <message>
-        <source>&amp;Begin from source</source>
-        <translation type="obsolete">ソーステキストを元に翻訳(&amp;B)</translation>
-    </message>
-    <message>
-        <location/>
         <source>&amp;Close Phrase Book</source>
         <translation>フレーズブックを閉じる(&amp;C)</translation>
     </message>
     <message>
-        <location/>
         <source>Close this window and exit.</source>
         <translation>このウィンドウを閉じて終了します。</translation>
     </message>
     <message>
-        <location/>
         <source>Continue the search where it was left.</source>
         <translation>残りの部分の検索を続けます。</translation>
     </message>
     <message>
-        <location/>
         <source>Copies the source text into the translation field.</source>
         <translation>ソーステキストを訳の欄へコピーします。</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Copy</source>
         <translation>コピー(&amp;C)</translation>
     </message>
     <message>
-        <location/>
         <source>Copy the selected translation text to the clipboard and deletes it.</source>
         <translation>選択された訳のテキストをクリップボードにコピーして削除します。</translation>
     </message>
     <message>
-        <location/>
         <source>Copy the selected translation text to the clipboard.</source>
         <translation>選択された訳のテキストをクリップボードにコピーします。</translation>
     </message>
     <message>
-        <location/>
         <source>Create a new phrase book.</source>
         <translation>新しいフレーズブックを作成します。</translation>
     </message>
     <message>
-        <location/>
         <source>Create a Qt message file suitable for released applications from the current message file.</source>
         <translation>リリースされたアプリケーションに合う Qt メッセージファイルを、現在のメッセージファイルから作成します。</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>リリースされたアプリケーションにふさわしい Qt メッセージファイルを現在のメッセージファイルから作成します。ファイル名は、.ts ファイルの名前から自動的に決められます。</translation>
-    </message>
-    <message>
-        <location/>
         <source>Ctrl+A</source>
         <translation>Ctrl+A</translation>
     </message>
     <message>
-        <location/>
         <source>Ctrl+B</source>
         <translation>Ctrl+B</translation>
     </message>
     <message>
-        <location/>
         <source>Ctrl+C</source>
         <translation>Ctrl+C</translation>
     </message>
     <message>
-        <location/>
         <source>Ctrl+F</source>
         <translation>Ctrl+F</translation>
     </message>
     <message>
-        <location/>
         <source>Ctrl+H</source>
         <translation>Ctrl+H</translation>
     </message>
     <message>
-        <location/>
         <source>Ctrl+K</source>
         <translation>Ctrl+K</translation>
     </message>
     <message>
-        <source>Ctrl+L</source>
-        <translation type="obsolete">Ctrl+L</translation>
-    </message>
-    <message>
-        <location/>
         <source>Ctrl+N</source>
         <translation>Ctrl+N</translation>
     </message>
     <message>
-        <location/>
         <source>Ctrl+O</source>
         <translation>Ctrl+O</translation>
     </message>
     <message>
-        <location/>
         <source>Ctrl+P</source>
         <translation>Ctrl+P</translation>
     </message>
     <message>
-        <location/>
         <source>Ctrl+Q</source>
         <translation>Ctrl+Q</translation>
     </message>
     <message>
-        <location/>
         <source>Open Read-O&amp;nly...</source>
         <translation>読取専用で開く(&amp;N)...</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Save All</source>
         <translation>全て保存(&amp;S)</translation>
     </message>
     <message>
-        <location/>
         <source>Ctrl+S</source>
         <translation>Ctrl+S</translation>
     </message>
     <message>
-        <location/>
         <source>Ctrl+Shift+K</source>
         <translation>Ctrl+Shift+K</translation>
     </message>
     <message>
-        <source>Ctrl+Shift+L</source>
-        <translation type="obsolete">Ctrl+Shift+L</translation>
-    </message>
-    <message>
-        <location/>
         <source>Ctrl+V</source>
         <translation>Ctrl+V</translation>
     </message>
     <message>
-        <location/>
         <source>Ctrl+X</source>
         <translation>Ctrl+X</translation>
     </message>
     <message>
-        <location/>
         <source>Ctrl+Y</source>
         <translation>Ctrl+Y</translation>
     </message>
     <message>
-        <location/>
         <source>Recently Opened &amp;Files</source>
         <translation>最近使ったファイル(&amp;F)</translation>
     </message>
     <message>
-        <location/>
         <source>Ctrl+Z</source>
         <translation>Ctrl+Z</translation>
     </message>
     <message>
-        <location/>
         <source>Cu&amp;t</source>
         <translation>切り取り(&amp;T)</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Display guesses</source>
         <translation>推測を表示(&amp;D)</translation>
     </message>
     <message>
-        <location/>
-        <source>Display information about the Qt toolkit by Trolltech.</source>
-        <translation>Trolltech の Qt ツールキットについての情報を表示します。</translation>
-    </message>
-    <message>
-        <location/>
         <source>&amp;Done and Next</source>
         <translation>完了にして次へ(&amp;N)</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Edit</source>
         <translation>編集(&amp;E)</translation>
     </message>
     <message>
-        <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+742"/>
-        <location filename="../tools/linguist/linguist/mainwindow.ui"/>
         <source>Edit</source>
         <translation>編集</translation>
     </message>
     <message>
-        <location filename="../tools/linguist/linguist/mainwindow.ui"/>
         <source>&amp;Edit Phrase Book</source>
         <translation>フレーズブックを編集(&amp;E)</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Ending Punctuation</source>
         <translation>末尾の句読点(&amp;E)</translation>
     </message>
     <message>
-        <location/>
         <source>Enter What&apos;s This? mode.</source>
         <translation>ヒントモードに入ります。</translation>
     </message>
     <message>
-        <location/>
         <source>E&amp;xit</source>
         <translation>終了(&amp;X)</translation>
     </message>
     <message>
-        <location/>
         <source>F1</source>
         <translation>F1</translation>
     </message>
     <message>
-        <location/>
         <source>F3</source>
         <translation>F3</translation>
     </message>
     <message>
-        <location/>
         <source>F5</source>
         <translation>F5</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;File</source>
         <translation>ファイル(&amp;F)</translation>
     </message>
     <message>
-        <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-7"/>
-        <location filename="../tools/linguist/linguist/mainwindow.ui"/>
         <source>File</source>
         <translation>ファイル</translation>
     </message>
     <message>
-        <source>&amp;Find</source>
-        <translation type="obsolete">検索(&amp;F)...</translation>
-    </message>
-    <message>
-        <location filename="../tools/linguist/linguist/mainwindow.ui"/>
         <source>Find &amp;Next</source>
         <translation>次を検索(&amp;N)</translation>
     </message>
     <message>
-        <location/>
         <source>Form Preview Tool</source>
         <translation>フォームプレビューツール</translation>
     </message>
     <message>
-        <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+26"/>
-        <location filename="../tools/linguist/linguist/mainwindow.ui"/>
         <source>Help</source>
         <translation>ヘルプ</translation>
     </message>
     <message>
-        <location filename="../tools/linguist/linguist/mainwindow.ui"/>
         <source>&amp;Help</source>
         <translation>ヘルプ(&amp;H)</translation>
     </message>
     <message>
-        <location/>
         <source>MainWindow</source>
         <translation>MainWindow</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Manual</source>
         <translation>マニュアル(&amp;M)</translation>
     </message>
     <message>
-        <source>Marks this item as done and moves to the next unfinished item.</source>
-        <translation type="obsolete">この項目に完了のマークをつけ、次の未訳の項目へ移動します。</translation>
-    </message>
-    <message>
-        <source>Moves to the next item.</source>
-        <translation type="obsolete">次の項目へ移動します。</translation>
-    </message>
-    <message>
-        <source>Moves to the next unfinished item.</source>
-        <translation type="obsolete">次の未訳の項目へ移動します。</translation>
-    </message>
-    <message>
-        <source>Moves to the previous item.</source>
-        <translation type="obsolete">前の項目へ移動します。</translation>
-    </message>
-    <message>
-        <source>Moves to the previous unfinished item.</source>
-        <translation type="obsolete">前の未訳の項目へ移動します。</translation>
-    </message>
-    <message>
-        <source>&amp;New</source>
-        <translation type="obsolete">新規(&amp;N)</translation>
-    </message>
-    <message>
-        <source>&amp;New Phrase Book</source>
-        <translation type="obsolete">新しいフレーズブック(&amp;N)</translation>
-    </message>
-    <message>
-        <location/>
         <source>Ne&amp;xt</source>
         <translation>次へ(&amp;X)</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Next Unfinished</source>
-        <translation>次の未訳へ(&amp;N)</translation>
+        <translation>次の未完了へ(&amp;N)</translation>
     </message>
     <message>
-        <source>&amp;Open</source>
-        <translation type="obsolete">オープン(&amp;O)...</translation>
-    </message>
-    <message>
-        <location/>
         <source>Open a phrase book to assist translation.</source>
         <translation>翻訳の参考にするためにフレーズブックを開きます。</translation>
     </message>
     <message>
-        <location/>
         <source>Open a Qt translation source file (TS file) for editing</source>
         <translation>Qt 翻訳ソースファイル (TS ファイル) を編集用に開きます</translation>
     </message>
     <message>
-        <source>&amp;Open Phrase Book</source>
-        <translation type="obsolete">フレーズブックを開く(&amp;O)...</translation>
-    </message>
-    <message>
-        <location/>
         <source>Open/Refresh Form &amp;Preview</source>
         <translation>フォームプレビューを開く/更新する(&amp;P)</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Paste</source>
         <translation>貼り付け(&amp;P)</translation>
     </message>
     <message>
-        <location/>
         <source>Paste the clipboard text into the translation.</source>
         <translation>クリップボードのテキストを訳に貼り付けます。</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Phrase matches</source>
         <translation>フレーズの一致(&amp;P)</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Phrases</source>
         <translation>フレーズ(&amp;P)</translation>
     </message>
     <message>
-        <location/>
         <source>Place &amp;Marker Matches</source>
         <translation>&quot;%&quot; の数や数字の一致(&amp;M)</translation>
     </message>
     <message>
-        <location/>
         <source>P&amp;rev</source>
         <translation>前へ(&amp;R)</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Prev Unfinished</source>
         <translation>前の未訳へ(&amp;P)</translation>
     </message>
     <message>
-        <source>&amp;Print</source>
-        <translation type="obsolete">印刷(&amp;P)...</translation>
-    </message>
-    <message>
-        <source>Print a list of all the phrases in the current Qt translation source file.</source>
-        <translation type="obsolete">現在の Qt 翻訳ソースファイルの全てのフレーズ一覧を印刷します。</translation>
-    </message>
-    <message>
-        <location/>
         <source>&amp;Print Phrase Book</source>
         <translation>フレーズブックを印刷(&amp;P)</translation>
     </message>
     <message>
-        <source>Re&amp;cently opened files</source>
-        <translation type="obsolete">最近開いたファイル(&amp;C)</translation>
-    </message>
-    <message>
-        <location/>
         <source>&amp;Redo</source>
         <translation>やり直す(&amp;R)</translation>
     </message>
     <message>
-        <location/>
         <source>Redo an undone editing operation performed on the translation.</source>
         <translation>取り消された編集操作をやり直します。</translation>
     </message>
     <message>
-        <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-99"/>
         <source>&amp;Release</source>
         <translation>リリース(&amp;R)</translation>
     </message>
     <message>
-        <location line="-13"/>
-        <location line="+10"/>
-        <location filename="../tools/linguist/linguist/mainwindow.ui"/>
         <source>Release As...</source>
         <translation>名前を付けてリリース...</translation>
     </message>
     <message>
-        <location filename="../tools/linguist/linguist/mainwindow.ui"/>
         <source>Replace the translation on all entries that matches the search source text.</source>
         <translation>検索対象のソーステキストに該当する全項目の訳語を置換します。</translation>
     </message>
     <message>
-        <source>&amp;Revert Sorting</source>
-        <translation type="obsolete">ソート順序を初期状態に(&amp;R)</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="+195"/>
         <source>Source text</source>
         <translation>ソーステキスト</translation>
     </message>
     <message>
-        <location line="+1"/>
-        <location line="+25"/>
         <source>Index</source>
         <translation>インデックス</translation>
     </message>
     <message>
-        <location line="-2"/>
-        <location line="+61"/>
         <source>Context</source>
         <translation>コンテキスト</translation>
     </message>
     <message>
-        <location line="-60"/>
         <source>Items</source>
         <translation>項目数</translation>
     </message>
     <message>
-        <location line="+77"/>
         <source>This panel lists the source contexts.</source>
         <translation>このパネルではソースのコンテキストを一覧表示しています。</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Strings</source>
         <translation>文字列</translation>
     </message>
     <message>
-        <location line="+39"/>
         <source>Phrases and guesses</source>
         <translation>フレーズと推測</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>Sources and Forms</source>
         <translation>ソースとフォーム</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Warnings</source>
         <translation>警告</translation>
     </message>
     <message>
-        <location line="+59"/>
         <source> MOD </source>
         <comment>status bar: file(s) modified</comment>
         <translation> MOD </translation>
     </message>
     <message>
-        <location line="+125"/>
         <source>Loading...</source>
         <translation>ロードしています...</translation>
     </message>
     <message>
-        <location line="+32"/>
-        <location line="+22"/>
         <source>Loading File - Qt Linguist</source>
         <translation>ロードしています - 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>
@@ -930,7 +627,6 @@
 先に開いたファイルを閉じますか?</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>
@@ -939,873 +635,616 @@
 ファイルのロードをスキップしますか?</translation>
     </message>
     <message numerus="yes">
-        <location line="+61"/>
         <source>%n translation unit(s) loaded.</source>
         <translation>
             <numerusform>%n 件の翻訳項目をロードしました。</numerusform>
         </translation>
     </message>
     <message>
-        <location line="+93"/>
         <source>Related files (%1);;</source>
         <translation>%1 に関連したファイル;;</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Open Translation Files</source>
         <translation>翻訳ファイルを開く</translation>
     </message>
     <message>
-        <location line="+10"/>
-        <location line="+31"/>
         <source>File saved.</source>
         <translation>ファイルが保存されました。</translation>
     </message>
     <message>
-        <location line="+15"/>
-        <location line="+1164"/>
-        <location filename="../tools/linguist/linguist/mainwindow.ui"/>
+        <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 は、Qt アプリケーションの翻訳を行うツールです。&lt;/p&gt;&lt;p&gt;Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).</translation>
+    </message>
+    <message>
         <source>Release</source>
         <translation>リリース</translation>
     </message>
     <message>
-        <location line="-1163"/>
         <source>Qt message files for released applications (*.qm)
 All files (*)</source>
         <translation>リリースされたアプリケーション用の Qt メッセージファイル (*.qm)
 すべてのファイル (*)</translation>
     </message>
     <message>
-        <location line="+3"/>
-        <location line="+12"/>
         <source>File created.</source>
         <translation>ファイルが作成されました。</translation>
     </message>
     <message>
-        <location line="+27"/>
-        <location line="+355"/>
         <source>Printing...</source>
         <translation>印刷中...</translation>
     </message>
     <message>
-        <location line="-347"/>
         <source>Context: %1</source>
         <translation>コンテキスト: %1</translation>
     </message>
     <message>
-        <location line="+32"/>
         <source>finished</source>
         <translation>完了</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>unresolved</source>
         <translation>未解決</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>obsolete</source>
         <translation>このバージョンでは使われていない</translation>
     </message>
     <message>
-        <location line="+15"/>
-        <location line="+307"/>
         <source>Printing... (page %1)</source>
         <translation>印刷中... (%1 ページ)</translation>
     </message>
     <message>
-        <location line="-300"/>
-        <location line="+307"/>
         <source>Printing completed</source>
         <translation>印刷完了</translation>
     </message>
     <message>
-        <location line="-305"/>
-        <location line="+307"/>
         <source>Printing aborted</source>
         <translation>印刷中止</translation>
     </message>
     <message>
-        <location line="-232"/>
         <source>Search wrapped.</source>
         <translation>検索が一通り終わりました。</translation>
     </message>
     <message>
-        <location line="+17"/>
-        <location line="+278"/>
-        <location line="+40"/>
-        <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="-1204"/>
-        <location line="+102"/>
         <source>Cannot find the string &apos;%1&apos;.</source>
         <translation>文字列 &apos;%1&apos; が見つかりません。</translation>
     </message>
     <message>
-        <source>Translate</source>
-        <translation type="obsolete">翻訳</translation>
-    </message>
-    <message numerus="yes">
-        <source>Translated %n entries to &apos;%1&apos;</source>
-        <translation type="obsolete">
-            <numerusform>%n 項目を &apos;%1&apos; に翻訳しました</numerusform>
-        </translation>
-    </message>
-    <message>
-        <location line="-82"/>
         <source>Search And Translate in &apos;%1&apos; - Qt Linguist</source>
         <translation>&apos;%1&apos; 内で検索して翻訳 - Qt Linguist</translation>
     </message>
     <message>
-        <location line="+34"/>
-        <location line="+23"/>
-        <location line="+24"/>
         <source>Translate - Qt Linguist</source>
         <translation>翻訳 - Qt Linguist</translation>
     </message>
     <message numerus="yes">
-        <location line="-46"/>
         <source>Translated %n entry(s)</source>
         <translation>
             <numerusform>%n 項目が翻訳済みです</numerusform>
         </translation>
     </message>
     <message>
-        <location line="+23"/>
         <source>No more occurrences of &apos;%1&apos;. Start over?</source>
         <translation>&apos;%1&apos; は、これ以上見つかりません。先頭に戻りますか?</translation>
     </message>
     <message>
-        <location line="+30"/>
         <source>Create New Phrase Book</source>
         <translation>新しいフレーズブックを作成</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Qt phrase books (*.qph)
 All files (*)</source>
         <translation>Qt フレーズブック (*.qph)
 全てのファイル (*)</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>Phrase book created.</source>
         <translation>フレーズブックが作成されました。</translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>Open Phrase Book</source>
         <translation>フレーズブックを開く</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Qt phrase books (*.qph);;All files (*)</source>
         <translation>Qt フレーズブック (*.qph);;すべてのファイル (*)</translation>
     </message>
     <message numerus="yes">
-        <location line="+7"/>
         <source>%n phrase(s) loaded.</source>
         <translation>
             <numerusform>%n 項目のフレーズがロードされました。</numerusform>
         </translation>
     </message>
     <message>
-        <location line="+93"/>
-        <location line="+3"/>
-        <location line="+7"/>
         <source>Add to phrase book</source>
         <translation>フレーズブックに追加</translation>
     </message>
     <message>
-        <location line="-9"/>
         <source>No appropriate phrasebook found.</source>
         <translation>適切なフレーズブックが見つかりません。</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Adding entry to phrasebook %1</source>
         <translation>フレーズブック %1 に項目を追加</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Select phrase book to add to</source>
         <translation>追加先のフレーズブックを選択してください</translation>
     </message>
     <message>
-        <location line="+29"/>
         <source>Unable to launch Qt Assistant (%1)</source>
         <translation>Qt Assistant (%1) を起動できません</translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>Version %1</source>
         <translation>バージョン %1</translation>
     </message>
     <message>
-        <source> Open Source Edition</source>
-        <translation type="obsolete"> オープンソース版</translation>
-    </message>
-    <message>
-        <source>This version of Qt Linguist is part of the Qt Open Source Edition, for use in the development of Open Source applications. Qt is a comprehensive C++ framework for cross-platform application development.&lt;br/&gt;&lt;br/&gt;You need a commercial Qt license for development of proprietary (closed source) applications. Please see &lt;tt&gt;http://qt.nokia.com/company/model.html&lt;/tt&gt; for an overview of Qt licensing.</source>
-        <translation type="obsolete">このバージョンの Qt Linguist は、 オープンソースアプリケーションを開発するための Qt オープンソース版の一部です。Qt は、クロスプラットフォームなアプリケーションを開発するための包括的な C++ のフレームワークです。&lt;br/&gt;&lt;br/&gt;独占的な(ソースが隠された)アプリケーションを開発するには、Qt の商用ライセンスが必要です。Qt のライセンスの概要については &lt;tt&gt;http://qt.nokia.com/company/model.html&lt;/tt&gt; をご覧ください。</translation>
-    </message>
-    <message>
-        <source>This program is licensed to you under the terms of the Qt Commercial License Agreement. For details, see the file LICENSE that came with this software distribution.</source>
-        <translation type="obsolete">このプログラムは、Qt 商用ライセンス契約書の定める条件の下であなたの利用が認められています。詳細は、ソフトウェアと一緒に配布される LICENSE ファイルを参照してください。</translation>
-    </message>
-    <message>
-        <location line="+6"/>
-        <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;%2&lt;/p&gt;&lt;p&gt;Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).&lt;/p&gt;&lt;p&gt;The program is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.&lt;/p&gt;</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 は、Qt アプリケーションの翻訳を行うツールです。&lt;/p&gt;&lt;p&gt;%2&lt;/p&gt;&lt;p&gt;Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). 全ての権利は保護されています。&lt;/p&gt;&lt;p&gt;このプログラムは、「設計」、「市場性」および「特定の目的への適合性」も含む、あらゆる種類の「保証がなく」、「そのままで」提供されます。&lt;/p&gt;</translation>
-    </message>
-    <message>
-        <location line="+41"/>
         <source>Do you want to save the modified files?</source>
         <translation>変更されたファイルを保存しますか?</translation>
     </message>
     <message>
-        <location line="+22"/>
         <source>Do you want to save &apos;%1&apos;?</source>
         <translation>&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>未訳項目は残っていません。</translation>
     </message>
     <message>
-        <location line="+176"/>
         <source>&amp;Window</source>
         <translation>ウィンドウ(&amp;W)</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Minimize</source>
         <translation>最小化</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>%1 のマニュアルを表示します。</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Display information about %1.</source>
         <translation>%1 についての情報を表示します。</translation>
     </message>
     <message>
-        <location line="+70"/>
         <source>&amp;Save &apos;%1&apos;</source>
         <translation>&apos;%1&apos; を保存する(&amp;S)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Save &apos;%1&apos; &amp;As...</source>
         <translation>&apos;%1&apos; を名前を付けて保存(&amp;A)...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Release &apos;%1&apos;</source>
         <translation>&apos;%1&apos; をリリース</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Release &apos;%1&apos; As...</source>
         <translation>&apos;%1&apos; を名前を付けてリリース...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Close &apos;%1&apos;</source>
         <translation>&apos;%1&apos; を閉じる(&amp;C)</translation>
     </message>
     <message>
-        <location line="+2"/>
-        <location line="+15"/>
         <source>&amp;Save</source>
         <translation>保存(&amp;S)</translation>
     </message>
     <message>
-        <location line="-14"/>
-        <location line="+11"/>
-        <location filename="../tools/linguist/linguist/mainwindow.ui"/>
         <source>Save &amp;As...</source>
         <translation>名前を付けて保存(&amp;A)...</translation>
     </message>
     <message>
-        <location line="-8"/>
-        <location line="+13"/>
         <source>&amp;Close</source>
         <translation>閉じる(&amp;C)</translation>
     </message>
     <message>
-        <location line="-10"/>
         <source>Save All</source>
         <translation>全て保存</translation>
     </message>
     <message>
-        <location line="+1"/>
-        <location filename="../tools/linguist/linguist/mainwindow.ui"/>
         <source>&amp;Release All</source>
         <translation>全てリリース(&amp;R)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Close All</source>
         <translation>すべて閉じる</translation>
     </message>
     <message>
-        <location line="+23"/>
         <source>Translation File &amp;Settings for &apos;%1&apos;...</source>
         <translation>&apos;%1&apos; の翻訳ファイルの設定(&amp;S)...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Batch Translation of &apos;%1&apos;...</source>
         <translation>&apos;%1&apos; の一括翻訳(&amp;B)...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Search And &amp;Translate in &apos;%1&apos;...</source>
         <translation>&apos;%1&apos; 内を検索して翻訳(&amp;T)...</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Search And &amp;Translate...</source>
         <translation>検索して訳語を置換(&amp;T)...</translation>
     </message>
     <message>
-        <location line="+161"/>
         <source>Cannot read from phrase book &apos;%1&apos;.</source>
         <translation>フレーズブック &apos;%1&apos; から読み出せません。</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Close this phrase book.</source>
         <translation>このフレーズブックを閉じます。</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Enables you to add, modify, or delete entries in this phrase book.</source>
         <translation>このフレーズブックで項目の追加、変更、削除ができます。</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Print the entries in this phrase book.</source>
         <translation>このフレーズブックの項目を印刷します。</translation>
     </message>
     <message>
-        <location line="+16"/>
         <source>Cannot create phrase book &apos;%1&apos;.</source>
         <translation>フレーズブック &apos;%1&apos; を作成できません。</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>Do you want to save phrase book &apos;%1&apos;?</source>
         <translation>フレーズブック &apos;%1&apos; を保存しますか?</translation>
     </message>
     <message>
-        <location line="+314"/>
         <source>All</source>
         <translation>すべて</translation>
     </message>
     <message>
-        <location filename="../tools/linguist/linguist/mainwindow.ui"/>
         <source>Save As...</source>
         <translation>名前を付けて保存...</translation>
     </message>
     <message>
-        <location/>
         <source>Save changes made to this Qt translation source file</source>
         <translation>この Qt 翻訳ソースファイルに対して行われた変更を保存します。</translation>
     </message>
     <message>
-        <location/>
         <source>Save changes made to this Qt translation source file into a new file.</source>
         <translation>Qt の翻訳ソースファイルで行われた変更を新しいファイルに保存します。</translation>
     </message>
     <message>
-        <source>&amp;Search And Translate</source>
-        <translation type="obsolete">検索して訳語を置換(&amp;S)</translation>
-    </message>
-    <message>
-        <location/>
         <source>Search for some text in the translation source file.</source>
         <translation>翻訳ソースファイルからテキストを検索します。</translation>
     </message>
     <message>
-        <location/>
         <source>Select &amp;All</source>
         <translation>すべてを選択(&amp;A)</translation>
     </message>
     <message>
-        <location/>
         <source>Select the whole translation text.</source>
         <translation>訳のテキスト全部を選択します。</translation>
     </message>
     <message>
-        <location/>
         <source>Set whether or not to display translation guesses.</source>
         <translation>訳の推測を表示するかどうかを設定します。</translation>
     </message>
     <message>
-        <source>Set whether or not to display translation statistics.</source>
-        <translation type="obsolete">翻訳の統計を表示します。</translation>
-    </message>
-    <message>
-        <location/>
         <source>Shift+F1</source>
         <translation>Shift+F1</translation>
     </message>
     <message>
-        <location/>
         <source>Sort the items back in the same order as in the message file.</source>
         <translation>項目のソートの順序をメッセージファイルと同じものに戻します。</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Statistics</source>
         <translation>統計(&amp;S)</translation>
     </message>
     <message>
-        <location/>
-        <source>Toggle checking that phrase suggestions are used.</source>
-        <translation>フレーズの示唆を使うかどうかのチェックを切り替えます。</translation>
-    </message>
-    <message>
-        <source>Toggle validity checks of accelerators.</source>
-        <translation type="obsolete">アクセラレータのチェックを有効にするかどうかを切り替えます。</translation>
-    </message>
-    <message>
-        <source>Toggle validity checks of ending punctuation.</source>
-        <translation type="obsolete">末尾の句読点のチェックを有効にするかどうかを切り替えます。</translation>
-    </message>
-    <message>
-        <source>Toggle validity checks of place markers.</source>
-        <translation type="obsolete">&quot;%&quot; の数や番号のチェックを行うかどうかを切り替えます。</translation>
-    </message>
-    <message>
-        <location/>
         <source>&amp;Toolbars</source>
         <translation>ツールバー(&amp;T)</translation>
     </message>
     <message>
-        <source>Too&amp;ls</source>
-        <translation type="obsolete">ツール(&amp;L)</translation>
-    </message>
-    <message>
-        <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-461"/>
-        <location filename="../tools/linguist/linguist/mainwindow.ui"/>
         <source>Translation</source>
         <translation>翻訳</translation>
     </message>
     <message>
-        <location filename="../tools/linguist/linguist/mainwindow.ui"/>
         <source>&amp;Translation</source>
         <translation>翻訳(&amp;T)</translation>
     </message>
     <message>
-        <source>Translation File &amp;Settings</source>
-        <translation type="obsolete">翻訳ファイルの設定(&amp;S)</translation>
-    </message>
-    <message>
-        <location/>
         <source>&amp;Undo</source>
         <translation>元に戻す(&amp;U)</translation>
     </message>
     <message>
-        <source>Undo the last editing operation performed on the translation.</source>
-        <translation type="obsolete">最後に行った編集操作を取り消します。</translation>
-    </message>
-    <message>
-        <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+6"/>
-        <location filename="../tools/linguist/linguist/mainwindow.ui"/>
         <source>Validation</source>
         <translation>検証</translation>
     </message>
     <message>
-        <location filename="../tools/linguist/linguist/mainwindow.ui"/>
         <source>V&amp;alidation</source>
         <translation>検証(&amp;A)</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;View</source>
         <translation>表示(&amp;V)</translation>
     </message>
     <message>
-        <location/>
         <source>Vie&amp;ws</source>
         <translation>表示(&amp;W)</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;What&apos;s This?</source>
         <translation>ヒント(&amp;W)</translation>
     </message>
     <message>
-        <location/>
         <source>What&apos;s This?</source>
         <translation>ヒント</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Open...</source>
         <translation>開く(&amp;O)...</translation>
     </message>
     <message>
-        <location/>
         <source>Save</source>
         <translation>保存</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Print...</source>
         <translation>印刷(&amp;P)...</translation>
     </message>
     <message>
-        <location/>
         <source>Print a list of all the translation units in the current translation source file.</source>
         <translation>現在の Qt 翻訳ソースファイルの全ての訳語の一覧を印刷します。</translation>
     </message>
     <message>
-        <location/>
         <source>Undo the last editing operation performed on the current translation.</source>
         <translation>現在の翻訳ファイルで最後に行った編集操作を取り消します。</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Find...</source>
         <translation>検索(&amp;F)...</translation>
     </message>
     <message>
-        <location/>
-        <source>Previous unfinished item.</source>
-        <translation>前の未訳の項目へ移動します。</translation>
-    </message>
-    <message>
-        <location/>
         <source>Move to the previous unfinished item.</source>
         <translation>前の未完了の項目へ移動します。</translation>
     </message>
     <message>
-        <location/>
-        <source>Next unfinished item.</source>
-        <translation>次の未訳の項目へ移動します。</translation>
-    </message>
-    <message>
-        <location/>
         <source>Move to the next unfinished item.</source>
         <translation>次の未完了の項目へ移動します。</translation>
     </message>
     <message>
-        <location/>
-        <source>Move to previous item.</source>
-        <translation>前の項目へ移動します。</translation>
-    </message>
-    <message>
-        <location/>
         <source>Move to the previous item.</source>
         <translation>前の項目へ移動します。</translation>
     </message>
     <message>
-        <location/>
-        <source>Next item.</source>
-        <translation>次の項目へ移動します。</translation>
-    </message>
-    <message>
-        <location/>
         <source>Move to the next item.</source>
         <translation>次の項目へ移動します。</translation>
     </message>
     <message>
-        <location/>
-        <source>Mark item as done and move to the next unfinished item.</source>
-        <translation>この項目に完了のマークをつけ、次の未完了の項目へ移動します。</translation>
-    </message>
-    <message>
-        <location/>
         <source>Mark this item as done and move to the next unfinished item.</source>
         <translation>この項目に完了のマークをつけ、次の未完了の項目へ移動します。</translation>
     </message>
     <message>
-        <location/>
         <source>Copy from source text</source>
         <translation>ソーステキストからコピー</translation>
     </message>
     <message>
-        <location/>
-        <source>Toggle the validity check of accelerators.</source>
-        <translation>アクセラレータのチェックを有効にするかどうかを切り替えます。</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>ソーステキストと訳語のアクセラレータの個数が同じか否かのチェックを有効にするかどうかを切り替えます。チェックが無効になっていても、警告ウィンドウにメッセージは表示されます。</translation>
     </message>
     <message>
-        <location/>
-        <source>Toggle the validity check of ending punctuation.</source>
-        <translation>末尾の句読点のチェックを有効にするかどうかを切り替えます。</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>末尾の句読点のチェックを有効にするかどうかを切り替えます。チェックが無効になっていても、警告ウィンドウにメッセージが表示されます。</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>フレーズの示唆を使うかどうかのチェックを切り替えます。チェックが無効になっていても、警告ウィンドウにメッセージが表示されます。</translation>
     </message>
     <message>
-        <location/>
-        <source>Toggle the validity check of place markers.</source>
-        <translation>&quot;%&quot; の数や番号のチェックを行うかどうかを切り替えます。</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>ソーステキストと訳語の&quot;%1&quot;や&quot;%2&quot;等のプレースマーカーの整合が取れているか否かのチェックを行うかどうかを切り替えます。チェックが無効になっていても、警告ウィンドウにメッセージは表示されます。</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;New Phrase Book...</source>
         <translation>新しいフレーズブック(&amp;N)...</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Open Phrase Book...</source>
         <translation>フレーズブックを開く(&amp;O)...</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Reset Sorting</source>
         <translation>ソート順序をリセット(&amp;R)</translation>
     </message>
     <message>
-        <location/>
         <source>Display translation statistics.</source>
         <translation>翻訳の統計を表示します。</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Search And Translate...</source>
         <translation>検索して訳語を置換(&amp;S)...</translation>
     </message>
     <message>
-        <location/>
         <source>Close</source>
         <translation>閉じる</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Close All</source>
         <translation>全て閉じる(&amp;C)</translation>
     </message>
     <message>
-        <location/>
         <source>Ctrl+W</source>
         <translation>Ctrl+W</translation>
     </message>
     <message>
-        <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-71"/>
-        <location filename="../tools/linguist/linguist/mainwindow.ui"/>
         <source>&amp;Batch Translation...</source>
         <translation>一括翻訳(&amp;B)...</translation>
     </message>
     <message>
-        <location line="-1"/>
-        <location filename="../tools/linguist/linguist/mainwindow.ui"/>
         <source>Translation File &amp;Settings...</source>
         <translation>翻訳ファイルの設定(&amp;S)...</translation>
     </message>
     <message>
-        <location filename="../tools/linguist/linguist/mainwindow.ui"/>
         <source>&amp;Add to Phrase Book</source>
         <translation>フレーズブックに追加(&amp;A)</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>
+        <source>Previous unfinished item</source>
+        <translation>前の未完了の項目</translation>
+    </message>
+    <message>
+        <source>Next unfinished item</source>
+        <translation>次の未訳の項目</translation>
+    </message>
+    <message>
+        <source>Move to previous item</source>
+        <translation>前の項目へ移動</translation>
+    </message>
+    <message>
+        <source>Next item</source>
+        <translation>次の項目</translation>
+    </message>
+    <message>
+        <source>Mark item as done and move to the next unfinished item</source>
+        <translation>この項目に完了のマークをつけ、次の未訳の項目へ移動します</translation>
+    </message>
+    <message>
+        <source>Copies the source text into the translation field</source>
+        <translation>ソーステキストを訳の欄へコピーします</translation>
+    </message>
+    <message>
+        <source>Toggle the validity check of accelerators</source>
+        <translation>アクセラレータのチェックを有効にするかどうかを切り替えます</translation>
+    </message>
+    <message>
+        <source>Toggle the validity check of ending punctuation</source>
+        <translation>末尾の句読点のチェックを有効にするかどうかを切り替えます</translation>
+    </message>
+    <message>
+        <source>Toggle checking that phrase suggestions are used</source>
+        <translation>フレーズの示唆を使うかどうかのチェックを切り替えます</translation>
+    </message>
+    <message>
+        <source>Toggle the validity check of place markers</source>
+        <translation>&quot;%&quot; の数や番号のチェックを行うかどうかを切り替えます</translation>
+    </message>
+    <message>
+        <source>Display information about the Qt toolkit by Nokia.</source>
+        <translation>Nokia の Qt ツールキットについての情報を表示します。</translation>
+    </message>
+    <message>
+        <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>リリースされたアプリケーションにふさわしい Qt メッセージファイルを現在のメッセージファイルから作成します。ファイル名は、TS ファイルの名前から自動的に決められます。</translation>
+    </message>
+    <message>
+        <source>Length Variants</source>
+        <translation>単数形・複数形</translation>
+    </message>
 </context>
 <context>
     <name>MessageEditor</name>
     <message>
-        <source>backspace</source>
-        <translation type="obsolete">バックスペース</translation>
-    </message>
-    <message>
-        <source>bell</source>
-        <translation type="obsolete">ベル</translation>
-    </message>
-    <message>
-        <source>carriage return</source>
-        <translation type="obsolete">行頭復帰</translation>
+        <source></source>
+        <comment>This is the right panel of the main window.</comment>
+        <translation></translation>
     </message>
     <message>
-        <source>Guess</source>
-        <translation type="obsolete">推測</translation>
-    </message>
-    <message>
-        <source>Guess (%1)</source>
-        <translation type="obsolete">推測(%1)</translation>
+        <source>Russian</source>
+        <translation>ロシア語</translation>
     </message>
     <message>
-        <source>new line</source>
-        <translation type="obsolete">改行</translation>
-    </message>
-    <message>
-        <source>new page</source>
-        <translation type="obsolete">改ページ</translation>
-    </message>
-    <message>
-        <source>Phrases</source>
-        <translation type="obsolete">フレーズ</translation>
+        <source>German</source>
+        <translation>ドイツ語</translation>
     </message>
     <message>
-        <source>Phrases and guesses:</source>
-        <translation type="obsolete">フレーズと推測:</translation>
-    </message>
-    <message>
-        <source>sp)</source>
-        <translation type="obsolete">スペース)</translation>
+        <source>Japanese</source>
+        <translation>日本語</translation>
     </message>
     <message>
-        <source>tab</source>
-        <translation type="obsolete">タブ</translation>
-    </message>
-    <message>
-        <location filename="../tools/linguist/linguist/messageeditor.cpp" line="+72"/>
-        <source>German</source>
-        <translation>German</translation>
+        <source>French</source>
+        <translation>フランス語</translation>
     </message>
     <message>
-        <location line="+1"/>
-        <source>Japanese</source>
-        <translation>Japanese</translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>French</source>
-        <translation>French</translation>
+        <source>Polish</source>
+        <translation>ポーランド語</translation>
     </message>
     <message>
-        <location line="+1"/>
-        <source>Polish</source>
-        <translation>Polish</translation>
+        <source>Chinese</source>
+        <translation>中国語</translation>
     </message>
     <message>
-        <location line="+1"/>
-        <source>Chinese</source>
-        <translation>Chinese</translation>
-    </message>
-    <message>
-        <location line="+75"/>
         <source>Source text</source>
         <translation>ソーステキスト</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Source text (Plural)</source>
         <translation>ソーステキスト(複数)</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>This area shows the plural form of the source text.</source>
         <translation>この領域は複数のソーステキストを表示します。</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Developer comments</source>
         <translation>開発者のコメント</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>この領域は、手助けとなるコメントと、テキストが出てくるコンテキストを表示します。</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>ここはあなたが自分自身の為にコメントを入力できます。翻訳されたアプリケーションには何の影響も与えません。</translation>
     </message>
     <message>
-        <location line="+205"/>
         <source>%1 translation (%2)</source>
         <translation>%1 翻訳 (%2)</translation>
     </message>
     <message>
-        <location line="+19"/>
         <source>This is where you can enter or modify the translation of the above source text.</source>
         <translation>ソーステキストの訳を入力したり変更したりできるところです。</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>%1 translation</source>
         <translation>%1 訳</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>%1 translator comments</source>
         <translation>%1 翻訳者のコメント</translation>
     </message>
     <message>
-        <location line="-300"/>
         <source>This area shows the source text.</source>
         <translation>この領域はソーステキストを表示します。</translation>
     </message>
     <message>
-        <source>This is where you can enter or modify the translation of some source text.</source>
-        <translation type="obsolete">ソーステキストの訳を入力したり変更したりできるところです。</translation>
-    </message>
-    <message>
-        <location line="-27"/>
         <source>This whole panel allows you to view and edit the translation of some source text.</source>
         <translation>このパネル全体でソーステキストの訳を見たり編集したりすることができます。</translation>
     </message>
     <message>
-        <source>Translation (%1)</source>
-        <translation type="obsolete">訳 (%1)</translation>
-    </message>
-    <message>
-        <location line="+465"/>
         <source>&apos;%1&apos;
 Line: %2</source>
         <translation>&apos;%1&apos;
@@ -1815,185 +1254,117 @@
 <context>
     <name>MessageModel</name>
     <message>
-        <source>Context</source>
-        <translation type="obsolete">コンテキスト</translation>
-    </message>
-    <message>
-        <source>Done</source>
-        <translation type="obsolete">完了</translation>
-    </message>
-    <message>
-        <source>Items</source>
-        <translation type="obsolete">項目数</translation>
-    </message>
-    <message>
-        <location filename="../tools/linguist/linguist/messagemodel.cpp" line="+832"/>
         <source>Completion status for %1</source>
         <translation>%1 の翻訳完了状況</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>&lt;file header&gt;</source>
         <translation>&lt;ファイル ヘッダー&gt;</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>&lt;context comment&gt;</source>
         <translation>&lt;コンテキスト コメント&gt;</translation>
     </message>
     <message>
-        <location line="+71"/>
         <source>&lt;unnamed context&gt;</source>
         <translation>&lt;無名のコンテキスト&gt;</translation>
     </message>
 </context>
 <context>
-    <name>MessagesTreeView</name>
-    <message>
-        <source>Done</source>
-        <translation type="obsolete">完了</translation>
-    </message>
-</context>
-<context>
     <name>MsgEdit</name>
     <message>
-        <location filename="../tools/linguist/linguist/messageeditor.cpp" line="-577"/>
         <source></source>
         <comment>This is the right panel of the main window.</comment>
         <translation></translation>
     </message>
 </context>
 <context>
-    <name>PageCurl</name>
+    <name>PhraseBookBox</name>
     <message>
-        <source>Next unfinished phrase</source>
-        <translation type="obsolete">次の未訳のフレーズ</translation>
+        <source>(New Entry)</source>
+        <translation>(新しい項目)</translation>
     </message>
     <message>
-        <source>Previous unfinished phrase</source>
-        <translation type="obsolete">前の未訳のフレーズ</translation>
-    </message>
-</context>
-<context>
-    <name>PhraseBookBox</name>
-    <message>
-        <location filename="../tools/linguist/linguist/phrasebookbox.cpp" line="+8"/>
         <source>%1[*] - Qt Linguist</source>
         <translation>%1[*] - Qt Linguist</translation>
     </message>
     <message>
-        <location line="+91"/>
         <source>Cannot save phrase book &apos;%1&apos;.</source>
         <translation>フレーズブック &apos;%1&apos; を保存できません。</translation>
     </message>
     <message>
-        <location filename="../tools/linguist/linguist/phrasebookbox.ui"/>
         <source>Click here to add the phrase to the phrase book.</source>
         <translation>フレーズブックにフレーズを追加するにはここをクリックしてください。</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;New Entry</source>
         <translation>新しい項目(&amp;N)</translation>
     </message>
     <message>
-        <location/>
         <source>Click here to remove the entry from the phrase book.</source>
         <translation>フレーズブックからフレーズを消去するにはここをクリックしてください。</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Remove Entry</source>
         <translation>項目を削除(&amp;R)</translation>
     </message>
     <message>
-        <location/>
         <source>Settin&amp;gs...</source>
         <translation>設定(&amp;G)...</translation>
     </message>
     <message>
-        <location/>
         <source>Click here to close this window.</source>
         <translation>このウィンドウを閉じるにはここをクリックします。</translation>
     </message>
     <message>
-        <source>Click here to remove the phrase from the phrase book.</source>
-        <translation type="obsolete">フレーズブックからフレーズを消去するにはここをクリックしてください。</translation>
-    </message>
-    <message>
-        <location/>
         <source>Click here to save the changes made.</source>
         <translation>変更を保存するにはここをクリックしてください。</translation>
     </message>
     <message>
-        <location/>
         <source>Close</source>
         <translation>閉じる</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Definition:</source>
         <translation>定義(&amp;D):</translation>
     </message>
     <message>
-        <location/>
         <source>Edit Phrase Book</source>
         <translation>フレーズブックを編集</translation>
     </message>
     <message>
-        <source>&amp;New Phrase</source>
-        <translation type="obsolete">新しいフレーズ(&amp;N)</translation>
-    </message>
-    <message>
-        <location filename="../tools/linguist/linguist/phrasebookbox.cpp" line="-1"/>
         <source>Qt Linguist</source>
         <translation>Qt Linguist</translation>
     </message>
     <message>
-        <source>&amp;Remove Phrase</source>
-        <translation type="obsolete">フレーズを消去(&amp;R)</translation>
-    </message>
-    <message>
-        <location filename="../tools/linguist/linguist/phrasebookbox.ui"/>
         <source>&amp;Save</source>
         <translation>保存(&amp;S)</translation>
     </message>
     <message>
-        <location/>
         <source>S&amp;ource phrase:</source>
         <translation>ソースフレーズ(&amp;S):</translation>
     </message>
     <message>
-        <location/>
         <source>This window allows you to add, modify, or delete entries in a phrase book.</source>
         <translation>このウィンドウでフレーズブックにフレーズを追加、変更、削除できます。</translation>
     </message>
     <message>
-        <location/>
         <source>This is a definition for the source phrase.</source>
         <translation>ソースフレーズの定義です。</translation>
     </message>
     <message>
-        <location/>
         <source>This is the phrase in the source language.</source>
         <translation>ソースの言語のフレーズです。</translation>
     </message>
     <message>
-        <location/>
         <source>This is the phrase in the target language corresponding to the source phrase.</source>
         <translation>ソースフレーズに対応する翻訳先言語のフレーズです。</translation>
     </message>
     <message>
-        <source>This window allows you to add, modify, or delete phrases in a phrase book.</source>
-        <translation type="obsolete">このウィンドウでフレーズブックにフレーズを追加、変更、削除できます。</translation>
-    </message>
-    <message>
-        <location/>
         <source>&amp;Translation:</source>
         <translation>訳(&amp;T):</translation>
     </message>
     <message>
-        <location filename="../tools/linguist/linguist/phrasebookbox.cpp" line="-143"/>
         <source></source>
         <comment>Go to Phrase &gt; Edit Phrase Book... The dialog that pops up is a PhraseBookBox.</comment>
         <translation></translation>
@@ -2002,17 +1373,14 @@
 <context>
     <name>PhraseModel</name>
     <message>
-        <location filename="../tools/linguist/linguist/phrasemodel.cpp" line="+121"/>
         <source>Definition</source>
         <translation>定義</translation>
     </message>
     <message>
-        <location line="-4"/>
         <source>Source phrase</source>
         <translation>ソースフレーズ</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Translation</source>
         <translation>翻訳</translation>
     </message>
@@ -2020,22 +1388,18 @@
 <context>
     <name>PhraseView</name>
     <message>
-        <location filename="../tools/linguist/linguist/phraseview.cpp" line="+121"/>
         <source>Insert</source>
         <translation>挿入</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Edit</source>
         <translation>編集</translation>
     </message>
     <message>
-        <location line="+113"/>
         <source>Guess (%1)</source>
         <translation>推測(%1)</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Guess</source>
         <translation>推測</translation>
     </message>
@@ -2043,573 +1407,103 @@
 <context>
     <name>QObject</name>
     <message>
-        <location filename="../tools/linguist/shared/qm.cpp" line="+12"/>
         <source>Compiled Qt translations</source>
         <translation>コンパイル済み Qt 翻訳ファイル</translation>
     </message>
     <message>
-        <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-1279"/>
         <source>Translation files (%1);;</source>
         <translation>翻訳ファイル (%1);;</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>All files (*)</source>
         <translation>すべてのファイル (*)</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/cpp.cpp" line="+1072"/>
-        <source>C++ source files</source>
-        <translation>C++ ソースファイル</translation>
-    </message>
-    <message>
-        <location filename="../tools/linguist/shared/java.cpp" line="+646"/>
-        <source>Java source files</source>
-        <translation>Java ソースファイル</translation>
-    </message>
-    <message>
-        <location filename="../tools/linguist/shared/po.cpp" line="+651"/>
         <source>GNU Gettext localization files</source>
         <translation>GNU Gettext 日本語化ファイル</translation>
     </message>
     <message>
-        <location filename="../tools/linguist/shared/qscript.cpp" line="+2399"/>
-        <source>Qt Script source files</source>
-        <translation>Qt スクリプト ソースファイル</translation>
+        <source>GNU Gettext localization template files</source>
+        <translation>GNU Gettext 日本語化テンプレートファイル</translation>
     </message>
     <message>
-        <location filename="../tools/linguist/shared/ts.cpp" line="+752"/>
         <source>Qt translation sources (format 1.1)</source>
         <translation>Qt 翻訳ソース (1.1形式)</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Qt translation sources (format 2.0)</source>
         <translation>Qt 翻訳ソース (2.0形式)</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Qt translation sources (latest format)</source>
         <translation>Qt 翻訳ソース (最新の形式)</translation>
     </message>
     <message>
-        <location filename="../tools/linguist/shared/ui.cpp" line="+213"/>
-        <source>Qt Designer form files</source>
-        <translation>Qt デザイナ フォームファイル</translation>
-    </message>
-    <message>
-        <location line="+9"/>
-        <source>Qt Jambi form files</source>
-        <translation>Qt Jambi フォームファイル</translation>
-    </message>
-    <message>
-        <location filename="../tools/linguist/shared/xliff.cpp" line="+817"/>
         <source>XLIFF localization files</source>
         <translation>XLIFF 日本語化ファイル</translation>
     </message>
     <message>
-        <location filename="../tools/linguist/shared/qph.cpp" line="+192"/>
         <source>Qt Linguist &apos;Phrase Book&apos;</source>
         <translation>Qt Linguist &apos;フレーズ ブック&apos;</translation>
     </message>
 </context>
 <context>
-    <name>QtWindowListMenu</name>
-    <message>
-        <source>Cascade</source>
-        <translation type="obsolete">カスケード</translation>
-    </message>
-    <message>
-        <source>Close</source>
-        <translation type="obsolete">閉じる</translation>
-    </message>
-    <message>
-        <source>Close All</source>
-        <translation type="obsolete">すべて閉じる</translation>
-    </message>
-    <message>
-        <source>Tile</source>
-        <translation type="obsolete">タイル</translation>
-    </message>
-</context>
-<context>
-    <name>SortedMessagesModel</name>
-    <message>
-        <source>Source text</source>
-        <translation type="obsolete">ソーステキスト</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;ソース コードは使用できません&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;ファイル %1 が使用できません&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;ファイル %1 が読み込めません&lt;/i&gt;</translation>
     </message>
 </context>
 <context>
-    <name>SourceTextEdit</name>
-    <message>
-        <source>&amp;Copy</source>
-        <translation type="obsolete">コピー(&amp;C)</translation>
-    </message>
-    <message>
-        <source>Ctrl+A</source>
-        <translation type="obsolete">Ctrl+A</translation>
-    </message>
-    <message>
-        <source>Ctrl+C</source>
-        <translation type="obsolete">Ctrl+C</translation>
-    </message>
-    <message>
-        <source>Select &amp;All</source>
-        <translation type="obsolete">すべてを選択(&amp;A)</translation>
-    </message>
-</context>
-<context>
     <name>Statistics</name>
     <message>
-        <location filename="../tools/linguist/linguist/statistics.ui"/>
         <source>0</source>
         <translation>0</translation>
     </message>
     <message>
-        <location/>
         <source>Characters (with spaces):</source>
         <translation>文字(スペースつき):</translation>
     </message>
     <message>
-        <location/>
         <source>Characters:</source>
         <translation>文字:</translation>
     </message>
     <message>
-        <source>&amp;Close</source>
-        <translation type="obsolete">閉じる(&amp;C)</translation>
-    </message>
-    <message>
-        <location/>
         <source>Source</source>
         <translation>ソース</translation>
     </message>
     <message>
-        <location/>
         <source>Statistics</source>
         <translation>統計</translation>
     </message>
     <message>
-        <location/>
         <source>Translation</source>
         <translation>翻訳</translation>
     </message>
     <message>
-        <location/>
         <source>Words:</source>
         <translation>語:</translation>
     </message>
     <message>
-        <location/>
         <source>Close</source>
         <translation>閉じる</translation>
     </message>
 </context>
 <context>
-    <name>TrPreviewTool</name>
-    <message>
-        <source>&lt;No Translation&gt;</source>
-        <translation type="obsolete">&lt;翻訳ファイルなし&gt;</translation>
-    </message>
-    <message>
-        <source>About </source>
-        <translation type="obsolete"> について</translation>
-    </message>
-    <message>
-        <source>Could not load form file(s):
-</source>
-        <translation type="obsolete">フォームファイルをロードできませんでした:
-</translation>
-    </message>
-    <message>
-        <source>Could not load translation file:
-</source>
-        <translation type="obsolete">翻訳ファイルをロードできませんでした:
-</translation>
-    </message>
-    <message>
-        <source>Could not reload translation file(s):
-</source>
-        <translation type="obsolete">翻訳ファイルをリロードできませんでした:
-</translation>
-    </message>
-    <message>
-        <source>File</source>
-        <translation type="obsolete">ファイル</translation>
-    </message>
-    <message>
-        <source>Load Translation</source>
-        <translation type="obsolete">翻訳ファイルをロード</translation>
-    </message>
-    <message>
-        <source>Open Forms</source>
-        <translation type="obsolete">フォームを開く</translation>
-    </message>
-    <message>
-        <source>Qt Translation Preview Tool: Warning</source>
-        <translation type="obsolete">Qt 翻訳プレビューツール: 警告</translation>
-    </message>
-    <message>
-        <source>Translation files (*.qm);;All files (*.*)</source>
-        <translation type="obsolete">翻訳ファイル (*.qm);;全てのファイル (*.*)</translation>
-    </message>
-    <message>
-        <source>User interface form files (*.ui);;All files (*.*)</source>
-        <translation type="obsolete">ユーザインタフェースファイル (*.ui);;全てのファイル (*.*)</translation>
-    </message>
-    <message>
-        <source>Windows</source>
-        <translation type="obsolete">ウィンドウ</translation>
-    </message>
-</context>
-<context>
-    <name>TrPreviewToolClass</name>
-    <message>
-        <source>About</source>
-        <translation type="obsolete">について</translation>
-    </message>
-    <message>
-        <source>About Qt</source>
-        <translation type="obsolete">Qt について</translation>
-    </message>
-    <message>
-        <source>&amp;Close</source>
-        <translation type="obsolete">閉じる(&amp;C)</translation>
-    </message>
-    <message>
-        <source>F5</source>
-        <translation type="obsolete">F5</translation>
-    </message>
-    <message>
-        <source>&amp;File</source>
-        <translation type="obsolete">ファイル(&amp;F)</translation>
-    </message>
-    <message>
-        <source>Forms</source>
-        <translation type="obsolete">フォーム</translation>
-    </message>
-    <message>
-        <source>&amp;Help</source>
-        <translation type="obsolete">ヘルプ(&amp;H)</translation>
-    </message>
-    <message>
-        <source>&amp;Load Translation...</source>
-        <translation type="obsolete">翻訳ファイルをロード(&amp;L)...</translation>
-    </message>
-    <message>
-        <source>&amp;Open Form...</source>
-        <translation type="obsolete">フォームを開く(&amp;O)...</translation>
-    </message>
-    <message>
-        <source>Qt Translation Preview Tool</source>
-        <translation type="obsolete">Qt 翻訳プレビューツール</translation>
-    </message>
-    <message>
-        <source>&amp;Reload Translations</source>
-        <translation type="obsolete">翻訳ファイルをリロード(&amp;R)</translation>
-    </message>
-    <message>
-        <source>&amp;View</source>
-        <translation type="obsolete">表示(&amp;V)</translation>
-    </message>
-    <message>
-        <source>&amp;Views</source>
-        <translation type="obsolete">表示(&amp;V)</translation>
-    </message>
-</context>
-<context>
     <name>TrWindow</name>
     <message>
-        <source> Open Source Edition</source>
-        <translation type="obsolete"> オープンソース版</translation>
-    </message>
-    <message>
-        <source>%1 - %2</source>
-        <translation type="obsolete">%1 - %2</translation>
-    </message>
-    <message>
-        <source>%1 - %2%3</source>
-        <translation type="obsolete">%1 - %2%3</translation>
-    </message>
-    <message numerus="yes">
-        <source>%n phrase(s) loaded.</source>
-        <translation type="obsolete">
-            <numerusform>%n 項目のフレーズがロードされました。</numerusform>
-        </translation>
-    </message>
-    <message numerus="yes">
-        <source>%n source phrase(s) loaded.</source>
-        <translation type="obsolete">
-            <numerusform>%n 個のソースフレーズがロードされました。</numerusform>
-        </translation>
-    </message>
-    <message>
-        <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;%2&lt;/p&gt;&lt;p&gt;Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).&lt;/p&gt;&lt;p&gt;The program is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.&lt;/p&gt;</source>
-        <translation type="obsolete">&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 は、Qt アプリケーションの翻訳を行うツールです。&lt;/p&gt;&lt;p&gt;%2&lt;/p&gt;&lt;p&gt;Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). 全ての権利は保護されています。&lt;/p&gt;&lt;p&gt;このプログラムは、「設計」、「市場性」および「特定の目的への適合性」も含む、あらゆる種類の「保証がなく」、「そのままで」提供されます。&lt;/p&gt;</translation>
-    </message>
-    <message>
-        <source>A file called &apos;%1&apos; already exists.  Please choose another name.</source>
-        <translation type="obsolete">&apos;%1&apos; というファイルはすでに存在します。別の名前を選んでください。</translation>
-    </message>
-    <message>
-        <source>A phrase book suggestion for &apos;%1&apos; was ignored.</source>
-        <translation type="obsolete">&apos;%1&apos; についてのフレーズブックの示唆を無視しています。</translation>
-    </message>
-    <message>
-        <source>Accelerator possibly missing in translation.</source>
-        <translation type="obsolete">訳にアクセラレータが欠けています。</translation>
-    </message>
-    <message>
-        <source>Accelerator possibly superfluous in translation.</source>
-        <translation type="obsolete">訳に余分なアクセラレータがついています。</translation>
-    </message>
-    <message>
-        <source>Allow you to add, modify, or delete phrases of this phrase book.</source>
-        <translation type="obsolete">フレーズブックにフレーズを追加、変更、削除できます。</translation>
-    </message>
-    <message>
-        <source>Cannot create phrase book &apos;%1&apos;.</source>
-        <translation type="obsolete">フレーズブック &apos;%1&apos; を作成できません。</translation>
-    </message>
-    <message>
-        <source>Cannot find the string &apos;%1&apos;.</source>
-        <translation type="obsolete">文字列 &apos;%1&apos; が見つかりません。</translation>
-    </message>
-    <message>
-        <source>Cannot open &apos;%1&apos;.</source>
-        <translation type="obsolete">&apos;%1&apos; をオープンできません。</translation>
-    </message>
-    <message>
-        <source>Cannot read from phrase book &apos;%1&apos;.</source>
-        <translation type="obsolete">フレーズブック &apos;%1&apos; から読み出せません。</translation>
-    </message>
-    <message>
-        <source>Cannot save &apos;%1&apos;.</source>
-        <translation type="obsolete">&apos;%1&apos; を保存できません。</translation>
-    </message>
-    <message>
-        <source>Close this phrase book.</source>
-        <translation type="obsolete">このフレーズブックを閉じます。</translation>
-    </message>
-    <message>
-        <source>Context</source>
-        <translation type="obsolete">コンテキスト</translation>
-    </message>
-    <message>
-        <source>Context: %1</source>
-        <translation type="obsolete">コンテキスト: %1</translation>
-    </message>
-    <message>
-        <source>Create New Phrase Book</source>
-        <translation type="obsolete">新しいフレーズブックを作成</translation>
-    </message>
-    <message>
-        <source>Ctrl+M</source>
-        <translation type="obsolete">Ctrl+M</translation>
-    </message>
-    <message>
-        <source>Display information about %1.</source>
-        <translation type="obsolete">%1 についての情報を表示します。</translation>
-    </message>
-    <message>
-        <source>Display the manual for %1.</source>
-        <translation type="obsolete">%1 のマニュアルを表示します。</translation>
-    </message>
-    <message>
-        <source>Do you want to save &apos;%1&apos;?</source>
-        <translation type="obsolete">&apos;%1&apos; を保存しますか?</translation>
-    </message>
-    <message>
-        <source>Edit</source>
-        <translation type="obsolete">編集</translation>
-    </message>
-    <message>
-        <source>File</source>
-        <translation type="obsolete">ファイル</translation>
-    </message>
-    <message>
-        <source>File created.</source>
-        <translation type="obsolete">ファイルが作成されました。</translation>
-    </message>
-    <message>
-        <source>File saved.</source>
-        <translation type="obsolete">ファイルが保存されました。</translation>
-    </message>
-    <message>
-        <source>finished</source>
-        <translation type="obsolete">完了</translation>
-    </message>
-    <message>
-        <source>Help</source>
-        <translation type="obsolete">ヘルプ</translation>
-    </message>
-    <message>
-        <source>Loading...</source>
-        <translation type="obsolete">ロードしています...</translation>
-    </message>
-    <message>
-        <source>Minimize</source>
-        <translation type="obsolete">最小化</translation>
-    </message>
-    <message>
-        <source>MOD</source>
-        <translation type="obsolete">変更されています</translation>
-    </message>
-    <message>
-        <source>No untranslated phrases left.</source>
-        <translation type="obsolete">未訳のフレーズは残っていません。</translation>
-    </message>
-    <message>
-        <source>obsolete</source>
-        <translation type="obsolete">このバージョンでは使われていない</translation>
-    </message>
-    <message>
-        <source>Open Phrase Book</source>
-        <translation type="obsolete">フレーズブックを開く</translation>
-    </message>
-    <message>
-        <source>Phrase book created.</source>
-        <translation type="obsolete">フレーズブックが作成されました。</translation>
-    </message>
-    <message>
-        <source>Print the entries of the phrase book.</source>
-        <translation type="obsolete">フレーズブックの見出し語を印刷します。</translation>
-    </message>
-    <message>
-        <source>Printing aborted</source>
-        <translation type="obsolete">印刷中止</translation>
-    </message>
-    <message>
-        <source>Printing completed</source>
-        <translation type="obsolete">印刷完了</translation>
-    </message>
-    <message>
-        <source>Printing...</source>
-        <translation type="obsolete">印刷中...</translation>
-    </message>
-    <message>
-        <source>Printing... (page %1)</source>
-        <translation type="obsolete">印刷中... (%1 ページ)</translation>
-    </message>
-    <message>
-        <source>Qt Linguist</source>
-        <translation type="obsolete">Qt Linguist</translation>
-    </message>
-    <message>
-        <source>Qt Linguist by Trolltech</source>
-        <translation type="obsolete">Trolltech の Qt Linguist</translation>
-    </message>
-    <message>
-        <source>Qt message files for released applications (*.qm)
-All files (*)</source>
-        <translation type="obsolete">リリースされたアプリケーション用の Qt メッセージファイル (*.qm)
-すべてのファイル (*)</translation>
-    </message>
-    <message>
-        <source>Qt phrase books (*.qph)
-All files (*)</source>
-        <translation type="obsolete">Qt フレーズブック (*.qph)
-すべてのファイル (*)</translation>
-    </message>
-    <message>
-        <source>Qt translation source (*.ts)
-All files (*)</source>
-        <translation type="obsolete">Qt 翻訳ソースファイル (*.ts)
-すべてのファイル (*)</translation>
-    </message>
-    <message>
-        <source>Release</source>
-        <translation type="obsolete">リリース</translation>
-    </message>
-    <message>
-        <source>Search wrapped.</source>
-        <translation type="obsolete">検索が一通り終わりました。</translation>
-    </message>
-    <message>
-        <source>There was a problem in the preparation of form preview.</source>
-        <translation type="obsolete">フォームのプレビューの準備中に問題が発生しました。</translation>
-    </message>
-    <message>
-        <source>This panel lists the source contexts.</source>
-        <translation type="obsolete">このパネルではソースのコンテキストを一覧表示しています。</translation>
-    </message>
-    <message>
-        <source>This program is licensed to you under the terms of the Qt Commercial License Agreement. For details, see the file LICENSE that came with this software distribution.</source>
-        <translation type="obsolete">このプログラムは、Qt 商用ライセンス契約書の定める条件の下であなたの利用が認められています。詳細は、ソフトウェアと一緒に配布される LICENSE ファイルを参照してください。</translation>
-    </message>
-    <message>
-        <source>This version of Qt Linguist is part of the Qt Open Source Edition, for use in the development of Open Source applications. Qt is a comprehensive C++ framework for cross-platform application development.&lt;br/&gt;&lt;br/&gt;You need a commercial Qt license for development of proprietary (closed source) applications. Please see &lt;tt&gt;http://qt.nokia.com/company/model.html&lt;/tt&gt; for an overview of Qt licensing.</source>
-        <translation type="obsolete">このバージョンの Qt Linguist は、 オープンソースアプリケーションを開発するための Qt オープンソース版の一部です。Qt は、クロスプラットフォームなアプリケーションを開発するための包括的な C++ のフレームワークです。&lt;br/&gt;&lt;br/&gt;独占的な(ソースが隠された)アプリケーションを開発するには、Qt の商用ライセンスが必要です。Qt のライセンスの概要については &lt;tt&gt;http://qt.nokia.com/company/model.html&lt;/tt&gt; をご覧ください。</translation>
-    </message>
-    <message>
-        <source>Translate</source>
-        <translation type="obsolete">翻訳</translation>
-    </message>
-    <message numerus="yes">
-        <source>Translated %n entries to &apos;%1&apos;</source>
-        <translation type="obsolete">
-            <numerusform>%n 項目を &apos;%1&apos; に翻訳しました</numerusform>
-        </translation>
-    </message>
-    <message>
-        <source>Translation</source>
-        <translation type="obsolete">訳</translation>
-    </message>
-    <message>
-        <source>Translation does not end with the same punctuation as the source text.</source>
-        <translation type="obsolete">訳がソーステキストと同じ句読点で終わっていません。</translation>
-    </message>
-    <message>
-        <source>Translation does not refer to the same place markers as in the source text.</source>
-        <translation type="obsolete">訳語にはソーステキストと同じ数の &quot;%&quot; がありません。</translation>
-    </message>
-    <message>
-        <source>unresolved</source>
-        <translation type="obsolete">未解決</translation>
-    </message>
-    <message>
-        <source>Validation</source>
-        <translation type="obsolete">検証</translation>
-    </message>
-    <message>
-        <source>Version %1</source>
-        <translation type="obsolete">バージョン %1</translation>
-    </message>
-    <message>
-        <source>&amp;Window</source>
-        <translation type="obsolete">ウィンドウ(&amp;W)</translation>
-    </message>
-    <message>
-        <location filename="../tools/linguist/linguist/trwindow.cpp" line="+14"/>
         <source></source>
         <comment>This is the application&apos;s main window.</comment>
         <translation></translation>
@@ -2618,174 +1512,87 @@
 <context>
     <name>TranslateDialog</name>
     <message>
-        <location filename="../tools/linguist/linguist/translatedialog.ui"/>
         <source>Cancel</source>
         <translation>キャンセル</translation>
     </message>
     <message>
-        <location/>
         <source>Click here to close this window.</source>
         <translation>このウィンドウを閉じるにはここをクリックします。</translation>
     </message>
     <message>
-        <location/>
         <source>Click here to find the next occurrence of the text you typed in.</source>
         <translation>入力したテキストが次に出てくる箇所を見つけるにはここをクリックします。</translation>
     </message>
     <message>
-        <location/>
         <source>Find Next</source>
         <translation>次を検索</translation>
     </message>
     <message>
-        <location/>
         <source>Find &amp;source text:</source>
         <translation>ソーステキストを検索(&amp;S):</translation>
     </message>
     <message>
-        <location/>
         <source>Mark new translation as &amp;finished</source>
         <translation>新しく翻訳した項目を完了にする(&amp;F)</translation>
     </message>
     <message>
-        <location/>
         <source>Match &amp;case</source>
         <translation>大文字・小文字の区別(&amp;C)</translation>
     </message>
     <message>
-        <source>Qt Linguist</source>
-        <translation type="obsolete">Qt Linguist</translation>
-    </message>
-    <message>
-        <location/>
         <source>Search options</source>
         <translation>検索オプション</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; と &apos;tex&apos; は異なるものと見なされます。</translation>
     </message>
     <message>
-        <location/>
         <source>This window allows you to search for some text in the translation source file.</source>
         <translation>このウィンドウで翻訳ソースファイル内のテキストを検索できます。</translation>
     </message>
     <message>
-        <location/>
         <source>Translate</source>
         <translation>翻訳</translation>
     </message>
     <message>
-        <location/>
         <source>Translate All</source>
         <translation>すべて翻訳</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Translate to:</source>
         <translation>訳語(&amp;T):</translation>
     </message>
     <message>
-        <location/>
         <source>Type in the text to search for.</source>
         <translation>検索するテキストを入力してください。</translation>
     </message>
 </context>
 <context>
-    <name>TranslationSettings</name>
-    <message>
-        <source>Country</source>
-        <translation type="obsolete">国</translation>
-    </message>
-    <message>
-        <source>Language</source>
-        <translation type="obsolete">言語</translation>
-    </message>
-    <message>
-        <source>Qt Linguist - Translation file settings</source>
-        <translation type="obsolete">Qt Linguist - 翻訳ファイルの設定</translation>
-    </message>
-    <message>
-        <source>Target language</source>
-        <translation type="obsolete">翻訳先の言語</translation>
-    </message>
-</context>
-<context>
     <name>TranslationSettingsDialog</name>
     <message>
-        <location filename="../tools/linguist/linguist/translationsettingsdialog.cpp" line="+68"/>
         <source>Any Country</source>
         <translation>指定しない</translation>
     </message>
     <message>
-        <location line="+11"/>
-        <location line="+8"/>
         <source>Settings for &apos;%1&apos; - Qt Linguist</source>
         <translation>&apos;%1&apos; の設定 - Qt Linguist</translation>
     </message>
     <message>
-        <location filename="../tools/linguist/linguist/translationsettings.ui"/>
         <source>Source language</source>
         <translation>翻訳元の言語</translation>
     </message>
     <message>
-        <location/>
         <source>Language</source>
         <translation>言語</translation>
     </message>
     <message>
-        <location/>
         <source>Country/Region</source>
         <translation>国/地域</translation>
     </message>
     <message>
-        <location/>
         <source>Target language</source>
         <translation>翻訳先の言語</translation>
     </message>
 </context>
-<context>
-    <name>databaseTranslationDialog</name>
-    <message>
-        <source>&amp;Cancel</source>
-        <translation type="obsolete">キャンセル(&amp;C)</translation>
-    </message>
-    <message>
-        <source>Move down</source>
-        <translation type="obsolete">下に移動</translation>
-    </message>
-    <message>
-        <source>Move up</source>
-        <translation type="obsolete">上に移動</translation>
-    </message>
-    <message>
-        <source>Only translate entries with no translation</source>
-        <translation type="obsolete">訳語がない項目だけを翻訳する</translation>
-    </message>
-    <message>
-        <source>Options</source>
-        <translation type="obsolete">オプション</translation>
-    </message>
-    <message>
-        <source>Phrase book preference</source>
-        <translation type="obsolete">フレーズブックの優先度</translation>
-    </message>
-    <message>
-        <source>Qt Linguist - Batch Translation</source>
-        <translation type="obsolete">Qt Linguist - 一括翻訳</translation>
-    </message>
-    <message>
-        <source>&amp;Run</source>
-        <translation type="obsolete">実行(&amp;R)</translation>
-    </message>
-    <message>
-        <source>Set translated entries to finished</source>
-        <translation type="obsolete">翻訳された項目を完了にする</translation>
-    </message>
-    <message>
-        <source>The batch translator will search through the selected phrasebooks in the order given above.</source>
-        <translation type="obsolete">一括翻訳機能は、上記で指定された順にフレーズブックを検索します。</translation>
-    </message>
-</context>
 </TS>
--- a/translations/linguist_ru.ts	Fri Sep 17 08:34:18 2010 +0300
+++ b/translations/linguist_ru.ts	Mon Oct 04 01:19:32 2010 +0300
@@ -4,7 +4,6 @@
 <context>
     <name>AboutDialog</name>
     <message>
-        <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+1366"/>
         <source>Qt Linguist</source>
         <translation>Qt Linguist</translation>
     </message>
@@ -12,77 +11,62 @@
 <context>
     <name>BatchTranslationDialog</name>
     <message>
-        <location filename="../tools/linguist/linguist/batchtranslation.ui"/>
         <source>Qt Linguist - Batch Translation</source>
         <translation>Qt Linguist - Пакетный перевод</translation>
     </message>
     <message>
-        <location/>
         <source>Options</source>
         <translation>Параметры</translation>
     </message>
     <message>
-        <location/>
         <source>Set translated entries to finished</source>
         <translation>Помечать переведенные записи как завершённые</translation>
     </message>
     <message>
-        <location/>
         <source>Retranslate entries with existing translation</source>
         <translation>Переводить записи, уже имеющие перевод</translation>
     </message>
     <message>
-        <location/>
         <source>Translate also finished entries</source>
         <translation>Также переводить записи с завершёнными переводами</translation>
     </message>
     <message>
-        <location/>
         <source>Phrase book preference</source>
         <translation>Предпочитаемые глоссарии</translation>
     </message>
     <message>
-        <location/>
         <source>Move up</source>
         <translation>Поднять</translation>
     </message>
     <message>
-        <location/>
         <source>Move down</source>
         <translation>Опустить</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Run</source>
         <translation>&amp;Выполнить</translation>
     </message>
     <message>
-        <location/>
         <source>Cancel</source>
         <translation>Отмена</translation>
     </message>
     <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</translation>
     </message>
     <message>
-        <location line="+37"/>
         <source>Searching, please wait...</source>
         <translation>Идёт поиск, ожидайте...</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>&amp;Cancel</source>
         <translation>От&amp;мена</translation>
     </message>
     <message>
-        <location line="+42"/>
         <source>Linguist batch translator</source>
         <translation>Пакетный переводчик Qt Linguist</translation>
     </message>
     <message numerus="yes">
-        <location line="+1"/>
         <source>Batch translated %n entries</source>
         <translation>
             <numerusform>Автоматически переведена %n запись</numerusform>
@@ -91,12 +75,10 @@
         </translation>
     </message>
     <message>
-        <location filename="../tools/linguist/linguist/batchtranslation.ui"/>
         <source>Note that the modified entries will be reset to unfinished if &apos;Set translated entries to finished&apos; above is unchecked</source>
         <translation>Имейте в виду, что изменённые записи будут отмечены как незавершённые, если не включен параметр &quot;Помечать переведенные записи как завершённые&quot;</translation>
     </message>
     <message>
-        <location/>
         <source>The batch translator will search through the selected phrase books in the order given above</source>
         <translation>Пакетный переводчик будет искать в выбранных глоссариях в указанном выше порядке</translation>
     </message>
@@ -104,45 +86,36 @@
 <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;В &apos;%1&apos; обнаружены повторяющиеся сообщения:</translation>
     </message>
     <message>
-        <location line="+4"/>
-        <location line="+8"/>
         <source>&lt;p&gt;[more duplicates omitted]</source>
         <translation>&lt;p&gt;[остальные повторы не указаны]</translation>
     </message>
     <message>
-        <location line="-5"/>
         <source>&lt;p&gt;* ID: %1</source>
         <translation>&lt;p&gt;* ID: %1</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>&lt;p&gt;* Context: %1&lt;br&gt;* Source: %2</source>
         <translation>&lt;p&gt;* Контекст: %1&lt;br&gt;* Источник: %2</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>&lt;br&gt;* Comment: %3</source>
         <translation>&lt;br&gt;* Комментарий: %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>Qt Linguist не знает правила множественных форм для &apos;%1&apos;.
 Будет использована универсальная единичная форма.</translation>
     </message>
     <message>
-        <location line="+56"/>
         <source>Cannot create &apos;%2&apos;: %1</source>
         <translation>Не удалось создать &apos;%2&apos;: %1</translation>
     </message>
     <message>
-        <location line="+56"/>
         <source>Universal Form</source>
         <translation>Универсальная форма</translation>
     </message>
@@ -150,37 +123,30 @@
 <context>
     <name>ErrorsView</name>
     <message>
-        <location filename="../tools/linguist/linguist/errorsview.cpp" line="+76"/>
         <source>Accelerator possibly superfluous in translation.</source>
         <translation>Возможно, лишний акселератор в переводе.</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Accelerator possibly missing in translation.</source>
         <translation>Возможно, пропущен акселератор в переводе.</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Translation does not end with the same punctuation as the source text.</source>
         <translation>Перевод не заканчивается тем же знаком препинания, что и исходный текст.</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>A phrase book suggestion for &apos;%1&apos; was ignored.</source>
         <translation>Предложение глоссария для &apos;%1&apos; пропущено.</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Translation does not refer to the same place markers as in the source text.</source>
         <translation>Перевод не содержит тех же маркеров форматирования, что и исходный текст.</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Translation does not contain the necessary %n place marker.</source>
         <translation>Перевод не содержит необходимого маркера форматирования %n.</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Unknown error</source>
         <translation>Неизвестная ошибка</translation>
     </message>
@@ -188,98 +154,79 @@
 <context>
     <name>FindDialog</name>
     <message>
-        <location filename="../tools/linguist/linguist/finddialog.cpp" line="+42"/>
         <source></source>
         <comment>Choose Edit|Find from the menu bar or press Ctrl+F to pop up the Find dialog</comment>
         <translation></translation>
     </message>
     <message>
-        <location filename="../tools/linguist/linguist/finddialog.ui"/>
         <source>Find</source>
         <translation>Поиск</translation>
     </message>
     <message>
-        <location/>
         <source>This window allows you to search for some text in the translation source file.</source>
         <translation>Данное окно позволяет искать текст в файле перевода.</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Find what:</source>
         <translation>&amp;Искать:</translation>
     </message>
     <message>
-        <location/>
         <source>Type in the text to search for.</source>
         <translation>Введите искомый текст.</translation>
     </message>
     <message>
-        <location/>
         <source>Options</source>
         <translation>Параметры</translation>
     </message>
     <message>
-        <location/>
         <source>Source texts are searched when checked.</source>
         <translation>Если отмечено, поиск будет вестись в исходных текстах.</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Source texts</source>
         <translation>&amp;Исходные тексты</translation>
     </message>
     <message>
-        <location/>
         <source>Translations are searched when checked.</source>
         <translation>Если отмечено, поиск будет вестись в переведённых текстах.</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Translations</source>
         <translation>&amp;Переводы</translation>
     </message>
     <message>
-        <location/>
         <source>Texts such as &apos;TeX&apos; and &apos;tex&apos; are considered as different when checked.</source>
         <translation>Если отмечено, строки &quot;ПрИмЕр&quot; и &quot;пример&quot; будет считаться разными.</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Match case</source>
         <translation>С учётом &amp;регистра</translation>
     </message>
     <message>
-        <location/>
         <source>Comments and contexts are searched when checked.</source>
         <translation>Если отмечено, поиск будет вестись по контекстам и комментариям.</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Comments</source>
         <translation>&amp;Комментарии</translation>
     </message>
     <message>
-        <location/>
         <source>Ignore &amp;accelerators</source>
         <translation>Пропускать &amp;акселераторы</translation>
     </message>
     <message>
-        <location/>
         <source>Click here to find the next occurrence of the text you typed in.</source>
         <translation>Найти следующее совпадение для введённого текста.</translation>
     </message>
     <message>
-        <location/>
         <source>Find Next</source>
         <translation>Найти далее</translation>
     </message>
     <message>
-        <location/>
         <source>Click here to close this window.</source>
         <translation>Закрыть окно.</translation>
     </message>
     <message>
-        <location/>
         <source>Cancel</source>
         <translation>Отмена</translation>
     </message>
@@ -287,30 +234,25 @@
 <context>
     <name>FormMultiWidget</name>
     <message>
-        <location filename="../tools/linguist/linguist/messageeditorwidgets.cpp" line="+302"/>
         <source>Alt+Delete</source>
         <extracomment>translate, but don&apos;t change</extracomment>
         <translation></translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Shift+Alt+Insert</source>
         <extracomment>translate, but don&apos;t change</extracomment>
         <translation></translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Alt+Insert</source>
         <extracomment>translate, but don&apos;t change</extracomment>
         <translation></translation>
     </message>
     <message>
-        <location line="+131"/>
         <source>Confirmation - Qt Linguist</source>
         <translation>Подтверждение - Qt Linguist</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Delete non-empty length variant?</source>
         <translation>Удалить вариант перевода?</translation>
     </message>
@@ -318,7 +260,6 @@
 <context>
     <name>LRelease</name>
     <message numerus="yes">
-        <location filename="../tools/linguist/shared/qm.cpp" line="+763"/>
         <source>Dropped %n message(s) which had no ID.</source>
         <translation>
             <numerusform>Удалено %n сообщение, у которого не было ID.</numerusform>
@@ -327,7 +268,6 @@
         </translation>
     </message>
     <message numerus="yes">
-        <location line="+4"/>
         <source>Excess context/disambiguation dropped from %n message(s).</source>
         <translation>
             <numerusform>Удалён лишний контекст из %n сообщения.</numerusform>
@@ -336,107 +276,80 @@
         </translation>
     </message>
     <message numerus="yes">
-        <location line="+8"/>
-        <source>    Generated %n translation(s) (%1 finished and %2 unfinished)
-</source>
+        <source>    Generated %n translation(s) (%1 finished and %2 unfinished)</source>
         <translation>
-            <numerusform>    Создан %n перевод (%1 завершённых и %2 незавершённых)
-</numerusform>
-            <numerusform>    Создано %n перевода (%1 завершённых и %2 незавершённых)
-</numerusform>
-            <numerusform>    Создано %n переводов (%1 завершённых и %2 незавершённых)
-</numerusform>
+            <numerusform>    Создан %n перевод (%1 завершённых и %2 незавершённых)</numerusform>
+            <numerusform>    Создано %n перевода (%1 завершённых и %2 незавершённых)</numerusform>
+            <numerusform>    Создано %n переводов (%1 завершённых и %2 незавершённых)</numerusform>
         </translation>
     </message>
     <message numerus="yes">
-        <location line="+4"/>
-        <source>    Ignored %n untranslated source text(s)
-</source>
+        <source>    Ignored %n untranslated source text(s)</source>
         <translation>
-            <numerusform>    Пропущен %n непереведённый исходный текст
-</numerusform>
-            <numerusform>    Пропущено %n непереведённых исходных текста
-</numerusform>
-            <numerusform>    Пропущено %n непереведённых исходных текстов
-</numerusform>
+            <numerusform>    Пропущен %n непереведённый исходный текст</numerusform>
+            <numerusform>    Пропущено %n непереведённых исходных текста</numerusform>
+            <numerusform>    Пропущено %n непереведённых исходных текстов</numerusform>
         </translation>
     </message>
 </context>
 <context>
     <name>MainWindow</name>
     <message>
-        <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-1324"/>
         <source></source>
         <comment>This is the application&apos;s main window.</comment>
         <translatorcomment>Основное окно программы.</translatorcomment>
         <translation></translation>
     </message>
     <message>
-        <location line="+160"/>
         <source>Source text</source>
         <translation>Исходный текст</translation>
     </message>
     <message>
-        <location line="+1"/>
-        <location line="+25"/>
         <source>Index</source>
         <translation>Индекс</translation>
     </message>
     <message>
-        <location line="-2"/>
-        <location line="+63"/>
         <source>Context</source>
         <translation>Контекст</translation>
     </message>
     <message>
-        <location line="-62"/>
         <source>Items</source>
         <translation>Записи</translation>
     </message>
     <message>
-        <location line="+79"/>
         <source>This panel lists the source contexts.</source>
         <translation>В данной панели перечислены исходные контексты.</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>Strings</source>
         <translation>Строки</translation>
     </message>
     <message>
-        <location line="+37"/>
         <source>Phrases and guesses</source>
         <translation>Фразы и похожие переводы</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>Sources and Forms</source>
         <translation>Исходники и формы</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Warnings</source>
         <translation>Предупреждения</translation>
     </message>
     <message>
-        <location line="+59"/>
         <source> MOD </source>
         <comment>status bar: file(s) modified</comment>
         <translation> ИЗМ </translation>
     </message>
     <message>
-        <location line="+139"/>
         <source>Loading...</source>
         <translation>Загрузка...</translation>
     </message>
     <message>
-        <location line="+32"/>
-        <location line="+22"/>
         <source>Loading File - Qt Linguist</source>
         <translation>Загрузка файла - 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>
@@ -445,7 +358,6 @@
 Закрыть открытые файлы?</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>
@@ -454,7 +366,6 @@
 Пропустить загрузку файла?</translation>
     </message>
     <message numerus="yes">
-        <location line="+61"/>
         <source>%n translation unit(s) loaded.</source>
         <translation>
             <numerusform>Загружена %n запись.</numerusform>
@@ -463,124 +374,84 @@
         </translation>
     </message>
     <message>
-        <location line="+94"/>
         <source>Related files (%1);;</source>
         <translation>Связанные файлы (%1);;</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Open Translation Files</source>
         <translation>Открыть файлы перевода</translation>
     </message>
     <message>
-        <location line="+10"/>
-        <location line="+31"/>
         <source>File saved.</source>
         <translation>Файл сохранён.</translation>
     </message>
     <message>
-        <location filename="../tools/linguist/linguist/mainwindow.ui"/>
-        <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+15"/>
-        <location line="+1187"/>
         <source>Release</source>
         <translation>Скомпилировать</translation>
     </message>
     <message>
-        <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-1186"/>
         <source>Qt message files for released applications (*.qm)
 All files (*)</source>
         <translation>Скомпилированные файлы перевода для приложений Qt (*.qm)
 Все файлы (*)</translation>
     </message>
     <message>
-        <location line="+3"/>
-        <location line="+12"/>
         <source>File created.</source>
         <translation>Файл создан.</translation>
     </message>
     <message>
-        <location line="+34"/>
-        <location line="+355"/>
         <source>Printing...</source>
         <translation>Печать...</translation>
     </message>
     <message>
-        <location line="-347"/>
         <source>Context: %1</source>
         <translation>Контекст: %1</translation>
     </message>
     <message>
-        <location line="+32"/>
         <source>finished</source>
         <translation>завершён</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>unresolved</source>
         <translation>неразрешённый</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>obsolete</source>
         <translation>устаревший</translation>
     </message>
     <message>
-        <location line="+15"/>
-        <location line="+307"/>
         <source>Printing... (page %1)</source>
         <translation>Печать... (страница %1)</translation>
     </message>
     <message>
-        <location line="-300"/>
-        <location line="+307"/>
         <source>Printing completed</source>
         <translation>Печать завершена</translation>
     </message>
     <message>
-        <location line="-305"/>
-        <location line="+307"/>
         <source>Printing aborted</source>
         <translation>Печать прервана</translation>
     </message>
     <message>
-        <location line="-232"/>
         <source>Search wrapped.</source>
         <translation>Поиск с начала.</translation>
     </message>
     <message>
-        <location line="+17"/>
-        <location line="+278"/>
-        <location line="+34"/>
-        <location line="+24"/>
-        <location line="+22"/>
-        <location line="+538"/>
-        <location line="+1"/>
-        <location line="+274"/>
-        <location line="+40"/>
-        <location line="+10"/>
         <source>Qt Linguist</source>
         <translation>Qt Linguist</translation>
     </message>
     <message>
-        <location line="-1220"/>
-        <location line="+102"/>
         <source>Cannot find the string &apos;%1&apos;.</source>
         <translation>Не удалось найти строку &apos;%1&apos;.</translation>
     </message>
     <message>
-        <location line="-82"/>
         <source>Search And Translate in &apos;%1&apos; - Qt Linguist</source>
         <translation>Поиск и перевод &apos;%1&apos; - Qt Linguist</translation>
     </message>
     <message>
-        <location line="+34"/>
-        <location line="+23"/>
-        <location line="+24"/>
         <source>Translate - Qt Linguist</source>
         <translation>Перевод - Qt Linguist</translation>
     </message>
     <message numerus="yes">
-        <location line="-46"/>
         <source>Translated %n entry(s)</source>
         <translation>
             <numerusform>Переведена %n запись</numerusform>
@@ -589,39 +460,32 @@
         </translation>
     </message>
     <message>
-        <location line="+23"/>
         <source>No more occurrences of &apos;%1&apos;. Start over?</source>
         <translation>Нет больше совпадений с &apos;%1&apos;. Начать заново?</translation>
     </message>
     <message>
-        <location line="+30"/>
         <source>Create New Phrase Book</source>
         <translation>Создать глоссарий</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Qt phrase books (*.qph)
 All files (*)</source>
         <translation>Глоссарии Qt (*.qph)
 Все файлы (*)</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>Phrase book created.</source>
         <translation>Глоссарий создан.</translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>Open Phrase Book</source>
         <translation>Открыть глоссарий</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Qt phrase books (*.qph);;All files (*)</source>
         <translation>Глоссарии Qt (*.qph);;Все файлы (*)</translation>
     </message>
     <message numerus="yes">
-        <location line="+7"/>
         <source>%n phrase(s) loaded.</source>
         <translation>
             <numerusform>Загружена %n фраза.</numerusform>
@@ -630,879 +494,690 @@
         </translation>
     </message>
     <message>
-        <location line="+93"/>
-        <location line="+3"/>
-        <location line="+7"/>
         <source>Add to phrase book</source>
         <translation>Добавить в глоссарий</translation>
     </message>
     <message>
-        <location line="-9"/>
         <source>No appropriate phrasebook found.</source>
         <translation>Подходящий глоссарий не найден.</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Adding entry to phrasebook %1</source>
         <translation>Добавление записи в глоссарий %1</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Select phrase book to add to</source>
         <translation>Выберите глоссарий, в который желаете добавить фразу</translation>
     </message>
     <message>
-        <location line="+29"/>
         <source>Unable to launch Qt Assistant (%1)</source>
         <translation>Не удалось запустить Qt Assistant (%1)</translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>Version %1</source>
         <translation>Версия %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) 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 - инструмент для добавления переводов в приложения на основе Qt.&lt;/p&gt;&lt;p&gt;Copyright (C) 2010 Корпорация Nokia и/или её дочерние подразделения.</translation>
     </message>
     <message>
-        <location line="+38"/>
         <source>Do you want to save the modified files?</source>
         <translation>Желаете сохранить изменённые файлы?</translation>
     </message>
     <message>
-        <location line="+22"/>
         <source>Do you want to save &apos;%1&apos;?</source>
         <translation>Желаете сохранить &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>Непереведённых записей не осталось.</translation>
     </message>
     <message>
-        <location line="+198"/>
         <source>&amp;Window</source>
         <translation>&amp;Окно</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Minimize</source>
         <translation>Свернуть</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Ctrl+M</source>
         <translation></translation>
     </message>
     <message>
-        <location line="+12"/>
         <source>Display the manual for %1.</source>
         <translation>Показать руководство для %1.</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Display information about %1.</source>
         <translation>Показать информацию о %1.</translation>
     </message>
     <message>
-        <location line="+70"/>
         <source>&amp;Save &apos;%1&apos;</source>
         <translation>&amp;Сохранить&apos;%1&apos;</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Save &apos;%1&apos; &amp;As...</source>
         <translation>Сохранить&apos;%1&apos; &amp;как...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Release &apos;%1&apos;</source>
         <translation>Скомпилировать &apos;%1&apos;</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Release &apos;%1&apos; As...</source>
         <translation>Скомпилировать &apos;%1&apos; как...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Close &apos;%1&apos;</source>
         <translation>&amp;Закрыть &apos;%1&apos;</translation>
     </message>
     <message>
-        <location line="+2"/>
-        <location line="+15"/>
         <source>&amp;Save</source>
         <translation>&amp;Сохранить</translation>
     </message>
     <message>
-        <location filename="../tools/linguist/linguist/mainwindow.ui"/>
-        <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-14"/>
-        <location line="+11"/>
         <source>Save &amp;As...</source>
         <translation>Сохранить &amp;как...</translation>
     </message>
     <message>
-        <location/>
-        <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-9"/>
-        <location line="+10"/>
         <source>Release As...</source>
         <translation>Скомпилировать как...</translation>
     </message>
     <message>
-        <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-9"/>
-        <location line="+13"/>
         <source>&amp;Close</source>
         <translation>&amp;Закрыть</translation>
     </message>
     <message>
-        <location line="-10"/>
         <source>Save All</source>
         <translation>Сохранить все</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;компилировать все</translation>
     </message>
     <message>
-        <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+1"/>
         <source>Close All</source>
         <translation>Закрыть все</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>&amp;Release</source>
         <translation>С&amp;компилировать</translation>
     </message>
     <message>
-        <location line="+16"/>
         <source>Translation File &amp;Settings for &apos;%1&apos;...</source>
         <translation>&amp;Параметры файла перевода для &apos;%1&apos;...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Batch Translation of &apos;%1&apos;...</source>
         <translation>Пак&amp;етный перевод &apos;%1&apos;...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Search And &amp;Translate in &apos;%1&apos;...</source>
         <translation>&amp;Найти и перевести в &apos;%1&apos;...</translation>
     </message>
     <message>
-        <location filename="../tools/linguist/linguist/mainwindow.ui"/>
-        <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+2"/>
         <source>Translation File &amp;Settings...</source>
         <translation>&amp;Параметры файла перевода...</translation>
     </message>
     <message>
-        <location/>
-        <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+1"/>
         <source>&amp;Batch Translation...</source>
         <translation>Пак&amp;етный перевод...</translation>
     </message>
     <message>
-        <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+1"/>
         <source>Search And &amp;Translate...</source>
         <translation>&amp;Найти и перевести...</translation>
     </message>
     <message>
-        <location filename="../tools/linguist/linguist/mainwindow.ui"/>
-        <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+51"/>
         <source>File</source>
         <translation>Файл</translation>
     </message>
     <message>
-        <location/>
-        <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+7"/>
         <source>Edit</source>
         <translation>Правка</translation>
     </message>
     <message>
-        <location/>
-        <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+6"/>
         <source>Translation</source>
         <translation>Перевод</translation>
     </message>
     <message>
-        <location/>
-        <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+6"/>
         <source>Validation</source>
         <translation>Проверка</translation>
     </message>
     <message>
-        <location/>
-        <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+7"/>
         <source>Help</source>
         <translation>Справка</translation>
     </message>
     <message>
-        <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+84"/>
         <source>Cannot read from phrase book &apos;%1&apos;.</source>
         <translation>Не удалось прочитать из глоссария &apos;%1&apos;.</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Close this phrase book.</source>
         <translation>Закрыть глоссарий.</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Enables you to add, modify, or delete entries in this phrase book.</source>
         <translation>Позволяет добавлять, изменять и удалять записи в глоссарии.</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Print the entries in this phrase book.</source>
         <translation>Печать записей фраз глоссария.</translation>
     </message>
     <message>
-        <location line="+16"/>
         <source>Cannot create phrase book &apos;%1&apos;.</source>
         <translation>Не удалось создать глоссарий &apos;%1&apos;.</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>Do you want to save phrase book &apos;%1&apos;?</source>
         <translation>Желаете сохранить глоссарий &apos;%1&apos;?</translation>
     </message>
     <message>
-        <location line="+349"/>
         <source>All</source>
         <translation>Все</translation>
     </message>
     <message>
-        <location filename="../tools/linguist/linguist/mainwindow.ui"/>
         <source>MainWindow</source>
         <translation>Главное окно</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Phrases</source>
         <translation>Фра&amp;зы</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Close Phrase Book</source>
         <translation>&amp;Закрыть глоссарий</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Edit Phrase Book</source>
         <translation>&amp;Редактироваь глоссарий</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Print Phrase Book</source>
         <translation>&amp;Печатать глоссарий</translation>
     </message>
     <message>
-        <location/>
         <source>V&amp;alidation</source>
         <translation>П&amp;роверка</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;View</source>
         <translation>&amp;Вид</translation>
     </message>
     <message>
-        <location/>
         <source>Vie&amp;ws</source>
         <translation>Вид&amp;ы</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Toolbars</source>
         <translation>Пан&amp;ели инструментов</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Help</source>
         <translation>&amp;Справка</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Translation</source>
         <translation>П&amp;еревод</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;File</source>
         <translation>&amp;Файл</translation>
     </message>
     <message>
-        <location/>
         <source>Recently Opened &amp;Files</source>
         <translation>Недавно открытые &amp;файлы</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Edit</source>
         <translation>&amp;Правка</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Open...</source>
         <translation>&amp;Открыть...</translation>
     </message>
     <message>
-        <location/>
         <source>Open a Qt translation source file (TS file) for editing</source>
         <translation>Открыть исходный файл переводов Qt (файл TS) для изменения</translation>
     </message>
     <message>
-        <location/>
         <source>Ctrl+O</source>
         <translation></translation>
     </message>
     <message>
-        <location/>
         <source>E&amp;xit</source>
         <translation>В&amp;ыход</translation>
     </message>
     <message>
-        <location/>
         <source>Close this window and exit.</source>
         <translation>Закрыть окно и выйти.</translation>
     </message>
     <message>
-        <location/>
         <source>Ctrl+Q</source>
         <translation></translation>
     </message>
     <message>
-        <location/>
         <source>Save</source>
         <translation>Сохранить</translation>
     </message>
     <message>
-        <location/>
         <source>Save changes made to this Qt translation source file</source>
         <translation>Сохранить изменения в данном исходном файле перевода Qt</translation>
     </message>
     <message>
-        <location/>
         <source>Save As...</source>
         <translation>Сохранить как...</translation>
     </message>
     <message>
-        <location/>
         <source>Save changes made to this Qt translation source file into a new file.</source>
         <translation>Сохранить изменения в данном исходном файле перевода Qt в новый файл.</translation>
     </message>
     <message>
-        <location/>
         <source>Create a Qt message file suitable for released applications from the current message file.</source>
         <translation>Скомпилировать файл перевода Qt из текущего файла.</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Print...</source>
         <translation>&amp;Печать...</translation>
     </message>
     <message>
-        <location/>
         <source>Print a list of all the translation units in the current translation source file.</source>
         <translation>Печать списка всех записей перевода из текущего файла.</translation>
     </message>
     <message>
-        <location/>
         <source>Ctrl+P</source>
         <translation></translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Undo</source>
         <translation>&amp;Отменить</translation>
     </message>
     <message>
-        <location/>
         <source>Undo the last editing operation performed on the current translation.</source>
         <translation>Отменить последнее изменение текущего перевода.</translation>
     </message>
     <message>
-        <location/>
         <source>Ctrl+Z</source>
         <translation></translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Redo</source>
         <translation>&amp;Повторить</translation>
     </message>
     <message>
-        <location/>
         <source>Redo an undone editing operation performed on the translation.</source>
         <translation>Повторить отменённую правку перевода.</translation>
     </message>
     <message>
-        <location/>
         <source>Ctrl+Y</source>
         <translation></translation>
     </message>
     <message>
-        <location/>
         <source>Cu&amp;t</source>
         <translation>Выр&amp;езать</translation>
     </message>
     <message>
-        <location/>
         <source>Copy the selected translation text to the clipboard and deletes it.</source>
         <translation>Скопировать отмеченный текст в буфер обмена и удалить его из оригинала.</translation>
     </message>
     <message>
-        <location/>
         <source>Ctrl+X</source>
         <translation></translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Copy</source>
         <translation>&amp;Копировать</translation>
     </message>
     <message>
-        <location/>
         <source>Copy the selected translation text to the clipboard.</source>
         <translation>Скопировать отмеченный текст в буфер обмена.</translation>
     </message>
     <message>
-        <location/>
         <source>Ctrl+C</source>
         <translation></translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Paste</source>
         <translation>&amp;Вставить</translation>
     </message>
     <message>
-        <location/>
         <source>Paste the clipboard text into the translation.</source>
         <translation>Вставить текст из буфера обмена в перевод.</translation>
     </message>
     <message>
-        <location/>
         <source>Ctrl+V</source>
         <translation></translation>
     </message>
     <message>
-        <location/>
         <source>Select &amp;All</source>
         <translation>В&amp;ыделить всё</translation>
     </message>
     <message>
-        <location/>
         <source>Select the whole translation text.</source>
         <translation>Выделить весь текст перевода.</translation>
     </message>
     <message>
-        <location/>
         <source>Ctrl+A</source>
         <translation></translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Find...</source>
         <translation>&amp;Найти...</translation>
     </message>
     <message>
-        <location/>
         <source>Search for some text in the translation source file.</source>
         <translation>Найти текст в исходном файле перевода.</translation>
     </message>
     <message>
-        <location/>
         <source>Ctrl+F</source>
         <translation></translation>
     </message>
     <message>
-        <location/>
         <source>Find &amp;Next</source>
         <translation>Найти д&amp;алее</translation>
     </message>
     <message>
-        <location/>
         <source>Continue the search where it was left.</source>
         <translation>Продолжить поиск с места, где он был остановлен.</translation>
     </message>
     <message>
-        <location/>
         <source>F3</source>
         <translation></translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Prev Unfinished</source>
         <translation>&amp;Предыдущий незавершённый</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>Создание готового файла перевода Qt из текущего файла. Имя файла будет автоматически определено из имени .ts файла.</translation>
     </message>
     <message>
-        <location/>
         <source>Length Variants</source>
         <translation>Варианты перевода</translation>
     </message>
     <message>
-        <location/>
         <source>Move to the previous unfinished item.</source>
         <translation>Перейти к предыдущему незавершённому переводу.</translation>
     </message>
     <message>
-        <location/>
         <source>Ctrl+K</source>
         <translation></translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Next Unfinished</source>
         <translation>&amp;Следующий незавершённый</translation>
     </message>
     <message>
-        <location/>
         <source>Move to the next unfinished item.</source>
         <translation>Перейти к следующему незавершённому переводу.</translation>
     </message>
     <message>
-        <location/>
         <source>Ctrl+J</source>
         <translation></translation>
     </message>
     <message>
-        <location/>
         <source>P&amp;rev</source>
         <translation>Пр&amp;едыдущий</translation>
     </message>
     <message>
-        <location/>
         <source>Move to the previous item.</source>
         <translation>Перейти к предыдущему переводу.</translation>
     </message>
     <message>
-        <location/>
         <source>Ctrl+Shift+K</source>
         <translation></translation>
     </message>
     <message>
-        <location/>
         <source>Ne&amp;xt</source>
         <translation>С&amp;ледующий</translation>
     </message>
     <message>
-        <location/>
         <source>Move to the next item.</source>
         <translation>Перейти к следующему переводу.</translation>
     </message>
     <message>
-        <location/>
         <source>Ctrl+Shift+J</source>
         <translation></translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Done and Next</source>
         <translation>&amp;Готово и далее</translation>
     </message>
     <message>
-        <location/>
         <source>Mark this item as done and move to the next unfinished item.</source>
         <translation>Пометить перевод как завершённый и перейти к следующему незавершённому.</translation>
     </message>
     <message>
-        <location/>
         <source>Copy from source text</source>
         <translation>Скопировать из исходного текста</translation>
     </message>
     <message>
-        <location/>
         <source>Copies the source text into the translation field.</source>
         <translation>Скопировать исходный текст в поле перевода.</translation>
     </message>
     <message>
-        <location/>
         <source>Ctrl+B</source>
         <translation></translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Accelerators</source>
         <translation>&amp;Акселераторы</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>Переключение проверки акселераторов, т.е. совпадает ли количество амперсандов в исходном и переведённом текстах. Если выявлено несовпадение, будет показано сообщение в окне предупреждений.</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Ending Punctuation</source>
         <translation>&amp;Знаки препинания</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>Переключение проверки знаков препинания в конце текста. Если выявлено несовпадение, будет показано сообщение в окне предупреждений.</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Phrase matches</source>
         <translation>Совпадение &amp;фраз</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>Переключение проверки использования предложений для фраз. Если выявлено несовпадение, будет показано сообщение в окне предупреждений.</translation>
     </message>
     <message>
-        <location/>
         <source>Place &amp;Marker Matches</source>
         <translation>Совпадение &amp;маркеров</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>Переключение проверки маркеров форматирования, т.е. все ли маркеры (%1, %2, ...) исходного текста присутствуют в переведённом. Если выявлено несовпадение, будет показано сообщение в окне предупреждений.</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;New Phrase Book...</source>
         <translation>&amp;Новый глоссарий...</translation>
     </message>
     <message>
-        <location/>
         <source>Create a new phrase book.</source>
         <translation>Создать глоссарий.</translation>
     </message>
     <message>
-        <location/>
         <source>Ctrl+N</source>
         <translation></translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Open Phrase Book...</source>
         <translation>&amp;Открыть глоссарий...</translation>
     </message>
     <message>
-        <location/>
         <source>Open a phrase book to assist translation.</source>
         <translation>Открыть глоссарий для помощи в переводе.</translation>
     </message>
     <message>
-        <location/>
         <source>Ctrl+H</source>
         <translation></translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Reset Sorting</source>
         <translation>&amp;Сброс сортировки</translation>
     </message>
     <message>
-        <location/>
         <source>Sort the items back in the same order as in the message file.</source>
         <translation>Упорядочить элементы в той последовательности, в которой они находятся в файле.</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Display guesses</source>
         <translation>&amp;Предлагать похожие</translation>
     </message>
     <message>
-        <location/>
         <source>Set whether or not to display translation guesses.</source>
         <translation>Определяет необходимо или нет отображать похожие переводы.</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Statistics</source>
         <translation>&amp;Статистика</translation>
     </message>
     <message>
-        <location/>
         <source>Display translation statistics.</source>
         <translation>Показать статистику перевода.</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Manual</source>
         <translation>&amp;Руководство</translation>
     </message>
     <message>
-        <location/>
         <source>F1</source>
         <translation></translation>
     </message>
     <message>
-        <location/>
         <source>About Qt Linguist</source>
         <translation>О Qt Linguist</translation>
     </message>
     <message>
-        <location/>
         <source>About Qt</source>
         <translation>О Qt</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;What&apos;s This?</source>
         <translation>&amp;Что это?</translation>
     </message>
     <message>
-        <location/>
         <source>What&apos;s This?</source>
         <translation>Что это?</translation>
     </message>
     <message>
-        <location/>
         <source>Enter What&apos;s This? mode.</source>
         <translation>Переход в режим &quot;Что это?&quot;.</translation>
     </message>
     <message>
-        <location/>
         <source>Shift+F1</source>
         <translation></translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Search And Translate...</source>
         <translation>&amp;Найти и перевести...</translation>
     </message>
     <message>
-        <location/>
         <source>Replace the translation on all entries that matches the search source text.</source>
         <translation>Заменить перевод всех записей, которые совпадают с искомым исходным текстом.</translation>
     </message>
     <message>
-        <location/>
         <source>Batch translate all entries using the information in the phrase books.</source>
         <translation>Перевести все записи в пакетном режиме, используя информацию из глоссария.</translation>
     </message>
     <message>
-        <location/>
         <source>Open/Refresh Form &amp;Preview</source>
         <translation>Открыть/обновить предпрос&amp;мотр формы</translation>
     </message>
     <message>
-        <location/>
         <source>Form Preview Tool</source>
         <translation>Инструмент предпросмотра форм</translation>
     </message>
     <message>
-        <location/>
         <source>F5</source>
         <translation></translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Add to Phrase Book</source>
         <translation>&amp;Добавить в глоссарий</translation>
     </message>
     <message>
-        <location/>
         <source>Ctrl+T</source>
         <translation></translation>
     </message>
     <message>
-        <location/>
         <source>Open Read-O&amp;nly...</source>
         <translation>Открыть только для &amp;чтения...</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Save All</source>
         <translation>&amp;Сохранить все</translation>
     </message>
     <message>
-        <location/>
         <source>Ctrl+S</source>
         <translation></translation>
     </message>
     <message>
-        <location/>
         <source>Close</source>
         <translation>Закрыть</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Close All</source>
         <translation>&amp;Закрыть все</translation>
     </message>
     <message>
-        <location/>
         <source>Ctrl+W</source>
         <translation></translation>
     </message>
     <message>
-        <location/>
         <source>Previous unfinished item</source>
         <translation>Предыдущий незавершённый перевод</translation>
     </message>
     <message>
-        <location/>
         <source>Next unfinished item</source>
         <translation>Следующий незавершённый перевод</translation>
     </message>
     <message>
-        <location/>
         <source>Move to previous item</source>
         <translation>Перейти к предыдущему переводу</translation>
     </message>
     <message>
-        <location/>
         <source>Next item</source>
         <translation>Следующий перевод</translation>
     </message>
     <message>
-        <location/>
         <source>Mark item as done and move to the next unfinished item</source>
         <translation>Пометить перевод как завершённый и перейти к следующему незавершённому</translation>
     </message>
     <message>
-        <location/>
         <source>Copies the source text into the translation field</source>
         <translation>Скопировать исходный текст в поле перевода</translation>
     </message>
     <message>
-        <location/>
         <source>Toggle the validity check of accelerators</source>
         <translation>Переключение проверки акселераторов</translation>
     </message>
     <message>
-        <location/>
         <source>Toggle the validity check of ending punctuation</source>
         <translation>Переключение проверки знаков препинания в конце текста</translation>
     </message>
     <message>
-        <location/>
         <source>Toggle checking that phrase suggestions are used</source>
         <translation>Переключение проверки использования предложений для фраз</translation>
     </message>
     <message>
-        <location/>
         <source>Toggle the validity check of place markers</source>
         <translation>Переключение проверки маркеров форматирования</translation>
     </message>
     <message>
-        <location/>
         <source>Display information about the Qt toolkit by Nokia.</source>
         <translation>Показать информацию об инструментарии Qt от Nokia.</translation>
     </message>
@@ -1510,104 +1185,84 @@
 <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>Правая панель основного окна</translatorcomment>
         <translation></translation>
     </message>
     <message>
-        <location line="+30"/>
         <source>Russian</source>
         <translation>Русский</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>German</source>
         <translation>Немецкий</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Japanese</source>
         <translation>Японский</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>French</source>
         <translation>Французский</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Polish</source>
         <translation>Польский</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Chinese</source>
         <translation>Китайский</translation>
     </message>
     <message>
-        <location line="+47"/>
         <source>This whole panel allows you to view and edit the translation of some source text.</source>
         <translation>Данная панель позволяет просматривать и редактировать перевод исходного текста.</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>Source text</source>
         <translation>Исходный текст</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>This area shows the source text.</source>
         <translation>В данной области отображается исходный текст.</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Source text (Plural)</source>
         <translation>Исходный текст (множественная форма)</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>This area shows the plural form of the source text.</source>
         <translation>В данной области отображается исходный текст во множественной форме.</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Developer comments</source>
         <translation>Комментарий разработчика</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>В данной области отображается комментарий, который поможет определить в каком контексте встречается переводимый текст.</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>Здесь вы можете оставить комментарий для собственного использования. Комментарии не влияют на перевод приложений.</translation>
     </message>
     <message>
-        <location line="+234"/>
         <source>%1 translation (%2)</source>
         <translation>%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>Здесь вы можете ввести или изменить перевод текста, представленного выше.</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>%1 translation</source>
         <translation>%1 перевод</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>%1 translator comments</source>
         <translation>%1 перевод: комментарий переводчика</translation>
     </message>
     <message>
-        <location line="+157"/>
         <source>&apos;%1&apos;
 Line: %2</source>
         <translation>&apos;%1&apos;
@@ -1617,22 +1272,18 @@
 <context>
     <name>MessageModel</name>
     <message>
-        <location filename="../tools/linguist/linguist/messagemodel.cpp" line="+839"/>
         <source>Completion status for %1</source>
         <translation>Состояние завершённости для %1</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>&lt;file header&gt;</source>
         <translation>&lt;заголовок файла&gt;</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>&lt;context comment&gt;</source>
         <translation>&lt;контекстный комментарий&gt;</translation>
     </message>
     <message>
-        <location line="+71"/>
         <source>&lt;unnamed context&gt;</source>
         <translation>&lt;безымянный контекст&gt;</translation>
     </message>
@@ -1640,113 +1291,91 @@
 <context>
     <name>PhraseBookBox</name>
     <message>
-        <location filename="../tools/linguist/linguist/phrasebookbox.cpp" line="+42"/>
         <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="+24"/>
         <source>(New Entry)</source>
         <translation>(Новая запись)</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>Не удалось сохранить глоссарий &apos;%1&apos;.</translation>
     </message>
     <message>
-        <location filename="../tools/linguist/linguist/phrasebookbox.ui"/>
         <source>Edit Phrase Book</source>
         <translation>Правка глоссария</translation>
     </message>
     <message>
-        <location/>
         <source>This window allows you to add, modify, or delete entries in a phrase book.</source>
         <translation>Данное окно позволяет добавлять, изменять и удалять записи в глоссарии.</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Translation:</source>
         <translation>&amp;Перевод:</translation>
     </message>
     <message>
-        <location/>
         <source>This is the phrase in the target language corresponding to the source phrase.</source>
         <translation>Перевод, соответствующий исходной фразе.</translation>
     </message>
     <message>
-        <location/>
         <source>S&amp;ource phrase:</source>
         <translation>&amp;Исходная фраза:</translation>
     </message>
     <message>
-        <location/>
         <source>This is a definition for the source phrase.</source>
         <translation>Определение исходной фразы.</translation>
     </message>
     <message>
-        <location/>
         <source>This is the phrase in the source language.</source>
         <translation>Фраза на исходном языке.</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Definition:</source>
         <translation>&amp;Определение:</translation>
     </message>
     <message>
-        <location/>
         <source>Click here to add the phrase to the phrase book.</source>
         <translation>Добавить фразу в глоссарий.</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;New Entry</source>
         <translation>Новая &amp;запись</translation>
     </message>
     <message>
-        <location/>
         <source>Click here to remove the entry from the phrase book.</source>
         <translation>Удалить фразу из глоссария.</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Remove Entry</source>
         <translation>&amp;Удалить</translation>
     </message>
     <message>
-        <location/>
         <source>Settin&amp;gs...</source>
         <translation>&amp;Настройки...</translation>
     </message>
     <message>
-        <location/>
         <source>Click here to save the changes made.</source>
         <translation>Сохранить изменения.</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Save</source>
         <translation>&amp;Сохранить</translation>
     </message>
     <message>
-        <location/>
         <source>Click here to close this window.</source>
         <translation>Закрыть окно.</translation>
     </message>
     <message>
-        <location/>
         <source>Close</source>
         <translation>Закрыть</translation>
     </message>
@@ -1754,17 +1383,14 @@
 <context>
     <name>PhraseModel</name>
     <message>
-        <location filename="../tools/linguist/linguist/phrasemodel.cpp" line="+117"/>
         <source>Source phrase</source>
         <translation>Исходная фраза</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Translation</source>
         <translation>Перевод</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Definition</source>
         <translation>Определение</translation>
     </message>
@@ -1772,22 +1398,18 @@
 <context>
     <name>PhraseView</name>
     <message>
-        <location filename="../tools/linguist/linguist/phraseview.cpp" line="+122"/>
         <source>Insert</source>
         <translation>Вставить</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Edit</source>
         <translation>Правка</translation>
     </message>
     <message>
-        <location line="+113"/>
         <source>Guess (%1)</source>
         <translation>Похожая (%1)</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Guess</source>
         <translation>Похожая</translation>
     </message>
@@ -1795,63 +1417,46 @@
 <context>
     <name>QObject</name>
     <message>
-        <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-1864"/>
         <source>Translation files (%1);;</source>
         <translation>Файлы перевода (%1);;</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>All files (*)</source>
         <translation>Все файлы (*)</translation>
     </message>
     <message>
-        <location filename="../tools/linguist/linguist/messagemodel.cpp" line="-1134"/>
-        <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="+817"/>
         <source>GNU Gettext localization files</source>
         <translation>Файлы локализации GNU Gettext</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>GNU Gettext localization template files</source>
         <translation>Файлы шаблонов локализации GNU Gettext</translation>
     </message>
     <message>
-        <location filename="../tools/linguist/shared/qm.cpp" line="+12"/>
         <source>Compiled Qt translations</source>
         <translation>Скомпилированные переводы Qt</translation>
     </message>
     <message>
-        <location filename="../tools/linguist/shared/qph.cpp" line="+195"/>
         <source>Qt Linguist &apos;Phrase Book&apos;</source>
         <translation>&apos;Глоссарий&apos; Qt Linguist</translation>
     </message>
     <message>
-        <location filename="../tools/linguist/shared/ts.cpp" line="+752"/>
         <source>Qt translation sources (format 1.1)</source>
         <translation>Исходные файлы перевода Qt (формат 1.1)</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Qt translation sources (format 2.0)</source>
         <translation>Исходные файлы перевода Qt (формат 2.0)</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Qt translation sources (latest format)</source>
         <translation>Исходные файлы перевода Qt (последний формат)</translation>
     </message>
     <message>
-        <location filename="../tools/linguist/shared/xliff.cpp" line="+829"/>
         <source>XLIFF localization files</source>
         <translation>Файлы локализации XLIFF</translation>
     </message>
@@ -1859,17 +1464,14 @@
 <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;Исходный код недоступен&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;Файл %1 недоступен&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;Невозможно прочитать файл %1&lt;/i&gt;</translation>
     </message>
@@ -1877,42 +1479,34 @@
 <context>
     <name>Statistics</name>
     <message>
-        <location filename="../tools/linguist/linguist/statistics.ui"/>
         <source>Statistics</source>
         <translation>Статистика</translation>
     </message>
     <message>
-        <location/>
         <source>Close</source>
         <translation>Закрыть</translation>
     </message>
     <message>
-        <location/>
         <source>Translation</source>
         <translation>Перевод</translation>
     </message>
     <message>
-        <location/>
         <source>Source</source>
         <translation>Источник</translation>
     </message>
     <message>
-        <location/>
         <source>0</source>
         <translation>0</translation>
     </message>
     <message>
-        <location/>
         <source>Words:</source>
         <translation>Слов:</translation>
     </message>
     <message>
-        <location/>
         <source>Characters:</source>
         <translation>Символов:</translation>
     </message>
     <message>
-        <location/>
         <source>Characters (with spaces):</source>
         <translation>Символов (с пробелами):</translation>
     </message>
@@ -1920,72 +1514,58 @@
 <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>Данное окно позволяет искать текст в файле перевода.</translation>
     </message>
     <message>
-        <location/>
         <source>Type in the text to search for.</source>
         <translation>Введите искомый текст.</translation>
     </message>
     <message>
-        <location/>
         <source>Find &amp;source text:</source>
         <translation>&amp;Найти текст:</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Translate to:</source>
         <translation>&amp;Перевести как:</translation>
     </message>
     <message>
-        <location/>
         <source>Search options</source>
         <translation>Параметры поиска</translation>
     </message>
     <message>
-        <location/>
         <source>Texts such as &apos;TeX&apos; and &apos;tex&apos; are considered as different when checked.</source>
         <translation>Если отмечено, строки &quot;ПрИмЕр&quot; и &quot;пример&quot; будет считаться разными.</translation>
     </message>
     <message>
-        <location/>
         <source>Match &amp;case</source>
         <translation>С учётом &amp;регистра</translation>
     </message>
     <message>
-        <location/>
         <source>Mark new translation as &amp;finished</source>
         <translation>Помечать перевод как завер&amp;шённый</translation>
     </message>
     <message>
-        <location/>
         <source>Click here to find the next occurrence of the text you typed in.</source>
         <translation>Найти следующее совпадение для введённого текста.</translation>
     </message>
     <message>
-        <location/>
         <source>Find Next</source>
         <translation>Найти далее</translation>
     </message>
     <message>
-        <location/>
         <source>Translate</source>
         <translation>Перевести</translation>
     </message>
     <message>
-        <location/>
         <source>Translate All</source>
         <translation>Перевести все</translation>
     </message>
     <message>
-        <location/>
         <source>Click here to close this window.</source>
         <translation>Закрыть окно.</translation>
     </message>
     <message>
-        <location/>
         <source>Cancel</source>
         <translation>Отмена</translation>
     </message>
@@ -1993,33 +1573,26 @@
 <context>
     <name>TranslationSettingsDialog</name>
     <message>
-        <location filename="../tools/linguist/linguist/translationsettings.ui"/>
         <source>Source language</source>
         <translation>Исходный язык</translation>
     </message>
     <message>
-        <location/>
         <source>Language</source>
         <translation>Язык</translation>
     </message>
     <message>
-        <location/>
         <source>Country/Region</source>
         <translation>Страна/Регион</translation>
     </message>
     <message>
-        <location/>
         <source>Target language</source>
         <translation>Язык перевода</translation>
     </message>
     <message>
-        <location filename="../tools/linguist/linguist/translationsettingsdialog.cpp" line="+93"/>
         <source>Any Country</source>
         <translation>Любая страна</translation>
     </message>
     <message>
-        <location line="-22"/>
-        <location line="+8"/>
         <source>Settings for &apos;%1&apos; - Qt Linguist</source>
         <translation>Настройки для &apos;%1&apos; - Qt Linguist</translation>
     </message>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/translations/linguist_sl.ts	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,1596 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="sl">
+    <extra-po-header-po_revision_date>2010-08-28 18:45+0200</extra-po-header-po_revision_date>
+    <extra-po-headers>MIME-Version,Content-Type,Content-Transfer-Encoding,Plural-Forms,X-Language,X-Qt-Contexts,Last-Translator,PO-Revision-Date,Project-Id-Version,Language-Team,X-Generator</extra-po-headers>
+    <extra-po-header-x_generator>Lokalize 1.1</extra-po-header-x_generator>
+    <extra-po-header-language_team>Slovenian &lt;lugos-slo@lugos.si&gt;</extra-po-header-language_team>
+    <extra-po-header-project_id_version></extra-po-header-project_id_version>
+    <extra-po-header_comment># Jure Repinc &lt;jlp@holodeck1.com&gt;, 2010.</extra-po-header_comment>
+    <extra-po-header-last_translator>Jure Repinc &lt;jlp@holodeck1.com&gt;</extra-po-header-last_translator>
+<context>
+    <name>AboutDialog</name>
+    <message>
+        <source>Qt Linguist</source>
+        <translation>Qt Linguist</translation>
+    </message>
+</context>
+<context>
+    <name>BatchTranslationDialog</name>
+    <message>
+        <source>Qt Linguist - Batch Translation</source>
+        <translation>Qt Linguist – paketno prevajanje</translation>
+    </message>
+    <message>
+        <source>Options</source>
+        <translation>Možnosti</translation>
+    </message>
+    <message>
+        <source>Set translated entries to finished</source>
+        <translation>Označi prevedene vnose kot zaključene</translation>
+    </message>
+    <message>
+        <source>Retranslate entries with existing translation</source>
+        <translation>Znova prevedi vnose z obstoječimi prevodi</translation>
+    </message>
+    <message>
+        <source>Note that the modified entries will be reset to unfinished if &apos;Set translated entries to finished&apos; above is unchecked</source>
+        <translation>Vedite, da bodo spremenjeni vnosi ponastavljeni na nezaključeno, če možnost »Označi prevedene vnose kot zaključene« ni omogočena.</translation>
+    </message>
+    <message>
+        <source>Translate also finished entries</source>
+        <translation>Prevedi tudi zaključene vnose</translation>
+    </message>
+    <message>
+        <source>Phrase book preference</source>
+        <translation>Prednostni seznam knjig z izrazi</translation>
+    </message>
+    <message>
+        <source>Move up</source>
+        <translation>Premakni gor</translation>
+    </message>
+    <message>
+        <source>Move down</source>
+        <translation>Premakni dol</translation>
+    </message>
+    <message>
+        <source>The batch translator will search through the selected phrase books in the order given above</source>
+        <translation>Paketni prevajalnik bo izbrane knjige z izrazi preiskal v zgoraj navedenem vrstnem redu</translation>
+    </message>
+    <message>
+        <source>&amp;Run</source>
+        <translation>&amp;Zaženi</translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation>Prekliči</translation>
+    </message>
+    <message>
+        <source>Batch Translation of &apos;%1&apos; - Qt Linguist</source>
+        <translation>Paketno prevajanje »%1« – Qt Linguist</translation>
+    </message>
+    <message>
+        <source>Searching, please wait...</source>
+        <translation>Iskanje, prosimo počakajte ...</translation>
+    </message>
+    <message>
+        <source>&amp;Cancel</source>
+        <translation>&amp;Prekliči</translation>
+    </message>
+    <message>
+        <source>Linguist batch translator</source>
+        <translation>Paketni prevajalnik</translation>
+    </message>
+    <message numerus="yes">
+        <source>Batch translated %n entries</source>
+        <translation>
+            <numerusform>Paketno preveden %n vnos</numerusform>
+            <numerusform>Paketno prevedena %n vnosa</numerusform>
+            <numerusform>Paketno prevedeni %n vnosi</numerusform>
+            <numerusform>Paketno prevedenih %n vnosov</numerusform>
+        </translation>
+    </message>
+</context>
+<context>
+    <name>DataModel</name>
+    <message>
+        <source>&lt;qt&gt;Duplicate messages found in &apos;%1&apos;:</source>
+        <translation>&lt;qt&gt;V »%1« so bila najdena podvojena sporočila.</translation>
+    </message>
+    <message>
+        <source>&lt;p&gt;[more duplicates omitted]</source>
+        <translation>&lt;p&gt;[več izpuščenih podvojitev]</translation>
+    </message>
+    <message>
+        <source>&lt;p&gt;* ID: %1</source>
+        <translation>&lt;p&gt;* ID: %1</translation>
+    </message>
+    <message>
+        <source>&lt;p&gt;* Context: %1&lt;br&gt;* Source: %2</source>
+        <translation>&lt;p&gt;* Kontekst: %1&lt;br&gt;* Vir: %2</translation>
+    </message>
+    <message>
+        <source>&lt;br&gt;* Comment: %3</source>
+        <translation>&lt;br&gt;* Komentar: %3</translation>
+    </message>
+    <message>
+        <source>Linguist does not know the plural rules for &apos;%1&apos;.
+Will assume a single universal form.</source>
+        <translation>Qt Linguist ne pozna pravil za množinske oblike za »%1«.
+Privzeta bo edninska univerzalna oblika.</translation>
+    </message>
+    <message>
+        <source>Cannot create &apos;%2&apos;: %1</source>
+        <translation>Ni moč ustvariti »%2«: %1</translation>
+    </message>
+    <message>
+        <source>Universal Form</source>
+        <translation>Univerzalna oblika</translation>
+    </message>
+</context>
+<context>
+    <name>ErrorsView</name>
+    <message>
+        <source>Accelerator possibly superfluous in translation.</source>
+        <translation>V prevodu je morda odvečen pospeševalnik.</translation>
+    </message>
+    <message>
+        <source>Accelerator possibly missing in translation.</source>
+        <translation>V prevodu morda manjka pospeševalnik.</translation>
+    </message>
+    <message>
+        <source>Translation does not end with the same punctuation as the source text.</source>
+        <translation>Prevod se ne zaključi z istim ločilom kot izvorno besedilo.</translation>
+    </message>
+    <message>
+        <source>A phrase book suggestion for &apos;%1&apos; was ignored.</source>
+        <translation>Predlog za »%1« is knjige izrazov je bil prezrt.</translation>
+    </message>
+    <message>
+        <source>Translation does not refer to the same place markers as in the source text.</source>
+        <translation>Prevod ne navaja enakih oznak vsebnikov kot izvorno besedilo.</translation>
+    </message>
+    <message>
+        <source>Translation does not contain the necessary %n place marker.</source>
+        <translation>Prevod ne vsebuje potrebne oznake %n za vsebnik.</translation>
+    </message>
+    <message>
+        <source>Unknown error</source>
+        <translation>Neznana napaka</translation>
+    </message>
+</context>
+<context>
+    <name>FindDialog</name>
+    <message>
+        <source>Find</source>
+        <translation>Najdi</translation>
+    </message>
+    <message>
+        <source>This window allows you to search for some text in the translation source file.</source>
+        <translation>To okno omogoča iskanje besedila v izvorni datoteki s prevodom.</translation>
+    </message>
+    <message>
+        <source>&amp;Find what:</source>
+        <translation>&amp;Najdi:</translation>
+    </message>
+    <message>
+        <source>Type in the text to search for.</source>
+        <translation>Vnesite iskano besedilo.</translation>
+    </message>
+    <message>
+        <source>Options</source>
+        <translation>Možnosti</translation>
+    </message>
+    <message>
+        <source>Source texts are searched when checked.</source>
+        <translation>Ko je omogočeno, se preišče izvorna besedila.</translation>
+    </message>
+    <message>
+        <source>&amp;Source texts</source>
+        <translation>&amp;Izvorna besedila</translation>
+    </message>
+    <message>
+        <source>Translations are searched when checked.</source>
+        <translation>Ko je omogočeno, se preišče prevode.</translation>
+    </message>
+    <message>
+        <source>&amp;Translations</source>
+        <translation>&amp;Prevodi</translation>
+    </message>
+    <message>
+        <source>Texts such as &apos;TeX&apos; and &apos;tex&apos; are considered as different when checked.</source>
+        <translation>Ko je omogočeno, se razlikuje med besedili kot sta »KDE« in »kde«.</translation>
+    </message>
+    <message>
+        <source>&amp;Match case</source>
+        <translation>Ujemanje &amp;velikosti črk</translation>
+    </message>
+    <message>
+        <source>Comments and contexts are searched when checked.</source>
+        <translation>Ko je omogočeno, se preišče kontekste in komentarje.</translation>
+    </message>
+    <message>
+        <source>&amp;Comments</source>
+        <translation>&amp;Komentarji</translation>
+    </message>
+    <message>
+        <source>Ignore &amp;accelerators</source>
+        <translation>Prezri p&amp;ospeševalnike</translation>
+    </message>
+    <message>
+        <source>Click here to find the next occurrence of the text you typed in.</source>
+        <translation>Kliknite, da poiščete naslednjo pojavitev vnešenega besedila.</translation>
+    </message>
+    <message>
+        <source>Find Next</source>
+        <translation>Najdi naslednje</translation>
+    </message>
+    <message>
+        <source>Click here to close this window.</source>
+        <translation>Kliknite, da zaprete to okno.</translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation>Prekliči</translation>
+    </message>
+</context>
+<context>
+    <name>FormMultiWidget</name>
+    <message>
+        <source>Alt+Delete</source>
+        <extracomment>translate, but don&apos;t change
+</extracomment>
+        <translation>Alt+Izbriši</translation>
+    </message>
+    <message>
+        <source>Shift+Alt+Insert</source>
+        <extracomment>translate, but don&apos;t change
+</extracomment>
+        <translation>Shift+Alt+Vstavi</translation>
+    </message>
+    <message>
+        <source>Alt+Insert</source>
+        <extracomment>translate, but don&apos;t change
+</extracomment>
+        <translation>Alt+Vstavi</translation>
+    </message>
+    <message>
+        <source>Confirmation - Qt Linguist</source>
+        <translation>Potrditev – Qt Linguist</translation>
+    </message>
+    <message>
+        <source>Delete non-empty length variant?</source>
+        <translation>Ali izbrišem ne-prazno dolžinsko inačico?</translation>
+    </message>
+</context>
+<context>
+    <name>LRelease</name>
+    <message numerus="yes">
+        <source>Dropped %n message(s) which had no ID.</source>
+        <translation>
+            <numerusform>Opustil %n sporočilo, ki ni imelo ID-ja.</numerusform>
+            <numerusform>Opustil %n sporočili, ki nista imeli ID-ja.</numerusform>
+            <numerusform>Opustil %n sporočila, ki niso imela ID-ja.</numerusform>
+            <numerusform>Opustil %n sporočil, ki niso imeli ID-ja.</numerusform>
+        </translation>
+    </message>
+    <message numerus="yes">
+        <source>Excess context/disambiguation dropped from %n message(s).</source>
+        <translation>
+            <numerusform>Odvečen kontekst/razločitev opuščen iz %n sporočila.</numerusform>
+            <numerusform>Odvečen kontekst/razločitev opuščen iz %n sporočil.</numerusform>
+            <numerusform>Odvečen kontekst/razločitev opuščen iz %n sporočil.</numerusform>
+            <numerusform>Odvečen kontekst/razločitev opuščen iz %n sporočil.</numerusform>
+        </translation>
+    </message>
+    <message numerus="yes">
+        <source>    Generated %n translation(s) (%1 finished and %2 unfinished)</source>
+        <translation>
+            <numerusform>    Ustvaril %n prevod (%1 zaključenih in %2 nezaključenih)</numerusform>
+            <numerusform>    Ustvaril %n prevoda (%1 zaključenih in %2 nezaključenih)</numerusform>
+            <numerusform>    Ustvaril %n prevode (%1 zaključenih in %2 nezaključenih)</numerusform>
+            <numerusform>    Ustvaril %n prevodov (%1 zaključenih in %2 nezaključenih)</numerusform>
+        </translation>
+    </message>
+    <message numerus="yes">
+        <source>    Ignored %n untranslated source text(s)</source>
+        <translation>
+            <numerusform>    Prezrl %n neprevedeno izvorno besedilo</numerusform>
+            <numerusform>    Prezrl %n neprevedeni izvorni besedili</numerusform>
+            <numerusform>    Prezrl %n neprevedena izvorna besedila</numerusform>
+            <numerusform>    Prezrl %n neprevedenih izvornih besedil</numerusform>
+        </translation>
+    </message>
+</context>
+<context>
+    <name>MainWindow</name>
+    <message>
+        <source>MainWindow</source>
+        <translation>GlavnoOkno</translation>
+    </message>
+    <message>
+        <source>&amp;Phrases</source>
+        <translation>&amp;Izrazi</translation>
+    </message>
+    <message>
+        <source>&amp;Close Phrase Book</source>
+        <translation>&amp;Zapri knjigo izrazov</translation>
+    </message>
+    <message>
+        <source>&amp;Edit Phrase Book</source>
+        <translation>&amp;Uredi knjigo izrazov</translation>
+    </message>
+    <message>
+        <source>&amp;Print Phrase Book</source>
+        <translation>&amp;Natisni knjigo izrazov</translation>
+    </message>
+    <message>
+        <source>V&amp;alidation</source>
+        <translation>P&amp;otrjevanje</translation>
+    </message>
+    <message>
+        <source>&amp;View</source>
+        <translation>&amp;Videz</translation>
+    </message>
+    <message>
+        <source>Vie&amp;ws</source>
+        <translation>&amp;Prikazi</translation>
+    </message>
+    <message>
+        <source>&amp;Toolbars</source>
+        <translation>O&amp;rodjarne</translation>
+    </message>
+    <message>
+        <source>&amp;Help</source>
+        <translation>&amp;Pomoč</translation>
+    </message>
+    <message>
+        <source>&amp;Translation</source>
+        <translation>P&amp;revajanje</translation>
+    </message>
+    <message>
+        <source>&amp;File</source>
+        <translation>&amp;Datoteka</translation>
+    </message>
+    <message>
+        <source>Recently Opened &amp;Files</source>
+        <translation>Nedavno odprte &amp;datoteke</translation>
+    </message>
+    <message>
+        <source>&amp;Edit</source>
+        <translation>&amp;Urejanje</translation>
+    </message>
+    <message>
+        <source>&amp;Open...</source>
+        <translation>&amp;Odpri ...</translation>
+    </message>
+    <message>
+        <source>Open a Qt translation source file (TS file) for editing</source>
+        <translation>Odpre izvorno datoteko s prevodi za Qt (*.ts) za urejanje</translation>
+    </message>
+    <message>
+        <source>Ctrl+O</source>
+        <translation>Ctrl+O</translation>
+    </message>
+    <message>
+        <source>E&amp;xit</source>
+        <translation>Konča&amp;j</translation>
+    </message>
+    <message>
+        <source>Close this window and exit.</source>
+        <translation>Zapre to okno in konča.</translation>
+    </message>
+    <message>
+        <source>Ctrl+Q</source>
+        <translation>Ctrl+Q</translation>
+    </message>
+    <message>
+        <source>Save</source>
+        <translation>Shrani</translation>
+    </message>
+    <message>
+        <source>Save changes made to this Qt translation source file</source>
+        <translation>Shrani spremembe te izvorne datoteke s prevodi za Qt</translation>
+    </message>
+    <message>
+        <source>Save &amp;As...</source>
+        <translation>Shrani &amp;kot ...</translation>
+    </message>
+    <message>
+        <source>Save As...</source>
+        <translation>Shrani kot ...</translation>
+    </message>
+    <message>
+        <source>Save changes made to this Qt translation source file into a new file.</source>
+        <translation>Shrani spremembe te izvorne datoteke s prevodi za Qt v novo datoteko.</translation>
+    </message>
+    <message>
+        <source>Release</source>
+        <translation>Izdaj</translation>
+    </message>
+    <message>
+        <source>Create a Qt message file suitable for released applications from the current message file.</source>
+        <translation>Iz trenutne datoteke s sporočili ustvari datoteko, ki je primerna za izdane programe.</translation>
+    </message>
+    <message>
+        <source>&amp;Print...</source>
+        <translation>Na&amp;tisni ...</translation>
+    </message>
+    <message>
+        <source>Print a list of all the translation units in the current translation source file.</source>
+        <translation>Natisne seznam vseh prevajalskih enot iz trenutne izvorne datoteke s prevodi.</translation>
+    </message>
+    <message>
+        <source>Ctrl+P</source>
+        <translation>Ctrl+P</translation>
+    </message>
+    <message>
+        <source>&amp;Undo</source>
+        <translation>&amp;Razveljavi</translation>
+    </message>
+    <message>
+        <source>Undo the last editing operation performed on the current translation.</source>
+        <translation>Razveljavi zadnje dejanje urejanja trenutnega prevoda.</translation>
+    </message>
+    <message>
+        <source>Ctrl+Z</source>
+        <translation>Ctrl+Z</translation>
+    </message>
+    <message>
+        <source>&amp;Redo</source>
+        <translation>&amp;Uveljavi</translation>
+    </message>
+    <message>
+        <source>Redo an undone editing operation performed on the translation.</source>
+        <translation>Uveljavi razveljavljeno dejanje urejanja prevoda.</translation>
+    </message>
+    <message>
+        <source>Ctrl+Y</source>
+        <translation>Ctrl+Y</translation>
+    </message>
+    <message>
+        <source>Cu&amp;t</source>
+        <translation>&amp;Izreži</translation>
+    </message>
+    <message>
+        <source>Copy the selected translation text to the clipboard and deletes it.</source>
+        <translation>Skopira izbrano besedilo prevoda na odložišče in ga izbriše.</translation>
+    </message>
+    <message>
+        <source>Ctrl+X</source>
+        <translation>Ctrl+X</translation>
+    </message>
+    <message>
+        <source>&amp;Copy</source>
+        <translation>S&amp;kopiraj</translation>
+    </message>
+    <message>
+        <source>Copy the selected translation text to the clipboard.</source>
+        <translation>Skopira izbrano besedilo prevoda na odložišče.</translation>
+    </message>
+    <message>
+        <source>Ctrl+C</source>
+        <translation>Ctrl+C</translation>
+    </message>
+    <message>
+        <source>&amp;Paste</source>
+        <translation>Pri&amp;lepi</translation>
+    </message>
+    <message>
+        <source>Paste the clipboard text into the translation.</source>
+        <translation>Prilepi besedilo z odložišča v prevod.</translation>
+    </message>
+    <message>
+        <source>Ctrl+V</source>
+        <translation>Ctrl+V</translation>
+    </message>
+    <message>
+        <source>Select &amp;All</source>
+        <translation>Izberi &amp;vse</translation>
+    </message>
+    <message>
+        <source>Select the whole translation text.</source>
+        <translation>Izbere celotno besedilo prevoda.</translation>
+    </message>
+    <message>
+        <source>Ctrl+A</source>
+        <translation>Ctrl+A</translation>
+    </message>
+    <message>
+        <source>&amp;Find...</source>
+        <translation>&amp;Najdi ...</translation>
+    </message>
+    <message>
+        <source>Search for some text in the translation source file.</source>
+        <translation>Poišče dano besedilo v izvorni datoteki s prevodi.</translation>
+    </message>
+    <message>
+        <source>Ctrl+F</source>
+        <translation>Ctrl+F</translation>
+    </message>
+    <message>
+        <source>Find &amp;Next</source>
+        <translation>Najdi na&amp;slednje</translation>
+    </message>
+    <message>
+        <source>Continue the search where it was left.</source>
+        <translation>Nadaljuje z iskanjem od zadnjega mesta.</translation>
+    </message>
+    <message>
+        <source>F3</source>
+        <translation>F3</translation>
+    </message>
+    <message>
+        <source>&amp;Prev Unfinished</source>
+        <translation>&amp;Predhodni nezaključen</translation>
+    </message>
+    <message>
+        <source>Previous unfinished item</source>
+        <translation>Predhodni nezaključen prevod</translation>
+    </message>
+    <message>
+        <source>Move to the previous unfinished item.</source>
+        <translation>Premakne se na predhodni nezaključen prevod.</translation>
+    </message>
+    <message>
+        <source>Ctrl+K</source>
+        <translation>Ctrl+K</translation>
+    </message>
+    <message>
+        <source>&amp;Next Unfinished</source>
+        <translation>&amp;Naslednji nezaključen</translation>
+    </message>
+    <message>
+        <source>Next unfinished item</source>
+        <translation>Naslednji nezaključen prevod</translation>
+    </message>
+    <message>
+        <source>Move to the next unfinished item.</source>
+        <translation>Premakne se na naslednji nezaključen prevod.</translation>
+    </message>
+    <message>
+        <source>Ctrl+J</source>
+        <translation>Ctrl+J</translation>
+    </message>
+    <message>
+        <source>P&amp;rev</source>
+        <translation>&amp;Predhodni</translation>
+    </message>
+    <message>
+        <source>Move to previous item</source>
+        <translation>Predhodni prevod</translation>
+    </message>
+    <message>
+        <source>Move to the previous item.</source>
+        <translation>Premakne se na predhodni prevod.</translation>
+    </message>
+    <message>
+        <source>Ctrl+Shift+K</source>
+        <translation>Ctrl+Shift+K</translation>
+    </message>
+    <message>
+        <source>Ne&amp;xt</source>
+        <translation>N&amp;aslednji</translation>
+    </message>
+    <message>
+        <source>Next item</source>
+        <translation>Naslednji prevod</translation>
+    </message>
+    <message>
+        <source>Move to the next item.</source>
+        <translation>Premakne se na naslednji prevod.</translation>
+    </message>
+    <message>
+        <source>Ctrl+Shift+J</source>
+        <translation>Ctrl+Shift+J</translation>
+    </message>
+    <message>
+        <source>&amp;Done and Next</source>
+        <translation>&amp;Zaključi in naslednji</translation>
+    </message>
+    <message>
+        <source>Mark item as done and move to the next unfinished item</source>
+        <translation>Označi prevod kot zaključen in na naslednji nezaključen</translation>
+    </message>
+    <message>
+        <source>Mark this item as done and move to the next unfinished item.</source>
+        <translation>Označi prevod kot zaključen in se premakni na naslednji nezaključen prevod.</translation>
+    </message>
+    <message>
+        <source>Copy from source text</source>
+        <translation>Skopiraj izvorno besedilo</translation>
+    </message>
+    <message>
+        <source>Copies the source text into the translation field</source>
+        <translation>Skopira izvorno besedilo v prevod</translation>
+    </message>
+    <message>
+        <source>Copies the source text into the translation field.</source>
+        <translation>Skopira izvorno besedilo v polje za vnos prevoda.</translation>
+    </message>
+    <message>
+        <source>Ctrl+B</source>
+        <translation>Ctrl+B</translation>
+    </message>
+    <message>
+        <source>&amp;Accelerators</source>
+        <translation>&amp;Pospeševalniki</translation>
+    </message>
+    <message>
+        <source>Toggle the validity check of accelerators</source>
+        <translation>Preklopi preverjanje pospeševalnikov</translation>
+    </message>
+    <message>
+        <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>Preklopi preverjanje pospeševalnikov, t.j. ali je število znakov »&amp;&amp;« v izvornem besedilu enako kot v prevodu. Če preizkus ne uspe, bo v podoknu z opozorili prikazano sporočilo.</translation>
+    </message>
+    <message>
+        <source>&amp;Ending Punctuation</source>
+        <translation>&amp;Končna ločila</translation>
+    </message>
+    <message>
+        <source>Toggle the validity check of ending punctuation</source>
+        <translation>Preklopi preverjanje končnih ločil</translation>
+    </message>
+    <message>
+        <source>Toggle the validity check of ending punctuation. If the check fails, a message is shown in the warnings window.</source>
+        <translation>Preklopi preverjanje končnih ločil. Če preizkus ne uspe, bo v podoknu z opozorili prikazano sporočilo.</translation>
+    </message>
+    <message>
+        <source>&amp;Phrase matches</source>
+        <translation>&amp;Ujemanje z izrazi</translation>
+    </message>
+    <message>
+        <source>Toggle checking that phrase suggestions are used</source>
+        <translation>Preklopi preverjanje uporabe predlogov izrazov</translation>
+    </message>
+    <message>
+        <source>Toggle checking that phrase suggestions are used. If the check fails, a message is shown in the warnings window.</source>
+        <translation>Preklopi preverjanje uporabe predlogov izrazov. Če preizkus ne uspe, bo v podoknu z opozorili prikazano sporočilo.</translation>
+    </message>
+    <message>
+        <source>Place &amp;Marker Matches</source>
+        <translation>Ujemanje &amp;oznak vsebnikov</translation>
+    </message>
+    <message>
+        <source>Toggle the validity check of place markers</source>
+        <translation>Preklopi preverjanje oznak vsebnikov</translation>
+    </message>
+    <message>
+        <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>Preklopi preverjanje oznak vsebnikov, tj. ali so %1, %2, itd. v izvornem besedilu in prevodu konsistenčni. Če preizkus ne uspe, bo v podoknu z opozorili prikazano sporočilo.</translation>
+    </message>
+    <message>
+        <source>&amp;New Phrase Book...</source>
+        <translation>&amp;Nova knjiga z izrazi ...</translation>
+    </message>
+    <message>
+        <source>Create a new phrase book.</source>
+        <translation>Ustvari novo knjigo izrazov</translation>
+    </message>
+    <message>
+        <source>Ctrl+N</source>
+        <translation>Ctrl+N</translation>
+    </message>
+    <message>
+        <source>&amp;Open Phrase Book...</source>
+        <translation>&amp;Odpri knjigo izrazov ...</translation>
+    </message>
+    <message>
+        <source>Open a phrase book to assist translation.</source>
+        <translation>Odpre knjigo izrazov za pomoč pri prevajanju.</translation>
+    </message>
+    <message>
+        <source>Ctrl+H</source>
+        <translation>Ctrl+H</translation>
+    </message>
+    <message>
+        <source>&amp;Reset Sorting</source>
+        <translation>&amp;Ponastavi razvrščanje</translation>
+    </message>
+    <message>
+        <source>Sort the items back in the same order as in the message file.</source>
+        <translation>Prevajalske enote bodo razvrščene kot v datoteki s sporočili.</translation>
+    </message>
+    <message>
+        <source>&amp;Display guesses</source>
+        <translation>Prikaži &amp;ugibanja</translation>
+    </message>
+    <message>
+        <source>Set whether or not to display translation guesses.</source>
+        <translation>Ali naj bodo prikazana ugibanja prevodov.</translation>
+    </message>
+    <message>
+        <source>&amp;Statistics</source>
+        <translation>&amp;Statistika</translation>
+    </message>
+    <message>
+        <source>Display translation statistics.</source>
+        <translation>Prikaže statistiko prevodov.</translation>
+    </message>
+    <message>
+        <source>&amp;Manual</source>
+        <translation>&amp;Priročnik</translation>
+    </message>
+    <message>
+        <source>F1</source>
+        <translation>F1</translation>
+    </message>
+    <message>
+        <source>About Qt Linguist</source>
+        <translation>O Qt Linguist</translation>
+    </message>
+    <message>
+        <source>About Qt</source>
+        <translation>O Qt</translation>
+    </message>
+    <message>
+        <source>Display information about the Qt toolkit by Nokia.</source>
+        <translation>Prikaže podatke o ogrodju Qt.</translation>
+    </message>
+    <message>
+        <source>&amp;What&apos;s This?</source>
+        <translation>&amp;Kaj je to?</translation>
+    </message>
+    <message>
+        <source>What&apos;s This?</source>
+        <translation>Kaj je to?</translation>
+    </message>
+    <message>
+        <source>Enter What&apos;s This? mode.</source>
+        <translation>Vstop v način Kaj je to?</translation>
+    </message>
+    <message>
+        <source>Shift+F1</source>
+        <translation>Shift+F1</translation>
+    </message>
+    <message>
+        <source>&amp;Search And Translate...</source>
+        <translation>&amp;Najdi in prevedi ...</translation>
+    </message>
+    <message>
+        <source>Replace the translation on all entries that matches the search source text.</source>
+        <translation>Zamenja prevode vseh enot, kjer se izvorno besedilo ujema z iskanim.</translation>
+    </message>
+    <message>
+        <source>&amp;Batch Translation...</source>
+        <translation>&amp;Paketno prevajanje ...</translation>
+    </message>
+    <message>
+        <source>Batch translate all entries using the information in the phrase books.</source>
+        <translation>Paketno prevede vse enote in pri tem uporabi podatke iz knjig z izrazi.</translation>
+    </message>
+    <message>
+        <source>Release As...</source>
+        <translation>Izdaj kot ...</translation>
+    </message>
+    <message>
+        <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>Iz trenutne datoteke s sporočili ustvari datoteko, ki je primerna za izdane programe. Ime datoteke bo izbrano sampdejno glede na ime datoteke *.ts.</translation>
+    </message>
+    <message>
+        <source>File</source>
+        <translation>Datoteka</translation>
+    </message>
+    <message>
+        <source>Edit</source>
+        <translation>Urejanje</translation>
+    </message>
+    <message>
+        <source>Translation</source>
+        <translation>Prevajanje</translation>
+    </message>
+    <message>
+        <source>Validation</source>
+        <translation>Potrjevanje</translation>
+    </message>
+    <message>
+        <source>Help</source>
+        <translation>Pomoč</translation>
+    </message>
+    <message>
+        <source>Open/Refresh Form &amp;Preview</source>
+        <translation>Odpri/osveži &amp;ogled obrazca</translation>
+    </message>
+    <message>
+        <source>Form Preview Tool</source>
+        <translation>Orodje za ogled obrazca</translation>
+    </message>
+    <message>
+        <source>F5</source>
+        <translation>F5</translation>
+    </message>
+    <message>
+        <source>Translation File &amp;Settings...</source>
+        <translation>&amp;Nastavitve datoteke s prevodi ...</translation>
+    </message>
+    <message>
+        <source>&amp;Add to Phrase Book</source>
+        <translation>&amp;Dodaj v knjigo izrazov</translation>
+    </message>
+    <message>
+        <source>Ctrl+T</source>
+        <translation>Ctrl+T</translation>
+    </message>
+    <message>
+        <source>Open Read-O&amp;nly...</source>
+        <translation>Odpri samo za &amp;branje ...</translation>
+    </message>
+    <message>
+        <source>&amp;Save All</source>
+        <translation>&amp;Shrani vse</translation>
+    </message>
+    <message>
+        <source>Ctrl+S</source>
+        <translation>Ctrl+S</translation>
+    </message>
+    <message>
+        <source>&amp;Release All</source>
+        <translation>&amp;Izdaj vse</translation>
+    </message>
+    <message>
+        <source>Close</source>
+        <translation>Zapri</translation>
+    </message>
+    <message>
+        <source>&amp;Close All</source>
+        <translation>&amp;Zapri vse</translation>
+    </message>
+    <message>
+        <source>Ctrl+W</source>
+        <translation> Ctrl+W</translation>
+    </message>
+    <message>
+        <source>Length Variants</source>
+        <translation>Dolžinske inačice</translation>
+    </message>
+    <message>
+        <source>Source text</source>
+        <translation>Izvorno besedilo</translation>
+    </message>
+    <message>
+        <source>Index</source>
+        <translation>Kazalo</translation>
+    </message>
+    <message>
+        <source>Context</source>
+        <translation>Kontekst</translation>
+    </message>
+    <message>
+        <source>Items</source>
+        <translation>Postavke</translation>
+    </message>
+    <message>
+        <source>This panel lists the source contexts.</source>
+        <translation>To podokno prikazuje seznam kontekstov iz izvorne kode.</translation>
+    </message>
+    <message>
+        <source>Strings</source>
+        <translation>Nizi</translation>
+    </message>
+    <message>
+        <source>Phrases and guesses</source>
+        <translation>Izrazi in ugibanja</translation>
+    </message>
+    <message>
+        <source>Sources and Forms</source>
+        <translation>Izvorna koda in obrazci</translation>
+    </message>
+    <message>
+        <source>Warnings</source>
+        <translation>Opozorila</translation>
+    </message>
+    <message>
+        <source> MOD </source>
+        <comment>status bar: file(s) modified</comment>
+        <translation> SPR </translation>
+    </message>
+    <message>
+        <source>Loading...</source>
+        <translation>Nalaganje ...</translation>
+    </message>
+    <message>
+        <source>Loading File - Qt Linguist</source>
+        <translation>Nalaganje datoteke – Qt Linguist</translation>
+    </message>
+    <message>
+        <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>Kot kaže datoteka »%1« ni povezana s trenutno odprtimi datotekami »%2«.
+
+Ali želite najprej zapreti odprte datoteke?</translation>
+    </message>
+    <message>
+        <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>Kot kaže datoteka »%1« ni povezana z datoteko »%2«, ki se ravno tako nalaga.
+
+Ali želite preskočiti nalaganje prve datoteke?</translation>
+    </message>
+    <message numerus="yes">
+        <source>%n translation unit(s) loaded.</source>
+        <translation>
+            <numerusform>Naložena %n prevajalska enota.</numerusform>
+            <numerusform>Naloženi %n prevajalski enoti.</numerusform>
+            <numerusform>Naložene %n prevajalske enote.</numerusform>
+            <numerusform>Naloženih %n prevajalskih enot.</numerusform>
+        </translation>
+    </message>
+    <message>
+        <source>Related files (%1);;</source>
+        <translation>Povezane datoteke (%1);;</translation>
+    </message>
+    <message>
+        <source>Open Translation Files</source>
+        <translation>Odpri datoteke za prevajanje</translation>
+    </message>
+    <message>
+        <source>File saved.</source>
+        <translation>Datoteka je shranjena.</translation>
+    </message>
+    <message>
+        <source>Qt message files for released applications (*.qm)
+All files (*)</source>
+        <translation>Datoteke s sporočili za izdane programe (*.qm)
+Vse datoteke (*)</translation>
+    </message>
+    <message>
+        <source>File created.</source>
+        <translation>Datoteka ustvarjena.</translation>
+    </message>
+    <message>
+        <source>Printing...</source>
+        <translation>Tiskanje ...</translation>
+    </message>
+    <message>
+        <source>Context: %1</source>
+        <translation>Kontekst: %1</translation>
+    </message>
+    <message>
+        <source>finished</source>
+        <translation>zaključen</translation>
+    </message>
+    <message>
+        <source>unresolved</source>
+        <translation>nerazrešen</translation>
+    </message>
+    <message>
+        <source>obsolete</source>
+        <translation>zastarel</translation>
+    </message>
+    <message>
+        <source>Printing... (page %1)</source>
+        <translation>Tiskanje (%1. stran) ...</translation>
+    </message>
+    <message>
+        <source>Printing completed</source>
+        <translation>Tiskanje zaključeno</translation>
+    </message>
+    <message>
+        <source>Printing aborted</source>
+        <translation>Tiskanje preklicano</translation>
+    </message>
+    <message>
+        <source>Search wrapped.</source>
+        <translation>Iskanje na drugem koncu</translation>
+    </message>
+    <message>
+        <source>Qt Linguist</source>
+        <translation>Qt Linguist</translation>
+    </message>
+    <message>
+        <source>Cannot find the string &apos;%1&apos;.</source>
+        <translation>Ni moč najti niza »%1«.</translation>
+    </message>
+    <message>
+        <source>Search And Translate in &apos;%1&apos; - Qt Linguist</source>
+        <translation>Najdi in prevedi v »%1« – Qt Linguist</translation>
+    </message>
+    <message>
+        <source>Translate - Qt Linguist</source>
+        <translation>Prevajanje – Qt Linguist</translation>
+    </message>
+    <message numerus="yes">
+        <source>Translated %n entry(s)</source>
+        <translation>
+            <numerusform>Prevedel %n vnos</numerusform>
+            <numerusform>Prevedel %n vnosa</numerusform>
+            <numerusform>Prevedel %n vnose</numerusform>
+            <numerusform>Prevedel %n vnosov</numerusform>
+        </translation>
+    </message>
+    <message>
+        <source>No more occurrences of &apos;%1&apos;. Start over?</source>
+        <translation>Pojavitev »%1« ni več. Ali začnem znova?</translation>
+    </message>
+    <message>
+        <source>Create New Phrase Book</source>
+        <translation>Ustvari novo knjigo izrazov</translation>
+    </message>
+    <message>
+        <source>Qt phrase books (*.qph)
+All files (*)</source>
+        <translation>Knjiga z izrazi za Qt (*.qph)
+Vse datoteke (*)</translation>
+    </message>
+    <message>
+        <source>Phrase book created.</source>
+        <translation>Knjiga izrazov ustvarjena.</translation>
+    </message>
+    <message>
+        <source>Open Phrase Book</source>
+        <translation>Odpri knjigo izrazov</translation>
+    </message>
+    <message>
+        <source>Qt phrase books (*.qph);;All files (*)</source>
+        <translation>Knjiga z izrazi za Qt (*.qph);;Vse datoteke (*)</translation>
+    </message>
+    <message numerus="yes">
+        <source>%n phrase(s) loaded.</source>
+        <translation>
+            <numerusform>Naložil %n izrazov.</numerusform>
+            <numerusform>Naložil %n izraz.</numerusform>
+            <numerusform>Naložil %n izraza.</numerusform>
+            <numerusform>Naložil %n izraze.</numerusform>
+        </translation>
+    </message>
+    <message>
+        <source>Add to phrase book</source>
+        <translation>Dodaj v knjigo izrazov</translation>
+    </message>
+    <message>
+        <source>No appropriate phrasebook found.</source>
+        <translation>Najdene ni bilo nobene ustrezne knjige izrazov.</translation>
+    </message>
+    <message>
+        <source>Adding entry to phrasebook %1</source>
+        <translation>Dodajam vnos v knjigo izrazov %1</translation>
+    </message>
+    <message>
+        <source>Select phrase book to add to</source>
+        <translation>Izberite knjigo izrazov za dodajanje vanjo</translation>
+    </message>
+    <message>
+        <source>Unable to launch Qt Assistant (%1)</source>
+        <translation>Ni moč zagnati Qt Assistanta (%1)</translation>
+    </message>
+    <message>
+        <source>Version %1</source>
+        <translation>Različica %1</translation>
+    </message>
+    <message>
+        <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 je orodje za dodajanje prevodov programom Qt..&lt;/p&gt;&lt;p&gt;Avtorske pravice © 2010 Nokia Corporation in/ali njene podružnice.&lt;/p&gt;&lt;p&gt;Prevedel: &lt;a href=&quot;mailto:jlp@holodeck1.com&quot;&gt;Jure Repinc&lt;/a&gt;, &lt;a href=&quot;http://www.lugos.si/&quot;&gt;LUGOS&lt;/a&gt;&lt;/p&gt;</translation>
+    </message>
+    <message>
+        <source>Do you want to save the modified files?</source>
+        <translation>Ali želite shraniti spremenjene datoteke?</translation>
+    </message>
+    <message>
+        <source>Do you want to save &apos;%1&apos;?</source>
+        <translation>Ali želite shraniti »%1«?</translation>
+    </message>
+    <message>
+        <source>Qt Linguist[*]</source>
+        <translation>Qt Linguist[*]</translation>
+    </message>
+    <message>
+        <source>%1[*] - Qt Linguist</source>
+        <translation>%1[*] – Qt Linguist</translation>
+    </message>
+    <message>
+        <source>No untranslated translation units left.</source>
+        <translation>Preostale ni nobene neprevedene prevajalske enote.</translation>
+    </message>
+    <message>
+        <source>&amp;Window</source>
+        <translation>&amp;Okno</translation>
+    </message>
+    <message>
+        <source>Minimize</source>
+        <translation>Pomanjšaj</translation>
+    </message>
+    <message>
+        <source>Ctrl+M</source>
+        <translation>Ctrl+M</translation>
+    </message>
+    <message>
+        <source>Display the manual for %1.</source>
+        <translation>Prikaži priročnik za %1.</translation>
+    </message>
+    <message>
+        <source>Display information about %1.</source>
+        <translation>Prikaži podatke o %1.</translation>
+    </message>
+    <message>
+        <source>&amp;Save &apos;%1&apos;</source>
+        <translation>&amp;Shrani »%1«</translation>
+    </message>
+    <message>
+        <source>Save &apos;%1&apos; &amp;As...</source>
+        <translation>Shrani »%1« &amp;kot ...</translation>
+    </message>
+    <message>
+        <source>Release &apos;%1&apos;</source>
+        <translation>Izdaj »%1«</translation>
+    </message>
+    <message>
+        <source>Release &apos;%1&apos; As...</source>
+        <translation>Izdaj »%1« kot ...</translation>
+    </message>
+    <message>
+        <source>&amp;Close &apos;%1&apos;</source>
+        <translation>&amp;Zapri »%1«</translation>
+    </message>
+    <message>
+        <source>&amp;Save</source>
+        <translation>&amp;Shrani</translation>
+    </message>
+    <message>
+        <source>&amp;Close</source>
+        <translation>&amp;Zapri</translation>
+    </message>
+    <message>
+        <source>Save All</source>
+        <translation>Shrani vse</translation>
+    </message>
+    <message>
+        <source>Close All</source>
+        <translation>Zapri vse</translation>
+    </message>
+    <message>
+        <source>&amp;Release</source>
+        <translation>&amp;Izdaj</translation>
+    </message>
+    <message>
+        <source>Translation File &amp;Settings for &apos;%1&apos;...</source>
+        <translation>&amp;Nastavitve datoteke s prevodi za »%1« ...</translation>
+    </message>
+    <message>
+        <source>&amp;Batch Translation of &apos;%1&apos;...</source>
+        <translation>&amp;Paketno prevajanje »%1« ...</translation>
+    </message>
+    <message>
+        <source>Search And &amp;Translate in &apos;%1&apos;...</source>
+        <translation>&amp;Najdi in prevedi v »%1« ...</translation>
+    </message>
+    <message>
+        <source>Search And &amp;Translate...</source>
+        <translation>&amp;Najdi in prevedi ...</translation>
+    </message>
+    <message>
+        <source>Cannot read from phrase book &apos;%1&apos;.</source>
+        <translation>Ni moč brati iz knjige izrazov »%1«.</translation>
+    </message>
+    <message>
+        <source>Close this phrase book.</source>
+        <translation>Zapri to knjigo izrazov.</translation>
+    </message>
+    <message>
+        <source>Enables you to add, modify, or delete entries in this phrase book.</source>
+        <translation>Omogoča dodajanje, spreminjanje in brisanje vnosov v knjigi izrazov.</translation>
+    </message>
+    <message>
+        <source>Print the entries in this phrase book.</source>
+        <translation>Natisne vnose iz te knjige izrazov.</translation>
+    </message>
+    <message>
+        <source>Cannot create phrase book &apos;%1&apos;.</source>
+        <translation>Ni moč ustvariti knjige izrazov »%1«.</translation>
+    </message>
+    <message>
+        <source>Do you want to save phrase book &apos;%1&apos;?</source>
+        <translation>Ali želite shraniti knjigo izrazov »%1«?</translation>
+    </message>
+    <message>
+        <source>All</source>
+        <translation>Vse</translation>
+    </message>
+</context>
+<context>
+    <name>MessageEditor</name>
+    <message>
+        <source>Russian</source>
+        <translation>Ruščina</translation>
+    </message>
+    <message>
+        <source>German</source>
+        <translation>Nemščina</translation>
+    </message>
+    <message>
+        <source>Japanese</source>
+        <translation>Japonščina</translation>
+    </message>
+    <message>
+        <source>French</source>
+        <translation>Francoščina</translation>
+    </message>
+    <message>
+        <source>Polish</source>
+        <translation>Poljščina</translation>
+    </message>
+    <message>
+        <source>Chinese</source>
+        <translation>Kitajščina</translation>
+    </message>
+    <message>
+        <source>This whole panel allows you to view and edit the translation of some source text.</source>
+        <translation>To podokno vam omogoča ogled in urejanje prevoda izvornega besedila.</translation>
+    </message>
+    <message>
+        <source>Source text</source>
+        <translation>Izvorno besedilo</translation>
+    </message>
+    <message>
+        <source>This area shows the source text.</source>
+        <translation>To področje prikazuje izvorno besedilo.</translation>
+    </message>
+    <message>
+        <source>Source text (Plural)</source>
+        <translation>Izvorno besedilo (množina)</translation>
+    </message>
+    <message>
+        <source>This area shows the plural form of the source text.</source>
+        <translation>To področje prikazuje množinsko obliko izvornega besedila.</translation>
+    </message>
+    <message>
+        <source>Developer comments</source>
+        <translation>Komentarji razvijalcev</translation>
+    </message>
+    <message>
+        <source>This area shows a comment that may guide you, and the context in which the text occurs.</source>
+        <translation>To področje prikazuje komentar, ki vas lahko vodi, in kontekst v katerem se besedilo pojavi.</translation>
+    </message>
+    <message>
+        <source>Here you can enter comments for your own use. They have no effect on the translated applications.</source>
+        <translation>Sem lahko vnesete komentarje za lastne potrebe. Na prevedene programe ne vplivajo.</translation>
+    </message>
+    <message>
+        <source>%1 translation (%2)</source>
+        <translation>%1 prevod (%2)</translation>
+    </message>
+    <message>
+        <source>This is where you can enter or modify the translation of the above source text.</source>
+        <translation>Sem lahko vnesete ali pa tu spremenite prevod gornjega izvornega besedila.</translation>
+    </message>
+    <message>
+        <source>%1 translation</source>
+        <translation>%1 prevod</translation>
+    </message>
+    <message>
+        <source>%1 translator comments</source>
+        <translation>%1 prevajalski komentarji</translation>
+    </message>
+    <message>
+        <source>&apos;%1&apos;
+Line: %2</source>
+        <translation>»%1«
+Vrstica: %2</translation>
+    </message>
+</context>
+<context>
+    <name>MessageModel</name>
+    <message>
+        <source>Completion status for %1</source>
+        <translation>Stanje za %1</translation>
+    </message>
+    <message>
+        <source>&lt;file header&gt;</source>
+        <translation>&lt;glava datoteke&gt;</translation>
+    </message>
+    <message>
+        <source>&lt;context comment&gt;</source>
+        <translation>&lt;komentar konteksta&gt;</translation>
+    </message>
+    <message>
+        <source>&lt;unnamed context&gt;</source>
+        <translation>&lt;neimenovan kontekst&gt;</translation>
+    </message>
+</context>
+<context>
+    <name>PhraseBookBox</name>
+    <message>
+        <source>Edit Phrase Book</source>
+        <translation>Uredi knjigo izrazov</translation>
+    </message>
+    <message>
+        <source>This window allows you to add, modify, or delete entries in a phrase book.</source>
+        <translation>To okno omogoča dodajanje, spreminjanje in brisanje vnosov v knjigi izrazov.</translation>
+    </message>
+    <message>
+        <source>&amp;Translation:</source>
+        <translation>&amp;Prevod:</translation>
+    </message>
+    <message>
+        <source>This is the phrase in the target language corresponding to the source phrase.</source>
+        <translation>To je izraz v ciljnem jeziku, ki ustreza izvornemu izrazu.</translation>
+    </message>
+    <message>
+        <source>S&amp;ource phrase:</source>
+        <translation>&amp;Izvorni izraz:</translation>
+    </message>
+    <message>
+        <source>This is a definition for the source phrase.</source>
+        <translation>To je definicija za izvorni izraz.</translation>
+    </message>
+    <message>
+        <source>This is the phrase in the source language.</source>
+        <translation>To je izraz v izvornem jeziku.</translation>
+    </message>
+    <message>
+        <source>&amp;Definition:</source>
+        <translation>&amp;Definicija:</translation>
+    </message>
+    <message>
+        <source>Click here to add the phrase to the phrase book.</source>
+        <translation>Kliknite, da dodate izraz v knjigo izrazov.</translation>
+    </message>
+    <message>
+        <source>&amp;New Entry</source>
+        <translation>&amp;Nov vnos</translation>
+    </message>
+    <message>
+        <source>Click here to remove the entry from the phrase book.</source>
+        <translation>Kliknite, da odstranite vnos iz knjige izrazov.</translation>
+    </message>
+    <message>
+        <source>&amp;Remove Entry</source>
+        <translation>&amp;Odstrani vnos</translation>
+    </message>
+    <message>
+        <source>Settin&amp;gs...</source>
+        <translation>&amp;Nastavitve ...</translation>
+    </message>
+    <message>
+        <source>Click here to save the changes made.</source>
+        <translation>Kliknite za shranitev opravljenih sprememb.</translation>
+    </message>
+    <message>
+        <source>&amp;Save</source>
+        <translation>&amp;Shrani</translation>
+    </message>
+    <message>
+        <source>Click here to close this window.</source>
+        <translation>Kliknite, da zaprete to okno.</translation>
+    </message>
+    <message>
+        <source>Close</source>
+        <translation>Zapri</translation>
+    </message>
+    <message>
+        <source>(New Entry)</source>
+        <translation>(Nov vnos)</translation>
+    </message>
+    <message>
+        <source>%1[*] - Qt Linguist</source>
+        <translation>%1[*] – Qt Linguist</translation>
+    </message>
+    <message>
+        <source>Qt Linguist</source>
+        <translation>Qt Linguist</translation>
+    </message>
+    <message>
+        <source>Cannot save phrase book &apos;%1&apos;.</source>
+        <translation>Ni moč shraniti knjige izrazov »%1«.</translation>
+    </message>
+</context>
+<context>
+    <name>PhraseModel</name>
+    <message>
+        <source>Source phrase</source>
+        <translation>Izvorni izraz</translation>
+    </message>
+    <message>
+        <source>Translation</source>
+        <translation>Prevod</translation>
+    </message>
+    <message>
+        <source>Definition</source>
+        <translation>Definicija</translation>
+    </message>
+</context>
+<context>
+    <name>PhraseView</name>
+    <message>
+        <source>Insert</source>
+        <translation>Vstavi</translation>
+    </message>
+    <message>
+        <source>Edit</source>
+        <translation>Uredi</translation>
+    </message>
+    <message>
+        <source>Guess (%1)</source>
+        <translation>Ugibanje (%1)</translation>
+    </message>
+    <message>
+        <source>Guess</source>
+        <translation>Ugibanje</translation>
+    </message>
+</context>
+<context>
+    <name>QObject</name>
+    <message>
+        <source>Translation files (%1);;</source>
+        <translation>Prevajalske datoteke (%1);;</translation>
+    </message>
+    <message>
+        <source>All files (*)</source>
+        <translation>Vse datoteke (*)</translation>
+    </message>
+    <message>
+        <source>Qt Linguist</source>
+        <translation>Qt Linguist</translation>
+    </message>
+    <message>
+        <source>GNU Gettext localization files</source>
+        <translation>Prevajalske datoteke GNU Gettext</translation>
+    </message>
+    <message>
+        <source>GNU Gettext localization template files</source>
+        <translation>Predloge prevajalskih datotek GNU Gettext</translation>
+    </message>
+    <message>
+        <source>Compiled Qt translations</source>
+        <translation>Prevedeni prevodi za Qt</translation>
+    </message>
+    <message>
+        <source>Qt Linguist &apos;Phrase Book&apos;</source>
+        <translation>Knjiga izrazov za Qt Linguist</translation>
+    </message>
+    <message>
+        <source>Qt translation sources (format 1.1)</source>
+        <translation>Prevajalski viri za Qt (različica 1.1)</translation>
+    </message>
+    <message>
+        <source>Qt translation sources (format 2.0)</source>
+        <translation>Prevajalski viri za Qt (različica 2.0)</translation>
+    </message>
+    <message>
+        <source>Qt translation sources (latest format)</source>
+        <translation>Prevajalski viri za Qt (najnovejša različica)</translation>
+    </message>
+    <message>
+        <source>XLIFF localization files</source>
+        <translation>Prevajalske datoteke XLIFF</translation>
+    </message>
+</context>
+<context>
+    <name>SourceCodeView</name>
+    <message>
+        <source>&lt;i&gt;Source code not available&lt;/i&gt;</source>
+        <translation>&lt;i&gt;Izvorna koda ni na voljo&lt;/i&gt;</translation>
+    </message>
+    <message>
+        <source>&lt;i&gt;File %1 not available&lt;/i&gt;</source>
+        <translation>&lt;i&gt;Datoteka %1 ni na voljo&lt;/i&gt;</translation>
+    </message>
+    <message>
+        <source>&lt;i&gt;File %1 not readable&lt;/i&gt;</source>
+        <translation>&lt;i&gt;Datoteka %1 ni berljiva&lt;/i&gt;</translation>
+    </message>
+</context>
+<context>
+    <name>Statistics</name>
+    <message>
+        <source>Statistics</source>
+        <translation>Statistika</translation>
+    </message>
+    <message>
+        <source>Close</source>
+        <translation>Zapri</translation>
+    </message>
+    <message>
+        <source>Translation</source>
+        <translation>Prevod</translation>
+    </message>
+    <message>
+        <source>Source</source>
+        <translation>Vir</translation>
+    </message>
+    <message>
+        <source>0</source>
+        <translation>0</translation>
+    </message>
+    <message>
+        <source>Words:</source>
+        <translation>Besede:</translation>
+    </message>
+    <message>
+        <source>Characters:</source>
+        <translation>Znaki:</translation>
+    </message>
+    <message>
+        <source>Characters (with spaces):</source>
+        <translation>Znaki (s presledki):</translation>
+    </message>
+</context>
+<context>
+    <name>TranslateDialog</name>
+    <message>
+        <source>This window allows you to search for some text in the translation source file.</source>
+        <translation>To okno omogoča iskanje besedila v izvorni datoteki s prevodom.</translation>
+    </message>
+    <message>
+        <source>Type in the text to search for.</source>
+        <translation>Vnesite iskano besedilo.</translation>
+    </message>
+    <message>
+        <source>Find &amp;source text:</source>
+        <translation>Najdi &amp;izvorno besedilo:</translation>
+    </message>
+    <message>
+        <source>&amp;Translate to:</source>
+        <translation>&amp;Prevedi v:</translation>
+    </message>
+    <message>
+        <source>Search options</source>
+        <translation>Možnosti iskanja</translation>
+    </message>
+    <message>
+        <source>Texts such as &apos;TeX&apos; and &apos;tex&apos; are considered as different when checked.</source>
+        <translation>Ko je omogočeno, se razlikuje med besedili kot sta »KDE« in »kde«.</translation>
+    </message>
+    <message>
+        <source>Match &amp;case</source>
+        <translation>Ujemanje &amp;velikosti črk</translation>
+    </message>
+    <message>
+        <source>Mark new translation as &amp;finished</source>
+        <translation>Nove prevode označi kot &amp;zaključene</translation>
+    </message>
+    <message>
+        <source>Click here to find the next occurrence of the text you typed in.</source>
+        <translation>Kliknite, da poiščete naslednjo pojavitev vnešenega besedila.</translation>
+    </message>
+    <message>
+        <source>Find Next</source>
+        <translation>Najdi naslednje</translation>
+    </message>
+    <message>
+        <source>Translate</source>
+        <translation>Prevedi</translation>
+    </message>
+    <message>
+        <source>Translate All</source>
+        <translation>Prevedi vse</translation>
+    </message>
+    <message>
+        <source>Click here to close this window.</source>
+        <translation>Kliknite, da zaprete to okno.</translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation>Prekliči</translation>
+    </message>
+</context>
+<context>
+    <name>TranslationSettingsDialog</name>
+    <message>
+        <source>Source language</source>
+        <translation>Izvorni jezik</translation>
+    </message>
+    <message>
+        <source>Language</source>
+        <translation>Jezik</translation>
+    </message>
+    <message>
+        <source>Country/Region</source>
+        <translation>Država/regija:</translation>
+    </message>
+    <message>
+        <source>Target language</source>
+        <translation>Ciljni jezik</translation>
+    </message>
+    <message>
+        <source>Settings for &apos;%1&apos; - Qt Linguist</source>
+        <translation>Nastavitve za »%1« – Qt Linguist</translation>
+    </message>
+    <message>
+        <source>Any Country</source>
+        <translation>Katerakoli država</translation>
+    </message>
+</context>
+</TS>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/translations/linguist_uk.ts	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,2547 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="uk_UA">
+<context>
+    <name>AboutDialog</name>
+    <message>
+        <source>Qt Linguist</source>
+        <translation>Qt Linguist</translation>
+    </message>
+</context>
+<context>
+    <name>BatchTranslationDialog</name>
+    <message>
+        <source>Qt Linguist - Batch Translation</source>
+        <translation>Qt Linguist - Пакетний переклад</translation>
+    </message>
+    <message>
+        <source>Options</source>
+        <translation>Опції</translation>
+    </message>
+    <message>
+        <source>Set translated entries to finished</source>
+        <translation>Помічати перекладені елементи як завершені</translation>
+    </message>
+    <message>
+        <source>Retranslate entries with existing translation</source>
+        <translation>Повторно перекласти елементи, що вже мають переклад</translation>
+    </message>
+    <message>
+        <source>Note that the modified entries will be reset to unfinished if &apos;Set translated entries to finished&apos; above is unchecked</source>
+        <translation>Майте на увазі, що модифіковані елементи будуть помічені як незавершені, якщо параметр &apos;Помічати перекладені елементи як завершені&apos; вимкнено</translation>
+    </message>
+    <message>
+        <source>Translate also finished entries</source>
+        <translation>Перекладати також завершені елементи</translation>
+    </message>
+    <message>
+        <source>Phrase book preference</source>
+        <translation>Використання глосарію</translation>
+    </message>
+    <message>
+        <source>Move up</source>
+        <translation>Вгору</translation>
+    </message>
+    <message>
+        <source>Move down</source>
+        <translation>Вниз</translation>
+    </message>
+    <message>
+        <source>The batch translator will search through the selected phrase books in the order given above</source>
+        <translation>Пакетний перекладач буде шукати серед обраних глосаріїв у вказаному вище порядку</translation>
+    </message>
+    <message>
+        <source>&amp;Run</source>
+        <translation>&amp;Запустити</translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation>Скасувати</translation>
+    </message>
+    <message>
+        <source>Batch Translation of &apos;%1&apos; - Qt Linguist</source>
+        <translation>Пакетний переклад &apos;%1&apos; - Qt Linguist</translation>
+    </message>
+    <message>
+        <source>Searching, please wait...</source>
+        <translation>Здійснюється пошук, будь ласка, зачекайте...</translation>
+    </message>
+    <message>
+        <source>&amp;Cancel</source>
+        <translation>&amp;Скасувати</translation>
+    </message>
+    <message>
+        <source>Linguist batch translator</source>
+        <translation>Пакетний переклад Linguist&apos;а</translation>
+    </message>
+    <message numerus="yes">
+        <source>Batch translated %n entries</source>
+        <translation>
+            <numerusform>Пакетно перекладено %n елемент</numerusform>
+            <numerusform>Пакетно перекладено %n елементи</numerusform>
+            <numerusform>Пакетно перекладено %n елементів</numerusform>
+        </translation>
+    </message>
+</context>
+<context>
+    <name>DataModel</name>
+    <message>
+        <source>&lt;qt&gt;Duplicate messages found in &apos;%1&apos;:</source>
+        <translation>&lt;qt&gt;Повідомлення-дублікати знайдено в &apos;%1&apos;:</translation>
+    </message>
+    <message>
+        <source>&lt;p&gt;[more duplicates omitted]</source>
+        <translation>&lt;p&gt;[решта дублікатів пропущено]</translation>
+    </message>
+    <message>
+        <source>&lt;p&gt;* ID: %1</source>
+        <translation>&lt;p&gt;* ID: %1</translation>
+    </message>
+    <message>
+        <source>&lt;p&gt;* Context: %1&lt;br&gt;* Source: %2</source>
+        <translation>&lt;p&gt;* Контекст: %1&lt;br&gt;* Оригінал: %2</translation>
+    </message>
+    <message>
+        <source>&lt;br&gt;* Comment: %3</source>
+        <translation>&lt;br&gt;* Коментар: %3</translation>
+    </message>
+    <message>
+        <source>Linguist does not know the plural rules for &apos;%1&apos;.
+Will assume a single universal form.</source>
+        <translation>Linguist не знає правил множини для &apos;%1&apos;.
+Буде застосована універсальна форма однини.</translation>
+    </message>
+    <message>
+        <source>Cannot create &apos;%2&apos;: %1</source>
+        <translation>Неможливо створити &apos;%2&apos;: %1</translation>
+    </message>
+    <message>
+        <source>Universal Form</source>
+        <translation>Універсальна форма</translation>
+    </message>
+</context>
+<context>
+    <name>ErrorsView</name>
+    <message>
+        <source>Accelerator possibly superfluous in translation.</source>
+        <translation>В перекладі, можливо, пропущено акселератор.</translation>
+    </message>
+    <message>
+        <source>Accelerator possibly missing in translation.</source>
+        <translation>В перекладі, можливо, пропущено акселератор.</translation>
+    </message>
+    <message>
+        <source>Translation does not end with the same punctuation as the source text.</source>
+        <translation>Переклад не закінчується тим самим знаком пунктуації, що й оригінал.</translation>
+    </message>
+    <message>
+        <source>A phrase book suggestion for &apos;%1&apos; was ignored.</source>
+        <translation>Пропозицію глосарію для &apos;%1&apos; було проігноровано.</translation>
+    </message>
+    <message>
+        <source>Translation does not refer to the same place markers as in the source text.</source>
+        <translation>Переклад не містить тих самих маркерів позиції, що й оригінал.</translation>
+    </message>
+    <message>
+        <source>Translation does not contain the necessary %n place marker.</source>
+        <translation>Переклад не містить необхідних маркерів позиції %n.</translation>
+    </message>
+    <message>
+        <source>Unknown error</source>
+        <translation>Невідома помилка</translation>
+    </message>
+</context>
+<context>
+    <name>FindDialog</name>
+    <message>
+        <source>Find</source>
+        <translation>Знайти</translation>
+    </message>
+    <message>
+        <source>This window allows you to search for some text in the translation source file.</source>
+        <translation>Це вікно дозволяє вам шукати текст в файлі перекладу.</translation>
+    </message>
+    <message>
+        <source>&amp;Find what:</source>
+        <translation>&amp;Шукати:</translation>
+    </message>
+    <message>
+        <source>Type in the text to search for.</source>
+        <translation>Введіть текст для пошуку.</translation>
+    </message>
+    <message>
+        <source>Options</source>
+        <translation>Опції</translation>
+    </message>
+    <message>
+        <source>Source texts are searched when checked.</source>
+        <translation>Якщо відмічено, то пошук здійснюватиметься серед оригінальних текстів.</translation>
+    </message>
+    <message>
+        <source>&amp;Source texts</source>
+        <translation>&amp;Оригінальні тексти</translation>
+    </message>
+    <message>
+        <source>Translations are searched when checked.</source>
+        <translation>Якщо відмічено, то пошук здійснюватиметься серед перекладів.</translation>
+    </message>
+    <message>
+        <source>&amp;Translations</source>
+        <translation>&amp;Переклади</translation>
+    </message>
+    <message>
+        <source>Texts such as &apos;TeX&apos; and &apos;tex&apos; are considered as different when checked.</source>
+        <translation>Якщо відмічено, то рядки &apos;приклад&apos; та &apos;прИкЛад&apos; будуть вважатись різними.</translation>
+    </message>
+    <message>
+        <source>&amp;Match case</source>
+        <translation>Враховувати &amp;регістр</translation>
+    </message>
+    <message>
+        <source>Comments and contexts are searched when checked.</source>
+        <translation>Якщо відмічено, то пошук здійснюватиметься серед коментарів та контекстів.</translation>
+    </message>
+    <message>
+        <source>&amp;Comments</source>
+        <translation>&amp;Коментарі</translation>
+    </message>
+    <message>
+        <source>Ignore &amp;accelerators</source>
+        <translation>Ігнорувати &amp;акселератори</translation>
+    </message>
+    <message>
+        <source>Click here to find the next occurrence of the text you typed in.</source>
+        <translation>Клацніть тут, щоб знайти наступний збіг для введеного вами тексту.</translation>
+    </message>
+    <message>
+        <source>Find Next</source>
+        <translation>Знайти наступний</translation>
+    </message>
+    <message>
+        <source>Click here to close this window.</source>
+        <translation>Клацніть тут щоб закрити вікно.</translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation>Скасувати</translation>
+    </message>
+    <message>
+        <source></source>
+        <comment>Choose Edit|Find from the menu bar or press Ctrl+F to pop up the Find dialog</comment>
+        <translatorcomment>Виберіть Правка|Пошук з головного меню чи натисніть Ctrl+F, щоб відкрити діалог пошуку</translatorcomment>
+        <translation></translation>
+    </message>
+</context>
+<context>
+    <name>FormMultiWidget</name>
+    <message>
+        <source>Alt+Delete</source>
+        <extracomment>translate, but don&apos;t change</extracomment>
+        <translation></translation>
+    </message>
+    <message>
+        <source>Shift+Alt+Insert</source>
+        <extracomment>translate, but don&apos;t change</extracomment>
+        <translation></translation>
+    </message>
+    <message>
+        <source>Alt+Insert</source>
+        <extracomment>translate, but don&apos;t change</extracomment>
+        <translation></translation>
+    </message>
+    <message>
+        <source>Confirmation - Qt Linguist</source>
+        <translation>Підтвердження - Qt Linguist</translation>
+    </message>
+    <message>
+        <source>Delete non-empty length variant?</source>
+        <translation>Видалити непустий варіант перекладу?</translation>
+    </message>
+</context>
+<context>
+    <name>LConvert</name>
+    <message>
+        <source>
+Usage:
+    lconvert [options] &lt;infile&gt; [&lt;infile&gt;...]
+
+lconvert is part of Qt&apos;s Linguist tool chain. It can be used as a
+stand-alone tool to convert and filter translation data files.
+The following file formats are supported:
+
+%1
+If multiple input files are specified, they are merged with
+translations from later files taking precedence.
+
+Options:
+    -h
+    --help  Display this information and exit.
+
+    -i &lt;infile&gt;
+    --input-file &lt;infile&gt;
+           Specify input file. Use if &lt;infile&gt; might start with a dash.
+           This option can be used several times to merge inputs.
+           May be &apos;-&apos; (standard input) for use in a pipe.
+
+    -o &lt;outfile&gt;
+    --output-file &lt;outfile&gt;
+           Specify output file. Default is &apos;-&apos; (standard output).
+
+    -if &lt;informat&gt;
+    --input-format &lt;format&gt;
+           Specify input format for subsequent &lt;infile&gt;s.
+           The format is auto-detected from the file name and defaults to &apos;ts&apos;.
+
+    -of &lt;outformat&gt;
+    --output-format &lt;outformat&gt;
+           Specify output format. See -if.
+
+    --input-codec &lt;codec&gt;
+           Specify encoding for QM and PO input files. Default is &apos;Latin1&apos;
+           for QM and &apos;UTF-8&apos; for PO files. UTF-8 is always tried as well for
+           QM, corresponding to the possible use of the trUtf8() function.
+
+    --output-codec &lt;codec&gt;
+           Specify encoding for PO output files. Default is &apos;UTF-8&apos;.
+
+    --drop-tags &lt;regexp&gt;
+           Drop named extra tags when writing TS or XLIFF files.
+           May be specified repeatedly.
+
+    --drop-translations
+           Drop existing translations and reset the status to &apos;unfinished&apos;.
+           Note: this implies --no-obsolete.
+
+    --source-language &lt;language&gt;[_&lt;region&gt;]
+           Specify/override the language of the source strings. Defaults to
+           POSIX if not specified and the file does not name it yet.
+
+    --target-language &lt;language&gt;[_&lt;region&gt;]
+           Specify/override the language of the translation.
+           The target language is guessed from the file name if this option
+           is not specified and the file contents name no language yet.
+
+    --no-obsolete
+           Drop obsolete messages.
+
+    --no-finished
+           Drop finished messages.
+
+    --sort-contexts
+           Sort contexts in output TS file alphabetically.
+
+    --locations {absolute|relative|none}
+           Override how source code references are saved in TS files.
+           Default is absolute.
+
+    --no-ui-lines
+           Drop line numbers from references to UI files.
+
+    --verbose
+           be a bit more verbose
+
+Long options can be specified with only one leading dash, too.
+
+Return value:
+    0 on success
+    1 on command line parse failures
+    2 on read failures
+    3 on write failures
+</source>
+        <translation>
+Використання:
+    lconvert [опції] &lt;вхідний_файл&gt; [&lt;вхідний_файл&gt;...]
+
+lconvert - це частина набору програм Qt Linguist. Вона може використовуватись,
+як окремий інструмент, для конвертування та фільтрування файлів перекладу.
+Підтримуються наступні формати файлів:
+
+%1
+Якщо вказано декілька вхідних файлів, то вони об&apos;єднується з перекладами з
+попередньо вказаних файлів з урахуванням порядку задання.
+
+Опції:
+    -h
+    --help  Показати цю інформацію та вийти.
+
+    -i &lt;вхідний_файл&gt;
+    --input-file &lt;вхідний_файл&gt;
+           Вказати вхідний файл. Використовуйте, якщо &lt;вхідний_файл&gt;
+           починається з дефіса. Ця опція може бути використана декілька
+           раз, щоб об&apos;єднати вхідні дані.
+           Може бути &apos;-&apos; (стандартний вхід) для використання в конвеєрі.
+
+    -o &lt;вихідний_файл&gt;
+    --output-file &lt;вихідний_файл&gt;
+           Вказати вихідний файл. Типово - &apos;-&apos; (стандартний вихід).
+
+    -if &lt;формат&gt;
+    --input-format &lt;формат&gt;
+           Вказати вхідний формат для наступних &lt;вхідних_файлів&gt;.
+           Формат автоматично визначається з імені файлу. Типово - &apos;ts&apos;.
+
+    -of &lt;формат&gt;
+    --output-format &lt;формат&gt;
+           Вказати вихідний формат. Дивіться -if.
+
+    --input-codec &lt;кодек&gt;
+           Вказати кодування для вхідних файлів QM та PO. Типово - &apos;Latin1&apos;
+           для QM та &apos;UTF-8&apos; файлів PO. Для QM також здійснюється спроба
+           використати UTF-8, відповідно до можливого застосування функції trUtf8().
+
+    --output-codec &lt;кодек&gt;
+           Вказати кодування для вихідних файлів PO. Типово - &apos;UTF-8&apos;.
+
+    --drop-tags &lt;регулярний_вираз&gt;
+           Видалити вказані додаткові теги під час запису файлів TS чи XLIFF.
+           Може вказуватись декілька раз.
+
+    --drop-translations
+           Видаляти існуючі переклади та скидати статус в &apos;незавершений&apos;.
+           Примітка: це включає --no-obsolete.
+
+    --source-language &lt;мова&gt;[_&lt;регіон&gt;]
+           Вказати/замінити мову оригінальних рядків. Типово - POSIX,
+           якщо не вказано та не встановлено в файлі.
+
+    --target-language &lt;мова&gt;[_&lt;регіон&gt;]
+           Вказати/замінити мову перекладу.
+           Якщо ця опція не вказана і у вмісті файлу мова не задана, то
+           мова перекладу вгадується з імені файлу.
+
+    --no-obsolete
+           Відкинути застарілі повідомлення.
+
+    --no-finished
+           Відкинути завершені повідомлення.
+
+    --sort-contexts
+           Сортувати контексти в вихідному файлі TS за абеткою.
+
+    --locations {absolute|relative|none}
+           Замінити як посилання на код зберігаються в файлі TS.
+           Типово - абсолютно.
+
+    --no-ui-lines
+           Видалити номери рядків з посилань на файли UI.
+
+    --verbose
+           бути трохи більш детальним
+
+Довгі опції також можуть вказуватись лише з одним дефісом.
+
+Коди повернення:
+    0 при успіху
+    1 при помилці розбору командного рядка
+    2 при помилках читання
+    3 при помилках запису
+</translation>
+    </message>
+</context>
+<context>
+    <name>LRelease</name>
+    <message numerus="yes">
+        <source>Dropped %n message(s) which had no ID.</source>
+        <translation>
+            <numerusform>Видалено %n повідомлення, яке не має ID.</numerusform>
+            <numerusform>Видалено %n повідомлення, які не мають ID.</numerusform>
+            <numerusform>Видалено %n повідомлень, які не мають ID.</numerusform>
+        </translation>
+    </message>
+    <message numerus="yes">
+        <source>Excess context/disambiguation dropped from %n message(s).</source>
+        <translation>
+            <numerusform>Видалено зайвий контекст/неоднозначність з %n повідомлення.</numerusform>
+            <numerusform>Видалено зайвий контекст/неоднозначність з %n повідомлень.</numerusform>
+            <numerusform>Видалено зайвий контекст/неоднозначність з %n повідомлень.</numerusform>
+        </translation>
+    </message>
+    <message numerus="yes">
+        <source>    Generated %n translation(s) (%1 finished and %2 unfinished)</source>
+        <translation>
+            <numerusform>    Згенеровано %n переклад (%1 завершено та %2 незавершено)</numerusform>
+            <numerusform>    Згенеровано %n переклади (%1 завершено та %2 незавершено)</numerusform>
+            <numerusform>    Згенеровано %n перекладів (%1 завершено та %2 незавершено)</numerusform>
+        </translation>
+    </message>
+    <message numerus="yes">
+        <source>    Ignored %n untranslated source text(s)</source>
+        <translation>
+            <numerusform>    Зігноровано %n неперекладений оригінальний текст</numerusform>
+            <numerusform>    Зігноровано %n неперекладені оригінальні тексти</numerusform>
+            <numerusform>    Зігноровано %n неперекладених оригінальних текстів</numerusform>
+        </translation>
+    </message>
+    <message>
+        <source>Usage:
+    lrelease [options] project-file
+    lrelease [options] ts-files [-qm qm-file]
+
+lrelease is part of Qt&apos;s Linguist tool chain. It can be used as a
+stand-alone tool to convert XML-based translations files in the TS
+format into the &apos;compiled&apos; QM format used by QTranslator objects.
+
+Options:
+    -help  Display this information and exit
+    -idbased
+           Use IDs instead of source strings for message keying
+    -compress
+           Compress the QM files
+    -nounfinished
+           Do not include unfinished translations
+    -removeidentical
+           If the translated text is the same as
+           the source text, do not include the message
+    -markuntranslated &lt;prefix&gt;
+           If a message has no real translation, use the source text
+           prefixed with the given string instead
+    -silent
+           Do not explain what is being done
+    -version
+           Display the version of lrelease and exit
+</source>
+        <translation>Використання:
+    lrelease [опції] файл-проект
+    lrelease [опції] файли-ts [-qm файл-qm]
+
+lrelease - це частина набору програм Qt Linguist. Вона може використовуватися
+як окремий засіб для перетворення файлів перекладу на базі XML в форматі TS
+до &apos;скомпільованого&apos; формату QM, що використовується об&apos;єктами QTranslator.
+
+Опції:
+    -help  Показати цю інформацію та вийти
+    -idbased
+           Використовувати ID замість рядків оригіналу як ключі повідомлень
+    -compress
+           Стискати файли QM
+    -nounfinished
+           Не включати незавершені переклади
+    -removeidentical
+           Якщо перекладений текст однаковий з оригіналом, то
+           не включати повідомлення
+    -markuntranslated &lt;prefix&gt;
+           If a message has no real translation, use the source text
+           prefixed with the given string instead
+    -silent
+           Не пояснювати, що відбувається
+    -version
+           Показати версію lrelease та вийти
+</translation>
+    </message>
+    <message>
+        <source>lrelease error: %1</source>
+        <translation>помилка lrelease: %1</translation>
+    </message>
+    <message>
+        <source>Updating &apos;%1&apos;...
+</source>
+        <translation>Оновлюю &apos;%1&apos;...
+</translation>
+    </message>
+    <message>
+        <source>Removing translations equal to source text in &apos;%1&apos;...
+</source>
+        <translation>Видалення перекладів однакових з оригінальним текстом в &apos;%1&apos;...
+</translation>
+    </message>
+    <message>
+        <source>lrelease error: cannot create &apos;%1&apos;: %2
+</source>
+        <translation>помилка lrelease: неможливо створити &apos;%1&apos;: %2
+</translation>
+    </message>
+    <message>
+        <source>lrelease error: cannot save &apos;%1&apos;: %2</source>
+        <translation>помилка lrelease: неможливо зберегти &apos;%1&apos;: %2
+</translation>
+    </message>
+    <message>
+        <source>lrelease version %1
+</source>
+        <translation>lrelease версії %1
+</translation>
+    </message>
+    <message>
+        <source>lrelease error: cannot read project file &apos;%1&apos;.
+</source>
+        <translation>помилка lrelease: неможливо прочитати файл проекту &apos;%1&apos;.
+</translation>
+    </message>
+    <message>
+        <source>lrelease error: cannot process project file &apos;%1&apos;.
+</source>
+        <translation>помилка lrelease: неможливо обробити файл проекту &apos;%1&apos;.
+</translation>
+    </message>
+    <message>
+        <source>lrelease warning: Met no &apos;TRANSLATIONS&apos; entry in project file &apos;%1&apos;
+</source>
+        <translation>попередження lrelease: в файлу проекту &apos;%1&apos; не знайдено елементу &apos;TRANSLATIONS&apos;
+</translation>
+    </message>
+</context>
+<context>
+    <name>LUpdate</name>
+    <message>
+        <source>Usage:
+    lupdate [options] [project-file]...
+    lupdate [options] [source-file|path|@lst-file]... -ts ts-files|@lst-file
+
+lupdate is part of Qt&apos;s Linguist tool chain. It extracts translatable
+messages from Qt UI files, C++, Java and JavaScript/QtScript source code.
+Extracted messages are stored in textual translation source files (typically
+Qt TS XML). New and modified messages can be merged into existing TS files.
+
+Options:
+    -help  Display this information and exit.
+    -no-obsolete
+           Drop all obsolete strings.
+    -extensions &lt;ext&gt;[,&lt;ext&gt;]...
+           Process files with the given extensions only.
+           The extension list must be separated with commas, not with whitespace.
+           Default: &apos;%1&apos;.
+    -pluralonly
+           Only include plural form messages.
+    -silent
+           Do not explain what is being done.
+    -no-sort
+           Do not sort contexts in TS files.
+    -no-recursive
+           Do not recursively scan the following directories.
+    -recursive
+           Recursively scan the following directories (default).
+    -I &lt;includepath&gt; or -I&lt;includepath&gt;
+           Additional location to look for include files.
+           May be specified multiple times.
+    -locations {absolute|relative|none}
+           Specify/override how source code references are saved in TS files.
+           Default is absolute.
+    -no-ui-lines
+           Do not record line numbers in references to UI files.
+    -disable-heuristic {sametext|similartext|number}
+           Disable the named merge heuristic. Can be specified multiple times.
+    -pro &lt;filename&gt;
+           Name of a .pro file. Useful for files with .pro file syntax but
+           different file suffix. Projects are recursed into and merged.
+    -source-language &lt;language&gt;[_&lt;region&gt;]
+           Specify the language of the source strings for new files.
+           Defaults to POSIX if not specified.
+    -target-language &lt;language&gt;[_&lt;region&gt;]
+           Specify the language of the translations for new files.
+           Guessed from the file name if not specified.
+    -ts &lt;ts-file&gt;...
+           Specify the output file(s). This will override the TRANSLATIONS
+           and nullify the CODECFORTR from possibly specified project files.
+    -codecfortr &lt;codec&gt;
+           Specify the codec assumed for tr() calls. Effective only with -ts.
+    -version
+           Display the version of lupdate and exit.
+    @lst-file
+           Read additional file names (one per line) from lst-file.
+</source>
+        <translation>Використання:
+    lupdate [опції] [файл-проект]...
+    lupdate [опції] [вхідний-файл|шлях|@файл-список]... -ts ts-файли|@файл-список
+
+lupdate - це частина набору програм Qt Linguist. Вона It витягає придатні для перекладу 
+повідомлення з файлів Qt UI, коду C++, Java та JavaScript/QtScript. Витягнуті повідомлення
+зберігаються в текстовому файлі перекладу (типово Qt TS XML). Нові та модифіковані 
+повідомлення можуть бути об&apos;єднанні з існуючими файлами TS.
+
+Опції:
+    -help  Показати цю інформацію та вийти.
+    -no-obsolete
+           Видалити всі застарілі рядки.
+    -extensions &lt;розширення&gt;[,&lt;розширення&gt;]...
+           Обробляти файли лише з вказаними розширеннями.
+           Список розширень має розділюватись комами, а не пропусками.
+           Типово: &apos;%1&apos;.
+    -pluralonly
+           Включати лише повідомлення з формою множини.
+    -silent
+           Не пояснювати, що відбувається.
+    -no-sort
+           Не сортувати контексти в файлах TS.
+    -no-recursive
+           Не сканувати рекурсивно наступні теки.
+    -recursive
+           Рекурсивно сканувати наступні теки (типово).
+    -I &lt;шлях-включення&gt; або -I&lt;шлях-включення&gt;
+           Додаткові місця для пошуку файлів включення.
+           Може бути вказано декілька разів.
+    -locations {absolute|relative|none}
+           Вказати/замістити як посилання на код зберігаються в файлі TS.
+           Типово - абсолютно.
+    -no-ui-lines
+           Не записувати номери рядків в посиланнях на файли UI.
+    -disable-heuristic {sametext|similartext|number}
+           Вимкнути вказану евристику об&apos;єдання. Може бути вказано декілька разів.
+    -pro &lt;ім&apos;я-файлу&gt;
+           Ім&apos;я .pro файлу. Корисно для файлів із синтаксисом фалів .pro, але з
+           іншим розширенням. Projects are recursed into and merged.
+    -source-language &lt;мова&gt;[_&lt;регіон&gt;]
+           Вказати мову оригінальних рядків для нових файлів.
+           Типово, якщо не вказано - POSIX.
+    -target-language &lt;мова&gt;[_&lt;регіон&gt;]
+           Вказати мову перекладу для нових файлів.
+           Вгадується з імені файла, якщо не вказано.
+    -ts &lt;файл-ts&gt;...
+           Вказати вихідний файл(и). Це замістить TRANSLATIONS
+           та скине CODECFORTR з, можливо, вказаних файлів проекту.
+    -codecfortr &lt;кодек&gt;
+           Вказати кодек, що Specify the codec вживається для викликів tr(). Ефективно лише з -ts.
+    -version
+           Показати версію lupdate та вийти.
+    @файл-список
+           Читати додаткові імена файлів (одне на рядок) з файла-списку.
+</translation>
+    </message>
+    <message>
+        <source>lupdate warning: Codec for tr() &apos;%1&apos; disagrees with existing file&apos;s codec &apos;%2&apos;. Expect trouble.
+</source>
+        <translation>попередження lupdate: Кодек для tr() &apos;%1&apos; не узгоджується з існуючим кодеком файлу &apos;%2&apos;. Очікуйте неприємностей.
+</translation>
+    </message>
+    <message>
+        <source>lupdate warning: Specified target language &apos;%1&apos; disagrees with existing file&apos;s language &apos;%2&apos;. Ignoring.
+</source>
+        <translation>попередження lupdate: Вказана мова перекладу &apos;%1&apos; не узгоджується з існуючою мовою файлу &apos;%2&apos;. Ігнорую.
+</translation>
+    </message>
+    <message>
+        <source>lupdate warning: Specified source language &apos;%1&apos; disagrees with existing file&apos;s language &apos;%2&apos;. Ignoring.
+</source>
+        <translation>попередження lupdate: Вказана мова оригіналу &apos;%1&apos; не узгоджується з існуючою мовою файлу &apos;%2&apos;. Ігнорую.
+</translation>
+    </message>
+    <message>
+        <source>Updating &apos;%1&apos;...
+</source>
+        <translation>Оновлюю &apos;%1&apos;...
+</translation>
+    </message>
+    <message>
+        <source>Stripping non plural forms in &apos;%1&apos;...
+</source>
+        <translation>Видалення не множинних форм в &apos;%1&apos;...
+</translation>
+    </message>
+    <message>
+        <source>lupdate warning: Codec for source &apos;%1&apos; is invalid. Falling back to codec for tr().
+</source>
+        <translation>попередження lupdate: Кодек для джерела &apos;%1&apos; неправильний. Повертаємось до використання кодеку для tr().
+</translation>
+    </message>
+    <message>
+        <source>lupdate warning: TS files from command line will override TRANSLATIONS in %1.
+</source>
+        <translation>попередження lupdate: файл-TS з командного рядка замінять TRANSLATIONS в %1.
+</translation>
+    </message>
+    <message>
+        <source>lupdate warning: TS files from command line prevent recursing into %1.
+</source>
+        <translation>попередження lupdate: файли TS з командного рядка перешкоджають рекурсивному проходу %1.
+</translation>
+    </message>
+    <message>
+        <source>lupdate warning: no TS files specified. Only diagnostics will be produced for &apos;%1&apos;.
+</source>
+        <translation>попередження lupdate: не вказано файлів TS. Здійснюватиметься лише діагностика для &apos;%1&apos;.
+</translation>
+    </message>
+    <message>
+        <source>The option -target-language requires a parameter.
+</source>
+        <translation>Опція -target-language вимагає параметра.
+</translation>
+    </message>
+    <message>
+        <source>The option -source-language requires a parameter.
+</source>
+        <translation>Опція -source-language вимагає параметра.
+</translation>
+    </message>
+    <message>
+        <source>The option -disable-heuristic requires a parameter.
+</source>
+        <translation>Опція -disable-heuristic вимагає параметра.
+</translation>
+    </message>
+    <message>
+        <source>Invalid heuristic name passed to -disable-heuristic.
+</source>
+        <translation>Неправильна назва евристики для -disable-heuristic.
+</translation>
+    </message>
+    <message>
+        <source>The option -locations requires a parameter.
+</source>
+        <translation>Опція -locations вимагає параметра.
+</translation>
+    </message>
+    <message>
+        <source>Invalid parameter passed to -locations.
+</source>
+        <translation>Неправильний параметр для -locations.
+</translation>
+    </message>
+    <message>
+        <source>The -codecfortr option should be followed by a codec name.
+</source>
+        <translation>За опцією -codecfortr має слідувати назва кодека.
+</translation>
+    </message>
+    <message>
+        <source>The -extensions option should be followed by an extension list.
+</source>
+        <translation>За опцією -extensions має слідувати список розширень.
+</translation>
+    </message>
+    <message>
+        <source>The -pro option should be followed by a filename of .pro file.
+</source>
+        <translation>За опцією -pro має слідувати ім&apos;я .pro файлу.
+</translation>
+    </message>
+    <message>
+        <source>The -I option should be followed by a path.
+</source>
+        <translation>За опцією -l має слідувати шлях.
+</translation>
+    </message>
+    <message>
+        <source>Unrecognized option &apos;%1&apos;.
+</source>
+        <translation>Нерозпізнана опція &apos;%1&apos;.
+</translation>
+    </message>
+    <message>
+        <source>lupdate error: List file &apos;%1&apos; is not readable.
+</source>
+        <translation>помилка lupdate: Неможливо прочитати файл списку &apos;%1&apos;.
+</translation>
+    </message>
+    <message>
+        <source>lupdate warning: For some reason, &apos;%1&apos; is not writable.
+</source>
+        <translation>попередження lupdate: З певних причин в &apos;%1&apos; не можливо записати.
+</translation>
+    </message>
+    <message>
+        <source>lupdate error: File &apos;%1&apos; has no recognized extension.
+</source>
+        <translation>помилка lupdate: Файл &apos;%1&apos; має невідоме розширення.
+</translation>
+    </message>
+    <message>
+        <source>lupdate error: File &apos;%1&apos; does not exist.
+</source>
+        <translation>помилка lupdate: Файл &apos;%1&apos; не існує.
+</translation>
+    </message>
+    <message>
+        <source>Scanning directory &apos;%1&apos;...
+</source>
+        <translation>Сканування теки &apos;%1&apos;...
+</translation>
+    </message>
+    <message>
+        <source>lupdate warning: -target-language usually only makes sense with exactly one TS file.
+</source>
+        <translation>попередження lupdate: Використання -target-language, зазвичай, має сенс лише з одним файлом TS.
+</translation>
+    </message>
+    <message>
+        <source>lupdate warning: -codecfortr has no effect without -ts.
+</source>
+        <translation>попередження lupdate: -codecfortr не дає ефекту без -ts.
+</translation>
+    </message>
+    <message>
+        <source>lupdate warning: no TS files specified. Only diagnostics will be produced.
+</source>
+        <translation>попередження lupdate: не вказано файлів TS. Здійснюватиметься лише діагностика.
+</translation>
+    </message>
+    <message>
+        <source>lupdate error: Both project and source files / include paths specified.
+</source>
+        <translation>помилка lupdate: Одночасно вказані файл проекту та вхідні файли / шляхи для включення.
+</translation>
+    </message>
+    <message>
+        <source>Parenthesis/bracket/brace mismatch between #if and #else branches; using #if branch
+</source>
+        <translation>Круглі/квадратні/фігурні дужки не збігаються між гілками #if та #else, використовую гілку #if
+</translation>
+    </message>
+    <message>
+        <source>Parenthesis/brace mismatch between #if and #else branches; using #if branch
+</source>
+        <translation>Круглі/фігурні дужки не збігаються між гілками #if та #else, використовую гілку #if
+</translation>
+    </message>
+    <message>
+        <source>Unterminated C++ comment
+</source>
+        <translation>Незавершений коментар C++
+</translation>
+    </message>
+    <message>
+        <source>Unterminated C++ string
+</source>
+        <translation>Незавершений рядок C++
+</translation>
+    </message>
+    <message>
+        <source>Excess closing brace in C++ code (or abuse of the C++ preprocessor)
+</source>
+        <translation>Забагато закриваючих фігурних дужок в коді C++ (або неправильне застосування препроцесора C++)
+</translation>
+    </message>
+    <message>
+        <source>Excess closing parenthesis in C++ code (or abuse of the C++ preprocessor)
+</source>
+        <translation>Забагато закриваючих круглих дужок в коді C++ (або неправильне застосування препроцесора C++)
+</translation>
+    </message>
+    <message>
+        <source>Excess closing bracket in C++ code (or abuse of the C++ preprocessor)
+</source>
+        <translation>Забагато закриваючих квадратних дужок в коді C++ (або неправильне застосування препроцесора C++)
+</translation>
+    </message>
+    <message>
+        <source>Cannot open %1: %2</source>
+        <translation>Неможливо відкрити %1: %2</translation>
+    </message>
+    <message>
+        <source>//% cannot be used with tr() / QT_TR_NOOP(). Ignoring
+</source>
+        <translation>//% не може бути використаний разом з tr() / QT_TR_NOOP(). Ігнорую
+</translation>
+    </message>
+    <message>
+        <source>circular inclusion of %1
+</source>
+        <translation>циклічне вкладення %1
+</translation>
+    </message>
+    <message>
+        <source>Cannot open %1: %2
+</source>
+        <translation>Неможливо відкрити %1: %2
+</translation>
+    </message>
+    <message>
+        <source>Qualifying with unknown namespace/class %1::%2
+</source>
+        <translation>Задаю з невідомим простором імен/класом %1::%2
+</translation>
+    </message>
+    <message>
+        <source>tr() cannot be called without context
+</source>
+        <translation>tr() не можна викликати без контексту
+</translation>
+    </message>
+    <message>
+        <source>Class &apos;%1&apos; lacks Q_OBJECT macro
+</source>
+        <translation>У класу &apos;%1&apos; не вистачає макросу Q_OBJECT
+</translation>
+    </message>
+    <message>
+        <source>It is not recommended to call tr() from within a constructor &apos;%1::%2&apos;
+</source>
+        <translation>Не рекомендовано викликати tr() з конструктора &apos;%1::%2&apos;
+</translation>
+    </message>
+    <message>
+        <source>//% cannot be used with translate() / QT_TRANSLATE_NOOP(). Ignoring
+</source>
+        <translation>//% не може бути використаний разом з translate() / QT_TRANSLATE_NOOP(). Ігнорую
+</translation>
+    </message>
+    <message>
+        <source>//= cannot be used with qtTrId() / QT_TRID_NOOP(). Ignoring
+</source>
+        <translation>//= не може бути використаний разом з qtTrId() / QT_TRID_NOOP(). Ігнорую
+</translation>
+    </message>
+    <message>
+        <source>Unexpected character in meta string
+</source>
+        <translation>Неочікуваний символ в мета-рядку
+</translation>
+    </message>
+    <message>
+        <source>Unterminated meta string
+</source>
+        <translation>Незавершений мета-рядок
+</translation>
+    </message>
+    <message>
+        <source>Cannot invoke tr() like this
+</source>
+        <translation>Неможливо викликати tr() подібним чином
+</translation>
+    </message>
+    <message>
+        <source>Discarding unconsumed meta data
+</source>
+        <translation>Відкидаю невжиті мета-дані
+</translation>
+    </message>
+    <message>
+        <source>Unbalanced opening brace in C++ code (or abuse of the C++ preprocessor)
+</source>
+        <translation>Незбалансовані відкриваючі фігурні дужки в коді C++ (або неправильне застосування препроцесора C++)
+</translation>
+    </message>
+    <message>
+        <source>Unbalanced opening parenthesis in C++ code (or abuse of the C++ preprocessor)
+</source>
+        <translation>Незбалансовані відкриваючі круглі дужки в коді C++ (або неправильне застосування препроцесора C++)
+</translation>
+    </message>
+    <message>
+        <source>Unbalanced opening bracket in C++ code (or abuse of the C++ preprocessor)
+</source>
+        <translation>Незбалансовані відкриваючі квадратні дужки в коді C++ (або неправильне застосування препроцесора C++)
+</translation>
+    </message>
+    <message>
+        <source>Unterminated Java comment.
+</source>
+        <translation>Незавершений коментар Java.
+</translation>
+    </message>
+    <message>
+        <source>Invalid Unicode value.
+</source>
+        <translation>Неправильне значення Unicode.
+</translation>
+    </message>
+    <message>
+        <source>Unterminated string.
+</source>
+        <translation>Незавершений рядок.
+</translation>
+    </message>
+    <message>
+        <source>String used in translation can contain only literals concatenated with other literals, not expressions or numbers.
+</source>
+        <translation>Рядки, що використовуються в перекладі, можуть містити лише літерали об&apos;єднані з іншими літералами, а не вирази або числа.
+</translation>
+    </message>
+    <message>
+        <source>&apos;class&apos; must be followed by a class name.
+</source>
+        <translation>Після &apos;class&apos; повинна слідувати назва класу.
+</translation>
+    </message>
+    <message>
+        <source>Excess closing brace.
+</source>
+        <translation>Забагато закриваючих фігурних дужок.</translation>
+    </message>
+    <message>
+        <source>&apos;package&apos; must be followed by package name.
+</source>
+        <translation>Після &apos;package&apos; повинна слідувати назва пакунку.
+</translation>
+    </message>
+    <message>
+        <source>Unbalanced opening brace.
+</source>
+        <translation>Незбалансовані відкриваючі фігурні дужки.
+</translation>
+    </message>
+    <message>
+        <source>Unbalanced opening parenthesis.
+</source>
+        <translation>Незбалансовані відкриваючі круглі дужки.
+</translation>
+    </message>
+    <message numerus="yes">
+        <source>    Found %n source text(s) (%1 new and %2 already existing)
+</source>
+        <translation>
+            <numerusform>    Знайдено %n оригінальний текст (%1 новий та %2 вже існує)
+</numerusform>
+            <numerusform>    Знайдено %n оригінальних тексти (%1 нових та %2 вже існує)
+</numerusform>
+            <numerusform>    Знайдено %n оригінальних текстів (%1 нових та %2 вже існує)
+</numerusform>
+        </translation>
+    </message>
+    <message numerus="yes">
+        <source>    Removed %n obsolete entries
+</source>
+        <translation>
+            <numerusform>    Видалено %n застарілий елемент
+</numerusform>
+            <numerusform>    Видалено %n застарілих елементи
+</numerusform>
+            <numerusform>    Видалено %n застарілих елементів
+</numerusform>
+        </translation>
+    </message>
+    <message numerus="yes">
+        <source>    Kept %n obsolete entries
+</source>
+        <translation>
+            <numerusform>    Залишено %n застарілий елемент
+</numerusform>
+            <numerusform>    Залишено %n застарілих елементи
+</numerusform>
+            <numerusform>    Залишено %n застарілих елементів
+</numerusform>
+        </translation>
+    </message>
+    <message numerus="yes">
+        <source>    Number heuristic provided %n translation(s)
+</source>
+        <translation>
+            <numerusform>Числова евристика надала %n переклад
+</numerusform>
+            <numerusform>Числова евристика надала %n переклади
+</numerusform>
+            <numerusform>Числова евристика надала %n перекладів
+</numerusform>
+        </translation>
+    </message>
+    <message numerus="yes">
+        <source>    Same-text heuristic provided %n translation(s)
+</source>
+        <translation>
+            <numerusform>Евристика &quot;однаковий текст&quot; надала %n переклад
+</numerusform>
+            <numerusform>Евристика &quot;однаковий текст&quot; надала %n переклади
+</numerusform>
+            <numerusform>Евристика &quot;однаковий текст&quot; надала %n перекладів
+</numerusform>
+        </translation>
+    </message>
+    <message numerus="yes">
+        <source>    Similar-text heuristic provided %n translation(s)
+</source>
+        <translation>
+            <numerusform>Евристика &quot;схожий текст&quot; надала %n переклад
+</numerusform>
+            <numerusform>Евристика &quot;схожий текст&quot; надала %n переклади
+</numerusform>
+            <numerusform>Евристика &quot;схожий текст&quot; надала %n перекладів
+</numerusform>
+        </translation>
+    </message>
+    <message>
+        <source>Illegal character</source>
+        <translation>Неприпустимий символ</translation>
+    </message>
+    <message>
+        <source>Unclosed string at end of line</source>
+        <translation>Незакритий рядок в кінці файлу</translation>
+    </message>
+    <message>
+        <source>Illegal escape squence</source>
+        <translation>Неприпустима керуюча послідовність</translation>
+    </message>
+    <message>
+        <source>Illegal unicode escape sequence</source>
+        <translation>Неприпустима керуюча послідовність Unicode</translation>
+    </message>
+    <message>
+        <source>Unclosed comment at end of file</source>
+        <translation>Незакритий коментар в кінці файлу</translation>
+    </message>
+    <message>
+        <source>Illegal syntax for exponential number</source>
+        <translation>Неприпустимий синтаксис для експоненційного числа</translation>
+    </message>
+    <message>
+        <source>Identifier cannot start with numeric literal</source>
+        <translation>Ідентифікатор не може починатись з числового літералу</translation>
+    </message>
+    <message>
+        <source>Unterminated regular expression literal</source>
+        <translation>Незавершений літерал регулярного виразу</translation>
+    </message>
+    <message>
+        <source>//% cannot be used with %1(). Ignoring
+</source>
+        <translation>//% не може бути використаний разом з %1(). Ігнорую
+</translation>
+    </message>
+    <message>
+        <source>%1() requires at least two arguments.
+</source>
+        <translation>%1() вимагає щонайменше двох аргументів.
+</translation>
+    </message>
+    <message>
+        <source>%1(): both arguments must be literal strings.
+</source>
+        <translation>%1(): обидва аргументи повинні бути рядковими літералами.
+</translation>
+    </message>
+    <message>
+        <source>%1() requires at least one argument.
+</source>
+        <translation>%1() вимагає щонайменше одного аргументу.
+</translation>
+    </message>
+    <message>
+        <source>%1(): text to translate must be a literal string.
+</source>
+        <translation>%1(): текст для перекладу повинен бути рядковим літералом.
+</translation>
+    </message>
+    <message>
+        <source>//= cannot be used with %1(). Ignoring
+</source>
+        <translation>//= не може бути використаний разом з %1(). Ігнорую
+</translation>
+    </message>
+    <message>
+        <source>%1(): identifier must be a literal string.
+</source>
+        <translation>%1(): ідентифікатор повинен бути рядковим літералом.
+</translation>
+    </message>
+    <message>
+        <source>Expected </source>
+        <extracomment>Beginning of the string that contains comma-separated list of expected tokens</extracomment>
+        <translation>Очікувалось </translation>
+    </message>
+    <message>
+        <source>XML error: Parse error at line %1, column %2 (%3).</source>
+        <translation>Помилка XML: Помилка розбору в рядку %1, позиція %2 (%3).</translation>
+    </message>
+    <message>
+        <source>Parse error in UI file</source>
+        <translation>Помилка розбору файлу UI</translation>
+    </message>
+</context>
+<context>
+    <name>MainWindow</name>
+    <message>
+        <source>MainWindow</source>
+        <translation>Головне вікно</translation>
+    </message>
+    <message>
+        <source>&amp;Phrases</source>
+        <translation>Фра&amp;зи</translation>
+    </message>
+    <message>
+        <source>&amp;Close Phrase Book</source>
+        <translation>&amp;Закрити глосарій</translation>
+    </message>
+    <message>
+        <source>&amp;Edit Phrase Book</source>
+        <translation>&amp;Редагувати глосарій</translation>
+    </message>
+    <message>
+        <source>&amp;Print Phrase Book</source>
+        <translation>&amp;Друк глосарію</translation>
+    </message>
+    <message>
+        <source>V&amp;alidation</source>
+        <translation>Перев&amp;ірка</translation>
+    </message>
+    <message>
+        <source>&amp;View</source>
+        <translation>&amp;Вид</translation>
+    </message>
+    <message>
+        <source>Vie&amp;ws</source>
+        <translation>&amp;Види</translation>
+    </message>
+    <message>
+        <source>&amp;Toolbars</source>
+        <translation>Панелі &amp;інструментів</translation>
+    </message>
+    <message>
+        <source>&amp;Help</source>
+        <translation>&amp;Довідка</translation>
+    </message>
+    <message>
+        <source>&amp;Translation</source>
+        <translation>Пере&amp;клад</translation>
+    </message>
+    <message>
+        <source>&amp;File</source>
+        <translation>&amp;Файл</translation>
+    </message>
+    <message>
+        <source>Recently Opened &amp;Files</source>
+        <translation>&amp;Нещодавно відкриті файли</translation>
+    </message>
+    <message>
+        <source>&amp;Edit</source>
+        <translation>&amp;Правка</translation>
+    </message>
+    <message>
+        <source>&amp;Open...</source>
+        <translation>&amp;Відкрити...</translation>
+    </message>
+    <message>
+        <source>Open a Qt translation source file (TS file) for editing</source>
+        <translation>Відкрити файл перекладу Qt (файл TS) для редагування</translation>
+    </message>
+    <message>
+        <source>Ctrl+O</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>E&amp;xit</source>
+        <translation>Ви&amp;йти</translation>
+    </message>
+    <message>
+        <source>Close this window and exit.</source>
+        <translation>Закрити вікно та вийти.</translation>
+    </message>
+    <message>
+        <source>Ctrl+Q</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>Save</source>
+        <translation>Зберегти</translation>
+    </message>
+    <message>
+        <source>Save changes made to this Qt translation source file</source>
+        <translation>Зберегти зміни зроблені до цього файлу перекладу Qt</translation>
+    </message>
+    <message>
+        <source>Save &amp;As...</source>
+        <translation>Зберегти &amp;як...</translation>
+    </message>
+    <message>
+        <source>Save As...</source>
+        <translation>Зберегти як...</translation>
+    </message>
+    <message>
+        <source>Save changes made to this Qt translation source file into a new file.</source>
+        <translation>Зберегти зміни зроблені до цього файлу перекладу Qt до нового файлу.</translation>
+    </message>
+    <message>
+        <source>Release</source>
+        <translation>Скомпілювати</translation>
+    </message>
+    <message>
+        <source>Create a Qt message file suitable for released applications from the current message file.</source>
+        <translation>Створити файл повідомлень Qt придатний для використання програмами з поточного файлу повідомлень.</translation>
+    </message>
+    <message>
+        <source>&amp;Print...</source>
+        <translation>&amp;Друк...</translation>
+    </message>
+    <message>
+        <source>Print a list of all the translation units in the current translation source file.</source>
+        <translation>Друкувати список усіх елементів перекладу з поточного файлу перекладу.</translation>
+    </message>
+    <message>
+        <source>Ctrl+P</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>&amp;Undo</source>
+        <translation>&amp;Повернути</translation>
+    </message>
+    <message>
+        <source>Undo the last editing operation performed on the current translation.</source>
+        <translation>Скасувати останню операцію редагування здійснену над поточним перекладом.</translation>
+    </message>
+    <message>
+        <source>Ctrl+Z</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>&amp;Redo</source>
+        <translation>П&amp;овторити</translation>
+    </message>
+    <message>
+        <source>Redo an undone editing operation performed on the translation.</source>
+        <translation>Повторити скасовану операцію редагування здійснену над поточним перекладом.</translation>
+    </message>
+    <message>
+        <source>Ctrl+Y</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>Cu&amp;t</source>
+        <translation>Ви&amp;різати</translation>
+    </message>
+    <message>
+        <source>Copy the selected translation text to the clipboard and deletes it.</source>
+        <translation>Копіювати виділений текст перекладу в буфер обміну та видалити його.</translation>
+    </message>
+    <message>
+        <source>Ctrl+X</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>&amp;Copy</source>
+        <translation>&amp;Копіювати</translation>
+    </message>
+    <message>
+        <source>Copy the selected translation text to the clipboard.</source>
+        <translation>Копіювати виділений текст перекладу до буферу обміну.</translation>
+    </message>
+    <message>
+        <source>Ctrl+C</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>&amp;Paste</source>
+        <translation>&amp;Вставити</translation>
+    </message>
+    <message>
+        <source>Paste the clipboard text into the translation.</source>
+        <translation>Вставити текст з буферу обміну до перекладу.</translation>
+    </message>
+    <message>
+        <source>Ctrl+V</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>Select &amp;All</source>
+        <translation>Виділити в&amp;се</translation>
+    </message>
+    <message>
+        <source>Select the whole translation text.</source>
+        <translation>Виділити все текст перекладу.</translation>
+    </message>
+    <message>
+        <source>Ctrl+A</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>&amp;Find...</source>
+        <translation>&amp;Знайти...</translation>
+    </message>
+    <message>
+        <source>Search for some text in the translation source file.</source>
+        <translation>Шукати деякий текст в файлі перекладу.</translation>
+    </message>
+    <message>
+        <source>Ctrl+F</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>Find &amp;Next</source>
+        <translation>Знайти &amp;наступне</translation>
+    </message>
+    <message>
+        <source>Continue the search where it was left.</source>
+        <translation>Продовжити пошук з місця, де він був зупинений.</translation>
+    </message>
+    <message>
+        <source>F3</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>&amp;Prev Unfinished</source>
+        <translation>&amp;Попередній незавершений</translation>
+    </message>
+    <message>
+        <source>Previous unfinished item</source>
+        <translation>Попередній незавершений елемент</translation>
+    </message>
+    <message>
+        <source>Move to the previous unfinished item.</source>
+        <translation>Перейти до попереднього незавершеного елементу.</translation>
+    </message>
+    <message>
+        <source>Ctrl+K</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>&amp;Next Unfinished</source>
+        <translation>&amp;Наступний незавершений</translation>
+    </message>
+    <message>
+        <source>Next unfinished item</source>
+        <translation>Наступний незавершений елемент</translation>
+    </message>
+    <message>
+        <source>Move to the next unfinished item.</source>
+        <translation>Перейти до наступного незавершеного елементу.</translation>
+    </message>
+    <message>
+        <source>Ctrl+J</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>P&amp;rev</source>
+        <translation>П&amp;опередній</translation>
+    </message>
+    <message>
+        <source>Move to previous item</source>
+        <translation>Перейти до попереднього елементу</translation>
+    </message>
+    <message>
+        <source>Move to the previous item.</source>
+        <translation>Перейти до попереднього елементу.</translation>
+    </message>
+    <message>
+        <source>Ctrl+Shift+K</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>Ne&amp;xt</source>
+        <translation>Н&amp;аступний</translation>
+    </message>
+    <message>
+        <source>Next item</source>
+        <translation>Наступний елемент</translation>
+    </message>
+    <message>
+        <source>Move to the next item.</source>
+        <translation>Перейти до наступного елементу.</translation>
+    </message>
+    <message>
+        <source>Ctrl+Shift+J</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>&amp;Done and Next</source>
+        <translation>&amp;Готово і наступний</translation>
+    </message>
+    <message>
+        <source>Mark item as done and move to the next unfinished item</source>
+        <translation>Помітити елемент як завершений та перейти до наступного незавершеного елементу</translation>
+    </message>
+    <message>
+        <source>Mark this item as done and move to the next unfinished item.</source>
+        <translation>Помітити цей елемент як завершений та перейти до наступного незавершеного елементу.</translation>
+    </message>
+    <message>
+        <source>Copy from source text</source>
+        <translation>Копіювати з оригінального тексту</translation>
+    </message>
+    <message>
+        <source>Copies the source text into the translation field</source>
+        <translation>Копіює оригінальний текст в поле перекладу</translation>
+    </message>
+    <message>
+        <source>Copies the source text into the translation field.</source>
+        <translation>Копіює оригінальний текст в поле перекладу.</translation>
+    </message>
+    <message>
+        <source>Ctrl+B</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>&amp;Accelerators</source>
+        <translation>&amp;Акселератори</translation>
+    </message>
+    <message>
+        <source>Toggle the validity check of accelerators</source>
+        <translation>Перемикання перевірки правильності акселераторів</translation>
+    </message>
+    <message>
+        <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>Перемикання перевірки акселераторів, тобто чи збігається кількість амперсандів в оригінальному та перекладеному тексті. Якщо буде виявлено розбіжність, то у вікні попереджень буде показано повідомлення.</translation>
+    </message>
+    <message>
+        <source>&amp;Ending Punctuation</source>
+        <translation>&amp;Кінцева пунктуація</translation>
+    </message>
+    <message>
+        <source>Toggle the validity check of ending punctuation</source>
+        <translation>Перемикання перевірки правильності кінцевої пунктуації</translation>
+    </message>
+    <message>
+        <source>Toggle the validity check of ending punctuation. If the check fails, a message is shown in the warnings window.</source>
+        <translation>Перемикання перевірки кінцевої пунктуації. Якщо буде виявлено розбіжність, то у вікні попереджень буде показано повідомлення.</translation>
+    </message>
+    <message>
+        <source>&amp;Phrase matches</source>
+        <translation>Збіги &amp;фраз</translation>
+    </message>
+    <message>
+        <source>Toggle checking that phrase suggestions are used</source>
+        <translation>Перемикання перевірки, що пропозиції фраз були застосовані</translation>
+    </message>
+    <message>
+        <source>Toggle checking that phrase suggestions are used. If the check fails, a message is shown in the warnings window.</source>
+        <translation>Перемикання перевірки про використання запропонованих фраз. Якщо буде виявлено розбіжність, то у вікні попереджень буде показано повідомлення.</translation>
+    </message>
+    <message>
+        <source>Place &amp;Marker Matches</source>
+        <translation>Збіги &amp;маркерів положення</translation>
+    </message>
+    <message>
+        <source>Toggle the validity check of place markers</source>
+        <translation>Перемикання перевірки правильності маркерів розташування</translation>
+    </message>
+    <message>
+        <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>Перемикання перевірки правильності маркерів розташування, тобто чи усі %1, %2, ... збігаються в оригінальному та перекладеному тексті. Якщо буде виявлено розбіжність, то у вікні попереджень буде показано повідомлення.</translation>
+    </message>
+    <message>
+        <source>&amp;New Phrase Book...</source>
+        <translation>&amp;Новий глосарій...</translation>
+    </message>
+    <message>
+        <source>Create a new phrase book.</source>
+        <translation>Створити новий глосарій.</translation>
+    </message>
+    <message>
+        <source>Ctrl+N</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>&amp;Open Phrase Book...</source>
+        <translation>&amp;Відкрити глосарій...</translation>
+    </message>
+    <message>
+        <source>Open a phrase book to assist translation.</source>
+        <translation>Відкрити глосарій для допомоги в перекладі.</translation>
+    </message>
+    <message>
+        <source>Ctrl+H</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>&amp;Reset Sorting</source>
+        <translation>С&amp;кинути сортування</translation>
+    </message>
+    <message>
+        <source>Sort the items back in the same order as in the message file.</source>
+        <translation>Сортувати елементи в тому ж порядку, що й в файлі повідомлень.</translation>
+    </message>
+    <message>
+        <source>&amp;Display guesses</source>
+        <translation>&amp;Показувати підказки</translation>
+    </message>
+    <message>
+        <source>Set whether or not to display translation guesses.</source>
+        <translation>Встановлює показувати чи ні підказки перекладу.</translation>
+    </message>
+    <message>
+        <source>&amp;Statistics</source>
+        <translation>&amp;Статистика</translation>
+    </message>
+    <message>
+        <source>Display translation statistics.</source>
+        <translation>Показати статистку перекладу.</translation>
+    </message>
+    <message>
+        <source>&amp;Manual</source>
+        <translation>&amp;Посібник</translation>
+    </message>
+    <message>
+        <source>F1</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>About Qt Linguist</source>
+        <translation>Про Qt Linguist</translation>
+    </message>
+    <message>
+        <source>About Qt</source>
+        <translation>Про Qt</translation>
+    </message>
+    <message>
+        <source>Display information about the Qt toolkit by Nokia.</source>
+        <translation>Показати інформацію про інструментарій Qt від Nokia.</translation>
+    </message>
+    <message>
+        <source>&amp;What&apos;s This?</source>
+        <translation>&amp;Що це?</translation>
+    </message>
+    <message>
+        <source>What&apos;s This?</source>
+        <translation>Що це?</translation>
+    </message>
+    <message>
+        <source>Enter What&apos;s This? mode.</source>
+        <translation>Перехід в режим &quot;Що це?&quot;.</translation>
+    </message>
+    <message>
+        <source>Shift+F1</source>
+        <translation>Shift+F1</translation>
+    </message>
+    <message>
+        <source>&amp;Search And Translate...</source>
+        <translation>Знайти &amp;та перекласти...</translation>
+    </message>
+    <message>
+        <source>Replace the translation on all entries that matches the search source text.</source>
+        <translation>Замінити переклад усіх елементів, що збігаються з оригінальним текстом, що шукається.</translation>
+    </message>
+    <message>
+        <source>&amp;Batch Translation...</source>
+        <translation>Пакетний перекла&amp;д...</translation>
+    </message>
+    <message>
+        <source>Batch translate all entries using the information in the phrase books.</source>
+        <translation>Пакетно перекласти усі елементи використовуючи інформацію з глосаріїв.</translation>
+    </message>
+    <message>
+        <source>Release As...</source>
+        <translation>Скомпілювати як...</translation>
+    </message>
+    <message>
+        <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>Створення файла повідомлень Qt придатного для використання програмами з поточного файлу повідомлень. Ім&apos;я файла буде автоматично визначено з імені файлу TS.</translation>
+    </message>
+    <message>
+        <source>File</source>
+        <translation>Файл</translation>
+    </message>
+    <message>
+        <source>Edit</source>
+        <translation>Правка</translation>
+    </message>
+    <message>
+        <source>Translation</source>
+        <translation>Переклад</translation>
+    </message>
+    <message>
+        <source>Validation</source>
+        <translation>Перевірка</translation>
+    </message>
+    <message>
+        <source>Help</source>
+        <translation>Довідка</translation>
+    </message>
+    <message>
+        <source>Open/Refresh Form &amp;Preview</source>
+        <translation>&amp;Відкрити/оновити попередній перегляд форм</translation>
+    </message>
+    <message>
+        <source>Form Preview Tool</source>
+        <translation>Засіб попереднього перегляду форм</translation>
+    </message>
+    <message>
+        <source>F5</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>Translation File &amp;Settings...</source>
+        <translation>Налаштування &amp;файлу перекладу...</translation>
+    </message>
+    <message>
+        <source>&amp;Add to Phrase Book</source>
+        <translation>Дод&amp;ати до глосарію</translation>
+    </message>
+    <message>
+        <source>Ctrl+T</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>Open Read-O&amp;nly...</source>
+        <translation>Відкрити лише для &amp;читання...</translation>
+    </message>
+    <message>
+        <source>&amp;Save All</source>
+        <translation>&amp;Зберегти усе</translation>
+    </message>
+    <message>
+        <source>Ctrl+S</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>&amp;Release All</source>
+        <translation>&amp;Скомпілювати все</translation>
+    </message>
+    <message>
+        <source>Close</source>
+        <translation>Закрити</translation>
+    </message>
+    <message>
+        <source>&amp;Close All</source>
+        <translation>З&amp;акрити усе</translation>
+    </message>
+    <message>
+        <source>Ctrl+W</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>Length Variants</source>
+        <translation>Варіанти перекладу</translation>
+    </message>
+    <message>
+        <source></source>
+        <comment>This is the application&apos;s main window.</comment>
+        <translatorcomment>Це головне вікно програми.</translatorcomment>
+        <translation></translation>
+    </message>
+    <message>
+        <source>Source text</source>
+        <translation>Оригінальний текст</translation>
+    </message>
+    <message>
+        <source>Index</source>
+        <translation>Індекс</translation>
+    </message>
+    <message>
+        <source>Context</source>
+        <translation>Контекст</translation>
+    </message>
+    <message>
+        <source>Items</source>
+        <translation>Елементи</translation>
+    </message>
+    <message>
+        <source>This panel lists the source contexts.</source>
+        <translation>В цій панелі перераховані оригінальні контексти.</translation>
+    </message>
+    <message>
+        <source>Strings</source>
+        <translation>Рядки</translation>
+    </message>
+    <message>
+        <source>Phrases and guesses</source>
+        <translation>Фрази та підказки</translation>
+    </message>
+    <message>
+        <source>Sources and Forms</source>
+        <translation>Коди та форми</translation>
+    </message>
+    <message>
+        <source>Warnings</source>
+        <translation>Попередження</translation>
+    </message>
+    <message>
+        <source> MOD </source>
+        <comment>status bar: file(s) modified</comment>
+        <translation> ЗМІ </translation>
+    </message>
+    <message>
+        <source>Loading...</source>
+        <translation>Завантажується...</translation>
+    </message>
+    <message>
+        <source>Loading File - Qt Linguist</source>
+        <translation>Завантаження файлу - Qt Linguist</translation>
+    </message>
+    <message>
+        <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>Не схоже, що файл &apos;%1&apos; пов&apos;язаний з жодним з відкритим зараз файлом &apos;%2&apos;.
+
+Закрити спочатку відкриті файли?</translation>
+    </message>
+    <message>
+        <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>Не схоже, що файл &apos;%1&apos; пов&apos;язаний з файлом &apos;%2&apos;, що також завантажується.
+
+Пропустити завантаження першого вказаного файлу?</translation>
+    </message>
+    <message numerus="yes">
+        <source>%n translation unit(s) loaded.</source>
+        <translation>
+            <numerusform>%n одиниця перекладу завантажена.</numerusform>
+            <numerusform>%n одиниці перекладу завантажені.</numerusform>
+            <numerusform>%n одиниць перекладу завантажено.</numerusform>
+        </translation>
+    </message>
+    <message>
+        <source>Related files (%1);;</source>
+        <translation>Пов&apos;язані файли (%1);;</translation>
+    </message>
+    <message>
+        <source>Open Translation Files</source>
+        <translation>Відкрити файли перекладу</translation>
+    </message>
+    <message>
+        <source>File saved.</source>
+        <translation>Файл збережено.</translation>
+    </message>
+    <message>
+        <source>Qt message files for released applications (*.qm)
+All files (*)</source>
+        <translation>Файли повідомлень Qt для готовий програм (*.qm)
+Всі файли (*)</translation>
+    </message>
+    <message>
+        <source>File created.</source>
+        <translation>Файл створено.</translation>
+    </message>
+    <message>
+        <source>Printing...</source>
+        <translation>Друкується...</translation>
+    </message>
+    <message>
+        <source>Context: %1</source>
+        <translation>Контекст: %1</translation>
+    </message>
+    <message>
+        <source>finished</source>
+        <translation>завершено</translation>
+    </message>
+    <message>
+        <source>unresolved</source>
+        <translation>нерозв&apos;язаний</translation>
+    </message>
+    <message>
+        <source>obsolete</source>
+        <translation>застарілий</translation>
+    </message>
+    <message>
+        <source>Printing... (page %1)</source>
+        <translation>Друк... (сторінка %1)</translation>
+    </message>
+    <message>
+        <source>Printing completed</source>
+        <translation>Друк завершено</translation>
+    </message>
+    <message>
+        <source>Printing aborted</source>
+        <translation>Друк перервано</translation>
+    </message>
+    <message>
+        <source>Search wrapped.</source>
+        <translation>Пошук з початку.</translation>
+    </message>
+    <message>
+        <source>Qt Linguist</source>
+        <translation>Qt Linguist</translation>
+    </message>
+    <message>
+        <source>Cannot find the string &apos;%1&apos;.</source>
+        <translation>Неможливо знайти рядок &apos;%1.</translation>
+    </message>
+    <message>
+        <source>Search And Translate in &apos;%1&apos; - Qt Linguist</source>
+        <translation>Пошук та переклад і &apos;%1&apos; - Qt Linguist</translation>
+    </message>
+    <message>
+        <source>Translate - Qt Linguist</source>
+        <translation>Переклад - Qt Linguist</translation>
+    </message>
+    <message numerus="yes">
+        <source>Translated %n entry(s)</source>
+        <translation>
+            <numerusform>Перекладено %n елемент</numerusform>
+            <numerusform>Перекладено %n елементи</numerusform>
+            <numerusform>Перекладено %n елементів</numerusform>
+        </translation>
+    </message>
+    <message>
+        <source>No more occurrences of &apos;%1&apos;. Start over?</source>
+        <translation>Більше збігів &apos;%1&apos; немає. Почати спочатку?</translation>
+    </message>
+    <message>
+        <source>Create New Phrase Book</source>
+        <translation>Створити новий глосарій</translation>
+    </message>
+    <message>
+        <source>Qt phrase books (*.qph)
+All files (*)</source>
+        <translation>Глосарії Q (*.qph)
+Всі файли (*)</translation>
+    </message>
+    <message>
+        <source>Phrase book created.</source>
+        <translation>Глосарій створено.</translation>
+    </message>
+    <message>
+        <source>Open Phrase Book</source>
+        <translation>Відкрити глосарій</translation>
+    </message>
+    <message>
+        <source>Qt phrase books (*.qph);;All files (*)</source>
+        <translation>Глосарії Q (*.qph);;Всі файли (*)</translation>
+    </message>
+    <message numerus="yes">
+        <source>%n phrase(s) loaded.</source>
+        <translation>
+            <numerusform>%n фразу завантажено.</numerusform>
+            <numerusform>%n фрази завантажено.</numerusform>
+            <numerusform>%n фраз завантажено.</numerusform>
+        </translation>
+    </message>
+    <message>
+        <source>Add to phrase book</source>
+        <translation>Додати до глосарію</translation>
+    </message>
+    <message>
+        <source>No appropriate phrasebook found.</source>
+        <translation>Не знайдено відповідного глосарію.</translation>
+    </message>
+    <message>
+        <source>Adding entry to phrasebook %1</source>
+        <translation>Додавання елементу до глосарію %1</translation>
+    </message>
+    <message>
+        <source>Select phrase book to add to</source>
+        <translation>Оберіть глосарій, в який бажаєте додати</translation>
+    </message>
+    <message>
+        <source>Unable to launch Qt Assistant (%1)</source>
+        <translation>Неможливо запустити Qt Assistant (%1)</translation>
+    </message>
+    <message>
+        <source>Version %1</source>
+        <translation>Версія %1</translation>
+    </message>
+    <message>
+        <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 - це засіб для додавання перекладів до програм на Qt.&lt;/p&gt;&lt;p&gt;Copyright (C) 2010 Корпорація Nokia та/або її дочірні компанії.</translation>
+    </message>
+    <message>
+        <source>Do you want to save the modified files?</source>
+        <translation>Бажаєте зберегти модифіковані файли?</translation>
+    </message>
+    <message>
+        <source>Do you want to save &apos;%1&apos;?</source>
+        <translation>Бажаєте зберегти &apos;%1&apos;?</translation>
+    </message>
+    <message>
+        <source>Qt Linguist[*]</source>
+        <translation>Qt Linguist[*]</translation>
+    </message>
+    <message>
+        <source>%1[*] - Qt Linguist</source>
+        <translation>%1[*] - Qt Linguist</translation>
+    </message>
+    <message>
+        <source>No untranslated translation units left.</source>
+        <translation>Неперекладених одиниць не залишилось.</translation>
+    </message>
+    <message>
+        <source>&amp;Window</source>
+        <translation>Вікн&amp;о</translation>
+    </message>
+    <message>
+        <source>Minimize</source>
+        <translation>Мінімізувати</translation>
+    </message>
+    <message>
+        <source>Ctrl+M</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>Display the manual for %1.</source>
+        <translation>Показати посібник для %1.</translation>
+    </message>
+    <message>
+        <source>Display information about %1.</source>
+        <translation>Показати інформацію про %1.</translation>
+    </message>
+    <message>
+        <source>&amp;Save &apos;%1&apos;</source>
+        <translation>&amp;Зберегти &apos;%1&apos;</translation>
+    </message>
+    <message>
+        <source>Save &apos;%1&apos; &amp;As...</source>
+        <translation>Зберегти &apos;%1&apos; &amp;як...</translation>
+    </message>
+    <message>
+        <source>Release &apos;%1&apos;</source>
+        <translation>Скомпілювати &apos;%1&apos;</translation>
+    </message>
+    <message>
+        <source>Release &apos;%1&apos; As...</source>
+        <translation>Скомпілювати &apos;%1&apos; як...</translation>
+    </message>
+    <message>
+        <source>&amp;Close &apos;%1&apos;</source>
+        <translation>З&amp;акрити &apos;%1&apos;</translation>
+    </message>
+    <message>
+        <source>&amp;Save</source>
+        <translation>&amp;Зберегти</translation>
+    </message>
+    <message>
+        <source>&amp;Close</source>
+        <translation>З&amp;акрити</translation>
+    </message>
+    <message>
+        <source>Save All</source>
+        <translation>Зберегти усе</translation>
+    </message>
+    <message>
+        <source>Close All</source>
+        <translation>Закрити усе</translation>
+    </message>
+    <message>
+        <source>&amp;Release</source>
+        <translation>&amp;Скомпілювати</translation>
+    </message>
+    <message>
+        <source>Translation File &amp;Settings for &apos;%1&apos;...</source>
+        <translation>Налаштування &amp;файлу перекладу для &apos;%1&apos;...</translation>
+    </message>
+    <message>
+        <source>&amp;Batch Translation of &apos;%1&apos;...</source>
+        <translation>Пакетний перекла&amp;д &apos;%1&apos;...</translation>
+    </message>
+    <message>
+        <source>Search And &amp;Translate in &apos;%1&apos;...</source>
+        <translation>Знайти &amp;та переклад &apos;%1&apos;...</translation>
+    </message>
+    <message>
+        <source>Search And &amp;Translate...</source>
+        <translation>Знайти &amp;та перекласти...</translation>
+    </message>
+    <message>
+        <source>Cannot read from phrase book &apos;%1&apos;.</source>
+        <translation>Неможливо прочитати з глосарію &apos;%1&apos;.</translation>
+    </message>
+    <message>
+        <source>Close this phrase book.</source>
+        <translation>Закрити цей глосарій.</translation>
+    </message>
+    <message>
+        <source>Enables you to add, modify, or delete entries in this phrase book.</source>
+        <translation>Дозволяє вам додавати, модифікувати та видаляти елементи глосарію.</translation>
+    </message>
+    <message>
+        <source>Print the entries in this phrase book.</source>
+        <translation>Друку елементів цього глосарію.</translation>
+    </message>
+    <message>
+        <source>Cannot create phrase book &apos;%1&apos;.</source>
+        <translation>Неможливо створити глосарій &apos;%1&apos;.</translation>
+    </message>
+    <message>
+        <source>Do you want to save phrase book &apos;%1&apos;?</source>
+        <translation>Бажаєте зберегти глосарій &apos;%1&apos;?</translation>
+    </message>
+    <message>
+        <source>All</source>
+        <translation>Усе</translation>
+    </message>
+</context>
+<context>
+    <name>MessageEditor</name>
+    <message>
+        <source></source>
+        <comment>This is the right panel of the main window.</comment>
+        <translatorcomment>Це права панель основного вікна.</translatorcomment>
+        <translation></translation>
+    </message>
+    <message>
+        <source>Russian</source>
+        <translation>Російська</translation>
+    </message>
+    <message>
+        <source>German</source>
+        <translation>Німецька</translation>
+    </message>
+    <message>
+        <source>Japanese</source>
+        <translation>Японська</translation>
+    </message>
+    <message>
+        <source>French</source>
+        <translation>Французька</translation>
+    </message>
+    <message>
+        <source>Polish</source>
+        <translation>Польська</translation>
+    </message>
+    <message>
+        <source>Chinese</source>
+        <translation>Китайська</translation>
+    </message>
+    <message>
+        <source>This whole panel allows you to view and edit the translation of some source text.</source>
+        <translation>Ця панель дозволяє вам переглядати та редагувати переклад деякого оригінального тексту.</translation>
+    </message>
+    <message>
+        <source>Source text</source>
+        <translation>Оригінальний текст</translation>
+    </message>
+    <message>
+        <source>This area shows the source text.</source>
+        <translation>В цій області відображається оригінальний текст.</translation>
+    </message>
+    <message>
+        <source>Source text (Plural)</source>
+        <translation>Оригінальний текст (множина)</translation>
+    </message>
+    <message>
+        <source>This area shows the plural form of the source text.</source>
+        <translation>В цій області відображається множина оригінального тексту.</translation>
+    </message>
+    <message>
+        <source>Developer comments</source>
+        <translation>Коментарі розробника</translation>
+    </message>
+    <message>
+        <source>This area shows a comment that may guide you, and the context in which the text occurs.</source>
+        <translation>В цій області відображається коментар, який може допомогти вам та контекст, в якому зустрічається текст.</translation>
+    </message>
+    <message>
+        <source>Here you can enter comments for your own use. They have no effect on the translated applications.</source>
+        <translation>Тут ви можете вводити коментарі для власного вжитку. Вони не впливають на перекладені програми.</translation>
+    </message>
+    <message>
+        <source>%1 translation (%2)</source>
+        <translation>%1 переклад (%2)</translation>
+    </message>
+    <message>
+        <source>This is where you can enter or modify the translation of the above source text.</source>
+        <translation>Тут ви можете чи змінювати переклад оригінального тексту, наведеного вище.</translation>
+    </message>
+    <message>
+        <source>%1 translation</source>
+        <translation>%1 переклад</translation>
+    </message>
+    <message>
+        <source>%1 translator comments</source>
+        <translation>%1 коментар перекладача</translation>
+    </message>
+    <message>
+        <source>&apos;%1&apos;
+Line: %2</source>
+        <translation>&apos;%1&apos;
+Рядок: %2</translation>
+    </message>
+</context>
+<context>
+    <name>MessageModel</name>
+    <message>
+        <source>Completion status for %1</source>
+        <translation>Статус завершеності для %1</translation>
+    </message>
+    <message>
+        <source>&lt;file header&gt;</source>
+        <translation>&lt;заголовок файлу&gt;</translation>
+    </message>
+    <message>
+        <source>&lt;context comment&gt;</source>
+        <translation>&lt;контекстний коментар&gt;</translation>
+    </message>
+    <message>
+        <source>&lt;unnamed context&gt;</source>
+        <translation>&lt;контекст без назви&gt;</translation>
+    </message>
+</context>
+<context>
+    <name>PhraseBook</name>
+    <message>
+        <source>Parse error at line %1, column %2 (%3).</source>
+        <translation>Помилка розбору в рядку %1, позиція %2 (%3).</translation>
+    </message>
+</context>
+<context>
+    <name>PhraseBookBox</name>
+    <message>
+        <source>Edit Phrase Book</source>
+        <translation>Редагування глосарію</translation>
+    </message>
+    <message>
+        <source>This window allows you to add, modify, or delete entries in a phrase book.</source>
+        <translation>Це вікно дозволяє вам додавати, модифікувати та видаляти елементи глосарію.</translation>
+    </message>
+    <message>
+        <source>&amp;Translation:</source>
+        <translation>&amp;Переклад:</translation>
+    </message>
+    <message>
+        <source>This is the phrase in the target language corresponding to the source phrase.</source>
+        <translation>Це фраза на мові перекладу, що відповідає оригінальній фразі.</translation>
+    </message>
+    <message>
+        <source>S&amp;ource phrase:</source>
+        <translation>&amp;Оригінальна фраза:</translation>
+    </message>
+    <message>
+        <source>This is a definition for the source phrase.</source>
+        <translation>Це визначення оригінальної фрази.</translation>
+    </message>
+    <message>
+        <source>This is the phrase in the source language.</source>
+        <translation>Це фраза мовою оригіналу.</translation>
+    </message>
+    <message>
+        <source>&amp;Definition:</source>
+        <translation>&amp;Визначення:</translation>
+    </message>
+    <message>
+        <source>Click here to add the phrase to the phrase book.</source>
+        <translation>Клацніть тут, щоб додати фразу до глосарію.</translation>
+    </message>
+    <message>
+        <source>&amp;New Entry</source>
+        <translation>&amp;Новий запис</translation>
+    </message>
+    <message>
+        <source>Click here to remove the entry from the phrase book.</source>
+        <translation>Клацніть тут, щоб видалити фразу з глосарію.</translation>
+    </message>
+    <message>
+        <source>&amp;Remove Entry</source>
+        <translation>Ви&amp;далити запис</translation>
+    </message>
+    <message>
+        <source>Settin&amp;gs...</source>
+        <translation>Нала&amp;штування...</translation>
+    </message>
+    <message>
+        <source>Click here to save the changes made.</source>
+        <translation>Клацніть тут, щоб зберегти зроблені зміни.</translation>
+    </message>
+    <message>
+        <source>&amp;Save</source>
+        <translation>&amp;Зберегти</translation>
+    </message>
+    <message>
+        <source>Click here to close this window.</source>
+        <translation>Клацніть тут щоб закрити вікно.</translation>
+    </message>
+    <message>
+        <source>Close</source>
+        <translation>Закрити</translation>
+    </message>
+    <message>
+        <source></source>
+        <comment>Go to Phrase &gt; Edit Phrase Book... The dialog that pops up is a PhraseBookBox.</comment>
+        <translatorcomment>Йдіть в Фрази &gt; Редагувати глосарій... З&apos;явиться діалог PhraseBookBox.</translatorcomment>
+        <translation></translation>
+    </message>
+    <message>
+        <source>(New Entry)</source>
+        <translation>(Новий запис)</translation>
+    </message>
+    <message>
+        <source>%1[*] - Qt Linguist</source>
+        <translation>%1[*] - Qt Linguist</translation>
+    </message>
+    <message>
+        <source>Qt Linguist</source>
+        <translation>Qt Linguist</translation>
+    </message>
+    <message>
+        <source>Cannot save phrase book &apos;%1&apos;.</source>
+        <translation>Неможливо зберегти глосарій &apos;%1&apos;.</translation>
+    </message>
+</context>
+<context>
+    <name>PhraseModel</name>
+    <message>
+        <source>Source phrase</source>
+        <translation>Оригінальна фраза</translation>
+    </message>
+    <message>
+        <source>Translation</source>
+        <translation>Переклад</translation>
+    </message>
+    <message>
+        <source>Definition</source>
+        <translation>Визначення</translation>
+    </message>
+</context>
+<context>
+    <name>PhraseView</name>
+    <message>
+        <source>Insert</source>
+        <translation>Вставити</translation>
+    </message>
+    <message>
+        <source>Edit</source>
+        <translation>Редагувати</translation>
+    </message>
+    <message>
+        <source>Guess (%1)</source>
+        <translation>Підказка (%1)</translation>
+    </message>
+    <message>
+        <source>Guess</source>
+        <translation>Підказка</translation>
+    </message>
+</context>
+<context>
+    <name>QObject</name>
+    <message>
+        <source>Translation files (%1);;</source>
+        <translation>Файли перекладу (%1);;</translation>
+    </message>
+    <message>
+        <source>All files (*)</source>
+        <translation>Всі файли (*)</translation>
+    </message>
+    <message>
+        <source>Qt Linguist</source>
+        <translation>Qt Linguist</translation>
+    </message>
+    <message>
+        <source>GNU Gettext localization files</source>
+        <translation>Файли локалізації GNU Gettext</translation>
+    </message>
+    <message>
+        <source>GNU Gettext localization template files</source>
+        <translation>Файли шаблонів локалізації GNU Gettext</translation>
+    </message>
+    <message>
+        <source>Compiled Qt translations</source>
+        <translation>Скомпільовані переклади Qt</translation>
+    </message>
+    <message>
+        <source>Qt Linguist &apos;Phrase Book&apos;</source>
+        <translation>&apos;Глосарій&apos; Qt Linguist</translation>
+    </message>
+    <message>
+        <source>Qt translation sources (format 1.1)</source>
+        <translation>Файли перекладу Qt (формат 1.1)</translation>
+    </message>
+    <message>
+        <source>Qt translation sources (format 2.0)</source>
+        <translation>Файли перекладу Qt (формат 2.0)</translation>
+    </message>
+    <message>
+        <source>Qt translation sources (latest format)</source>
+        <translation>Файли перекладу Qt (останній формат)</translation>
+    </message>
+    <message>
+        <source>XLIFF localization files</source>
+        <translation>Файли локалізації XLIFF</translation>
+    </message>
+    <message>
+        <source>lupdate version %1
+</source>
+        <translation>lupdate версії %1
+</translation>
+    </message>
+</context>
+<context>
+    <name>SourceCodeView</name>
+    <message>
+        <source>&lt;i&gt;Source code not available&lt;/i&gt;</source>
+        <translation>&lt;i&gt;Код недоступний&lt;/i&gt;</translation>
+    </message>
+    <message>
+        <source>&lt;i&gt;File %1 not available&lt;/i&gt;</source>
+        <translation>&lt;i&gt;Файл %1 не доступний&lt;/i&gt;</translation>
+    </message>
+    <message>
+        <source>&lt;i&gt;File %1 not readable&lt;/i&gt;</source>
+        <translation>&lt;i&gt;Неможливо прочитати файл %1&lt;/i&gt;</translation>
+    </message>
+</context>
+<context>
+    <name>Statistics</name>
+    <message>
+        <source>Statistics</source>
+        <translation>Статистика</translation>
+    </message>
+    <message>
+        <source>Close</source>
+        <translation>Закрити</translation>
+    </message>
+    <message>
+        <source>Translation</source>
+        <translation>Переклад</translation>
+    </message>
+    <message>
+        <source>Source</source>
+        <translation>Оригінал</translation>
+    </message>
+    <message>
+        <source>0</source>
+        <translation>0</translation>
+    </message>
+    <message>
+        <source>Words:</source>
+        <translation>Слів:</translation>
+    </message>
+    <message>
+        <source>Characters:</source>
+        <translation>Символів:</translation>
+    </message>
+    <message>
+        <source>Characters (with spaces):</source>
+        <translation>Символів (з пропусками):</translation>
+    </message>
+</context>
+<context>
+    <name>TranslateDialog</name>
+    <message>
+        <source>This window allows you to search for some text in the translation source file.</source>
+        <translation>Це вікно дозволяє вам шукати текст в файлі перекладу.</translation>
+    </message>
+    <message>
+        <source>Type in the text to search for.</source>
+        <translation>Введіть текст для пошуку.</translation>
+    </message>
+    <message>
+        <source>Find &amp;source text:</source>
+        <translation>&amp;Знайти оригінальний текст:</translation>
+    </message>
+    <message>
+        <source>&amp;Translate to:</source>
+        <translation>&amp;Перекласти як:</translation>
+    </message>
+    <message>
+        <source>Search options</source>
+        <translation>Опції пошуку</translation>
+    </message>
+    <message>
+        <source>Texts such as &apos;TeX&apos; and &apos;tex&apos; are considered as different when checked.</source>
+        <translation>Якщо відмічено, то рядки &apos;приклад&apos; та &apos;прИкЛад&apos; будуть вважатись різними.</translation>
+    </message>
+    <message>
+        <source>Match &amp;case</source>
+        <translation>Враховувати &amp;регістр</translation>
+    </message>
+    <message>
+        <source>Mark new translation as &amp;finished</source>
+        <translation>Позначати нові переклади &amp;як завершені</translation>
+    </message>
+    <message>
+        <source>Click here to find the next occurrence of the text you typed in.</source>
+        <translation>Клацніть тут, щоб знайти наступний збіг для введеного вами тексту.</translation>
+    </message>
+    <message>
+        <source>Find Next</source>
+        <translation>Знайти наступний</translation>
+    </message>
+    <message>
+        <source>Translate</source>
+        <translation>Перекласти</translation>
+    </message>
+    <message>
+        <source>Translate All</source>
+        <translation>Перекласти усе</translation>
+    </message>
+    <message>
+        <source>Click here to close this window.</source>
+        <translation>Клацніть тут щоб закрити вікно.</translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation>Скасувати</translation>
+    </message>
+</context>
+<context>
+    <name>TranslationSettingsDialog</name>
+    <message>
+        <source>Source language</source>
+        <translation>Мова оригіналу</translation>
+    </message>
+    <message>
+        <source>Language</source>
+        <translation>Мова</translation>
+    </message>
+    <message>
+        <source>Country/Region</source>
+        <translation>Країна/регіон</translation>
+    </message>
+    <message>
+        <source>Target language</source>
+        <translation>Мова перекладу</translation>
+    </message>
+    <message>
+        <source>Settings for &apos;%1&apos; - Qt Linguist</source>
+        <translation>Налаштування для &apos;%1&apos; - Qt Linguist</translation>
+    </message>
+    <message>
+        <source>Any Country</source>
+        <translation>Будь-яка країна</translation>
+    </message>
+</context>
+</TS>
--- a/translations/qt_de.ts	Fri Sep 17 08:34:18 2010 +0300
+++ b/translations/qt_de.ts	Mon Oct 04 01:19:32 2010 +0300
@@ -4,7 +4,6 @@
 <context>
     <name>CloseButton</name>
     <message>
-        <location filename="../src/gui/widgets/qtabbar.cpp" line="+2313"/>
         <source>Close Tab</source>
         <translation>Schließen</translation>
     </message>
@@ -12,12 +11,10 @@
 <context>
     <name>FakeReply</name>
     <message>
-        <location filename="../src/3rdparty/webkit/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp" line="+2278"/>
         <source>Fake error !</source>
         <translation>Fake error !</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Invalid URL</source>
         <translation>Ungültige URL</translation>
     </message>
@@ -25,37 +22,30 @@
 <context>
     <name>MAC_APPLICATION_MENU</name>
     <message>
-        <location filename="../src/gui/kernel/qapplication.cpp" line="+2348"/>
         <source>Services</source>
         <translation>Dienste</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Hide %1</source>
         <translation>%1 ausblenden</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Hide Others</source>
         <translation>Andere ausblenden</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Show All</source>
         <translation>Alle anzeigen</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Preferences...</source>
         <translation>Einstellungen...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Quit %1</source>
         <translation>%1 beenden</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>About %1</source>
         <translation>Über %1</translation>
     </message>
@@ -63,32 +53,26 @@
 <context>
     <name>Phonon::</name>
     <message>
-        <location filename="../src/3rdparty/phonon/phonon/phononnamespace.cpp" line="+55"/>
         <source>Notifications</source>
         <translation>Benachrichtigungen</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Music</source>
         <translation>Musik</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Video</source>
         <translation>Video</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Communication</source>
         <translation>Kommunikation</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Games</source>
         <translation>Spiele</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Accessibility</source>
         <translation>Eingabehilfen</translation>
     </message>
@@ -96,24 +80,18 @@
 <context>
     <name>Phonon::AudioOutput</name>
     <message>
-        <location filename="../src/3rdparty/phonon/phonon/audiooutput.cpp" line="+444"/>
-        <location line="+34"/>
         <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;Das Audiogerät &lt;b&gt;%1&lt;/b&gt; funktioniert nicht.&lt;br/&gt;Es wird stattdessen &lt;b&gt;%2&lt;/b&gt; verwendet.&lt;/html&gt;</translation>
     </message>
     <message>
-        <location line="-21"/>
         <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;Das Audiogerät &lt;b&gt;%1&lt;/b&gt; wurde aktiviert,&lt;br/&gt;da es gerade verfügbar und höher priorisiert ist.&lt;/html&gt;</translation>
     </message>
     <message>
-        <location line="+3"/>
-        <location line="+14"/>
         <source>Revert back to device &apos;%1&apos;</source>
         <translation>Zurückschalten zum Gerät &apos;%1&apos;</translation>
     </message>
     <message>
-        <location line="-3"/>
         <source>&lt;html&gt;Switching to the audio playback device &lt;b&gt;%1&lt;/b&gt;&lt;br/&gt;which has higher preference or is specifically configured for this stream.&lt;/html&gt;</source>
         <translation>&lt;html&gt;Es wird zum Audiogerät &lt;b&gt;%1&lt;/b&gt; geschaltet, &lt;br/&gt;da es höher priorisiert ist oder spezifisch für diesen Stream konfiguriert wurde.&lt;/html&gt;</translation>
     </message>
@@ -121,14 +99,12 @@
 <context>
     <name>Phonon::Gstreamer::Backend</name>
     <message>
-        <location filename="../src/3rdparty/phonon/gstreamer/backend.cpp" line="+188"/>
         <source>Warning: You do not seem to have the package gstreamer0.10-plugins-good installed.
           Some video features have been disabled.</source>
         <translation>Achtung: Das Paket gstreamer0.10-plugins-good ist nicht installiert.
 Einige Video-Funktionen stehen nicht zur Verfügung.</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>Achtung: Die grundlegenden GStreamer-Plugins sind nicht installiert.
@@ -138,7 +114,6 @@
 <context>
     <name>Phonon::Gstreamer::MediaObject</name>
     <message>
-        <location filename="../src/3rdparty/phonon/gstreamer/mediaobject.cpp" line="+93"/>
         <source>Cannot start playback. 
 
 Check your GStreamer installation and make sure you 
@@ -148,49 +123,34 @@
 Bitte überprüfen Sie Ihre GStreamer-Installation und stellen Sie sicher, dass das Paket libgstreamer-plugins-base installiert ist.</translation>
     </message>
     <message>
-        <location line="+129"/>
         <source>Missing codec helper script assistant.</source>
         <translation>Der Skript-Hilfsassistent des Codecs fehlt.</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Plugin codec installation failed for codec: %0</source>
         <translation>Die Installation des Codec-Plugins schlug fehl für: %0</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>A required codec is missing. You need to install the following codec(s) to play this content: %0</source>
         <translation>Es sind nicht alle erforderlichen Codecs installiert. Um diesen Inhalt abzuspielen, muss der folgende Codec installiert werden: %0</translation>
     </message>
     <message>
-        <location line="+730"/>
-        <location line="+6"/>
-        <location line="+13"/>
-        <location line="+24"/>
-        <location line="+6"/>
-        <location line="+18"/>
-        <location line="+434"/>
-        <location line="+24"/>
         <source>Could not open media source.</source>
         <translation>Die Medienquelle konnte nicht geöffnet werden.</translation>
     </message>
     <message>
-        <location line="-514"/>
         <source>Invalid source type.</source>
         <translation>Ungültiger Typ der Medienquelle.</translation>
     </message>
     <message>
-        <location line="+488"/>
         <source>Could not locate media source.</source>
         <translation>Die Medienquelle konnte nicht gefunden werden.</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>Could not open audio device. The device is already in use.</source>
         <translation>Das Audiogerät konnte nicht geöffnet werden, da es bereits in Benutzung ist.</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>Could not decode media source.</source>
         <translation>Die Medienquelle konnte nicht gefunden werden.</translation>
     </message>
@@ -198,162 +158,130 @@
 <context>
     <name>Phonon::MMF</name>
     <message>
-        <location filename="../src/3rdparty/phonon/mmf/audiooutput.cpp" line="+103"/>
         <source>Audio Output</source>
         <translation>Audio-Ausgabe</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>The audio output device</source>
         <translation>Audio-Ausgabegerät</translation>
     </message>
     <message>
-        <location filename="../src/3rdparty/phonon/mmf/utils.cpp" line="+89"/>
         <source>No error</source>
         <translation>Kein Fehler</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Not found</source>
         <translation>Nicht gefunden</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Out of memory</source>
         <translation>Es ist kein Speicher mehr verfügbar</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Not supported</source>
         <translation>Nicht unterstützt</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Overflow</source>
         <translation>Überlauf</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Underflow</source>
         <translation>Unterlauf</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Already exists</source>
         <translation>Existiert bereits</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Path not found</source>
         <translation>Pfad konnte nicht gefunden werden</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>In use</source>
         <translation>Bereits in Verwendung</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Not ready</source>
         <translation>Nicht bereit</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Access denied</source>
         <translation>Zugriff verweigert</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Could not connect</source>
         <translation>Es konnte keine Verbindung hergestellt werden</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Disconnected</source>
         <translation>Getrennt</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Permission denied</source>
         <translation>Zugriff verweigert</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Insufficient bandwidth</source>
         <translation>Unzureichende Bandweite</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Network unavailable</source>
         <translation>Netzwerk nicht verfügbar</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Network communication error</source>
         <translation>Fehler bei der Kommunikation über das Netzwerk</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Streaming not supported</source>
         <translation>Streaming nicht unterstützt</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Server alert</source>
         <translation>Server alert</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Invalid protocol</source>
         <translation>Ungültiges Protokoll</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Invalid URL</source>
         <translation>Ungültige URL</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Multicast error</source>
         <translation>Multicast-Fehler</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Proxy server error</source>
         <translation>Fehler bei Proxy-Server-Kommunikation</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Proxy server not supported</source>
         <translation>Proxy-Server nicht unterstützt</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Audio output error</source>
         <translation>Fehler bei Audio-Ausgabe</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Video output error</source>
         <translation>Fehler bei Video-Ausgabe</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Decoder error</source>
         <translation>Fehler im Decoder</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Audio or video components could not be played</source>
         <translation>Audio- oder Videokomponenten konnten nicht abgespielt werden</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>DRM error</source>
         <translation>DRM-Fehler</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Unknown error (%1)</source>
         <translation>Unbekannter Fehler (%1)</translation>
     </message>
@@ -361,33 +289,34 @@
 <context>
     <name>Phonon::MMF::AbstractMediaPlayer</name>
     <message>
-        <location filename="../src/3rdparty/phonon/mmf/abstractmediaplayer.cpp" line="+73"/>
         <source>Not ready to play</source>
         <translation>Das Abspielen ist im Grundzustand nicht möglich</translation>
     </message>
     <message>
-        <location line="+161"/>
-        <location line="+10"/>
         <source>Error opening file</source>
         <translation>Die Datei konnte nicht geöffnet werden</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Error opening URL</source>
         <translation>Der URL konnte nicht geöffnet werden</translation>
     </message>
     <message>
-        <location line="+83"/>
+        <source>Error opening resource</source>
+        <translation>Die Ressource konnte nicht geöffnet werden</translation>
+    </message>
+    <message>
+        <source>Error opening source: resource not opened</source>
+        <translation>Die Quelle konnte nicht geöffnet werden: Ressource nicht geöffnet</translation>
+    </message>
+    <message>
         <source>Setting volume failed</source>
         <translation>Die Lautstärke konnte nicht eingestellt werden</translation>
     </message>
     <message>
-        <location line="+45"/>
         <source>Loading clip failed</source>
         <translation>Das Laden des Clips schlug fehl</translation>
     </message>
     <message>
-        <location line="+24"/>
         <source>Playback complete</source>
         <translation>Abspielen beendet</translation>
     </message>
@@ -395,22 +324,18 @@
 <context>
     <name>Phonon::MMF::AbstractVideoPlayer</name>
     <message>
-        <location filename="../src/3rdparty/phonon/mmf/abstractvideoplayer.cpp" line="+108"/>
         <source>Pause failed</source>
         <translation>Fehler bei Pause-Funktion</translation>
     </message>
     <message>
-        <location line="+16"/>
         <source>Seek failed</source>
         <translation>Suchoperation fehlgeschlagen</translation>
     </message>
     <message>
-        <location line="+54"/>
         <source>Getting position failed</source>
         <translation>Die Position konnte nicht bestimmt werden</translation>
     </message>
     <message>
-        <location line="+66"/>
         <source>Opening clip failed</source>
         <translation>Der Clip konnte nicht geöffnet werden</translation>
     </message>
@@ -418,7 +343,6 @@
 <context>
     <name>Phonon::MMF::AudioEqualizer</name>
     <message>
-        <location filename="../src/3rdparty/phonon/mmf/audioequalizer.cpp" line="+92"/>
         <source>%1 Hz</source>
         <translation>%1 Hz</translation>
     </message>
@@ -426,7 +350,6 @@
 <context>
     <name>Phonon::MMF::AudioPlayer</name>
     <message>
-        <location filename="../src/3rdparty/phonon/mmf/audioplayer.cpp" line="+173"/>
         <source>Getting position failed</source>
         <translation>Die Position konnte nicht bestimmt werden</translation>
     </message>
@@ -434,11 +357,6 @@
 <context>
     <name>Phonon::MMF::DsaVideoPlayer</name>
     <message>
-        <location filename="../src/3rdparty/phonon/mmf/videoplayer_dsa.cpp" line="+238"/>
-        <location line="+15"/>
-        <location line="+8"/>
-        <location line="+22"/>
-        <location line="+22"/>
         <source>Video display error</source>
         <translation>Fehler bei der Video-Anzeige</translation>
     </message>
@@ -446,7 +364,6 @@
 <context>
     <name>Phonon::MMF::EffectFactory</name>
     <message>
-        <location filename="../src/3rdparty/phonon/mmf/effectfactory.cpp" line="+181"/>
         <source>Enabled</source>
         <translation>Aktiviert</translation>
     </message>
@@ -454,61 +371,51 @@
 <context>
     <name>Phonon::MMF::EnvironmentalReverb</name>
     <message>
-        <location filename="../src/3rdparty/phonon/mmf/environmentalreverb.cpp" line="+146"/>
         <source>Decay HF ratio (%)</source>
         <extracomment>DecayHFRatio: Ratio of high-frequency decay time to the value specified by DecayTime.</extracomment>
         <translation>Hochfrequenz-Abklingverhältnis (%)</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Decay time (ms)</source>
         <extracomment>DecayTime: Time over which reverberation is diminished.</extracomment>
         <translation>Abklingzeit (ms)</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Density (%)</source>
         <extracomment>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.</extracomment>
         <translation>Dichte (%)</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Diffusion (%)</source>
         <extracomment>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.</extracomment>
         <translation>Diffusion (%)</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Reflections delay (ms)</source>
         <extracomment>ReflectionsDelay: Amount of delay between the arrival the direct path from the source and the arrival of the first reflection.</extracomment>
         <translation>Verzögerung des Echos (ms)</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Reflections level (mB)</source>
         <extracomment>ReflectionsLevel: Amplitude of reflections. This value is corrected by the RoomLevel to give the final reflection amplitude.</extracomment>
         <translation>Stärke des Echos (mB)</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Reverb delay (ms)</source>
         <extracomment>ReverbDelay: Amount of time between arrival of the first reflection and start of the late reverberation.</extracomment>
         <translation>Verzögerung des Nachhalls (ms)</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Reverb level (mB)</source>
         <extracomment>ReverbLevel Amplitude of reverberations. This value is corrected by the RoomLevel to give the final reverberation amplitude.</extracomment>
         <translation>Stärke des Nachhalls (mB)</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Room HF level</source>
         <extracomment>RoomHFLevel: Amplitude of low-pass filter used to attenuate the high frequency component of reflected sound.</extracomment>
         <translation>Hochfrequenz-Pegel des Raums</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Room level (mB)</source>
         <extracomment>RoomLevel: Master volume control for all reflected sound.</extracomment>
         <translation>Pegel des Raums (mB)</translation>
@@ -517,12 +424,18 @@
 <context>
     <name>Phonon::MMF::MediaObject</name>
     <message>
-        <location filename="../src/3rdparty/phonon/mmf/mediaobject.cpp" line="+276"/>
         <source>Error opening source: type not supported</source>
         <translation>Die Quelle konnte nicht geöffnet werden: Dieser Typ wird nicht unterstützt</translation>
     </message>
     <message>
-        <location line="+18"/>
+        <source>Error opening source: resource is compressed</source>
+        <translation>Die Quelle konnte nicht geöffnet werden: Die Ressource ist komprimiert</translation>
+    </message>
+    <message>
+        <source>Error opening source: resource not valid</source>
+        <translation>Die Quelle konnte nicht geöffnet werden: Ungültige Ressource</translation>
+    </message>
+    <message>
         <source>Error opening source: media type could not be determined</source>
         <translation>Die Quelle konnte nicht geöffnet werden: Der Medientyp konnte nicht bestimmt werden</translation>
     </message>
@@ -530,7 +443,6 @@
 <context>
     <name>Phonon::MMF::StereoWidening</name>
     <message>
-        <location filename="../src/3rdparty/phonon/mmf/stereowidening.cpp" line="+79"/>
         <source>Level (%)</source>
         <translation>Stärke (%)</translation>
     </message>
@@ -538,8 +450,6 @@
 <context>
     <name>Phonon::MMF::SurfaceVideoPlayer</name>
     <message>
-        <location filename="../src/3rdparty/phonon/mmf/videoplayer_surface.cpp" line="+126"/>
-        <location line="+16"/>
         <source>Video display error</source>
         <translation>Fehler bei der Video-Anzeige</translation>
     </message>
@@ -547,22 +457,14 @@
 <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>Lautstärke: %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>Mit diesem Regler stellen Sie die Lautstärke ein. Die Position links entspricht 0%; die Position rechts entspricht %1%</translation>
     </message>
     <message>
-        <location line="+67"/>
         <source>Muted</source>
         <translation>Stummschaltung</translation>
     </message>
@@ -570,12 +472,10 @@
 <context>
     <name>Q3Accel</name>
     <message>
-        <location filename="../src/qt3support/other/q3accel.cpp" line="+481"/>
         <source>%1, %2 not defined</source>
         <translation>%1, %2 sind nicht definiert</translation>
     </message>
     <message>
-        <location line="+36"/>
         <source>Ambiguous %1 not handled</source>
         <translation>Mehrdeutige %1 können nicht verarbeitet werden</translation>
     </message>
@@ -583,27 +483,22 @@
 <context>
     <name>Q3DataTable</name>
     <message>
-        <location filename="../src/qt3support/sql/q3datatable.cpp" line="+285"/>
         <source>True</source>
         <translation>Wahr</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>False</source>
         <translation>Falsch</translation>
     </message>
     <message>
-        <location line="+505"/>
         <source>Insert</source>
         <translation>Einfügen</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Update</source>
         <translation>Aktualisieren</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Delete</source>
         <translation>Löschen</translation>
     </message>
@@ -611,313 +506,238 @@
 <context>
     <name>Q3FileDialog</name>
     <message>
-        <location filename="../src/qt3support/dialogs/q3filedialog.cpp" line="+835"/>
         <source>Copy or Move a File</source>
         <translation>Datei kopieren oder verschieben</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Read: %1</source>
         <translation>Lesen: %1</translation>
     </message>
     <message>
-        <location line="+6"/>
-        <location line="+30"/>
         <source>Write: %1</source>
         <translation>Schreiben: %1</translation>
     </message>
     <message>
-        <location line="-22"/>
-        <location line="+1579"/>
         <source>Cancel</source>
         <translation>Abbrechen</translation>
     </message>
     <message>
-        <location line="-157"/>
-        <location line="+49"/>
-        <location line="+2149"/>
-        <location filename="../src/qt3support/dialogs/q3filedialog_mac.cpp" line="+133"/>
         <source>All Files (*)</source>
         <translation>Alle Dateien (*)</translation>
     </message>
     <message>
-        <location line="-2085"/>
         <source>Name</source>
         <translation>Name</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Size</source>
         <translation>Größe</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Type</source>
         <translation>Typ</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Date</source>
         <translation>Datum</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Attributes</source>
         <translation>Attribute</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>Su&amp;chen in:</translation>
     </message>
     <message>
-        <location line="+1"/>
-        <location line="+1977"/>
-        <location line="+16"/>
         <source>File &amp;name:</source>
         <translation>Datei&amp;name:</translation>
     </message>
     <message>
-        <location line="-1992"/>
         <source>File &amp;type:</source>
         <translation>Datei&amp;typ:</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Back</source>
         <translation>Zurück</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>One directory up</source>
         <translation>Ein Verzeichnis zurück</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Create New Folder</source>
         <translation>Neuen Ordner erstellen</translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>List View</source>
         <translation>Liste</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Detail View</source>
         <translation>Ausführlich</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Preview File Info</source>
         <translation>Vorschau der Datei-Informationen</translation>
     </message>
     <message>
-        <location line="+19"/>
         <source>Preview File Contents</source>
         <translation>Vorschau des Datei-Inhalts</translation>
     </message>
     <message>
-        <location line="+88"/>
         <source>Read-write</source>
         <translation>Lesen/Schreiben</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Read-only</source>
         <translation>Nur Lesen</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Write-only</source>
         <translation>Nur Schreiben</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Inaccessible</source>
         <translation>Gesperrt</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Symlink to File</source>
         <translation>Verknüpfung mit Datei</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Symlink to Directory</source>
         <translation>Verknüpfung mit Verzeichnis</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Symlink to Special</source>
         <translation>Verknüpfung mit Spezialdatei</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>File</source>
         <translation>Datei</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Dir</source>
         <translation>Verzeichnis</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Special</source>
         <translation>Spezialattribut</translation>
     </message>
     <message>
-        <location line="+704"/>
-        <location line="+1999"/>
-        <location filename="../src/qt3support/dialogs/q3filedialog_win.cpp" line="+209"/>
         <source>Open</source>
         <translation>Öffnen</translation>
     </message>
     <message>
-        <location line="-1889"/>
-        <location filename="../src/qt3support/dialogs/q3filedialog_win.cpp" line="+71"/>
         <source>Save As</source>
         <translation>Speichern unter</translation>
     </message>
     <message>
-        <location line="+642"/>
-        <location line="+5"/>
-        <location line="+355"/>
         <source>&amp;Open</source>
         <translation>&amp;Öffnen</translation>
     </message>
     <message>
-        <location line="-357"/>
-        <location line="+341"/>
         <source>&amp;Save</source>
         <translation>S&amp;peichern</translation>
     </message>
     <message>
-        <location line="-334"/>
         <source>&amp;Rename</source>
         <translation>&amp;Umbenennen</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Delete</source>
         <translation>&amp;Löschen</translation>
     </message>
     <message>
-        <location line="+20"/>
         <source>R&amp;eload</source>
         <translation>Erne&amp;ut laden</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Sort by &amp;Name</source>
         <translation>Nach &amp;Namen sortieren</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Sort by &amp;Size</source>
         <translation>Nach &amp;Größe sortieren</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Sort by &amp;Date</source>
         <translation>Nach &amp;Datum sortieren</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>&amp;Unsorted</source>
         <translation>&amp;Unsortiert</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Sort</source>
         <translation>Sortieren</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Show &amp;hidden files</source>
         <translation>&amp;Versteckte Dateien anzeigen</translation>
     </message>
     <message>
-        <location line="+31"/>
         <source>the file</source>
         <translation>die Datei</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>the directory</source>
         <translation>das Verzeichnis</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>the symlink</source>
         <translation>die Verknüpfung</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Delete %1</source>
         <translation>%1 löschen</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;Sind Sie sicher, dass Sie %1 &quot;%2&quot; löschen möchten?&lt;/qt&gt;</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>&amp;Yes</source>
         <translation>&amp;Ja</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>&amp;No</source>
         <translation>&amp;Nein</translation>
     </message>
     <message>
-        <location line="+36"/>
         <source>New Folder 1</source>
         <translation>Neues Verzeichnis 1</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>New Folder</source>
         <translation>Neues Verzeichnis</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>New Folder %1</source>
         <translation>Neues Verzeichnis %1</translation>
     </message>
     <message>
-        <location line="+98"/>
         <source>Find Directory</source>
         <translation>Verzeichnis suchen</translation>
     </message>
     <message>
-        <location line="+5"/>
-        <location line="+108"/>
         <source>Directories</source>
         <translation>Verzeichnisse</translation>
     </message>
     <message>
-        <location line="-2"/>
         <source>Directory:</source>
         <translation>Verzeichnis:</translation>
     </message>
     <message>
-        <location line="+40"/>
-        <location line="+1009"/>
         <source>Error</source>
         <translation>Fehler</translation>
     </message>
     <message>
-        <location line="-1008"/>
         <source>%1
 File not found.
 Check path and filename.</source>
@@ -926,17 +746,14 @@
 Überprüfen Sie Pfad und Dateinamen.</translation>
     </message>
     <message>
-        <location filename="../src/qt3support/dialogs/q3filedialog_win.cpp" line="-191"/>
         <source>All Files (*.*)</source>
         <translation>Alle Dateien (*.*)</translation>
     </message>
     <message>
-        <location line="+264"/>
         <source>Open </source>
         <translation>Öffnen</translation>
     </message>
     <message>
-        <location line="+107"/>
         <source>Select a Directory</source>
         <translation>Wählen Sie ein Verzeichnis</translation>
     </message>
@@ -944,29 +761,24 @@
 <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>Konnte Verzeichnis nicht lesen
 %1</translation>
     </message>
     <message>
-        <location line="+45"/>
         <source>Could not create directory
 %1</source>
         <translation>Konnte Verzeichnis nicht erstellen
 %1</translation>
     </message>
     <message>
-        <location line="+34"/>
         <source>Could not remove file or directory
 %1</source>
         <translation>Konnte Datei oder Verzeichnis nicht löschen
 %1</translation>
     </message>
     <message>
-        <location line="+27"/>
         <source>Could not rename
 %1
 to
@@ -977,14 +789,12 @@
 %2</translation>
     </message>
     <message>
-        <location line="+25"/>
         <source>Could not open
 %1</source>
         <translation>Konnte nicht geöffnet werden:
 %1</translation>
     </message>
     <message>
-        <location line="+68"/>
         <source>Could not write
 %1</source>
         <translation>Konnte nicht geschrieben werden:
@@ -994,12 +804,10 @@
 <context>
     <name>Q3MainWindow</name>
     <message>
-        <location filename="../src/qt3support/widgets/q3mainwindow.cpp" line="+2051"/>
         <source>Line up</source>
         <translation>Ausrichten</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Customize...</source>
         <translation>Anpassen...</translation>
     </message>
@@ -1007,7 +815,6 @@
 <context>
     <name>Q3NetworkProtocol</name>
     <message>
-        <location filename="../src/qt3support/network/q3networkprotocol.cpp" line="+854"/>
         <source>Operation stopped by the user</source>
         <translation>Operation von Benutzer angehalten</translation>
     </message>
@@ -1015,8 +822,6 @@
 <context>
     <name>Q3ProgressDialog</name>
     <message>
-        <location filename="../src/qt3support/dialogs/q3progressdialog.cpp" line="+224"/>
-        <location line="+61"/>
         <source>Cancel</source>
         <translation>Abbrechen</translation>
     </message>
@@ -1024,28 +829,22 @@
 <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>Anwenden</translation>
     </message>
     <message>
-        <location line="+43"/>
         <source>Help</source>
         <translation>Hilfe</translation>
     </message>
     <message>
-        <location line="+45"/>
         <source>Defaults</source>
         <translation>Voreinstellungen</translation>
     </message>
     <message>
-        <location line="+50"/>
         <source>Cancel</source>
         <translation>Abbrechen</translation>
     </message>
@@ -1053,38 +852,30 @@
 <context>
     <name>Q3TextEdit</name>
     <message>
-        <location filename="../src/qt3support/text/q3textedit.cpp" line="+5429"/>
         <source>&amp;Undo</source>
         <translation>&amp;Rückgängig</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Redo</source>
         <translation>Wieder&amp;herstellen</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Cu&amp;t</source>
         <translation>&amp;Ausschneiden</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Copy</source>
         <translation>&amp;Kopieren</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>&amp;Paste</source>
         <translation>Einf&amp;ügen</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Clear</source>
         <translation>Löschen</translation>
     </message>
     <message>
-        <location line="+4"/>
-        <location line="+2"/>
         <source>Select All</source>
         <translation>Alles auswählen</translation>
     </message>
@@ -1092,67 +883,54 @@
 <context>
     <name>Q3TitleBar</name>
     <message>
-        <location filename="../src/plugins/accessible/compat/q3complexwidgets.cpp" line="+246"/>
         <source>System</source>
         <translation>System</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Restore up</source>
         <translation>Wiederherstellen</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Minimize</source>
         <translation>Minimieren</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Restore down</source>
         <translation>Wiederherstellen</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Maximize</source>
         <translation>Maximieren</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Close</source>
         <translation>Schließen</translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>Contains commands to manipulate the window</source>
         <translation>Enthält Befehle zum Ändern der Fenstergröße</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Puts a minimized window back to normal</source>
         <translation>Stellt ein minimiertes Fenster wieder her</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Moves the window out of the way</source>
         <translation>Minimiert das Fenster</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Puts a maximized window back to normal</source>
         <translation>Stellt ein maximiertes Fenster wieder her</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Makes the window full screen</source>
         <translation>Vollbildmodus</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Closes the window</source>
         <translation>Schließt das Fenster</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Displays the name of the window and contains controls to manipulate it</source>
         <translation>Zeigt den Namen des Fensters und enthält Befehle zum Ändern</translation>
     </message>
@@ -1160,7 +938,6 @@
 <context>
     <name>Q3ToolBar</name>
     <message>
-        <location filename="../src/qt3support/widgets/q3toolbar.cpp" line="+692"/>
         <source>More...</source>
         <translation>Mehr...</translation>
     </message>
@@ -1168,51 +945,38 @@
 <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>Das Protokoll `%1&apos; wird nicht unterstützt</translation>
     </message>
     <message>
-        <location line="-260"/>
         <source>The protocol `%1&apos; does not support listing directories</source>
         <translation>Das Protokoll `%1&apos; unterstützt nicht das Auflisten von Verzeichnissen</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>The protocol `%1&apos; does not support creating new directories</source>
         <translation>Das Protokoll `%1&apos; unterstützt nicht das Anlegen neuer Verzeichnisse</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>The protocol `%1&apos; does not support removing files or directories</source>
         <translation>Das Protokoll `%1&apos; unterstützt nicht das Löschen von Dateien oder Verzeichnissen</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>The protocol `%1&apos; does not support renaming files or directories</source>
         <translation>Das Protokoll `%1&apos; unterstützt nicht das Umbenennen von Dateien oder Verzeichnissen</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>The protocol `%1&apos; does not support getting files</source>
         <translation>Das Protokoll `%1&apos; unterstützt nicht das Laden von Dateien</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>The protocol `%1&apos; does not support putting files</source>
         <translation>Das Protokoll `%1&apos; unterstützt nicht das Speichern von Dateien</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>Das Protokoll `%1&apos; unterstützt nicht das Kopieren oder Verschieben von Dateien oder Verzeichnissen</translation>
     </message>
     <message>
-        <location line="+237"/>
-        <location line="+1"/>
         <source>(unknown)</source>
         <translation>(unbekannt)</translation>
     </message>
@@ -1220,27 +984,22 @@
 <context>
     <name>Q3Wizard</name>
     <message>
-        <location filename="../src/qt3support/dialogs/q3wizard.cpp" line="+177"/>
         <source>&amp;Cancel</source>
         <translation>&amp;Abbrechen</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&lt; &amp;Back</source>
         <translation>&lt; &amp;Zurück</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Next &gt;</source>
         <translation>&amp;Weiter &gt;</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Finish</source>
         <translation>Ab&amp;schließen</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Help</source>
         <translation>&amp;Hilfe</translation>
     </message>
@@ -1248,45 +1007,30 @@
 <context>
     <name>QAbstractSocket</name>
     <message>
-        <location filename="../src/network/socket/qabstractsocket.cpp" line="+916"/>
-        <location filename="../src/network/socket/qhttpsocketengine.cpp" line="+629"/>
-        <location filename="../src/network/socket/qsocks5socketengine.cpp" line="+661"/>
-        <location line="+26"/>
         <source>Host not found</source>
         <translation>Rechner konnte nicht gefunden werden</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>Verbindung verweigert</translation>
     </message>
     <message>
-        <location line="+142"/>
         <source>Connection timed out</source>
         <translation>Das Zeitlimit für die Verbindung wurde überschritten</translation>
     </message>
     <message>
-        <location line="-559"/>
-        <location line="+809"/>
-        <location line="+220"/>
         <source>Operation on socket is not supported</source>
         <translation>Diese Socket-Operation wird nicht unterstützt</translation>
     </message>
     <message>
-        <location filename="../src/network/access/qhttpnetworkconnection.cpp" line="+625"/>
-        <location filename="../src/network/socket/qabstractsocket.cpp" line="+203"/>
         <source>Socket operation timed out</source>
         <translation>Das Zeitlimit für die Operation wurde überschritten</translation>
     </message>
     <message>
-        <location filename="../src/network/socket/qabstractsocket.cpp" line="+380"/>
         <source>Socket is not connected</source>
         <translation>Nicht verbunden</translation>
     </message>
     <message>
-        <location filename="../src/network/socket/qsocks5socketengine.cpp" line="-8"/>
         <source>Network unreachable</source>
         <translation>Das Netzwerk ist nicht erreichbar</translation>
     </message>
@@ -1294,17 +1038,14 @@
 <context>
     <name>QAbstractSpinBox</name>
     <message>
-        <location filename="../src/gui/widgets/qabstractspinbox.cpp" line="+1263"/>
         <source>&amp;Step up</source>
         <translation>&amp;Inkrementieren</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Step &amp;down</source>
         <translation>&amp;Dekrementieren</translation>
     </message>
     <message>
-        <location line="-8"/>
         <source>&amp;Select All</source>
         <translation>&amp;Alles auswählen</translation>
     </message>
@@ -1312,7 +1053,6 @@
 <context>
     <name>QAccessibleButton</name>
     <message>
-        <location filename="../src/plugins/accessible/widgets/simplewidgets.cpp" line="+250"/>
         <source>Press</source>
         <translation>Drücken</translation>
     </message>
@@ -1320,28 +1060,23 @@
 <context>
     <name>QApplication</name>
     <message>
-        <location filename="../src/gui/kernel/qapplication.cpp" line="-13"/>
         <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>
     <message>
-        <location filename="../src/gui/dialogs/qmessagebox.h" line="+354"/>
         <source>Executable &apos;%1&apos; requires Qt %2, found Qt %3.</source>
         <translation>Die Anwendung &apos;%1&apos; benötigt Qt %2; es wurde aber Qt %3 gefunden.</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Incompatible Qt Library Error</source>
         <translation>Die Qt-Bibliothek ist inkompatibel</translation>
     </message>
     <message>
-        <location filename="../src/gui/accessible/qaccessibleobject.cpp" line="+376"/>
         <source>Activate</source>
         <translation>Aktivieren</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Activates the program&apos;s main window</source>
         <translation>Aktiviert das Hauptfenster der Anwendung</translation>
     </message>
@@ -1349,22 +1084,18 @@
 <context>
     <name>QAxSelect</name>
     <message>
-        <location filename="../src/activeqt/container/qaxselect.ui"/>
         <source>Select ActiveX Control</source>
         <translation>ActiveX-Element auswählen</translation>
     </message>
     <message>
-        <location/>
         <source>OK</source>
         <translation>OK</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Cancel</source>
         <translation>&amp;Abbrechen</translation>
     </message>
     <message>
-        <location/>
         <source>COM &amp;Object:</source>
         <translation>COM-&amp;Objekt:</translation>
     </message>
@@ -1372,17 +1103,14 @@
 <context>
     <name>QCheckBox</name>
     <message>
-        <location filename="../src/plugins/accessible/widgets/simplewidgets.cpp" line="-136"/>
         <source>Uncheck</source>
         <translation>Löschen</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Check</source>
         <translation>Ankreuzen</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Toggle</source>
         <translation>Umschalten</translation>
     </message>
@@ -1390,57 +1118,46 @@
 <context>
     <name>QColorDialog</name>
     <message>
-        <location filename="../src/gui/dialogs/qcolordialog.cpp" line="+1378"/>
         <source>Hu&amp;e:</source>
         <translation>Farb&amp;ton:</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Sat:</source>
         <translation>&amp;Sättigung:</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Val:</source>
         <translation>&amp;Helligkeit:</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Red:</source>
         <translation>&amp;Rot:</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Green:</source>
         <translation>&amp;Grün:</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Bl&amp;ue:</source>
         <translation>Bla&amp;u:</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>A&amp;lpha channel:</source>
         <translation>A&amp;lphakanal:</translation>
     </message>
     <message>
-        <location line="+101"/>
         <source>Select Color</source>
         <translation>Farbauswahl</translation>
     </message>
     <message>
-        <location line="+183"/>
         <source>&amp;Basic colors</source>
         <translation>Grundfar&amp;ben</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Custom colors</source>
         <translation>&amp;Benutzerdefinierte Farben</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Add to Custom Colors</source>
         <translation>Zu benutzerdefinierten Farben &amp;hinzufügen</translation>
     </message>
@@ -1448,23 +1165,18 @@
 <context>
     <name>QComboBox</name>
     <message>
-        <location filename="../src/plugins/accessible/widgets/complexwidgets.cpp" line="+1772"/>
-        <location line="+65"/>
         <source>Open</source>
         <translation>Öffnen</translation>
     </message>
     <message>
-        <location filename="../src/gui/itemviews/qitemeditorfactory.cpp" line="+556"/>
         <source>False</source>
         <translation>Falsch</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>True</source>
         <translation>Wahr</translation>
     </message>
     <message>
-        <location filename="../src/plugins/accessible/widgets/complexwidgets.cpp" line="+0"/>
         <source>Close</source>
         <translation>Schließen</translation>
     </message>
@@ -1472,43 +1184,36 @@
 <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: Ungültige Schlüsselangabe (leer)</translation>
     </message>
     <message>
-        <location line="+12"/>
         <source>%1: unable to make key</source>
         <comment>QSystemSemaphore</comment>
         <translation>%1: Es kann kein Schlüssel erzeugt werden</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>%1: ftok failed</source>
         <comment>QSystemSemaphore</comment>
         <translation>%1: ftok-Aufruf schlug fehl</translation>
     </message>
     <message>
-        <location filename="../src/corelib/kernel/qsystemsemaphore_symbian.cpp" line="+65"/>
         <source>%1: already exists</source>
         <comment>QSystemSemaphore</comment>
         <translation>%1: existiert bereits</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>%1: does not exist</source>
         <comment>QSystemSemaphore</comment>
         <translation>%1: Nicht existent</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>%1: out of resources</source>
         <comment>QSystemSemaphore</comment>
         <translation>%1: Keine Ressourcen mehr verfügbar</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>%1: unknown error %2</source>
         <comment>QSystemSemaphore</comment>
         <translation>%1: Unbekannter Fehler %2</translation>
@@ -1517,22 +1222,18 @@
 <context>
     <name>QDB2Driver</name>
     <message>
-        <location filename="../src/sql/drivers/db2/qsql_db2.cpp" line="+1253"/>
         <source>Unable to connect</source>
         <translation>Es kann keine Verbindung aufgebaut werden</translation>
     </message>
     <message>
-        <location line="+298"/>
         <source>Unable to commit transaction</source>
         <translation>Die Transaktion kann nicht durchgeführt werden (Operation &apos;commit&apos; fehlgeschlagen)</translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>Unable to rollback transaction</source>
         <translation>Die Transaktion kann nicht rückgängig gemacht werden (Operation &apos;rollback&apos; fehlgeschlagen)</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Unable to set autocommit</source>
         <translation>&apos;autocommit&apos; kann nicht aktiviert werden</translation>
     </message>
@@ -1540,33 +1241,26 @@
 <context>
     <name>QDB2Result</name>
     <message>
-        <location line="-1030"/>
-        <location line="+240"/>
         <source>Unable to execute statement</source>
         <translation>Der Befehl kann nicht ausgeführt werden</translation>
     </message>
     <message>
-        <location line="-203"/>
         <source>Unable to prepare statement</source>
         <translation>Der Befehl kann nicht initialisiert werden</translation>
     </message>
     <message>
-        <location line="+193"/>
         <source>Unable to bind variable</source>
         <translation>Die Variable kann nicht gebunden werden</translation>
     </message>
     <message>
-        <location line="+89"/>
         <source>Unable to fetch record %1</source>
         <translation>Der Datensatz %1 kann nicht abgeholt werden</translation>
     </message>
     <message>
-        <location line="+19"/>
         <source>Unable to fetch next</source>
         <translation>Der nächste Datensatz kann nicht abgeholt werden</translation>
     </message>
     <message>
-        <location line="+21"/>
         <source>Unable to fetch first</source>
         <translation>Der erste Datensatz kann nicht abgeholt werden</translation>
     </message>
@@ -1574,22 +1268,18 @@
 <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>
@@ -1597,17 +1287,14 @@
 <context>
     <name>QDeclarativeAbstractAnimation</name>
     <message>
-        <location filename="../src/declarative/util/qdeclarativeanimation.cpp" line="+166"/>
         <source>Cannot animate non-existent property &quot;%1&quot;</source>
         <translation>Die Eigenschaft &apos;%1&quot; existiert nicht und kann daher nicht animiert werden</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Cannot animate read-only property &quot;%1&quot;</source>
         <translation>Die Eigenschaft &apos;%1&quot; ist schreibgeschützt und kann daher nicht animiert werden</translation>
     </message>
     <message>
-        <location filename="../src/declarative/util/qdeclarativeutilmodule.cpp" line="+122"/>
         <source>Animation is an abstract class</source>
         <translation>Die Klasse Animation ist abstrakt</translation>
     </message>
@@ -1615,7 +1302,6 @@
 <context>
     <name>QDeclarativeAnchorAnimation</name>
     <message>
-        <location filename="../src/declarative/util/qdeclarativeanimation.cpp" line="+2568"/>
         <source>Cannot set a duration of &lt; 0</source>
         <translation>Es kann keine Zeitdauer &lt;0 gesetzt werden</translation>
     </message>
@@ -1623,67 +1309,50 @@
 <context>
     <name>QDeclarativeAnchors</name>
     <message>
-        <location filename="../src/declarative/graphicsitems/qdeclarativeanchors.cpp" line="+180"/>
         <source>Possible anchor loop detected on fill.</source>
         <translation>Bei der Fülloperation wurde eine potentielle Endlosschleife der Anker festgestellt.</translation>
     </message>
     <message>
-        <location line="+29"/>
         <source>Possible anchor loop detected on centerIn.</source>
         <translation>Bei der Operation &apos;centerIn&apos; wurde eine potentielle Endlosschleife der Anker festgestellt.</translation>
     </message>
     <message>
-        <location line="+201"/>
-        <location line="+34"/>
-        <location line="+610"/>
-        <location line="+37"/>
         <source>Cannot anchor to an item that isn&apos;t a parent or sibling.</source>
         <translation>Das Ziel eines Anker muss ein Elternelement oder Element der gleichen Ebene sein.</translation>
     </message>
     <message>
-        <location line="-534"/>
         <source>Possible anchor loop detected on vertical anchor.</source>
         <translation>Bei einem vertikalen Anker wurde eine potentielle Endlosschleife der Anker festgestellt.</translation>
     </message>
     <message>
-        <location line="+59"/>
         <source>Possible anchor loop detected on horizontal anchor.</source>
         <translation>Bei einem horizontalen Anker wurde eine potentielle Endlosschleife der Anker festgestellt.</translation>
     </message>
     <message>
-        <location line="+422"/>
         <source>Cannot specify left, right, and hcenter anchors.</source>
         <translation>Ankerangaben für links, rechts und horizontal zentriert dürfen nicht zusammen auftreten.</translation>
     </message>
     <message>
-        <location line="+10"/>
-        <location line="+37"/>
         <source>Cannot anchor to a null item.</source>
         <translation>Es kann kein Anker zu einem Null-Element angegeben werden.</translation>
     </message>
     <message>
-        <location line="-34"/>
         <source>Cannot anchor a horizontal edge to a vertical edge.</source>
         <translation>Es kann kein Anker zu einer horizontalen oder vertikalen Kante angegeben werden.</translation>
     </message>
     <message>
-        <location line="+6"/>
-        <location line="+37"/>
         <source>Cannot anchor item to self.</source>
         <translation>Ein Element kann keinen Anker zu sich selbst haben.</translation>
     </message>
     <message>
-        <location line="-25"/>
         <source>Cannot specify top, bottom, and vcenter anchors.</source>
         <translation>Ankerangaben für oben, unten und vertikal zentriert dürfen nicht zusammen auftreten.</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Baseline anchor cannot be used in conjunction with top, bottom, or vcenter anchors.</source>
         <translation>Ein Baseline-Anker darf nicht mit zusammen mit weiteren Ankerangaben für oben, unten und vertikal zentriert verwendet werden.</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>Cannot anchor a vertical edge to a horizontal edge.</source>
         <translation>Vertikale und horizontale Kanten können nicht mit Ankern verbunden werden.</translation>
     </message>
@@ -1691,7 +1360,6 @@
 <context>
     <name>QDeclarativeAnimatedImage</name>
     <message>
-        <location filename="../src/declarative/graphicsitems/qdeclarativeitemsmodule.cpp" line="+86"/>
         <source>Qt was built without support for QMovie</source>
         <translation>Diese Version der Qt-Bibliothek wurde ohne Unterstützung für die Klasse QMovie erstellt</translation>
     </message>
@@ -1699,7 +1367,6 @@
 <context>
     <name>QDeclarativeBehavior</name>
     <message>
-        <location filename="../src/declarative/util/qdeclarativebehavior.cpp" line="+127"/>
         <source>Cannot change the animation assigned to a Behavior.</source>
         <translation>Die zu einem Behavior-Element gehörende Animation kann nicht geändert werden.</translation>
     </message>
@@ -1707,7 +1374,6 @@
 <context>
     <name>QDeclarativeBinding</name>
     <message>
-        <location filename="../src/declarative/qml/qdeclarativebinding.cpp" line="+238"/>
         <source>Binding loop detected for property &quot;%1&quot;</source>
         <translation>Bei der für die Eigenschaft &quot;%1&quot; angegebenen Bindung  wurde eine Endlosschleife festgestellt</translation>
     </message>
@@ -1715,7 +1381,6 @@
 <context>
     <name>QDeclarativeCompiledBindings</name>
     <message>
-        <location filename="../src/declarative/qml/qdeclarativecompiledbindings.cpp" line="+372"/>
         <source>Binding loop detected for property &quot;%1&quot;</source>
         <translation>Bei der für die Eigenschaft &quot;%1&quot; angegebenen Bindung  wurde eine Endlosschleife festgestellt</translation>
     </message>
@@ -1723,390 +1388,310 @@
 <context>
     <name>QDeclarativeCompiler</name>
     <message>
-        <location filename="../src/declarative/qml/qdeclarativecompiler.cpp" line="+186"/>
-        <location line="+1596"/>
-        <location line="+186"/>
-        <location line="+81"/>
-        <location line="+75"/>
-        <location line="+487"/>
         <source>Invalid property assignment: &quot;%1&quot; is a read-only property</source>
         <translation>Ungültige Zuweisung bei Eigenschaft: &quot;%1&quot; ist schreibgeschützt</translation>
     </message>
     <message>
-        <location line="-2416"/>
         <source>Invalid property assignment: unknown enumeration</source>
         <translation>Ungültige Zuweisung bei Eigenschaft: Ungültiger Aufzählungswert</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Invalid property assignment: string expected</source>
         <translation>Ungültige Zuweisung bei Eigenschaft: Es wird eine Zeichenkette erwartet</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Invalid property assignment: url expected</source>
         <translation>Ungültige Zuweisung bei Eigenschaft: Es wird eine URL erwartet</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>Invalid property assignment: unsigned int expected</source>
         <translation>Ungültige Zuweisung bei Eigenschaft: Es wird eine vorzeichenloser Ganzzahlwert erwartet</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>Invalid property assignment: int expected</source>
         <translation>Ungültige Zuweisung bei Eigenschaft: Es wird ein Ganzzahlwert erwartet</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Invalid property assignment: float expected</source>
-        <translation>Ungültige Zuweisung bei Eigenschaft: Es wird eine Gleitkommazahl erwartet</translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation type="obsolete">Ungültige Zuweisung bei Eigenschaft: Es wird eine Gleitkommazahl erwartet</translation>
+    </message>
+    <message>
         <source>Invalid property assignment: double expected</source>
-        <translation>Ungültige Zuweisung bei Eigenschaft: Es wird eine Gleitkommazahl (double) erwartet</translation>
-    </message>
-    <message>
-        <location line="+6"/>
+        <translation type="obsolete">Ungültige Zuweisung bei Eigenschaft: Es wird eine Gleitkommazahl (double) erwartet</translation>
+    </message>
+    <message>
         <source>Invalid property assignment: color expected</source>
         <translation>Ungültige Zuweisung bei Eigenschaft: Es wird eine Farbspezifikation erwartet</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Invalid property assignment: date expected</source>
         <translation>Ungültige Zuweisung bei Eigenschaft: Es wird eine Datumsangabe erwartet</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Invalid property assignment: time expected</source>
         <translation>Ungültige Zuweisung bei Eigenschaft: Es wird eine Zeitangabe erwartet</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Invalid property assignment: datetime expected</source>
         <translation>Ungültige Zuweisung bei Eigenschaft: Es wird eine Datumsangabe erwartet</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Invalid property assignment: point expected</source>
         <translation>Ungültige Zuweisung bei Eigenschaft: Es wird eine Koordinatenangabe für einen Punkt erwartet</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Invalid property assignment: size expected</source>
         <translation>Ungültige Zuweisung bei Eigenschaft: Es wird eine Größenangabe erwartet</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Invalid property assignment: rect expected</source>
         <translation>Ungültige Zuweisung bei Eigenschaft: Es werden Parameter für ein Rechteck erwartet</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Invalid property assignment: boolean expected</source>
         <translation>Ungültige Zuweisung bei Eigenschaft: Es wird ein Boolescher Wert erwartet</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Invalid property assignment: 3D vector expected</source>
         <translation>Ungültige Zuweisung bei Eigenschaft: Es wird ein dreidimensionaler Vektor erwartet</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Invalid property assignment: unsupported type &quot;%1&quot;</source>
         <translation>Ungültige Zuweisung bei Eigenschaft: Der Typ &quot;%1&quot; ist nicht unterstützt</translation>
     </message>
     <message>
-        <location line="+277"/>
         <source>Element is not creatable.</source>
         <translation>Das Element kann nicht erzeugt werden.</translation>
     </message>
     <message>
-        <location line="+618"/>
         <source>Component elements may not contain properties other than id</source>
         <translation>Komponenten dürfen außer id keine weiteren Eigenschaften enthalten.</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Invalid component id specification</source>
         <translation>Ungültige Komponentenspezifikation</translation>
     </message>
     <message>
-        <location line="+6"/>
-        <location line="+478"/>
         <source>id is not unique</source>
         <translation>ID-Wert nicht eindeutig</translation>
     </message>
     <message>
-        <location line="-468"/>
         <source>Invalid component body specification</source>
         <translation>Inhalt der Komponente ungültig</translation>
     </message>
     <message>
-        <location line="+14"/>
         <source>Cannot create empty component specification</source>
         <translation>Es kann keine leere Komponentenangabe erzeugt werden</translation>
     </message>
     <message>
-        <location line="+105"/>
         <source>Empty signal assignment</source>
         <translation>Leere Signalzuweisung</translation>
     </message>
     <message>
-        <location line="+38"/>
         <source>Empty property assignment</source>
         <translation>Leere Eigenschaftszuweisung</translation>
     </message>
     <message>
-        <location line="+12"/>
         <source>Attached properties cannot be used here</source>
         <translation>An dieser Stelle können keine Eigenschaften des Typs &apos;attached&apos; verwendet werden</translation>
     </message>
     <message>
-        <location line="+15"/>
-        <location line="+102"/>
         <source>Non-existent attached object</source>
         <translation>Es existiert kein Bezugselement für die Eigenschaft</translation>
     </message>
     <message>
-        <location line="-98"/>
-        <location line="+101"/>
         <source>Invalid attached object assignment</source>
         <translation>Ungültige Zuweisung des Bezugselements</translation>
     </message>
     <message>
-        <location line="-48"/>
         <source>Cannot assign to non-existent default property</source>
         <translation>Es kann keine Zuweisung erfolgen, da keine Vorgabe-Eigenschaft existiert</translation>
     </message>
     <message>
-        <location line="+2"/>
-        <location line="+352"/>
         <source>Cannot assign to non-existent property &quot;%1&quot;</source>
         <translation>Es kann keine Zuweisung erfolgen, da keine Eigenschaft des Namens &apos;%1&quot; existiert</translation>
     </message>
     <message>
-        <location line="-322"/>
         <source>Invalid use of namespace</source>
         <translation>Ungültige Verwendung eines Namensraums</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Not an attached property name</source>
         <translation>Kein gültiger Name einer Eigenschaft des Typs &apos;attached&apos;</translation>
     </message>
     <message>
-        <location line="+182"/>
         <source>Invalid use of id property</source>
         <translation>Ungültige Verwendung einer Eigenschaft des Typs &apos;Id&apos;</translation>
     </message>
     <message>
-        <location line="-357"/>
         <source>Incorrectly specified signal assignment</source>
         <translation></translation>
     </message>
     <message>
-        <location line="-100"/>
+        <source>Invalid property assignment: number expected</source>
+        <translation>Ungültige Zuweisung bei Eigenschaft: Es wird eine Zahl erwartet</translation>
+    </message>
+    <message>
         <source>Component objects cannot declare new properties.</source>
         <translation>Komponentenobjekte können keine neuen Eigenschaften deklarieren.</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Component objects cannot declare new signals.</source>
         <translation>Komponentenobjekte können keine neuen Signale deklarieren.</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Component objects cannot declare new functions.</source>
         <translation>Komponentenobjekte können keine neuen Funktionen deklarieren.</translation>
     </message>
     <message>
-        <location line="+108"/>
         <source>Cannot assign a value to a signal (expecting a script to be run)</source>
         <translation>Einem Signal können keine Werte zugewiesen werden (es wird ein Skript erwartet)</translation>
     </message>
     <message>
-        <location line="+434"/>
-        <location line="+2"/>
         <source>Property has already been assigned a value</source>
         <translation>Der Eigenschaft wurde bereits ein Wert zugewiesen</translation>
     </message>
     <message>
-        <location line="+12"/>
-        <location line="+7"/>
         <source>Invalid grouped property access</source>
         <translation>Falsche Gruppierung bei Zugriff auf Eigenschaft</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Cannot assign a value directly to a grouped property</source>
         <translation>Bei einer Eigenschaft, die Teil einer Gruppierung ist, ist keine direkte Wertzuweisung zulässig</translation>
     </message>
     <message>
-        <location line="+16"/>
         <source>Invalid property use</source>
         <translation>Ungültige Verwendung von Eigenschaften</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>Property assignment expected</source>
         <translation>Zuweisung an Eigenschaft erwartet</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Single property assignment expected</source>
         <translation>Einzelne Zuweisung an Eigenschaft erwartet</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Unexpected object assignment</source>
         <translation>Zuweisung des Objekts nicht zulässig</translation>
     </message>
     <message>
-        <location line="+57"/>
         <source>Cannot assign object to list</source>
         <translation>Zuweisung eines Objekts an eine Liste nicht zulässig</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Can only assign one binding to lists</source>
         <translation>Listen kann nur eine einzige Bindung zugewiesen werden</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Cannot assign primitives to lists</source>
         <translation>Zuweisung eines einfachen Werts (primitive) an eine Liste nicht zulässig</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>Cannot assign multiple values to a script property</source>
         <translation>Eine Zuweisung mehrerer Werte an eine Skript-Eigenschaft ist nicht zulässig</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Invalid property assignment: script expected</source>
         <translation>Ungültige Zuweisung bei Eigenschaft: Es wird ein Skript erwartet</translation>
     </message>
     <message>
-        <location line="+105"/>
         <source>Cannot assign object to property</source>
         <translation>Zuweisung eines Objekts an eine Eigenschaft nicht zulässig</translation>
     </message>
     <message>
-        <location line="+50"/>
         <source>&quot;%1&quot; cannot operate on &quot;%2&quot;</source>
         <translation>&quot;%1&quot; kann nicht auf  &quot;%2&quot; angewandt werden</translation>
     </message>
     <message>
-        <location line="+117"/>
         <source>Duplicate default property</source>
         <translation>Mehrfaches Auftreten der Vorgabe-Eigenschaft</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Duplicate property name</source>
         <translation>Mehrfaches Auftreten eines Eigenschaftsnamens</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Property names cannot begin with an upper case letter</source>
         <translation>Eigenschaftsnamen dürfen nicht mit einem Großbuchstaben beginnen</translation>
     </message>
     <message>
-        <location line="+7"/>
+        <source>Illegal property name</source>
+        <translation>Ungültiger Name der Eigenschaft</translation>
+    </message>
+    <message>
         <source>Duplicate signal name</source>
         <translation>Mehrfaches Auftreten eines Signalnamens</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Signal names cannot begin with an upper case letter</source>
         <translation>Signalnamen dürfen nicht mit einem Großbuchstaben beginnen</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Illegal signal name</source>
         <translation>Ungültiger Name für Signal</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Duplicate method name</source>
         <translation>Mehrfaches Auftreten eines Methodennamens</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Method names cannot begin with an upper case letter</source>
         <translation>Methodennamen dürfen nicht mit einem Großbuchstaben beginnen</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Illegal method name</source>
         <translation>Ungültiger Name für Methode</translation>
     </message>
     <message>
-        <location line="+21"/>
         <source>Property value set multiple times</source>
         <translation>Mehrfache Zuweisung eines Wertes an eine Eigenschaft</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Invalid property nesting</source>
         <translation>Ungültige Schachtelung von Eigenschaften</translation>
     </message>
     <message>
-        <location line="+53"/>
         <source>Cannot override FINAL property</source>
         <translation>Eine als &apos;FINAL&apos; ausgewiesene Eigenschaft kann nicht überschrieben werden</translation>
     </message>
     <message>
-        <location line="+24"/>
         <source>Invalid property type</source>
         <translation>Ungültiger Typ der Eigenschaft</translation>
     </message>
     <message>
-        <location line="+159"/>
         <source>Invalid empty ID</source>
         <translation>Ungültiger (leerer) Id-Wert</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>IDs cannot start with an uppercase letter</source>
         <translation>Id-Werte dürfen nicht mit einem Großbuchstaben beginnen</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>IDs must start with a letter or underscore</source>
         <translation>Id-Werte müssen mit einem Buchstaben oder dem Zeichen &apos;_&apos; beginnen</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>IDs must contain only letters, numbers, and underscores</source>
         <translation>Id-Werte dürfen nur Buchstaben oder Unterstriche enthalten</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>ID illegally masks global JavaScript property</source>
         <translation>Der Id-Wert überdeckt eine globale Eigenschaft aus JavaScript</translation>
     </message>
     <message>
-        <location line="+31"/>
-        <location line="+9"/>
         <source>No property alias location</source>
         <translation>Alias-Eigenschaft ohne Quellangabe</translation>
     </message>
     <message>
-        <location line="-4"/>
-        <location line="+25"/>
         <source>Invalid alias location</source>
         <translation>Ungültige Quellangabe bei Alias-Eigenschaft</translation>
     </message>
     <message>
-        <location line="-16"/>
         <source>Invalid alias reference. An alias reference must be specified as &lt;id&gt; or &lt;id&gt;.&lt;property&gt;</source>
         <translation>Ungültige Referenzierung einer Alias-Eigenschaft. Die Referenz muss in der Form &lt;id&gt; oder &lt;id&gt;.&lt;property&gt; angegeben werden</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Invalid alias reference. Unable to find id &quot;%1&quot;</source>
         <translation>Ungültige Referenzierung einer Alias-Eigenschaft. Der Id-Wert &quot;%1&quot; konnte nicht gefunden werden</translation>
     </message>
@@ -2114,7 +1699,6 @@
 <context>
     <name>QDeclarativeComponent</name>
     <message>
-        <location filename="../src/declarative/qml/qdeclarativecomponent.cpp" line="+459"/>
         <source>Invalid empty URL</source>
         <translation>Ungültige (leere) URL</translation>
     </message>
@@ -2122,23 +1706,18 @@
 <context>
     <name>QDeclarativeCompositeTypeManager</name>
     <message>
-        <location filename="../src/declarative/qml/qdeclarativecompositetypemanager.cpp" line="+475"/>
-        <location line="+266"/>
         <source>Resource %1 unavailable</source>
         <translation>Auf die Ressource %1 konnte nicht zugegriffen werden</translation>
     </message>
     <message>
-        <location line="-122"/>
         <source>Namespace %1 cannot be used as a type</source>
         <translation>Der Namensraum %1 kann nicht als Typangabe verwendet werden</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>%1 %2</source>
         <translation>%1 %2</translation>
     </message>
     <message>
-        <location line="+47"/>
         <source>Type %1 unavailable</source>
         <translation>Der Typ  %1 ist nicht verfügbar</translation>
     </message>
@@ -2146,23 +1725,18 @@
 <context>
     <name>QDeclarativeConnections</name>
     <message>
-        <location filename="../src/declarative/util/qdeclarativeconnections.cpp" line="+209"/>
-        <location line="+60"/>
         <source>Cannot assign to non-existent property &quot;%1&quot;</source>
         <translation>Es kann keine Zuweisung erfolgen, da keine Eigenschaft des Namens &apos;%1&quot; existiert</translation>
     </message>
     <message>
-        <location line="-50"/>
         <source>Connections: nested objects not allowed</source>
         <translation>Verbindungen: Verschachtelte Objekte sind nicht zulässig</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Connections: syntax error</source>
         <translation>Verbindungen: Syntaxfehler</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Connections: script expected</source>
         <translation>Verbindungen: Skript erwartet</translation>
     </message>
@@ -2170,33 +1744,26 @@
 <context>
     <name>QDeclarativeEngine</name>
     <message>
-        <location filename="../src/declarative/qml/qdeclarativesqldatabase.cpp" line="+204"/>
         <source>executeSql called outside transaction()</source>
         <translation>&apos;executeSql&apos; wurde außerhalb von &apos;transaction()&apos; aufgerufen</translation>
     </message>
     <message>
-        <location line="+58"/>
         <source>Read-only Transaction</source>
         <translation>Schreibgeschützte Transaktion</translation>
     </message>
     <message>
-        <location line="+20"/>
         <source>Version mismatch: expected %1, found %2</source>
         <translation>Die Version %2 kann nicht verwendet werden; es wird %1 benötigt</translation>
     </message>
     <message>
-        <location line="+14"/>
         <source>SQL transaction failed</source>
         <translation>Die SQL-Transaktion schlug fehl</translation>
     </message>
     <message>
-        <location line="+21"/>
         <source>transaction: missing callback</source>
         <translation>callback fehlt bei Transaktion</translation>
     </message>
     <message>
-        <location line="+57"/>
-        <location line="+16"/>
         <source>SQL: database version mismatch</source>
         <translation>SQL: Die Version der Datenbank entspricht nicht der erwarteten Version</translation>
     </message>
@@ -2204,12 +1771,10 @@
 <context>
     <name>QDeclarativeFlipable</name>
     <message>
-        <location filename="../src/declarative/graphicsitems/qdeclarativeflipable.cpp" line="+129"/>
         <source>front is a write-once property</source>
         <translation>&apos;front&apos; kann nur einmal zugewiesen werden</translation>
     </message>
     <message>
-        <location line="+19"/>
         <source>back is a write-once property</source>
         <translation>&apos;back&apos; kann nur einmal zugewiesen werden</translation>
     </message>
@@ -2217,75 +1782,58 @@
 <context>
     <name>QDeclarativeImportDatabase</name>
     <message>
-        <location filename="../src/declarative/qml/qdeclarativeimport.cpp" line="+294"/>
         <source>module &quot;%1&quot; definition &quot;%2&quot; not readable</source>
         <translation>Modul &quot;%1&quot; Definition &quot;%2&quot; kann nicht gelesen werden</translation>
     </message>
     <message>
-        <location line="+20"/>
         <source>plugin cannot be loaded for module &quot;%1&quot;: %2</source>
         <translation>Das Plugin des Moduls &quot;%1&quot; konnte nicht geladen werden: %2</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>module &quot;%1&quot; plugin &quot;%2&quot; not found</source>
         <translation>Modul &quot;%1&quot; Plugin &quot;%2&quot; konnte nicht gefunden werden</translation>
     </message>
     <message>
-        <location line="+79"/>
-        <location line="+55"/>
         <source>module &quot;%1&quot; version %2.%3 is not installed</source>
         <translation>Modul &quot;%1&quot; Version %2.%3 ist nicht installiert</translation>
     </message>
     <message>
-        <location line="-53"/>
         <source>module &quot;%1&quot; is not installed</source>
         <translation>Modul &quot;%1&quot; ist nicht installiert</translation>
     </message>
     <message>
-        <location line="+14"/>
-        <location line="+19"/>
         <source>&quot;%1&quot;: no such directory</source>
         <translation>Das Verzeichnis &quot;%1&quot; existiert nicht</translation>
     </message>
     <message>
-        <location line="-2"/>
         <source>import &quot;%1&quot; has no qmldir and no namespace</source>
         <translation>&quot;qmldir&quot; und Namensraum fehlen bei dem Import &quot;%1&quot;</translation>
     </message>
     <message>
-        <location line="+46"/>
         <source>- %1 is not a namespace</source>
         <translation>- %1 ist kein gültiger Namensraum</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>- nested namespaces not allowed</source>
         <translation>- geschachtelte Namensräume sind nicht zulässig</translation>
     </message>
     <message>
-        <location line="+47"/>
-        <location line="+4"/>
         <source>local directory</source>
         <translation>Lokales Verzeichnis&apos;</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>is ambiguous. Found in %1 and in %2</source>
         <translation>ist mehrdeutig. Es kommt in %1 und in %2 vor</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>is ambiguous. Found in %1 in version %2.%3 and %4.%5</source>
         <translation>ist mehrdeutig. Es kommt in %1 in den Version %2.%3 und %4.%5 vor</translation>
     </message>
     <message>
-        <location line="+14"/>
         <source>is instantiated recursively</source>
         <translation>wird rekursiv instanziiert</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>is not a type</source>
         <translation>ist kein Typ</translation>
     </message>
@@ -2293,7 +1841,6 @@
 <context>
     <name>QDeclarativeKeyNavigationAttached</name>
     <message>
-        <location filename="../src/declarative/graphicsitems/qdeclarativeitemsmodule.cpp" line="+70"/>
         <source>KeyNavigation is only available via attached properties</source>
         <translation>Tastennavigation ist nur über Eigenschaften des Typs &apos;attached&apos; verfügbar</translation>
     </message>
@@ -2301,7 +1848,6 @@
 <context>
     <name>QDeclarativeKeysAttached</name>
     <message>
-        <location line="+1"/>
         <source>Keys is only available via attached properties</source>
         <translation>Die Unterstützung für Tasten ist nur über Eigenschaften des Typs &apos;attached&apos; verfügbar</translation>
     </message>
@@ -2309,59 +1855,46 @@
 <context>
     <name>QDeclarativeListModel</name>
     <message>
-        <location filename="../src/declarative/util/qdeclarativelistmodel.cpp" line="+399"/>
         <source>remove: index %1 out of range</source>
         <translation>remove: Der Index %1 ist außerhalb des gültigen Bereichs</translation>
     </message>
     <message>
-        <location line="+33"/>
         <source>insert: value is not an object</source>
         <translation>insert: Der Wert ist kein Objekt</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>insert: index %1 out of range</source>
         <translation>insert: Der Index %1 ist außerhalb des gültigen Bereichs</translation>
     </message>
     <message>
-        <location line="+30"/>
         <source>move: out of range</source>
         <translation>move: Außerhalb des gültigen Bereichs</translation>
     </message>
     <message>
-        <location line="+40"/>
         <source>append: value is not an object</source>
         <translation>append: Der Wert ist kein Objekt</translation>
     </message>
     <message>
-        <location line="+55"/>
         <source>set: value is not an object</source>
         <translation>set: Der Wert ist kein Objekt</translation>
     </message>
     <message>
-        <location line="+4"/>
-        <location line="+34"/>
         <source>set: index %1 out of range</source>
         <translation>set: Der Index %1 ist außerhalb des gültigen Bereichs</translation>
     </message>
     <message>
-        <location line="+39"/>
-        <location line="+15"/>
         <source>ListElement: cannot contain nested elements</source>
         <translation>ListElement kann keine geschachtelten Elemente enthalten</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>ListElement: cannot use reserved &quot;id&quot; property</source>
         <translation>ListElement: Die &quot;id&quot;-Eigenschaft kann nicht verwendet werden</translation>
     </message>
     <message>
-        <location line="+49"/>
         <source>ListElement: cannot use script for property value</source>
         <translation>ListElement: Es kann kein Skript für den Wert der Eigenschaft verwendet werden</translation>
     </message>
     <message>
-        <location line="+29"/>
         <source>ListModel: undefined property &apos;%1&apos;</source>
         <translation>ListModel: Die Eigenschaft &apos;%1&apos; ist nicht definiert</translation>
     </message>
@@ -2369,7 +1902,6 @@
 <context>
     <name>QDeclarativeLoader</name>
     <message>
-        <location filename="../src/declarative/graphicsitems/qdeclarativeloader.cpp" line="+323"/>
         <source>Loader does not support loading non-visual elements.</source>
         <translation>Das Laden nicht-visueller Elemente ist nicht unterstützt.</translation>
     </message>
@@ -2377,18 +1909,14 @@
 <context>
     <name>QDeclarativeParentAnimation</name>
     <message>
-        <location filename="../src/declarative/util/qdeclarativeanimation.cpp" line="-169"/>
         <source>Unable to preserve appearance under complex transform</source>
         <translation>Das Erscheinungsbild kann bei einer komplexen Transformation nicht beibehalten werden</translation>
     </message>
     <message>
-        <location line="+10"/>
-        <location line="+7"/>
         <source>Unable to preserve appearance under non-uniform scale</source>
         <translation>Das Erscheinungsbild kann bei einer nicht-uniformen Skalierung nicht beibehalten werden</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Unable to preserve appearance under scale of 0</source>
         <translation>Das Erscheinungsbild kann bei einer Skalierung mit 0 nicht beibehalten werden</translation>
     </message>
@@ -2396,18 +1924,14 @@
 <context>
     <name>QDeclarativeParentChange</name>
     <message>
-        <location filename="../src/declarative/util/qdeclarativestateoperations.cpp" line="+95"/>
         <source>Unable to preserve appearance under complex transform</source>
         <translation>Das Erscheinungsbild kann bei einer komplexen Transformation nicht beibehalten werden</translation>
     </message>
     <message>
-        <location line="+10"/>
-        <location line="+7"/>
         <source>Unable to preserve appearance under non-uniform scale</source>
         <translation>Das Erscheinungsbild kann bei einer nicht-uniformen Skalierung nicht beibehalten werden</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Unable to preserve appearance under scale of 0</source>
         <translation>Das Erscheinungsbild kann bei einer Skalierung mit 0 nicht beibehalten werden</translation>
     </message>
@@ -2415,144 +1939,110 @@
 <context>
     <name>QDeclarativeParser</name>
     <message>
-        <location filename="../src/declarative/qml/parser/qdeclarativejslexer.cpp" line="+579"/>
         <source>Illegal character</source>
         <translation>Ungültiges Zeichen</translation>
     </message>
     <message>
-        <location line="+14"/>
         <source>Unclosed string at end of line</source>
         <translation>Zeichenkette am Zeilenende nicht abgeschlossen</translation>
     </message>
     <message>
-        <location line="+26"/>
         <source>Illegal escape squence</source>
         <translation>Ungültiges Escape-Sequenz</translation>
     </message>
     <message>
-        <location line="-77"/>
-        <location line="+123"/>
-        <location line="+54"/>
         <source>Illegal unicode escape sequence</source>
         <translation>Ungültige Unicode-Escape-Sequenz</translation>
     </message>
     <message>
-        <location line="-28"/>
         <source>Unclosed comment at end of file</source>
         <translation>Kommentar am Dateiende nicht abgeschlossen</translation>
     </message>
     <message>
-        <location line="+102"/>
         <source>Illegal syntax for exponential number</source>
         <translation>Ungültige Syntax des Exponenten</translation>
     </message>
     <message>
-        <location line="+26"/>
         <source>Identifier cannot start with numeric literal</source>
         <translation>Ein Bezeichner darf nicht mit einem numerischen Literal beginnen</translation>
     </message>
     <message>
-        <location line="+338"/>
         <source>Unterminated regular expression literal</source>
         <translation>Regulärer Ausdruck nicht abgeschlossen</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Invalid regular expression flag &apos;%0&apos;</source>
         <translation>Ungültiger Modifikator &apos;%0&apos; bei regulärem Ausdruck</translation>
     </message>
     <message>
-        <location line="+16"/>
-        <location line="+22"/>
         <source>Unterminated regular expression backslash sequence</source>
         <translation>Regulärer Ausdruck nicht abgeschlossen</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>Unterminated regular expression class</source>
         <translation>Klasse im regulären Ausdruck nicht abgeschlossen</translation>
     </message>
     <message>
-        <location filename="../src/declarative/qml/parser/qdeclarativejsparser.cpp" line="+1828"/>
-        <location line="+67"/>
         <source>Syntax error</source>
         <translation>Syntaxfehler</translation>
     </message>
     <message>
-        <location line="-65"/>
         <source>Unexpected token `%1&apos;</source>
         <translation>Unerwartetes Element &apos;%1&apos;</translation>
     </message>
     <message>
-        <location line="+28"/>
-        <location line="+24"/>
         <source>Expected token `%1&apos;</source>
         <translation>Es wird das Element &apos;%1&apos; erwartet</translation>
     </message>
     <message>
-        <location filename="../src/declarative/qml/qdeclarativescriptparser.cpp" line="+260"/>
-        <location line="+431"/>
-        <location line="+59"/>
         <source>Property value set multiple times</source>
         <translation>Mehrfache Zuweisung eines Wertes an eine Eigenschaft</translation>
     </message>
     <message>
-        <location line="-479"/>
         <source>Expected type name</source>
         <translation>Es wird ein Typname erwartet</translation>
     </message>
     <message>
-        <location line="+136"/>
         <source>Invalid import qualifier ID</source>
         <translation>Ungültige Id-Angabe bei Import</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Reserved name &quot;Qt&quot; cannot be used as an qualifier</source>
         <translation>Der reservierte Name &quot;Qt&quot; kann nicht als Bezeichner verwendet werden</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Script import qualifiers must be unique.</source>
         <translation>Der für den Skript-Import angegebene Qualifizierer muss eindeutig sein.</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>Script import requires a qualifier</source>
         <translation>Der Skript-Import erfordert die Angabe eines Qualifizierers.</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>Library import requires a version</source>
         <translation>Der Import einer Bibliothek erfordert eine Versionsangabe</translation>
     </message>
     <message>
-        <location line="+59"/>
         <source>Expected parameter type</source>
         <translation>Es wird eine Typangabe für den Parameter erwartet</translation>
     </message>
     <message>
-        <location line="+42"/>
         <source>Invalid property type modifier</source>
         <translation>Ungültiger Modifikator für den Typ der Eigenschaft</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Unexpected property type modifier</source>
         <translation>Modifikator für den Typ der Eigenschaft an dieser Stelle nicht zulässig</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Expected property type</source>
         <translation>Typangabe für Eigenschaft erwartet</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Readonly not yet supported</source>
         <translation>&apos;read-only&apos; wird an dieser Stelle noch nicht unterstützt</translation>
     </message>
     <message>
-        <location line="+215"/>
         <source>JavaScript declaration outside Script element</source>
         <translation>Eine JavaScript-Deklaration ist außerhalb eines Skriptelementes nicht zulässig</translation>
     </message>
@@ -2560,39 +2050,47 @@
 <context>
     <name>QDeclarativePauseAnimation</name>
     <message>
-        <location filename="../src/declarative/util/qdeclarativeanimation.cpp" line="-1990"/>
         <source>Cannot set a duration of &lt; 0</source>
         <translation>Es kann keine Zeitdauer &lt;0 gesetzt werden</translation>
     </message>
 </context>
 <context>
+    <name>QDeclarativePixmap</name>
+    <message>
+        <source>Error decoding: %1: %2</source>
+        <translation>Fehler beim Decodieren: %1: %2</translation>
+    </message>
+    <message>
+        <source>Failed to get image from provider: %1</source>
+        <translation>Bilddaten konnten nicht erhalten werden: %1</translation>
+    </message>
+    <message>
+        <source>Cannot open: %1</source>
+        <translation>Fehlschlag beim Öffnen: %1</translation>
+    </message>
+</context>
+<context>
     <name>QDeclarativePixmapCache</name>
     <message>
-        <location filename="../src/declarative/util/qdeclarativepixmapcache.cpp" line="+190"/>
         <source>Error decoding: %1: %2</source>
-        <translation>Fehler beim Decodieren: %1: %2</translation>
-    </message>
-    <message>
-        <location line="+70"/>
+        <translation type="obsolete">Fehler beim Decodieren: %1: %2</translation>
+    </message>
+    <message>
         <source>Failed to get image from provider: %1</source>
-        <translation>Bilddaten konnten nicht erhalten werden: %1</translation>
-    </message>
-    <message>
-        <location line="+19"/>
-        <location line="+345"/>
+        <translation type="obsolete">Bilddaten konnten nicht erhalten werden: %1</translation>
+    </message>
+    <message>
         <source>Cannot open: %1</source>
-        <translation>Fehlschlag beim Öffnen: %1</translation>
-    </message>
-    <message>
-        <location line="+37"/>
+        <translation type="obsolete">Fehlschlag beim Öffnen: %1</translation>
+    </message>
+    <message>
         <source>Unknown Error loading %1</source>
-        <translation>Unbekannter Fehler beim Laden von %1</translation>
+        <translation type="obsolete">Unbekannter Fehler beim Laden von %1</translation>
     </message>
 </context>
 <context>
     <name>QDeclarativePropertyAnimation</name>
     <message>
-        <location filename="../src/declarative/util/qdeclarativeanimation.cpp" line="+1113"/>
         <source>Cannot set a duration of &lt; 0</source>
         <translation>Es kann keine Zeitdauer &lt;0 gesetzt werden</translation>
     </message>
@@ -2600,17 +2098,14 @@
 <context>
     <name>QDeclarativePropertyChanges</name>
     <message>
-        <location filename="../src/declarative/util/qdeclarativepropertychanges.cpp" line="+267"/>
         <source>PropertyChanges does not support creating state-specific objects.</source>
         <translation>Die Erzeugung von Objekten, die einem Zustand zugeordnet sind, wird von PropertyChanges nicht unterstützt.</translation>
     </message>
     <message>
-        <location line="+157"/>
         <source>Cannot assign to non-existent property &quot;%1&quot;</source>
         <translation>Es kann keine Zuweisung erfolgen, da keine Eigenschaft des Namens &apos;%1&quot; existiert</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Cannot assign to read-only property &quot;%1&quot;</source>
         <translation>Die Eigenschaft &apos;%1&quot; ist schreibgeschützt und kann daher nicht zugewiesen werden</translation>
     </message>
@@ -2618,13 +2113,10 @@
 <context>
     <name>QDeclarativeTextInput</name>
     <message>
-        <location filename="../src/declarative/graphicsitems/qdeclarativetextinput.cpp" line="+793"/>
-        <location line="+8"/>
         <source>Could not load cursor delegate</source>
         <translation>Cursor-Delegate konnte nicht geladen werden</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>Could not instantiate cursor delegate</source>
         <translation>Cursor-Delegate konnte angelegt werden</translation>
     </message>
@@ -2632,47 +2124,38 @@
 <context>
     <name>QDeclarativeVME</name>
     <message>
-        <location filename="../src/declarative/qml/qdeclarativevme.cpp" line="+194"/>
         <source>Unable to create object of type %1</source>
         <translation>Es konnte kein Objekt des Typs %1 erzeugt werden</translation>
     </message>
     <message>
-        <location line="+390"/>
         <source>Cannot assign value %1 to property %2</source>
         <translation>Der Wert &apos;%1&apos; kann nicht der Eigenschaft %2 zugewiesen werden</translation>
     </message>
     <message>
-        <location line="+22"/>
         <source>Cannot assign object type %1 with no default method</source>
         <translation>Der Objekttyp %1 kann nicht zugewiesen werden, da keine Vorgabe-Methode existiert</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Cannot connect mismatched signal/slot %1 %vs. %2</source>
         <translation>Es kann keine Verbindung zwischen dem Signal %1 und dem Slot %2 hergestellt werden, da sie nicht zusammenpassen</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Cannot assign an object to signal property %1</source>
         <translation>Der Signal-Eigenschaft %1 kann kein Objekt zugewiesen werden</translation>
     </message>
     <message>
-        <location line="+146"/>
         <source>Cannot assign object to list</source>
         <translation>Zuweisung eines Objekts an eine Liste nicht zulässig</translation>
     </message>
     <message>
-        <location line="+41"/>
         <source>Cannot assign object to interface property</source>
         <translation>Der Eigenschaft der Schnittstelle kann kein Objekt zugewiesen werden</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>Unable to create attached object</source>
         <translation>Es konnte kein &apos;attached&apos;-Objekt erzeugt werden</translation>
     </message>
     <message>
-        <location line="+32"/>
         <source>Cannot set properties on %1 as it is null</source>
         <translation>Es können keine Eigenschaften auf %1 gesetzt werden, da es &apos;null&apos; ist</translation>
     </message>
@@ -2680,7 +2163,6 @@
 <context>
     <name>QDeclarativeVisualDataModel</name>
     <message>
-        <location filename="../src/declarative/graphicsitems/qdeclarativevisualitemmodel.cpp" line="+1090"/>
         <source>Delegate component must be Item type.</source>
         <translation>Delegate-Komponente muss vom Typ &apos;Item&apos; sein</translation>
     </message>
@@ -2688,8 +2170,6 @@
 <context>
     <name>QDeclarativeXmlListModel</name>
     <message>
-        <location filename="../src/declarative/util/qdeclarativeutilmodule.cpp" line="-12"/>
-        <location line="+2"/>
         <source>Qt was built without support for xmlpatterns</source>
         <translation>Diese Version der Qt-Bibliothek wurde ohne Unterstützung für xmlpatterns erstellt</translation>
     </message>
@@ -2697,7 +2177,6 @@
 <context>
     <name>QDeclarativeXmlListModelRole</name>
     <message>
-        <location filename="../src/declarative/util/qdeclarativexmllistmodel_p.h" line="+174"/>
         <source>An XmlRole query must not start with &apos;/&apos;</source>
         <translation>Eine XmlRole-Abfrage darf nicht mit &apos;/&apos; beginnen</translation>
     </message>
@@ -2705,7 +2184,6 @@
 <context>
     <name>QDeclarativeXmlRoleList</name>
     <message>
-        <location filename="../src/declarative/util/qdeclarativexmllistmodel.cpp" line="+712"/>
         <source>An XmlListModel query must start with &apos;/&apos; or &quot;//&quot;</source>
         <translation>Eine XmlListModel-Abfrage muss mit &apos;/&apos; oder &quot;//&quot; beginnen</translation>
     </message>
@@ -2713,17 +2191,14 @@
 <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>Tachometer</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>SliderHandle</source>
         <translation>Schieberegler</translation>
     </message>
@@ -2731,12 +2206,10 @@
 <context>
     <name>QDialog</name>
     <message>
-        <location filename="../src/gui/dialogs/qdialog.cpp" line="+645"/>
         <source>What&apos;s This?</source>
         <translation>Direkthilfe</translation>
     </message>
     <message>
-        <location line="-122"/>
         <source>Done</source>
         <translation>Fertig</translation>
     </message>
@@ -2744,124 +2217,98 @@
 <context>
     <name>QDialogButtonBox</name>
     <message>
-        <location filename="../src/gui/dialogs/qmessagebox.cpp" line="+1920"/>
-        <location line="+464"/>
-        <location filename="../src/gui/widgets/qdialogbuttonbox.cpp" line="+649"/>
         <source>OK</source>
         <translation>OK</translation>
     </message>
     <message>
-        <location filename="../src/gui/widgets/qdialogbuttonbox.cpp" line="+3"/>
         <source>Save</source>
         <translation>Speichern</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>&amp;Save</source>
         <translation>S&amp;peichern</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Open</source>
         <translation>Öffnen</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Cancel</source>
         <translation>Abbrechen</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>&amp;Cancel</source>
         <translation>&amp;Abbrechen</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Close</source>
         <translation>Schließen</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>&amp;Close</source>
         <translation>Schl&amp;ießen</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Apply</source>
         <translation>Anwenden</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Reset</source>
         <translation>Zurücksetzen</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Help</source>
         <translation>Hilfe</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Don&apos;t Save</source>
         <translation>Nicht speichern</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Discard</source>
         <translation>Verwerfen</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>&amp;Yes</source>
         <translation>&amp;Ja</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Yes to &amp;All</source>
         <translation>Ja, &amp;alle</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>&amp;No</source>
         <translation>&amp;Nein</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>N&amp;o to All</source>
         <translation>N&amp;ein, keine</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Save All</source>
         <translation>Alles speichern</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Abort</source>
         <translation>Abbrechen</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Retry</source>
         <translation>Wiederholen</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Ignore</source>
         <translation>Ignorieren</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Restore Defaults</source>
         <translation>Voreinstellungen</translation>
     </message>
     <message>
-        <location line="-29"/>
         <source>Close without Saving</source>
         <translation>Schließen ohne Speichern</translation>
     </message>
     <message>
-        <location line="-27"/>
         <source>&amp;OK</source>
         <translation>&amp;OK</translation>
     </message>
@@ -2869,29 +2316,24 @@
 <context>
     <name>QDirModel</name>
     <message>
-        <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+457"/>
         <source>Name</source>
         <translation>Name</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Size</source>
         <translation>Größe</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Kind</source>
         <comment>Match OS X Finder</comment>
         <translation>Art</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Type</source>
         <comment>All other platforms</comment>
         <translation>Typ</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Date Modified</source>
         <translation>Änderungsdatum</translation>
     </message>
@@ -2899,17 +2341,14 @@
 <context>
     <name>QDockWidget</name>
     <message>
-        <location filename="../src/plugins/accessible/widgets/qaccessiblewidgets.cpp" line="+1239"/>
         <source>Close</source>
         <translation>Schließen</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Dock</source>
         <translation>Andocken</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Float</source>
         <translation>Herauslösen</translation>
     </message>
@@ -2917,12 +2356,10 @@
 <context>
     <name>QDoubleSpinBox</name>
     <message>
-        <location filename="../src/plugins/accessible/widgets/rangecontrols.cpp" line="-537"/>
         <source>More</source>
         <translation>Mehr</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Less</source>
         <translation>Weniger</translation>
     </message>
@@ -2930,27 +2367,22 @@
 <context>
     <name>QErrorMessage</name>
     <message>
-        <location filename="../src/gui/dialogs/qerrormessage.cpp" line="+414"/>
         <source>&amp;Show this message again</source>
         <translation>Diese Meldung wieder an&amp;zeigen</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-Ausgabe:</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Warning:</source>
         <translation>Achtung:</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Fatal Error:</source>
         <translation>Fehler:</translation>
     </message>
@@ -2958,38 +2390,30 @@
 <context>
     <name>QFile</name>
     <message>
-        <location filename="../src/corelib/io/qfile.cpp" line="+703"/>
-        <location line="+155"/>
         <source>Destination file exists</source>
         <translation>Die Zieldatei existiert bereits</translation>
     </message>
     <message>
-        <location line="-140"/>
         <source>Will not rename sequential file using block copy</source>
         <translation>Eine sequentielle Datei kann nicht durch blockweises Kopieren umbenannt werden</translation>
     </message>
     <message>
-        <location line="+23"/>
         <source>Cannot remove source file</source>
         <translation>Die Quelldatei kann nicht entfernt werden</translation>
     </message>
     <message>
-        <location line="+130"/>
         <source>Cannot open %1 for input</source>
         <translation>%1 kann nicht zum Lesen geöffnet werden</translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>Cannot open for output</source>
         <translation>Das Öffnen zum Schreiben ist fehlgeschlagen</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>Failure to write block</source>
         <translation>Der Datenblock konnte nicht geschrieben werden</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>Cannot create %1 for output</source>
         <translation>%1 kann nicht erstellt werden</translation>
     </message>
@@ -2997,113 +2421,84 @@
 <context>
     <name>QFileDialog</name>
     <message>
-        <location filename="../src/gui/dialogs/qfiledialog.cpp" line="+558"/>
-        <location line="+481"/>
         <source>All Files (*)</source>
         <translation>Alle Dateien (*)</translation>
     </message>
     <message>
-        <location filename="../src/gui/dialogs/qfiledialog.ui"/>
-        <location filename="../src/gui/dialogs/qfiledialog_embedded.ui"/>
         <source>Back</source>
         <translation>Zurück</translation>
     </message>
     <message>
-        <location/>
-        <location filename="../src/gui/dialogs/qfiledialog_embedded.ui"/>
         <source>List View</source>
         <translation>Liste</translation>
     </message>
     <message>
-        <location/>
-        <location filename="../src/gui/dialogs/qfiledialog_embedded.ui"/>
         <source>Detail View</source>
         <translation>Details</translation>
     </message>
     <message>
-        <location filename="../src/gui/itemviews/qfileiconprovider.cpp" line="+467"/>
-        <location line="+1"/>
         <source>File</source>
         <translation>Datei</translation>
     </message>
     <message>
-        <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-498"/>
         <source>Open</source>
         <translation>Öffnen</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Save As</source>
         <translation>Speichern unter</translation>
     </message>
     <message>
-        <location line="+709"/>
-        <location line="+55"/>
-        <location line="+1532"/>
         <source>&amp;Open</source>
         <translation>&amp;Öffnen</translation>
     </message>
     <message>
-        <location line="-1587"/>
-        <location line="+55"/>
         <source>&amp;Save</source>
         <translation>S&amp;peichern</translation>
     </message>
     <message>
-        <location line="+1805"/>
         <source>Recent Places</source>
         <translation>Zuletzt besucht</translation>
     </message>
     <message>
-        <location line="-2540"/>
         <source>&amp;Rename</source>
         <translation>&amp;Umbenennen</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Delete</source>
         <translation>&amp;Löschen</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Show &amp;hidden files</source>
         <translation>&amp;Versteckte Dateien anzeigen</translation>
     </message>
     <message>
-        <location line="+1986"/>
         <source>New Folder</source>
         <translation>Neues Verzeichnis</translation>
     </message>
     <message>
-        <location line="-2021"/>
         <source>Find Directory</source>
         <translation>Verzeichnis suchen</translation>
     </message>
     <message>
-        <location line="+716"/>
         <source>Directories</source>
         <translation>Verzeichnisse</translation>
     </message>
     <message>
-        <location filename="../src/gui/dialogs/qfiledialog_win.cpp" line="+148"/>
         <source>All Files (*.*)</source>
         <translation>Alle Dateien (*.*)</translation>
     </message>
     <message>
-        <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-675"/>
-        <location line="+679"/>
         <source>Directory:</source>
         <translation>Verzeichnis:</translation>
     </message>
     <message>
-        <location line="+819"/>
         <source>%1 already exists.
 Do you want to replace it?</source>
         <translation>Die Datei %1 existiert bereits.
 Soll sie überschrieben werden?</translation>
     </message>
     <message>
-        <location line="+20"/>
         <source>%1
 File not found.
 Please verify the correct file name was given.</source>
@@ -3112,25 +2507,18 @@
 Stellen Sie sicher, dass der Dateiname richtig ist.</translation>
     </message>
     <message>
-        <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+402"/>
         <source>My Computer</source>
         <translation>Mein Computer</translation>
     </message>
     <message>
-        <location filename="../src/gui/dialogs/qfiledialog.ui"/>
-        <location filename="../src/gui/dialogs/qfiledialog_embedded.ui"/>
         <source>Parent Directory</source>
         <translation>Übergeordnetes Verzeichnis</translation>
     </message>
     <message>
-        <location/>
-        <location filename="../src/gui/dialogs/qfiledialog_embedded.ui"/>
         <source>Files of type:</source>
         <translation>Dateien des Typs:</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>
@@ -3139,128 +2527,100 @@
 Stellen Sie sicher, dass der Verzeichnisname richtig ist.</translation>
     </message>
     <message>
-        <location line="-218"/>
         <source>&apos;%1&apos; is write protected.
 Do you want to delete it anyway?</source>
         <translation>&apos;%1&apos; ist schreibgeschützt.
 Möchten Sie die Datei trotzdem löschen?</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Are sure you want to delete &apos;%1&apos;?</source>
         <translation>Sind Sie sicher, dass Sie &apos;%1&apos; löschen möchten?</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Could not delete directory.</source>
         <translation>Konnte Verzeichnis nicht löschen.</translation>
     </message>
     <message>
-        <location filename="../src/gui/itemviews/qfileiconprovider.cpp" line="-4"/>
         <source>Drive</source>
         <translation>Laufwerk</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>File Folder</source>
         <comment>Match Windows Explorer</comment>
         <translation>Ordner</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Folder</source>
         <comment>All other platforms</comment>
         <translation>Order</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Alias</source>
         <comment>Mac OS X Finder</comment>
         <translation>Alias</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Shortcut</source>
         <comment>All other platforms</comment>
         <translation>Symbolischer Link</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Unknown</source>
         <translation>Unbekannt</translation>
     </message>
     <message>
-        <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-2140"/>
         <source>Show </source>
         <translation>Anzeigen </translation>
     </message>
     <message>
-        <location filename="../src/gui/dialogs/qfiledialog.ui"/>
-        <location filename="../src/gui/dialogs/qfiledialog_embedded.ui"/>
         <source>Forward</source>
         <translation>Vorwärts</translation>
     </message>
     <message>
-        <location filename="../src/gui/dialogs/qfiledialog.cpp" line="+7"/>
         <source>&amp;New Folder</source>
         <translation>&amp;Neues Verzeichnis</translation>
     </message>
     <message>
-        <location line="+687"/>
-        <location line="+43"/>
         <source>&amp;Choose</source>
         <translation>&amp;Auswählen</translation>
     </message>
     <message>
-        <location filename="../src/gui/dialogs/qsidebar.cpp" line="+442"/>
         <source>Remove</source>
         <translation>Löschen</translation>
     </message>
     <message>
-        <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-723"/>
-        <location line="+683"/>
         <source>File &amp;name:</source>
         <translation>Datei&amp;name:</translation>
     </message>
     <message>
-        <location filename="../src/gui/dialogs/qfiledialog.ui"/>
-        <location filename="../src/gui/dialogs/qfiledialog_embedded.ui"/>
         <source>Look in:</source>
         <translation>Suchen in:</translation>
     </message>
     <message>
-        <location/>
-        <location filename="../src/gui/dialogs/qfiledialog_embedded.ui"/>
         <source>Create New Folder</source>
         <translation>Neuen Ordner erstellen</translation>
     </message>
     <message>
-        <location/>
         <source>Go back</source>
         <translation>Zurück</translation>
     </message>
     <message>
-        <location/>
         <source>Go forward</source>
         <translation>Vor</translation>
     </message>
     <message>
-        <location/>
         <source>Go to the parent directory</source>
         <translation>Gehe zum übergeordneten Verzeichnis</translation>
     </message>
     <message>
-        <location/>
         <source>Create a New Folder</source>
         <translation>Neuen Ordner erstellen</translation>
     </message>
     <message>
-        <location/>
         <source>Change to list view mode</source>
         <translation>Wechsle zu Listenansicht</translation>
     </message>
     <message>
-        <location/>
         <source>Change to detail view mode</source>
         <translation>Wechsle zu Detailansicht</translation>
     </message>
@@ -3268,83 +2628,64 @@
 <context>
     <name>QFileSystemModel</name>
     <message>
-        <location filename="../src/gui/dialogs/qfilesystemmodel.cpp" line="+740"/>
-        <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+482"/>
         <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 Byte</translation>
     </message>
     <message>
-        <location line="+89"/>
         <source>Invalid filename</source>
         <translation>Ungültiger Dateiname</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;Der Name &quot;%1&quot; kann nicht verwendet werden.&lt;/b&gt;&lt;p&gt;Versuchen Sie, die Sonderzeichen zu entfernen oder einen kürzeren Namen zu verwenden.</translation>
     </message>
     <message>
-        <location line="+64"/>
         <source>Name</source>
         <translation>Name</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Size</source>
         <translation>Größe</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Kind</source>
         <comment>Match OS X Finder</comment>
         <translation>Art</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>Änderungsdatum</translation>
     </message>
     <message>
-        <location filename="../src/gui/dialogs/qfilesystemmodel_p.h" line="+261"/>
         <source>My Computer</source>
         <translation>Mein Computer</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Computer</source>
         <translation>Computer</translation>
     </message>
     <message>
-        <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+1"/>
         <source>%1 byte(s)</source>
         <translation>%1 byte</translation>
     </message>
@@ -3352,221 +2693,170 @@
 <context>
     <name>QFontDatabase</name>
     <message>
-        <location filename="../src/gui/text/qfontdatabase.cpp" line="+102"/>
-        <location line="+1342"/>
         <source>Normal</source>
         <translation>Normal</translation>
     </message>
     <message>
-        <location line="-1339"/>
-        <location line="+12"/>
-        <location line="+1315"/>
         <source>Bold</source>
         <translation>Fett</translation>
     </message>
     <message>
-        <location line="-1324"/>
-        <location line="+1326"/>
         <source>Demi Bold</source>
         <translation>Halbfett</translation>
     </message>
     <message>
-        <location line="-1323"/>
-        <location line="+18"/>
-        <location line="+1301"/>
         <source>Black</source>
         <translation>Schwarz</translation>
     </message>
     <message>
-        <location line="-1311"/>
         <source>Demi</source>
         <translation>Semi</translation>
     </message>
     <message>
-        <location line="+6"/>
-        <location line="+1311"/>
         <source>Light</source>
         <translation>Leicht</translation>
     </message>
     <message>
-        <location line="-1165"/>
-        <location line="+1168"/>
         <source>Italic</source>
         <translation>Kursiv</translation>
     </message>
     <message>
-        <location line="-1165"/>
-        <location line="+1167"/>
         <source>Oblique</source>
         <translation>Schräggestellt</translation>
     </message>
     <message>
-        <location line="+704"/>
         <source>Any</source>
         <translation>Alle</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Latin</source>
         <translation>Lateinisch</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Greek</source>
         <translation>Griechisch</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Cyrillic</source>
         <translation>Kyrillisch</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Armenian</source>
         <translation>Armenisch</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Hebrew</source>
         <translation>Hebräisch</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Arabic</source>
         <translation>Arabisch</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Syriac</source>
         <translation>Syrisch</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Thaana</source>
         <translation>Thaana</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Devanagari</source>
         <translation>Devanagari</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Bengali</source>
         <translation>Bengalisch</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>Tamilisch</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Telugu</source>
         <translation>Telugu</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Kannada</source>
         <translation>Kannada</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Malayalam</source>
         <translation>Malayalam</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Sinhala</source>
         <translation>Sinhala</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Thai</source>
         <translation>Thailändisch</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Lao</source>
         <translation>Laotisch</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Tibetan</source>
         <translation>Tibetisch</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Myanmar</source>
         <translation>Myanmar</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Georgian</source>
         <translation>Georgisch</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Khmer</source>
         <translation>Khmer</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Simplified Chinese</source>
         <translation>Chinesisch (Kurzzeichen)</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Traditional Chinese</source>
         <translation>Chinesisch (Langzeichen)</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Japanese</source>
         <translation>Japanisch</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Korean</source>
         <translation>Koreanisch</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Vietnamese</source>
         <translation>Vietnamesisch</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Symbol</source>
         <translation>Symbol</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Ogham</source>
         <translation>Ogham</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Runic</source>
         <translation>Runen</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>N&apos;Ko</source>
         <translation>N&apos;Ko</translation>
     </message>
@@ -3574,47 +2864,38 @@
 <context>
     <name>QFontDialog</name>
     <message>
-        <location filename="../src/gui/dialogs/qfontdialog.cpp" line="+768"/>
         <source>&amp;Font</source>
         <translation>&amp;Schriftart</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Font st&amp;yle</source>
         <translation>Schrifts&amp;til</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Size</source>
         <translation>&amp;Größe</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Effects</source>
         <translation>Effekte</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Stri&amp;keout</source>
         <translation>Durch&amp;gestrichen</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Underline</source>
         <translation>&amp;Unterstrichen</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Sample</source>
         <translation>Beispiel</translation>
     </message>
     <message>
-        <location line="-595"/>
         <source>Select Font</source>
         <translation>Schriftart auswählen</translation>
     </message>
     <message>
-        <location line="+596"/>
         <source>Wr&amp;iting System</source>
         <translation>&amp;Schriftsystem</translation>
     </message>
@@ -3622,145 +2903,104 @@
 <context>
     <name>QFtp</name>
     <message>
-        <location filename="../src/qt3support/network/q3ftp.cpp" line="+2303"/>
         <source>Host %1 found</source>
         <translation>Rechner %1 gefunden</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Host found</source>
         <translation>Rechner gefunden</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>Verbunden mit Rechner %1</translation>
     </message>
     <message>
-        <location filename="../src/qt3support/network/q3ftp.cpp" line="+7"/>
         <source>Connected to host</source>
         <translation>Verbindung mit Rechner besteht</translation>
     </message>
     <message>
-        <location line="-5"/>
         <source>Connection to %1 closed</source>
         <translation>Verbindung mit %1 beendet</translation>
     </message>
     <message>
-        <location filename="../src/network/access/qftp.cpp" line="+1383"/>
-        <location filename="../src/qt3support/network/q3ftp.cpp" line="-243"/>
-        <location line="+250"/>
         <source>Connection closed</source>
         <translation>Verbindung beendet</translation>
     </message>
     <message>
-        <location line="-1495"/>
-        <location filename="../src/qt3support/network/q3ftp.cpp" line="-1566"/>
         <source>Host %1 not found</source>
         <translation>Rechner %1 konnte nicht gefunden werden</translation>
     </message>
     <message>
-        <location line="+4"/>
-        <location filename="../src/qt3support/network/q3ftp.cpp" line="+4"/>
         <source>Connection refused to host %1</source>
         <translation>Verbindung mit %1 verweigert</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Connection timed out to host %1</source>
         <translation>Das Zeitlimit für die Verbindung zu &apos;%1&apos; wurde überschritten</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>Unbekannter Fehler</translation>
     </message>
     <message>
-        <location line="+897"/>
-        <location filename="../src/qt3support/network/q3ftp.cpp" line="+77"/>
         <source>Connecting to host failed:
 %1</source>
         <translation>Verbindung mit Rechner schlug fehl:
 %1</translation>
     </message>
     <message>
-        <location line="+4"/>
-        <location filename="../src/qt3support/network/q3ftp.cpp" line="+3"/>
         <source>Login failed:
 %1</source>
         <translation>Anmeldung schlug fehl:
 %1</translation>
     </message>
     <message>
-        <location line="+4"/>
-        <location filename="../src/qt3support/network/q3ftp.cpp" line="+3"/>
         <source>Listing directory failed:
 %1</source>
         <translation>Der Inhalt des Verzeichnisses kann nicht angezeigt werden:
 %1</translation>
     </message>
     <message>
-        <location line="+4"/>
-        <location filename="../src/qt3support/network/q3ftp.cpp" line="+3"/>
         <source>Changing directory failed:
 %1</source>
         <translation>Ändern des Verzeichnisses schlug fehl:
 %1</translation>
     </message>
     <message>
-        <location line="+4"/>
-        <location filename="../src/qt3support/network/q3ftp.cpp" line="+3"/>
         <source>Downloading file failed:
 %1</source>
         <translation>Herunterladen der Datei schlug fehl:
 %1</translation>
     </message>
     <message>
-        <location line="+4"/>
-        <location filename="../src/qt3support/network/q3ftp.cpp" line="+3"/>
         <source>Uploading file failed:
 %1</source>
         <translation>Hochladen der Datei schlug fehl:
 %1</translation>
     </message>
     <message>
-        <location line="+4"/>
-        <location filename="../src/qt3support/network/q3ftp.cpp" line="+3"/>
         <source>Removing file failed:
 %1</source>
         <translation>Löschen der Datei schlug fehl:
 %1</translation>
     </message>
     <message>
-        <location line="+4"/>
-        <location filename="../src/qt3support/network/q3ftp.cpp" line="+3"/>
         <source>Creating directory failed:
 %1</source>
         <translation>Erstellen des Verzeichnisses schlug fehl:
 %1</translation>
     </message>
     <message>
-        <location line="+4"/>
-        <location filename="../src/qt3support/network/q3ftp.cpp" line="+3"/>
         <source>Removing directory failed:
 %1</source>
         <translation>Löschen des Verzeichnisses schlug fehl:
 %1</translation>
     </message>
     <message>
-        <location line="-1535"/>
-        <location filename="../src/qt3support/network/q3ftp.cpp" line="-1356"/>
         <source>Not connected</source>
         <translation>Keine Verbindung</translation>
     </message>
     <message>
-        <location line="+399"/>
-        <location filename="../src/qt3support/network/q3ftp.cpp" line="+332"/>
         <source>Connection refused for data connection</source>
         <translation>Verbindung für die Daten Verbindung verweigert</translation>
     </message>
@@ -3768,12 +3008,10 @@
 <context>
     <name>QHostInfo</name>
     <message>
-        <location filename="../src/network/kernel/qhostinfo_p.h" line="+103"/>
         <source>Unknown error</source>
         <translation>Unbekannter Fehler</translation>
     </message>
     <message>
-        <location filename="../src/network/kernel/qhostinfo.cpp" line="+171"/>
         <source>No host name given</source>
         <translation>Es wurde kein Hostname angegeben</translation>
     </message>
@@ -3781,37 +3019,22 @@
 <context>
     <name>QHostInfoAgent</name>
     <message>
-        <location filename="../src/network/kernel/qhostinfo_unix.cpp" line="+260"/>
-        <location line="+32"/>
-        <location filename="../src/network/kernel/qhostinfo_win.cpp" line="+215"/>
-        <location line="+27"/>
         <source>Host not found</source>
         <translation>Rechner konnte nicht gefunden werden</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>Unbekannter Adresstyp</translation>
     </message>
     <message>
-        <location line="+10"/>
-        <location filename="../src/network/kernel/qhostinfo_win.cpp" line="-19"/>
-        <location line="+27"/>
         <source>Unknown error</source>
         <translation>Unbekannter Fehler</translation>
     </message>
     <message>
-        <location line="-98"/>
-        <location filename="../src/network/kernel/qhostinfo_win.cpp" line="-67"/>
         <source>No host name given</source>
         <translation>Es wurde kein Hostname angegeben</translation>
     </message>
     <message>
-        <location line="+1"/>
-        <location filename="../src/network/kernel/qhostinfo_win.cpp" line="+0"/>
         <source>Invalid hostname</source>
         <translation>Ungültiger Rechnername</translation>
     </message>
@@ -3819,153 +3042,110 @@
 <context>
     <name>QHttp</name>
     <message>
-        <location filename="../src/network/access/qhttpnetworkconnection.cpp" line="-6"/>
-        <location filename="../src/qt3support/network/q3http.cpp" line="+1835"/>
         <source>Connection refused</source>
         <translation>Verbindung verweigert</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>Rechner %1 konnte nicht gefunden werden</translation>
     </message>
     <message>
-        <location line="-62"/>
-        <location filename="../src/qt3support/network/q3http.cpp" line="-45"/>
         <source>Wrong content length</source>
         <translation>Ungültige Längenangabe</translation>
     </message>
     <message>
-        <location line="+82"/>
-        <location filename="../src/qt3support/network/q3http.cpp" line="+48"/>
         <source>HTTP request failed</source>
         <translation>HTTP-Anfrage fehlgeschlagen</translation>
     </message>
     <message>
-        <location filename="../src/qt3support/network/q3http.cpp" line="+450"/>
         <source>Host %1 found</source>
         <translation>Rechner %1 gefunden</translation>
     </message>
     <message>
-        <location line="+14"/>
         <source>Host found</source>
         <translation>Rechner gefunden</translation>
     </message>
     <message>
-        <location line="-11"/>
         <source>Connected to host %1</source>
         <translation>Verbunden mit Rechner %1</translation>
     </message>
     <message>
-        <location line="+14"/>
         <source>Connected to host</source>
         <translation>Verbindung mit Rechner besteht</translation>
     </message>
     <message>
-        <location line="-11"/>
         <source>Connection to %1 closed</source>
         <translation>Verbindung mit %1 beendet</translation>
     </message>
     <message>
-        <location filename="../src/network/access/qhttpnetworkconnection.cpp" line="+7"/>
-        <location filename="../src/qt3support/network/q3http.cpp" line="+14"/>
         <source>Connection closed</source>
         <translation>Verbindung beendet</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>Unbekannter Fehler</translation>
     </message>
     <message>
-        <location line="-568"/>
-        <location filename="../src/qt3support/network/q3http.cpp" line="-370"/>
         <source>Request aborted</source>
         <translation>Anfrage wurde abgebrochen</translation>
     </message>
     <message>
-        <location line="+579"/>
-        <location filename="../src/qt3support/network/q3http.cpp" line="+381"/>
         <source>No server set to connect to</source>
         <translation>Für die Verbindung wurde kein Server-Rechner angegeben</translation>
     </message>
     <message>
-        <location line="+168"/>
-        <location filename="../src/qt3support/network/q3http.cpp" line="+60"/>
         <source>Server closed connection unexpectedly</source>
         <translation>Der Server hat die Verbindung unerwartet geschlossen</translation>
     </message>
     <message>
-        <location line="+172"/>
-        <location filename="../src/qt3support/network/q3http.cpp" line="+113"/>
         <source>Invalid HTTP response header</source>
         <translation>Der Kopfteil der HTTP-Antwort ist ungültig</translation>
     </message>
     <message>
-        <location line="+28"/>
         <source>Unknown authentication method</source>
         <translation>Unbekannte Authentifizierungsmethode</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>Der Inhalt (chunked body) der HTTP-Antwort ist ungültig</translation>
     </message>
     <message>
-        <location line="+38"/>
         <source>Error writing response to device</source>
         <translation>Beim Schreiben der Antwort auf das Ausgabegerät ist ein Fehler aufgetreten</translation>
     </message>
     <message>
-        <location line="-173"/>
         <source>Proxy authentication required</source>
         <translation>Proxy-Authentifizierung erforderlich</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Authentication required</source>
         <translation>Authentifizierung erforderlich</translation>
     </message>
     <message>
-        <location filename="../src/network/access/qhttpnetworkconnection.cpp" line="+6"/>
         <source>Proxy requires authentication</source>
         <translation>Der Proxy-Server verlangt eine Authentifizierung</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Host requires authentication</source>
         <translation>Der Hostrechner verlangt eine Authentifizierung</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Data corrupted</source>
         <translation>Die Daten sind verfälscht</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>SSL handshake failed</source>
         <translation>Im Ablauf des SSL-Protokolls ist ein Fehler aufgetreten.</translation>
     </message>
     <message>
-        <location line="-3"/>
         <source>Unknown protocol specified</source>
         <translation>Es wurde ein unbekanntes Protokoll angegeben</translation>
     </message>
     <message>
-        <location filename="../src/network/access/qhttp.cpp" line="-159"/>
         <source>Connection refused (or timed out)</source>
         <translation>Verbindung verweigert oder Zeitlimit überschritten</translation>
     </message>
     <message>
-        <location line="-2266"/>
         <source>HTTPS connection requested but SSL support not compiled in</source>
         <translation>Die angeforderte HTTPS-Verbindung kann nicht aufgebaut werden, da keine SSL-Unterstützung vorhanden ist</translation>
     </message>
@@ -3973,47 +3153,38 @@
 <context>
     <name>QHttpSocketEngine</name>
     <message>
-        <location filename="../src/network/socket/qhttpsocketengine.cpp" line="-89"/>
         <source>Did not receive HTTP response from proxy</source>
         <translation>Keine HTTP-Antwort vom Proxy-Server</translation>
     </message>
     <message>
-        <location line="+25"/>
         <source>Error parsing authentication request from proxy</source>
         <translation>Fehler beim Auswerten der Authentifizierungsanforderung des Proxy-Servers</translation>
     </message>
     <message>
-        <location line="+31"/>
         <source>Authentication required</source>
         <translation>Authentifizierung erforderlich</translation>
     </message>
     <message>
-        <location line="+27"/>
         <source>Proxy denied connection</source>
         <translation>Der Proxy-Server hat den Aufbau einer Verbindung verweigert</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>Error communicating with HTTP proxy</source>
         <translation>Fehler bei der Kommunikation mit dem Proxy-Server</translation>
     </message>
     <message>
-        <location line="+23"/>
         <source>Proxy server not found</source>
         <translation>Es konnte kein Proxy-Server gefunden werden</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Proxy connection refused</source>
         <translation>Der Proxy-Server hat den Aufbau einer Verbindung verweigert</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Proxy server connection timed out</source>
         <translation>Bei der Verbindung mit dem Proxy-Server wurde ein Zeitlimit überschritten</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Proxy connection closed prematurely</source>
         <translation>Der Proxy-Server hat die Verbindung vorzeitig beendet</translation>
     </message>
@@ -4021,22 +3192,18 @@
 <context>
     <name>QIBaseDriver</name>
     <message>
-        <location filename="../src/sql/drivers/ibase/qsql_ibase.cpp" line="+1491"/>
         <source>Error opening database</source>
         <translation>Die Datenbankverbindung konnte nicht geöffnet werden</translation>
     </message>
     <message>
-        <location line="+54"/>
         <source>Could not start transaction</source>
         <translation>Es konnte keine Transaktion gestartet werden</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>Unable to commit transaction</source>
         <translation>Die Transaktion konnte nicht durchgeführt werden (Operation &apos;commit&apos; fehlgeschlagen)</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>Unable to rollback transaction</source>
         <translation>Die Transaktion konnte nicht rückgängig gemacht werden (Operation &apos;rollback&apos; fehlgeschlagen)</translation>
     </message>
@@ -4044,89 +3211,70 @@
 <context>
     <name>QIBaseResult</name>
     <message>
-        <location line="-1149"/>
         <source>Unable to create BLOB</source>
         <translation>Es konnte kein BLOB erzeugt werden</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Unable to write BLOB</source>
         <translation>Der BLOB konnte nicht geschrieben werden</translation>
     </message>
     <message>
-        <location line="+14"/>
         <source>Unable to open BLOB</source>
         <translation>Der BLOB konnte nicht geöffnet werden</translation>
     </message>
     <message>
-        <location line="+16"/>
         <source>Unable to read BLOB</source>
         <translation>Der BLOB konnte nicht gelesen werden</translation>
     </message>
     <message>
-        <location line="+125"/>
-        <location line="+187"/>
         <source>Could not find array</source>
         <translation>Das Feld konnte nicht gefunden werden</translation>
     </message>
     <message>
-        <location line="-155"/>
         <source>Could not get array data</source>
         <translation>Die Daten des Feldes konnten nicht gelesen werden</translation>
     </message>
     <message>
-        <location line="+210"/>
         <source>Could not get query info</source>
         <translation>Die erforderlichen Informationen zur Abfrage sind nicht verfügbar</translation>
     </message>
     <message>
-        <location line="+20"/>
         <source>Could not start transaction</source>
         <translation>Es konnte keine Transaktion gestartet werden</translation>
     </message>
     <message>
-        <location line="+19"/>
         <source>Unable to commit transaction</source>
         <translation>Die Transaktion konnte nicht durchgeführt werden (Operation &apos;commit&apos; fehlgeschlagen)</translation>
     </message>
     <message>
-        <location line="+42"/>
         <source>Could not allocate statement</source>
         <translation>Die Allokation des Befehls schlug fehl</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Could not prepare statement</source>
         <translation>Der Befehl konnte nicht initialisiert werden</translation>
     </message>
     <message>
-        <location line="+5"/>
-        <location line="+11"/>
         <source>Could not describe input statement</source>
         <translation>Es konnte keine Beschreibung des Eingabebefehls erhalten werden</translation>
     </message>
     <message>
-        <location line="+14"/>
         <source>Could not describe statement</source>
         <translation>Es konnte keine Beschreibung des Befehls erhalten werden</translation>
     </message>
     <message>
-        <location line="+115"/>
         <source>Unable to close statement</source>
         <translation>Der Befehl konnte nicht geschlossen werden</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Unable to execute query</source>
         <translation>Der Befehl konnte nicht ausgeführt werden</translation>
     </message>
     <message>
-        <location line="+46"/>
         <source>Could not fetch next item</source>
         <translation>Das nächste Element konnte nicht abgeholt werden</translation>
     </message>
     <message>
-        <location line="+197"/>
         <source>Could not get statement info</source>
         <translation>Es ist keine Information zum Befehl verfügbar</translation>
     </message>
@@ -4134,27 +3282,22 @@
 <context>
     <name>QIODevice</name>
     <message>
-        <location filename="../src/corelib/global/qglobal.cpp" line="+2120"/>
         <source>Permission denied</source>
         <translation>Zugriff verweigert</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Too many open files</source>
         <translation>Zu viele Dateien geöffnet</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>No such file or directory</source>
         <translation>Die Datei oder das Verzeichnis konnte nicht gefunden werden</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>No space left on device</source>
         <translation>Kein freier Speicherplatz auf dem Gerät vorhanden</translation>
     </message>
     <message>
-        <location filename="../src/corelib/io/qiodevice.cpp" line="+1598"/>
         <source>Unknown error</source>
         <translation>Unbekannter Fehler</translation>
     </message>
@@ -4162,32 +3305,26 @@
 <context>
     <name>QInputContext</name>
     <message>
-        <location filename="../src/gui/inputmethod/qinputcontextfactory.cpp" line="+301"/>
         <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-Eingabemethode</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Windows input method</source>
         <translation>Windows-Eingabemethode</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Mac OS X input method</source>
         <translation>Mac OS X-Eingabemethode</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>S60 FEP input method</source>
         <translation>S60-FEP-Eingabemethode</translation>
     </message>
@@ -4195,7 +3332,6 @@
 <context>
     <name>QInputDialog</name>
     <message>
-        <location filename="../src/gui/dialogs/qinputdialog.cpp" line="+223"/>
         <source>Enter a value:</source>
         <translation>Geben Sie einen Wert ein:</translation>
     </message>
@@ -4203,67 +3339,50 @@
 <context>
     <name>QLibrary</name>
     <message>
-        <location filename="../src/corelib/plugin/qlibrary.cpp" line="+383"/>
         <source>Could not mmap &apos;%1&apos;: %2</source>
         <translation>Operation mmap fehlgeschlagen für &apos;%1&apos;: %2</translation>
     </message>
     <message>
-        <location line="+22"/>
         <source>Plugin verification data mismatch in &apos;%1&apos;</source>
         <translation>Die Prüfdaten des Plugins &apos;%1&apos; stimmen nicht überein</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Could not unmap &apos;%1&apos;: %2</source>
         <translation>Operation unmap fehlgeschlagen für &apos;%1&apos;: %2</translation>
     </message>
     <message>
-        <location line="+375"/>
         <source>The plugin &apos;%1&apos; uses incompatible Qt library. (%2.%3.%4) [%5]</source>
         <translation>Das Plugin &apos;%1&apos; verwendet eine inkompatible Qt-Bibliothek. (%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>Das Plugin &apos;%1&apos; verwendet eine inkompatible Qt-Bibliothek. Erforderlicher build-spezifischer Schlüssel &quot;%2&quot;, erhalten &quot;%3&quot;</translation>
     </message>
     <message>
-        <location line="+365"/>
         <source>Unknown error</source>
         <translation>Unbekannter Fehler</translation>
     </message>
     <message>
-        <location line="-540"/>
-        <location line="+138"/>
-        <location filename="../src/corelib/plugin/qpluginloader.cpp" line="+343"/>
         <source>The shared library was not found.</source>
         <translation>Die dynamische Bibliothek konnte nicht gefunden werden.</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>The file &apos;%1&apos; is not a valid Qt plugin.</source>
         <translation>Die Datei &apos;%1&apos; ist kein gültiges Qt-Plugin.</translation>
     </message>
     <message>
-        <location line="+43"/>
         <source>The plugin &apos;%1&apos; uses incompatible Qt library. (Cannot mix debug and release libraries.)</source>
         <translation>Das Plugin &apos;%1&apos; verwendet eine inkompatible Qt-Bibliothek. (Im Debug- bzw. Release-Modus erstellte Bibliotheken können nicht zusammen verwendet werden.)</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>Die Bibliothek %1 kann nicht geladen werden: %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>Die Bibliothek %1 kann nicht entladen werden: %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>Das Symbol &quot;%1&quot; kann in %2 nicht aufgelöst werden: %3</translation>
     </message>
@@ -4271,37 +3390,30 @@
 <context>
     <name>QLineEdit</name>
     <message>
-        <location filename="../src/gui/widgets/qlineedit.cpp" line="+2116"/>
         <source>Select All</source>
         <translation>Alles auswählen</translation>
     </message>
     <message>
-        <location line="-40"/>
         <source>&amp;Undo</source>
         <translation>&amp;Rückgängig</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>&amp;Redo</source>
         <translation>Wieder&amp;herstellen</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Cu&amp;t</source>
         <translation>&amp;Ausschneiden</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>&amp;Copy</source>
         <translation>&amp;Kopieren</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>&amp;Paste</source>
         <translation>Einf&amp;ügen</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Delete</source>
         <translation>Löschen</translation>
     </message>
@@ -4309,23 +3421,18 @@
 <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: Fehlerhafter Name</translation>
     </message>
     <message>
-        <location filename="../src/network/socket/qlocalserver_unix.cpp" line="-8"/>
         <source>%1: Permission denied</source>
         <translation>%1: Zugriff verweigert</translation>
     </message>
     <message>
-        <location line="+12"/>
         <source>%1: Address in use</source>
         <translation>%1: Die Adresse wird bereits verwendet</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>%1: Unknown error %2</source>
         <translation>%1: Unbekannter Fehler %2</translation>
     </message>
@@ -4333,70 +3440,46 @@
 <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: Der Verbindungsaufbau wurde verweigert</translation>
     </message>
     <message>
-        <location line="+3"/>
-        <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+3"/>
         <source>%1: Remote closed</source>
         <translation>%1: Die Verbindung wurde von der Gegenseite geschlossen</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="+79"/>
-        <location line="+59"/>
         <source>%1: Invalid name</source>
         <translation>%1: Ungültiger Name</translation>
     </message>
     <message>
-        <location line="+3"/>
-        <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+3"/>
         <source>%1: Socket access error</source>
         <translation>%1: Fehler beim Zugriff auf den Socket</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-Fehler (Ressourcenproblem)</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: Zeitüberschreitung bei Socket-Operation</translation>
     </message>
     <message>
-        <location line="+3"/>
-        <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+3"/>
         <source>%1: Datagram too large</source>
         <translation>%1: Das Datagramm ist zu groß</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="-64"/>
         <source>%1: Connection error</source>
         <translation>%1: Verbindungsfehler</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: Diese Socket-Operation wird nicht unterstützt</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>%1: Unknown error</source>
         <translation>%1: Unbekannter Fehler</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: Unbekannter Fehler %2</translation>
     </message>
@@ -4404,27 +3487,22 @@
 <context>
     <name>QMYSQLDriver</name>
     <message>
-        <location filename="../src/sql/drivers/mysql/qsql_mysql.cpp" line="+1287"/>
         <source>Unable to open database &apos;</source>
         <translation>Die Datenbankverbindung kann nicht geöffnet werden &apos;</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>Unable to connect</source>
         <translation>Es kann keine Verbindung aufgebaut werden</translation>
     </message>
     <message>
-        <location line="+150"/>
         <source>Unable to begin transaction</source>
         <translation>Es kann keine Transaktion gestartet werden</translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>Unable to commit transaction</source>
         <translation>Die Transaktion kann nicht durchgeführt werden (Operation &apos;commit&apos; fehlgeschlagen)</translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>Unable to rollback transaction</source>
         <translation>Die Transaktion kann nicht rückgängig gemacht werden (Operation &apos;rollback&apos; fehlgeschlagen)</translation>
     </message>
@@ -4432,60 +3510,46 @@
 <context>
     <name>QMYSQLResult</name>
     <message>
-        <location line="-977"/>
-        <location line="+31"/>
         <source>Unable to fetch data</source>
         <translation>Es konnten keine Daten abgeholt werden</translation>
     </message>
     <message>
-        <location line="+161"/>
         <source>Unable to execute query</source>
         <translation>Die Abfrage konnte nicht ausgeführt werden</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Unable to store result</source>
         <translation>Das Ergebnis konnte nicht gespeichert werden</translation>
     </message>
     <message>
-        <location line="+191"/>
-        <location line="+8"/>
         <source>Unable to prepare statement</source>
         <translation>Der Befehl konnte nicht initialisiert werden</translation>
     </message>
     <message>
-        <location line="+37"/>
         <source>Unable to reset statement</source>
         <translation>Der Befehl konnte nicht zurückgesetzt werden</translation>
     </message>
     <message>
-        <location line="+86"/>
         <source>Unable to bind value</source>
         <translation>Der Wert konnte nicht gebunden werden</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>Unable to execute statement</source>
         <translation>Der Befehl konnte nicht ausgeführt werden</translation>
     </message>
     <message>
-        <location line="+14"/>
-        <location line="+21"/>
         <source>Unable to bind outvalues</source>
         <translation>Die Ausgabewerte konnten nicht gebunden werden</translation>
     </message>
     <message>
-        <location line="-12"/>
         <source>Unable to store statement results</source>
         <translation>Die Ergebnisse des Befehls konnten nicht gespeichert werden</translation>
     </message>
     <message>
-        <location line="-253"/>
         <source>Unable to execute next query</source>
         <translation>Die folgende Abfrage kann nicht ausgeführt werden</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>Unable to store next result</source>
         <translation>Das folgende Ergebnis kann nicht gespeichert werden</translation>
     </message>
@@ -4493,7 +3557,6 @@
 <context>
     <name>QMdiArea</name>
     <message>
-        <location filename="../src/gui/widgets/qmdiarea.cpp" line="+290"/>
         <source>(Untitled)</source>
         <translation>(Unbenannt)</translation>
     </message>
@@ -4501,92 +3564,74 @@
 <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>Schließen</translation>
     </message>
     <message>
-        <location line="-18"/>
         <source>Minimize</source>
         <translation>Minimieren</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>Restore Down</source>
         <translation>Wiederherstellen</translation>
     </message>
     <message>
-        <location line="+707"/>
         <source>&amp;Restore</source>
         <translation>Wieder&amp;herstellen</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>&amp;Move</source>
         <translation>Ver&amp;schieben</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Size</source>
         <translation>Größe ä&amp;ndern</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Mi&amp;nimize</source>
         <translation>M&amp;inimieren</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Ma&amp;ximize</source>
         <translation>Ma&amp;ximieren</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Stay on &amp;Top</source>
         <translation>Im &amp;Vordergrund bleiben</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>&amp;Close</source>
         <translation>Schl&amp;ießen</translation>
     </message>
     <message>
-        <location line="-729"/>
         <source>Maximize</source>
         <translation>Maximieren</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Unshade</source>
         <translation>Herabrollen</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Shade</source>
         <translation>Aufrollen</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Restore</source>
         <translation>Wiederherstellen</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Help</source>
         <translation>Hilfe</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Menu</source>
         <translation>Menü</translation>
     </message>
     <message>
-        <location line="-79"/>
         <source>- [%1]</source>
         <translation>- [%1]</translation>
     </message>
@@ -4594,21 +3639,14 @@
 <context>
     <name>QMenu</name>
     <message>
-        <location filename="../src/plugins/accessible/widgets/qaccessiblemenu.cpp" line="+157"/>
-        <location line="+225"/>
         <source>Close</source>
         <translation>Schließen</translation>
     </message>
     <message>
-        <location line="-224"/>
-        <location line="+225"/>
         <source>Open</source>
         <translation>Öffnen</translation>
     </message>
     <message>
-        <location line="-223"/>
-        <location line="+225"/>
-        <location line="+51"/>
         <source>Execute</source>
         <translation>Ausführen</translation>
     </message>
@@ -4616,7 +3654,6 @@
 <context>
     <name>QMenuBar</name>
     <message>
-        <location filename="../src/gui/widgets/qmenu_symbian.cpp" line="+456"/>
         <source>Actions</source>
         <translation>Optionen</translation>
     </message>
@@ -4624,40 +3661,30 @@
 <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 type="unfinished"></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 type="unfinished"></translation>
     </message>
     <message>
-        <location line="+31"/>
         <source>About Qt</source>
         <translation>Über Qt</translation>
     </message>
     <message>
-        <location line="-512"/>
         <source>Help</source>
         <translation>Hilfe</translation>
     </message>
     <message>
-        <location line="-1129"/>
         <source>Show Details...</source>
         <translation>Details einblenden...</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Hide Details...</source>
         <translation>Details ausblenden...</translation>
     </message>
@@ -4665,7 +3692,6 @@
 <context>
     <name>QMultiInputContext</name>
     <message>
-        <location filename="../src/plugins/inputmethods/imsw-multi/qmultiinputcontext.cpp" line="+88"/>
         <source>Select IM</source>
         <translation>Eingabemethode auswählen</translation>
     </message>
@@ -4673,12 +3699,10 @@
 <context>
     <name>QMultiInputContextPlugin</name>
     <message>
-        <location filename="../src/plugins/inputmethods/imsw-multi/qmultiinputcontextplugin.cpp" line="+95"/>
         <source>Multiple input method switcher</source>
         <translation>Umschalter für Eingabemethoden</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Multiple input method switcher that uses the context menu of the text widgets</source>
         <translation>Mehrfachumschalter für Eingabemethoden, der das Kontextmenü des Text-Widgets verwendet</translation>
     </message>
@@ -4686,132 +3710,106 @@
 <context>
     <name>QNativeSocketEngine</name>
     <message>
-        <location filename="../src/network/socket/qnativesocketengine.cpp" line="+209"/>
         <source>The remote host closed the connection</source>
         <translation>Der entfernte Rechner hat die Verbindung geschlossen</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Network operation timed out</source>
         <translation>Das Zeitlimit für die Operation wurde überschritten</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Out of resources</source>
         <translation>Keine Ressourcen verfügbar</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Unsupported socket operation</source>
         <translation> Socket-Kommando nicht unterstützt</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Protocol type not supported</source>
         <translation>Das Protokoll wird nicht unterstützt</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Invalid socket descriptor</source>
         <translation>Ungültiger Socket-Deskriptor</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Network unreachable</source>
         <translation>Das Netzwerk ist nicht erreichbar</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Permission denied</source>
         <translation>Zugriff verweigert</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Connection timed out</source>
         <translation>Das Zeitlimit für die Verbindung wurde überschritten</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Connection refused</source>
         <translation>Verbindung verweigert</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>The bound address is already in use</source>
         <translation>Die angegebene Adresse ist bereits in Gebrauch</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>The address is not available</source>
         <translation>Die Adresse ist nicht verfügbar</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>The address is protected</source>
         <translation>Die Adresse ist geschützt</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Unable to send a message</source>
         <translation>Die Nachricht konnte nicht gesendet werden</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Unable to receive a message</source>
         <translation>Die Nachricht konnte nicht empfangen werden</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Unable to write</source>
         <translation>Der Schreibvorgang konnte nicht ausgeführt werden</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Network error</source>
         <translation>Netzwerkfehler</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Another socket is already listening on the same port</source>
         <translation>Auf diesem Port hört bereits ein anderer Socket</translation>
     </message>
     <message>
-        <location line="-66"/>
         <source>Unable to initialize non-blocking socket</source>
         <translation>Der nichtblockierende Socket konnte nicht initialisiert werden</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Unable to initialize broadcast socket</source>
         <translation>Der Broadcast-Socket konnte nicht initialisiert werden</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Attempt to use IPv6 socket on a platform with no IPv6 support</source>
         <translation>Es wurde versucht, einen IPv6-Socket auf einem System ohne IPv6-Unterstützung zu verwenden</translation>
     </message>
     <message>
-        <location line="+21"/>
         <source>Host unreachable</source>
         <translation>Der Zielrechner kann nicht erreicht werden</translation>
     </message>
     <message>
-        <location line="+24"/>
         <source>Datagram was too large to send</source>
         <translation>Das Datagram konnte nicht gesendet werden, weil es zu groß ist</translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>Operation on non-socket</source>
         <translation>Operation kann nur auf einen Socket angewandt werden</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Unknown error</source>
         <translation>Unbekannter Fehler</translation>
     </message>
     <message>
-        <location line="-3"/>
         <source>The proxy type is invalid for this operation</source>
         <translation>Die Operation kann mit dem Proxy-Typ nicht durchgeführt werden</translation>
     </message>
@@ -4819,7 +3817,6 @@
 <context>
     <name>QNetworkAccessCacheBackend</name>
     <message>
-        <location filename="../src/network/access/qnetworkaccesscachebackend.cpp" line="+66"/>
         <source>Error opening %1</source>
         <translation>%1 konnte nicht geöffnet werden</translation>
     </message>
@@ -4827,12 +3824,10 @@
 <context>
     <name>QNetworkAccessDataBackend</name>
     <message>
-        <location filename="../src/network/access/qnetworkaccessdatabackend.cpp" line="+76"/>
         <source>Operation not supported on %1</source>
         <translation>Diese Operation wird von %1 nicht unterstützt</translation>
     </message>
     <message>
-        <location line="+25"/>
         <source>Invalid URI: %1</source>
         <translation>Ungültiger URI: %1</translation>
     </message>
@@ -4840,17 +3835,14 @@
 <context>
     <name>QNetworkAccessDebugPipeBackend</name>
     <message>
-        <location filename="../src/network/access/qnetworkaccessdebugpipebackend.cpp" line="+195"/>
         <source>Write error writing to %1: %2</source>
         <translation>Fehler beim Schreiben zu %1: %2</translation>
     </message>
     <message>
-        <location line="+60"/>
         <source>Socket error on %1: %2</source>
         <translation>Socket-Fehler bei %1: %2</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Remote host closed the connection prematurely on %1</source>
         <translation>Der entfernte Rechner hat die Verbindung zu %1 vorzeitig beendet</translation>
     </message>
@@ -4858,30 +3850,22 @@
 <context>
     <name>QNetworkAccessFileBackend</name>
     <message>
-        <location filename="../src/network/access/qfilenetworkreply.cpp" line="+85"/>
-        <location filename="../src/network/access/qnetworkaccessfilebackend.cpp" line="+100"/>
         <source>Request for opening non-local file %1</source>
         <translation>Anforderung zum Öffnen einer Datei über Netzwerk %1</translation>
     </message>
     <message>
-        <location line="+33"/>
-        <location filename="../src/network/access/qnetworkaccessfilebackend.cpp" line="+45"/>
         <source>Error opening %1: %2</source>
         <translation>%1 konnte nicht geöffnet werden: %2</translation>
     </message>
     <message>
-        <location filename="../src/network/access/qnetworkaccessfilebackend.cpp" line="+38"/>
         <source>Write error writing to %1: %2</source>
         <translation>Fehler beim Schreiben zur Datei %1: %2</translation>
     </message>
     <message>
-        <location filename="../src/network/access/qfilenetworkreply.cpp" line="-13"/>
-        <location filename="../src/network/access/qnetworkaccessfilebackend.cpp" line="+48"/>
         <source>Cannot open %1: Path is a directory</source>
         <translation>%1 kann nicht geöffnet werden: Der Pfad spezifiziert ein Verzeichnis</translation>
     </message>
     <message>
-        <location filename="../src/network/access/qnetworkaccessfilebackend.cpp" line="+21"/>
         <source>Read error reading from %1: %2</source>
         <translation>Beim Lesen von der Datei %1 trat ein Fehler auf: %2</translation>
     </message>
@@ -4889,27 +3873,22 @@
 <context>
     <name>QNetworkAccessFtpBackend</name>
     <message>
-        <location filename="../src/network/access/qnetworkaccessftpbackend.cpp" line="+131"/>
         <source>No suitable proxy found</source>
         <translation>Es konnte kein geeigneter Proxy-Server gefunden werden</translation>
     </message>
     <message>
-        <location line="+14"/>
         <source>Cannot open %1: is a directory</source>
         <translation>%1 kann nicht geöffnet werden: Es handelt sich um ein Verzeichnis</translation>
     </message>
     <message>
-        <location line="+112"/>
         <source>Logging in to %1 failed: authentication required</source>
         <translation>Die Anmeldung bei %1 schlug fehl: Es ist eine Authentifizierung erforderlich</translation>
     </message>
     <message>
-        <location line="+39"/>
         <source>Error while downloading %1: %2</source>
         <translation>Beim Herunterladen von %1 trat ein Fehler auf: %2</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Error while uploading %1: %2</source>
         <translation>Beim Hochladen von %1 trat ein Fehler auf: %2</translation>
     </message>
@@ -4917,7 +3896,6 @@
 <context>
     <name>QNetworkAccessHttpBackend</name>
     <message>
-        <location filename="../src/network/access/qnetworkaccesshttpbackend.cpp" line="+652"/>
         <source>No suitable proxy found</source>
         <translation>Es konnte kein geeigneter Proxy-Server gefunden werden</translation>
     </message>
@@ -4925,7 +3903,6 @@
 <context>
     <name>QNetworkAccessManager</name>
     <message>
-        <location filename="../src/network/access/qnetworkreplyimpl.cpp" line="+942"/>
         <source>Network access is disabled.</source>
         <translation>Der Zugriff auf das Netzwerk ist nicht gestattet.</translation>
     </message>
@@ -4933,22 +3910,18 @@
 <context>
     <name>QNetworkReply</name>
     <message>
-        <location filename="../src/network/access/qnetworkaccesshttpbackend.cpp" line="+100"/>
         <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="-860"/>
         <source>Protocol &quot;%1&quot; is unknown</source>
         <translation>Das Protokoll &quot;%1&quot; ist unbekannt</translation>
     </message>
     <message>
-        <location line="+192"/>
         <source>Network session error.</source>
         <translation>Fehler bei Netzwerkverbindung.</translation>
     </message>
     <message>
-        <location line="+352"/>
         <source>Temporary network failure.</source>
         <translation>Das Netzwerk ist zur Zeit ausgefallen.</translation>
     </message>
@@ -4956,8 +3929,6 @@
 <context>
     <name>QNetworkReplyImpl</name>
     <message>
-        <location line="+120"/>
-        <location line="+28"/>
         <source>Operation canceled</source>
         <translation>Operation abgebrochen</translation>
     </message>
@@ -4965,7 +3936,6 @@
 <context>
     <name>QNetworkSession</name>
     <message>
-        <location filename="../src/network/bearer/qnetworksession.cpp" line="+449"/>
         <source>Invalid configuration.</source>
         <translation>Ungültige Konfiguration.</translation>
     </message>
@@ -4973,47 +3943,34 @@
 <context>
     <name>QNetworkSessionPrivateImpl</name>
     <message>
-        <location filename="../src/plugins/bearer/qnetworksession_impl.cpp" line="+272"/>
-        <location filename="../src/plugins/bearer/symbian/qnetworksession_impl.cpp" line="+271"/>
         <source>Unknown session error.</source>
         <translation>Unbekannter Fehler bei Netzwerkverbindung.</translation>
     </message>
     <message>
-        <location line="+2"/>
-        <location filename="../src/plugins/bearer/symbian/qnetworksession_impl.cpp" line="+2"/>
         <source>The session was aborted by the user or system.</source>
         <translation>Die Verbindung wurde vom Nutzer oder vom Betriebssystem unterbrochen.</translation>
     </message>
     <message>
-        <location line="+2"/>
-        <location filename="../src/plugins/bearer/symbian/qnetworksession_impl.cpp" line="+2"/>
         <source>The requested operation is not supported by the system.</source>
         <translation>Die angeforderte Operation wird vom System nicht unterstützt.</translation>
     </message>
     <message>
-        <location line="+2"/>
-        <location filename="../src/plugins/bearer/symbian/qnetworksession_impl.cpp" line="+2"/>
         <source>The specified configuration cannot be used.</source>
         <translation>Die angegebene Konfiguration kann nicht verwendet werden.</translation>
     </message>
     <message>
-        <location line="+2"/>
-        <location filename="../src/plugins/bearer/symbian/qnetworksession_impl.cpp" line="+2"/>
         <source>Roaming was aborted or is not possible.</source>
         <translation>Das Roaming wurde abgebrochen oder ist hier nicht möglich.</translation>
     </message>
     <message>
-        <location filename="../src/plugins/bearer/icd/qnetworksession_impl.cpp" line="+1005"/>
         <source>Roaming error</source>
         <translation>Fehler beim Roaming</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Session aborted by user or system</source>
         <translation>Die Verbindung wurde vom Nutzer oder vom Betriebssystem unterbrochen</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Unidentified Error</source>
         <translation>Unbekannter Fehler</translation>
     </message>
@@ -5021,28 +3978,23 @@
 <context>
     <name>QOCIDriver</name>
     <message>
-        <location filename="../src/sql/drivers/oci/qsql_oci.cpp" line="+2088"/>
         <source>Unable to logon</source>
         <translation>Logon-Vorgang fehlgeschlagen</translation>
     </message>
     <message>
-        <location line="-144"/>
         <source>Unable to initialize</source>
         <comment>QOCIDriver</comment>
         <translation>Initialisierung fehlgeschlagen</translation>
     </message>
     <message>
-        <location line="+215"/>
         <source>Unable to begin transaction</source>
         <translation>Es konnte keine Transaktion gestartet werden</translation>
     </message>
     <message>
-        <location line="+19"/>
         <source>Unable to commit transaction</source>
         <translation>Die Transaktion konnte nicht durchgeführt werden (Operation &apos;commit&apos; fehlgeschlagen)</translation>
     </message>
     <message>
-        <location line="+19"/>
         <source>Unable to rollback transaction</source>
         <translation>Die Transaktion konnte nicht rückgängig gemacht werden (Operation &apos;rollback&apos; fehlgeschlagen)</translation>
     </message>
@@ -5050,44 +4002,34 @@
 <context>
     <name>QOCIResult</name>
     <message>
-        <location line="-979"/>
-        <location line="+168"/>
-        <location line="+15"/>
         <source>Unable to bind column for batch execute</source>
         <translation>Die Spalte konnte nicht für den Stapelverarbeitungs-Befehl gebunden werden</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Unable to execute batch statement</source>
         <translation>Der Stapelverarbeitungs-Befehl konnte nicht ausgeführt werden</translation>
     </message>
     <message>
-        <location line="+304"/>
         <source>Unable to goto next</source>
         <translation>Kann nicht zum nächsten Element gehen</translation>
     </message>
     <message>
-        <location line="+59"/>
         <source>Unable to alloc statement</source>
         <translation>Die Allokation des Befehls schlug fehl</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Unable to prepare statement</source>
         <translation>Der Befehl konnte nicht initialisiert werden</translation>
     </message>
     <message>
-        <location line="+26"/>
         <source>Unable to get statement type</source>
         <translation>Der Anweisungstyp kann nicht bestimmt werden</translation>
     </message>
     <message>
-        <location line="+20"/>
         <source>Unable to bind value</source>
         <translation>Der Wert konnte nicht gebunden werden</translation>
     </message>
     <message>
-        <location line="+19"/>
         <source>Unable to execute statement</source>
         <translation>Der Befehl konnte nicht ausgeführt werden</translation>
     </message>
@@ -5095,32 +4037,26 @@
 <context>
     <name>QODBCDriver</name>
     <message>
-        <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="+1888"/>
         <source>Unable to connect</source>
         <translation>Es kann keine Verbindung aufgebaut werden</translation>
     </message>
     <message>
-        <location line="+269"/>
         <source>Unable to disable autocommit</source>
         <translation>&apos;autocommit&apos; konnte nicht deaktiviert werden</translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>Unable to commit transaction</source>
         <translation>Die Transaktion konnte nicht durchgeführt werden (Operation &apos;commit&apos; fehlgeschlagen)</translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>Unable to rollback transaction</source>
         <translation>Die Transaktion konnte nicht rückgängig gemacht werden (Operation &apos;rollback&apos; fehlgeschlagen)</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Unable to enable autocommit</source>
         <translation>&apos;autocommit&apos; konnte nicht aktiviert werden</translation>
     </message>
     <message>
-        <location line="-312"/>
         <source>Unable to connect - Driver doesn&apos;t support all functionality required</source>
         <translation>Es kann keine Verbindung aufgebaut werden weil der Treiber die benötigte Funktionalität nicht vollständig unterstützt</translation>
     </message>
@@ -5128,51 +4064,38 @@
 <context>
     <name>QODBCResult</name>
     <message>
-        <location line="-941"/>
-        <location line="+351"/>
         <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; konnte nicht als Attribut des Befehls gesetzt werden. Bitte prüfen Sie die Konfiguration Ihres ODBC-Treibers</translation>
     </message>
     <message>
-        <location line="-334"/>
-        <location line="+627"/>
         <source>Unable to execute statement</source>
         <translation>Der Befehl konnte nicht ausgeführt werden</translation>
     </message>
     <message>
-        <location line="-546"/>
         <source>Unable to fetch next</source>
         <translation>Der nächste Datensatz konnte nicht abgeholt werden</translation>
     </message>
     <message>
-        <location line="+271"/>
         <source>Unable to prepare statement</source>
         <translation>Der Befehl konnte nicht initialisiert werden</translation>
     </message>
     <message>
-        <location line="+267"/>
         <source>Unable to bind variable</source>
         <translation>Die Variable konnte nicht gebunden werden</translation>
     </message>
     <message>
-        <location filename="../src/sql/drivers/db2/qsql_db2.cpp" line="+189"/>
-        <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="-466"/>
-        <location line="+578"/>
         <source>Unable to fetch last</source>
         <translation>Der letzte Datensatz konnte nicht abgeholt werden</translation>
     </message>
     <message>
-        <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="-672"/>
         <source>Unable to fetch</source>
         <translation>Es konnten keine Daten abgeholt werden</translation>
     </message>
     <message>
-        <location line="+44"/>
         <source>Unable to fetch first</source>
         <translation>Der erste Datensatz konnte nicht abgeholt werden</translation>
     </message>
     <message>
-        <location line="+19"/>
         <source>Unable to fetch previous</source>
         <translation>Der vorangegangene Datensatz kann nicht abgeholt werden</translation>
     </message>
@@ -5180,19 +4103,14 @@
 <context>
     <name>QObject</name>
     <message>
-        <location filename="../src/declarative/util/qdeclarativexmllistmodel.cpp" line="-241"/>
         <source>&quot;%1&quot; duplicates a previous role name and will be disabled.</source>
         <translation>&quot;%1&quot; ist bereits als Name einer Rolle vergeben und wird daher deaktiviert.</translation>
     </message>
     <message>
-        <location line="+515"/>
-        <location line="+4"/>
         <source>invalid query: &quot;%1&quot;</source>
         <translation>Ungültige Abfrage: &quot;%1&quot;</translation>
     </message>
     <message>
-        <location filename="../src/3rdparty/phonon/phonon/pulsesupport.cpp" line="+162"/>
-        <location line="+11"/>
         <source>PulseAudio Sound Server</source>
         <translation>PulseAudio Sound Server</translation>
     </message>
@@ -5200,12 +4118,10 @@
 <context>
     <name>QPPDOptionsModel</name>
     <message>
-        <location filename="../src/gui/dialogs/qprintdialog_unix.cpp" line="+1238"/>
         <source>Name</source>
         <translation>Name</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Value</source>
         <translation>Wert</translation>
     </message>
@@ -5213,32 +4129,26 @@
 <context>
     <name>QPSQLDriver</name>
     <message>
-        <location filename="../src/sql/drivers/psql/qsql_psql.cpp" line="+782"/>
         <source>Unable to connect</source>
         <translation>Es kann keine Verbindung aufgebaut werden</translation>
     </message>
     <message>
-        <location line="+49"/>
         <source>Could not begin transaction</source>
         <translation>Es konnte keine Transaktion gestartet werden</translation>
     </message>
     <message>
-        <location line="+30"/>
         <source>Could not commit transaction</source>
         <translation>Die Transaktion konnte nicht durchgeführt werden (Operation &apos;commit&apos; fehlgeschlagen)</translation>
     </message>
     <message>
-        <location line="+16"/>
         <source>Could not rollback transaction</source>
         <translation>Die Transaktion konnte nicht rückgängig gemacht werden (Operation &apos;rollback&apos; fehlgeschlagen)</translation>
     </message>
     <message>
-        <location line="+374"/>
         <source>Unable to subscribe</source>
         <translation>Die Registrierung schlug fehl</translation>
     </message>
     <message>
-        <location line="+32"/>
         <source>Unable to unsubscribe</source>
         <translation>Die Registrierung konnte nicht aufgehoben werden</translation>
     </message>
@@ -5246,12 +4156,10 @@
 <context>
     <name>QPSQLResult</name>
     <message>
-        <location line="-1085"/>
         <source>Unable to create query</source>
         <translation>Es konnte keine Abfrage erzeugt werden</translation>
     </message>
     <message>
-        <location line="+372"/>
         <source>Unable to prepare statement</source>
         <translation>Der Befehl konnte nicht initialisiert werden</translation>
     </message>
@@ -5259,102 +4167,82 @@
 <context>
     <name>QPageSetupWidget</name>
     <message>
-        <location filename="../src/gui/dialogs/qpagesetupdialog_unix.cpp" line="+304"/>
         <source>Centimeters (cm)</source>
         <translation>Zentimeter (cm)</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Millimeters (mm)</source>
         <translation>Millimeter (mm)</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Inches (in)</source>
         <translation>Zoll (in)</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Points (pt)</source>
         <translation>Punkte (pt)</translation>
     </message>
     <message>
-        <location filename="../src/gui/dialogs/qpagesetupwidget.ui"/>
         <source>Form</source>
         <translation>Formular</translation>
     </message>
     <message>
-        <location/>
         <source>Paper</source>
         <translation>Papier</translation>
     </message>
     <message>
-        <location/>
         <source>Page size:</source>
         <translation>Seitengröße:</translation>
     </message>
     <message>
-        <location/>
         <source>Width:</source>
         <translation>Breite:</translation>
     </message>
     <message>
-        <location/>
         <source>Height:</source>
         <translation>Höhe:</translation>
     </message>
     <message>
-        <location/>
         <source>Paper source:</source>
         <translation>Papierquelle:</translation>
     </message>
     <message>
-        <location/>
         <source>Orientation</source>
         <translation>Ausrichtung</translation>
     </message>
     <message>
-        <location/>
         <source>Portrait</source>
         <translation>Hochformat</translation>
     </message>
     <message>
-        <location/>
         <source>Landscape</source>
         <translation>Querformat</translation>
     </message>
     <message>
-        <location/>
         <source>Reverse landscape</source>
         <translation>Umgekehrtes Querformat</translation>
     </message>
     <message>
-        <location/>
         <source>Reverse portrait</source>
         <translation>Umgekehrtes Hochformat</translation>
     </message>
     <message>
-        <location/>
         <source>Margins</source>
         <translation>Ränder</translation>
     </message>
     <message>
-        <location/>
         <source>top margin</source>
         <translation>Oberer Rand</translation>
     </message>
     <message>
-        <location/>
         <source>left margin</source>
         <translation>Linker Rand</translation>
     </message>
     <message>
-        <location/>
         <source>right margin</source>
         <translation>Rechter Rand</translation>
     </message>
     <message>
-        <location/>
         <source>bottom margin</source>
         <translation>Unterer Rand</translation>
     </message>
@@ -5362,12 +4250,10 @@
 <context>
     <name>QPluginLoader</name>
     <message>
-        <location filename="../src/corelib/plugin/qpluginloader.cpp" line="+24"/>
         <source>Unknown error</source>
         <translation>Unbekannter Fehler</translation>
     </message>
     <message>
-        <location line="-113"/>
         <source>The plugin was not loaded.</source>
         <translation>Das Plugin wurde nicht geladen.</translation>
     </message>
@@ -5375,433 +4261,344 @@
 <context>
     <name>QPrintDialog</name>
     <message>
-        <location filename="../src/gui/painting/qprinterinfo_unix.cpp" line="+110"/>
         <source>locally connected</source>
         <translation>direkt verbunden</translation>
     </message>
     <message>
-        <location line="+23"/>
-        <location line="+225"/>
         <source>Aliases: %1</source>
         <translation>Alias: %1</translation>
     </message>
     <message>
-        <location line="+225"/>
-        <location line="+199"/>
         <source>unknown</source>
         <translation>unbekannt</translation>
     </message>
     <message>
-        <location filename="../src/gui/dialogs/qprintdialog_win.cpp" line="+272"/>
         <source>OK</source>
         <translation>OK</translation>
     </message>
     <message>
-        <location filename="../src/gui/dialogs/qprintdialog_qws.cpp" line="+379"/>
         <source>Print all</source>
         <translation>Alles drucken</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Print range</source>
         <translation>Bereich drucken</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>Folio (210 x 330 mm)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Ledger (432 x 279 mm)</source>
         <translation>Ledger (432 x 279 mm)</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Tabloid (279 x 432 mm)</source>
         <translation>Tabloid (279 x 432 mm)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>US Common #10 Envelope (105 x 241 mm)</source>
         <translation>US Common #10 Envelope (105 x 241 mm)</translation>
     </message>
     <message>
-        <location line="+20"/>
         <source>Print current page</source>
         <translation>Diese Seite drucken</translation>
     </message>
     <message>
-        <location line="-45"/>
         <source>A4 (210 x 297 mm, 8.26 x 11.7 inches)</source>
         <translation>A4 (210 x 297 mm)</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)</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Executive (7.5 x 10 inches, 191 x 254 mm)</source>
         <translation>Executive (7,5 x 10 Zoll, 191 x 254 mm)</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Legal (8.5 x 14 inches, 216 x 356 mm)</source>
         <translation>Legal (8,5 x 14 Zoll, 216 x 356 mm)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Letter (8.5 x 11 inches, 216 x 279 mm)</source>
         <translation>Letter (8,5 x 11 Zoll, 216 x 279 mm)</translation>
     </message>
     <message>
-        <location line="+20"/>
         <source>Print selection</source>
         <translation>Auswahl drucken</translation>
     </message>
     <message>
-        <location filename="../src/gui/dialogs/qabstractprintdialog.cpp" line="+113"/>
-        <location line="+13"/>
-        <location filename="../src/gui/dialogs/qprintdialog_win.cpp" line="-2"/>
         <source>Print</source>
         <translation>Drucken</translation>
     </message>
     <message>
-        <location filename="../src/gui/dialogs/qprintdialog_unix.cpp" line="-392"/>
         <source>Print To File ...</source>
         <translation>In Datei drucken ...</translation>
     </message>
     <message>
-        <location line="+82"/>
         <source>File %1 is not writable.
 Please choose a different file name.</source>
         <translation>Die Datei %1 ist schreibgeschützt.
 Bitte wählen Sie einen anderen Dateinamen.</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>%1 already exists.
 Do you want to overwrite it?</source>
         <translation>Die Datei %1 existiert bereits.
 Soll sie überschrieben werden?</translation>
     </message>
     <message>
-        <location filename="../src/gui/dialogs/qprintdialog_qws.cpp" line="-232"/>
         <source>File exists</source>
         <translation>Die Datei existiert bereits</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&lt;qt&gt;Do you want to overwrite it?&lt;/qt&gt;</source>
         <translation>&lt;qt&gt;Soll sie überschrieben werden?&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>%1 ist ein Verzeichnis.
 Bitte wählen Sie einen anderen Dateinamen.</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>Die Angabe für die erste Seite darf nicht größer sein als die für die letzte Seite.</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>Executive</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Folio</source>
         <translation>Folio</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Ledger</source>
         <translation>Ledger</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Legal</source>
         <translation>Legal</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Letter</source>
         <translation>Letter</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Tabloid</source>
         <translation>Tabloid</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>US Common #10 Envelope</source>
         <translation>US Common #10 Envelope</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Custom</source>
         <translation>Benutzerdefiniert</translation>
     </message>
     <message>
-        <location filename="../src/gui/dialogs/qprintdialog_unix.cpp" line="-530"/>
-        <location line="+68"/>
         <source>&amp;Options &gt;&gt;</source>
         <translation>&amp;Einstellungen &gt;&gt;</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>&amp;Options &lt;&lt;</source>
         <translation>&amp;Einstellungen &lt;&lt; </translation>
     </message>
     <message>
-        <location line="+260"/>
         <source>Print to File (PDF)</source>
         <translation>In PDF-Datei drucken</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Print to File (Postscript)</source>
         <translation>In Postscript-Datei drucken</translation>
     </message>
     <message>
-        <location line="+47"/>
         <source>Local file</source>
         <translation>Lokale Datei</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Write %1 file</source>
         <translation>Schreiben der Datei %1</translation>
     </message>
     <message>
-        <location line="-376"/>
         <source>&amp;Print</source>
         <translation>&amp;Drucken</translation>
     </message>
@@ -5809,108 +4606,86 @@
 <context>
     <name>QPrintPreviewDialog</name>
     <message>
-        <location filename="../src/gui/dialogs/qprintpreviewdialog.cpp" line="+249"/>
         <source>%1%</source>
         <translation>%1%</translation>
     </message>
     <message>
-        <location line="+84"/>
         <source>Print Preview</source>
         <translation>Druckvorschau</translation>
     </message>
     <message>
-        <location line="+30"/>
         <source>Next page</source>
         <translation>Nächste Seite</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Previous page</source>
         <translation>Vorige Seite</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>First page</source>
         <translation>Erste Seite</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Last page</source>
         <translation>Letzte Seite</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Fit width</source>
         <translation>Breite anpassen</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Fit page</source>
         <translation>Seite anpassen</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>Zoom in</source>
         <translation>Vergrößern</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Zoom out</source>
         <translation>Verkleinern</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Portrait</source>
         <translation>Hochformat</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Landscape</source>
         <translation>Querformat</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>Show single page</source>
         <translation>Einzelne Seite anzeigen</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Show facing pages</source>
         <translation>Gegenüberliegende Seiten anzeigen</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Show overview of all pages</source>
         <translation>Übersicht aller Seiten</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Print</source>
         <translation>Drucken</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Page setup</source>
         <translation>Seite einrichten</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Close</source>
         <translation>Schließen</translation>
     </message>
     <message>
-        <location line="+148"/>
         <source>Export to PDF</source>
         <translation>PDF exportieren</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Export to PostScript</source>
         <translation>PostScript exportieren</translation>
     </message>
     <message>
-        <location filename="../src/gui/dialogs/qabstractpagesetupdialog.cpp" line="+68"/>
-        <location line="+12"/>
         <source>Page Setup</source>
         <translation>Seite einrichten</translation>
     </message>
@@ -5918,17 +4693,14 @@
 <context>
     <name>QPrintPropertiesWidget</name>
     <message>
-        <location filename="../src/gui/dialogs/qprintpropertieswidget.ui"/>
         <source>Form</source>
         <translation>Formular</translation>
     </message>
     <message>
-        <location/>
         <source>Page</source>
         <translation>Seite</translation>
     </message>
     <message>
-        <location/>
         <source>Advanced</source>
         <translation>Erweitert</translation>
     </message>
@@ -5936,102 +4708,82 @@
 <context>
     <name>QPrintSettingsOutput</name>
     <message>
-        <location filename="../src/gui/dialogs/qprintsettingsoutput.ui"/>
         <source>Form</source>
         <translation>Formular</translation>
     </message>
     <message>
-        <location/>
         <source>Copies</source>
         <translation>Anzahl Exemplare</translation>
     </message>
     <message>
-        <location/>
         <source>Print range</source>
         <translation>Bereich drucken</translation>
     </message>
     <message>
-        <location/>
         <source>Print all</source>
         <translation>Alles drucken</translation>
     </message>
     <message>
-        <location/>
         <source>Pages from</source>
         <translation>Seiten von</translation>
     </message>
     <message>
-        <location/>
         <source>to</source>
         <translation>bis</translation>
     </message>
     <message>
-        <location/>
         <source>Selection</source>
         <translation>Auswahl</translation>
     </message>
     <message>
-        <location/>
         <source>Output Settings</source>
         <translation>Ausgabeeinstellungen</translation>
     </message>
     <message>
-        <location/>
         <source>Copies:</source>
         <translation>Anzahl Exemplare:</translation>
     </message>
     <message>
-        <location/>
         <source>Collate</source>
         <translation>Sortieren</translation>
     </message>
     <message>
-        <location/>
         <source>Reverse</source>
         <translation>Umgekehrt</translation>
     </message>
     <message>
-        <location/>
         <source>Options</source>
         <translation>Optionen</translation>
     </message>
     <message>
-        <location/>
         <source>Color Mode</source>
         <translation>Farbmodus</translation>
     </message>
     <message>
-        <location/>
         <source>Color</source>
         <translation>Farbe</translation>
     </message>
     <message>
-        <location/>
         <source>Grayscale</source>
         <translation>Graustufen</translation>
     </message>
     <message>
-        <location/>
         <source>Duplex Printing</source>
         <translation>Duplexdruck</translation>
     </message>
     <message>
-        <location/>
         <source>None</source>
         <translation>Kein</translation>
     </message>
     <message>
-        <location/>
         <source>Long side</source>
         <translation>Lange Seite</translation>
     </message>
     <message>
-        <location/>
         <source>Short side</source>
         <translation>Kurze Seite</translation>
     </message>
     <message>
-        <location/>
         <source>Current Page</source>
         <translation></translation>
     </message>
@@ -6039,47 +4791,38 @@
 <context>
     <name>QPrintWidget</name>
     <message>
-        <location filename="../src/gui/dialogs/qprintwidget.ui"/>
         <source>Form</source>
         <translation>Formular</translation>
     </message>
     <message>
-        <location/>
         <source>Printer</source>
         <translation>Drucker</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Name:</source>
         <translation>&amp;Name:</translation>
     </message>
     <message>
-        <location/>
         <source>P&amp;roperties</source>
         <translation>&amp;Eigenschaften</translation>
     </message>
     <message>
-        <location/>
         <source>Location:</source>
         <translation>Standort:</translation>
     </message>
     <message>
-        <location/>
         <source>Preview</source>
         <translation>Vorschau</translation>
     </message>
     <message>
-        <location/>
         <source>Type:</source>
         <translation>Typ:</translation>
     </message>
     <message>
-        <location/>
         <source>Output &amp;file:</source>
         <translation>Ausgabe&amp;datei:</translation>
     </message>
     <message>
-        <location/>
         <source>...</source>
         <translation>...</translation>
     </message>
@@ -6087,62 +4830,38 @@
 <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>Die Eingabeumleitung konnte nicht zum Lesen geöffnet werden</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>Die Ausgabeumleitung konnte nicht zum Lesen geöffnet werden</translation>
     </message>
     <message>
-        <location line="+239"/>
         <source>Resource error (fork failure): %1</source>
         <translation>Ressourcenproblem (&quot;fork failure&quot;): %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>Zeitüberschreitung</translation>
     </message>
     <message>
-        <location filename="../src/corelib/io/qprocess.cpp" line="+866"/>
-        <location line="+52"/>
-        <location filename="../src/corelib/io/qprocess_win.cpp" line="-211"/>
-        <location line="+50"/>
         <source>Error reading from process</source>
         <translation>Das Lesen vom Prozess schlug fehl</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>Das Schreiben zum Prozess schlug fehl</translation>
     </message>
     <message>
-        <location line="-756"/>
         <source>Process crashed</source>
         <translation>Der Prozess ist abgestürzt</translation>
     </message>
     <message>
-        <location line="+959"/>
         <source>No program defined</source>
         <translation>Es wurde kein Programm angegeben</translation>
     </message>
     <message>
-        <location filename="../src/corelib/io/qprocess_win.cpp" line="-360"/>
         <source>Process failed to start: %1</source>
         <translation>Das Starten des Prozesses schlug fehl: %1</translation>
     </message>
@@ -6150,7 +4869,6 @@
 <context>
     <name>QProgressDialog</name>
     <message>
-        <location filename="../src/gui/dialogs/qprogressdialog.cpp" line="+196"/>
         <source>Cancel</source>
         <translation>Abbrechen</translation>
     </message>
@@ -6158,7 +4876,6 @@
 <context>
     <name>QPushButton</name>
     <message>
-        <location filename="../src/plugins/accessible/widgets/simplewidgets.cpp" line="-8"/>
         <source>Open</source>
         <translation>Öffnen</translation>
     </message>
@@ -6166,7 +4883,6 @@
 <context>
     <name>QRadioButton</name>
     <message>
-        <location line="+12"/>
         <source>Check</source>
         <translation>Ankreuzen</translation>
     </message>
@@ -6174,57 +4890,46 @@
 <context>
     <name>QRegExp</name>
     <message>
-        <location filename="../src/corelib/tools/qregexp.cpp" line="+65"/>
         <source>no error occurred</source>
         <translation>kein Fehler</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>disabled feature used</source>
         <translation>deaktivierte Eigenschaft wurde benutzt</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>bad char class syntax</source>
         <translation>falsche Syntax für Zeichenklasse</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>bad lookahead syntax</source>
         <translation>falsche Syntax für Lookahead</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>bad repetition syntax</source>
         <translation>falsche Syntax für Wiederholungen</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>invalid octal value</source>
         <translation>ungültiger Oktal-Wert</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>missing left delim</source>
         <translation>fehlende linke Begrenzung</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>unexpected end</source>
         <translation>unerwartetes Ende</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>met internal limit</source>
         <translation>internes Limit erreicht</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>invalid interval</source>
         <translation>ungültiges Intervall</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>invalid category</source>
         <translation>ungültige Kategorie</translation>
     </message>
@@ -6232,22 +4937,18 @@
 <context>
     <name>QSQLite2Driver</name>
     <message>
-        <location filename="../src/sql/drivers/sqlite2/qsql_sqlite2.cpp" line="+399"/>
         <source>Error opening database</source>
         <translation>Die Datenbankverbindung konnte nicht geöffnet werden</translation>
     </message>
     <message>
-        <location line="+41"/>
         <source>Unable to begin transaction</source>
         <translation>Es konnte keine Transaktion gestartet werden</translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>Unable to commit transaction</source>
         <translation>Die Transaktion konnte nicht durchgeführt werden (Operation &apos;commit&apos; fehlgeschlagen)</translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>Unable to rollback transaction</source>
         <translation>Die Transaktion kann nicht rückgängig gemacht werden</translation>
     </message>
@@ -6255,12 +4956,10 @@
 <context>
     <name>QSQLite2Result</name>
     <message>
-        <location line="-326"/>
         <source>Unable to fetch results</source>
         <translation>Das Ergebnis konnte nicht abgeholt werden</translation>
     </message>
     <message>
-        <location line="+150"/>
         <source>Unable to execute statement</source>
         <translation>Der Befehl konnte nicht ausgeführt werden</translation>
     </message>
@@ -6268,27 +4967,22 @@
 <context>
     <name>QSQLiteDriver</name>
     <message>
-        <location filename="../src/sql/drivers/sqlite/qsql_sqlite.cpp" line="+539"/>
         <source>Error opening database</source>
         <translation>Die Datenbankverbindung konnte nicht geöffnet werden</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>Error closing database</source>
         <translation>Die Datenbankverbindung konnte nicht geschlossen werden</translation>
     </message>
     <message>
-        <location line="+20"/>
         <source>Unable to begin transaction</source>
         <translation>Es konnte keine Transaktion gestartet werden</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Unable to commit transaction</source>
         <translation>Die Transaktion konnte nicht durchgeführt werden (Operation &apos;commit&apos; fehlgeschlagen)</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Unable to rollback transaction</source>
         <translation>Die Transaktion konnte nicht rückgängig gemacht werden (Operation &apos;rollback&apos; fehlgeschlagen)</translation>
     </message>
@@ -6296,34 +4990,26 @@
 <context>
     <name>QSQLiteResult</name>
     <message>
-        <location line="-396"/>
-        <location line="+63"/>
-        <location line="+8"/>
         <source>Unable to fetch row</source>
         <translation>Der Datensatz konnte nicht abgeholt werden</translation>
     </message>
     <message>
-        <location line="+59"/>
         <source>Unable to execute statement</source>
         <translation>Der Befehl konnte nicht ausgeführt werden</translation>
     </message>
     <message>
-        <location line="+20"/>
         <source>Unable to reset statement</source>
         <translation>Der Befehl konnte nicht zurückgesetzt werden</translation>
     </message>
     <message>
-        <location line="+45"/>
         <source>Unable to bind parameters</source>
         <translation>Die Parameter konnte nicht gebunden werden</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Parameter count mismatch</source>
         <translation>Die Anzahl der Parameter ist falsch</translation>
     </message>
     <message>
-        <location line="-201"/>
         <source>No query</source>
         <translation>Kein Abfrage</translation>
     </message>
@@ -6331,32 +5017,26 @@
 <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>Stelle</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Condition</source>
         <translation>Bedingung</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Ignore-count</source>
         <translation>Auslösen nach</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Single-shot</source>
         <translation>Einmal auslösen</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Hit-count</source>
         <translation>Ausgelöst</translation>
     </message>
@@ -6364,12 +5044,10 @@
 <context>
     <name>QScriptBreakpointsWidget</name>
     <message>
-        <location filename="../src/scripttools/debugging/qscriptbreakpointswidget.cpp" line="+298"/>
         <source>New</source>
         <translation>Neu</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Delete</source>
         <translation>Löschen</translation>
     </message>
@@ -6377,143 +5055,114 @@
 <context>
     <name>QScriptDebugger</name>
     <message>
-        <location filename="../src/scripttools/debugging/qscriptdebugger.cpp" line="+885"/>
-        <location line="+1013"/>
         <source>Go to Line</source>
         <translation>Gehe zu Zeile</translation>
     </message>
     <message>
-        <location line="-1012"/>
         <source>Line:</source>
         <translation>Zeile:</translation>
     </message>
     <message>
-        <location line="+791"/>
         <source>Interrupt</source>
         <translation>Unterbrechen</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Shift+F5</source>
         <translation>Shift+F5</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Continue</source>
         <translation>Weiter</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>F5</source>
         <translation>F5</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Step Into</source>
         <translation>Einzelschritt herein</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>F11</source>
         <translation>F11</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Step Over</source>
         <translation>Einzelschritt über</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>F10</source>
         <translation>F10</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Step Out</source>
         <translation>Einzelschritt heraus</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>Bis Cursor ausführen</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>Bis zu neuem Skript ausführen</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Toggle Breakpoint</source>
         <translation>Haltepunkt umschalten</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>F9</source>
         <translation>F9</translation>
     </message>
     <message>
-        <location line="+14"/>
         <source>Clear Debug Output</source>
         <translation>Debug-Ausgabe löschen</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>Clear Error Log</source>
         <translation>Fehlerausgabe löschen</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>Clear Console</source>
         <translation>Konsole löschen</translation>
     </message>
     <message>
-        <location line="+14"/>
         <source>&amp;Find in Script...</source>
         <translation>&amp;Suche im Skript...</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;Nächste Fundstelle</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>F3</source>
         <translation>F3</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>Find &amp;Previous</source>
         <translation>Vorhergehende Fundstelle</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>Debuggen</translation>
     </message>
@@ -6521,32 +5170,26 @@
 <context>
     <name>QScriptDebuggerCodeFinderWidget</name>
     <message>
-        <location filename="../src/scripttools/debugging/qscriptdebuggercodefinderwidget.cpp" line="+141"/>
         <source>Close</source>
         <translation>Schließen</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>Previous</source>
         <translation>Vorige</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Next</source>
         <translation>Nächste</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Case Sensitive</source>
         <translation>Groß/Kleinschreibung beachten</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Whole words</source>
         <translation>Ganze Worte</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;Die Suche hat das Ende erreicht</translation>
     </message>
@@ -6554,12 +5197,10 @@
 <context>
     <name>QScriptDebuggerLocalsModel</name>
     <message>
-        <location filename="../src/scripttools/debugging/qscriptdebuggerlocalsmodel.cpp" line="+897"/>
         <source>Name</source>
         <translation>Name</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Value</source>
         <translation>Wert</translation>
     </message>
@@ -6567,17 +5208,14 @@
 <context>
     <name>QScriptDebuggerStackModel</name>
     <message>
-        <location filename="../src/scripttools/debugging/qscriptdebuggerstackmodel.cpp" line="+161"/>
         <source>Level</source>
         <translation>Ebene</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Name</source>
         <translation>Name</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Location</source>
         <translation>Stelle</translation>
     </message>
@@ -6585,22 +5223,18 @@
 <context>
     <name>QScriptEdit</name>
     <message>
-        <location filename="../src/scripttools/debugging/qscriptedit.cpp" line="+411"/>
         <source>Toggle Breakpoint</source>
         <translation>Haltepunkt umschalten</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Disable Breakpoint</source>
         <translation>Haltepunkt deaktivieren</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Enable Breakpoint</source>
         <translation>Haltepunkt aktivieren</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Breakpoint Condition:</source>
         <translation>Bedingung:</translation>
     </message>
@@ -6608,52 +5242,42 @@
 <context>
     <name>QScriptEngineDebugger</name>
     <message>
-        <location filename="../src/scripttools/debugging/qscriptenginedebugger.cpp" line="+523"/>
         <source>Loaded Scripts</source>
         <translation>Geladene Skripte</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Breakpoints</source>
         <translation>Haltepunkte</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Stack</source>
         <translation>Stapel</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Locals</source>
         <translation>Lokale Variablen</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Console</source>
         <translation>Konsole</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Debug Output</source>
         <translation>Debug-Ausgabe</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Error Log</source>
         <translation>Fehlerausgabe</translation>
     </message>
     <message>
-        <location line="+12"/>
         <source>Search</source>
         <translation>Suche</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>View</source>
         <translation>Ansicht</translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>Qt Script Debugger</source>
         <translation>Qt Script Debugger</translation>
     </message>
@@ -6661,7 +5285,6 @@
 <context>
     <name>QScriptNewBreakpointWidget</name>
     <message>
-        <location filename="../src/scripttools/debugging/qscriptbreakpointswidget.cpp" line="-223"/>
         <source>Close</source>
         <translation>Schließen</translation>
     </message>
@@ -6669,84 +5292,66 @@
 <context>
     <name>QScrollBar</name>
     <message>
-        <location filename="../src/gui/widgets/qscrollbar.cpp" line="+454"/>
         <source>Scroll here</source>
         <translation>Hierher scrollen</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Left edge</source>
         <translation>Linker Rand</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Top</source>
         <translation>Anfang</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Right edge</source>
         <translation>Rechter Rand</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Bottom</source>
         <translation>Ende</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Page left</source>
         <translation>Eine Seite nach links</translation>
     </message>
     <message>
-        <location line="+0"/>
-        <location filename="../src/plugins/accessible/widgets/rangecontrols.cpp" line="+143"/>
         <source>Page up</source>
         <translation>Eine Seite nach oben</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Page right</source>
         <translation>Eine Seite nach rechts</translation>
     </message>
     <message>
-        <location line="+0"/>
-        <location filename="../src/plugins/accessible/widgets/rangecontrols.cpp" line="+4"/>
         <source>Page down</source>
         <translation>Eine Seite nach unten</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Scroll left</source>
         <translation>Nach links scrollen</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Scroll up</source>
         <translation>Nach oben scrollen</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Scroll right</source>
         <translation>Nach rechts scrollen</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Scroll down</source>
         <translation>Nach unten scrollen</translation>
     </message>
     <message>
-        <location filename="../src/plugins/accessible/widgets/rangecontrols.cpp" line="-6"/>
         <source>Line up</source>
         <translation>Ausrichten</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Position</source>
         <translation>Position</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Line down</source>
         <translation>Eine Zeile nach unten</translation>
     </message>
@@ -6754,111 +5359,78 @@
 <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: Die Größenangabe für die Erzeugung ist kleiner als Null</translation>
     </message>
     <message>
-        <location line="+168"/>
-        <location filename="../src/corelib/kernel/qsharedmemory_p.h" line="+155"/>
         <source>%1: unable to lock</source>
         <translation>%1: Sperrung fehlgeschlagen</translation>
     </message>
     <message>
-        <location line="+22"/>
         <source>%1: unable to unlock</source>
         <translation>%1: Die Sperrung konnte nicht aufgehoben werden</translation>
     </message>
     <message>
-        <location filename="../src/corelib/kernel/qsharedmemory_symbian.cpp" line="+83"/>
-        <location filename="../src/corelib/kernel/qsharedmemory_unix.cpp" line="+81"/>
-        <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="+87"/>
         <source>%1: permission denied</source>
         <translation>%1: Zugriff verweigert</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: existiert bereits</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>%1: doesn&apos;t exists</source>
         <translation>%1: existiert nicht</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: Keine Ressourcen mehr verfügbar</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: Unbekannter Fehler %2</translation>
     </message>
     <message>
-        <location filename="../src/corelib/kernel/qsharedmemory_unix.cpp" line="+21"/>
         <source>%1: key is empty</source>
         <translation>%1: Ungültige Schlüsselangabe (leer)</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>%1: ftok failed</source>
         <translation>%1: ftok-Aufruf schlug fehl</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: Es kann kein Schlüssel erzeugt werden</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: existiert nicht</translation>
     </message>
     <message>
-        <location line="+39"/>
         <source>%1: UNIX key file doesn&apos;t exist</source>
         <translation>%1: Die Unix-Schlüsseldatei existiert nicht</translation>
     </message>
     <message>
-        <location line="+78"/>
         <source>%1: system-imposed size restrictions</source>
         <translation>%1: Ein systembedingtes Limit der Größe wurde erreicht</translation>
     </message>
     <message>
-        <location line="+53"/>
         <source>%1: not attached</source>
         <translation>%1: nicht verbunden</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: Ungültige Größe</translation>
     </message>
     <message>
-        <location line="+40"/>
-        <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="+63"/>
         <source>%1: key error</source>
         <translation>%1: Fehlerhafter Schlüssel</translation>
     </message>
     <message>
-        <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="+32"/>
         <source>%1: size query failed</source>
         <translation>%1: Die Abfrage der Größe schlug fehl</translation>
     </message>
     <message>
-        <location filename="../src/corelib/kernel/qsharedmemory.cpp" line="-271"/>
         <source>%1: unable to set key on lock</source>
         <translation>%1: Es kann kein Schlüssel für die Sperrung gesetzt werden</translation>
     </message>
@@ -6866,1095 +5438,884 @@
 <context>
     <name>QShortcut</name>
     <message>
-        <location filename="../src/gui/kernel/qkeysequence.cpp" line="+396"/>
         <source>Space</source>
         <extracomment>This and all following &quot;incomprehensible&quot; strings in QShortcut context are key names. Please use the localized names appearing on actual keyboards or whatever is commonly used.</extracomment>
         <translation>Leertaste</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>Rück-Tab</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Backspace</source>
         <translation>Rücktaste</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>Einfg</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Del</source>
         <translation>Entf</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Pause</source>
         <translation>Pause</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Print</source>
         <translation>Druck</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>SysReq</source>
         <translation>SysReq</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Home</source>
         <translation>Pos1</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>End</source>
         <translation>Ende</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Left</source>
         <translation>Links</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Up</source>
         <translation>Hoch</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Right</source>
         <translation>Rechts</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Down</source>
         <translation>Runter</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>PgUp</source>
         <translation>Bild aufwärts</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>PgDown</source>
         <translation>Bild abwärts</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>CapsLock</source>
         <translation>Feststelltaste</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>NumLock</source>
         <translation>Zahlen-Feststelltaste</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>ScrollLock</source>
         <translation>Rollen-Feststelltaste</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Menu</source>
         <translation>Menü</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Help</source>
         <translation>Hilfe</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Back</source>
         <translation>Zurück</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Forward</source>
         <translation>Vorwärts</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Stop</source>
         <translation>Abbrechen</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Refresh</source>
         <translation>Aktualisieren</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Volume Down</source>
         <translation>Lautstärke -</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Volume Mute</source>
         <translation>Ton aus</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Volume Up</source>
         <translation>Lautstärke +</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Bass Boost</source>
         <translation>Bass-Boost</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Bass Up</source>
         <translation>Bass +</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Bass Down</source>
         <translation>Bass -</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Treble Up</source>
         <translation>Höhen +</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Treble Down</source>
         <translation>Höhen -</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Media Play</source>
         <translation>Wiedergabe</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Media Stop</source>
         <translation>Stopp</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Media Previous</source>
         <translation>Vorheriger</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Media Next</source>
         <translation>Nächster</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Media Record</source>
         <translation>Aufzeichnen</translation>
     </message>
     <message>
-        <location line="+2"/>
+        <source>Media Pause</source>
+        <extracomment>Media player pause button</extracomment>
+        <translation>Pause</translation>
+    </message>
+    <message>
+        <source>Toggle Media Play/Pause</source>
+        <extracomment>Media player button to toggle between playing and paused</extracomment>
+        <translation>Pause</translation>
+    </message>
+    <message>
         <source>Favorites</source>
         <translation>Favoriten</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Search</source>
         <translation>Suchen</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Standby</source>
         <translation>Standby</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Open URL</source>
         <translation>URL öffnen</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Launch Mail</source>
         <translation>Mail starten</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Launch Media</source>
         <translation>Medienspieler starten</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Launch (0)</source>
         <translation>(0) starten</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Launch (1)</source>
         <translation>(1) starten</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Launch (2)</source>
         <translation>(2) starten</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Launch (3)</source>
         <translation>(3) starten</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Launch (4)</source>
         <translation>(4) starten</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Launch (5)</source>
         <translation>(5) starten</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Launch (6)</source>
         <translation>(6) starten</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Launch (7)</source>
         <translation>(7) starten</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Launch (8)</source>
         <translation>(8) starten</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Launch (9)</source>
         <translation>(9) starten</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Launch (A)</source>
         <translation>(A) starten</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Launch (B)</source>
         <translation>(B) starten</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Launch (C)</source>
         <translation>(C) starten</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Launch (D)</source>
         <translation>(D) starten</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Launch (E)</source>
         <translation>(E) starten</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Launch (F)</source>
         <translation>(F) starten</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Monitor Brightness Up</source>
         <translation>Monitor heller</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Monitor Brightness Down</source>
         <translation>Monitor dunkler</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Keyboard Light On/Off</source>
         <translation>Tastaturbeleuchtung Ein/Aus</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Keyboard Brightness Up</source>
         <translation>Tastaturbeleuchtung heller</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Keyboard Brightness Down</source>
         <translation>Tastaturbeleuchtung dunkler</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Power Off</source>
         <translation>Ausschalten</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Wake Up</source>
         <translation>Aufwecken</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Eject</source>
         <translation>Auswerfen</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Screensaver</source>
         <translation>Bildschirmschoner</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>WWW</source>
         <translation>Internet</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Sleep</source>
         <translation>Schlafmodus</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>LightBulb</source>
         <translation>Beleuchtung</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Shop</source>
         <translation>Shop</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>History</source>
         <translation>Verlauf</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Add Favorite</source>
         <translation>Lesezeichen hinzufügen</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Hot Links</source>
         <translation>Empfohlene Verweise</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Adjust Brightness</source>
         <translation>Helligkeit einstellen</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Finance</source>
         <translation>Finanzen</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Community</source>
         <translation>Community</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Audio Rewind</source>
         <translation>Audio rückspulen</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Back Forward</source>
         <translation>Hinterstes nach vorn</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Application Left</source>
         <translation>Anwendung links</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Application Right</source>
         <translation>Anwendung rechts</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Book</source>
         <translation>Buch</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>CD</source>
         <translation>CD</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Calculator</source>
         <translation>Rechner</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Clear</source>
         <translation>Löschen</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Clear Grab</source>
         <translation>Zugriff löschen</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Close</source>
         <translation>Schließen</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Copy</source>
         <translation>Kopieren</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Cut</source>
         <translation>Ausschneiden</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Display</source>
         <translation>Anzeigen</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>DOS</source>
         <translation>DOS</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Documents</source>
         <translation>Dokumente</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Spreadsheet</source>
         <translation>Spreadsheet</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Browser</source>
         <translation>Browser</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Game</source>
         <translation>Spiel</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Go</source>
         <translation>Los</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>iTouch</source>
         <translation>iTouch</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Logoff</source>
         <translation>Logoff</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Market</source>
         <translation>Markt</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Meeting</source>
         <translation>Versammlung</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Keyboard Menu</source>
         <translation>Tastaturmenü</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Menu PB</source>
         <translation>Menü PB</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>My Sites</source>
         <translation>Meine Orte</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>News</source>
         <translation>Nachrichten</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Home Office</source>
         <translation>Home Office</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Option</source>
         <translation>Option</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Paste</source>
         <translation>Einfügen</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Phone</source>
         <translation>Telefon</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Reply</source>
         <translation>Antworten</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Reload</source>
         <translation>Neu laden</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Rotate Windows</source>
         <translation>Fenster rotieren</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Rotation PB</source>
         <translation>Rotation PB</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Rotation KB</source>
         <translation>Rotation KB</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Save</source>
         <translation>Speichern</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Send</source>
         <translation>Senden</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Spellchecker</source>
         <translation>Rechtschreibprüfung</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Split Screen</source>
         <translation>Bildschirm teilen</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Support</source>
         <translation>Hilfe</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Task Panel</source>
         <translation>Task-Leiste</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Terminal</source>
         <translation>Terminal</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Tools</source>
         <translation>Werkzeuge</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Travel</source>
         <translation>Reise</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Video</source>
         <translation>Video</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Word Processor</source>
         <translation>Textverarbeitung</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>XFer</source>
         <translation>XFer</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Zoom In</source>
         <translation>Vergrößern</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Zoom Out</source>
         <translation>Verkleinern</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Away</source>
         <translation>Abwesend</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Messenger</source>
         <translation>Messenger</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>WebCam</source>
         <translation>WebCam</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Mail Forward</source>
         <translation>Weiterleitung</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Pictures</source>
         <translation>Bilder</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Music</source>
         <translation>Musik</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Battery</source>
         <translation>Batterie</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Bluetooth</source>
         <translation>Bluetooth</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Wireless</source>
         <translation>Drahtlos</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Ultra Wide Band</source>
         <translation>Ultra Wide Band</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Audio Forward</source>
         <translation>Audio vorspulen</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Audio Repeat</source>
         <translation>Audio wiederholen</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Audio Random Play</source>
         <translation>Audio zufällige Auswahl spielen</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Subtitle</source>
         <translation>Untertitel</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Audio Cycle Track</source>
         <translation>Audiospur wechseln</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Time</source>
         <translation>Zeit</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>View</source>
         <translation>Ansicht</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Top Menu</source>
         <translation>Hauptmenü</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Suspend</source>
         <translation>Pause</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Hibernate</source>
         <translation>Hibernate</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Print Screen</source>
         <translation>Bildschirm drucken</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Page Up</source>
         <translation>Bild aufwärts</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Page Down</source>
         <translation>Bild abwärts</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Caps Lock</source>
         <translation>Feststelltaste</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Num Lock</source>
         <translation>Zahlen-Feststelltaste</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Number Lock</source>
         <translation>Zahlen-Feststelltaste</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Scroll Lock</source>
         <translation>Rollen-Feststelltaste</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Insert</source>
         <translation>Einfügen</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Delete</source>
         <translation>Löschen</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>Auswählen</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Yes</source>
         <translation>Ja</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>No</source>
         <translation>Nein</translation>
     </message>
     <message>
-        <location line="+4"/>
         <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="+2"/>
         <source>Call</source>
         <extracomment>Button to start a call (note: a separate button is used to end the call)</extracomment>
         <translation>Anruf</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Hangup</source>
         <extracomment>Button to end a call (note: a separate button is used to start the call)</extracomment>
         <translation>Auflegen</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Toggle Call/Hangup</source>
         <extracomment>Button that will hang up if we&apos;re in call, or make a call if we&apos;re not.</extracomment>
         <translation>Anrufen/Aufhängen</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Flip</source>
         <translation>Umdrehen</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Voice Dial</source>
         <extracomment>Button to trigger voice dialling</extracomment>
         <translation>Sprachwahl</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Last Number Redial</source>
         <extracomment>Button to redial the last number called</extracomment>
         <translation>Wahlwiederholung</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Camera Shutter</source>
         <extracomment>Button to trigger the camera shutter (take a picture)</extracomment>
         <translation>Auslöser</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Camera Focus</source>
         <extracomment>Button to focus the camera</extracomment>
         <translation>Scharfstellen</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Kanji</source>
         <translation>Kanji</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Muhenkan</source>
         <translation>Muhenkan</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Henkan</source>
         <translation>Henkan</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Romaji</source>
         <translation>Romaji</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Hiragana</source>
         <translation>Hiragana</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Katakana</source>
         <translation>Katakana</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Hiragana Katakana</source>
         <translation>Hiragana Katakana</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Zenkaku</source>
         <translation>Zenkaku</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Hankaku</source>
         <translation>Hankaku</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Zenkaku Hankaku</source>
         <translation>Zenkaku Hankaku</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Touroku</source>
         <translation>Touroku</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Massyo</source>
         <translation>Massyo</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Kana Lock</source>
         <translation>Kana Lock</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Kana Shift</source>
         <translation>Kana Shift</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Eisu Shift</source>
         <translation>Eisu Shift</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Eisu toggle</source>
         <translation>Eisu toggle</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Code input</source>
         <translation>Code-Eingabe</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Multiple Candidate</source>
         <translation>Mehrere Vorschläge</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Previous Candidate</source>
         <translation>Vorangegangener Vorschlag</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Hangul</source>
         <translation>Hangul</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Hangul Start</source>
         <translation>Hangul Anfang</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Hangul End</source>
         <translation>Hangul Ende</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Hangul Hanja</source>
         <translation>Hangul Hanja</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Hangul Jamo</source>
         <translation>Hangul Jamo</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Hangul Romaja</source>
         <translation>Hangul Romaja</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Hangul Jeonja</source>
         <translation>Hangul Jeonja</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Hangul Banja</source>
         <translation>Hangul Banja</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Hangul PreHanja</source>
         <translation>Hangul PreHanja</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Hangul PostHanja</source>
         <translation>Hangul PostHanja</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Hangul Special</source>
         <translation>Hangul Special</translation>
     </message>
     <message>
-        <location line="+602"/>
-        <location line="+135"/>
         <source>Ctrl</source>
         <translation>Strg</translation>
     </message>
     <message>
-        <location line="-134"/>
-        <location line="+138"/>
         <source>Shift</source>
         <translation>Umschalt</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="-934"/>
         <source>Home Page</source>
         <translation>Startseite</translation>
     </message>
@@ -7962,27 +6323,22 @@
 <context>
     <name>QSlider</name>
     <message>
-        <location filename="../src/plugins/accessible/widgets/rangecontrols.cpp" line="+151"/>
         <source>Page left</source>
         <translation>Eine Seite nach links</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Page up</source>
         <translation>Eine Seite nach oben</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Position</source>
         <translation>Position</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Page right</source>
         <translation>Eine Seite nach rechts</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Page down</source>
         <translation>Eine Seite nach unten</translation>
     </message>
@@ -7990,72 +6346,58 @@
 <context>
     <name>QSocks5SocketEngine</name>
     <message>
-        <location filename="../src/network/socket/qsocks5socketengine.cpp" line="-67"/>
         <source>Connection to proxy refused</source>
         <translation>Der Proxy-Server hat den Aufbau einer Verbindung verweigert</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Connection to proxy closed prematurely</source>
         <translation>Der Proxy-Server hat die Verbindung vorzeitig beendet</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Proxy host not found</source>
         <translation>Der Proxy-Server konnte nicht gefunden werden</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Connection to proxy timed out</source>
         <translation>Bei der Verbindung mit dem Proxy-Server wurde ein Zeitlimit überschritten</translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>Proxy authentication failed</source>
         <translation>Die Authentifizierung beim Proxy-Server schlug fehl</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Proxy authentication failed: %1</source>
         <translation>Die Authentifizierung beim Proxy-Server schlug fehl: %1</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>SOCKS version 5 protocol error</source>
         <translation>Protokoll-Fehler (SOCKS version 5)</translation>
     </message>
     <message>
-        <location line="+19"/>
         <source>General SOCKSv5 server failure</source>
         <translation>Allgemeiner Fehler bei der Kommunikation mit dem SOCKSv5-Server</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Connection not allowed by SOCKSv5 server</source>
         <translation>Der SOCKSv5-Server hat die Verbindung verweigert</translation>
     </message>
     <message>
-        <location line="+16"/>
         <source>TTL expired</source>
         <translation>TTL verstrichen</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>SOCKSv5 command not supported</source>
         <translation>Dieses SOCKSv5-Kommando wird nicht unterstützt</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Address type not supported</source>
         <translation>Dieser Adresstyp wird nicht unterstützt</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Unknown SOCKSv5 proxy error code 0x%1</source>
         <translation>Unbekannten Fehlercode vom SOCKSv5-Proxy-Server erhalten: 0x%1</translation>
     </message>
     <message>
-        <location line="+689"/>
         <source>Network operation timed out</source>
         <translation>Das Zeitlimit für die Operation wurde überschritten</translation>
     </message>
@@ -8063,32 +6405,26 @@
 <context>
     <name>QSoftKeyManager</name>
     <message>
-        <location filename="../src/gui/kernel/qsoftkeymanager.cpp" line="+63"/>
         <source>Ok</source>
         <translation>Ok</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Select</source>
         <translation>Auswählen</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Done</source>
         <translation>Fertig</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Options</source>
         <translation>Optionen</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Cancel</source>
         <translation>Abbrechen</translation>
     </message>
     <message>
-        <location filename="../src/gui/kernel/qsoftkeymanager_s60.cpp" line="+321"/>
         <source>Exit</source>
         <translation>Beenden</translation>
     </message>
@@ -8096,12 +6432,10 @@
 <context>
     <name>QSpinBox</name>
     <message>
-        <location filename="../src/plugins/accessible/widgets/rangecontrols.cpp" line="-574"/>
         <source>More</source>
         <translation>Mehr</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Less</source>
         <translation>Weniger</translation>
     </message>
@@ -8109,56 +6443,42 @@
 <context>
     <name>QSql</name>
     <message>
-        <location filename="../src/qt3support/sql/q3sqlmanager_p.cpp" line="+890"/>
         <source>Delete</source>
         <translation>Löschen</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Delete this record?</source>
         <translation>Diesen Datensatz löschen?</translation>
     </message>
     <message>
-        <location line="+1"/>
-        <location line="+16"/>
-        <location line="+36"/>
         <source>Yes</source>
         <translation>Ja</translation>
     </message>
     <message>
-        <location line="-51"/>
-        <location line="+16"/>
-        <location line="+36"/>
         <source>No</source>
         <translation>Nein</translation>
     </message>
     <message>
-        <location line="-44"/>
         <source>Insert</source>
         <translation>Einfügen</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Update</source>
         <translation>Aktualisieren</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Save edits?</source>
         <translation>Änderungen speichern?</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Cancel</source>
         <translation>Abbrechen</translation>
     </message>
     <message>
-        <location line="+32"/>
         <source>Confirm</source>
         <translation>Bestätigen</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Cancel your edits?</source>
         <translation>Änderungen verwerfen?</translation>
     </message>
@@ -8166,177 +6486,142 @@
 <context>
     <name>QSslSocket</name>
     <message>
-        <location filename="../src/network/ssl/qsslsocket_openssl.cpp" line="+550"/>
         <source>Unable to write data: %1</source>
         <translation>Die Daten konnten nicht geschrieben werden: %1</translation>
     </message>
     <message>
-        <location line="+63"/>
         <source>Unable to decrypt data: %1</source>
         <translation>Die Daten konnten nicht entschlüsselt werden: %1</translation>
     </message>
     <message>
-        <location line="+76"/>
         <source>Error while reading: %1</source>
         <translation>Beim Lesen ist ein Fehler aufgetreten: %1</translation>
     </message>
     <message>
-        <location line="+96"/>
         <source>Error during SSL handshake: %1</source>
         <translation>Im Ablauf des SSL-Protokolls ist ein Fehler aufgetreten: %1</translation>
     </message>
     <message>
-        <location line="-524"/>
         <source>Error creating SSL context (%1)</source>
         <translation>Es konnte keine SSL-Kontextstruktur erzeugt werden (%1)</translation>
     </message>
     <message>
-        <location line="+25"/>
         <source>Invalid or empty cipher list (%1)</source>
         <translation>Ungültige oder leere Schlüsselliste (%1)</translation>
     </message>
     <message>
-        <location line="+45"/>
         <source>Private key does not certify public key, %1</source>
         <translation>Der private Schlüssel passt nicht zum öffentlichen Schlüssel, %1</translation>
     </message>
     <message>
-        <location line="+20"/>
         <source>Error creating SSL session, %1</source>
         <translation>Es konnte keine SSL-Sitzung erzeugt werden, %1</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Error creating SSL session: %1</source>
         <translation>Es konnte keine SSL-Sitzung erzeugt werden: %1</translation>
     </message>
     <message>
-        <location line="-64"/>
         <source>Cannot provide a certificate with no key, %1</source>
         <translation>Ohne Schlüssel kann kein Zertifikat zur Verfügung gestellt werden, %1</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Error loading local certificate, %1</source>
         <translation>Das lokale Zertifikat konnte nicht geladen werden, %1</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Error loading private key, %1</source>
         <translation>Der private Schlüssel konnte nicht geladen werden, %1</translation>
     </message>
     <message>
-        <location filename="../src/network/ssl/qsslerror.cpp" line="+213"/>
         <source>No error</source>
         <translation>Kein Fehler</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>The issuer certificate could not be found</source>
         <translation>Das Zertifikat des Ausstellers konnte nicht gefunden werden</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>The certificate signature could not be decrypted</source>
         <translation>Die Signatur des Zertifikats konnte nicht entschlüsselt werden</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>The public key in the certificate could not be read</source>
         <translation>Der öffentliche Schlüssel konnte nicht gelesen werden</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>The signature of the certificate is invalid</source>
         <translation>Die Signatur des Zertifikats ist ungültig</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>The certificate is not yet valid</source>
         <translation>Das Zertifikat ist noch nicht gültig</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>The certificate has expired</source>
         <translation>Die Gültigkeit des Zertifikats ist abgelaufen</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>The certificate&apos;s notBefore field contains an invalid time</source>
         <translation>Das Feld &apos;notBefore&apos; des Zertifikats enthält eine ungültige Zeit</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>The certificate&apos;s notAfter field contains an invalid time</source>
         <translation>Das Feld &apos;notAfter&apos; des Zertifikats enthält eine ungültige Zeit</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>The certificate is self-signed, and untrusted</source>
         <translation>Das Zertifikat ist selbstsigniert und daher nicht vertrauenswürdig</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>The root certificate of the certificate chain is self-signed, and untrusted</source>
         <translation>Das oberste Zertifikat der Kette ist selbstsigniert und daher nicht vertrauenswürdig</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>The issuer certificate of a locally looked up certificate could not be found</source>
         <translation>Das Zertifikat des Ausstellers eines lokal gefundenen Zertifikats konnte nicht gefunden werden</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>No certificates could be verified</source>
         <translation>Keines der Zertifikate konnte verifiziert werden</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>One of the CA certificates is invalid</source>
         <translation>Eines der Zertifikate der Zertifizierungsstelle ist ungültig</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>The basicConstraints path length parameter has been exceeded</source>
         <translation>Die Länge des basicConstraints-Pfades wurde überschritten</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>The supplied certificate is unsuitable for this purpose</source>
         <translation>Das angegebene Zertifikat kann in diesem Fall nicht verwendet werden</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>The root CA certificate is not trusted for this purpose</source>
         <translation>Das oberste Zertifikat der Zertifizierungsstelle ist für diesen Fall nicht vertrauenswürdig</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>The root CA certificate is marked to reject the specified purpose</source>
         <translation>Das oberste Zertifikat der Zertifizierungsstelle weist diesen Fall auf Grund einer speziellen Kennzeichnung zurück</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>Das Zertifikat des betrachteten Ausstellers wurde zurückgewiesen da sein Subjektname nicht dem Namen des Austellers des aktuellen Zertifikats entspricht</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>Das Zertifikat des betrachteten Ausstellers wurde zurückgewiesen da Ausstellername und Seriennummer vorhanden sind und nicht dem Bezeichner der Zertifizierungsstelle des aktuellen Zertifikats entsprechen</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>The peer did not present any certificate</source>
         <translation>Die Gegenstelle hat kein Zertifikat angegeben</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>The host name did not match any of the valid hosts for this certificate</source>
         <translation>Der Name des Hosts ist keiner aus der Liste der für dieses Zertifikat gültigen Hosts</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Unknown error</source>
         <translation>Unbekannter Fehler</translation>
     </message>
@@ -8344,22 +6629,18 @@
 <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>Der Anfangszustand des zusammengesetzten Zustands &apos;%1&apos; fehlt</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Missing default state in history state &apos;%1&apos;</source>
         <translation>Der Anfangszustand im Verlauf bei Zustand &apos;%1&apos; fehlt</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>No common ancestor for targets and source of transition from state &apos;%1&apos;</source>
         <translation>Die Ziele und die Quelle des Übergangs vom Zustand &apos;%1&apos; haben keinen gemeinsamen Ursprung</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Unknown error</source>
         <translation>Unbekannter Fehler</translation>
     </message>
@@ -8367,30 +6648,22 @@
 <context>
     <name>QSystemSemaphore</name>
     <message>
-        <location filename="../src/corelib/kernel/qsystemsemaphore_unix.cpp" line="-46"/>
         <source>%1: does not exist</source>
         <translation>%1: Nicht existent</translation>
     </message>
     <message>
-        <location line="+5"/>
-        <location filename="../src/corelib/kernel/qsystemsemaphore_win.cpp" line="+66"/>
         <source>%1: out of resources</source>
         <translation>%1: Keine Ressourcen mehr verfügbar</translation>
     </message>
     <message>
-        <location line="-13"/>
-        <location filename="../src/corelib/kernel/qsystemsemaphore_win.cpp" line="+4"/>
         <source>%1: permission denied</source>
         <translation>%1: Zugriff verweigert</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>%1: already exists</source>
         <translation>%1: Existiert bereits</translation>
     </message>
     <message>
-        <location line="+13"/>
-        <location filename="../src/corelib/kernel/qsystemsemaphore_win.cpp" line="+3"/>
         <source>%1: unknown error %2</source>
         <translation>%1: Unbekannter Fehler %2</translation>
     </message>
@@ -8398,12 +6671,10 @@
 <context>
     <name>QTDSDriver</name>
     <message>
-        <location filename="../src/sql/drivers/tds/qsql_tds.cpp" line="+595"/>
         <source>Unable to open connection</source>
         <translation>Die Datenbankverbindung kann nicht geöffnet werden</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Unable to use database</source>
         <translation>Die Datenbank kann nicht verwendet werden</translation>
     </message>
@@ -8411,12 +6682,10 @@
 <context>
     <name>QTabBar</name>
     <message>
-        <location filename="../src/plugins/accessible/widgets/complexwidgets.cpp" line="-326"/>
         <source>Scroll Left</source>
         <translation>Nach links scrollen</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Scroll Right</source>
         <translation>Nach rechts scrollen</translation>
     </message>
@@ -8424,7 +6693,6 @@
 <context>
     <name>QTcpServer</name>
     <message>
-        <location filename="../src/network/socket/qtcpserver.cpp" line="+292"/>
         <source>Operation on socket is not supported</source>
         <translation>Diese Socket-Operation wird nicht unterstützt</translation>
     </message>
@@ -8432,42 +6700,34 @@
 <context>
     <name>QTextControl</name>
     <message>
-        <location filename="../src/gui/text/qtextcontrol.cpp" line="+2046"/>
         <source>&amp;Undo</source>
         <translation>&amp;Rückgängig</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>&amp;Redo</source>
         <translation>Wieder&amp;herstellen</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Cu&amp;t</source>
         <translation>&amp;Ausschneiden</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>&amp;Copy</source>
         <translation>&amp;Kopieren</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Copy &amp;Link Location</source>
         <translation>&amp;Link-Adresse kopieren</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>&amp;Paste</source>
         <translation>Einf&amp;ügen</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Delete</source>
         <translation>Löschen</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Select All</source>
         <translation>Alles auswählen</translation>
     </message>
@@ -8475,14 +6735,10 @@
 <context>
     <name>QToolButton</name>
     <message>
-        <location filename="../src/plugins/accessible/widgets/simplewidgets.cpp" line="+310"/>
-        <location line="+6"/>
         <source>Press</source>
         <translation>Drücken</translation>
     </message>
     <message>
-        <location line="-4"/>
-        <location line="+8"/>
         <source>Open</source>
         <translation>Öffnen</translation>
     </message>
@@ -8490,7 +6746,6 @@
 <context>
     <name>QUdpSocket</name>
     <message>
-        <location filename="../src/network/socket/qudpsocket.cpp" line="+189"/>
         <source>This platform does not support IPv6</source>
         <translation>Diese Plattform unterstützt kein IPv6</translation>
     </message>
@@ -8498,12 +6753,10 @@
 <context>
     <name>QUndoGroup</name>
     <message>
-        <location filename="../src/gui/util/qundogroup.cpp" line="+385"/>
         <source>Undo</source>
         <translation>Rückgängig</translation>
     </message>
     <message>
-        <location line="+28"/>
         <source>Redo</source>
         <translation>Wiederherstellen</translation>
     </message>
@@ -8511,7 +6764,6 @@
 <context>
     <name>QUndoModel</name>
     <message>
-        <location filename="../src/gui/util/qundoview.cpp" line="+101"/>
         <source>&lt;empty&gt;</source>
         <translation>&lt;leer&gt;</translation>
     </message>
@@ -8519,12 +6771,10 @@
 <context>
     <name>QUndoStack</name>
     <message>
-        <location filename="../src/gui/util/qundostack.cpp" line="+832"/>
         <source>Undo</source>
         <translation>Rückgängig</translation>
     </message>
     <message>
-        <location line="+27"/>
         <source>Redo</source>
         <translation>Wiederherstellen</translation>
     </message>
@@ -8532,57 +6782,46 @@
 <context>
     <name>QUnicodeControlCharacterMenu</name>
     <message>
-        <location filename="../src/gui/text/qtextcontrol.cpp" line="+899"/>
         <source>LRM Left-to-right mark</source>
         <translation>LRM Left-to-right mark</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>RLM Right-to-left mark</source>
         <translation>RLM Right-to-left mark</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>ZWJ Zero width joiner</source>
         <translation>ZWJ Zero width joiner</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>ZWNJ Zero width non-joiner</source>
         <translation>ZWNJ Zero width non-joiner</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>ZWSP Zero width space</source>
         <translation>ZWSP Zero width space</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>LRE Start of left-to-right embedding</source>
         <translation>LRE Start of left-to-right embedding</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>RLE Start of right-to-left embedding</source>
         <translation>RLE Start of right-to-left embedding</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>LRO Start of left-to-right override</source>
         <translation>LRO Start of left-to-right override</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>RLO Start of right-to-left override</source>
         <translation>RLO Start of right-to-left override</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>PDF Pop directional formatting</source>
         <translation>PDF Pop directional formatting</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Insert Unicode control character</source>
         <translation>Unicode-Kontrollzeichen einfügen</translation>
     </message>
@@ -8590,32 +6829,26 @@
 <context>
     <name>QWebFrame</name>
     <message>
-        <location filename="../src/3rdparty/webkit/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp" line="+753"/>
         <source>Request cancelled</source>
         <translation>Anfrage wurde abgebrochen</translation>
     </message>
     <message>
-        <location line="+19"/>
         <source>Request blocked</source>
         <translation>Anfrage wurde abgewiesen</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Cannot show URL</source>
         <translation>Der URL kann nicht angezeigt werden</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Frame load interrupted by policy change</source>
         <translation>Das Laden des Rahmens wurde durch eine Änderung der Richtlinien unterbrochen</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Cannot show mimetype</source>
         <translation>Dieser Mime-Typ kann nicht angezeigt werden</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>File does not exist</source>
         <translation>Die Datei existiert nicht</translation>
     </message>
@@ -8623,621 +6856,515 @@
 <context>
     <name>QWebPage</name>
     <message>
-        <location filename="../src/3rdparty/webkit/WebCore/platform/qt/Localizations.cpp" line="+44"/>
         <source>Submit</source>
         <comment>default label for Submit buttons in forms on web pages</comment>
         <translation>Senden</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>Senden</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Reset</source>
         <comment>default label for Reset buttons in forms on web pages</comment>
         <translation>Rücksetzen</translation>
     </message>
     <message>
-        <location line="+16"/>
         <source>Choose File</source>
         <comment>title for file button used in HTML forms</comment>
         <translation>Durchsuchen</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>Es ist keine Datei ausgewählt</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Open in New Window</source>
         <comment>Open in New Window context menu item</comment>
         <translation>In neuem Fenster öffnen</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Save Link...</source>
         <comment>Download Linked File context menu item</comment>
         <translation>Ziel speichern unter...</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Copy Link</source>
         <comment>Copy Link context menu item</comment>
         <translation>Link-Adresse kopieren</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Open Image</source>
         <comment>Open Image in New Window context menu item</comment>
         <translation>Grafik in neuem Fenster öffnen</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Save Image</source>
         <comment>Download Image context menu item</comment>
         <translation>Grafik speichern unter</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Copy Image</source>
         <comment>Copy Link context menu item</comment>
         <translation>Grafik kopieren</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Open Frame</source>
         <comment>Open Frame in New Window context menu item</comment>
         <translation>Frame öffnen</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Copy</source>
         <comment>Copy context menu item</comment>
         <translation>Kopieren</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Go Back</source>
         <comment>Back context menu item</comment>
         <translation>Zurück</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Go Forward</source>
         <comment>Forward context menu item</comment>
         <translation>Vor</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Stop</source>
         <comment>Stop context menu item</comment>
         <translation>Abbrechen</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Reload</source>
         <comment>Reload context menu item</comment>
         <translation>Neu laden</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Cut</source>
         <comment>Cut context menu item</comment>
         <translation>Ausschneiden</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Paste</source>
         <comment>Paste context menu item</comment>
         <translation>Einfügen</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>No Guesses Found</source>
         <comment>No Guesses Found context menu item</comment>
         <translation>Keine Vorschläge gefunden</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Ignore</source>
         <comment>Ignore Spelling context menu item</comment>
         <translation>Ignorieren</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Add To Dictionary</source>
         <comment>Learn Spelling context menu item</comment>
         <translation>In Wörterbuch aufnehmen</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Search The Web</source>
         <comment>Search The Web context menu item</comment>
         <translation>Im Web suchen</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Look Up In Dictionary</source>
         <comment>Look Up in Dictionary context menu item</comment>
         <translation>Im Wörterbuch nachschauen</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Open Link</source>
         <comment>Open Link context menu item</comment>
         <translation>Adresse öffnen</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Ignore</source>
         <comment>Ignore Grammar context menu item</comment>
         <translation>Ignorieren</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Spelling</source>
         <comment>Spelling and Grammar context sub-menu item</comment>
         <translation>Rechtschreibung</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Show Spelling and Grammar</source>
         <comment>menu item title</comment>
         <translation>Rechtschreibung und Grammatik anzeigen</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Hide Spelling and Grammar</source>
         <comment>menu item title</comment>
         <translation>Rechtschreibung und Grammatik nicht anzeigen</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Check Spelling</source>
         <comment>Check spelling context menu item</comment>
         <translation>Rechtschreibung prüfen</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Check Spelling While Typing</source>
         <comment>Check spelling while typing context menu item</comment>
         <translation>Rechtschreibung während des Schreibens überprüfen</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Check Grammar With Spelling</source>
         <comment>Check grammar with spelling context menu item</comment>
         <translation>Grammatik mit Rechtschreibung zusammen überprüfen</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Fonts</source>
         <comment>Font context sub-menu item</comment>
         <translation>Fonts</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Bold</source>
         <comment>Bold context menu item</comment>
         <translation>Fett</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Italic</source>
         <comment>Italic context menu item</comment>
         <translation>Kursiv</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Underline</source>
         <comment>Underline context menu item</comment>
         <translation>Unterstrichen</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Outline</source>
         <comment>Outline context menu item</comment>
         <translation>Umriss</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Direction</source>
         <comment>Writing direction context sub-menu item</comment>
         <translation>Schreibrichtung</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Text Direction</source>
         <comment>Text direction context sub-menu item</comment>
         <translation>Schreibrichtung</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Default</source>
         <comment>Default writing direction context menu item</comment>
         <translation>Vorgabe</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Left to Right</source>
         <comment>Left to Right context menu item</comment>
         <translation>Von links nach rechts</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Right to Left</source>
         <comment>Right to Left context menu item</comment>
         <translation>Von rechts nach links</translation>
     </message>
     <message>
-        <location line="+100"/>
         <source>Missing Plug-in</source>
         <comment>Label text to be used when a plug-in is missing</comment>
         <translation>Fehlendes Plugin</translation>
     </message>
     <message>
-        <location line="+20"/>
         <source>Loading...</source>
         <comment>Media controller status message when the media is loading</comment>
         <translation>Lädt...</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Live Broadcast</source>
         <comment>Media controller status message when watching a live broadcast</comment>
         <translation>Live-Übertragung</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Audio Element</source>
         <comment>Media controller element</comment>
         <translation>Audio-Element</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Video Element</source>
         <comment>Media controller element</comment>
         <translation>Video-Element</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Mute Button</source>
         <comment>Media controller element</comment>
         <translation>Stummschalttaste</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Unmute Button</source>
         <comment>Media controller element</comment>
         <translation>Abstelltaste für Stummschaltung</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Play Button</source>
         <comment>Media controller element</comment>
         <translation>Abspielknopf</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Pause Button</source>
         <comment>Media controller element</comment>
         <translation>Pause-Knopf</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Slider</source>
         <comment>Media controller element</comment>
         <translation>Schieberegler</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Slider Thumb</source>
         <comment>Media controller element</comment>
         <translation>Schieberegler-Griff</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Rewind Button</source>
         <comment>Media controller element</comment>
         <translation>Rückspultaste</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Return to Real-time Button</source>
         <comment>Media controller element</comment>
         <translation>Kehre zu Echtzeit zurück</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Elapsed Time</source>
         <comment>Media controller element</comment>
         <translation>Spielzeit</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Remaining Time</source>
         <comment>Media controller element</comment>
         <translation>Verbleibende Zeit</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Status Display</source>
         <comment>Media controller element</comment>
         <translation>Statusanzeige</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Fullscreen Button</source>
         <comment>Media controller element</comment>
         <translation>Vollbild-Taste</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Seek Forward Button</source>
         <comment>Media controller element</comment>
         <translation>Vorlauftaste</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Seek Back Button</source>
         <comment>Media controller element</comment>
         <translation>Rücklauftaste</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Audio element playback controls and status display</source>
         <comment>Media controller element</comment>
         <translation>Audio-Steuerung und Statusanzeige</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Video element playback controls and status display</source>
         <comment>Media controller element</comment>
         <translation>Video-Steuerung und Statusanzeige</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Mute audio tracks</source>
         <comment>Media controller element</comment>
         <translation>Schalte Tonspuren stumm</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Unmute audio tracks</source>
         <comment>Media controller element</comment>
         <translation>Stummschaltung der Tonspuren aufheben</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Begin playback</source>
         <comment>Media controller element</comment>
         <translation>Abspielen</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Pause playback</source>
         <comment>Media controller element</comment>
         <translation>Pause</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Movie time scrubber</source>
         <comment>Media controller element</comment>
         <translation>Abspielzeit</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Movie time scrubber thumb</source>
         <comment>Media controller element</comment>
         <translation>Griff zur Einstellung der Abspielzeit</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Rewind movie</source>
         <comment>Media controller element</comment>
         <translation>Film zurückspulen</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Return streaming movie to real-time</source>
         <comment>Media controller element</comment>
         <translation>Setze Film auf Echtzeit zurück</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Current movie time</source>
         <comment>Media controller element</comment>
         <translation>Abspielzeit des Films</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Remaining movie time</source>
         <comment>Media controller element</comment>
         <translation>Verbleibende Zeit des Films</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Current movie status</source>
         <comment>Media controller element</comment>
         <translation>Status des Films</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Play movie in full-screen mode</source>
         <comment>Media controller element</comment>
         <translation>Film im Vollbildmodus abspielen</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Seek quickly back</source>
         <comment>Media controller element</comment>
         <translation>Schnelles Rückwärtssuchen</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Seek quickly forward</source>
         <comment>Media controller element</comment>
         <translation>Schnelles Vorwärtssuchen</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Indefinite time</source>
         <comment>Media time description</comment>
         <translation>Unbegrenzte Zeit</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>%1 days %2 hours %3 minutes %4 seconds</source>
         <comment>Media time description</comment>
         <translation>%1 Tage %2 Stunden %3 Minuten %4 Sekunden</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>%1 hours %2 minutes %3 seconds</source>
         <comment>Media time description</comment>
         <translation>%1 Stunden %2 Minuten %3 Sekunden</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>%1 minutes %2 seconds</source>
         <comment>Media time description</comment>
         <translation>%1 Minuten %2 Sekunden</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>%1 seconds</source>
         <comment>Media time description</comment>
         <translation>%1 Sekunden</translation>
     </message>
     <message>
-        <location line="-225"/>
         <source>Inspect</source>
         <comment>Inspect Element context menu item</comment>
         <translation>Prüfen</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>Es existieren noch keine Suchanfragen</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>Bisherige Suchanfragen</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>Gespeicherte Suchanfragen löschen</translation>
     </message>
     <message>
-        <location line="+90"/>
         <source>Unknown</source>
         <comment>Unknown filesize FTP directory listing item</comment>
         <translation>Unbekannt</translation>
     </message>
     <message>
-        <location filename="../src/3rdparty/webkit/WebKit/qt/WebCoreSupport/InspectorClientQt.cpp" line="+253"/>
         <source>Web Inspector - %2</source>
         <translation>Web Inspector - %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 Pixel)</translation>
     </message>
     <message>
-        <location filename="../src/3rdparty/webkit/WebCore/platform/network/qt/QNetworkReplyHandler.cpp" line="+347"/>
         <source>Redirection limit reached</source>
         <translation>Maximal Anzahl von Weiterleitungen wurde erreicht</translation>
     </message>
     <message>
-        <location line="+121"/>
         <source>Bad HTTP request</source>
         <translation>Ungültige HTTP-Anforderung</translation>
     </message>
     <message>
-        <location filename="../src/3rdparty/webkit/WebCore/platform/qt/Localizations.cpp" line="-306"/>
         <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>Dieser Index verfügt über eine Suchfunktion. Geben Sie einen Suchbegriff ein:</translation>
     </message>
     <message>
-        <location filename="../src/3rdparty/webkit/WebCore/platform/qt/ScrollbarQt.cpp" line="+58"/>
         <source>Scroll here</source>
         <translation>Hierher scrollen</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Left edge</source>
         <translation>Linker Rand</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Top</source>
         <translation>Anfang</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Right edge</source>
         <translation>Rechter Rand</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Bottom</source>
         <translation>Ende</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Page left</source>
         <translation>Eine Seite nach links</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Page up</source>
         <translation>Eine Seite nach oben</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Page right</source>
         <translation>Eine Seite nach rechts</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Page down</source>
         <translation>Eine Seite nach unten</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Scroll left</source>
         <translation>Nach links scrollen</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Scroll up</source>
         <translation>Nach oben scrollen</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Scroll right</source>
         <translation>Nach rechts scrollen</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Scroll down</source>
         <translation>Nach unten scrollen</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>
@@ -9246,237 +7373,190 @@
         </translation>
     </message>
     <message>
-        <location filename="../src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp" line="+2033"/>
         <source>JavaScript Alert - %1</source>
         <translation>JavaScript-Hinweis - %1</translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>JavaScript Confirm - %1</source>
         <translation>JavaScript-Bestätigung - %1</translation>
     </message>
     <message>
-        <location line="+20"/>
         <source>JavaScript Prompt - %1</source>
         <translation>JavaScript-Eingabeaufforderung - %1</translation>
     </message>
     <message>
-        <location line="+26"/>
         <source>JavaScript Problem - %1</source>
         <translation>JavaScript-Problem - %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>Das Skript dieser Webseite ist fehlerhaft. Möchten Sie es anhalten?</translation>
     </message>
     <message>
-        <location line="+395"/>
         <source>Move the cursor to the next character</source>
         <translation>Positionsmarke auf folgendes Zeichen setzen</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Move the cursor to the previous character</source>
         <translation>Positionsmarke auf vorangehendes Zeichen setzen</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Move the cursor to the next word</source>
         <translation>Positionsmarke auf folgendes Wort setzen</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Move the cursor to the previous word</source>
         <translation>Positionsmarke auf vorangehendes Wort setzen</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Move the cursor to the next line</source>
         <translation>Positionsmarke auf folgende Zeile setzen</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Move the cursor to the previous line</source>
         <translation>Positionsmarke auf vorangehende Zeile setzen</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Move the cursor to the start of the line</source>
         <translation>Positionsmarke auf Zeilenanfang setzen</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Move the cursor to the end of the line</source>
         <translation>Positionsmarke auf Zeilenende setzen</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Move the cursor to the start of the block</source>
         <translation>Positionsmarke auf Anfang des Blocks setzen</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Move the cursor to the end of the block</source>
         <translation>Positionsmarke auf Ende des Blocks setzen</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Move the cursor to the start of the document</source>
         <translation>Positionsmarke auf Anfang des Dokumentes setzen</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Move the cursor to the end of the document</source>
         <translation>Positionsmarke auf Ende des Dokumentes setzen</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Select all</source>
         <translation>Alles auswählen</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Select to the next character</source>
         <translation>Bis zum nächsten Zeichen markieren</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Select to the previous character</source>
         <translation>Bis zum vorherigen Zeichen markieren</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Select to the next word</source>
         <translation>Bis zum nächsten Wort markieren</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Select to the previous word</source>
         <translation>Bis zum vorherigen Wort markieren</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Select to the next line</source>
         <translation>Bis zur nächsten Zeile markieren</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Select to the previous line</source>
         <translation>Bis zur vorherigen Zeile markieren</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Select to the start of the line</source>
         <translation>Bis zum Zeilenanfang markieren</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Select to the end of the line</source>
         <translation>Bis zum Zeilenende markieren</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Select to the start of the block</source>
         <translation>Bis zum Anfang des Blocks markieren</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Select to the end of the block</source>
         <translation>Bis zum Ende des Blocks markieren</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Select to the start of the document</source>
         <translation>Bis zum Anfang des Dokuments markieren</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Select to the end of the document</source>
         <translation>Bis zum Ende des Dokuments markieren</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Delete to the start of the word</source>
         <translation>Bis zum Anfang des Wortes löschen</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Delete to the end of the word</source>
         <translation>Bis zum Ende des Wortes löschen</translation>
     </message>
     <message>
-        <location line="+33"/>
         <source>Insert a new paragraph</source>
         <translation>Neuen Abschnitt einfügen</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Insert a new line</source>
         <translation>Neue Zeile einfügen</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Paste and Match Style</source>
         <translation>Einfügen und dem Stil anpassen</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Remove formatting</source>
         <translation>Formatierung entfernen</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Strikethrough</source>
         <translation>Durchgestrichen</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Subscript</source>
         <translation>Tiefstellung</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Superscript</source>
         <translation>Hochstellung</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Insert Bulleted List</source>
         <translation>Liste mit Punkten einfügen</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Insert Numbered List</source>
         <translation>Nummerierte Liste einfügen</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Indent</source>
         <translation>Einrücken</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Outdent</source>
         <translation>Einrückung aufheben</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Center</source>
         <translation>Zentrieren</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Justify</source>
         <translation>Ausrichten</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Align Left</source>
         <translation>Linksbündig ausrichten</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Align Right</source>
         <translation>Rechtsbündig ausrichten</translation>
     </message>
@@ -9484,7 +7564,6 @@
 <context>
     <name>QWhatsThisAction</name>
     <message>
-        <location filename="../src/gui/kernel/qwhatsthis.cpp" line="+527"/>
         <source>What&apos;s This?</source>
         <translation>Direkthilfe</translation>
     </message>
@@ -9492,7 +7571,6 @@
 <context>
     <name>QWidget</name>
     <message>
-        <location filename="../src/gui/kernel/qwidget.cpp" line="+5806"/>
         <source>*</source>
         <translation>*</translation>
     </message>
@@ -9500,57 +7578,46 @@
 <context>
     <name>QWizard</name>
     <message>
-        <location filename="../src/gui/dialogs/qwizard.cpp" line="+701"/>
         <source>Cancel</source>
         <translation>Abbrechen</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Help</source>
         <translation>Hilfe</translation>
     </message>
     <message>
-        <location line="-14"/>
         <source>&lt; &amp;Back</source>
         <translation>&lt; &amp;Zurück</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>&amp;Finish</source>
         <translation>Ab&amp;schließen</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>&amp;Help</source>
         <translation>&amp;Hilfe</translation>
     </message>
     <message>
-        <location line="-14"/>
         <source>Go Back</source>
         <translation>Zurück</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Continue</source>
         <translation>Weiter</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Commit</source>
         <translation>Anwenden</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Done</source>
         <translation>Fertig</translation>
     </message>
     <message>
-        <location line="-4"/>
         <source>&amp;Next</source>
         <translation>&amp;Weiter</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>&amp;Next &gt;</source>
         <translation>&amp;Weiter &gt;</translation>
     </message>
@@ -9558,69 +7625,54 @@
 <context>
     <name>QWorkspace</name>
     <message>
-        <location filename="../src/gui/widgets/qworkspace.cpp" line="+1089"/>
         <source>&amp;Restore</source>
         <translation>Wieder&amp;herstellen</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Move</source>
         <translation>Ver&amp;schieben</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Size</source>
         <translation>&amp;Größe ändern</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Mi&amp;nimize</source>
         <translation>M&amp;inimieren</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Ma&amp;ximize</source>
         <translation>Ma&amp;ximieren</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>&amp;Close</source>
         <translation>Schl&amp;ießen</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Stay on &amp;Top</source>
         <translation>Im &amp;Vordergrund bleiben</translation>
     </message>
     <message>
-        <location line="-988"/>
         <source>Minimize</source>
         <translation>Minimieren</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Restore Down</source>
         <translation>Wiederherstellen</translation>
     </message>
     <message>
-        <location line="-4"/>
         <source>Close</source>
         <translation>Schließen</translation>
     </message>
     <message>
-        <location line="+993"/>
-        <location line="+1059"/>
         <source>Sh&amp;ade</source>
         <translation>&amp;Aufrollen</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;Herabrollen</translation>
     </message>
@@ -9628,117 +7680,94 @@
 <context>
     <name>QXml</name>
     <message>
-        <location filename="../src/xml/sax/qxml.cpp" line="+58"/>
         <source>no error occurred</source>
         <translation>kein Fehler</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>error triggered by consumer</source>
         <translation>Konsument löste Fehler aus</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>unexpected end of file</source>
         <translation>unerwartetes Ende der Datei</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>more than one document type definition</source>
         <translation>mehrere Dokumenttypdefinitionen</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>error occurred while parsing element</source>
         <translation>Fehler beim Parsen eines Elements</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>tag mismatch</source>
         <translation>Element-Tags sind nicht richtig geschachtelt</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>error occurred while parsing content</source>
         <translation>Fehler beim Parsen des Inhalts eines Elements</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>unexpected character</source>
         <translation>unerwartetes Zeichen</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>invalid name for processing instruction</source>
         <translation>kein gültiger Name für eine Processing-Instruktion</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>version expected while reading the XML declaration</source>
         <translation>fehlende Version beim Parsen der XML-Deklaration</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>wrong value for standalone declaration</source>
         <translation>falscher Wert für die Standalone-Deklaration</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>error occurred while parsing document type definition</source>
         <translation>Fehler beim Parsen der Dokumenttypdefinition</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>letter is expected</source>
         <translation>ein Buchstabe ist an dieser Stelle erforderlich</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>error occurred while parsing comment</source>
         <translation>Fehler beim Parsen eines Kommentars</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>error occurred while parsing reference</source>
         <translation>Fehler beim Parsen einer Referenz</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>internal general entity reference not allowed in DTD</source>
         <translation>in einer DTD ist keine interne allgemeine Entity-Referenz erlaubt</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>external parsed general entity reference not allowed in attribute value</source>
         <translation>in einem Attribut-Wert sind keine externen Entity-Referenzen erlaubt</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>external parsed general entity reference not allowed in DTD</source>
         <translation>in der DTD sind keine externen Entity-Referenzen erlaubt </translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>unparsed entity reference in wrong context</source>
         <translation>nicht-analysierte Entity-Referenz im falschen Kontext verwendet</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>recursive entities</source>
         <translation>rekursive Entity</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>error in the text declaration of an external entity</source>
         <translation>Fehler in der Text-Deklaration einer externen Entity</translation>
     </message>
     <message>
-        <location line="-11"/>
         <source>encoding declaration or standalone declaration expected while reading the XML declaration</source>
         <translation>fehlende Encoding-Deklaration oder Standalone-Deklaration beim Parsen der XML-Deklaration</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>standalone declaration expected while reading the XML declaration</source>
         <translation>fehlende Standalone-Deklaration beim Parsen der XML Deklaration</translation>
     </message>
@@ -9746,27 +7775,22 @@
 <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>Warnung in %1, bei Zeile %2, Spalte %3: %4</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Warning in %1: %2</source>
         <translation>Warnung in %1: %2</translation>
     </message>
     <message>
-        <location line="+16"/>
         <source>Unknown location</source>
         <translation>unbekannt</translation>
     </message>
     <message>
-        <location line="+14"/>
         <source>Error %1 in %2, at line %3, column %4: %5</source>
         <translation>Fehler %1 in %2, bei Zeile %3, Spalte %4: %5</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Error %1 in %2: %3</source>
         <translation>Fehler %1 in %2: %3</translation>
     </message>
@@ -9774,184 +7798,142 @@
 <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>Überzähliger Inhalt nach Ende des Dokumentes.</translation>
     </message>
     <message>
-        <location line="+271"/>
         <source>Invalid entity value.</source>
         <translation>Ungültiger Entity-Wert.</translation>
     </message>
     <message>
-        <location line="+109"/>
         <source>Invalid XML character.</source>
         <translation>Ungültiges XML-Zeichen.</translation>
     </message>
     <message>
-        <location line="+259"/>
         <source>Sequence &apos;]]&gt;&apos; not allowed in content.</source>
         <translation>Im Inhalt ist die Zeichenfolge &apos;]]&gt;&apos; nicht erlaubt.</translation>
     </message>
     <message>
-        <location line="+309"/>
         <source>Namespace prefix &apos;%1&apos; not declared</source>
         <translation>Der Namensraum-Präfix &apos;%1&apos; wurde nicht deklariert</translation>
     </message>
     <message>
-        <location line="+78"/>
         <source>Attribute redefined.</source>
         <translation>Redefinition eines Attributes.</translation>
     </message>
     <message>
-        <location line="+115"/>
         <source>Unexpected character &apos;%1&apos; in public id literal.</source>
         <translation>&apos;%1&apos; ist kein gültiges Zeichen in einer public-id-Angabe.</translation>
     </message>
     <message>
-        <location line="+28"/>
         <source>Invalid XML version string.</source>
         <translation>Ungültige XML-Versionsangabe.</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Unsupported XML version.</source>
         <translation>Diese XML-Version wird nicht unterstützt.</translation>
     </message>
     <message>
-        <location line="+23"/>
         <source>%1 is an invalid encoding name.</source>
         <translation>%1 ist kein gültiger Name für das Encoding.</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Encoding %1 is unsupported</source>
         <translation>Das Encoding %1 wird nicht unterstützt</translation>
     </message>
     <message>
-        <location line="+16"/>
         <source>Standalone accepts only yes or no.</source>
         <translation>Der Wert für das &apos;Standalone&apos;-Attribut kann nur &apos;yes&apos; oder &apos;no&apos; sein.</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Invalid attribute in XML declaration.</source>
         <translation>Die XML-Deklaration enthält ein ungültiges Attribut.</translation>
     </message>
     <message>
-        <location line="+16"/>
         <source>Premature end of document.</source>
         <translation>Vorzeitiges Ende des Dokuments.</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Invalid document.</source>
         <translation>Ungültiges Dokument.</translation>
     </message>
     <message>
-        <location line="+40"/>
         <source>Expected </source>
         <translation>Es wurde </translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>, but got &apos;</source>
         <translation>erwartet, stattdessen erhalten &apos;</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Unexpected &apos;</source>
         <translation>Ungültig an dieser Stelle &apos; </translation>
     </message>
     <message>
-        <location line="+225"/>
         <source>Expected character data.</source>
         <translation>Es wurden Zeichendaten erwartet.</translation>
     </message>
     <message>
-        <location filename="../src/corelib/xml/qxmlstream_p.h" line="-995"/>
         <source>Recursive entity detected.</source>
         <translation>Es wurde eine rekursive Entity festgestellt.</translation>
     </message>
     <message>
-        <location line="+516"/>
         <source>Start tag expected.</source>
         <translation>Öffnendes Element erwartet.</translation>
     </message>
     <message>
-        <location line="+222"/>
         <source>XML declaration not at start of document.</source>
         <translation>Die XML-Deklaration befindet sich nicht am Anfang des Dokuments.</translation>
     </message>
     <message>
-        <location line="-31"/>
         <source>NDATA in parameter entity declaration.</source>
         <translation>Eine Parameter-Entity-Deklaration darf kein NDATA enthalten.</translation>
     </message>
     <message>
-        <location line="+34"/>
         <source>%1 is an invalid processing instruction name.</source>
         <translation>%1 ist kein gültiger Name für eine Prozessing-Instruktion.</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>Invalid processing instruction name.</source>
         <translation>Der Name der Prozessing-Instruktion ist ungültig.</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>Ungültige Namensraum-Deklaration.</translation>
     </message>
     <message>
-        <location filename="../src/corelib/xml/qxmlstream_p.h" line="+15"/>
         <source>Invalid XML name.</source>
         <translation>Ungültiger XML-Name.</translation>
     </message>
     <message>
-        <location line="+23"/>
         <source>Opening and ending tag mismatch.</source>
         <translation>Die Anzahl der öffnenden Elemente stimmt nicht mit der Anzahl der schließenden Elemente überein.</translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>Reference to unparsed entity &apos;%1&apos;.</source>
         <translation>Es wurde die ungeparste Entity &apos;%1&apos; referenziert.</translation>
     </message>
     <message>
-        <location line="-13"/>
-        <location line="+61"/>
-        <location line="+40"/>
         <source>Entity &apos;%1&apos; not declared.</source>
         <translation>Die Entity &apos;%1&apos; ist nicht deklariert.</translation>
     </message>
     <message>
-        <location line="-26"/>
         <source>Reference to external entity &apos;%1&apos; in attribute value.</source>
         <translation>Im Attributwert wurde die externe Entity &apos;%1&apos; referenziert.</translation>
     </message>
     <message>
-        <location line="+40"/>
         <source>Invalid character reference.</source>
         <translation>Ungültige Zeichenreferenz.</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>Es wurde Inhalt mit einer ungültigen Kodierung gefunden.</translation>
     </message>
     <message>
-        <location line="+274"/>
         <source>The standalone pseudo attribute must appear after the encoding.</source>
         <translation>Das Standalone-Pseudoattribut muss dem Encoding unmittelbar folgen.</translation>
     </message>
     <message>
-        <location filename="../src/corelib/xml/qxmlstream_p.h" line="+562"/>
         <source>%1 is an invalid PUBLIC identifier.</source>
         <translation>%1 ist keine gültige Angabe für eine PUBLIC-Id.</translation>
     </message>
@@ -9959,702 +7941,558 @@
 <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>Es muss mindestens eine Komponente vorhanden sein.</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 ist kein gültiger Wert des Typs %2.</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>Bei einer &quot;cast&quot;-Operation von %1 zu %2 darf der Wert nicht %3 sein.</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>Der effektive Boolesche Wert einer Sequenz aus zwei oder mehreren atomaren Werten kann nicht berechnet werden.</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>Die Daten einer Processing-Anweisung dürfen nicht die Zeichenkette %1 enthalten</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 ist kein gültiges %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 ist kein gültiges XML 1.0 Zeichen.</translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/functions/qerrorfn.cpp" line="+61"/>
         <source>%1 was called.</source>
         <translation>%1 wurde gerufen.</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>In der Ersetzung muss auf %1 eine Ziffer folgen, wenn es nicht durch ein Escape-Zeichen geschützt ist.</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>In der Ersetzung kann %1 nur verwendet werden, um sich selbst oder %2 schützen, nicht jedoch für %3</translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/functions/qpatternplatform.cpp" line="+92"/>
         <source>%1 matches newline characters</source>
         <translation>Der Ausdruck &apos;%1&apos; schließt Zeilenvorschübe ein</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>Matches are case insensitive</source>
         <translation>Groß/Kleinschreibung wird nicht beachtet</translation>
     </message>
     <message>
-        <location line="+104"/>
         <source>%1 is an invalid regular expression pattern: %2</source>
         <translation>%1 ist kein gültiger regulärer Ausdruck: %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 kann nicht bestimmt werden.</translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/functions/qsequencegeneratingfns.cpp" line="+266"/>
         <source>The default collection is undefined</source>
         <translation>Für eine Kollektion ist keine Vorgabe definiert</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>%1 cannot be retrieved</source>
         <translation>%1 kann nicht bestimmt werden</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>Das Element %1 entspricht nicht dem erforderlichen Typ %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 ist ein unbekannter Schema-Typ.</translation>
     </message>
     <message>
-        <location line="-7254"/>
         <source>A template with name %1 has already been declared.</source>
         <translation>Eine Vorlage des Namens %1 existiert bereits.</translation>
     </message>
     <message>
-        <location line="+213"/>
         <source>Only one %1 declaration can occur in the query prolog.</source>
         <translation>Der Anfrage-Prolog darf nur eine %1-Deklaration enthalten.</translation>
     </message>
     <message>
-        <location line="+188"/>
         <source>The initialization of variable %1 depends on itself</source>
         <translation>Die Initialisierung der Variable %1 hängt von ihrem eigenem Wert ab</translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/parser/qparsercontext.cpp" line="+93"/>
         <source>The variable %1 is unused</source>
         <translation>Die Variable %1 wird nicht verwendet</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>Die Version %1 wird nicht unterstützt. Die unterstützte Version von XQuery ist 1.0.</translation>
     </message>
     <message>
-        <location line="+71"/>
         <source>No function with signature %1 is available</source>
         <translation>Es existiert keine Funktion mit der Signatur %1</translation>
     </message>
     <message>
-        <location line="+303"/>
         <source>It is not possible to redeclare prefix %1.</source>
         <translation>Der Präfix %1 kann nicht redeklariert werden.</translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>Prefix %1 is already declared in the prolog.</source>
         <translation>Der Präfix %1 wurde bereits im Prolog deklariert.</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>Der Name einer Option muss einen Präfix haben. Es gibt keine Namensraum-Vorgabe für Optionen.</translation>
     </message>
     <message>
-        <location line="+171"/>
         <source>The Schema Import feature is not supported, and therefore %1 declarations cannot occur.</source>
         <translation>Die Deklaration %1 ist unzulässig, da Schema-Import nicht unterstützt wird.</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>The target namespace of a %1 cannot be empty.</source>
         <translation>Der Ziel-Namensraum von %1 darf nicht leer sein.</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>The module import feature is not supported</source>
         <translation>Modul-Import wird nicht unterstützt</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>Der Namensraum einer nutzerdefinierten Funktion aus einem Bibliotheksmodul muss dem Namensraum des Moduls entsprechen (%1 anstatt %2) </translation>
     </message>
     <message>
-        <location line="+34"/>
         <source>A function already exists with the signature %1.</source>
         <translation>Es existiert bereits eine Funktion mit der Signatur %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>Externe Funktionen werden nicht unterstützt. Alle unterstützten Funktionen können direkt verwendet werden, ohne sie als extern zu deklarieren</translation>
     </message>
     <message>
-        <location line="+1709"/>
         <source>The %1-axis is unsupported in XQuery</source>
         <translation>Die %1-Achse wird in XQuery nicht unterstützt</translation>
     </message>
     <message>
-        <location line="+435"/>
         <source>The namespace URI cannot be the empty string when binding to a prefix, %1.</source>
         <translation>Der Namensraum-URI darf nicht leer sein, wenn er an den Präfix %1 gebunden ist.</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>%1 is an invalid namespace URI.</source>
         <translation>%1 ist kein gültiger Namensraum-URI.</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>It is not possible to bind to the prefix %1</source>
         <translation>Der Präfix %1 kann nicht gebunden werden</translation>
     </message>
     <message>
-        <location line="+30"/>
         <source>Two namespace declaration attributes have the same name: %1.</source>
         <translation>Es wurden zwei Namensraum-Deklarationsattribute gleichen Namens (%1) gefunden.</translation>
     </message>
     <message>
-        <location line="+89"/>
         <source>The namespace URI must be a constant and cannot use enclosed expressions.</source>
         <translation>Ein Namensraum-URI muss eine Konstante sein und darf keine eingebetteten Ausdrücke verwenden.</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 befindet sich nicht unter den Attributdeklarationen im Bereich. Schema-Import wird nicht unterstützt.</translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/type/qcardinality.cpp" line="+55"/>
         <source>empty</source>
         <translation>leer</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>zero or one</source>
         <translation>kein oder ein</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>exactly one</source>
         <translation>genau ein</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>one or more</source>
         <translation>ein oder mehrere</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>zero or more</source>
         <translation>kein oder mehrere</translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/type/qtypechecker.cpp" line="+156"/>
         <source>The focus is undefined.</source>
         <translation>Es ist kein Fokus definiert.</translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/utils/qoutputvalidator.cpp" line="+93"/>
         <source>An attribute by name %1 has already been created.</source>
         <translation>Es wurde bereits ein Attribut mit dem Namen %1 erzeugt.</translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/api/qiodevicedelegate.cpp" line="+84"/>
         <source>Network timeout.</source>
         <translation>Das Zeitlimit der Netzwerkoperation wurde überschritten.</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>Das Element %1 kann nicht serialisiert werden, da es außerhalb des Dokumentenelements erscheint.</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 ist keine gültige Jahresangabe, da es mit %2 beginnt.</translation>
     </message>
     <message>
-        <location line="+19"/>
         <source>Day %1 is outside the range %2..%3.</source>
         <translation>Die Tagesangabe %1 ist außerhalb des Bereiches %2..%3.</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Month %1 is outside the range %2..%3.</source>
         <translation>Die Monatsangabe %1 ist außerhalb des Bereiches %2..%3.</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>Overflow: Can&apos;t represent date %1.</source>
         <translation>Das Datum %1 kann nicht dargestellt werden (Überlauf).</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Day %1 is invalid for month %2.</source>
         <translation>Die Tagesangabe %1 ist für den Monat %2 ungültig.</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>Die Zeitangabe 24:%1:%2.%3 ist ungültig. Bei der Stundenangabe 24 müssen Minuten, Sekunden und Millisekunden 0 sein.</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>Time %1:%2:%3.%4 is invalid.</source>
         <translation>Die Zeitangabe %1:%2:%3.%4 ist ungültig.</translation>
     </message>
     <message>
-        <location line="+115"/>
         <source>Overflow: Date can&apos;t be represented.</source>
         <translation>Das Datum kann nicht dargestellt werden (Überlauf).</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>Bei Vorhandensein eines %1-Begrenzers muss mindestens eine Komponente vorhanden sein.</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>Die Division eines Werts des Typs %1 durch %2 (kein numerischer Wert) ist nicht zulässig.</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>Die Division eines Werts des Typs %1 durch %2 oder %3 (positiv oder negativ Null) ist nicht zulässig.</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>Die Multiplikation eines Werts des Typs %1 mit %2 oder %3 (positiv oder negativ unendlich) ist nicht zulässig.</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>Ein Wert des Typs %1 kann keinen effektiven Booleschen Wert haben.</translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/data/qderivedinteger_p.h" line="+402"/>
         <source>Value %1 of type %2 exceeds maximum (%3).</source>
         <translation>Der Wert %1 des Typs %2 überschreitet das Maximum (%3).</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Value %1 of type %2 is below minimum (%3).</source>
         <translation>Der Wert %1 des Typs %2 unterschreitet das Minimum (%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>Die Stellenzahl eines Wertes des Typs %1 muss geradzahlig sein. Das ist bei %2 nicht der Fall.</translation>
     </message>
     <message>
-        <location line="+19"/>
         <source>%1 is not valid as a value of type %2.</source>
         <translation>%1 ist kein gültiger Wert des Typs %2.</translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/expr/qarithmeticexpression.cpp" line="+207"/>
         <source>Operator %1 cannot be used on type %2.</source>
         <translation>Der Operator %1 kann nicht auf den Typ %2 angewandt werden.</translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>Operator %1 cannot be used on atomic values of type %2 and %3.</source>
         <translation>Der Operator %1 kann nicht auf atomare Werte der Typen %2 und %3 angewandt werden.</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>Der Namensraum-URI im Namen eines berechneten Attributes darf nicht %1 sein.</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>Der Name eines berechneten Attributes darf keinen Namensraum-URI %1 mit dem lokalen Namen %2 haben.</translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/expr/qcastas.cpp" line="+88"/>
         <source>Type error in cast, expected %1, received %2.</source>
         <translation>Typfehler bei &quot;cast&quot;-Operation; es wurde %1 erwartet, aber %2 empfangen.</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>Bei einer &quot;cast&quot;-Operation zum Typ %1 oder abgeleitetenTypen muss der Quellwert ein Zeichenketten-Literal oder ein Wert gleichen Typs sein. Der Typ %2 ist ungültig.</translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/expr/qcommentconstructor.cpp" line="+67"/>
         <source>A comment cannot contain %1</source>
         <translation>Ein Kommentar darf nicht&apos;%1 enthalten</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>A comment cannot end with a %1.</source>
         <translation>Ein Kommentar darf nicht auf %1 enden.</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>Ein Attributknoten darf nicht als Kind eines Dokumentknotens erscheinen. Es erschien ein Attributknoten mit dem Namen %1.</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>Ein Bibliotheksmodul kann nicht direkt ausgewertet werden, er muss von einem Hauptmodul importiert werden.</translation>
     </message>
     <message>
-        <location line="+40"/>
         <source>No template by name %1 exists.</source>
         <translation>Es existiert keine Vorlage mit dem Namen %1.</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>Werte des Typs %1 dürfen keine Prädikate sein. Für Prädikate sind nur numerische oder effektiv Boolesche Typen zulässig.</translation>
     </message>
     <message>
-        <location line="+32"/>
         <source>A positional predicate must evaluate to a single numeric value.</source>
         <translation>Ein positionales Prädikat muss sich als einfacher, numerischer Wert auswerten lassen.</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>Der Zielname einer Processing-Anweisung kann nicht %1 (unabhängig von Groß/Kleinschreibung sein). %2 ist daher ungültig.</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 ist kein gültiger Zielname einer Processing-Anweisung, es muss ein %2 Wert wie zum Beispiel %3 sein.</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>Der letzte Schritt eines Pfades kann entweder nur Knoten oder nur atomare Werte enthalten. Sie dürfen nicht zusammen auftreten.</translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/expr/qqnameconstructor.cpp" line="+82"/>
         <source>No namespace binding exists for the prefix %1</source>
         <translation>Es existiert keine Namensraum-Bindung für den Präfix %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>Es existiert keine Namensraum-Bindung für den Präfix %1 in %2</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>Das erste Argument von %1 darf nicht vom Typ %2 sein; es muss numerisch, xs:yearMonthDuration oder xs:dayTimeDuration sein.</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>Das erste Argument von %1 kann nicht vom Typ %2 sein, es muss einer der Typen %3, %4 oder %5 sein.</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>Das zweite Argument von %1 kann nicht vom Typ %2 sein, es muss einer der Typen %3, %4 oder %5 sein.</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>Wenn beide Werte mit Zeitzonen angegeben werden, müssen diese übereinstimmen. %1 und %2 sind daher unzulässig.</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>Auf %1 muss %2 oder %3 folgen; es kann nicht am Ende der Ersetzung erscheinen.</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>Die Ausdrücke %1 und %2 passen jeweils auf den Anfang oder das Ende einer beliebigen Zeile.</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>Whitespace characters are removed, except when they appear in character classes</source>
         <translation>Leerzeichen werden entfernt, sofern sie nicht in Zeichenklassen erscheinen</translation>
     </message>
     <message>
-        <location line="+130"/>
         <source>%1 is an invalid flag for regular expressions. Valid flags are:</source>
         <translation>%1 ist kein gültiger Modifikator für reguläre Ausdrücke. Gültige Modifikatoren sind:</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>Es kann kein Präfix angegeben werden, wenn das erste Argument leer oder eine leere Zeichenkette (kein Namensraum) ist. Es wurde der Präfix %1 angegeben.</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>Die Normalisierungsform %1 wird nicht unterstützt. Die unterstützten Normalisierungsformen sind %2, %3, %4 and %5, und &quot;kein&quot; (eine leere Zeichenkette steht für &quot;keine Normalisierung&quot;).</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>Eine Zeitzonen-Differenz muss im Bereich %1..%2 (einschließlich) liegen. %3 liegt außerhalb des Bereiches.</translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/janitors/qcardinalityverifier.cpp" line="+58"/>
         <source>Required cardinality is %1; got cardinality %2.</source>
         <translation>Die erforderliche Kardinalität ist %1 (gegenwärtig %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>Die Kodierung %1 ist ungültig; sie darf nur aus lateinischen Buchstaben bestehen und muss dem regulären Ausdruck %2 entsprechen.</translation>
     </message>
     <message>
-        <location line="+260"/>
         <source>The keyword %1 cannot occur with any other mode name.</source>
         <translation>Das Schlüsselwort %1 kann nicht mit einem anderen Modusnamen zusammen verwendet werden.</translation>
     </message>
     <message>
-        <location line="-3117"/>
         <source>No variable with name %1 exists</source>
         <translation>Es existiert keine Variable des Namens %1</translation>
     </message>
     <message>
-        <location line="+3146"/>
         <source>The value of attribute %1 must be of type %2, which %3 isn&apos;t.</source>
         <translation>Der Wert des Attributs %1 muss vom Typ %2 sein, was bei %3 nicht der Fall ist.</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>Der Präfix %1 kann nicht gebunden werden. Er ist bereits per Vorgabe an den Namensraum %2 gebunden.</translation>
     </message>
     <message>
-        <location line="+312"/>
         <source>A variable with name %1 has already been declared.</source>
         <translation>Eine Variable des Namens %1 wurde bereits deklariert.</translation>
     </message>
     <message>
-        <location line="+39"/>
         <source>No value is available for the external variable with name %1.</source>
         <translation>Es ist kein Wert für die externe Variable des Namens %1 verfügbar.</translation>
     </message>
     <message>
-        <location line="+96"/>
         <source>A stylesheet function must have a prefixed name.</source>
         <translation>Der Name einer Stylesheet-Funktion muss einen Präfix haben.</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>Der Namensraum %1 ist reserviert und kann daher von nutzerdefinierten Funktionen nicht verwendet werden (für diesen Zweck gibt es den vordefinierten Präfix %2).</translation>
     </message>
     <message>
-        <location line="+106"/>
         <source>An argument with name %1 has already been declared. Every argument name must be unique.</source>
         <translation>Es wurde bereits ein Argument des Namens %1 deklariert. Argumentnamen müssen eindeutig sein.</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>Bei der Verwendung der Funktion %1 zur Auswertung innerhalb eines Suchmusters muss das Argument eine Variablenreferenz oder ein Zeichenketten-Literal sein.</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>Bei einem XSL-T-Suchmuster muss das erste Argument zur Funktion %1 bei der Verwendung zur Suche ein Zeichenketten-Literal sein.</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>Bei einem XSL-T-Suchmuster muss das erste Argument zur Funktion %1 bei der Verwendung zur Suche ein Literal oder eine Variablenreferenz sein.</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>In an XSL-T pattern, function %1 cannot have a third argument.</source>
         <translation>Bei einem XSL-T-Suchmuster darf die Funktion %1 kein drittes Argument haben.</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>Bei einem XSL-T-Suchmuster dürfen nur die Funktionen %1 und %2, nicht jedoch %3 zur Suche verwendet werden.</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>Bei einem XSL-T-Suchmuster dürfen nur die Achsen %2 oder %3 verwendet werden, nicht jedoch %1.</translation>
     </message>
     <message>
-        <location line="+126"/>
         <source>%1 is an invalid template mode name.</source>
         <translation>%1 ist kein gültiger Name für einen Vorlagenmodus.</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>Der Name der gebundenen Variablen eines for-Ausdrucks muss sich von dem der Positionsvariable unterscheiden. Die zwei Variablen mit dem Namen %1 stehen im Konflikt.</translation>
     </message>
     <message>
-        <location line="+778"/>
         <source>The Schema Validation Feature is not supported. Hence, %1-expressions may not be used.</source>
         <translation>%1-Ausdrücke können nicht verwendet werden, da Schemavalidierung nicht unterstützt wird. </translation>
     </message>
     <message>
-        <location line="+40"/>
         <source>None of the pragma expressions are supported. Therefore, a fallback expression must be present</source>
         <translation>Es muss ein fallback-Ausdruck vorhanden sein, da keine pragma-Ausdrücke unterstützt werden</translation>
     </message>
     <message>
-        <location line="+269"/>
         <source>Each name of a template parameter must be unique; %1 is duplicated.</source>
         <translation>Die Namen von Vorlagenparametern müssen eindeutig sein, %1 existiert bereits.</translation>
     </message>
     <message>
-        <location line="+462"/>
         <source>No function with name %1 is available.</source>
         <translation>Es ist keine Funktion des Namens %1 verfügbar.</translation>
     </message>
     <message>
-        <location line="-6235"/>
         <source>%1 is not a valid numeric literal.</source>
         <translation>%1 ist kein gültiger numerischer Literal.</translation>
     </message>
     <message>
-        <location line="-152"/>
         <source>W3C XML Schema identity constraint selector</source>
         <translation>W3C XML Schema identity constraint selector</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>W3C XML Schema identity constraint field</source>
         <translation>W3C XML Schema identity constraint field</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>A construct was encountered which is disallowed in the current language(%1).</source>
         <translation>Es wurde ein Sprachkonstrukt angetroffen, was in der aktuellen Sprache (%1) nicht erlaubt ist.</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>Der Namensraum %1 kann nur an %2 gebunden werden. Dies ist bereits vordeklariert.</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>Der Präfix %1 kann nur an %2 gebunden werden. Dies ist bereits vordeklariert.</translation>
     </message>
     <message>
-        <location line="+120"/>
         <source>An attribute with name %1 has already appeared on this element.</source>
         <translation>Das Element hat bereits ein Attribut des Namens %1.</translation>
     </message>
     <message>
-        <location line="+61"/>
         <source>A direct element constructor is not well-formed. %1 is ended with %2.</source>
         <translation>Es wurde ein fehlerhafter direkter Element-Konstruktor gefunden. %1 endet mit %2.</translation>
     </message>
     <message>
-        <location line="+458"/>
         <source>The name %1 does not refer to any schema type.</source>
         <translation>Der Name %1 hat keinen Bezug zu einem Schematyp.</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 ist ein komplexer Typ. Eine &quot;cast&quot;-Operation zu komplexen Typen ist nicht möglich. Es können allerdings &quot;cast&quot;-Operationen zu atomare Typen wie %2 durchgeführt werden.</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>%1 is not an atomic type. Casting is only possible to atomic types.</source>
         <translation>%1 ist kein atomarer Typ. &quot;cast&quot;-Operation können nur zu atomaren Typen durchgeführt werden.</translation>
     </message>
     <message>
-        <location line="+76"/>
         <source>%1 is not a valid name for a processing-instruction.</source>
         <translation>%1 ist kein gültiger Name für eine Processing-Instruktion.</translation>
     </message>
     <message>
-        <location line="+188"/>
         <source>The name of an extension expression must be in a namespace.</source>
         <translation>Der Name eines Erweiterungsausdrucks muss sich in einem Namensraum befinden.</translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/type/qtypechecker.cpp" line="-93"/>
         <source>Required type is %1, but %2 was found.</source>
         <translation>Der erforderliche Typ ist %1, es wurde aber %2 angegeben.</translation>
     </message>
     <message>
-        <location line="+44"/>
         <source>Promoting %1 to %2 may cause loss of precision.</source>
         <translation>Die Wandlung von %1 zu %2 kann zu einem Verlust an Genauigkeit führen.</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>Attribute dürfen nicht auf andere Knoten folgen.</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>Es wird nur Unicode Codepoint Collation unterstützt (%1). %2 wird nicht unterstützt.</translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/data/qatomicmathematicians.cpp" line="-180"/>
         <source>Integer division (%1) by zero (%2) is undefined.</source>
         <translation>Die Ganzzahldivision (%1) durch Null (%2) ist nicht definiert.</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Division (%1) by zero (%2) is undefined.</source>
         <translation>Die Division (%1) durch Null (%2) ist nicht definiert.</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Modulus division (%1) by zero (%2) is undefined.</source>
         <translation>Die Modulo-Division (%1) durch Null (%2) ist nicht definiert.</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 hat nur %n Argument; die Angabe %2 ist daher ungültig.</numerusform>
@@ -10662,7 +8500,6 @@
         </translation>
     </message>
     <message numerus="yes">
-        <location line="+11"/>
         <source>%1 requires at least %n argument(s). %2 is therefore invalid.</source>
         <translation>
             <numerusform>%1 erfordert mindestens ein Argument; die Angabe %3 ist daher ungültig.</numerusform>
@@ -10670,1655 +8507,1258 @@
         </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>Der übergeordnete Knoten des zweiten Arguments der Funktion %1 muss ein Dokumentknoten sein, was bei %2 nicht der Fall ist.</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>Der Namensraum einer benutzerdefinierten Funktion darf nicht leer sein (für diesen Zweck gibt es den vordefinierten Präfix %1)</translation>
     </message>
     <message>
-        <location line="-693"/>
-        <location line="+10"/>
         <source>A default namespace declaration must occur before function, variable, and option declarations.</source>
         <translation>Die Deklaration des Default-Namensraums muss vor Funktions-, Variablen- oder Optionsdeklaration erfolgen.</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>Namespace declarations must occur before function, variable, and option declarations.</source>
         <translation>Namensraums-Deklarationen müssen vor Funktions- Variablen- oder Optionsdeklarationen stehen.</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>Module imports must occur before function, variable, and option declarations.</source>
         <translation>Modul-Importe müssen vor Funktions-, Variablen- oder Optionsdeklarationen stehen.</translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/functions/qtimezonefns.cpp" line="+12"/>
         <source>%1 is not a whole number of minutes.</source>
         <translation>%1 ist keine ganzzahlige Minutenangabe.</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>Das Attributelement %1 kann nicht serialisiert werden, da es auf der höchsten Ebene erscheint.</translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/acceltree/qacceltreeresourceloader.cpp" line="+344"/>
         <source>%1 is an unsupported encoding.</source>
         <translation>Das Encoding %1 wird nicht unterstützt.</translation>
     </message>
     <message>
-        <location line="+16"/>
         <source>%1 contains octets which are disallowed in the requested encoding %2.</source>
         <translation>%1 enthält Oktette, die im Encoding %2 nicht zulässig sind.</translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>The codepoint %1, occurring in %2 using encoding %3, is an invalid XML character.</source>
         <translation>Der Code-Punkt %1 aus %2 mit Encoding %3 ist kein gültiges XML-Zeichen.</translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/expr/qapplytemplate.cpp" line="+119"/>
         <source>Ambiguous rule match.</source>
         <translation>Mehrdeutige Regel.</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>Im Konstruktor eines Namensraums darf der Wert des Namensraumes keine leere Zeichenkette sein.</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>The prefix must be a valid %1, which %2 is not.</source>
         <translation>Der Präfix muss ein gültiger %1 sein. Das ist bei %2 nicht der Fall.</translation>
     </message>
     <message>
-        <location line="+14"/>
         <source>The prefix %1 cannot be bound.</source>
         <translation>Der Präfix %1 kann nicht gebunden werden</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>Only the prefix %1 can be bound to %2 and vice versa.</source>
         <translation>An %2 kann nur der Präfix %1 gebunden werden (und umgekehrt).</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>Es wurde kein entsprechendes %2 für den erforderlichen Parameter %1 angegeben.</translation>
     </message>
     <message>
-        <location line="-71"/>
         <source>The parameter %1 is passed, but no corresponding %2 exists.</source>
         <translation>Es existiert kein entsprechendes %2 für den übergebenen Parameter %1.</translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/functions/qunparsedtextfn.cpp" line="+65"/>
         <source>The URI cannot have a fragment</source>
         <translation>Der URI darf kein Fragment enthalten.</translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/parser/qxslttokenizer.cpp" line="+519"/>
         <source>Element %1 is not allowed at this location.</source>
         <translation>Das Element %1 darf nicht an dieser Stelle stehen.</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Text nodes are not allowed at this location.</source>
         <translation>An dieser Stelle dürfen keine Textknoten stehen.</translation>
     </message>
     <message>
-        <location line="+20"/>
         <source>Parse error: %1</source>
         <translation>Parse-Fehler: %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>Der Wert eines XSL-T-Versionsattributes muss vom Typ %1 sein, was bei %2 nicht der Fall ist.</translation>
     </message>
     <message>
-        <location line="+20"/>
         <source>Running an XSL-T 1.0 stylesheet with a 2.0 processor.</source>
         <translation>Es wird ein XSL-T-1.0-Stylesheet mit einem Prozessor der Version 2.0 verarbeitet.</translation>
     </message>
     <message>
-        <location line="+108"/>
         <source>Unknown XSL-T attribute %1.</source>
         <translation>Unbekanntes XSL-T-Attribut: %1.</translation>
     </message>
     <message>
-        <location line="+23"/>
         <source>Attribute %1 and %2 are mutually exclusive.</source>
         <translation>Die Attribute %1 und %2 schließen sich gegenseitig aus.</translation>
     </message>
     <message>
-        <location line="+166"/>
         <source>In a simplified stylesheet module, attribute %1 must be present.</source>
         <translation>In einem vereinfachten Stylesheet-Modul muss das Attribut %1 vorhanden sein.</translation>
     </message>
     <message>
-        <location line="+72"/>
         <source>If element %1 has no attribute %2, it cannot have attribute %3 or %4.</source>
         <translation>Das Element %1 darf keines der Attribute %3 oder %4 haben, solange es nicht das Attribut %2 hat.</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Element %1 must have at least one of the attributes %2 or %3.</source>
         <translation>Das Element %1 muss mindestens eines der Attribute %2 oder %3 haben.</translation>
     </message>
     <message>
-        <location line="+28"/>
         <source>At least one mode must be specified in the %1-attribute on element %2.</source>
         <translation>Im %1-Attribut des Elements %2 muss mindestens ein Modus angegeben werden.</translation>
     </message>
     <message>
-        <location line="+123"/>
         <source>Element %1 must come last.</source>
         <translation>Das Element %1 muss zuletzt stehen.</translation>
     </message>
     <message>
-        <location line="+24"/>
         <source>At least one %1-element must occur before %2.</source>
         <translation>Vor %2 muss mindestens ein %1-Element stehen.</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Only one %1-element can appear.</source>
         <translation>Es darf nur ein einziges %1-Element stehen.</translation>
     </message>
     <message>
-        <location line="+31"/>
         <source>At least one %1-element must occur inside %2.</source>
         <translation>In %2 muss mindestens ein %1-Element stehen.</translation>
     </message>
     <message>
-        <location line="+58"/>
         <source>When attribute %1 is present on %2, a sequence constructor cannot be used.</source>
         <translation>Es kann kein Sequenzkonstruktor verwendet werden, wenn %2 ein Attribut %1 hat.</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>Element %1 must have either a %2-attribute or a sequence constructor.</source>
         <translation>Das Element %1 muss entweder ein %2-Attribut haben oder es muss ein Sequenzkonstruktor verwendet werden.</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>Der Defaultwert eines erforderlichen Parameters kann weder durch ein %1-Attribut noch durch einen Sequenzkonstruktor angegeben werden. </translation>
     </message>
     <message>
-        <location line="+270"/>
         <source>Element %1 cannot have children.</source>
         <translation>Das Element %1 kann keine Kindelemente haben.</translation>
     </message>
     <message>
-        <location line="+434"/>
         <source>Element %1 cannot have a sequence constructor.</source>
         <translation>Das Element %1 kann keinen Sequenzkonstruktor haben.</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>%2 darf nicht das Attribut %1 haben, wenn es ein Kindelement von %3 ist.</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>A parameter in a function cannot be declared to be a tunnel.</source>
         <translation>Der Parameter einer Funktion kann nicht als Tunnel deklariert werden.</translation>
     </message>
     <message>
-        <location line="+149"/>
         <source>This processor is not Schema-aware and therefore %1 cannot be used.</source>
         <translation>%1 kann nicht verwendet werden, da dieser Prozessor keine Schemas unterstützt.</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>Die zuoberst stehenden Elemente eines Stylesheets dürfen sich nicht im Null-Namensraum befinden, was bei %1 der Fall ist.</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>Der Wert des Attributs %1 des Elements %2 kann nur %3 oder %4 sein, nicht jedoch %5.</translation>
     </message>
     <message>
-        <location line="+20"/>
         <source>Attribute %1 cannot have the value %2.</source>
         <translation>Das Attribut %1 darf nicht den Wert %2 haben.</translation>
     </message>
     <message>
-        <location line="+58"/>
         <source>The attribute %1 can only appear on the first %2 element.</source>
         <translation>Nur das erste %2-Element darf das Attribut %1 haben.</translation>
     </message>
     <message>
-        <location line="+99"/>
         <source>At least one %1 element must appear as child of %2.</source>
         <translation>%2 muss mindestens ein %1-Kindelement haben.</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 hat eine zirkuläre Vererbung im Basistyp %2.</translation>
     </message>
     <message>
-        <location line="+5"/>
-        <location line="+24"/>
         <source>Circular inheritance of base type %1.</source>
         <translation>Zirkuläre Vererbung im Basistyp %1.</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>Circular inheritance of union %1.</source>
         <translation>Zirkuläre Vererbung bei der Vereinigung %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 darf nicht durch Einschränkung von %2 abgeleitet werden, da letzterer sie als final deklariert.</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 darf nicht durch Erweiterung von %2 abgeleitet werden, da letzterer sie als final deklariert.</translation>
     </message>
     <message>
-        <location line="+31"/>
         <source>Base type of simple type %1 cannot be complex type %2.</source>
         <translation>Der komplexe Typ %2 kann nicht Basisklasse des einfachen Typs %1 sein.</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Simple type %1 cannot have direct base type %2.</source>
         <translation>Der einfache Typ %1 kann nicht den unmittelbaren Basistyp %2 haben.</translation>
     </message>
     <message>
-        <location line="+33"/>
-        <location line="+9"/>
         <source>Simple type %1 is not allowed to have base type %2.</source>
         <translation>Der einfache Typ %1 darf nicht den Basistyp %2 haben.</translation>
     </message>
     <message>
-        <location line="+12"/>
         <source>Simple type %1 can only have simple atomic type as base type.</source>
         <translation>Der einfache Typ %1 kann nur einen einfachen. atomaren Basistyp haben.</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Simple type %1 cannot derive from %2 as the latter defines restriction as final.</source>
         <translation>%1 darf nicht von %2 abgeleitet werden, da letzterer die Einschränkung als final deklariert.</translation>
     </message>
     <message>
-        <location line="+13"/>
-        <location line="+484"/>
         <source>Variety of item type of %1 must be either atomic or union.</source>
         <translation>Die Varietät der Typen von %1 muss entweder atomar oder eine Vereinigung sein.</translation>
     </message>
     <message>
-        <location line="-474"/>
-        <location line="+483"/>
         <source>Variety of member types of %1 must be atomic.</source>
         <translation>Die Varietät der Typen von %1 muss atomar sein.</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 darf nicht durch Listen von %2 abgeleitet werden, da letzterer sie als final deklariert.</translation>
     </message>
     <message>
-        <location line="-431"/>
         <source>Simple type %1 is only allowed to have %2 facet.</source>
         <translation>Der einfache Typ %1 darf nur die Facette %2 haben.</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>Base type of simple type %1 must have variety of type list.</source>
         <translation>Der Basistyp des einfachen Typs %1 muss eine Varietät des Typs Liste haben.</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Base type of simple type %1 has defined derivation by restriction as final.</source>
         <translation>Der Basistyp des einfachen Typs %1 definiert Vererbung durch Einschränkung als final.</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Item type of base type does not match item type of %1.</source>
         <translation>Der Elementtyp des Basistyps entspricht nicht dem Elementtyp von %1.</translation>
     </message>
     <message>
-        <location line="+26"/>
-        <location line="+93"/>
         <source>Simple type %1 contains not allowed facet type %2.</source>
         <translation>Der einfache Typ %1 enthält einen nicht erlaubten Facettentyp %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 darf nicht durch Vereinigung von %2 abgeleitet werden, da sie letzterer sie als final deklariert.</translation>
     </message>
     <message>
-        <location line="-404"/>
         <source>%1 is not allowed to have any facets.</source>
         <translation>%1 darf keine Facetten haben.</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Base type %1 of simple type %2 must have variety of union.</source>
         <translation>Der Basistyp %1 des einfachen Typs %2 muss eine Varietät des Typs Vereinigung haben.</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>Der Basistyp %1 des einfachen Typs %2 darf keine Einschränkung im %3 Attribut haben.</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>Der Typ %1 des Mitglieds darf nicht vom Typ %2 des Mitglieds vom Basistyp %4 von %3 sein.</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>Erweiterung muss als Vererbungsmethode für %1 verwendet werden, da der Basistyp %2 ein einfacher Typ ist.</translation>
     </message>
     <message>
-        <location line="+30"/>
         <source>Complex type %1 has duplicated element %2 in its content model.</source>
         <translation>Der komplexe Typ %1 hat ein dupliziertes Element %2 in seinem Inhaltsmodell.</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Complex type %1 has non-deterministic content.</source>
         <translation>Der komplexe Typ %1 hat nicht-deterministischen Inhalt.</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>Die Attribute des komplexen Typs %1 sind keine gültige Erweiterung der Attribute des Basistyps %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>Das Inhaltsmodell des komplexen Typs %1 ist keine gültige Erweiterung des Inhaltsmodells von %2.</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>Complex type %1 must have simple content.</source>
         <translation>Der komplexe Typ %1 kann nur einfachen Inhalt haben.</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Complex type %1 must have the same simple type as its base class %2.</source>
         <translation>Der komplexe Typ %1 kann nur einen einfachen Typ als Basisklasse %2 haben.</translation>
     </message>
     <message>
-        <location line="+67"/>
         <source>Complex type %1 cannot be derived from base type %2%3.</source>
         <translation>Der komplexe Typ %1 kann nicht vom Basistyp %2 abgeleitet werden%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>Die Attribute des komplexen Typs %1 sind keine gültige Einschränkung der Attribute des Basistyps %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>Der komplexe Typ %1 einfachen Inhalts darf nicht vom komplexen Basistyp %2 abgeleitet werden.</translation>
     </message>
     <message>
-        <location line="+35"/>
         <source>Item type of simple type %1 cannot be a complex type.</source>
         <translation>Der Elementtyp des einfachen Typs %1 kann kein komplexer Typ sein.</translation>
     </message>
     <message>
-        <location line="+44"/>
         <source>Member type of simple type %1 cannot be a complex type.</source>
         <translation>Der Typ eines Mitglieds des einfachen Typs %1 kann kein komplexer Typ sein.</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 darf keinen Typ eines Mitglieds desselben Namens haben.</translation>
     </message>
     <message>
-        <location line="+83"/>
-        <location line="+29"/>
-        <location line="+34"/>
         <source>%1 facet collides with %2 facet.</source>
         <translation>Die Facette %1 steht im Widerspruch zu der Facette %2.</translation>
     </message>
     <message>
-        <location line="-20"/>
         <source>%1 facet must have the same value as %2 facet of base type.</source>
         <translation>Die Facette %1 muss denselben Wert wie die Facette %2 des Basistyps haben.</translation>
     </message>
     <message>
-        <location line="+37"/>
         <source>%1 facet must be equal or greater than %2 facet of base type.</source>
         <translation>Die Facette %1 muss größer oder gleich der Facette %2 des Basistyps sein.</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>Die Facette %1 muss kleiner oder gleich der Facette %2 des Basistyps sein.</translation>
     </message>
     <message>
-        <location line="-389"/>
         <source>%1 facet contains invalid regular expression</source>
         <translation>Die Facette %1 enthält einen ungültigen regulären Ausdruck</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Unknown notation %1 used in %2 facet.</source>
         <translation>Die Facette %2 enthält eine ungültige Notation %1.</translation>
     </message>
     <message>
-        <location line="+20"/>
         <source>%1 facet contains invalid value %2: %3.</source>
         <translation>Die Facette %1 enthält einen ungültigen Wert %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>Die Facette %1 kann nicht %2 oder %3 sein, wenn die Facette %4 des Basistyps %5 ist.</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>%1 facet cannot be %2 if %3 facet of base type is %4.</source>
         <translation>Die Facette %1 kann nicht %2 sein, wenn die Facette %3 des Basistyps %4 ist.</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>Die Facette %1 muss kleiner oder gleich der Facette %2 sein.</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>Die Facette %1 muss kleiner der Facette %2 des Basistyps sein.</translation>
     </message>
     <message>
-        <location line="-201"/>
-        <location line="+79"/>
         <source>%1 facet and %2 facet cannot appear together.</source>
         <translation>Die Facetten %1 und %2 können nicht zusammen erscheinen.</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>Die Facette %1 muss größer als die Facette %2 des Basistyps sein.</translation>
     </message>
     <message>
-        <location line="-86"/>
-        <location line="+58"/>
         <source>%1 facet must be less than %2 facet.</source>
         <translation>Die Facette %1 muss kleiner als die Facette %2 sein.</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>Die Facette %1 muss größer oder gleich der Facette %2 des Basistyps sein.</translation>
     </message>
     <message>
-        <location line="+113"/>
         <source>Simple type contains not allowed facet %1.</source>
         <translation>Der einfache Typ enthält eine unzulässige Facette %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>Die Facetten %1, %2, %3, %4, %5 und %6 sind bei Vererbung durch Listen nicht zulässig.</translation>
     </message>
     <message>
-        <location line="+16"/>
         <source>Only %1 and %2 facets are allowed when derived by union.</source>
         <translation>Bei Vererbung durch Vereinigung sind nur die Facetten %1 und %2 zulässig.</translation>
     </message>
     <message>
-        <location line="+23"/>
-        <location line="+16"/>
         <source>%1 contains %2 facet with invalid data: %3.</source>
         <translation>%1 enthält eine Facette %2 mit ungültigen Daten: %3.</translation>
     </message>
     <message>
-        <location line="+24"/>
         <source>Attribute group %1 contains attribute %2 twice.</source>
         <translation>Die Attributgruppe %1 enthält das Attribut %2 zweimal.</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Attribute group %1 contains two different attributes that both have types derived from %2.</source>
         <translation>Die Attributgruppe %1 enthält zwei verschiedene Attribute mit Typen, die von %2 abgeleitet sind.</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>Die Attributgruppe %1 enthält ein Attribut %2 mit einer Einschränkung des Werts, dessen Typ aber von %3 abgeleitet ist.</translation>
     </message>
     <message>
-        <location line="+23"/>
         <source>Complex type %1 contains attribute %2 twice.</source>
         <translation>Der komplexe Typ %1 enthält das Attribut %2 doppelt.</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Complex type %1 contains two different attributes that both have types derived from %2.</source>
         <translation>Die Attributgruppe %1 enthält zwei verschiedene Attribute mit Typen, die beide von %2 abgeleitet sind.</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>Der komplexe Typ %1 enthält ein Attribut %2 mit einer Einschränkung des Werts, dessen Typ aber von %3 abgeleitet ist.</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>Das Element %1 darf keine Einschränkung des Werts haben, wenn der Basistyp komplex ist.</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>Das Element %1 darf keine Einschränkung des Werts haben, wenn sein Typ von %2 abgeleitet ist.</translation>
     </message>
     <message>
-        <location line="+10"/>
-        <location line="+11"/>
         <source>Value constraint of element %1 is not of elements type: %2.</source>
         <translation>Die Einschränkung des Werts des Elements %1 ist nicht vom Typ des Elements: %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>Das Element %1 kann nicht zu einer Substitutionsgruppe gehören, da es kein globales Element ist.</translation>
     </message>
     <message>
-        <location line="+28"/>
         <source>Type of element %1 cannot be derived from type of substitution group affiliation.</source>
         <translation>Der Typ des Elements %1 kann nicht vom Typ der zugehörigen Substitutionsgruppe abgeleitet werden.</translation>
     </message>
     <message>
-        <location line="+41"/>
         <source>Value constraint of attribute %1 is not of attributes type: %2.</source>
         <translation>Die Einschränkung des Werts des Attributs %1 ist nicht vom Typ des Attributs: %2.</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Attribute %1 has value constraint but has type derived from %2.</source>
         <translation>Das Attribut %1 hat eine Einschränkung des Werts, während sein Typ von %2 abgeleitet ist.</translation>
     </message>
     <message>
-        <location line="+56"/>
         <source>%1 attribute in derived complex type must be %2 like in base type.</source>
         <translation>Das Attribut %1 in einem abgeleiteten komplexen Typ muss wie im Basistyp &apos;%2&apos; sein.</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>Attribute %1 in derived complex type must have %2 value constraint like in base type.</source>
         <translation>Das Attribut %1 in einem abgeleiteten komplexen Typ muss wie der Basistyp eine Einschränkung des Werts (%2) haben.</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>Das Attribut %1 in einem abgeleiteten komplexen Typ muss die gleiche Einschränkung des Werts (%2) wie der Basistyp haben.</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Attribute %1 in derived complex type must have %2 value constraint.</source>
         <translation>Das Attribut %1 in einem abgeleiteten komplexen Typ muss die Einschränkung des Werts &apos;%2&apos; haben.</translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>processContent of base wildcard must be weaker than derived wildcard.</source>
         <translation>Das &apos;processContent&apos;-Attribut des Basissuchmusters muss schwächer sein als das des abgeleiteten Suchmusters.</translation>
     </message>
     <message>
-        <location line="+39"/>
-        <location line="+15"/>
         <source>Element %1 exists twice with different types.</source>
         <translation>Es existieren zwei Vorkommen verschiedenen Typs des Elements %1.</translation>
     </message>
     <message>
-        <location line="+28"/>
         <source>Particle contains non-deterministic wildcards.</source>
         <translation>Der Partikel enthält nicht-deterministische Suchmuster.</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>Das Basisattribut %1 ist erforderlich, nicht jedoch das abgeleitete Attribut.</translation>
     </message>
     <message>
-        <location line="-57"/>
         <source>Type of derived attribute %1 cannot be validly derived from type of base attribute.</source>
         <translation>Der Typ des abgeleiteten Attributs %1 kann nicht aus Typ des Basisattributs bestimmt werden.</translation>
     </message>
     <message>
-        <location line="+28"/>
         <source>Value constraint of derived attribute %1 does not match value constraint of base attribute.</source>
         <translation>Die Einschränkung des Werts des abgeleiteten Attributs %1 entspricht nicht der Einschränkung des Werts des Basisattributs.</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Derived attribute %1 does not exist in the base definition.</source>
         <translation>Das abgeleitete Attribut %1 existiert in der Basisdefinition nicht.</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>Derived attribute %1 does not match the wildcard in the base definition.</source>
         <translation>Das abgeleitete Attribut %1 entspricht nicht dem Suchmuster in der Basisdefinition.</translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>Base attribute %1 is required but missing in derived definition.</source>
         <translation>Das erforderliche Basisattribut %1 fehlt in der abgeleiteten Definition.</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Derived definition contains an %1 element that does not exists in the base definition</source>
         <translation>Die abgeleitete Definition enthält ein Element %1, was in der Basisdefinition nicht existiert</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Derived wildcard is not a subset of the base wildcard.</source>
         <translation>Das abgeleitete Suchmuster ist keine Untermenge des Basissuchmusters.</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>%1 of derived wildcard is not a valid restriction of %2 of base wildcard</source>
         <translation>Das Attribut %1 des abgeleiteten Suchmusters ist keine gültige Einschränkung des Attributs &apos;%2&apos; des Basissuchmusters</translation>
     </message>
     <message>
-        <location line="+23"/>
         <source>Attribute %1 from base type is missing in derived type.</source>
         <translation>Das Attribut %1 des Basistyps fehlt im abgeleiteten Typ.</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Type of derived attribute %1 differs from type of base attribute.</source>
         <translation>Der Typ des abgeleiteten Attributs %1 unterscheidet sich vom Basistyp.</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Base definition contains an %1 element that is missing in the derived definition</source>
         <translation>Das Element %1 des Basistyps fehlt in der abgeleiteten Definition</translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/schema/qxsdschemaresolver.cpp" line="+354"/>
         <source>%1 references unknown %2 or %3 element %4.</source>
         <translation>%1 verweist auf ein unbekanntes Element %4 (&apos;%2&apos; oder &apos;%3&apos;).</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>%1 references identity constraint %2 that is no %3 or %4 element.</source>
         <translation>%1 verweist auf eine Identitätseinschränkung %2, die weder ein &apos;%3&apos; noch ein &apos;%4&apos; Element ist.</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>%1 has a different number of fields from the identity constraint %2 that it references.</source>
         <translation>Bei %1 unterscheidet sich die Anzahl der Felder von der der Identitätseinschränkung %2, auf die es verweist.</translation>
     </message>
     <message>
-        <location line="+23"/>
         <source>Base type %1 of %2 element cannot be resolved.</source>
         <translation>Der Basistyp %1 des Elements %2 kann nicht aufgelöst werden.</translation>
     </message>
     <message>
-        <location line="+84"/>
         <source>Item type %1 of %2 element cannot be resolved.</source>
         <translation>Der Subtyp %1 des Elements %2 kann nicht aufgelöst werden.</translation>
     </message>
     <message>
-        <location line="+31"/>
         <source>Member type %1 of %2 element cannot be resolved.</source>
         <translation>Der Subtyp %1 des Elements %2 kann nicht aufgelöst werden.</translation>
     </message>
     <message>
-        <location line="+28"/>
-        <location line="+415"/>
-        <location line="+30"/>
         <source>Type %1 of %2 element cannot be resolved.</source>
         <translation>Der Typ %1 des Elements %2 kann nicht aufgelöst werden.</translation>
     </message>
     <message>
-        <location line="-423"/>
         <source>Base type %1 of complex type cannot be resolved.</source>
         <translation>Der Basistyp %1 des komplexen Typs kann nicht aufgelöst werden.</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>%1 cannot have complex base type that has a %2.</source>
         <translation>%1 kann keinen komplexen Basistyp haben, der &apos;%2&apos; spezifiziert.</translation>
     </message>
     <message>
-        <location line="+286"/>
         <source>Content model of complex type %1 contains %2 element so it cannot be derived by extension from a non-empty type.</source>
         <translation>Das Inhaltsmodell des komplexen Typs %1enthält ein Element &apos;%2&apos;; es kann daher nicht durch Erweiterung von einem Typ abgeleitet werden, der nicht leer ist.</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>Der komplexe Typ %1 kann nicht durch Erweiterung von %2 abgeleitet werden, da letzterer ein &apos;%3&apos;-Element in seinem Inhaltsmodell hat.</translation>
     </message>
     <message>
-        <location line="+101"/>
         <source>Type of %1 element must be a simple type, %2 is not.</source>
         <translation>Der Typ des Elements %1 muss ein einfacher Typ sein, was %2 nicht ist.</translation>
     </message>
     <message>
-        <location line="+62"/>
         <source>Substitution group %1 of %2 element cannot be resolved.</source>
         <translation>Die Substitutionsgruppe %1 des Elements %2 kann nicht aufgelöst werden.</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Substitution group %1 has circular definition.</source>
         <translation>Die Substitutionsgruppe %1 hat eine zirkuläre Definition.</translation>
     </message>
     <message>
-        <location line="+120"/>
-        <location line="+7"/>
         <source>Duplicated element names %1 in %2 element.</source>
         <translation>Der Elementname %1 kommt im Element %2 mehrfach vor.</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>Der Verweis %1 des Elements %2 kann nicht aufgelöst werden.</translation>
     </message>
     <message>
-        <location line="-138"/>
         <source>Circular group reference for %1.</source>
         <translation>Zirkulärer Verweis bei %1.</translation>
     </message>
     <message>
-        <location line="+16"/>
         <source>%1 element is not allowed in this scope</source>
         <translation>Das Element %1 ist in diesem Bereich nicht zulässig</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>%1 element cannot have %2 attribute with value other than %3.</source>
         <translation>Der Wert des Attributs %2 des Elements %1 kann nur %3 sein.</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>%1 element cannot have %2 attribute with value other than %3 or %4.</source>
         <translation>Der Wert des Attributs %2 des Elements %1 kann nur %3 oder %4 sein.</translation>
     </message>
     <message>
-        <location line="+91"/>
         <source>%1 or %2 attribute of reference %3 does not match with the attribute declaration %4.</source>
         <translation>Das Attribut %1 oder %2 des Verweises %3 entspricht nicht der Attributsdeklaration %4.</translation>
     </message>
     <message>
-        <location line="+25"/>
         <source>Attribute group %1 has circular reference.</source>
         <translation>Die Attributgruppe %1 hat einen zirkulären Verweis.</translation>
     </message>
     <message>
-        <location line="+131"/>
         <source>%1 attribute in %2 must have %3 use like in base type %4.</source>
         <translation>Das Attribut %1 aus %2 muss die Verwendung &apos;%3&apos; spezifizieren, wie im Basistyp %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>Das Attributssuchmuster %1 ist keine gültige Einschränkung des Attributssuchmuster des Basistyps %2.</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>%1 has attribute wildcard but its base type %2 has not.</source>
         <translation>%1 hat ein Attributssuchmuster, nicht jedoch sein Basistyp %2.</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>Die Vereinigung der Attributssuchmuster des Typs %1 und seines Basistyps %2 ergibt keinen gültigen Ausdruck.</translation>
     </message>
     <message>
-        <location line="+48"/>
         <source>Enumeration facet contains invalid content: {%1} is not a value of type %2.</source>
         <translation>Ungültiger Inhalt einer Aufzählungsfacette: {%1} ist kein Wert des Typs %2.</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>Namespace prefix of qualified name %1 is not defined.</source>
         <translation>Der Namensraum-Präfix des qualifizierten Namens %1 ist nicht definiert.</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>Das Element %2 (%1) ist keine gültige Einschränkung des überschriebenen Elements (%3): %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>Es kann kein leerer Partikel von einem Partikel abgeleitet werden, der nicht leer ist.</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Derived particle is missing element %1.</source>
         <translation>Das Element %1 fehlt im abgeleiteten Partikel.</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Derived element %1 is missing value constraint as defined in base particle.</source>
         <translation>Im abgeleiteten Element %1 fehlt Einschränkung des Wertes, wie sie im Basispartikel definiert ist.</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Derived element %1 has weaker value constraint than base particle.</source>
         <translation>Das abgeleitete Element %1 hat eine schwächere Einschränkung des Wertes als der Basispartikel.</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Fixed value constraint of element %1 differs from value constraint in base particle.</source>
         <translation>Die feste Einschränkung des Wertes des Elements %1 unterscheidet sich von der Einschränkung des Wertes des Basispartikels.</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Derived element %1 cannot be nillable as base element is not nillable.</source>
         <translation>Das abgeleitete Element %1 kann kein &apos;nillable&apos;-Attribut haben, da das Basiselement keines spezifiziert.</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>Die Blockeinschränkung des abgeleiteten Elements %1 darf nicht schwächer sein als im Basiselement.</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>Simple type of derived element %1 cannot be validly derived from base element.</source>
         <translation>Der einfache Typ des abgeleiteten Elements %1 kann nicht vom Basiselement abgeleitet werden.</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Complex type of derived element %1 cannot be validly derived from base element.</source>
         <translation>Der komplexe Typ des abgeleiteten Elements %1 kann nicht vom Basiselement abgeleitet werden.</translation>
     </message>
     <message>
-        <location line="+24"/>
         <source>Element %1 is missing in derived particle.</source>
         <translation>Das Element %1 fehlt im abgeleiteten Partikel.</translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>Element %1 does not match namespace constraint of wildcard in base particle.</source>
         <translation>Das Element %1 entspricht nicht der Namensraumeinschränkung des Basispartikels.</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>Wildcard in derived particle is not a valid subset of wildcard in base particle.</source>
         <translation>Das Suchmuster im abgeleiteten Partikel ist keine gültige Untermenge des Suchmusters des Basispartikels.</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>processContent of wildcard in derived particle is weaker than wildcard in base particle.</source>
         <translation>Das processContent-Attribut des Suchmusters des abgeleiteten Partikels ist schwächer als das Suchmuster des Basispartikels.</translation>
     </message>
     <message>
-        <location line="+240"/>
         <source>Derived particle allows content that is not allowed in the base particle.</source>
         <translation>Der abgeleitete Partikel gestattet Inhalt, der für den Basispartikel nicht zulässig ist.</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>Das unbekannte Element %1 kann nicht verarbeitet werden; zulässig wären: %2.</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>Element %1 is not allowed in this scope, possible elements are: %2.</source>
         <translation>Das Element %1 ist in diesem Bereich nicht zulässig; möglich wären: %2.</translation>
     </message>
     <message>
-        <location line="+16"/>
         <source>Child element is missing in that scope, possible child elements are: %1.</source>
         <translation>Das Unterelement fehlt im Bereich; mögliche Unterelemente wären: %1.</translation>
     </message>
     <message>
-        <location line="+143"/>
         <source>Document is not a XML schema.</source>
         <translation>Das Dokument ist kein XML-Schema.</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>Das Attribut %1 des Elements %2 enthält ungültigen Inhalt: {%3} ist kein Wert des Typs %4.</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>%1 attribute of %2 element contains invalid content: {%3}.</source>
         <translation>Das Attribut %1 des Elements %2 enthält ungültigen Inhalt: {%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>Der Zielnamensraum %1 des eingebundenen Schemas unterscheidet sich vom dem von ihm definierten Zielnamensraum %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>Der Zielnamensraum %1 des importierten Schemas unterscheidet sich vom dem von ihm definierten Zielnamensraum %2.</translation>
     </message>
     <message>
-        <location line="+243"/>
         <source>%1 element is not allowed to have the same %2 attribute value as the target namespace %3.</source>
         <translation>Das Element %1 kann nicht den Zielnamensraum %3 als Wert des Attributs &apos;%2&apos; spezifizieren.</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>%1 element without %2 attribute is not allowed inside schema without target namespace.</source>
         <translation>In einem Schema ohne Namensraum muss das Element %1 ein Attribut %2 haben.</translation>
     </message>
     <message>
-        <location line="+851"/>
-        <location line="+158"/>
         <source>%1 element is not allowed inside %2 element if %3 attribute is present.</source>
         <translation>Wenn das Attribut %3 vorhanden ist, darf das Element %1 nicht im Element %2 vorkommen.</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>Das Element %1 hat weder das Attribut %2 noch ein Unterelement %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>Das Element %1 darf kein Attribut %3 haben, wenn das Unterelement %2 vorhanden ist.</translation>
     </message>
     <message>
-        <location line="-1325"/>
         <source>%1 attribute of %2 element must be %3 or %4.</source>
         <translation>Das Attribut %1 des Elements %2 kann nur %3 oder %4 sein.</translation>
     </message>
     <message>
-        <location line="+36"/>
         <source>%1 attribute of %2 element must have a value of %3.</source>
         <translation>Das Attribut %1 des Elements %2 muss den Wert %3 haben.</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>Das Attribut %1 des Elements %2 kann nur einen der Werte %3 oder %4 haben.</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>Die Attribute %2 und %3 können nicht zusammen im Element %1 erscheinen.</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>Der Inhalt des Attributs %1 des Elements %2 kann nicht vom Namensraum %3 stammen.</translation>
     </message>
     <message>
-        <location line="-215"/>
-        <location line="+222"/>
         <source>%1 attribute of %2 element must not be %3.</source>
         <translation>Das Attribut %1 des Elements %2 kann nicht %3 sein.</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>Das Attribut %1 des Elements %2 muss den Wert %3 haben, da das Attribut %4 gesetzt ist.</translation>
     </message>
     <message>
-        <location line="+187"/>
         <source>Specifying use=&apos;prohibited&apos; inside an attribute group has no effect.</source>
         <translation>Die Angabe von use=&apos;prohibited&apos; in einer Attributgruppe hat keinerlei Auswirkungen.</translation>
     </message>
     <message>
-        <location line="+353"/>
         <source>%1 element must have either %2 or %3 attribute.</source>
         <translation>Das Element %1 muss eines der Attribute %2 oder %3 spezifizieren.</translation>
     </message>
     <message>
-        <location line="+554"/>
         <source>%1 element must have either %2 attribute or %3 or %4 as child element.</source>
         <translation>Das Element %1 muss entweder das Attribut %2 spezifizieren oder über eines der Unterelemente %3 oder %4 verfügen.</translation>
     </message>
     <message>
-        <location line="+55"/>
         <source>%1 element requires either %2 or %3 attribute.</source>
         <translation>Das Element %1 erfordert eines der Attribute %2 oder %3.</translation>
     </message>
     <message>
-        <location line="+19"/>
         <source>Text or entity references not allowed inside %1 element</source>
         <translation>Text- oder Entitätsreferenzen sind innerhalb eines %1-Elements nicht zulässig.</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>Das Attribut %1 des Elements %2 muss %3, %4 oder eine Liste der URIs enthalten.</translation>
     </message>
     <message>
-        <location line="+126"/>
         <source>%1 element is not allowed in this context.</source>
         <translation>Das Element %1 ist in diesem Kontext nicht zulässig.</translation>
     </message>
     <message>
-        <location line="+53"/>
         <source>%1 attribute of %2 element has larger value than %3 attribute.</source>
         <translation>Der Wert des Attributs %1 des Elements %2 ist größer als der des Attributs %3.</translation>
     </message>
     <message>
-        <location line="+25"/>
         <source>Prefix of qualified name %1 is not defined.</source>
         <translation>Der Präfix des qualifizierten Namens %1 ist nicht definiert.</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>Der Wert des Attributs %1 des Elements %2 muss entweder %3 oder die anderen Werte enthalten.</translation>
     </message>
     <message>
-        <location line="+131"/>
         <source>Component with ID %1 has been defined previously.</source>
         <translation>Es wurde bereits eine Komponente mit der ID %1 definiert.</translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>Element %1 already defined.</source>
         <translation>Das Element %1 ist bereits definiert.</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>Attribute %1 already defined.</source>
         <translation>Das Attribut %1 ist bereits definiert.</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Type %1 already defined.</source>
         <translation>Der Typ %1 ist bereits definiert.</translation>
     </message>
     <message>
-        <location line="+23"/>
         <source>Attribute group %1 already defined.</source>
         <translation>Die Attributgruppe %1 ist bereits definiert.</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>Element group %1 already defined.</source>
         <translation>Die Elementgruppe %1 ist bereits definiert.</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>Notation %1 already defined.</source>
         <translation>Die Notation %1 ist bereits definiert.</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>Identity constraint %1 already defined.</source>
         <translation>Die Identitätseinschränkung %1 ist bereits definiert.</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>Duplicated facets in simple type %1.</source>
         <translation>Im einfachen Typ %1 kommen Facetten mehrfach vor.</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 ist nach %2 ungültig.</translation>
     </message>
     <message>
-        <location line="+167"/>
         <source>String content does not match the length facet.</source>
         <translation>Der Zeichenketteninhalt entspricht nicht der Längenfacette.</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>String content does not match the minLength facet.</source>
         <translation>Der Zeichenketteninhalt entspricht nicht der Längenfacette (Minimumangabe).</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>String content does not match the maxLength facet.</source>
         <translation>Der Zeichenketteninhalt entspricht nicht der Längenfacette (Maximumangabe).</translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>String content does not match pattern facet.</source>
         <translation>Der Zeichenketteninhalt entspricht nicht der Suchmusterfacette.</translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>String content is not listed in the enumeration facet.</source>
         <translation>Der Zeichenketteninhalt ist nicht in der Aufzählungsfacette enthalten.</translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>Signed integer content does not match the maxInclusive facet.</source>
         <translation>Der vorzeichenbehaftete Ganzzahlwert entspricht nicht der Facette &apos;maxInclusive&apos;.</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Signed integer content does not match the maxExclusive facet.</source>
         <translation>Der vorzeichenbehaftete Ganzzahlwert entspricht nicht der Facette &apos;maxExclusive&apos;.</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Signed integer content does not match the minInclusive facet.</source>
         <translation>Der vorzeichenbehaftete Ganzzahlwert entspricht nicht der Facette &apos;minInclusive&apos;.</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Signed integer content does not match the minExclusive facet.</source>
         <translation>Der vorzeichenbehaftete Ganzzahlwert entspricht nicht der Facette &apos;minExclusive&apos;.</translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>Signed integer content is not listed in the enumeration facet.</source>
         <translation>Der vorzeichenbehaftete Ganzzahlwert ist nicht in der Aufzählungsfacette enthalten.</translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>Signed integer content does not match pattern facet.</source>
         <translation>Der vorzeichenbehaftete Ganzzahlwert entspricht nicht der Suchmusterfacette.</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Signed integer content does not match in the totalDigits facet.</source>
         <translation>Der vorzeichenbehaftete Ganzzahlwert entspricht nicht der Facette &apos;totalDigits&apos;.</translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>Unsigned integer content does not match the maxInclusive facet.</source>
         <translation>Der vorzeichenlose Ganzzahlwert entspricht nicht der Facette &apos;maxInclusive&apos;.</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Unsigned integer content does not match the maxExclusive facet.</source>
         <translation>Der vorzeichenlose Ganzzahlwert entspricht nicht der Facette &apos;maxExclusive&apos;.</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Unsigned integer content does not match the minInclusive facet.</source>
         <translation>Der vorzeichenlose Ganzzahlwert entspricht nicht der Facette &apos;minInclusive&apos;.</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Unsigned integer content does not match the minExclusive facet.</source>
         <translation>Der vorzeichenlose Ganzzahlwert entspricht nicht der Facette &apos;minExclusive&apos;.</translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>Unsigned integer content is not listed in the enumeration facet.</source>
         <translation>Der vorzeichenlose Ganzzahlwert ist nicht in der Aufzählungsfacette enthalten.</translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>Unsigned integer content does not match pattern facet.</source>
         <translation>Der vorzeichenlose Ganzzahlwert entspricht nicht der Suchmusterfacette.</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Unsigned integer content does not match in the totalDigits facet.</source>
         <translation>Der vorzeichenlose Ganzzahlwert entspricht nicht der Facette &apos;totalDigits&apos;.</translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>Double content does not match the maxInclusive facet.</source>
         <translation>Die Gleitkommazahl entspricht nicht der Facette &apos;maxInclusive&apos;.</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Double content does not match the maxExclusive facet.</source>
         <translation>Die Gleitkommazahl entspricht nicht der Facette &apos;maxExclusive&apos;.</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Double content does not match the minInclusive facet.</source>
         <translation>Die Gleitkommazahl entspricht nicht der Facette &apos;minInclusive&apos;.</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Double content does not match the minExclusive facet.</source>
         <translation>Die Gleitkommazahl entspricht nicht der Facette &apos;minExclusive&apos;.</translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>Double content is not listed in the enumeration facet.</source>
         <translation>Die Gleitkommazahl ist nicht in der Aufzählungsfacette enthalten.</translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>Double content does not match pattern facet.</source>
         <translation>Die Gleitkommazahl entspricht nicht der Suchmusterfacette.</translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>Decimal content does not match in the fractionDigits facet.</source>
         <translation>Die Dezimalzahl entspricht nicht der Facette &apos;fractionDigit&apos;.</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Decimal content does not match in the totalDigits facet.</source>
         <translation>Die Dezimalzahl entspricht nicht der Facette &apos;totalDigits&apos;.</translation>
     </message>
     <message>
-        <location line="+14"/>
         <source>Date time content does not match the maxInclusive facet.</source>
         <translation>Die Datumsangabe entspricht nicht der Facette &apos;maxInclusive&apos;.</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Date time content does not match the maxExclusive facet.</source>
         <translation>Die Datumsangabe entspricht nicht der Facette &apos;maxExclusive&apos;.</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Date time content does not match the minInclusive facet.</source>
         <translation>Die Datumsangabe entspricht nicht der Facette &apos;minInclusive&apos;.</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Date time content does not match the minExclusive facet.</source>
         <translation>Die Datumsangabe entspricht nicht der Facette &apos;minExclusive&apos;.</translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>Date time content is not listed in the enumeration facet.</source>
         <translation>Die Datumsangabe ist nicht in der Aufzählungsfacette enthalten.</translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>Date time content does not match pattern facet.</source>
         <translation>Die Datumsangabe entspricht nicht der Suchmusterfacette.</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Duration content does not match the maxInclusive facet.</source>
         <translation>Die Angabe der Zeitdauer entspricht nicht der Facette &apos;maxInclusive&apos;.</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Duration content does not match the maxExclusive facet.</source>
         <translation>Die Angabe der Zeitdauer entspricht nicht der Facette &apos;maxExclusive&apos;.</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Duration content does not match the minInclusive facet.</source>
         <translation>Die Angabe der Zeitdauer entspricht nicht der Facette &apos;minInclusive&apos;.</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Duration content does not match the minExclusive facet.</source>
         <translation>Die Angabe der Zeitdauer entspricht nicht der Facette &apos;minExclusive&apos;.</translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>Duration content is not listed in the enumeration facet.</source>
         <translation>Die Angabe der Zeitdauer ist nicht in der Aufzählungsfacette enthalten.</translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>Duration content does not match pattern facet.</source>
         <translation>Die Angabe der Zeitdauer entspricht nicht der Suchmusterfacette.</translation>
     </message>
     <message>
-        <location line="+27"/>
         <source>Boolean content does not match pattern facet.</source>
         <translation>Der Boolesche Wert entspricht nicht der Suchmusterfacette.</translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>Binary content does not match the length facet.</source>
         <translation>Der binäre Inhalt entspricht nicht der Längenfacette.</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Binary content does not match the minLength facet.</source>
         <translation>Der binäre Inhalt entspricht nicht der Facette &apos;minLength&apos;.</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Binary content does not match the maxLength facet.</source>
         <translation>Der binäre Inhalt entspricht nicht der Facette &apos;maxLength&apos;.</translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>Binary content is not listed in the enumeration facet.</source>
         <translation>Der binäre Inhalt ist nicht in der Aufzählungsfacette enthalten.</translation>
     </message>
     <message>
-        <location line="+27"/>
         <source>Invalid QName content: %1.</source>
         <translation>Der Inhalt des qualifizierten Namens ist ungültig: %1.</translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>QName content is not listed in the enumeration facet.</source>
         <translation>Der Inhalt des qualifizierten Namens ist nicht in der Aufzählungsfacette enthalten.</translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>QName content does not match pattern facet.</source>
         <translation>Der Inhalt des qualifizierten Namens entspricht nicht der Suchmusterfacette.</translation>
     </message>
     <message>
-        <location line="+36"/>
         <source>Notation content is not listed in the enumeration facet.</source>
         <translation>Der Inhalt der Notation ist nicht in der Aufzählungsfacette enthalten.</translation>
     </message>
     <message>
-        <location line="+19"/>
         <source>List content does not match length facet.</source>
         <translation>Der Listeninhalt entspricht nicht der Längenfacette.</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>List content does not match minLength facet.</source>
         <translation>Der Listeninhalt entspricht nicht der Facette &apos;minLength&apos;.</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>List content does not match maxLength facet.</source>
         <translation>Der Listeninhalt entspricht nicht der Facette &apos;maxLength&apos;.</translation>
     </message>
     <message>
-        <location line="+90"/>
         <source>List content is not listed in the enumeration facet.</source>
         <translation>Der Listeninhalt ist nicht in der Aufzählungsfacette enthalten.</translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>List content does not match pattern facet.</source>
         <translation>Der Listeninhalt entspricht nicht der Suchmusterfacette.</translation>
     </message>
     <message>
-        <location line="+39"/>
         <source>Union content is not listed in the enumeration facet.</source>
         <translation>Der Inhalt der Vereinigung ist nicht in der Aufzählungsfacette enthalten.</translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>Union content does not match pattern facet.</source>
         <translation>Der Inhalt der Vereinigung entspricht nicht der Suchmusterfacette.</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Data of type %1 are not allowed to be empty.</source>
         <translation>Daten vom Typ %1 können nicht leer sein.</translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/schema/qxsdvalidatinginstancereader.cpp" line="+160"/>
         <source>Element %1 is missing child element.</source>
         <translation>Beim Element %1 fehlt ein Unterelement.</translation>
     </message>
     <message>
-        <location line="+16"/>
         <source>There is one IDREF value with no corresponding ID: %1.</source>
         <translation>Es existiert ein IDREF-Wert, für den keine zugehörige ID vorhanden ist: %1.</translation>
     </message>
     <message>
-        <location line="+27"/>
         <source>Loaded schema file is invalid.</source>
         <translation>Das geladene Schema ist ungültig.</translation>
     </message>
     <message>
-        <location line="+16"/>
         <source>%1 contains invalid data.</source>
         <translation>%1 enthält ungültige Daten.</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>xsi:schemaLocation namespace %1 has already appeared earlier in the instance document.</source>
         <translation>xsi:schemaLocation namespace %1 wurde im Instanzdokument bereits spezifiziert.</translation>
     </message>
     <message>
-        <location line="+22"/>
         <source>xsi:noNamespaceSchemaLocation cannot appear after the first no-namespace element or attribute.</source>
         <translation>xsi:noNamespaceSchemaLocation kann nicht nach dem ersten Element oder Attribut ohne Namensraum erscheinen.</translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>No schema defined for validation.</source>
         <translation>Es ist kein Schema für die Validierung definiert.</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>No definition for element %1 available.</source>
         <translation>Für das Element %1 ist keine Definition verfügbar.</translation>
     </message>
     <message>
-        <location line="+18"/>
-        <location line="+49"/>
-        <location line="+142"/>
         <source>Specified type %1 is not known to the schema.</source>
         <translation>Der angegebene Typ %1 ist im Schema nicht spezifiziert.</translation>
     </message>
     <message>
-        <location line="-176"/>
         <source>Element %1 is not defined in this scope.</source>
         <translation>Das Element %1 ist in diesem Bereich nicht definiert.</translation>
     </message>
     <message>
-        <location line="+43"/>
         <source>Declaration for element %1 does not exist.</source>
         <translation>Für das Element %1 ist keine Deklaration verfügbar.</translation>
     </message>
     <message>
-        <location line="+12"/>
         <source>Element %1 contains invalid content.</source>
         <translation>Das Element %1 enthält ungültigen Inhalt.</translation>
     </message>
     <message>
-        <location line="+73"/>
         <source>Element %1 is declared as abstract.</source>
         <translation>Das Element %1 ist als abstrakt deklariert.</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Element %1 is not nillable.</source>
         <translation>Das Element %1 hat das Attribut &apos;nillable&apos; nicht spezifiziert.</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Attribute %1 contains invalid data: %2</source>
         <translation>Das Attribut %1 enthält ungültige Daten: %2</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Element contains content although it is nillable.</source>
         <translation>Das Element hat Inhalt, obwohl es &apos;nillable&apos; spezifiziert.</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Fixed value constraint not allowed if element is nillable.</source>
         <translation>Eine Beschränkung auf einen festen Wert ist nicht zulässig, wenn das Element &apos;nillable&apos; spezifiziert.</translation>
     </message>
     <message>
-        <location line="+230"/>
         <source>Element %1 cannot contain other elements, as it has a fixed content.</source>
         <translation>Das Element %1 kann keine anderen Element enthalten, da sein Inhalt festgelegt ist.</translation>
     </message>
     <message>
-        <location line="-198"/>
         <source>Specified type %1 is not validly substitutable with element type %2.</source>
         <translation>Der angebenene Typ %1 kann nicht durch den Elementtyp %2 substituiert werden.</translation>
     </message>
     <message>
-        <location line="+23"/>
         <source>Complex type %1 is not allowed to be abstract.</source>
         <translation>Der komplexe Typ %1 kann nicht abstrakt sein.</translation>
     </message>
     <message>
-        <location line="+21"/>
         <source>Element %1 contains not allowed attributes.</source>
         <translation>Das Element %1 enthält unzulässige Attribute.</translation>
     </message>
     <message>
-        <location line="+6"/>
-        <location line="+97"/>
         <source>Element %1 contains not allowed child element.</source>
         <translation>Das Element %1 enthält ein unzulässiges Unterelement.</translation>
     </message>
     <message>
-        <location line="-76"/>
-        <location line="+93"/>
         <source>Content of element %1 does not match its type definition: %2.</source>
         <translation>Der Inhalt des Elements %1 entspricht nicht seiner Typdefinition: %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>Der Inhalt des Elements %1 entspricht nicht der definierten Einschränkung des Werts.</translation>
     </message>
     <message>
-        <location line="-73"/>
         <source>Element %1 contains not allowed child content.</source>
         <translation>Das Element %1 enthält unzulässigen Unterinhalt.</translation>
     </message>
     <message>
-        <location line="+41"/>
         <source>Element %1 contains not allowed text content.</source>
         <translation>Das Element %1 enthält unzulässigen Textinhalt.</translation>
     </message>
     <message>
-        <location line="+61"/>
         <source>Element %1 is missing required attribute %2.</source>
         <translation>Bei dem Element %1 fehlt ein erforderliches Attribut %2.</translation>
     </message>
     <message>
-        <location line="+29"/>
         <source>Attribute %1 does not match the attribute wildcard.</source>
         <translation>Das Attribut %1 entspricht nicht dem Attributssuchmuster.</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Declaration for attribute %1 does not exist.</source>
         <translation>Für das Attribut %1 ist keine Deklaration verfügbar.</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Element %1 contains two attributes of type %2.</source>
         <translation>Das Element %1 enthält zwei Attribute des Typs %2.</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>Attribute %1 contains invalid content.</source>
         <translation>Das Attribut %1 enthält ungültigen Inhalt.</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Element %1 contains unknown attribute %2.</source>
         <translation>Das Element %1 enthält ein unbekanntes Attribut %2.</translation>
     </message>
     <message>
-        <location line="+40"/>
-        <location line="+46"/>
         <source>Content of attribute %1 does not match its type definition: %2.</source>
         <translation>Der Inhalt des Attributs %1 entspricht nicht seiner Typdefinition: %2.</translation>
     </message>
     <message>
-        <location line="-38"/>
-        <location line="+46"/>
         <source>Content of attribute %1 does not match defined value constraint.</source>
         <translation>Der Inhalt des Attributs %1 entspricht nicht der definierten Einschränkung des Werts.</translation>
     </message>
     <message>
-        <location line="+88"/>
         <source>Non-unique value found for constraint %1.</source>
         <translation>Für die Einschränkung %1 wurde ein nicht eindeutiger Wert gefunden.</translation>
     </message>
     <message>
-        <location line="+20"/>
         <source>Key constraint %1 contains absent fields.</source>
         <translation>Die Einschränkung des Schlüssels %1 enthält nicht vorhandene Felder.</translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>Key constraint %1 contains references nillable element %2.</source>
         <translation>Die Einschränkung des Schlüssels %1 verweist auf das Element %2, was &apos;nillable&apos; spezifiziert.</translation>
     </message>
     <message>
-        <location line="+40"/>
         <source>No referenced value found for key reference %1.</source>
         <translation>Der referenzierte Wert der Schlüsselreferenz %1 konnte nicht gefunden werden.</translation>
     </message>
     <message>
-        <location line="+64"/>
         <source>More than one value found for field %1.</source>
         <translation>Für das Feld %1 wurden mehrere Werte gefunden.</translation>
     </message>
     <message>
-        <location line="+20"/>
         <source>Field %1 has no simple type.</source>
         <translation>Das Feld %1 hat keinen einfachen Typ.</translation>
     </message>
     <message>
-        <location line="+73"/>
         <source>ID value &apos;%1&apos; is not unique.</source>
         <translation>Der ID-Wert &apos;%1&apos; ist nicht eindeutig.</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>&apos;%1&apos; attribute contains invalid QName content: %2.</source>
         <translation>Das Attribut &apos;%1&apos; enthält einen ungültigen qualifizierten Namen: %2.</translation>
     </message>
--- a/translations/qt_fr.ts	Fri Sep 17 08:34:18 2010 +0300
+++ b/translations/qt_fr.ts	Mon Oct 04 01:19:32 2010 +0300
@@ -2,59 +2,18 @@
 <!DOCTYPE TS>
 <TS version="2.0" language="fr">
 <context>
-    <name>MAC_APPLICATION_MENU</name>
-    <message>
-        <location filename="../src/gui/kernel/qapplication.cpp" line="+2316"/>
-        <source>Services</source>
-        <translation>Services</translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Hide %1</source>
-        <translation>Masquer %1</translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Hide Others</source>
-        <translation>Masquer les autres</translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Show All</source>
-        <translation>Tout afficher</translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Preferences...</source>
-        <translation>Préférences…</translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Quit %1</source>
-        <translation>Quitter %1</translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>About %1</source>
-        <translation>À propos de %1</translation>
-    </message>
-</context>
-<context>
     <name>AudioOutput</name>
     <message>
-        <location filename="../src/3rdparty/phonon/phonon/audiooutput.cpp" line="+375"/>
         <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;Le périphérique audio &lt;b&gt;%1&lt;/b&gt; ne fonctionne pas.&lt;br/&gt;Utilisation de &lt;b&gt;%2&lt;/b&gt;.&lt;/html&gt;</translation>
-    </message>
-    <message>
-        <location line="+13"/>
+        <translation type="obsolete">&lt;html&gt;Le périphérique audio &lt;b&gt;%1&lt;/b&gt; ne fonctionne pas.&lt;br/&gt;Utilisation de &lt;b&gt;%2&lt;/b&gt;.&lt;/html&gt;</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>&lt;html&gt;Utilisation de &lt;b&gt;%1&lt;/b&gt;&lt;br/&gt;qui vient de devenir disponible et a une plus grande priorité.&lt;/html&gt;</translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation type="obsolete">&lt;html&gt;Utilisation de &lt;b&gt;%1&lt;/b&gt;&lt;br/&gt;qui vient de devenir disponible et a une plus grande priorité.&lt;/html&gt;</translation>
+    </message>
+    <message>
         <source>Revert back to device &apos;%1&apos;</source>
-        <translation>Utilisation de &apos;%1&apos;</translation>
+        <translation type="obsolete">Utilisation de &apos;%1&apos;</translation>
     </message>
 </context>
 <context>
@@ -80,15 +39,15 @@
     </message>
     <message>
         <source>local audio file:</source>
-        <translation type="obsolete">Fichier audio local:</translation>
+        <translation type="obsolete">Fichier audio local : </translation>
     </message>
     <message>
         <source>local video file:</source>
-        <translation type="obsolete">Fichier vidéo local:</translation>
+        <translation type="obsolete">Fichier vidéo local : </translation>
     </message>
     <message>
         <source>remote media URL:</source>
-        <translation type="obsolete">URL distante :</translation>
+        <translation type="obsolete">URL distante : </translation>
     </message>
     <message>
         <source>run tests</source>
@@ -107,6 +66,48 @@
     </message>
 </context>
 <context>
+    <name>FakeReply</name>
+    <message>
+        <source>Fake error !</source>
+        <translation>Fausse erreur !</translation>
+    </message>
+    <message>
+        <source>Invalid URL</source>
+        <translation>URL invalide</translation>
+    </message>
+</context>
+<context>
+    <name>MAC_APPLICATION_MENU</name>
+    <message>
+        <source>Services</source>
+        <translation>Services</translation>
+    </message>
+    <message>
+        <source>Hide %1</source>
+        <translation>Masquer %1</translation>
+    </message>
+    <message>
+        <source>Hide Others</source>
+        <translation>Masquer les autres</translation>
+    </message>
+    <message>
+        <source>Show All</source>
+        <translation>Tout afficher</translation>
+    </message>
+    <message>
+        <source>Preferences...</source>
+        <translation>Préférences...</translation>
+    </message>
+    <message>
+        <source>Quit %1</source>
+        <translation>Quitter %1</translation>
+    </message>
+    <message>
+        <source>About %1</source>
+        <translation>À propos de %1</translation>
+    </message>
+</context>
+<context>
     <name>MainWindow</name>
     <message>
         <source>Print</source>
@@ -114,7 +115,7 @@
     </message>
     <message>
         <source>Location:</source>
-        <translation type="obsolete">Emplacement:</translation>
+        <translation type="obsolete">Emplacement : </translation>
     </message>
 </context>
 <context>
@@ -200,29 +201,47 @@
     </message>
 </context>
 <context>
+    <name>Phonon::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>&lt;html&gt;Le périphérique audio &lt;b&gt;%1&lt;/b&gt; ne fonctionne pas.&lt;br/&gt;Repli sur &lt;b&gt;%2&lt;/b&gt;.&lt;/html&gt;</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>&lt;html&gt;Basculement vers le périphérique audio &lt;b&gt;%1&lt;/b&gt;&lt;br/&gt;qui vient juste d&apos;être disponible et dont le niveau de préférence est plus élevé.&lt;/html&gt;</translation>
+    </message>
+    <message>
+        <source>Revert back to device &apos;%1&apos;</source>
+        <translation>Revenir au périphérique &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 has higher preference or is specifically configured for this stream.&lt;/html&gt;</source>
+        <translation>&lt;html&gt;Basculement vers le périphérique audio &lt;b&gt;%1&lt;/b&gt;&lt;br/&gt;dont le niveau de préférence est plus élevé ou qui est spécifiquement configuré pour ce flux.&lt;/html&gt;</translation>
+    </message>
+</context>
+<context>
     <name>Phonon::Gstreamer::Backend</name>
     <message>
         <source>Warning: You do not seem to have the package gstreamer0.10-plugins-good installed.
           Some video features have been disabled.</source>
-        <translation>Attention: Vous n&apos;avez apparemment pas installé le paquet gstreamer0.10-plugins-good.
+        <translation>Attention : Vous n&apos;avez apparemment pas installé le paquet gstreamer0.10-plugins-good.
 Des fonctionnalités vidéo ont été desactivées.</translation>
     </message>
     <message>
         <source>Warning: You do not seem to have the base GStreamer plugins installed.
           All audio and video support has been disabled</source>
-        <translation>Attention: Vous n&apos;avez apparemment pas installées les plugins de base de GStreamer.
+        <translation>Attention : Vous n&apos;avez apparemment pas installées les plugins de base de GStreamer.
 Le support audio et vidéo est désactivé</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>Impossible de démarrer la lecture. Verifiez votre installation de Gstreamer et assurez-vous d&apos;avoir installé libgstreamer-plugins-base.</translation>
+        <translation type="obsolete">Impossible de démarrer la lecture. Verifiez votre installation de Gstreamer et assurez-vous d&apos;avoir installé libgstreamer-plugins-base.</translation>
     </message>
     <message>
         <source>Unknown media format: %1</source>
@@ -257,8 +276,17 @@
         <translation type="obsolete">Impossible de charger la source</translation>
     </message>
     <message>
+        <source>Missing codec helper script assistant.</source>
+        <translatorcomment>???</translatorcomment>
+        <translation>Assistant de script d&apos;aide au codec manquant.</translation>
+    </message>
+    <message>
+        <source>Plugin codec installation failed for codec: %0</source>
+        <translation>Échec de l&apos;installation du plugin pour le codec : %0</translation>
+    </message>
+    <message>
         <source>A required codec is missing. You need to install the following codec(s) to play this content: %0</source>
-        <translation>Un codec requis est manquant. Vous devez installer le codec suivant pour jouer le contenu: %0</translation>
+        <translation>Un codec requis est manquant. Vous devez installer le codec suivant pour jouer le contenu : %0</translation>
     </message>
     <message>
         <source>Could not open media source.</source>
@@ -292,10 +320,340 @@
     </message>
 </context>
 <context>
+    <name>Phonon::MMF</name>
+    <message>
+        <source>Audio Output</source>
+        <translation>Sortie audio</translation>
+    </message>
+    <message>
+        <source>The audio output device</source>
+        <translation>Périphérique audio de sortie</translation>
+    </message>
+    <message>
+        <source>No error</source>
+        <translation>Aucune erreur</translation>
+    </message>
+    <message>
+        <source>Not found</source>
+        <translation>Introuvable</translation>
+    </message>
+    <message>
+        <source>Out of memory</source>
+        <translation>Mémoire insuffisante</translation>
+    </message>
+    <message>
+        <source>Not supported</source>
+        <translation>Non supporté</translation>
+    </message>
+    <message>
+        <source>Overflow</source>
+        <translation>Dépassement</translation>
+    </message>
+    <message>
+        <source>Underflow</source>
+        <translation>Soupassement</translation>
+    </message>
+    <message>
+        <source>Already exists</source>
+        <translation>Existe déjà</translation>
+    </message>
+    <message>
+        <source>Path not found</source>
+        <translation>Chemin introuvable</translation>
+    </message>
+    <message>
+        <source>In use</source>
+        <translation>Utilisé</translation>
+    </message>
+    <message>
+        <source>Not ready</source>
+        <translation>Pas prêt</translation>
+    </message>
+    <message>
+        <source>Access denied</source>
+        <translation>Autorisation refusée</translation>
+    </message>
+    <message>
+        <source>Could not connect</source>
+        <translation>Connexion impossible</translation>
+    </message>
+    <message>
+        <source>Disconnected</source>
+        <translation>Déconnecté</translation>
+    </message>
+    <message>
+        <source>Permission denied</source>
+        <translation>Autorisation refusée</translation>
+    </message>
+    <message>
+        <source>Insufficient bandwidth</source>
+        <translation>Bande passante insuffisante</translation>
+    </message>
+    <message>
+        <source>Network unavailable</source>
+        <translation>Réseau non disponible</translation>
+    </message>
+    <message>
+        <source>Network communication error</source>
+        <translation>Erreur de communication réseau</translation>
+    </message>
+    <message>
+        <source>Streaming not supported</source>
+        <translation>Streaming non supporté</translation>
+    </message>
+    <message>
+        <source>Server alert</source>
+        <translation>Alerte serveur</translation>
+    </message>
+    <message>
+        <source>Invalid protocol</source>
+        <translation>Protocole invalide</translation>
+    </message>
+    <message>
+        <source>Invalid URL</source>
+        <translation>URL invalide</translation>
+    </message>
+    <message>
+        <source>Multicast error</source>
+        <translation>Erreur multicast</translation>
+    </message>
+    <message>
+        <source>Proxy server error</source>
+        <translation>Erreur du serveur proxy</translation>
+    </message>
+    <message>
+        <source>Proxy server not supported</source>
+        <translation>Serveur proxy non supporté</translation>
+    </message>
+    <message>
+        <source>Audio output error</source>
+        <translation>Erreur de sortie audio</translation>
+    </message>
+    <message>
+        <source>Video output error</source>
+        <translation>Erreur de sortie vidéo</translation>
+    </message>
+    <message>
+        <source>Decoder error</source>
+        <translation>Erreur du décodeur</translation>
+    </message>
+    <message>
+        <source>Audio or video components could not be played</source>
+        <translation>Les composants audio ou vidéo n&apos;ont pas pu être lus</translation>
+    </message>
+    <message>
+        <source>DRM error</source>
+        <translation>Erreur GDN</translation>
+    </message>
+    <message>
+        <source>Unknown error (%1)</source>
+        <translation>Erreur inconnue (%1)</translation>
+    </message>
+</context>
+<context>
+    <name>Phonon::MMF::AbstractMediaPlayer</name>
+    <message>
+        <source>Not ready to play</source>
+        <translation>Pas prêt pour lecture</translation>
+    </message>
+    <message>
+        <source>Error opening file</source>
+        <translation>Erreur lors de l&apos;ouverture du fichier</translation>
+    </message>
+    <message>
+        <source>Error opening URL</source>
+        <translation>Erreur lors de l&apos;ouverture de l&apos;URL</translation>
+    </message>
+    <message>
+        <source>Error opening resource</source>
+        <translation>erreur lors de l&apos;ouverture de la ressource</translation>
+    </message>
+    <message>
+        <source>Error opening source: resource not opened</source>
+        <translation>erreur lors de l&apos;ouverture de la source : ressource non ouverte</translation>
+    </message>
+    <message>
+        <source>Setting volume failed</source>
+        <translation>Le réglage du volume a échoué</translation>
+    </message>
+    <message>
+        <source>Loading clip failed</source>
+        <translation>Échec de l&apos;ouverture du clip</translation>
+    </message>
+    <message>
+        <source>Playback complete</source>
+        <translation>Lecture terminée</translation>
+    </message>
+</context>
+<context>
+    <name>Phonon::MMF::AbstractVideoPlayer</name>
+    <message>
+        <source>Pause failed</source>
+        <translation>La mise en pause a échoué</translation>
+    </message>
+    <message>
+        <source>Seek failed</source>
+        <translation>La recherche a échoué</translation>
+    </message>
+    <message>
+        <source>Getting position failed</source>
+        <translation>L&apos;obtention de la position a échoué</translation>
+    </message>
+    <message>
+        <source>Opening clip failed</source>
+        <translation>L&apos;ouverture du clip a échoué</translation>
+    </message>
+</context>
+<context>
+    <name>Phonon::MMF::AudioEqualizer</name>
+    <message>
+        <source>%1 Hz</source>
+        <translation>%1 Hz</translation>
+    </message>
+</context>
+<context>
+    <name>Phonon::MMF::AudioPlayer</name>
+    <message>
+        <source>Getting position failed</source>
+        <translation>L&apos;obtention de la position a échoué</translation>
+    </message>
+    <message>
+        <source>Opening clip failed</source>
+        <translation type="obsolete">L&apos;ouverture du clip a échoué</translation>
+    </message>
+</context>
+<context>
+    <name>Phonon::MMF::DsaVideoPlayer</name>
+    <message>
+        <source>Video display error</source>
+        <translation>Erreur de l&apos;affichage vidéo</translation>
+    </message>
+</context>
+<context>
+    <name>Phonon::MMF::EffectFactory</name>
+    <message>
+        <source>Enabled</source>
+        <translation>Activé</translation>
+    </message>
+</context>
+<context>
+    <name>Phonon::MMF::EnvironmentalReverb</name>
+    <message>
+        <source>Decay HF ratio (%)</source>
+        <extracomment>DecayHFRatio: Ratio of high-frequency decay time to the value specified by DecayTime.</extracomment>
+        <translation>Ratio HF du déclin (%)</translation>
+    </message>
+    <message>
+        <source>Decay time (ms)</source>
+        <extracomment>DecayTime: Time over which reverberation is diminished.</extracomment>
+        <translation>Temps de déclin (ms)</translation>
+    </message>
+    <message>
+        <source>Density (%)</source>
+        <extracomment>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.</extracomment>
+        <translation>Densité (%)</translation>
+    </message>
+    <message>
+        <source>Diffusion (%)</source>
+        <extracomment>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.</extracomment>
+        <translation>Diffusion (%)</translation>
+    </message>
+    <message>
+        <source>Reflections delay (ms)</source>
+        <extracomment>ReflectionsDelay: Amount of delay between the arrival the direct path from the source and the arrival of the first reflection.</extracomment>
+        <translation>Délai réflexions (ms)</translation>
+    </message>
+    <message>
+        <source>Reflections level (mB)</source>
+        <extracomment>ReflectionsLevel: Amplitude of reflections. This value is corrected by the RoomLevel to give the final reflection amplitude.</extracomment>
+        <translation>Niveau réflexions (mB)</translation>
+    </message>
+    <message>
+        <source>Reverb delay (ms)</source>
+        <extracomment>ReverbDelay: Amount of time between arrival of the first reflection and start of the late reverberation.</extracomment>
+        <translation>Délai de réverbération (ms)</translation>
+    </message>
+    <message>
+        <source>Reverb level (mB)</source>
+        <extracomment>ReverbLevel Amplitude of reverberations. This value is corrected by the RoomLevel to give the final reverberation amplitude.</extracomment>
+        <translation>Niveau de réverbération (mB)</translation>
+    </message>
+    <message>
+        <source>Room HF level</source>
+        <extracomment>RoomHFLevel: Amplitude of low-pass filter used to attenuate the high frequency component of reflected sound.</extracomment>
+        <translation>Niveau HF pièce</translation>
+    </message>
+    <message>
+        <source>Room level (mB)</source>
+        <extracomment>RoomLevel: Master volume control for all reflected sound.</extracomment>
+        <translation>Niveau pièce (mB)</translation>
+    </message>
+</context>
+<context>
+    <name>Phonon::MMF::MediaObject</name>
+    <message>
+        <source>Error opening source: type not supported</source>
+        <translation>Erreur lors de l&apos;ouverture de la source : type non supporté</translation>
+    </message>
+    <message>
+        <source>Error opening source: resource is compressed</source>
+        <translation>Erreur lors de l&apos;ouverture de la source : ressource compressée</translation>
+    </message>
+    <message>
+        <source>Error opening source: resource not valid</source>
+        <translation>Erreur lors de l&apos;ouverture de la source : ressource invalide</translation>
+    </message>
+    <message>
+        <source>Error opening source: media type could not be determined</source>
+        <translation>Erreur lors de l&apos;ouverture de la source : type de média non déterminé</translation>
+    </message>
+</context>
+<context>
+    <name>Phonon::MMF::StereoWidening</name>
+    <message>
+        <source>Level (%)</source>
+        <translation>Niveau (%)</translation>
+    </message>
+</context>
+<context>
+    <name>Phonon::MMF::SurfaceVideoPlayer</name>
+    <message>
+        <source>Video display error</source>
+        <translation>Erreur de l&apos;affichage vidéo</translation>
+    </message>
+</context>
+<context>
+    <name>Phonon::MMF::VideoPlayer</name>
+    <message>
+        <source>Pause failed</source>
+        <translation type="obsolete">La mise en pause a échoué</translation>
+    </message>
+    <message>
+        <source>Seek failed</source>
+        <translation type="obsolete">La recherche a échoué</translation>
+    </message>
+    <message>
+        <source>Getting position failed</source>
+        <translation type="obsolete">L&apos;obtention de la position a échoué</translation>
+    </message>
+    <message>
+        <source>Opening clip failed</source>
+        <translation type="obsolete">L&apos;ouverture du clip a échoué</translation>
+    </message>
+    <message>
+        <source>Buffering clip failed</source>
+        <translation type="obsolete">La mise en mémoire tampon du clip a échoué</translation>
+    </message>
+    <message>
+        <source>Video display error</source>
+        <translation type="obsolete">Erreur de l&apos;affichage vidéo</translation>
+    </message>
+</context>
+<context>
     <name>Phonon::VolumeSlider</name>
     <message>
         <source>Volume: %1%</source>
-        <translation>Volume: %1%</translation>
+        <translation>Volume : %1%</translation>
     </message>
     <message>
         <source>Use this slider to adjust the volume. The leftmost position is 0%, the rightmost is %1%</source>
@@ -388,15 +746,15 @@
     </message>
     <message>
         <source>Look &amp;in:</source>
-        <translation>Chercher &amp;dans :</translation>
+        <translation>Chercher &amp;dans : </translation>
     </message>
     <message>
         <source>File &amp;name:</source>
-        <translation>&amp;Nom de fichier :</translation>
+        <translation>&amp;Nom de fichier : </translation>
     </message>
     <message>
         <source>File &amp;type:</source>
-        <translation>&amp;Type de fichier :</translation>
+        <translation>&amp;Type de fichier : </translation>
     </message>
     <message>
         <source>Back</source>
@@ -568,7 +926,7 @@
     </message>
     <message>
         <source>Directory:</source>
-        <translation>Dossier :</translation>
+        <translation>Dossier : </translation>
     </message>
     <message>
         <source>Error</source>
@@ -580,7 +938,7 @@
 Check path and filename.</source>
         <translation>%1
 Impossible de trouver le fichier.
-Vérifier le chemin et le nom du fichier.</translation>
+Vérifiez le chemin et le nom du fichier.</translation>
     </message>
     <message>
         <source>All Files (*.*)</source>
@@ -748,9 +1106,8 @@
         <translation>Contient des commandes pour manipuler la fenêtre</translation>
     </message>
     <message>
-        <location filename="../src/plugins/accessible/compat/q3complexwidgets.cpp" line="+277"/>
         <source>Puts a minimized back to normal</source>
-        <translation>Rend à une fenêtre minimisée son aspect normal</translation>
+        <translation type="obsolete">Rend à une fenêtre minimisée son aspect normal</translation>
     </message>
     <message>
         <source>Moves the window out of the way</source>
@@ -781,7 +1138,7 @@
     <name>Q3ToolBar</name>
     <message>
         <source>More...</source>
-        <translation>Reste...</translation>
+        <translation>Plus...</translation>
     </message>
 </context>
 <context>
@@ -893,9 +1250,15 @@
     </message>
 </context>
 <context>
+    <name>QAccessibleButton</name>
+    <message>
+        <source>Press</source>
+        <translation>Appuyer</translation>
+    </message>
+</context>
+<context>
     <name>QApplication</name>
     <message>
-        <location filename="../src/gui/kernel/qapplication.cpp" line="+2248"/>
         <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>
@@ -918,7 +1281,7 @@
     </message>
     <message>
         <source>QT_LAYOUT_DIRECTION</source>
-        <translation>LTR</translation>
+        <translation type="obsolete">LTR</translation>
     </message>
 </context>
 <context>
@@ -937,7 +1300,7 @@
     </message>
     <message>
         <source>COM &amp;Object:</source>
-        <translation>&amp;Objet COM :</translation>
+        <translation>&amp;Objet COM : </translation>
     </message>
 </context>
 <context>
@@ -959,31 +1322,31 @@
     <name>QColorDialog</name>
     <message>
         <source>Hu&amp;e:</source>
-        <translation>&amp;Teinte :</translation>
+        <translation>&amp;Teinte : </translation>
     </message>
     <message>
         <source>&amp;Sat:</source>
-        <translation>&amp;Saturation :</translation>
+        <translation>&amp;Saturation : </translation>
     </message>
     <message>
         <source>&amp;Val:</source>
-        <translation>&amp;Valeur :</translation>
+        <translation>&amp;Valeur : </translation>
     </message>
     <message>
         <source>&amp;Red:</source>
-        <translation>&amp;Rouge :</translation>
+        <translation>&amp;Rouge : </translation>
     </message>
     <message>
         <source>&amp;Green:</source>
-        <translation>&amp;Vert :</translation>
+        <translation>&amp;Vert : </translation>
     </message>
     <message>
         <source>Bl&amp;ue:</source>
-        <translation>Ble&amp;u :</translation>
+        <translation>Ble&amp;u : </translation>
     </message>
     <message>
         <source>A&amp;lpha channel:</source>
-        <translation>Canal a&amp;lpha :</translation>
+        <translation>Canal a&amp;lpha : </translation>
     </message>
     <message>
         <source>Select Color</source>
@@ -1042,73 +1405,75 @@
     <message>
         <source>%1: permission denied</source>
         <comment>QSystemSemaphore</comment>
-        <translation type="obsolete">%1: permission refusée</translation>
+        <translation type="obsolete">%1 : permission refusée</translation>
     </message>
     <message>
         <source>%1: already exists</source>
         <comment>QSystemSemaphore</comment>
-        <translation type="obsolete">%1: existe déjà</translation>
+        <translation>%1 : existe déjà</translation>
     </message>
     <message>
         <source>%1: doesn&apos;t exists</source>
         <comment>QSystemSemaphore</comment>
-        <translation type="obsolete">%1: n&apos;existe pas</translation>
+        <translation type="obsolete">%1 : n&apos;existe pas</translation>
+    </message>
+    <message>
+        <source>%1: does not exist</source>
+        <comment>QSystemSemaphore</comment>
+        <translation>%1 : n&apos;existe pas</translation>
     </message>
     <message>
         <source>%1: out of resources</source>
         <comment>QSystemSemaphore</comment>
-        <translation type="obsolete">%1: plus de ressources disponibles</translation>
+        <translation>%1 : plus de ressources disponibles</translation>
     </message>
     <message>
         <source>%1: unknown error %2</source>
         <comment>QSystemSemaphore</comment>
-        <translation type="obsolete">%1: erreur inconnue %2</translation>
-    </message>
-    <message>
-        <location filename="../src/corelib/kernel/qsystemsemaphore_unix.cpp" line="+119"/>
+        <translation>%1 : erreur inconnue %2</translation>
+    </message>
+    <message>
         <source>%1: key is empty</source>
         <comment>QSystemSemaphore</comment>
-        <translation>%1: clé vide</translation>
-    </message>
-    <message>
-        <location line="+12"/>
+        <translation>%1 : clé vide</translation>
+    </message>
+    <message>
         <source>%1: unable to make key</source>
         <comment>QSystemSemaphore</comment>
-        <translation>%1: impossible de créer la clé</translation>
-    </message>
-    <message>
-        <location line="+9"/>
+        <translation>%1 : impossible de créer la clé</translation>
+    </message>
+    <message>
         <source>%1: ftok failed</source>
         <comment>QSystemSemaphore</comment>
-        <translation>%1: ftok a échoué</translation>
+        <translation>%1 : ftok a échoué</translation>
     </message>
     <message>
         <source>%1: key is empty</source>
-        <translation>%1: clé vide</translation>
+        <translation type="obsolete">%1 : clé vide</translation>
     </message>
     <message>
         <source>%1: unable to make key</source>
-        <translation>%1: impossible de créer la clé</translation>
+        <translation type="obsolete">%1 : impossible de créer la clé</translation>
     </message>
     <message>
         <source>%1: ftok failed</source>
-        <translation>%1: ftok a échoué</translation>
+        <translation type="obsolete">%1 : ftok a échoué</translation>
     </message>
     <message>
         <source>%1: already exists</source>
-        <translation>%1: existe déjà</translation>
+        <translation type="obsolete">%1 : existe déjà</translation>
     </message>
     <message>
         <source>%1: does not exist</source>
-        <translation>%1: n&apos;existe pas</translation>
+        <translation type="obsolete">%1 : n&apos;existe pas</translation>
     </message>
     <message>
         <source>%1: out of resources</source>
-        <translation>%1: plus de ressources disponibles</translation>
+        <translation type="obsolete">%1 : plus de ressources disponibles</translation>
     </message>
     <message>
         <source>%1: unknown error %2</source>
-        <translation>%1: erreur inconnue %2</translation>
+        <translation type="obsolete">%1 : erreur inconnue %2</translation>
     </message>
 </context>
 <context>
@@ -1138,7 +1503,7 @@
     </message>
     <message>
         <source>Unable to prepare statement</source>
-        <translation>Impossible de prépare la requête</translation>
+        <translation>Impossible de préparer la requête</translation>
     </message>
     <message>
         <source>Unable to bind variable</source>
@@ -1177,6 +1542,909 @@
     </message>
 </context>
 <context>
+    <name>QDeclarativeAbstractAnimation</name>
+    <message>
+        <source>Cannot animate non-existent property &quot;%1&quot;</source>
+        <translation>Impossible d&apos;animer la propriété inexistante &quot;%1&quot;</translation>
+    </message>
+    <message>
+        <source>Cannot animate read-only property &quot;%1&quot;</source>
+        <translation>Impossible d&apos;animer la propriété en lecture seule &quot;%1&quot;</translation>
+    </message>
+    <message>
+        <source>Animation is an abstract class</source>
+        <translation>L&apos;animation est une classe abstraite</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativeAnchorAnimation</name>
+    <message>
+        <source>Cannot set a duration of &lt; 0</source>
+        <translation>Impossible de sélectionner une durée négative</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativeAnchors</name>
+    <message>
+        <source>Possible anchor loop detected on fill.</source>
+        <translation>Boucle potentielle dans les ancres détectée pour le remplissage.</translation>
+    </message>
+    <message>
+        <source>Possible anchor loop detected on centerIn.</source>
+        <translation>Boucle potentielle dans les ancres détectée pour le centrage.</translation>
+    </message>
+    <message>
+        <source>Cannot anchor to an item that isn&apos;t a parent or sibling.</source>
+        <translation>Impossible d&apos;ancrer à un élément qui n&apos;est pas un parent ou partage le même parent.</translation>
+    </message>
+    <message>
+        <source>Possible anchor loop detected on vertical anchor.</source>
+        <translation>Boucle potentielle dans les ancres détectée pour l&apos;ancre verticale.</translation>
+    </message>
+    <message>
+        <source>Possible anchor loop detected on horizontal anchor.</source>
+        <translation>Boucle potentielle dans les ancres détectée pour l&apos;ancre horizontale.</translation>
+    </message>
+    <message>
+        <source>Cannot specify left, right, and hcenter anchors.</source>
+        <translation>Impossible de spécifier à la fois une ancre gauche, droite et hcenter.</translation>
+    </message>
+    <message>
+        <source>Cannot anchor to a null item.</source>
+        <translation>Impossible d&apos;ancrer à un élément nul.</translation>
+    </message>
+    <message>
+        <source>Cannot anchor a horizontal edge to a vertical edge.</source>
+        <translation>Impossible d&apos;ancrer un bord horizontal à un bord vertical.</translation>
+    </message>
+    <message>
+        <source>Cannot anchor item to self.</source>
+        <translation>Impossible d&apos;ancrer l&apos;élément à lui même.</translation>
+    </message>
+    <message>
+        <source>Cannot specify top, bottom, and vcenter anchors.</source>
+        <translation>Impossible de spécifier à la fois une ancre haut, bas et vcenter.</translation>
+    </message>
+    <message>
+        <source>Baseline anchor cannot be used in conjunction with top, bottom, or vcenter anchors.</source>
+        <translation>L&apos;ancre baseline ne peut pas etre combinée à l&apos;usage des ancres haut, bas ou vcenter.</translation>
+    </message>
+    <message>
+        <source>Cannot anchor a vertical edge to a horizontal edge.</source>
+        <translation>Impossible d&apos;ancrer un bord vertical à un bord horizontal.</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativeAnimatedImage</name>
+    <message>
+        <source>Qt was built without support for QMovie</source>
+        <translation>Qt a été compilé sans support de QMovie</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativeBehavior</name>
+    <message>
+        <source>Cannot change the animation assigned to a Behavior.</source>
+        <translation>Impossible de changer l&apos;animation affectée à un comportement.</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativeBinding</name>
+    <message>
+        <source>Binding loop detected for property &quot;%1&quot;</source>
+        <translation>Boucle détectée dans l&apos;affectation pour la propriété &quot;%1&quot;</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativeBindings</name>
+    <message>
+        <source>Binding loop detected for property &quot;%1&quot;</source>
+        <translation>Boucle détectée dans l&apos;affectation pour la propriété &quot;%1&quot;</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativeCompiler</name>
+    <message>
+        <source>Invalid property assignment: &quot;%1&quot; is a read-only property</source>
+        <translation>Affectation de propriété invalide : &quot;%1&quot;est une propriété en lecture seule</translation>
+    </message>
+    <message>
+        <source>Invalid property assignment: unknown enumeration</source>
+        <translation>Affectation de propriété invalide : énumération inconnue</translation>
+    </message>
+    <message>
+        <source>Invalid property assignment: string expected</source>
+        <translation>Affectation de propriété invalide : chaîne attendue</translation>
+    </message>
+    <message>
+        <source>Invalid property assignment: url expected</source>
+        <translation>Affectation de propriété invalide : url attendue</translation>
+    </message>
+    <message>
+        <source>Invalid property assignment: unsigned int expected</source>
+        <translation>Affectation de propriété invalide : unsigned int attendu</translation>
+    </message>
+    <message>
+        <source>Invalid property assignment: int expected</source>
+        <translation>Affectation de propriété invalide : int attendu</translation>
+    </message>
+    <message>
+        <source>Invalid property assignment: float expected</source>
+        <translation type="obsolete">Affectation de propriété invalide : float attendu</translation>
+    </message>
+    <message>
+        <source>Invalid property assignment: double expected</source>
+        <translation type="obsolete">Affectation de propriété invalide : double attendu</translation>
+    </message>
+    <message>
+        <source>Invalid property assignment: number expected</source>
+        <translation>Affectation de propriété invalide : nombre attendu</translation>
+    </message>
+    <message>
+        <source>Invalid property assignment: color expected</source>
+        <translation>Affectation de propriété invalide : couleur attendue</translation>
+    </message>
+    <message>
+        <source>Invalid property assignment: date expected</source>
+        <translation>Affectation de propriété invalide : date attendue</translation>
+    </message>
+    <message>
+        <source>Invalid property assignment: time expected</source>
+        <translation>Affectation de propriété invalide : heure attendue</translation>
+    </message>
+    <message>
+        <source>Invalid property assignment: datetime expected</source>
+        <translation>Affectation de propriété invalide : date et heure attendues</translation>
+    </message>
+    <message>
+        <source>Invalid property assignment: point expected</source>
+        <translation>Affectation de propriété invalide : point attendu</translation>
+    </message>
+    <message>
+        <source>Invalid property assignment: size expected</source>
+        <translation>Affectation de propriété invalide : taille attendue</translation>
+    </message>
+    <message>
+        <source>Invalid property assignment: rect expected</source>
+        <translation>Affectation de propriété invalide : rectangle attendu</translation>
+    </message>
+    <message>
+        <source>Invalid property assignment: boolean expected</source>
+        <translation>Affectation de propriété invalide : booléen attendu</translation>
+    </message>
+    <message>
+        <source>Invalid property assignment: 3D vector expected</source>
+        <translation>Affectation de propriété invalide : vecteur 3D attendu</translation>
+    </message>
+    <message>
+        <source>Invalid property assignment: unsupported type &quot;%1&quot;</source>
+        <translation>Affectation de propriété invalide : type &quot;%1&quot; non supporté</translation>
+    </message>
+    <message>
+        <source>Element is not creatable.</source>
+        <translation>Impossible de créer l&apos;élément.</translation>
+    </message>
+    <message>
+        <source>Component elements may not contain properties other than id</source>
+        <translation>Les éléments du composant ne peuvent pas contenir des propriétés autres que id</translation>
+    </message>
+    <message>
+        <source>Invalid component id specification</source>
+        <translation>L&apos;id de composant spécifiée n&apos;est pas valide</translation>
+    </message>
+    <message>
+        <source>id is not unique</source>
+        <translation>l&apos;id n&apos;est pas unique</translation>
+    </message>
+    <message>
+        <source>Invalid component body specification</source>
+        <translation>Le corps de la spécification du composant n&apos;est pas valide</translation>
+    </message>
+    <message>
+        <source>Component objects cannot declare new properties.</source>
+        <translation>Les objets composants ne peuvent pas déclarer de nouvelles propriétés.</translation>
+    </message>
+    <message>
+        <source>Component objects cannot declare new signals.</source>
+        <translation>Les objets composants ne peuvent pas déclarer de nouveaux signaux.</translation>
+    </message>
+    <message>
+        <source>Component objects cannot declare new functions.</source>
+        <translation>Les objets composants ne peuvent pas déclarer de nouvelles fonctions.</translation>
+    </message>
+    <message>
+        <source>Cannot create empty component specification</source>
+        <translation>Impossible de créer une spécification du composant vide</translation>
+    </message>
+    <message>
+        <source>Incorrectly specified signal assignment</source>
+        <translation>L&apos;affectation du signal est incorrectement spécifiée</translation>
+    </message>
+    <message>
+        <source>Cannot assign a value to a signal (expecting a script to be run)</source>
+        <translation>Impossible d&apos;assigner une valeur à un signal (un script à exécuter est attendu)</translation>
+    </message>
+    <message>
+        <source>Empty signal assignment</source>
+        <translation>Affectation de signal vide</translation>
+    </message>
+    <message>
+        <source>Empty property assignment</source>
+        <translation>Affectation de propriété vide</translation>
+    </message>
+    <message>
+        <source>Attached properties cannot be used here</source>
+        <translation>La configuration spécifiée ne peut être utilisée ici.</translation>
+    </message>
+    <message>
+        <source>Non-existent attached object</source>
+        <translation>Objet attaché inexistant</translation>
+    </message>
+    <message>
+        <source>Invalid attached object assignment</source>
+        <translation>L&apos;affectation de l&apos;objet attaché est invalide</translation>
+    </message>
+    <message>
+        <source>Cannot assign to non-existent default property</source>
+        <translation>Impossible d&apos;attacher à une propriété par défaut inexistante</translation>
+    </message>
+    <message>
+        <source>Cannot assign to non-existent property &quot;%1&quot;</source>
+        <translation>Impossible d&apos;attacher à une propriété inexistante &quot;%1&quot;</translation>
+    </message>
+    <message>
+        <source>Invalid use of namespace</source>
+        <translation>Utilisation invalide d&apos;espace de noms</translation>
+    </message>
+    <message>
+        <source>Not an attached property name</source>
+        <translation>Ce n&apos;est pas un nom de propriété attachée</translation>
+    </message>
+    <message>
+        <source>Invalid use of id property</source>
+        <translation>Utilisation invalide de la propriété id</translation>
+    </message>
+    <message>
+        <source>Property has already been assigned a value</source>
+        <translation>Une valeur a déjà été attribuée à la propriété</translation>
+    </message>
+    <message>
+        <source>Invalid grouped property access</source>
+        <translation>Accès invalide à une propriété groupée</translation>
+    </message>
+    <message>
+        <source>Cannot assign a value directly to a grouped property</source>
+        <translation>Impossible d&apos;assigner directement une valeur à une propriété groupée</translation>
+    </message>
+    <message>
+        <source>Invalid property use</source>
+        <translation>La propriété utilisée est invalide</translation>
+    </message>
+    <message>
+        <source>Property assignment expected</source>
+        <translation>Affectation de propriété attendue</translation>
+    </message>
+    <message>
+        <source>Single property assignment expected</source>
+        <translation>Une seule affectation de propriété est attendue</translation>
+    </message>
+    <message>
+        <source>Unexpected object assignment</source>
+        <translation>Affectation d&apos;objet inattendue</translation>
+    </message>
+    <message>
+        <source>Cannot assign object to list</source>
+        <translation>Impossible d&apos;assigner un objet à une liste</translation>
+    </message>
+    <message>
+        <source>Can only assign one binding to lists</source>
+        <translation>Un seul lien peut être assigné à des listes</translation>
+    </message>
+    <message>
+        <source>Cannot assign primitives to lists</source>
+        <translation>Impossible d&apos;assigner des primitives à des listes</translation>
+    </message>
+    <message>
+        <source>Cannot assign multiple values to a script property</source>
+        <translation>Impossible d&apos;assigner plusieurs valeurs à une propriété de script</translation>
+    </message>
+    <message>
+        <source>Invalid property assignment: script expected</source>
+        <translation>Affectation de propriété invalide : script attendu</translation>
+    </message>
+    <message>
+        <source>Cannot assign object to property</source>
+        <translation>Impossible d&apos;assigner un objet à une propriété</translation>
+    </message>
+    <message>
+        <source>&quot;%1&quot; cannot operate on &quot;%2&quot;</source>
+        <translation>&quot;%1&quot; ne peut pas opérer sur &quot;%2&quot;</translation>
+    </message>
+    <message>
+        <source>Duplicate default property</source>
+        <translation>Propriété par défaut en double</translation>
+    </message>
+    <message>
+        <source>Duplicate property name</source>
+        <translation>Nom de propriété en double</translation>
+    </message>
+    <message>
+        <source>Property names cannot begin with an upper case letter</source>
+        <translation>Les noms des propriétés ne peuvent pas commencer par une majuscule</translation>
+    </message>
+    <message>
+        <source>Illegal property name</source>
+        <translation>Nom de propriété invalide</translation>
+    </message>
+    <message>
+        <source>Duplicate signal name</source>
+        <translation>Nom de signal en double</translation>
+    </message>
+    <message>
+        <source>Signal names cannot begin with an upper case letter</source>
+        <translation>Les noms de signaux ne peuvent pas commencer par une majuscule</translation>
+    </message>
+    <message>
+        <source>Illegal signal name</source>
+        <translation>Nom de signal invalide</translation>
+    </message>
+    <message>
+        <source>Duplicate method name</source>
+        <translation>Nom de méthode en double</translation>
+    </message>
+    <message>
+        <source>Method names cannot begin with an upper case letter</source>
+        <translation>Les noms des méthodes ne peuvent pas commencer par une majuscule</translation>
+    </message>
+    <message>
+        <source>Illegal method name</source>
+        <translation>Nom de méthode invalide</translation>
+    </message>
+    <message>
+        <source>Property value set multiple times</source>
+        <translation>Valeur de propriété attribuée plusieurs fois</translation>
+    </message>
+    <message>
+        <source>Invalid property nesting</source>
+        <translation>Imbrication de propriété invalide</translation>
+    </message>
+    <message>
+        <source>Cannot override FINAL property</source>
+        <translation>Impossible de remplacer la propriété FINAL</translation>
+    </message>
+    <message>
+        <source>Invalid property type</source>
+        <translation>Type de propriété invalide</translation>
+    </message>
+    <message>
+        <source>Invalid empty ID</source>
+        <translation>id vide invalide</translation>
+    </message>
+    <message>
+        <source>IDs cannot start with an uppercase letter</source>
+        <translation>Les ids ne peuvent pas commencer par une  majuscule</translation>
+    </message>
+    <message>
+        <source>IDs must start with a letter or underscore</source>
+        <translation>Les ids doivent commencer par une lettre ou un tiret bas</translation>
+    </message>
+    <message>
+        <source>IDs must contain only letters, numbers, and underscores</source>
+        <translation>Les ids ne peuvent contenir que des lettres, des nombres ou des tirets bas</translation>
+    </message>
+    <message>
+        <source>ID illegally masks global JavaScript property</source>
+        <translation>id masque illégalement la propriété JavaScript globale</translation>
+    </message>
+    <message>
+        <source></source>
+        <translation>L&apos;alias de propriété n&apos;a pas d&apos;emplacement</translation>
+    </message>
+    <message>
+        <source>Invalid alias reference. An alias reference must be specified as &lt;id&gt; or &lt;id&gt;.&lt;property&gt;</source>
+        <translation>Référence d&apos;alias invalide. Les références d&apos;alias doivent être spécifiées comme &lt;id&gt; ou &lt;id&gt;.&lt;property&gt;</translation>
+    </message>
+    <message>
+        <source>Invalid alias reference. Unable to find id &quot;%1&quot;</source>
+        <translation>Référence d&apos;alias invalide. Impossible de trouver l&apos;id &quot;%1&quot;</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativeComponent</name>
+    <message>
+        <source>Invalid empty URL</source>
+        <translation>URL vide invalide</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativeCompositeTypeManager</name>
+    <message>
+        <source>Resource %1 unavailable</source>
+        <translation>La ressource %1 n&apos;est pas disponible</translation>
+    </message>
+    <message>
+        <source>Namespace %1 cannot be used as a type</source>
+        <translation>L&apos;espace de noms %1 ne peut pas être utilisé comme un type</translation>
+    </message>
+    <message>
+        <source>%1 %2</source>
+        <translation>%1 %2</translation>
+    </message>
+    <message>
+        <source>Type %1 unavailable</source>
+        <translation>Le type %1 n&apos;est pas disponible</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativeConnections</name>
+    <message>
+        <source>Cannot assign to non-existent property &quot;%1&quot;</source>
+        <translation>Imposible d&apos;assigner à la propriété inexistante &quot;%1&quot;</translation>
+    </message>
+    <message>
+        <source>Connections: nested objects not allowed</source>
+        <translation>Connexions : les éléments imbriqués ne sont pas autorisés</translation>
+    </message>
+    <message>
+        <source>Connections: syntax error</source>
+        <translation>Connexions : erreur de syntaxe</translation>
+    </message>
+    <message>
+        <source>Connections: script expected</source>
+        <translation>Connexions : script attendu</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativeEngine</name>
+    <message>
+        <source>executeSql called outside transaction()</source>
+        <translation>executeSql a été appelé en dehors de transaction()</translation>
+    </message>
+    <message>
+        <source>Read-only Transaction</source>
+        <translation>Transaction en lecture seule</translation>
+    </message>
+    <message>
+        <source>Version mismatch: expected %1, found %2</source>
+        <translation>Version incompatible : %1 attendue, %2 trouvée</translation>
+    </message>
+    <message>
+        <source>SQL transaction failed</source>
+        <translation>la transaction SQL a échouée</translation>
+    </message>
+    <message>
+        <source>transaction: missing callback</source>
+        <translation>transaction : la fonction de rappel est absente</translation>
+    </message>
+    <message>
+        <source>SQL: database version mismatch</source>
+        <translation>SQL : la version de la base de données est incompatible</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativeFlipable</name>
+    <message>
+        <source>front is a write-once property</source>
+        <translation>front est une propriété à écriture unique</translation>
+    </message>
+    <message>
+        <source>back is a write-once property</source>
+        <translation>back est une propriété à écriture unique</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativeImportDatabase</name>
+    <message>
+        <source>module &quot;%1&quot; definition &quot;%2&quot; not readable</source>
+        <translation>la définition &quot;%2&quot; du module &quot;%1% n&apos;est pas lisible</translation>
+    </message>
+    <message>
+        <source>plugin cannot be loaded for module &quot;%1&quot;: %2</source>
+        <translation>impossible de charger le plugin pour le module &quot;%1&quot; : %2</translation>
+    </message>
+    <message>
+        <source>module &quot;%1&quot; plugin &quot;%2&quot; not found</source>
+        <translation>le plugin &quot;%2&quot; du module &quot;%1&quot; n&apos;a pas été trouvé</translation>
+    </message>
+    <message>
+        <source>module &quot;%1&quot; version %2.%3 is not installed</source>
+        <translation>la version %2.%3 du module &quot;%1&quot; n&apos;est pas installée</translation>
+    </message>
+    <message>
+        <source>module &quot;%1&quot; is not installed</source>
+        <translation>le module &quot;%1&quot; n&apos;est pas installé</translation>
+    </message>
+    <message>
+        <source>&quot;%1&quot;: no such directory</source>
+        <translation>&quot;%1&quot; : le répertoire n&apos;existe pas</translation>
+    </message>
+    <message>
+        <source>import &quot;%1&quot; has no qmldir and no namespace</source>
+        <translation>l&apos;importation &quot;%1&quot; n&apos;a pas de qmldir ni d&apos;espace de noms</translation>
+    </message>
+    <message>
+        <source>- %1 is not a namespace</source>
+        <translation>- %1 n&apos;est pas un espace de noms</translation>
+    </message>
+    <message>
+        <source>- nested namespaces not allowed</source>
+        <translation>- les espaces de noms imbriqués ne sont pas autorisés</translation>
+    </message>
+    <message>
+        <source>local directory</source>
+        <translation>répertoire local</translation>
+    </message>
+    <message>
+        <source>is ambiguous. Found in %1 and in %2</source>
+        <translation>est ambigu. Trouvé dans %1 et dans %2</translation>
+    </message>
+    <message>
+        <source>is ambiguous. Found in %1 in version %2.%3 and %4.%5</source>
+        <translation>est ambigu. Trouvé dans %1 dans les versions %2.%3 et %4.%5</translation>
+    </message>
+    <message>
+        <source>is instantiated recursively</source>
+        <translation>est instancié récursivement</translation>
+    </message>
+    <message>
+        <source>is not a type</source>
+        <translation>n&apos;est pas un type</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativeKeyNavigationAttached</name>
+    <message>
+        <source>KeyNavigation is only available via attached properties</source>
+        <translation>KeyNavigation est disponible uniquement via les propriétés attachées</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativeKeysAttached</name>
+    <message>
+        <source>Keys is only available via attached properties</source>
+        <translatorcomment>Keys, a verifier</translatorcomment>
+        <translation>Keys est disponible uniquement via les propriétés attachées</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativeListModel</name>
+    <message>
+        <source>remove: index %1 out of range</source>
+        <translation>remove : l&apos;index %1 est hors de la plage de valeurs admissibles</translation>
+    </message>
+    <message>
+        <source>insert: value is not an object</source>
+        <translation>insert : une valeur n&apos;est pas un objet</translation>
+    </message>
+    <message>
+        <source>insert: index %1 out of range</source>
+        <translation>insert : l&apos;index %1 est hors de la plage de valeurs admissibles</translation>
+    </message>
+    <message>
+        <source>move: out of range</source>
+        <translation>move : hors de la plage de valeurs admissibles</translation>
+    </message>
+    <message>
+        <source>append: value is not an object</source>
+        <translation>append : une valeur n&apos;est pas un objet</translation>
+    </message>
+    <message>
+        <source>set: value is not an object</source>
+        <translation>set : une valeur n&apos;est pas un objet</translation>
+    </message>
+    <message>
+        <source>set: index %1 out of range</source>
+        <translation>set : l&apos;index %1 est hors de la plage de valeurs admissible</translation>
+    </message>
+    <message>
+        <source>ListElement: cannot contain nested elements</source>
+        <translation>ListElement : ne peut pas contenir des éléments imbriqués</translation>
+    </message>
+    <message>
+        <source>ListElement: cannot use reserved &quot;id&quot; property</source>
+        <translation>ListElement : ne peut pas utiliser la propriété réservée &quot;id&quot;</translation>
+    </message>
+    <message>
+        <source>ListElement: cannot use script for property value</source>
+        <translation>ListElement : ne peut pas utiliser script comme valeur pour une propriété</translation>
+    </message>
+    <message>
+        <source>ListModel: undefined property &apos;%1&apos;</source>
+        <translation>ListModel : propriété indéfinie &apos;%1&apos;</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativeLoader</name>
+    <message>
+        <source>Loader does not support loading non-visual elements.</source>
+        <translation>Le chargeur n&apos;est pas compatible avec le chargement d&apos;éléments non-visuels.</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativeParentAnimation</name>
+    <message>
+        <source>Unable to preserve appearance under complex transform</source>
+        <translation>Impossible de conserver l&apos;aspect lors d&apos;une transformation complexe</translation>
+    </message>
+    <message>
+        <source>Unable to preserve appearance under non-uniform scale</source>
+        <translation>Impossible de conserver l&apos;aspect lors d&apos;une mise à l&apos;échelle non uniforme</translation>
+    </message>
+    <message>
+        <source>Unable to preserve appearance under scale of 0</source>
+        <translation>Impossible de conserver l&apos;aspect lors d&apos;une mise à l&apos;échelle égale à 0</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativeParentChange</name>
+    <message>
+        <source>Unable to preserve appearance under complex transform</source>
+        <translation>Impossible de conserver l&apos;aspect lors d&apos;une transformation complexe</translation>
+    </message>
+    <message>
+        <source>Unable to preserve appearance under non-uniform scale</source>
+        <translation>Impossible de conserver l&apos;aspect lors d&apos;une mise à l&apos;échelle non uniforme</translation>
+    </message>
+    <message>
+        <source>Unable to preserve appearance under scale of 0</source>
+        <translation>Impossible de conserver l&apos;aspect lors d&apos;une mise à l&apos;échelle égale à 0</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativeParser</name>
+    <message>
+        <source>Illegal unicode escape sequence</source>
+        <translation>Séquence d&apos;échappement Unicode illégale</translation>
+    </message>
+    <message>
+        <source>Illegal character</source>
+        <translation>Caractère illégal</translation>
+    </message>
+    <message>
+        <source>Unclosed string at end of line</source>
+        <translation>Chaîne de caractères non fermée en fin de ligne</translation>
+    </message>
+    <message>
+        <source>Illegal escape squence</source>
+        <translation>Séquence d&apos;échappement illégale</translation>
+    </message>
+    <message>
+        <source>Unclosed comment at end of file</source>
+        <translation>Commentaire non fermé en fin de ligne</translation>
+    </message>
+    <message>
+        <source>Illegal syntax for exponential number</source>
+        <translation>Syntaxe illégale pour un nombre exponentiel</translation>
+    </message>
+    <message>
+        <source>Identifier cannot start with numeric literal</source>
+        <translation>Impossible de commencer un identifiant par un chiffre</translation>
+    </message>
+    <message>
+        <source>Unterminated regular expression literal</source>
+        <translation>Élément non terminé pour l&apos;expression régulière</translation>
+    </message>
+    <message>
+        <source>Invalid regular expression flag &apos;%0&apos;</source>
+        <translation>Drapeau &apos;%0&apos; invalid pour l&apos;expression régulière</translation>
+    </message>
+    <message>
+        <source>Unterminated regular expression backslash sequence</source>
+        <translation>Séquence antislash non terminée pour l&apos;expression régulière</translation>
+    </message>
+    <message>
+        <source>Unterminated regular expression class</source>
+        <translation>Classe non terminée pour l&apos;expression régulière</translation>
+    </message>
+    <message>
+        <source>Syntax error</source>
+        <translation>Erreur de syntaxe</translation>
+    </message>
+    <message>
+        <source>Unexpected token `%1&apos;</source>
+        <translation>jeton inattendu &apos;%1&apos;</translation>
+    </message>
+    <message>
+        <source>Expected token `%1&apos;</source>
+        <translation>jeton attendu &apos;%1&apos;</translation>
+    </message>
+    <message>
+        <source>Property value set multiple times</source>
+        <translation>valeur de propriété attribuée à plusieurs reprises</translation>
+    </message>
+    <message>
+        <source>Expected type name</source>
+        <translation>Nom de type attendu</translation>
+    </message>
+    <message>
+        <source>Invalid import qualifier ID</source>
+        <translation>qualificatif id d&apos;importation invalide</translation>
+    </message>
+    <message>
+        <source>Reserved name &quot;Qt&quot; cannot be used as an qualifier</source>
+        <translation>&quot;Qt&quot; est un nom réservé et ne peut pas être utilisé comme qualificatif</translation>
+    </message>
+    <message>
+        <source>Script import qualifiers must be unique.</source>
+        <translatorcomment>??</translatorcomment>
+        <translation>Les qualificatifs d&apos;importation de script doivent être uniques.</translation>
+    </message>
+    <message>
+        <source>Script import requires a qualifier</source>
+        <translation>L&apos;importation de script exige un qualificatif</translation>
+    </message>
+    <message>
+        <source>Library import requires a version</source>
+        <translation>L&apos;importation de bibliothèque exige une version</translation>
+    </message>
+    <message>
+        <source>Expected parameter type</source>
+        <translation>Type de paramètre attendu</translation>
+    </message>
+    <message>
+        <source>Invalid property type modifier</source>
+        <translation>Modificateur invalide pour le type de propriété</translation>
+    </message>
+    <message>
+        <source>Unexpected property type modifier</source>
+        <translation>Modificateur inattendu pour le type de propriété</translation>
+    </message>
+    <message>
+        <source>Expected property type</source>
+        <translation>Type de propriété attendu</translation>
+    </message>
+    <message>
+        <source>Readonly not yet supported</source>
+        <translation>La lecture seule n&apos;est pas encore implémentée</translation>
+    </message>
+    <message>
+        <source>JavaScript declaration outside Script element</source>
+        <translation>Déclaration JavaScript en dehors de l&apos;élément Script</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativePauseAnimation</name>
+    <message>
+        <source>Cannot set a duration of &lt; 0</source>
+        <translation>Impossible d&apos;attribuer une durée &lt; 0</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativePixmap</name>
+    <message>
+        <source>Error decoding: %1: %2</source>
+        <translation>Erreur de décodage : %1 : %2</translation>
+    </message>
+    <message>
+        <source>Failed to get image from provider: %1</source>
+        <translation>Impossible d&apos;obtenir l&apos;image du fournisseur : %1</translation>
+    </message>
+    <message>
+        <source>Cannot open: %1</source>
+        <translation>Impossible d&apos;ouvrir : %1</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativePixmapCache</name>
+    <message>
+        <source>Error decoding: %1: %2</source>
+        <translation type="obsolete">Erreur de décodage : %1 : %2</translation>
+    </message>
+    <message>
+        <source>Failed to get image from provider: %1</source>
+        <translation type="obsolete">Impossible d&apos;obtenir l&apos;image du fournisseur : %1</translation>
+    </message>
+    <message>
+        <source>Cannot open: %1</source>
+        <translation type="obsolete">Impossible d&apos;ouvrir : %1</translation>
+    </message>
+    <message>
+        <source>Unknown Error loading %1</source>
+        <translation type="obsolete">Erreur de chargement inconnue : %1</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativePropertyAnimation</name>
+    <message>
+        <source>Cannot set a duration of &lt; 0</source>
+        <translation>Impossible d&apos;attribuer une durée &lt; 0</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativePropertyChanges</name>
+    <message>
+        <source>PropertyChanges does not support creating state-specific objects.</source>
+        <translation>PropertyChanges n&apos;est pas compatible avec la création d&apos;objets spécifiques à un état.</translation>
+    </message>
+    <message>
+        <source>Cannot assign to non-existent property &quot;%1&quot;</source>
+        <translation>Ne peut pas assigner à la propriété inexistante &quot;%1&quot;</translation>
+    </message>
+    <message>
+        <source>Cannot assign to read-only property &quot;%1&quot;</source>
+        <translation>Ne peut pas assigner à la propriété en lecture seule &quot;%1&quot;</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativeTextInput</name>
+    <message>
+        <source>Could not load cursor delegate</source>
+        <translation>Impossible de charger le délégué de curseur</translation>
+    </message>
+    <message>
+        <source>Could not instantiate cursor delegate</source>
+        <translation>Impossible d&apos;instancier le délégué de curseur</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativeVME</name>
+    <message>
+        <source>Unable to create object of type %1</source>
+        <translation>Impossible de créer un objet de type %1</translation>
+    </message>
+    <message>
+        <source>Cannot assign value %1 to property %2</source>
+        <translation>Impossible d&apos;assigner la valeur %1 à la propriété %2</translation>
+    </message>
+    <message>
+        <source>Cannot assign object type %1 with no default method</source>
+        <translation>Impossible d&apos;assigner un objet de type %1 sans méthode par défaut</translation>
+    </message>
+    <message>
+        <source>Cannot connect mismatched signal/slot %1 %vs. %2</source>
+        <translatorcomment>le vs a confirmer</translatorcomment>
+        <translation>Impossible de connecter le signal/slot %1 %vs. %2 pour cause d&apos;incompatibilité</translation>
+    </message>
+    <message>
+        <source>Cannot assign an object to signal property %1</source>
+        <translation>Impossible d&apos;assigner un objet à la propriété %1 d&apos;un signal</translation>
+    </message>
+    <message>
+        <source>Cannot assign object to list</source>
+        <translation>Impossible d&apos;assigner un objet à une liste</translation>
+    </message>
+    <message>
+        <source>Cannot assign object to interface property</source>
+        <translation>Impossible d&apos;assigner un objet à la propriété d&apos;une interface</translation>
+    </message>
+    <message>
+        <source>Unable to create attached object</source>
+        <translation>Impossible de créer un objet attaché</translation>
+    </message>
+    <message>
+        <source>Cannot set properties on %1 as it is null</source>
+        <translation>Impossible d&apos;attribuer les propriétés à %1 car ce dernier est nul</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativeVisualDataModel</name>
+    <message>
+        <source>Delegate component must be Item type.</source>
+        <translation>Un composant délégué doit être de type Item.</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativeXmlListModel</name>
+    <message>
+        <source>Qt was built without support for xmlpatterns</source>
+        <translation>Qt a été compilé sans support pour xmlpatterns</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativeXmlListModelRole</name>
+    <message>
+        <source>An XmlRole query must not start with &apos;/&apos;</source>
+        <translation>Une requête XmlRole ne doit pas commencer par &apos;/&apos;</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativeXmlRoleList</name>
+    <message>
+        <source>An XmlListModel query must start with &apos;/&apos; or &quot;//&quot;</source>
+        <translation>Une requête XmlListModel doit commencer par &apos;/&apos; ou &quot;//&quot;</translation>
+    </message>
+</context>
+<context>
     <name>QDial</name>
     <message>
         <source>QDial</source>
@@ -1188,7 +2456,7 @@
     </message>
     <message>
         <source>SliderHandle</source>
-        <translation>Poignée</translation>
+        <translation>Poignée du slider</translation>
     </message>
 </context>
 <context>
@@ -1312,13 +2580,11 @@
         <translation>Taille</translation>
     </message>
     <message>
-        <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+457"/>
         <source>Kind</source>
         <comment>Match OS X Finder</comment>
         <translation>Type</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Type</source>
         <comment>All other platforms</comment>
         <translation>Type</translation>
@@ -1329,11 +2595,11 @@
     </message>
     <message>
         <source>Kind</source>
-        <translation>Type</translation>
+        <translation type="obsolete">Type</translation>
     </message>
     <message>
         <source>Type</source>
-        <translation>Type</translation>
+        <translation type="obsolete">Type</translation>
     </message>
 </context>
 <context>
@@ -1374,15 +2640,15 @@
     </message>
     <message>
         <source>Debug Message:</source>
-        <translation>Message de débogage:</translation>
+        <translation>Message de débogage : </translation>
     </message>
     <message>
         <source>Warning:</source>
-        <translation>Avertissement:</translation>
+        <translation>Avertissement : </translation>
     </message>
     <message>
         <source>Fatal Error:</source>
-        <translation>Erreur fatale:</translation>
+        <translation>Erreur fatale : </translation>
     </message>
 </context>
 <context>
@@ -1413,7 +2679,7 @@
     </message>
     <message>
         <source>Will not rename sequential file using block copy</source>
-        <translation>Ne renommera pas le fichier séquentiel avec la copie bloc</translation>
+        <translation>Ne renommera pas le fichier séquentiel avec la copie par blocs</translation>
     </message>
 </context>
 <context>
@@ -1489,11 +2755,11 @@
     </message>
     <message>
         <source>Files of type:</source>
-        <translation>Fichiers de type :</translation>
+        <translation>Fichiers de type : </translation>
     </message>
     <message>
         <source>Directory:</source>
-        <translation>Dossier :</translation>
+        <translation>Dossier : </translation>
     </message>
     <message>
         <source>
@@ -1519,7 +2785,7 @@
     </message>
     <message>
         <source>Are sure you want to delete &apos;%1&apos;?</source>
-        <translation>Etes-vous sûr de vouloir supprimer &apos;%1&apos; ?</translation>
+        <translation>Êtes-vous sûr de vouloir supprimer &apos;%1&apos; ?</translation>
     </message>
     <message>
         <source>Could not delete directory.</source>
@@ -1542,6 +2808,26 @@
         <translation>Fichier</translation>
     </message>
     <message>
+        <source>File Folder</source>
+        <comment>Match Windows Explorer</comment>
+        <translation>Fichier Dossier</translation>
+    </message>
+    <message>
+        <source>Folder</source>
+        <comment>All other platforms</comment>
+        <translation>Dossier</translation>
+    </message>
+    <message>
+        <source>Alias</source>
+        <comment>Mac OS X Finder</comment>
+        <translation>Alias</translation>
+    </message>
+    <message>
+        <source>Shortcut</source>
+        <comment>All other platforms</comment>
+        <translation>Raccourci</translation>
+    </message>
+    <message>
         <source>Unknown</source>
         <translation>Inconnu</translation>
     </message>
@@ -1551,7 +2837,7 @@
     </message>
     <message>
         <source>Show </source>
-        <translation>Montrer </translation>
+        <translation>Afficher</translation>
     </message>
     <message>
         <source>Forward</source>
@@ -1575,11 +2861,11 @@
     </message>
     <message>
         <source>File &amp;name:</source>
-        <translation>&amp;Nom de fichier :</translation>
+        <translation>&amp;Nom de fichier : </translation>
     </message>
     <message>
         <source>Look in:</source>
-        <translation>Voir dans:</translation>
+        <translation>Voir dans : </translation>
     </message>
     <message>
         <source>Create New Folder</source>
@@ -1587,19 +2873,43 @@
     </message>
     <message>
         <source>File Folder</source>
-        <translation>Fichier Dossier</translation>
+        <translation type="obsolete">Fichier Dossier</translation>
     </message>
     <message>
         <source>Folder</source>
-        <translation>Dossier</translation>
+        <translation type="obsolete">Dossier</translation>
     </message>
     <message>
         <source>Alias</source>
-        <translation>Alias</translation>
+        <translation type="obsolete">Alias</translation>
     </message>
     <message>
         <source>Shortcut</source>
-        <translation>Raccourci</translation>
+        <translation type="obsolete">Raccourci</translation>
+    </message>
+    <message>
+        <source>Go back</source>
+        <translation>Précédent</translation>
+    </message>
+    <message>
+        <source>Go forward</source>
+        <translation>Suivant</translation>
+    </message>
+    <message>
+        <source>Go to the parent directory</source>
+        <translation>Dossier parent</translation>
+    </message>
+    <message>
+        <source>Create a New Folder</source>
+        <translation>Créer un nouveau dossier</translation>
+    </message>
+    <message>
+        <source>Change to list view mode</source>
+        <translation>Affichage liste</translation>
+    </message>
+    <message>
+        <source>Change to detail view mode</source>
+        <translation>Affichage détaillé</translation>
     </message>
 </context>
 <context>
@@ -1641,13 +2951,11 @@
         <translation>Taille</translation>
     </message>
     <message>
-        <location filename="../src/gui/dialogs/qfilesystemmodel.cpp" line="+898"/>
         <source>Kind</source>
         <comment>Match OS X Finder</comment>
         <translation>Type</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Type</source>
         <comment>All other platforms</comment>
         <translation>Type</translation>
@@ -1658,7 +2966,7 @@
     </message>
     <message>
         <source>My Computer</source>
-        <translation>Mon ordinateur</translation>
+        <translation>Poste de travail</translation>
     </message>
     <message>
         <source>Computer</source>
@@ -1666,11 +2974,11 @@
     </message>
     <message>
         <source>Kind</source>
-        <translation>Type</translation>
+        <translation type="obsolete">Type</translation>
     </message>
     <message>
         <source>Type</source>
-        <translation>Type</translation>
+        <translation type="obsolete">Type</translation>
     </message>
     <message>
         <source>%1 byte(s)</source>
@@ -1689,11 +2997,11 @@
     </message>
     <message>
         <source>Demi Bold</source>
-        <translation>Semi Gras</translation>
+        <translation>Demi-gras</translation>
     </message>
     <message>
         <source>Black</source>
-        <translation>Noir</translation>
+        <translation>Extra-gras</translation>
     </message>
     <message>
         <source>Demi</source>
@@ -1701,7 +3009,7 @@
     </message>
     <message>
         <source>Light</source>
-        <translation>Léger</translation>
+        <translation>Maigre</translation>
     </message>
     <message>
         <source>Italic</source>
@@ -1745,11 +3053,11 @@
     </message>
     <message>
         <source>Thaana</source>
-        <translation>Thaana</translation>
+        <translation>Thâna</translation>
     </message>
     <message>
         <source>Devanagari</source>
-        <translation>Devanagari</translation>
+        <translation>Dévanagari</translation>
     </message>
     <message>
         <source>Bengali</source>
@@ -1769,7 +3077,7 @@
     </message>
     <message>
         <source>Tamil</source>
-        <translation>Tamil</translation>
+        <translation>Tamoul</translation>
     </message>
     <message>
         <source>Telugu</source>
@@ -1909,11 +3217,11 @@
     </message>
     <message>
         <source>Connection to %1 closed</source>
-        <translation>Connexion à %1 arrêtée</translation>
+        <translation>Connexion à %1 fermée</translation>
     </message>
     <message>
         <source>Connection closed</source>
-        <translation>Connexion arrêtée</translation>
+        <translation>Connexion fermée</translation>
     </message>
     <message>
         <source>Host %1 not found</source>
@@ -1940,7 +3248,7 @@
     <message>
         <source>Login failed:
 %1</source>
-        <translation>Échec du login:
+        <translation>Échec du login :
 %1</translation>
     </message>
     <message>
@@ -1995,11 +3303,22 @@
     </message>
 </context>
 <context>
+    <name>QGstreamerPlayerSession</name>
+    <message>
+        <source>Unable to play %1</source>
+        <translation>Impossible de lire %1</translation>
+    </message>
+</context>
+<context>
     <name>QHostInfo</name>
     <message>
         <source>Unknown error</source>
         <translation>Erreur inconnue</translation>
     </message>
+    <message>
+        <source>No host name given</source>
+        <translation>Aucun nom d&apos;hôte n&apos;a été donné</translation>
+    </message>
 </context>
 <context>
     <name>QHostInfoAgent</name>
@@ -2021,7 +3340,7 @@
     </message>
     <message>
         <source>Invalid hostname</source>
-        <translation>Nom d&apos;hôte non valide</translation>
+        <translation>Nom d&apos;hôte invalide</translation>
     </message>
 </context>
 <context>
@@ -2060,11 +3379,11 @@
     </message>
     <message>
         <source>Connection to %1 closed</source>
-        <translation>Connexion à %1 arrêtée</translation>
+        <translation>Connexion à %1 fermée</translation>
     </message>
     <message>
         <source>Connection closed</source>
-        <translation>Connexion arrêtée</translation>
+        <translation>Connexion fermée</translation>
     </message>
     <message>
         <source>Unknown error</source>
@@ -2124,7 +3443,7 @@
     </message>
     <message>
         <source>SSL handshake failed</source>
-        <translation>le handshake SSL a échoué</translation>
+        <translation>La poignée de main SSL a échoué</translation>
     </message>
     <message>
         <source>Connection refused (or timed out)</source>
@@ -2151,7 +3470,7 @@
     </message>
     <message>
         <source>Proxy denied connection</source>
-        <translation>Le Proxy a rejeté la connexion</translation>
+        <translation>Le proxy a rejeté la connexion</translation>
     </message>
     <message>
         <source>Error communicating with HTTP proxy</source>
@@ -2268,7 +3587,7 @@
     <name>QIODevice</name>
     <message>
         <source>Permission denied</source>
-        <translation>Accès refusé</translation>
+        <translation>Autorisation refusée</translation>
     </message>
     <message>
         <source>Too many open files</source>
@@ -2318,22 +3637,22 @@
     <name>QInputDialog</name>
     <message>
         <source>Enter a value:</source>
-        <translation>Entrer une valeur :</translation>
+        <translation>Entrer une valeur : </translation>
     </message>
 </context>
 <context>
     <name>QLibrary</name>
     <message>
         <source>QLibrary::load_sys: Cannot load %1 (%2)</source>
-        <translation type="obsolete">QLibrary::load_sys: Impossible de charger %1 (%2)</translation>
+        <translation type="obsolete">QLibrary::load_sys : Impossible de charger %1 (%2)</translation>
     </message>
     <message>
         <source>QLibrary::unload_sys: Cannot unload %1 (%2)</source>
-        <translation type="obsolete">QLibrary::unload_sys: Impossible de décharger %1 (%2)</translation>
+        <translation type="obsolete">QLibrary::unload_sys : Impossible de décharger %1 (%2)</translation>
     </message>
     <message>
         <source>QLibrary::resolve_sys: Symbol &quot;%1&quot; undefined in %2 (%3)</source>
-        <translation type="obsolete">QLibrary::resolve_sys: Symbole &quot;%1&quot; non défini dans %2 (%3)</translation>
+        <translation type="obsolete">QLibrary::resolve_sys : Symbole &quot;%1&quot; non défini dans %2 (%3)</translation>
     </message>
     <message>
         <source>Could not mmap &apos;%1&apos;: %2</source>
@@ -2419,58 +3738,58 @@
     <name>QLocalServer</name>
     <message>
         <source>%1: Name error</source>
-        <translation>%1: Erreur de nom</translation>
+        <translation>%1 : Erreur de nom</translation>
     </message>
     <message>
         <source>%1: Permission denied</source>
-        <translation>%1: Permission refusée</translation>
+        <translation>%1 : Permission refusée</translation>
     </message>
     <message>
         <source>%1: Address in use</source>
-        <translation>%1: Address déjà utilisée</translation>
+        <translation>%1 : Address déjà utilisée</translation>
     </message>
     <message>
         <source>%1: Unknown error %2</source>
-        <translation>%1: Erreur inconnue %2</translation>
+        <translation>%1 : Erreur inconnue %2</translation>
     </message>
 </context>
 <context>
     <name>QLocalSocket</name>
     <message>
         <source>%1: Connection refused</source>
-        <translation>%1: Connexion refusée</translation>
+        <translation>%1 : Connexion refusée</translation>
     </message>
     <message>
         <source>%1: Remote closed</source>
-        <translation>%1: Connexion fermée</translation>
+        <translation>%1 : Connexion fermée</translation>
     </message>
     <message>
         <source>%1: Invalid name</source>
-        <translation>%1: Nom invalide</translation>
+        <translation>%1 : Nom invalide</translation>
     </message>
     <message>
         <source>%1: Socket access error</source>
-        <translation>%1: Erreur d&apos;accès au socket</translation>
+        <translation>%1 : Erreur d&apos;accès au socket</translation>
     </message>
     <message>
         <source>%1: Socket resource error</source>
-        <translation>%1: Erreur de ressource du socket</translation>
+        <translation>%1 : Erreur de ressource du socket</translation>
     </message>
     <message>
         <source>%1: Socket operation timed out</source>
-        <translation>%1: L&apos;opération socket a expiré</translation>
+        <translation>%1 : L&apos;opération socket a expiré</translation>
     </message>
     <message>
         <source>%1: Datagram too large</source>
-        <translation>%1: Datagramme trop grand</translation>
+        <translation>%1 : Datagramme trop grand</translation>
     </message>
     <message>
         <source>%1: Connection error</source>
-        <translation>%1: Erreur de connexion</translation>
+        <translation>%1 : Erreur de connexion</translation>
     </message>
     <message>
         <source>%1: The socket operation is not supported</source>
-        <translation>%1: L&apos;opération n&apos;est pas supportée</translation>
+        <translation>%1 : L&apos;opération n&apos;est pas supportée</translation>
     </message>
     <message>
         <source>%1: Unknown error</source>
@@ -2478,7 +3797,7 @@
     </message>
     <message>
         <source>%1: Unknown error %2</source>
-        <translation>%1: Erreur inconnue %2</translation>
+        <translation>%1 : Erreur inconnue %2</translation>
     </message>
 </context>
 <context>
@@ -2634,6 +3953,28 @@
     </message>
 </context>
 <context>
+    <name>QMediaPlayer</name>
+    <message>
+        <source>The QMediaPlayer object does not have a valid service</source>
+        <translation>Pas de service valide pour l&apos;objet QMediaPlayer</translation>
+    </message>
+</context>
+<context>
+    <name>QMediaPlaylist</name>
+    <message>
+        <source>Could not add items to read only playlist.</source>
+        <translation>Impossible d&apos;ajouter des éléments à une liste de lecture en lecture seule.</translation>
+    </message>
+    <message>
+        <source>Playlist format is not supported</source>
+        <translation>Le format de liste de lecture n&apos;est pas supporté</translation>
+    </message>
+    <message>
+        <source>The file could not be accessed.</source>
+        <translation>Impossible d&apos;accéder au fichier.</translation>
+    </message>
+</context>
+<context>
     <name>QMenu</name>
     <message>
         <source>Close</source>
@@ -2652,7 +3993,7 @@
     <name>QMenuBar</name>
     <message>
         <source>About</source>
-        <translation type="obsolete">A propos</translation>
+        <translation type="obsolete">À propos</translation>
     </message>
     <message>
         <source>Config</source>
@@ -2684,7 +4025,7 @@
     </message>
     <message>
         <source>About %1</source>
-        <translation type="obsolete">A propos de %1</translation>
+        <translation type="obsolete">À propos de %1</translation>
     </message>
     <message>
         <source>About Qt</source>
@@ -2723,7 +4064,7 @@
     </message>
     <message>
         <source>&lt;h3&gt;About Qt&lt;/h3&gt;%1&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 Qtopia Core.&lt;/p&gt;&lt;p&gt;Qt is a Trolltech 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;A propos de Qt&lt;/h3&gt;%1&lt;p&gt;Qt est un toolkit C++ pour le développement d&apos;applications multi-platformes.&lt;/p&gt;&lt;p&gt;Qt fournit la portabilité du code source pour MS&amp;nbsp;Windows, Mac&amp;nbsp;OS&amp;nbsp;X, Linux et toutes les variantes commerciales majeures d&apos;Unix. Qt est aussi disponible pour les systèmes embarqués sous le nom Qtopia Core.&lt;/p&gt;&lt;p&gt;Qt est un produit de Trolltech. &lt;a href=&quot;http://qt.nokia.com/&quot;&gt;qt.nokia.com&lt;/a&gt; for more information.&lt;/p&gt;</translation>
+        <translation type="obsolete">&lt;h3&gt;À propos de Qt&lt;/h3&gt;%1&lt;p&gt;Qt est un toolkit C++ pour le développement d&apos;applications multi-platformes.&lt;/p&gt;&lt;p&gt;Qt fournit la portabilité du code source pour MS&amp;nbsp;Windows, Mac&amp;nbsp;OS&amp;nbsp;X, Linux et toutes les variantes commerciales majeures d&apos;Unix. Qt est aussi disponible pour les systèmes embarqués sous le nom Qtopia Core.&lt;/p&gt;&lt;p&gt;Qt est un produit de Trolltech. &lt;a href=&quot;http : //qt.nokia.com/&quot;&gt;qt.nokia.com&lt;/a&gt; for more information.&lt;/p&gt;</translation>
     </message>
     <message>
         <source>Show Details...</source>
@@ -2734,21 +4075,20 @@
         <translation>Cacher les détails...</translation>
     </message>
     <message>
-        <location filename="../src/gui/dialogs/qmessagebox.cpp" line="+1693"/>
         <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) 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>&lt;h3&gt;À propos de Qt&lt;/h3&gt;&lt;p&gt;Ce programme utilise Qt version %1.&lt;/p&gt;&lt;p&gt;Qt est une bibliothèque logicielle C++ pour le développement d’applications multiplateformes.&lt;/p&gt;&lt;p&gt;Qt fournit une portabilité source unique pour MS&amp;nbsp;Windows, Mac&amp;nbsp;OS&amp;nbsp;X, Linux et les principales variantes commerciales d’Unix. Qt est également disponible pour appareils intégrés tels que Qt pour Embedded Linux et Qt pour Windows CE.&lt;/p&gt;&lt;p&gt;Il existe trois options de licence différentes conçues pour s’adapter aux besoins d’utilisateurs variés.&lt;/p&gt;&lt;p&gt;Qt concédée sous notre contrat de licence commerciale est destinée au développement de logiciels propriétaires/commerciaux dont vous ne souhaitez pas partager le code source avec des tiers ou qui ne peuvent se conformer aux termes de la LGPL GNU version 2.1 ou GPL GNU version 3.0.&lt;/p&gt;&lt;p&gt;Qt concédée sous la LGPL GNU version 2.1 est destinée au développement d’applications Qt (propriétaires ou libres) à condition que vous vous conformiez aux conditions générales de la LGPL GNU version 2.1.&lt;/p&gt;&lt;p&gt;Qt concédée sous la licence publique générale GNU version 3.0 est destinée au développement d’applications Qt lorsque vous souhaitez utiliser ces applications avec d’autres logiciels soumis aux termes de la GPL GNU version 3.0 ou lorsque vous acceptez les termes de la GPL GNU version 3.0.&lt;/p&gt;&lt;p&gt;Veuillez consulter&lt;a href=&quot;http://qt.nokia.com/products/licensing&quot;&gt;qt.nokia.com/products/licensing&lt;/a&gt; pour un aperçu des concessions de licences Qt.&lt;/p&gt;&lt;p&gt;Copyright (C) 2010 Nokia Corporation et/ou ses filiales.&lt;/p&gt;&lt;p&gt;Qt est un produit Nokia. Voir &lt;a href=&quot;http://qt.nokia.com/&quot;&gt;qt.nokia.com&lt;/a&gt; pour de plus amples informations.&lt;/p&gt;</translation>
+        <translation type="obsolete">&lt;h3&gt;À propos de Qt&lt;/h3&gt;&lt;p&gt;Ce programme utilise Qt version %1.&lt;/p&gt;&lt;p&gt;Qt est une bibliothèque logicielle C++ pour le développement d’applications multiplateformes.&lt;/p&gt;&lt;p&gt;Qt fournit une portabilité source unique pour MS&amp;nbsp;Windows, Mac&amp;nbsp;OS&amp;nbsp;X, Linux et les principales variantes commerciales d’Unix. Qt est également disponible pour appareils intégrés comme Qt pour Embedded Linux et Qt pour Windows CE.&lt;/p&gt;&lt;p&gt;Il existe trois options de licence différentes conçues pour s’adapter aux besoins d’utilisateurs variés.&lt;/p&gt;&lt;p&gt;Qt concédée sous notre contrat de licence commerciale est destinée au développement de logiciels propriétaires/commerciaux dont vous ne souhaitez pas partager le code source avec des tiers ou qui ne peuvent se conformer aux termes de la LGPL GNU version 2.1 ou GPL GNU version 3.0.&lt;/p&gt;&lt;p&gt;Qt concédée sous la LGPL GNU version 2.1 est destinée au développement d’applications Qt (propriétaires ou libres) à condition que vous vous conformiez aux conditions générales de la LGPL GNU version 2.1.&lt;/p&gt;&lt;p&gt;Qt concédée sous la licence publique générale GNU version 3.0 est destinée au développement d’applications Qt lorsque vous souhaitez utiliser ces applications avec d’autres logiciels soumis aux termes de la GPL GNU version 3.0 ou lorsque vous acceptez les termes de la GPL GNU version 3.0.&lt;/p&gt;&lt;p&gt;Veuillez consulter&lt;a href=&quot;http : //qt.nokia.com/products/licensing&quot;&gt;qt.nokia.com/products/licensing&lt;/a&gt; pour un aperçu des concessions de licences Qt.&lt;/p&gt;&lt;p&gt;Copyright (C) 2010 Nokia Corporation et/ou ses filiales.&lt;/p&gt;&lt;p&gt;Qt est un produit Nokia. Voir &lt;a href=&quot;http : //qt.nokia.com/&quot;&gt;qt.nokia.com&lt;/a&gt; pour de plus amples informations.&lt;/p&gt;</translation>
     </message>
     <message>
         <source>&lt;h3&gt;About Qt&lt;/h3&gt;%1&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 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;A propos de Qt&lt;/h3&gt;%1&lt;p&gt;Qt est un framework de développement d&apos;applications multi-plateforme.&lt;/p&gt;&lt;p&gt;Qt fournit la portabilité du code source surMS&amp;nbsp;Windows, Mac&amp;nbsp;OS&amp;nbsp;X, Linux, et toutes les variantes majeures d&apos;Unix. Qt est aussi disponible pour l&apos;embarqué avec Qt for Embedded Linux and Qt for Windows CE.&lt;/p&gt;&lt;p&gt;Qt est un produit de Nokia. Allez à &lt;a href=&quot;http://qt.nokia.com/&quot;&gt;qt.nokia.com&lt;/a&gt; pour plus d&apos;informations.&lt;/p&gt;</translation>
+        <translation type="obsolete">&lt;h3&gt;À propos de Qt&lt;/h3&gt;%1&lt;p&gt;Qt est un framework de développement d&apos;applications multi-plateforme.&lt;/p&gt;&lt;p&gt;Qt fournit la portabilité du code source surMS&amp;nbsp;Windows, Mac&amp;nbsp;OS&amp;nbsp;X, Linux, et toutes les variantes majeures d&apos;Unix. Qt est aussi disponible pour l&apos;embarqué avec Qt for Embedded Linux and Qt for Windows CE.&lt;/p&gt;&lt;p&gt;Qt est un produit de Nokia. Allez à &lt;a href=&quot;http : //qt.nokia.com/&quot;&gt;qt.nokia.com&lt;/a&gt; pour plus d&apos;informations.&lt;/p&gt;</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://qt.nokia.com/company/model/&quot;&gt;qt.nokia.com/company/model/&lt;/a&gt; for an overview of Qt licensing.&lt;/p&gt;</source>
-        <translation type="obsolete">&lt;p&gt;Ce programme utilise Qt Open Source Edition version %1.&lt;/p&gt;&lt;p&gt;Qt Open Source Edition est prévu pour le développement d&apos;applications Open Source. Vous devez avoir un license commerciale de Qt pour développer des applications propiétaires (Closed Source).&lt;/p&gt;&lt;p&gt;Vous pouvez aller sur &lt;a href=&quot;http://qt.nokia.com/company/model/&quot;&gt;qt.nokia.com/company/model/&lt;/a&gt; pour plus d&apos;informations sur les licenses Qt.&lt;/p&gt;</translation>
+        <translation type="obsolete">&lt;p&gt;Ce programme utilise Qt Open Source Edition version %1.&lt;/p&gt;&lt;p&gt;Qt Open Source Edition est prévu pour le développement d&apos;applications Open Source. Vous devez avoir un license commerciale de Qt pour développer des applications propiétaires (Closed Source).&lt;/p&gt;&lt;p&gt;Vous pouvez aller sur &lt;a href=&quot;http : //qt.nokia.com/company/model/&quot;&gt;qt.nokia.com/company/model/&lt;/a&gt; pour plus d&apos;informations sur les licenses Qt.&lt;/p&gt;</translation>
     </message>
     <message>
         <source>&lt;h3&gt;About Qt&lt;/h3&gt;%1&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 Embedded.&lt;/p&gt;&lt;p&gt;Qt is a Trolltech 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;A propos de Qt&lt;/h3&gt;%1&lt;p&gt;Qt est un toolkit C++ pour le développement d&apos;application multi-plateforme.&lt;/p&gt;&lt;p&gt;Qt fournit la portabilité de votre source pour MS&amp;nbsp;Windows, Mac&amp;nbsp;OS&amp;nbsp;X, Linux, toutes les variantes majeures d&apos;Unix. Qt est aussi disponible pour les périphériques embarqués avec Qt Embedded.&lt;/p&gt;&lt;p&gt;Qt est un produit de Trolltech. Voir &lt;a href=&quot;http://qt.nokia.com/&quot;&gt;qt.nokia.com&lt;/a&gt; pour plus d&apos;informations.&lt;/p&gt;</translation>
+        <translation type="obsolete">&lt;h3&gt;À propos de Qt&lt;/h3&gt;%1&lt;p&gt;Qt est un toolkit C++ pour le développement d&apos;application multi-plateforme.&lt;/p&gt;&lt;p&gt;Qt fournit la portabilité de votre source pour MS&amp;nbsp;Windows, Mac&amp;nbsp;OS&amp;nbsp;X, Linux, toutes les variantes majeures d&apos;Unix. Qt est aussi disponible pour les périphériques embarqués avec Qt Embedded.&lt;/p&gt;&lt;p&gt;Qt est un produit de Trolltech. Voir &lt;a href=&quot;http : //qt.nokia.com/&quot;&gt;qt.nokia.com&lt;/a&gt; pour plus d&apos;informations.&lt;/p&gt;</translation>
     </message>
     <message>
         <source>&lt;h3&gt;About Qt&lt;/h3&gt;&lt;p&gt;This program uses Qt version %1.&lt;/p&gt;</source>
@@ -2756,7 +4096,7 @@
     </message>
     <message>
         <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>&lt;p&gt;Qt est une bibliothèque logicielle C++ pour le développement d’applications multiplateformes.&lt;/p&gt;&lt;p&gt;Qt fournit une portabilité source unique pour MS&amp;nbsp;Windows, Mac&amp;nbsp;OS&amp;nbsp;X, Linux et les principales variantes commerciales d’Unix. Qt est également disponible pour appareils intégrés tels que Qt pour Embedded Linux et Qt pour Windows CE.&lt;/p&gt;&lt;p&gt;Il existe trois options de licence différentes conçues pour s’adapter aux besoins d’utilisateurs variés.&lt;/p&gt;&lt;p&gt;Qt concédée sous notre contrat de licence commerciale est destinée au développement de logiciels propriétaires/commerciaux dont vous ne souhaitez pas partager le code source avec des tiers ou qui ne peuvent se conformer aux termes de la LGPL GNU version 2.1 ou GPL GNU version 3.0.&lt;/p&gt;&lt;p&gt;Qt concédée sous la LGPL GNU version 2.1 est destinée au développement d’applications Qt (propriétaires ou libres) à condition que vous vous conformiez aux conditions générales de la LGPL GNU version 2.1.&lt;/p&gt;&lt;p&gt;Qt concédée sous la licence publique générale GNU version 3.0 est destinée au développement d’applications Qt lorsque vous souhaitez utiliser ces applications avec d’autres logiciels soumis aux termes de la GPL GNU version 3.0 ou lorsque vous acceptez les termes de la GPL GNU version 3.0.&lt;/p&gt;&lt;p&gt;Veuillez consulter&lt;a href=&quot;http://qt.nokia.com/products/licensing&quot;&gt;qt.nokia.com/products/licensing&lt;/a&gt; pour un aperçu des concessions de licences Qt.&lt;/p&gt;&lt;p&gt;Copyright (C) 2010 Nokia Corporation et/ou ses filiales.&lt;/p&gt;&lt;p&gt;Qt est un produit Nokia. Voir &lt;a href=&quot;http://qt.nokia.com/&quot;&gt;qt.nokia.com&lt;/a&gt; pour de plus amples informations.&lt;/p&gt;</translation>
+        <translation>&lt;p&gt;Qt est une bibliothèque logicielle C++ pour le développement d’applications multiplateformes.&lt;/p&gt;&lt;p&gt;Qt fournit une portabilité source unique pour MS&amp;nbsp;Windows, Mac&amp;nbsp;OS&amp;nbsp;X, Linux et les principales variantes commerciales d’Unix. Qt est également disponible pour appareils intégrés comme Qt pour Embedded Linux et Qt pour Windows CE.&lt;/p&gt;&lt;p&gt;Il existe trois options de licence différentes conçues pour s’adapter aux besoins d’utilisateurs variés.&lt;/p&gt;&lt;p&gt;Qt concédée sous notre contrat de licence commerciale est destinée au développement de logiciels propriétaires/commerciaux dont vous ne souhaitez pas partager le code source avec des tiers ou qui ne peuvent se conformer aux termes de la LGPL GNU version 2.1 ou GPL GNU version 3.0.&lt;/p&gt;&lt;p&gt;Qt concédée sous la LGPL GNU version 2.1 est destinée au développement d’applications Qt (propriétaires ou libres) à condition que vous vous conformiez aux conditions générales de la LGPL GNU version 2.1.&lt;/p&gt;&lt;p&gt;Qt concédée sous la licence publique générale GNU version 3.0 est destinée au développement d’applications Qt lorsque vous souhaitez utiliser ces applications avec d’autres logiciels soumis aux termes de la GPL GNU version 3.0 ou lorsque vous acceptez les termes de la GPL GNU version 3.0.&lt;/p&gt;&lt;p&gt;Veuillez consulter&lt;a href=&quot;http : //qt.nokia.com/products/licensing&quot;&gt;qt.nokia.com/products/licensing&lt;/a&gt; pour un aperçu des concessions de licences Qt.&lt;/p&gt;&lt;p&gt;Copyright (C) 2010 Nokia Corporation et/ou ses filiales.&lt;/p&gt;&lt;p&gt;Qt est un produit Nokia. Voir &lt;a href=&quot;http : //qt.nokia.com/&quot;&gt;qt.nokia.com&lt;/a&gt; pour de plus amples informations.&lt;/p&gt;</translation>
     </message>
 </context>
 <context>
@@ -2809,7 +4149,7 @@
     </message>
     <message>
         <source>Permission denied</source>
-        <translation>Accès refusé</translation>
+        <translation>Autorisation refusée</translation>
     </message>
     <message>
         <source>Connection timed out</source>
@@ -2892,6 +4232,32 @@
     </message>
 </context>
 <context>
+    <name>QNetworkAccessDataBackend</name>
+    <message>
+        <source>Operation not supported on %1</source>
+        <translation>Opération non supportée sur %1</translation>
+    </message>
+    <message>
+        <source>Invalid URI: %1</source>
+        <translation>URI invalide : %1</translation>
+    </message>
+</context>
+<context>
+    <name>QNetworkAccessDebugPipeBackend</name>
+    <message>
+        <source>Write error writing to %1: %2</source>
+        <translation>Erreur lors de l&apos;écriture dans %1 : %2</translation>
+    </message>
+    <message>
+        <source>Socket error on %1: %2</source>
+        <translation>Erreur de socket sur %1 : %2</translation>
+    </message>
+    <message>
+        <source>Remote host closed the connection prematurely on %1</source>
+        <translation>L&apos;hôte distant a fermé sa connexion de façon prématurée sur %1</translation>
+    </message>
+</context>
+<context>
     <name>QNetworkAccessFileBackend</name>
     <message>
         <source>Request for opening non-local file %1</source>
@@ -2945,15 +4311,30 @@
     </message>
 </context>
 <context>
+    <name>QNetworkAccessManager</name>
+    <message>
+        <source>Network access is disabled.</source>
+        <translation>L&apos;accès au réseau est désactivé.</translation>
+    </message>
+</context>
+<context>
     <name>QNetworkReply</name>
     <message>
         <source>Error downloading %1 - server replied: %2</source>
-        <translation>Erreur lors du téléchargement de %1 - le serveur a répondu: %2</translation>
+        <translation>Erreur lors du téléchargement de %1 - le serveur a répondu : %2</translation>
     </message>
     <message>
         <source>Protocol &quot;%1&quot; is unknown</source>
         <translation>Le protocole &quot;%1&quot; est inconnu</translation>
     </message>
+    <message>
+        <source>Network session error.</source>
+        <translation>Erreur de session réseau.</translation>
+    </message>
+    <message>
+        <source>Temporary network failure.</source>
+        <translation>Erreur réseau temporaire.</translation>
+    </message>
 </context>
 <context>
     <name>QNetworkReplyImpl</name>
@@ -2963,13 +4344,54 @@
     </message>
 </context>
 <context>
+    <name>QNetworkSession</name>
+    <message>
+        <source>Invalid configuration.</source>
+        <translation>Configuration invalide.</translation>
+    </message>
+</context>
+<context>
+    <name>QNetworkSessionPrivateImpl</name>
+    <message>
+        <source>Roaming error</source>
+        <translation>Erreur de roaming</translation>
+    </message>
+    <message>
+        <source>Session aborted by user or system</source>
+        <translation>Session annulée par l&apos;utilisateur ou le système</translation>
+    </message>
+    <message>
+        <source>Unidentified Error</source>
+        <translation>Erreur inconnue</translation>
+    </message>
+    <message>
+        <source>Unknown session error.</source>
+        <translation>Erreur de session inconnue.</translation>
+    </message>
+    <message>
+        <source>The session was aborted by the user or system.</source>
+        <translation>la session a été annulée par l&apos;utilisateur ou le système.</translation>
+    </message>
+    <message>
+        <source>The requested operation is not supported by the system.</source>
+        <translation>L&apos;opération requise n&apos;est pas suportée par le système.</translation>
+    </message>
+    <message>
+        <source>The specified configuration cannot be used.</source>
+        <translation>La configuration spécifiée ne peut être utilisée.</translation>
+    </message>
+    <message>
+        <source>Roaming was aborted or is not possible.</source>
+        <translation>Le roaming a été annulé ou est impossible.</translation>
+    </message>
+</context>
+<context>
     <name>QOCIDriver</name>
     <message>
         <source>Unable to logon</source>
         <translation>Impossible d&apos;ouvrir une session</translation>
     </message>
     <message>
-        <location filename="../src/sql/drivers/oci/qsql_oci.cpp" line="+1925"/>
         <source>Unable to initialize</source>
         <comment>QOCIDriver</comment>
         <translation>L&apos;initialisation a échoué</translation>
@@ -2988,7 +4410,7 @@
     </message>
     <message>
         <source>Unable to initialize</source>
-        <translation>L&apos;initialisation a échoué</translation>
+        <translation type="obsolete">L&apos;initialisation a échoué</translation>
     </message>
 </context>
 <context>
@@ -3037,9 +4459,8 @@
         <translation>Incapable d&apos;établir une connexion</translation>
     </message>
     <message>
-        <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="+1791"/>
         <source>Unable to connect - Driver doesn&apos;t support all needed functionality</source>
-        <translation>Impossible de se connecter - Le pilote ne supporte pas toutes les fonctionnalités nécessaires</translation>
+        <translation type="obsolete">Impossible de se connecter - Le pilote ne supporte pas toutes les fonctionnalités nécessaires</translation>
     </message>
     <message>
         <source>Unable to disable autocommit</source>
@@ -3066,7 +4487,7 @@
     <name>QODBCResult</name>
     <message>
         <source>QODBCResult::reset: Unable to set &apos;SQL_CURSOR_STATIC&apos; as statement attribute. Please check your ODBC driver configuration</source>
-        <translation>QODBCResult::reset: Impossible d&apos;utiliser &apos;SQL_CURSOR_STATIC&apos; comme attribut de requête. Veuillez vérifier la configuration de votre pilote ODBC</translation>
+        <translation>QODBCResult::reset : Impossible d&apos;utiliser &apos;SQL_CURSOR_STATIC&apos; comme attribut de requête. Veuillez vérifier la configuration de votre pilote ODBC</translation>
     </message>
     <message>
         <source>Unable to execute statement</source>
@@ -3104,48 +4525,56 @@
 <context>
     <name>QObject</name>
     <message>
-        <location filename="../src/gui/util/qdesktopservices_mac.cpp" line="+165"/>
         <source>Home</source>
-        <translation>Début</translation>
+        <translation type="obsolete">Début</translation>
     </message>
     <message>
         <source>Operation not supported on %1</source>
-        <translation>Opération non supportée sur %1</translation>
+        <translation type="obsolete">Opération non supportée sur %1</translation>
     </message>
     <message>
         <source>Invalid URI: %1</source>
-        <translation>URI invalide : %1</translation>
-    </message>
-    <message>
-        <location filename="../src/network/access/qnetworkaccessdebugpipebackend.cpp" line="+175"/>
+        <translation type="obsolete">URI invalide : %1</translation>
+    </message>
+    <message>
         <source>Write error writing to %1: %2</source>
-        <translation>Erreur d&apos;écriture sur %1 : %2</translation>
-    </message>
-    <message>
-        <location line="+57"/>
+        <translation type="obsolete">Erreur d&apos;écriture sur %1 : %2</translation>
+    </message>
+    <message>
         <source>Read error reading from %1: %2</source>
-        <translation>Erreur de lecture sur %1 : %2</translation>
+        <translation type="obsolete">Erreur de lecture sur %1 : %2</translation>
     </message>
     <message>
         <source>Socket error on %1: %2</source>
-        <translation>Erreur de socket sur %1 : %2</translation>
+        <translation type="obsolete">Erreur de socket sur %1 : %2</translation>
     </message>
     <message>
         <source>Remote host closed the connection prematurely on %1</source>
-        <translation>L&apos;hôte distant a fermé sa connexion de façon prématurée sur %1</translation>
-    </message>
-    <message>
-        <location line="+99"/>
+        <translation type="obsolete">L&apos;hôte distant a fermé sa connexion de façon prématurée sur %1</translation>
+    </message>
+    <message>
         <source>Protocol error: packet of size 0 received</source>
-        <translation>Erreur de protocole: paquet de taille 0 reçu</translation>
+        <translation type="obsolete">Erreur de protocole : paquet de taille 0 reçu</translation>
     </message>
     <message>
         <source>No host name given</source>
-        <translation>Nom d&apos;hôte manquant</translation>
+        <translation type="obsolete">Nom d&apos;hôte manquant</translation>
     </message>
     <message>
         <source>Invalid hostname</source>
-        <translation>Nom d&apos;hôte non valide</translation>
+        <translation type="obsolete">Nom d&apos;hôte invalide</translation>
+    </message>
+    <message>
+        <source>PulseAudio Sound Server</source>
+        <translation>Serveur de son PulseAudio</translation>
+    </message>
+    <message>
+        <source>&quot;%1&quot; duplicates a previous role name and will be disabled.</source>
+        <translation>&quot;%1&quot; est un doublon d&apos;un nom de role existant et sera désactivé.</translation>
+    </message>
+    <message>
+        <source>invalid query: &quot;%1&quot;</source>
+        <translation>Requête invalide : &quot;%1&quot;</translation>
     </message>
 </context>
 <context>
@@ -3225,19 +4654,19 @@
     </message>
     <message>
         <source>Page size:</source>
-        <translation>Dimensions :</translation>
+        <translation>Dimensions : </translation>
     </message>
     <message>
         <source>Width:</source>
-        <translation>Largeur :</translation>
+        <translation>Largeur : </translation>
     </message>
     <message>
         <source>Height:</source>
-        <translation>Hauteur :</translation>
+        <translation>Hauteur : </translation>
     </message>
     <message>
         <source>Paper source:</source>
-        <translation>Source du papier :</translation>
+        <translation>Source du papier : </translation>
     </message>
     <message>
         <source>Orientation</source>
@@ -3327,7 +4756,7 @@
     </message>
     <message>
         <source>Number of copies:</source>
-        <translation type="obsolete">Nombre de copies :</translation>
+        <translation type="obsolete">Nombre de copies : </translation>
     </message>
     <message>
         <source>Paper format</source>
@@ -3442,6 +4871,10 @@
         <translation>US Common #10 Envelope (105 x 241 mm)</translation>
     </message>
     <message>
+        <source>Print current page</source>
+        <translation>Imprimer la page courante</translation>
+    </message>
+    <message>
         <source>Aliases: %1</source>
         <translation>Alias : %1</translation>
     </message>
@@ -3471,19 +4904,19 @@
     </message>
     <message>
         <source>Page size:</source>
-        <translation type="obsolete">Dimensions :</translation>
+        <translation type="obsolete">Dimensions : </translation>
     </message>
     <message>
         <source>Orientation:</source>
-        <translation type="obsolete">Orientation :</translation>
+        <translation type="obsolete">Orientation : </translation>
     </message>
     <message>
         <source>Paper source:</source>
-        <translation type="obsolete">Source du papier :</translation>
+        <translation type="obsolete">Source du papier : </translation>
     </message>
     <message>
         <source>Print</source>
-        <translation>Impr écran</translation>
+        <translation>Imprimer</translation>
     </message>
     <message>
         <source>File</source>
@@ -3503,7 +4936,7 @@
     </message>
     <message>
         <source>Size:</source>
-        <translation type="obsolete">Taille :</translation>
+        <translation type="obsolete">Taille : </translation>
     </message>
     <message>
         <source>Properties</source>
@@ -3511,7 +4944,7 @@
     </message>
     <message>
         <source>Printer info:</source>
-        <translation type="obsolete">Informations sur l&apos;imprimante :</translation>
+        <translation type="obsolete">Informations sur l&apos;imprimante : </translation>
     </message>
     <message>
         <source>Browse</source>
@@ -3796,11 +5229,11 @@
     </message>
     <message>
         <source>Print</source>
-        <translation>Impr écran</translation>
+        <translation>Imprimer</translation>
     </message>
     <message>
         <source>Page setup</source>
-        <translation>Configuration de la page</translation>
+        <translation>Mise en page</translation>
     </message>
     <message>
         <source>Close</source>
@@ -3816,7 +5249,7 @@
     </message>
     <message>
         <source>Page Setup</source>
-        <translation>Configuration de la page</translation>
+        <translation>Mise en page</translation>
     </message>
 </context>
 <context>
@@ -3885,7 +5318,7 @@
     </message>
     <message>
         <source>Copies:</source>
-        <translation>Copies :</translation>
+        <translation>Copies : </translation>
     </message>
     <message>
         <source>Collate</source>
@@ -3927,6 +5360,10 @@
         <source>Short side</source>
         <translation>Côté court</translation>
     </message>
+    <message>
+        <source>Current Page</source>
+        <translation>Page courante</translation>
+    </message>
 </context>
 <context>
     <name>QPrintWidget</name>
@@ -3940,7 +5377,7 @@
     </message>
     <message>
         <source>&amp;Name:</source>
-        <translation>&amp;Nom :</translation>
+        <translation>&amp;Nom : </translation>
     </message>
     <message>
         <source>P&amp;roperties</source>
@@ -3948,7 +5385,7 @@
     </message>
     <message>
         <source>Location:</source>
-        <translation>Emplacement :</translation>
+        <translation>Emplacement : </translation>
     </message>
     <message>
         <source>Preview</source>
@@ -3956,11 +5393,11 @@
     </message>
     <message>
         <source>Type:</source>
-        <translation>Type :</translation>
+        <translation>Type : </translation>
     </message>
     <message>
         <source>Output &amp;file:</source>
-        <translation>&amp;Fichier de sortie:</translation>
+        <translation>&amp;Fichier de sortie : </translation>
     </message>
     <message>
         <source>...</source>
@@ -4002,13 +5439,12 @@
         <translation>Aucun programme défini</translation>
     </message>
     <message>
-        <location filename="../src/corelib/io/qprocess_win.cpp" line="+464"/>
         <source>Process failed to start</source>
-        <translation>Le processus n&apos;a pas démarré</translation>
+        <translation type="obsolete">Le processus n&apos;a pas démarré</translation>
     </message>
     <message>
         <source>Process failed to start: %1</source>
-        <translation>Le démarrage du processus a échoué: %1</translation>
+        <translation>Le démarrage du processus a échoué : %1</translation>
     </message>
 </context>
 <context>
@@ -4072,19 +5508,18 @@
     </message>
     <message>
         <source>invalid interval</source>
-        <translation>intervalle non valide</translation>
+        <translation>intervalle invalide</translation>
     </message>
     <message>
         <source>invalid category</source>
-        <translation>catégorie non valide</translation>
+        <translation>catégorie invalide</translation>
     </message>
 </context>
 <context>
     <name>QSQLite2Driver</name>
     <message>
-        <location filename="../src/sql/drivers/sqlite2/qsql_sqlite2.cpp" line="+396"/>
         <source>Error to open database</source>
-        <translation>Erreur à l&apos;ouverture de la base de données</translation>
+        <translation type="obsolete">Erreur à l&apos;ouverture de la base de données</translation>
     </message>
     <message>
         <source>Unable to begin transaction</source>
@@ -4095,9 +5530,8 @@
         <translation>Impossible de soumettre la transaction</translation>
     </message>
     <message>
-        <location line="+75"/>
         <source>Unable to rollback Transaction</source>
-        <translation>Impossible d&apos;annuler la transaction</translation>
+        <translation type="obsolete">Impossible d&apos;annuler la transaction</translation>
     </message>
     <message>
         <source>Error opening database</source>
@@ -4174,6 +5608,281 @@
     </message>
 </context>
 <context>
+    <name>QScriptBreakpointsModel</name>
+    <message>
+        <source>ID</source>
+        <translation>Identifiant</translation>
+    </message>
+    <message>
+        <source>Location</source>
+        <translation>Lieu</translation>
+    </message>
+    <message>
+        <source>Condition</source>
+        <translation>Condition</translation>
+    </message>
+    <message>
+        <source>Ignore-count</source>
+        <translation>Nombre d&apos;ignorés</translation>
+    </message>
+    <message>
+        <source>Single-shot</source>
+        <translation>Un seul coup</translation>
+    </message>
+    <message>
+        <source>Hit-count</source>
+        <translation>Nombre de coups</translation>
+    </message>
+</context>
+<context>
+    <name>QScriptBreakpointsWidget</name>
+    <message>
+        <source>New</source>
+        <translation>Créer</translation>
+    </message>
+    <message>
+        <source>Delete</source>
+        <translation>Supprimer</translation>
+    </message>
+</context>
+<context>
+    <name>QScriptDebugger</name>
+    <message>
+        <source>Go to Line</source>
+        <translation>Aller à la ligne</translation>
+    </message>
+    <message>
+        <source>Line:</source>
+        <translation>Ligne : </translation>
+    </message>
+    <message>
+        <source>Interrupt</source>
+        <translation>Interrompre</translation>
+    </message>
+    <message>
+        <source>Shift+F5</source>
+        <translation>Shift+F5</translation>
+    </message>
+    <message>
+        <source>Continue</source>
+        <translation>Continuer</translation>
+    </message>
+    <message>
+        <source>F5</source>
+        <translation>F5</translation>
+    </message>
+    <message>
+        <source>Step Into</source>
+        <translation>Pas à pas détaillé</translation>
+    </message>
+    <message>
+        <source>F11</source>
+        <translation>F11</translation>
+    </message>
+    <message>
+        <source>Step Over</source>
+        <translation>Pas à pas principal</translation>
+    </message>
+    <message>
+        <source>F10</source>
+        <translation>F10</translation>
+    </message>
+    <message>
+        <source>Step Out</source>
+        <translation>Pas à pas sortant</translation>
+    </message>
+    <message>
+        <source>Shift+F11</source>
+        <translation>Shift+F11</translation>
+    </message>
+    <message>
+        <source>Run to Cursor</source>
+        <translation>Exécuter au curseur</translation>
+    </message>
+    <message>
+        <source>Ctrl+F10</source>
+        <translation>Ctrl+F10</translation>
+    </message>
+    <message>
+        <source>Run to New Script</source>
+        <translation>Exécuter au nouveau script</translation>
+    </message>
+    <message>
+        <source>Toggle Breakpoint</source>
+        <translation>Basculer le point d&apos;arrêt</translation>
+    </message>
+    <message>
+        <source>F9</source>
+        <translation>F9</translation>
+    </message>
+    <message>
+        <source>Clear Debug Output</source>
+        <translation>Effacer les résultats du débogage</translation>
+    </message>
+    <message>
+        <source>Clear Error Log</source>
+        <translation>Effacer le journal d&apos;erreurs</translation>
+    </message>
+    <message>
+        <source>Clear Console</source>
+        <translation>Effacer la console</translation>
+    </message>
+    <message>
+        <source>&amp;Find in Script...</source>
+        <translation>&amp;Chercher dans le script...</translation>
+    </message>
+    <message>
+        <source>Ctrl+F</source>
+        <translation>Ctrl+F</translation>
+    </message>
+    <message>
+        <source>Find &amp;Next</source>
+        <translation>Résultat &amp;suivant</translation>
+    </message>
+    <message>
+        <source>F3</source>
+        <translation>F3</translation>
+    </message>
+    <message>
+        <source>Find &amp;Previous</source>
+        <translation>Chercher &amp;précédent</translation>
+    </message>
+    <message>
+        <source>Shift+F3</source>
+        <translation>Shift+F3</translation>
+    </message>
+    <message>
+        <source>Ctrl+G</source>
+        <translation>Ctrl+G</translation>
+    </message>
+    <message>
+        <source>Debug</source>
+        <translation>Déboguer</translation>
+    </message>
+</context>
+<context>
+    <name>QScriptDebuggerCodeFinderWidget</name>
+    <message>
+        <source>Close</source>
+        <translation>Fermer</translation>
+    </message>
+    <message>
+        <source>Previous</source>
+        <translation>Précédent</translation>
+    </message>
+    <message>
+        <source>Next</source>
+        <translation>Suivant</translation>
+    </message>
+    <message>
+        <source>Case Sensitive</source>
+        <translation>Sensible à la casse</translation>
+    </message>
+    <message>
+        <source>Whole words</source>
+        <translation>Mots complets</translation>
+    </message>
+    <message>
+        <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;La recherche est revenue au début</translation>
+    </message>
+</context>
+<context>
+    <name>QScriptDebuggerLocalsModel</name>
+    <message>
+        <source>Name</source>
+        <translation>Nom</translation>
+    </message>
+    <message>
+        <source>Value</source>
+        <translation>Valeur</translation>
+    </message>
+</context>
+<context>
+    <name>QScriptDebuggerStackModel</name>
+    <message>
+        <source>Level</source>
+        <translation>Niveau</translation>
+    </message>
+    <message>
+        <source>Name</source>
+        <translation>Nom</translation>
+    </message>
+    <message>
+        <source>Location</source>
+        <translation>Emplacement</translation>
+    </message>
+</context>
+<context>
+    <name>QScriptEdit</name>
+    <message>
+        <source>Toggle Breakpoint</source>
+        <translation>Basculer le point d&apos;arrêt</translation>
+    </message>
+    <message>
+        <source>Disable Breakpoint</source>
+        <translation>Désactiver le point d&apos;arrêt</translation>
+    </message>
+    <message>
+        <source>Enable Breakpoint</source>
+        <translation>Activer le point d&apos;arrêt</translation>
+    </message>
+    <message>
+        <source>Breakpoint Condition:</source>
+        <translation>Condition du point d&apos;arrêt : </translation>
+    </message>
+</context>
+<context>
+    <name>QScriptEngineDebugger</name>
+    <message>
+        <source>Loaded Scripts</source>
+        <translation>Scripts chargés</translation>
+    </message>
+    <message>
+        <source>Breakpoints</source>
+        <translation>Points d&apos;arrêt</translation>
+    </message>
+    <message>
+        <source>Stack</source>
+        <translation>Pile</translation>
+    </message>
+    <message>
+        <source>Locals</source>
+        <translation>Locaux</translation>
+    </message>
+    <message>
+        <source>Console</source>
+        <translation>Console</translation>
+    </message>
+    <message>
+        <source>Debug Output</source>
+        <translation>Résultats du débogage</translation>
+    </message>
+    <message>
+        <source>Error Log</source>
+        <translation>Journal d&apos;erreurs</translation>
+    </message>
+    <message>
+        <source>Search</source>
+        <translation>Chercher</translation>
+    </message>
+    <message>
+        <source>View</source>
+        <translation>Affichage</translation>
+    </message>
+    <message>
+        <source>Qt Script Debugger</source>
+        <translation>Débogueur de script Qt</translation>
+    </message>
+</context>
+<context>
+    <name>QScriptNewBreakpointWidget</name>
+    <message>
+        <source>Close</source>
+        <translation>Fermer</translation>
+    </message>
+</context>
+<context>
     <name>QScrollBar</name>
     <message>
         <source>Scroll here</source>
@@ -4181,7 +5890,7 @@
     </message>
     <message>
         <source>Left edge</source>
-        <translation>Extrême gauche</translation>
+        <translation>Bord gauche</translation>
     </message>
     <message>
         <source>Top</source>
@@ -4189,7 +5898,7 @@
     </message>
     <message>
         <source>Right edge</source>
-        <translation>Extrême droite</translation>
+        <translation>Bord droit</translation>
     </message>
     <message>
         <source>Bottom</source>
@@ -4283,9 +5992,8 @@
         <translation>%1 : clé vide</translation>
     </message>
     <message>
-        <location filename="../src/corelib/kernel/qsharedmemory_unix.cpp" line="+125"/>
         <source>%1: unix key file doesn&apos;t exists</source>
-        <translation>%1 : le fichier de clé unix n&apos;existe pas</translation>
+        <translation type="obsolete">%1 : le fichier de clé unix n&apos;existe pas</translation>
     </message>
     <message>
         <source>%1: ftok failed</source>
@@ -4317,17 +6025,18 @@
     </message>
     <message>
         <source>%1: doesn&apos;t exist</source>
-        <translation>%1: n&apos;existe pas</translation>
+        <translation>%1 : n&apos;existe pas</translation>
     </message>
     <message>
         <source>%1: UNIX key file doesn&apos;t exist</source>
-        <translation>%1: le fichier de clés UNIX n&apos;existe pas</translation>
+        <translation>%1 : le fichier de clés UNIX n&apos;existe pas</translation>
     </message>
 </context>
 <context>
     <name>QShortcut</name>
     <message>
         <source>Space</source>
+        <extracomment>This and all following &quot;incomprehensible&quot; strings in QShortcut context are key names. Please use the localized names appearing on actual keyboards or whatever is commonly used.</extracomment>
         <translation>Espace</translation>
     </message>
     <message>
@@ -4368,7 +6077,7 @@
     </message>
     <message>
         <source>Print</source>
-        <translation>Impr écran</translation>
+        <translation>Imprimer</translation>
     </message>
     <message>
         <source>SysReq</source>
@@ -4436,7 +6145,7 @@
     </message>
     <message>
         <source>Stop</source>
-        <translation>Stop</translation>
+        <translation>Arrêter</translation>
     </message>
     <message>
         <source>Refresh</source>
@@ -4657,17 +6366,164 @@
     </message>
     <message>
         <source>Call</source>
+        <extracomment>Button to start a call (note: a separate button is used to end the call)</extracomment>
         <translation>Appeler</translation>
     </message>
     <message>
         <source>Hangup</source>
+        <extracomment>Button to end a call (note: a separate button is used to start the call)</extracomment>
         <translation>Raccrocher</translation>
     </message>
     <message>
+        <source>Toggle Call/Hangup</source>
+        <extracomment>Button that will hang up if we&apos;re in call, or make a call if we&apos;re not.</extracomment>
+        <translation>Décrocher/Raccrocher</translation>
+    </message>
+    <message>
         <source>Flip</source>
         <translation>Retourner</translation>
     </message>
     <message>
+        <source>Voice Dial</source>
+        <extracomment>Button to trigger voice dialling</extracomment>
+        <translation>Commande vocale</translation>
+    </message>
+    <message>
+        <source>Last Number Redial</source>
+        <extracomment>Button to redial the last number called</extracomment>
+        <translation>Bis</translation>
+    </message>
+    <message>
+        <source>Camera Shutter</source>
+        <extracomment>Button to trigger the camera shutter (take a picture)</extracomment>
+        <translation>Déclencheur appareil photo</translation>
+    </message>
+    <message>
+        <source>Camera Focus</source>
+        <extracomment>Button to focus the camera</extracomment>
+        <translation>Focus appareil photo</translation>
+    </message>
+    <message>
+        <source>Kanji</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>Muhenkan</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>Henkan</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>Romaji</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>Hiragana</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>Katakana</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>Hiragana Katakana</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>Zenkaku</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>Hankaku</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>Zenkaku Hankaku</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>Touroku</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>Massyo</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>Kana Lock</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>Kana Shift</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>Eisu Shift</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>Eisu toggle</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>Code input</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>Multiple Candidate</source>
+        <translation>Candidat multiple</translation>
+    </message>
+    <message>
+        <source>Previous Candidate</source>
+        <translation>Candidat précédent</translation>
+    </message>
+    <message>
+        <source>Hangul</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>Hangul Start</source>
+        <translation>Hangul début</translation>
+    </message>
+    <message>
+        <source>Hangul End</source>
+        <translation>Hangul Fin</translation>
+    </message>
+    <message>
+        <source>Hangul Hanja</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>Hangul Jamo</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>Hangul Romaja</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>Hangul Jeonja</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>Hangul Banja</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>Hangul PreHanja</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>Hangul PostHanja</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>Hangul Special</source>
+        <translation></translation>
+    </message>
+    <message>
         <source>Ctrl</source>
         <translation>Ctrl</translation>
     </message>
@@ -4696,6 +6552,16 @@
         <translation>Page d&apos;accueil</translation>
     </message>
     <message>
+        <source>Media Pause</source>
+        <extracomment>Media player pause button</extracomment>
+        <translation>Média pause</translation>
+    </message>
+    <message>
+        <source>Toggle Media Play/Pause</source>
+        <extracomment>Media player button to toggle between playing and paused</extracomment>
+        <translation>Média Lecture/Pause</translation>
+    </message>
+    <message>
         <source>Monitor Brightness Up</source>
         <translation>Augmenter la luminosité du moniteur</translation>
     </message>
@@ -5037,7 +6903,7 @@
     </message>
     <message>
         <source>View</source>
-        <translation>Afficher</translation>
+        <translation>Affichage</translation>
     </message>
     <message>
         <source>Top Menu</source>
@@ -5139,6 +7005,33 @@
     </message>
 </context>
 <context>
+    <name>QSoftKeyManager</name>
+    <message>
+        <source>Ok</source>
+        <translation>OK</translation>
+    </message>
+    <message>
+        <source>Select</source>
+        <translation>Sélectionner</translation>
+    </message>
+    <message>
+        <source>Done</source>
+        <translation>Terminer</translation>
+    </message>
+    <message>
+        <source>Options</source>
+        <translation>Options</translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation>Annuler</translation>
+    </message>
+    <message>
+        <source>Exit</source>
+        <translation>Quitter</translation>
+    </message>
+</context>
+<context>
     <name>QSpinBox</name>
     <message>
         <source>More</source>
@@ -5239,13 +7132,12 @@
         <translation type="obsolete">La clé privée ne certifie pas la clé publique, %1</translation>
     </message>
     <message>
-        <location filename="../src/network/ssl/qsslsocket_openssl.cpp" line="+327"/>
         <source>Private key does not certificate public key, %1</source>
-        <translation>La clé privée ne certifie pas la clé publique, %1</translation>
+        <translation type="obsolete">La clé privée ne certifie pas la clé publique, %1</translation>
     </message>
     <message>
         <source>Unable to decrypt data: %1</source>
-        <translation>Impossible de décrypter les données: %1</translation>
+        <translation>Impossible de décrypter les données : %1</translation>
     </message>
     <message>
         <source>Private key does not certify public key, %1</source>
@@ -5281,11 +7173,11 @@
     </message>
     <message>
         <source>The certificate&apos;s notBefore field contains an invalid time</source>
-        <translation>Le champ pasAvant du certificat inclut une heure non valide</translation>
+        <translation>Le champ pasAvant du certificat inclut une heure invalide</translation>
     </message>
     <message>
         <source>The certificate&apos;s notAfter field contains an invalid time</source>
-        <translation>Le champ pasAprès du certificat inclut une heure non valide</translation>
+        <translation>Le champ pasAprès du certificat inclut une heure invalide</translation>
     </message>
     <message>
         <source>The certificate is self-signed, and untrusted</source>
@@ -5345,14 +7237,33 @@
     </message>
 </context>
 <context>
+    <name>QStateMachine</name>
+    <message>
+        <source>Missing initial state in compound state &apos;%1&apos;</source>
+        <translation>État initial manquant dans l&apos;état composé &apos;%1&apos;</translation>
+    </message>
+    <message>
+        <source>Missing default state in history state &apos;%1&apos;</source>
+        <translation>État par défaut manquant dans l&apos;état de l&apos;historique &apos;%1&apos;</translation>
+    </message>
+    <message>
+        <source>No common ancestor for targets and source of transition from state &apos;%1&apos;</source>
+        <translation>Aucun ancêtre commun pour les cibles et la source de transition de l&apos;état &apos;%1&apos;</translation>
+    </message>
+    <message>
+        <source>Unknown error</source>
+        <translation>Erreur inconnue</translation>
+    </message>
+</context>
+<context>
     <name>QSystemSemaphore</name>
     <message>
         <source>%1: out of resources</source>
-        <translation>%1: plus de ressources disponibles</translation>
+        <translation>%1 : plus de ressources disponibles</translation>
     </message>
     <message>
         <source>%1: permission denied</source>
-        <translation>%1: permission refusée</translation>
+        <translation>%1 : permission refusée</translation>
     </message>
     <message>
         <source>%1: already exists</source>
@@ -5364,7 +7275,7 @@
     </message>
     <message>
         <source>%1: unknown error %2</source>
-        <translation>%1: erreur inconnue %2</translation>
+        <translation>%1 : erreur inconnue %2</translation>
     </message>
 </context>
 <context>
@@ -5408,7 +7319,7 @@
     </message>
     <message>
         <source>&amp;Redo</source>
-        <translation>&amp;Répéter</translation>
+        <translation>&amp;Rétablir</translation>
     </message>
     <message>
         <source>Cu&amp;t</source>
@@ -5439,7 +7350,7 @@
     <name>QToolButton</name>
     <message>
         <source>Press</source>
-        <translation>Presser</translation>
+        <translation>Appuyer</translation>
     </message>
     <message>
         <source>Open</source>
@@ -5461,7 +7372,7 @@
     </message>
     <message>
         <source>Redo</source>
-        <translation>Répéter</translation>
+        <translation>Rétablir</translation>
     </message>
 </context>
 <context>
@@ -5479,7 +7390,7 @@
     </message>
     <message>
         <source>Redo</source>
-        <translation>Répéter</translation>
+        <translation>Rétablir</translation>
     </message>
 </context>
 <context>
@@ -5544,9 +7455,8 @@
         <translation>Impossible d&apos;afficher l&apos;URL</translation>
     </message>
     <message>
-        <location filename="../src/3rdparty/webkit/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp" line="+722"/>
         <source>Frame load interruped by policy change</source>
-        <translation>Chargement de la frame interrompu par un changement de configuration</translation>
+        <translation type="obsolete">Chargement de la frame interrompu par un changement de configuration</translation>
     </message>
     <message>
         <source>Cannot show mimetype</source>
@@ -5564,19 +7474,16 @@
 <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>Soumettre</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>Soumettre</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Reset</source>
         <comment>default label for Reset buttons in forms on web pages</comment>
         <translation>Réinitialiser</translation>
@@ -5587,271 +7494,436 @@
         <translation type="obsolete">Index recherchable</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Choose File</source>
         <comment>title for file button used in HTML forms</comment>
         <translation>Choisir le fichier</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>Pas de fichier sélectionné</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Open in New Window</source>
         <comment>Open in New Window context menu item</comment>
         <translation>Ouvrir dans une Nouvelle Fenêtre</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Save Link...</source>
         <comment>Download Linked File context menu item</comment>
         <translation>Enregistrer le lien...</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Copy Link</source>
         <comment>Copy Link context menu item</comment>
         <translation>Copier le lien</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Open Image</source>
         <comment>Open Image in New Window context menu item</comment>
         <translation>Ouvrir l&apos;image</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Save Image</source>
         <comment>Download Image context menu item</comment>
         <translation>Enregistrer l&apos;image</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Copy Image</source>
         <comment>Copy Link context menu item</comment>
         <translation>Copier l&apos;image</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Open Frame</source>
         <comment>Open Frame in New Window context menu item</comment>
         <translation>Ouvrir le cadre</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Copy</source>
         <comment>Copy context menu item</comment>
         <translation>Copier</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Go Back</source>
         <comment>Back context menu item</comment>
         <translation>Précédent</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Go Forward</source>
         <comment>Forward context menu item</comment>
         <translation>Suivant</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Stop</source>
         <comment>Stop context menu item</comment>
-        <translation>Stop</translation>
-    </message>
-    <message>
-        <location line="+5"/>
+        <translation>Arrêter</translation>
+    </message>
+    <message>
         <source>Reload</source>
         <comment>Reload context menu item</comment>
         <translation>Recharger</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Cut</source>
         <comment>Cut context menu item</comment>
         <translation>Couper</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Paste</source>
         <comment>Paste context menu item</comment>
         <translation>Coller</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>No Guesses Found</source>
         <comment>No Guesses Found context menu item</comment>
         <translation>Pas de candidat trouvés</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Ignore</source>
         <comment>Ignore Spelling context menu item</comment>
         <translation>Ignorer</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Add To Dictionary</source>
         <comment>Learn Spelling context menu item</comment>
         <translation>Ajouter au dictionnaire</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Search The Web</source>
         <comment>Search The Web context menu item</comment>
         <translation>Chercher sur le Web</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Look Up In Dictionary</source>
         <comment>Look Up in Dictionary context menu item</comment>
         <translation>Chercher dans le dictionnaire</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Open Link</source>
         <comment>Open Link context menu item</comment>
         <translation>Ouvrir le lien</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Ignore</source>
         <comment>Ignore Grammar context menu item</comment>
         <translation>Ignorer</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Spelling</source>
         <comment>Spelling and Grammar context sub-menu item</comment>
         <translation>Orthographe</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Show Spelling and Grammar</source>
         <comment>menu item title</comment>
         <translation>Afficher Orthographe et Grammaire</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Hide Spelling and Grammar</source>
         <comment>menu item title</comment>
         <translation>Cacher Orthographe et Grammaire</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Check Spelling</source>
         <comment>Check spelling context menu item</comment>
         <translation>Vérifier l&apos;orthographe</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Check Spelling While Typing</source>
         <comment>Check spelling while typing context menu item</comment>
         <translation>Vérifier l&apos;orthographe pendant la saisie</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Check Grammar With Spelling</source>
         <comment>Check grammar with spelling context menu item</comment>
         <translation>Vérifier la grammaire en même temps que l&apos;orthographe</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Fonts</source>
         <comment>Font context sub-menu item</comment>
         <translation>Polices</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Bold</source>
         <comment>Bold context menu item</comment>
         <translation>Gras</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Italic</source>
         <comment>Italic context menu item</comment>
         <translation>Italique</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Underline</source>
         <comment>Underline context menu item</comment>
         <translation>Souligné</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Outline</source>
         <comment>Outline context menu item</comment>
         <translation>Contour</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Direction</source>
         <comment>Writing direction context sub-menu item</comment>
         <translation></translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Text Direction</source>
         <comment>Text direction context sub-menu item</comment>
         <translation>Orientation du texte</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Default</source>
         <comment>Default writing direction context menu item</comment>
-        <translation>Défaut</translation>
-    </message>
-    <message>
-        <location line="+5"/>
+        <translation>Par défaut</translation>
+    </message>
+    <message>
+        <source>Left to Right</source>
+        <comment>Left to Right context menu item</comment>
+        <translation>Gauche à droite</translation>
+    </message>
+    <message>
+        <source>Right to Left</source>
+        <comment>Right to Left context menu item</comment>
+        <translation>Droite à gauche</translation>
+    </message>
+    <message>
+        <source>Loading...</source>
+        <comment>Media controller status message when the media is loading</comment>
+        <translation>Chargement...</translation>
+    </message>
+    <message>
+        <source>Live Broadcast</source>
+        <comment>Media controller status message when watching a live broadcast</comment>
+        <translation>Diffusion en direct</translation>
+    </message>
+    <message>
+        <source>Audio Element</source>
+        <comment>Media controller element</comment>
+        <translation>Élément audio</translation>
+    </message>
+    <message>
+        <source>Video Element</source>
+        <comment>Media controller element</comment>
+        <translation>Élément vidéo</translation>
+    </message>
+    <message>
+        <source>Mute Button</source>
+        <comment>Media controller element</comment>
+        <translation>Bouton de désactivation du son</translation>
+    </message>
+    <message>
+        <source>Unmute Button</source>
+        <comment>Media controller element</comment>
+        <translation>Bouton de réactivation du son</translation>
+    </message>
+    <message>
+        <source>Play Button</source>
+        <comment>Media controller element</comment>
+        <translation>Bouton de lecture</translation>
+    </message>
+    <message>
+        <source>Pause Button</source>
+        <comment>Media controller element</comment>
+        <translation>Bouton de pause</translation>
+    </message>
+    <message>
+        <source>Slider</source>
+        <comment>Media controller element</comment>
+        <translation>Slider</translation>
+    </message>
+    <message>
+        <source>Slider Thumb</source>
+        <comment>Media controller element</comment>
+        <translation>Curseur de la barre de défilement</translation>
+    </message>
+    <message>
+        <source>Rewind Button</source>
+        <comment>Media controller element</comment>
+        <translation>Bouton de retour en arrière</translation>
+    </message>
+    <message>
+        <source>Return to Real-time Button</source>
+        <comment>Media controller element</comment>
+        <translation>Bouton de retour au temps réel</translation>
+    </message>
+    <message>
+        <source>Elapsed Time</source>
+        <comment>Media controller element</comment>
+        <translation>Temps écoulé</translation>
+    </message>
+    <message>
+        <source>Remaining Time</source>
+        <comment>Media controller element</comment>
+        <translation>Durée restante</translation>
+    </message>
+    <message>
+        <source>Status Display</source>
+        <comment>Media controller element</comment>
+        <translation>Affichage de l&apos;état</translation>
+    </message>
+    <message>
+        <source>Fullscreen Button</source>
+        <comment>Media controller element</comment>
+        <translation>Bouton de plein écran</translation>
+    </message>
+    <message>
+        <source>Seek Forward Button</source>
+        <comment>Media controller element</comment>
+        <translation>Bouton de recherche avant</translation>
+    </message>
+    <message>
+        <source>Seek Back Button</source>
+        <comment>Media controller element</comment>
+        <translation>Bouton de recherche arrière</translation>
+    </message>
+    <message>
+        <source>Audio element playback controls and status display</source>
+        <comment>Media controller element</comment>
+        <translation>Commandes de lecture et affichage de l&apos;état de l&apos;élément audio</translation>
+    </message>
+    <message>
+        <source>Video element playback controls and status display</source>
+        <comment>Media controller element</comment>
+        <translation>Commandes de lecture et affichage de l&apos;état de l&apos;élément vidéo</translation>
+    </message>
+    <message>
+        <source>Mute audio tracks</source>
+        <comment>Media controller element</comment>
+        <translation>Couper le son des pistes audio</translation>
+    </message>
+    <message>
+        <source>Unmute audio tracks</source>
+        <comment>Media controller element</comment>
+        <translation>Réactiver le son des pistes audio</translation>
+    </message>
+    <message>
+        <source>Begin playback</source>
+        <comment>Media controller element</comment>
+        <translation>Commencer la lecture</translation>
+    </message>
+    <message>
+        <source>Pause playback</source>
+        <comment>Media controller element</comment>
+        <translation>Pause lecture</translation>
+    </message>
+    <message>
+        <source>Movie time scrubber</source>
+        <comment>Media controller element</comment>
+        <translation>Balayeur de durée du film</translation>
+    </message>
+    <message>
+        <source>Movie time scrubber thumb</source>
+        <comment>Media controller element</comment>
+        <translation>Case de défilement du balayeur de la durée du film</translation>
+    </message>
+    <message>
+        <source>Rewind movie</source>
+        <comment>Media controller element</comment>
+        <translation>Rembobiner le film</translation>
+    </message>
+    <message>
+        <source>Return streaming movie to real-time</source>
+        <comment>Media controller element</comment>
+        <translation>Ramener le film en streaming en temps réel</translation>
+    </message>
+    <message>
+        <source>Current movie time</source>
+        <comment>Media controller element</comment>
+        <translation>Durée du film en cours</translation>
+    </message>
+    <message>
+        <source>Remaining movie time</source>
+        <comment>Media controller element</comment>
+        <translation>Durée de film restante</translation>
+    </message>
+    <message>
+        <source>Current movie status</source>
+        <comment>Media controller element</comment>
+        <translation>État du film actuel</translation>
+    </message>
+    <message>
+        <source>Play movie in full-screen mode</source>
+        <comment>Media controller element</comment>
+        <translation>Regarder le film en mode plein écran</translation>
+    </message>
+    <message>
+        <source>Seek quickly back</source>
+        <comment>Media controller element</comment>
+        <translation>Recherche rapide arrière</translation>
+    </message>
+    <message>
+        <source>Seek quickly forward</source>
+        <comment>Media controller element</comment>
+        <translation>Recherche rapide avant</translation>
+    </message>
+    <message>
+        <source>Indefinite time</source>
+        <comment>Media time description</comment>
+        <translation>Durée indéfinie</translation>
+    </message>
+    <message>
+        <source>%1 days %2 hours %3 minutes %4 seconds</source>
+        <comment>Media time description</comment>
+        <translation>%1 jours %2 heures %3 minutes %4 secondes</translation>
+    </message>
+    <message>
+        <source>%1 hours %2 minutes %3 seconds</source>
+        <comment>Media time description</comment>
+        <translation>%1 heures %2 minutes %3 secondes</translation>
+    </message>
+    <message>
+        <source>%1 minutes %2 seconds</source>
+        <comment>Media time description</comment>
+        <translation>%1 minutes %2 secondes</translation>
+    </message>
+    <message>
+        <source>%1 seconds</source>
+        <comment>Media time description</comment>
+        <translation>%1 secondes</translation>
+    </message>
+    <message>
         <source>LTR</source>
         <comment>Left to Right context menu item</comment>
-        <translation>De la gauche vers la droite</translation>
-    </message>
-    <message>
-        <location line="+5"/>
+        <translation type="obsolete">De la gauche vers la droite</translation>
+    </message>
+    <message>
         <source>RTL</source>
         <comment>Right to Left context menu item</comment>
-        <translation>De la droite vers la gauche</translation>
-    </message>
-    <message>
-        <location line="+5"/>
+        <translation type="obsolete">De la droite vers la gauche</translation>
+    </message>
+    <message>
         <source>Inspect</source>
         <comment>Inspect Element context menu item</comment>
         <translation>Inspecter</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>Pas de recherche récente</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>Recherches récentes</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>Effacer les recherches récentes</translation>
     </message>
     <message>
-        <location line="+75"/>
+        <source>Missing Plug-in</source>
+        <comment>Label text to be used when a plug-in is missing</comment>
+        <translation>Plug-in manquant</translation>
+    </message>
+    <message>
         <source>Unknown</source>
         <comment>Unknown filesize FTP directory listing item</comment>
         <translation>Inconnu</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>%1 (%2x%3 pixels)</source>
         <comment>Title string for images</comment>
         <translation>%1 (%2x%3 pixels)</translation>
@@ -5861,14 +7933,17 @@
         <translation>Inspecteur Web - %2</translation>
     </message>
     <message>
+        <source>Redirection limit reached</source>
+        <translation>Limite de redirection atteinte</translation>
+    </message>
+    <message>
         <source>Bad HTTP request</source>
         <translation>Requête HTTP erronée</translation>
     </message>
     <message>
-        <location 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>Ceci est un index. Veuillez saisir les mots-clé :</translation>
+        <translation>Ceci est un index. Veuillez saisir les mots-clé : </translation>
     </message>
     <message>
         <source>Scroll here</source>
@@ -5923,7 +7998,6 @@
         <translation>Défiler vers le bas</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>
@@ -6061,353 +8135,347 @@
     </message>
     <message>
         <source>Submit</source>
-        <translation>Soumettre</translation>
+        <translation type="obsolete">Soumettre</translation>
     </message>
     <message>
         <source>Reset</source>
-        <translation>Réinitialiser</translation>
+        <translation type="obsolete">Réinitialiser</translation>
     </message>
     <message>
         <source>Choose File</source>
-        <translation>Choisir le fichier</translation>
+        <translation type="obsolete">Choisir le fichier</translation>
     </message>
     <message>
         <source>No file selected</source>
-        <translation>Pas de fichier sélectionné</translation>
+        <translation type="obsolete">Pas de fichier sélectionné</translation>
     </message>
     <message>
         <source>Open in New Window</source>
-        <translation>Ouvrir dans une Nouvelle Fenêtre</translation>
+        <translation type="obsolete">Ouvrir dans une Nouvelle Fenêtre</translation>
     </message>
     <message>
         <source>Save Link...</source>
-        <translation>Enregistrer la cible du lien...</translation>
+        <translation type="obsolete">Enregistrer la cible du lien...</translation>
     </message>
     <message>
         <source>Copy Link</source>
-        <translation>Copier le lien</translation>
+        <translation type="obsolete">Copier le lien</translation>
     </message>
     <message>
         <source>Open Image</source>
-        <translation>Ouvrir l&apos;image</translation>
+        <translation type="obsolete">Ouvrir l&apos;image</translation>
     </message>
     <message>
         <source>Save Image</source>
-        <translation>Enregistrer l&apos;image</translation>
+        <translation type="obsolete">Enregistrer l&apos;image</translation>
     </message>
     <message>
         <source>Copy Image</source>
-        <translation>Copier l&apos;image</translation>
+        <translation type="obsolete">Copier l&apos;image</translation>
     </message>
     <message>
         <source>Open Frame</source>
-        <translation>Ouvrir le cadre</translation>
+        <translation type="obsolete">Ouvrir le cadre</translation>
     </message>
     <message>
         <source>Copy</source>
-        <translation>Copier</translation>
+        <translation type="obsolete">Copier</translation>
     </message>
     <message>
         <source>Go Back</source>
-        <translation>Précédent</translation>
+        <translation type="obsolete">Précédent</translation>
     </message>
     <message>
         <source>Go Forward</source>
-        <translation>Suivant</translation>
+        <translation type="obsolete">Suivant</translation>
     </message>
     <message>
         <source>Stop</source>
-        <translation>Stop</translation>
+        <translation type="obsolete">Stop</translation>
     </message>
     <message>
         <source>Reload</source>
-        <translation>Recharger</translation>
+        <translation type="obsolete">Recharger</translation>
     </message>
     <message>
         <source>Cut</source>
-        <translation>Couper</translation>
+        <translation type="obsolete">Couper</translation>
     </message>
     <message>
         <source>Paste</source>
-        <translation>Coller</translation>
+        <translation type="obsolete">Coller</translation>
     </message>
     <message>
         <source>No Guesses Found</source>
-        <translation>Pas de candidat trouvés</translation>
+        <translation type="obsolete">Pas de candidat trouvés</translation>
     </message>
     <message>
         <source>Ignore</source>
-        <translation>Ignorer</translation>
+        <translation type="obsolete">Ignorer</translation>
     </message>
     <message>
         <source>Add To Dictionary</source>
-        <translation>Ajouter au dictionnaire</translation>
+        <translation type="obsolete">Ajouter au dictionnaire</translation>
     </message>
     <message>
         <source>Search The Web</source>
-        <translation>Chercher sur le Web</translation>
+        <translation type="obsolete">Chercher sur le Web</translation>
     </message>
     <message>
         <source>Look Up In Dictionary</source>
-        <translation>Chercher dans le dictionnaire</translation>
+        <translation type="obsolete">Chercher dans le dictionnaire</translation>
     </message>
     <message>
         <source>Open Link</source>
-        <translation>Ouvrir le lien</translation>
+        <translation type="obsolete">Ouvrir le lien</translation>
     </message>
     <message>
         <source>Spelling</source>
-        <translation>Orthographe</translation>
+        <translation type="obsolete">Orthographe</translation>
     </message>
     <message>
         <source>Show Spelling and Grammar</source>
-        <translation>Afficher Orthographe et Grammaire</translation>
+        <translation type="obsolete">Afficher Orthographe et Grammaire</translation>
     </message>
     <message>
         <source>Hide Spelling and Grammar</source>
-        <translation>Cacher Orthographe et Grammaire</translation>
+        <translation type="obsolete">Cacher Orthographe et Grammaire</translation>
     </message>
     <message>
         <source>Check Spelling</source>
-        <translation>Vérifier l&apos;orthographe</translation>
+        <translation type="obsolete">Vérifier l&apos;orthographe</translation>
     </message>
     <message>
         <source>Check Spelling While Typing</source>
-        <translation>Vérifier l&apos;orthographe pendant la saisie</translation>
+        <translation type="obsolete">Vérifier l&apos;orthographe pendant la saisie</translation>
     </message>
     <message>
         <source>Check Grammar With Spelling</source>
-        <translation>Vérifier la grammaire en même temps que l&apos;orthographe</translation>
+        <translation type="obsolete">Vérifier la grammaire en même temps que l&apos;orthographe</translation>
     </message>
     <message>
         <source>Fonts</source>
-        <translation>Polices</translation>
+        <translation type="obsolete">Polices</translation>
     </message>
     <message>
         <source>Bold</source>
-        <translation>Gras</translation>
+        <translation type="obsolete">Gras</translation>
     </message>
     <message>
         <source>Italic</source>
-        <translation>Italique</translation>
+        <translation type="obsolete">Italique</translation>
     </message>
     <message>
         <source>Underline</source>
-        <translation>Souligné</translation>
+        <translation type="obsolete">Souligné</translation>
     </message>
     <message>
         <source>Outline</source>
-        <translation>Contour</translation>
+        <translation type="obsolete">Contour</translation>
     </message>
     <message>
         <source>Direction</source>
-        <translation>Direction</translation>
+        <translation type="obsolete">Direction</translation>
     </message>
     <message>
         <source>Text Direction</source>
-        <translation>Orientation du texte</translation>
+        <translation type="obsolete">Orientation du texte</translation>
     </message>
     <message>
         <source>Default</source>
-        <translation>Défaut</translation>
+        <translation type="obsolete">Défaut</translation>
     </message>
     <message>
         <source>Left to Right</source>
-        <translation>Gauche à droite</translation>
+        <translation type="obsolete">Gauche à droite</translation>
     </message>
     <message>
         <source>Right to Left</source>
-        <translation>Droite à gauche</translation>
+        <translation type="obsolete">Droite à gauche</translation>
     </message>
     <message>
         <source>Loading...</source>
-        <translation>Chargement...</translation>
+        <translation type="obsolete">Chargement...</translation>
     </message>
     <message>
         <source>Live Broadcast</source>
-        <translation>Diffusion en direct</translation>
+        <translation type="obsolete">Diffusion en direct</translation>
     </message>
     <message>
         <source>Audio Element</source>
-        <translation>Élément audio</translation>
+        <translation type="obsolete">Élément audio</translation>
     </message>
     <message>
         <source>Video Element</source>
-        <translation>Élément vidéo</translation>
+        <translation type="obsolete">Élément vidéo</translation>
     </message>
     <message>
         <source>Mute Button</source>
-        <translation>Bouton de désactivation du son</translation>
+        <translation type="obsolete">Bouton de désactivation du son</translation>
     </message>
     <message>
         <source>Unmute Button</source>
-        <translation>Bouton de réactivation du son</translation>
+        <translation type="obsolete">Bouton de réactivation du son</translation>
     </message>
     <message>
         <source>Play Button</source>
-        <translation>Bouton de lecture</translation>
+        <translation type="obsolete">Bouton de lecture</translation>
     </message>
     <message>
         <source>Pause Button</source>
-        <translation>Bouton de pause</translation>
+        <translation type="obsolete">Bouton de pause</translation>
     </message>
     <message>
         <source>Slider</source>
-        <translation>Barre de défilement</translation>
+        <translation type="obsolete">Barre de défilement</translation>
     </message>
     <message>
         <source>Slider Thumb</source>
-        <translation>Curseur de la barre de défilement</translation>
+        <translation type="obsolete">Curseur de la barre de défilement</translation>
     </message>
     <message>
         <source>Rewind Button</source>
-        <translation>Bouton de retour en arrière</translation>
+        <translation type="obsolete">Bouton de retour en arrière</translation>
     </message>
     <message>
         <source>Return to Real-time Button</source>
-        <translation>Bouton de retour au temps réel</translation>
+        <translation type="obsolete">Bouton de retour au temps réel</translation>
     </message>
     <message>
         <source>Elapsed Time</source>
-        <translation>Temps écoulé</translation>
+        <translation type="obsolete">Temps écoulé</translation>
     </message>
     <message>
         <source>Remaining Time</source>
-        <translation>Durée restante</translation>
+        <translation type="obsolete">Durée restante</translation>
     </message>
     <message>
         <source>Status Display</source>
-        <translation>Affichage de l&apos;état</translation>
+        <translation type="obsolete">Affichage de l&apos;état</translation>
     </message>
     <message>
         <source>Fullscreen Button</source>
-        <translation>Bouton de plein écran</translation>
+        <translation type="obsolete">Bouton de plein écran</translation>
     </message>
     <message>
         <source>Seek Forward Button</source>
-        <translation>Bouton de recherche avant</translation>
+        <translation type="obsolete">Bouton de recherche avant</translation>
     </message>
     <message>
         <source>Seek Back Button</source>
-        <translation>Bouton de recherche arrière</translation>
+        <translation type="obsolete">Bouton de recherche arrière</translation>
     </message>
     <message>
         <source>Audio element playback controls and status display</source>
-        <translation>Commandes de lecture et affichage de l&apos;état de l&apos;élément audio</translation>
+        <translation type="obsolete">Commandes de lecture et affichage de l&apos;état de l&apos;élément audio</translation>
     </message>
     <message>
         <source>Video element playback controls and status display</source>
-        <translation>Commandes de lecture et affichage de l&apos;état de l&apos;élément vidéo</translation>
+        <translation type="obsolete">Commandes de lecture et affichage de l&apos;état de l&apos;élément vidéo</translation>
     </message>
     <message>
         <source>Mute audio tracks</source>
-        <translation>Couper le son des pistes audio</translation>
+        <translation type="obsolete">Couper le son des pistes audio</translation>
     </message>
     <message>
         <source>Unmute audio tracks</source>
-        <translation>Réactiver le son des pistes audio</translation>
+        <translation type="obsolete">Réactiver le son des pistes audio</translation>
     </message>
     <message>
         <source>Begin playback</source>
-        <translation>Commencer la lecture</translation>
+        <translation type="obsolete">Commencer la lecture</translation>
     </message>
     <message>
         <source>Pause playback</source>
-        <translation>Pause lecture</translation>
+        <translation type="obsolete">Pause lecture</translation>
     </message>
     <message>
         <source>Movie time scrubber</source>
-        <translation>Épurateur de la durée du film</translation>
+        <translation type="obsolete">Épurateur de la durée du film</translation>
     </message>
     <message>
         <source>Movie time scrubber thumb</source>
-        <translation>Case de défilement de l&apos;épurateur de la durée du film</translation>
+        <translation type="obsolete">Case de défilement de l&apos;épurateur de la durée du film</translation>
     </message>
     <message>
         <source>Rewind movie</source>
-        <translation>Rembobiner le film</translation>
+        <translation type="obsolete">Rembobiner le film</translation>
     </message>
     <message>
         <source>Return streaming movie to real-time</source>
-        <translation>Ramener le film en streaming en temps réel</translation>
+        <translation type="obsolete">Ramener le film en streaming en temps réel</translation>
     </message>
     <message>
         <source>Current movie time</source>
-        <translation>Durée du film actuel</translation>
+        <translation type="obsolete">Durée du film actuel</translation>
     </message>
     <message>
         <source>Remaining movie time</source>
-        <translation>Durée de film restante</translation>
+        <translation type="obsolete">Durée de film restante</translation>
     </message>
     <message>
         <source>Current movie status</source>
-        <translation>État du film actuel</translation>
+        <translation type="obsolete">État du film actuel</translation>
     </message>
     <message>
         <source>Play movie in full-screen mode</source>
-        <translation>Regarder le film en mode plein écran</translation>
+        <translation type="obsolete">Regarder le film en mode plein écran</translation>
     </message>
     <message>
         <source>Seek quickly back</source>
-        <translation>Recherche rapide arrière</translation>
+        <translation type="obsolete">Recherche rapide arrière</translation>
     </message>
     <message>
         <source>Seek quickly forward</source>
-        <translation>Recherche rapide avant</translation>
+        <translation type="obsolete">Recherche rapide avant</translation>
     </message>
     <message>
         <source>Indefinite time</source>
-        <translation>Durée indéfinie</translation>
+        <translation type="obsolete">Durée indéfinie</translation>
     </message>
     <message>
         <source>%1 days %2 hours %3 minutes %4 seconds</source>
-        <translation>%1 jours %2 heures %3 minutes %4 secondes</translation>
+        <translation type="obsolete">%1 jours %2 heures %3 minutes %4 secondes</translation>
     </message>
     <message>
         <source>%1 hours %2 minutes %3 seconds</source>
-        <translation>%1 heures %2 minutes %3 secondes</translation>
+        <translation type="obsolete">%1 heures %2 minutes %3 secondes</translation>
     </message>
     <message>
         <source>%1 minutes %2 seconds</source>
-        <translation>%1 minutes %2 secondes</translation>
+        <translation type="obsolete">%1 minutes %2 secondes</translation>
     </message>
     <message>
         <source>%1 seconds</source>
-        <translation>%1 secondes</translation>
+        <translation type="obsolete">%1 secondes</translation>
     </message>
     <message>
         <source>Inspect</source>
-        <translation>Inspecter</translation>
+        <translation type="obsolete">Inspecter</translation>
     </message>
     <message>
         <source>No recent searches</source>
-        <translation>Pas de recherche récente</translation>
+        <translation type="obsolete">Pas de recherche récente</translation>
     </message>
     <message>
         <source>Recent searches</source>
-        <translation>Recherches récentes</translation>
+        <translation type="obsolete">Recherches récentes</translation>
     </message>
     <message>
         <source>Clear recent searches</source>
-        <translation>Effacer les recherches récentes</translation>
+        <translation type="obsolete">Effacer les recherches récentes</translation>
     </message>
     <message>
         <source>Unknown</source>
-        <translation>Inconnu</translation>
+        <translation type="obsolete">Inconnu</translation>
     </message>
     <message>
         <source>%1 (%2x%3 pixels)</source>
-        <translation>%1 (%2x%3 pixels)</translation>
+        <translation type="obsolete">%1 (%2x%3 pixels)</translation>
     </message>
     <message>
         <source>This is a searchable index. Enter search keywords: </source>
-        <translation>Ceci est un index. Veuillez saisir les mots-clé :</translation>
-    </message>
-    <message numerus="yes">
-        <source>%n file(s)</source>
-        <translation>
-            <numerusform></numerusform>
-        </translation>
+        <translation type="obsolete">Ceci est un index. Veuillez saisir les mots-clé : </translation>
     </message>
     <message>
         <source>JavaScript Problem - %1</source>
@@ -6415,7 +8483,7 @@
     </message>
     <message>
         <source>The script on this page appears to have a problem. Do you want to stop the script?</source>
-        <translation>Le script de cette page semble avoir un problème. Souhaitez-vous arrêter le script?</translation>
+        <translation>Le script de cette page semble avoir un problème. Souhaitez-vous arrêter le script ?</translation>
     </message>
     <message>
         <source>Paste and Match Style</source>
@@ -6599,138 +8667,161 @@
     </message>
     <message>
         <source>error triggered by consumer</source>
-        <translation type="unfinished"></translation>
+        <translation>Erreur déclenchée par le consommateur</translation>
     </message>
     <message>
         <source>unexpected end of file</source>
-        <translation type="unfinished"></translation>
+        <translation>Fin de fichier inattendue</translation>
     </message>
     <message>
         <source>more than one document type definition</source>
-        <translation type="unfinished"></translation>
+        <translation>plus d&apos;une définition de type de document</translation>
     </message>
     <message>
         <source>error occurred while parsing element</source>
-        <translation type="unfinished"></translation>
+        <translation>une erreur s&apos;est produite pendant l&apos;analyse syntaxique de l&apos;élement</translation>
     </message>
     <message>
         <source>tag mismatch</source>
-        <translation type="unfinished"></translation>
+        <translation>tag incongru</translation>
     </message>
     <message>
         <source>error occurred while parsing content</source>
-        <translation type="unfinished"></translation>
+        <translation>une erreur s&apos;est produite pendant l&apos;analyse syntaxique du contenu</translation>
     </message>
     <message>
         <source>unexpected character</source>
-        <translation type="unfinished"></translation>
+        <translation>caractère inattendu</translation>
     </message>
     <message>
         <source>invalid name for processing instruction</source>
-        <translation type="unfinished"></translation>
+        <translation>nom d&apos;instruction invalide</translation>
     </message>
     <message>
         <source>version expected while reading the XML declaration</source>
-        <translation type="unfinished"></translation>
+        <translation>une version est attendue dans la déclaration XML</translation>
     </message>
     <message>
         <source>wrong value for standalone declaration</source>
-        <translation type="unfinished"></translation>
+        <translation>valeur incorrecte pour une déclaration &quot;standalone&quot;</translation>
     </message>
     <message>
         <source>error occurred while parsing document type definition</source>
-        <translation type="unfinished"></translation>
+        <translation>une erreur s&apos;est produite pendant l&apos;analyse syntaxique de la définition du type de document</translation>
     </message>
     <message>
         <source>letter is expected</source>
-        <translation type="unfinished"></translation>
+        <translation>une lettre est attendue</translation>
     </message>
     <message>
         <source>error occurred while parsing comment</source>
-        <translation type="unfinished"></translation>
+        <translation>une erreur s&apos;est produite pendant l&apos;analyse syntaxique du commentaire</translation>
     </message>
     <message>
         <source>error occurred while parsing reference</source>
-        <translation type="unfinished"></translation>
+        <translation>une erreur s&apos;est produite pendant l&apos;analyse syntaxique d&apos;une référence</translation>
     </message>
     <message>
         <source>internal general entity reference not allowed in DTD</source>
-        <translation type="unfinished"></translation>
+        <translation>référence à une entité générale interne non autorisée dans la DTD</translation>
     </message>
     <message>
         <source>external parsed general entity reference not allowed in attribute value</source>
-        <translation type="unfinished"></translation>
+        <translation>référence à une entité générale externe non autorisée dans la valeur d&apos;attribut</translation>
     </message>
     <message>
         <source>external parsed general entity reference not allowed in DTD</source>
-        <translation type="unfinished"></translation>
+        <translation>référence à une entité générale externe non autorisée dans le DTD</translation>
     </message>
     <message>
         <source>unparsed entity reference in wrong context</source>
-        <translation type="unfinished"></translation>
+        <translation>référence à une entité non analysée dans le mauvais contexte</translation>
     </message>
     <message>
         <source>recursive entities</source>
-        <translation type="unfinished"></translation>
+        <translation>entités récursives</translation>
     </message>
     <message>
         <source>error in the text declaration of an external entity</source>
-        <translation type="unfinished"></translation>
+        <translation>erreur dans la déclaration texte d&apos;une entité externe</translation>
     </message>
     <message>
         <source>encoding declaration or standalone declaration expected while reading the XML declaration</source>
-        <translation type="unfinished"></translation>
+        <translation>déclaration d&apos;encodage ou déclaration &quot;standalone&quot; attendue lors de la lecture de la déclaration XML</translation>
     </message>
     <message>
         <source>standalone declaration expected while reading the XML declaration</source>
-        <translation type="unfinished"></translation>
+        <translation>déclaration &quot;standalone&quot; attendue lors de la lecture de la déclaration XML</translation>
+    </message>
+</context>
+<context>
+    <name>QXmlPatternistCLI</name>
+    <message>
+        <source>Warning in %1, at line %2, column %3: %4</source>
+        <translation>Avertissement dans %1, à la ligne %2, colonne %3 : %4</translation>
+    </message>
+    <message>
+        <source>Warning in %1: %2</source>
+        <translation>Avertissement dans %1 : %2</translation>
+    </message>
+    <message>
+        <source></source>
+        <translation>Lieu inconnu</translation>
+    </message>
+    <message>
+        <source>Error %1 in %2, at line %3, column %4: %5</source>
+        <translation>Erreur %1 dans %2, à la ligne %3, colonne %4 : %5</translation>
+    </message>
+    <message>
+        <source>Error %1 in %2: %3</source>
+        <translation>Erreur %1 dans %2 : %3</translation>
     </message>
 </context>
 <context>
     <name>QXmlStream</name>
     <message>
         <source>Extra content at end of document.</source>
-        <translation type="unfinished"></translation>
+        <translation>Contenu superflu à la fin du document.</translation>
     </message>
     <message>
         <source>Invalid entity value.</source>
-        <translation type="unfinished"></translation>
+        <translation>Valeur de l&apos;entité invalide.</translation>
     </message>
     <message>
         <source>Invalid XML character.</source>
-        <translation type="unfinished"></translation>
+        <translation>Caractère XML invalide.</translation>
     </message>
     <message>
         <source>Sequence &apos;]]&gt;&apos; not allowed in content.</source>
-        <translation type="unfinished"></translation>
+        <translation>séquence &apos;]]&gt;&apos; non autorisée dans le contenu.</translation>
     </message>
     <message>
         <source>Namespace prefix &apos;%1&apos; not declared</source>
-        <translation type="unfinished"></translation>
+        <translation>Le préfixe d&apos;espace de noms %1 n&apos;a pas été déclaré</translation>
     </message>
     <message>
         <source>Attribute redefined.</source>
-        <translation type="unfinished"></translation>
+        <translation>Redéfinition d&apos;attribut.</translation>
     </message>
     <message>
         <source>Unexpected character &apos;%1&apos; in public id literal.</source>
-        <translation type="unfinished"></translation>
+        <translation>Caractère &apos;%1&apos; inattendu pour une valeur d&apos;identifiant public.</translation>
     </message>
     <message>
         <source>Invalid XML version string.</source>
-        <translation type="unfinished"></translation>
+        <translation>Chaîne de version XML invalide.</translation>
     </message>
     <message>
         <source>Unsupported XML version.</source>
-        <translation type="unfinished"></translation>
+        <translation>Version XML non supportée.</translation>
     </message>
     <message>
         <source>%1 is an invalid encoding name.</source>
-        <translation type="unfinished"></translation>
+        <translation>%1 n&apos;est pas un nom d&apos;encodage valide.</translation>
     </message>
     <message>
         <source>Encoding %1 is unsupported</source>
-        <translation type="unfinished"></translation>
+        <translation>%1 n&apos;est pas un encodage supporté</translation>
     </message>
     <message>
         <source>Invalid XML encoding name.</source>
@@ -6738,112 +8829,110 @@
     </message>
     <message>
         <source>Standalone accepts only yes or no.</source>
-        <translation type="unfinished"></translation>
+        <translation>Le seules valeurs possibles pour &quot;standalone&quot; sont &quot;yes&quot; ou &quot;no&quot;.</translation>
     </message>
     <message>
         <source>Invalid attribute in XML declaration.</source>
-        <translation type="unfinished"></translation>
+        <translation>Attribut invalide dans une déclaration XML.</translation>
     </message>
     <message>
         <source>Premature end of document.</source>
-        <translation type="unfinished"></translation>
+        <translation>Fin de document inattendue.</translation>
     </message>
     <message>
         <source>Invalid document.</source>
-        <translation type="unfinished"></translation>
+        <translation>Document invalide.</translation>
     </message>
     <message>
         <source>Expected </source>
-        <translation type="unfinished"></translation>
+        <translation>Attendu(e)</translation>
     </message>
     <message>
         <source>, but got &apos;</source>
-        <translation type="unfinished"></translation>
+        <translation>, mais trouvé &apos;</translation>
     </message>
     <message>
         <source>Unexpected &apos;</source>
-        <translation type="unfinished"></translation>
+        <translation>Inattendu(e)</translation>
     </message>
     <message>
         <source>Expected character data.</source>
-        <translation type="unfinished"></translation>
+        <translation>données texte attendues.</translation>
     </message>
     <message>
         <source>Recursive entity detected.</source>
-        <translation type="unfinished"></translation>
+        <translation>Entité récursive détectée.</translation>
     </message>
     <message>
         <source>Start tag expected.</source>
-        <translation type="unfinished"></translation>
+        <translation>Tag de départ attendu.</translation>
     </message>
     <message>
         <source>XML declaration not at start of document.</source>
-        <translation type="unfinished"></translation>
+        <translation>La déclaration XML doit être en début de document.</translation>
     </message>
     <message>
         <source>NDATA in parameter entity declaration.</source>
-        <translation type="unfinished"></translation>
+        <translation>NDATA dans une déclaration de paramètre d&apos;entité.</translation>
     </message>
     <message>
         <source>%1 is an invalid processing instruction name.</source>
-        <translation type="unfinished"></translation>
+        <translation>%1 n&apos;est pas un nom d&apos;instruction valide.</translation>
     </message>
     <message>
         <source>Invalid processing instruction name.</source>
-        <translation type="unfinished"></translation>
+        <translation>nom d&apos;instruction invalide.</translation>
     </message>
     <message>
         <source>Illegal namespace declaration.</source>
-        <translation type="unfinished"></translation>
+        <translation>Déclaration d&apos;espace de noms non autorisée.</translation>
     </message>
     <message>
         <source>Invalid XML name.</source>
-        <translation type="unfinished"></translation>
+        <translation>Nom XML invalide.</translation>
     </message>
     <message>
         <source>Opening and ending tag mismatch.</source>
-        <translation type="unfinished"></translation>
+        <translation>Tags ouvrant et fermants ne correspondent pas.</translation>
     </message>
     <message>
         <source>Reference to unparsed entity &apos;%1&apos;.</source>
-        <translation type="unfinished"></translation>
+        <translation>Référence à l&apos;entité &apos;%1&apos; non analysée.</translation>
     </message>
     <message>
         <source>Entity &apos;%1&apos; not declared.</source>
-        <translation type="unfinished"></translation>
+        <translation>Entité &apos;%1&apos; non déclarée.</translation>
     </message>
     <message>
         <source>Reference to external entity &apos;%1&apos; in attribute value.</source>
-        <translation type="unfinished"></translation>
+        <translation>Référence à l&apos;entité externe &apos;%1&apos; en valeur d&apos;attribut.</translation>
     </message>
     <message>
         <source>Invalid character reference.</source>
-        <translation type="unfinished"></translation>
+        <translation>Référence à un caractère invalide.</translation>
     </message>
     <message>
         <source>Encountered incorrectly encoded content.</source>
-        <translation type="unfinished"></translation>
+        <translation>Du contenu avec un encodage incorrect a été rencontré.</translation>
     </message>
     <message>
         <source>The standalone pseudo attribute must appear after the encoding.</source>
-        <translation type="unfinished"></translation>
+        <translation>Le pseudo-attribut &quot;standalone&quot; doit apparaître après l&apos;encodage.</translation>
     </message>
     <message>
         <source>%1 is an invalid PUBLIC identifier.</source>
-        <translation type="unfinished"></translation>
+        <translation>%1 n&apos;est pas un identifiant &quot;PUBLIC&quot; valide.</translation>
     </message>
 </context>
 <context>
     <name>QtXmlPatterns</name>
     <message>
-        <location filename="../src/xmlpatterns/acceltree/qacceltreebuilder.cpp" line="+205"/>
         <source>An %1-attribute with value %2 has already been declared.</source>
-        <translation>Un attribute %1 avec la valeur %2 est déjà déclaré.</translation>
-    </message>
-    <message>
-        <location line="+13"/>
+        <translation type="obsolete">Un attribute %1 avec la valeur %2 est déjà déclaré.</translation>
+    </message>
+    <message>
         <source>An %1-attribute must have a valid %2 as value, which %3 isn&apos;t.</source>
-        <translation>Un attribute %1 doit avoir un %2 valide, %3 ne l&apos;a pas.</translation>
+        <translation type="obsolete">Un attribute %1 doit avoir un %2 valide, %3 ne l&apos;a pas.</translation>
     </message>
     <message>
         <source>Network timeout.</source>
@@ -6871,7 +8960,7 @@
     </message>
     <message>
         <source>Overflow: Can&apos;t represent date %1.</source>
-        <translation>Overflow: ne peut pas représenter la date %1.</translation>
+        <translation>Overflow : impossible de représenter la date %1.</translation>
     </message>
     <message>
         <source>Day %1 is invalid for month %2.</source>
@@ -6879,11 +8968,11 @@
     </message>
     <message>
         <source>Time 24:%1:%2.%3 is invalid. Hour is 24, but minutes, seconds, and milliseconds are not all 0; </source>
-        <translation>L&apos;heure 24:%1:%2.%3 est invalide. L&apos;heure est 24 mais les minutes, seconndes et millisecondes ne sont pas à 0;</translation>
+        <translation>Heure 24 : %1 : %2.%3 est invalide. L&apos;heure est 24 mais les minutes, secondes et millisecondes ne sont pas à 0;</translation>
     </message>
     <message>
         <source>Time %1:%2:%3.%4 is invalid.</source>
-        <translation>L&apos;heure %1:%2:%3.%4 est invalide.</translation>
+        <translation>L&apos;heure %1 : %2 : %3.%4 est invalide.</translation>
     </message>
     <message>
         <source>Overflow: Date can&apos;t be represented.</source>
@@ -6898,19 +8987,16 @@
         <translation>Au moins un composant doit apparaître après le délimiteur %1.</translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/data/qabstractfloatmathematician.cpp" line="+64"/>
         <source>No operand in an integer division, %1, can be %2.</source>
-        <translation>Pas d&apos;opérande dans une division entière, %1, peut être %2.</translation>
-    </message>
-    <message>
-        <location line="+7"/>
+        <translation type="obsolete">Pas d&apos;opérande dans une division entière, %1, peut être %2.</translation>
+    </message>
+    <message>
         <source>The first operand in an integer division, %1, cannot be infinity (%2).</source>
-        <translation>Le premier opérande dans une division entière, %1, ne peut être infini (%2).</translation>
-    </message>
-    <message>
-        <location line="+6"/>
+        <translation type="obsolete">Le premier opérande dans une division entière, %1, ne peut être infini (%2).</translation>
+    </message>
+    <message>
         <source>The second operand in a division, %1, cannot be zero (%2).</source>
-        <translation>Le second opérande dans une division, %1, ne peut être nul (%2).</translation>
+        <translation type="obsolete">Le second opérande dans une division, %1, ne peut être nul (%2).</translation>
     </message>
     <message>
         <source>%1 is not a valid value of type %2.</source>
@@ -6946,7 +9032,7 @@
     </message>
     <message>
         <source>A value of type %1 cannot have an Effective Boolean Value.</source>
-        <translation>Une valeur de type %1 ne peut pas avoir une Effective Boolean Value.</translation>
+        <translation>Une valeur de type %1 ne peut pas avoir une valeur booléene effective.</translation>
     </message>
     <message>
         <source>Effective Boolean Value cannot be calculated for a sequence containing two or more atomic values.</source>
@@ -6993,29 +9079,24 @@
         <translation>En castant vers %1 ou des types dérivés, la valeur source doit être du même type ou une chaîne. Le type %2 n&apos;est pas autorisé.</translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/expr/qcastingplatform.cpp" line="+134"/>
         <source>No casting is possible with %1 as the target type.</source>
-        <translation>Aucun cast n&apos;est possible avec %1 comme type de destination.</translation>
-    </message>
-    <message>
-        <location line="+15"/>
+        <translation type="obsolete">Aucun cast n&apos;est possible avec %1 comme type de destination.</translation>
+    </message>
+    <message>
         <source>It is not possible to cast from %1 to %2.</source>
-        <translation>Il est impossible de caster de %1 en %2.</translation>
-    </message>
-    <message>
-        <location line="+27"/>
+        <translation type="obsolete">Il est impossible de caster de %1 en %2.</translation>
+    </message>
+    <message>
         <source>Casting to %1 is not possible because it is an abstract type, and can therefore never be instantiated.</source>
-        <translation>Caster vers %1 est impossible parce que c&apos;est un type abstrait qui ne peut donc être instancié.</translation>
-    </message>
-    <message>
-        <location line="+23"/>
+        <translation type="obsolete">Caster vers %1 est impossible parce que c&apos;est un type abstrait qui ne peut donc être instancié.</translation>
+    </message>
+    <message>
         <source>It&apos;s not possible to cast the value %1 of type %2 to %3</source>
-        <translation>I lest impossible de caster la valeur %1 de type %2 en %3</translation>
-    </message>
-    <message>
-        <location line="+8"/>
+        <translation type="obsolete">I lest impossible de caster la valeur %1 de type %2 en %3</translation>
+    </message>
+    <message>
         <source>Failure when casting from %1 to %2: %3</source>
-        <translation>Echec en castant de %1 ver %2 : %3</translation>
+        <translation type="obsolete">Echec en castant de %1 ver %2 : %3</translation>
     </message>
     <message>
         <source>A comment cannot contain %1</source>
@@ -7026,14 +9107,12 @@
         <translation>Un commentaire ne peut pas finir par %1.</translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/expr/qcomparisonplatform.cpp" line="+167"/>
         <source>No comparisons can be done involving the type %1.</source>
-        <translation>Aucune comparaison ne peut être faite avec le type %1.</translation>
-    </message>
-    <message>
-        <location line="+14"/>
+        <translation type="obsolete">Aucune comparaison ne peut être faite avec le type %1.</translation>
+    </message>
+    <message>
         <source>Operator %1 is not available between atomic values of type %2 and %3.</source>
-        <translation>L&apos;opérateur %1 n&apos;est pas disponible entre valeurs atomiques de type %2 et %3.</translation>
+        <translation type="obsolete">L&apos;opérateur %1 n&apos;est pas disponible entre valeurs atomiques de type %2 et %3.</translation>
     </message>
     <message>
         <source>An attribute node cannot be a child of a document node. Therefore, the attribute %1 is out of place.</source>
@@ -7056,9 +9135,8 @@
         <translation>Un prédicat de position doit être évalué en une unique valeur numérique.</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>Le nom de destination dans une instruction de traitement ne peut être %1. %2 est invalide.</translation>
+        <translation type="obsolete">Le nom de destination dans une instruction de traitement ne peut être %1. %2 est invalide.</translation>
     </message>
     <message>
         <source>%1 is not a valid target name in a processing instruction. It must be a %2 value, e.g. %3.</source>
@@ -7115,9 +9193,8 @@
         <translation>%1 n&apos;est pas un caractère XML 1.0 valide.</translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/functions/qcomparingaggregator.cpp" line="+197"/>
         <source>The first argument to %1 cannot be of type %2.</source>
-        <translation>Le premier argument de %1 ne peut être du type %2.</translation>
+        <translation type="obsolete">Le premier argument de %1 ne peut être du type %2.</translation>
     </message>
     <message>
         <source>If both values have zone offsets, they must have the same zone offset. %1 and %2 are not the same.</source>
@@ -7157,11 +9234,11 @@
     </message>
     <message>
         <source>%1 is an invalid regular expression pattern: %2</source>
-        <translation>%1 est un modèle d&apos;expression régulière invalide: %2</translation>
+        <translation>%1 est un modèle d&apos;expression régulière invalide : %2</translation>
     </message>
     <message>
         <source>%1 is an invalid flag for regular expressions. Valid flags are:</source>
-        <translation>%1 est un flag invalide pour des expressions régulières. Les flags valides sont :</translation>
+        <translation>%1 est un flag invalide pour des expressions régulières. Les flags valides sont : </translation>
     </message>
     <message>
         <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>
@@ -7216,9 +9293,8 @@
         <translation>L&apos;initialisation de la variable %1 dépend d&apos;elle-même</translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/parser/qquerytransformparser.cpp" line="+912"/>
         <source>No variable by name %1 exists</source>
-        <translation>Aucun variable nommée %1 existe</translation>
+        <translation type="obsolete">Aucun variable nommée %1 existe</translation>
     </message>
     <message>
         <source>The variable %1 is unused</source>
@@ -7281,42 +9357,36 @@
         <translation type="obsolete">Une variable du nom %1 a déjà été déclarée dans le prologue.</translation>
     </message>
     <message>
-        <location line="+3572"/>
         <source>No value is available for the external variable by name %1.</source>
-        <translation>Aucune valeur n&apos;est disponible pour la variable externe %1.</translation>
+        <translation type="obsolete">Aucune valeur n&apos;est disponible pour la variable externe %1.</translation>
     </message>
     <message>
         <source>The namespace for a user defined function cannot be empty(try the predefined prefix %1 which exists for cases like this)</source>
         <translation type="obsolete">Le namespace d&apos;une fonction définie par l&apos;utilisateur ne peut être vide (essayez le préfixe prédéfini %1 qui existe pour ce genre de cas)</translation>
     </message>
     <message>
-        <location line="-4154"/>
         <source>A construct was encountered which only is allowed in XQuery.</source>
-        <translation>Construct n&apos;est autorisé que dans XQuery.</translation>
-    </message>
-    <message>
-        <location line="+118"/>
+        <translation type="obsolete">Construct n&apos;est autorisé que dans XQuery.</translation>
+    </message>
+    <message>
         <source>A template by name %1 has already been declared.</source>
-        <translation>Un template nommé %1 a déjà été déclaré.</translation>
+        <translation type="obsolete">Un template nommé %1 a déjà été déclaré.</translation>
     </message>
     <message>
         <source>The keyword %1 cannot occur with any other mode name.</source>
         <translation>Le mot-clé %1 ne peut pas apparaître avec un autre nom de mode.</translation>
     </message>
     <message>
-        <location line="+3610"/>
         <source>The value of attribute %1 must of type %2, which %3 isn&apos;t.</source>
-        <translation>La valeur de l&apos;attribut %1 doit être du type %2, %3 n&apos;en est pas.</translation>
-    </message>
-    <message>
-        <location line="+75"/>
+        <translation type="obsolete">La valeur de l&apos;attribut %1 doit être du type %2, %3 n&apos;en est pas.</translation>
+    </message>
+    <message>
         <source>The prefix %1 can not be bound. By default, it is already bound to the namespace %2.</source>
-        <translation>Le préfixe %1 ne peut être lié. Par défault, il est déjà lié au namespace %2.</translation>
-    </message>
-    <message>
-        <location line="+312"/>
+        <translation type="obsolete">Le préfixe %1 ne peut être lié. Par défault, il est déjà lié au namespace %2.</translation>
+    </message>
+    <message>
         <source>A variable by name %1 has already been declared.</source>
-        <translation>Une variable nommée %1 a déjà été déclarée.</translation>
+        <translation type="obsolete">Une variable nommée %1 a déjà été déclarée.</translation>
     </message>
     <message>
         <source>A stylesheet function must have a prefixed name.</source>
@@ -7343,9 +9413,8 @@
         <translation>Les fonctions externes ne sont pas supportées. Toutes les fonctions supportées peuvent êter utilisées directement sans les déclarer préalablement comme externes</translation>
     </message>
     <message>
-        <location line="+259"/>
         <source>An argument by name %1 has already been declared. Every argument name must be unique.</source>
-        <translation>Un argument nommé %1 a déjà été déclaré. Chaque nom d&apos;argument doit être unique.</translation>
+        <translation type="obsolete">Un argument nommé %1 a déjà été déclaré. Chaque nom d&apos;argument doit être unique.</translation>
     </message>
     <message>
         <source>When function %1 is used for matching inside a pattern, the argument must be a variable reference or a string literal.</source>
@@ -7404,9 +9473,8 @@
         <translation>%1 n&apos;est pas une valeur numérique valide.</translation>
     </message>
     <message>
-        <location line="+1935"/>
         <source>No function by name %1 is available.</source>
-        <translation>La fonction %1 n&apos;est pas disponible.</translation>
+        <translation type="obsolete">La fonction %1 n&apos;est pas disponible.</translation>
     </message>
     <message>
         <source>The namespace URI cannot be the empty string when binding to a prefix, %1.</source>
@@ -7437,9 +9505,8 @@
         <translation>L&apos;URI de namespace doit être une constante et ne peut contenir d&apos;expressions.</translation>
     </message>
     <message>
-        <location line="+250"/>
         <source>An attribute by name %1 has already appeared on this element.</source>
-        <translation>Un attribute nommé %1 existe déjà pour cet élément.</translation>
+        <translation type="obsolete">Un attribute nommé %1 existe déjà pour cet élément.</translation>
     </message>
     <message>
         <source>A direct element constructor is not well-formed. %1 is ended with %2.</source>
@@ -7558,9 +9625,8 @@
         <translation>Seul le préfixe %1 peut être lié à %2, et vice versa.</translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/expr/qevaluationcache.cpp" line="+117"/>
         <source>Circularity detected</source>
-        <translation>Circularité détectée</translation>
+        <translation type="obsolete">Circularité détectée</translation>
     </message>
     <message>
         <source>The parameter %1 is required, but no corresponding %2 is supplied.</source>
@@ -7575,16 +9641,12 @@
         <translation>L&apos;URI ne peut pas avoir de fragments</translation>
     </message>
     <message>
-        <source>Element %1 is not allowed at this location.</source>
+        <source></source>
         <translation>L&apos;élément %1 n&apos;est pas autorisé à cet emplacement.</translation>
     </message>
     <message>
-        <source>Text nodes are not allowed at this location.</source>
-        <translation>Les noeuds de texte ne sont pas autorisés à cet emplacement.</translation>
-    </message>
-    <message>
         <source>Parse error: %1</source>
-        <translation>Erreur: %1</translation>
+        <translation>Erreur : %1</translation>
     </message>
     <message>
         <source>The value of the XSL-T version attribute must be a value of type %1, which %2 isn&apos;t.</source>
@@ -7619,39 +9681,32 @@
         <translation>Au moins un mode doit être spécifié dans l&apos;attribut %1 sur l&apos;élément %2.</translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/parser/qmaintainingreader.cpp" line="+183"/>
         <source>Attribute %1 cannot appear on the element %2. Only the standard attributes can appear.</source>
-        <translation>L&apos;attribut %1 ne peut pas apparaître sur l&apos;élément %2. Seuls les attributs standard le peuvent.</translation>
-    </message>
-    <message>
-        <location line="+6"/>
+        <translation type="obsolete">L&apos;attribut %1 ne peut pas apparaître sur l&apos;élément %2. Seuls les attributs standard le peuvent.</translation>
+    </message>
+    <message>
         <source>Attribute %1 cannot appear on the element %2. Only %3 is allowed, and the standard attributes.</source>
-        <translation>L&apos;attribut %1 ne peut pas apparaître sur l&apos;élément %2. Seul %3 est autorisé, ainsi que les attributs standard.</translation>
-    </message>
-    <message>
-        <location line="+8"/>
+        <translation type="obsolete">L&apos;attribut %1 ne peut pas apparaître sur l&apos;élément %2. Seul %3 est autorisé, ainsi que les attributs standard.</translation>
+    </message>
+    <message>
         <source>Attribute %1 cannot appear on the element %2. Allowed is %3, %4, and the standard attributes.</source>
-        <translation>L&apos;attribut %1 ne peut pas apparaître sur l&apos;élément %2. Seuls %3, %4 et les attributs standard le sont.</translation>
-    </message>
-    <message>
-        <location line="+9"/>
+        <translation type="obsolete">L&apos;attribut %1 ne peut pas apparaître sur l&apos;élément %2. Seuls %3, %4 et les attributs standard le sont.</translation>
+    </message>
+    <message>
         <source>Attribute %1 cannot appear on the element %2. Allowed is %3, and the standard attributes.</source>
-        <translation>L&apos;attribut %1 ne peut pas apparaître sur l&apos;élément %2. Seul %3 et les attributs standard le sont.</translation>
-    </message>
-    <message>
-        <location line="+13"/>
+        <translation type="obsolete">L&apos;attribut %1 ne peut pas apparaître sur l&apos;élément %2. Seul %3 et les attributs standard le sont.</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>Les attributs XSL-T sur des éléments XSL-T doivent être dans le namespace null, et pas dans %1.</translation>
-    </message>
-    <message>
-        <location line="+12"/>
+        <translation type="obsolete">Les attributs XSL-T sur des éléments XSL-T doivent être dans le namespace null, et pas dans %1.</translation>
+    </message>
+    <message>
         <source>The attribute %1 must appear on element %2.</source>
-        <translation>L&apos;attribut %1 doit apparaître sur l&apos;élément %2.</translation>
-    </message>
-    <message>
-        <location line="+8"/>
+        <translation type="obsolete">L&apos;attribut %1 doit apparaître sur l&apos;élément %2.</translation>
+    </message>
+    <message>
         <source>The element with local name %1 does not exist in XSL-T.</source>
-        <translation>L&apos;élément avec le nom local %1 n&apos;existe pas dans XSL-T.</translation>
+        <translation type="obsolete">L&apos;élément avec le nom local %1 n&apos;existe pas dans XSL-T.</translation>
     </message>
     <message>
         <source>Element %1 must come last.</source>
@@ -8849,15 +10904,12 @@
 <context>
     <name>VolumeSlider</name>
     <message>
-        <location filename="../src/3rdparty/phonon/phonon/volumeslider.cpp" line="+184"/>
         <source>Muted</source>
-        <translation>Muet</translation>
-    </message>
-    <message>
-        <location line="+5"/>
-        <location line="+15"/>
+        <translation type="obsolete">Muet</translation>
+    </message>
+    <message>
         <source>Volume: %1%</source>
-        <translation>Volume : %1%</translation>
+        <translation type="obsolete">Volume : %1%</translation>
     </message>
 </context>
 <context>
@@ -8915,655 +10967,4 @@
         <translation type="obsolete">Défiler vers le bas</translation>
     </message>
 </context>
-<context>
-    <name>FakeReply</name>
-    <message>
-        <source>Fake error !</source>
-        <translation>Fausse erreur!</translation>
-    </message>
-    <message>
-        <source>Invalid URL</source>
-        <translation>URL non valide</translation>
-    </message>
-</context>
-<context>
-    <name>Phonon::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>&lt;html&gt;Le périphérique audio &lt;b&gt;%1&lt;/b&gt; ne fonctionne pas.&lt;br/&gt;Repli sur &lt;b&gt;%2&lt;/b&gt;.&lt;/html&gt;</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>&lt;html&gt;Basculement vers le périphérique audio &lt;b&gt;%1&lt;/b&gt;&lt;br/&gt;qui vient juste d&apos;être disponible et dont le niveau de préférence est plus élevé.&lt;/html&gt;</translation>
-    </message>
-    <message>
-        <source>Revert back to device &apos;%1&apos;</source>
-        <translation>Revenir au périphérique &apos;%1&apos;</translation>
-    </message>
-</context>
-<context>
-    <name>Phonon::MMF</name>
-    <message>
-        <source>Audio Output</source>
-        <translation>Sortie audio</translation>
-    </message>
-    <message>
-        <source>The audio output device</source>
-        <translation>Périphérique audio de sortie</translation>
-    </message>
-    <message>
-        <source>No error</source>
-        <translation>Aucune erreur</translation>
-    </message>
-    <message>
-        <source>Not found</source>
-        <translation>Introuvable</translation>
-    </message>
-    <message>
-        <source>Out of memory</source>
-        <translation>Mémoire insuffisante</translation>
-    </message>
-    <message>
-        <source>Not supported</source>
-        <translation>Non supporté</translation>
-    </message>
-    <message>
-        <source>Overflow</source>
-        <translation>Dépassement</translation>
-    </message>
-    <message>
-        <source>Underflow</source>
-        <translation>Soupassement</translation>
-    </message>
-    <message>
-        <source>Already exists</source>
-        <translation>Existe déjà</translation>
-    </message>
-    <message>
-        <source>Path not found</source>
-        <translation>Chemin introuvable</translation>
-    </message>
-    <message>
-        <source>In use</source>
-        <translation>Utilisé</translation>
-    </message>
-    <message>
-        <source>Not ready</source>
-        <translation>Pas prêt</translation>
-    </message>
-    <message>
-        <source>Access denied</source>
-        <translation>Accès refusé</translation>
-    </message>
-    <message>
-        <source>Could not connect</source>
-        <translation>Connexion impossible</translation>
-    </message>
-    <message>
-        <source>Disconnected</source>
-        <translation>Déconnecté</translation>
-    </message>
-    <message>
-        <source>Permission denied</source>
-        <translation>Autorisation refusée</translation>
-    </message>
-    <message>
-        <source>Insufficient bandwidth</source>
-        <translation>Bande passante insuffisante</translation>
-    </message>
-    <message>
-        <source>Network unavailable</source>
-        <translation>Réseau non disponible</translation>
-    </message>
-    <message>
-        <source>Network communication error</source>
-        <translation>Erreur de communication réseau</translation>
-    </message>
-    <message>
-        <source>Streaming not supported</source>
-        <translation>Streaming non supporté</translation>
-    </message>
-    <message>
-        <source>Server alert</source>
-        <translation>Alerte serveur</translation>
-    </message>
-    <message>
-        <source>Invalid protocol</source>
-        <translation>Protocole non valide</translation>
-    </message>
-    <message>
-        <source>Invalid URL</source>
-        <translation>URL non valide</translation>
-    </message>
-    <message>
-        <source>Multicast error</source>
-        <translation>Erreur multicast</translation>
-    </message>
-    <message>
-        <source>Proxy server error</source>
-        <translation>Erreur du serveur proxy</translation>
-    </message>
-    <message>
-        <source>Proxy server not supported</source>
-        <translation>Serveur proxy non supporté</translation>
-    </message>
-    <message>
-        <source>Audio output error</source>
-        <translation>Erreur de sortie audio</translation>
-    </message>
-    <message>
-        <source>Video output error</source>
-        <translation>Erreur de sortie vidéo</translation>
-    </message>
-    <message>
-        <source>Decoder error</source>
-        <translation>Erreur du décodeur</translation>
-    </message>
-    <message>
-        <source>Audio or video components could not be played</source>
-        <translation>Les composants audio ou vidéo n&apos;ont pas pu être lus</translation>
-    </message>
-    <message>
-        <source>DRM error</source>
-        <translation>Erreur GDN</translation>
-    </message>
-    <message>
-        <source>Unknown error (%1)</source>
-        <translation>Erreur inconnue (%1)</translation>
-    </message>
-</context>
-<context>
-    <name>Phonon::MMF::AbstractMediaPlayer</name>
-    <message>
-        <source>Not ready to play</source>
-        <translation>Pas prêt pour lecture</translation>
-    </message>
-    <message>
-        <source>Error opening file</source>
-        <translation>Erreur lors de l&apos;ouverture du fichier</translation>
-    </message>
-    <message>
-        <source>Error opening URL</source>
-        <translation>Erreur lors de l&apos;ouverture de l&apos;URL</translation>
-    </message>
-    <message>
-        <source>Setting volume failed</source>
-        <translation>Le réglage du volume a échoué</translation>
-    </message>
-    <message>
-        <source>Playback complete</source>
-        <translation>Lecture terminée</translation>
-    </message>
-</context>
-<context>
-    <name>Phonon::MMF::AudioEqualizer</name>
-    <message>
-        <source>%1 Hz</source>
-        <translation>%1 Hz</translation>
-    </message>
-</context>
-<context>
-    <name>Phonon::MMF::AudioPlayer</name>
-    <message>
-        <source>Getting position failed</source>
-        <translation>L&apos;obtention de la position a échoué</translation>
-    </message>
-    <message>
-        <source>Opening clip failed</source>
-        <translation>L&apos;ouverture du clip a échoué</translation>
-    </message>
-</context>
-<context>
-    <name>Phonon::MMF::EffectFactory</name>
-    <message>
-        <source>Enabled</source>
-        <translation>Activé</translation>
-    </message>
-</context>
-<context>
-    <name>Phonon::MMF::EnvironmentalReverb</name>
-    <message>
-        <source>Decay HF ratio (%)</source>
-        <translation>Ratio HF du déclin (%)</translation>
-    </message>
-    <message>
-        <source>Decay time (ms)</source>
-        <translation>Temps de déclin (ms)</translation>
-    </message>
-    <message>
-        <source>Density (%)</source>
-        <translation>Densité (%)</translation>
-    </message>
-    <message>
-        <source>Diffusion (%)</source>
-        <translation>Diffusion (%)</translation>
-    </message>
-    <message>
-        <source>Reflections delay (ms)</source>
-        <translation>Délai réflexions (ms)</translation>
-    </message>
-    <message>
-        <source>Reflections level (mB)</source>
-        <translation>Niveau réflexions (mB)</translation>
-    </message>
-    <message>
-        <source>Reverb delay (ms)</source>
-        <translation>Délai de réverbération (ms)</translation>
-    </message>
-    <message>
-        <source>Reverb level (mB)</source>
-        <translation>Niveau de réverbération (mB)</translation>
-    </message>
-    <message>
-        <source>Room HF level</source>
-        <translation>Niveau HF pièce</translation>
-    </message>
-    <message>
-        <source>Room level (mB)</source>
-        <translation>Niveau pièce (mB)</translation>
-    </message>
-</context>
-<context>
-    <name>Phonon::MMF::MediaObject</name>
-    <message>
-        <source>Error opening source: type not supported</source>
-        <translation>Erreur lors de l&apos;ouverture de la source: type non supporté</translation>
-    </message>
-    <message>
-        <source>Error opening source: media type could not be determined</source>
-        <translation>Erreur lors de l&apos;ouverture de la source: type de média non déterminé</translation>
-    </message>
-</context>
-<context>
-    <name>Phonon::MMF::StereoWidening</name>
-    <message>
-        <source>Level (%)</source>
-        <translation>Niveau (%)</translation>
-    </message>
-</context>
-<context>
-    <name>Phonon::MMF::VideoPlayer</name>
-    <message>
-        <source>Pause failed</source>
-        <translation>La mise en pause a échoué</translation>
-    </message>
-    <message>
-        <source>Seek failed</source>
-        <translation>La recherche a échoué</translation>
-    </message>
-    <message>
-        <source>Getting position failed</source>
-        <translation>L&apos;obtention de la position a échoué</translation>
-    </message>
-    <message>
-        <source>Opening clip failed</source>
-        <translation>L&apos;ouverture du clip a échoué</translation>
-    </message>
-    <message>
-        <source>Buffering clip failed</source>
-        <translation>La mise en mémoire tampon du clip a échoué</translation>
-    </message>
-    <message>
-        <source>Video display error</source>
-        <translation>Erreur de l&apos;affichage vidéo</translation>
-    </message>
-</context>
-<context>
-    <name>QAccessibleButton</name>
-    <message>
-        <source>Press</source>
-        <translation>Appuyer</translation>
-    </message>
-</context>
-<context>
-    <name>QNetworkAccessDebugPipeBackend</name>
-    <message>
-        <source>Write error writing to %1: %2</source>
-        <translation>Erreur lors de l&apos;écriture dans %1: %2</translation>
-    </message>
-</context>
-<context>
-    <name>QScriptBreakpointsModel</name>
-    <message>
-        <source>ID</source>
-        <translation>Identifiant</translation>
-    </message>
-    <message>
-        <source>Location</source>
-        <translation>Lieu</translation>
-    </message>
-    <message>
-        <source>Condition</source>
-        <translation>Condition</translation>
-    </message>
-    <message>
-        <source>Ignore-count</source>
-        <translation>Comptes d&apos;ignorés</translation>
-    </message>
-    <message>
-        <source>Single-shot</source>
-        <translation>Un seul tir</translation>
-    </message>
-    <message>
-        <source>Hit-count</source>
-        <translation>Compte de coups</translation>
-    </message>
-</context>
-<context>
-    <name>QScriptBreakpointsWidget</name>
-    <message>
-        <source>New</source>
-        <translation>Créer</translation>
-    </message>
-    <message>
-        <source>Delete</source>
-        <translation>Supprimer</translation>
-    </message>
-</context>
-<context>
-    <name>QScriptDebugger</name>
-    <message>
-        <source>Go to Line</source>
-        <translation>Aller à la ligne</translation>
-    </message>
-    <message>
-        <source>Line:</source>
-        <translation>Ligne:</translation>
-    </message>
-    <message>
-        <source>Interrupt</source>
-        <translation>Interrompre</translation>
-    </message>
-    <message>
-        <source>Shift+F5</source>
-        <translation>Shift+F5</translation>
-    </message>
-    <message>
-        <source>Continue</source>
-        <translation>Continuer</translation>
-    </message>
-    <message>
-        <source>F5</source>
-        <translation>F5</translation>
-    </message>
-    <message>
-        <source>Step Into</source>
-        <translation>Pas à pas détaillé</translation>
-    </message>
-    <message>
-        <source>F11</source>
-        <translation>F11</translation>
-    </message>
-    <message>
-        <source>Step Over</source>
-        <translation>Pas à pas principal</translation>
-    </message>
-    <message>
-        <source>F10</source>
-        <translation>F10</translation>
-    </message>
-    <message>
-        <source>Step Out</source>
-        <translation>Pas à pas sortant</translation>
-    </message>
-    <message>
-        <source>Shift+F11</source>
-        <translation>Shift+F11</translation>
-    </message>
-    <message>
-        <source>Run to Cursor</source>
-        <translation>Exécuter au curseur</translation>
-    </message>
-    <message>
-        <source>Ctrl+F10</source>
-        <translation>Ctrl+F10</translation>
-    </message>
-    <message>
-        <source>Run to New Script</source>
-        <translation>Exécuter au nouveau script</translation>
-    </message>
-    <message>
-        <source>Toggle Breakpoint</source>
-        <translation>Basculer le point d&apos;arrêt</translation>
-    </message>
-    <message>
-        <source>F9</source>
-        <translation>F9</translation>
-    </message>
-    <message>
-        <source>Clear Debug Output</source>
-        <translation>Effacer les résultats du débogage</translation>
-    </message>
-    <message>
-        <source>Clear Error Log</source>
-        <translation>Effacer le journal d&apos;erreurs</translation>
-    </message>
-    <message>
-        <source>Clear Console</source>
-        <translation>Effacer la console</translation>
-    </message>
-    <message>
-        <source>&amp;Find in Script...</source>
-        <translation>&amp;Chercher dans le script...</translation>
-    </message>
-    <message>
-        <source>Ctrl+F</source>
-        <translation>Ctrl+F</translation>
-    </message>
-    <message>
-        <source>Find &amp;Next</source>
-        <translation>Résultat &amp;suivant</translation>
-    </message>
-    <message>
-        <source>F3</source>
-        <translation>F3</translation>
-    </message>
-    <message>
-        <source>Find &amp;Previous</source>
-        <translation>Chercher &amp;précédent</translation>
-    </message>
-    <message>
-        <source>Shift+F3</source>
-        <translation>Shift+F3</translation>
-    </message>
-    <message>
-        <source>Ctrl+G</source>
-        <translation>Ctrl+G</translation>
-    </message>
-    <message>
-        <source>Debug</source>
-        <translation>Déboguer</translation>
-    </message>
-</context>
-<context>
-    <name>QScriptDebuggerCodeFinderWidget</name>
-    <message>
-        <source>Close</source>
-        <translation>Fermer</translation>
-    </message>
-    <message>
-        <source>Previous</source>
-        <translation>Précédent</translation>
-    </message>
-    <message>
-        <source>Next</source>
-        <translation>Suivant</translation>
-    </message>
-    <message>
-        <source>Case Sensitive</source>
-        <translation>Sensible à la casse</translation>
-    </message>
-    <message>
-        <source>Whole words</source>
-        <translation>Mots entiers</translation>
-    </message>
-    <message>
-        <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;La recherche est revenue au début</translation>
-    </message>
-</context>
-<context>
-    <name>QScriptDebuggerLocalsModel</name>
-    <message>
-        <source>Name</source>
-        <translation>Nom</translation>
-    </message>
-    <message>
-        <source>Value</source>
-        <translation>Valeur</translation>
-    </message>
-</context>
-<context>
-    <name>QScriptDebuggerStackModel</name>
-    <message>
-        <source>Level</source>
-        <translation>Niveau</translation>
-    </message>
-    <message>
-        <source>Name</source>
-        <translation>Nom</translation>
-    </message>
-    <message>
-        <source>Location</source>
-        <translation>Lieu</translation>
-    </message>
-</context>
-<context>
-    <name>QScriptEdit</name>
-    <message>
-        <source>Toggle Breakpoint</source>
-        <translation>Basculer le point d&apos;arrêt</translation>
-    </message>
-    <message>
-        <source>Disable Breakpoint</source>
-        <translation>Désactiver le point d&apos;arrêt</translation>
-    </message>
-    <message>
-        <source>Enable Breakpoint</source>
-        <translation>Activer le point d&apos;arrêt</translation>
-    </message>
-    <message>
-        <source>Breakpoint Condition:</source>
-        <translation>Condition du point d&apos;arrêt:</translation>
-    </message>
-</context>
-<context>
-    <name>QScriptEngineDebugger</name>
-    <message>
-        <source>Loaded Scripts</source>
-        <translation>Scripts chargés</translation>
-    </message>
-    <message>
-        <source>Breakpoints</source>
-        <translation>Points d&apos;arrêt</translation>
-    </message>
-    <message>
-        <source>Stack</source>
-        <translation>Empiler</translation>
-    </message>
-    <message>
-        <source>Locals</source>
-        <translation>Locaux</translation>
-    </message>
-    <message>
-        <source>Console</source>
-        <translation>Console</translation>
-    </message>
-    <message>
-        <source>Debug Output</source>
-        <translation>Résultats du débogage</translation>
-    </message>
-    <message>
-        <source>Error Log</source>
-        <translation>Journal d&apos;erreurs</translation>
-    </message>
-    <message>
-        <source>Search</source>
-        <translation>Chercher</translation>
-    </message>
-    <message>
-        <source>View</source>
-        <translation>Afficher</translation>
-    </message>
-    <message>
-        <source>Qt Script Debugger</source>
-        <translation>Débogueur de script Qt</translation>
-    </message>
-</context>
-<context>
-    <name>QScriptNewBreakpointWidget</name>
-    <message>
-        <source>Close</source>
-        <translation>Fermer</translation>
-    </message>
-</context>
-<context>
-    <name>QSoftKeyManager</name>
-    <message>
-        <source>Ok</source>
-        <translation>OK</translation>
-    </message>
-    <message>
-        <source>Select</source>
-        <translation>Sélectionner</translation>
-    </message>
-    <message>
-        <source>Done</source>
-        <translation>Terminer</translation>
-    </message>
-    <message>
-        <source>Options</source>
-        <translation>Options</translation>
-    </message>
-    <message>
-        <source>Cancel</source>
-        <translation>Annuler</translation>
-    </message>
-    <message>
-        <source>Exit</source>
-        <translation>Quitter</translation>
-    </message>
-</context>
-<context>
-    <name>QStateMachine</name>
-    <message>
-        <source>Missing initial state in compound state &apos;%1&apos;</source>
-        <translation>État initial manquant dans l&apos;état composé &apos;%1&apos;</translation>
-    </message>
-    <message>
-        <source>Missing default state in history state &apos;%1&apos;</source>
-        <translation>État par défaut manquant dans l&apos;état de l&apos;historique &apos;%1&apos;</translation>
-    </message>
-    <message>
-        <source>No common ancestor for targets and source of transition from state &apos;%1&apos;</source>
-        <translation>Aucun ancêtre commun pour les cibles et la source de transition de l&apos;état &apos;%1&apos;</translation>
-    </message>
-    <message>
-        <source>Unknown error</source>
-        <translation>Erreur inconnue</translation>
-    </message>
-</context>
-<context>
-    <name>QXmlPatternistCLI</name>
-    <message>
-        <source>Warning in %1, at line %2, column %3: %4</source>
-        <translation>Avertissement dans %1, à la ligne %2, colonne %3: %4</translation>
-    </message>
-    <message>
-        <source>Warning in %1: %2</source>
-        <translation>Avertissement dans %1: %2</translation>
-    </message>
-    <message>
-        <source>Unknown location</source>
-        <translation>Lieu inconnu</translation>
-    </message>
-    <message>
-        <source>Error %1 in %2, at line %3, column %4: %5</source>
-        <translation>Erreur %1 dans %2, à la ligne %3, colonne %4: %5</translation>
-    </message>
-    <message>
-        <source>Error %1 in %2: %3</source>
-        <translation>Erreur %1 dans %2: %3</translation>
-    </message>
-</context>
 </TS>
--- a/translations/qt_help_de.ts	Fri Sep 17 08:34:18 2010 +0300
+++ b/translations/qt_help_de.ts	Mon Oct 04 01:19:32 2010 +0300
@@ -4,106 +4,92 @@
 <context>
     <name>QCLuceneResultWidget</name>
     <message>
-        <location filename="../tools/assistant/lib/qhelpsearchresultwidget.cpp" line="+110"/>
         <source>Search Results</source>
         <translation>Suchergebnisse</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Note:</source>
         <translation>Achtung:</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>The search results may not be complete since the documentation is still being indexed!</source>
         <translation>Es können nicht alle möglichen Ergebnisse angezeigt werden, da die Dokumentation noch indiziert wird.</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>Your search did not match any documents.</source>
         <translation>Es wurden keine mit Ihrer Suche übereinstimmenden Dokumente gefunden.</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>(The reason for this might be that the documentation is still being indexed.)</source>
         <translation>(Ein Grund dafür könnte sein, das die Dokumentation noch nicht vollständig indiziert ist.)</translation>
     </message>
 </context>
 <context>
+    <name>QHelp</name>
+    <message>
+        <source>Untitled</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>QHelpCollectionHandler</name>
     <message>
-        <location filename="../tools/assistant/lib/qhelpcollectionhandler.cpp" line="+79"/>
         <source>The collection file &apos;%1&apos; is not set up yet!</source>
         <translation>Die Katalogdatei &apos;%1&apos; ist noch nicht eingerichtet.</translation>
     </message>
     <message>
-        <location line="+23"/>
         <source>Cannot load sqlite database driver!</source>
         <translation>Der Datenbanktreiber für SQLite kann nicht geladen werden.</translation>
     </message>
     <message>
-        <location line="+11"/>
-        <location line="+52"/>
         <source>Cannot open collection file: %1</source>
         <translation>Katalogdatei kann nicht geöffnet werden: %1</translation>
     </message>
     <message>
-        <location line="-40"/>
         <source>Cannot create tables in file %1!</source>
         <translation>In Datei %1 können keine Tabellen angelegt werden.</translation>
     </message>
     <message>
-        <location line="+16"/>
         <source>The collection file &apos;%1&apos; already exists!</source>
         <translation>Die Katalogdatei &apos;%1&apos; existiert bereits.</translation>
     </message>
     <message>
-        <location line="+151"/>
         <source>Unknown filter &apos;%1&apos;!</source>
         <translation>Unbekannter Filter &apos;%1&apos;.</translation>
     </message>
     <message>
-        <location line="+103"/>
         <source>Invalid documentation file &apos;%1&apos;!</source>
         <translation>Ungültige Dokumentationsdatei &apos;%1&apos;.</translation>
     </message>
     <message>
-        <location line="+167"/>
         <source>Cannot register namespace &apos;%1&apos;!</source>
         <translation>Der Namensraum &apos;%1&apos; kann nicht registriert werden.</translation>
     </message>
     <message>
-        <location line="+24"/>
         <source>Cannot open database &apos;%1&apos; to optimize!</source>
         <translation>Die Datenbank &apos;%1&apos; kann nicht zur Optimierung geöffnet werden.</translation>
     </message>
     <message>
-        <location line="-439"/>
         <source>Cannot create directory: %1</source>
         <translation>Das Verzeichnis kann nicht angelegt werden: %1</translation>
     </message>
     <message>
-        <location line="+26"/>
         <source>Cannot copy collection file: %1</source>
         <translation>Die Katalogdatei kann nicht kopiert werden: %1</translation>
     </message>
     <message>
-        <location line="+172"/>
         <source>Cannot register filter %1!</source>
         <translation>Der Filter kann nicht registriert werden: %1</translation>
     </message>
     <message>
-        <location line="+44"/>
         <source>Cannot open documentation file %1!</source>
         <translation>Die Dokumentationsdatei kann nicht geöffnet werden: %1</translation>
     </message>
     <message>
-        <location line="+40"/>
         <source>The namespace %1 was not registered!</source>
         <translation>Der Namensraum %1 wurde nicht registriert.</translation>
     </message>
     <message>
-        <location line="+120"/>
         <source>Namespace %1 already exists!</source>
         <translation>Der Namensraum %1 existiert bereits.</translation>
     </message>
@@ -111,7 +97,6 @@
 <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>Kann Datenbank nicht öffnen: &apos;%1&apos; &apos;%2&apos;: %3</translation>
@@ -120,12 +105,10 @@
 <context>
     <name>QHelpEngineCore</name>
     <message>
-        <location filename="../tools/assistant/lib/qhelpenginecore.cpp" line="+122"/>
         <source>Cannot open documentation file %1: %2!</source>
         <translation>Die Dokumentationsdatei %1 kann nicht geöffnet werden: %2!</translation>
     </message>
     <message>
-        <location line="+404"/>
         <source>The specified namespace does not exist!</source>
         <translation>Der angegebene Namensraum existiert nicht.</translation>
     </message>
@@ -133,132 +116,106 @@
 <context>
     <name>QHelpGenerator</name>
     <message>
-        <location filename="../tools/assistant/lib/qhelpgenerator.cpp" line="+158"/>
         <source>Invalid help data!</source>
         <translation>Ungültige Hilfe-Daten.</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>No output file name specified!</source>
         <translation>Für die Ausgabe-Datei wurde kein Name angegeben.</translation>
     </message>
     <message>
-        <location line="+14"/>
         <source>Building up file structure...</source>
         <translation>Dateistruktur wird erzeugt...</translation>
     </message>
     <message>
-        <location line="-7"/>
         <source>The file %1 cannot be overwritten!</source>
         <translation>Die Datei %1 kann nicht überschrieben werden.</translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>Cannot open data base file %1!</source>
         <translation>Die Datenbank-Datei %1 kann nicht geöffnet werden.</translation>
     </message>
     <message>
-        <location line="+14"/>
         <source>Cannot register namespace %1!</source>
         <translation>Der Namensraum %1 kann nicht registriert werden.</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Insert custom filters...</source>
         <translation>Benutzerdefinierte Filter einfügen...</translation>
     </message>
     <message>
-        <location line="+12"/>
         <source>Insert help data for filter section (%1 of %2)...</source>
         <translation>Hilfe-Daten für Filter-Sektion (%1 von %2) einfügen...</translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>Documentation successfully generated.</source>
         <translation>Dokumentation erfolgreich generiert.</translation>
     </message>
     <message>
-        <location line="+76"/>
         <source>Some tables already exist!</source>
         <translation>Einige Tabellen existieren bereits.</translation>
     </message>
     <message>
-        <location line="+61"/>
         <source>Cannot create tables!</source>
         <translation>Tabellen können nicht erstellt werden.</translation>
     </message>
     <message>
-        <location line="+86"/>
         <source>Cannot register virtual folder!</source>
         <translation>Virtuelles Verzeichnis nicht registriert werden.</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>Insert files...</source>
         <translation>Dateien einfügen...</translation>
     </message>
     <message>
-        <location line="+42"/>
         <source>The referenced file %1 must be inside or within a subdirectory of (%2). Skipping it.</source>
         <translation>Die referenzierte Datei %1 muss sich im Verzeichnis %2 oder in einem Unterverzeichnis davon befinden. Sie wird übersprungen.</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>The file %1 does not exist! Skipping it.</source>
         <translation>Die Datei %1 existiert nicht. Wird übersprungen.</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Cannot open file %1! Skipping it.</source>
         <translation>Die Datei %1 kann nicht geöffnet werden. Wird übersprungen.</translation>
     </message>
     <message>
-        <location line="+133"/>
         <source>The filter %1 is already registered!</source>
         <translation>Der Filter %1 ist bereits registriert.</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Cannot register filter %1!</source>
         <translation>Der Filter %1 kann nicht registriert werden.</translation>
     </message>
     <message>
-        <location line="+24"/>
         <source>Insert indices...</source>
         <translation>Indizes einfügen...</translation>
     </message>
     <message>
-        <location line="+91"/>
         <source>Insert contents...</source>
         <translation>Inhalt einfügen...</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Cannot insert contents!</source>
         <translation>Inhalt kann nicht eingefügt werden.</translation>
     </message>
     <message>
-        <location line="+12"/>
         <source>Cannot register contents!</source>
         <translation>Inhalt kann nicht registriert werden.</translation>
     </message>
     <message>
-        <location line="+56"/>
         <source>File &apos;%1&apos; does not exist.</source>
         <translation>Die Datei &apos;%1&apos; existiert nicht.</translation>
     </message>
     <message>
-        <location line="+19"/>
         <source>File &apos;%1&apos; cannot be opened.</source>
         <translation>Die Datei &apos;%1&apos; kann nicht geöffnet werden.</translation>
     </message>
     <message>
-        <location line="+19"/>
         <source>File &apos;%1&apos; contains an invalid link to file &apos;%2&apos;</source>
         <translation>Die Datei &apos;%1&apos; enthält einen ungültigen Verweis auf die Datei &apos;%2&apos;</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Invalid links in HTML files.</source>
         <translation>Es wurden ungültige Verweise in HTML-Dateien gefunden.</translation>
     </message>
@@ -266,47 +223,38 @@
 <context>
     <name>QHelpProject</name>
     <message>
-        <location filename="../tools/assistant/lib/qhelpprojectdata.cpp" line="+88"/>
         <source>Unknown token.</source>
         <translation>Unbekanntes Token.</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>Unknown token. Expected &quot;QtHelpProject&quot;!</source>
         <translation>Unbekanntes Token. &quot;QtHelpProject&quot; erwartet.</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Error in line %1: %2</source>
         <translation>Fehler in Zeile %1: %2</translation>
     </message>
     <message>
-        <location line="+14"/>
         <source>Virtual folder has invalid syntax.</source>
         <translation>Ungültige Syntax bei Angabe des virtuellen Verzeichnisses.</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Namespace has invalid syntax.</source>
         <translation>Ungültige Syntax der Namensraum-Angabe.</translation>
     </message>
     <message>
-        <location line="+19"/>
         <source>Missing namespace in QtHelpProject.</source>
         <translation>Fehlender Namensraum in QtHelpProject.</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Missing virtual folder in QtHelpProject</source>
         <translation>Fehlendes virtuelles Verzeichnis in QtHelpProject.</translation>
     </message>
     <message>
-        <location line="+89"/>
         <source>Missing attribute in keyword at line %1.</source>
         <translation>Fehlendes Attribut in Schlagwort in Zeile %1.</translation>
     </message>
     <message>
-        <location line="+141"/>
         <source>The input file %1 could not be opened!</source>
         <translation>Die Eingabe-Datei %1 kann nicht geöffnet werden.</translation>
     </message>
@@ -314,52 +262,42 @@
 <context>
     <name>QHelpSearchQueryWidget</name>
     <message>
-        <location filename="../tools/assistant/lib/qhelpsearchquerywidget.cpp" line="+124"/>
         <source>Search for:</source>
         <translation>Suche nach:</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Previous search</source>
         <translation>Vorige Suche</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Next search</source>
         <translation>Nächste Suche</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Search</source>
         <translation>Suche</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Advanced search</source>
         <translation>Erweiterte Suche</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>words &lt;B&gt;similar&lt;/B&gt; to:</source>
         <translation>Worte &lt;B&gt;ähnlich&lt;/B&gt; zu:</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&lt;B&gt;without&lt;/B&gt; the words:</source>
         <translation>&lt;B&gt;ohne&lt;/B&gt; die Wörter:</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>with &lt;B&gt;exact phrase&lt;/B&gt;:</source>
         <translation>mit der &lt;B&gt;genauen Wortgruppe&lt;/B&gt;:</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>with &lt;B&gt;all&lt;/B&gt; of the words:</source>
         <translation>mit &lt;B&gt;allen&lt;/B&gt; Wörtern:</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>with &lt;B&gt;at least one&lt;/B&gt; of the words:</source>
         <translation>mit &lt;B&gt;irgendeinem&lt;/B&gt; der Wörter:</translation>
     </message>
@@ -367,7 +305,6 @@
 <context>
     <name>QHelpSearchResultWidget</name>
     <message numerus="yes">
-        <location filename="../tools/assistant/lib/qhelpsearchresultwidget.cpp" line="+174"/>
         <source>%1 - %2 of %n Hits</source>
         <translation>
             <numerusform>%1 - %2 - Ein Treffer</numerusform>
@@ -375,7 +312,6 @@
         </translation>
     </message>
     <message>
-        <location line="+61"/>
         <source>0 - 0 of 0 Hits</source>
         <translation>0 - 0 von 0 Treffern</translation>
     </message>
--- a/translations/qt_help_fr.ts	Fri Sep 17 08:34:18 2010 +0300
+++ b/translations/qt_help_fr.ts	Mon Oct 04 01:19:32 2010 +0300
@@ -30,6 +30,14 @@
     </message>
 </context>
 <context>
+    <name>QHelp</name>
+    <message>
+        <location filename="../tools/assistant/lib/qhelp_global.cpp" line="+64"/>
+        <source>Untitled</source>
+        <translation>Sans titre</translation>
+    </message>
+</context>
+<context>
     <name>QHelpCollectionHandler</name>
     <message>
         <location filename="../tools/assistant/lib/qhelpcollectionhandler.cpp" line="+79"/>
@@ -44,7 +52,7 @@
     </message>
     <message>
         <location line="+11"/>
-        <location line="+49"/>
+        <location line="+52"/>
         <source>Cannot open collection file: %1</source>
         <translatorcomment>collection ?</translatorcomment>
         <translation>Impossible d&apos;ouvrir le fichier collection : %1</translation>
@@ -65,7 +73,7 @@
         <translation>Impossible de créer le répertoire : %1</translation>
     </message>
     <message>
-        <location line="+23"/>
+        <location line="+26"/>
         <source>Cannot copy collection file: %1</source>
         <translation>Impossible de copier le fichier collection : %1</translation>
     </message>
@@ -75,7 +83,7 @@
         <translation>Filtre &apos;%1&apos; inconnu !</translation>
     </message>
     <message>
-        <location line="+55"/>
+        <location line="+53"/>
         <source>Cannot register filter %1!</source>
         <translation>Impossible d&apos;enregistrer le filtre %1 !</translation>
     </message>
@@ -122,7 +130,12 @@
 <context>
     <name>QHelpEngineCore</name>
     <message>
-        <location filename="../tools/assistant/lib/qhelpenginecore.cpp" line="+524"/>
+        <location filename="../tools/assistant/lib/qhelpenginecore.cpp" line="+122"/>
+        <source>Cannot open documentation file %1: %2!</source>
+        <translation>Impossible d&apos;ouvrir le fichier de documentation %1 : %2 !</translation>
+    </message>
+    <message>
+        <location line="+404"/>
         <source>The specified namespace does not exist!</source>
         <translation>L&apos;espace de noms spécifié n&apos;existe pas !</translation>
     </message>
@@ -130,15 +143,14 @@
 <context>
     <name>QHelpEngineCorePrivate</name>
     <message>
-        <location line="-402"/>
         <source>Cannot open documentation file %1: %2!</source>
-        <translation>Impossible d&apos;ouvrir le fichier de documentation %1 : %2 !</translation>
+        <translation type="obsolete">Impossible d&apos;ouvrir le fichier de documentation %1 : %2 !</translation>
     </message>
 </context>
 <context>
     <name>QHelpGenerator</name>
     <message>
-        <location filename="../tools/assistant/lib/qhelpgenerator.cpp" line="+157"/>
+        <location filename="../tools/assistant/lib/qhelpgenerator.cpp" line="+158"/>
         <source>Invalid help data!</source>
         <translation>Données d&apos;aide invalides !</translation>
     </message>
@@ -155,7 +167,7 @@
     <message>
         <location line="+7"/>
         <source>Building up file structure...</source>
-        <translation>Construction de la structure de fichiers en cours…</translation>
+        <translation>Construction de la structure de fichiers en cours...</translation>
     </message>
     <message>
         <location line="+11"/>
@@ -163,20 +175,20 @@
         <translation>Impossible d&apos;ouvrir le fichier de base de données %1 !</translation>
     </message>
     <message>
-        <location line="+11"/>
+        <location line="+14"/>
         <source>Cannot register namespace %1!</source>
         <translation>Impossible d&apos;enregistrer l&apos;espace de noms %1 !</translation>
     </message>
     <message>
         <location line="+6"/>
         <source>Insert custom filters...</source>
-        <translation>Insértion des filtres personnalisés…</translation>
+        <translation>Insértion des filtres personnalisés...</translation>
     </message>
     <message>
         <location line="+12"/>
         <source>Insert help data for filter section (%1 of %2)...</source>
         <translatorcomment>???</translatorcomment>
-        <translation>Insertion des données d&apos;aide pour la section filtre (%1 de %2)…</translation>
+        <translation>Insertion des données d&apos;aide pour la section filtre (%1 de %2)...</translation>
     </message>
     <message>
         <location line="+18"/>
@@ -219,7 +231,7 @@
         <translation>Impossible d&apos;ouvrir le fichier %1 ! Fichier non pris en compte.</translation>
     </message>
     <message>
-        <location line="+131"/>
+        <location line="+133"/>
         <source>The filter %1 is already registered!</source>
         <translation>Le filtre %1 est déjà enregistré !</translation>
     </message>
@@ -231,12 +243,12 @@
     <message>
         <location line="+24"/>
         <source>Insert indices...</source>
-        <translation>Insertion des index…</translation>
+        <translation>Insertion des index...</translation>
     </message>
     <message>
-        <location line="+80"/>
+        <location line="+91"/>
         <source>Insert contents...</source>
-        <translation>insertion du contenu…</translation>
+        <translation>insertion du contenu...</translation>
     </message>
     <message>
         <location line="+8"/>
@@ -248,87 +260,32 @@
         <source>Cannot register contents!</source>
         <translation>Impossible de référencer le contenu !</translation>
     </message>
-</context>
-<context>
-    <name>QHelpSearchQueryWidget</name>
     <message>
-        <location filename="../tools/assistant/lib/qhelpsearchquerywidget.cpp" line="+411"/>
-        <source>Search for:</source>
-        <translation>Rechercher :</translation>
-    </message>
-    <message>
-        <location line="+5"/>
-        <source>Previous search</source>
-        <translation>Recherche précédente</translation>
-    </message>
-    <message>
-        <location line="+4"/>
-        <source>Next search</source>
-        <translation>Recherche suivante</translation>
-    </message>
-    <message>
-        <location line="+2"/>
-        <source>Search</source>
-        <translation>Recherche</translation>
+        <location line="+56"/>
+        <source>File &apos;%1&apos; does not exist.</source>
+        <translation>Le fichier &apos;%1&apos; n&apos;existe pas.</translation>
     </message>
     <message>
-        <location line="+20"/>
-        <source>Advanced search</source>
-        <translation>Recherche avancée</translation>
-    </message>
-    <message>
-        <location line="+18"/>
-        <source>words &lt;B&gt;similar&lt;/B&gt; to:</source>
-        <translation>mots &lt;B&gt;semblables&lt;/B&gt; à :</translation>
+        <location line="+19"/>
+        <source>File &apos;%1&apos; cannot be opened.</source>
+        <translation>Le fichier &apos;%1&apos; ne peut être ouvert.</translation>
     </message>
     <message>
-        <location line="+6"/>
-        <source>&lt;B&gt;without&lt;/B&gt; the words:</source>
-        <translation>&lt;B&gt;sans&lt;/B&gt; les mots :</translation>
+        <location line="+19"/>
+        <source>File &apos;%1&apos; contains an invalid link to file &apos;%2&apos;</source>
+        <translation>Le fichier &apos;%1&apos; contient un lien invalide vers le fichier &apos;%2&apos;</translation>
     </message>
     <message>
-        <location line="+6"/>
-        <source>with &lt;B&gt;exact phrase&lt;/B&gt;:</source>
-        <translation>avec la &lt;B&gt;phrase exacte&lt;/B&gt; :</translation>
-    </message>
-    <message>
-        <location line="+6"/>
-        <source>with &lt;B&gt;all&lt;/B&gt; of the words:</source>
-        <translation>avec &lt;B&gt;tous&lt;/B&gt; les mots :</translation>
-    </message>
-    <message>
-        <location line="+6"/>
-        <source>with &lt;B&gt;at least one&lt;/B&gt; of the words:</source>
-        <translation>avec &lt;B&gt;au moins un&lt;/B&gt; des mots :</translation>
+        <location line="+9"/>
+        <source>Invalid links in HTML files.</source>
+        <translation>Liens invalides dans les fichiers HTML.</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 de 0 résultats</translation>
-    </message>
-</context>
-<context>
-    <name>QHelpSearchResultWidgetPrivate</name>
+    <name>QHelpProject</name>
     <message>
-        <location line="-61"/>
-        <source>%1 - %2 of %3 Hits</source>
-        <translation>%1 - %2 de %3 résultats</translation>
-    </message>
-</context>
-<context>
-    <name>QObject</name>
-    <message>
-        <location filename="../tools/assistant/lib/qhelp_global.h" line="+83"/>
-        <source>Untitled</source>
-        <translation>Sans titre</translation>
-    </message>
-    <message>
-        <location filename="../tools/assistant/lib/qhelpprojectdata.cpp" line="+85"/>
+        <location filename="../tools/assistant/lib/qhelpprojectdata.cpp" line="+88"/>
         <source>Unknown token.</source>
-        <translatorcomment>contexte peu clair...</translatorcomment>
         <translation>Identificateur inconnu.</translation>
     </message>
     <message>
@@ -337,39 +294,159 @@
         <translation>Identificateur inconnu. &quot;QtHelpProject&quot; attendu !</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+6"/>
         <source>Error in line %1: %2</source>
         <translation>Erreur à la ligne %1 : %2</translation>
     </message>
     <message>
-        <location line="+13"/>
-        <source>A virtual folder must not contain a &apos;/&apos; character!</source>
-        <translation>Un dossier virtuel ne doit pas contenir le caractère &apos;/&apos; !</translation>
+        <location line="+14"/>
+        <source>Virtual folder has invalid syntax.</source>
+        <translation>Syntaxe invalide pour le dossier virtuel.</translation>
     </message>
     <message>
-        <location line="+4"/>
-        <source>A namespace must not contain a &apos;/&apos; character!</source>
-        <translation>Un espace de noms ne doit pas contenir le caractère &apos;/&apos; !</translation>
+        <location line="+5"/>
+        <source>Namespace has invalid syntax.</source>
+        <translation>Syntaxe invalide pour l&apos;espace de noms.</translation>
     </message>
     <message>
-        <location line="+16"/>
+        <location line="+19"/>
         <source>Missing namespace in QtHelpProject.</source>
         <translation>Espace de noms manquant dans QtHelpProject.</translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+3"/>
         <source>Missing virtual folder in QtHelpProject</source>
         <translation>Dossier virtuel manquant dans QtHelpProject</translation>
     </message>
     <message>
-        <location line="+88"/>
+        <location line="+89"/>
         <source>Missing attribute in keyword at line %1.</source>
         <translation>Attribut manquant pour le mot clé à la ligne %1.</translation>
     </message>
     <message>
-        <location line="+123"/>
+        <location line="+143"/>
         <source>The input file %1 could not be opened!</source>
         <translation>Le fichier source %1 n&apos;a pas pu être ouvert !</translation>
     </message>
 </context>
+<context>
+    <name>QHelpSearchQueryWidget</name>
+    <message>
+        <location filename="../tools/assistant/lib/qhelpsearchquerywidget.cpp" line="+124"/>
+        <source>Search for:</source>
+        <translation>Rechercher :</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Previous search</source>
+        <translation>Recherche précédente</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Next search</source>
+        <translation>Recherche suivante</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Search</source>
+        <translation>Recherche</translation>
+    </message>
+    <message>
+        <location line="+2"/>
+        <source>Advanced search</source>
+        <translation>Recherche avancée</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>words &lt;B&gt;similar&lt;/B&gt; to:</source>
+        <translation>mots &lt;B&gt;semblables&lt;/B&gt; à :</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>&lt;B&gt;without&lt;/B&gt; the words:</source>
+        <translation>&lt;B&gt;sans&lt;/B&gt; les mots :</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>with &lt;B&gt;exact phrase&lt;/B&gt;:</source>
+        <translation>avec la &lt;B&gt;phrase exacte&lt;/B&gt; :</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>with &lt;B&gt;all&lt;/B&gt; of the words:</source>
+        <translation>avec &lt;B&gt;tous&lt;/B&gt; les mots :</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>with &lt;B&gt;at least one&lt;/B&gt; of the words:</source>
+        <translation>avec &lt;B&gt;au moins un&lt;/B&gt; des mots :</translation>
+    </message>
+</context>
+<context>
+    <name>QHelpSearchResultWidget</name>
+    <message numerus="yes">
+        <location filename="../tools/assistant/lib/qhelpsearchresultwidget.cpp" line="+174"/>
+        <source>%1 - %2 of %n Hits</source>
+        <translation>
+            <numerusform>%1 - %2 de %n résultat</numerusform>
+            <numerusform>%1 - %2 de %n résultats</numerusform>
+        </translation>
+    </message>
+    <message>
+        <location line="+61"/>
+        <source>0 - 0 of 0 Hits</source>
+        <translation>0 - 0 de 0 résultats</translation>
+    </message>
+</context>
+<context>
+    <name>QHelpSearchResultWidgetPrivate</name>
+    <message>
+        <source>%1 - %2 of %3 Hits</source>
+        <translation type="obsolete">%1 - %2 de %3 résultats</translation>
+    </message>
+</context>
+<context>
+    <name>QObject</name>
+    <message>
+        <source>Untitled</source>
+        <translation type="obsolete">Sans titre</translation>
+    </message>
+    <message>
+        <source>Unknown token.</source>
+        <translatorcomment>contexte peu clair...</translatorcomment>
+        <translation type="obsolete">Identificateur inconnu.</translation>
+    </message>
+    <message>
+        <source>Unknown token. Expected &quot;QtHelpProject&quot;!</source>
+        <translation type="obsolete">Identificateur inconnu. &quot;QtHelpProject&quot; attendu !</translation>
+    </message>
+    <message>
+        <source>Error in line %1: %2</source>
+        <translation type="obsolete">Erreur à la ligne %1 : %2</translation>
+    </message>
+    <message>
+        <source>A virtual folder must not contain a &apos;/&apos; character!</source>
+        <translation type="obsolete">Un dossier virtuel ne doit pas contenir le caractère &apos;/&apos; !</translation>
+    </message>
+    <message>
+        <source>A namespace must not contain a &apos;/&apos; character!</source>
+        <translation type="obsolete">Un espace de noms ne doit pas contenir le caractère &apos;/&apos; !</translation>
+    </message>
+    <message>
+        <source>Missing namespace in QtHelpProject.</source>
+        <translation type="obsolete">Espace de noms manquant dans QtHelpProject.</translation>
+    </message>
+    <message>
+        <source>Missing virtual folder in QtHelpProject</source>
+        <translation type="obsolete">Dossier virtuel manquant dans QtHelpProject</translation>
+    </message>
+    <message>
+        <source>Missing attribute in keyword at line %1.</source>
+        <translation type="obsolete">Attribut manquant pour le mot clé à la ligne %1.</translation>
+    </message>
+    <message>
+        <source>The input file %1 could not be opened!</source>
+        <translation type="obsolete">Le fichier source %1 n&apos;a pas pu être ouvert !</translation>
+    </message>
+</context>
 </TS>
--- a/translations/qt_help_ja.ts	Fri Sep 17 08:34:18 2010 +0300
+++ b/translations/qt_help_ja.ts	Mon Oct 04 01:19:32 2010 +0300
@@ -1,355 +1,318 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!DOCTYPE TS>
-<TS version="2.0">
+<TS version="2.0" language="ja_JP">
 <context>
     <name>QCLuceneResultWidget</name>
     <message>
-        <location filename="../tools/assistant/lib/qhelpsearchresultwidget.cpp" line="+110"/>
         <source>Search Results</source>
-        <translation type="unfinished"></translation>
+        <translation>検索結果</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Note:</source>
-        <translation type="unfinished"></translation>
+        <translation>注:</translation>
+    </message>
+    <message>
+        <source>The search results may not be complete since the documentation is still being indexed!</source>
+        <translation>ドキュメントの索引の作成が終了していないため、検索結果は不完全な可能性があります!</translation>
     </message>
     <message>
-        <location line="+1"/>
-        <source>The search results may not be complete since the documentation is still being indexed!</source>
-        <translation type="unfinished"></translation>
+        <source>Your search did not match any documents.</source>
+        <translation>その語句はどのドキュメントにも見つかりません。</translation>
     </message>
     <message>
-        <location line="+11"/>
-        <source>Your search did not match any documents.</source>
-        <translation type="unfinished"></translation>
+        <source>(The reason for this might be that the documentation is still being indexed.)</source>
+        <translation>(ドキュメントの索引の作成が終了していないためかもしれません。)</translation>
     </message>
+</context>
+<context>
+    <name>QHelp</name>
     <message>
-        <location line="+4"/>
-        <source>(The reason for this might be that the documentation is still being indexed.)</source>
-        <translation type="unfinished"></translation>
+        <source>Untitled</source>
+        <translation>タイトルなし</translation>
     </message>
 </context>
 <context>
     <name>QHelpCollectionHandler</name>
     <message>
-        <location filename="../tools/assistant/lib/qhelpcollectionhandler.cpp" line="+79"/>
-        <source>The collection file is not set up yet!</source>
-        <translation type="unfinished"></translation>
+        <source>The collection file &apos;%1&apos; is not set up yet!</source>
+        <translation>コレクションファイル &apos;%1&apos; がまだ設定されていません!</translation>
     </message>
     <message>
-        <location line="+22"/>
         <source>Cannot load sqlite database driver!</source>
-        <translation type="unfinished"></translation>
+        <translation>SQLite データベースドライバがロードできません!</translation>
     </message>
     <message>
-        <location line="+11"/>
-        <location line="+48"/>
         <source>Cannot open collection file: %1</source>
-        <translation type="unfinished"></translation>
+        <translation>コレクションファイルをオープンできません: %1</translation>
     </message>
     <message>
-        <location line="-39"/>
         <source>Cannot create tables in file %1!</source>
-        <translation type="unfinished"></translation>
+        <translation>ファイル %1 にテーブルを作成できません!</translation>
     </message>
     <message>
-        <location line="+16"/>
-        <source>The specified collection file already exists!</source>
-        <translation type="unfinished"></translation>
+        <source>The collection file &apos;%1&apos; already exists!</source>
+        <translation>コレクションファイル &apos;%1&apos; が既に存在します!</translation>
     </message>
     <message>
-        <location line="+5"/>
-        <source>Cannot create directory: %1</source>
-        <translation type="unfinished"></translation>
+        <source>Unknown filter &apos;%1&apos;!</source>
+        <translation>不明なフィルタ &apos;%1&apos;!</translation>
     </message>
     <message>
-        <location line="+23"/>
-        <source>Cannot copy collection file: %1</source>
-        <translation type="unfinished"></translation>
+        <source>Invalid documentation file &apos;%1&apos;!</source>
+        <translation>無効なドキュメントファイル &apos;%1&apos;!</translation>
     </message>
     <message>
-        <location line="+119"/>
-        <source>Unknown filter!</source>
-        <translation type="unfinished"></translation>
+        <source>Cannot register namespace &apos;%1&apos;!</source>
+        <translation>ネームスペース &apos;%1&apos; を登録できません!</translation>
     </message>
     <message>
-        <location line="+55"/>
-        <source>Cannot register filter %1!</source>
-        <translation type="unfinished"></translation>
+        <source>Cannot open database &apos;%1&apos; to optimize!</source>
+        <translation>最適化用にデータベース &apos;%1&apos; をオープンできません!</translation>
     </message>
     <message>
-        <location line="+44"/>
-        <source>Cannot open documentation file %1!</source>
-        <translation type="unfinished"></translation>
+        <source>Cannot create directory: %1</source>
+        <translation>ディレクトリを作成できません: %1</translation>
     </message>
     <message>
-        <location line="+6"/>
-        <source>Invalid documentation file!</source>
-        <translation type="unfinished"></translation>
+        <source>Cannot copy collection file: %1</source>
+        <translation>コレクションファイルをコピーできません: %1</translation>
     </message>
     <message>
-        <location line="+34"/>
-        <source>The namespace %1 was not registered!</source>
-        <translation type="unfinished"></translation>
+        <source>Cannot register filter %1!</source>
+        <translation>フィルタ %1 を登録できません!</translation>
     </message>
     <message>
-        <location line="+120"/>
-        <source>Namespace %1 already exists!</source>
-        <translation type="unfinished"></translation>
+        <source>Cannot open documentation file %1!</source>
+        <translation>ドキュメントファイル %1 をオープンできません!</translation>
     </message>
     <message>
-        <location line="+13"/>
-        <source>Cannot register namespace!</source>
-        <translation type="unfinished"></translation>
+        <source>The namespace %1 was not registered!</source>
+        <translation>ネームスペース %1 は登録されていません!</translation>
     </message>
     <message>
-        <location line="+24"/>
-        <source>Cannot open database to optimize!</source>
-        <translation type="unfinished"></translation>
+        <source>Namespace %1 already exists!</source>
+        <translation>ネームスペース %1 は既に存在します!</translation>
     </message>
 </context>
 <context>
     <name>QHelpDBReader</name>
     <message>
-        <location filename="../tools/assistant/lib/qhelpdbreader.cpp" line="+95"/>
         <source>Cannot open database &apos;%1&apos; &apos;%2&apos;: %3</source>
-        <translation type="unfinished"></translation>
+        <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>データベース &apos;%1&apos; &apos;%2&apos; がオープンできません: %3</translation>
     </message>
 </context>
 <context>
     <name>QHelpEngineCore</name>
     <message>
-        <location filename="../tools/assistant/lib/qhelpenginecore.cpp" line="+516"/>
-        <source>The specified namespace does not exist!</source>
-        <translation type="unfinished"></translation>
+        <source>Cannot open documentation file %1: %2!</source>
+        <translation>ドキュメントファイル %1 をオープンできません: %2!</translation>
     </message>
-</context>
-<context>
-    <name>QHelpEngineCorePrivate</name>
     <message>
-        <location line="-394"/>
-        <source>Cannot open documentation file %1: %2!</source>
-        <translation type="unfinished"></translation>
+        <source>The specified namespace does not exist!</source>
+        <translation>そのネームスペースは存在しません!</translation>
     </message>
 </context>
 <context>
     <name>QHelpGenerator</name>
     <message>
-        <location filename="../tools/assistant/lib/qhelpgenerator.cpp" line="+157"/>
         <source>Invalid help data!</source>
-        <translation type="unfinished"></translation>
+        <translation>無効なヘルプデータ!</translation>
+    </message>
+    <message>
+        <source>No output file name specified!</source>
+        <translation>出力ファイル名が指定されていません!</translation>
+    </message>
+    <message>
+        <source>Building up file structure...</source>
+        <translation>ファイル構造の構築中...</translation>
     </message>
     <message>
-        <location line="+6"/>
-        <source>No output file name specified!</source>
-        <translation type="unfinished"></translation>
+        <source>The file %1 cannot be overwritten!</source>
+        <translation>ファイル %1 は上書きできません!</translation>
+    </message>
+    <message>
+        <source>Cannot open data base file %1!</source>
+        <translation>データベースファイル %1 をオープンできません!</translation>
     </message>
     <message>
-        <location line="+14"/>
-        <source>Building up file structure...</source>
-        <translation type="unfinished"></translation>
+        <source>Cannot register namespace %1!</source>
+        <translation>ネームスペース %1 を登録できません!</translation>
     </message>
     <message>
-        <location line="-7"/>
-        <source>The file %1 cannot be overwritten!</source>
-        <translation type="unfinished"></translation>
+        <source>Insert custom filters...</source>
+        <translation>カスタムフィルターの登録中...</translation>
+    </message>
+    <message>
+        <source>Insert help data for filter section (%1 of %2)...</source>
+        <translation>フィルターにヘルプデータを登録中 (%1 / %2)...</translation>
     </message>
     <message>
-        <location line="+18"/>
-        <source>Cannot open data base file %1!</source>
-        <translation type="unfinished"></translation>
+        <source>Documentation successfully generated.</source>
+        <translation>ドキュメントの作成に成功しました。</translation>
     </message>
     <message>
-        <location line="+11"/>
-        <source>Cannot register namespace %1!</source>
-        <translation type="unfinished"></translation>
+        <source>Some tables already exist!</source>
+        <translation>テーブルが既に存在します!</translation>
+    </message>
+    <message>
+        <source>Cannot create tables!</source>
+        <translation>テーブルが作成できません!</translation>
+    </message>
+    <message>
+        <source>Cannot register virtual folder!</source>
+        <translation>仮装フォルダを登録できません!</translation>
     </message>
     <message>
-        <location line="+6"/>
-        <source>Insert custom filters...</source>
-        <translation type="unfinished"></translation>
+        <source>Insert files...</source>
+        <translation>ファイルの挿入...</translation>
+    </message>
+    <message>
+        <source>The referenced file %1 must be inside or within a subdirectory of (%2). Skipping it.</source>
+        <translation>参照されるファイル %1 は (%2) のサブディレクトリに存在する必要があります。スキップします。</translation>
     </message>
     <message>
-        <location line="+12"/>
-        <source>Insert help data for filter section (%1 of %2)...</source>
-        <translation type="unfinished"></translation>
+        <source>The file %1 does not exist! Skipping it.</source>
+        <translation>ファイル %1 が存在しません! スキップします。</translation>
     </message>
     <message>
-        <location line="+18"/>
-        <source>Documentation successfully generated.</source>
-        <translation type="unfinished"></translation>
+        <source>Cannot open file %1! Skipping it.</source>
+        <translation>ファイル %1 をオープンできません! スキップします。</translation>
     </message>
     <message>
-        <location line="+76"/>
-        <source>Some tables already exist!</source>
-        <translation type="unfinished"></translation>
+        <source>The filter %1 is already registered!</source>
+        <translation>フィルタ %1 は既に登録されています!</translation>
     </message>
     <message>
-        <location line="+61"/>
-        <source>Cannot create tables!</source>
-        <translation type="unfinished"></translation>
+        <source>Cannot register filter %1!</source>
+        <translation>フィルタ %1 を登録できません!</translation>
     </message>
     <message>
-        <location line="+86"/>
-        <source>Cannot register virtual folder!</source>
-        <translation type="unfinished"></translation>
+        <source>Insert indices...</source>
+        <translation>索引の挿入...</translation>
+    </message>
+    <message>
+        <source>Insert contents...</source>
+        <translation>コンテンツの挿入...</translation>
     </message>
     <message>
-        <location line="+10"/>
-        <source>Insert files...</source>
-        <translation type="unfinished"></translation>
+        <source>Cannot insert contents!</source>
+        <translation>コンテンツを挿入できません!</translation>
+    </message>
+    <message>
+        <source>Cannot register contents!</source>
+        <translation>コンテンツを登録できません!</translation>
     </message>
     <message>
-        <location line="+41"/>
-        <source>The file %1 does not exist! Skipping it.</source>
-        <translation type="unfinished"></translation>
+        <source>File &apos;%1&apos; does not exist.</source>
+        <translation>ファイル &apos;%1&apos; が存在しません。</translation>
     </message>
     <message>
-        <location line="+7"/>
-        <source>Cannot open file %1! Skipping it.</source>
-        <translation type="unfinished"></translation>
+        <source>File &apos;%1&apos; cannot be opened.</source>
+        <translation>ファイル &apos;%1&apos; をオープンできません。</translation>
+    </message>
+    <message>
+        <source>File &apos;%1&apos; contains an invalid link to file &apos;%2&apos;</source>
+        <translation>ファイル &apos;%1&apos; にファイル &apos;%2&apos; への無効なリンクが見つかりました</translation>
     </message>
     <message>
-        <location line="+134"/>
-        <source>The filter %1 is already registered!</source>
-        <translation type="unfinished"></translation>
+        <source>Invalid links in HTML files.</source>
+        <translation>HTML に無効なリンクが見つかりました。</translation>
+    </message>
+</context>
+<context>
+    <name>QHelpProject</name>
+    <message>
+        <source>Unknown token.</source>
+        <translation>不明なトークン。</translation>
     </message>
     <message>
-        <location line="+5"/>
-        <source>Cannot register filter %1!</source>
-        <translation type="unfinished"></translation>
+        <source>Unknown token. Expected &quot;QtHelpProject&quot;!</source>
+        <translation>&quot;QtHelpProject&quot; があるべき場所に不明なトークン!</translation>
+    </message>
+    <message>
+        <source>Error in line %1: %2</source>
+        <translation>%1 行でエラー: %2</translation>
     </message>
     <message>
-        <location line="+24"/>
-        <source>Insert indices...</source>
-        <translation type="unfinished"></translation>
+        <source>Virtual folder has invalid syntax.</source>
+        <translation>仮装フォルダに無効な構文があります。</translation>
+    </message>
+    <message>
+        <source>Namespace has invalid syntax.</source>
+        <translation>ネームスペースに無効な構文があります。</translation>
     </message>
     <message>
-        <location line="+80"/>
-        <source>Insert contents...</source>
-        <translation type="unfinished"></translation>
+        <source>Missing namespace in QtHelpProject.</source>
+        <translation>QtHelpProject にネームスペースがありません。</translation>
     </message>
     <message>
-        <location line="+8"/>
-        <source>Cannot insert contents!</source>
-        <translation type="unfinished"></translation>
+        <source>Missing virtual folder in QtHelpProject</source>
+        <translation>QtHelpProject に仮装フォルダがありません</translation>
     </message>
     <message>
-        <location line="+12"/>
-        <source>Cannot register contents!</source>
-        <translation type="unfinished"></translation>
+        <source>Missing attribute in keyword at line %1.</source>
+        <translation>%1 行目のキーワードに属性がありません。</translation>
+    </message>
+    <message>
+        <source>The input file %1 could not be opened!</source>
+        <translation>入力ファイル %1 がオープンできません!</translation>
     </message>
 </context>
 <context>
     <name>QHelpSearchQueryWidget</name>
     <message>
-        <location filename="../tools/assistant/lib/qhelpsearchquerywidget.cpp" line="+200"/>
         <source>Search for:</source>
-        <translation type="unfinished"></translation>
+        <translation>検索キーワード:</translation>
     </message>
     <message>
-        <location line="+2"/>
-        <source>Search</source>
-        <translation type="unfinished"></translation>
+        <source>Previous search</source>
+        <translation>前の検索結果</translation>
     </message>
     <message>
-        <location line="+16"/>
-        <source>Advanced search</source>
-        <translation type="unfinished"></translation>
+        <source>Next search</source>
+        <translation>次の検索結果</translation>
+    </message>
+    <message>
+        <source>Search</source>
+        <translation>検索</translation>
     </message>
     <message>
-        <location line="+18"/>
-        <source>words &lt;B&gt;similar&lt;/B&gt; to:</source>
-        <translation type="unfinished"></translation>
+        <source>Advanced search</source>
+        <translation>詳細な検索</translation>
     </message>
     <message>
-        <location line="+5"/>
-        <source>&lt;B&gt;without&lt;/B&gt; the words:</source>
-        <translation type="unfinished"></translation>
+        <source>words &lt;B&gt;similar&lt;/B&gt; to:</source>
+        <translation>&lt;b&gt;類似語&lt;/b&gt;:</translation>
     </message>
     <message>
-        <location line="+5"/>
-        <source>with &lt;B&gt;exact phrase&lt;/B&gt;:</source>
-        <translation type="unfinished"></translation>
+        <source>&lt;B&gt;without&lt;/B&gt; the words:</source>
+        <translation>キーワードを&lt;b&gt;含めない&lt;/b&gt;:</translation>
     </message>
     <message>
-        <location line="+5"/>
-        <source>with &lt;B&gt;all&lt;/B&gt; of the words:</source>
-        <translation type="unfinished"></translation>
+        <source>with &lt;B&gt;exact phrase&lt;/B&gt;:</source>
+        <translation>&lt;b&gt;フレーズ&lt;/b&gt;を含む:</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <source>with &lt;B&gt;all&lt;/B&gt; of the words:</source>
+        <translation>&lt;b&gt;すべての&lt;/b&gt;キーワードを含む:</translation>
+    </message>
+    <message>
         <source>with &lt;B&gt;at least one&lt;/B&gt; of the words:</source>
-        <translation type="unfinished"></translation>
+        <translation>&lt;b&gt;いずれか&lt;/b&gt;のキーワードを含む:</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 type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>QHelpSearchResultWidgetPrivate</name>
-    <message>
-        <location line="-61"/>
-        <source>%1 - %2 of %3 Hits</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>QObject</name>
-    <message>
-        <location filename="../tools/assistant/lib/qhelp_global.h" line="+83"/>
-        <source>Untitled</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../tools/assistant/lib/qhelpprojectdata.cpp" line="+80"/>
-        <source>Unknown token.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+13"/>
-        <source>Unknown token. Expected &quot;QtHelpProject&quot;!</source>
-        <translation type="unfinished"></translation>
+    <message numerus="yes">
+        <source>%1 - %2 of %n Hits</source>
+        <translation>
+            <numerusform>%1 - %2 / %n 件</numerusform>
+        </translation>
     </message>
     <message>
-        <location line="+5"/>
-        <source>Error in line %1: %2</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+13"/>
-        <source>A virtual folder must not contain a &apos;/&apos; character!</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+4"/>
-        <source>A namespace must not contain a &apos;/&apos; character!</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+16"/>
-        <source>Missing namespace in QtHelpProject.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+2"/>
-        <source>Missing virtual folder in QtHelpProject</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+88"/>
-        <source>Missing attribute in keyword at line %1.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+83"/>
-        <source>The input file %1 could not be opened!</source>
-        <translation type="unfinished"></translation>
+        <source>0 - 0 of 0 Hits</source>
+        <translation>0 - 0 / 0 件</translation>
     </message>
 </context>
 </TS>
--- a/translations/qt_help_ru.ts	Fri Sep 17 08:34:18 2010 +0300
+++ b/translations/qt_help_ru.ts	Mon Oct 04 01:19:32 2010 +0300
@@ -4,106 +4,92 @@
 <context>
     <name>QCLuceneResultWidget</name>
     <message>
-        <location filename="../tools/assistant/lib/qhelpsearchresultwidget.cpp" line="+110"/>
         <source>Search Results</source>
         <translation>Результат поиска</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Note:</source>
         <translation>Примечание:</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>The search results may not be complete since the documentation is still being indexed!</source>
         <translation>Результат поиска может быть неполным, так как документация ещё индексируется!</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>Your search did not match any documents.</source>
         <translation>По вашему запросу не найдено ни одного документа.</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>(The reason for this might be that the documentation is still being indexed.)</source>
         <translation>(Причиной этого может быть то, что документация ещё индексируется.)</translation>
     </message>
 </context>
 <context>
+    <name>QHelp</name>
+    <message>
+        <source>Untitled</source>
+        <translation>Безымянный</translation>
+    </message>
+</context>
+<context>
     <name>QHelpCollectionHandler</name>
     <message>
-        <location filename="../tools/assistant/lib/qhelpcollectionhandler.cpp" line="+79"/>
         <source>The collection file &apos;%1&apos; is not set up yet!</source>
         <translation>Файл коллекции справки &apos;%1&apos; ещё не установлен!</translation>
     </message>
     <message>
-        <location line="+23"/>
         <source>Cannot load sqlite database driver!</source>
         <translation>Не удалось загрузить драйвер базы данных sqlite!</translation>
     </message>
     <message>
-        <location line="+11"/>
-        <location line="+52"/>
         <source>Cannot open collection file: %1</source>
         <translation>Не удалось открыть файл коллекции справки: %1</translation>
     </message>
     <message>
-        <location line="-40"/>
         <source>Cannot create tables in file %1!</source>
         <translation>Не удалось создать таблицы в файле %1!</translation>
     </message>
     <message>
-        <location line="+16"/>
         <source>The collection file &apos;%1&apos; already exists!</source>
         <translation>Файл коллекции справки &apos;%1&apos; уже существует!</translation>
     </message>
     <message>
-        <location line="+151"/>
         <source>Unknown filter &apos;%1&apos;!</source>
         <translation>Неизвестный фильтр &apos;%1&apos;!</translation>
     </message>
     <message>
-        <location line="+103"/>
         <source>Invalid documentation file &apos;%1&apos;!</source>
         <translation>Некорректный файл документации &apos;%1&apos;!</translation>
     </message>
     <message>
-        <location line="+167"/>
         <source>Cannot register namespace &apos;%1&apos;!</source>
         <translation>Не удалось зарегистрировать пространство имён %1!</translation>
     </message>
     <message>
-        <location line="+24"/>
         <source>Cannot open database &apos;%1&apos; to optimize!</source>
         <translation>Не удалось открыть базу данных &apos;%1&apos; для оптимизации!</translation>
     </message>
     <message>
-        <location line="-439"/>
         <source>Cannot create directory: %1</source>
         <translation>Не удалось создать каталог: %1</translation>
     </message>
     <message>
-        <location line="+26"/>
         <source>Cannot copy collection file: %1</source>
         <translation>Не удалось скопировать файл коллекции справки: %1</translation>
     </message>
     <message>
-        <location line="+172"/>
         <source>Cannot register filter %1!</source>
         <translation>Не удалось зарегистрировать фильтр %1!</translation>
     </message>
     <message>
-        <location line="+44"/>
         <source>Cannot open documentation file %1!</source>
         <translation>Не удалось открыть файл документации %1!</translation>
     </message>
     <message>
-        <location line="+40"/>
         <source>The namespace %1 was not registered!</source>
         <translation>Пространство имён %1 не зарегистрировано!</translation>
     </message>
     <message>
-        <location line="+120"/>
         <source>Namespace %1 already exists!</source>
         <translation>Пространство имён %1 уже существует!</translation>
     </message>
@@ -111,7 +97,6 @@
 <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>Не удалось открыть базу данных &apos;%1&apos; &apos;%2&apos;: %3</translation>
@@ -120,12 +105,10 @@
 <context>
     <name>QHelpEngineCore</name>
     <message>
-        <location filename="../tools/assistant/lib/qhelpenginecore.cpp" line="+122"/>
         <source>Cannot open documentation file %1: %2!</source>
         <translation>Не удалось открыть файл документации %1: %2!</translation>
     </message>
     <message>
-        <location line="+404"/>
         <source>The specified namespace does not exist!</source>
         <translation>Указанное пространство имён не существует!</translation>
     </message>
@@ -133,132 +116,106 @@
 <context>
     <name>QHelpGenerator</name>
     <message>
-        <location filename="../tools/assistant/lib/qhelpgenerator.cpp" line="+158"/>
         <source>Invalid help data!</source>
         <translation>Некорректные данные справки!</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>No output file name specified!</source>
         <translation>Не указано имя результирующего файла!</translation>
     </message>
     <message>
-        <location line="+14"/>
         <source>Building up file structure...</source>
         <translation>Создание структуры файла...</translation>
     </message>
     <message>
-        <location line="-7"/>
         <source>The file %1 cannot be overwritten!</source>
         <translation>Невозможно перезаписать файл %1!</translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>Cannot open data base file %1!</source>
         <translation>Не удалось открыть файл базы данных %1!</translation>
     </message>
     <message>
-        <location line="+14"/>
         <source>Cannot register namespace %1!</source>
         <translation>Не удалось зарегистрировать пространство имён %1!</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Insert custom filters...</source>
         <translation>Добавление индивидуальных фильтров...</translation>
     </message>
     <message>
-        <location line="+12"/>
         <source>Insert help data for filter section (%1 of %2)...</source>
         <translation>Добавление данных справки для раздела фильтра (%1 из %2)...</translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>Documentation successfully generated.</source>
         <translation>Документация успешно создана.</translation>
     </message>
     <message>
-        <location line="+76"/>
         <source>Some tables already exist!</source>
         <translation>Некоторые таблицы уже существуют!</translation>
     </message>
     <message>
-        <location line="+61"/>
         <source>Cannot create tables!</source>
         <translation>Не удалось создать таблицы!</translation>
     </message>
     <message>
-        <location line="+86"/>
         <source>Cannot register virtual folder!</source>
         <translation>Не удалось зарегистрировать виртуальный каталог!</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>Insert files...</source>
         <translation>Добавление файлов...</translation>
     </message>
     <message>
-        <location line="+42"/>
         <source>The referenced file %1 must be inside or within a subdirectory of (%2). Skipping it.</source>
         <translation>Файл %1 должен быть в каталоге &apos;%2&apos; или в его подкаталоге. Пропускаем.</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>The file %1 does not exist! Skipping it.</source>
         <translation>Файл %1 не существует! Пропускаем.</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Cannot open file %1! Skipping it.</source>
         <translation>Не удалось открыть файл %1! Пропускаем.</translation>
     </message>
     <message>
-        <location line="+133"/>
         <source>The filter %1 is already registered!</source>
         <translation>Фильтр %1 уже зарегистрирован!</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Cannot register filter %1!</source>
         <translation>Не удалось зарегистрировать фильтр %1!</translation>
     </message>
     <message>
-        <location line="+24"/>
         <source>Insert indices...</source>
         <translation>Добавление указателей...</translation>
     </message>
     <message>
-        <location line="+91"/>
         <source>Insert contents...</source>
         <translation>Добавление оглавления...</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Cannot insert contents!</source>
         <translation>Не удалось добавить оглавление!</translation>
     </message>
     <message>
-        <location line="+12"/>
         <source>Cannot register contents!</source>
         <translation>Не удалось зарегистрировать оглавление!</translation>
     </message>
     <message>
-        <location line="+56"/>
         <source>File &apos;%1&apos; does not exist.</source>
         <translation>Файл &apos;%1&apos; не существует.</translation>
     </message>
     <message>
-        <location line="+19"/>
         <source>File &apos;%1&apos; cannot be opened.</source>
         <translation>Невозможно открыть файл &apos;%1&apos;.</translation>
     </message>
     <message>
-        <location line="+19"/>
         <source>File &apos;%1&apos; contains an invalid link to file &apos;%2&apos;</source>
         <translation>Файл &apos;%1&apos; содержит некорректную ссылку на файл &apos;%2&apos;</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Invalid links in HTML files.</source>
         <translation>В файлах HTML обнаружены некорректные ссылки.</translation>
     </message>
@@ -266,47 +223,38 @@
 <context>
     <name>QHelpProject</name>
     <message>
-        <location filename="../tools/assistant/lib/qhelpprojectdata.cpp" line="+88"/>
         <source>Unknown token.</source>
         <translation>Неизвестный идентификатор.</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>Unknown token. Expected &quot;QtHelpProject&quot;!</source>
         <translation>Неизвестный идентификатор. Ожидается &quot;QtHelpProject&quot;!</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Error in line %1: %2</source>
         <translation>Ошибка в строке %1: %2</translation>
     </message>
     <message>
-        <location line="+14"/>
         <source>Virtual folder has invalid syntax.</source>
         <translation>Виртуальный каталог имеет некорректный синтаксис.</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Namespace has invalid syntax.</source>
         <translation>Пространство имён имеет некорректный синтаксис.</translation>
     </message>
     <message>
-        <location line="+19"/>
         <source>Missing namespace in QtHelpProject.</source>
         <translation>В QtHelpProject отсутствует пространство имён.</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Missing virtual folder in QtHelpProject</source>
         <translation>В QtHelpProject отсутствует виртуальный каталог</translation>
     </message>
     <message>
-        <location line="+89"/>
         <source>Missing attribute in keyword at line %1.</source>
         <translation>Отсутствует атрибут у ключевого слова в строке %1.</translation>
     </message>
     <message>
-        <location line="+141"/>
         <source>The input file %1 could not be opened!</source>
         <translation>Невозможно открыть исходный файл %1!</translation>
     </message>
@@ -314,52 +262,42 @@
 <context>
     <name>QHelpSearchQueryWidget</name>
     <message>
-        <location filename="../tools/assistant/lib/qhelpsearchquerywidget.cpp" line="+124"/>
         <source>Search for:</source>
         <translation>Искать:</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Previous search</source>
         <translation>Предыдущий запрос</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Next search</source>
         <translation>Следующий запрос</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Search</source>
         <translation>Поиск</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Advanced search</source>
         <translation>Расширенный поиск</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>words &lt;B&gt;similar&lt;/B&gt; to:</source>
         <translation>&lt;B&gt;похожие&lt;/B&gt; слова:</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&lt;B&gt;without&lt;/B&gt; the words:</source>
         <translation>&lt;B&gt;не содержит&lt;/B&gt; слов:</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>with &lt;B&gt;exact phrase&lt;/B&gt;:</source>
         <translation>содержит &lt;B&gt;точную фразу&lt;/B&gt;:</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>with &lt;B&gt;all&lt;/B&gt; of the words:</source>
         <translation>содержит &lt;B&gt;все&lt;/B&gt; слова:</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>with &lt;B&gt;at least one&lt;/B&gt; of the words:</source>
         <translation>содержит &lt;B&gt;хотя бы одно&lt;/B&gt; из слов:</translation>
     </message>
@@ -367,7 +305,6 @@
 <context>
     <name>QHelpSearchResultWidget</name>
     <message numerus="yes">
-        <location filename="../tools/assistant/lib/qhelpsearchresultwidget.cpp" line="+174"/>
         <source>%1 - %2 of %n Hits</source>
         <translation>
             <numerusform>%1 - %2 из %n совпадения</numerusform>
@@ -376,7 +313,6 @@
         </translation>
     </message>
     <message>
-        <location line="+61"/>
         <source>0 - 0 of 0 Hits</source>
         <translation>0 - 0 из 0 совпадений</translation>
     </message>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/translations/qt_help_sl.ts	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,329 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="sl">
+    <extra-po-header-po_revision_date>2010-08-28 13:32+0200</extra-po-header-po_revision_date>
+    <extra-po-headers>MIME-Version,Content-Type,Content-Transfer-Encoding,Plural-Forms,X-Language,X-Qt-Contexts,Last-Translator,PO-Revision-Date,Project-Id-Version,Language-Team,X-Generator</extra-po-headers>
+    <extra-po-header-x_generator>Lokalize 1.1</extra-po-header-x_generator>
+    <extra-po-header-language_team>Slovenian &lt;lugos-slo@lugos.si&gt;</extra-po-header-language_team>
+    <extra-po-header-project_id_version></extra-po-header-project_id_version>
+    <extra-po-header_comment># Jure Repinc &lt;jlp@holodeck1.com&gt;, 2010.</extra-po-header_comment>
+    <extra-po-header-last_translator>Jure Repinc &lt;jlp@holodeck1.com&gt;</extra-po-header-last_translator>
+<context>
+    <name>QCLuceneResultWidget</name>
+    <message>
+        <source>Search Results</source>
+        <translation>Rezultati iskanja</translation>
+    </message>
+    <message>
+        <source>Note:</source>
+        <translation>Opomba:</translation>
+    </message>
+    <message>
+        <source>The search results may not be complete since the documentation is still being indexed!</source>
+        <translation>Rezultati iskanja morda niso popolni, saj se dokumentacijo še vedno indeksira.</translation>
+    </message>
+    <message>
+        <source>Your search did not match any documents.</source>
+        <translation>Vašemu iskanju ne ustreza noben dokument.</translation>
+    </message>
+    <message>
+        <source>(The reason for this might be that the documentation is still being indexed.)</source>
+        <translation>(Razlog je morda to, da se dokumentacijo še vedno indeksira.)</translation>
+    </message>
+</context>
+<context>
+    <name>QHelp</name>
+    <message>
+        <source>Untitled</source>
+        <translation>Brez naslova</translation>
+    </message>
+</context>
+<context>
+    <name>QHelpCollectionHandler</name>
+    <message>
+        <source>The collection file &apos;%1&apos; is not set up yet!</source>
+        <translation>Datoteka zbirke »%1« še ni nastavljena.</translation>
+    </message>
+    <message>
+        <source>Cannot load sqlite database driver!</source>
+        <translation>Ni moč naložiti gonilnika za podatkovno zbirko SQLite.</translation>
+    </message>
+    <message>
+        <source>Cannot open collection file: %1</source>
+        <translation>Datoteke zbirke ni moč odpreti: %1</translation>
+    </message>
+    <message>
+        <source>Cannot create tables in file %1!</source>
+        <translation>V datoteki %1 ni moč ustvariti tabel.</translation>
+    </message>
+    <message>
+        <source>The collection file &apos;%1&apos; already exists!</source>
+        <translation>Datoteka zbirke »%1« že obstaja.</translation>
+    </message>
+    <message>
+        <source>Cannot create directory: %1</source>
+        <translation>Ni moč ustvariti mape: %1</translation>
+    </message>
+    <message>
+        <source>Cannot copy collection file: %1</source>
+        <translation>Ni moč skopirati datoteke zbirke: %1</translation>
+    </message>
+    <message>
+        <source>Unknown filter &apos;%1&apos;!</source>
+        <translation>Neznan filter »%1«.</translation>
+    </message>
+    <message>
+        <source>Cannot register filter %1!</source>
+        <translation>Filtra %1 ni moč registrirati.</translation>
+    </message>
+    <message>
+        <source>Cannot open documentation file %1!</source>
+        <translation>Ni moč odpreti datoteke z dokumentacijo %1.</translation>
+    </message>
+    <message>
+        <source>Invalid documentation file &apos;%1&apos;!</source>
+        <translation>Neveljavna datoteka z dokumentacijo »%1«.</translation>
+    </message>
+    <message>
+        <source>The namespace %1 was not registered!</source>
+        <translation>Imenski prostor %1 ni bil registriran.</translation>
+    </message>
+    <message>
+        <source>Namespace %1 already exists!</source>
+        <translation>Imenski prostor %1 že obstaja.</translation>
+    </message>
+    <message>
+        <source>Cannot register namespace &apos;%1&apos;!</source>
+        <translation>Imenskega prostora »%1« ni moč registrirati.</translation>
+    </message>
+    <message>
+        <source>Cannot open database &apos;%1&apos; to optimize!</source>
+        <translation>Podatkovne zbirke »%1« ni moč odpreti za optimizacijo.</translation>
+    </message>
+</context>
+<context>
+    <name>QHelpDBReader</name>
+    <message>
+        <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>Podatkovne zbirke »%1« »%2« ni moč odpreti: %3</translation>
+    </message>
+</context>
+<context>
+    <name>QHelpEngineCore</name>
+    <message>
+        <source>Cannot open documentation file %1: %2!</source>
+        <translation>Ni moč odpreti datoteke z dokumentacijo %1: %2.</translation>
+    </message>
+    <message>
+        <source>The specified namespace does not exist!</source>
+        <translation>Navedeni imenski prostor ne obstaja.</translation>
+    </message>
+</context>
+<context>
+    <name>QHelpGenerator</name>
+    <message>
+        <source>Invalid help data!</source>
+        <translation>Neveljavni podatki s pomočjo.</translation>
+    </message>
+    <message>
+        <source>No output file name specified!</source>
+        <translation>Navedenega ni nobenega imena izhodne datoteke.</translation>
+    </message>
+    <message>
+        <source>The file %1 cannot be overwritten!</source>
+        <translation>Datoteke %1 ni moč nadomestiti.</translation>
+    </message>
+    <message>
+        <source>Building up file structure...</source>
+        <translation>Grajenje datotečne strukture ...</translation>
+    </message>
+    <message>
+        <source>Cannot open data base file %1!</source>
+        <translation>Datoteke podatkovne zbirke %1 ni moč odpreti.</translation>
+    </message>
+    <message>
+        <source>Cannot register namespace %1!</source>
+        <translation>Imenskega prostora %1 ni moč registrirati.</translation>
+    </message>
+    <message>
+        <source>Insert custom filters...</source>
+        <translation>Vstavi filtre po meri ...</translation>
+    </message>
+    <message>
+        <source>Insert help data for filter section (%1 of %2)...</source>
+        <translation>Vstavljanje podatkov s pomočjo za filtrirni razdelek (%1 od %2) ...</translation>
+    </message>
+    <message>
+        <source>Documentation successfully generated.</source>
+        <translation>Dokumentacija je bila uspešno ustvarjena.</translation>
+    </message>
+    <message>
+        <source>Some tables already exist!</source>
+        <translation>Nekatere tabele že obstajajo.</translation>
+    </message>
+    <message>
+        <source>Cannot create tables!</source>
+        <translation>Tabel ni moč ustvariti.</translation>
+    </message>
+    <message>
+        <source>Cannot register virtual folder!</source>
+        <translation>Navidezne mape ni moč registrirati.</translation>
+    </message>
+    <message>
+        <source>Insert files...</source>
+        <translation>Vstavi datoteke ...</translation>
+    </message>
+    <message>
+        <source>The referenced file %1 must be inside or within a subdirectory of (%2). Skipping it.</source>
+        <translation>Sklicana datoteka %1 se mora nahajti v mapi (%1) ali njeni podmapi. Preskakujem jo.</translation>
+    </message>
+    <message>
+        <source>The file %1 does not exist! Skipping it.</source>
+        <translation>Datoteka %1 ne obstaja. Preskakujem jo.</translation>
+    </message>
+    <message>
+        <source>Cannot open file %1! Skipping it.</source>
+        <translation>Datoteke %1 ni moč odpreti. Preskakujem jo.</translation>
+    </message>
+    <message>
+        <source>The filter %1 is already registered!</source>
+        <translation>Filter %1 je že registriran.</translation>
+    </message>
+    <message>
+        <source>Cannot register filter %1!</source>
+        <translation>Filtra %1 ni moč registrirati.</translation>
+    </message>
+    <message>
+        <source>Insert indices...</source>
+        <translation>Vstavi kazala ...</translation>
+    </message>
+    <message>
+        <source>Insert contents...</source>
+        <translation>Vstavi vsebino ...</translation>
+    </message>
+    <message>
+        <source>Cannot insert contents!</source>
+        <translation>Vsebine ni moč vstaviti.</translation>
+    </message>
+    <message>
+        <source>Cannot register contents!</source>
+        <translation>Vsebine ni moč registrirati.</translation>
+    </message>
+    <message>
+        <source>File &apos;%1&apos; does not exist.</source>
+        <translation>Filter »%1« ne obstaja.</translation>
+    </message>
+    <message>
+        <source>File &apos;%1&apos; cannot be opened.</source>
+        <translation>Filtra »%1« ni moč odpreti.</translation>
+    </message>
+    <message>
+        <source>File &apos;%1&apos; contains an invalid link to file &apos;%2&apos;</source>
+        <translation>Datoteka »%1« vsebuje neveljavno povezavo na datoteko »%2«</translation>
+    </message>
+    <message>
+        <source>Invalid links in HTML files.</source>
+        <translation>Neveljavne povezave v datotekah HTML.</translation>
+    </message>
+</context>
+<context>
+    <name>QHelpProject</name>
+    <message>
+        <source>Unknown token.</source>
+        <translation>Neznan žeton.</translation>
+    </message>
+    <message>
+        <source>Unknown token. Expected &quot;QtHelpProject&quot;!</source>
+        <translation>Neznan žeton. Pričakovan je bil »QtHelpProject«.</translation>
+    </message>
+    <message>
+        <source>Error in line %1: %2</source>
+        <translation>Napaka v vrstici %1: %2</translation>
+    </message>
+    <message>
+        <source>Virtual folder has invalid syntax.</source>
+        <translation>Navidezna mapa ima neveljavno skladnjo.</translation>
+    </message>
+    <message>
+        <source>Namespace has invalid syntax.</source>
+        <translation>Imenski prostor ima neveljavno skladnjo.</translation>
+    </message>
+    <message>
+        <source>Missing namespace in QtHelpProject.</source>
+        <translation>Manjkajoč imenski prostor v QtHelpProject.</translation>
+    </message>
+    <message>
+        <source>Missing virtual folder in QtHelpProject</source>
+        <translation>Manjkajoča navidezna mapa v QtHelpProject.</translation>
+    </message>
+    <message>
+        <source>Missing attribute in keyword at line %1.</source>
+        <translation>Manjkajoča lastnost v ključni besedi v vrstici %1.</translation>
+    </message>
+    <message>
+        <source>The input file %1 could not be opened!</source>
+        <translation>Vhodne datoteke %1 ni bilo moč odpreti.</translation>
+    </message>
+</context>
+<context>
+    <name>QHelpSearchQueryWidget</name>
+    <message>
+        <source>Search for:</source>
+        <translation>Išči:</translation>
+    </message>
+    <message>
+        <source>Previous search</source>
+        <translation>Predhodno iskanje</translation>
+    </message>
+    <message>
+        <source>Next search</source>
+        <translation>Naslednje iskanje</translation>
+    </message>
+    <message>
+        <source>Search</source>
+        <translation>Išči</translation>
+    </message>
+    <message>
+        <source>Advanced search</source>
+        <translation>Napredno iskanje</translation>
+    </message>
+    <message>
+        <source>words &lt;B&gt;similar&lt;/B&gt; to:</source>
+        <translation>besede &lt;B&gt;podobne&lt;/B&gt;:</translation>
+    </message>
+    <message>
+        <source>&lt;B&gt;without&lt;/B&gt; the words:</source>
+        <translation>&lt;B&gt;brez&lt;/B&gt; besed:</translation>
+    </message>
+    <message>
+        <source>with &lt;B&gt;exact phrase&lt;/B&gt;:</source>
+        <translation>s &lt;B&gt;točnim izrazom&lt;/B&gt;:</translation>
+    </message>
+    <message>
+        <source>with &lt;B&gt;all&lt;/B&gt; of the words:</source>
+        <translation>z &lt;B&gt;vsemi&lt;/B&gt; besedami:</translation>
+    </message>
+    <message>
+        <source>with &lt;B&gt;at least one&lt;/B&gt; of the words:</source>
+        <translation>z &lt;B&gt;vsaj eno&lt;/B&gt; izmed besed:</translation>
+    </message>
+</context>
+<context>
+    <name>QHelpSearchResultWidget</name>
+    <message numerus="yes">
+        <source>%1 - %2 of %n Hits</source>
+        <translation>
+            <numerusform>%1 – %2 od %n zadetka</numerusform>
+            <numerusform>%1 – %2 od %n zadetkov</numerusform>
+            <numerusform>%1 – %2 od %n zadetkov</numerusform>
+            <numerusform>%1 – %2 od %n zadetkov</numerusform>
+        </translation>
+    </message>
+    <message>
+        <source>0 - 0 of 0 Hits</source>
+        <translation>0 - 0 od 0 zadetkov</translation>
+    </message>
+</context>
+</TS>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/translations/qt_help_uk.ts	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,320 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="uk_UA">
+<context>
+    <name>QCLuceneResultWidget</name>
+    <message>
+        <source>Search Results</source>
+        <translation>Результати пошуку</translation>
+    </message>
+    <message>
+        <source>Note:</source>
+        <translation>Примітка:</translation>
+    </message>
+    <message>
+        <source>The search results may not be complete since the documentation is still being indexed!</source>
+        <translation>Результати пошуку можуть бути не повні, оскільки документація досі індексується!</translation>
+    </message>
+    <message>
+        <source>Your search did not match any documents.</source>
+        <translation>Ваш пошук не повернув результатів.</translation>
+    </message>
+    <message>
+        <source>(The reason for this might be that the documentation is still being indexed.)</source>
+        <translation>(Причиною цього може бути те, що документація досі індексується.)</translation>
+    </message>
+</context>
+<context>
+    <name>QHelp</name>
+    <message>
+        <source>Untitled</source>
+        <translation>Без назви</translation>
+    </message>
+</context>
+<context>
+    <name>QHelpCollectionHandler</name>
+    <message>
+        <source>The collection file &apos;%1&apos; is not set up yet!</source>
+        <translation>Файл колекції &apos;%1&apos; ще не встановлено!</translation>
+    </message>
+    <message>
+        <source>Cannot load sqlite database driver!</source>
+        <translation>Неможливо завантажити драйвер бази даних sqlite!</translation>
+    </message>
+    <message>
+        <source>Cannot open collection file: %1</source>
+        <translation>Неможливо відкрити файл колекції: %1</translation>
+    </message>
+    <message>
+        <source>Cannot create tables in file %1!</source>
+        <translation>Неможливо створити таблиці в файлі %1!</translation>
+    </message>
+    <message>
+        <source>The collection file &apos;%1&apos; already exists!</source>
+        <translation>Файл колекції &apos;%1&apos; вже існує!</translation>
+    </message>
+    <message>
+        <source>Cannot create directory: %1</source>
+        <translation>Неможливо створити теку: %1</translation>
+    </message>
+    <message>
+        <source>Cannot copy collection file: %1</source>
+        <translation>Неможливо скопіювати файл колекції: %1</translation>
+    </message>
+    <message>
+        <source>Unknown filter &apos;%1&apos;!</source>
+        <translation>Невідомий фільтр &apos;%1&apos;!</translation>
+    </message>
+    <message>
+        <source>Cannot register filter %1!</source>
+        <translation>Неможливо зареєструвати фільтр %1!</translation>
+    </message>
+    <message>
+        <source>Cannot open documentation file %1!</source>
+        <translation>Неможливо відкрити файл документації %1!</translation>
+    </message>
+    <message>
+        <source>Invalid documentation file &apos;%1&apos;!</source>
+        <translation>Неправильний файл документації &apos;%1&apos;!</translation>
+    </message>
+    <message>
+        <source>The namespace %1 was not registered!</source>
+        <translation>Простір імен %1 не зареєстровано!</translation>
+    </message>
+    <message>
+        <source>Namespace %1 already exists!</source>
+        <translation>Простір імен %1 вже існує!</translation>
+    </message>
+    <message>
+        <source>Cannot register namespace &apos;%1&apos;!</source>
+        <translation>Неможливо зареєструвати простір імен &apos;%1&apos;!</translation>
+    </message>
+    <message>
+        <source>Cannot open database &apos;%1&apos; to optimize!</source>
+        <translation>Неможливо відкрити базу даних &apos;%1&apos; для оптимізації!</translation>
+    </message>
+</context>
+<context>
+    <name>QHelpDBReader</name>
+    <message>
+        <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>Не можу відкрити базу даних &apos;%1&apos; &apos;%2&apos;: %3</translation>
+    </message>
+</context>
+<context>
+    <name>QHelpEngineCore</name>
+    <message>
+        <source>Cannot open documentation file %1: %2!</source>
+        <translation>Неможливо відкрити файл документації %1: %2!</translation>
+    </message>
+    <message>
+        <source>The specified namespace does not exist!</source>
+        <translation>Вказаний простір імен не існує!</translation>
+    </message>
+</context>
+<context>
+    <name>QHelpGenerator</name>
+    <message>
+        <source>Invalid help data!</source>
+        <translation>Неправильні дані довідки!</translation>
+    </message>
+    <message>
+        <source>No output file name specified!</source>
+        <translation>Не вказане ім&apos;я вихідного файлу!</translation>
+    </message>
+    <message>
+        <source>The file %1 cannot be overwritten!</source>
+        <translation>Неможливо перезаписати файл %1!</translation>
+    </message>
+    <message>
+        <source>Building up file structure...</source>
+        <translation>Побудова структури файлу....</translation>
+    </message>
+    <message>
+        <source>Cannot open data base file %1!</source>
+        <translation>Неможливо відкрити файл бази даних %1!</translation>
+    </message>
+    <message>
+        <source>Cannot register namespace %1!</source>
+        <translation>Неможливо зареєструвати простір імен %1!</translation>
+    </message>
+    <message>
+        <source>Insert custom filters...</source>
+        <translation>Вставка фільтрів користувача...</translation>
+    </message>
+    <message>
+        <source>Insert help data for filter section (%1 of %2)...</source>
+        <translation>Вставка даних довідки для розділу фільтра (%1 з %2)...</translation>
+    </message>
+    <message>
+        <source>Documentation successfully generated.</source>
+        <translation>Документацію успішно згенеровано.</translation>
+    </message>
+    <message>
+        <source>Some tables already exist!</source>
+        <translation>Деякі таблиці вже існують!</translation>
+    </message>
+    <message>
+        <source>Cannot create tables!</source>
+        <translation>Неможливо створити таблиці!</translation>
+    </message>
+    <message>
+        <source>Cannot register virtual folder!</source>
+        <translation>Неможливо зареєструвати віртуальну теку!</translation>
+    </message>
+    <message>
+        <source>Insert files...</source>
+        <translation>Вставка файлів...</translation>
+    </message>
+    <message>
+        <source>The referenced file %1 must be inside or within a subdirectory of (%2). Skipping it.</source>
+        <translation>Файл %1 має бути всередині підтеки (%2). Пропускаємо його.</translation>
+    </message>
+    <message>
+        <source>The file %1 does not exist! Skipping it.</source>
+        <translation>Файл %1 не існує! Пропускаємо його.</translation>
+    </message>
+    <message>
+        <source>Cannot open file %1! Skipping it.</source>
+        <translation>Неможливо відкрити файл %1! Пропускаємо його.</translation>
+    </message>
+    <message>
+        <source>The filter %1 is already registered!</source>
+        <translation>Фільтр %1 вже зареєстровано!</translation>
+    </message>
+    <message>
+        <source>Cannot register filter %1!</source>
+        <translation>Неможливо зареєструвати фільтр %1!</translation>
+    </message>
+    <message>
+        <source>Insert indices...</source>
+        <translation>Вставка індексів...</translation>
+    </message>
+    <message>
+        <source>Insert contents...</source>
+        <translation>Вставка змісту...</translation>
+    </message>
+    <message>
+        <source>Cannot insert contents!</source>
+        <translation>Неможливо вставити зміст!</translation>
+    </message>
+    <message>
+        <source>Cannot register contents!</source>
+        <translation>Неможливо зареєструвати зміст!</translation>
+    </message>
+    <message>
+        <source>File &apos;%1&apos; does not exist.</source>
+        <translation>Файл &apos;%1&apos; не існує.</translation>
+    </message>
+    <message>
+        <source>File &apos;%1&apos; cannot be opened.</source>
+        <translation>Неможливо відкрити файл &apos;%1&apos;.</translation>
+    </message>
+    <message>
+        <source>File &apos;%1&apos; contains an invalid link to file &apos;%2&apos;</source>
+        <translation>Файл &apos;%1&apos; містить неправильне посилання до файлу &apos;%2&apos;</translation>
+    </message>
+    <message>
+        <source>Invalid links in HTML files.</source>
+        <translation>Неправильні посилання в файлах HTML.</translation>
+    </message>
+</context>
+<context>
+    <name>QHelpProject</name>
+    <message>
+        <source>Unknown token.</source>
+        <translation>Невідомий токен.</translation>
+    </message>
+    <message>
+        <source>Unknown token. Expected &quot;QtHelpProject&quot;!</source>
+        <translation>Невідомий токен. Очікувався &quot;QtHelpProject&quot;!</translation>
+    </message>
+    <message>
+        <source>Error in line %1: %2</source>
+        <translation>Помилка в рядку %1: %2</translation>
+    </message>
+    <message>
+        <source>Virtual folder has invalid syntax.</source>
+        <translation>Віртуальна тека має неправильний синтаксис.</translation>
+    </message>
+    <message>
+        <source>Namespace has invalid syntax.</source>
+        <translation>Простір імен має неправильний синтаксис.</translation>
+    </message>
+    <message>
+        <source>Missing namespace in QtHelpProject.</source>
+        <translation>Відсутній простір імен в QtHelpProject.</translation>
+    </message>
+    <message>
+        <source>Missing virtual folder in QtHelpProject</source>
+        <translation>Відсутня віртуальна тека в QtHelpProject</translation>
+    </message>
+    <message>
+        <source>Missing attribute in keyword at line %1.</source>
+        <translation>Відсутній атрибут в ключовому слові на рядку %1.</translation>
+    </message>
+    <message>
+        <source>The input file %1 could not be opened!</source>
+        <translation>Не вдалось відкрити вхідний файл %1!</translation>
+    </message>
+</context>
+<context>
+    <name>QHelpSearchQueryWidget</name>
+    <message>
+        <source>Search for:</source>
+        <translation>Шукати:</translation>
+    </message>
+    <message>
+        <source>Previous search</source>
+        <translation>Попередній пошук</translation>
+    </message>
+    <message>
+        <source>Next search</source>
+        <translation>Наступний пошук</translation>
+    </message>
+    <message>
+        <source>Search</source>
+        <translation>Шукати</translation>
+    </message>
+    <message>
+        <source>Advanced search</source>
+        <translation>Розширений пошук</translation>
+    </message>
+    <message>
+        <source>words &lt;B&gt;similar&lt;/B&gt; to:</source>
+        <translation>слова &lt;B&gt;схожі&lt;/B&gt; на:</translation>
+    </message>
+    <message>
+        <source>&lt;B&gt;without&lt;/B&gt; the words:</source>
+        <translation>&lt;B&gt;без&lt;/B&gt; слів:</translation>
+    </message>
+    <message>
+        <source>with &lt;B&gt;exact phrase&lt;/B&gt;:</source>
+        <translation>з &lt;B&gt;точною фразою&lt;/B&gt;:</translation>
+    </message>
+    <message>
+        <source>with &lt;B&gt;all&lt;/B&gt; of the words:</source>
+        <translation>з &lt;B&gt;усіма&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;щонайменше одним&lt;/B&gt; зі слів:</translation>
+    </message>
+</context>
+<context>
+    <name>QHelpSearchResultWidget</name>
+    <message numerus="yes">
+        <source>%1 - %2 of %n Hits</source>
+        <translation>
+            <numerusform>%1 - %2 з %n збіг</numerusform>
+            <numerusform>%1 - %2 з %n збіги</numerusform>
+            <numerusform>%1 - %2 з %n збігів</numerusform>
+        </translation>
+    </message>
+    <message>
+        <source>0 - 0 of 0 Hits</source>
+        <translation>0 - 0 з 0 збігів</translation>
+    </message>
+</context>
+</TS>
--- a/translations/qt_ja.ts	Fri Sep 17 08:34:18 2010 +0300
+++ b/translations/qt_ja.ts	Mon Oct 04 01:19:32 2010 +0300
@@ -2,92 +2,78 @@
 <!DOCTYPE TS>
 <TS version="2.0" language="ja">
 <context>
-    <name>MAC_APPLICATION_MENU</name>
-    <message>
-        <location filename="../src/gui/kernel/qapplication.cpp" line="+2316"/>
-        <source>Services</source>
-        <translation>サービス</translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Hide %1</source>
-        <translation>%1を隠す</translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Hide Others</source>
-        <translation>ほかを隠す</translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Show All</source>
-        <translation>すべてを表示</translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Preferences...</source>
-        <translation>環境設定...</translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Quit %1</source>
-        <translation>%1 を終了</translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>About %1</source>
-        <translation>%1 について</translation>
-    </message>
-</context>
-<context>
     <name>CloseButton</name>
     <message>
-        <location filename="../src/gui/widgets/qtabbar.cpp" line="+2253"/>
         <source>Close Tab</source>
         <translatorcomment>ToolTip</translatorcomment>
         <translation>タブを閉じる</translation>
     </message>
 </context>
 <context>
-    <name>PPDOptionsModel</name>
-    <message>
-        <source>Name</source>
-        <translation type="obsolete">名前</translation>
-    </message>
-    <message>
-        <source>Value</source>
-        <translation type="obsolete">値</translation>
+    <name>FakeReply</name>
+    <message>
+        <source>Fake error !</source>
+        <translation>疑似エラー!</translation>
+    </message>
+    <message>
+        <source>Invalid URL</source>
+        <translation>無効なURL</translation>
+    </message>
+</context>
+<context>
+    <name>MAC_APPLICATION_MENU</name>
+    <message>
+        <source>Services</source>
+        <translation>サービス</translation>
+    </message>
+    <message>
+        <source>Hide %1</source>
+        <translation>%1を隠す</translation>
+    </message>
+    <message>
+        <source>Hide Others</source>
+        <translation>ほかを隠す</translation>
+    </message>
+    <message>
+        <source>Show All</source>
+        <translation>すべてを表示</translation>
+    </message>
+    <message>
+        <source>Preferences...</source>
+        <translation>環境設定...</translation>
+    </message>
+    <message>
+        <source>Quit %1</source>
+        <translation>%1 を終了</translation>
+    </message>
+    <message>
+        <source>About %1</source>
+        <translation>%1 について</translation>
     </message>
 </context>
 <context>
     <name>Phonon::</name>
     <message>
-        <location filename="../src/3rdparty/phonon/phonon/phononnamespace.cpp" line="+55"/>
         <source>Notifications</source>
         <translation>通知</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Music</source>
         <translation>音楽</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Video</source>
         <translation>動画</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Communication</source>
         <translation>コミュニケーション</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Games</source>
         <translation>ゲーム</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Accessibility</source>
         <translation>アクセシビリティ</translation>
     </message>
@@ -95,31 +81,30 @@
 <context>
     <name>Phonon::AudioOutput</name>
     <message>
-        <location filename="../src/3rdparty/phonon/phonon/audiooutput.cpp" line="+375"/>
         <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;オーディオ再生デバイス&lt;b&gt;%1&lt;/b&gt;が動作しません。&lt;br/&gt;&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;より高いパフォーマンスを得られるオーディオデバイス &lt;b&gt;%1&lt;/b&gt; が使用可能となったので、使用します。&lt;/html&gt;</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Revert back to device &apos;%1&apos;</source>
         <translation>デバイス &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 has higher preference or is specifically configured for this stream.&lt;/html&gt;</source>
+        <translation>&lt;html&gt;より高いパフォーマンスを得られるかこのストリーム用に指定されているオーディオデバイス &lt;b&gt;%1&lt;/b&gt; を使用します。&lt;/html&gt;</translation>
+    </message>
 </context>
 <context>
     <name>Phonon::Gstreamer::Backend</name>
     <message>
-        <location filename="../src/3rdparty/phonon/gstreamer/backend.cpp" line="+171"/>
         <source>Warning: You do not seem to have the package gstreamer0.10-plugins-good installed.
           Some video features have been disabled.</source>
         <translation>警告: gstreamer0.10-plugins-good がインストールされていません。幾つかの動画機能は使用できません。</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>警告: GStreamer plugin がインストールされていません。すべての音声、動画機能は使用できません</translation>
@@ -128,72 +113,358 @@
 <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 
+Check your GStreamer installation and make sure you 
 have libgstreamer-plugins-base installed.</source>
         <translation>再生できません。
 
-Gstreamer と libgstreamer-plugins-base が正しくインストールされているか確認してください。</translation>
-    </message>
-    <message>
-        <location line="+113"/>
+Gstreamer がインストールされているか確認してください。
+libgstreamer-plugins-base はインストールされていますか。</translation>
+    </message>
+    <message>
+        <source>Missing codec helper script assistant.</source>
+        <translation>コーデックヘルパースクリプトによる支援が受けられません。</translation>
+    </message>
+    <message>
+        <source>Plugin codec installation failed for codec: %0</source>
+        <translation>コーデックプラグインのインストールに失敗しました: %0</translation>
+    </message>
+    <message>
         <source>A required codec is missing. You need to install the following codec(s) to play this content: %0</source>
         <translation>必要なコーデックがみつかりません。このコンテンツを再生するためには、以下のコーデックをインストールする必要があります: %0</translation>
     </message>
     <message>
-        <location line="+676"/>
-        <location line="+8"/>
-        <location line="+15"/>
-        <location line="+9"/>
-        <location line="+6"/>
-        <location line="+19"/>
-        <location line="+335"/>
-        <location line="+24"/>
         <source>Could not open media source.</source>
         <translation>メディアソースを開くことができません。</translation>
     </message>
     <message>
-        <location line="-403"/>
         <source>Invalid source type.</source>
         <translation>無効なソースの形式です。</translation>
     </message>
     <message>
-        <location line="+377"/>
         <source>Could not locate media source.</source>
         <translation>メディアソースがみつかりません。</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>Could not open audio device. The device is already in use.</source>
         <translation>オーディオデバイスを開くことができません。デバイスは既に他のプロセスにより使用されています。</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>Could not decode media source.</source>
         <translation>メディアソースを開くことができません。見つからないか、未知の形式です。</translation>
     </message>
 </context>
 <context>
+    <name>Phonon::MMF</name>
+    <message>
+        <source>Audio Output</source>
+        <translation>オーディオ出力</translation>
+    </message>
+    <message>
+        <source>The audio output device</source>
+        <translation>オーディオ出力デバイス</translation>
+    </message>
+    <message>
+        <source>No error</source>
+        <translation>エラーはありません</translation>
+    </message>
+    <message>
+        <source>Not found</source>
+        <translation>見つかりませんでした</translation>
+    </message>
+    <message>
+        <source>Out of memory</source>
+        <translation>メモリが足りません</translation>
+    </message>
+    <message>
+        <source>Not supported</source>
+        <translation>サポートされていません</translation>
+    </message>
+    <message>
+        <source>Overflow</source>
+        <translation>オーバーフロー</translation>
+    </message>
+    <message>
+        <source>Underflow</source>
+        <translation>アンダーフロー</translation>
+    </message>
+    <message>
+        <source>Already exists</source>
+        <translation>既に存在します</translation>
+    </message>
+    <message>
+        <source>Path not found</source>
+        <translation>パスが見つかりません</translation>
+    </message>
+    <message>
+        <source>In use</source>
+        <translation>使用中</translation>
+    </message>
+    <message>
+        <source>Not ready</source>
+        <translation>準備不足</translation>
+    </message>
+    <message>
+        <source>Access denied</source>
+        <translation>アクセスできません</translation>
+    </message>
+    <message>
+        <source>Could not connect</source>
+        <translation>接続できませんでした</translation>
+    </message>
+    <message>
+        <source>Disconnected</source>
+        <translation>切断されました</translation>
+    </message>
+    <message>
+        <source>Permission denied</source>
+        <translation>許可されていません</translation>
+    </message>
+    <message>
+        <source>Insufficient bandwidth</source>
+        <translation>帯域幅が足りません</translation>
+    </message>
+    <message>
+        <source>Network unavailable</source>
+        <translation>ネットワークが見つかりません</translation>
+    </message>
+    <message>
+        <source>Network communication error</source>
+        <translation>ネットワークの通信エラー</translation>
+    </message>
+    <message>
+        <source>Streaming not supported</source>
+        <translation>ストリーミングはサポートされていません</translation>
+    </message>
+    <message>
+        <source>Server alert</source>
+        <translation>サーバの警告</translation>
+    </message>
+    <message>
+        <source>Invalid protocol</source>
+        <translation>無効なプロトコル</translation>
+    </message>
+    <message>
+        <source>Invalid URL</source>
+        <translation>無効なURL</translation>
+    </message>
+    <message>
+        <source>Multicast error</source>
+        <translation>マルチキャストエラー</translation>
+    </message>
+    <message>
+        <source>Proxy server error</source>
+        <translation>プロキシーサーバのエラー</translation>
+    </message>
+    <message>
+        <source>Proxy server not supported</source>
+        <translation>プロキシーサーバはサポートされていません</translation>
+    </message>
+    <message>
+        <source>Audio output error</source>
+        <translation>オーディオ出力エラー</translation>
+    </message>
+    <message>
+        <source>Video output error</source>
+        <translation>ビデオ出力エラー</translation>
+    </message>
+    <message>
+        <source>Decoder error</source>
+        <translation>デコーダエラー</translation>
+    </message>
+    <message>
+        <source>Audio or video components could not be played</source>
+        <translation>オーディオもしくはビデオコンポーネントが再生できませんでした</translation>
+    </message>
+    <message>
+        <source>DRM error</source>
+        <translation>DRMエラー</translation>
+    </message>
+    <message>
+        <source>Unknown error (%1)</source>
+        <translation>未知のエラー (%1)</translation>
+    </message>
+</context>
+<context>
+    <name>Phonon::MMF::AbstractMediaPlayer</name>
+    <message>
+        <source>Not ready to play</source>
+        <translation>再生の準備ができていません</translation>
+    </message>
+    <message>
+        <source>Error opening file</source>
+        <translation>ファイルのオープン時にエラーが発生しました</translation>
+    </message>
+    <message>
+        <source>Error opening URL</source>
+        <translation>URL のオープン時にエラーが発生しました</translation>
+    </message>
+    <message>
+        <source>Error opening resource</source>
+        <translation>リソースのオープン時にエラーが発生しました</translation>
+    </message>
+    <message>
+        <source>Error opening source: resource not opened</source>
+        <translation>ソースのオープン時にエラーが発生しました: リソースがオープンされていません</translation>
+    </message>
+    <message>
+        <source>Setting volume failed</source>
+        <translation>ボリュームの設定に失敗しました</translation>
+    </message>
+    <message>
+        <source>Loading clip failed</source>
+        <translation>クリップのロードに失敗しました</translation>
+    </message>
+    <message>
+        <source>Playback complete</source>
+        <translation>再生が終了しました</translation>
+    </message>
+</context>
+<context>
+    <name>Phonon::MMF::AbstractVideoPlayer</name>
+    <message>
+        <source>Pause failed</source>
+        <translation>一時停止に失敗しました</translation>
+    </message>
+    <message>
+        <source>Seek failed</source>
+        <translation>シークに失敗しました</translation>
+    </message>
+    <message>
+        <source>Getting position failed</source>
+        <translation>再生位置の取得に失敗しました</translation>
+    </message>
+    <message>
+        <source>Opening clip failed</source>
+        <translation>クリップのオープンに失敗しました</translation>
+    </message>
+</context>
+<context>
+    <name>Phonon::MMF::AudioEqualizer</name>
+    <message>
+        <source>%1 Hz</source>
+        <translation>%1 Hz</translation>
+    </message>
+</context>
+<context>
+    <name>Phonon::MMF::AudioPlayer</name>
+    <message>
+        <source>Getting position failed</source>
+        <translation>再生位置の取得に失敗しました</translation>
+    </message>
+</context>
+<context>
+    <name>Phonon::MMF::DsaVideoPlayer</name>
+    <message>
+        <source>Video display error</source>
+        <translation>ビデオ表示のエラー</translation>
+    </message>
+</context>
+<context>
+    <name>Phonon::MMF::EffectFactory</name>
+    <message>
+        <source>Enabled</source>
+        <translation>許可</translation>
+    </message>
+</context>
+<context>
+    <name>Phonon::MMF::EnvironmentalReverb</name>
+    <message>
+        <source>Decay HF ratio (%)</source>
+        <extracomment>DecayHFRatio: Ratio of high-frequency decay time to the value specified by DecayTime.</extracomment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Decay time (ms)</source>
+        <extracomment>DecayTime: Time over which reverberation is diminished.</extracomment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Density (%)</source>
+        <extracomment>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.</extracomment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Diffusion (%)</source>
+        <extracomment>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.</extracomment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reflections delay (ms)</source>
+        <extracomment>ReflectionsDelay: Amount of delay between the arrival the direct path from the source and the arrival of the first reflection.</extracomment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reflections level (mB)</source>
+        <extracomment>ReflectionsLevel: Amplitude of reflections. This value is corrected by the RoomLevel to give the final reflection amplitude.</extracomment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reverb delay (ms)</source>
+        <extracomment>ReverbDelay: Amount of time between arrival of the first reflection and start of the late reverberation.</extracomment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reverb level (mB)</source>
+        <extracomment>ReverbLevel Amplitude of reverberations. This value is corrected by the RoomLevel to give the final reverberation amplitude.</extracomment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Room HF level</source>
+        <extracomment>RoomHFLevel: Amplitude of low-pass filter used to attenuate the high frequency component of reflected sound.</extracomment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Room level (mB)</source>
+        <extracomment>RoomLevel: Master volume control for all reflected sound.</extracomment>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>Phonon::MMF::MediaObject</name>
+    <message>
+        <source>Error opening source: type not supported</source>
+        <translation>ソースのオープン時にエラーが発生しました: ソースはサポートされていないタイプです</translation>
+    </message>
+    <message>
+        <source>Error opening source: resource is compressed</source>
+        <translation>ソースのオープン時にエラーが発生しました: リソースが圧縮されています</translation>
+    </message>
+    <message>
+        <source>Error opening source: resource not valid</source>
+        <translation>ソースのオープン時にエラーが発生しました: 不正なリソースです</translation>
+    </message>
+    <message>
+        <source>Error opening source: media type could not be determined</source>
+        <translation>ソースのオープン時にエラーが発生しました: メディアのタイプが不明です</translation>
+    </message>
+</context>
+<context>
+    <name>Phonon::MMF::StereoWidening</name>
+    <message>
+        <source>Level (%)</source>
+        <translation>レベル (%)</translation>
+    </message>
+</context>
+<context>
+    <name>Phonon::MMF::SurfaceVideoPlayer</name>
+    <message>
+        <source>Video display error</source>
+        <translation>ビデオ表示のエラー</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>音量: %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>スライダを用いて音量を指定してください。左端が0%、右端が%1%になります</translation>
     </message>
     <message>
-        <location line="+67"/>
         <source>Muted</source>
         <translation>ミュート</translation>
     </message>
@@ -201,12 +472,10 @@
 <context>
     <name>Q3Accel</name>
     <message>
-        <location filename="../src/qt3support/other/q3accel.cpp" line="+481"/>
         <source>%1, %2 not defined</source>
         <translation>%1, %2 は定義されていません</translation>
     </message>
     <message>
-        <location line="+36"/>
         <source>Ambiguous %1 not handled</source>
         <translation>曖昧な %1 は扱えません</translation>
     </message>
@@ -214,27 +483,22 @@
 <context>
     <name>Q3DataTable</name>
     <message>
-        <location filename="../src/qt3support/sql/q3datatable.cpp" line="+285"/>
         <source>True</source>
         <translation>真</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>False</source>
         <translation>偽</translation>
     </message>
     <message>
-        <location line="+505"/>
         <source>Insert</source>
         <translation>挿入</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Update</source>
         <translation>アップデート</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Delete</source>
         <translation>削除</translation>
     </message>
@@ -242,328 +506,250 @@
 <context>
     <name>Q3FileDialog</name>
     <message>
-        <location filename="../src/qt3support/dialogs/q3filedialog_win.cpp" line="+132"/>
         <source>All Files (*.*)</source>
         <translation>すべてのファイル(*.*)</translation>
     </message>
     <message>
-        <location line="+375"/>
         <source>Open </source>
         <translation>オープン</translation>
     </message>
     <message>
-        <location line="+155"/>
         <source>Select a Directory</source>
         <translation>ディレクトリを選択</translation>
     </message>
     <message>
-        <location filename="../src/qt3support/dialogs/q3filedialog.cpp" line="+865"/>
         <source>Copy or Move a File</source>
         <translation>ファイルをコピーまたは移動</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Read: %1</source>
         <translation>読み込み: %1</translation>
     </message>
     <message>
-        <location line="+6"/>
-        <location line="+30"/>
         <source>Write: %1</source>
         <translation>書き込み: %1</translation>
     </message>
     <message>
-        <location line="-22"/>
-        <location line="+1579"/>
         <source>Cancel</source>
         <translation>キャンセル</translation>
     </message>
     <message>
-        <location line="-157"/>
-        <location line="+49"/>
-        <location line="+2153"/>
-        <location filename="../src/qt3support/dialogs/q3filedialog_mac.cpp" line="+110"/>
         <source>All Files (*)</source>
         <translation>すべてのファイル(*)</translation>
     </message>
     <message>
-        <location line="-2089"/>
         <source>Name</source>
         <translation>名前</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Size</source>
         <translation>サイズ</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Type</source>
         <translation>タイプ</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Date</source>
         <translation>日付</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Attributes</source>
         <translation>属性</translation>
     </message>
     <message>
-        <location line="+35"/>
-        <location line="+2031"/>
         <source>&amp;OK</source>
         <translation>OK(&amp;O)</translation>
     </message>
     <message>
-        <location line="-1991"/>
         <source>Look &amp;in:</source>
         <translation>検索する場所(&amp;I):</translation>
     </message>
     <message>
-        <location line="+1"/>
-        <location line="+1981"/>
-        <location line="+16"/>
         <source>File &amp;name:</source>
         <translation>ファイル名(&amp;N):</translation>
     </message>
     <message>
-        <location line="-1996"/>
         <source>File &amp;type:</source>
         <translation>ファイルタイプ(&amp;T):</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Back</source>
         <translation>戻る</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>One directory up</source>
         <translation>1つ上のディレクトリへ移動</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Create New Folder</source>
         <translation>新しいフォルダの作成</translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>List View</source>
         <translation>一覧表示</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Detail View</source>
         <translation>詳細表示</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Preview File Info</source>
         <translation>ファイル情報のプレビュー</translation>
     </message>
     <message>
-        <location line="+23"/>
         <source>Preview File Contents</source>
         <translation>ファイルの内容のプレビュー</translation>
     </message>
     <message>
-        <location line="+88"/>
         <source>Read-write</source>
         <translation>読み込み/書き込み</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Read-only</source>
         <translation>読み込み専用</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Write-only</source>
         <translation>書き込み専用</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Inaccessible</source>
         <translation>アクセス不可</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Symlink to File</source>
         <translation>ファイルへのシンボリックリンク</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Symlink to Directory</source>
         <translation>ディレクトリへのシンボリックリンク</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Symlink to Special</source>
         <translation>スペシャルファイルへのシンボリックリンク</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>File</source>
         <translation>ファイル</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Dir</source>
         <translation>ディレクトリ</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Special</source>
         <translation>スペシャル</translation>
     </message>
     <message>
-        <location line="+704"/>
-        <location line="+2100"/>
-        <location filename="../src/qt3support/dialogs/q3filedialog_win.cpp" line="-325"/>
         <source>Open</source>
         <translation>オープン</translation>
     </message>
     <message>
-        <location line="-1990"/>
-        <location filename="../src/qt3support/dialogs/q3filedialog_win.cpp" line="+84"/>
         <source>Save As</source>
         <translation>名前を付けて保存</translation>
     </message>
     <message>
-        <location line="+642"/>
-        <location line="+5"/>
-        <location line="+355"/>
         <source>&amp;Open</source>
         <translation>オープン(&amp;O)</translation>
     </message>
     <message>
-        <location line="-357"/>
-        <location line="+341"/>
         <source>&amp;Save</source>
         <translation>保存(&amp;S)</translation>
     </message>
     <message>
-        <location line="-334"/>
         <source>&amp;Rename</source>
         <translation>名前の変更(&amp;R)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Delete</source>
         <translation>削除(&amp;D)</translation>
     </message>
     <message>
-        <location line="+20"/>
         <source>R&amp;eload</source>
         <translation>リロード(&amp;E)</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Sort by &amp;Name</source>
         <translation>名前順にソート(&amp;N)</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Sort by &amp;Size</source>
         <translation>サイズ順にソート(&amp;S)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Sort by &amp;Date</source>
         <translation>日付順にソート(&amp;D)</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>&amp;Unsorted</source>
         <translation>ソート解除(&amp;U)</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Sort</source>
         <translation>ソート</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Show &amp;hidden files</source>
         <translation>隠しファイルの表示(&amp;H)</translation>
     </message>
     <message>
-        <location line="+31"/>
         <source>the file</source>
         <translation>ファイル</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>the directory</source>
         <translation>ディレクトリ</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>the symlink</source>
         <translation>シンボリックリンク</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Delete %1</source>
         <translation>%1 の削除</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;%1 &quot;%2&quot; を削除しますか?&lt;/qt&gt;</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>&amp;Yes</source>
         <translation>はい(&amp;Y)</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>&amp;No</source>
         <translation>いいえ(&amp;N)</translation>
     </message>
     <message>
-        <location line="+36"/>
         <source>New Folder 1</source>
         <translation>新しいフォルダ1</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>New Folder</source>
         <translation>新しいフォルダ</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>New Folder %1</source>
         <translation>新しいフォルダ %1</translation>
     </message>
     <message>
-        <location line="+98"/>
         <source>Find Directory</source>
         <translation>ディレクトリの検索</translation>
     </message>
     <message>
-        <location line="+5"/>
-        <location line="+108"/>
         <source>Directories</source>
         <translation>ディレクトリ</translation>
     </message>
     <message>
-        <location line="-2"/>
         <source>Directory:</source>
         <translation>ディレクトリ:</translation>
     </message>
     <message>
-        <location line="+40"/>
-        <location line="+1110"/>
         <source>Error</source>
         <translation>エラー</translation>
     </message>
     <message>
-        <location line="-1109"/>
         <source>%1
 File not found.
 Check path and filename.</source>
@@ -575,29 +761,24 @@
 <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>ディレクトリを読み込めませんでした
 %1</translation>
     </message>
     <message>
-        <location line="+45"/>
         <source>Could not create directory
 %1</source>
         <translation>ディレクトリを作成できませんでした
 %1</translation>
     </message>
     <message>
-        <location line="+34"/>
         <source>Could not remove file or directory
 %1</source>
         <translation>ファイルまたはディレクトリを削除できませんでした
 %1</translation>
     </message>
     <message>
-        <location line="+27"/>
         <source>Could not rename
 %1
 to
@@ -609,14 +790,12 @@
 へ</translation>
     </message>
     <message>
-        <location line="+25"/>
         <source>Could not open
 %1</source>
         <translation>開けませんでした
 %1</translation>
     </message>
     <message>
-        <location line="+68"/>
         <source>Could not write
 %1</source>
         <translation>書き込めませんでした
@@ -626,12 +805,10 @@
 <context>
     <name>Q3MainWindow</name>
     <message>
-        <location filename="../src/qt3support/widgets/q3mainwindow.cpp" line="+2051"/>
         <source>Line up</source>
         <translation>整列</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Customize...</source>
         <translation>カスタマイズ...</translation>
     </message>
@@ -639,7 +816,6 @@
 <context>
     <name>Q3NetworkProtocol</name>
     <message>
-        <location filename="../src/qt3support/network/q3networkprotocol.cpp" line="+854"/>
         <source>Operation stopped by the user</source>
         <translation>操作がユーザによって停止されました</translation>
     </message>
@@ -647,8 +823,6 @@
 <context>
     <name>Q3ProgressDialog</name>
     <message>
-        <location filename="../src/qt3support/dialogs/q3progressdialog.cpp" line="+224"/>
-        <location line="+61"/>
         <source>Cancel</source>
         <translation>キャンセル</translation>
     </message>
@@ -656,28 +830,22 @@
 <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>適用</translation>
     </message>
     <message>
-        <location line="+43"/>
         <source>Help</source>
         <translation>ヘルプ</translation>
     </message>
     <message>
-        <location line="+45"/>
         <source>Defaults</source>
         <translation>デフォルト</translation>
     </message>
     <message>
-        <location line="+50"/>
         <source>Cancel</source>
         <translation>キャンセル</translation>
     </message>
@@ -685,38 +853,30 @@
 <context>
     <name>Q3TextEdit</name>
     <message>
-        <location filename="../src/qt3support/text/q3textedit.cpp" line="+5429"/>
         <source>&amp;Undo</source>
         <translation>元に戻す(&amp;U)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Redo</source>
         <translation>やり直す(&amp;R)</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Cu&amp;t</source>
         <translation>切り取り(&amp;T)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Copy</source>
         <translation>コピー(&amp;C)</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>&amp;Paste</source>
         <translation>貼り付け(&amp;P)</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Clear</source>
         <translation>消去</translation>
     </message>
     <message>
-        <location line="+4"/>
-        <location line="+2"/>
         <source>Select All</source>
         <translation>すべてを選択</translation>
     </message>
@@ -724,67 +884,54 @@
 <context>
     <name>Q3TitleBar</name>
     <message>
-        <location filename="../src/plugins/accessible/compat/q3complexwidgets.cpp" line="+246"/>
         <source>System</source>
         <translation>システム</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Restore up</source>
         <translation>元に戻す</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Minimize</source>
         <translation>最小化</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Restore down</source>
         <translation>元に戻す</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Maximize</source>
         <translation>最大化</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Close</source>
         <translation>閉じる</translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>Contains commands to manipulate the window</source>
         <translation>ウィンドウを操作するコマンドを含みます</translation>
     </message>
     <message>
-        <location line="+3"/>
-        <source>Puts a minimized back to normal</source>
+        <source>Puts a minimized window back to normal</source>
         <translation>最小化されたウィンドウを元のサイズに戻します</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Moves the window out of the way</source>
         <translation>ウィンドウを隠します</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Puts a maximized window back to normal</source>
         <translation>最大化されたウィンドウを元のサイズに戻します</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Makes the window full screen</source>
         <translation>ウィンドウをフルスクリーンにします</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Closes the window</source>
         <translation>ウィンドウを閉じます</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Displays the name of the window and contains controls to manipulate it</source>
         <translation>ウィンドウの名前と、ウィンドウを操作するコントロールを表示します</translation>
     </message>
@@ -792,7 +939,6 @@
 <context>
     <name>Q3ToolBar</name>
     <message>
-        <location filename="../src/qt3support/widgets/q3toolbar.cpp" line="+692"/>
         <source>More...</source>
         <translation>その他...</translation>
     </message>
@@ -800,51 +946,38 @@
 <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>プロトコル &apos;%1&apos; はサポートされていません</translation>
     </message>
     <message>
-        <location line="-260"/>
         <source>The protocol `%1&apos; does not support listing directories</source>
         <translation>プロトコル &apos;%1&apos; はディレクトリのリスティングをサポートしていません</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>The protocol `%1&apos; does not support creating new directories</source>
         <translation>プロトコル &apos;%1&apos; は新しいディレクトリの作成をサポートしていません</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>The protocol `%1&apos; does not support removing files or directories</source>
         <translation>プロトコル &apos;%1&apos; はファイルまたはディレクトリの削除をサポートしていません</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>The protocol `%1&apos; does not support renaming files or directories</source>
         <translation>プロトコル &apos;%1&apos; はファイルまたはディレクトリの名前の変更をサポートしていません</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>The protocol `%1&apos; does not support getting files</source>
         <translation>プロトコル &apos;%1&apos; はファイルの取得をサポートしていません</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>The protocol `%1&apos; does not support putting files</source>
         <translation>プロトコル &apos;%1&apos; はファイルの送信をサポートしていません</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>プロトコル &apos;%1&apos; はファイルまたはディレクトリのコピーまたは移動をサポートしていません</translation>
     </message>
     <message>
-        <location line="+237"/>
-        <location line="+1"/>
         <source>(unknown)</source>
         <translation>(不明)</translation>
     </message>
@@ -852,27 +985,22 @@
 <context>
     <name>Q3Wizard</name>
     <message>
-        <location filename="../src/qt3support/dialogs/q3wizard.cpp" line="+177"/>
         <source>&amp;Cancel</source>
         <translation>キャンセル(&amp;C)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&lt; &amp;Back</source>
         <translation>&lt; 戻る(&amp;B)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Next &gt;</source>
         <translation>次へ(&amp;N) &gt;</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Finish</source>
         <translation>完了(&amp;F)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Help</source>
         <translation>ヘルプ(&amp;H)</translation>
     </message>
@@ -880,45 +1008,31 @@
 <context>
     <name>QAbstractSocket</name>
     <message>
-        <location filename="../src/network/socket/qabstractsocket.cpp" line="+868"/>
-        <location filename="../src/network/socket/qhttpsocketengine.cpp" line="+615"/>
-        <location filename="../src/network/socket/qsocks5socketengine.cpp" line="+657"/>
-        <location line="+26"/>
         <source>Host not found</source>
         <translation>ホストが見つかりませんでした</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>接続が拒否されました</translation>
     </message>
     <message>
-        <location line="+141"/>
         <source>Connection timed out</source>
         <translation>接続がタイムアウトしました</translation>
     </message>
     <message>
-        <location line="-547"/>
-        <location line="+787"/>
-        <location line="+208"/>
         <source>Operation on socket is not supported</source>
         <translatorcomment>抽象ソケットクラスでのソケットのエラー</translatorcomment>
         <translation>このソケットへのこの操作はサポートされていません</translation>
     </message>
     <message>
-        <location line="+137"/>
         <source>Socket operation timed out</source>
         <translation>ソケット操作がタイムアウトしました</translation>
     </message>
     <message>
-        <location line="+380"/>
         <source>Socket is not connected</source>
         <translation>ソケットが接続されていません</translation>
     </message>
     <message>
-        <location filename="../src/network/socket/qsocks5socketengine.cpp" line="-8"/>
         <source>Network unreachable</source>
         <translation>ネットワークへ到達できません</translation>
     </message>
@@ -926,45 +1040,44 @@
 <context>
     <name>QAbstractSpinBox</name>
     <message>
-        <location filename="../src/gui/widgets/qabstractspinbox.cpp" line="+1200"/>
         <source>&amp;Step up</source>
         <translation>上(&amp;S)</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Step &amp;down</source>
         <translation>下(&amp;D)</translation>
     </message>
     <message>
-        <location line="-8"/>
         <source>&amp;Select All</source>
         <translation>すべてを選択(&amp;S)</translation>
     </message>
 </context>
 <context>
+    <name>QAccessibleButton</name>
+    <message>
+        <source>Press</source>
+        <translation>押す</translation>
+    </message>
+</context>
+<context>
     <name>QApplication</name>
     <message>
-        <location filename="../src/gui/accessible/qaccessibleobject.cpp" line="+376"/>
         <source>Activate</source>
         <translation>アクティブに</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Activates the program&apos;s main window</source>
         <translation>メインウィンドウをアクティブにする</translation>
     </message>
     <message>
-        <location filename="../src/gui/dialogs/qmessagebox.h" line="+352"/>
         <source>Executable &apos;%1&apos; requires Qt %2, found Qt %3.</source>
         <translation>実行可能ファイル &apos;%1&apos; には Qt %2 が必要です。Qt %3 が見つかりました。</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Incompatible Qt Library Error</source>
         <translation>互換性のないQtライブラリエラー</translation>
     </message>
     <message>
-        <location filename="../src/gui/kernel/qapplication.cpp" line="+2238"/>
         <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>
@@ -973,22 +1086,18 @@
 <context>
     <name>QAxSelect</name>
     <message>
-        <location filename="../src/activeqt/container/qaxselect.ui"/>
         <source>Select ActiveX Control</source>
         <translation>ActiveX Control を選択</translation>
     </message>
     <message>
-        <location/>
         <source>OK</source>
         <translation>OK</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Cancel</source>
         <translation>キャンセル(&amp;C)</translation>
     </message>
     <message>
-        <location/>
         <source>COM &amp;Object:</source>
         <translation>COM オブジェクト(&amp;O):</translation>
     </message>
@@ -996,17 +1105,14 @@
 <context>
     <name>QCheckBox</name>
     <message>
-        <location filename="../src/plugins/accessible/widgets/simplewidgets.cpp" line="+114"/>
         <source>Uncheck</source>
         <translation>選択解除</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Check</source>
         <translation>選択</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Toggle</source>
         <translation>反転</translation>
     </message>
@@ -1014,97 +1120,65 @@
 <context>
     <name>QColorDialog</name>
     <message>
-        <location filename="../src/gui/dialogs/qcolordialog.cpp" line="+1253"/>
         <source>Hu&amp;e:</source>
         <translation>色相(&amp;E):</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Sat:</source>
         <translation>彩度(&amp;S):</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Val:</source>
         <translation>明度(&amp;V):</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Red:</source>
         <translation>赤(&amp;R):</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Green:</source>
         <translation>緑(&amp;G):</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Bl&amp;ue:</source>
         <translation>青(&amp;U):</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>A&amp;lpha channel:</source>
         <translation>アルファチャネル(&amp;L):</translation>
     </message>
     <message>
-        <location line="+101"/>
         <source>Select Color</source>
         <translation>色</translation>
     </message>
     <message>
-        <location line="+137"/>
         <source>&amp;Basic colors</source>
         <translation>基本的なカラー(&amp;B)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Custom colors</source>
         <translation>カスタムカラー(&amp;C)</translation>
     </message>
     <message>
-        <source>&amp;Define Custom Colors &gt;&gt;</source>
-        <translation type="obsolete">カスタムカラーの定義(&amp;D) &gt;&gt;</translation>
-    </message>
-    <message>
-        <source>OK</source>
-        <translation type="obsolete">OK</translation>
-    </message>
-    <message>
-        <source>Cancel</source>
-        <translation type="obsolete">キャンセル</translation>
-    </message>
-    <message>
-        <location line="+1"/>
         <source>&amp;Add to Custom Colors</source>
         <translation>カスタムカラーに追加(&amp;A)</translation>
     </message>
-    <message>
-        <source>Select color</source>
-        <translation type="obsolete">カラーの選択</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>オープン</translation>
     </message>
     <message>
-        <location filename="../src/gui/itemviews/qitemeditorfactory.cpp" line="+544"/>
         <source>False</source>
         <translation>偽</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>True</source>
         <translation>真</translation>
     </message>
     <message>
-        <location filename="../src/plugins/accessible/widgets/complexwidgets.cpp" line="+0"/>
         <source>Close</source>
         <translation>閉じる</translation>
     </message>
@@ -1112,43 +1186,56 @@
 <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: キーが空です</translation>
     </message>
     <message>
-        <location line="+12"/>
         <source>%1: unable to make key</source>
         <comment>QSystemSemaphore</comment>
         <translation>%1: キーを作成できません</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>%1: ftok failed</source>
         <comment>QSystemSemaphore</comment>
         <translation>%1: fork に失敗しました</translation>
     </message>
+    <message>
+        <source>%1: already exists</source>
+        <comment>QSystemSemaphore</comment>
+        <translation>%1: 既に存在します</translation>
+    </message>
+    <message>
+        <source>%1: does not exist</source>
+        <comment>QSystemSemaphore</comment>
+        <translation>%1: 存在しません</translation>
+    </message>
+    <message>
+        <source>%1: out of resources</source>
+        <comment>QSystemSemaphore</comment>
+        <translation>%1: リソース不足です</translation>
+    </message>
+    <message>
+        <source>%1: unknown error %2</source>
+        <comment>QSystemSemaphore</comment>
+        <translation>%1: 未知のエラー %2</translation>
+    </message>
 </context>
 <context>
     <name>QDB2Driver</name>
     <message>
-        <location filename="../src/sql/drivers/db2/qsql_db2.cpp" line="+1276"/>
         <source>Unable to connect</source>
         <translation>接続できません</translation>
     </message>
     <message>
-        <location line="+303"/>
         <source>Unable to commit transaction</source>
         <translation>トランザクションをコミットできません</translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>Unable to rollback transaction</source>
         <translation>トランザクションをロールバックできません</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Unable to set autocommit</source>
         <translation>オートコミットを設定できません</translation>
     </message>
@@ -1156,33 +1243,26 @@
 <context>
     <name>QDB2Result</name>
     <message>
-        <location line="-1043"/>
-        <location line="+243"/>
         <source>Unable to execute statement</source>
         <translation>ステートメントを実行できません</translation>
     </message>
     <message>
-        <location line="-206"/>
         <source>Unable to prepare statement</source>
         <translation>プリペアステートメントを使えません</translation>
     </message>
     <message>
-        <location line="+196"/>
         <source>Unable to bind variable</source>
         <translation>変数をバインドできません</translation>
     </message>
     <message>
-        <location line="+92"/>
         <source>Unable to fetch record %1</source>
         <translation>レコード %1 をフェッチできません</translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>Unable to fetch next</source>
         <translation>次のレコードをフェッチできません</translation>
     </message>
     <message>
-        <location line="+20"/>
         <source>Unable to fetch first</source>
         <translation>最初のレコードをフェッチできません</translation>
     </message>
@@ -1190,40 +1270,910 @@
 <context>
     <name>QDateTimeEdit</name>
     <message>
-        <location filename="../src/gui/widgets/qdatetimeedit.cpp" line="+2295"/>
         <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>QDeclarativeAbstractAnimation</name>
+    <message>
+        <source>Cannot animate non-existent property &quot;%1&quot;</source>
+        <translation>存在しないプロパティ &quot;%1&quot; はアニメーション出来ません</translation>
+    </message>
+    <message>
+        <source>Cannot animate read-only property &quot;%1&quot;</source>
+        <translation>読込専用のプロパティ &quot;%1&quot; はアニメーション出来ません</translation>
+    </message>
+    <message>
+        <source>Animation is an abstract class</source>
+        <translation>Animation は抽象クラスです</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativeAnchorAnimation</name>
+    <message>
+        <source>Cannot set a duration of &lt; 0</source>
+        <translation>負の値はアニメーション時間として設定できません</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativeAnchors</name>
+    <message>
+        <source>Possible anchor loop detected on fill.</source>
+        <translation>fill によってアンカーのループが発生しています。</translation>
+    </message>
+    <message>
+        <source>Possible anchor loop detected on centerIn.</source>
+        <translation>centerIn によってアンカーのループが発生しています。</translation>
+    </message>
+    <message>
+        <source>Cannot anchor to an item that isn&apos;t a parent or sibling.</source>
+        <translation>親でも兄弟でもない要素にはアンカー出来ません。</translation>
+    </message>
+    <message>
+        <source>Possible anchor loop detected on vertical anchor.</source>
+        <translation>縦方向のアンカーによってアンカーのループが発生しています。</translation>
+    </message>
+    <message>
+        <source>Possible anchor loop detected on horizontal anchor.</source>
+        <translation>横方向のアンカーによってアンカーのループが発生しています。</translation>
+    </message>
+    <message>
+        <source>Cannot specify left, right, and hcenter anchors.</source>
+        <translation>left, right, hcenter のどのアンカーを使用しているか限定できません。</translation>
+    </message>
+    <message>
+        <source>Cannot anchor to a null item.</source>
+        <translation>空の要素にはアンカー出来ません。</translation>
+    </message>
+    <message>
+        <source>Cannot anchor a horizontal edge to a vertical edge.</source>
+        <translation>横方向のエッジから縦方向のエッジへはアンカー出来ません。</translation>
+    </message>
+    <message>
+        <source>Cannot anchor item to self.</source>
+        <translation>自分自身へはアンカー出来ません。</translation>
+    </message>
+    <message>
+        <source>Cannot specify top, bottom, and vcenter anchors.</source>
+        <translation>top, bottom, vcenter のどのアンカーを使用しているか限定できません。</translation>
+    </message>
+    <message>
+        <source>Baseline anchor cannot be used in conjunction with top, bottom, or vcenter anchors.</source>
+        <translation>baseline アンカーを top, bottom, vcenter アンカーと組み合わせることはできません。</translation>
+    </message>
+    <message>
+        <source>Cannot anchor a vertical edge to a horizontal edge.</source>
+        <translation>縦方向のエッジから横方向のエッジへはアンカー出来ません。</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativeAnimatedImage</name>
+    <message>
+        <source>Qt was built without support for QMovie</source>
+        <translation>Qt は QMovie のサポートを外してビルドされています</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativeBehavior</name>
+    <message>
+        <source>Cannot change the animation assigned to a Behavior.</source>
+        <translation>Behavior へ割り当てられたアニメーションは変更できません。</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativeBinding</name>
+    <message>
+        <source>Binding loop detected for property &quot;%1&quot;</source>
+        <translation>プロパティ &quot;%1&quot; へのバインディングにループが発生しています</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativeCompiledBindings</name>
+    <message>
+        <source>Binding loop detected for property &quot;%1&quot;</source>
+        <translation>プロパティ &quot;%1&quot; へのバインディングにループが発生しています</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativeCompiler</name>
+    <message>
+        <source>Invalid property assignment: &quot;%1&quot; is a read-only property</source>
+        <translation>無効なプロパティの値: &quot;%1&quot; は読込専用のプロパティです</translation>
+    </message>
+    <message>
+        <source>Invalid property assignment: unknown enumeration</source>
+        <translation>無効なプロパティの値: 未知の列挙型です</translation>
+    </message>
+    <message>
+        <source>Invalid property assignment: string expected</source>
+        <translation>無効なプロパティの値: 文字列を指定してください</translation>
+    </message>
+    <message>
+        <source>Invalid property assignment: url expected</source>
+        <translation>無効なプロパティの値: URI を指定してください</translation>
+    </message>
+    <message>
+        <source>Invalid property assignment: unsigned int expected</source>
+        <translation>無効なプロパティの値: 符号なしの整数を指定してください</translation>
+    </message>
+    <message>
+        <source>Invalid property assignment: int expected</source>
+        <translation>無効なプロパティの値: 整数を指定してください</translation>
+    </message>
+    <message>
+        <source>Invalid property assignment: number expected</source>
+        <translation>無効なプロパティの値: 数値を指定してください</translation>
+    </message>
+    <message>
+        <source>Invalid property assignment: color expected</source>
+        <translation>無効なプロパティの値: 色を指定してください</translation>
+    </message>
+    <message>
+        <source>Invalid property assignment: date expected</source>
+        <translation>無効なプロパティの値: 日付を指定してください</translation>
+    </message>
+    <message>
+        <source>Invalid property assignment: time expected</source>
+        <translation>無効なプロパティの値: 時間を指定してください</translation>
+    </message>
+    <message>
+        <source>Invalid property assignment: datetime expected</source>
+        <translation>無効なプロパティの値: 日付と時間を指定してください</translation>
+    </message>
+    <message>
+        <source>Invalid property assignment: point expected</source>
+        <translation>無効なプロパティの値: 位置を指定してください</translation>
+    </message>
+    <message>
+        <source>Invalid property assignment: size expected</source>
+        <translation>無効なプロパティの値: サイズを指定してください</translation>
+    </message>
+    <message>
+        <source>Invalid property assignment: rect expected</source>
+        <translation>無効なプロパティの値: 矩形を指定してください</translation>
+    </message>
+    <message>
+        <source>Invalid property assignment: boolean expected</source>
+        <translation>無効なプロパティの値: 真偽値を指定してください</translation>
+    </message>
+    <message>
+        <source>Invalid property assignment: 3D vector expected</source>
+        <translation>無効なプロパティの値: 3D ベクターを指定してください</translation>
+    </message>
+    <message>
+        <source>Invalid property assignment: unsupported type &quot;%1&quot;</source>
+        <translation>無効なプロパティの値: 未知の型 &quot;%1&quot; です</translation>
+    </message>
+    <message>
+        <source>Element is not creatable.</source>
+        <translation>要素が作成できません。</translation>
+    </message>
+    <message>
+        <source>Component elements may not contain properties other than id</source>
+        <translation>コンポーネント要素に ID 以外のプロパティが含まれていません</translation>
+    </message>
+    <message>
+        <source>Invalid component id specification</source>
+        <translation>無効なコンポーネント ID の指定です</translation>
+    </message>
+    <message>
+        <source>id is not unique</source>
+        <translation>ID が重複しています</translation>
+    </message>
+    <message>
+        <source>Invalid component body specification</source>
+        <translation>無効なコンポーネントボディの指定です</translation>
+    </message>
+    <message>
+        <source>Component objects cannot declare new properties.</source>
+        <translation>コンポーネントオブジェクトに新しいプロパティを宣言できません。</translation>
+    </message>
+    <message>
+        <source>Component objects cannot declare new signals.</source>
+        <translation>コンポーネントオブジェクトに新しいシグナルを宣言できません。</translation>
+    </message>
+    <message>
+        <source>Component objects cannot declare new functions.</source>
+        <translation>コンポーネントオブジェクトに新しい関数を宣言できません。</translation>
+    </message>
+    <message>
+        <source>Cannot create empty component specification</source>
+        <translation>仕様が空であるコンポーネントは作成できません</translation>
+    </message>
+    <message>
+        <source>Incorrectly specified signal assignment</source>
+        <translation>仕様と異なるシグナルが割り当てられています</translation>
+    </message>
+    <message>
+        <source>Cannot assign a value to a signal (expecting a script to be run)</source>
+        <translation>値をシグナルに割り当てることはできません(ただし、スクリプトは除きます)</translation>
+    </message>
+    <message>
+        <source>Empty signal assignment</source>
+        <translation>シグナルへの割り当てが空です</translation>
+    </message>
+    <message>
+        <source>Empty property assignment</source>
+        <translation>プロパティの値が空です</translation>
+    </message>
+    <message>
+        <source>Attached properties cannot be used here</source>
+        <translation>アタッチされたプロパティはここでは利用できません</translation>
+    </message>
+    <message>
+        <source>Non-existent attached object</source>
+        <translation>アタッチされたオブジェクトが存在しません</translation>
+    </message>
+    <message>
+        <source>Invalid attached object assignment</source>
+        <translation>無効なアタッチされたオブジェクトへの割り当て</translation>
+    </message>
+    <message>
+        <source>Cannot assign to non-existent default property</source>
+        <translation>存在しないデフォルトプロパティへは割り当てできません</translation>
+    </message>
+    <message>
+        <source>Cannot assign to non-existent property &quot;%1&quot;</source>
+        <translation>存在しないプロパティ &quot;%1&quot; へは割り当てできません</translation>
+    </message>
+    <message>
+        <source>Invalid use of namespace</source>
+        <translation>無効なネームスペースの使用法です</translation>
+    </message>
+    <message>
+        <source>Not an attached property name</source>
+        <translation>アタッチされたプロパティの名前ではありません</translation>
+    </message>
+    <message>
+        <source>Invalid use of id property</source>
+        <translation>無効な ID プロパティの使用法です</translation>
+    </message>
+    <message>
+        <source>Property has already been assigned a value</source>
+        <translation>プロパティには既に値が割り当てられています</translation>
+    </message>
+    <message>
+        <source>Invalid grouped property access</source>
+        <translation>無効なグループ化されたプロパティへのアクセスです</translation>
+    </message>
+    <message>
+        <source>Cannot assign a value directly to a grouped property</source>
+        <translation>グループ化されたプロパティに直接値を割り当てることはできません</translation>
+    </message>
+    <message>
+        <source>Invalid property use</source>
+        <translation>無効なプロパティの使用法です</translation>
+    </message>
+    <message>
+        <source>Property assignment expected</source>
+        <translation>プロパティに値が必要です</translation>
+    </message>
+    <message>
+        <source>Single property assignment expected</source>
+        <translation>プロパティに複数の値は割り当てられません</translation>
+    </message>
+    <message>
+        <source>Unexpected object assignment</source>
+        <translation>オブジェクトを割り当てることはできません</translation>
+    </message>
+    <message>
+        <source>Cannot assign object to list</source>
+        <translation>オブジェクトをリストに割り当てることはできません</translation>
+    </message>
+    <message>
+        <source>Can only assign one binding to lists</source>
+        <translation>リストへは一つのバインディングのみ割り当てることができます</translation>
+    </message>
+    <message>
+        <source>Cannot assign primitives to lists</source>
+        <translation>プリミティブをリストに割り当てることはできません</translation>
+    </message>
+    <message>
+        <source>Cannot assign multiple values to a script property</source>
+        <translation>複数の値をスクリプトプロパティに割り当てることはできません</translation>
+    </message>
+    <message>
+        <source>Invalid property assignment: script expected</source>
+        <translation>無効なプロパティの値: スクリプトを指定してください</translation>
+    </message>
+    <message>
+        <source>Cannot assign object to property</source>
+        <translation>オブジェクトをプロパティに割り当てることはできません</translation>
+    </message>
+    <message>
+        <source>&quot;%1&quot; cannot operate on &quot;%2&quot;</source>
+        <translation>&quot;%1&quot; は &quot;%2&quot; を操作できません</translation>
+    </message>
+    <message>
+        <source>Duplicate default property</source>
+        <translation>デフォルトプロパティが重複しています</translation>
+    </message>
+    <message>
+        <source>Duplicate property name</source>
+        <translation>プロパティの名前が重複しています</translation>
+    </message>
+    <message>
+        <source>Property names cannot begin with an upper case letter</source>
+        <translation>プロパティの名前を大文字から始めることはできません</translation>
+    </message>
+    <message>
+        <source>Illegal property name</source>
+        <translation>プロパティの名前が無効です</translation>
+    </message>
+    <message>
+        <source>Duplicate signal name</source>
+        <translation>シグナルの名前が重複しています</translation>
+    </message>
+    <message>
+        <source>Signal names cannot begin with an upper case letter</source>
+        <translation>シグナルの名前を大文字から始めることはできません</translation>
+    </message>
+    <message>
+        <source>Illegal signal name</source>
+        <translation>シグナルの名前が無効です</translation>
+    </message>
+    <message>
+        <source>Duplicate method name</source>
+        <translation>メソッドの名前が重複しています</translation>
+    </message>
+    <message>
+        <source>Method names cannot begin with an upper case letter</source>
+        <translation>メソッドの名前を大文字から始めることはできません</translation>
+    </message>
+    <message>
+        <source>Illegal method name</source>
+        <translation>メソッドの名前が無効です</translation>
+    </message>
+    <message>
+        <source>Property value set multiple times</source>
+        <translation>複数回プロパティに値を割り当てています</translation>
+    </message>
+    <message>
+        <source>Invalid property nesting</source>
+        <translation>無効なプロパティのネストです</translation>
+    </message>
+    <message>
+        <source>Cannot override FINAL property</source>
+        <translation>FINAL プロパティを上書きすることはできません</translation>
+    </message>
+    <message>
+        <source>Invalid property type</source>
+        <translation>無効なプロパティの型です</translation>
+    </message>
+    <message>
+        <source>Invalid empty ID</source>
+        <translation>空の ID は無効です</translation>
+    </message>
+    <message>
+        <source>IDs cannot start with an uppercase letter</source>
+        <translation>ID を大文字から始めることはできません</translation>
+    </message>
+    <message>
+        <source>IDs must start with a letter or underscore</source>
+        <translation>ID は英字もしくはアンダースコアで始めてください</translation>
+    </message>
+    <message>
+        <source>IDs must contain only letters, numbers, and underscores</source>
+        <translation>ID には英数字およびアンダースコアのみ使用できます</translation>
+    </message>
+    <message>
+        <source>ID illegally masks global JavaScript property</source>
+        <translation>ID はグローバルな JavaScript のプロパティを不正に隠しています</translation>
+    </message>
+    <message>
+        <source>No property alias location</source>
+        <translation>プロパティのエイリアスのパスがありません</translation>
+    </message>
+    <message>
+        <source>Invalid alias location</source>
+        <translation>無効なエイリアスのパス</translation>
+    </message>
+    <message>
+        <source>Invalid alias reference. An alias reference must be specified as &lt;id&gt; or &lt;id&gt;.&lt;property&gt;</source>
+        <translation>無効なエイリアスの参照です。エイリアスの参照先は &lt;ID&gt; もしくは &lt;ID&gt;.&lt;プロパティ&gt; でなくてはいけません</translation>
+    </message>
+    <message>
+        <source>Invalid alias reference. Unable to find id &quot;%1&quot;</source>
+        <translation>無効なエイリアスの参照です。 ID &quot;%1&quot; が見つかりません</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativeComponent</name>
+    <message>
+        <source>Invalid empty URL</source>
+        <translation>空の URL は無効です</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativeCompositeTypeManager</name>
+    <message>
+        <source>Resource %1 unavailable</source>
+        <translation>リソース %1 が利用できません</translation>
+    </message>
+    <message>
+        <source>Namespace %1 cannot be used as a type</source>
+        <translation>ネームスペース %1 を型として使用することはできません</translation>
+    </message>
+    <message>
+        <source>%1 %2</source>
+        <translation>%1 %2</translation>
+    </message>
+    <message>
+        <source>Type %1 unavailable</source>
+        <translation>型 %1 が利用できません</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativeConnections</name>
+    <message>
+        <source>Cannot assign to non-existent property &quot;%1&quot;</source>
+        <translation>存在しないプロパティ &quot;%1&quot; へは割り当てできません</translation>
+    </message>
+    <message>
+        <source>Connections: nested objects not allowed</source>
+        <translation>接続: オブジェクトのネストは許可されていません</translation>
+    </message>
+    <message>
+        <source>Connections: syntax error</source>
+        <translation>接続: 構文エラー</translation>
+    </message>
+    <message>
+        <source>Connections: script expected</source>
+        <translation>接続: スクリプトを指定してください</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativeEngine</name>
+    <message>
+        <source>executeSql called outside transaction()</source>
+        <translation>transaction() の外部から executeSql が呼び出されました</translation>
+    </message>
+    <message>
+        <source>Read-only Transaction</source>
+        <translation>読込専用のトランザクションです</translation>
+    </message>
+    <message>
+        <source>Version mismatch: expected %1, found %2</source>
+        <translation>バージョンが一致しません: 予期したバージョンは %1 ですが、 %2 が見つかりました</translation>
+    </message>
+    <message>
+        <source>SQL transaction failed</source>
+        <translation>SQL のトランザクションを失敗しました</translation>
+    </message>
+    <message>
+        <source>transaction: missing callback</source>
+        <translation>トランザクション: コールバックが欠けています</translation>
+    </message>
+    <message>
+        <source>SQL: database version mismatch</source>
+        <translation>SQL: データーベースのバージョンが一致しません</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativeFlipable</name>
+    <message>
+        <source>front is a write-once property</source>
+        <translation>front は一度のみ書き込み可能なプロパティです</translation>
+    </message>
+    <message>
+        <source>back is a write-once property</source>
+        <translation>back は一度のみ書き込み可能なプロパティです</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativeImportDatabase</name>
+    <message>
+        <source>module &quot;%1&quot; definition &quot;%2&quot; not readable</source>
+        <translation>&quot;%1&quot; モジュールの定義 &quot;%2&quot; が読めません</translation>
+    </message>
+    <message>
+        <source>plugin cannot be loaded for module &quot;%1&quot;: %2</source>
+        <translation>&quot;%1&quot; モジュール用のプラグインがロードできません: %2</translation>
+    </message>
+    <message>
+        <source>module &quot;%1&quot; plugin &quot;%2&quot; not found</source>
+        <translation>&quot;%1&quot; モジュールの &quot;%2&quot; プラグインが見つかりません</translation>
+    </message>
+    <message>
+        <source>module &quot;%1&quot; version %2.%3 is not installed</source>
+        <translation>バージョン %2.%3 の &quot;%1&quot; モジュールがインストールされていません</translation>
+    </message>
+    <message>
+        <source>module &quot;%1&quot; is not installed</source>
+        <translation>&quot;%1&quot; モジュールがインストールされていません</translation>
+    </message>
+    <message>
+        <source>&quot;%1&quot;: no such directory</source>
+        <translation>&quot;%1&quot;: そのようなディレクトリはありません</translation>
+    </message>
+    <message>
+        <source>import &quot;%1&quot; has no qmldir and no namespace</source>
+        <translation>import する &quot;%1&quot; に qmldir もネームスペースもありません</translation>
+    </message>
+    <message>
+        <source>- %1 is not a namespace</source>
+        <translation>- %1 はネームスペースではありません</translation>
+    </message>
+    <message>
+        <source>- nested namespaces not allowed</source>
+        <translation>- ネームスペースのネストは許可されていません</translation>
+    </message>
+    <message>
+        <source>local directory</source>
+        <translation>ローカルディレクトリ</translation>
+    </message>
+    <message>
+        <source>is ambiguous. Found in %1 and in %2</source>
+        <translation>を特定できません。%1 と %2 の双方で見つけました</translation>
+    </message>
+    <message>
+        <source>is ambiguous. Found in %1 in version %2.%3 and %4.%5</source>
+        <translation>を特定できません。%1 にバージョン %2.%3 と %4.%5 の双方を見つけました</translation>
+    </message>
+    <message>
+        <source>is instantiated recursively</source>
+        <translation>の使用の際に再帰が発生しています</translation>
+    </message>
+    <message>
+        <source>is not a type</source>
+        <translation>は型ではありません</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativeKeyNavigationAttached</name>
+    <message>
+        <source>KeyNavigation is only available via attached properties</source>
+        <translation>KeyNavigation はアタッチド・プロパティ(Attached Property: 型名.プロパティ名)の形式でのみ利用できます</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativeKeysAttached</name>
+    <message>
+        <source>Keys is only available via attached properties</source>
+        <translation>Keys はアタッチド・プロパティ(Attached Property: 型名.プロパティ名)の形式でのみ利用できます</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativeListModel</name>
+    <message>
+        <source>remove: index %1 out of range</source>
+        <translation>remove: インデックス %1 は有効範囲外の値です</translation>
+    </message>
+    <message>
+        <source>insert: value is not an object</source>
+        <translation>insert: オブジェクト以外の値は挿入できません</translation>
+    </message>
+    <message>
+        <source>insert: index %1 out of range</source>
+        <translation>insert: インデックス %1 は有効範囲外の値です</translation>
+    </message>
+    <message>
+        <source>move: out of range</source>
+        <translation>move: 有効範囲外の値です</translation>
+    </message>
+    <message>
+        <source>append: value is not an object</source>
+        <translation>append: オブジェクト以外の値は追加できません</translation>
+    </message>
+    <message>
+        <source>set: value is not an object</source>
+        <translation>set: オブジェクト以外の値は代入できません</translation>
+    </message>
+    <message>
+        <source>set: index %1 out of range</source>
+        <translation>set: インデックス %1 は有効範囲外の値です</translation>
+    </message>
+    <message>
+        <source>ListElement: cannot contain nested elements</source>
+        <translation>ListElement: ネストしたエレメントは保持できません</translation>
+    </message>
+    <message>
+        <source>ListElement: cannot use reserved &quot;id&quot; property</source>
+        <translation>ListElement: 予約語 &quot;id&quot; をプロパティに使用できません</translation>
+    </message>
+    <message>
+        <source>ListElement: cannot use script for property value</source>
+        <translation>ListElement: スクリプトをプロパティの値には使用できません</translation>
+    </message>
+    <message>
+        <source>ListModel: undefined property &apos;%1&apos;</source>
+        <translation>ListModel: &apos;%1&apos; は未定義のプロパティです</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativeLoader</name>
+    <message>
+        <source>Loader does not support loading non-visual elements.</source>
+        <translation>Loader は可視化できない要素の読み込みをサポートしていません。</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativeParentAnimation</name>
+    <message>
+        <source>Unable to preserve appearance under complex transform</source>
+        <translation>複雑な変換を伴う外観は保持できません</translation>
+    </message>
+    <message>
+        <source>Unable to preserve appearance under non-uniform scale</source>
+        <translation>不均等な拡大/縮小を伴う外観は保持できません</translation>
+    </message>
+    <message>
+        <source>Unable to preserve appearance under scale of 0</source>
+        <translation>サイズが0に縮小される変換を伴う外観は保持できません</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativeParentChange</name>
+    <message>
+        <source>Unable to preserve appearance under complex transform</source>
+        <translation>複雑な変換を伴う外観は保持できません</translation>
+    </message>
+    <message>
+        <source>Unable to preserve appearance under non-uniform scale</source>
+        <translation>不均等な拡大/縮小を伴う外観は保持できません</translation>
+    </message>
+    <message>
+        <source>Unable to preserve appearance under scale of 0</source>
+        <translation>サイズが0に縮小される変換を伴う外観は保持できません</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativeParser</name>
+    <message>
+        <source>Illegal unicode escape sequence</source>
+        <translation>無効な Unicode のエスケープシーケンスです</translation>
+    </message>
+    <message>
+        <source>Illegal character</source>
+        <translation>無効な文字です</translation>
+    </message>
+    <message>
+        <source>Unclosed string at end of line</source>
+        <translation>文字列が行末で閉じていません</translation>
+    </message>
+    <message>
+        <source>Illegal escape squence</source>
+        <translation>無効なエスケープシーケンスです</translation>
+    </message>
+    <message>
+        <source>Unclosed comment at end of file</source>
+        <translation>コメントが行末で閉じていません</translation>
+    </message>
+    <message>
+        <source>Illegal syntax for exponential number</source>
+        <translation>無効な指数の構文です</translation>
+    </message>
+    <message>
+        <source>Identifier cannot start with numeric literal</source>
+        <translation>識別子は数字で始めることはできません</translation>
+    </message>
+    <message>
+        <source>Unterminated regular expression literal</source>
+        <translation>正規表現リテラルが閉じていません</translation>
+    </message>
+    <message>
+        <source>Invalid regular expression flag &apos;%0&apos;</source>
+        <translation>&apos;%0&apos; は無効な正規表現のフラグです</translation>
+    </message>
+    <message>
+        <source>Unterminated regular expression backslash sequence</source>
+        <translation>正規表現のバックスラッシュエスケープが閉じていません</translation>
+    </message>
+    <message>
+        <source>Unterminated regular expression class</source>
+        <translation>正規表現の文字クラスが閉じていません</translation>
+    </message>
+    <message>
+        <source>Syntax error</source>
+        <translation>構文エラー</translation>
+    </message>
+    <message>
+        <source>Unexpected token `%1&apos;</source>
+        <translation>&apos;%1&apos; は予期しないトークンです</translation>
+    </message>
+    <message>
+        <source>Expected token `%1&apos;</source>
+        <translation>トークン &apos;%1&apos; を予期してます</translation>
+    </message>
+    <message>
+        <source>Property value set multiple times</source>
+        <translation>複数回プロパティに値を割り当てています</translation>
+    </message>
+    <message>
+        <source>Expected type name</source>
+        <translation>予期する型の名前</translation>
+    </message>
+    <message>
+        <source>Invalid import qualifier ID</source>
+        <translation>import するネームスペースの ID が無効です</translation>
+    </message>
+    <message>
+        <source>Reserved name &quot;Qt&quot; cannot be used as an qualifier</source>
+        <translation>予約語 &quot;Qt&quot; を import するネームスペースに使用することはできません</translation>
+    </message>
+    <message>
+        <source>Script import qualifiers must be unique.</source>
+        <translation>スクリプトを import するネームスペースは一意である必要があります。</translation>
+    </message>
+    <message>
+        <source>Script import requires a qualifier</source>
+        <translation>スクリプトを import する際にはネームスペースの指定が必要です</translation>
+    </message>
+    <message>
+        <source>Library import requires a version</source>
+        <translation>ライブラリの import にはバージョンが必要です</translation>
+    </message>
+    <message>
+        <source>Expected parameter type</source>
+        <translation>予期するパラメータの型</translation>
+    </message>
+    <message>
+        <source>Invalid property type modifier</source>
+        <translation>無効なプロパティの型の修飾子</translation>
+    </message>
+    <message>
+        <source>Unexpected property type modifier</source>
+        <translation>予期しないプロパティの型の修飾子</translation>
+    </message>
+    <message>
+        <source>Expected property type</source>
+        <translation>予期するプロパティの型</translation>
+    </message>
+    <message>
+        <source>Readonly not yet supported</source>
+        <translation>Readonly はまだサポートされていません</translation>
+    </message>
+    <message>
+        <source>JavaScript declaration outside Script element</source>
+        <translation>Script 要素の外部での JavaScript の宣言</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativePauseAnimation</name>
+    <message>
+        <source>Cannot set a duration of &lt; 0</source>
+        <translation>負の値はアニメーション時間として設定できません</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativePixmap</name>
+    <message>
+        <source>Error decoding: %1: %2</source>
+        <translation>デコード中にエラーが発生しました: %1: %2</translation>
+    </message>
+    <message>
+        <source>Failed to get image from provider: %1</source>
+        <translation>プロバイダーからの画像の取得に失敗しました: %1</translation>
+    </message>
+    <message>
+        <source>Cannot open: %1</source>
+        <translation>開けませんでした: %1</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativePropertyAnimation</name>
+    <message>
+        <source>Cannot set a duration of &lt; 0</source>
+        <translation>負の値はアニメーション時間として設定できません</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativePropertyChanges</name>
+    <message>
+        <source>PropertyChanges does not support creating state-specific objects.</source>
+        <translation>PropertyChanges は状態特有のオブジェクトの作成をサポートしていません。</translation>
+    </message>
+    <message>
+        <source>Cannot assign to non-existent property &quot;%1&quot;</source>
+        <translation>存在しないプロパティ &quot;%1&quot; へは割り当てできません</translation>
+    </message>
+    <message>
+        <source>Cannot assign to read-only property &quot;%1&quot;</source>
+        <translation>読込専用のプロパティ &quot;%1&quot; へは割り当てできません</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativeTextInput</name>
+    <message>
+        <source>Could not load cursor delegate</source>
+        <translation>カーソルデリゲートがロードできません</translation>
+    </message>
+    <message>
+        <source>Could not instantiate cursor delegate</source>
+        <translation>カーソルデリゲートのインスタンスを作成できません</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativeVME</name>
+    <message>
+        <source>Unable to create object of type %1</source>
+        <translation>型 %1 のオブジェクトを作成できません</translation>
+    </message>
+    <message>
+        <source>Cannot assign value %1 to property %2</source>
+        <translation>プロパティ %2 へ値 %1 を割り当てできません</translation>
+    </message>
+    <message>
+        <source>Cannot assign object type %1 with no default method</source>
+        <translation>型 %1 のオブジェクトをデフォルトメソッドなしに割り当てることはできません</translation>
+    </message>
+    <message>
+        <source>Cannot connect mismatched signal/slot %1 %vs. %2</source>
+        <translation>型の合わないシグナルとスロット(%1 %vs %2)を接続することはできません</translation>
+    </message>
+    <message>
+        <source>Cannot assign an object to signal property %1</source>
+        <translation>オブジェクトをシグナルプロパティ %1 に割り当てることはできません</translation>
+    </message>
+    <message>
+        <source>Cannot assign object to list</source>
+        <translation>オブジェクトをリストに割り当てることはできません</translation>
+    </message>
+    <message>
+        <source>Cannot assign object to interface property</source>
+        <translation>オブジェクトをインターフェースプロパティに割り当てることはできません</translation>
+    </message>
+    <message>
+        <source>Unable to create attached object</source>
+        <translation>アタッチされたオブジェクトを作成できません</translation>
+    </message>
+    <message>
+        <source>Cannot set properties on %1 as it is null</source>
+        <translation>%1 のプロパティが空のため値を代入できません</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativeVisualDataModel</name>
+    <message>
+        <source>Delegate component must be Item type.</source>
+        <translation>デリゲートコンポーネントの型は Item である必要があります。</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativeXmlListModel</name>
+    <message>
+        <source>Qt was built without support for xmlpatterns</source>
+        <translation>Qt は xmlpatterns のサポートを外してビルドされています</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativeXmlListModelRole</name>
+    <message>
+        <source>An XmlRole query must not start with &apos;/&apos;</source>
+        <translation>XmlRorl のクエリーを &apos;/&apos; で始めてはいけません</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativeXmlRoleList</name>
+    <message>
+        <source>An XmlListModel query must start with &apos;/&apos; or &quot;//&quot;</source>
+        <translation>XmlListModel のクエリーは &apos;/&apos; か &quot;//&quot; で始まる必要があります</translation>
+    </message>
+</context>
+<context>
     <name>QDial</name>
     <message>
-        <location filename="../src/plugins/accessible/widgets/rangecontrols.cpp" line="+951"/>
         <source>QDial</source>
         <translation>ダイヤル</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>SpeedoMeter</source>
         <translation>スピードメータ</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>SliderHandle</source>
         <translation>スライダハンドル</translation>
     </message>
@@ -1231,12 +2181,10 @@
 <context>
     <name>QDialog</name>
     <message>
-        <location filename="../src/gui/dialogs/qdialog.cpp" line="+597"/>
         <source>What&apos;s This?</source>
         <translation>ヒント?</translation>
     </message>
     <message>
-        <location line="-115"/>
         <source>Done</source>
         <translation>終了</translation>
     </message>
@@ -1244,124 +2192,98 @@
 <context>
     <name>QDialogButtonBox</name>
     <message>
-        <location filename="../src/gui/dialogs/qmessagebox.cpp" line="+1866"/>
-        <location line="+464"/>
-        <location filename="../src/gui/widgets/qdialogbuttonbox.cpp" line="+561"/>
         <source>OK</source>
         <translation>OK</translation>
     </message>
     <message>
-        <location filename="../src/gui/widgets/qdialogbuttonbox.cpp" line="+9"/>
         <source>Cancel</source>
         <translation>キャンセル</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Apply</source>
         <translation>適用</translation>
     </message>
     <message>
-        <location line="+38"/>
         <source>Ignore</source>
         <translation>無視</translation>
     </message>
     <message>
-        <location line="-3"/>
         <source>Retry</source>
         <translation>再試行</translation>
     </message>
     <message>
-        <location line="-3"/>
         <source>Abort</source>
         <translation>中止</translation>
     </message>
     <message>
-        <location line="-26"/>
         <source>Help</source>
         <translation>ヘルプ</translation>
     </message>
     <message>
-        <location line="-18"/>
         <source>Save</source>
         <translation>保存</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>&amp;Save</source>
         <translation>保存(&amp;S)</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Open</source>
         <translation>オープン</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>&amp;Cancel</source>
         <translation>キャンセル(&amp;C)</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Close</source>
         <translation>閉じる</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>&amp;Close</source>
         <translation>閉じる(&amp;C)</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Reset</source>
         <translation>リセット</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Don&apos;t Save</source>
         <translation>保存しない</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Close without Saving</source>
         <translation>保存せずに閉じる</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Discard</source>
         <translation>変更を破棄</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>&amp;Yes</source>
         <translation>はい(&amp;Y)</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Yes to &amp;All</source>
         <translation>全てにはい(&amp;A)</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>&amp;No</source>
         <translation>いいえ(&amp;N)</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>N&amp;o to All</source>
         <translation>全てにいいえ(&amp;O)</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Save All</source>
         <translation>すべて保存</translation>
     </message>
     <message>
-        <location line="+12"/>
         <source>Restore Defaults</source>
         <translation>デフォルトに戻す</translation>
     </message>
     <message>
-        <location line="-56"/>
         <source>&amp;OK</source>
         <translation>OK(&amp;O)</translation>
     </message>
@@ -1369,28 +2291,23 @@
 <context>
     <name>QDirModel</name>
     <message>
-        <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+454"/>
         <source>Name</source>
         <translation>名前</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Size</source>
         <translation>サイズ</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>Date Modified</source>
         <translation>更新日</translation>
     </message>
     <message>
-        <location line="-8"/>
         <source>Kind</source>
         <comment>Match OS X Finder</comment>
         <translation>種類</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Type</source>
         <comment>All other platforms</comment>
         <translation>タイプ</translation>
@@ -1399,17 +2316,14 @@
 <context>
     <name>QDockWidget</name>
     <message>
-        <location filename="../src/plugins/accessible/widgets/qaccessiblewidgets.cpp" line="+1239"/>
         <source>Close</source>
         <translation>閉じる</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Dock</source>
         <translation>ドック</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Float</source>
         <translation>フロート</translation>
     </message>
@@ -1417,12 +2331,10 @@
 <context>
     <name>QDoubleSpinBox</name>
     <message>
-        <location filename="../src/plugins/accessible/widgets/rangecontrols.cpp" line="-537"/>
         <source>More</source>
         <translation>増やす</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Less</source>
         <translation>減らす</translation>
     </message>
@@ -1430,27 +2342,22 @@
 <context>
     <name>QErrorMessage</name>
     <message>
-        <location filename="../src/gui/dialogs/qerrormessage.cpp" line="+192"/>
         <source>Debug Message:</source>
         <translation>デバッグメッセージ:</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Warning:</source>
         <translation>警告:</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Fatal Error:</source>
         <translation>致命的なエラー:</translation>
     </message>
     <message>
-        <location line="+193"/>
         <source>&amp;Show this message again</source>
         <translation>次回もこのメッセージを表示する(&amp;S)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;OK</source>
         <translation>OK(&amp;O)</translation>
     </message>
@@ -1458,33 +2365,30 @@
 <context>
     <name>QFile</name>
     <message>
-        <location filename="../src/corelib/io/qfile.cpp" line="+708"/>
-        <location line="+142"/>
         <source>Destination file exists</source>
         <translation>新しい名前のファイルは既に存在します</translation>
     </message>
     <message>
-        <location line="-108"/>
+        <source>Will not rename sequential file using block copy</source>
+        <translation>ブロックコピーを用いてシーケンシャルファイルの名前を変更することはできません</translation>
+    </message>
+    <message>
         <source>Cannot remove source file</source>
         <translation>元のファイルを削除できません</translation>
     </message>
     <message>
-        <location line="+121"/>
         <source>Cannot open %1 for input</source>
         <translation>コピー元ファイル %1 を読めません</translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>Cannot open for output</source>
         <translation>コピー先のファイルをオープンできません</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>Failure to write block</source>
         <translation>書き込みに失敗しました</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>Cannot create %1 for output</source>
         <translation>コピー先として %1 を作成できません</translation>
     </message>
@@ -1492,68 +2396,40 @@
 <context>
     <name>QFileDialog</name>
     <message>
-        <location filename="../src/gui/dialogs/qfiledialog.cpp" line="+514"/>
-        <location line="+447"/>
         <source>All Files (*)</source>
         <translation>すべてのファイル(*)</translation>
     </message>
     <message>
-        <location line="+222"/>
         <source>Directories</source>
         <translation>ディレクトリ</translation>
     </message>
     <message>
-        <location line="-647"/>
-        <location line="+651"/>
         <source>Directory:</source>
         <translation>ディレクトリ:</translation>
     </message>
     <message>
-        <location line="-649"/>
-        <location line="+655"/>
         <source>File &amp;name:</source>
         <translation>ファイル名(&amp;N):</translation>
     </message>
     <message>
-        <location line="-13"/>
-        <location line="+50"/>
-        <location line="+1467"/>
-        <location line="+75"/>
         <source>&amp;Open</source>
         <translation>オープン(&amp;O)</translation>
     </message>
     <message>
-        <location line="-1592"/>
-        <location line="+50"/>
         <source>&amp;Save</source>
         <translation>保存(&amp;S)</translation>
     </message>
     <message>
-        <location line="-733"/>
         <source>Open</source>
         <translation>オープン</translation>
     </message>
     <message>
-        <source>Save</source>
-        <translation type="obsolete">保存</translation>
-    </message>
-    <message>
-        <source>
-File not found.
-Please verify the correct file name was given</source>
-        <translation type="obsolete">
-ファイルが見つかりません。
-正しいファイル名が入力されたかどうか確認してください</translation>
-    </message>
-    <message>
-        <location line="+1515"/>
         <source>%1 already exists.
 Do you want to replace it?</source>
         <translation>%1 はすでに存在します。
 置き換えますか?</translation>
     </message>
     <message>
-        <location line="+20"/>
         <source>%1
 File not found.
 Please verify the correct file name was given.</source>
@@ -1562,13 +2438,10 @@
 正しいファイル名が入力されたかどうか確認してください。</translation>
     </message>
     <message>
-        <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+408"/>
         <source>My Computer</source>
         <translation>マイ コンピュータ</translation>
     </message>
     <message>
-        <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-54"/>
-        <location line="+861"/>
         <source>%1
 Directory not found.
 Please verify the correct directory name was given.</source>
@@ -1577,547 +2450,428 @@
 正しいディレクトリ名が入力されたかどうか確認してください。</translation>
     </message>
     <message>
-        <source>Sort</source>
-        <translation type="obsolete">ソート</translation>
-    </message>
-    <message>
-        <location line="-2311"/>
         <source>&amp;Rename</source>
         <translation>名前の変更(&amp;R)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Delete</source>
         <translation>削除(&amp;D)</translation>
     </message>
     <message>
-        <source>&amp;Reload</source>
-        <translation type="obsolete">リロード(&amp;R)</translation>
-    </message>
-    <message>
-        <source>Sort by &amp;Name</source>
-        <translation type="obsolete">名前順にソート(&amp;N)</translation>
-    </message>
-    <message>
-        <source>Sort by &amp;Size</source>
-        <translation type="obsolete">サイズ順にソート(&amp;S)</translation>
-    </message>
-    <message>
-        <source>Sort by &amp;Date</source>
-        <translation type="obsolete">日付順にソート(&amp;D)</translation>
-    </message>
-    <message>
-        <source>&amp;Unsorted</source>
-        <translation type="obsolete">ソート解除(&amp;U)</translation>
-    </message>
-    <message>
-        <location line="+1"/>
         <source>Show &amp;hidden files</source>
         <translation>隠しファイルの表示(&amp;H)</translation>
     </message>
     <message>
-        <location filename="../src/gui/dialogs/qfiledialog.ui"/>
-        <location filename="../src/gui/dialogs/qfiledialog_wince.ui"/>
         <source>Back</source>
         <translation>戻る</translation>
     </message>
     <message>
-        <location/>
-        <location filename="../src/gui/dialogs/qfiledialog_wince.ui"/>
         <source>Parent Directory</source>
         <translation>親ディレクトリ</translation>
     </message>
     <message>
-        <location/>
-        <location filename="../src/gui/dialogs/qfiledialog_wince.ui"/>
         <source>Create New Folder</source>
         <translation>新しいフォルダの作成</translation>
     </message>
     <message>
-        <location/>
-        <location filename="../src/gui/dialogs/qfiledialog_wince.ui"/>
         <source>List View</source>
         <translation>一覧表示</translation>
     </message>
     <message>
-        <location/>
-        <location filename="../src/gui/dialogs/qfiledialog_wince.ui"/>
         <source>Detail View</source>
         <translation>詳細表示</translation>
     </message>
     <message>
-        <location/>
-        <location filename="../src/gui/dialogs/qfiledialog_wince.ui"/>
         <source>Look in:</source>
         <translation>検索する場所:</translation>
     </message>
     <message>
-        <location/>
-        <location filename="../src/gui/dialogs/qfiledialog_wince.ui"/>
         <source>Files of type:</source>
         <translation>ファイルの種類:</translation>
     </message>
     <message>
-        <location filename="../src/gui/itemviews/qfileiconprovider.cpp" line="+411"/>
         <source>Drive</source>
         <translation>ドライブ</translation>
     </message>
     <message>
-        <location line="+3"/>
-        <location line="+1"/>
         <source>File</source>
         <translation>ファイル</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>File Folder</source>
         <comment>Match Windows Explorer</comment>
         <translation>ファイルフォルダ</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Folder</source>
         <comment>All other platforms</comment>
         <translation>フォルダ</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Alias</source>
         <comment>Mac OS X Finder</comment>
         <translation>エイリアス</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Shortcut</source>
         <comment>All other platforms</comment>
         <translation>ショートカット</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Unknown</source>
         <translation>不明</translation>
     </message>
     <message>
-        <location filename="../src/gui/dialogs/qfiledialog_win.cpp" line="+160"/>
         <source>All Files (*.*)</source>
         <translation>すべてのファイル(*.*)</translation>
     </message>
     <message>
-        <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-31"/>
         <source>Save As</source>
         <translation>名前を付けて保存</translation>
     </message>
     <message>
-        <source>Open </source>
-        <translation type="obsolete">オープン</translation>
-    </message>
-    <message>
-        <source>Select a Directory</source>
-        <translation type="obsolete">ディレクトリを選択</translation>
-    </message>
-    <message>
-        <location line="+2122"/>
         <source>&apos;%1&apos; is write protected.
 Do you want to delete it anyway?</source>
         <translation>&apos;%1&apos; は書き込みが禁止されています。
 本当に削除しますか?</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Are sure you want to delete &apos;%1&apos;?</source>
         <translation>&apos;%1&apos; を本当に削除しますか?</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Could not delete directory.</source>
         <translation>ディレクトリを削除できませんでした。</translation>
     </message>
     <message>
-        <location line="-2146"/>
         <source>Find Directory</source>
         <translation>ディレクトリの検索</translation>
     </message>
     <message>
-        <location line="+29"/>
         <source>Show </source>
         <translation>表示</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>&amp;New Folder</source>
         <translation>新しいフォルダ(&amp;N)</translation>
     </message>
     <message>
-        <location line="+659"/>
-        <location line="+38"/>
         <source>&amp;Choose</source>
         <translation>選択(&amp;C)</translation>
     </message>
     <message>
-        <location line="+1265"/>
         <source>New Folder</source>
         <translation>新しいフォルダ</translation>
     </message>
     <message>
-        <location line="+555"/>
         <source>Recent Places</source>
         <translation>履歴</translation>
     </message>
     <message>
-        <location filename="../src/gui/dialogs/qfiledialog.ui"/>
-        <location filename="../src/gui/dialogs/qfiledialog_wince.ui"/>
         <source>Forward</source>
         <translation>進む</translation>
     </message>
     <message>
-        <location filename="../src/gui/dialogs/qsidebar.cpp" line="+437"/>
         <source>Remove</source>
         <translation>削除</translation>
     </message>
+    <message>
+        <source>Go back</source>
+        <translation>戻る</translation>
+    </message>
+    <message>
+        <source>Go forward</source>
+        <translation>進む</translation>
+    </message>
+    <message>
+        <source>Go to the parent directory</source>
+        <translation>親ディレクトリへ移動</translation>
+    </message>
+    <message>
+        <source>Create a New Folder</source>
+        <translation>新しいフォルダの作成</translation>
+    </message>
+    <message>
+        <source>Change to list view mode</source>
+        <translation>リスト表示モードへ変更</translation>
+    </message>
+    <message>
+        <source>Change to detail view mode</source>
+        <translation>詳細表示モードへ変更</translation>
+    </message>
 </context>
 <context>
     <name>QFileSystemModel</name>
     <message>
-        <location filename="../src/gui/dialogs/qfilesystemmodel.cpp" line="+892"/>
         <source>Name</source>
         <translation>名前</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Size</source>
         <translation>サイズ</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>Date Modified</source>
         <translation>更新日</translation>
     </message>
     <message>
-        <location line="-9"/>
         <source>Kind</source>
         <comment>Match OS X Finder</comment>
         <translation>種類</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Type</source>
         <comment>All other platforms</comment>
         <translation>タイプ</translation>
     </message>
     <message>
-        <location line="-156"/>
-        <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+471"/>
         <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"/>
-        <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+1"/>
         <source>%1 bytes</source>
         <translation>%1 バイト</translation>
     </message>
     <message>
-        <location line="+77"/>
         <source>Invalid filename</source>
         <translation>無効なファイル名</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;ファイル名 &quot;%1&quot; は使用できません。&lt;/b&gt;&lt;p&gt;名前を短くしたり、アクセント記号などを削除して再度試してください。</translation>
     </message>
     <message>
-        <location filename="../src/gui/dialogs/qfilesystemmodel_p.h" line="+248"/>
         <source>My Computer</source>
         <translation>マイ コンピュータ</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Computer</source>
         <translation>コンピュータ</translation>
     </message>
+    <message>
+        <source>%1 byte(s)</source>
+        <translation>%1 バイト</translation>
+    </message>
 </context>
 <context>
     <name>QFontDatabase</name>
     <message>
-        <location filename="../src/gui/text/qfontdatabase.cpp" line="+90"/>
-        <location line="+1176"/>
         <source>Normal</source>
         <translatorcomment>ここはどう訳すべきか...</translatorcomment>
         <translation>明朝</translation>
     </message>
     <message>
-        <location line="-1173"/>
-        <location line="+12"/>
-        <location line="+1149"/>
         <source>Bold</source>
         <translation>ゴシック</translation>
     </message>
     <message>
-        <location line="-1158"/>
-        <location line="+1160"/>
         <source>Demi Bold</source>
         <translation>Demi Bold</translation>
     </message>
     <message>
-        <location line="-1157"/>
-        <location line="+18"/>
-        <location line="+1135"/>
         <source>Black</source>
         <translation>太字</translation>
     </message>
     <message>
-        <location line="-1145"/>
         <source>Demi</source>
         <translation>Demi</translation>
     </message>
     <message>
-        <location line="+6"/>
-        <location line="+1145"/>
         <source>Light</source>
         <translation>細字</translation>
     </message>
     <message>
-        <location line="-1004"/>
-        <location line="+1007"/>
         <source>Italic</source>
         <translation>イタリック</translation>
     </message>
     <message>
-        <location line="-1004"/>
-        <location line="+1006"/>
         <source>Oblique</source>
         <translation>斜体</translation>
     </message>
     <message>
-        <location line="+705"/>
         <source>Any</source>
         <translation>すべて</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Latin</source>
         <translation>ラテン</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Greek</source>
         <translation>ギリシャ</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Cyrillic</source>
         <translation>キリル</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Armenian</source>
         <translation>アルメニア</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Hebrew</source>
         <translation>ヘブライ</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Arabic</source>
         <translation>アラビア</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Syriac</source>
         <translation>シリア</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Thaana</source>
         <translation>ターナ</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Devanagari</source>
         <translation>デーヴァナーガリー</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Bengali</source>
         <translation>ベンガル</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Gurmukhi</source>
         <translation>グルムキー</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Gujarati</source>
         <translation>グジャラート</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Oriya</source>
         <translation>オリヤー</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Tamil</source>
         <translation>タミル</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Telugu</source>
         <translation>テルグ</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Kannada</source>
         <translation>カンナダ</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Malayalam</source>
         <translation>マラヤーラム</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Sinhala</source>
         <translation>シンハラ</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Thai</source>
         <translation>タイ</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Lao</source>
         <translation>ラーオ</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Tibetan</source>
         <translation>チベット</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Myanmar</source>
         <translation>ビルマ</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Georgian</source>
         <translation>グルジア</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Khmer</source>
         <translation>クメール</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Simplified Chinese</source>
         <translation>簡体中国</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Traditional Chinese</source>
         <translation>繁体中国</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Japanese</source>
         <translation>日本</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Korean</source>
         <translation>ハングル</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Vietnamese</source>
         <translation>ベトナム</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Symbol</source>
         <translation>記号</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Ogham</source>
         <translation>オガム</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Runic</source>
         <translation>ルーン</translation>
     </message>
+    <message>
+        <source>N&apos;Ko</source>
+        <translation>ンコ</translation>
+    </message>
 </context>
 <context>
     <name>QFontDialog</name>
     <message>
-        <location filename="../src/gui/dialogs/qfontdialog.cpp" line="+772"/>
         <source>&amp;Font</source>
         <translation>フォント(&amp;F)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Font st&amp;yle</source>
         <translation>フォントスタイル(&amp;Y)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Size</source>
         <translation>サイズ(&amp;S)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Effects</source>
         <translation>文字飾り</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Stri&amp;keout</source>
         <translation>取り消し線(&amp;K)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Underline</source>
         <translation>下線(&amp;U)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Sample</source>
         <translation>サンプル</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Wr&amp;iting System</source>
         <translation>言語(&amp;I)</translation>
     </message>
     <message>
-        <location line="-604"/>
-        <location line="+247"/>
         <source>Select Font</source>
         <translation>フォントの選択</translation>
     </message>
@@ -2125,145 +2879,104 @@
 <context>
     <name>QFtp</name>
     <message>
-        <location filename="../src/network/access/qftp.cpp" line="+826"/>
-        <location filename="../src/qt3support/network/q3ftp.cpp" line="+683"/>
         <source>Not connected</source>
         <translation>未接続です</translation>
     </message>
     <message>
-        <location line="+65"/>
-        <location filename="../src/qt3support/network/q3ftp.cpp" line="+65"/>
         <source>Host %1 not found</source>
         <translation>ホスト %1 が見つかりませんでした</translation>
     </message>
     <message>
-        <location line="+4"/>
-        <location filename="../src/qt3support/network/q3ftp.cpp" line="+4"/>
         <source>Connection refused to host %1</source>
         <translation>ホスト %1 への接続が拒否されました</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Connection timed out to host %1</source>
         <translation>ホスト %1 への接続がタイムアウトしました</translation>
     </message>
     <message>
-        <location line="+104"/>
-        <location filename="../src/qt3support/network/q3ftp.cpp" line="+102"/>
-        <location line="+1451"/>
         <source>Connected to host %1</source>
         <translation>ホスト %1 に接続しました</translation>
     </message>
     <message>
-        <location line="+219"/>
-        <location filename="../src/qt3support/network/q3ftp.cpp" line="-1290"/>
         <source>Connection refused for data connection</source>
         <translation>データ接続のための接続が拒否されました</translation>
     </message>
     <message>
-        <location line="+178"/>
-        <location line="+29"/>
-        <location filename="../src/qt3support/network/q3ftp.cpp" line="+195"/>
-        <location line="+728"/>
         <source>Unknown error</source>
-        <translation>不明なエラー</translation>
-    </message>
-    <message>
-        <location line="+889"/>
-        <location filename="../src/qt3support/network/q3ftp.cpp" line="+77"/>
+        <translation>未知のエラー</translation>
+    </message>
+    <message>
         <source>Connecting to host failed:
 %1</source>
         <translation>ホストへの接続に失敗しました:
 %1</translation>
     </message>
     <message>
-        <location line="+4"/>
-        <location filename="../src/qt3support/network/q3ftp.cpp" line="+3"/>
         <source>Login failed:
 %1</source>
         <translation>ログインに失敗しました:
 %1</translation>
     </message>
     <message>
-        <location line="+4"/>
-        <location filename="../src/qt3support/network/q3ftp.cpp" line="+3"/>
         <source>Listing directory failed:
 %1</source>
         <translation>ディレクトリのリストに失敗しました:
 %1</translation>
     </message>
     <message>
-        <location line="+4"/>
-        <location filename="../src/qt3support/network/q3ftp.cpp" line="+3"/>
         <source>Changing directory failed:
 %1</source>
         <translation>ディレクトリの変更に失敗しました:
 %1</translation>
     </message>
     <message>
-        <location line="+4"/>
-        <location filename="../src/qt3support/network/q3ftp.cpp" line="+3"/>
         <source>Downloading file failed:
 %1</source>
         <translation>ファイルのダウンロードに失敗しました:
 %1</translation>
     </message>
     <message>
-        <location line="+4"/>
-        <location filename="../src/qt3support/network/q3ftp.cpp" line="+3"/>
         <source>Uploading file failed:
 %1</source>
         <translation>ファイルのアップロードに失敗しました:
 %1</translation>
     </message>
     <message>
-        <location line="+4"/>
-        <location filename="../src/qt3support/network/q3ftp.cpp" line="+3"/>
         <source>Removing file failed:
 %1</source>
         <translation>ファイルの削除に失敗しました:
 %1</translation>
     </message>
     <message>
-        <location line="+4"/>
-        <location filename="../src/qt3support/network/q3ftp.cpp" line="+3"/>
         <source>Creating directory failed:
 %1</source>
         <translation>ディレクトリの作成に失敗しました:
 %1</translation>
     </message>
     <message>
-        <location line="+4"/>
-        <location filename="../src/qt3support/network/q3ftp.cpp" line="+3"/>
         <source>Removing directory failed:
 %1</source>
         <translation>ディレクトリの削除に失敗しました:
 %1</translation>
     </message>
     <message>
-        <location line="+28"/>
-        <location filename="../src/qt3support/network/q3ftp.cpp" line="+25"/>
-        <location line="+250"/>
         <source>Connection closed</source>
         <translation>接続が閉じられました</translation>
     </message>
     <message>
-        <location filename="../src/qt3support/network/q3ftp.cpp" line="-11"/>
         <source>Host %1 found</source>
         <translation>ホスト %1 が見つかりました</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Connection to %1 closed</source>
         <translation>%1 への接続が閉じられました</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Host found</source>
         <translation>ホストが見つかりました</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Connected to host</source>
         <translation>ホストに接続しました</translation>
     </message>
@@ -2271,193 +2984,144 @@
 <context>
     <name>QHostInfo</name>
     <message>
-        <location filename="../src/network/kernel/qhostinfo_p.h" line="+183"/>
         <source>Unknown error</source>
-        <translation>不明なエラー</translation>
+        <translation>未知のエラー</translation>
+    </message>
+    <message>
+        <source>No host name given</source>
+        <translation>ホストネームが与えられていません</translation>
     </message>
 </context>
 <context>
     <name>QHostInfoAgent</name>
     <message>
-        <location filename="../src/network/kernel/qhostinfo_unix.cpp" line="+178"/>
-        <location line="+9"/>
-        <location line="+64"/>
-        <location line="+31"/>
-        <location filename="../src/network/kernel/qhostinfo_win.cpp" line="+180"/>
-        <location line="+9"/>
-        <location line="+40"/>
-        <location line="+27"/>
         <source>Host not found</source>
         <translation>ホストが見つかりません</translation>
     </message>
     <message>
-        <location line="-44"/>
-        <location line="+39"/>
-        <location filename="../src/network/kernel/qhostinfo_win.cpp" line="-34"/>
-        <location line="+29"/>
         <source>Unknown address type</source>
-        <translation>不明なアドレス型です</translation>
-    </message>
-    <message>
-        <location line="+8"/>
-        <location filename="../src/network/kernel/qhostinfo_win.cpp" line="-19"/>
-        <location line="+27"/>
+        <translation>未知のアドレス型です</translation>
+    </message>
+    <message>
+        <source>No host name given</source>
+        <translation>ホストネームが与えられていません</translation>
+    </message>
+    <message>
+        <source>Invalid hostname</source>
+        <translation>無効なホスト名</translation>
+    </message>
+    <message>
         <source>Unknown error</source>
-        <translation>不明なエラー</translation>
+        <translation>未知のエラー</translation>
     </message>
 </context>
 <context>
     <name>QHttp</name>
     <message>
-        <location filename="../src/network/access/qhttp.cpp" line="+365"/>
         <source>HTTPS connection requested but SSL support not compiled in</source>
         <translation>HTTPSによる接続が要求されましたが、SSLのサポートがコンパイル時に組み込まれていないため、接続できません</translation>
     </message>
     <message>
-        <location line="+1209"/>
-        <location line="+820"/>
-        <location filename="../src/qt3support/network/q3http.cpp" line="+1160"/>
-        <location line="+567"/>
         <source>Unknown error</source>
-        <translation>不明なエラー</translation>
-    </message>
-    <message>
-        <location line="-568"/>
-        <location filename="../src/qt3support/network/q3http.cpp" line="-370"/>
+        <translation>未知のエラー</translation>
+    </message>
+    <message>
         <source>Request aborted</source>
         <translation>要求が中止されました</translation>
     </message>
     <message>
-        <location line="+579"/>
-        <location filename="../src/qt3support/network/q3http.cpp" line="+381"/>
         <source>No server set to connect to</source>
         <translation>接続が設定されているサーバがありません</translation>
     </message>
     <message>
-        <location line="+164"/>
-        <location filename="../src/qt3support/network/q3http.cpp" line="+56"/>
         <source>Wrong content length</source>
         <translation>コンテンツの長さが正しくありません</translation>
     </message>
     <message>
-        <location line="+4"/>
-        <location filename="../src/qt3support/network/q3http.cpp" line="+4"/>
         <source>Server closed connection unexpectedly</source>
         <translation>サーバの接続が予期せず閉じられました</translation>
     </message>
     <message>
-        <location line="+179"/>
         <source>Unknown authentication method</source>
         <translation>非対応の認証方法が要求されました</translation>
     </message>
     <message>
-        <location line="+183"/>
         <source>Error writing response to device</source>
         <translation>デバイスへの書き込み時にエラーが発生しました</translation>
     </message>
     <message>
-        <location filename="../src/network/access/qhttpnetworkconnection.cpp" line="+968"/>
-        <location filename="../src/qt3support/network/q3http.cpp" line="+38"/>
         <source>Connection refused</source>
         <translation>接続が拒否されました</translation>
     </message>
     <message>
-        <location filename="../src/network/access/qhttp.cpp" line="-304"/>
-        <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>ホスト %1 が見つかりませんでした</translation>
     </message>
     <message>
-        <location line="+20"/>
-        <location filename="../src/network/access/qhttpnetworkconnection.cpp" line="+10"/>
-        <location line="+19"/>
-        <location filename="../src/qt3support/network/q3http.cpp" line="+3"/>
         <source>HTTP request failed</source>
         <translation>HTTP要求に失敗しました</translation>
     </message>
     <message>
-        <location line="+73"/>
-        <location filename="../src/qt3support/network/q3http.cpp" line="+69"/>
         <source>Invalid HTTP response header</source>
         <translation>無効なHTTP応答ヘッダです</translation>
     </message>
     <message>
-        <location line="+125"/>
-        <location line="+48"/>
-        <location filename="../src/qt3support/network/q3http.cpp" line="+40"/>
-        <location line="+47"/>
         <source>Invalid HTTP chunked body</source>
         <translation>無効なHTTPチャンクドボディです</translation>
     </message>
     <message>
-        <location filename="../src/qt3support/network/q3http.cpp" line="+294"/>
         <source>Host %1 found</source>
         <translation>ホスト %1 が見つかりました</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Connected to host %1</source>
         <translation>ホスト %1 に接続しました</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Connection to %1 closed</source>
         <translation>%1 への接続が閉じられました</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Host found</source>
         <translation>ホストが見つかりました</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Connected to host</source>
         <translation>ホストに接続しました</translation>
     </message>
     <message>
-        <location filename="../src/network/access/qhttpnetworkconnection.cpp" line="-22"/>
-        <location filename="../src/qt3support/network/q3http.cpp" line="+3"/>
         <source>Connection closed</source>
         <translation>接続が閉じられました</translation>
     </message>
     <message>
-        <location filename="../src/network/access/qhttp.cpp" line="-135"/>
         <source>Proxy authentication required</source>
         <translation>プロキシーの認証が必要です</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Authentication required</source>
         <translation>認証が必要です</translation>
     </message>
     <message>
-        <location line="-138"/>
         <source>Connection refused (or timed out)</source>
         <translation>接続が拒否されたか、タイムアウトしました</translation>
     </message>
     <message>
-        <location filename="../src/network/access/qhttpnetworkconnection.cpp" line="+6"/>
         <source>Proxy requires authentication</source>
         <translation>プロキシーの認証が必要です</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Host requires authentication</source>
         <translation>ホストの認証が必要です</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Data corrupted</source>
         <translation>データが破損しています</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Unknown protocol specified</source>
         <translation>未対応のプロトコルです</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>SSL handshake failed</source>
         <translation>SSLのハンドシェークに失敗しました</translation>
     </message>
@@ -2465,47 +3129,38 @@
 <context>
     <name>QHttpSocketEngine</name>
     <message>
-        <location filename="../src/network/socket/qhttpsocketengine.cpp" line="-89"/>
         <source>Did not receive HTTP response from proxy</source>
         <translation>プロキシーからHTTPレスポンスを受信できませんでした</translation>
     </message>
     <message>
-        <location line="+25"/>
         <source>Error parsing authentication request from proxy</source>
         <translation>プロキシーからの認証要求のパースに失敗しました</translation>
     </message>
     <message>
-        <location line="+31"/>
         <source>Authentication required</source>
         <translation>認証が必要です</translation>
     </message>
     <message>
-        <location line="+27"/>
         <source>Proxy denied connection</source>
         <translation>プロキシーが接続を拒否しました</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>Error communicating with HTTP proxy</source>
         <translation>HTTP プロキシーとの通信にて、エラーが発生しました</translation>
     </message>
     <message>
-        <location line="+23"/>
         <source>Proxy server not found</source>
         <translation>プロキシーサーバが見つかりません</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Proxy connection refused</source>
         <translation>プロキシーが接続を拒否しました</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Proxy server connection timed out</source>
         <translation>プロキシーとの接続がタイムアウトしました</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Proxy connection closed prematurely</source>
         <translation>プロキシーの接続が通信の終了前に切断されました</translation>
     </message>
@@ -2513,22 +3168,18 @@
 <context>
     <name>QIBaseDriver</name>
     <message>
-        <location filename="../src/sql/drivers/ibase/qsql_ibase.cpp" line="+1435"/>
         <source>Error opening database</source>
         <translation>データベースのオープンでエラーが発生しました</translation>
     </message>
     <message>
-        <location line="+54"/>
         <source>Could not start transaction</source>
         <translation>トランザクションを開始できませんでした</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>Unable to commit transaction</source>
         <translation>トランザクションをコミットできません</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>Unable to rollback transaction</source>
         <translation>トランザクションをロールバックできません</translation>
     </message>
@@ -2536,89 +3187,70 @@
 <context>
     <name>QIBaseResult</name>
     <message>
-        <location line="-1097"/>
         <source>Unable to create BLOB</source>
         <translation>バイナリラージオブジェクトを作成できません</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Unable to write BLOB</source>
         <translation>バイナリラージオブジェクトを書き込めません</translation>
     </message>
     <message>
-        <location line="+14"/>
         <source>Unable to open BLOB</source>
         <translation>バイナリラージオブジェクトをオープンできません</translation>
     </message>
     <message>
-        <location line="+16"/>
         <source>Unable to read BLOB</source>
         <translation>バイナリラージオブジェクトを読み込めません</translation>
     </message>
     <message>
-        <location line="+125"/>
-        <location line="+189"/>
         <source>Could not find array</source>
         <translation>配列が見つかりませんでした</translation>
     </message>
     <message>
-        <location line="-157"/>
         <source>Could not get array data</source>
         <translation>配列データを取得できませんでした</translation>
     </message>
     <message>
-        <location line="+212"/>
         <source>Could not get query info</source>
         <translation>クエリー情報を取得できませんでした</translation>
     </message>
     <message>
-        <location line="+20"/>
         <source>Could not start transaction</source>
         <translation>トランザクションを開始できませんでした</translation>
     </message>
     <message>
-        <location line="+19"/>
         <source>Unable to commit transaction</source>
         <translation>トランザクションをコミットできません</translation>
     </message>
     <message>
-        <location line="+33"/>
         <source>Could not allocate statement</source>
         <translation>ステートメントの領域を確保できませんでした</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Could not prepare statement</source>
         <translation>プリペアステートメントを使えませんでした</translation>
     </message>
     <message>
-        <location line="+5"/>
-        <location line="+7"/>
         <source>Could not describe input statement</source>
         <translation>INPUT ステートメントの情報を取得できませんでした</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>Could not describe statement</source>
         <translation>ステートメントの情報を取得できませんでした</translation>
     </message>
     <message>
-        <location line="+115"/>
         <source>Unable to close statement</source>
         <translation>ステートメントをクローズできません</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Unable to execute query</source>
         <translation>クエリーを実行できません</translation>
     </message>
     <message>
-        <location line="+46"/>
         <source>Could not fetch next item</source>
         <translation>次のレコードをフェッチできませんでした</translation>
     </message>
     <message>
-        <location line="+160"/>
         <source>Could not get statement info</source>
         <translation>ステートメントの情報を取得できませんでした</translation>
     </message>
@@ -2626,58 +3258,56 @@
 <context>
     <name>QIODevice</name>
     <message>
-        <location filename="../src/corelib/global/qglobal.cpp" line="+1869"/>
         <source>Permission denied</source>
         <translation>許可されていません</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Too many open files</source>
         <translation>開かれたファイルが多すぎます</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>No such file or directory</source>
         <translation>そのようなファイルやディレクトリはありません</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>No space left on device</source>
         <translation>デバイスの残り容量がありません</translation>
     </message>
     <message>
-        <location filename="../src/corelib/io/qiodevice.cpp" line="+1540"/>
         <source>Unknown error</source>
-        <translation>不明なエラー</translation>
+        <translation>未知のエラー</translation>
     </message>
 </context>
 <context>
     <name>QInputContext</name>
     <message>
-        <location filename="../src/gui/inputmethod/qinputcontextfactory.cpp" line="+242"/>
         <source>XIM</source>
         <translation>XIM</translation>
     </message>
     <message>
-        <location line="+23"/>
+        <source>FEP</source>
+        <translation>FEP</translation>
+    </message>
+    <message>
         <source>XIM input method</source>
         <translation>XIM 入力メソッド</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Windows input method</source>
         <translation>Windows 入力メソッド</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Mac OS X input method</source>
         <translation>Mac OS X 入力メソッド</translation>
     </message>
+    <message>
+        <source>S60 FEP input method</source>
+        <translation>S60 FEP 入力メソッド</translation>
+    </message>
 </context>
 <context>
     <name>QInputDialog</name>
     <message>
-        <location filename="../src/gui/dialogs/qinputdialog.cpp" line="+223"/>
         <source>Enter a value:</source>
         <translation>数値を入力:</translation>
     </message>
@@ -2685,78 +3315,50 @@
 <context>
     <name>QLibrary</name>
     <message>
-        <location filename="../src/corelib/plugin/qlibrary.cpp" line="+378"/>
         <source>Could not mmap &apos;%1&apos;: %2</source>
         <translation>&apos;%1&apos; をメモリにマッピングできませんでした: %2</translation>
     </message>
     <message>
-        <location line="+22"/>
         <source>Plugin verification data mismatch in &apos;%1&apos;</source>
         <translation>&apos;%1&apos; でプラグイン検証データが一致しません</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Could not unmap &apos;%1&apos;: %2</source>
         <translation>&apos;%1&apos; のマッピングを解除できませんでした: %2</translation>
     </message>
     <message>
-        <location line="+302"/>
         <source>The plugin &apos;%1&apos; uses incompatible Qt library. (%2.%3.%4) [%5]</source>
         <translation>プラグイン &apos;%1&apos; は、互換性のない Qt ライブラリを使用しています。(%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>プラグイン &apos;%1&apos; は、互換性のない Qt ライブラリを使用しています。ビルドキー &quot;%2&quot; が必要ですが、&quot;%3&quot; しかありません </translation>
     </message>
     <message>
-        <location line="+340"/>
         <source>Unknown error</source>
-        <translation>不明なエラー</translation>
-    </message>
-    <message>
-        <source>QLibrary::load_sys: Cannot load %1 (%2)</source>
-        <translation type="obsolete">QLibrary::load_sys: %1 をロードできません (%2)</translation>
-    </message>
-    <message>
-        <source>QLibrary::unload_sys: Cannot unload %1 (%2)</source>
-        <translation type="obsolete">QLibrary::unload_sys: %1 をアンロードできません (%2)</translation>
-    </message>
-    <message>
-        <source>QLibrary::resolve_sys: Symbol &quot;%1&quot; undefined in %2 (%3)</source>
-        <translation type="obsolete">QLibrary::resolve_sys: シンボル &quot;%1&quot; は %2 で定義されていません (%3)</translation>
-    </message>
-    <message>
-        <location line="-377"/>
-        <location filename="../src/corelib/plugin/qpluginloader.cpp" line="+280"/>
+        <translation>未知のエラー</translation>
+    </message>
+    <message>
         <source>The shared library was not found.</source>
         <translation>共有ライブラリがみつかりません。</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>The file &apos;%1&apos; is not a valid Qt plugin.</source>
         <translation>ファイル &apos;%1&apos; は Qt プラグインではありません。</translation>
     </message>
     <message>
-        <location line="+43"/>
         <source>The plugin &apos;%1&apos; uses incompatible Qt library. (Cannot mix debug and release libraries.)</source>
         <translation>プラグイン &apos;%1&apos; はこの Qt と互換性のないライブラリを使用しています。 (デバック版とリリース版のライブラリを同時に使用することはできません)</translation>
     </message>
     <message>
-        <location filename="../src/corelib/plugin/qlibrary_unix.cpp" line="+209"/>
-        <location filename="../src/corelib/plugin/qlibrary_win.cpp" line="+99"/>
         <source>Cannot load library %1: %2</source>
         <translation>ライブラリ &apos;%1&apos; を読み込むことができません: %2</translation>
     </message>
     <message>
-        <location line="+16"/>
-        <location filename="../src/corelib/plugin/qlibrary_win.cpp" line="+26"/>
         <source>Cannot unload library %1: %2</source>
         <translation>ライブラリ %1 を解放することができません: %2</translation>
     </message>
     <message>
-        <location line="+31"/>
-        <location filename="../src/corelib/plugin/qlibrary_win.cpp" line="+15"/>
         <source>Cannot resolve symbol &quot;%1&quot; in %2: %3</source>
         <translation>&apos;%2&apos;に含まれる識別子 &quot;%1&quot; を解決できません: %3</translation>
     </message>
@@ -2764,37 +3366,30 @@
 <context>
     <name>QLineEdit</name>
     <message>
-        <location filename="../src/gui/widgets/qlineedit.cpp" line="+2680"/>
         <source>&amp;Undo</source>
         <translation>元に戻す(&amp;U)</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>&amp;Redo</source>
         <translation>やり直す(&amp;R)</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Cu&amp;t</source>
         <translation>切り取り(&amp;T)</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>&amp;Copy</source>
         <translation>コピー(&amp;C)</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>&amp;Paste</source>
         <translation>貼り付け(&amp;P)</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Delete</source>
         <translation>削除</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Select All</source>
         <translation>すべてを選択</translation>
     </message>
@@ -2802,23 +3397,18 @@
 <context>
     <name>QLocalServer</name>
     <message>
-        <location filename="../src/network/socket/qlocalserver.cpp" line="+226"/>
-        <location filename="../src/network/socket/qlocalserver_unix.cpp" line="+233"/>
         <source>%1: Name error</source>
         <translation>%1: 名前の解決に失敗</translation>
     </message>
     <message>
-        <location filename="../src/network/socket/qlocalserver_unix.cpp" line="-8"/>
         <source>%1: Permission denied</source>
         <translation>%1: 許可されていません</translation>
     </message>
     <message>
-        <location line="+12"/>
         <source>%1: Address in use</source>
         <translation>%1: アドレスは既に使用されています</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>%1: Unknown error %2</source>
         <translation>%1: 未知のエラー %2</translation>
     </message>
@@ -2826,70 +3416,46 @@
 <context>
     <name>QLocalSocket</name>
     <message>
-        <location filename="../src/network/socket/qlocalsocket_tcp.cpp" line="+132"/>
-        <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+134"/>
         <source>%1: Connection refused</source>
         <translation>%1: 接続が拒否されました</translation>
     </message>
     <message>
-        <location line="+3"/>
-        <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+3"/>
         <source>%1: Remote closed</source>
         <translation>%1: リモートにより接続が閉じられました</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="+43"/>
         <source>%1: Invalid name</source>
         <translation>%1: 無効な名前です</translation>
     </message>
     <message>
-        <location line="+3"/>
-        <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+3"/>
         <source>%1: Socket access error</source>
         <translation>%1: ソケットアクセスのエラーです</translation>
     </message>
     <message>
-        <location line="+3"/>
-        <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+3"/>
         <source>%1: Socket resource error</source>
         <translation>%1: ソケットリソースのエラーです</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: ソケット操作がタイムアウトしました</translation>
     </message>
     <message>
-        <location line="+3"/>
-        <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+3"/>
         <source>%1: Datagram too large</source>
         <translation>%1: データグラムが大きすぎます</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="-48"/>
         <source>%1: Connection error</source>
         <translation>%1: 接続のエラーが発生しました</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: そのソケット操作はサポートされていません</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>%1: Unknown error</source>
         <translation>%1: 未知のエラーです</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: 未知のエラー %2</translation>
     </message>
@@ -2897,27 +3463,22 @@
 <context>
     <name>QMYSQLDriver</name>
     <message>
-        <location filename="../src/sql/drivers/mysql/qsql_mysql.cpp" line="+1252"/>
         <source>Unable to open database &apos;</source>
         <translation>データベースをオープンできません &apos;</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Unable to connect</source>
         <translation>接続できません</translation>
     </message>
     <message>
-        <location line="+127"/>
         <source>Unable to begin transaction</source>
         <translation>トランザクションを開始できません</translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>Unable to commit transaction</source>
         <translation>トランザクションをコミットできません</translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>Unable to rollback transaction</source>
         <translation>トランザクションをロールバックできません</translation>
     </message>
@@ -2925,59 +3486,46 @@
 <context>
     <name>QMYSQLResult</name>
     <message>
-        <location line="-935"/>
         <source>Unable to fetch data</source>
         <translation>データをフェッチできません</translation>
     </message>
     <message>
-        <location line="+183"/>
         <source>Unable to execute query</source>
         <translation>クエリーを実行できません</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Unable to store result</source>
         <translation>実行結果を記録できません</translation>
     </message>
     <message>
-        <location line="+194"/>
-        <location line="+8"/>
         <source>Unable to prepare statement</source>
         <translation>プリペアステートメントを使えません</translation>
     </message>
     <message>
-        <location line="+36"/>
         <source>Unable to reset statement</source>
         <translation>ステートメントをリセットできません</translation>
     </message>
     <message>
-        <location line="+87"/>
         <source>Unable to bind value</source>
         <translation>値をバインドできません</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>Unable to execute statement</source>
         <translation>ステートメントを実行できません</translation>
     </message>
     <message>
-        <location line="+14"/>
-        <location line="+21"/>
         <source>Unable to bind outvalues</source>
         <translation>出力値をバインドできません</translation>
     </message>
     <message>
-        <location line="-12"/>
         <source>Unable to store statement results</source>
         <translation>ステートメントの実行結果を記録できません</translation>
     </message>
     <message>
-        <location line="-257"/>
         <source>Unable to execute next query</source>
         <translation>次のクエリーを実行できません</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>Unable to store next result</source>
         <translation>次の結果を記録できません</translation>
     </message>
@@ -2985,7 +3533,6 @@
 <context>
     <name>QMdiArea</name>
     <message>
-        <location filename="../src/gui/widgets/qmdiarea.cpp" line="+290"/>
         <source>(Untitled)</source>
         <translation>(タイトルなし)</translation>
     </message>
@@ -2993,93 +3540,75 @@
 <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>閉じる</translation>
     </message>
     <message>
-        <location line="-18"/>
         <source>Minimize</source>
         <translation>最小化</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>Restore Down</source>
         <translation>元に戻す</translation>
     </message>
     <message>
-        <location line="+707"/>
         <source>&amp;Restore</source>
         <translation>元に戻す(&amp;R)</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>&amp;Move</source>
         <translation>移動(&amp;M)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Size</source>
         <translation>サイズ(&amp;S)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Mi&amp;nimize</source>
         <translation>最小化(&amp;N)</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Ma&amp;ximize</source>
         <translation>最大化(&amp;X)</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Stay on &amp;Top</source>
         <translation>常に手前に表示(&amp;T)</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>&amp;Close</source>
         <translation>閉じる(&amp;C)</translation>
     </message>
     <message>
-        <location line="-787"/>
         <source>- [%1]</source>
         <translation>- [%1]</translation>
     </message>
     <message>
-        <location line="+58"/>
         <source>Maximize</source>
         <translation>最大化</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Unshade</source>
         <translatorcomment>たぶん選択・非選択状態のウィンドウのことだと思うけど。fvwmなどのx11で使われている用語</translatorcomment>
         <translation>非選択</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Shade</source>
         <translation>選択</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Restore</source>
         <translation>元に戻す</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Help</source>
         <translation>ヘルプ</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Menu</source>
         <translation>メニュー</translation>
     </message>
@@ -3087,21 +3616,14 @@
 <context>
     <name>QMenu</name>
     <message>
-        <location filename="../src/plugins/accessible/widgets/qaccessiblemenu.cpp" line="+157"/>
-        <location line="+225"/>
         <source>Close</source>
         <translation>閉じる</translation>
     </message>
     <message>
-        <location line="-224"/>
-        <location line="+225"/>
         <source>Open</source>
         <translation>オープン</translation>
     </message>
     <message>
-        <location line="-223"/>
-        <location line="+225"/>
-        <location line="+51"/>
         <source>Execute</source>
         <translation>実行</translation>
     </message>
@@ -3109,91 +3631,44 @@
 <context>
     <name>QMenuBar</name>
     <message>
-        <source>About Qt</source>
-        <translation type="obsolete">Qt について</translation>
+        <source>Actions</source>
+        <translation>アクション</translation>
     </message>
 </context>
 <context>
     <name>QMessageBox</name>
     <message>
-        <location filename="../src/gui/dialogs/qmessagebox.cpp" line="-1111"/>
         <source>Help</source>
         <translation>ヘルプ</translation>
     </message>
     <message>
-        <location line="-853"/>
-        <location line="+852"/>
-        <location filename="../src/gui/dialogs/qmessagebox.h" line="-52"/>
-        <location line="+8"/>
         <source>OK</source>
         <translation>OK</translation>
     </message>
     <message>
-        <source>&lt;h3&gt;About Qt&lt;/h3&gt;%1&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 Qtopia Core.&lt;/p&gt;&lt;p&gt;Qt is a Trolltech 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;Qt について&lt;/h3&gt;%1
-&lt;p&gt;QtはクロスプラットフォームのC++ アプリケーション開発ツールキットです。&lt;/p&gt;
-&lt;p&gt;Qt は MS&amp;nbsp;Windows, Mac&amp;nbsp;OS&amp;nbsp;X, Linux, 商用のUnix派生版でソースコード互換を実現します。また、Qtopia Coreのように、内蔵デバイスでも利用可能です。&lt;/p&gt;
-&lt;p&gt;QtはTrolltechの商品です。詳細は&lt;tt&gt;http://qt.nokia.com/&lt;/tt&gt;を参照してください。&lt;/p&gt;</translation>
-    </message>
-    <message>
-        <source>&lt;p&gt;This program uses Qt version %1.&lt;/p&gt;</source>
-        <translation type="obsolete">&lt;p&gt;このプログラムは Qt バージョン %1 を使用しています。&lt;/p&gt;</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://qt.nokia.com/company/model/&quot;&gt;qt.nokia.com/company/model/&lt;/a&gt; for an overview of Qt licensing.&lt;/p&gt;</source>
-        <translation type="obsolete">&lt;p&gt;このプログラムは Qt オープンソース版バージョン %1 を使用しています。&lt;/p&gt;
-&lt;p&gt;Qt オープンソース版はオープンソースのアプリケーションの開発用です。ソースコードを公開しない商用アプリケーションを開発するには商用版のライセンスが必要です。&lt;/p&gt;&lt;p&gt;Qtのライセンスについては&lt;tt&gt;http://qt.nokia.com/company/model.html&lt;/tt&gt;を参照してください。&lt;/p&gt;</translation>
-    </message>
-    <message>
-        <location line="+509"/>
         <source>About Qt</source>
         <translation>Qt について</translation>
     </message>
     <message>
-        <location line="-1605"/>
         <source>Show Details...</source>
         <translation>詳細を表示...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Hide Details...</source>
         <translation>詳細を隠す...</translation>
     </message>
     <message>
-        <location line="+1570"/>
-        <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) 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>&lt;h3&gt;Qtについて&lt;/h3&gt;
-&lt;p&gt;このプログラムは Qt バージョン %1 を使用しています。&lt;/p&gt;
-&lt;p&gt;Qt は、クロスプラットホームのアプリケーション開発に使用される C++ のツールキットです。&lt;/p&gt;
-&lt;p&gt;Qt は、 MS&amp;nbsp;Windows, Mac&amp;nbsp;OS&amp;nbsp;X, Linux, そして多数の Unix 系OS環境に対して、単一のソースからバイナリを生成します。
-また、 Linux および Windows CE を元とした組み込み環境にも対応しています。&lt;/p&gt;
-&lt;p&gt;Qt は様々なユーザの要望に応じるために、3つの異なるライセンスで提供されています。&lt;/p&gt;
-&lt;p&gt;
-Qt 商用ライセンスは、プロプライエタリまたは商用ソフトウェアに適用できます。
-この場合は、他者とのソースコードの共有を拒否し、 GNU LGP バージョン 2.1 または GNU GPL バージョン 3.0 を許容できないソフトウェアにおいて Qt を使用できます。
-&lt;/p&gt;
-&lt;p&gt;
-Qt GNU LGPL バージョン 2.1 ライセンスは、プロプライエタリまたはオープンソースソフトウェアに適用できます。
-この場合は、 GNU LGPL バージョン 2.1 に従う必要があります。
-&lt;/p&gt;
-&lt;p&gt;
-Qt GNU General Public License バージョン 3.0 ライセンスは、GNU GPL バージョン 3.0 または GPL 3.0 と互換性のあるライセンスを採用しているソフトウェアに適用されます。
-この場合は、GNU GPL バージョン 3.0 に従う必要があります。
-&lt;/p&gt;
-&lt;p&gt;
-ライセンスの詳細については、&lt;a href=&quot;http://qt.nokia.com/products/licensing&quot;&gt;qt.nokia.com/products/licensing&lt;/a&gt;
-を参照してください。&lt;/p&gt;
-&lt;p&gt;Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).&lt;/p&gt;
-&lt;p&gt;Qt は Nokia の製品です。詳細については&lt;a href=&quot;http://qt.nokia.com/&quot;&gt;qt.nokia.com&lt;/a&gt; を参照してください。&lt;/p&gt;
-&lt;p&gt;
-訳注: ライセンスはここにある翻訳は参考のためのものであり、オリジナルの(英語の)ものが正式なものとなります。
-&lt;/p&gt;</translation>
+        <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 について&lt;/h3&gt;&lt;p&gt;このプログラムは Qt バージョン %1 を使用しています。&lt;/p&gt;</translation>
+    </message>
+    <message>
+        <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 type="unfinished"></translation>
     </message>
 </context>
 <context>
     <name>QMultiInputContext</name>
     <message>
-        <location filename="../src/plugins/inputmethods/imsw-multi/qmultiinputcontext.cpp" line="+88"/>
         <source>Select IM</source>
         <translation>インプットメソッドを選択</translation>
     </message>
@@ -3201,12 +3676,10 @@
 <context>
     <name>QMultiInputContextPlugin</name>
     <message>
-        <location filename="../src/plugins/inputmethods/imsw-multi/qmultiinputcontextplugin.cpp" line="+95"/>
         <source>Multiple input method switcher</source>
         <translation>複数のインプットメソッドを切り替え</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Multiple input method switcher that uses the context menu of the text widgets</source>
         <translation>テキストウィジェットのコンテキストメニューを使った複数のインプットメソッドの切り替えです</translation>
     </message>
@@ -3214,132 +3687,106 @@
 <context>
     <name>QNativeSocketEngine</name>
     <message>
-        <location filename="../src/network/socket/qnativesocketengine.cpp" line="+197"/>
         <source>Unable to initialize non-blocking socket</source>
         <translation>非ブロック型ソケットを初期化できません</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Unable to initialize broadcast socket</source>
         <translation>ブロードキャストソケットを初期化できません</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Attempt to use IPv6 socket on a platform with no IPv6 support</source>
         <translation>IPv6 がサポートされていないプラットフォームで IPv6 ソケットを使用しようとしています</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>The remote host closed the connection</source>
         <translation>リモートホストは接続を閉じました</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Network operation timed out</source>
         <translation>ネットワーク操作がタイムアウトしました</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Out of resources</source>
         <translation>リソースが足りません</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Unsupported socket operation</source>
         <translation>サポートされていないソケット操作です</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Protocol type not supported</source>
         <translation>プロトコル型がサポートされていません</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Invalid socket descriptor</source>
         <translation>無効なソケット記述子です</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Host unreachable</source>
         <translation>ホストへ到達できません</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Network unreachable</source>
         <translation>ネットワークへ到達できません</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Permission denied</source>
         <translation>許可されていません</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Connection timed out</source>
         <translation>接続がタイムアウトしました</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Connection refused</source>
         <translation>接続を拒否されました</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>The bound address is already in use</source>
         <translation>バインドアドレスは既に使われています</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>The address is not available</source>
         <translation>そのアドレスは使用できません</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>The address is protected</source>
         <translation>そのアドレスへのアクセス権がありません</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Datagram was too large to send</source>
         <translation>データグラムが大き過ぎて送信できませんでした</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Unable to send a message</source>
         <translation>メッセージを送信できません</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Unable to receive a message</source>
         <translation>メッセージを受信できません</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Unable to write</source>
         <translation>書き込みができません</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Network error</source>
         <translation>ネットワークエラー</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Another socket is already listening on the same port</source>
         <translation>別のソケットが同じポートで既に待ち受けています</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Operation on non-socket</source>
         <translation>非ソケットに対する操作です</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Unknown error</source>
-        <translation>不明なエラー</translation>
-    </message>
-    <message>
-        <location line="-3"/>
+        <translation>未知のエラー</translation>
+    </message>
+    <message>
         <source>The proxy type is invalid for this operation</source>
         <translation>このプロキシーは、この操作に対応していません</translation>
     </message>
@@ -3347,43 +3794,55 @@
 <context>
     <name>QNetworkAccessCacheBackend</name>
     <message>
-        <location filename="../src/network/access/qnetworkaccesscachebackend.cpp" line="+65"/>
         <source>Error opening %1</source>
         <translation>オープンのエラー %1</translation>
     </message>
 </context>
 <context>
+    <name>QNetworkAccessDataBackend</name>
+    <message>
+        <source>Operation not supported on %1</source>
+        <translation>%1 ではこの操作はサポートされていません</translation>
+    </message>
+    <message>
+        <source>Invalid URI: %1</source>
+        <translation>無効なURIです: %1</translation>
+    </message>
+</context>
+<context>
     <name>QNetworkAccessDebugPipeBackend</name>
     <message>
-        <location filename="../src/network/access/qnetworkaccessdebugpipebackend.cpp" line="+191"/>
         <source>Write error writing to %1: %2</source>
         <translation>%1 への書き込み時にエラーが発生しました: %2</translation>
     </message>
+    <message>
+        <source>Socket error on %1: %2</source>
+        <translation>%1 のソケットにおいてエラーが発生しました: %2</translation>
+    </message>
+    <message>
+        <source>Remote host closed the connection prematurely on %1</source>
+        <translation>リモートホスト %1 との接続が通信の終了前に切断されました</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>非ローカルファイル %1 をオープンするよう要求されましたが、ローカルファイルのみオープンできます</translation>
     </message>
     <message>
-        <location line="+45"/>
         <source>Error opening %1: %2</source>
         <translation>%1 をオープンする時にエラーが発生しました: %2</translation>
     </message>
     <message>
-        <location line="+38"/>
         <source>Write error writing to %1: %2</source>
         <translation>%1 への書き込み時にエラーが発生しました: %2</translation>
     </message>
     <message>
-        <location line="+48"/>
         <source>Cannot open %1: Path is a directory</source>
         <translation>%1 をオープンできません。指定されたパスはディレクトリです</translation>
     </message>
     <message>
-        <location line="+21"/>
         <source>Read error reading from %1: %2</source>
         <translation>%1 を読み込み時にエラーが発生しました: %2</translation>
     </message>
@@ -3391,27 +3850,22 @@
 <context>
     <name>QNetworkAccessFtpBackend</name>
     <message>
-        <location filename="../src/network/access/qnetworkaccessftpbackend.cpp" line="+131"/>
         <source>No suitable proxy found</source>
         <translation>適切なプロキシーがみつかりません</translation>
     </message>
     <message>
-        <location line="+14"/>
         <source>Cannot open %1: is a directory</source>
         <translation>%1 をオープンできません。指定されたパスはディレクトリです</translation>
     </message>
     <message>
-        <location line="+112"/>
         <source>Logging in to %1 failed: authentication required</source>
         <translation>%1 へのログインに失敗しました。認証が必要です</translation>
     </message>
     <message>
-        <location line="+39"/>
         <source>Error while downloading %1: %2</source>
         <translation>%1 をダウンロード中にエラーが発生しました: %2</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Error while uploading %1: %2</source>
         <translation>%1 をアップロード中にエラーが発生しました: %2</translation>
     </message>
@@ -3419,58 +3873,105 @@
 <context>
     <name>QNetworkAccessHttpBackend</name>
     <message>
-        <location filename="../src/network/access/qnetworkaccesshttpbackend.cpp" line="+567"/>
         <source>No suitable proxy found</source>
         <translation>適切なプロキシーがみつかりません</translation>
     </message>
 </context>
 <context>
+    <name>QNetworkAccessManager</name>
+    <message>
+        <source>Network access is disabled.</source>
+        <translation>ネットワークへのアクセスが禁止されています。</translation>
+    </message>
+</context>
+<context>
     <name>QNetworkReply</name>
     <message>
-        <location line="+88"/>
         <source>Error downloading %1 - server replied: %2</source>
         <translation>%1 をダウンロード中にエラーが発生しました。サーバの返答: %2</translation>
     </message>
     <message>
-        <location filename="../src/network/access/qnetworkreplyimpl.cpp" line="+75"/>
         <source>Protocol &quot;%1&quot; is unknown</source>
         <translation>プロトコル &quot;%1&quot; はサポートされていません</translation>
     </message>
+    <message>
+        <source>Network session error.</source>
+        <translation>ネットワークセッションエラー。</translation>
+    </message>
+    <message>
+        <source>Temporary network failure.</source>
+        <translation>一時的なネットワークの失敗。</translation>
+    </message>
 </context>
 <context>
     <name>QNetworkReplyImpl</name>
     <message>
-        <location line="+459"/>
-        <location line="+22"/>
         <source>Operation canceled</source>
         <translation>操作はキャンセルされました</translation>
     </message>
 </context>
 <context>
+    <name>QNetworkSession</name>
+    <message>
+        <source>Invalid configuration.</source>
+        <translation>無効な設定です。</translation>
+    </message>
+</context>
+<context>
+    <name>QNetworkSessionPrivateImpl</name>
+    <message>
+        <source>Roaming error</source>
+        <translation>ローミングエラー</translation>
+    </message>
+    <message>
+        <source>Session aborted by user or system</source>
+        <translation>セッションはユーザもしくはシステムによって停止されました</translation>
+    </message>
+    <message>
+        <source>Unidentified Error</source>
+        <translation>未知のエラー</translation>
+    </message>
+    <message>
+        <source>Unknown session error.</source>
+        <translation>未知のセッションエラーです。</translation>
+    </message>
+    <message>
+        <source>The session was aborted by the user or system.</source>
+        <translation>このセッションはユーザもしくはシステムによって停止されました。</translation>
+    </message>
+    <message>
+        <source>The requested operation is not supported by the system.</source>
+        <translation>要求された操作はこのシステムではサポートされていません。</translation>
+    </message>
+    <message>
+        <source>The specified configuration cannot be used.</source>
+        <translation>この設定は利用できません。</translation>
+    </message>
+    <message>
+        <source>Roaming was aborted or is not possible.</source>
+        <translation>ローミングは停止されたか利用できません。</translation>
+    </message>
+</context>
+<context>
     <name>QOCIDriver</name>
     <message>
-        <location filename="../src/sql/drivers/oci/qsql_oci.cpp" line="+1925"/>
         <source>Unable to initialize</source>
         <comment>QOCIDriver</comment>
         <translation>初期化できません</translation>
     </message>
     <message>
-        <location line="+144"/>
         <source>Unable to logon</source>
         <translation>ログオンできません</translation>
     </message>
     <message>
-        <location line="+71"/>
         <source>Unable to begin transaction</source>
         <translation>トランザクションを開始できません</translation>
     </message>
     <message>
-        <location line="+19"/>
         <source>Unable to commit transaction</source>
         <translation>トランザクションをコミットできません</translation>
     </message>
     <message>
-        <location line="+19"/>
         <source>Unable to rollback transaction</source>
         <translation>トランザクションをロールバックできません</translation>
     </message>
@@ -3478,43 +3979,34 @@
 <context>
     <name>QOCIResult</name>
     <message>
-        <location line="-963"/>
-        <location line="+161"/>
-        <location line="+15"/>
         <source>Unable to bind column for batch execute</source>
         <translation>バッチ処理用にフィールドをバインドできません</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Unable to execute batch statement</source>
         <translation>バッチステートメントを実行できません</translation>
     </message>
     <message>
-        <location line="+302"/>
         <source>Unable to goto next</source>
         <translation>次のレコードへ進めません</translation>
     </message>
     <message>
-        <location line="+59"/>
         <source>Unable to alloc statement</source>
         <translation>ステートメントの領域を確保できません</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Unable to prepare statement</source>
         <translation>プリペアステートメントを使えません</translation>
     </message>
     <message>
-        <location line="+36"/>
+        <source>Unable to get statement type</source>
+        <translation>ステートメントの型を取得できません</translation>
+    </message>
+    <message>
         <source>Unable to bind value</source>
         <translation>値をバインドできません</translation>
     </message>
     <message>
-        <source>Unable to execute select statement</source>
-        <translation type="obsolete">SELECT ステートメントを実行できません</translation>
-    </message>
-    <message>
-        <location line="+19"/>
         <source>Unable to execute statement</source>
         <translation>ステートメントを実行できません</translation>
     </message>
@@ -3522,32 +4014,26 @@
 <context>
     <name>QODBCDriver</name>
     <message>
-        <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="+1781"/>
         <source>Unable to connect</source>
         <translation>接続できません</translation>
     </message>
     <message>
-        <location line="+6"/>
-        <source>Unable to connect - Driver doesn&apos;t support all needed functionality</source>
-        <translation>接続できません - ドライバは全ての必要な機能をサポートしていません</translation>
-    </message>
-    <message>
-        <location line="+242"/>
+        <source>Unable to connect - Driver doesn&apos;t support all functionality required</source>
+        <translation>接続できません - ドライバは必要な全ての機能をサポートしていません</translation>
+    </message>
+    <message>
         <source>Unable to disable autocommit</source>
         <translation>オートコミットを無効にできません</translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>Unable to commit transaction</source>
         <translation>トランザクションをコミットできません</translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>Unable to rollback transaction</source>
         <translation>トランザクションをロールバックできません</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Unable to enable autocommit</source>
         <translation>オートコミットを有効にできません</translation>
     </message>
@@ -3555,51 +4041,38 @@
 <context>
     <name>QODBCResult</name>
     <message>
-        <location line="-1201"/>
-        <location line="+626"/>
         <source>Unable to execute statement</source>
         <translation>ステートメントを実行できません</translation>
     </message>
     <message>
-        <location line="-555"/>
         <source>Unable to fetch next</source>
         <translation>次のレコードをフェッチできません</translation>
     </message>
     <message>
-        <location line="+279"/>
         <source>Unable to prepare statement</source>
         <translation>プリペアステートメントを使えません</translation>
     </message>
     <message>
-        <location line="+268"/>
         <source>Unable to bind variable</source>
         <translation>変数をバインドできません</translation>
     </message>
     <message>
-        <location line="-635"/>
-        <location line="+349"/>
         <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_STATUS&apos; を設定できません。ODBC ドライバの構成をチェックしてください</translation>
     </message>
     <message>
-        <location filename="../src/sql/drivers/db2/qsql_db2.cpp" line="+194"/>
-        <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="-189"/>
-        <location line="+578"/>
         <source>Unable to fetch last</source>
         <translation>リストを取得できません</translation>
     </message>
     <message>
-        <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="-672"/>
         <source>Unable to fetch</source>
         <translation>フェッチできません</translation>
     </message>
     <message>
-        <location line="+44"/>
         <source>Unable to fetch first</source>
         <translation>最初のレコードをフェッチできません</translation>
     </message>
     <message>
-        <location line="+19"/>
         <source>Unable to fetch previous</source>
         <translation>前のレコードをフェッチできません</translation>
     </message>
@@ -3607,54 +4080,25 @@
 <context>
     <name>QObject</name>
     <message>
-        <source>False</source>
-        <translation type="obsolete">False</translation>
-    </message>
-    <message>
-        <source>True</source>
-        <translation type="obsolete">True</translation>
-    </message>
-    <message>
-        <location filename="../src/gui/util/qdesktopservices_mac.cpp" line="+165"/>
-        <source>Home</source>
-        <translation>ホーム</translation>
-    </message>
-    <message>
-        <location filename="../src/network/access/qnetworkaccessdatabackend.cpp" line="+74"/>
-        <source>Operation not supported on %1</source>
-        <translation>%1 ではこの操作はサポートされていません</translation>
-    </message>
-    <message>
-        <location line="+53"/>
-        <source>Invalid URI: %1</source>
-        <translation>無効なURIです: %1</translation>
-    </message>
-    <message>
-        <location filename="../src/network/access/qnetworkaccessdebugpipebackend.cpp" line="+60"/>
-        <source>Socket error on %1: %2</source>
-        <translation>%1 のソケットにおいてエラーが発生しました: %2</translation>
-    </message>
-    <message>
-        <location line="+15"/>
-        <source>Remote host closed the connection prematurely on %1</source>
-        <translation>リモートホスト %1 との接続が通信の終了前に切断されました</translation>
-    </message>
-    <message>
-        <location filename="../src/network/kernel/qhostinfo.cpp" line="+177"/>
-        <location line="+57"/>
-        <source>No host name given</source>
-        <translation>ホストネームが与えられていません</translation>
+        <source>PulseAudio Sound Server</source>
+        <translation>PulseAudio サウンドサーバ</translation>
+    </message>
+    <message>
+        <source>&quot;%1&quot; duplicates a previous role name and will be disabled.</source>
+        <translation>&quot;%1&quot; で直前のロール名を複製し、無効化されます。</translation>
+    </message>
+    <message>
+        <source>invalid query: &quot;%1&quot;</source>
+        <translation>無効なクエリー: &quot;%1&quot;</translation>
     </message>
 </context>
 <context>
     <name>QPPDOptionsModel</name>
     <message>
-        <location filename="../src/gui/dialogs/qprintdialog_unix.cpp" line="+1197"/>
         <source>Name</source>
         <translation>名前</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Value</source>
         <translation>値</translation>
     </message>
@@ -3662,32 +4106,26 @@
 <context>
     <name>QPSQLDriver</name>
     <message>
-        <location filename="../src/sql/drivers/psql/qsql_psql.cpp" line="+763"/>
         <source>Unable to connect</source>
         <translation>接続できません</translation>
     </message>
     <message>
-        <location line="+49"/>
         <source>Could not begin transaction</source>
         <translation>トランザクションを開始できませんでした</translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>Could not commit transaction</source>
         <translation>トランザクションをコミットできませんでした</translation>
     </message>
     <message>
-        <location line="+16"/>
         <source>Could not rollback transaction</source>
         <translation>トランザクションをロールバックできませんでした</translation>
     </message>
     <message>
-        <location line="+358"/>
         <source>Unable to subscribe</source>
         <translation>subscribe できません</translation>
     </message>
     <message>
-        <location line="+32"/>
         <source>Unable to unsubscribe</source>
         <translation>unsubscribe できません</translation>
     </message>
@@ -3695,12 +4133,10 @@
 <context>
     <name>QPSQLResult</name>
     <message>
-        <location line="-1058"/>
         <source>Unable to create query</source>
         <translation>クエリーを作成できません</translation>
     </message>
     <message>
-        <location line="+374"/>
         <source>Unable to prepare statement</source>
         <translation>プリペアステートメントを使えません</translation>
     </message>
@@ -3708,1164 +4144,93 @@
 <context>
     <name>QPageSetupWidget</name>
     <message>
-        <location filename="../src/gui/dialogs/qpagesetupdialog_unix.cpp" line="+304"/>
         <source>Centimeters (cm)</source>
         <translation>センチメートル (cm)</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Millimeters (mm)</source>
         <translation>ミリメートル (mm)</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Inches (in)</source>
         <translation>インチ (in)</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Points (pt)</source>
         <translation>ポイント (pt)</translation>
     </message>
     <message>
-        <location filename="../src/gui/dialogs/qpagesetupwidget.ui"/>
         <source>Form</source>
         <translation>書式設定</translation>
     </message>
     <message>
-        <location/>
         <source>Paper</source>
         <translation>用紙</translation>
     </message>
     <message>
-        <location/>
         <source>Page size:</source>
         <translation>ページサイズ:</translation>
     </message>
     <message>
-        <location/>
         <source>Width:</source>
         <translation>幅:</translation>
     </message>
     <message>
-        <location/>
         <source>Height:</source>
         <translation>高さ:</translation>
     </message>
     <message>
-        <location/>
         <source>Paper source:</source>
         <translation>給紙装置:</translation>
     </message>
     <message>
-        <location/>
         <source>Orientation</source>
         <translation>印刷方向</translation>
     </message>
     <message>
-        <location/>
         <source>Portrait</source>
         <translation>縦 (ポートレート)</translation>
     </message>
     <message>
-        <location/>
         <source>Landscape</source>
         <translation>横 (ランドスケープ)</translation>
     </message>
     <message>
-        <location/>
         <source>Reverse landscape</source>
         <translation>横 反転 (リバースランドスケープ)</translation>
     </message>
     <message>
-        <location/>
         <source>Reverse portrait</source>
         <translation>縦 反転 (リバースポートレート)</translation>
     </message>
     <message>
-        <location/>
         <source>Margins</source>
         <translation>余白</translation>
     </message>
     <message>
-        <location/>
         <source>top margin</source>
         <translation>上端余白</translation>
     </message>
     <message>
-        <location/>
         <source>left margin</source>
         <translation>左端余白</translation>
     </message>
     <message>
-        <location/>
         <source>right margin</source>
         <translation>右端余白</translation>
     </message>
     <message>
-        <location/>
         <source>bottom margin</source>
         <translation>下端余白</translation>
     </message>
 </context>
 <context>
-    <name>QPatternist::QtXmlPatterns</name>
-    <message>
-        <location filename="../src/xmlpatterns/acceltree/qacceltreebuilder.cpp" line="+205"/>
-        <source>An %1-attribute with value %2 has already been declared.</source>
-        <translation type="unfinished">属性 %1 の値 %2 は既に宣言されています。</translation>
-    </message>
-    <message>
-        <location line="+13"/>
-        <source>An %1-attribute must have a valid %2 as value, which %3 isn&apos;t.</source>
-        <translation type="unfinished">属性 %1 の値は %2 の型でなければなりませんが、 %3 が指定されました。</translation>
-    </message>
-    <message>
-        <location filename="../src/xmlpatterns/acceltree/qacceltreeresourceloader.cpp" line="+314"/>
-        <source>%1 is an unsupported encoding.</source>
-        <translation type="unfinished">%1 はサポートされていないエンコーディングです。</translation>
-    </message>
-    <message>
-        <location line="+16"/>
-        <source>%1 contains octets which are disallowed in the requested encoding %2.</source>
-        <translation type="unfinished">エンコーディング %2 では許可されていないオクテットが %1 に含まれています。</translation>
-    </message>
-    <message>
-        <location line="+18"/>
-        <source>The codepoint %1, occurring in %2 using encoding %3, is an invalid XML character.</source>
-        <translation type="unfinished">%2 で使用されているエンコード %3 では、コードポイント %1 は有効な XML 表現ではありません。</translation>
-    </message>
-    <message>
-        <location filename="../src/xmlpatterns/api/qiodevicedelegate.cpp" line="+84"/>
-        <source>Network timeout.</source>
-        <translation type="unfinished">ネットワーク接続がタイムアウトしました。</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 type="unfinished">エレメント %1 はシリアライズできません。このドキュメントの範囲を越えるエレメントを含んでいます。</translation>
-    </message>
-    <message>
-        <location line="+60"/>
-        <source>Attribute %1 can&apos;t be serialized because it appears at the top level.</source>
-        <translation type="unfinished">属性 %1 はシリアライズできません。トップレベルに現れているためです。</translation>
-    </message>
-    <message>
-        <location filename="../src/xmlpatterns/data/qabstractdatetime.cpp" line="+80"/>
-        <source>Year %1 is invalid because it begins with %2.</source>
-        <translation type="unfinished">%1 年はむこうです。%2 で始まっています。</translation>
-    </message>
-    <message>
-        <location line="+19"/>
-        <source>Day %1 is outside the range %2..%3.</source>
-        <translation type="unfinished">%1 日は、有効な範囲 %2..%3 を逸脱しています。</translation>
-    </message>
-    <message>
-        <location line="+7"/>
-        <source>Month %1 is outside the range %2..%3.</source>
-        <translation type="unfinished">%1 月は、有効な範囲 %2..%3 を逸脱しています。</translation>
-    </message>
-    <message>
-        <location line="+10"/>
-        <source>Overflow: Can&apos;t represent date %1.</source>
-        <translation type="unfinished">オーバーフロー: 日付 %1 を再現できません。</translation>
-    </message>
-    <message>
-        <location line="+9"/>
-        <source>Day %1 is invalid for month %2.</source>
-        <translation type="unfinished">%2 月には、%1 日は存在しません。</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 type="unfinished">24:%1:%2.%3 は無効です。24時0分0秒のみ使用できます</translation>
-    </message>
-    <message>
-        <location line="+13"/>
-        <source>Time %1:%2:%3.%4 is invalid.</source>
-        <translation type="unfinished">時刻 %1時%2分%3.%4秒は無効です。</translation>
-    </message>
-    <message>
-        <location line="+115"/>
-        <source>Overflow: Date can&apos;t be represented.</source>
-        <translation type="unfinished">オーバーフロー: 日付を再現できません。</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 type="unfinished">年、月、日のうちいずれかを指定しなければなりません。</translation>
-    </message>
-    <message>
-        <location line="-7"/>
-        <source>At least one time component must appear after the %1-delimiter.</source>
-        <translation type="unfinished">%1 の後には、時刻を指定しなければなりません。</translation>
-    </message>
-    <message>
-        <location filename="../src/xmlpatterns/data/qabstractfloatmathematician.cpp" line="+64"/>
-        <source>No operand in an integer division, %1, can be %2.</source>
-        <translatorcomment>ゼロ除算? NaN?</translatorcomment>
-        <translation type="unfinished">整数の除算のためのオペランドが不足しています。%1 は %2 でなければなりません。</translation>
-    </message>
-    <message>
-        <location line="+7"/>
-        <source>The first operand in an integer division, %1, cannot be infinity (%2).</source>
-        <translation type="unfinished">整数の除算における最初のオペランド %1 を認識できません (%2)。</translation>
-    </message>
-    <message>
-        <location line="+6"/>
-        <source>The second operand in a division, %1, cannot be zero (%2).</source>
-        <translation type="unfinished">整数の除算における二つ目のオペランド %1 はゼロであってはいけまん(%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 type="unfinished">%1 は、%2 の型に対して有効な値ではありません。</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 type="unfinished">%2 から %1 への型変換に際しては、値 %3 は有効な値ではありません。</translation>
-    </message>
-    <message>
-        <location filename="../src/xmlpatterns/data/qatomicmathematicians.cpp" line="+65"/>
-        <source>Integer division (%1) by zero (%2) is undefined.</source>
-        <translation type="unfinished">整数の除算において %1 をゼロ (%2) で割った結果は定義されていません。</translation>
-    </message>
-    <message>
-        <location line="+7"/>
-        <source>Division (%1) by zero (%2) is undefined.</source>
-        <translation type="unfinished">除算において %1 をゼロ (%2) で割った結果は定義されていません。</translation>
-    </message>
-    <message>
-        <location line="+7"/>
-        <source>Modulus division (%1) by zero (%2) is undefined.</source>
-        <translation type="unfinished">剰余を求めるに際し、%1 をゼロ (%2) で除した結果は定義されていません。</translation>
-    </message>
-    <message>
-        <location line="+122"/>
-        <location line="+32"/>
-        <source>Dividing a value of type %1 by %2 (not-a-number) is not allowed.</source>
-        <translation type="unfinished">型 %1 を非数 %2 (NaN) で除すことはできません。</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 type="unfinished">型 %1 を%2 または %3 (正または負のゼロ) で除することはできません。</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 type="unfinished">型 %1 を %2 または %3 (正または負のゼロ)で乗ずることはできません。</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 type="unfinished">型 %1 は有効な論理型(bool)ではありません。</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>
-        <translatorcomment>??</translatorcomment>
-        <translation type="unfinished">論理型は、論理型以外の複数の値からなる計算によって求めることはできません。</translation>
-    </message>
-    <message>
-        <location filename="../src/xmlpatterns/data/qderivedinteger_p.h" line="+402"/>
-        <source>Value %1 of type %2 exceeds maximum (%3).</source>
-        <translation type="unfinished">型 %2 の値 %1 は、上限 (%3) を越えています。</translation>
-    </message>
-    <message>
-        <location line="+9"/>
-        <source>Value %1 of type %2 is below minimum (%3).</source>
-        <translation type="unfinished">型 %2 の値 %1 は、下限 (%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 type="unfinished">型 %1 の値は偶数個の十進数文字を必要とします。しかし、%2 はそうではありません。</translation>
-    </message>
-    <message>
-        <location line="+19"/>
-        <source>%1 is not valid as a value of type %2.</source>
-        <translation type="unfinished">型 %2 に対して、値 %1 は有効ではありません。</translation>
-    </message>
-    <message>
-        <location filename="../src/xmlpatterns/expr/qapplytemplate.cpp" line="+119"/>
-        <source>Ambiguous rule match.</source>
-        <translation type="unfinished">曖昧なルールにマッチしました。</translation>
-    </message>
-    <message>
-        <location filename="../src/xmlpatterns/expr/qarithmeticexpression.cpp" line="+207"/>
-        <source>Operator %1 cannot be used on type %2.</source>
-        <translation type="unfinished">型 %2 に対して、オペレータ %1 は使用できません。</translation>
-    </message>
-    <message>
-        <location line="+17"/>
-        <source>Operator %1 cannot be used on atomic values of type %2 and %3.</source>
-        <translation type="unfinished">アトミックな型 %2 と %3 に対して、オペレータ %1 は使用できません。</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>
-        <translatorcomment>computed attrib. ってなんてやくすのが適当かな。</translatorcomment>
-        <translation type="unfinished">結合された属性に対する名前空間のURIとして、%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 type="unfinished">結合された属性の名前空間URI %1 は、ローカルな名前である %2 と併用できません。</translation>
-    </message>
-    <message>
-        <location filename="../src/xmlpatterns/expr/qcastas.cpp" line="+88"/>
-        <source>Type error in cast, expected %1, received %2.</source>
-        <translation type="unfinished">型変換時のエラーです。望んでいた %1 ではなく、%2 になりました。</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 type="unfinished">%1 またはそれを継承している型への型変換においては、元の値の型は同じ型か、リテラルな文字列である必要があります。型 %2 は許可されていません。</translation>
-    </message>
-    <message>
-        <location filename="../src/xmlpatterns/expr/qcastingplatform.cpp" line="+134"/>
-        <source>No casting is possible with %1 as the target type.</source>
-        <translation type="unfinished">目標とする型に %1 を型変換することはできません。</translation>
-    </message>
-    <message>
-        <location line="+15"/>
-        <source>It is not possible to cast from %1 to %2.</source>
-        <translation type="unfinished">型 %1 を型 %2 に型変換することはできません。</translation>
-    </message>
-    <message>
-        <location line="+27"/>
-        <source>Casting to %1 is not possible because it is an abstract type, and can therefore never be instantiated.</source>
-        <translation type="unfinished">型 %1 への型変換はできません。抽象型であり、インスタンス化することができないからです。</translation>
-    </message>
-    <message>
-        <location line="+23"/>
-        <source>It&apos;s not possible to cast the value %1 of type %2 to %3</source>
-        <translation type="unfinished">型 %2 の値 %1 を、型 %3 に型変換することはできません</translation>
-    </message>
-    <message>
-        <location line="+8"/>
-        <source>Failure when casting from %1 to %2: %3</source>
-        <translation type="unfinished">%1 を %2 に型変換することができません: %3</translation>
-    </message>
-    <message>
-        <location filename="../src/xmlpatterns/expr/qcommentconstructor.cpp" line="+67"/>
-        <source>A comment cannot contain %1</source>
-        <translation type="unfinished">コメントが %1 を含むことはできません</translation>
-    </message>
-    <message>
-        <location line="+6"/>
-        <source>A comment cannot end with a %1.</source>
-        <translation type="unfinished">コメントは %1 で終了することはできません。</translation>
-    </message>
-    <message>
-        <location filename="../src/xmlpatterns/expr/qcomparisonplatform.cpp" line="+167"/>
-        <source>No comparisons can be done involving the type %1.</source>
-        <translation type="unfinished">型 %1 に対して比較を行うことはできません。</translation>
-    </message>
-    <message>
-        <location line="+14"/>
-        <source>Operator %1 is not available between atomic values of type %2 and %3.</source>
-        <translation type="unfinished">オペレータ %1 は、アトミックな型である %2 と %3 には適用できません。</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 type="unfinished">名前空間のスントラクトにおいて、空白の文字列を名前空間の値として使用することはできません。</translation>
-    </message>
-    <message>
-        <location line="+11"/>
-        <source>The prefix must be a valid %1, which %2 is not.</source>
-        <translation type="unfinished">プレフィックスは %1 でなければなりません。%2 は無効です。</translation>
-    </message>
-    <message>
-        <location line="+14"/>
-        <source>The prefix %1 cannot be bound.</source>
-        <translation type="unfinished">プレフィックス %1 はバウンドできません。</translation>
-    </message>
-    <message>
-        <location line="+10"/>
-        <source>Only the prefix %1 can be bound to %2 and vice versa.</source>
-        <translation type="unfinished">プレフィックス %1 は、%2 にのみバウンドできます。逆も同じです。</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 type="unfinished">ドキュメントノードの子として属性ノードを指定することはできません。属性 %1 は誤った場所にあります。</translation>
-    </message>
-    <message>
-        <location filename="../src/xmlpatterns/expr/qevaluationcache.cpp" line="+117"/>
-        <source>Circularity detected</source>
-        <translation type="unfinished">循環を検出しました</translation>
-    </message>
-    <message>
-        <location filename="../src/xmlpatterns/expr/qexpressionfactory.cpp" line="+169"/>
-        <source>A library module cannot be evaluated directly. It must be imported from a main module.</source>
-        <translation type="unfinished">ライブラリモジュールを直接評価することはできません。メインモジュールからインポートする必要があります。</translation>
-    </message>
-    <message>
-        <location line="+40"/>
-        <source>No template by name %1 exists.</source>
-        <translation type="unfinished">テンプレート名 %1 は存在しません。</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 type="unfinished">型 %1 は述部として使用できません。数値型か、論理型である必要があります。</translation>
-    </message>
-    <message>
-        <location line="+32"/>
-        <source>A positional predicate must evaluate to a single numeric value.</source>
-        <translatorcomment>positional?</translatorcomment>
-        <translation type="unfinished">述部は評価されたとき、単一の数値になるようにしなければなりません。</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 type="unfinished">ターゲットとしている名前は、%1 であってはなりません。%2 は無効です。</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 type="unfinished">%1 はターゲットとして無効です。%2 である必要があります。例えば &quot;%3&quot; のようにです。</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 type="unfinished">バスの末端であるリーフは、単一のノードかアトミックな値である必要があります。複数の型の組み合わせであってはいけません。</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 type="unfinished">処理中のデータは、以下の文字列を含んでいてはなりません: %1</translation>
-    </message>
-    <message>
-        <location filename="../src/xmlpatterns/expr/qqnameconstructor.cpp" line="+82"/>
-        <source>No namespace binding exists for the prefix %1</source>
-        <translation type="unfinished">プレフィックス %1 にバインドされたネームスペースがありません</translation>
-    </message>
-    <message>
-        <location filename="../src/xmlpatterns/expr/qqnameconstructor_p.h" line="+156"/>
-        <source>No namespace binding exists for the prefix %1 in %2</source>
-        <translation type="unfinished">%2 におけるプレフィックス %1 にバインディングされたネームスペースが存在しません</translation>
-    </message>
-    <message>
-        <location line="+12"/>
-        <location filename="../src/xmlpatterns/functions/qqnamefns.cpp" line="+69"/>
-        <source>%1 is an invalid %2</source>
-        <translation type="unfinished">型 %2 に対し、値 %1 は無効です</translation>
-    </message>
-    <message>
-        <location filename="../src/xmlpatterns/expr/qtemplate.cpp" line="+74"/>
-        <source>The parameter %1 is passed, but no corresponding %2 exists.</source>
-        <translation type="unfinished">パラメータ %1 を処理しました。しかし、対応する %2 が存在しません。</translation>
-    </message>
-    <message>
-        <location line="+71"/>
-        <source>The parameter %1 is required, but no corresponding %2 is supplied.</source>
-        <translation type="unfinished">パメータ %1 が必要です。しかし、対応する %2 がありません。</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 type="unfinished">
-            <numerusform>%1 は、最大で %n 個の引数をとることができます。%2 は無効です。</numerusform>
-        </translation>
-    </message>
-    <message numerus="yes">
-        <location line="+11"/>
-        <source>%1 requires at least %n argument(s). %2 is therefore invalid.</source>
-        <translation type="unfinished">
-            <numerusform>%1 は、少くとも %n 個の引数を必要とします。%2 は無効です。</numerusform>
-        </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 type="unfinished">%1 への最初の引数は、型 %2 であってはなりません。数値型、xs:yerMonthDuration、xs:dayTimeDurationである必要があります。</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 type="unfinished">%1 への最初の引数は、型 %2 であってはなりません。%3, %4, %5 のいずれかである必要があります。</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 type="unfinished">%1 への二つ目の引数は、型 %2 であってはなりません。%3, %4, %5 のいずれかである必要があります。</translation>
-    </message>
-    <message>
-        <location filename="../src/xmlpatterns/functions/qassemblestringfns.cpp" line="+88"/>
-        <source>%1 is not a valid XML 1.0 character.</source>
-        <translation type="unfinished">%1 は XML 1.0 において有効な文字ではありません。</translation>
-    </message>
-    <message>
-        <location filename="../src/xmlpatterns/functions/qcomparingaggregator.cpp" line="+197"/>
-        <source>The first argument to %1 cannot be of type %2.</source>
-        <translation type="unfinished">%1 への最初の引数は、型 %2 であってはなりません。</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 type="unfinished">%1 への二つ目の引数のルートノードは、ドキュメントノードでなければなりません。しかし、%2 はドキュメントノードではありません。</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>
-        <translatorcomment>ゾーンオフセットってなに? xmlにそんなのあったっけ?</translatorcomment>
-        <translation type="unfinished">もし二つの値がゾーンオフセットをもつ場合、両者は同じゾーンオフセットでなければなりません。%1 と %2 は同一ではありません。</translation>
-    </message>
-    <message>
-        <location filename="../src/xmlpatterns/functions/qerrorfn.cpp" line="+61"/>
-        <source>%1 was called.</source>
-        <translation type="unfinished">%1 が呼ばれました。</translation>
-    </message>
-    <message>
-        <location filename="../src/xmlpatterns/functions/qpatternmatchingfns.cpp" line="+94"/>
-        <source>%1 must be followed by %2 or %3, not at the end of the replacement string.</source>
-        <translation type="unfinished">%1 の後には、%2 か %3 が続かなければなりません。</translation>
-    </message>
-    <message>
-        <location line="+39"/>
-        <source>In the replacement string, %1 must be followed by at least one digit when not escaped.</source>
-        <translation type="unfinished">置換操作において、%1 には少くとも一文字以上の数値が続く必要があります(エスケープされている場合を除く)。</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 type="unfinished">置換操作において、%1 はそれ自身または %2 をエスケープする為にのみ使用できます。%3 に対しては使用できません</translation>
-    </message>
-    <message>
-        <location filename="../src/xmlpatterns/functions/qpatternplatform.cpp" line="+92"/>
-        <source>%1 matches newline characters</source>
-        <translation type="unfinished">%1 は改行文字(列)にマッチしました</translation>
-    </message>
-    <message>
-        <location line="+4"/>
-        <source>%1 and %2 match the start and end of a line.</source>
-        <translation type="unfinished">%1 と %2 は、行の先頭と末尾にマッチしました。</translation>
-    </message>
-    <message>
-        <location line="+6"/>
-        <source>Matches are case insensitive</source>
-        <translation type="unfinished">マッチは大文字小文字を区別しません</translation>
-    </message>
-    <message>
-        <location line="+4"/>
-        <source>Whitespace characters are removed, except when they appear in character classes</source>
-        <translatorcomment>CDATA?</translatorcomment>
-        <translation type="unfinished">空白文字は削除されました。ただし、キャラクタークラスに属するものは除きます</translation>
-    </message>
-    <message>
-        <location line="+99"/>
-        <source>%1 is an invalid regular expression pattern: %2</source>
-        <translation type="unfinished">%1 は有効な正規表現ではありません。: %2</translation>
-    </message>
-    <message>
-        <location line="+30"/>
-        <source>%1 is an invalid flag for regular expressions. Valid flags are:</source>
-        <translation type="unfinished">%1 は正規表現において無効なフラグです。使用可能なフラグは次の通りです:</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 type="unfinished">もし、最初の引数が空白からなる文字列か、長さが0 (名前空間をともなわない)である場合、プレフィックスを指定することはできません。しかし、プレフィックスとして %1 が指定されています。</translation>
-    </message>
-    <message>
-        <location filename="../src/xmlpatterns/functions/qsequencefns.cpp" line="+346"/>
-        <source>It will not be possible to retrieve %1.</source>
-        <translation type="unfinished">%1 を取得することはできないかもしれません。</translation>
-    </message>
-    <message>
-        <location filename="../src/xmlpatterns/functions/qsequencegeneratingfns.cpp" line="+279"/>
-        <source>The default collection is undefined</source>
-        <translation type="unfinished">デフォルトのコレクションが定義されていません</translation>
-    </message>
-    <message>
-        <location line="+13"/>
-        <source>%1 cannot be retrieved</source>
-        <translation type="unfinished">%1 を取得できません</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>
-        <translatorcomment>つまり、空白の文字です、はどうでもいいよね。</translatorcomment>
-        <translation type="unfinished">正規化された表現 %1 はサポートされていません。サポートされている表現は、%2, %3, %4, %5 のみです。</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 type="unfinished">ゾーンオフセットは、%1 から %2 の範囲である必要があります(境界を含む)。%3 は範囲外です。</translation>
-    </message>
-    <message>
-        <location line="+12"/>
-        <source>%1 is not a whole number of minutes.</source>
-        <translation type="unfinished">%1 は、分を現す値ではありません。</translation>
-    </message>
-    <message>
-        <location filename="../src/xmlpatterns/functions/qunparsedtextfn.cpp" line="+65"/>
-        <source>The URI cannot have a fragment</source>
-        <translation type="unfinished">この URI はフラグメントをもつことはできません</translation>
-    </message>
-    <message>
-        <location filename="../src/xmlpatterns/janitors/qcardinalityverifier.cpp" line="+58"/>
-        <source>Required cardinality is %1; got cardinality %2.</source>
-        <translation type="unfinished">カーディナリティ %1 が必要です。%2 ではありません。</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 type="unfinished">アイテム %1 は、要求された型 %2 にマッチしません。</translation>
-    </message>
-    <message>
-        <location filename="../src/xmlpatterns/parser/qmaintainingreader.cpp" line="+183"/>
-        <source>Attribute %1 cannot appear on the element %2. Only the standard attributes can appear.</source>
-        <translation type="unfinished">エレメント %2 に属性 %1 を指定することはできません。標準の属性のみが許可されています。</translation>
-    </message>
-    <message>
-        <location line="+6"/>
-        <source>Attribute %1 cannot appear on the element %2. Only %3 is allowed, and the standard attributes.</source>
-        <translation type="unfinished">エレメント %2 に属性 %1 を指定することはできません。%3 と標準の属性のみが許可されています。</translation>
-    </message>
-    <message>
-        <location line="+8"/>
-        <source>Attribute %1 cannot appear on the element %2. Allowed is %3, %4, and the standard attributes.</source>
-        <translation type="unfinished">エレメント %2 に属性 %1 を指定することはできません。%3, %4 と標準の属性のみが許可されています。</translation>
-    </message>
-    <message>
-        <location line="+9"/>
-        <source>Attribute %1 cannot appear on the element %2. Allowed is %3, and the standard attributes.</source>
-        <translation type="unfinished">エレメント %2 に %1 は指定できません。%3 と標準の属性のみが指定できます。</translation>
-    </message>
-    <message>
-        <location line="+13"/>
-        <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="unfinished">XSLT エレメントに対するXSLT属性は、名前空間がnullでなければなりません。%1 は使用できません。</translation>
-    </message>
-    <message>
-        <location line="+12"/>
-        <source>The attribute %1 must appear on element %2.</source>
-        <translation type="unfinished">属性 %1 は、エレメント %2 にのみ記述できます。</translation>
-    </message>
-    <message>
-        <location line="+8"/>
-        <source>The element with local name %1 does not exist in XSL-T.</source>
-        <translation type="unfinished">ローカル名 %1 のエレメントは、XSLTに存在しません。</translation>
-    </message>
-    <message>
-        <location filename="../src/xmlpatterns/parser/qparsercontext.cpp" line="+93"/>
-        <source>The variable %1 is unused</source>
-        <translation type="unfinished">値 %1 は使用されませんでした</translation>
-    </message>
-    <message>
-        <location filename="../src/xmlpatterns/parser/qquerytransformparser.cpp" line="+330"/>
-        <source>A construct was encountered which only is allowed in XQuery.</source>
-        <translation type="unfinished">XQuery でのみ許可されている construct に遭遇しました。</translation>
-    </message>
-    <message>
-        <location line="+49"/>
-        <location line="+7253"/>
-        <source>%1 is an unknown schema type.</source>
-        <translation type="unfinished">%1 はサポートされていないスキーマのタイプです。</translation>
-    </message>
-    <message>
-        <location line="-7184"/>
-        <source>A template by name %1 has already been declared.</source>
-        <translation type="unfinished">テンプレート名 &apos;%1&apos; は、既に宣言されています。</translation>
-    </message>
-    <message>
-        <location line="+26"/>
-        <source>%1 is not a valid numeric literal.</source>
-        <translation type="unfinished">%1 は数値リテラルとして無効です。</translation>
-    </message>
-    <message>
-        <location line="+187"/>
-        <source>Only one %1 declaration can occur in the query prolog.</source>
-        <translation type="unfinished">クェリーのプロローグでは、%1 は一回のみ宣言できます。</translation>
-    </message>
-    <message>
-        <location line="+188"/>
-        <source>The initialization of variable %1 depends on itself</source>
-        <translatorcomment>再帰?</translatorcomment>
-        <translation type="unfinished">値 %1 の初期化は、それ自身に依存しています</translation>
-    </message>
-    <message>
-        <location line="+63"/>
-        <source>No variable by name %1 exists</source>
-        <translation type="unfinished">変数 %1 は存在しません</translation>
-    </message>
-    <message>
-        <location line="+2841"/>
-        <source>Version %1 is not supported. The supported XQuery version is 1.0.</source>
-        <translation type="unfinished">バージョン %1 はサポートされていません。XQuery バージョン 1.0 のみサポートされています。</translation>
-    </message>
-    <message>
-        <location line="+16"/>
-        <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 type="unfinished">エンコーディング &apos;%1&apos; は無効です。ラテン文字 (空白を除く) からなるもので、正規表現 &apos;%2&apos; にマッチするもののみ使用できます。</translation>
-    </message>
-    <message>
-        <location line="+55"/>
-        <source>No function with signature %1 is available</source>
-        <translation type="unfinished">シグネチャ %1 をもつ関数がみつかりません</translation>
-    </message>
-    <message>
-        <location line="+72"/>
-        <location line="+10"/>
-        <source>A default namespace declaration must occur before function, variable, and option declarations.</source>
-        <translation type="unfinished">標準の名前空間の宣言は、関数、変数、オプションの宣言の前にしなければなりません。</translation>
-    </message>
-    <message>
-        <location line="+10"/>
-        <source>Namespace declarations must occur before function, variable, and option declarations.</source>
-        <translation type="unfinished">名前空間の宣言は、関数、変数、オプションの宣言の前にしなければなりません。</translation>
-    </message>
-    <message>
-        <location line="+11"/>
-        <source>Module imports must occur before function, variable, and option declarations.</source>
-        <translation type="unfinished">モジュールのインポートは、関数、変数、オプションの宣言の前にしなければなりません。</translation>
-    </message>
-    <message>
-        <location line="+102"/>
-        <source>The keyword %1 cannot occur with any other mode name.</source>
-        <translation type="unfinished">キーワード %1 は、他の名をともなって使用することはできません。</translation>
-    </message>
-    <message>
-        <location line="+29"/>
-        <source>The value of attribute %1 must of type %2, which %3 isn&apos;t.</source>
-        <translation type="unfinished">属性 &apos;%1&apos; の値として &apos;%3&apos; が指定されましたが、型 &apos;%2&apos; でなければなりません。</translation>
-    </message>
-    <message>
-        <location line="+69"/>
-        <source>It is not possible to redeclare prefix %1.</source>
-        <translation type="unfinished">プレフィックス &apos;%1&apos; を再定義することはできません。</translation>
-    </message>
-    <message>
-        <location line="+6"/>
-        <source>The prefix %1 can not be bound. By default, it is already bound to the namespace %2.</source>
-        <translation type="unfinished">プレフィックス &apos;%1&apos; はバウンドできません。デフォルトでは、それは既に名前空間 &apos;%2&apos; にバウンドされています。</translation>
-    </message>
-    <message>
-        <location line="+12"/>
-        <source>Prefix %1 is already declared in the prolog.</source>
-        <translation type="unfinished">プロローグ部において、プレフィックス &apos;%1&apos; はすでに宣言されています。</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 type="unfinished">オプションの名前はプレフィックスをもたなければなりません。このオプションに対するデフォルトの名前空間は存在しません。</translation>
-    </message>
-    <message>
-        <location line="+171"/>
-        <source>The Schema Import feature is not supported, and therefore %1 declarations cannot occur.</source>
-        <translation type="unfinished">このスキーマのインポート機能は使用できません。また、&apos;%1&apos; 宣言も使用できません。</translation>
-    </message>
-    <message>
-        <location line="+13"/>
-        <source>The target namespace of a %1 cannot be empty.</source>
-        <translation type="unfinished">名前空間 &apos;%1&apos; は、空であってはなりません。</translation>
-    </message>
-    <message>
-        <location line="+8"/>
-        <source>The module import feature is not supported</source>
-        <translation type="unfinished">モジュールインポートの機能はサポートされていません</translation>
-    </message>
-    <message>
-        <location line="+13"/>
-        <source>A variable by name %1 has already been declared.</source>
-        <translation type="unfinished">名前 &apos;%1&apos; の変数は、すでに宣言されています。</translation>
-    </message>
-    <message>
-        <location line="+39"/>
-        <source>No value is available for the external variable by name %1.</source>
-        <translation type="unfinished">外部変数 &apos;%1&apos; の値がみつかりません。</translation>
-    </message>
-    <message>
-        <location line="+96"/>
-        <source>A stylesheet function must have a prefixed name.</source>
-        <translation type="unfinished">スタイルシート関数は、プレフィックス名を持たなければなりません。</translation>
-    </message>
-    <message>
-        <location line="+9"/>
-        <source>The namespace for a user defined function cannot be empty (try the predefined prefix %1 which exists for cases like this)</source>
-        <translation type="unfinished">ユーザ定義の関数の名前空間は、空であってはなりません。(すでに定義されているプレフィックス &apos;%1&apos; が使用できます)</translation>
-    </message>
-    <message>
-        <location line="+9"/>
-        <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 type="unfinished">名前空間 &apos;%1&apos; は予約済です。ユーザ定義の関数では使用することはできません。プレフィックス &apos;%2&apos; が使用できます。</translation>
-    </message>
-    <message>
-        <location line="+12"/>
-        <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 type="unfinished">ライブラリモジュールで使用されている名前空間は、モジュールの名前空間と同一でなければなりません。つまり、&apos;%2&apos; ではなく、&apos;%1&apos; でなければなりません</translation>
-    </message>
-    <message>
-        <location line="+34"/>
-        <source>A function already exists with the signature %1.</source>
-        <translation type="unfinished">シグネチャー &apos;%1&apos; の関数はすでに存在しています。</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 type="unfinished">外部関数はサポートされていません。すべてのサポートされている関数は、外部宣言をすることなく、直接使用することができます</translation>
-    </message>
-    <message>
-        <location line="+37"/>
-        <source>An argument by name %1 has already been declared. Every argument name must be unique.</source>
-        <translation type="unfinished">引数名 &apos;%1&apos; は既に宣言されています。すべての引数名はユニークである必要があります。</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 type="unfinished">パターン一致の内側で関数 &apos;%1&apos; を使用する場合、引数はリテラルな文字列を参照する値でなければなりません。</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 type="unfinished">XSL-T パターンマッチングにおいて、関数 &apos;%1&apos; の最初の引数は、リテラルな文字列でなければなりません。</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>
-        <translatorcomment>variable ref?</translatorcomment>
-        <translation type="unfinished">XSL-T パターンマッチングにおいて、関数 &apos;%1&apos; への最初の引数は、リテラルか変数でなければなりません。</translation>
-    </message>
-    <message>
-        <location line="+9"/>
-        <source>In an XSL-T pattern, function %1 cannot have a third argument.</source>
-        <translation type="unfinished">XSL-T パターンにおいて、関数 &apos;%1&apos; は三つの引数をもつことはできません。</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 type="unfinished">XSL-T パターンマッチングにおいて、関数 &apos;%1&apos; と &apos;%2&apos; のみ使用できます。&apos;%3&apos; は使用できません。</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 type="unfinished">XSL-T パターンにおいて、axis %1 は使用できません。%2 または %3 のみ使用できます。</translation>
-    </message>
-    <message>
-        <location line="+126"/>
-        <source>%1 is an invalid template mode name.</source>
-        <translation type="unfinished">%1 はテンプレートモジュール名として無効です。</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 type="unfinished">for 構文において使用する変数は、場所に関する変数とは異なる必要があります。つまり、&apos;%1&apos; が重複して使用されています。</translation>
-    </message>
-    <message>
-        <location line="+758"/>
-        <source>The Schema Validation Feature is not supported. Hence, %1-expressions may not be used.</source>
-        <translation type="unfinished">スキーマの検証機能はサポートされていません。よって、&apos;%1&apos; 構文は使用できません。</translation>
-    </message>
-    <message>
-        <location line="+39"/>
-        <source>None of the pragma expressions are supported. Therefore, a fallback expression must be present</source>
-        <translation type="unfinished">pragma 構文はサポートされていません。fallback 構文でなければなりません</translation>
-    </message>
-    <message>
-        <location line="+267"/>
-        <source>Each name of a template parameter must be unique; %1 is duplicated.</source>
-        <translation type="unfinished">テンプレートパラメータ名はユニークである必要があります。&apos;%1&apos; は重複しています。</translation>
-    </message>
-    <message>
-        <location line="+129"/>
-        <source>The %1-axis is unsupported in XQuery</source>
-        <translation type="unfinished">XQuery において、%1 axis はサポートされていません</translation>
-    </message>
-    <message>
-        <location line="+286"/>
-        <source>No function by name %1 is available.</source>
-        <translation type="unfinished">関数名 &apos;%1&apos; はみつかりません。</translation>
-    </message>
-    <message>
-        <location line="+102"/>
-        <source>The namespace URI cannot be the empty string when binding to a prefix, %1.</source>
-        <translation type="unfinished">プレフィックス &apos;%1&apos; にバインディングする名前空間の URI は、空であってはなりません。</translation>
-    </message>
-    <message>
-        <location line="+7"/>
-        <source>%1 is an invalid namespace URI.</source>
-        <translation type="unfinished">%1 は名前空間 URI として無効です。</translation>
-    </message>
-    <message>
-        <location line="+6"/>
-        <source>It is not possible to bind to the prefix %1</source>
-        <translation type="unfinished">プレフィックス %1 にバインドすることはできません</translation>
-    </message>
-    <message>
-        <location line="+7"/>
-        <source>Namespace %1 can only be bound to %2 (and it is, in either case, pre-declared).</source>
-        <translatorcomment>?</translatorcomment>
-        <translation type="unfinished">名前空間 %1 は %2 にのみバウンドできます。</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 type="unfinished">プリフィックス %1 は %2 にのみバウンドできます。</translation>
-    </message>
-    <message>
-        <location line="+15"/>
-        <source>Two namespace declaration attributes have the same name: %1.</source>
-        <translation type="unfinished">二つの名前空間宣言の属性が、同じ名前 &apos;%1&apos; をもっています。</translation>
-    </message>
-    <message>
-        <location line="+89"/>
-        <source>The namespace URI must be a constant and cannot use enclosed expressions.</source>
-        <translation type="unfinished">名前空間 URI は、constantでなければなりません。式を含むことはできません。</translation>
-    </message>
-    <message>
-        <location line="+16"/>
-        <source>An attribute by name %1 has already appeared on this element.</source>
-        <translation type="unfinished">属性名 &apos;%1&apos; は、すでにこのエレメントで使用されています。</translation>
-    </message>
-    <message>
-        <location line="+61"/>
-        <source>A direct element constructor is not well-formed. %1 is ended with %2.</source>
-        <translation type="unfinished">直積的な指定のエレメントがwell formedではありません。&apos;%1&apos; が、&apos;%2&apos; で終わっています。</translation>
-    </message>
-    <message>
-        <location line="+458"/>
-        <source>The name %1 does not refer to any schema type.</source>
-        <translation type="unfinished">名前 &apos;%1&apos; は、なんのスキーマタイプも参照していません。</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 type="unfinished">&apos;%1&apos; は complex 型です。complex 型への型変換はできません。しかし、アトミックな型である &apos;%2&apos; への変換はできます。</translation>
-    </message>
-    <message>
-        <location line="+9"/>
-        <source>%1 is not an atomic type. Casting is only possible to atomic types.</source>
-        <translation type="unfinished">&apos;%1&apos; はアトミックな型ではありません。型変換はアトミックな型に対してのみ可能です。</translation>
-    </message>
-    <message>
-        <location line="+76"/>
-        <source>%1 is not a valid name for a processing-instruction.</source>
-        <translation type="unfinished">処理指定において、&apos;%1&apos; は無効です。</translation>
-    </message>
-    <message>
-        <location line="+69"/>
-        <location line="+71"/>
-        <source>%1 is not in the in-scope attribute declarations. Note that the schema import feature is not supported.</source>
-        <translation type="unfinished">&apos;%1&apos; は、スコープ属性宣言ではありません。スキーマインポート機能はサポートされていません。</translation>
-    </message>
-    <message>
-        <location line="+48"/>
-        <source>The name of an extension expression must be in a namespace.</source>
-        <translation type="unfinished">拡張式 (extension expression) の名前は、名前空間の中になければなりません。</translation>
-    </message>
-    <message>
-        <location filename="../src/xmlpatterns/parser/qxslttokenizer.cpp" line="+519"/>
-        <source>Element %1 is not allowed at this location.</source>
-        <translation type="unfinished">この場所にエレメント &apos;%1&apos; をおくことは許されていません。</translation>
-    </message>
-    <message>
-        <location line="+9"/>
-        <source>Text nodes are not allowed at this location.</source>
-        <translation type="unfinished">この場所にテキストノードをおくことは許されていません。</translation>
-    </message>
-    <message>
-        <location line="+20"/>
-        <source>Parse error: %1</source>
-        <translation type="unfinished">パースエラー: %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 type="unfinished">XSL-T バージョン属性の値は、&apos;%1&apos; 型でなければなりません。&apos;%2&apos; はそうではありません。</translation>
-    </message>
-    <message>
-        <location line="+20"/>
-        <source>Running an XSL-T 1.0 stylesheet with a 2.0 processor.</source>
-        <translation type="unfinished">XSL-T 1.0 のスタイルシートを 2.0 のプロセッサで使用します。</translation>
-    </message>
-    <message>
-        <location line="+108"/>
-        <source>Unknown XSL-T attribute %1.</source>
-        <translation type="unfinished">未知の XSL-T 属性 %1 があります。</translation>
-    </message>
-    <message>
-        <location line="+23"/>
-        <source>Attribute %1 and %2 are mutually exclusive.</source>
-        <translation type="unfinished">属性 &apos;%1&apos; と &apos;%2&apos; は排他的にのみ使用できます。</translation>
-    </message>
-    <message>
-        <location line="+166"/>
-        <source>In a simplified stylesheet module, attribute %1 must be present.</source>
-        <translation type="unfinished">simplified stylesheet モジュールにおいては、属性 &apos;%1&apos; を指定されなければなりません。</translation>
-    </message>
-    <message>
-        <location line="+72"/>
-        <source>If element %1 has no attribute %2, it cannot have attribute %3 or %4.</source>
-        <translation type="unfinished">エレメント &apos;%1&apos; が属性 &apos;%2&apos; を持たない場合は、属性 &apos;%3&apos; や &apos;%4&apos; を使用することはできません。</translation>
-    </message>
-    <message>
-        <location line="+9"/>
-        <source>Element %1 must have at least one of the attributes %2 or %3.</source>
-        <translation type="unfinished">エレメント &apos;%1&apos; は、属性 &apos;%2&apos; か &apos;%3&apos; のいずれかを持たなければなりません。</translation>
-    </message>
-    <message>
-        <location line="+28"/>
-        <source>At least one mode must be specified in the %1-attribute on element %2.</source>
-        <translation type="unfinished">エレメント &apos;%2&apos; において、&apos;%1&apos; 属性は少くとも一つのモードを指定しなければなりません。</translation>
-    </message>
-    <message>
-        <location line="+123"/>
-        <source>Element %1 must come last.</source>
-        <translation type="unfinished">エレメント %1 は最後になければなりません。</translation>
-    </message>
-    <message>
-        <location line="+24"/>
-        <source>At least one %1-element must occur before %2.</source>
-        <translation type="unfinished">%2 の前に、少くとも一つは %1 エレメントが存在しなければなりません。</translation>
-    </message>
-    <message>
-        <location line="+7"/>
-        <source>Only one %1-element can appear.</source>
-        <translation type="unfinished">%1 エレメントは一つのみ存在しなければなりません。</translation>
-    </message>
-    <message>
-        <location line="+31"/>
-        <source>At least one %1-element must occur inside %2.</source>
-        <translation type="unfinished">%2 の内側には、少くとも一つの &apos;%1&apos; エレメントが存在しなければなりません。</translation>
-    </message>
-    <message>
-        <location line="+58"/>
-        <source>When attribute %1 is present on %2, a sequence constructor cannot be used.</source>
-        <translation type="unfinished">%2 に属性 %1 がある場合、sequence constructor は使用できません。</translation>
-    </message>
-    <message>
-        <location line="+13"/>
-        <source>Element %1 must have either a %2-attribute or a sequence constructor.</source>
-        <translation type="unfinished">エレメント %1 には、%2 属性またはsequence constructorがなければなりません。</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 type="unfinished">パラメータが要求されているときには、デフォルトの値は、%1 属性または sequence constructor によって指定されていてはなりません。</translation>
-    </message>
-    <message>
-        <location line="+270"/>
-        <source>Element %1 cannot have children.</source>
-        <translation type="unfinished">エレメント %1 は、子要素を持つことができません。</translation>
-    </message>
-    <message>
-        <location line="+434"/>
-        <source>Element %1 cannot have a sequence constructor.</source>
-        <translation type="unfinished">エレメント %1 は、sequence constructor を含むことができません。</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 type="unfinished">%2 が %3 の子要素であるときは、属性 %1 を使用してはなりません。</translation>
-    </message>
-    <message>
-        <location line="+15"/>
-        <source>A parameter in a function cannot be declared to be a tunnel.</source>
-        <translation type="unfinished">関数へのパラメータは、トンネルであってはなりません。</translation>
-    </message>
-    <message>
-        <location line="+149"/>
-        <source>This processor is not Schema-aware and therefore %1 cannot be used.</source>
-        <translation type="unfinished">この処理系は、Schema-aware ではありません。よって、%1 は使用できません。</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 type="unfinished">トップレベルのスタイルシートのエレメントは、non-nullな名前空間を持っていなければなりません。しかし、%1 はそうではありません。</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 type="unfinished">エレメント %2 の属性 %1 の値は、%3 または %4 でなければなりません。%5 は異なります。</translation>
-    </message>
-    <message>
-        <location line="+20"/>
-        <source>Attribute %1 cannot have the value %2.</source>
-        <translation type="unfinished">属性 %1 に、値 %2 を指定することはできません。</translation>
-    </message>
-    <message>
-        <location line="+58"/>
-        <source>The attribute %1 can only appear on the first %2 element.</source>
-        <translation type="unfinished">属性 %1 は、最初の %2 エレメントにのみ指定できます。</translation>
-    </message>
-    <message>
-        <location line="+99"/>
-        <source>At least one %1 element must appear as child of %2.</source>
-        <translation type="unfinished">%2 の子要素としては、少くとも一つは %1 エレメントがなければなりません。</translation>
-    </message>
-    <message>
-        <location filename="../src/xmlpatterns/type/qcardinality.cpp" line="+55"/>
-        <source>empty</source>
-        <translation type="unfinished">空</translation>
-    </message>
-    <message>
-        <location line="+2"/>
-        <source>zero or one</source>
-        <translation type="unfinished">ゼロまたは一つ</translation>
-    </message>
-    <message>
-        <location line="+2"/>
-        <source>exactly one</source>
-        <translation type="unfinished">厳密に一つ</translation>
-    </message>
-    <message>
-        <location line="+2"/>
-        <source>one or more</source>
-        <translation type="unfinished">一つまたは複数</translation>
-    </message>
-    <message>
-        <location line="+2"/>
-        <source>zero or more</source>
-        <translation type="unfinished">ゼロまたはそれ以上</translation>
-    </message>
-    <message>
-        <location filename="../src/xmlpatterns/type/qtypechecker.cpp" line="+63"/>
-        <source>Required type is %1, but %2 was found.</source>
-        <translation type="unfinished">要求されている型は %1 ですが、 %2 があります。</translation>
-    </message>
-    <message>
-        <location line="+44"/>
-        <source>Promoting %1 to %2 may cause loss of precision.</source>
-        <translation type="unfinished">%1 を %2 に変換する際に、精度のロスが生じます。</translation>
-    </message>
-    <message>
-        <location line="+49"/>
-        <source>The focus is undefined.</source>
-        <translation type="unfinished">フォーカスが定義されていません。</translation>
-    </message>
-    <message>
-        <location filename="../src/xmlpatterns/utils/qoutputvalidator.cpp" line="+86"/>
-        <source>It&apos;s not possible to add attributes after any other kind of node.</source>
-        <translation type="unfinished">他の種類のノードの中では、属性を追加することはできません。</translation>
-    </message>
-    <message>
-        <location line="+7"/>
-        <source>An attribute by name %1 has already been created.</source>
-        <translation type="unfinished">名前 &apos;%1&apos; の属性は、すでに生成されています。</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 type="unfinished">UNICODE Codepoint Collection のみ使用できます(%1)。 %2 はサポートされていません。</translation>
-    </message>
-</context>
-<context>
     <name>QPluginLoader</name>
     <message>
-        <location filename="../src/corelib/plugin/qpluginloader.cpp" line="+24"/>
         <source>Unknown error</source>
-        <translation>不明なエラー</translation>
-    </message>
-    <message>
-        <location line="-68"/>
+        <translation>未知のエラー</translation>
+    </message>
+    <message>
         <source>The plugin was not loaded.</source>
         <translation>そのプラグインはロードされていません。</translation>
     </message>
@@ -4873,528 +4238,344 @@
 <context>
     <name>QPrintDialog</name>
     <message>
-        <source>Page size:</source>
-        <translation type="obsolete">ページサイズ:</translation>
-    </message>
-    <message>
-        <source>Orientation:</source>
-        <translation type="obsolete">方向:</translation>
-    </message>
-    <message>
-        <source>Paper source:</source>
-        <translation type="obsolete">給紙装置:</translation>
-    </message>
-    <message>
-        <location filename="../src/gui/dialogs/qprintdialog_win.cpp" line="+268"/>
         <source>OK</source>
         <translation>OK</translation>
     </message>
     <message>
-        <source>Cancel</source>
-        <translation type="obsolete">キャンセル</translation>
-    </message>
-    <message>
-        <source>Portrait</source>
-        <translation type="obsolete">縦</translation>
-    </message>
-    <message>
-        <source>Landscape</source>
-        <translation type="obsolete">横</translation>
-    </message>
-    <message>
-        <location filename="../src/gui/painting/qprinterinfo_unix.cpp" line="+98"/>
         <source>locally connected</source>
         <translation>ローカルに接続しています</translation>
     </message>
     <message>
-        <location line="+23"/>
-        <location line="+225"/>
         <source>Aliases: %1</source>
         <translation>エイリアス: %1</translation>
     </message>
     <message>
-        <location line="+223"/>
-        <location line="+199"/>
         <source>unknown</source>
         <translation>不明</translation>
     </message>
     <message>
-        <source>Print in color if available</source>
-        <translation type="obsolete">可能であればカラーで印刷</translation>
-    </message>
-    <message>
-        <source>Print to file</source>
-        <translation type="obsolete">ファイルに出力:</translation>
-    </message>
-    <message>
-        <source>Browse</source>
-        <translation type="obsolete">参照...</translation>
-    </message>
-    <message>
-        <location filename="../src/gui/dialogs/qprintdialog_qws.cpp" line="+375"/>
         <source>Print all</source>
         <translation>すべて印刷</translation>
     </message>
     <message>
-        <source>Selection</source>
-        <translation type="obsolete">選択した部分を印刷</translation>
-    </message>
-    <message>
-        <location line="+2"/>
         <source>Print range</source>
         <translation>印刷範囲</translation>
     </message>
     <message>
-        <source>Pages from</source>
-        <translation type="obsolete">先頭のページ:</translation>
-    </message>
-    <message>
-        <source>to</source>
-        <translation type="obsolete">末尾のページ:</translation>
-    </message>
-    <message>
-        <source>Print last page first</source>
-        <translation type="obsolete">末尾のページから印刷</translation>
-    </message>
-    <message>
-        <source>Number of copies:</source>
-        <translation type="obsolete">部数:</translation>
-    </message>
-    <message>
-        <source>Paper format</source>
-        <translation type="obsolete">用紙の形式</translation>
-    </message>
-    <message>
-        <location line="-48"/>
         <source>A0 (841 x 1189 mm)</source>
         <translation>A0 (841 x 1189mm)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>A1 (594 x 841 mm)</source>
         <translation>A1 (594 x 841mm)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>A2 (420 x 594 mm)</source>
         <translation>A2 (420 x 594mm)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>A3 (297 x 420 mm)</source>
         <translation>A3 (297 x 420mm)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>A4 (210 x 297 mm, 8.26 x 11.7 inches)</source>
         <translation>A4 (210 x 297mm、8.26 x 11.7インチ)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>A5 (148 x 210 mm)</source>
         <translation>A5 (148 x 210mm)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>A6 (105 x 148 mm)</source>
         <translation>A6 (105 x 148mm)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>A7 (74 x 105 mm)</source>
         <translation>A7 (74 x 105mm)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>A8 (52 x 74 mm)</source>
         <translation>A8 (52 x 74mm)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>A9 (37 x 52 mm)</source>
         <translation>A9 (37 x 52mm)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>B0 (1000 x 1414 mm)</source>
         <translation>B0 (1000 x 1414mm)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>B1 (707 x 1000 mm)</source>
         <translation>B1 (707 x 1000mm)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>B2 (500 x 707 mm)</source>
         <translation>B2 (500 x 707mm)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>B3 (353 x 500 mm)</source>
         <translation>B3 (353 x 500mm)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>B4 (250 x 353 mm)</source>
         <translation>B4 (250 x 353mm)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>B5 (176 x 250 mm, 6.93 x 9.84 inches)</source>
         <translation>B5 (176 x 250mm、6.93 x 9.84インチ)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>B6 (125 x 176 mm)</source>
         <translation>B6 (125 x 176mm)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>B7 (88 x 125 mm)</source>
         <translation>B7 (88 x 125mm)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>B8 (62 x 88 mm)</source>
         <translation>B8 (62 x 88mm)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>B9 (44 x 62 mm)</source>
         <translation>B9 (44 x 62mm)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>B10 (31 x 44 mm)</source>
         <translation>B10 (31 x 44mm)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>C5E (163 x 229 mm)</source>
         <translation>C5E (163 x 229mm)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>DLE (110 x 220 mm)</source>
         <translation>DLE (110 x 220mm)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Executive (7.5 x 10 inches, 191 x 254 mm)</source>
         <translation>Executive (7.5 x 10インチ、191 x 254mm)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Folio (210 x 330 mm)</source>
         <translation>Folio (210 x 330mm)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Ledger (432 x 279 mm)</source>
         <translation>Ledger (432 x 279mm)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Legal (8.5 x 14 inches, 216 x 356 mm)</source>
         <translation>Legal (8.5 x 14インチ、216 x 356mm)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Letter (8.5 x 11 inches, 216 x 279 mm)</source>
         <translation>Letter (8.5 x 11インチ、216 x 279mm)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Tabloid (279 x 432 mm)</source>
         <translation>Tabloid (279 x 432mm)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>US Common #10 Envelope (105 x 241 mm)</source>
         <translation>US Common #10 Envelope (105 x 241mm)</translation>
     </message>
     <message>
-        <source>Print dialog</source>
-        <translation type="obsolete">プリントダイアログ</translation>
-    </message>
-    <message>
-        <source>Size:</source>
-        <translation type="obsolete">サイズ:</translation>
-    </message>
-    <message>
-        <source>Printer</source>
-        <translation type="obsolete">プリンタ</translation>
-    </message>
-    <message>
-        <source>Properties</source>
-        <translation type="obsolete">プロパティ</translation>
-    </message>
-    <message>
-        <source>Printer info:</source>
-        <translation type="obsolete">プリンタ情報:</translation>
-    </message>
-    <message>
-        <source>Copies</source>
-        <translation type="obsolete">印刷部数</translation>
-    </message>
-    <message>
-        <source>Collate</source>
-        <translation type="obsolete">丁合い</translation>
-    </message>
-    <message>
-        <source>Other</source>
-        <translation type="obsolete">その他</translation>
-    </message>
-    <message>
-        <source>Double side printing</source>
-        <translation type="obsolete">両面印刷</translation>
-    </message>
-    <message>
-        <location filename="../src/gui/dialogs/qabstractprintdialog.cpp" line="+110"/>
-        <location line="+13"/>
-        <location filename="../src/gui/dialogs/qprintdialog_win.cpp" line="-2"/>
+        <source>Print current page</source>
+        <translation>現在のページの印刷</translation>
+    </message>
+    <message>
         <source>Print</source>
         <translation>印刷</translation>
     </message>
     <message>
-        <source>File</source>
-        <translation type="obsolete">ファイル</translation>
-    </message>
-    <message>
-        <location filename="../src/gui/dialogs/qprintdialog_unix.cpp" line="-357"/>
         <source>Print To File ...</source>
         <translation>ファイルへ出力...</translation>
     </message>
     <message>
-        <location line="+80"/>
         <source>File %1 is not writable.
 Please choose a different file name.</source>
         <translation>ファイル %1 は書き込み可能ではありません。
 別のファイル名を選んでください。</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>%1 already exists.
 Do you want to overwrite it?</source>
         <translation>%1 はすでに存在します。
 上書きしますか?</translation>
     </message>
     <message>
-        <location filename="../src/gui/dialogs/qprintdialog_qws.cpp" line="-210"/>
         <source>File exists</source>
         <translation>ファイルは既に存在しています</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&lt;qt&gt;Do you want to overwrite it?&lt;/qt&gt;</source>
         <translation>&lt;qt&gt;ファイルを上書きしてもよろしいですか?&lt;/qt&gt;</translation>
     </message>
     <message>
-        <location line="+227"/>
         <source>Print selection</source>
         <translation>選択された範囲を印刷</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>%1 はディレクトリです。
 ファイル名を指定してください。</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>Exclusive</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Folio</source>
         <translation>Folio</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Ledger</source>
         <translation>Ledger</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Legal</source>
         <translation>リーガルサイズ</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Letter</source>
         <translation>レターサイズ</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Tabloid</source>
         <translation>タブロイドサイズ</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>US Common #10 Envelope</source>
         <translation>US標準#10封筒</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Custom</source>
         <translation>カスタム</translation>
     </message>
     <message>
-        <location filename="../src/gui/dialogs/qprintdialog_unix.cpp" line="-524"/>
-        <location line="+68"/>
         <source>&amp;Options &gt;&gt;</source>
         <translation>オプション(&amp;O) &gt;&gt;</translation>
     </message>
     <message>
-        <location line="-63"/>
         <source>&amp;Print</source>
         <translation>印刷(&amp;P)</translation>
     </message>
     <message>
-        <location line="+67"/>
         <source>&amp;Options &lt;&lt;</source>
         <translation>オプション(&amp;O) &lt;&lt;</translation>
     </message>
     <message>
-        <location line="+253"/>
         <source>Print to File (PDF)</source>
         <translation>PDFファイルに出力</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Print to File (Postscript)</source>
         <translation>Postscriptファイルに出力</translation>
     </message>
     <message>
-        <location line="+47"/>
         <source>Local file</source>
         <translation>ローカルファイル</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Write %1 file</source>
         <translation>ファイル %1 に書き込みました</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>
         <translatorcomment>QPrintPropertiesWidgetにFromとToがあってそれを指している</translatorcomment>
         <translation>印刷開始ページ番号は、印刷終了ページ番号より小さくなければなりません。</translation>
@@ -5403,140 +4584,101 @@
 <context>
     <name>QPrintPreviewDialog</name>
     <message>
-        <location filename="../src/gui/dialogs/qabstractpagesetupdialog.cpp" line="+68"/>
-        <location line="+12"/>
         <source>Page Setup</source>
         <translation>ページの設定</translation>
     </message>
     <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>印刷のプレビュー</translation>
     </message>
     <message>
-        <location line="+30"/>
         <source>Next page</source>
         <translation>次のページ</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Previous page</source>
         <translation>前のページ</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>First page</source>
         <translation>最初のページ</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Last page</source>
         <translation>最後のページ</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Fit width</source>
         <translation>幅をあわせる</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Fit page</source>
         <translation>高さをあわせる</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>Zoom in</source>
         <translation>拡大</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Zoom out</source>
         <translation>縮小</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Portrait</source>
         <translation>縦</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Landscape</source>
         <translation>横</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>Show single page</source>
         <translation>一枚のページを表示する</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Show facing pages</source>
         <translation>見開きのページを表示する</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Show overview of all pages</source>
         <translation>すべてのページを表示する</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Print</source>
         <translation>印刷</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Page setup</source>
         <translation>ページの設定</translation>
     </message>
     <message>
         <source>Close</source>
-        <translation type="obsolete">閉じる</translation>
-    </message>
-    <message>
-        <location line="+150"/>
+        <translation>閉じる</translation>
+    </message>
+    <message>
         <source>Export to PDF</source>
         <translation>PDFに出力</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Export to PostScript</source>
         <translation>Postscriptに出力</translation>
     </message>
 </context>
 <context>
-    <name>QPrintPropertiesDialog</name>
-    <message>
-        <source>PPD Properties</source>
-        <translation type="obsolete">印刷プロパティのダイアログのプロパティ</translation>
-    </message>
-    <message>
-        <source>Save</source>
-        <translation type="obsolete">保存</translation>
-    </message>
-    <message>
-        <source>OK</source>
-        <translation type="obsolete">OK</translation>
-    </message>
-</context>
-<context>
     <name>QPrintPropertiesWidget</name>
     <message>
-        <location filename="../src/gui/dialogs/qprintpropertieswidget.ui"/>
         <source>Form</source>
         <translation>書式</translation>
     </message>
     <message>
-        <location/>
         <source>Page</source>
         <translation>ページ</translation>
     </message>
     <message>
-        <location/>
         <source>Advanced</source>
         <translation>高度な設定</translation>
     </message>
@@ -5544,145 +4686,121 @@
 <context>
     <name>QPrintSettingsOutput</name>
     <message>
-        <location filename="../src/gui/dialogs/qprintsettingsoutput.ui"/>
         <source>Form</source>
         <translation>書式</translation>
     </message>
     <message>
-        <location/>
         <source>Copies</source>
         <translation>印刷部数</translation>
     </message>
     <message>
-        <location/>
         <source>Print range</source>
         <translation>印刷範囲</translation>
     </message>
     <message>
-        <location/>
         <source>Print all</source>
         <translation>すべて印刷</translation>
     </message>
     <message>
-        <location/>
         <source>Pages from</source>
         <translation>先頭のページ</translation>
     </message>
     <message>
-        <location/>
         <source>to</source>
         <translation>末尾のページ</translation>
     </message>
     <message>
-        <location/>
         <source>Selection</source>
         <translation>選択した部分を印刷</translation>
     </message>
     <message>
-        <location/>
         <source>Output Settings</source>
         <translation>出力設定</translation>
     </message>
     <message>
-        <location/>
         <source>Copies:</source>
         <translation>印刷部数:</translation>
     </message>
     <message>
-        <location/>
         <source>Collate</source>
         <translation>丁合い</translation>
     </message>
     <message>
-        <location/>
         <source>Reverse</source>
         <translation>逆順</translation>
     </message>
     <message>
-        <location/>
         <source>Options</source>
         <translation>オプション</translation>
     </message>
     <message>
-        <location/>
         <source>Color Mode</source>
         <translation>色</translation>
     </message>
     <message>
-        <location/>
         <source>Color</source>
         <translation>カラー</translation>
     </message>
     <message>
-        <location/>
         <source>Grayscale</source>
         <translation>グレースケール</translation>
     </message>
     <message>
-        <location/>
         <source>Duplex Printing</source>
         <translation>両面印刷</translation>
     </message>
     <message>
-        <location/>
         <source>None</source>
         <translation>なし</translation>
     </message>
     <message>
-        <location/>
         <source>Long side</source>
         <translation>長辺綴じ</translation>
     </message>
     <message>
-        <location/>
         <source>Short side</source>
         <translation>短辺綴じ</translation>
     </message>
+    <message>
+        <source>Current Page</source>
+        <translation>現在のページ</translation>
+    </message>
 </context>
 <context>
     <name>QPrintWidget</name>
     <message>
-        <location filename="../src/gui/dialogs/qprintwidget.ui"/>
         <source>Form</source>
         <translation>書式</translation>
     </message>
     <message>
-        <location/>
         <source>Printer</source>
         <translation>プリンタ</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Name:</source>
         <translation>名前(&amp;N):</translation>
     </message>
     <message>
-        <location/>
         <source>P&amp;roperties</source>
         <translation>プロパティ(&amp;r)</translation>
     </message>
     <message>
-        <location/>
         <source>Location:</source>
         <translation>設置場所:</translation>
     </message>
     <message>
-        <location/>
         <source>Preview</source>
         <translation>プレビュー</translation>
     </message>
     <message>
-        <location/>
         <source>Type:</source>
         <translation>タイプ:</translation>
     </message>
     <message>
-        <location/>
         <source>Output &amp;file:</source>
         <translation>出力ファイル名(&amp;f):</translation>
     </message>
     <message>
-        <location/>
         <source>...</source>
         <translation>...</translation>
     </message>
@@ -5690,70 +4808,45 @@
 <context>
     <name>QProcess</name>
     <message>
-        <location filename="../src/corelib/io/qprocess_unix.cpp" line="+475"/>
-        <location filename="../src/corelib/io/qprocess_win.cpp" line="+147"/>
         <source>Could not open input redirection for reading</source>
         <translation>標準入力リダイレクトを読み込みのためにオープンすることができません</translation>
     </message>
     <message>
-        <location line="+12"/>
-        <location filename="../src/corelib/io/qprocess_win.cpp" line="+36"/>
         <source>Could not open output redirection for writing</source>
         <translation>標準出力リダイレクトを書き込みのためにオープンすることができません</translation>
     </message>
     <message>
-        <location line="+241"/>
         <source>Resource error (fork failure): %1</source>
         <translation>リソースエラー (fork に失敗しました): %1</translation>
     </message>
     <message>
-        <location line="+259"/>
-        <location line="+53"/>
-        <location line="+74"/>
-        <location line="+67"/>
-        <location filename="../src/corelib/io/qprocess_win.cpp" line="+447"/>
-        <location line="+50"/>
-        <location line="+75"/>
-        <location line="+42"/>
-        <location line="+54"/>
         <source>Process operation timed out</source>
         <translation>プロセス処理がタイムアウトしました</translation>
     </message>
     <message>
-        <location filename="../src/corelib/io/qprocess.cpp" line="+558"/>
-        <location line="+52"/>
-        <location filename="../src/corelib/io/qprocess_win.cpp" line="-211"/>
-        <location line="+50"/>
         <source>Error reading from process</source>
         <translation>プロセスからの読み込みにおいてエラーが発生しました</translation>
     </message>
     <message>
-        <location line="+47"/>
-        <location line="+833"/>
-        <location filename="../src/corelib/io/qprocess_win.cpp" line="+140"/>
         <source>Error writing to process</source>
         <translation>プロセスへの書き込みにおいてエラーが発生しました</translation>
     </message>
     <message>
-        <location line="-763"/>
         <source>Process crashed</source>
         <translation>プロセスがクラッシュしました</translation>
     </message>
     <message>
-        <location line="+966"/>
         <source>No program defined</source>
         <translation>プログラム名が指定されていません</translation>
     </message>
     <message>
-        <location filename="../src/corelib/io/qprocess_win.cpp" line="-341"/>
-        <source>Process failed to start</source>
-        <translation>プロセスのスタートに失敗しました</translation>
+        <source>Process failed to start: %1</source>
+        <translation>プロセスの起動に失敗しました: %1</translation>
     </message>
 </context>
 <context>
     <name>QProgressDialog</name>
     <message>
-        <location filename="../src/gui/dialogs/qprogressdialog.cpp" line="+182"/>
         <source>Cancel</source>
         <translation>キャンセル</translation>
     </message>
@@ -5761,7 +4854,6 @@
 <context>
     <name>QPushButton</name>
     <message>
-        <location filename="../src/plugins/accessible/widgets/simplewidgets.cpp" line="-8"/>
         <source>Open</source>
         <translation>オープン</translation>
     </message>
@@ -5769,7 +4861,6 @@
 <context>
     <name>QRadioButton</name>
     <message>
-        <location line="+12"/>
         <source>Check</source>
         <translation>選択</translation>
     </message>
@@ -5777,83 +4868,76 @@
 <context>
     <name>QRegExp</name>
     <message>
-        <location filename="../src/corelib/tools/qregexp.cpp" line="+64"/>
         <source>no error occurred</source>
         <translation>エラーは発生しませんでした</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>disabled feature used</source>
         <translation>無効な機能が使用されました</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>bad char class syntax</source>
         <translation>不正なcharクラス構文</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>bad lookahead syntax</source>
         <translation>不正なlookahead構文</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>bad repetition syntax</source>
         <translation>不正なrepetition構文</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>invalid octal value</source>
         <translation>無効な8進値</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>missing left delim</source>
         <translation>左の区切り文字がありません</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>unexpected end</source>
         <translation>予期しない末尾です</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>met internal limit</source>
         <translation>内部制限を満たしました</translation>
     </message>
+    <message>
+        <source>invalid interval</source>
+        <translation>無効な間隔</translation>
+    </message>
+    <message>
+        <source>invalid category</source>
+        <translation>無効なカテゴリー</translation>
+    </message>
 </context>
 <context>
     <name>QSQLite2Driver</name>
     <message>
-        <location filename="../src/sql/drivers/sqlite2/qsql_sqlite2.cpp" line="+396"/>
-        <source>Error to open database</source>
+        <source>Error opening database</source>
         <translation>データベースのオープンでエラーが発生しました</translation>
     </message>
     <message>
-        <location line="+41"/>
         <source>Unable to begin transaction</source>
         <translation>トランザクションを開始できません</translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>Unable to commit transaction</source>
         <translation>トランザクションをコミットできません</translation>
     </message>
     <message>
-        <location line="+17"/>
-        <source>Unable to rollback Transaction</source>
+        <source>Unable to rollback transaction</source>
         <translation>トランザクションをロールバックできません</translation>
     </message>
 </context>
 <context>
     <name>QSQLite2Result</name>
     <message>
-        <location line="-323"/>
         <source>Unable to fetch results</source>
         <translation>実行結果をフェッチできません</translation>
     </message>
     <message>
-        <location line="+147"/>
         <source>Unable to execute statement</source>
         <translation>ステートメントを実行できません</translation>
     </message>
@@ -5861,31 +4945,22 @@
 <context>
     <name>QSQLiteDriver</name>
     <message>
-        <location filename="../src/sql/drivers/sqlite/qsql_sqlite.cpp" line="+528"/>
         <source>Error opening database</source>
         <translation>データベースのオープンでエラーが発生しました</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>Error closing database</source>
         <translation>データベースのクローズでエラーが発生しました</translation>
     </message>
     <message>
-        <location line="+20"/>
         <source>Unable to begin transaction</source>
         <translation>トランザクションを開始できません</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Unable to commit transaction</source>
         <translation>トランザクションをコミットできません</translation>
     </message>
     <message>
-        <source>Unable to roll back transaction</source>
-        <translation type="obsolete">トランザクションをロールバックできません</translation>
-    </message>
-    <message>
-        <location line="+15"/>
         <source>Unable to rollback transaction</source>
         <translation>トランザクションをロールバックできません</translation>
     </message>
@@ -5893,119 +4968,368 @@
 <context>
     <name>QSQLiteResult</name>
     <message>
-        <location line="-400"/>
-        <location line="+66"/>
-        <location line="+8"/>
         <source>Unable to fetch row</source>
         <translation>レコードをフェッチできません</translation>
     </message>
     <message>
-        <location line="+63"/>
         <source>Unable to execute statement</source>
         <translation>ステートメントを実行できません</translation>
     </message>
     <message>
-        <location line="+20"/>
         <source>Unable to reset statement</source>
         <translation>ステートメントをリセットできません</translation>
     </message>
     <message>
-        <location line="+45"/>
         <source>Unable to bind parameters</source>
         <translation>パラメータをバインドできません</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Parameter count mismatch</source>
         <translation>パラメータの数が合っていません</translation>
     </message>
     <message>
-        <location line="-208"/>
         <source>No query</source>
-        <translation>クェリーがありません</translation>
+        <translation>クエリーがありません</translation>
+    </message>
+</context>
+<context>
+    <name>QScriptBreakpointsModel</name>
+    <message>
+        <source>ID</source>
+        <translation>ID</translation>
+    </message>
+    <message>
+        <source>Location</source>
+        <translation>ファイル:行番号</translation>
+    </message>
+    <message>
+        <source>Condition</source>
+        <translation>条件</translation>
+    </message>
+    <message>
+        <source>Ignore-count</source>
+        <translation>無視する回数</translation>
+    </message>
+    <message>
+        <source>Single-shot</source>
+        <translation>初回のみ</translation>
+    </message>
+    <message>
+        <source>Hit-count</source>
+        <translation>ヒットした回数</translation>
+    </message>
+</context>
+<context>
+    <name>QScriptBreakpointsWidget</name>
+    <message>
+        <source>New</source>
+        <translation>新規</translation>
+    </message>
+    <message>
+        <source>Delete</source>
+        <translation>削除</translation>
+    </message>
+</context>
+<context>
+    <name>QScriptDebugger</name>
+    <message>
+        <source>Go to Line</source>
+        <translation>指定した行へ移動</translation>
+    </message>
+    <message>
+        <source>Line:</source>
+        <translation>行番号:</translation>
+    </message>
+    <message>
+        <source>Interrupt</source>
+        <translation>割り込み</translation>
+    </message>
+    <message>
+        <source>Shift+F5</source>
+        <translation>Shift+F5</translation>
+    </message>
+    <message>
+        <source>Continue</source>
+        <translation>続行</translation>
+    </message>
+    <message>
+        <source>F5</source>
+        <translation>F5</translation>
+    </message>
+    <message>
+        <source>Step Into</source>
+        <translation>ステップイン</translation>
+    </message>
+    <message>
+        <source>F11</source>
+        <translation>F11</translation>
+    </message>
+    <message>
+        <source>Step Over</source>
+        <translation>ステップオーバー</translation>
+    </message>
+    <message>
+        <source>F10</source>
+        <translation>F10</translation>
+    </message>
+    <message>
+        <source>Step Out</source>
+        <translation>ステップアウト</translation>
+    </message>
+    <message>
+        <source>Shift+F11</source>
+        <translation>Shift+F11</translation>
+    </message>
+    <message>
+        <source>Run to Cursor</source>
+        <translation>カーソル位置まで実行</translation>
+    </message>
+    <message>
+        <source>Ctrl+F10</source>
+        <translation>Ctrl+F10</translation>
+    </message>
+    <message>
+        <source>Run to New Script</source>
+        <translation>新たなスクリプトまで実行</translation>
+    </message>
+    <message>
+        <source>Toggle Breakpoint</source>
+        <translation>ブレークポイントの有効/無効の切り替え</translation>
+    </message>
+    <message>
+        <source>F9</source>
+        <translation>F9</translation>
+    </message>
+    <message>
+        <source>Clear Debug Output</source>
+        <translation>デバッグ出力のクリア</translation>
+    </message>
+    <message>
+        <source>Clear Error Log</source>
+        <translation>エラーログのクリア</translation>
+    </message>
+    <message>
+        <source>Clear Console</source>
+        <translation>コンソールのクリア</translation>
+    </message>
+    <message>
+        <source>&amp;Find in Script...</source>
+        <translation>スクリプト内を検索(&amp;F)...</translation>
+    </message>
+    <message>
+        <source>Ctrl+F</source>
+        <translation>Ctrl+F</translation>
+    </message>
+    <message>
+        <source>Find &amp;Next</source>
+        <translation>次を検索(&amp;N)</translation>
+    </message>
+    <message>
+        <source>F3</source>
+        <translation>F3</translation>
+    </message>
+    <message>
+        <source>Find &amp;Previous</source>
+        <translation>前を検索(&amp;P)</translation>
+    </message>
+    <message>
+        <source>Shift+F3</source>
+        <translation>Shift+F3</translation>
+    </message>
+    <message>
+        <source>Ctrl+G</source>
+        <translation>Ctrl+G</translation>
+    </message>
+    <message>
+        <source>Debug</source>
+        <translation>デバッグ</translation>
+    </message>
+</context>
+<context>
+    <name>QScriptDebuggerCodeFinderWidget</name>
+    <message>
+        <source>Close</source>
+        <translation>閉じる</translation>
+    </message>
+    <message>
+        <source>Previous</source>
+        <translation>前を検索</translation>
+    </message>
+    <message>
+        <source>Next</source>
+        <translation>次を検索</translation>
+    </message>
+    <message>
+        <source>Case Sensitive</source>
+        <translation>大文字/小文字を区別する</translation>
+    </message>
+    <message>
+        <source>Whole words</source>
+        <translation>単語単位で検索する</translation>
+    </message>
+    <message>
+        <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;先頭から再び検索します</translation>
+    </message>
+</context>
+<context>
+    <name>QScriptDebuggerLocalsModel</name>
+    <message>
+        <source>Name</source>
+        <translation>名前</translation>
+    </message>
+    <message>
+        <source>Value</source>
+        <translation>値</translation>
+    </message>
+</context>
+<context>
+    <name>QScriptDebuggerStackModel</name>
+    <message>
+        <source>Level</source>
+        <translation>レベル</translation>
+    </message>
+    <message>
+        <source>Name</source>
+        <translation>名前</translation>
+    </message>
+    <message>
+        <source>Location</source>
+        <translation>ファイル:行番号</translation>
+    </message>
+</context>
+<context>
+    <name>QScriptEdit</name>
+    <message>
+        <source>Toggle Breakpoint</source>
+        <translation>ブレークポイントの有効/無効の切り替え</translation>
+    </message>
+    <message>
+        <source>Disable Breakpoint</source>
+        <translation>ブレークポイントを無効にする</translation>
+    </message>
+    <message>
+        <source>Enable Breakpoint</source>
+        <translation>ブレークポイントを有効にする</translation>
+    </message>
+    <message>
+        <source>Breakpoint Condition:</source>
+        <translation>ブレークポイントの条件:</translation>
+    </message>
+</context>
+<context>
+    <name>QScriptEngineDebugger</name>
+    <message>
+        <source>Loaded Scripts</source>
+        <translation>ロードしたスクリプト</translation>
+    </message>
+    <message>
+        <source>Breakpoints</source>
+        <translation>ブレークポイント</translation>
+    </message>
+    <message>
+        <source>Stack</source>
+        <translation>スタック</translation>
+    </message>
+    <message>
+        <source>Locals</source>
+        <translation>ローカル変数</translation>
+    </message>
+    <message>
+        <source>Console</source>
+        <translation>コンソール</translation>
+    </message>
+    <message>
+        <source>Debug Output</source>
+        <translation>デバッグ出力</translation>
+    </message>
+    <message>
+        <source>Error Log</source>
+        <translation>エラーログ</translation>
+    </message>
+    <message>
+        <source>Search</source>
+        <translation>検索</translation>
+    </message>
+    <message>
+        <source>View</source>
+        <translation>表示</translation>
+    </message>
+    <message>
+        <source>Qt Script Debugger</source>
+        <translation>Qt Script デバッガ</translation>
+    </message>
+</context>
+<context>
+    <name>QScriptNewBreakpointWidget</name>
+    <message>
+        <source>Close</source>
+        <translation>閉じる</translation>
     </message>
 </context>
 <context>
     <name>QScrollBar</name>
     <message>
-        <location filename="../src/gui/widgets/qscrollbar.cpp" line="+448"/>
         <source>Scroll here</source>
         <translation>ここにスクロール</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Left edge</source>
         <translation>左端</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Top</source>
         <translation>上端</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Right edge</source>
         <translation>右端</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Bottom</source>
         <translation>下端</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Page left</source>
         <translation>1ページ左へスクロール</translation>
     </message>
     <message>
-        <location line="+0"/>
-        <location filename="../src/plugins/accessible/widgets/rangecontrols.cpp" line="+143"/>
         <source>Page up</source>
         <translation>1ページ戻る</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Page right</source>
         <translation>1ページ右へスクロール</translation>
     </message>
     <message>
-        <location line="+0"/>
-        <location filename="../src/plugins/accessible/widgets/rangecontrols.cpp" line="+4"/>
         <source>Page down</source>
         <translation>1ページ進む</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Scroll left</source>
         <translation>左へスクロール</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Scroll up</source>
         <translation>上へスクロール</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Scroll right</source>
         <translation>右へスクロール</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Scroll down</source>
         <translation>下へスクロール</translation>
     </message>
     <message>
-        <location filename="../src/plugins/accessible/widgets/rangecontrols.cpp" line="-6"/>
         <source>Line up</source>
         <translation>1行上へ</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Position</source>
         <translation>位置</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Line down</source>
         <translation>1行下へ</translation>
     </message>
@@ -6013,570 +5337,966 @@
 <context>
     <name>QSharedMemory</name>
     <message>
-        <location filename="../src/corelib/kernel/qsharedmemory.cpp" line="+207"/>
         <source>%1: unable to set key on lock</source>
         <translatorcomment>共有メモリ関連</translatorcomment>
         <translation>%1: ロックするためのキーを設定できません</translation>
     </message>
     <message>
-        <location line="+81"/>
         <source>%1: create size is less then 0</source>
         <translation>%1: 0より小さいサイズの共有メモリは作成できません</translation>
     </message>
     <message>
-        <location line="+168"/>
-        <location filename="../src/corelib/kernel/qsharedmemory_p.h" line="+148"/>
         <source>%1: unable to lock</source>
         <translation>%1: ロックできません</translation>
     </message>
     <message>
-        <location line="+22"/>
         <source>%1: unable to unlock</source>
         <translation>%1: アンロックできません</translation>
     </message>
     <message>
-        <location filename="../src/corelib/kernel/qsharedmemory_unix.cpp" line="+77"/>
-        <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="+87"/>
         <source>%1: permission denied</source>
         <translation>%1: 許可されていません</translation>
     </message>
     <message>
-        <location line="+4"/>
-        <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="-22"/>
         <source>%1: already exists</source>
         <translation>%1: 既に存在します</translation>
     </message>
     <message>
-        <location line="+4"/>
-        <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="+9"/>
         <source>%1: doesn&apos;t exists</source>
         <translation>%1: 存在しません</translation>
     </message>
     <message>
-        <location line="+6"/>
-        <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="+9"/>
         <source>%1: out of resources</source>
         <translation>%1: リソース不足です</translation>
     </message>
     <message>
-        <location line="+4"/>
-        <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="+7"/>
         <source>%1: unknown error %2</source>
         <translation>%1: 未知のエラー %2</translation>
     </message>
     <message>
-        <location line="+21"/>
         <source>%1: key is empty</source>
         <translation>%1: キーが空です</translation>
     </message>
     <message>
-        <location line="+8"/>
-        <source>%1: unix key file doesn&apos;t exists</source>
-        <translatorcomment>?</translatorcomment>
-        <translation>%1: UNIX key file が存在しません</translation>
-    </message>
-    <message>
-        <location line="+7"/>
         <source>%1: ftok failed</source>
         <translation>%1: fork に失敗しました</translation>
     </message>
     <message>
-        <location line="+51"/>
-        <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="+15"/>
         <source>%1: unable to make key</source>
         <translation>%1: キーを作成できません</translation>
     </message>
     <message>
-        <location line="+20"/>
+        <source>%1: doesn&apos;t exist</source>
+        <translation>%1: 存在しません</translation>
+    </message>
+    <message>
+        <source>%1: UNIX key file doesn&apos;t exist</source>
+        <translation>%1: UNIX key file が存在しません</translation>
+    </message>
+    <message>
         <source>%1: system-imposed size restrictions</source>
         <translatorcomment>EINVAL</translatorcomment>
         <translation>%1: 指定されたサイズはシステムにより拒否されました</translation>
     </message>
     <message>
-        <location line="+53"/>
         <source>%1: not attached</source>
         <translation>%1: アタッチしていません</translation>
     </message>
     <message>
-        <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="-27"/>
         <source>%1: invalid size</source>
         <translation>%1: 無効なサイズです</translation>
     </message>
     <message>
-        <location line="+68"/>
         <source>%1: key error</source>
         <translatorcomment>safekey.isEmpty()==true</translatorcomment>
         <translation>%1: キーかありません</translation>
     </message>
     <message>
-        <location line="+38"/>
         <source>%1: size query failed</source>
-        <translation>%1: サイズのクェリーに失敗しました</translation>
+        <translation>%1: サイズのクエリーに失敗しました</translation>
     </message>
 </context>
 <context>
     <name>QShortcut</name>
     <message>
-        <location filename="../src/gui/kernel/qkeysequence.cpp" line="+394"/>
         <source>Space</source>
+        <extracomment>This and all following &quot;incomprehensible&quot; strings in QShortcut context are key names. Please use the localized names appearing on actual keyboards or whatever is commonly used.</extracomment>
         <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>→</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Up</source>
         <translation>↑</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Right</source>
         <translation>←</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Down</source>
         <translation>↓</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>メニュー</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Help</source>
         <translation>ヘルプ</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Back</source>
         <translation>戻る</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Forward</source>
         <translation>進む</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Stop</source>
         <translation>停止</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Refresh</source>
         <translation>更新間隔</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Volume Down</source>
         <translation>音量を下げる</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Volume Mute</source>
         <translation>消音</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Volume Up</source>
         <translation>音量を上げる</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Bass Boost</source>
         <translation>低音ブースト</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Bass Up</source>
         <translation>低音を上げる</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Bass Down</source>
         <translation>低音を下げる</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Treble Up</source>
         <translation>高音を上げる</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Treble Down</source>
         <translation>高音を下げる</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Media Play</source>
         <translation>メディアの再生</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Media Stop</source>
         <translation>メディアの停止</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Media Previous</source>
         <translation>前のメディア</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Media Next</source>
         <translation>次のメディア</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Media Record</source>
         <translation>メディアの録音</translation>
     </message>
     <message>
-        <location line="+1"/>
+        <source>Media Pause</source>
+        <extracomment>Media player pause button</extracomment>
+        <translation>メディアの一時停止</translation>
+    </message>
+    <message>
+        <source>Toggle Media Play/Pause</source>
+        <extracomment>Media player button to toggle between playing and paused</extracomment>
+        <translation>メディアの再生と一時停止の切り替え</translation>
+    </message>
+    <message>
         <source>Home Page</source>
         <translation>ホームページ</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Favorites</source>
         <translation>お気に入り</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Search</source>
         <translation>検索</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Standby</source>
         <translation>スタンバイ</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Open URL</source>
         <translation>URLを開く</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Launch Mail</source>
         <translation>メールの起動</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Launch Media</source>
         <translation>メディアの起動</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Launch (0)</source>
         <translation>(0)の起動</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Launch (1)</source>
         <translation>(1)の起動</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Launch (2)</source>
         <translation>(2)の起動</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Launch (3)</source>
         <translation>(3)の起動</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Launch (4)</source>
         <translation>(4)の起動</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Launch (5)</source>
         <translation>(5)の起動</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Launch (6)</source>
         <translation>(6)の起動</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Launch (7)</source>
         <translation>(7)の起動</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Launch (8)</source>
         <translation>(8)の起動</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Launch (9)</source>
         <translation>(9)の起動</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Launch (A)</source>
         <translation>(A)の起動</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Launch (B)</source>
         <translation>(B)の起動</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Launch (C)</source>
         <translation>(C)の起動</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Launch (D)</source>
         <translation>(D)の起動</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Launch (E)</source>
         <translation>(E)の起動</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Launch (F)</source>
         <translation>(F)の起動</translation>
     </message>
     <message>
-        <location line="+4"/>
+        <source>Monitor Brightness Up</source>
+        <translation>モニタの輝度を上げる</translation>
+    </message>
+    <message>
+        <source>Monitor Brightness Down</source>
+        <translation>モニタの輝度を下げる</translation>
+    </message>
+    <message>
+        <source>Keyboard Light On/Off</source>
+        <translation>キーボードライトのオン・オフ</translation>
+    </message>
+    <message>
+        <source>Keyboard Brightness Up</source>
+        <translation>キーボードの輝度を上げる</translation>
+    </message>
+    <message>
+        <source>Keyboard Brightness Down</source>
+        <translation>キーボードの輝度を下げる</translation>
+    </message>
+    <message>
+        <source>Power Off</source>
+        <translation>電源オフ</translation>
+    </message>
+    <message>
+        <source>Wake Up</source>
+        <translation>起動</translation>
+    </message>
+    <message>
+        <source>Eject</source>
+        <translation>取り出し</translation>
+    </message>
+    <message>
+        <source>Screensaver</source>
+        <translation>スクリーンセーバ</translation>
+    </message>
+    <message>
+        <source>WWW</source>
+        <translation>WWW</translation>
+    </message>
+    <message>
+        <source>Sleep</source>
+        <translation>スリープ</translation>
+    </message>
+    <message>
+        <source>LightBulb</source>
+        <translation>ライト</translation>
+    </message>
+    <message>
+        <source>Shop</source>
+        <translation>ショップ</translation>
+    </message>
+    <message>
+        <source>History</source>
+        <translation>履歴</translation>
+    </message>
+    <message>
+        <source>Add Favorite</source>
+        <translation>お気に入りに追加</translation>
+    </message>
+    <message>
+        <source>Hot Links</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Adjust Brightness</source>
+        <translation>輝度の調整</translation>
+    </message>
+    <message>
+        <source>Finance</source>
+        <translation>ファイナンス</translation>
+    </message>
+    <message>
+        <source>Community</source>
+        <translation>コミュニティ</translation>
+    </message>
+    <message>
+        <source>Audio Rewind</source>
+        <translation>オーディオの巻き戻し</translation>
+    </message>
+    <message>
+        <source>Back Forward</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Application Left</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Application Right</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Book</source>
+        <translation>書籍</translation>
+    </message>
+    <message>
+        <source>CD</source>
+        <translation>CD</translation>
+    </message>
+    <message>
+        <source>Calculator</source>
+        <translation>電卓</translation>
+    </message>
+    <message>
+        <source>Clear</source>
+        <translation>クリア</translation>
+    </message>
+    <message>
+        <source>Clear Grab</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Close</source>
+        <translation>閉じる</translation>
+    </message>
+    <message>
+        <source>Copy</source>
+        <translation>コピー</translation>
+    </message>
+    <message>
+        <source>Cut</source>
+        <translation>切り取り</translation>
+    </message>
+    <message>
+        <source>Display</source>
+        <translation>ディスプレイ</translation>
+    </message>
+    <message>
+        <source>DOS</source>
+        <translation>DOS</translation>
+    </message>
+    <message>
+        <source>Documents</source>
+        <translation>ドキュメント</translation>
+    </message>
+    <message>
+        <source>Spreadsheet</source>
+        <translation>スプレッドシート</translation>
+    </message>
+    <message>
+        <source>Browser</source>
+        <translation>ブラウザ</translation>
+    </message>
+    <message>
+        <source>Game</source>
+        <translation>ゲーム</translation>
+    </message>
+    <message>
+        <source>Go</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>iTouch</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Logoff</source>
+        <translation>ログオフ</translation>
+    </message>
+    <message>
+        <source>Market</source>
+        <translation>マーケット</translation>
+    </message>
+    <message>
+        <source>Meeting</source>
+        <translation>会議</translation>
+    </message>
+    <message>
+        <source>Keyboard Menu</source>
+        <translation>キーボードメニュー</translation>
+    </message>
+    <message>
+        <source>Menu PB</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>My Sites</source>
+        <translation>マイサイト</translation>
+    </message>
+    <message>
+        <source>News</source>
+        <translation>ニュース</translation>
+    </message>
+    <message>
+        <source>Home Office</source>
+        <translation>ホームオフィス</translation>
+    </message>
+    <message>
+        <source>Option</source>
+        <translation>オプション</translation>
+    </message>
+    <message>
+        <source>Paste</source>
+        <translation>貼り付け</translation>
+    </message>
+    <message>
+        <source>Phone</source>
+        <translation>電話</translation>
+    </message>
+    <message>
+        <source>Reply</source>
+        <translation>返信</translation>
+    </message>
+    <message>
+        <source>Reload</source>
+        <translation>リロード</translation>
+    </message>
+    <message>
+        <source>Rotate Windows</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Rotation PB</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Rotation KB</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Save</source>
+        <translation>保存</translation>
+    </message>
+    <message>
+        <source>Send</source>
+        <translation>送信</translation>
+    </message>
+    <message>
+        <source>Spellchecker</source>
+        <translation>スペルチェッカー</translation>
+    </message>
+    <message>
+        <source>Split Screen</source>
+        <translation>画面の分割</translation>
+    </message>
+    <message>
+        <source>Support</source>
+        <translation>サポート</translation>
+    </message>
+    <message>
+        <source>Task Panel</source>
+        <translation>タスクパネル</translation>
+    </message>
+    <message>
+        <source>Terminal</source>
+        <translation>端末</translation>
+    </message>
+    <message>
+        <source>Tools</source>
+        <translation>ツール</translation>
+    </message>
+    <message>
+        <source>Travel</source>
+        <translation>旅行</translation>
+    </message>
+    <message>
+        <source>Video</source>
+        <translation>動画</translation>
+    </message>
+    <message>
+        <source>Word Processor</source>
+        <translation>ワードプロセッサ</translation>
+    </message>
+    <message>
+        <source>XFer</source>
+        <translation>変換</translation>
+    </message>
+    <message>
+        <source>Zoom In</source>
+        <translation>拡大</translation>
+    </message>
+    <message>
+        <source>Zoom Out</source>
+        <translation>縮小</translation>
+    </message>
+    <message>
+        <source>Away</source>
+        <translation>離席</translation>
+    </message>
+    <message>
+        <source>Messenger</source>
+        <translation>メッセンジャー</translation>
+    </message>
+    <message>
+        <source>WebCam</source>
+        <translation>Webカメラ</translation>
+    </message>
+    <message>
+        <source>Mail Forward</source>
+        <translation>メールの転送</translation>
+    </message>
+    <message>
+        <source>Pictures</source>
+        <translation>画像</translation>
+    </message>
+    <message>
+        <source>Music</source>
+        <translation>音楽</translation>
+    </message>
+    <message>
+        <source>Battery</source>
+        <translation>バッテリ</translation>
+    </message>
+    <message>
+        <source>Bluetooth</source>
+        <translation>ブルートゥース</translation>
+    </message>
+    <message>
+        <source>Wireless</source>
+        <translation>無線</translation>
+    </message>
+    <message>
+        <source>Ultra Wide Band</source>
+        <translation>超広帯域無線(UWB)</translation>
+    </message>
+    <message>
+        <source>Audio Forward</source>
+        <translation>オーディオの早送り</translation>
+    </message>
+    <message>
+        <source>Audio Repeat</source>
+        <translation>オーディオの繰り返し</translation>
+    </message>
+    <message>
+        <source>Audio Random Play</source>
+        <translation>オーディオのランダム再生</translation>
+    </message>
+    <message>
+        <source>Subtitle</source>
+        <translation>字幕</translation>
+    </message>
+    <message>
+        <source>Audio Cycle Track</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Time</source>
+        <translation>時間</translation>
+    </message>
+    <message>
+        <source>View</source>
+        <translation>表示</translation>
+    </message>
+    <message>
+        <source>Top Menu</source>
+        <translation>トップメニュー</translation>
+    </message>
+    <message>
+        <source>Suspend</source>
+        <translation>サスペンド</translation>
+    </message>
+    <message>
+        <source>Hibernate</source>
+        <translation>休止</translation>
+    </message>
+    <message>
         <source>Print Screen</source>
         <translation>Print Screen</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Page Up</source>
         <translation>Page Up</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Page Down</source>
         <translation>Page Down</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="+4"/>
         <source>Select</source>
         <translation>Select</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Yes</source>
         <translation>はい</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>No</source>
         <translation>いいえ</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Context1</source>
         <translation>Context1</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Context2</source>
         <translation>Context2</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Context3</source>
         <translation>Context3</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Context4</source>
         <translation>Context4</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Call</source>
+        <extracomment>Button to start a call (note: a separate button is used to end the call)</extracomment>
         <translation>Call</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Hangup</source>
+        <extracomment>Button to end a call (note: a separate button is used to start the call)</extracomment>
         <translation>Hangup</translation>
     </message>
     <message>
-        <location line="+1"/>
+        <source>Toggle Call/Hangup</source>
+        <extracomment>Button that will hang up if we&apos;re in call, or make a call if we&apos;re not.</extracomment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <source>Flip</source>
         <translation>Flip</translation>
     </message>
     <message>
-        <location line="+559"/>
-        <location line="+135"/>
+        <source>Voice Dial</source>
+        <extracomment>Button to trigger voice dialling</extracomment>
+        <translation>ボイスダイアル</translation>
+    </message>
+    <message>
+        <source>Last Number Redial</source>
+        <extracomment>Button to redial the last number called</extracomment>
+        <translation>直前の番号にリダイヤル</translation>
+    </message>
+    <message>
+        <source>Camera Shutter</source>
+        <extracomment>Button to trigger the camera shutter (take a picture)</extracomment>
+        <translation>カメラシャッター</translation>
+    </message>
+    <message>
+        <source>Camera Focus</source>
+        <extracomment>Button to focus the camera</extracomment>
+        <translation>カメラフォーカス</translation>
+    </message>
+    <message>
+        <source>Kanji</source>
+        <translation>漢字</translation>
+    </message>
+    <message>
+        <source>Muhenkan</source>
+        <translation>無変換</translation>
+    </message>
+    <message>
+        <source>Henkan</source>
+        <translation>変換</translation>
+    </message>
+    <message>
+        <source>Romaji</source>
+        <translation>ローマ字</translation>
+    </message>
+    <message>
+        <source>Hiragana</source>
+        <translation>ひらがな</translation>
+    </message>
+    <message>
+        <source>Katakana</source>
+        <translation>カタカナ</translation>
+    </message>
+    <message>
+        <source>Hiragana Katakana</source>
+        <translation>ひらがな/カタカナ</translation>
+    </message>
+    <message>
+        <source>Zenkaku</source>
+        <translation>全角</translation>
+    </message>
+    <message>
+        <source>Hankaku</source>
+        <translation>半角</translation>
+    </message>
+    <message>
+        <source>Zenkaku Hankaku</source>
+        <translation>全角/半角</translation>
+    </message>
+    <message>
+        <source>Touroku</source>
+        <translation>単語登録</translation>
+    </message>
+    <message>
+        <source>Massyo</source>
+        <translation>単語抹消</translation>
+    </message>
+    <message>
+        <source>Kana Lock</source>
+        <translation>カナロック</translation>
+    </message>
+    <message>
+        <source>Kana Shift</source>
+        <translation>カナシフト</translation>
+    </message>
+    <message>
+        <source>Eisu Shift</source>
+        <translation>英数シフト</translation>
+    </message>
+    <message>
+        <source>Eisu toggle</source>
+        <translation>英数</translation>
+    </message>
+    <message>
+        <source>Code input</source>
+        <translation>コード入力</translation>
+    </message>
+    <message>
+        <source>Multiple Candidate</source>
+        <translation>全候補</translation>
+    </message>
+    <message>
+        <source>Previous Candidate</source>
+        <translation>前候補</translation>
+    </message>
+    <message>
+        <source>Hangul</source>
+        <translation>ハングル</translation>
+    </message>
+    <message>
+        <source>Hangul Start</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hangul End</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hangul Hanja</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hangul Jamo</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hangul Romaja</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hangul Jeonja</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hangul Banja</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hangul PreHanja</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hangul PostHanja</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hangul Special</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <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>
@@ -6584,27 +6304,22 @@
 <context>
     <name>QSlider</name>
     <message>
-        <location filename="../src/plugins/accessible/widgets/rangecontrols.cpp" line="+151"/>
         <source>Page left</source>
         <translation>1ページ左へスクロール</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Page up</source>
         <translation>1ページ戻る</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Position</source>
         <translation>位置</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Page right</source>
         <translation>1ページ右へスクロール</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Page down</source>
         <translation>1ページ進む</translation>
     </message>
@@ -6612,90 +6327,97 @@
 <context>
     <name>QSocks5SocketEngine</name>
     <message>
-        <location filename="../src/network/socket/qsocks5socketengine.cpp" line="-67"/>
         <source>Connection to proxy refused</source>
         <translation>プロキシーへの接続が拒否されました</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Connection to proxy closed prematurely</source>
         <translation>プロキシーの接続が通信の終了前に切断されました</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Proxy host not found</source>
         <translation>プロキシーホストが見つかりません</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Connection to proxy timed out</source>
         <translation>プロキシーとの接続がタイムアウトしました</translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>Proxy authentication failed</source>
         <translation>プロキシーの認証に失敗しました</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Proxy authentication failed: %1</source>
         <translation>プロキシーの認証に失敗しました: %1</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>SOCKS version 5 protocol error</source>
         <translation>SOCKS バージョン 5 プロトコルのエラーです</translation>
     </message>
     <message>
-        <location line="+19"/>
         <source>General SOCKSv5 server failure</source>
         <translation>SOCKS バージョン 5 サーバのエラーです</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Connection not allowed by SOCKSv5 server</source>
         <translation>SOCKSv5 サーバより接続を拒否されました</translation>
     </message>
     <message>
-        <location line="+16"/>
         <source>TTL expired</source>
         <translatorcomment>実際はホップ数です</translatorcomment>
         <translation>有効期限(TTL)がきれました</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>SOCKSv5 command not supported</source>
         <translation>この SOCKSv5 コマンドはサポートされていません</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Address type not supported</source>
         <translation>指定されたアドレスタイプはサポートされていません</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Unknown SOCKSv5 proxy error code 0x%1</source>
         <translation>未知の SOCKSv5 プロキシーエラーです: 0x%1</translation>
     </message>
     <message>
-        <source>Socks5 timeout error connecting to socks server</source>
-        <translation type="obsolete">Socks5 はソックスサーバ接続しようとしてタイムアウトになりました</translation>
-    </message>
-    <message>
-        <location line="+685"/>
         <source>Network operation timed out</source>
         <translation>ネットワーク操作がタイムアウトしました</translation>
     </message>
 </context>
 <context>
+    <name>QSoftKeyManager</name>
+    <message>
+        <source>Ok</source>
+        <translation>OK</translation>
+    </message>
+    <message>
+        <source>Select</source>
+        <translation>セレクト</translation>
+    </message>
+    <message>
+        <source>Done</source>
+        <translation>終了</translation>
+    </message>
+    <message>
+        <source>Options</source>
+        <translation>オプション</translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation>キャンセル</translation>
+    </message>
+    <message>
+        <source>Exit</source>
+        <translation>終了</translation>
+    </message>
+</context>
+<context>
     <name>QSpinBox</name>
     <message>
-        <location filename="../src/plugins/accessible/widgets/rangecontrols.cpp" line="-574"/>
         <source>More</source>
         <translation>増やす</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Less</source>
         <translation>減らす</translation>
     </message>
@@ -6703,56 +6425,42 @@
 <context>
     <name>QSql</name>
     <message>
-        <location filename="../src/qt3support/sql/q3sqlmanager_p.cpp" line="+890"/>
         <source>Delete</source>
         <translation>削除</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Delete this record?</source>
         <translation>このレコードを削除しますか?</translation>
     </message>
     <message>
-        <location line="+1"/>
-        <location line="+16"/>
-        <location line="+36"/>
         <source>Yes</source>
         <translation>はい</translation>
     </message>
     <message>
-        <location line="-51"/>
-        <location line="+16"/>
-        <location line="+36"/>
         <source>No</source>
         <translation>いいえ</translation>
     </message>
     <message>
-        <location line="-44"/>
         <source>Insert</source>
         <translation>挿入</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Update</source>
         <translation>アップデート</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Save edits?</source>
         <translation>編集内容を保存しますか?</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Cancel</source>
         <translation>キャンセル</translation>
     </message>
     <message>
-        <location line="+32"/>
         <source>Confirm</source>
         <translation>確認</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Cancel your edits?</source>
         <translation>編集をキャンセルしますか?</translation>
     </message>
@@ -6760,88 +6468,184 @@
 <context>
     <name>QSslSocket</name>
     <message>
-        <location filename="../src/network/ssl/qsslsocket_openssl.cpp" line="+260"/>
         <source>Error creating SSL context (%1)</source>
         <translation>SSL content の作成に失敗しました (%1)</translation>
     </message>
     <message>
-        <location line="+25"/>
         <source>Invalid or empty cipher list (%1)</source>
-        <translation>暗号方式リストが無効または空です (%1)</translation>
-    </message>
-    <message>
-        <location line="+16"/>
+        <translation>暗号方式リストが不正または空です (%1)</translation>
+    </message>
+    <message>
         <source>Cannot provide a certificate with no key, %1</source>
         <translation>鍵が指定されていないため、証明書を扱えません。 %1</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Error loading local certificate, %1</source>
         <translation>ローカルの証明書をロードできません。 %1</translation>
     </message>
     <message>
-        <location line="+12"/>
         <source>Error loading private key, %1</source>
         <translation>プライベートキーをロードできません。 %1</translation>
     </message>
     <message>
-        <location line="+7"/>
-        <source>Private key does not certificate public key, %1</source>
-        <translation>プライベートキーが、パブリックキーの証明書となっていません %1</translation>
-    </message>
-    <message>
-        <location line="+20"/>
+        <source>Private key does not certify public key, %1</source>
+        <translation>秘密鍵が公開鍵 %1 を証明していません</translation>
+    </message>
+    <message>
         <source>Error creating SSL session, %1</source>
         <translation>SSL セッションを作成できません。 %1</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Error creating SSL session: %1</source>
         <translation>SSL セッションを作成できません: %1</translation>
     </message>
     <message>
-        <location line="+207"/>
         <source>Unable to write data: %1</source>
         <translation>書き込みできません: %1</translation>
     </message>
     <message>
-        <location line="+119"/>
+        <source>Unable to decrypt data: %1</source>
+        <translation>データを解読できません: %1</translation>
+    </message>
+    <message>
         <source>Error while reading: %1</source>
         <translation>読み込み時にエラーが発生しました: %1</translation>
     </message>
     <message>
-        <location line="+96"/>
         <source>Error during SSL handshake: %1</source>
         <translation>SSL ハンドシェーク時にエラーが発生しました: %1</translation>
     </message>
+    <message>
+        <source>No error</source>
+        <translation>エラーはありません</translation>
+    </message>
+    <message>
+        <source>The issuer certificate could not be found</source>
+        <translation>発行者証明書が見つかりません</translation>
+    </message>
+    <message>
+        <source>The certificate signature could not be decrypted</source>
+        <translation>証明書の署名が復号できません</translation>
+    </message>
+    <message>
+        <source>The public key in the certificate could not be read</source>
+        <translation>証明書の公開鍵が読めません</translation>
+    </message>
+    <message>
+        <source>The signature of the certificate is invalid</source>
+        <translation>証明書の署名が不正です</translation>
+    </message>
+    <message>
+        <source>The certificate is not yet valid</source>
+        <translation>証明書が有効ではありません</translation>
+    </message>
+    <message>
+        <source>The certificate has expired</source>
+        <translation>証明書の有効期限が切れています</translation>
+    </message>
+    <message>
+        <source>The certificate&apos;s notBefore field contains an invalid time</source>
+        <translation>証明書の notBefore フィールドに不正な時刻が含まれています</translation>
+    </message>
+    <message>
+        <source>The certificate&apos;s notAfter field contains an invalid time</source>
+        <translation>証明書の notAfter フィールドに不正な時刻が含まれています</translation>
+    </message>
+    <message>
+        <source>The certificate is self-signed, and untrusted</source>
+        <translation>この証明書は自己証明書であり、信頼されていません</translation>
+    </message>
+    <message>
+        <source>The root certificate of the certificate chain is self-signed, and untrusted</source>
+        <translation>証明書チェインのルート証明書が自己証明書であり、信頼されていません</translation>
+    </message>
+    <message>
+        <source>The issuer certificate of a locally looked up certificate could not be found</source>
+        <translation>ローカルで発見した証明書の発行者証明書が見つかりません</translation>
+    </message>
+    <message>
+        <source>No certificates could be verified</source>
+        <translation>どの証明書も検証できませんでした</translation>
+    </message>
+    <message>
+        <source>One of the CA certificates is invalid</source>
+        <translation>CA 証明書に不正な証明書があります</translation>
+    </message>
+    <message>
+        <source>The basicConstraints path length parameter has been exceeded</source>
+        <translation>基本制約(basicConstraints)で制限されたパスの長さを超えています</translation>
+    </message>
+    <message>
+        <source>The supplied certificate is unsuitable for this purpose</source>
+        <translation>与えられた証明書はこの目的には利用できません</translation>
+    </message>
+    <message>
+        <source>The root CA certificate is not trusted for this purpose</source>
+        <translation>ルートCA証明書はこの目的には信頼されていません</translation>
+    </message>
+    <message>
+        <source>The root CA certificate is marked to reject the specified purpose</source>
+        <translation>ルートCA証明書を指定された目的に使用することは拒否されています</translation>
+    </message>
+    <message>
+        <source>The current candidate issuer certificate was rejected because its subject name did not match the issuer name of the current certificate</source>
+        <translation>更新用に準備された発行者証明書は、その所有者名が現在の証明書の発行者名と異なるため拒否されました</translation>
+    </message>
+    <message>
+        <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>更新用に準備された発行者証明書は、その発行者名とシリアル番号が現在の証明書の機関鍵識別子と異なるため拒否されました</translation>
+    </message>
+    <message>
+        <source>The peer did not present any certificate</source>
+        <translation>通信相手は証明書を提示しませんでした</translation>
+    </message>
+    <message>
+        <source>The host name did not match any of the valid hosts for this certificate</source>
+        <translation>ホスト名がこの証明書のどの有効なホストとも一致しませんでした</translation>
+    </message>
+    <message>
+        <source>Unknown error</source>
+        <translation>未知のエラー</translation>
+    </message>
+</context>
+<context>
+    <name>QStateMachine</name>
+    <message>
+        <source>Missing initial state in compound state &apos;%1&apos;</source>
+        <translation>複合ステート &apos;%1&apos; に初期ステートが見つかりません</translation>
+    </message>
+    <message>
+        <source>Missing default state in history state &apos;%1&apos;</source>
+        <translation>ヒストリーステート &apos;%1&apos; にデフォルトステートが見つかりません</translation>
+    </message>
+    <message>
+        <source>No common ancestor for targets and source of transition from state &apos;%1&apos;</source>
+        <translation>ステート &apos;%1&apos; からの遷移のソースおよびターゲットに共通した祖先がありません</translation>
+    </message>
+    <message>
+        <source>Unknown error</source>
+        <translation>未知のエラー</translation>
+    </message>
 </context>
 <context>
     <name>QSystemSemaphore</name>
     <message>
-        <location filename="../src/corelib/kernel/qsystemsemaphore_unix.cpp" line="-41"/>
-        <location filename="../src/corelib/kernel/qsystemsemaphore_win.cpp" line="+66"/>
         <source>%1: out of resources</source>
         <translation>%1: リソース不足です</translation>
     </message>
     <message>
-        <location line="-13"/>
-        <location filename="../src/corelib/kernel/qsystemsemaphore_win.cpp" line="+4"/>
         <source>%1: permission denied</source>
         <translation>%1: 許可されていません</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>%1: already exists</source>
         <translation>%1: 既に存在します</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>%1: does not exist</source>
         <translation>%1: 存在しません</translation>
     </message>
     <message>
-        <location line="+9"/>
-        <location filename="../src/corelib/kernel/qsystemsemaphore_win.cpp" line="+3"/>
         <source>%1: unknown error %2</source>
         <translation>%1: 未知のエラーです %2</translation>
     </message>
@@ -6849,12 +6653,10 @@
 <context>
     <name>QTDSDriver</name>
     <message>
-        <location filename="../src/sql/drivers/tds/qsql_tds.cpp" line="+584"/>
         <source>Unable to open connection</source>
         <translation>接続をオープンできません</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Unable to use database</source>
         <translation>データベースを使用できません</translation>
     </message>
@@ -6862,12 +6664,10 @@
 <context>
     <name>QTabBar</name>
     <message>
-        <location filename="../src/plugins/accessible/widgets/complexwidgets.cpp" line="-326"/>
         <source>Scroll Left</source>
         <translation>左へスクロール</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Scroll Right</source>
         <translation>右へスクロール</translation>
     </message>
@@ -6875,11 +6675,6 @@
 <context>
     <name>QTcpServer</name>
     <message>
-        <source>Socket operation unsupported</source>
-        <translation type="obsolete">ソケット操作はサポートされていません</translation>
-    </message>
-    <message>
-        <location filename="../src/network/socket/qtcpserver.cpp" line="+282"/>
         <source>Operation on socket is not supported</source>
         <translation>このソケットへの操作はサポートされていません</translation>
     </message>
@@ -6887,42 +6682,34 @@
 <context>
     <name>QTextControl</name>
     <message>
-        <location filename="../src/gui/text/qtextcontrol.cpp" line="+1973"/>
         <source>&amp;Undo</source>
         <translation>元に戻す(&amp;U)</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>&amp;Redo</source>
         <translation>やり直す(&amp;R)</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Cu&amp;t</source>
         <translation>切り取り(&amp;T)</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>&amp;Copy</source>
         <translation>コピー(&amp;C)</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Copy &amp;Link Location</source>
         <translation>リンクの場所をコピー(&amp;L)</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>&amp;Paste</source>
         <translation>貼り付け(&amp;P)</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Delete</source>
         <translation>削除</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Select All</source>
         <translation>すべてを選択</translation>
     </message>
@@ -6930,14 +6717,10 @@
 <context>
     <name>QToolButton</name>
     <message>
-        <location filename="../src/plugins/accessible/widgets/simplewidgets.cpp" line="+254"/>
-        <location line="+6"/>
         <source>Press</source>
         <translation>押す</translation>
     </message>
     <message>
-        <location line="-4"/>
-        <location line="+8"/>
         <source>Open</source>
         <translation>オープン</translation>
     </message>
@@ -6945,7 +6728,6 @@
 <context>
     <name>QUdpSocket</name>
     <message>
-        <location filename="../src/network/socket/qudpsocket.cpp" line="+169"/>
         <source>This platform does not support IPv6</source>
         <translation>このプラットフォームは IPv6 をサポートしていません</translation>
     </message>
@@ -6953,12 +6735,10 @@
 <context>
     <name>QUndoGroup</name>
     <message>
-        <location filename="../src/gui/util/qundogroup.cpp" line="+386"/>
         <source>Undo</source>
         <translation>元に戻す</translation>
     </message>
     <message>
-        <location line="+28"/>
         <source>Redo</source>
         <translation>やり直す</translation>
     </message>
@@ -6966,7 +6746,6 @@
 <context>
     <name>QUndoModel</name>
     <message>
-        <location filename="../src/gui/util/qundoview.cpp" line="+101"/>
         <source>&lt;empty&gt;</source>
         <translation>&lt;空&gt;</translation>
     </message>
@@ -6974,12 +6753,10 @@
 <context>
     <name>QUndoStack</name>
     <message>
-        <location filename="../src/gui/util/qundostack.cpp" line="+834"/>
         <source>Undo</source>
         <translation>元に戻す</translation>
     </message>
     <message>
-        <location line="+27"/>
         <source>Redo</source>
         <translation>やり直す</translation>
     </message>
@@ -6987,57 +6764,46 @@
 <context>
     <name>QUnicodeControlCharacterMenu</name>
     <message>
-        <location filename="../src/gui/text/qtextcontrol.cpp" line="+884"/>
         <source>LRM Left-to-right mark</source>
         <translation>LRM (左横書き指定)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>RLM Right-to-left mark</source>
         <translation>RLM (右横書き指定)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>ZWJ Zero width joiner</source>
         <translation>ZWJ (幅のない接続文字)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>ZWNJ Zero width non-joiner</source>
         <translation>ZWNJ (幅のない非接続文字)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>ZWSP Zero width space</source>
         <translation>ZWSP (幅の無い空白)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>LRE Start of left-to-right embedding</source>
         <translation>LRE (左横書き開始指定)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>RLE Start of right-to-left embedding</source>
         <translation>RLE (右横書き開始指定)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>LRO Start of left-to-right override</source>
         <translation>LRO (左横書き上書き開始指定)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>RLO Start of right-to-left override</source>
         <translation>RLO (右横書き上書き開始指定)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>PDF Pop directional formatting</source>
         <translation>PDF (方向上書きの終了指定)</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Insert Unicode control character</source>
         <translation>Unicode制御文字を挿入</translation>
     </message>
@@ -7045,32 +6811,26 @@
 <context>
     <name>QWebFrame</name>
     <message>
-        <location filename="../src/3rdparty/webkit/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp" line="+692"/>
         <source>Request cancelled</source>
         <translation>リクエストはキャンセルされました</translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>Request blocked</source>
         <translation>リクエストはブロックされました</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Cannot show URL</source>
         <translation>URL を表示できません</translation>
     </message>
     <message>
-        <location line="+6"/>
-        <source>Frame load interruped by policy change</source>
-        <translation>ポリシーの変更により、フレームのロードが中断しました</translation>
-    </message>
-    <message>
-        <location line="+6"/>
+        <source>Frame load interrupted by policy change</source>
+        <translation>ポリシーが変更されたためフレームのロードを中断しました</translation>
+    </message>
+    <message>
         <source>Cannot show mimetype</source>
         <translation>MIME Type を表示できません</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>File does not exist</source>
         <translation>ファイルが存在しません</translation>
     </message>
@@ -7078,377 +6838,516 @@
 <context>
     <name>QWebPage</name>
     <message>
-        <location filename="../src/3rdparty/webkit/WebCore/platform/network/qt/QNetworkReplyHandler.cpp" line="+384"/>
+        <source>Redirection limit reached</source>
+        <translation>リダイレクトの上限に達しました</translation>
+    </message>
+    <message>
         <source>Bad HTTP request</source>
         <translation>誤った HTTP のリクエストです</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>送信</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>送信</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Reset</source>
         <comment>default label for Reset buttons in forms on web pages</comment>
         <translation>リセット</translation>
     </message>
     <message>
-        <location line="+10"/>
         <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>検索が可能です。検索のためのキーワードを入力してください: </translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Choose File</source>
         <comment>title for file button used in HTML forms</comment>
         <translation>ファイルを選ぶ</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>ファイルが選択されていません</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Open in New Window</source>
         <comment>Open in New Window context menu item</comment>
         <translation>新しいウィンドウで開く</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Save Link...</source>
         <comment>Download Linked File context menu item</comment>
         <translation>リンク先を保存...</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Copy Link</source>
         <comment>Copy Link context menu item</comment>
         <translation>リンク先をコピー</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Open Image</source>
         <comment>Open Image in New Window context menu item</comment>
         <translation>イメージを開く</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Save Image</source>
         <comment>Download Image context menu item</comment>
         <translation>画像を保存</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Copy Image</source>
         <comment>Copy Link context menu item</comment>
         <translation>画像をコピー</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Open Frame</source>
         <comment>Open Frame in New Window context menu item</comment>
         <translation>フレームを新しいウィンドウで開く</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Copy</source>
         <comment>Copy context menu item</comment>
         <translation>コピー</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Go Back</source>
         <comment>Back context menu item</comment>
         <translation>戻る</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Go Forward</source>
         <comment>Forward context menu item</comment>
         <translation>進む</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Stop</source>
         <comment>Stop context menu item</comment>
         <translation>停止</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Reload</source>
         <comment>Reload context menu item</comment>
         <translation>リロード</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Cut</source>
         <comment>Cut context menu item</comment>
         <translation>切り取り</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Paste</source>
         <comment>Paste context menu item</comment>
         <translation>貼り付け</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>No Guesses Found</source>
         <comment>No Guesses Found context menu item</comment>
         <translation>推測候補はありません</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Ignore</source>
         <comment>Ignore Spelling context menu item</comment>
         <translation>無視</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Add To Dictionary</source>
         <comment>Learn Spelling context menu item</comment>
         <translation>辞書に追加</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Search The Web</source>
         <comment>Search The Web context menu item</comment>
         <translation>Web を検索</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Look Up In Dictionary</source>
         <comment>Look Up in Dictionary context menu item</comment>
         <translation>辞書から探す</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Open Link</source>
         <comment>Open Link context menu item</comment>
         <translation>リンクを開く</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Ignore</source>
         <comment>Ignore Grammar context menu item</comment>
         <translation>無視</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Spelling</source>
         <comment>Spelling and Grammar context sub-menu item</comment>
         <translation>スペル</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Show Spelling and Grammar</source>
         <comment>menu item title</comment>
         <translation>スペルと文法を表示</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Hide Spelling and Grammar</source>
         <comment>menu item title</comment>
         <translation>スペルと文法を隠す</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Check Spelling</source>
         <comment>Check spelling context menu item</comment>
         <translation>スペルをチェックする</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Check Spelling While Typing</source>
         <comment>Check spelling while typing context menu item</comment>
         <translation>入力中にスペルをチェックする</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Check Grammar With Spelling</source>
         <comment>Check grammar with spelling context menu item</comment>
         <translation>スペルおよび文法をチェックする</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Fonts</source>
         <comment>Font context sub-menu item</comment>
         <translation>フォント</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Bold</source>
         <comment>Bold context menu item</comment>
         <translation>太字</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Italic</source>
         <comment>Italic context menu item</comment>
         <translation>イタリック</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Underline</source>
         <comment>Underline context menu item</comment>
         <translation>下線</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Outline</source>
         <comment>Outline context menu item</comment>
         <translation>アウトライン</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Direction</source>
         <comment>Writing direction context sub-menu item</comment>
         <translation>方向</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Text Direction</source>
         <comment>Text direction context sub-menu item</comment>
         <translation>テキストの方向</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Default</source>
         <comment>Default writing direction context menu item</comment>
         <translation>デフォルト</translation>
     </message>
     <message>
-        <location line="+5"/>
-        <source>LTR</source>
+        <source>Left to Right</source>
         <comment>Left to Right context menu item</comment>
         <translation>左横書き</translation>
     </message>
     <message>
-        <location line="+5"/>
-        <source>RTL</source>
+        <source>Right to Left</source>
         <comment>Right to Left context menu item</comment>
         <translation>右横書き</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <source>Loading...</source>
+        <comment>Media controller status message when the media is loading</comment>
+        <translation>読込中...</translation>
+    </message>
+    <message>
+        <source>Live Broadcast</source>
+        <comment>Media controller status message when watching a live broadcast</comment>
+        <translation>ライブブロードキャスト</translation>
+    </message>
+    <message>
+        <source>Audio Element</source>
+        <comment>Media controller element</comment>
+        <translation>オーディオ要素</translation>
+    </message>
+    <message>
+        <source>Video Element</source>
+        <comment>Media controller element</comment>
+        <translation>ビデオ要素</translation>
+    </message>
+    <message>
+        <source>Mute Button</source>
+        <comment>Media controller element</comment>
+        <translation>消音ボタン</translation>
+    </message>
+    <message>
+        <source>Unmute Button</source>
+        <comment>Media controller element</comment>
+        <translation>消音解除ボタン</translation>
+    </message>
+    <message>
+        <source>Play Button</source>
+        <comment>Media controller element</comment>
+        <translation>再生ボタン</translation>
+    </message>
+    <message>
+        <source>Pause Button</source>
+        <comment>Media controller element</comment>
+        <translation>一時停止ボタン</translation>
+    </message>
+    <message>
+        <source>Slider</source>
+        <comment>Media controller element</comment>
+        <translation>スライダ</translation>
+    </message>
+    <message>
+        <source>Slider Thumb</source>
+        <comment>Media controller element</comment>
+        <translation>スライダーのつまみ</translation>
+    </message>
+    <message>
+        <source>Rewind Button</source>
+        <comment>Media controller element</comment>
+        <translation>巻き戻しボタン</translation>
+    </message>
+    <message>
+        <source>Return to Real-time Button</source>
+        <comment>Media controller element</comment>
+        <translation>現在時間に戻るボタン</translation>
+    </message>
+    <message>
+        <source>Elapsed Time</source>
+        <comment>Media controller element</comment>
+        <translation>経過時間</translation>
+    </message>
+    <message>
+        <source>Remaining Time</source>
+        <comment>Media controller element</comment>
+        <translation>残り時間</translation>
+    </message>
+    <message>
+        <source>Status Display</source>
+        <comment>Media controller element</comment>
+        <translation>ステータス表示</translation>
+    </message>
+    <message>
+        <source>Fullscreen Button</source>
+        <comment>Media controller element</comment>
+        <translation>フルスクリーンボタン</translation>
+    </message>
+    <message>
+        <source>Seek Forward Button</source>
+        <comment>Media controller element</comment>
+        <translation>早送りボタン</translation>
+    </message>
+    <message>
+        <source>Seek Back Button</source>
+        <comment>Media controller element</comment>
+        <translation>巻き戻しボタン</translation>
+    </message>
+    <message>
+        <source>Audio element playback controls and status display</source>
+        <comment>Media controller element</comment>
+        <translation>オーディオ要素の再生制御とステータスの表示</translation>
+    </message>
+    <message>
+        <source>Video element playback controls and status display</source>
+        <comment>Media controller element</comment>
+        <translation>ビデオ要素の再生制御とステータスの表示</translation>
+    </message>
+    <message>
+        <source>Mute audio tracks</source>
+        <comment>Media controller element</comment>
+        <translation>音声を消音する</translation>
+    </message>
+    <message>
+        <source>Unmute audio tracks</source>
+        <comment>Media controller element</comment>
+        <translation>音声の消音を解除する</translation>
+    </message>
+    <message>
+        <source>Begin playback</source>
+        <comment>Media controller element</comment>
+        <translation>再生を開始する</translation>
+    </message>
+    <message>
+        <source>Pause playback</source>
+        <comment>Media controller element</comment>
+        <translation>再生を一時停止する</translation>
+    </message>
+    <message>
+        <source>Movie time scrubber</source>
+        <comment>Media controller element</comment>
+        <translation>動画再生時間プログレスバー</translation>
+    </message>
+    <message>
+        <source>Movie time scrubber thumb</source>
+        <comment>Media controller element</comment>
+        <translation>動画再生時間プログレスバーのつまみ</translation>
+    </message>
+    <message>
+        <source>Rewind movie</source>
+        <comment>Media controller element</comment>
+        <translation>動画の巻き戻し</translation>
+    </message>
+    <message>
+        <source>Return streaming movie to real-time</source>
+        <comment>Media controller element</comment>
+        <translation>ストリーミング動画の再生を現在時間に戻る</translation>
+    </message>
+    <message>
+        <source>Current movie time</source>
+        <comment>Media controller element</comment>
+        <translation>現在の動画再生時間</translation>
+    </message>
+    <message>
+        <source>Remaining movie time</source>
+        <comment>Media controller element</comment>
+        <translation>残り動画再生時間</translation>
+    </message>
+    <message>
+        <source>Current movie status</source>
+        <comment>Media controller element</comment>
+        <translation>現在の動画のステータス</translation>
+    </message>
+    <message>
+        <source>Play movie in full-screen mode</source>
+        <comment>Media controller element</comment>
+        <translation>フルスクリーンモードで動画を再生する</translation>
+    </message>
+    <message>
+        <source>Seek quickly back</source>
+        <comment>Media controller element</comment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Seek quickly forward</source>
+        <comment>Media controller element</comment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Indefinite time</source>
+        <comment>Media time description</comment>
+        <translation>無期限</translation>
+    </message>
+    <message>
+        <source>%1 days %2 hours %3 minutes %4 seconds</source>
+        <comment>Media time description</comment>
+        <translation>%1 日 %2 時間 %3 分 %4 秒</translation>
+    </message>
+    <message>
+        <source>%1 hours %2 minutes %3 seconds</source>
+        <comment>Media time description</comment>
+        <translation>%1 時間 %2 分 %3 秒</translation>
+    </message>
+    <message>
+        <source>%1 minutes %2 seconds</source>
+        <comment>Media time description</comment>
+        <translation>%1 分 %2 秒</translation>
+    </message>
+    <message>
+        <source>%1 seconds</source>
+        <comment>Media time description</comment>
+        <translation>%1 秒</translation>
+    </message>
+    <message>
         <source>Inspect</source>
         <comment>Inspect Element context menu item</comment>
         <translatorcomment>?</translatorcomment>
         <translation>検査</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>検索の履歴はありません</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>検索の履歴</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>検索の履歴をクリア</translation>
     </message>
     <message>
-        <location line="+75"/>
+        <source>Missing Plug-in</source>
+        <comment>Label text to be used when a plug-in is missing</comment>
+        <translation>プラグインがありません</translation>
+    </message>
+    <message>
         <source>Unknown</source>
         <comment>Unknown filesize FTP directory listing item</comment>
         <translation>不明</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>%1 (%2x%3 pixels)</source>
         <comment>Title string for images</comment>
         <translation>%1 (%2x%3 ピクセル)</translation>
     </message>
     <message>
-        <location filename="../src/3rdparty/webkit/WebKit/qt/WebCoreSupport/InspectorClientQt.cpp" line="+185"/>
         <source>Web Inspector - %2</source>
         <translation>Web の検査 - %2</translation>
     </message>
     <message>
-        <location filename="../src/3rdparty/webkit/WebCore/platform/qt/ScrollbarQt.cpp" line="+58"/>
         <source>Scroll here</source>
         <translation>ここにスクロール</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Left edge</source>
         <translation>左端</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Top</source>
         <translation>上端</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Right edge</source>
         <translation>右端</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Bottom</source>
         <translation>下端</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Page left</source>
         <translation>1ページ左へスクロール</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Page up</source>
         <translation>1ページ戻る</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Page right</source>
         <translation>1ページ右へスクロール</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Page down</source>
         <translation>1ページ進む</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Scroll left</source>
         <translation>左へスクロール</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Scroll up</source>
         <translation>上へスクロール</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Scroll right</source>
         <translation>右へスクロール</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Scroll down</source>
         <translation>下へスクロール</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>
@@ -7456,171 +7355,198 @@
         </translation>
     </message>
     <message>
-        <location filename="../src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp" line="+1322"/>
         <source>JavaScript Alert - %1</source>
-        <translation>JavaScript アラート - %1</translation>
-    </message>
-    <message>
-        <location line="+15"/>
+        <translation>JavaScript 警告 - %1</translation>
+    </message>
+    <message>
         <source>JavaScript Confirm - %1</source>
         <translation>JavaScript 確認 - %1</translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>JavaScript Prompt - %1</source>
-        <translation>JavaScript 質問 - %1</translation>
-    </message>
-    <message>
-        <location line="+340"/>
+        <translation>JavaScript プロンプト - %1</translation>
+    </message>
+    <message>
+        <source>JavaScript Problem - %1</source>
+        <translation>JavaScript 問題 - %1</translation>
+    </message>
+    <message>
+        <source>The script on this page appears to have a problem. Do you want to stop the script?</source>
+        <translation>このページのスクリプトには問題があるようです。 スクリプトを停止しますか?</translation>
+    </message>
+    <message>
         <source>Move the cursor to the next character</source>
         <translation>次の文字へカーソルを移動</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Move the cursor to the previous character</source>
         <translation>前の文字にカーソルを移動</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Move the cursor to the next word</source>
         <translation>次の単語にカーソルを移動</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Move the cursor to the previous word</source>
         <translation>前の単語にカーソルを移動</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Move the cursor to the next line</source>
         <translation>次の行にカーソルを移動</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Move the cursor to the previous line</source>
         <translation>前の行にカーソルを移動</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Move the cursor to the start of the line</source>
         <translatorcomment>文なのか行なのか</translatorcomment>
         <translation>文頭にカーソルを移動</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Move the cursor to the end of the line</source>
         <translation>文末にカーソルを移動</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Move the cursor to the start of the block</source>
         <translation>ブロックの先頭にカーソルを移動</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Move the cursor to the end of the block</source>
         <translation>ブロックの末尾にカーソルを移動</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Move the cursor to the start of the document</source>
         <translation>文章の先頭にカーソルを移動</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Move the cursor to the end of the document</source>
         <translation>文章の末尾にカーソルを移動</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Select all</source>
         <translation>すべてを選択</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Select to the next character</source>
         <translation>次の文字を選択</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Select to the previous character</source>
         <translation>前の文字を選択</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Select to the next word</source>
         <translation>次の単語を選択</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Select to the previous word</source>
         <translation>前の単語を選択</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Select to the next line</source>
         <translation>次の行を選択</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Select to the previous line</source>
         <translation>前の行を選択</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Select to the start of the line</source>
         <translation>文頭から選択</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Select to the end of the line</source>
         <translation>文末まで選択</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Select to the start of the block</source>
         <translation>ブロックの先頭から選択</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Select to the end of the block</source>
         <translation>ブロックの末尾まで選択</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Select to the start of the document</source>
         <translation>ドキュメントの先頭から選択</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Select to the end of the document</source>
         <translation>ドキュメントの末尾まで選択</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Delete to the start of the word</source>
         <translation>単語の先頭まで削除</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Delete to the end of the word</source>
         <translation>単語の末尾まで削除</translation>
     </message>
     <message>
-        <location line="+33"/>
         <source>Insert a new paragraph</source>
         <translation>新しい段落を挿入</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Insert a new line</source>
         <translation>新しい行を挿入</translation>
     </message>
+    <message>
+        <source>Paste and Match Style</source>
+        <translation>ペースとしてスタイルを合わせる</translation>
+    </message>
+    <message>
+        <source>Remove formatting</source>
+        <translation>装飾の削除</translation>
+    </message>
+    <message>
+        <source>Strikethrough</source>
+        <translation>取り消し線</translation>
+    </message>
+    <message>
+        <source>Subscript</source>
+        <translation>下付き文字</translation>
+    </message>
+    <message>
+        <source>Superscript</source>
+        <translation>上付き文字</translation>
+    </message>
+    <message>
+        <source>Insert Bulleted List</source>
+        <translation>箇条書きの挿入</translation>
+    </message>
+    <message>
+        <source>Insert Numbered List</source>
+        <translation>順序付きリストの挿入</translation>
+    </message>
+    <message>
+        <source>Indent</source>
+        <translation>インデント</translation>
+    </message>
+    <message>
+        <source>Outdent</source>
+        <translation>アウトデント</translation>
+    </message>
+    <message>
+        <source>Center</source>
+        <translation>センタリング</translation>
+    </message>
+    <message>
+        <source>Justify</source>
+        <translation>両端揃え</translation>
+    </message>
+    <message>
+        <source>Align Left</source>
+        <translation>左寄せ</translation>
+    </message>
+    <message>
+        <source>Align Right</source>
+        <translation>右寄せ</translation>
+    </message>
 </context>
 <context>
     <name>QWhatsThisAction</name>
     <message>
-        <location filename="../src/gui/kernel/qwhatsthis.cpp" line="+522"/>
         <source>What&apos;s This?</source>
         <translation>ヒント?</translation>
     </message>
@@ -7628,7 +7554,6 @@
 <context>
     <name>QWidget</name>
     <message>
-        <location filename="../src/gui/kernel/qwidget.cpp" line="+5288"/>
         <source>*</source>
         <translation>*</translation>
     </message>
@@ -7636,57 +7561,46 @@
 <context>
     <name>QWizard</name>
     <message>
-        <location filename="../src/gui/dialogs/qwizard.cpp" line="+637"/>
         <source>Go Back</source>
         <translation>戻る</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Continue</source>
         <translation>続き</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Commit</source>
         <translation>適用</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Done</source>
         <translation>終了</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Help</source>
         <translation>ヘルプ</translation>
     </message>
     <message>
-        <location line="-14"/>
         <source>&lt; &amp;Back</source>
         <translation>&lt; 戻る(&amp;B)</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>&amp;Finish</source>
         <translation>完了(&amp;F)</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Cancel</source>
         <translation>キャンセル</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>&amp;Help</source>
         <translation>ヘルプ(&amp;H)</translation>
     </message>
     <message>
-        <location line="-8"/>
         <source>&amp;Next</source>
         <translation>次へ(&amp;N)</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>&amp;Next &gt;</source>
         <translation>次へ(&amp;N) &gt;</translation>
     </message>
@@ -7694,69 +7608,54 @@
 <context>
     <name>QWorkspace</name>
     <message>
-        <location filename="../src/gui/widgets/qworkspace.cpp" line="+1094"/>
         <source>&amp;Restore</source>
         <translation>元に戻す(&amp;R)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Move</source>
         <translation>移動(&amp;M)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Size</source>
         <translation>サイズを変更(&amp;S)</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Mi&amp;nimize</source>
         <translation>最小化(&amp;N)</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Ma&amp;ximize</source>
         <translation>最大化(&amp;X)</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>&amp;Close</source>
         <translation>閉じる(&amp;C)</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Stay on &amp;Top</source>
         <translation>常に手前に表示(&amp;T)</translation>
     </message>
     <message>
-        <location line="+3"/>
-        <location line="+1059"/>
         <source>Sh&amp;ade</source>
         <translation>シェード(&amp;A)</translation>
     </message>
     <message>
-        <location line="-278"/>
-        <location line="+60"/>
         <source>%1 - [%2]</source>
         <translation>%1 - [%2]</translation>
     </message>
     <message>
-        <location line="-1837"/>
         <source>Minimize</source>
         <translation>最小化</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Restore Down</source>
         <translation>元に戻す</translation>
     </message>
     <message>
-        <location line="-4"/>
         <source>Close</source>
         <translation>閉じる</translation>
     </message>
     <message>
-        <location line="+2053"/>
         <source>&amp;Unshade</source>
         <translation>シェードを解除(&amp;U)</translation>
     </message>
@@ -7764,307 +7663,2088 @@
 <context>
     <name>QXml</name>
     <message>
-        <location filename="../src/xml/sax/qxml.cpp" line="+58"/>
         <source>no error occurred</source>
         <translation>エラーは発生しませんでした</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>error triggered by consumer</source>
         <translation>消費者によってエラーが誘発されました</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>unexpected end of file</source>
-        <translation>予期せぬファイルの終りです</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>予期しないファイルの終りです</translation>
+    </message>
+    <message>
         <source>more than one document type definition</source>
         <translation>ドキュメントタイプの定義が複数あります</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>error occurred while parsing element</source>
         <translation>要素の解析中にエラーが発生しました</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>tag mismatch</source>
         <translation>タグが一致しません</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>error occurred while parsing content</source>
         <translation>コンテンツの解析中にエラーが発生しました</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>unexpected character</source>
         <translation>予期しない文字です</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>invalid name for processing instruction</source>
         <translation>処理の指示に無効な名前です</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>version expected while reading the XML declaration</source>
         <translation>XML宣言を読み込むにはバージョンが必要です</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>wrong value for standalone declaration</source>
         <translation>スタンドアロン宣言として正しくない値です</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>encoding declaration or standalone declaration expected while reading the XML declaration</source>
         <translation>XML宣言を読み込むにはエンコーディング宣言かスタンドアローン宣言が必要です</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>standalone declaration expected while reading the XML declaration</source>
         <translation>XML宣言を読み込むにはスタンドアローン宣言が必要です</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>error occurred while parsing document type definition</source>
         <translation>ドキュメントタイプの定義を解析中にエラーが発生しました</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>letter is expected</source>
         <translation>文字が必要です</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>error occurred while parsing comment</source>
         <translation>コメントの解析中にエラーが発生しました</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>error occurred while parsing reference</source>
         <translation>参照の解析中にエラーが発生しました</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>internal general entity reference not allowed in DTD</source>
-        <translation>内部一般エンティティ参照はDTDで許されていません</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>内部一般エンティティ参照はDTDで許可されていません</translation>
+    </message>
+    <message>
         <source>external parsed general entity reference not allowed in attribute value</source>
         <translation>解析された外部一般エンティティ参照は属性値で許されていません</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>external parsed general entity reference not allowed in DTD</source>
         <translation>解析された外部一般エンティティ参照はDTDで許されていません</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>unparsed entity reference in wrong context</source>
         <translation>不正な文脈で解析されないエンティティ参照です</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>recursive entities</source>
         <translation>再帰的エンティティ</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>error in the text declaration of an external entity</source>
         <translation>外部エンティティのテキスト宣言にエラーがあります</translation>
     </message>
 </context>
 <context>
+    <name>QXmlPatternistCLI</name>
+    <message>
+        <source>Warning in %1, at line %2, column %3: %4</source>
+        <translation>%1 にて警告(%2 行目, %3 列): %4</translation>
+    </message>
+    <message>
+        <source>Warning in %1: %2</source>
+        <translation>%1 にて警告: %2</translation>
+    </message>
+    <message>
+        <source>Unknown location</source>
+        <translation>無効なパス</translation>
+    </message>
+    <message>
+        <source>Error %1 in %2, at line %3, column %4: %5</source>
+        <translation>%2 にてエラー %1 (%3 行目, %4 列): %5</translation>
+    </message>
+    <message>
+        <source>Error %1 in %2: %3</source>
+        <translation>%2 にてエラー %1: %3</translation>
+    </message>
+</context>
+<context>
     <name>QXmlStream</name>
     <message>
-        <location filename="../src/corelib/xml/qxmlstream.cpp" line="+592"/>
-        <location filename="../src/corelib/xml/qxmlstream_p.h" line="+1770"/>
         <source>Extra content at end of document.</source>
         <translation>ドキュメントの末尾に余計なものがついています。</translation>
     </message>
     <message>
-        <location line="+222"/>
         <source>Invalid entity value.</source>
         <translation>エンティティの値が無効です。</translation>
     </message>
     <message>
-        <location line="+107"/>
         <source>Invalid XML character.</source>
         <translation>無効な XML 文字です。</translation>
     </message>
     <message>
-        <location line="+259"/>
         <source>Sequence &apos;]]&gt;&apos; not allowed in content.</source>
         <translation>このコンテキストでは、&apos;]]&gt;&apos; は許可されていません。</translation>
     </message>
     <message>
-        <location line="+279"/>
-        <location filename="../src/corelib/xml/qxmlstream_p.h" line="-691"/>
         <source>Encountered incorrectly encoded content.</source>
         <translation>正しくないエンコードの文脈に遭遇しました。</translation>
     </message>
     <message>
-        <location line="+30"/>
         <source>Namespace prefix &apos;%1&apos; not declared</source>
         <translation>名前空間のブリフィックス &apos;%1&apos; は宣言されていません</translation>
     </message>
     <message>
-        <location line="+78"/>
         <source>Attribute redefined.</source>
         <translation>属性が再度指定されています。</translation>
     </message>
     <message>
-        <location line="+115"/>
         <source>Unexpected character &apos;%1&apos; in public id literal.</source>
         <translatorcomment>DTD宣言の部分</translatorcomment>
         <translation>公開 ID 指定に使用できない文字 &apos;%1&apos; が使用されています。</translation>
     </message>
     <message>
-        <location line="+28"/>
         <source>Invalid XML version string.</source>
         <translation>無効な XML バージョン指定です。</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Unsupported XML version.</source>
         <translation>この XML のバージョンはサポートされていません。</translation>
     </message>
     <message>
-        <location line="+21"/>
         <source>The standalone pseudo attribute must appear after the encoding.</source>
         <translatorcomment>&amp;ddd; は、エンコーディングを指定していないと使えないということかな。utf8だとおもうけど。</translatorcomment>
         <translation>仮想属性指定は、エンコーディング指定の後にのみ使用できます。</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>%1 is an invalid encoding name.</source>
         <translation>%1 は無効なエンコーディングの名前です。</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Encoding %1 is unsupported</source>
         <translation>エンコーディング &apos;%1&apos; はサポートされていません</translation>
     </message>
     <message>
-        <location line="+16"/>
         <source>Standalone accepts only yes or no.</source>
         <translation>standalone の指定は yes または no のみ指定できます。</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Invalid attribute in XML declaration.</source>
         <translation>XML 宣言に無効な属性がついています。</translation>
     </message>
     <message>
-        <location line="+16"/>
         <source>Premature end of document.</source>
         <translation>ドキュメントが途中で終わっています。</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Invalid document.</source>
         <translation>無効なドキュメントです。</translation>
     </message>
     <message>
-        <location line="+40"/>
         <source>Expected </source>
         <translation>予期していた表現は、</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>, but got &apos;</source>
         <translation>ですが、取得した表現は以下のものでした &apos;</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Unexpected &apos;</source>
         <translation>予期していなかった表現 &apos;</translation>
     </message>
     <message>
-        <location line="+210"/>
         <source>Expected character data.</source>
         <translation>予期していた文字列。</translation>
     </message>
     <message>
-        <location filename="../src/corelib/xml/qxmlstream_p.h" line="-304"/>
         <source>Recursive entity detected.</source>
         <translation>再帰しているエンティティを発見しました。</translation>
     </message>
     <message>
-        <location line="+516"/>
         <source>Start tag expected.</source>
-        <translation>開始タグをよきしていましたが、みつかりません。</translation>
-    </message>
-    <message>
-        <location line="+191"/>
+        <translation>開始タグを予期していましたが、みつかりません。</translation>
+    </message>
+    <message>
         <source>NDATA in parameter entity declaration.</source>
         <translation>パラメータエンティティの宣言において NDATA があります。</translation>
     </message>
     <message>
-        <location line="+31"/>
         <source>XML declaration not at start of document.</source>
         <translation>XML 宣言がドキュメントの先頭にありません。</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>%1 is an invalid processing instruction name.</source>
         <translatorcomment>XMLにそんなのあったっけ?</translatorcomment>
         <translation>%1 は無効な処理指定の名前です。</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>Invalid processing instruction name.</source>
         <translation>無効な処理命令です。</translation>
     </message>
     <message>
-        <location line="+114"/>
         <source>%1 is an invalid PUBLIC identifier.</source>
         <translation>%1 は、公開 (PUBLIC) 識別子として無効です。</translation>
     </message>
     <message>
-        <location filename="../src/corelib/xml/qxmlstream.cpp" line="-521"/>
-        <location line="+12"/>
-        <location filename="../src/corelib/xml/qxmlstream_p.h" line="+50"/>
-        <location line="+53"/>
         <source>Illegal namespace declaration.</source>
         <translation>無効な名前空間の指定です。</translation>
     </message>
     <message>
-        <location filename="../src/corelib/xml/qxmlstream_p.h" line="+15"/>
         <source>Invalid XML name.</source>
         <translation>無効な XML 名です。</translation>
     </message>
     <message>
-        <location line="+23"/>
         <source>Opening and ending tag mismatch.</source>
         <translation>開始タグと、終了タグがマッチしません。</translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>Reference to unparsed entity &apos;%1&apos;.</source>
         <translation>まだパースしていないエンティティ &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; は宣言されていません。</translation>
     </message>
     <message>
-        <location line="-26"/>
         <source>Reference to external entity &apos;%1&apos; in attribute value.</source>
         <translation>属性値として、外部エンティティ &apos;%1&apos; を再度指定しています。</translation>
     </message>
     <message>
-        <location line="+40"/>
         <source>Invalid character reference.</source>
         <translation>無効な文字への参照です。</translation>
     </message>
 </context>
+<context>
+    <name>QtXmlPatterns</name>
+    <message>
+        <source>%1 is an unsupported encoding.</source>
+        <translation>%1 はサポートされていないエンコーディングです。</translation>
+    </message>
+    <message>
+        <source>%1 contains octets which are disallowed in the requested encoding %2.</source>
+        <translation>エンコーディング %2 では許可されていないオクテットが %1 に含まれています。</translation>
+    </message>
+    <message>
+        <source>The codepoint %1, occurring in %2 using encoding %3, is an invalid XML character.</source>
+        <translation>%2 で使用されているエンコード %3 では、コードポイント %1 は有効な XML 表現ではありません。</translation>
+    </message>
+    <message>
+        <source>Network timeout.</source>
+        <translation>ネットワーク接続がタイムアウトしました。</translation>
+    </message>
+    <message>
+        <source>Element %1 can&apos;t be serialized because it appears outside the document element.</source>
+        <translation>エレメント %1 はシリアライズできません。このドキュメントの範囲を越えるエレメントを含んでいます。</translation>
+    </message>
+    <message>
+        <source>Attribute %1 can&apos;t be serialized because it appears at the top level.</source>
+        <translation>属性 %1 はシリアライズできません。トップレベルに現れているためです。</translation>
+    </message>
+    <message>
+        <source>Year %1 is invalid because it begins with %2.</source>
+        <translation>%1 年はむこうです。%2 で始まっています。</translation>
+    </message>
+    <message>
+        <source>Day %1 is outside the range %2..%3.</source>
+        <translation>%1 日は、有効な範囲 %2..%3 を逸脱しています。</translation>
+    </message>
+    <message>
+        <source>Month %1 is outside the range %2..%3.</source>
+        <translation>%1 月は、有効な範囲 %2..%3 を逸脱しています。</translation>
+    </message>
+    <message>
+        <source>Overflow: Can&apos;t represent date %1.</source>
+        <translation>オーバーフロー: 日付 %1 を再現できません。</translation>
+    </message>
+    <message>
+        <source>Day %1 is invalid for month %2.</source>
+        <translation>%2 月には、%1 日は存在しません。</translation>
+    </message>
+    <message>
+        <source>Time 24:%1:%2.%3 is invalid. Hour is 24, but minutes, seconds, and milliseconds are not all 0; </source>
+        <translation>24:%1:%2.%3 は無効です。24時0分0秒のみ使用できます</translation>
+    </message>
+    <message>
+        <source>Time %1:%2:%3.%4 is invalid.</source>
+        <translation>時刻 %1時%2分%3.%4秒は無効です。</translation>
+    </message>
+    <message>
+        <source>Overflow: Date can&apos;t be represented.</source>
+        <translation>オーバーフロー: 日付を再現できません。</translation>
+    </message>
+    <message>
+        <source>At least one component must be present.</source>
+        <translation>年、月、日のうちいずれかを指定しなければなりません。</translation>
+    </message>
+    <message>
+        <source>At least one time component must appear after the %1-delimiter.</source>
+        <translation>%1 の後には、時刻を指定しなければなりません。</translation>
+    </message>
+    <message>
+        <source>%1 is not a valid value of type %2.</source>
+        <translation>%1 は、%2 の型に対して有効な値ではありません。</translation>
+    </message>
+    <message>
+        <source>When casting to %1 from %2, the source value cannot be %3.</source>
+        <translation>%2 から %1 への型変換に際しては、値 %3 は有効な値ではありません。</translation>
+    </message>
+    <message>
+        <source>Integer division (%1) by zero (%2) is undefined.</source>
+        <translation>整数の除算において %1 をゼロ (%2) で割った結果は定義されていません。</translation>
+    </message>
+    <message>
+        <source>Division (%1) by zero (%2) is undefined.</source>
+        <translation>除算において %1 をゼロ (%2) で割った結果は定義されていません。</translation>
+    </message>
+    <message>
+        <source>Modulus division (%1) by zero (%2) is undefined.</source>
+        <translation>剰余を求めるに際し、%1 をゼロ (%2) で除した結果は定義されていません。</translation>
+    </message>
+    <message>
+        <source>Dividing a value of type %1 by %2 (not-a-number) is not allowed.</source>
+        <translation>型 %1 を非数 %2 (NaN) で除すことはできません。</translation>
+    </message>
+    <message>
+        <source>Dividing a value of type %1 by %2 or %3 (plus or minus zero) is not allowed.</source>
+        <translation>型 %1 を%2 または %3 (正または負のゼロ) で除することはできません。</translation>
+    </message>
+    <message>
+        <source>Multiplication of a value of type %1 by %2 or %3 (plus or minus infinity) is not allowed.</source>
+        <translation>型 %1 を %2 または %3 (正または負のゼロ)で乗ずることはできません。</translation>
+    </message>
+    <message>
+        <source>A value of type %1 cannot have an Effective Boolean Value.</source>
+        <translation>型 %1 は有効な論理型(bool)ではありません。</translation>
+    </message>
+    <message>
+        <source>Effective Boolean Value cannot be calculated for a sequence containing two or more atomic values.</source>
+        <translation>論理型は、論理型以外の複数の値からなる計算によって求めることはできません。</translation>
+    </message>
+    <message>
+        <source>Value %1 of type %2 exceeds maximum (%3).</source>
+        <translation>型 %2 の値 %1 は、上限 (%3) を越えています。</translation>
+    </message>
+    <message>
+        <source>Value %1 of type %2 is below minimum (%3).</source>
+        <translation>型 %2 の値 %1 は、下限 (%3) を越えています。</translation>
+    </message>
+    <message>
+        <source>A value of type %1 must contain an even number of digits. The value %2 does not.</source>
+        <translation>型 %1 の値は偶数個の十進数文字を必要とします。しかし、%2 はそうではありません。</translation>
+    </message>
+    <message>
+        <source>%1 is not valid as a value of type %2.</source>
+        <translation>型 %2 に対して、値 %1 は有効ではありません。</translation>
+    </message>
+    <message>
+        <source>Ambiguous rule match.</source>
+        <translation>曖昧なルールにマッチしました。</translation>
+    </message>
+    <message>
+        <source>Operator %1 cannot be used on type %2.</source>
+        <translation>型 %2 に対して、オペレータ %1 は使用できません。</translation>
+    </message>
+    <message>
+        <source>Operator %1 cannot be used on atomic values of type %2 and %3.</source>
+        <translation>アトミックな型 %2 と %3 に対して、オペレータ %1 は使用できません。</translation>
+    </message>
+    <message>
+        <source>The namespace URI in the name for a computed attribute cannot be %1.</source>
+        <translation>結合された属性に対する名前空間のURIとして、%1 を使用することはできません。</translation>
+    </message>
+    <message>
+        <source>The name for a computed attribute cannot have the namespace URI %1 with the local name %2.</source>
+        <translation>結合された属性の名前空間URI %1 は、ローカルな名前である %2 と併用できません。</translation>
+    </message>
+    <message>
+        <source>Type error in cast, expected %1, received %2.</source>
+        <translation>型変換時のエラーです。望んでいた %1 ではなく、%2 になりました。</translation>
+    </message>
+    <message>
+        <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 またはそれを継承している型への型変換においては、元の値の型は同じ型か、リテラルな文字列である必要があります。型 %2 は許可されていません。</translation>
+    </message>
+    <message>
+        <source>A comment cannot contain %1</source>
+        <translation>コメントが %1 を含むことはできません</translation>
+    </message>
+    <message>
+        <source>A comment cannot end with a %1.</source>
+        <translation>コメントは %1 で終了することはできません。</translation>
+    </message>
+    <message>
+        <source>In a namespace constructor, the value for a namespace cannot be an empty string.</source>
+        <translation>名前空間のスントラクトにおいて、空白の文字列を名前空間の値として使用することはできません。</translation>
+    </message>
+    <message>
+        <source>The prefix must be a valid %1, which %2 is not.</source>
+        <translation>プレフィックスは %1 でなければなりません。%2 は無効です。</translation>
+    </message>
+    <message>
+        <source>The prefix %1 cannot be bound.</source>
+        <translation>プレフィックス %1 はバウンドできません。</translation>
+    </message>
+    <message>
+        <source>Only the prefix %1 can be bound to %2 and vice versa.</source>
+        <translation>プレフィックス %1 は、%2 にのみバウンドできます。逆も同じです。</translation>
+    </message>
+    <message>
+        <source>An attribute node cannot be a child of a document node. Therefore, the attribute %1 is out of place.</source>
+        <translation>ドキュメントノードの子として属性ノードを指定することはできません。属性 %1 は誤った場所にあります。</translation>
+    </message>
+    <message>
+        <source>A library module cannot be evaluated directly. It must be imported from a main module.</source>
+        <translation>ライブラリモジュールを直接評価することはできません。メインモジュールからインポートする必要があります。</translation>
+    </message>
+    <message>
+        <source>No template by name %1 exists.</source>
+        <translation>テンプレート名 %1 は存在しません。</translation>
+    </message>
+    <message>
+        <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>型 %1 は述部として使用できません。数値型か、論理型である必要があります。</translation>
+    </message>
+    <message>
+        <source>A positional predicate must evaluate to a single numeric value.</source>
+        <translation>述部は評価されたとき、単一の数値になるようにしなければなりません。</translation>
+    </message>
+    <message>
+        <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>ターゲットとしている名前は、%1 であってはなりません。%2 は無効です。</translation>
+    </message>
+    <message>
+        <source>%1 is not a valid target name in a processing instruction. It must be a %2 value, e.g. %3.</source>
+        <translation>%1 はターゲットとして無効です。%2 である必要があります。例えば &quot;%3&quot; のようにです。</translation>
+    </message>
+    <message>
+        <source>The last step in a path must contain either nodes or atomic values. It cannot be a mixture between the two.</source>
+        <translation>バスの末端であるリーフは、単一のノードかアトミックな値である必要があります。複数の型の組み合わせであってはいけません。</translation>
+    </message>
+    <message>
+        <source>The data of a processing instruction cannot contain the string %1</source>
+        <translation>処理中のデータは、以下の文字列を含んでいてはなりません: %1</translation>
+    </message>
+    <message>
+        <source>No namespace binding exists for the prefix %1</source>
+        <translation>プレフィックス %1 にバインドされたネームスペースがありません</translation>
+    </message>
+    <message>
+        <source>No namespace binding exists for the prefix %1 in %2</source>
+        <translation>%2 におけるプレフィックス %1 にバインディングされたネームスペースが存在しません</translation>
+    </message>
+    <message>
+        <source>%1 is an invalid %2</source>
+        <translation>型 %2 に対し、値 %1 は無効です</translation>
+    </message>
+    <message>
+        <source>The parameter %1 is passed, but no corresponding %2 exists.</source>
+        <translation>パラメータ %1 を処理しました。しかし、対応する %2 が存在しません。</translation>
+    </message>
+    <message>
+        <source>The parameter %1 is required, but no corresponding %2 is supplied.</source>
+        <translation>パメータ %1 が必要です。しかし、対応する %2 がありません。</translation>
+    </message>
+    <message numerus="yes">
+        <source>%1 takes at most %n argument(s). %2 is therefore invalid.</source>
+        <translation>
+            <numerusform>%1 は、最大で %n 個の引数をとることができます。%2 は無効です。</numerusform>
+        </translation>
+    </message>
+    <message numerus="yes">
+        <source>%1 requires at least %n argument(s). %2 is therefore invalid.</source>
+        <translation>
+            <numerusform>%1 は、少くとも %n 個の引数を必要とします。%2 は無効です。</numerusform>
+        </translation>
+    </message>
+    <message>
+        <source>The first argument to %1 cannot be of type %2. It must be a numeric type, xs:yearMonthDuration or xs:dayTimeDuration.</source>
+        <translation>%1 への最初の引数は、型 %2 であってはなりません。数値型、xs:yerMonthDuration、xs:dayTimeDurationである必要があります。</translation>
+    </message>
+    <message>
+        <source>The first argument to %1 cannot be of type %2. It must be of type %3, %4, or %5.</source>
+        <translation>%1 への最初の引数は、型 %2 であってはなりません。%3, %4, %5 のいずれかである必要があります。</translation>
+    </message>
+    <message>
+        <source>The second argument to %1 cannot be of type %2. It must be of type %3, %4, or %5.</source>
+        <translation>%1 への二つ目の引数は、型 %2 であってはなりません。%3, %4, %5 のいずれかである必要があります。</translation>
+    </message>
+    <message>
+        <source>%1 is not a valid XML 1.0 character.</source>
+        <translation>%1 は XML 1.0 において有効な文字ではありません。</translation>
+    </message>
+    <message>
+        <source>The root node of the second argument to function %1 must be a document node. %2 is not a document node.</source>
+        <translation>%1 への二つ目の引数のルートノードは、ドキュメントノードでなければなりません。しかし、%2 はドキュメントノードではありません。</translation>
+    </message>
+    <message>
+        <source>If both values have zone offsets, they must have the same zone offset. %1 and %2 are not the same.</source>
+        <translation>もし二つの値がゾーンオフセットをもつ場合、両者は同じゾーンオフセットでなければなりません。%1 と %2 は同一ではありません。</translation>
+    </message>
+    <message>
+        <source>%1 was called.</source>
+        <translation>%1 が呼ばれました。</translation>
+    </message>
+    <message>
+        <source>%1 must be followed by %2 or %3, not at the end of the replacement string.</source>
+        <translation>%1 の後には、%2 か %3 が続かなければなりません。</translation>
+    </message>
+    <message>
+        <source>In the replacement string, %1 must be followed by at least one digit when not escaped.</source>
+        <translation>置換操作において、%1 には少くとも一文字以上の数値が続く必要があります(エスケープされている場合を除く)。</translation>
+    </message>
+    <message>
+        <source>In the replacement string, %1 can only be used to escape itself or %2, not %3</source>
+        <translation>置換操作において、%1 はそれ自身または %2 をエスケープする為にのみ使用できます。%3 に対しては使用できません</translation>
+    </message>
+    <message>
+        <source>%1 matches newline characters</source>
+        <translation>%1 は改行文字(列)にマッチしました</translation>
+    </message>
+    <message>
+        <source>%1 and %2 match the start and end of a line.</source>
+        <translation>%1 と %2 は、行の先頭と末尾にマッチしました。</translation>
+    </message>
+    <message>
+        <source>Matches are case insensitive</source>
+        <translation>マッチは大文字小文字を区別しません</translation>
+    </message>
+    <message>
+        <source>Whitespace characters are removed, except when they appear in character classes</source>
+        <translation>空白文字は削除されました。ただし、キャラクタークラスに属するものは除きます</translation>
+    </message>
+    <message>
+        <source>%1 is an invalid regular expression pattern: %2</source>
+        <translation>%1 は有効な正規表現ではありません。: %2</translation>
+    </message>
+    <message>
+        <source>%1 is an invalid flag for regular expressions. Valid flags are:</source>
+        <translation>%1 は正規表現において無効なフラグです。使用可能なフラグは次の通りです:</translation>
+    </message>
+    <message>
+        <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>もし、最初の引数が空白からなる文字列か、長さが0 (名前空間をともなわない)である場合、プレフィックスを指定することはできません。しかし、プレフィックスとして %1 が指定されています。</translation>
+    </message>
+    <message>
+        <source>It will not be possible to retrieve %1.</source>
+        <translation>%1 を取得することはできないかもしれません。</translation>
+    </message>
+    <message>
+        <source>The default collection is undefined</source>
+        <translation>デフォルトのコレクションが定義されていません</translation>
+    </message>
+    <message>
+        <source>%1 cannot be retrieved</source>
+        <translation>%1 を取得できません</translation>
+    </message>
+    <message>
+        <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>正規化された表現 %1 はサポートされていません。サポートされている表現は、%2, %3, %4, %5 のみです。</translation>
+    </message>
+    <message>
+        <source>A zone offset must be in the range %1..%2 inclusive. %3 is out of range.</source>
+        <translation>ゾーンオフセットは、%1 から %2 の範囲である必要があります(境界を含む)。%3 は範囲外です。</translation>
+    </message>
+    <message>
+        <source>%1 is not a whole number of minutes.</source>
+        <translation>%1 は、分を現す値ではありません。</translation>
+    </message>
+    <message>
+        <source>The URI cannot have a fragment</source>
+        <translation>この URI はフラグメントをもつことはできません</translation>
+    </message>
+    <message>
+        <source>Required cardinality is %1; got cardinality %2.</source>
+        <translation>カーディナリティ %1 が必要です。%2 ではありません。</translation>
+    </message>
+    <message>
+        <source>The item %1 did not match the required type %2.</source>
+        <translation>アイテム %1 は、要求された型 %2 にマッチしません。</translation>
+    </message>
+    <message>
+        <source>The variable %1 is unused</source>
+        <translation>値 %1 は使用されませんでした</translation>
+    </message>
+    <message>
+        <source>W3C XML Schema identity constraint selector</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>W3C XML Schema identity constraint field</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>A construct was encountered which is disallowed in the current language(%1).</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 is an unknown schema type.</source>
+        <translation>%1 はサポートされていないスキーマのタイプです。</translation>
+    </message>
+    <message>
+        <source>A template with name %1 has already been declared.</source>
+        <translation>テンプレート名 &apos;%1&apos; は、既に宣言されています。</translation>
+    </message>
+    <message>
+        <source>%1 is not a valid numeric literal.</source>
+        <translation>%1 は数値リテラルとして無効です。</translation>
+    </message>
+    <message>
+        <source>Only one %1 declaration can occur in the query prolog.</source>
+        <translation>クエリーのプロローグでは、%1 は一回のみ宣言できます。</translation>
+    </message>
+    <message>
+        <source>The initialization of variable %1 depends on itself</source>
+        <translation>値 %1 の初期化は、それ自身に依存しています</translation>
+    </message>
+    <message>
+        <source>No variable with name %1 exists</source>
+        <translation>変数 %1 は存在しません</translation>
+    </message>
+    <message>
+        <source>Version %1 is not supported. The supported XQuery version is 1.0.</source>
+        <translation>バージョン %1 はサポートされていません。XQuery バージョン 1.0 のみサポートされています。</translation>
+    </message>
+    <message>
+        <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>エンコーディング &apos;%1&apos; は無効です。ラテン文字 (空白を除く) からなるもので、正規表現 &apos;%2&apos; にマッチするもののみ使用できます。</translation>
+    </message>
+    <message>
+        <source>No function with signature %1 is available</source>
+        <translation>シグネチャ %1 をもつ関数がみつかりません</translation>
+    </message>
+    <message>
+        <source>A default namespace declaration must occur before function, variable, and option declarations.</source>
+        <translation>標準の名前空間の宣言は、関数、変数、オプションの宣言の前にしなければなりません。</translation>
+    </message>
+    <message>
+        <source>Namespace declarations must occur before function, variable, and option declarations.</source>
+        <translation>名前空間の宣言は、関数、変数、オプションの宣言の前にしなければなりません。</translation>
+    </message>
+    <message>
+        <source>Module imports must occur before function, variable, and option declarations.</source>
+        <translation>モジュールのインポートは、関数、変数、オプションの宣言の前にしなければなりません。</translation>
+    </message>
+    <message>
+        <source>The keyword %1 cannot occur with any other mode name.</source>
+        <translation>キーワード %1 は、他の名をともなって使用することはできません。</translation>
+    </message>
+    <message>
+        <source>The value of attribute %1 must be of type %2, which %3 isn&apos;t.</source>
+        <translation>属性 &apos;%1&apos; の値として &apos;%3&apos; が指定されましたが、型 &apos;%2&apos; でなければなりません。</translation>
+    </message>
+    <message>
+        <source>It is not possible to redeclare prefix %1.</source>
+        <translation>プレフィックス &apos;%1&apos; を再定義することはできません。</translation>
+    </message>
+    <message>
+        <source>The prefix %1 cannot be bound. By default, it is already bound to the namespace %2.</source>
+        <translation>プレフィックス &apos;%1&apos; はバウンドできません。デフォルトでは、それは既に名前空間 &apos;%2&apos; にバウンドされています。</translation>
+    </message>
+    <message>
+        <source>Prefix %1 is already declared in the prolog.</source>
+        <translation>プロローグ部において、プレフィックス &apos;%1&apos; はすでに宣言されています。</translation>
+    </message>
+    <message>
+        <source>The name of an option must have a prefix. There is no default namespace for options.</source>
+        <translation>オプションの名前はプレフィックスをもたなければなりません。このオプションに対するデフォルトの名前空間は存在しません。</translation>
+    </message>
+    <message>
+        <source>The Schema Import feature is not supported, and therefore %1 declarations cannot occur.</source>
+        <translation>このスキーマのインポート機能は使用できません。また、&apos;%1&apos; 宣言も使用できません。</translation>
+    </message>
+    <message>
+        <source>The target namespace of a %1 cannot be empty.</source>
+        <translation>名前空間 &apos;%1&apos; は、空であってはなりません。</translation>
+    </message>
+    <message>
+        <source>The module import feature is not supported</source>
+        <translation>モジュールインポートの機能はサポートされていません</translation>
+    </message>
+    <message>
+        <source>A variable with name %1 has already been declared.</source>
+        <translation>名前 &apos;%1&apos; の変数は、すでに宣言されています。</translation>
+    </message>
+    <message>
+        <source>No value is available for the external variable with name %1.</source>
+        <translation>外部変数 &apos;%1&apos; の値がみつかりません。</translation>
+    </message>
+    <message>
+        <source>A stylesheet function must have a prefixed name.</source>
+        <translation>スタイルシート関数は、プレフィックス名を持たなければなりません。</translation>
+    </message>
+    <message>
+        <source>The namespace for a user defined function cannot be empty (try the predefined prefix %1 which exists for cases like this)</source>
+        <translation>ユーザ定義の関数の名前空間は、空であってはなりません。(すでに定義されているプレフィックス &apos;%1&apos; が使用できます)</translation>
+    </message>
+    <message>
+        <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>名前空間 &apos;%1&apos; は予約済です。ユーザ定義の関数では使用することはできません。プレフィックス &apos;%2&apos; が使用できます。</translation>
+    </message>
+    <message>
+        <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>ライブラリモジュールで使用されている名前空間は、モジュールの名前空間と同一でなければなりません。つまり、&apos;%2&apos; ではなく、&apos;%1&apos; でなければなりません</translation>
+    </message>
+    <message>
+        <source>A function already exists with the signature %1.</source>
+        <translation>シグネチャー &apos;%1&apos; の関数はすでに存在しています。</translation>
+    </message>
+    <message>
+        <source>No external functions are supported. All supported functions can be used directly, without first declaring them as external</source>
+        <translation>外部関数はサポートされていません。すべてのサポートされている関数は、外部宣言をすることなく、直接使用することができます</translation>
+    </message>
+    <message>
+        <source>An argument with name %1 has already been declared. Every argument name must be unique.</source>
+        <translation>引数名 &apos;%1&apos; は既に宣言されています。すべての引数名はユニークである必要があります。</translation>
+    </message>
+    <message>
+        <source>When function %1 is used for matching inside a pattern, the argument must be a variable reference or a string literal.</source>
+        <translation>パターン一致の内側で関数 &apos;%1&apos; を使用する場合、引数はリテラルな文字列を参照する値でなければなりません。</translation>
+    </message>
+    <message>
+        <source>In an XSL-T pattern, the first argument to function %1 must be a string literal, when used for matching.</source>
+        <translation>XSL-T パターンマッチングにおいて、関数 &apos;%1&apos; の最初の引数は、リテラルな文字列でなければなりません。</translation>
+    </message>
+    <message>
+        <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>XSL-T パターンマッチングにおいて、関数 &apos;%1&apos; への最初の引数は、リテラルか変数でなければなりません。</translation>
+    </message>
+    <message>
+        <source>In an XSL-T pattern, function %1 cannot have a third argument.</source>
+        <translation>XSL-T パターンにおいて、関数 &apos;%1&apos; は三つの引数をもつことはできません。</translation>
+    </message>
+    <message>
+        <source>In an XSL-T pattern, only function %1 and %2, not %3, can be used for matching.</source>
+        <translation>XSL-T パターンマッチングにおいて、関数 &apos;%1&apos; と &apos;%2&apos; のみ使用できます。&apos;%3&apos; は使用できません。</translation>
+    </message>
+    <message>
+        <source>In an XSL-T pattern, axis %1 cannot be used, only axis %2 or %3 can.</source>
+        <translation>XSL-T パターンにおいて、axis %1 は使用できません。%2 または %3 のみ使用できます。</translation>
+    </message>
+    <message>
+        <source>%1 is an invalid template mode name.</source>
+        <translation>%1 はテンプレートモジュール名として無効です。</translation>
+    </message>
+    <message>
+        <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>for 構文において使用する変数は、場所に関する変数とは異なる必要があります。つまり、&apos;%1&apos; が重複して使用されています。</translation>
+    </message>
+    <message>
+        <source>The Schema Validation Feature is not supported. Hence, %1-expressions may not be used.</source>
+        <translation>スキーマの検証機能はサポートされていません。よって、&apos;%1&apos; 構文は使用できません。</translation>
+    </message>
+    <message>
+        <source>None of the pragma expressions are supported. Therefore, a fallback expression must be present</source>
+        <translation>pragma 構文はサポートされていません。fallback 構文でなければなりません</translation>
+    </message>
+    <message>
+        <source>Each name of a template parameter must be unique; %1 is duplicated.</source>
+        <translation>テンプレートパラメータ名はユニークである必要があります。&apos;%1&apos; は重複しています。</translation>
+    </message>
+    <message>
+        <source>The %1-axis is unsupported in XQuery</source>
+        <translation>XQuery において、%1 axis はサポートされていません</translation>
+    </message>
+    <message>
+        <source>No function with name %1 is available.</source>
+        <translation>関数名 &apos;%1&apos; はみつかりません。</translation>
+    </message>
+    <message>
+        <source>The namespace URI cannot be the empty string when binding to a prefix, %1.</source>
+        <translation>プレフィックス &apos;%1&apos; にバインディングする名前空間の URI は、空であってはなりません。</translation>
+    </message>
+    <message>
+        <source>%1 is an invalid namespace URI.</source>
+        <translation>%1 は名前空間 URI として無効です。</translation>
+    </message>
+    <message>
+        <source>It is not possible to bind to the prefix %1</source>
+        <translation>プレフィックス %1 にバインドすることはできません</translation>
+    </message>
+    <message>
+        <source>Namespace %1 can only be bound to %2 (and it is, in either case, pre-declared).</source>
+        <translation>名前空間 %1 は %2 にのみバウンドできます。</translation>
+    </message>
+    <message>
+        <source>Prefix %1 can only be bound to %2 (and it is, in either case, pre-declared).</source>
+        <translation>プリフィックス %1 は %2 にのみバウンドできます。</translation>
+    </message>
+    <message>
+        <source>Two namespace declaration attributes have the same name: %1.</source>
+        <translation>二つの名前空間宣言の属性が、同じ名前 &apos;%1&apos; をもっています。</translation>
+    </message>
+    <message>
+        <source>The namespace URI must be a constant and cannot use enclosed expressions.</source>
+        <translation>名前空間 URI は、constantでなければなりません。式を含むことはできません。</translation>
+    </message>
+    <message>
+        <source>An attribute with name %1 has already appeared on this element.</source>
+        <translation>属性名 &apos;%1&apos; は、すでにこのエレメントで使用されています。</translation>
+    </message>
+    <message>
+        <source>A direct element constructor is not well-formed. %1 is ended with %2.</source>
+        <translation>直積的な指定のエレメントがwell formedではありません。&apos;%1&apos; が、&apos;%2&apos; で終わっています。</translation>
+    </message>
+    <message>
+        <source>The name %1 does not refer to any schema type.</source>
+        <translation>名前 &apos;%1&apos; は、なんのスキーマタイプも参照していません。</translation>
+    </message>
+    <message>
+        <source>%1 is an complex type. Casting to complex types is not possible. However, casting to atomic types such as %2 works.</source>
+        <translation>&apos;%1&apos; は complex 型です。complex 型への型変換はできません。しかし、アトミックな型である &apos;%2&apos; への変換はできます。</translation>
+    </message>
+    <message>
+        <source>%1 is not an atomic type. Casting is only possible to atomic types.</source>
+        <translation>&apos;%1&apos; はアトミックな型ではありません。型変換はアトミックな型に対してのみ可能です。</translation>
+    </message>
+    <message>
+        <source>%1 is not a valid name for a processing-instruction.</source>
+        <translation>処理指定において、&apos;%1&apos; は無効です。</translation>
+    </message>
+    <message>
+        <source>%1 is not in the in-scope attribute declarations. Note that the schema import feature is not supported.</source>
+        <translation>&apos;%1&apos; は、スコープ属性宣言ではありません。スキーマインポート機能はサポートされていません。</translation>
+    </message>
+    <message>
+        <source>The name of an extension expression must be in a namespace.</source>
+        <translation>拡張式 (extension expression) の名前は、名前空間の中になければなりません。</translation>
+    </message>
+    <message>
+        <source>Element %1 is not allowed at this location.</source>
+        <translation>この場所にエレメント &apos;%1&apos; をおくことは許可されていません。</translation>
+    </message>
+    <message>
+        <source>Text nodes are not allowed at this location.</source>
+        <translation>この場所にテキストノードをおくことは許可されていません。</translation>
+    </message>
+    <message>
+        <source>Parse error: %1</source>
+        <translation>パースエラー: %1</translation>
+    </message>
+    <message>
+        <source>The value of the XSL-T version attribute must be a value of type %1, which %2 isn&apos;t.</source>
+        <translation>XSL-T バージョン属性の値は、&apos;%1&apos; 型でなければなりません。&apos;%2&apos; はそうではありません。</translation>
+    </message>
+    <message>
+        <source>Running an XSL-T 1.0 stylesheet with a 2.0 processor.</source>
+        <translation>XSL-T 1.0 のスタイルシートを 2.0 のプロセッサで使用します。</translation>
+    </message>
+    <message>
+        <source>Unknown XSL-T attribute %1.</source>
+        <translation>未知の XSL-T 属性 %1 があります。</translation>
+    </message>
+    <message>
+        <source>Attribute %1 and %2 are mutually exclusive.</source>
+        <translation>属性 &apos;%1&apos; と &apos;%2&apos; は排他的にのみ使用できます。</translation>
+    </message>
+    <message>
+        <source>In a simplified stylesheet module, attribute %1 must be present.</source>
+        <translation>simplified stylesheet モジュールにおいては、属性 &apos;%1&apos; を指定されなければなりません。</translation>
+    </message>
+    <message>
+        <source>If element %1 has no attribute %2, it cannot have attribute %3 or %4.</source>
+        <translation>エレメント &apos;%1&apos; が属性 &apos;%2&apos; を持たない場合は、属性 &apos;%3&apos; や &apos;%4&apos; を使用することはできません。</translation>
+    </message>
+    <message>
+        <source>Element %1 must have at least one of the attributes %2 or %3.</source>
+        <translation>エレメント &apos;%1&apos; は、属性 &apos;%2&apos; か &apos;%3&apos; のいずれかを持たなければなりません。</translation>
+    </message>
+    <message>
+        <source>At least one mode must be specified in the %1-attribute on element %2.</source>
+        <translation>エレメント &apos;%2&apos; において、&apos;%1&apos; 属性は少くとも一つのモードを指定しなければなりません。</translation>
+    </message>
+    <message>
+        <source>Element %1 must come last.</source>
+        <translation>エレメント %1 は最後になければなりません。</translation>
+    </message>
+    <message>
+        <source>At least one %1-element must occur before %2.</source>
+        <translation>%2 の前に、少くとも一つは %1 エレメントが存在しなければなりません。</translation>
+    </message>
+    <message>
+        <source>Only one %1-element can appear.</source>
+        <translation>%1 エレメントは一つのみ存在しなければなりません。</translation>
+    </message>
+    <message>
+        <source>At least one %1-element must occur inside %2.</source>
+        <translation>%2 の内側には、少くとも一つの &apos;%1&apos; エレメントが存在しなければなりません。</translation>
+    </message>
+    <message>
+        <source>When attribute %1 is present on %2, a sequence constructor cannot be used.</source>
+        <translation>%2 に属性 %1 がある場合、sequence constructor は使用できません。</translation>
+    </message>
+    <message>
+        <source>Element %1 must have either a %2-attribute or a sequence constructor.</source>
+        <translation>エレメント %1 には、%2 属性またはsequence constructorがなければなりません。</translation>
+    </message>
+    <message>
+        <source>When a parameter is required, a default value cannot be supplied through a %1-attribute or a sequence constructor.</source>
+        <translation>パラメータが要求されているときには、デフォルトの値は、%1 属性または sequence constructor によって指定されていてはなりません。</translation>
+    </message>
+    <message>
+        <source>Element %1 cannot have children.</source>
+        <translation>エレメント %1 は、子要素を持つことができません。</translation>
+    </message>
+    <message>
+        <source>Element %1 cannot have a sequence constructor.</source>
+        <translation>エレメント %1 は、sequence constructor を含むことができません。</translation>
+    </message>
+    <message>
+        <source>The attribute %1 cannot appear on %2, when it is a child of %3.</source>
+        <translation>%2 が %3 の子要素であるときは、属性 %1 を使用してはなりません。</translation>
+    </message>
+    <message>
+        <source>A parameter in a function cannot be declared to be a tunnel.</source>
+        <translation>関数へのパラメータは、トンネルであってはなりません。</translation>
+    </message>
+    <message>
+        <source>This processor is not Schema-aware and therefore %1 cannot be used.</source>
+        <translation>この処理系は、Schema-aware ではありません。よって、%1 は使用できません。</translation>
+    </message>
+    <message>
+        <source>Top level stylesheet elements must be in a non-null namespace, which %1 isn&apos;t.</source>
+        <translation>トップレベルのスタイルシートのエレメントは、non-nullな名前空間を持っていなければなりません。しかし、%1 はそうではありません。</translation>
+    </message>
+    <message>
+        <source>The value for attribute %1 on element %2 must either be %3 or %4, not %5.</source>
+        <translation>エレメント %2 の属性 %1 の値は、%3 または %4 でなければなりません。%5 は異なります。</translation>
+    </message>
+    <message>
+        <source>Attribute %1 cannot have the value %2.</source>
+        <translation>属性 %1 に、値 %2 を指定することはできません。</translation>
+    </message>
+    <message>
+        <source>The attribute %1 can only appear on the first %2 element.</source>
+        <translation>属性 %1 は、最初の %2 エレメントにのみ指定できます。</translation>
+    </message>
+    <message>
+        <source>At least one %1 element must appear as child of %2.</source>
+        <translation>%2 の子要素としては、少くとも一つは %1 エレメントがなければなりません。</translation>
+    </message>
+    <message>
+        <source>Empty particle cannot be derived from non-empty particle.</source>
+        <translation>空ではない particle から空の particle を得ることはできません。</translation>
+    </message>
+    <message>
+        <source>Derived particle is missing element %1.</source>
+        <translation>取得した particle に要素 %1 がありません。</translation>
+    </message>
+    <message>
+        <source>Derived element %1 is missing value constraint as defined in base particle.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Derived element %1 has weaker value constraint than base particle.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Fixed value constraint of element %1 differs from value constraint in base particle.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Derived element %1 cannot be nillable as base element is not nillable.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Block constraints of derived element %1 must not be more weaker than in the base element.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Simple type of derived element %1 cannot be validly derived from base element.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Complex type of derived element %1 cannot be validly derived from base element.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Element %1 is missing in derived particle.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Element %1 does not match namespace constraint of wildcard in base particle.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Wildcard in derived particle is not a valid subset of wildcard in base particle.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>processContent of wildcard in derived particle is weaker than wildcard in base particle.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Derived particle allows content that is not allowed in the base particle.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 has inheritance loop in its base type %2.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Circular inheritance of base type %1.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Circular inheritance of union %1.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 is not allowed to derive from %2 by restriction as the latter defines it as final.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 is not allowed to derive from %2 by extension as the latter defines it as final.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Base type of simple type %1 cannot be complex type %2.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Simple type %1 cannot have direct base type %2.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Simple type %1 is not allowed to have base type %2.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Simple type %1 can only have simple atomic type as base type.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Simple type %1 cannot derive from %2 as the latter defines restriction as final.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Variety of item type of %1 must be either atomic or union.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Variety of member types of %1 must be atomic.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 is not allowed to derive from %2 by list as the latter defines it as final.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Simple type %1 is only allowed to have %2 facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Base type of simple type %1 must have variety of type list.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Base type of simple type %1 has defined derivation by restriction as final.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Item type of base type does not match item type of %1.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Simple type %1 contains not allowed facet type %2.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 is not allowed to derive from %2 by union as the latter defines it as final.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 is not allowed to have any facets.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Base type %1 of simple type %2 must have variety of union.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Base type %1 of simple type %2 is not allowed to have restriction in %3 attribute.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Member type %1 cannot be derived from member type %2 of %3&apos;s base type %4.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Derivation method of %1 must be extension because the base type %2 is a simple type.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Complex type %1 has duplicated element %2 in its content model.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Complex type %1 has non-deterministic content.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Attributes of complex type %1 are not a valid extension of the attributes of base type %2: %3.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Content model of complex type %1 is not a valid extension of content model of %2.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Complex type %1 must have simple content.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Complex type %1 must have the same simple type as its base class %2.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Complex type %1 cannot be derived from base type %2%3.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Attributes of complex type %1 are not a valid restriction from the attributes of base type %2: %3.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Complex type %1 with simple content cannot be derived from complex base type %2.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Item type of simple type %1 cannot be a complex type.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Member type of simple type %1 cannot be a complex type.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 is not allowed to have a member type with the same name as itself.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 facet collides with %2 facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 facet must have the same value as %2 facet of base type.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 facet must be equal or greater than %2 facet of base type.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 facet must be less than or equal to %2 facet of base type.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 facet contains invalid regular expression</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Unknown notation %1 used in %2 facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 facet contains invalid value %2: %3.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 facet cannot be %2 or %3 if %4 facet of base type is %5.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 facet cannot be %2 if %3 facet of base type is %4.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 facet must be less than or equal to %2 facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 facet must be less than %2 facet of base type.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 facet and %2 facet cannot appear together.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 facet must be greater than %2 facet of base type.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 facet must be less than %2 facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 facet must be greater than or equal to %2 facet of base type.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Simple type contains not allowed facet %1.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1, %2, %3, %4, %5 and %6 facets are not allowed when derived by list.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Only %1 and %2 facets are allowed when derived by union.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 contains %2 facet with invalid data: %3.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Attribute group %1 contains attribute %2 twice.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Attribute group %1 contains two different attributes that both have types derived from %2.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Attribute group %1 contains attribute %2 that has value constraint but type that inherits from %3.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Complex type %1 contains attribute %2 twice.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Complex type %1 contains two different attributes that both have types derived from %2.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Complex type %1 contains attribute %2 that has value constraint but type that inherits from %3.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Element %1 is not allowed to have a value constraint if its base type is complex.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Element %1 is not allowed to have a value constraint if its type is derived from %2.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Value constraint of element %1 is not of elements type: %2.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Element %1 is not allowed to have substitution group affiliation as it is no global element.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Type of element %1 cannot be derived from type of substitution group affiliation.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Value constraint of attribute %1 is not of attributes type: %2.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Attribute %1 has value constraint but has type derived from %2.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 attribute in derived complex type must be %2 like in base type.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Attribute %1 in derived complex type must have %2 value constraint like in base type.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Attribute %1 in derived complex type must have the same %2 value constraint like in base type.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Attribute %1 in derived complex type must have %2 value constraint.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>processContent of base wildcard must be weaker than derived wildcard.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Element %1 exists twice with different types.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Particle contains non-deterministic wildcards.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Base attribute %1 is required but derived attribute is not.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Type of derived attribute %1 cannot be validly derived from type of base attribute.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Value constraint of derived attribute %1 does not match value constraint of base attribute.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Derived attribute %1 does not exist in the base definition.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Derived attribute %1 does not match the wildcard in the base definition.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Base attribute %1 is required but missing in derived definition.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Derived definition contains an %1 element that does not exists in the base definition</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Derived wildcard is not a subset of the base wildcard.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 of derived wildcard is not a valid restriction of %2 of base wildcard</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Attribute %1 from base type is missing in derived type.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Type of derived attribute %1 differs from type of base attribute.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Base definition contains an %1 element that is missing in the derived definition</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Can not process unknown element %1, expected elements are: %2.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Element %1 is not allowed in this scope, possible elements are: %2.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Child element is missing in that scope, possible child elements are: %1.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Document is not a XML schema.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 attribute of %2 element contains invalid content: {%3} is not a value of type %4.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 attribute of %2 element contains invalid content: {%3}.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Target namespace %1 of included schema is different from the target namespace %2 as defined by the including schema.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Target namespace %1 of imported schema is different from the target namespace %2 as defined by the importing schema.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 element is not allowed to have the same %2 attribute value as the target namespace %3.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 element without %2 attribute is not allowed inside schema without target namespace.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 element is not allowed inside %2 element if %3 attribute is present.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 element has neither %2 attribute nor %3 child element.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 element with %2 child element must not have a %3 attribute.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 attribute of %2 element must be %3 or %4.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 attribute of %2 element must have a value of %3.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 attribute of %2 element must have a value of %3 or %4.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 element must not have %2 and %3 attribute together.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Content of %1 attribute of %2 element must not be from namespace %3.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 attribute of %2 element must not be %3.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 attribute of %2 element must have the value %3 because the %4 attribute is set.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Specifying use=&apos;prohibited&apos; inside an attribute group has no effect.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 element must have either %2 or %3 attribute.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 element must have either %2 attribute or %3 or %4 as child element.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 element requires either %2 or %3 attribute.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Text or entity references not allowed inside %1 element</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 attribute of %2 element must contain %3, %4 or a list of URIs.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 element is not allowed in this context.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 attribute of %2 element has larger value than %3 attribute.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Prefix of qualified name %1 is not defined.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 attribute of %2 element must either contain %3 or the other values.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Component with ID %1 has been defined previously.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Element %1 already defined.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Attribute %1 already defined.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Type %1 already defined.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Attribute group %1 already defined.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Element group %1 already defined.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Notation %1 already defined.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Identity constraint %1 already defined.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Duplicated facets in simple type %1.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 references unknown %2 or %3 element %4.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 references identity constraint %2 that is no %3 or %4 element.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 has a different number of fields from the identity constraint %2 that it references.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Base type %1 of %2 element cannot be resolved.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Item type %1 of %2 element cannot be resolved.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Member type %1 of %2 element cannot be resolved.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Type %1 of %2 element cannot be resolved.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Base type %1 of complex type cannot be resolved.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 cannot have complex base type that has a %2.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Content model of complex type %1 contains %2 element so it cannot be derived by extension from a non-empty type.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Complex type %1 cannot be derived by extension from %2 as the latter contains %3 element in its content model.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Type of %1 element must be a simple type, %2 is not.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Substitution group %1 of %2 element cannot be resolved.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Substitution group %1 has circular definition.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Duplicated element names %1 in %2 element.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reference %1 of %2 element cannot be resolved.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Circular group reference for %1.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 element is not allowed in this scope</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 element cannot have %2 attribute with value other than %3.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 element cannot have %2 attribute with value other than %3 or %4.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 or %2 attribute of reference %3 does not match with the attribute declaration %4.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Attribute group %1 has circular reference.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 attribute in %2 must have %3 use like in base type %4.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Attribute wildcard of %1 is not a valid restriction of attribute wildcard of base type %2.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 has attribute wildcard but its base type %2 has not.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Union of attribute wildcard of type %1 and attribute wildcard of its base type %2 is not expressible.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Enumeration facet contains invalid content: {%1} is not a value of type %2.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Namespace prefix of qualified name %1 is not defined.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 element %2 is not a valid restriction of the %3 element it redefines: %4.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 is not valid according to %2.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>String content does not match the length facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>String content does not match the minLength facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>String content does not match the maxLength facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>String content does not match pattern facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>String content is not listed in the enumeration facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Signed integer content does not match the maxInclusive facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Signed integer content does not match the maxExclusive facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Signed integer content does not match the minInclusive facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Signed integer content does not match the minExclusive facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Signed integer content is not listed in the enumeration facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Signed integer content does not match pattern facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Signed integer content does not match in the totalDigits facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Unsigned integer content does not match the maxInclusive facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Unsigned integer content does not match the maxExclusive facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Unsigned integer content does not match the minInclusive facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Unsigned integer content does not match the minExclusive facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Unsigned integer content is not listed in the enumeration facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Unsigned integer content does not match pattern facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Unsigned integer content does not match in the totalDigits facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Double content does not match the maxInclusive facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Double content does not match the maxExclusive facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Double content does not match the minInclusive facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Double content does not match the minExclusive facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Double content is not listed in the enumeration facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Double content does not match pattern facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Decimal content does not match in the fractionDigits facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Decimal content does not match in the totalDigits facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Date time content does not match the maxInclusive facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Date time content does not match the maxExclusive facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Date time content does not match the minInclusive facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Date time content does not match the minExclusive facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Date time content is not listed in the enumeration facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Date time content does not match pattern facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Duration content does not match the maxInclusive facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Duration content does not match the maxExclusive facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Duration content does not match the minInclusive facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Duration content does not match the minExclusive facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Duration content is not listed in the enumeration facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Duration content does not match pattern facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Boolean content does not match pattern facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Binary content does not match the length facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Binary content does not match the minLength facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Binary content does not match the maxLength facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Binary content is not listed in the enumeration facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Invalid QName content: %1.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>QName content is not listed in the enumeration facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>QName content does not match pattern facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Notation content is not listed in the enumeration facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>List content does not match length facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>List content does not match minLength facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>List content does not match maxLength facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>List content is not listed in the enumeration facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>List content does not match pattern facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Union content is not listed in the enumeration facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Union content does not match pattern facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Data of type %1 are not allowed to be empty.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Element %1 is missing child element.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>There is one IDREF value with no corresponding ID: %1.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Loaded schema file is invalid.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 contains invalid data.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>xsi:schemaLocation namespace %1 has already appeared earlier in the instance document.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>xsi:noNamespaceSchemaLocation cannot appear after the first no-namespace element or attribute.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>No schema defined for validation.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>No definition for element %1 available.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Specified type %1 is not known to the schema.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Element %1 is not defined in this scope.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Declaration for element %1 does not exist.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Element %1 contains invalid content.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Element %1 is declared as abstract.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Element %1 is not nillable.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Attribute %1 contains invalid data: %2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Element contains content although it is nillable.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Fixed value constraint not allowed if element is nillable.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Specified type %1 is not validly substitutable with element type %2.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Complex type %1 is not allowed to be abstract.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Element %1 contains not allowed attributes.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Element %1 contains not allowed child element.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Content of element %1 does not match its type definition: %2.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Content of element %1 does not match defined value constraint.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Element %1 contains not allowed child content.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Element %1 contains not allowed text content.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Element %1 cannot contain other elements, as it has a fixed content.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Element %1 is missing required attribute %2.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Attribute %1 does not match the attribute wildcard.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Declaration for attribute %1 does not exist.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Element %1 contains two attributes of type %2.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Attribute %1 contains invalid content.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Element %1 contains unknown attribute %2.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Content of attribute %1 does not match its type definition: %2.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Content of attribute %1 does not match defined value constraint.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Non-unique value found for constraint %1.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Key constraint %1 contains absent fields.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Key constraint %1 contains references nillable element %2.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>No referenced value found for key reference %1.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>More than one value found for field %1.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Field %1 has no simple type.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>ID value &apos;%1&apos; is not unique.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>&apos;%1&apos; attribute contains invalid QName content: %2.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>empty</source>
+        <translation>空</translation>
+    </message>
+    <message>
+        <source>zero or one</source>
+        <translation>ゼロまたは一つ</translation>
+    </message>
+    <message>
+        <source>exactly one</source>
+        <translation>厳密に一つ</translation>
+    </message>
+    <message>
+        <source>one or more</source>
+        <translation>一つまたは複数</translation>
+    </message>
+    <message>
+        <source>zero or more</source>
+        <translation>ゼロまたはそれ以上</translation>
+    </message>
+    <message>
+        <source>Required type is %1, but %2 was found.</source>
+        <translation>要求されている型は %1 ですが、 %2 があります。</translation>
+    </message>
+    <message>
+        <source>Promoting %1 to %2 may cause loss of precision.</source>
+        <translation>%1 を %2 に変換する際に、精度のロスが生じます。</translation>
+    </message>
+    <message>
+        <source>The focus is undefined.</source>
+        <translation>フォーカスが定義されていません。</translation>
+    </message>
+    <message>
+        <source>It&apos;s not possible to add attributes after any other kind of node.</source>
+        <translation>他の種類のノードの中では、属性を追加することはできません。</translation>
+    </message>
+    <message>
+        <source>An attribute by name %1 has already been created.</source>
+        <translation>名前 &apos;%1&apos; の属性は、すでに生成されています。</translation>
+    </message>
+    <message>
+        <source>Only the Unicode Codepoint Collation is supported(%1). %2 is unsupported.</source>
+        <translation>UNICODE Codepoint Collection のみ使用できます(%1)。 %2 はサポートされていません。</translation>
+    </message>
+</context>
 </TS>
--- a/translations/qt_pl.ts	Fri Sep 17 08:34:18 2010 +0300
+++ b/translations/qt_pl.ts	Mon Oct 04 01:19:32 2010 +0300
@@ -4,7 +4,6 @@
 <context>
     <name>CloseButton</name>
     <message>
-        <location filename="../src/gui/widgets/qtabbar.cpp" line="+2319"/>
         <source>Close Tab</source>
         <translation>Zamknij kartę</translation>
     </message>
@@ -12,12 +11,10 @@
 <context>
     <name>FakeReply</name>
     <message>
-        <location filename="../src/3rdparty/webkit/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp" line="+2278"/>
         <source>Fake error !</source>
         <translation>Fałszywy błąd!</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Invalid URL</source>
         <translation>Niepoprawny URL</translation>
     </message>
@@ -25,37 +22,30 @@
 <context>
     <name>MAC_APPLICATION_MENU</name>
     <message>
-        <location filename="../src/gui/kernel/qapplication.cpp" line="+2351"/>
         <source>Services</source>
         <translation>Usługi</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Hide %1</source>
         <translation>Ukryj %1</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Hide Others</source>
         <translation>Ukryj pozostałe</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Show All</source>
         <translation>Pokaż wszystko</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Preferences...</source>
         <translation>Preferencje…</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Quit %1</source>
         <translation>Zakończ %1</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>About %1</source>
         <translation>%1…</translation>
     </message>
@@ -63,32 +53,26 @@
 <context>
     <name>Phonon::</name>
     <message>
-        <location filename="../src/3rdparty/phonon/phonon/phononnamespace.cpp" line="+55"/>
         <source>Notifications</source>
         <translation>Powiadomienia</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Music</source>
         <translation>Muzyka</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Video</source>
         <translation>Wideo</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Communication</source>
         <translation>Komunikacja</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Games</source>
         <translation>Gry</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Accessibility</source>
         <translation>Dostępność</translation>
     </message>
@@ -96,24 +80,18 @@
 <context>
     <name>Phonon::AudioOutput</name>
     <message>
-        <location filename="../src/3rdparty/phonon/phonon/audiooutput.cpp" line="+444"/>
-        <location line="+34"/>
         <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;Urządzenie dźwiękowe &lt;b&gt;%1&lt;/b&gt; nie działa.&lt;br/&gt;Przywracanie do &lt;b&gt;%2&lt;/b&gt;.&lt;/html&gt;</translation>
     </message>
     <message>
-        <location line="-21"/>
         <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;Przełączanie na urządzenie dźwiękowe &lt;b&gt;%1&lt;/b&gt;&lt;br/&gt;które właśnie stało się dostępne i ma wyższy priorytet.&lt;/html&gt;</translation>
     </message>
     <message>
-        <location line="+3"/>
-        <location line="+14"/>
         <source>Revert back to device &apos;%1&apos;</source>
         <translation>Przywróć do urządzenia &apos;%1&apos;</translation>
     </message>
     <message>
-        <location line="-3"/>
         <source>&lt;html&gt;Switching to the audio playback device &lt;b&gt;%1&lt;/b&gt;&lt;br/&gt;which has higher preference or is specifically configured for this stream.&lt;/html&gt;</source>
         <translation>&lt;html&gt;Przełączanie na urządzenie dźwiękowe &lt;b&gt;%1&lt;/b&gt;&lt;br/&gt;które ma wyższy priorytet lub jest specjalnie skonfigurowane dla tego strumienia.&lt;/html&gt;</translation>
     </message>
@@ -121,14 +99,12 @@
 <context>
     <name>Phonon::Gstreamer::Backend</name>
     <message>
-        <location filename="../src/3rdparty/phonon/gstreamer/backend.cpp" line="+188"/>
         <source>Warning: You do not seem to have the package gstreamer0.10-plugins-good installed.
           Some video features have been disabled.</source>
         <translation>Ostrzeżenie: Wygląda na to, że pakiet gstreamer0.10-plugins-good nie jest zainstalowany w tym systemie.
 Niektóre możliwości wideo zostały wyłączone.</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>Ostrzeżenie: Wygląda na to, że podstawowe wtyczki GStreamer nie są zainstalowane w tym systemie.
@@ -138,7 +114,6 @@
 <context>
     <name>Phonon::Gstreamer::MediaObject</name>
     <message>
-        <location filename="../src/3rdparty/phonon/gstreamer/mediaobject.cpp" line="+93"/>
         <source>Cannot start playback. 
 
 Check your GStreamer installation and make sure you 
@@ -149,49 +124,34 @@
 zainstalowałeś libgstreamer-plugins-base.</translation>
     </message>
     <message>
-        <location line="+129"/>
         <source>Missing codec helper script assistant.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Plugin codec installation failed for codec: %0</source>
         <translation>Błąd podczas instalacji wtyczki dla kodeka: %0</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>A required codec is missing. You need to install the following codec(s) to play this content: %0</source>
         <translation>Brak wymaganego kodeka. Aby odtworzyć zawartość musisz zainstalować poniższy kodek: %0</translation>
     </message>
     <message>
-        <location line="+730"/>
-        <location line="+6"/>
-        <location line="+13"/>
-        <location line="+24"/>
-        <location line="+6"/>
-        <location line="+18"/>
-        <location line="+434"/>
-        <location line="+24"/>
         <source>Could not open media source.</source>
         <translation>Nie można otworzyć źródła mediów.</translation>
     </message>
     <message>
-        <location line="-514"/>
         <source>Invalid source type.</source>
         <translation>Niepoprawny typ źródła.</translation>
     </message>
     <message>
-        <location line="+488"/>
         <source>Could not locate media source.</source>
         <translation>Nie można znaleźć źródła mediów.</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>Could not open audio device. The device is already in use.</source>
         <translation>Nie można otworzyć urządzenia dźwiękowego. Urządzenie jest już używane.</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>Could not decode media source.</source>
         <translation>Nie można zdekodować źródła mediów.</translation>
     </message>
@@ -199,162 +159,130 @@
 <context>
     <name>Phonon::MMF</name>
     <message>
-        <location filename="../src/3rdparty/phonon/mmf/audiooutput.cpp" line="+106"/>
         <source>Audio Output</source>
         <translation>Wyjście dźwięku</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>The audio output device</source>
         <translation>Wyjściowe urządzenie dźwiękowe</translation>
     </message>
     <message>
-        <location filename="../src/3rdparty/phonon/mmf/utils.cpp" line="+89"/>
         <source>No error</source>
         <translation>Brak błędu</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Not found</source>
         <translation>Nie znaleziono</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Out of memory</source>
         <translation>Brak pamięci</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Not supported</source>
         <translation>Nieobsługiwane</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Overflow</source>
         <translation>Przepełnienie</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Underflow</source>
         <translation>Niedopełnienie</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Already exists</source>
         <translation>Już istnieje</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Path not found</source>
         <translation>Nie znaleziono ścieżki</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>In use</source>
         <translation>W użyciu</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Not ready</source>
         <translation>Brak gotowości</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Access denied</source>
         <translation>Odmowa dostępu</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Could not connect</source>
         <translation>Nie można połączyć</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Disconnected</source>
         <translation>Rozłączono</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Permission denied</source>
         <translation>Brak uprawnień</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Insufficient bandwidth</source>
         <translation>Niewystarczająca szerokość pasma</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Network unavailable</source>
         <translation>Sieć niedostępna</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Network communication error</source>
         <translation>Błąd komunikacji sieciowej</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Streaming not supported</source>
         <translation>Transmisje strumieniowe nie są obsługiwane</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Server alert</source>
         <translation>Ostrzeżenie serwera</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Invalid protocol</source>
         <translation>Nieprawidłowy protokół</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Invalid URL</source>
         <translation>Nieprawidłowy adres URL</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Multicast error</source>
         <translation>Błąd multiemisji</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Proxy server error</source>
         <translation>Błąd serwera pośredniczącego</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Proxy server not supported</source>
         <translation>Nieobsługiwany serwer pośredniczący</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Audio output error</source>
         <translation>Błąd wyjściowego sygnału dźwiękowego</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Video output error</source>
         <translation>Błąd wyjściowego sygnału wideo</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Decoder error</source>
         <translation>Błąd dekodera</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Audio or video components could not be played</source>
         <translation>Nie można odtworzyć dźwięku lub wideo</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>DRM error</source>
         <translation>Błąd DRM</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Unknown error (%1)</source>
         <translation>Nieznany błąd (%1)</translation>
     </message>
@@ -362,33 +290,34 @@
 <context>
     <name>Phonon::MMF::AbstractMediaPlayer</name>
     <message>
-        <location filename="../src/3rdparty/phonon/mmf/abstractmediaplayer.cpp" line="+73"/>
         <source>Not ready to play</source>
         <translation>Brak gotowości odtwarzania</translation>
     </message>
     <message>
-        <location line="+161"/>
-        <location line="+10"/>
         <source>Error opening file</source>
         <translation>Błąd otwierania pliku</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Error opening URL</source>
         <translation>Błąd otwierania adresu URL</translation>
     </message>
     <message>
-        <location line="+83"/>
+        <source>Error opening resource</source>
+        <translation>Błąd otwierania zasobu</translation>
+    </message>
+    <message>
+        <source>Error opening source: resource not opened</source>
+        <translation>Błąd otwierania źródła: zasób nie został otwarty</translation>
+    </message>
+    <message>
         <source>Setting volume failed</source>
         <translation>Ustawienie głośności zakończone błędem</translation>
     </message>
     <message>
-        <location line="+45"/>
         <source>Loading clip failed</source>
         <translation>Załadowanie klipu zakończone błędem</translation>
     </message>
     <message>
-        <location line="+24"/>
         <source>Playback complete</source>
         <translation>Zakończono odtwarzanie</translation>
     </message>
@@ -396,22 +325,18 @@
 <context>
     <name>Phonon::MMF::AbstractVideoPlayer</name>
     <message>
-        <location filename="../src/3rdparty/phonon/mmf/abstractvideoplayer.cpp" line="+110"/>
         <source>Pause failed</source>
         <translation>Zatrzymanie zakończone błędem</translation>
     </message>
     <message>
-        <location line="+16"/>
         <source>Seek failed</source>
         <translation>Wyszukiwanie zakończone błędem</translation>
     </message>
     <message>
-        <location line="+54"/>
         <source>Getting position failed</source>
         <translation>Ustalanie pozycji zakończone błędem</translation>
     </message>
     <message>
-        <location line="+68"/>
         <source>Opening clip failed</source>
         <translation>Otwieranie klipu zakończone błędem</translation>
     </message>
@@ -419,7 +344,6 @@
 <context>
     <name>Phonon::MMF::AudioEqualizer</name>
     <message>
-        <location filename="../src/3rdparty/phonon/mmf/audioequalizer.cpp" line="+92"/>
         <source>%1 Hz</source>
         <translation>%1 Hz</translation>
     </message>
@@ -427,7 +351,6 @@
 <context>
     <name>Phonon::MMF::AudioPlayer</name>
     <message>
-        <location filename="../src/3rdparty/phonon/mmf/audioplayer.cpp" line="+173"/>
         <source>Getting position failed</source>
         <translation>Ustalanie pozycji zakończone błędem</translation>
     </message>
@@ -435,11 +358,6 @@
 <context>
     <name>Phonon::MMF::DsaVideoPlayer</name>
     <message>
-        <location filename="../src/3rdparty/phonon/mmf/videoplayer_dsa.cpp" line="+241"/>
-        <location line="+15"/>
-        <location line="+8"/>
-        <location line="+22"/>
-        <location line="+22"/>
         <source>Video display error</source>
         <translation>Błąd wyświetlacza wideo</translation>
     </message>
@@ -447,7 +365,6 @@
 <context>
     <name>Phonon::MMF::EffectFactory</name>
     <message>
-        <location filename="../src/3rdparty/phonon/mmf/effectfactory.cpp" line="+181"/>
         <source>Enabled</source>
         <translation>Włączono</translation>
     </message>
@@ -455,61 +372,51 @@
 <context>
     <name>Phonon::MMF::EnvironmentalReverb</name>
     <message>
-        <location filename="../src/3rdparty/phonon/mmf/environmentalreverb.cpp" line="+146"/>
         <source>Decay HF ratio (%)</source>
         <extracomment>DecayHFRatio: Ratio of high-frequency decay time to the value specified by DecayTime.</extracomment>
         <translation>Współczynnik zanikania HF (%)</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Decay time (ms)</source>
         <extracomment>DecayTime: Time over which reverberation is diminished.</extracomment>
         <translation>Czas zanikania (ms)</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Density (%)</source>
         <extracomment>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.</extracomment>
         <translation>Gęstość (%)</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Diffusion (%)</source>
         <extracomment>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.</extracomment>
         <translation>Rozpraszanie (%)</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Reflections delay (ms)</source>
         <extracomment>ReflectionsDelay: Amount of delay between the arrival the direct path from the source and the arrival of the first reflection.</extracomment>
         <translation>Opóźnienie odbić (ms)</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Reflections level (mB)</source>
         <extracomment>ReflectionsLevel: Amplitude of reflections. This value is corrected by the RoomLevel to give the final reflection amplitude.</extracomment>
         <translation>Poziom odbić (mB)</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Reverb delay (ms)</source>
         <extracomment>ReverbDelay: Amount of time between arrival of the first reflection and start of the late reverberation.</extracomment>
         <translation>Opóźnienie pogłosu (ms)</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Reverb level (mB)</source>
         <extracomment>ReverbLevel Amplitude of reverberations. This value is corrected by the RoomLevel to give the final reverberation amplitude.</extracomment>
         <translation>Poziom pogłosu (mB)</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Room HF level</source>
         <extracomment>RoomHFLevel: Amplitude of low-pass filter used to attenuate the high frequency component of reflected sound.</extracomment>
         <translation>Poziom HF pomieszczenia</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Room level (mB)</source>
         <extracomment>RoomLevel: Master volume control for all reflected sound.</extracomment>
         <translation>Poziom pomieszczenia (mB)</translation>
@@ -518,12 +425,18 @@
 <context>
     <name>Phonon::MMF::MediaObject</name>
     <message>
-        <location filename="../src/3rdparty/phonon/mmf/mediaobject.cpp" line="+276"/>
         <source>Error opening source: type not supported</source>
         <translation>Błąd otwierania źródła: typ źródła nie jest obsługiwany</translation>
     </message>
     <message>
-        <location line="+21"/>
+        <source>Error opening source: resource is compressed</source>
+        <translation>Błąd otwierania źródła: zasób jest skompresowany</translation>
+    </message>
+    <message>
+        <source>Error opening source: resource not valid</source>
+        <translation>Błąd otwierania źródła: niepoprawny zasób</translation>
+    </message>
+    <message>
         <source>Error opening source: media type could not be determined</source>
         <translation>Błąd otwierania źródła: nie można określić typu multimediów</translation>
     </message>
@@ -531,7 +444,6 @@
 <context>
     <name>Phonon::MMF::StereoWidening</name>
     <message>
-        <location filename="../src/3rdparty/phonon/mmf/stereowidening.cpp" line="+79"/>
         <source>Level (%)</source>
         <translation>Poziom (%)</translation>
     </message>
@@ -539,8 +451,6 @@
 <context>
     <name>Phonon::MMF::SurfaceVideoPlayer</name>
     <message>
-        <location filename="../src/3rdparty/phonon/mmf/videoplayer_surface.cpp" line="+139"/>
-        <location line="+26"/>
         <source>Video display error</source>
         <translation>Błąd wyświetlacza wideo</translation>
     </message>
@@ -548,22 +458,14 @@
 <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>Głośność: %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>Użyj tego suwaka aby zmienić głośność. Skrajnie lewa pozycja to 0%, skrajnie prawa to %1%</translation>
     </message>
     <message>
-        <location line="+67"/>
         <source>Muted</source>
         <translation>Wyciszony</translation>
     </message>
@@ -571,12 +473,10 @@
 <context>
     <name>Q3Accel</name>
     <message>
-        <location filename="../src/qt3support/other/q3accel.cpp" line="+481"/>
         <source>%1, %2 not defined</source>
         <translation>%1, %2 nie określone</translation>
     </message>
     <message>
-        <location line="+36"/>
         <source>Ambiguous %1 not handled</source>
         <translation>Niejednoznaczne %1, nie obsłużone</translation>
     </message>
@@ -584,27 +484,22 @@
 <context>
     <name>Q3DataTable</name>
     <message>
-        <location filename="../src/qt3support/sql/q3datatable.cpp" line="+793"/>
         <source>Delete</source>
         <translation>Skasuj</translation>
     </message>
     <message>
-        <location line="-507"/>
         <source>False</source>
         <translation>Fałsz</translation>
     </message>
     <message>
-        <location line="+505"/>
         <source>Insert</source>
         <translation>Wstaw</translation>
     </message>
     <message>
-        <location line="-506"/>
         <source>True</source>
         <translation>Prawda</translation>
     </message>
     <message>
-        <location line="+507"/>
         <source>Update</source>
         <translation>Uaktualnij</translation>
     </message>
@@ -612,7 +507,6 @@
 <context>
     <name>Q3FileDialog</name>
     <message>
-        <location filename="../src/qt3support/dialogs/q3filedialog.cpp" line="+4501"/>
         <source>%1
 File not found.
 Check path and filename.</source>
@@ -621,323 +515,246 @@
 Sprawdź ścieżkę i nazwę pliku.</translation>
     </message>
     <message>
-        <location line="-298"/>
         <source>&lt;qt&gt;Are you sure you wish to delete %1 &quot;%2&quot;?&lt;/qt&gt;</source>
         <translation>&lt;qt&gt;Na pewno chcesz skasować %1 &quot;%2&quot;?&lt;/qt&gt;</translation>
     </message>
     <message>
-        <location line="-1924"/>
-        <location line="+49"/>
-        <location line="+2149"/>
-        <location filename="../src/qt3support/dialogs/q3filedialog_mac.cpp" line="+133"/>
         <source>All Files (*)</source>
         <translation>Wszystkie pliki (*)</translation>
     </message>
     <message>
-        <location line="-2080"/>
         <source>Attributes</source>
         <translation>Atrybuty</translation>
     </message>
     <message>
-        <location line="+84"/>
         <source>Back</source>
         <translation>Powrót</translation>
     </message>
     <message>
-        <location line="-1624"/>
-        <location line="+1579"/>
         <source>Cancel</source>
         <translation>Anuluj</translation>
     </message>
     <message>
-        <location line="-1601"/>
         <source>Copy or Move a File</source>
         <translation>Skopiuj lub przenieś plik</translation>
     </message>
     <message>
-        <location line="+1662"/>
         <source>Create New Folder</source>
         <translation>Utwórz nowy katalog</translation>
     </message>
     <message>
-        <location line="-101"/>
         <source>Date</source>
         <translation>Data</translation>
     </message>
     <message>
-        <location line="+1720"/>
         <source>&amp;Delete</source>
         <translation>&amp;Skasuj</translation>
     </message>
     <message>
-        <location line="+86"/>
         <source>Delete %1</source>
         <translation>Skasuj %1</translation>
     </message>
     <message>
-        <location line="-1679"/>
         <source>Detail View</source>
         <translation>Szczegóły</translation>
     </message>
     <message>
-        <location line="+125"/>
         <source>Dir</source>
         <translation>Katalog</translation>
     </message>
     <message>
-        <location line="+1706"/>
-        <location line="+108"/>
         <source>Directories</source>
         <translation>Katalogi</translation>
     </message>
     <message>
-        <location line="-2"/>
         <source>Directory:</source>
         <translation>Katalog:</translation>
     </message>
     <message>
-        <location line="+40"/>
-        <location line="+1009"/>
         <source>Error</source>
         <translation>Błąd</translation>
     </message>
     <message>
-        <location line="-2862"/>
         <source>File</source>
         <translation>Plik</translation>
     </message>
     <message>
-        <location line="-174"/>
-        <location line="+1977"/>
-        <location line="+16"/>
         <source>File &amp;name:</source>
         <translation>Nazwa &amp;pliku:</translation>
     </message>
     <message>
-        <location line="-1992"/>
         <source>File &amp;type:</source>
         <translation>&amp;Rodzaj pliku:</translation>
     </message>
     <message>
-        <location line="+1875"/>
         <source>Find Directory</source>
         <translation>Znajdź katalog</translation>
     </message>
     <message>
-        <location line="-1707"/>
         <source>Inaccessible</source>
         <translation>Niedostępny</translation>
     </message>
     <message>
-        <location line="-127"/>
         <source>List View</source>
         <translation>Lista</translation>
     </message>
     <message>
-        <location line="-43"/>
         <source>Look &amp;in:</source>
         <translation>Sprawdź &amp;w:</translation>
     </message>
     <message>
-        <location line="-80"/>
         <source>Name</source>
         <translation>Nazwa</translation>
     </message>
     <message>
-        <location line="+1854"/>
         <source>New Folder</source>
         <translation>Nowy katalog</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>New Folder %1</source>
         <translation>Nowy katalog %1</translation>
     </message>
     <message>
-        <location line="-10"/>
         <source>New Folder 1</source>
         <translation>Nowy katalog 1</translation>
     </message>
     <message>
-        <location line="-36"/>
         <source>&amp;No</source>
         <translation>&amp;Nie</translation>
     </message>
     <message>
-        <location line="-1773"/>
-        <location line="+2027"/>
         <source>&amp;OK</source>
         <translation>&amp;OK</translation>
     </message>
     <message>
-        <location line="-1971"/>
         <source>One directory up</source>
         <translation>Katalog wyżej</translation>
     </message>
     <message>
-        <location line="+1617"/>
-        <location line="+5"/>
-        <location line="+355"/>
         <source>&amp;Open</source>
         <translation>&amp;Otwórz</translation>
     </message>
     <message>
-        <location line="-1112"/>
-        <location line="+1999"/>
-        <location filename="../src/qt3support/dialogs/q3filedialog_win.cpp" line="+209"/>
         <source>Open</source>
         <translation>Otwórz</translation>
     </message>
     <message>
-        <location line="-2801"/>
         <source>Preview File Contents</source>
         <translation>Podgląd zawartości pliku</translation>
     </message>
     <message>
-        <location line="-19"/>
         <source>Preview File Info</source>
         <translation>Podgląd informacji o pliku</translation>
     </message>
     <message>
-        <location line="-1689"/>
         <source>Read: %1</source>
         <translation>Czytaj: %1</translation>
     </message>
     <message>
-        <location line="+1797"/>
         <source>Read-only</source>
         <translation>Tylko do odczytu</translation>
     </message>
     <message>
-        <location line="-1"/>
         <source>Read-write</source>
         <translation>Do zapisu i odczytu</translation>
     </message>
     <message>
-        <location line="+1497"/>
         <source>R&amp;eload</source>
         <translation>&amp;Odśwież</translation>
     </message>
     <message>
-        <location line="-21"/>
         <source>&amp;Rename</source>
         <translation>&amp;Zmień nazwę</translation>
     </message>
     <message>
-        <location line="-7"/>
-        <location line="+341"/>
         <source>&amp;Save</source>
         <translation>&amp;Zachowaj</translation>
     </message>
     <message>
-        <location line="-986"/>
-        <location filename="../src/qt3support/dialogs/q3filedialog_win.cpp" line="+71"/>
         <source>Save As</source>
         <translation>Zachowaj jako</translation>
     </message>
     <message>
-        <location line="+701"/>
         <source>Show &amp;hidden files</source>
         <translation>Pokaż &amp;ukryte pliki</translation>
     </message>
     <message>
-        <location line="-1771"/>
         <source>Size</source>
         <translation>Rozmiar</translation>
     </message>
     <message>
-        <location line="+1767"/>
         <source>Sort</source>
         <translation>Sortuj</translation>
     </message>
     <message>
-        <location line="-17"/>
         <source>Sort by &amp;Date</source>
         <translation>Sortuj po &amp;dacie</translation>
     </message>
     <message>
-        <location line="-3"/>
         <source>Sort by &amp;Name</source>
         <translation>Sortuj &amp;po nazwie</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Sort by &amp;Size</source>
         <translation>Sortuj po &amp;rozmiarze</translation>
     </message>
     <message>
-        <location line="-1493"/>
         <source>Special</source>
         <translation>Specjalny </translation>
     </message>
     <message>
-        <location line="-4"/>
         <source>Symlink to Directory</source>
         <translation>Dowiązanie symboliczne do katalogu</translation>
     </message>
     <message>
-        <location line="-1"/>
         <source>Symlink to File</source>
         <translation>Dowiązanie symboliczne do pliku</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Symlink to Special</source>
         <translation>Dowiązanie symboliczne do pliku specjalnego</translation>
     </message>
     <message>
-        <location line="+1551"/>
         <source>the directory</source>
         <translation>katalog</translation>
     </message>
     <message>
-        <location line="-2"/>
         <source>the file</source>
         <translation>plik</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>the symlink</source>
         <translation>dowiązanie symboliczne</translation>
     </message>
     <message>
-        <location line="-1804"/>
         <source>Type</source>
         <translation>Rodzaj</translation>
     </message>
     <message>
-        <location line="+1750"/>
         <source>&amp;Unsorted</source>
         <translation>&amp;Bez sortowania</translation>
     </message>
     <message>
-        <location line="-3296"/>
-        <location line="+30"/>
         <source>Write: %1</source>
         <translation>Pisz: %1</translation>
     </message>
     <message>
-        <location line="+1762"/>
         <source>Write-only</source>
         <translation>Tylko do zapisu</translation>
     </message>
     <message>
-        <location line="+1564"/>
         <source>&amp;Yes</source>
         <translation>&amp;Tak</translation>
     </message>
     <message>
-        <location filename="../src/qt3support/dialogs/q3filedialog_win.cpp" line="-191"/>
         <source>All Files (*.*)</source>
         <translation>Wszystkie pliki (*.*)</translation>
     </message>
     <message>
-        <location line="+264"/>
         <source>Open </source>
         <translation>Otwórz </translation>
     </message>
     <message>
-        <location line="+107"/>
         <source>Select a Directory</source>
         <translation>Wybierz katalog</translation>
     </message>
@@ -945,36 +762,30 @@
 <context>
     <name>Q3LocalFs</name>
     <message>
-        <location filename="../src/qt3support/network/q3localfs.cpp" line="+185"/>
         <source>Could not create directory
 %1</source>
         <translation>Nie można utworzyć katalogu
 %1</translation>
     </message>
     <message>
-        <location line="+86"/>
         <source>Could not open
 %1</source>
         <translation>Nie można otworzyć
 %1</translation>
     </message>
     <message>
-        <location line="-141"/>
-        <location line="+10"/>
         <source>Could not read directory
 %1</source>
         <translation>Nie można czytać katalogu
 %1</translation>
     </message>
     <message>
-        <location line="+79"/>
         <source>Could not remove file or directory
 %1</source>
         <translation>Nie można usunąć pliku lub katalogu
 %1</translation>
     </message>
     <message>
-        <location line="+27"/>
         <source>Could not rename
 %1
 to
@@ -985,7 +796,6 @@
 %2</translation>
     </message>
     <message>
-        <location line="+93"/>
         <source>Could not write
 %1</source>
         <translation>Nie można zapisać
@@ -995,12 +805,10 @@
 <context>
     <name>Q3MainWindow</name>
     <message>
-        <location filename="../src/qt3support/widgets/q3mainwindow.cpp" line="+2053"/>
         <source>Customize...</source>
         <translation>Ustawienia użytkownika...</translation>
     </message>
     <message>
-        <location line="-2"/>
         <source>Line up</source>
         <translation>Wyrównaj położenie</translation>
     </message>
@@ -1008,7 +816,6 @@
 <context>
     <name>Q3NetworkProtocol</name>
     <message>
-        <location filename="../src/qt3support/network/q3networkprotocol.cpp" line="+854"/>
         <source>Operation stopped by the user</source>
         <translation>Operacja zatrzymana przez użytkownika</translation>
     </message>
@@ -1016,8 +823,6 @@
 <context>
     <name>Q3ProgressDialog</name>
     <message>
-        <location filename="../src/qt3support/dialogs/q3progressdialog.cpp" line="+224"/>
-        <location line="+61"/>
         <source>Cancel</source>
         <translation>Anuluj</translation>
     </message>
@@ -1025,28 +830,22 @@
 <context>
     <name>Q3TabDialog</name>
     <message>
-        <location filename="../src/qt3support/dialogs/q3tabdialog.cpp" line="+648"/>
         <source>Apply</source>
         <translation>Zatwierdź</translation>
     </message>
     <message>
-        <location line="+138"/>
         <source>Cancel</source>
         <translation>Anuluj</translation>
     </message>
     <message>
-        <location line="-50"/>
         <source>Defaults</source>
         <translation>Domyślne</translation>
     </message>
     <message>
-        <location line="-45"/>
         <source>Help</source>
         <translation>Pomoc</translation>
     </message>
     <message>
-        <location line="-501"/>
-        <location line="+824"/>
         <source>OK</source>
         <translation>OK</translation>
     </message>
@@ -1054,38 +853,30 @@
 <context>
     <name>Q3TextEdit</name>
     <message>
-        <location filename="../src/qt3support/text/q3textedit.cpp" line="+5441"/>
         <source>Clear</source>
         <translation>Wyczyść</translation>
     </message>
     <message>
-        <location line="-5"/>
         <source>&amp;Copy</source>
         <translation>S&amp;kopiuj</translation>
     </message>
     <message>
-        <location line="-1"/>
         <source>Cu&amp;t</source>
         <translation>W&amp;ytnij</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>&amp;Paste</source>
         <translation>&amp;Wklej</translation>
     </message>
     <message>
-        <location line="-8"/>
         <source>&amp;Redo</source>
         <translation>&amp;Przywróć</translation>
     </message>
     <message>
-        <location line="+15"/>
-        <location line="+2"/>
         <source>Select All</source>
         <translation>Zaznacz wszystko</translation>
     </message>
     <message>
-        <location line="-18"/>
         <source>&amp;Undo</source>
         <translation>&amp;Cofnij</translation>
     </message>
@@ -1093,67 +884,54 @@
 <context>
     <name>Q3TitleBar</name>
     <message>
-        <location filename="../src/plugins/accessible/compat/q3complexwidgets.cpp" line="+256"/>
         <source>Close</source>
         <translation>Zamknij okno</translation>
     </message>
     <message>
-        <location line="+28"/>
         <source>Closes the window</source>
         <translation>Zamyka okno</translation>
     </message>
     <message>
-        <location line="-10"/>
         <source>Contains commands to manipulate the window</source>
         <translation>Zawiera polecenia zarządzające oknem</translation>
     </message>
     <message>
-        <location line="+12"/>
         <source>Displays the name of the window and contains controls to manipulate it</source>
         <translation>Wyświetla nazwę okna i zawiera elementy do zarządzania nim</translation>
     </message>
     <message>
-        <location line="-4"/>
         <source>Makes the window full screen</source>
         <translation>Powiększa maksymalnie okno</translation>
     </message>
     <message>
-        <location line="-28"/>
         <source>Maximize</source>
         <translation>Zmaksymalizuj</translation>
     </message>
     <message>
-        <location line="-4"/>
         <source>Minimize</source>
         <translation>Zminimalizuj</translation>
     </message>
     <message>
-        <location line="+27"/>
         <source>Puts a minimized window back to normal</source>
         <translation>Przywraca normalny rozmiar uprzednio zminimalizowanego okna</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Moves the window out of the way</source>
         <translation>Przenosi okno w inne położenie</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Puts a maximized window back to normal</source>
         <translation>Przywraca normalny rozmiar uprzednio zmaksymalizowanego okna</translation>
     </message>
     <message>
-        <location line="-28"/>
         <source>Restore down</source>
         <translation>Przywróć pod spód</translation>
     </message>
     <message>
-        <location line="-4"/>
         <source>Restore up</source>
         <translation>Przywróć na wierzch</translation>
     </message>
     <message>
-        <location line="-3"/>
         <source>System</source>
         <translation>System</translation>
     </message>
@@ -1161,7 +939,6 @@
 <context>
     <name>Q3ToolBar</name>
     <message>
-        <location filename="../src/qt3support/widgets/q3toolbar.cpp" line="+692"/>
         <source>More...</source>
         <translation>Więcej...</translation>
     </message>
@@ -1169,51 +946,38 @@
 <context>
     <name>Q3UrlOperator</name>
     <message>
-        <location filename="../src/qt3support/network/q3urloperator.cpp" line="+889"/>
-        <location line="+1"/>
         <source>(unknown)</source>
         <translation>(nieznany)</translation>
     </message>
     <message>
-        <location line="-242"/>
-        <location line="+4"/>
         <source>The protocol `%1&apos; does not support copying or moving files or directories</source>
         <translation>Protokół &apos;%1&apos; nie obsługuje kopiowania lub przenoszenia plików lub katalogów</translation>
     </message>
     <message>
-        <location line="-259"/>
         <source>The protocol `%1&apos; does not support creating new directories</source>
         <translation>Protokół &apos;%1&apos; nie obsługuje tworzenia nowych katalogów</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>The protocol `%1&apos; does not support getting files</source>
         <translation>Protokół &apos;%1&apos; nie obsługuje pobierania plików</translation>
     </message>
     <message>
-        <location line="-12"/>
         <source>The protocol `%1&apos; does not support listing directories</source>
         <translation>Protokół &apos;%1&apos; nie obsługuje pokazywania katalogów</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>The protocol `%1&apos; does not support putting files</source>
         <translation>Protokół &apos;%1&apos; nie obsługuje wysyłania plików</translation>
     </message>
     <message>
-        <location line="-9"/>
         <source>The protocol `%1&apos; does not support removing files or directories</source>
         <translation>Protokół &apos;%1&apos; nie obsługuje usuwania plików lub katalogów</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>The protocol `%1&apos; does not support renaming files or directories</source>
         <translation>Protokół &apos;%1&apos; nie obsługuje zmiany nazwy plików lub katalogów</translation>
     </message>
     <message>
-        <location line="-13"/>
-        <location line="+260"/>
-        <location line="+4"/>
         <source>The protocol `%1&apos; is not supported</source>
         <translation>Protokół &apos;%1&apos; nie jest obsługiwany</translation>
     </message>
@@ -1221,27 +985,22 @@
 <context>
     <name>Q3Wizard</name>
     <message>
-        <location filename="../src/qt3support/dialogs/q3wizard.cpp" line="+178"/>
         <source>&lt; &amp;Back</source>
         <translation>&lt; &amp;Wstecz</translation>
     </message>
     <message>
-        <location line="-1"/>
         <source>&amp;Cancel</source>
         <translation>&amp;Anuluj</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>&amp;Finish</source>
         <translation>&amp;Zakończ</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Help</source>
         <translation>&amp;Pomoc</translation>
     </message>
     <message>
-        <location line="-2"/>
         <source>&amp;Next &gt;</source>
         <translation>&amp;Dalej &gt;</translation>
     </message>
@@ -1249,45 +1008,30 @@
 <context>
     <name>QAbstractSocket</name>
     <message>
-        <location filename="../src/network/socket/qabstractsocket.cpp" line="+966"/>
-        <location filename="../src/network/socket/qhttpsocketengine.cpp" line="+632"/>
-        <location filename="../src/network/socket/qsocks5socketengine.cpp" line="+691"/>
         <source>Connection refused</source>
         <translation>Połączenie odrzucone</translation>
     </message>
     <message>
-        <location line="-50"/>
-        <location filename="../src/network/socket/qhttpsocketengine.cpp" line="-3"/>
-        <location filename="../src/network/socket/qsocks5socketengine.cpp" line="-30"/>
-        <location line="+26"/>
         <source>Host not found</source>
         <translation>Host nie znaleziony</translation>
     </message>
     <message>
-        <location line="+192"/>
         <source>Connection timed out</source>
         <translation>Przekroczony czas połączenia</translation>
     </message>
     <message>
-        <location line="-559"/>
-        <location line="+809"/>
-        <location line="+220"/>
         <source>Operation on socket is not supported</source>
         <translation>Operacja na gnieździe nie jest obsługiwana</translation>
     </message>
     <message>
-        <location line="+583"/>
         <source>Socket is not connected</source>
         <translation>Gniazdo nie jest podłączone</translation>
     </message>
     <message>
-        <location filename="../src/network/access/qhttpnetworkconnection.cpp" line="+620"/>
-        <location filename="../src/network/socket/qabstractsocket.cpp" line="-380"/>
         <source>Socket operation timed out</source>
         <translation>Przekroczony czas operacji gniazda</translation>
     </message>
     <message>
-        <location filename="../src/network/socket/qsocks5socketengine.cpp" line="-4"/>
         <source>Network unreachable</source>
         <translation>Sieć niedostępna</translation>
     </message>
@@ -1295,17 +1039,14 @@
 <context>
     <name>QAbstractSpinBox</name>
     <message>
-        <location filename="../src/gui/widgets/qabstractspinbox.cpp" line="+1265"/>
         <source>Step &amp;down</source>
         <translation>Krok w &amp;dół</translation>
     </message>
     <message>
-        <location line="-2"/>
         <source>&amp;Step up</source>
         <translation>Krok do &amp;góry</translation>
     </message>
     <message>
-        <location line="-6"/>
         <source>&amp;Select All</source>
         <translation>&amp;Zaznacz wszystko</translation>
     </message>
@@ -1313,7 +1054,6 @@
 <context>
     <name>QAccessibleButton</name>
     <message>
-        <location filename="../src/plugins/accessible/widgets/simplewidgets.cpp" line="+250"/>
         <source>Press</source>
         <translation>Wciśnij</translation>
     </message>
@@ -1321,27 +1061,22 @@
 <context>
     <name>QApplication</name>
     <message>
-        <location filename="../src/gui/accessible/qaccessibleobject.cpp" line="+376"/>
         <source>Activate</source>
         <translation>Uaktywnij</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Activates the program&apos;s main window</source>
         <translation>Uaktywnia główne okno programu</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>Program &apos;%1&apos; wymaga do uruchomienia Qt %2, znaleziono Qt %3.</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Incompatible Qt Library Error</source>
         <translation>Niekompatybilność biblioteki Qt</translation>
     </message>
     <message>
-        <location filename="../src/gui/kernel/qapplication.cpp" line="-13"/>
         <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>
@@ -1350,22 +1085,18 @@
 <context>
     <name>QAxSelect</name>
     <message>
-        <location filename="../src/activeqt/container/qaxselect.ui"/>
         <source>Select ActiveX Control</source>
         <translation>Wybierz kontrolkę ActiveX</translation>
     </message>
     <message>
-        <location/>
         <source>OK</source>
         <translation>OK</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Cancel</source>
         <translation>&amp;Anuluj</translation>
     </message>
     <message>
-        <location/>
         <source>COM &amp;Object:</source>
         <translation>&amp;Obiekt COM:</translation>
     </message>
@@ -1373,17 +1104,14 @@
 <context>
     <name>QCheckBox</name>
     <message>
-        <location filename="../src/plugins/accessible/widgets/simplewidgets.cpp" line="-133"/>
         <source>Check</source>
         <translation>Zaznacz</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Toggle</source>
         <translation>Przełącz</translation>
     </message>
     <message>
-        <location line="-4"/>
         <source>Uncheck</source>
         <translation>Odznacz</translation>
     </message>
@@ -1391,57 +1119,46 @@
 <context>
     <name>QColorDialog</name>
     <message>
-        <location filename="../src/gui/dialogs/qcolordialog.cpp" line="+1670"/>
         <source>&amp;Add to Custom Colors</source>
         <translation>&amp;Dodaj do własnych kolorów</translation>
     </message>
     <message>
-        <location line="-286"/>
         <source>A&amp;lpha channel:</source>
         <translation>Kanał &amp;alfa:</translation>
     </message>
     <message>
-        <location line="+101"/>
         <source>Select Color</source>
         <translation>Wybierz kolor</translation>
     </message>
     <message>
-        <location line="+183"/>
         <source>&amp;Basic colors</source>
         <translation>&amp;Kolory podstawowe</translation>
     </message>
     <message>
-        <location line="-285"/>
         <source>Bl&amp;ue:</source>
         <translation>Błęki&amp;t:</translation>
     </message>
     <message>
-        <location line="+286"/>
         <source>&amp;Custom colors</source>
         <translation>Wła&amp;sne kolory</translation>
     </message>
     <message>
-        <location line="-287"/>
         <source>&amp;Green:</source>
         <translation>&amp;Zieleń:</translation>
     </message>
     <message>
-        <location line="-4"/>
         <source>Hu&amp;e:</source>
         <translation>&amp;Barwa:</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>&amp;Red:</source>
         <translation>&amp;Czerwień:</translation>
     </message>
     <message>
-        <location line="-2"/>
         <source>&amp;Sat:</source>
         <translation>&amp;Nasycenie:</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Val:</source>
         <translation>&amp;Wartość:</translation>
     </message>
@@ -1449,23 +1166,18 @@
 <context>
     <name>QComboBox</name>
     <message>
-        <location filename="../src/plugins/accessible/widgets/complexwidgets.cpp" line="+1776"/>
-        <location line="+65"/>
         <source>Open</source>
         <translation>Otwórz</translation>
     </message>
     <message>
-        <location filename="../src/gui/itemviews/qitemeditorfactory.cpp" line="+556"/>
         <source>False</source>
         <translation>Fałsz</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>True</source>
         <translation>Prawda</translation>
     </message>
     <message>
-        <location filename="../src/plugins/accessible/widgets/complexwidgets.cpp" line="+0"/>
         <source>Close</source>
         <translation>Zamknij</translation>
     </message>
@@ -1473,43 +1185,36 @@
 <context>
     <name>QCoreApplication</name>
     <message>
-        <location filename="../src/corelib/kernel/qsystemsemaphore_symbian.cpp" line="+65"/>
         <source>%1: already exists</source>
         <comment>QSystemSemaphore</comment>
         <translation>%1: już istnieje</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>%1: does not exist</source>
         <comment>QSystemSemaphore</comment>
         <translation>%1: nie istnieje</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>%1: out of resources</source>
         <comment>QSystemSemaphore</comment>
         <translation>%1: zasoby wyczerpane</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>%1: unknown error %2</source>
         <comment>QSystemSemaphore</comment>
         <translation>%1: nieznany błąd %2</translation>
     </message>
     <message>
-        <location filename="../src/corelib/kernel/qsystemsemaphore_unix.cpp" line="+119"/>
         <source>%1: key is empty</source>
         <comment>QSystemSemaphore</comment>
         <translation>%1: klucz jest pusty</translation>
     </message>
     <message>
-        <location line="+12"/>
         <source>%1: unable to make key</source>
         <comment>QSystemSemaphore</comment>
         <translation>%1: nie można utworzyć klucza</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>%1: ftok failed</source>
         <comment>QSystemSemaphore</comment>
         <translation>%1: wystąpił błąd w funkcji ftok()</translation>
@@ -1518,22 +1223,18 @@
 <context>
     <name>QDB2Driver</name>
     <message>
-        <location filename="../src/sql/drivers/db2/qsql_db2.cpp" line="+1253"/>
         <source>Unable to connect</source>
         <translation>Nie można nawiązać połączenia</translation>
     </message>
     <message>
-        <location line="+298"/>
         <source>Unable to commit transaction</source>
         <translation>Nie można dokonać transakcji</translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>Unable to rollback transaction</source>
         <translation>Nie można wycofać transakcji</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Unable to set autocommit</source>
         <translation>Nie można ustawić trybu automatycznego dokonywania transakcji</translation>
     </message>
@@ -1541,33 +1242,26 @@
 <context>
     <name>QDB2Result</name>
     <message>
-        <location line="-1030"/>
-        <location line="+240"/>
         <source>Unable to execute statement</source>
         <translation>Nie można wykonać polecenia</translation>
     </message>
     <message>
-        <location line="-203"/>
         <source>Unable to prepare statement</source>
         <translation>Nie można przygotować polecenia</translation>
     </message>
     <message>
-        <location line="+193"/>
         <source>Unable to bind variable</source>
         <translation>Nie można powiązać zmiennej</translation>
     </message>
     <message>
-        <location line="+89"/>
         <source>Unable to fetch record %1</source>
         <translation>Nie można pobrać rekordu %1</translation>
     </message>
     <message>
-        <location line="+19"/>
         <source>Unable to fetch next</source>
         <translation>Nie można pobrać kolejnego wiersza danych</translation>
     </message>
     <message>
-        <location line="+21"/>
         <source>Unable to fetch first</source>
         <translation>Nie można pobrać pierwszego wiersza danych</translation>
     </message>
@@ -1575,22 +1269,18 @@
 <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>
@@ -1598,17 +1288,14 @@
 <context>
     <name>QDeclarativeAbstractAnimation</name>
     <message>
-        <location filename="../src/declarative/util/qdeclarativeanimation.cpp" line="+176"/>
         <source>Cannot animate non-existent property &quot;%1&quot;</source>
         <translation>Nie można animować nieistniejącej właściwości &quot;%1&quot;</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Cannot animate read-only property &quot;%1&quot;</source>
         <translation>Nie można animować właściwości (tylko do odczytu): &quot;%1&quot;</translation>
     </message>
     <message>
-        <location filename="../src/declarative/util/qdeclarativeutilmodule.cpp" line="+120"/>
         <source>Animation is an abstract class</source>
         <translation>&quot;Animation&quot; jest klasą abstrakcyjną</translation>
     </message>
@@ -1616,7 +1303,6 @@
 <context>
     <name>QDeclarativeAnchorAnimation</name>
     <message>
-        <location filename="../src/declarative/util/qdeclarativeanimation.cpp" line="+2616"/>
         <source>Cannot set a duration of &lt; 0</source>
         <translation>Nie można ustawić ujemnego czasu trwania</translation>
     </message>
@@ -1624,67 +1310,50 @@
 <context>
     <name>QDeclarativeAnchors</name>
     <message>
-        <location filename="../src/declarative/graphicsitems/qdeclarativeanchors.cpp" line="+204"/>
         <source>Possible anchor loop detected on fill.</source>
         <translation>Wykryto możliwe zapętlenie dla kotwicy &quot;fill&quot;.</translation>
     </message>
     <message>
-        <location line="+26"/>
         <source>Possible anchor loop detected on centerIn.</source>
         <translation>Wykryto możliwe zapętlenie dla kotwicy &quot;centerIn&quot;.</translation>
     </message>
     <message>
-        <location line="+201"/>
-        <location line="+34"/>
-        <location line="+610"/>
-        <location line="+37"/>
         <source>Cannot anchor to an item that isn&apos;t a parent or sibling.</source>
         <translation>Nie można doczepić kotwicy do elementu który nie jest rodzicem ani rodzeństwem.</translation>
     </message>
     <message>
-        <location line="-534"/>
         <source>Possible anchor loop detected on vertical anchor.</source>
         <translation>Wykryto możliwe zapętlenie dla pionowej kotwicy.</translation>
     </message>
     <message>
-        <location line="+59"/>
         <source>Possible anchor loop detected on horizontal anchor.</source>
         <translation>Wykryto możliwe zapętlenie dla poziomej kotwicy.</translation>
     </message>
     <message>
-        <location line="+422"/>
         <source>Cannot specify left, right, and hcenter anchors.</source>
         <translation>Nie można jednocześnie podać lewej, prawej i centralnej poziomej kotwicy.</translation>
     </message>
     <message>
-        <location line="+10"/>
-        <location line="+37"/>
         <source>Cannot anchor to a null item.</source>
         <translation>Nie można doczepić kotwicy do zerowego elementu.</translation>
     </message>
     <message>
-        <location line="-34"/>
         <source>Cannot anchor a horizontal edge to a vertical edge.</source>
         <translation>Nie można doczepić poziomej krawędzi do pionowej.</translation>
     </message>
     <message>
-        <location line="+6"/>
-        <location line="+37"/>
         <source>Cannot anchor item to self.</source>
         <translation>Nie można doczepić kotwicy do tego samego elementu.</translation>
     </message>
     <message>
-        <location line="-25"/>
         <source>Cannot specify top, bottom, and vcenter anchors.</source>
         <translation>Nie można jednocześnie podać górnej, dolnej i centralnej pionowej kotwicy.</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Baseline anchor cannot be used in conjunction with top, bottom, or vcenter anchors.</source>
         <translation>Bazowa kotwica nie może być użyta w połączeniu z górną, dolną lub centralną pionową kotwicą.</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>Cannot anchor a vertical edge to a horizontal edge.</source>
         <translation>Nie można doczepić pionowej krawędzi do poziomej.</translation>
     </message>
@@ -1692,7 +1361,6 @@
 <context>
     <name>QDeclarativeAnimatedImage</name>
     <message>
-        <location filename="../src/declarative/graphicsitems/qdeclarativeitemsmodule.cpp" line="+102"/>
         <source>Qt was built without support for QMovie</source>
         <translation>Qt zostało zbudowane bez obsługi QMovie</translation>
     </message>
@@ -1700,7 +1368,6 @@
 <context>
     <name>QDeclarativeBehavior</name>
     <message>
-        <location filename="../src/declarative/util/qdeclarativebehavior.cpp" line="+129"/>
         <source>Cannot change the animation assigned to a Behavior.</source>
         <translation>Nie można zmienić animacji przypisanej do &quot;Zachowania&quot;.</translation>
     </message>
@@ -1708,7 +1375,6 @@
 <context>
     <name>QDeclarativeBinding</name>
     <message>
-        <location filename="../src/declarative/qml/qdeclarativebinding.cpp" line="+241"/>
         <source>Binding loop detected for property &quot;%1&quot;</source>
         <translation>Zapętlenie powiązania dla właściwości &quot;%1&quot;</translation>
     </message>
@@ -1716,7 +1382,6 @@
 <context>
     <name>QDeclarativeCompiledBindings</name>
     <message>
-        <location filename="../src/declarative/qml/qdeclarativecompiledbindings.cpp" line="+372"/>
         <source>Binding loop detected for property &quot;%1&quot;</source>
         <translation>Zapętlenie powiązania dla właściwości &quot;%1&quot;</translation>
     </message>
@@ -1724,37 +1389,26 @@
 <context>
     <name>QDeclarativeCompiler</name>
     <message>
-        <location filename="../src/declarative/qml/qdeclarativecompiler.cpp" line="+186"/>
-        <location line="+1601"/>
-        <location line="+186"/>
-        <location line="+81"/>
-        <location line="+75"/>
-        <location line="+507"/>
         <source>Invalid property assignment: &quot;%1&quot; is a read-only property</source>
         <translation>Niepoprawne przypisanie wartości: &quot;%1&quot; jest właściwością tylko do odczytu</translation>
     </message>
     <message>
-        <location line="-2441"/>
         <source>Invalid property assignment: unknown enumeration</source>
         <translation>Niepoprawne przypisanie wartości: nieznana wartość wyliczeniowa</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Invalid property assignment: string expected</source>
         <translation>Niepoprawne przypisanie wartości: oczekiwano ciągu</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Invalid property assignment: url expected</source>
         <translation>Niepoprawne przypisanie wartości: oczekiwano url</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>Invalid property assignment: unsigned int expected</source>
         <translation>Niepoprawne przypisanie wartości: oczekiwano liczby naturalnej</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>Invalid property assignment: int expected</source>
         <translation>Niepoprawne przypisanie wartości: oczekiwano liczby całkowitej</translation>
     </message>
@@ -1767,356 +1421,278 @@
         <translation type="obsolete">Niepoprawne przypisanie wartości: oczekiwano liczby zmiennoprzecinkowej podwójnej precyzji</translation>
     </message>
     <message>
-        <location line="+4"/>
-        <location line="+3"/>
         <source>Invalid property assignment: number expected</source>
         <translation>Niepoprawne przypisanie wartości: oczekiwano liczby</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Invalid property assignment: color expected</source>
         <translation>Niepoprawne przypisanie wartości: oczekiwano koloru</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Invalid property assignment: date expected</source>
         <translation>Niepoprawne przypisanie wartości: oczekiwano daty</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Invalid property assignment: time expected</source>
         <translation>Niepoprawne przypisanie wartości: oczekiwano czasu</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Invalid property assignment: datetime expected</source>
         <translation>Niepoprawne przypisanie wartości: oczekiwano daty i czasu</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Invalid property assignment: point expected</source>
         <translation>Niepoprawne przypisanie wartości: oczekiwano punktu</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Invalid property assignment: size expected</source>
         <translation>Niepoprawne przypisanie wartości: oczekiwano rozmiaru</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Invalid property assignment: rect expected</source>
         <translation>Niepoprawne przypisanie wartości: oczekiwano prostokąta</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Invalid property assignment: boolean expected</source>
         <translation>Niepoprawne przypisanie wartości: oczekiwano wartości boolowskiej</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Invalid property assignment: 3D vector expected</source>
-        <translation>Niepoprawne przypisanie wartości: oczekiwano wektoru 3D</translation>
-    </message>
-    <message>
-        <location line="+9"/>
+        <translation>Niepoprawne przypisanie wartości: oczekiwano wektora 3D</translation>
+    </message>
+    <message>
         <source>Invalid property assignment: unsupported type &quot;%1&quot;</source>
         <translation>Niepoprawne przypisanie wartości: nieobsługiwany typ &quot;%1&quot;</translation>
     </message>
     <message>
-        <location line="+277"/>
         <source>Element is not creatable.</source>
         <translation>Nie można utworzyć elementu (&quot;creatable&quot; wyłączone).</translation>
     </message>
     <message>
-        <location line="+623"/>
         <source>Component elements may not contain properties other than id</source>
         <translation>Elementy komponentu nie mogą posiadać właściwości innych niż &quot;id&quot;</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Invalid component id specification</source>
         <translation>Niepoprawna specyfikacja &quot;id&quot; komponentu</translation>
     </message>
     <message>
-        <location line="+6"/>
-        <location line="+478"/>
         <source>id is not unique</source>
         <translation>Wartość &quot;id&quot; nie jest unikatowa</translation>
     </message>
     <message>
-        <location line="-468"/>
         <source>Invalid component body specification</source>
         <translation>Niepoprawna specyfikacja &quot;body&quot; komponentu</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Component objects cannot declare new properties.</source>
         <translation>Instancje komponentu nie mogą deklarować nowych właściwości.</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Component objects cannot declare new signals.</source>
         <translation>Instancje komponentu nie mogą deklarować nowych sygnałów.</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Component objects cannot declare new functions.</source>
         <translation>Instancje komponentu nie mogą deklarować nowych funkcji.</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Cannot create empty component specification</source>
         <translation>Nie można utworzyć pustej specyfikacji komponentu</translation>
     </message>
     <message>
-        <location line="+89"/>
         <source>Incorrectly specified signal assignment</source>
         <translation>Przypisanie sygnału błędnie podane</translation>
     </message>
     <message>
-        <location line="+12"/>
         <source>Cannot assign a value to a signal (expecting a script to be run)</source>
         <translation>Nie można przypisać wartości do sygnału (oczekiwano uruchomienia skryptu)</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Empty signal assignment</source>
         <translation>Przypisanie pustego sygnału</translation>
     </message>
     <message>
-        <location line="+38"/>
         <source>Empty property assignment</source>
         <translation>Przypisanie pustej właściwości</translation>
     </message>
     <message>
-        <location line="+12"/>
         <source>Attached properties cannot be used here</source>
         <translation>Dołączone właściwości nie mogą być tutaj użyte</translation>
     </message>
     <message>
-        <location line="+15"/>
-        <location line="+102"/>
         <source>Non-existent attached object</source>
         <translation>Nieistniejący dołączony obiekt</translation>
     </message>
     <message>
-        <location line="-98"/>
-        <location line="+101"/>
         <source>Invalid attached object assignment</source>
         <translation>Niepoprawne przypisanie dołączonego obiektu</translation>
     </message>
     <message>
-        <location line="-48"/>
         <source>Cannot assign to non-existent default property</source>
         <translation>Nie można przypisać wartości do nieistniejącej domyślnej właściwości</translation>
     </message>
     <message>
-        <location line="+2"/>
-        <location line="+352"/>
         <source>Cannot assign to non-existent property &quot;%1&quot;</source>
         <translation>Nie można przypisać wartości do nieistniejącej właściwości &quot;%1&quot;</translation>
     </message>
     <message>
-        <location line="-322"/>
         <source>Invalid use of namespace</source>
         <translation>Niepoprawne użycie przestrzeni nazw</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Not an attached property name</source>
         <translation>Nie jest to nazwa dołączonej właściwości</translation>
     </message>
     <message>
-        <location line="+182"/>
         <source>Invalid use of id property</source>
         <translation>Niepoprawne użycie właściwości &quot;id&quot;</translation>
     </message>
     <message>
-        <location line="+89"/>
-        <location line="+2"/>
         <source>Property has already been assigned a value</source>
         <translation>Wartość została już przypisana do właściwości</translation>
     </message>
     <message>
-        <location line="+12"/>
-        <location line="+7"/>
         <source>Invalid grouped property access</source>
         <translation>Błędny dostęp do zgrupowanej właściwości</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Cannot assign a value directly to a grouped property</source>
         <translation>Nie można bezpośrednio przypisać wartości do zgrupowanej właściwości</translation>
     </message>
     <message>
-        <location line="+16"/>
         <source>Invalid property use</source>
         <translation>Niepoprawne użycie właściwości</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>Property assignment expected</source>
         <translation>Oczekiwano przypisania wartości</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Single property assignment expected</source>
         <translation>Oczekiwano przypisania pojedynczej wartości</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Unexpected object assignment</source>
         <translation>Nieoczekiwane przypisanie obiektu</translation>
     </message>
     <message>
-        <location line="+57"/>
         <source>Cannot assign object to list</source>
         <translation>Nie można przypisać obiektu do listy</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Can only assign one binding to lists</source>
         <translation>Tylko jedno powiązanie może być przypisane do listy</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Cannot assign primitives to lists</source>
         <translation>Nie można przypisać elementu do listy</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>Cannot assign multiple values to a script property</source>
         <translation>Nie można przypisać wielu wartości do skryptowej właściwości</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Invalid property assignment: script expected</source>
         <translation>Niepoprawne przypisanie wartości: oczekiwano skryptu</translation>
     </message>
     <message>
-        <location line="+105"/>
         <source>Cannot assign object to property</source>
         <translation>Nie można przypisać obiektu dla właściwości</translation>
     </message>
     <message>
-        <location line="+50"/>
         <source>&quot;%1&quot; cannot operate on &quot;%2&quot;</source>
         <translation>&quot;%1&quot; nie może operować na &quot;%2&quot;</translation>
     </message>
     <message>
-        <location line="+129"/>
         <source>Duplicate default property</source>
         <translation>Powielona domyślna właściwość</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Duplicate property name</source>
         <translation>Powielona nazwa właściwości</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Property names cannot begin with an upper case letter</source>
         <translation>Nazwy właściwości nie mogą rozpoczynać się wielką literą</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Illegal property name</source>
         <translation>Niepoprawna nazwa właściwości</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Duplicate signal name</source>
         <translation>Powielona nazwa sygnału</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Signal names cannot begin with an upper case letter</source>
         <translation>Nazwy sygnałów nie mogą rozpoczynać się wielką literą</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Illegal signal name</source>
         <translation>Niepoprawna nazwa sygnału</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Duplicate method name</source>
-        <translation>Powielona nazwa medoty</translation>
-    </message>
-    <message>
-        <location line="+2"/>
+        <translation>Powielona nazwa metody</translation>
+    </message>
+    <message>
         <source>Method names cannot begin with an upper case letter</source>
         <translation>Nazwy metod nie mogą rozpoczynać się wielką literą</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Illegal method name</source>
         <translation>Niepoprawna nazwa metody</translation>
     </message>
     <message>
-        <location line="+21"/>
         <source>Property value set multiple times</source>
         <translation>Wartość właściwości ustawiona wielokrotnie</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Invalid property nesting</source>
         <translation>Niepoprawne zagnieżdżenie właściwości</translation>
     </message>
     <message>
-        <location line="+53"/>
         <source>Cannot override FINAL property</source>
         <translation>Nie można nadpisać właściwości &quot;FINAL&quot;</translation>
     </message>
     <message>
-        <location line="+24"/>
         <source>Invalid property type</source>
         <translation>Niepoprawny typ właściwości</translation>
     </message>
     <message>
-        <location line="+159"/>
         <source>Invalid empty ID</source>
         <translation>Niepoprawny pusty identyfikator</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>IDs cannot start with an uppercase letter</source>
         <translation>Identyfikatory nie mogą rozpoczynać się wielką literą</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>IDs must start with a letter or underscore</source>
         <translation>Identyfikatory muszą rozpoczynać się literą lub znakiem podkreślenia</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>IDs must contain only letters, numbers, and underscores</source>
         <translation>Identyfikatory mogą zawierać jedynie litery, cyfry i znaki podkreślenia</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>ID illegally masks global JavaScript property</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+31"/>
-        <location line="+9"/>
         <source>No property alias location</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-4"/>
-        <location line="+25"/>
         <source>Invalid alias location</source>
         <translation>Niepoprawne położenie aliasu</translation>
     </message>
     <message>
-        <location line="-16"/>
         <source>Invalid alias reference. An alias reference must be specified as &lt;id&gt; or &lt;id&gt;.&lt;property&gt;</source>
         <translation>Niepoprawna referencja aliasu. Referencja aliasu musi być podana jako &lt;id&gt; lub &lt;id&gt; &lt;property&gt;</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Invalid alias reference. Unable to find id &quot;%1&quot;</source>
         <translation>Niepoprawna referencja aliasu. Nie można odnaleźć identyfikatora &quot;%1&quot;</translation>
     </message>
@@ -2124,7 +1700,6 @@
 <context>
     <name>QDeclarativeComponent</name>
     <message>
-        <location filename="../src/declarative/qml/qdeclarativecomponent.cpp" line="+507"/>
         <source>Invalid empty URL</source>
         <translation>Niepoprawny pusty URL</translation>
     </message>
@@ -2132,23 +1707,18 @@
 <context>
     <name>QDeclarativeCompositeTypeManager</name>
     <message>
-        <location filename="../src/declarative/qml/qdeclarativecompositetypemanager.cpp" line="+475"/>
-        <location line="+266"/>
         <source>Resource %1 unavailable</source>
         <translation>Zasób %1 nie jest dostępny</translation>
     </message>
     <message>
-        <location line="-122"/>
         <source>Namespace %1 cannot be used as a type</source>
         <translation>Przestrzeń nazw %1 nie może być użyta jako typ</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>%1 %2</source>
         <translation>%1 %2</translation>
     </message>
     <message>
-        <location line="+47"/>
         <source>Type %1 unavailable</source>
         <translation>Typ %1 nie jest dostępny</translation>
     </message>
@@ -2156,23 +1726,18 @@
 <context>
     <name>QDeclarativeConnections</name>
     <message>
-        <location filename="../src/declarative/util/qdeclarativeconnections.cpp" line="+210"/>
-        <location line="+60"/>
         <source>Cannot assign to non-existent property &quot;%1&quot;</source>
         <translation>Nie można przypisać wartości do nieistniejącej właściwości &quot;%1&quot;</translation>
     </message>
     <message>
-        <location line="-50"/>
         <source>Connections: nested objects not allowed</source>
         <translation>Połączenia: zagnieżdżone obiekty nie są dozwolone</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Connections: syntax error</source>
         <translation>Połączenia: błąd składni</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Connections: script expected</source>
         <translation>Połączenia: oczekiwano skryptu</translation>
     </message>
@@ -2180,33 +1745,26 @@
 <context>
     <name>QDeclarativeEngine</name>
     <message>
-        <location filename="../src/declarative/qml/qdeclarativesqldatabase.cpp" line="+204"/>
         <source>executeSql called outside transaction()</source>
         <translation>&quot;executeSql&quot; zawołane na zewnątrz &quot;transation()&quot;</translation>
     </message>
     <message>
-        <location line="+58"/>
         <source>Read-only Transaction</source>
         <translation>Transakcja tylko do odczytu</translation>
     </message>
     <message>
-        <location line="+20"/>
         <source>Version mismatch: expected %1, found %2</source>
         <translation>Niezgodność wersji: oczekiwano %1, znaleziono %2</translation>
     </message>
     <message>
-        <location line="+14"/>
         <source>SQL transaction failed</source>
         <translation>Transakcja SQL zakończona błędem</translation>
     </message>
     <message>
-        <location line="+21"/>
         <source>transaction: missing callback</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+57"/>
-        <location line="+16"/>
         <source>SQL: database version mismatch</source>
         <translation>SQL: niezgodność wersji bazy danych</translation>
     </message>
@@ -2214,12 +1772,10 @@
 <context>
     <name>QDeclarativeFlipable</name>
     <message>
-        <location filename="../src/declarative/graphicsitems/qdeclarativeflipable.cpp" line="+129"/>
         <source>front is a write-once property</source>
         <translation>&quot;front&quot; jest właściwością tylko do odczytu</translation>
     </message>
     <message>
-        <location line="+19"/>
         <source>back is a write-once property</source>
         <translation>&quot;back&quot; jest właściwością tylko do odczytu</translation>
     </message>
@@ -2227,75 +1783,58 @@
 <context>
     <name>QDeclarativeImportDatabase</name>
     <message>
-        <location filename="../src/declarative/qml/qdeclarativeimport.cpp" line="+294"/>
         <source>module &quot;%1&quot; definition &quot;%2&quot; not readable</source>
         <translation>definicja &quot;%2&quot; modułu &quot;%1&quot; nie może zostać odczytana</translation>
     </message>
     <message>
-        <location line="+20"/>
         <source>plugin cannot be loaded for module &quot;%1&quot;: %2</source>
         <translation>wtyczka nie może zostać załadowana dla modułu &quot;%1&quot;: %2</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>module &quot;%1&quot; plugin &quot;%2&quot; not found</source>
         <translation>wtyczka &quot;%2&quot; modułu &quot;%1&quot; nie została odnaleziona</translation>
     </message>
     <message>
-        <location line="+79"/>
-        <location line="+69"/>
         <source>module &quot;%1&quot; version %2.%3 is not installed</source>
         <translation>wersja %2.%3 modułu %1 nie jest zainstalowana</translation>
     </message>
     <message>
-        <location line="-67"/>
         <source>module &quot;%1&quot; is not installed</source>
         <translation>moduł &quot;%1&quot; nie jest zainstalowany</translation>
     </message>
     <message>
-        <location line="+15"/>
-        <location line="+20"/>
         <source>&quot;%1&quot;: no such directory</source>
         <translation>&quot;%1&quot;: brak katalogu</translation>
     </message>
     <message>
-        <location line="-2"/>
         <source>import &quot;%1&quot; has no qmldir and no namespace</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+58"/>
         <source>- %1 is not a namespace</source>
         <translation>- %1 nie jest przestrzenią nazw</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>- nested namespaces not allowed</source>
         <translation>- zagnieżdżone przestrzenie nazw nie są dozwolone</translation>
     </message>
     <message>
-        <location line="+47"/>
-        <location line="+4"/>
         <source>local directory</source>
         <translation>lokalny katalog</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>is ambiguous. Found in %1 and in %2</source>
         <translation>jest niejednoznaczny. Znaleziono w %1 i w %2</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>is ambiguous. Found in %1 in version %2.%3 and %4.%5</source>
         <translation>jest niejednoznaczny. Znaleziono w %1 w wersji %2.%3 i %4.%5</translation>
     </message>
     <message>
-        <location line="+14"/>
         <source>is instantiated recursively</source>
         <translation>jest zinstancjonowany rekurencyjnie</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>is not a type</source>
         <translation>nie jest typem</translation>
     </message>
@@ -2303,7 +1842,6 @@
 <context>
     <name>QDeclarativeKeyNavigationAttached</name>
     <message>
-        <location filename="../src/declarative/graphicsitems/qdeclarativeitemsmodule.cpp" line="+70"/>
         <source>KeyNavigation is only available via attached properties</source>
         <translation>&quot;KeyNavigation&quot; jest dostępny jedynie poprzez dołączone właściwości</translation>
     </message>
@@ -2311,7 +1849,6 @@
 <context>
     <name>QDeclarativeKeysAttached</name>
     <message>
-        <location line="+1"/>
         <source>Keys is only available via attached properties</source>
         <translation>&quot;Keys&quot; jest dostępny jedynie poprzez dołączone właściwości</translation>
     </message>
@@ -2319,59 +1856,46 @@
 <context>
     <name>QDeclarativeListModel</name>
     <message>
-        <location filename="../src/declarative/util/qdeclarativelistmodel.cpp" line="+315"/>
         <source>remove: index %1 out of range</source>
         <translation>remove: indeks %1 poza zakresem</translation>
     </message>
     <message>
-        <location line="+33"/>
         <source>insert: value is not an object</source>
         <translation>insert: wartość nie jest obiektem</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>insert: index %1 out of range</source>
         <translation>insert: indeks %1 poza zakresem</translation>
     </message>
     <message>
-        <location line="+30"/>
         <source>move: out of range</source>
         <translation>move: poza zakresem</translation>
     </message>
     <message>
-        <location line="+40"/>
         <source>append: value is not an object</source>
         <translation>append: wartość nie jest obiektem</translation>
     </message>
     <message>
-        <location line="+55"/>
         <source>set: value is not an object</source>
         <translation>set: wartość nie jest obiektem</translation>
     </message>
     <message>
-        <location line="+4"/>
-        <location line="+34"/>
         <source>set: index %1 out of range</source>
         <translation>set: indeks %1 poza zakresem</translation>
     </message>
     <message>
-        <location line="+41"/>
-        <location line="+17"/>
         <source>ListElement: cannot contain nested elements</source>
         <translation>ListElement: nie może zawierać zagnieżdżonych elementów</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>ListElement: cannot use reserved &quot;id&quot; property</source>
         <translation>ListElement: nie można używać zarezerwowanej właściwości &quot;id&quot;</translation>
     </message>
     <message>
-        <location line="+53"/>
         <source>ListElement: cannot use script for property value</source>
         <translation>ListElement: nie można używać skryptu jako wartości właściwości</translation>
     </message>
     <message>
-        <location line="+31"/>
         <source>ListModel: undefined property &apos;%1&apos;</source>
         <translation>ListModel: niezdefiniowana właściwość &quot;%1&quot;</translation>
     </message>
@@ -2379,7 +1903,6 @@
 <context>
     <name>QDeclarativeLoader</name>
     <message>
-        <location filename="../src/declarative/graphicsitems/qdeclarativeloader.cpp" line="+340"/>
         <source>Loader does not support loading non-visual elements.</source>
         <translation>Ładowanie elementów niewizualnych nie jest obsługiwane.</translation>
     </message>
@@ -2387,18 +1910,14 @@
 <context>
     <name>QDeclarativeParentAnimation</name>
     <message>
-        <location filename="../src/declarative/util/qdeclarativeanimation.cpp" line="-169"/>
         <source>Unable to preserve appearance under complex transform</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+10"/>
-        <location line="+7"/>
         <source>Unable to preserve appearance under non-uniform scale</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Unable to preserve appearance under scale of 0</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2406,18 +1925,14 @@
 <context>
     <name>QDeclarativeParentChange</name>
     <message>
-        <location filename="../src/declarative/util/qdeclarativestateoperations.cpp" line="+95"/>
         <source>Unable to preserve appearance under complex transform</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+10"/>
-        <location line="+7"/>
         <source>Unable to preserve appearance under non-uniform scale</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Unable to preserve appearance under scale of 0</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2425,144 +1940,110 @@
 <context>
     <name>QDeclarativeParser</name>
     <message>
-        <location filename="../src/declarative/qml/parser/qdeclarativejslexer.cpp" line="+542"/>
-        <location line="+123"/>
-        <location line="+54"/>
         <source>Illegal unicode escape sequence</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-140"/>
         <source>Illegal character</source>
         <translation>Niepoprawny znak</translation>
     </message>
     <message>
-        <location line="+14"/>
         <source>Unclosed string at end of line</source>
         <translation>Niedomknięty ciąg na końcu linii</translation>
     </message>
     <message>
-        <location line="+26"/>
         <source>Illegal escape squence</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+72"/>
         <source>Unclosed comment at end of file</source>
         <translation>Niedomknięty komentarz na końcu linii</translation>
     </message>
     <message>
-        <location line="+102"/>
         <source>Illegal syntax for exponential number</source>
         <translation>Niepoprawna składnia liczby o postaci wykładniczej</translation>
     </message>
     <message>
-        <location line="+26"/>
         <source>Identifier cannot start with numeric literal</source>
         <translation>Identyfikator nie może rozpoczynać się stałą liczbową</translation>
     </message>
     <message>
-        <location line="+338"/>
         <source>Unterminated regular expression literal</source>
         <translation>Niedokończone wyrażenie regularne</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Invalid regular expression flag &apos;%0&apos;</source>
         <translation>Niepoprawna flaga &quot;%0&quot; w wyrażeniu regularnym</translation>
     </message>
     <message>
-        <location line="+16"/>
-        <location line="+22"/>
         <source>Unterminated regular expression backslash sequence</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>Unterminated regular expression class</source>
         <translation>Niedokończona klasa wyrażenia regularnego</translation>
     </message>
     <message>
-        <location filename="../src/declarative/qml/parser/qdeclarativejsparser.cpp" line="+1828"/>
-        <location line="+67"/>
         <source>Syntax error</source>
         <translation>Błąd składni</translation>
     </message>
     <message>
-        <location line="-65"/>
         <source>Unexpected token `%1&apos;</source>
         <translation>Nieoczekiwany znak &quot;%1&quot;</translation>
     </message>
     <message>
-        <location line="+28"/>
-        <location line="+24"/>
         <source>Expected token `%1&apos;</source>
         <translation>Oczekiwany znak &quot;%1&quot;</translation>
     </message>
     <message>
-        <location filename="../src/declarative/qml/qdeclarativescriptparser.cpp" line="+260"/>
-        <location line="+431"/>
-        <location line="+59"/>
         <source>Property value set multiple times</source>
         <translation>Wartość właściwości ustawiona wielokrotnie</translation>
     </message>
     <message>
-        <location line="-479"/>
         <source>Expected type name</source>
         <translation>Oczekiwana nazwa typu</translation>
     </message>
     <message>
-        <location line="+136"/>
         <source>Invalid import qualifier ID</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Reserved name &quot;Qt&quot; cannot be used as an qualifier</source>
         <translation>&quot;Qt&quot; jest nazwą zarezerwowaną i nie może być użyta jako kwalifikator</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Script import qualifiers must be unique.</source>
         <translation>Kwalifikator importu skryptu musi być unikatowy.</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>Script import requires a qualifier</source>
         <translation>Import skryptu wymaga użycia kwalifikatora</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>Library import requires a version</source>
         <translation>Import biblioteki wymaga podania wersji</translation>
     </message>
     <message>
-        <location line="+59"/>
         <source>Expected parameter type</source>
         <translation>Oczekiwany typ parametru</translation>
     </message>
     <message>
-        <location line="+42"/>
         <source>Invalid property type modifier</source>
         <translation>Niepoprawny modyfikator typu właściwości</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Unexpected property type modifier</source>
         <translation>Nieoczekiwany modyfikator typu właściwości</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Expected property type</source>
         <translation>Oczekiwany typ właściwości</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Readonly not yet supported</source>
         <translation>&quot;Tylko do odczytu&quot; nie jest jeszcze obsługiwane</translation>
     </message>
     <message>
-        <location line="+215"/>
         <source>JavaScript declaration outside Script element</source>
         <translation>Deklaracja &quot;JavaScript&quot; na zewnątrz elementu &quot;Script&quot;</translation>
     </message>
@@ -2570,7 +2051,6 @@
 <context>
     <name>QDeclarativePauseAnimation</name>
     <message>
-        <location filename="../src/declarative/util/qdeclarativeanimation.cpp" line="-2036"/>
         <source>Cannot set a duration of &lt; 0</source>
         <translation>Nie można ustawić ujemnego czasu trwania</translation>
     </message>
@@ -2578,19 +2058,14 @@
 <context>
     <name>QDeclarativePixmap</name>
     <message>
-        <location filename="../src/declarative/util/qdeclarativepixmapcache.cpp" line="+295"/>
         <source>Error decoding: %1: %2</source>
         <translation>Błąd dekodowania: %1: %2</translation>
     </message>
     <message>
-        <location line="+145"/>
-        <location line="+333"/>
         <source>Failed to get image from provider: %1</source>
         <translation>Pobieranie obrazka od dostawcy zakończone błędem: %1</translation>
     </message>
     <message>
-        <location line="-314"/>
-        <location line="+332"/>
         <source>Cannot open: %1</source>
         <translation>Nie można otworzyć: %1</translation>
     </message>
@@ -2617,7 +2092,6 @@
 <context>
     <name>QDeclarativePropertyAnimation</name>
     <message>
-        <location filename="../src/declarative/util/qdeclarativeanimation.cpp" line="+1171"/>
         <source>Cannot set a duration of &lt; 0</source>
         <translation>Nie można ustawić ujemnego czasu trwania</translation>
     </message>
@@ -2625,17 +2099,14 @@
 <context>
     <name>QDeclarativePropertyChanges</name>
     <message>
-        <location filename="../src/declarative/util/qdeclarativepropertychanges.cpp" line="+267"/>
         <source>PropertyChanges does not support creating state-specific objects.</source>
         <translation>&quot;PropertyChanges&quot; nie obsługuje tworzenia obiektów charakterystycznych dla stanów.</translation>
     </message>
     <message>
-        <location line="+157"/>
         <source>Cannot assign to non-existent property &quot;%1&quot;</source>
         <translation>Nie można przypisać wartości do nieistniejącej właściwości &quot;%1&quot;</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Cannot assign to read-only property &quot;%1&quot;</source>
         <translation>Nie można przypisać wartości do właściwości (tylko do odczytu): &quot;%1&quot;</translation>
     </message>
@@ -2643,13 +2114,10 @@
 <context>
     <name>QDeclarativeTextInput</name>
     <message>
-        <location filename="../src/declarative/graphicsitems/qdeclarativetextinput.cpp" line="+805"/>
-        <location line="+8"/>
         <source>Could not load cursor delegate</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>Could not instantiate cursor delegate</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2657,47 +2125,38 @@
 <context>
     <name>QDeclarativeVME</name>
     <message>
-        <location filename="../src/declarative/qml/qdeclarativevme.cpp" line="+194"/>
         <source>Unable to create object of type %1</source>
         <translation>Nie można utworzyć obiektu typu %1</translation>
     </message>
     <message>
-        <location line="+390"/>
         <source>Cannot assign value %1 to property %2</source>
         <translation>Nie można przypisać wartości %1 do właściwości %2</translation>
     </message>
     <message>
-        <location line="+22"/>
         <source>Cannot assign object type %1 with no default method</source>
         <translation>Nie można przypisać obiektu typu %1 który nie posiada domyślnej metody</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Cannot connect mismatched signal/slot %1 %vs. %2</source>
         <translation>Nie można podłączyć niezgodnych sygnałów / slotów (%1 i %2)</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Cannot assign an object to signal property %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+146"/>
         <source>Cannot assign object to list</source>
         <translation>Nie można przypisać obiektu do listy</translation>
     </message>
     <message>
-        <location line="+41"/>
         <source>Cannot assign object to interface property</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>Unable to create attached object</source>
         <translation>Nie można utworzyć dołączonego obiektu</translation>
     </message>
     <message>
-        <location line="+32"/>
         <source>Cannot set properties on %1 as it is null</source>
         <translation>Nie można ustawić właściwości dla %1 ponieważ jest on zerowy</translation>
     </message>
@@ -2705,7 +2164,6 @@
 <context>
     <name>QDeclarativeVisualDataModel</name>
     <message>
-        <location filename="../src/declarative/graphicsitems/qdeclarativevisualitemmodel.cpp" line="+1058"/>
         <source>Delegate component must be Item type.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2713,8 +2171,6 @@
 <context>
     <name>QDeclarativeXmlListModel</name>
     <message>
-        <location filename="../src/declarative/util/qdeclarativeutilmodule.cpp" line="-12"/>
-        <location line="+2"/>
         <source>Qt was built without support for xmlpatterns</source>
         <translation>Qt zostało zbudowane bez obsługi xmlpatterns</translation>
     </message>
@@ -2722,7 +2178,6 @@
 <context>
     <name>QDeclarativeXmlListModelRole</name>
     <message>
-        <location filename="../src/declarative/util/qdeclarativexmllistmodel_p.h" line="+174"/>
         <source>An XmlRole query must not start with &apos;/&apos;</source>
         <translation>Zapytanie XmlRole nie może rozpoczynać się od &quot;/&quot;</translation>
     </message>
@@ -2730,7 +2185,6 @@
 <context>
     <name>QDeclarativeXmlRoleList</name>
     <message>
-        <location filename="../src/declarative/util/qdeclarativexmllistmodel.cpp" line="+735"/>
         <source>An XmlListModel query must start with &apos;/&apos; or &quot;//&quot;</source>
         <translation>Zapytanie XmlListModel nie może rozpoczynać się od &quot;/&quot; ani od &quot;//&quot;</translation>
     </message>
@@ -2738,17 +2192,14 @@
 <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>Miernik prędkości</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>SliderHandle</source>
         <translation>Uchwyt suwaka</translation>
     </message>
@@ -2756,12 +2207,10 @@
 <context>
     <name>QDialog</name>
     <message>
-        <location filename="../src/gui/dialogs/qdialog.cpp" line="+651"/>
         <source>What&apos;s This?</source>
         <translation>Co to jest?</translation>
     </message>
     <message>
-        <location line="-127"/>
         <source>Done</source>
         <translation>Zrobione</translation>
     </message>
@@ -2769,124 +2218,98 @@
 <context>
     <name>QDialogButtonBox</name>
     <message>
-        <location filename="../src/gui/widgets/qdialogbuttonbox.cpp" line="+696"/>
         <source>Abort</source>
         <translation>Przerwij</translation>
     </message>
     <message>
-        <location line="-32"/>
         <source>Apply</source>
         <translation>Zastosuj</translation>
     </message>
     <message>
-        <location line="-12"/>
         <source>&amp;Save</source>
         <translation>&amp;Zachowaj</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Cancel</source>
         <translation>Anuluj</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>&amp;Cancel</source>
         <translation>&amp;Anuluj</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Close</source>
         <translation>Zamknij</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>&amp;Close</source>
         <translation>&amp;Zamknij</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Close without Saving</source>
         <translation>Zamknij bez zapisywania</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Discard</source>
         <translation>Odrzuć</translation>
     </message>
     <message>
-        <location line="-4"/>
         <source>Don&apos;t Save</source>
         <translation>Nie zachowuj</translation>
     </message>
     <message>
-        <location line="-4"/>
         <source>Help</source>
         <translation>Pomoc</translation>
     </message>
     <message>
-        <location line="+32"/>
         <source>Ignore</source>
         <translation>Zignoruj</translation>
     </message>
     <message>
-        <location line="-15"/>
         <source>&amp;No</source>
         <translation>&amp;Nie</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>N&amp;o to All</source>
         <translation>Ni&amp;e dla wszystkich</translation>
     </message>
     <message>
-        <location filename="../src/gui/dialogs/qmessagebox.cpp" line="+1920"/>
-        <location line="+464"/>
-        <location filename="../src/gui/widgets/qdialogbuttonbox.cpp" line="-41"/>
         <source>OK</source>
         <translation>OK</translation>
     </message>
     <message>
-        <location filename="../src/gui/widgets/qdialogbuttonbox.cpp" line="+6"/>
         <source>Open</source>
         <translation>Otwórz</translation>
     </message>
     <message>
-        <location line="+12"/>
         <source>Reset</source>
         <translation>Resetuj</translation>
     </message>
     <message>
-        <location line="+38"/>
         <source>Restore Defaults</source>
         <translation>Przywróć ustawienia</translation>
     </message>
     <message>
-        <location line="-6"/>
         <source>Retry</source>
         <translation>Ponów</translation>
     </message>
     <message>
-        <location line="-47"/>
         <source>Save</source>
         <translation>Zachowaj</translation>
     </message>
     <message>
-        <location line="+41"/>
         <source>Save All</source>
         <translation>Zachowaj wszystko</translation>
     </message>
     <message>
-        <location line="-12"/>
         <source>&amp;Yes</source>
         <translation>&amp;Tak</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Yes to &amp;All</source>
         <translation>Ta&amp;k dla wszystkich</translation>
     </message>
     <message>
-        <location line="-35"/>
         <source>&amp;OK</source>
         <translation>&amp;OK</translation>
     </message>
@@ -2894,28 +2317,23 @@
 <context>
     <name>QDirModel</name>
     <message>
-        <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+469"/>
         <source>Date Modified</source>
         <translation>Data modyfikacji</translation>
     </message>
     <message>
-        <location line="-8"/>
         <source>Kind</source>
         <comment>Match OS X Finder</comment>
         <translation>Typ</translation>
     </message>
     <message>
-        <location line="-4"/>
         <source>Name</source>
         <translation>Nazwa</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Size</source>
         <translation>Rozmiar</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Type</source>
         <comment>All other platforms</comment>
         <translation>Rodzaj</translation>
@@ -2924,17 +2342,14 @@
 <context>
     <name>QDockWidget</name>
     <message>
-        <location filename="../src/plugins/accessible/widgets/qaccessiblewidgets.cpp" line="+1239"/>
         <source>Close</source>
         <translation>Zamknij</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Dock</source>
         <translation>Zadokuj</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Float</source>
         <translation>Uwolnij</translation>
     </message>
@@ -2942,12 +2357,10 @@
 <context>
     <name>QDoubleSpinBox</name>
     <message>
-        <location filename="../src/plugins/accessible/widgets/rangecontrols.cpp" line="-537"/>
         <source>More</source>
         <translation>Więcej</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Less</source>
         <translation>Mniej</translation>
     </message>
@@ -2955,27 +2368,22 @@
 <context>
     <name>QErrorMessage</name>
     <message>
-        <location filename="../src/gui/dialogs/qerrormessage.cpp" line="+208"/>
         <source>Debug Message:</source>
         <translation>Komunikat dla programisty:</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Fatal Error:</source>
         <translation>Błąd krytyczny:</translation>
     </message>
     <message>
-        <location line="+201"/>
         <source>&amp;OK</source>
         <translation>&amp;OK</translation>
     </message>
     <message>
-        <location line="-1"/>
         <source>&amp;Show this message again</source>
         <translation>&amp;Pokaż ten komunikat ponownie</translation>
     </message>
     <message>
-        <location line="-203"/>
         <source>Warning:</source>
         <translation>Ostrzeżenie:</translation>
     </message>
@@ -2983,38 +2391,30 @@
 <context>
     <name>QFile</name>
     <message>
-        <location filename="../src/corelib/io/qfile.cpp" line="+703"/>
-        <location line="+155"/>
         <source>Destination file exists</source>
         <translation>Plik wyjściowy już istnieje</translation>
     </message>
     <message>
-        <location line="-140"/>
         <source>Will not rename sequential file using block copy</source>
         <translation>Nie można zmienić nazwy pliku sekwencyjnego używając kopiowania blokowego</translation>
     </message>
     <message>
-        <location line="+23"/>
         <source>Cannot remove source file</source>
         <translation>Nie można usunąć oryginalnego pliku</translation>
     </message>
     <message>
-        <location line="+130"/>
         <source>Cannot open %1 for input</source>
         <translation>Nie można otworzyć pliku wejściowego %1</translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>Cannot open for output</source>
         <translation>Nie można otworzyć pliku wyjściowego</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>Failure to write block</source>
         <translation>Nie można zapisać bloku</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>Cannot create %1 for output</source>
         <translation>Nie można utworzyć pliku wyjściowego %1</translation>
     </message>
@@ -3022,22 +2422,18 @@
 <context>
     <name>QFileDialog</name>
     <message>
-        <location filename="../src/gui/dialogs/qfiledialog.cpp" line="+2078"/>
         <source>%1 already exists.
 Do you want to replace it?</source>
         <translation>%1 już istnieje.
 Czy chcesz zamienić?</translation>
     </message>
     <message>
-        <location line="+610"/>
         <source>&apos;%1&apos; is write protected.
 Do you want to delete it anyway?</source>
         <translation>&apos;%1&apos; jest zabezpieczony przed zapisem.
 Czy na pewno chcesz go skasować?</translation>
     </message>
     <message>
-        <location line="-644"/>
-        <location line="+862"/>
         <source>%1
 Directory not found.
 Please verify the correct directory name was given.</source>
@@ -3046,7 +2442,6 @@
 Sprawdź podaną nazwę katalogu.</translation>
     </message>
     <message>
-        <location line="-808"/>
         <source>%1
 File not found.
 Please verify the correct file name was given.</source>
@@ -3055,237 +2450,178 @@
 Proszę o sprawdzenie podanej nazwy pliku.</translation>
     </message>
     <message>
-        <location line="+595"/>
         <source>Are sure you want to delete &apos;%1&apos;?</source>
         <translation>Czy na pewno chcesz skasować &apos;%1&apos;?</translation>
     </message>
     <message>
-        <location line="+419"/>
         <source>Recent Places</source>
         <translation>Ostatnie miejsca</translation>
     </message>
     <message>
-        <location filename="../src/gui/dialogs/qfiledialog.ui"/>
-        <location filename="../src/gui/dialogs/qfiledialog_embedded.ui"/>
         <source>Back</source>
         <translation>Powrót</translation>
     </message>
     <message>
-        <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-404"/>
         <source>Could not delete directory.</source>
         <translation>Nie można skasować katalogu.</translation>
     </message>
     <message>
-        <location line="-2135"/>
         <source>&amp;Delete</source>
         <translation>&amp;Skasuj</translation>
     </message>
     <message>
-        <location filename="../src/gui/dialogs/qfiledialog.ui"/>
-        <location filename="../src/gui/dialogs/qfiledialog_embedded.ui"/>
         <source>Detail View</source>
         <translation>Szczegóły</translation>
     </message>
     <message>
-        <location filename="../src/gui/dialogs/qfiledialog.cpp" line="+682"/>
         <source>Directories</source>
         <translation>Katalogi</translation>
     </message>
     <message>
-        <location line="-675"/>
-        <location line="+679"/>
         <source>Directory:</source>
         <translation>Katalog:</translation>
     </message>
     <message>
-        <location filename="../src/gui/itemviews/qfileiconprovider.cpp" line="+475"/>
         <source>Drive</source>
         <translation>Urządzenie</translation>
     </message>
     <message>
-        <location line="+3"/>
-        <location line="+1"/>
         <source>File</source>
         <translation>Plik</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>File Folder</source>
         <comment>Match Windows Explorer</comment>
         <translation>Katalog</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Folder</source>
         <comment>All other platforms</comment>
         <translation>Katalog</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Alias</source>
         <comment>Mac OS X Finder</comment>
         <translation>Alias</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Shortcut</source>
         <comment>All other platforms</comment>
         <translation>Skrót</translation>
     </message>
     <message>
-        <location filename="../src/gui/dialogs/qfiledialog.ui"/>
-        <location filename="../src/gui/dialogs/qfiledialog_embedded.ui"/>
         <source>Files of type:</source>
         <translation>Pliki rodzaju:</translation>
     </message>
     <message>
-        <location/>
-        <location filename="../src/gui/dialogs/qfiledialog_embedded.ui"/>
         <source>List View</source>
         <translation>Lista</translation>
     </message>
     <message>
-        <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+408"/>
         <source>My Computer</source>
         <translation>Mój komputer</translation>
     </message>
     <message>
-        <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-7"/>
-        <location line="+55"/>
-        <location line="+1532"/>
         <source>&amp;Open</source>
         <translation>&amp;Otwórz</translation>
     </message>
     <message>
-        <location filename="../src/gui/dialogs/qfiledialog.ui"/>
-        <location filename="../src/gui/dialogs/qfiledialog_embedded.ui"/>
         <source>Parent Directory</source>
         <translation>Katalog wyżej</translation>
     </message>
     <message>
-        <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-2267"/>
         <source>&amp;Rename</source>
         <translation>&amp;Zmień nazwę</translation>
     </message>
     <message>
-        <location line="+680"/>
-        <location line="+55"/>
         <source>&amp;Save</source>
         <translation>&amp;Zachowaj</translation>
     </message>
     <message>
-        <location line="-733"/>
         <source>Show &amp;hidden files</source>
         <translation>Pokaż &amp;ukryte pliki</translation>
     </message>
     <message>
-        <location filename="../src/gui/itemviews/qfileiconprovider.cpp" line="+7"/>
         <source>Unknown</source>
         <translation>Nieznany</translation>
     </message>
     <message>
-        <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-33"/>
         <source>Open</source>
         <translation>Otwórz</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Save As</source>
         <translation>Zachowaj jako</translation>
     </message>
     <message>
-        <location line="-4"/>
         <source>Find Directory</source>
         <translation>Znajdź katalog</translation>
     </message>
     <message>
-        <location filename="../src/gui/dialogs/qfiledialog_win.cpp" line="+148"/>
         <source>All Files (*.*)</source>
         <translation>Wszystkie pliki (*.*)</translation>
     </message>
     <message>
-        <location filename="../src/gui/dialogs/qfiledialog.cpp" line="+29"/>
         <source>Show </source>
         <translation>Pokaż </translation>
     </message>
     <message>
-        <location filename="../src/gui/dialogs/qfiledialog.ui"/>
-        <location filename="../src/gui/dialogs/qfiledialog_embedded.ui"/>
         <source>Forward</source>
         <translation>Do przodu</translation>
     </message>
     <message>
-        <location filename="../src/gui/dialogs/qfiledialog.cpp" line="+1992"/>
         <source>New Folder</source>
         <translation>Nowy katalog</translation>
     </message>
     <message>
-        <location line="-1985"/>
         <source>&amp;New Folder</source>
         <translation>&amp;Nowy katalog</translation>
     </message>
     <message>
-        <location line="+687"/>
-        <location line="+43"/>
         <source>&amp;Choose</source>
         <translation>&amp;Wybierz</translation>
     </message>
     <message>
-        <location filename="../src/gui/dialogs/qsidebar.cpp" line="+442"/>
         <source>Remove</source>
         <translation>Usuń</translation>
     </message>
     <message>
-        <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-747"/>
-        <location line="+481"/>
         <source>All Files (*)</source>
         <translation>Wszystkie pliki (*)</translation>
     </message>
     <message>
-        <location line="-457"/>
-        <location line="+683"/>
         <source>File &amp;name:</source>
         <translation>Nazwa &amp;pliku:</translation>
     </message>
     <message>
-        <location filename="../src/gui/dialogs/qfiledialog.ui"/>
-        <location filename="../src/gui/dialogs/qfiledialog_embedded.ui"/>
         <source>Look in:</source>
         <translation>Szukaj w:</translation>
     </message>
     <message>
-        <location/>
-        <location filename="../src/gui/dialogs/qfiledialog_embedded.ui"/>
         <source>Create New Folder</source>
         <translation>Utwórz nowy katalog</translation>
     </message>
     <message>
-        <location/>
         <source>Go back</source>
         <translation>Wróć</translation>
     </message>
     <message>
-        <location/>
         <source>Go forward</source>
         <translation>Przejdź dalej</translation>
     </message>
     <message>
-        <location/>
         <source>Go to the parent directory</source>
         <translation>Przejdź do katalogu wyżej</translation>
     </message>
     <message>
-        <location/>
         <source>Create a New Folder</source>
         <translation>Utwórz nowy katalog</translation>
     </message>
     <message>
-        <location/>
         <source>Change to list view mode</source>
         <translation>Pokaż listę</translation>
     </message>
     <message>
-        <location/>
         <source>Change to detail view mode</source>
         <translation>Pokaż szczegóły</translation>
     </message>
@@ -3293,83 +2629,64 @@
 <context>
     <name>QFileSystemModel</name>
     <message>
-        <location filename="../src/gui/dialogs/qfilesystemmodel.cpp" line="+740"/>
-        <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+482"/>
         <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 bajtów</translation>
     </message>
     <message>
-        <location line="+89"/>
         <source>Invalid filename</source>
         <translation>Niepoprawna nazwa pliku</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;Nazwa &quot;%1&quot; nie może zostać użyta.&lt;/b&gt;&lt;p&gt;Spróbuj użyć nowej nazwy z mniejszą liczbą znaków lub bez znaków przystankowych.</translation>
     </message>
     <message>
-        <location line="+64"/>
         <source>Name</source>
         <translation>Nazwa</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Size</source>
         <translation>Rozmiar</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Kind</source>
         <comment>Match OS X Finder</comment>
         <translation>Typ</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Type</source>
         <comment>All other platforms</comment>
         <translation>Rodzaj</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Date Modified</source>
         <translation>Data modyfikacji</translation>
     </message>
     <message>
-        <location filename="../src/gui/dialogs/qfilesystemmodel_p.h" line="+261"/>
         <source>My Computer</source>
         <translation>Mój komputer</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Computer</source>
         <translation>Komputer</translation>
     </message>
     <message>
-        <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+1"/>
         <source>%1 byte(s)</source>
         <translation>%1 bajt(ów)</translation>
     </message>
@@ -3377,223 +2694,172 @@
 <context>
     <name>QFontDatabase</name>
     <message>
-        <location filename="../src/gui/text/qfontdatabase.cpp" line="+102"/>
-        <location line="+1347"/>
         <source>Normal</source>
         <translation>Normalny</translation>
     </message>
     <message>
-        <location line="-1344"/>
-        <location line="+12"/>
-        <location line="+1320"/>
         <source>Bold</source>
         <translation>Pogrubiony</translation>
     </message>
     <message>
-        <location line="-1329"/>
-        <location line="+1331"/>
         <source>Demi Bold</source>
         <translation>Na wpół pogrubiony</translation>
     </message>
     <message>
-        <location line="-1328"/>
-        <location line="+18"/>
-        <location line="+1306"/>
         <source>Black</source>
         <translatorcomment>it&apos;s about font weight</translatorcomment>
         <translation>Bardzo gruby</translation>
     </message>
     <message>
-        <location line="-1316"/>
         <source>Demi</source>
         <translation>Na wpół</translation>
     </message>
     <message>
-        <location line="+6"/>
-        <location line="+1316"/>
         <source>Light</source>
         <translatorcomment>it&apos;s about font weight</translatorcomment>
         <translation>Cienki</translation>
     </message>
     <message>
-        <location line="-1170"/>
-        <location line="+1173"/>
         <source>Italic</source>
         <translation>Kursywa</translation>
     </message>
     <message>
-        <location line="-1170"/>
-        <location line="+1172"/>
         <source>Oblique</source>
         <translation>Pochyły</translation>
     </message>
     <message>
-        <location line="+704"/>
         <source>Any</source>
         <translation>Każdy</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Latin</source>
         <translation>Łaciński</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Greek</source>
         <translation>Grecki</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Cyrillic</source>
         <translation>Cyrylica</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Armenian</source>
         <translation>Ormiański</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Hebrew</source>
         <translation>Hebrajski</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Arabic</source>
         <translation>Arabski</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Syriac</source>
         <translation>Syryjski</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Thaana</source>
         <translation>Thaana</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Devanagari</source>
         <translation>Devanagari</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Bengali</source>
         <translation>Bengalski</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Gurmukhi</source>
         <translation>Gurmukhi</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Gujarati</source>
         <translation>Gudżaracki</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Oriya</source>
         <translation>Orija</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Tamil</source>
         <translation>Tamilski</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Telugu</source>
         <translation>Telugu</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Kannada</source>
         <translation>Kannada</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Malayalam</source>
         <translation>Malajalam</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Sinhala</source>
         <translation>Syngaleski</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Thai</source>
         <translation>Tajski</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Lao</source>
         <translation>Laotański</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Tibetan</source>
         <translation>Tybetański</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Myanmar</source>
         <translation>Birmański</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Georgian</source>
         <translation>Gruziński</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Khmer</source>
         <translation>Khmerski</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Simplified Chinese</source>
         <translation>Uproszczony chiński</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Traditional Chinese</source>
         <translation>Tradycyjny chiński</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Japanese</source>
         <translation>Japoński</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Korean</source>
         <translation>Koreański</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Vietnamese</source>
         <translation>Wietnamski</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Symbol</source>
         <translation>Symboliczny</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Ogham</source>
         <translation>Ogamiczny</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Runic</source>
         <translation>Runiczny</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>N&apos;Ko</source>
         <translation>N&apos;Ko</translation>
     </message>
@@ -3601,47 +2867,38 @@
 <context>
     <name>QFontDialog</name>
     <message>
-        <location filename="../src/gui/dialogs/qfontdialog.cpp" line="+774"/>
         <source>Effects</source>
         <translation>Efekty</translation>
     </message>
     <message>
-        <location line="-6"/>
         <source>&amp;Font</source>
         <translation>&amp;Czcionka</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Font st&amp;yle</source>
         <translation>St&amp;yl czcionki</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Sample</source>
         <translation>Przykład</translation>
     </message>
     <message>
-        <location line="-595"/>
         <source>Select Font</source>
         <translation>Wybierz czcionkę</translation>
     </message>
     <message>
-        <location line="+587"/>
         <source>&amp;Size</source>
         <translation>&amp;Rozmiar</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Stri&amp;keout</source>
         <translation>Pr&amp;zekreślenie</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Underline</source>
         <translation>&amp;Podkreślenie</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Wr&amp;iting System</source>
         <translation>Sys&amp;tem pisania</translation>
     </message>
@@ -3649,143 +2906,102 @@
 <context>
     <name>QFtp</name>
     <message>
-        <location filename="../src/network/access/qftp.cpp" line="+2343"/>
-        <location filename="../src/qt3support/network/q3ftp.cpp" line="+2024"/>
         <source>Changing directory failed:
 %1</source>
         <translation>Zmiana katalogu zakończona błędem:
 %1</translation>
     </message>
     <message>
-        <location filename="../src/qt3support/network/q3ftp.cpp" line="+288"/>
         <source>Connected to host</source>
         <translation>Podłączony do hosta</translation>
     </message>
     <message>
-        <location filename="../src/network/access/qftp.cpp" line="-1335"/>
-        <location filename="../src/qt3support/network/q3ftp.cpp" line="-1458"/>
-        <location line="+1451"/>
         <source>Connected to host %1</source>
         <translation>Podłączony do hosta %1</translation>
     </message>
     <message>
-        <location line="+1323"/>
-        <location filename="../src/qt3support/network/q3ftp.cpp" line="-290"/>
         <source>Connecting to host failed:
 %1</source>
         <translation>Podłączanie do hosta zakończone błędem:
 %1</translation>
     </message>
     <message>
-        <location line="+60"/>
-        <location filename="../src/qt3support/network/q3ftp.cpp" line="+49"/>
-        <location line="+250"/>
         <source>Connection closed</source>
         <translation>Połączenie zamknięte</translation>
     </message>
     <message>
-        <location line="-1164"/>
-        <location filename="../src/qt3support/network/q3ftp.cpp" line="-1299"/>
         <source>Connection refused for data connection</source>
         <translation>Połączenie do przesyłu danych odrzucone</translation>
     </message>
     <message>
-        <location line="-327"/>
-        <location filename="../src/qt3support/network/q3ftp.cpp" line="-263"/>
         <source>Connection refused to host %1</source>
         <translation>Połączenie do hosta %1 odrzucone</translation>
     </message>
     <message>
-        <location filename="../src/qt3support/network/q3ftp.cpp" line="+1555"/>
         <source>Connection to %1 closed</source>
         <translation>Połączenie do %1 zakończone</translation>
     </message>
     <message>
-        <location filename="../src/network/access/qftp.cpp" line="+1459"/>
-        <location filename="../src/qt3support/network/q3ftp.cpp" line="-271"/>
         <source>Creating directory failed:
 %1</source>
         <translation>Tworzenie katalogu zakończone błędem:
 %1</translation>
     </message>
     <message>
-        <location line="-12"/>
-        <location filename="../src/qt3support/network/q3ftp.cpp" line="-9"/>
         <source>Downloading file failed:
 %1</source>
         <translation>Pobieranie pliku zakończone błędem:
 %1</translation>
     </message>
     <message>
-        <location filename="../src/qt3support/network/q3ftp.cpp" line="+276"/>
         <source>Host %1 found</source>
         <translation>Host %1 znaleziony</translation>
     </message>
     <message>
-        <location filename="../src/network/access/qftp.cpp" line="-1451"/>
-        <location filename="../src/qt3support/network/q3ftp.cpp" line="-1555"/>
         <source>Host %1 not found</source>
         <translation>Host %1 nie znaleziony</translation>
     </message>
     <message>
-        <location filename="../src/qt3support/network/q3ftp.cpp" line="+1562"/>
         <source>Host found</source>
         <translation>Host znaleziony</translation>
     </message>
     <message>
-        <location filename="../src/network/access/qftp.cpp" line="+1443"/>
-        <location filename="../src/qt3support/network/q3ftp.cpp" line="-289"/>
         <source>Listing directory failed:
 %1</source>
         <translation>Listowanie katalogu zakończone błędem:
 %1</translation>
     </message>
     <message>
-        <location line="-4"/>
-        <location filename="../src/qt3support/network/q3ftp.cpp" line="-3"/>
         <source>Login failed:
 %1</source>
         <translation>Logowanie zakończone błędem:
 %1</translation>
     </message>
     <message>
-        <location line="-1507"/>
-        <location filename="../src/qt3support/network/q3ftp.cpp" line="-1335"/>
         <source>Not connected</source>
         <translation>Nie podłączony</translation>
     </message>
     <message>
-        <location line="+76"/>
         <source>Connection timed out to host %1</source>
         <translation>Przekroczony czas połączenia do hosta %1</translation>
     </message>
     <message>
-        <location line="+1459"/>
-        <location filename="../src/qt3support/network/q3ftp.cpp" line="+1356"/>
         <source>Removing directory failed:
 %1</source>
         <translation>Usuwanie katalogu zakończone błędem:
 %1</translation>
     </message>
     <message>
-        <location line="-8"/>
-        <location filename="../src/qt3support/network/q3ftp.cpp" line="-6"/>
         <source>Removing file failed:
 %1</source>
         <translation>Usuwanie pliku zakończone błędem:
 %1</translation>
     </message>
     <message>
-        <location line="-950"/>
-        <location line="+29"/>
-        <location filename="../src/qt3support/network/q3ftp.cpp" line="-823"/>
-        <location line="+728"/>
         <source>Unknown error</source>
         <translation>Nieznany błąd</translation>
     </message>
     <message>
-        <location line="+917"/>
-        <location filename="../src/qt3support/network/q3ftp.cpp" line="+92"/>
         <source>Uploading file failed:
 %1</source>
         <translation>Wysyłanie pliku zakończone błędem:
@@ -3795,12 +3011,10 @@
 <context>
     <name>QHostInfo</name>
     <message>
-        <location filename="../src/network/kernel/qhostinfo_p.h" line="+103"/>
         <source>Unknown error</source>
         <translation>Nieznany błąd</translation>
     </message>
     <message>
-        <location filename="../src/network/kernel/qhostinfo.cpp" line="+171"/>
         <source>No host name given</source>
         <translation>Nie podano nazwy hosta</translation>
     </message>
@@ -3808,37 +3022,22 @@
 <context>
     <name>QHostInfoAgent</name>
     <message>
-        <location filename="../src/network/kernel/qhostinfo_unix.cpp" line="+274"/>
-        <location line="+32"/>
-        <location filename="../src/network/kernel/qhostinfo_win.cpp" line="+215"/>
-        <location line="+27"/>
         <source>Host not found</source>
         <translation>Host nie znaleziony</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>Nieznany typ adresu</translation>
     </message>
     <message>
-        <location line="+10"/>
-        <location filename="../src/network/kernel/qhostinfo_win.cpp" line="-19"/>
-        <location line="+27"/>
         <source>Unknown error</source>
         <translation>Nieznany błąd</translation>
     </message>
     <message>
-        <location line="-112"/>
-        <location filename="../src/network/kernel/qhostinfo_win.cpp" line="-67"/>
         <source>No host name given</source>
         <translation>Nie podano nazwy hosta</translation>
     </message>
     <message>
-        <location line="+1"/>
-        <location filename="../src/network/kernel/qhostinfo_win.cpp" line="+0"/>
         <source>Invalid hostname</source>
         <translation>Niepoprawna nazwa hosta</translation>
     </message>
@@ -3846,153 +3045,110 @@
 <context>
     <name>QHttp</name>
     <message>
-        <location filename="../src/qt3support/network/q3http.cpp" line="+2308"/>
         <source>Connected to host</source>
         <translation>Podłączony do hosta</translation>
     </message>
     <message>
-        <location line="-14"/>
         <source>Connected to host %1</source>
         <translation>Podłączony do hosta %1</translation>
     </message>
     <message>
-        <location filename="../src/network/access/qhttpnetworkconnection.cpp" line="-3"/>
-        <location filename="../src/qt3support/network/q3http.cpp" line="+17"/>
         <source>Connection closed</source>
         <translation>Połączenie zakończone</translation>
     </message>
     <message>
-        <location line="-3"/>
-        <location filename="../src/qt3support/network/q3http.cpp" line="-476"/>
         <source>Connection refused</source>
         <translation>Połączenie odrzucone</translation>
     </message>
     <message>
-        <location filename="../src/qt3support/network/q3http.cpp" line="+462"/>
         <source>Connection to %1 closed</source>
         <translation>Połączenie do %1 zamknięte</translation>
     </message>
     <message>
-        <location line="-6"/>
         <source>Host %1 found</source>
         <translation>Host %1 znaleziony</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="-453"/>
         <source>Host %1 not found</source>
         <translation>Host %1 nie znaleziony</translation>
     </message>
     <message>
-        <location filename="../src/qt3support/network/q3http.cpp" line="+467"/>
         <source>Host found</source>
         <translation>Host znaleziony</translation>
     </message>
     <message>
-        <location filename="../src/network/access/qhttp.cpp" line="+20"/>
-        <location filename="../src/qt3support/network/q3http.cpp" line="-464"/>
         <source>HTTP request failed</source>
         <translation>Komenda HTTP zakończona błędem</translation>
     </message>
     <message>
-        <location line="+219"/>
-        <location line="+48"/>
-        <location filename="../src/qt3support/network/q3http.cpp" line="+109"/>
-        <location line="+47"/>
         <source>Invalid HTTP chunked body</source>
         <translation>Niepoprawne ciało HTTP</translation>
     </message>
     <message>
-        <location line="-173"/>
-        <location filename="../src/qt3support/network/q3http.cpp" line="-87"/>
         <source>Invalid HTTP response header</source>
         <translation>Niepoprawny nagłówek odpowiedzi HTTP</translation>
     </message>
     <message>
-        <location line="-340"/>
-        <location filename="../src/qt3support/network/q3http.cpp" line="-173"/>
         <source>No server set to connect to</source>
         <translation>Brak serwera do podłączenia</translation>
     </message>
     <message>
-        <location line="-579"/>
-        <location filename="../src/qt3support/network/q3http.cpp" line="-381"/>
         <source>Request aborted</source>
         <translation>Komenda przerwana</translation>
     </message>
     <message>
-        <location line="+747"/>
-        <location filename="../src/qt3support/network/q3http.cpp" line="+441"/>
         <source>Server closed connection unexpectedly</source>
         <translation>Serwer nieoczekiwanie zakończył połączenie</translation>
     </message>
     <message>
-        <location line="-999"/>
-        <location line="+820"/>
-        <location filename="../src/qt3support/network/q3http.cpp" line="-638"/>
-        <location line="+567"/>
         <source>Unknown error</source>
         <translation>Nieznany błąd</translation>
     </message>
     <message>
-        <location line="-2032"/>
         <source>HTTPS connection requested but SSL support not compiled in</source>
         <translation>Zażądano połączenia HTTPS lecz obsługa SSL nie jest wkompilowana</translation>
     </message>
     <message>
-        <location line="+2207"/>
-        <location filename="../src/qt3support/network/q3http.cpp" line="+67"/>
         <source>Wrong content length</source>
         <translation>Błędna długość zawartości</translation>
     </message>
     <message>
-        <location line="+204"/>
         <source>Unknown authentication method</source>
         <translation>Nieznana metoda autoryzacji</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>Proxy authentication required</source>
         <translation>Wymagana autoryzacja pośrednika</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Authentication required</source>
         <translation>Wymagana autoryzacja</translation>
     </message>
     <message>
-        <location line="+169"/>
         <source>Error writing response to device</source>
         <translation>Błąd zapisywania odpowiedzi do urządzenia</translation>
     </message>
     <message>
-        <location filename="../src/network/access/qhttpnetworkconnection.cpp" line="+13"/>
         <source>Proxy requires authentication</source>
         <translation>Pośrednik wymaga autoryzacji</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Host requires authentication</source>
         <translation>Host wymaga autoryzacji</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Data corrupted</source>
         <translation>Dane uszkodzone</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Unknown protocol specified</source>
         <translation>Podano nieznany protokół</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>SSL handshake failed</source>
         <translation>Nawiązanie sesji SSL zakończone błędem</translation>
     </message>
     <message>
-        <location filename="../src/network/access/qhttp.cpp" line="-328"/>
         <source>Connection refused (or timed out)</source>
         <translation>Połączenie odrzucone (przekroczony czas połączenia)</translation>
     </message>
@@ -4000,47 +3156,38 @@
 <context>
     <name>QHttpSocketEngine</name>
     <message>
-        <location filename="../src/network/socket/qhttpsocketengine.cpp" line="-86"/>
         <source>Did not receive HTTP response from proxy</source>
         <translation>Nie odebrano odpowiedzi HTTP od pośrednika</translation>
     </message>
     <message>
-        <location line="+25"/>
         <source>Error parsing authentication request from proxy</source>
         <translation>Błąd parsowania żądania autoryzacji od pośrednika</translation>
     </message>
     <message>
-        <location line="+31"/>
         <source>Authentication required</source>
         <translation>Wymagana autoryzacja</translation>
     </message>
     <message>
-        <location line="+27"/>
         <source>Proxy denied connection</source>
         <translation>Pośrednik odmówił połączenia</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>Error communicating with HTTP proxy</source>
         <translation>Błąd podczas komunikacji z pośrednikiem HTTP</translation>
     </message>
     <message>
-        <location line="+23"/>
         <source>Proxy server not found</source>
         <translation>Nie znaleziono serwera pośredniczącego</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Proxy connection refused</source>
         <translation>Odmowa połączenia z pośrednikiem</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Proxy server connection timed out</source>
         <translation>Przekroczony czas połączenia do serwera pośredniczącego</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Proxy connection closed prematurely</source>
         <translation>Przedwczesne zakończenie połączenia z pośrednikiem</translation>
     </message>
@@ -4048,22 +3195,18 @@
 <context>
     <name>QIBaseDriver</name>
     <message>
-        <location filename="../src/sql/drivers/ibase/qsql_ibase.cpp" line="+1545"/>
         <source>Could not start transaction</source>
         <translation>Nie można rozpocząć transakcji</translation>
     </message>
     <message>
-        <location line="-54"/>
         <source>Error opening database</source>
         <translation>Błąd otwierania bazy danych</translation>
     </message>
     <message>
-        <location line="+67"/>
         <source>Unable to commit transaction</source>
         <translation>Nie można dokonać transakcji</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>Unable to rollback transaction</source>
         <translation>Nie można wycofać transakcji</translation>
     </message>
@@ -4071,89 +3214,70 @@
 <context>
     <name>QIBaseResult</name>
     <message>
-        <location line="-665"/>
         <source>Could not allocate statement</source>
         <translation>Nie można zaallokować polecenia</translation>
     </message>
     <message>
-        <location line="+10"/>
-        <location line="+11"/>
         <source>Could not describe input statement</source>
         <translation>Nie można opisać polecenia wejściowego</translation>
     </message>
     <message>
-        <location line="+14"/>
         <source>Could not describe statement</source>
         <translation>Nie można opisać polecenia</translation>
     </message>
     <message>
-        <location line="+169"/>
         <source>Could not fetch next item</source>
         <translation>Nie można pobrać kolejnego elementu</translation>
     </message>
     <message>
-        <location line="-527"/>
-        <location line="+187"/>
         <source>Could not find array</source>
         <translation>Nie można odnaleźć tablicy</translation>
     </message>
     <message>
-        <location line="-155"/>
         <source>Could not get array data</source>
         <translation>Nie można pobrać danych z tablicy</translation>
     </message>
     <message>
-        <location line="+210"/>
         <source>Could not get query info</source>
         <translation>Nie można pobrać informacji o zapytaniu</translation>
     </message>
     <message>
-        <location line="+482"/>
         <source>Could not get statement info</source>
         <translation>Nie można pobrać informacji o poleceniu</translation>
     </message>
     <message>
-        <location line="-396"/>
         <source>Could not prepare statement</source>
         <translation>Nie można przygotować polecenia</translation>
     </message>
     <message>
-        <location line="-66"/>
         <source>Could not start transaction</source>
         <translation>Nie można rozpocząć transakcji</translation>
     </message>
     <message>
-        <location line="+211"/>
         <source>Unable to close statement</source>
         <translation>Nie można zamknąć polecenia</translation>
     </message>
     <message>
-        <location line="-192"/>
         <source>Unable to commit transaction</source>
         <translation>Nie można dokonać transakcji</translation>
     </message>
     <message>
-        <location line="-442"/>
         <source>Unable to create BLOB</source>
         <translation>Nie można utworzyć obiektu typu BLOB</translation>
     </message>
     <message>
-        <location line="+642"/>
         <source>Unable to execute query</source>
         <translation>Nie można wykonać zapytania</translation>
     </message>
     <message>
-        <location line="-622"/>
         <source>Unable to open BLOB</source>
         <translation>Nie można otworzyć obiektu typu BLOB</translation>
     </message>
     <message>
-        <location line="+16"/>
         <source>Unable to read BLOB</source>
         <translation>Nie można odczytać obiektu typu BLOB</translation>
     </message>
     <message>
-        <location line="-30"/>
         <source>Unable to write BLOB</source>
         <translation>Nie można zapisać obiektu typu BLOB</translation>
     </message>
@@ -4161,27 +3285,22 @@
 <context>
     <name>QIODevice</name>
     <message>
-        <location filename="../src/corelib/global/qglobal.cpp" line="+2117"/>
         <source>No space left on device</source>
         <translation>Brak wolnego miejsca na urządzeniu</translation>
     </message>
     <message>
-        <location line="-3"/>
         <source>No such file or directory</source>
         <translation>Brak pliku lub katalogu</translation>
     </message>
     <message>
-        <location line="-6"/>
         <source>Permission denied</source>
         <translation>Brak uprawnień</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Too many open files</source>
         <translation>Zbyt wiele otwartych plików</translation>
     </message>
     <message>
-        <location filename="../src/corelib/io/qiodevice.cpp" line="+1618"/>
         <source>Unknown error</source>
         <translation>Nieznany błąd</translation>
     </message>
@@ -4189,32 +3308,26 @@
 <context>
     <name>QInputContext</name>
     <message>
-        <location filename="../src/gui/inputmethod/qinputcontextfactory.cpp" line="+336"/>
         <source>Mac OS X input method</source>
         <translation>Metoda wprowadzania Mac OS X</translation>
     </message>
     <message>
-        <location line="-4"/>
         <source>Windows input method</source>
         <translation>Metoda wprowadzania Windows</translation>
     </message>
     <message>
-        <location line="-31"/>
         <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>Metoda wprowadzania XIM</translation>
     </message>
     <message>
-        <location line="+12"/>
         <source>S60 FEP input method</source>
         <translation>Metoda wprowadzania S60 FEP</translation>
     </message>
@@ -4222,7 +3335,6 @@
 <context>
     <name>QInputDialog</name>
     <message>
-        <location filename="../src/gui/dialogs/qinputdialog.cpp" line="+223"/>
         <source>Enter a value:</source>
         <translation>Podaj wartość:</translation>
     </message>
@@ -4230,67 +3342,50 @@
 <context>
     <name>QLibrary</name>
     <message>
-        <location filename="../src/corelib/plugin/qlibrary.cpp" line="+383"/>
         <source>Could not mmap &apos;%1&apos;: %2</source>
         <translation>Nie można wykonać przypisania &apos;%1&apos;: %2</translation>
     </message>
     <message>
-        <location line="+28"/>
         <source>Could not unmap &apos;%1&apos;: %2</source>
         <translation>Nie można usunąć przypisania &apos;%1&apos;: %2</translation>
     </message>
     <message>
-        <location line="-6"/>
         <source>Plugin verification data mismatch in &apos;%1&apos;</source>
         <translation>Niezgodność podczas weryfikacji danych we wtyczce &quot;%1&quot;</translation>
     </message>
     <message>
-        <location line="+381"/>
         <source>The plugin &apos;%1&apos; uses incompatible Qt library. (%2.%3.%4) [%5]</source>
         <translation>Wtyczka &apos;%1&apos; używa niepoprawnej wersji biblioteki QT. (%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>Wtyczka &apos;%1&apos; używa niepoprawnej wersji biblioteki QT. Oczekiwano klucza &quot;%2&quot;, uzyskano &quot;%3&quot;</translation>
     </message>
     <message>
-        <location line="+365"/>
         <source>Unknown error</source>
         <translation>Nieznany błąd</translation>
     </message>
     <message>
-        <location line="-540"/>
-        <location line="+138"/>
-        <location filename="../src/corelib/plugin/qpluginloader.cpp" line="+343"/>
         <source>The shared library was not found.</source>
         <translation>Biblioteka współdzielona niedostępna.</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>The file &apos;%1&apos; is not a valid Qt plugin.</source>
         <translation>Plik &quot;%1&quot; nie jest poprawną wtyczką Qt.</translation>
     </message>
     <message>
-        <location line="+43"/>
         <source>The plugin &apos;%1&apos; uses incompatible Qt library. (Cannot mix debug and release libraries.)</source>
         <translation>Wtyczka &quot;%1&quot; używa innej wersji biblioteki Qt. (Nie można łączyć bibliotek zwykłych i debugowych.)</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>Nie można załadować biblioteki %1: %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>Nie można zwolnić biblioteki %1: %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>Nie można zidentyfikować symbolu &quot;%1&quot; w %2: %3</translation>
     </message>
@@ -4298,37 +3393,30 @@
 <context>
     <name>QLineEdit</name>
     <message>
-        <location filename="../src/gui/widgets/qlineedit.cpp" line="+2098"/>
         <source>&amp;Copy</source>
         <translation>S&amp;kopiuj</translation>
     </message>
     <message>
-        <location line="-6"/>
         <source>Cu&amp;t</source>
         <translation>W&amp;ytnij</translation>
     </message>
     <message>
-        <location line="+19"/>
         <source>Delete</source>
         <translation>Skasuj</translation>
     </message>
     <message>
-        <location line="-7"/>
         <source>&amp;Paste</source>
         <translation>&amp;Wklej</translation>
     </message>
     <message>
-        <location line="-21"/>
         <source>&amp;Redo</source>
         <translation>&amp;Przywróć</translation>
     </message>
     <message>
-        <location line="+36"/>
         <source>Select All</source>
         <translation>Zaznacz wszystko</translation>
     </message>
     <message>
-        <location line="-40"/>
         <source>&amp;Undo</source>
         <translation>&amp;Cofnij</translation>
     </message>
@@ -4336,23 +3424,18 @@
 <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: Błąd nazwy</translation>
     </message>
     <message>
-        <location filename="../src/network/socket/qlocalserver_unix.cpp" line="-8"/>
         <source>%1: Permission denied</source>
         <translation>%1: Brak uprawnień</translation>
     </message>
     <message>
-        <location line="+12"/>
         <source>%1: Address in use</source>
         <translation>%1: Adres użyty</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>%1: Unknown error %2</source>
         <translation>%1: Nieznany błąd %2</translation>
     </message>
@@ -4360,70 +3443,46 @@
 <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: Odmowa połączenia</translation>
     </message>
     <message>
-        <location line="+3"/>
-        <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+3"/>
         <source>%1: Remote closed</source>
         <translation>%1: Drugi koniec odłączony</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="+79"/>
-        <location line="+59"/>
         <source>%1: Invalid name</source>
         <translation>%1: Niepoprawna nazwa</translation>
     </message>
     <message>
-        <location line="+3"/>
-        <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+3"/>
         <source>%1: Socket access error</source>
         <translation>%1: Błąd dostępu do gniazda</translation>
     </message>
     <message>
-        <location line="+3"/>
-        <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+3"/>
         <source>%1: Socket resource error</source>
         <translation>%1: Błąd zasobów gniazda</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: Przekroczony czas operacji gniazda</translation>
     </message>
     <message>
-        <location line="+3"/>
-        <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+3"/>
         <source>%1: Datagram too large</source>
         <translation>%1: Za duży 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="-64"/>
         <source>%1: Connection error</source>
         <translation>%1: Błąd połączenia</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: Operacja nie jest obsługiwana przez gniazdo</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>%1: Unknown error</source>
         <translation>%1: Nieznany błąd</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: Nieznany błąd %2</translation>
     </message>
@@ -4431,27 +3490,22 @@
 <context>
     <name>QMYSQLDriver</name>
     <message>
-        <location filename="../src/sql/drivers/mysql/qsql_mysql.cpp" line="+1448"/>
         <source>Unable to begin transaction</source>
         <translation>Nie można rozpocząć transakcji</translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>Unable to commit transaction</source>
         <translation>Nie można potwierdzić transakcji</translation>
     </message>
     <message>
-        <location line="-167"/>
         <source>Unable to connect</source>
         <translation>Nie można nawiązać połączenia</translation>
     </message>
     <message>
-        <location line="-11"/>
         <source>Unable to open database &apos;</source>
         <translation>Nie można otworzyć bazy danych &apos;</translation>
     </message>
     <message>
-        <location line="+195"/>
         <source>Unable to rollback transaction</source>
         <translation>Nie można wycofać transakcji</translation>
     </message>
@@ -4459,60 +3513,46 @@
 <context>
     <name>QMYSQLResult</name>
     <message>
-        <location line="-432"/>
-        <location line="+21"/>
         <source>Unable to bind outvalues</source>
         <translation>Nie można powiązać wartości zewnętrznych</translation>
     </message>
     <message>
-        <location line="-46"/>
         <source>Unable to bind value</source>
         <translation>Nie można powiązać wartości</translation>
     </message>
     <message>
-        <location line="-328"/>
         <source>Unable to execute query</source>
         <translation>Nie można wykonać zapytania</translation>
     </message>
     <message>
-        <location line="+339"/>
         <source>Unable to execute statement</source>
         <translation>Nie można wykonać polecenia</translation>
     </message>
     <message>
-        <location line="-531"/>
-        <location line="+31"/>
         <source>Unable to fetch data</source>
         <translation>Nie można pobrać danych</translation>
     </message>
     <message>
-        <location line="+358"/>
-        <location line="+8"/>
         <source>Unable to prepare statement</source>
         <translation>Nie można przygotować polecenia</translation>
     </message>
     <message>
-        <location line="+37"/>
         <source>Unable to reset statement</source>
         <translation>Nie można skasować polecenia</translation>
     </message>
     <message>
-        <location line="-236"/>
         <source>Unable to store result</source>
         <translation>Nie można zachować wyników</translation>
     </message>
     <message>
-        <location line="+356"/>
         <source>Unable to store statement results</source>
         <translation>Nie można zachować wyników polecenia</translation>
     </message>
     <message>
-        <location line="-253"/>
         <source>Unable to execute next query</source>
         <translation>Nie można wykonać następnego zapytania</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>Unable to store next result</source>
         <translation>Nie można zachować następnego wyniku</translation>
     </message>
@@ -4520,7 +3560,6 @@
 <context>
     <name>QMdiArea</name>
     <message>
-        <location filename="../src/gui/widgets/qmdiarea.cpp" line="+290"/>
         <source>(Untitled)</source>
         <translation>(Nienazwany)</translation>
     </message>
@@ -4528,92 +3567,74 @@
 <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>Zamknij</translation>
     </message>
     <message>
-        <location line="-18"/>
         <source>Minimize</source>
         <translation>Zminimalizuj</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>Restore Down</source>
         <translation>Przywróć pod spód</translation>
     </message>
     <message>
-        <location line="+707"/>
         <source>&amp;Restore</source>
         <translation>&amp;Przywróć</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>&amp;Move</source>
         <translation>Prze&amp;nieś</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Size</source>
         <translation>&amp;Rozmiar</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Mi&amp;nimize</source>
         <translation>Zmi&amp;nimalizuj</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Ma&amp;ximize</source>
         <translation>Zma&amp;ksymalizuj</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Stay on &amp;Top</source>
         <translation>Pozostaw na &amp;wierzchu</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>&amp;Close</source>
         <translation>&amp;Zamknij</translation>
     </message>
     <message>
-        <location line="-729"/>
         <source>Maximize</source>
         <translation>Zmaksymalizuj</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Unshade</source>
         <translation>Rozwiń</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Shade</source>
         <translation>Zwiń</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Restore</source>
         <translation>Przywróć</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Help</source>
         <translation>Pomoc</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Menu</source>
         <translation>Menu</translation>
     </message>
     <message>
-        <location line="-79"/>
         <source>- [%1]</source>
         <translation>- [%1]</translation>
     </message>
@@ -4621,21 +3642,14 @@
 <context>
     <name>QMenu</name>
     <message>
-        <location filename="../src/plugins/accessible/widgets/qaccessiblemenu.cpp" line="+157"/>
-        <location line="+225"/>
         <source>Close</source>
         <translation>Zamknij</translation>
     </message>
     <message>
-        <location line="-222"/>
-        <location line="+225"/>
-        <location line="+51"/>
         <source>Execute</source>
         <translation>Wykonaj</translation>
     </message>
     <message>
-        <location line="-278"/>
-        <location line="+225"/>
         <source>Open</source>
         <translation>Otwórz</translation>
     </message>
@@ -4643,7 +3657,6 @@
 <context>
     <name>QMenuBar</name>
     <message>
-        <location filename="../src/gui/widgets/qmenu_symbian.cpp" line="+456"/>
         <source>Actions</source>
         <translation>Akcje</translation>
     </message>
@@ -4651,40 +3664,30 @@
 <context>
     <name>QMessageBox</name>
     <message>
-        <location filename="../src/gui/dialogs/qmessagebox.cpp" line="-604"/>
         <source>About Qt</source>
         <translation>Informacje o Qt</translation>
     </message>
     <message>
-        <location line="-512"/>
         <source>Help</source>
         <translation>Pomoc</translation>
     </message>
     <message>
-        <location line="-1129"/>
         <source>Hide Details...</source>
         <translation>Ukryj szczegóły...</translation>
     </message>
     <message>
-        <location line="+281"/>
-        <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;Informacje o Qt&lt;/h3&gt;&lt;p&gt; Ten program używa Qt w wersji %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) 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 type="unfinished">&lt;p&gt;Qt jest zestawem narzędzi programistycznych dedykowanym dla języka C++. Służy on do opracowywania aplikacji międzyplatformowych.&lt;/p&gt;&lt;p&gt;Qt umożliwia jednoźródłowe przenoszenie między systemami MS&amp;nbsp;Windows, Mac&amp;nbsp;OS&amp;nbsp;X, Linux i wszystkimi głównymi wersjami komercyjnymi systemu Unix. Środowisko Qt jest dostępne dla urządzeń wbudowanych opartych na systemie Linux ( Qt dla wbudowanego systemu Linux) oraz Windows CE.&lt;/p&gt;&lt;p&gt;Zestaw Qt jest dostępny w trzech różnych opcjach licencjonowania stworzonych w celu zadowolenia naszych różnych użytkowników.&lt;/p&gt;&lt;p&gt;Qt podlegający licencji zgodnie z naszą komercyjną umową licencyjną jest odpowiedni do opracowywania oprogramowań własnościowych/komercyjnych, dzięki czemu kod źródłowy nie jest udostępniany osobom trzecim. W przeciwnym razie zestaw Qt jest niezgodny z warunkami licencji GNU LGPL w wersji 2.1 lub GNU GPL w wersji 3.0.&lt;/p&gt;&lt;p&gt;Środowisko Qt objęte licencją GNU LGPL w wersji 2.1 nadaje się do tworzenia aplikacji Qt (własnościowych lub oprogramowań otwartych) tylko wtedy, gdy przestrzegane są warunki licencji GNU LGPL w wersji 2.1.&lt;/p&gt;&lt;p&gt;Qt objęty Powszechną Licencją Publiczną GNU w wersji 3.0 jest odpowiedni do opracowywania aplikacji QT, aby móc korzystać z aplikacji w połączeniu z oprogramowaniem podlegającym warunkom licencji GNU GPL w wersji 3.0 lub aby przestrzegać warunków licencji GNU GPL w wersji 3.0.&lt;/p&gt;&lt;p&gt;Więcej informacji na temat licencji Qt można znaleźć na stronie &lt;a href=&quot;http://qt.nokia.com/products/licensing&quot;&gt;qt.nokia.com/products/licensing&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Copyright (C) 2010 Nokia Corporation i/lub oddziały firmy.&lt;/p&gt;&lt;p&gt;Qt jest produktem firmy Nokia. Dodatkowe informacje znajdują się na stronie &lt;a href=&quot;http://qt.nokia.com/&quot;&gt;qt.nokia.com&lt;/a&gt; &lt;/p&gt;</translation>
     </message>
     <message>
-        <location line="-1610"/>
         <source>Show Details...</source>
         <translation>Pokaż szczegóły...</translation>
     </message>
@@ -4692,7 +3695,6 @@
 <context>
     <name>QMultiInputContext</name>
     <message>
-        <location filename="../src/plugins/inputmethods/imsw-multi/qmultiinputcontext.cpp" line="+88"/>
         <source>Select IM</source>
         <translation>Wybierz metodę wprowadzania</translation>
     </message>
@@ -4700,12 +3702,10 @@
 <context>
     <name>QMultiInputContextPlugin</name>
     <message>
-        <location filename="../src/plugins/inputmethods/imsw-multi/qmultiinputcontextplugin.cpp" line="+95"/>
         <source>Multiple input method switcher</source>
         <translation>Przełącznik metody wprowadzania</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Multiple input method switcher that uses the context menu of the text widgets</source>
         <translation>Przełącznik metody wprowadzania, który w widżetach tekstowych używa podręcznego menu</translation>
     </message>
@@ -4713,132 +3713,106 @@
 <context>
     <name>QNativeSocketEngine</name>
     <message>
-        <location filename="../src/network/socket/qnativesocketengine.cpp" line="+266"/>
         <source>Another socket is already listening on the same port</source>
         <translation>Inne gniazdo nasłuchuje już na tym porcie</translation>
     </message>
     <message>
-        <location line="-60"/>
         <source>Attempt to use IPv6 socket on a platform with no IPv6 support</source>
         <translation>Próba użycia IPv6 na platformie bez obsługi IPv6</translation>
     </message>
     <message>
-        <location line="+33"/>
         <source>Connection refused</source>
         <translation>Połączenie odrzucone</translation>
     </message>
     <message>
-        <location line="-3"/>
         <source>Connection timed out</source>
         <translation>Przekroczony czas połączenia</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Datagram was too large to send</source>
         <translation>Datagram za długi do wysłania</translation>
     </message>
     <message>
-        <location line="-24"/>
         <source>Host unreachable</source>
         <translation>Komputer niedostępny</translation>
     </message>
     <message>
-        <location line="-3"/>
         <source>Invalid socket descriptor</source>
         <translation>Niepoprawny opis gniazda</translation>
     </message>
     <message>
-        <location line="+39"/>
         <source>Network error</source>
         <translation>Błąd sieci</translation>
     </message>
     <message>
-        <location line="-51"/>
         <source>Network operation timed out</source>
         <translation>Przekroczony czas operacji sieciowej</translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>Network unreachable</source>
         <translation>Sieć niedostępna</translation>
     </message>
     <message>
-        <location line="+39"/>
         <source>Operation on non-socket</source>
         <translation>Nieprawidłowa operacja na gnieździe</translation>
     </message>
     <message>
-        <location line="-54"/>
         <source>Out of resources</source>
         <translation>Zasoby wyczerpane</translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>Permission denied</source>
         <translation>Brak uprawnień</translation>
     </message>
     <message>
-        <location line="-12"/>
         <source>Protocol type not supported</source>
         <translation>Nieobsługiwany typ protokołu</translation>
     </message>
     <message>
-        <location line="+24"/>
         <source>The address is not available</source>
         <translation>Adres nie jest dostępny</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>The address is protected</source>
         <translation>Adres jest zabezpieczony</translation>
     </message>
     <message>
-        <location line="-6"/>
         <source>The bound address is already in use</source>
         <translation>Adres jest aktualnie w użyciu</translation>
     </message>
     <message>
-        <location line="-33"/>
         <source>The remote host closed the connection</source>
         <translation>Zdalny host zakończył połączenie</translation>
     </message>
     <message>
-        <location line="-6"/>
         <source>Unable to initialize broadcast socket</source>
         <translation>Nie można uruchomić gniazda rozsyłającego</translation>
     </message>
     <message>
-        <location line="-3"/>
         <source>Unable to initialize non-blocking socket</source>
         <translation>Nie można uruchomić gniazda w nieblokującym trybie</translation>
     </message>
     <message>
-        <location line="+57"/>
         <source>Unable to receive a message</source>
         <translation>Nie można odebrać wiadomości</translation>
     </message>
     <message>
-        <location line="-3"/>
         <source>Unable to send a message</source>
         <translation>Nie można wysłać wiadomości</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Unable to write</source>
         <translation>Nie można zapisać</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Unknown error</source>
         <translation>Nieznany błąd</translation>
     </message>
     <message>
-        <location line="-57"/>
         <source>Unsupported socket operation</source>
         <translation>Nieobsługiwana operacja gniazda</translation>
     </message>
     <message>
-        <location line="+54"/>
         <source>The proxy type is invalid for this operation</source>
         <translation>Typ pośrednika nie jest poprawny dla tej operacji</translation>
     </message>
@@ -4846,7 +3820,6 @@
 <context>
     <name>QNetworkAccessCacheBackend</name>
     <message>
-        <location filename="../src/network/access/qnetworkaccesscachebackend.cpp" line="+66"/>
         <source>Error opening %1</source>
         <translation>Błąd otwierania %1</translation>
     </message>
@@ -4854,12 +3827,10 @@
 <context>
     <name>QNetworkAccessDataBackend</name>
     <message>
-        <location filename="../src/network/access/qnetworkaccessdatabackend.cpp" line="+76"/>
         <source>Operation not supported on %1</source>
         <translation>Operacja nieobsługiwana na %1</translation>
     </message>
     <message>
-        <location line="+25"/>
         <source>Invalid URI: %1</source>
         <translation>Niepoprawny URI: %1</translation>
     </message>
@@ -4867,17 +3838,14 @@
 <context>
     <name>QNetworkAccessDebugPipeBackend</name>
     <message>
-        <location filename="../src/network/access/qnetworkaccessdebugpipebackend.cpp" line="+195"/>
         <source>Write error writing to %1: %2</source>
         <translation>Błąd w trakcie zapisywania do %1: %2</translation>
     </message>
     <message>
-        <location line="+60"/>
         <source>Socket error on %1: %2</source>
         <translation>Błąd gniazda na %1: %2</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Remote host closed the connection prematurely on %1</source>
         <translation>Zdalny host przedwcześnie zakończył połączenie na %1</translation>
     </message>
@@ -4885,30 +3853,22 @@
 <context>
     <name>QNetworkAccessFileBackend</name>
     <message>
-        <location filename="../src/network/access/qfilenetworkreply.cpp" line="+85"/>
-        <location filename="../src/network/access/qnetworkaccessfilebackend.cpp" line="+100"/>
         <source>Request for opening non-local file %1</source>
         <translation>Żądanie otwarcia zdalnego pliku %1</translation>
     </message>
     <message>
-        <location line="+33"/>
-        <location filename="../src/network/access/qnetworkaccessfilebackend.cpp" line="+45"/>
         <source>Error opening %1: %2</source>
         <translation>Błąd otwierania %1: %2</translation>
     </message>
     <message>
-        <location filename="../src/network/access/qnetworkaccessfilebackend.cpp" line="+38"/>
         <source>Write error writing to %1: %2</source>
         <translation>Błąd w trakcie zapisywania do %1: %2</translation>
     </message>
     <message>
-        <location filename="../src/network/access/qfilenetworkreply.cpp" line="-13"/>
-        <location filename="../src/network/access/qnetworkaccessfilebackend.cpp" line="+48"/>
         <source>Cannot open %1: Path is a directory</source>
         <translation>Nie można otworzyć %1: Ścieżka jest katalogiem</translation>
     </message>
     <message>
-        <location filename="../src/network/access/qnetworkaccessfilebackend.cpp" line="+21"/>
         <source>Read error reading from %1: %2</source>
         <translation>Błąd w trakcie czytania z %1: %2</translation>
     </message>
@@ -4916,27 +3876,22 @@
 <context>
     <name>QNetworkAccessFtpBackend</name>
     <message>
-        <location filename="../src/network/access/qnetworkaccessftpbackend.cpp" line="+131"/>
         <source>No suitable proxy found</source>
         <translation>Nie odnaleziono odpowiedniego pośrednika</translation>
     </message>
     <message>
-        <location line="+14"/>
         <source>Cannot open %1: is a directory</source>
         <translation>Nie można otworzyć %1: jest to katalog</translation>
     </message>
     <message>
-        <location line="+112"/>
         <source>Logging in to %1 failed: authentication required</source>
         <translation>Błąd podczas logowania do %1: wymagana autoryzacja</translation>
     </message>
     <message>
-        <location line="+39"/>
         <source>Error while downloading %1: %2</source>
         <translation>Błąd podczas pobierania %1: %2</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Error while uploading %1: %2</source>
         <translation>Błąd podczas wysyłania %1: %2</translation>
     </message>
@@ -4944,7 +3899,6 @@
 <context>
     <name>QNetworkAccessHttpBackend</name>
     <message>
-        <location filename="../src/network/access/qnetworkaccesshttpbackend.cpp" line="+652"/>
         <source>No suitable proxy found</source>
         <translation>Nie odnaleziono odpowiedniego pośrednika</translation>
     </message>
@@ -4952,7 +3906,6 @@
 <context>
     <name>QNetworkAccessManager</name>
     <message>
-        <location filename="../src/network/access/qnetworkreplyimpl.cpp" line="+942"/>
         <source>Network access is disabled.</source>
         <translation>Dostęp do sieci wyłączony.</translation>
     </message>
@@ -4960,22 +3913,18 @@
 <context>
     <name>QNetworkReply</name>
     <message>
-        <location filename="../src/network/access/qnetworkaccesshttpbackend.cpp" line="+100"/>
         <source>Error downloading %1 - server replied: %2</source>
         <translation>Błąd podczas pobierania %1 - odpowiedź serwera: %2</translation>
     </message>
     <message>
-        <location filename="../src/network/access/qnetworkreplyimpl.cpp" line="-860"/>
         <source>Protocol &quot;%1&quot; is unknown</source>
         <translation>Protokół &quot;%1&quot; nie jest znany</translation>
     </message>
     <message>
-        <location line="+192"/>
         <source>Network session error.</source>
         <translation>Błąd sesji sieciowej.</translation>
     </message>
     <message>
-        <location line="+352"/>
         <source>Temporary network failure.</source>
         <translation>Chwilowy błąd w sieci.</translation>
     </message>
@@ -4983,8 +3932,6 @@
 <context>
     <name>QNetworkReplyImpl</name>
     <message>
-        <location line="+120"/>
-        <location line="+28"/>
         <source>Operation canceled</source>
         <translation>Operacja anulowana</translation>
     </message>
@@ -4992,7 +3939,6 @@
 <context>
     <name>QNetworkSession</name>
     <message>
-        <location filename="../src/network/bearer/qnetworksession.cpp" line="+449"/>
         <source>Invalid configuration.</source>
         <translation>Niepoprawna konfiguracja.</translation>
     </message>
@@ -5000,47 +3946,34 @@
 <context>
     <name>QNetworkSessionPrivateImpl</name>
     <message>
-        <location filename="../src/plugins/bearer/icd/qnetworksession_impl.cpp" line="+1019"/>
         <source>Roaming error</source>
         <translation>Błąd roamingu</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Session aborted by user or system</source>
         <translation>Sesja przerwana przez użytkownika lub system</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Unidentified Error</source>
         <translation>Niezidentyfikowany błąd</translation>
     </message>
     <message>
-        <location filename="../src/plugins/bearer/qnetworksession_impl.cpp" line="+272"/>
-        <location filename="../src/plugins/bearer/symbian/qnetworksession_impl.cpp" line="+291"/>
         <source>Unknown session error.</source>
         <translation>Nieznany błąd sesji.</translation>
     </message>
     <message>
-        <location line="+2"/>
-        <location filename="../src/plugins/bearer/symbian/qnetworksession_impl.cpp" line="+2"/>
         <source>The session was aborted by the user or system.</source>
         <translation>Sesja została przerwana przez użytkownika lub system.</translation>
     </message>
     <message>
-        <location line="+2"/>
-        <location filename="../src/plugins/bearer/symbian/qnetworksession_impl.cpp" line="+2"/>
         <source>The requested operation is not supported by the system.</source>
         <translation>Zażądana operacja nie jest obsługiwana przez system.</translation>
     </message>
     <message>
-        <location line="+2"/>
-        <location filename="../src/plugins/bearer/symbian/qnetworksession_impl.cpp" line="+2"/>
         <source>The specified configuration cannot be used.</source>
         <translation>Podana konfiguracja nie może być użyta.</translation>
     </message>
     <message>
-        <location line="+2"/>
-        <location filename="../src/plugins/bearer/symbian/qnetworksession_impl.cpp" line="+2"/>
         <source>Roaming was aborted or is not possible.</source>
         <translation>Roaming przerwany albo niemożliwy.</translation>
     </message>
@@ -5048,28 +3981,23 @@
 <context>
     <name>QOCIDriver</name>
     <message>
-        <location filename="../src/sql/drivers/oci/qsql_oci.cpp" line="+1976"/>
         <source>Unable to initialize</source>
         <comment>QOCIDriver</comment>
         <translation>Nie można dokonać inicjalizacji</translation>
     </message>
     <message>
-        <location line="+144"/>
         <source>Unable to logon</source>
         <translation>Nie można się zalogować</translation>
     </message>
     <message>
-        <location line="+71"/>
         <source>Unable to begin transaction</source>
         <translation>Nie można rozpocząć transakcji</translation>
     </message>
     <message>
-        <location line="+19"/>
         <source>Unable to commit transaction</source>
         <translation>Nie można dokonać transakcji</translation>
     </message>
     <message>
-        <location line="+19"/>
         <source>Unable to rollback transaction</source>
         <translation>Nie można wycofać transakcji</translation>
     </message>
@@ -5077,44 +4005,34 @@
 <context>
     <name>QOCIResult</name>
     <message>
-        <location line="-979"/>
-        <location line="+168"/>
-        <location line="+15"/>
         <source>Unable to bind column for batch execute</source>
         <translation>Nie można powiązać kolumny dla wykonania zestawu poleceń</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Unable to execute batch statement</source>
         <translation>Nie można wykonać polecenia wsadowego</translation>
     </message>
     <message>
-        <location line="+304"/>
         <source>Unable to goto next</source>
         <translation>Nie można przejść do kolejnego wiersza danych</translation>
     </message>
     <message>
-        <location line="+59"/>
         <source>Unable to alloc statement</source>
         <translation>Nie można przydzielić miejsca na polecenie</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Unable to prepare statement</source>
         <translation>Nie można przygotować polecenia</translation>
     </message>
     <message>
-        <location line="+26"/>
         <source>Unable to get statement type</source>
         <translation>Nie można pobrać typu polecenia</translation>
     </message>
     <message>
-        <location line="+20"/>
         <source>Unable to bind value</source>
         <translation>Nie można powiązać wartości</translation>
     </message>
     <message>
-        <location line="+19"/>
         <source>Unable to execute statement</source>
         <translation>Nie można wykonać polecenia</translation>
     </message>
@@ -5122,32 +4040,26 @@
 <context>
     <name>QODBCDriver</name>
     <message>
-        <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="+2174"/>
         <source>Unable to commit transaction</source>
         <translation>Nie można potwierdzić transakcji</translation>
     </message>
     <message>
-        <location line="-286"/>
         <source>Unable to connect</source>
         <translation>Nie można nawiązać połączenia</translation>
     </message>
     <message>
-        <location line="+269"/>
         <source>Unable to disable autocommit</source>
         <translation>Nie można wyłączyć trybu automatycznego dokonywania transakcji</translation>
     </message>
     <message>
-        <location line="+49"/>
         <source>Unable to enable autocommit</source>
         <translation>Nie można włączyć trybu automatycznego dokonywania transakcji</translation>
     </message>
     <message>
-        <location line="-15"/>
         <source>Unable to rollback transaction</source>
         <translation>Nie można wycofać transakcji</translation>
     </message>
     <message>
-        <location line="-297"/>
         <source>Unable to connect - Driver doesn&apos;t support all functionality required</source>
         <translation>Nie można nawiązać połączenia - sterownik nie obsługuje całej potrzebnej funkcjonalności</translation>
     </message>
@@ -5155,51 +4067,38 @@
 <context>
     <name>QODBCResult</name>
     <message>
-        <location line="-941"/>
-        <location line="+351"/>
         <source>QODBCResult::reset: Unable to set &apos;SQL_CURSOR_STATIC&apos; as statement attribute. Please check your ODBC driver configuration</source>
         <translation>QODBCResult::reset: Nie można ustawić &apos;SQL_CURSOR_STATIC&apos; jako atrybutu polecenia. Proszę sprawdzić konfiguracje sterownika ODBC</translation>
     </message>
     <message>
-        <location line="+285"/>
         <source>Unable to bind variable</source>
         <translation>Nie można powiązać zmiennej</translation>
     </message>
     <message>
-        <location line="-619"/>
-        <location line="+627"/>
         <source>Unable to execute statement</source>
         <translation>Nie można wykonać polecenia</translation>
     </message>
     <message>
-        <location line="-546"/>
         <source>Unable to fetch next</source>
         <translation>Nie można pobrać kolejnych danych</translation>
     </message>
     <message>
-        <location line="+271"/>
         <source>Unable to prepare statement</source>
         <translation>Nie można przygotować polecenia</translation>
     </message>
     <message>
-        <location filename="../src/sql/drivers/db2/qsql_db2.cpp" line="+189"/>
-        <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="-199"/>
-        <location line="+578"/>
         <source>Unable to fetch last</source>
         <translation>Nie można pobrać ostatnich danych</translation>
     </message>
     <message>
-        <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="-672"/>
         <source>Unable to fetch</source>
         <translation>Nie można pobrać</translation>
     </message>
     <message>
-        <location line="+44"/>
         <source>Unable to fetch first</source>
         <translation>Nie można pobrać pierwszych danych</translation>
     </message>
     <message>
-        <location line="+19"/>
         <source>Unable to fetch previous</source>
         <translation>Nie można pobrać poprzednich danych</translation>
     </message>
@@ -5207,19 +4106,14 @@
 <context>
     <name>QObject</name>
     <message>
-        <location filename="../src/3rdparty/phonon/phonon/pulsesupport.cpp" line="+162"/>
-        <location line="+11"/>
         <source>PulseAudio Sound Server</source>
         <translation>Serwer dźwięku PulseAudio</translation>
     </message>
     <message>
-        <location filename="../src/declarative/util/qdeclarativexmllistmodel.cpp" line="-253"/>
         <source>&quot;%1&quot; duplicates a previous role name and will be disabled.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+528"/>
-        <location line="+4"/>
         <source>invalid query: &quot;%1&quot;</source>
         <translation>Niepoprawne zapytanie: &quot;%1&quot;</translation>
     </message>
@@ -5227,12 +4121,10 @@
 <context>
     <name>QPPDOptionsModel</name>
     <message>
-        <location filename="../src/gui/dialogs/qprintdialog_unix.cpp" line="+1238"/>
         <source>Name</source>
         <translation>Nazwa</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Value</source>
         <translation>Wartość</translation>
     </message>
@@ -5240,32 +4132,26 @@
 <context>
     <name>QPSQLDriver</name>
     <message>
-        <location filename="../src/sql/drivers/psql/qsql_psql.cpp" line="+831"/>
         <source>Could not begin transaction</source>
         <translation>Nie można rozpocząć transakcji</translation>
     </message>
     <message>
-        <location line="+30"/>
         <source>Could not commit transaction</source>
         <translation>Nie można potwierdzić transakcji</translation>
     </message>
     <message>
-        <location line="+16"/>
         <source>Could not rollback transaction</source>
         <translation>Nie można wycofać transakcji</translation>
     </message>
     <message>
-        <location line="-95"/>
         <source>Unable to connect</source>
         <translation>Nie można nawiązać połączenia</translation>
     </message>
     <message>
-        <location line="+469"/>
         <source>Unable to subscribe</source>
         <translation>Nie można wykonać subskrypcji</translation>
     </message>
     <message>
-        <location line="+32"/>
         <source>Unable to unsubscribe</source>
         <translation>Nie można zrezygnować z subskrypcji</translation>
     </message>
@@ -5273,12 +4159,10 @@
 <context>
     <name>QPSQLResult</name>
     <message>
-        <location line="-1085"/>
         <source>Unable to create query</source>
         <translation>Nie można utworzyć zapytania</translation>
     </message>
     <message>
-        <location line="+372"/>
         <source>Unable to prepare statement</source>
         <translation>Nie można przygotować polecenia</translation>
     </message>
@@ -5286,102 +4170,82 @@
 <context>
     <name>QPageSetupWidget</name>
     <message>
-        <location filename="../src/gui/dialogs/qpagesetupdialog_unix.cpp" line="+304"/>
         <source>Centimeters (cm)</source>
         <translation>Centymetry (cm)</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Millimeters (mm)</source>
         <translation>Milimetry (mm)</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Inches (in)</source>
         <translation>Cale (in)</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Points (pt)</source>
         <translation>Punkty (pt)</translation>
     </message>
     <message>
-        <location filename="../src/gui/dialogs/qpagesetupwidget.ui"/>
         <source>Form</source>
         <translation>Formularz</translation>
     </message>
     <message>
-        <location/>
         <source>Paper</source>
         <translation>Papier</translation>
     </message>
     <message>
-        <location/>
         <source>Page size:</source>
         <translation>Rozmiar strony:</translation>
     </message>
     <message>
-        <location/>
         <source>Width:</source>
         <translation>Szerokość:</translation>
     </message>
     <message>
-        <location/>
         <source>Height:</source>
         <translation>Wysokość:</translation>
     </message>
     <message>
-        <location/>
         <source>Paper source:</source>
         <translation>Źródło papieru:</translation>
     </message>
     <message>
-        <location/>
         <source>Orientation</source>
         <translation>Położenie</translation>
     </message>
     <message>
-        <location/>
         <source>Portrait</source>
         <translation>Portret</translation>
     </message>
     <message>
-        <location/>
         <source>Landscape</source>
         <translation>Pejzaż</translation>
     </message>
     <message>
-        <location/>
         <source>Reverse landscape</source>
         <translation>Odwrócony pejzaż</translation>
     </message>
     <message>
-        <location/>
         <source>Reverse portrait</source>
         <translation>Odwrócony portret</translation>
     </message>
     <message>
-        <location/>
         <source>Margins</source>
         <translation>Marginesy</translation>
     </message>
     <message>
-        <location/>
         <source>top margin</source>
         <translation>Górny margines</translation>
     </message>
     <message>
-        <location/>
         <source>left margin</source>
         <translation>Lewy margines</translation>
     </message>
     <message>
-        <location/>
         <source>right margin</source>
         <translation>Prawy margines</translation>
     </message>
     <message>
-        <location/>
         <source>bottom margin</source>
         <translation>Dolny margines</translation>
     </message>
@@ -5389,12 +4253,10 @@
 <context>
     <name>QPluginLoader</name>
     <message>
-        <location filename="../src/corelib/plugin/qpluginloader.cpp" line="+24"/>
         <source>Unknown error</source>
         <translation>Nieznany błąd</translation>
     </message>
     <message>
-        <location line="-113"/>
         <source>The plugin was not loaded.</source>
         <translation>Wtyczka nie została załadowana.</translation>
     </message>
@@ -5402,433 +4264,344 @@
 <context>
     <name>QPrintDialog</name>
     <message>
-        <location filename="../src/gui/dialogs/qprintdialog_qws.cpp" line="+333"/>
         <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="+1"/>
         <source>A4 (210 x 297 mm, 8.26 x 11.7 inches)</source>
         <translation>A4 (210 x 297 mm, 8.26 x 11.7 cali)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <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="+40"/>
         <source>Print current page</source>
         <translation>Wydrukuj bieżącą stronę</translation>
     </message>
     <message>
-        <location filename="../src/gui/painting/qprinterinfo_unix.cpp" line="+133"/>
-        <location line="+225"/>
         <source>Aliases: %1</source>
         <translation>Aliasy: %1</translation>
     </message>
     <message>
-        <location filename="../src/gui/dialogs/qprintdialog_qws.cpp" line="-39"/>
         <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="+9"/>
         <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 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="+1"/>
         <source>B5 (176 x 250 mm, 6.93 x 9.84 inches)</source>
         <translation>B5 (176 x 250 mm, 6.93 x 9.84 cali)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <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="+2"/>
         <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 filename="../src/gui/painting/qprinterinfo_unix.cpp" line="-248"/>
         <source>locally connected</source>
         <translation>podłączony lokalnie</translation>
     </message>
     <message>
-        <location filename="../src/gui/dialogs/qprintdialog_win.cpp" line="+272"/>
         <source>OK</source>
         <translation>OK</translation>
     </message>
     <message>
-        <location filename="../src/gui/dialogs/qprintdialog_qws.cpp" line="+24"/>
         <source>Print all</source>
         <translation>Drukuj wszystko</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Print range</source>
         <translation>Drukuj zakres</translation>
     </message>
     <message>
-        <location filename="../src/gui/painting/qprinterinfo_unix.cpp" line="+473"/>
-        <location line="+199"/>
         <source>unknown</source>
         <translation>nieznany</translation>
     </message>
     <message>
-        <location filename="../src/gui/dialogs/qprintdialog_qws.cpp" line="-25"/>
         <source>Executive (7.5 x 10 inches, 191 x 254 mm)</source>
         <translation>Executive (7.5 x 10 cali, 191 x 254 mm)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Folio (210 x 330 mm)</source>
         <translation>Folio (210 x 330 mm)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Ledger (432 x 279 mm)</source>
         <translation>Ledger (432 x 279 mm)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Legal (8.5 x 14 inches, 216 x 356 mm)</source>
         <translation>Legal (8.5 x 14 cali, 216 x 356 mm)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Letter (8.5 x 11 inches, 216 x 279 mm)</source>
         <translation>Letter (8.5 x 11 cali, 216 x 279 mm)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Tabloid (279 x 432 mm)</source>
         <translation>Tabloid (279 x 432 mm)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>US Common #10 Envelope (105 x 241 mm)</source>
         <translation>US Common #10 Envelope (105 x 241 mm)</translation>
     </message>
     <message>
-        <location filename="../src/gui/dialogs/qabstractprintdialog.cpp" line="+113"/>
-        <location line="+13"/>
-        <location filename="../src/gui/dialogs/qprintdialog_win.cpp" line="-2"/>
         <source>Print</source>
         <translation>Drukowanie</translation>
     </message>
     <message>
-        <location filename="../src/gui/dialogs/qprintdialog_unix.cpp" line="-392"/>
         <source>Print To File ...</source>
         <translation>Drukuj do pliku ...</translation>
     </message>
     <message>
-        <location line="+82"/>
         <source>File %1 is not writable.
 Please choose a different file name.</source>
         <translation>Plik %1 jest plikiem tylko do odczytu.
 Proszę wybrać inną nazwę pliku.</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>%1 already exists.
 Do you want to overwrite it?</source>
         <translation>%1 już istnieje.
 Czy chcesz nadpisać?</translation>
     </message>
     <message>
-        <location line="-8"/>
         <source>%1 is a directory.
 Please choose a different file name.</source>
         <translation>%1 jest katalogiem.
 Proszę wybrać inną nazwę pliku.</translation>
     </message>
     <message>
-        <location filename="../src/gui/dialogs/qprintdialog_qws.cpp" line="-214"/>
         <source>File exists</source>
         <translation>Plik istnieje</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&lt;qt&gt;Do you want to overwrite it?&lt;/qt&gt;</source>
         <translation>&lt;qt&gt;Czy chcesz nadpisać?&lt;/qt&gt;</translation>
     </message>
     <message>
-        <location line="+231"/>
         <source>Print selection</source>
         <translation>Drukuj zaznaczone</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>Executive</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Folio</source>
         <translation>Folio</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Ledger</source>
         <translation>Ledger</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Legal</source>
         <translation>Legal</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Letter</source>
         <translation>Letter</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Tabloid</source>
         <translation>Tabloid</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>US Common #10 Envelope</source>
         <translation>US Common #10 Envelope</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Custom</source>
         <translation>Niestandardowy</translation>
     </message>
     <message>
-        <location filename="../src/gui/dialogs/qprintdialog_unix.cpp" line="-530"/>
-        <location line="+68"/>
         <source>&amp;Options &gt;&gt;</source>
         <translation>&amp;Opcje &gt;&gt;</translation>
     </message>
     <message>
-        <location line="-63"/>
         <source>&amp;Print</source>
         <translation>Wy&amp;drukuj</translation>
     </message>
     <message>
-        <location line="+67"/>
         <source>&amp;Options &lt;&lt;</source>
         <translation>&amp;Opcje &lt;&lt;</translation>
     </message>
     <message>
-        <location line="+260"/>
         <source>Print to File (PDF)</source>
         <translation>Drukuj do pliku (PDF)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Print to File (Postscript)</source>
         <translation>Drukuj do pliku (Postscript)</translation>
     </message>
     <message>
-        <location line="+47"/>
         <source>Local file</source>
         <translation>Plik lokalny</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Write %1 file</source>
         <translation>Zapisz %1 plik</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>Wartość &quot;od&quot; nie może być większa od wartości &quot;do&quot;.</translation>
     </message>
@@ -5836,108 +4609,86 @@
 <context>
     <name>QPrintPreviewDialog</name>
     <message>
-        <location filename="../src/gui/dialogs/qprintpreviewdialog.cpp" line="+249"/>
         <source>%1%</source>
         <translation>%1%</translation>
     </message>
     <message>
-        <location line="+84"/>
         <source>Print Preview</source>
         <translation>Podgląd wydruku</translation>
     </message>
     <message>
-        <location line="+30"/>
         <source>Next page</source>
         <translation>Następna strona</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Previous page</source>
         <translation>Poprzednia strona</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>First page</source>
         <translation>Pierwsza strona</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Last page</source>
         <translation>Ostatnia strona</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Fit width</source>
         <translation>Dopasuj szerokość</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Fit page</source>
         <translation>Dopasuj stronę</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>Zoom in</source>
         <translation>Powiększ</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Zoom out</source>
         <translation>Pomniejsz</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Portrait</source>
         <translation>Portret</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Landscape</source>
         <translation>Pejzaż</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>Show single page</source>
         <translation>Pokaż pojedynczą stronę</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Show facing pages</source>
         <translation>Pokaż sąsiednie strony</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Show overview of all pages</source>
         <translation>Pokaż wszystkie strony</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Print</source>
         <translation>Wydrukuj</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Page setup</source>
         <translation>Ustawienia strony</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Close</source>
         <translation>Zamknij</translation>
     </message>
     <message>
-        <location line="+148"/>
         <source>Export to PDF</source>
         <translation>Wyeksportuj do PDF</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Export to PostScript</source>
         <translation>Wyeksportuj do PostScript</translation>
     </message>
     <message>
-        <location filename="../src/gui/dialogs/qabstractpagesetupdialog.cpp" line="+68"/>
-        <location line="+12"/>
         <source>Page Setup</source>
         <translation>Ustawienia strony</translation>
     </message>
@@ -5945,17 +4696,14 @@
 <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>Strona</translation>
     </message>
     <message>
-        <location/>
         <source>Advanced</source>
         <translation>Zaawansowane</translation>
     </message>
@@ -5963,102 +4711,82 @@
 <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>Liczba kopii</translation>
     </message>
     <message>
-        <location/>
         <source>Print range</source>
         <translation>Zakres wydruku</translation>
     </message>
     <message>
-        <location/>
         <source>Print all</source>
         <translation>Drukuj wszystko</translation>
     </message>
     <message>
-        <location/>
         <source>Pages from</source>
         <translation>Strony od</translation>
     </message>
     <message>
-        <location/>
         <source>to</source>
         <translation>do</translation>
     </message>
     <message>
-        <location/>
         <source>Selection</source>
         <translation>Wybrane strony</translation>
     </message>
     <message>
-        <location/>
         <source>Output Settings</source>
         <translation>Ustawienia wyjściowe</translation>
     </message>
     <message>
-        <location/>
         <source>Copies:</source>
         <translation>Kopie:</translation>
     </message>
     <message>
-        <location/>
         <source>Collate</source>
         <translation>Parami</translation>
     </message>
     <message>
-        <location/>
         <source>Reverse</source>
         <translation>Odwróć</translation>
     </message>
     <message>
-        <location/>
         <source>Options</source>
         <translation>Opcje</translation>
     </message>
     <message>
-        <location/>
         <source>Color Mode</source>
         <translation>Tryb koloru</translation>
     </message>
     <message>
-        <location/>
         <source>Color</source>
         <translation>Kolor</translation>
     </message>
     <message>
-        <location/>
         <source>Grayscale</source>
         <translation>Skala szarości</translation>
     </message>
     <message>
-        <location/>
         <source>Duplex Printing</source>
         <translation>Drukowanie dupleksowe</translation>
     </message>
     <message>
-        <location/>
         <source>None</source>
         <translation>Brak</translation>
     </message>
     <message>
-        <location/>
         <source>Long side</source>
         <translation>Długa strona</translation>
     </message>
     <message>
-        <location/>
         <source>Short side</source>
         <translation>Krótka strona</translation>
     </message>
     <message>
-        <location/>
         <source>Current Page</source>
         <translation>Bieżąca strona</translation>
     </message>
@@ -6066,47 +4794,38 @@
 <context>
     <name>QPrintWidget</name>
     <message>
-        <location filename="../src/gui/dialogs/qprintwidget.ui"/>
         <source>Form</source>
         <translation>Forma</translation>
     </message>
     <message>
-        <location/>
         <source>Printer</source>
         <translation>Drukarka</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Name:</source>
         <translation>&amp;Nazwa:</translation>
     </message>
     <message>
-        <location/>
         <source>P&amp;roperties</source>
         <translation>&amp;Właściwości</translation>
     </message>
     <message>
-        <location/>
         <source>Location:</source>
         <translation>Położenie:</translation>
     </message>
     <message>
-        <location/>
         <source>Preview</source>
         <translation>Podgląd</translation>
     </message>
     <message>
-        <location/>
         <source>Type:</source>
         <translation>Typ:</translation>
     </message>
     <message>
-        <location/>
         <source>Output &amp;file:</source>
         <translation>&amp;Plik wyjściowy:</translation>
     </message>
     <message>
-        <location/>
         <source>...</source>
         <translation>...</translation>
     </message>
@@ -6114,62 +4833,38 @@
 <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>Nie można otworzyć wejściowego przekierowania do odczytu</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>Nie można otworzyć wyjściowego przekierowania do zapisu</translation>
     </message>
     <message>
-        <location line="+239"/>
         <source>Resource error (fork failure): %1</source>
         <translation>Błąd zasobów (błąd forkowania): %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="+411"/>
-        <location line="+50"/>
-        <location line="+75"/>
-        <location line="+42"/>
-        <location line="+54"/>
         <source>Process operation timed out</source>
         <translation>Przekroczony czas operacji procesu</translation>
     </message>
     <message>
-        <location filename="../src/corelib/io/qprocess.cpp" line="+866"/>
-        <location line="+52"/>
-        <location filename="../src/corelib/io/qprocess_win.cpp" line="-211"/>
-        <location line="+50"/>
         <source>Error reading from process</source>
         <translation>Błąd odczytywania z procesu</translation>
     </message>
     <message>
-        <location line="+47"/>
-        <location line="+870"/>
-        <location filename="../src/corelib/io/qprocess_win.cpp" line="+140"/>
         <source>Error writing to process</source>
         <translation>Błąd zapisywania do procesu</translation>
     </message>
     <message>
-        <location line="-800"/>
         <source>Process crashed</source>
         <translation>Wystąpił błąd w procesie - proces zakończony</translation>
     </message>
     <message>
-        <location line="+1002"/>
         <source>No program defined</source>
         <translation>Nie zdefiniowano programu</translation>
     </message>
     <message>
-        <location filename="../src/corelib/io/qprocess_win.cpp" line="-360"/>
         <source>Process failed to start: %1</source>
         <translation>Nie można rozpocząć procesu: %1</translation>
     </message>
@@ -6177,7 +4872,6 @@
 <context>
     <name>QProgressDialog</name>
     <message>
-        <location filename="../src/gui/dialogs/qprogressdialog.cpp" line="+203"/>
         <source>Cancel</source>
         <translation>Anuluj</translation>
     </message>
@@ -6185,7 +4879,6 @@
 <context>
     <name>QPushButton</name>
     <message>
-        <location filename="../src/plugins/accessible/widgets/simplewidgets.cpp" line="-4"/>
         <source>Open</source>
         <translation>Otwórz</translation>
     </message>
@@ -6193,7 +4886,6 @@
 <context>
     <name>QRadioButton</name>
     <message>
-        <location line="+12"/>
         <source>Check</source>
         <translation>Zaznacz</translation>
     </message>
@@ -6201,57 +4893,46 @@
 <context>
     <name>QRegExp</name>
     <message>
-        <location filename="../src/corelib/tools/qregexp.cpp" line="+67"/>
         <source>bad char class syntax</source>
         <translation>niepoprawna składnia klasy znakowej</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>bad lookahead syntax</source>
         <translation>niepoprawna składnia &quot;lookahead&quot;</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>bad repetition syntax</source>
         <translation>niepoprawna składnia powtórzenia</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>invalid interval</source>
         <translation>Niepoprawny interwał</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>invalid category</source>
         <translation>Niepoprawna kategoria</translation>
     </message>
     <message>
-        <location line="-9"/>
         <source>disabled feature used</source>
         <translation>użyta funkcja została wyłączona</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>invalid octal value</source>
         <translation>niepoprawna wartość ósemkowa</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>met internal limit</source>
         <translation>napotkano wewnętrzne ograniczenie</translation>
     </message>
     <message>
-        <location line="-2"/>
         <source>missing left delim</source>
         <translation>brakujący lewy separator</translation>
     </message>
     <message>
-        <location line="-6"/>
         <source>no error occurred</source>
         <translation>nie pojawił się żaden błąd</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>unexpected end</source>
         <translation>nieoczekiwany koniec</translation>
     </message>
@@ -6259,22 +4940,18 @@
 <context>
     <name>QSQLite2Driver</name>
     <message>
-        <location filename="../src/sql/drivers/sqlite2/qsql_sqlite2.cpp" line="+399"/>
         <source>Error opening database</source>
         <translation>Błąd otwierania bazy danych</translation>
     </message>
     <message>
-        <location line="+41"/>
         <source>Unable to begin transaction</source>
         <translation>Nie można rozpocząć transakcji</translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>Unable to commit transaction</source>
         <translation>Nie można dokonać transakcji</translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>Unable to rollback transaction</source>
         <translation>Nie można wycofać transakcji</translation>
     </message>
@@ -6282,12 +4959,10 @@
 <context>
     <name>QSQLite2Result</name>
     <message>
-        <location line="-176"/>
         <source>Unable to execute statement</source>
         <translation>Nie można wykonać polecenia</translation>
     </message>
     <message>
-        <location line="-150"/>
         <source>Unable to fetch results</source>
         <translation>Nie można pobrać wyników</translation>
     </message>
@@ -6295,27 +4970,22 @@
 <context>
     <name>QSQLiteDriver</name>
     <message>
-        <location filename="../src/sql/drivers/sqlite/qsql_sqlite.cpp" line="+550"/>
         <source>Error closing database</source>
         <translation>Błąd zamykania bazy danych</translation>
     </message>
     <message>
-        <location line="-11"/>
         <source>Error opening database</source>
         <translation>Błąd otwierania bazy danych</translation>
     </message>
     <message>
-        <location line="+31"/>
         <source>Unable to begin transaction</source>
         <translation>Nie można rozpocząć transakcji</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Unable to commit transaction</source>
         <translation>Nie można dokonać transakcji</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Unable to rollback transaction</source>
         <translation>Nie można wycofać transakcji</translation>
     </message>
@@ -6323,34 +4993,26 @@
 <context>
     <name>QSQLiteResult</name>
     <message>
-        <location line="-194"/>
         <source>Parameter count mismatch</source>
         <translation>Niezgodna liczba parametrów</translation>
     </message>
     <message>
-        <location line="-7"/>
         <source>Unable to bind parameters</source>
         <translation>Nie można powiązać parametrów</translation>
     </message>
     <message>
-        <location line="-65"/>
         <source>Unable to execute statement</source>
         <translation>Nie można wykonać polecenia</translation>
     </message>
     <message>
-        <location line="-130"/>
-        <location line="+63"/>
-        <location line="+8"/>
         <source>Unable to fetch row</source>
         <translation>Nie można pobrać wiersza danych</translation>
     </message>
     <message>
-        <location line="+79"/>
         <source>Unable to reset statement</source>
         <translation>Nie można skasować polecenia</translation>
     </message>
     <message>
-        <location line="-149"/>
         <source>No query</source>
         <translation>Brak zapytania</translation>
     </message>
@@ -6358,32 +5020,26 @@
 <context>
     <name>QScriptBreakpointsModel</name>
     <message>
-        <location filename="../src/scripttools/debugging/qscriptbreakpointsmodel.cpp" line="+455"/>
         <source>ID</source>
         <translation>Identyfikator</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Location</source>
         <translation>Położenie</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Condition</source>
         <translation>Warunek</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Ignore-count</source>
         <translation>Licznik pominięć</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Single-shot</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+2"/>
+        <translation>Pojedyncze trafienie</translation>
+    </message>
+    <message>
         <source>Hit-count</source>
         <translation>Licznik trafień</translation>
     </message>
@@ -6391,12 +5047,10 @@
 <context>
     <name>QScriptBreakpointsWidget</name>
     <message>
-        <location filename="../src/scripttools/debugging/qscriptbreakpointswidget.cpp" line="+298"/>
         <source>New</source>
         <translation>Nowy</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Delete</source>
         <translation>Skasuj</translation>
     </message>
@@ -6404,143 +5058,114 @@
 <context>
     <name>QScriptDebugger</name>
     <message>
-        <location filename="../src/scripttools/debugging/qscriptdebugger.cpp" line="+885"/>
-        <location line="+1013"/>
         <source>Go to Line</source>
         <translation>Przejdź do linii</translation>
     </message>
     <message>
-        <location line="-1012"/>
         <source>Line:</source>
         <translation>Linia:</translation>
     </message>
     <message>
-        <location line="+791"/>
         <source>Interrupt</source>
         <translation>Przerwij</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Shift+F5</source>
         <translation>Shift+F5</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Continue</source>
         <translation>Kontynuuj</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>F5</source>
         <translation>F5</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Step Into</source>
         <translation>Wskocz do wnętrza</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>F11</source>
         <translation>F11</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Step Over</source>
         <translation>Przeskocz</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>F10</source>
         <translation>F10</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Step Out</source>
         <translation>Wyskocz na zewnątrz</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>Uruchom do kursora</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>Uruchom do nowego skryptu</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Toggle Breakpoint</source>
         <translation>Przełącz ustawienie pułapki</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>F9</source>
         <translation>F9</translation>
     </message>
     <message>
-        <location line="+14"/>
         <source>Clear Debug Output</source>
         <translation>Wyczyść wyjście debuggera</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>Clear Error Log</source>
         <translation>Wyczyść log z błędami</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>Clear Console</source>
         <translation>Wyczyść konsolę</translation>
     </message>
     <message>
-        <location line="+14"/>
         <source>&amp;Find in Script...</source>
         <translation>&amp;Znajdź w skrypcie...</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>Znajdź &amp;następne</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>F3</source>
         <translation>F3</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>Find &amp;Previous</source>
         <translation>Znajdź &amp;poprzednie</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>Debuguj</translation>
     </message>
@@ -6548,32 +5173,26 @@
 <context>
     <name>QScriptDebuggerCodeFinderWidget</name>
     <message>
-        <location filename="../src/scripttools/debugging/qscriptdebuggercodefinderwidget.cpp" line="+141"/>
         <source>Close</source>
         <translation>Zamknij</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>Previous</source>
         <translation>Poprzednie</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Next</source>
         <translation>Następne</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Case Sensitive</source>
         <translation>Uwzględniaj wielkość liter</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Whole words</source>
         <translation>Całe słowa</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;Przeszukano od początku</translation>
     </message>
@@ -6581,12 +5200,10 @@
 <context>
     <name>QScriptDebuggerLocalsModel</name>
     <message>
-        <location filename="../src/scripttools/debugging/qscriptdebuggerlocalsmodel.cpp" line="+897"/>
         <source>Name</source>
         <translation>Nazwa</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Value</source>
         <translation>Wartość</translation>
     </message>
@@ -6594,17 +5211,14 @@
 <context>
     <name>QScriptDebuggerStackModel</name>
     <message>
-        <location filename="../src/scripttools/debugging/qscriptdebuggerstackmodel.cpp" line="+161"/>
         <source>Level</source>
         <translation>Poziom</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Name</source>
         <translation>Nazwa</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Location</source>
         <translation>Położenie</translation>
     </message>
@@ -6612,22 +5226,18 @@
 <context>
     <name>QScriptEdit</name>
     <message>
-        <location filename="../src/scripttools/debugging/qscriptedit.cpp" line="+411"/>
         <source>Toggle Breakpoint</source>
         <translation>Przełącz ustawienie pułapki</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Disable Breakpoint</source>
         <translation>Wyłącz pułapkę</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Enable Breakpoint</source>
         <translation>Włącz pułapkę</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Breakpoint Condition:</source>
         <translation>Warunek dla pułapki:</translation>
     </message>
@@ -6635,52 +5245,42 @@
 <context>
     <name>QScriptEngineDebugger</name>
     <message>
-        <location filename="../src/scripttools/debugging/qscriptenginedebugger.cpp" line="+523"/>
         <source>Loaded Scripts</source>
         <translation>Załadowane skrypty</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Breakpoints</source>
         <translation>Pułapki</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Stack</source>
         <translation>Stos</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Locals</source>
         <translation>Zmienne lokalne</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Console</source>
         <translation>Konsola</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Debug Output</source>
         <translation>Wyjście debuggera</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Error Log</source>
         <translation>Log z błędami</translation>
     </message>
     <message>
-        <location line="+12"/>
         <source>Search</source>
         <translation>Szukaj</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>View</source>
         <translation>Widok</translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>Qt Script Debugger</source>
         <translation>Debugger Qt Script</translation>
     </message>
@@ -6688,7 +5288,6 @@
 <context>
     <name>QScriptNewBreakpointWidget</name>
     <message>
-        <location filename="../src/scripttools/debugging/qscriptbreakpointswidget.cpp" line="-223"/>
         <source>Close</source>
         <translation>Zamknij</translation>
     </message>
@@ -6696,84 +5295,66 @@
 <context>
     <name>QScrollBar</name>
     <message>
-        <location filename="../src/gui/widgets/qscrollbar.cpp" line="+457"/>
         <source>Bottom</source>
         <translation>W dół</translation>
     </message>
     <message>
-        <location line="-1"/>
         <source>Left edge</source>
         <translation>Lewa krawędź</translation>
     </message>
     <message>
-        <location filename="../src/plugins/accessible/widgets/rangecontrols.cpp" line="+149"/>
         <source>Line down</source>
         <translation>Linia w dół</translation>
     </message>
     <message>
-        <location line="-8"/>
         <source>Line up</source>
         <translation>Linia w górę</translation>
     </message>
     <message>
-        <location filename="../src/gui/widgets/qscrollbar.cpp" line="+4"/>
-        <location filename="../src/plugins/accessible/widgets/rangecontrols.cpp" line="+6"/>
         <source>Page down</source>
         <translation>Strona w dół</translation>
     </message>
     <message>
-        <location line="-1"/>
         <source>Page left</source>
         <translation>Strona w lewo</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Page right</source>
         <translation>Strona w prawo</translation>
     </message>
     <message>
-        <location line="-1"/>
-        <location filename="../src/plugins/accessible/widgets/rangecontrols.cpp" line="-4"/>
         <source>Page up</source>
         <translation>Strona do góry</translation>
     </message>
     <message>
-        <location filename="../src/plugins/accessible/widgets/rangecontrols.cpp" line="+2"/>
         <source>Position</source>
         <translation>Pozycja</translation>
     </message>
     <message>
-        <location filename="../src/gui/widgets/qscrollbar.cpp" line="-2"/>
         <source>Right edge</source>
         <translation>Prawa krawędź</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Scroll down</source>
         <translation>Przewiń w dół</translation>
     </message>
     <message>
-        <location line="-9"/>
         <source>Scroll here</source>
         <translation>Przewiń tutaj</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Scroll left</source>
         <translation>Przewiń w lewo</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Scroll right</source>
         <translation>Przewiń w prawo</translation>
     </message>
     <message>
-        <location line="-1"/>
         <source>Scroll up</source>
         <translation>Przewiń do góry</translation>
     </message>
     <message>
-        <location line="-6"/>
         <source>Top</source>
         <translation>Do góry</translation>
     </message>
@@ -6781,111 +5362,78 @@
 <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: rozmiar przy tworzeniu mniejszy od 0</translation>
     </message>
     <message>
-        <location line="+168"/>
-        <location filename="../src/corelib/kernel/qsharedmemory_p.h" line="+155"/>
         <source>%1: unable to lock</source>
         <translation>%1: nie można zablokować</translation>
     </message>
     <message>
-        <location line="+22"/>
         <source>%1: unable to unlock</source>
         <translation>%1: nie można odblokować</translation>
     </message>
     <message>
-        <location filename="../src/corelib/kernel/qsharedmemory_symbian.cpp" line="+83"/>
-        <location filename="../src/corelib/kernel/qsharedmemory_unix.cpp" line="+81"/>
-        <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="+87"/>
         <source>%1: permission denied</source>
         <translation>%1: brak uprawnień</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: już istnieje</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>%1: doesn&apos;t exists</source>
         <translation>%1: nie istnieje</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: zasoby wyczerpane</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: nieznany błąd %2</translation>
     </message>
     <message>
-        <location filename="../src/corelib/kernel/qsharedmemory_unix.cpp" line="+21"/>
         <source>%1: key is empty</source>
         <translation>%1: klucz jest pusty</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>%1: ftok failed</source>
         <translation>%1: wystąpił błąd w funkcji ftok()</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: nie można utworzyć klucza</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: nie istnieje</translation>
     </message>
     <message>
-        <location line="+39"/>
         <source>%1: UNIX key file doesn&apos;t exist</source>
         <translation>%1: unixowy plik z kluczem nie istnieje</translation>
     </message>
     <message>
-        <location line="+78"/>
         <source>%1: system-imposed size restrictions</source>
         <translation>%1: ograniczenia rozmiarów narzucone przez system</translation>
     </message>
     <message>
-        <location line="+53"/>
         <source>%1: not attached</source>
         <translation>%1: niedołączony</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: niepoprawny rozmiar</translation>
     </message>
     <message>
-        <location line="+40"/>
-        <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="+63"/>
         <source>%1: key error</source>
         <translation>%1: błąd klucza</translation>
     </message>
     <message>
-        <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="+32"/>
         <source>%1: size query failed</source>
         <translation>%1: zapytanie o rozmiar zakończone błędem</translation>
     </message>
     <message>
-        <location filename="../src/corelib/kernel/qsharedmemory.cpp" line="-271"/>
         <source>%1: unable to set key on lock</source>
         <translation>%1: nie można ustawić klucza na zablokowanym segmencie pamięci współdzielonej</translation>
     </message>
@@ -6893,1107 +5441,884 @@
 <context>
     <name>QShortcut</name>
     <message>
-        <location filename="../src/gui/kernel/qkeysequence.cpp" line="+1331"/>
         <source>+</source>
         <translation>+</translation>
     </message>
     <message>
-        <location line="-91"/>
-        <location line="+135"/>
         <source>Alt</source>
         <translation>Alt</translation>
     </message>
     <message>
-        <location line="-950"/>
         <source>Back</source>
         <translation>Back</translation>
     </message>
     <message>
-        <location line="-25"/>
         <source>Backspace</source>
         <translation>Backspace</translation>
     </message>
     <message>
-        <location line="-1"/>
         <source>Backtab</source>
         <translation>Backtab</translation>
     </message>
     <message>
-        <location line="+33"/>
         <source>Bass Boost</source>
         <translation>Wzmocnienie basów</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Bass Down</source>
         <translation>Basy w dół</translation>
     </message>
     <message>
-        <location line="-1"/>
         <source>Bass Up</source>
         <translation>Basy w górę</translation>
     </message>
     <message>
-        <location line="+154"/>
         <source>Call</source>
         <extracomment>Button to start a call (note: a separate button is used to end the call)</extracomment>
         <translation>Wywołaj</translation>
     </message>
     <message>
-        <location line="-22"/>
         <source>Caps Lock</source>
         <translation>Caps Lock</translation>
     </message>
     <message>
-        <location line="-149"/>
         <source>CapsLock</source>
         <translation>CapsLock</translation>
     </message>
     <message>
-        <location line="+27"/>
         <source>Media Pause</source>
         <extracomment>Media player pause button</extracomment>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Toggle Media Play/Pause</source>
         <extracomment>Media player button to toggle between playing and paused</extracomment>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+24"/>
         <source>Monitor Brightness Up</source>
         <translation>Zwiększ jasność monitora</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Monitor Brightness Down</source>
         <translation>Zmniejsz jasność monitora</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Keyboard Light On/Off</source>
         <translation>Włącz/wyłącz podświetlenie klawiatury</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Keyboard Brightness Up</source>
         <translation>Zwiększ jasność klawiatury</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Keyboard Brightness Down</source>
         <translation>Zmniejsz jasność klawiatury</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Power Off</source>
         <translation>Wyłącz zasilanie</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Wake Up</source>
         <translation>Przebudzenie</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Eject</source>
         <translation>Wysuń</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Screensaver</source>
         <translation>Wygaszacz ekranu</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>WWW</source>
         <translation>WWW</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Sleep</source>
         <translation>Uśpienie</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>LightBulb</source>
         <translation>Żarówka</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Shop</source>
         <translation>Sklep</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>History</source>
         <translation>Historia</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Add Favorite</source>
         <translation>Dodaj do ulubionych</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Hot Links</source>
         <translation>Popularne łącza</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Adjust Brightness</source>
         <translation>Ustaw jasność</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Finance</source>
         <translation>Finanse</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Community</source>
         <translation>Społeczność</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Audio Rewind</source>
         <translation>Przewijanie do tyłu</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Back Forward</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Application Left</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Application Right</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Book</source>
         <translation>Książka</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>CD</source>
         <translation>CD</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Calculator</source>
         <translation>Kalkulator</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Clear</source>
         <translation>Wyczyść</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Clear Grab</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Close</source>
         <translation>Zamknij</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Copy</source>
         <translation>Skopiuj</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Cut</source>
         <translation>Wytnij</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Display</source>
         <translation>Wyświetlacz</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>DOS</source>
         <translation>DOS</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Documents</source>
         <translation>Dokumenty</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Spreadsheet</source>
         <translation>Arkusz kalkulacyjny</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Browser</source>
         <translation>Przeglądarka</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Game</source>
         <translation>Gra</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Go</source>
         <translation>Przejdź</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>iTouch</source>
         <translation>iTouch</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Logoff</source>
         <translation>Wyloguj</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Market</source>
         <translation>Rynek</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Meeting</source>
         <translation>Spotkanie</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Keyboard Menu</source>
         <translation>Menu klawiatury</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Menu PB</source>
         <translation>Menu PB</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>My Sites</source>
         <translation>Moje strony</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>News</source>
         <translation>Wiadomości</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Home Office</source>
         <translation>Biuro domowe</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Option</source>
         <translation>Opcje</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Paste</source>
         <translation>Wklej</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Phone</source>
         <translation>Telefon</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Reply</source>
         <translation>Odpowiedz</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Reload</source>
         <translation>Przeładuj</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Rotate Windows</source>
         <translation>Obróć okna</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Rotation PB</source>
         <translation>Obrót PB</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Rotation KB</source>
         <translation>Obrót KB</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Save</source>
         <translation>Zachowaj</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Send</source>
         <translation>Wyślij</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Spellchecker</source>
         <translation>Sprawdzanie pisowni</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Split Screen</source>
         <translation>Podziel ekran</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Support</source>
         <translation>Pomoc techniczna</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Task Panel</source>
         <translation>Panel zadań</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Terminal</source>
         <translation>Terminal</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Tools</source>
         <translation>Narzędzia</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Travel</source>
         <translation>Podróże</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Video</source>
         <translation>Wideo</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Word Processor</source>
         <translation>Procesor tekstu</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>XFer</source>
         <translation>XFer</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Zoom In</source>
         <translation>Powiększ</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Zoom Out</source>
         <translation>Pomniejsz</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Away</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Messenger</source>
         <translation>Komunikator</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>WebCam</source>
         <translation>WebCam</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Mail Forward</source>
         <translation>Przekazanie poczty</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Pictures</source>
         <translation>Zdjęcia</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Music</source>
         <translation>Muzyka</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Battery</source>
         <translation>Bateria</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Bluetooth</source>
         <translation>Bluetooth</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Wireless</source>
         <translation>Bezprzewodowy</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Ultra Wide Band</source>
         <translation>Ultraszerokie pasmo</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Audio Forward</source>
         <translation>Przewijanie do przodu</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Audio Repeat</source>
         <translation>Powtarzanie</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Audio Random Play</source>
         <translation>Odtwarzanie losowe</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Subtitle</source>
         <translation>Napisy</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Audio Cycle Track</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Time</source>
         <translation>Czas</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>View</source>
         <translation>Widok</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Top Menu</source>
         <translation>Menu główne</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Suspend</source>
         <translation>Wstrzymanie</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Hibernate</source>
         <translation>Hibernacja</translation>
     </message>
     <message>
-        <location line="+24"/>
         <source>Context1</source>
         <translation>Kontekst1</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Context2</source>
         <translation>Kontekst2</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Context3</source>
         <translation>Kontekst3</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Context4</source>
         <translation>Kontekst4</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Toggle Call/Hangup</source>
         <extracomment>Button that will hang up if we&apos;re in call, or make a call if we&apos;re not.</extracomment>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Voice Dial</source>
         <extracomment>Button to trigger voice dialling</extracomment>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Last Number Redial</source>
         <extracomment>Button to redial the last number called</extracomment>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Camera Shutter</source>
         <extracomment>Button to trigger the camera shutter (take a picture)</extracomment>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Camera Focus</source>
         <extracomment>Button to focus the camera</extracomment>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Kanji</source>
         <translation>Kanji</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Muhenkan</source>
         <translation>Muhenkan</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Henkan</source>
         <translation>Henkan</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Romaji</source>
         <translation>Romaji</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Hiragana</source>
         <translation>Hiragana</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Katakana</source>
         <translation>Katakana</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Hiragana Katakana</source>
         <translation>Hiragana Katakana</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Zenkaku</source>
         <translation>Zenkaku</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Hankaku</source>
         <translation>Hankaku</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Zenkaku Hankaku</source>
         <translation>Zenkaku Hankaku</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Touroku</source>
         <translation>Touroku</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Massyo</source>
         <translation>Massyo</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Kana Lock</source>
         <translation>Kana Lock</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Kana Shift</source>
         <translation>Kana Shift</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Eisu Shift</source>
         <translation>Eisu Shift</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Eisu toggle</source>
         <translation>Eisu toggle</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Code input</source>
         <translation>Wprowadzanie kodu</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Multiple Candidate</source>
         <translation>Kandydat wielokrotny</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Previous Candidate</source>
         <translation>Poprzedni kandydat</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Hangul</source>
         <translation>Hangul</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Hangul Start</source>
         <translation>Hangul Start</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Hangul End</source>
         <translation>Hangul End</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Hangul Hanja</source>
         <translation>Hangul Hanja</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Hangul Jamo</source>
         <translation>Hangul Jamo</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Hangul Romaja</source>
         <translation>Hangul Romaja</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Hangul Jeonja</source>
         <translation>Hangul Jeonja</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Hangul Banja</source>
         <translation>Hangul Banja</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Hangul PreHanja</source>
         <translation>Hangul PreHanja</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Hangul PostHanja</source>
         <translation>Hangul PostHanja</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Hangul Special</source>
         <translation>Hangul Special</translation>
     </message>
     <message>
-        <location line="+602"/>
-        <location line="+135"/>
         <source>Ctrl</source>
         <translation>Ctrl</translation>
     </message>
     <message>
-        <location line="-969"/>
         <source>Del</source>
         <translation>Del</translation>
     </message>
     <message>
-        <location line="+166"/>
         <source>Delete</source>
         <translation>Delete</translation>
     </message>
     <message>
-        <location line="-157"/>
         <source>Down</source>
         <translation>Dół</translation>
     </message>
     <message>
-        <location line="-4"/>
         <source>End</source>
         <translation>End</translation>
     </message>
     <message>
-        <location line="-7"/>
         <source>Enter</source>
         <translation>Enter</translation>
     </message>
     <message>
-        <location line="-5"/>
         <source>Esc</source>
         <translation>Esc</translation>
     </message>
     <message>
-        <location line="+174"/>
         <source>Escape</source>
         <translation>Escape</translation>
     </message>
     <message>
-        <location line="+821"/>
         <source>F%1</source>
         <translation>F%1</translation>
     </message>
     <message>
-        <location line="-945"/>
         <source>Favorites</source>
         <translation>Ulubione</translation>
     </message>
     <message>
-        <location line="+145"/>
         <source>Flip</source>
         <translation>Odwróć</translation>
     </message>
     <message>
-        <location line="-166"/>
         <source>Forward</source>
         <translation>Do przodu</translation>
     </message>
     <message>
-        <location line="+163"/>
         <source>Hangup</source>
         <extracomment>Button to end a call (note: a separate button is used to start the call)</extracomment>
         <translation>Zawieś</translation>
     </message>
     <message>
-        <location line="-169"/>
         <source>Help</source>
         <translation>Pomoc</translation>
     </message>
     <message>
-        <location line="-12"/>
         <source>Home</source>
         <translation>Home</translation>
     </message>
     <message>
-        <location line="+38"/>
         <source>Home Page</source>
         <translation>Strona startowa</translation>
     </message>
     <message>
-        <location line="-43"/>
         <source>Ins</source>
         <translation>Ins</translation>
     </message>
     <message>
-        <location line="+166"/>
         <source>Insert</source>
         <translation>Insert</translation>
     </message>
     <message>
-        <location line="-116"/>
         <source>Launch (0)</source>
         <translation>Uruchom (0)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Launch (1)</source>
         <translation>Uruchom (1)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Launch (2)</source>
         <translation>Uruchom (2)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Launch (3)</source>
         <translation>Uruchom (3)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Launch (4)</source>
         <translation>Uruchom (4)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Launch (5)</source>
         <translation>Uruchom (5)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Launch (6)</source>
         <translation>Uruchom (6)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Launch (7)</source>
         <translation>Uruchom (7)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Launch (8)</source>
         <translation>Uruchom (8)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Launch (9)</source>
         <translation>Uruchom (9)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Launch (A)</source>
         <translation>Uruchom (A)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Launch (B)</source>
         <translation>Uruchom (B)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Launch (C)</source>
         <translation>Uruchom (C)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Launch (D)</source>
         <translation>Uruchom (D)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Launch (E)</source>
         <translation>Uruchom (E)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Launch (F)</source>
         <translation>Uruchom (F)</translation>
     </message>
     <message>
-        <location line="-17"/>
         <source>Launch Mail</source>
         <translation>Uruchom program pocztowy</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Launch Media</source>
         <translation>Uruchom przeglądarkę mediów</translation>
     </message>
     <message>
-        <location line="-42"/>
         <source>Left</source>
         <translation>Lewo</translation>
     </message>
     <message>
-        <location line="+30"/>
         <source>Media Next</source>
         <translation>Następna ścieżka</translation>
     </message>
     <message>
-        <location line="-3"/>
         <source>Media Play</source>
         <translation>Odtwarzaj</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Media Previous</source>
         <translation>Poprzednia ścieżka</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Media Record</source>
         <translation>Nagrywaj</translation>
     </message>
     <message>
-        <location line="-3"/>
         <source>Media Stop</source>
         <translation>Zatrzymaj</translation>
     </message>
     <message>
-        <location line="-19"/>
         <source>Menu</source>
         <translation>Menu</translation>
     </message>
     <message>
-        <location line="+822"/>
-        <location line="+130"/>
         <source>Meta</source>
         <translation>Meta</translation>
     </message>
     <message>
-        <location line="-793"/>
         <source>No</source>
         <translation>Nie</translation>
     </message>
     <message>
-        <location line="-12"/>
         <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="-150"/>
         <source>NumLock</source>
         <translation>NumLock</translation>
     </message>
     <message>
-        <location line="+33"/>
         <source>Open URL</source>
         <translation>Otwórz adres</translation>
     </message>
     <message>
-        <location line="+114"/>
         <source>Page Down</source>
         <translation>Strona do góry</translation>
     </message>
     <message>
-        <location line="-1"/>
         <source>Page Up</source>
         <translation>Strona w dół</translation>
     </message>
     <message>
-        <location line="-158"/>
         <source>Pause</source>
         <translation>Pauza</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>PgDown</source>
         <translation>PgDown</translation>
     </message>
     <message>
-        <location line="-1"/>
         <source>PgUp</source>
         <translation>PgUp</translation>
     </message>
     <message>
-        <location line="-8"/>
         <source>Print</source>
         <translation>Wydrukuj</translation>
     </message>
     <message>
-        <location line="+156"/>
         <source>Print Screen</source>
         <translation>Wydrukuj zawartość ekranu</translation>
     </message>
     <message>
-        <location line="-134"/>
         <source>Refresh</source>
         <translation>Odśwież</translation>
     </message>
     <message>
-        <location line="-27"/>
         <source>Return</source>
         <translation>Powrót</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>Right</source>
         <translation>Prawo</translation>
     </message>
     <message>
-        <location line="+156"/>
         <source>Scroll Lock</source>
         <translation>Scroll Lock</translation>
     </message>
     <message>
-        <location line="-150"/>
         <source>ScrollLock</source>
         <translation>ScrollLock</translation>
     </message>
     <message>
-        <location line="+30"/>
         <source>Search</source>
         <translation>Szukaj</translation>
     </message>
     <message>
-        <location line="+106"/>
-        <location line="+22"/>
         <source>Select</source>
         <translation>Wybierz</translation>
     </message>
     <message>
-        <location line="+663"/>
-        <location line="+138"/>
         <source>Shift</source>
         <translation>Shift</translation>
     </message>
     <message>
-        <location line="-981"/>
         <source>Space</source>
         <extracomment>This and all following &quot;incomprehensible&quot; strings in QShortcut context are key names. Please use the localized names appearing on actual keyboards or whatever is commonly used.</extracomment>
         <translation>Spacja</translation>
     </message>
     <message>
-        <location line="+53"/>
         <source>Standby</source>
         <translation>Tryb oczekiwania</translation>
     </message>
     <message>
-        <location line="-22"/>
         <source>Stop</source>
         <translation>Zatrzymaj</translation>
     </message>
     <message>
-        <location line="-20"/>
         <source>SysReq</source>
         <translation>SysReq</translation>
     </message>
     <message>
-        <location line="+165"/>
         <source>System Request</source>
         <translation>Żądanie systemu</translation>
     </message>
     <message>
-        <location line="-174"/>
         <source>Tab</source>
         <translation>Tabulator</translation>
     </message>
     <message>
-        <location line="+38"/>
         <source>Treble Down</source>
         <translation>Soprany w dół</translation>
     </message>
     <message>
-        <location line="-1"/>
         <source>Treble Up</source>
         <translation>Soprany w górę</translation>
     </message>
     <message>
-        <location line="-24"/>
         <source>Up</source>
         <translation>Góra</translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>Volume Down</source>
         <translation>Przycisz</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Volume Mute</source>
         <translation>Wycisz</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Volume Up</source>
         <translation>Zrób głośniej</translation>
     </message>
     <message>
-        <location line="+146"/>
         <source>Yes</source>
         <translation>Tak</translation>
     </message>
@@ -8001,27 +6326,22 @@
 <context>
     <name>QSlider</name>
     <message>
-        <location filename="../src/plugins/accessible/widgets/rangecontrols.cpp" line="+160"/>
         <source>Page down</source>
         <translation>Strona w dół</translation>
     </message>
     <message>
-        <location line="-5"/>
         <source>Page left</source>
         <translation>Strona w lewo</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Page right</source>
         <translation>Strona w prawo</translation>
     </message>
     <message>
-        <location line="-5"/>
         <source>Page up</source>
         <translation>Strona do góry</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Position</source>
         <translation>Położenie</translation>
     </message>
@@ -8029,72 +6349,58 @@
 <context>
     <name>QSocks5SocketEngine</name>
     <message>
-        <location filename="../src/network/socket/qsocks5socketengine.cpp" line="-67"/>
         <source>Connection to proxy refused</source>
         <translation>Odmowa połączenia z pośrednikiem</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Connection to proxy closed prematurely</source>
         <translation>Przedwczesne zakończenie połączenia z pośrednikiem</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Proxy host not found</source>
         <translation>Nie odnaleziono hosta pośredniczącego</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Connection to proxy timed out</source>
         <translation>Przekroczony czas połączenia do pośrednika</translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>Proxy authentication failed</source>
         <translation>Autoryzacja pośrednika zakończona błędem</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Proxy authentication failed: %1</source>
         <translation>Autoryzacja pośrednika zakończona błędem: %1</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>SOCKS version 5 protocol error</source>
         <translation>Błąd protokołu SOCKS wersji 5</translation>
     </message>
     <message>
-        <location line="+19"/>
         <source>General SOCKSv5 server failure</source>
         <translation>Generalny błąd serwera SOCKS wersji 5</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Connection not allowed by SOCKSv5 server</source>
         <translation>Połączenie niedozwolone przez serwer SOCKS wersji 5</translation>
     </message>
     <message>
-        <location line="+16"/>
         <source>TTL expired</source>
         <translation>TTL stracił ważność</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>SOCKSv5 command not supported</source>
         <translation>Nieobsługiwana komenda SOCKS wersji 5</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Address type not supported</source>
         <translation>Nieobsługiwany typ adresu</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Unknown SOCKSv5 proxy error code 0x%1</source>
         <translation>Nieznany kod błędu (0x%1) pośrednika SOCKS wersji 5</translation>
     </message>
     <message>
-        <location line="+689"/>
         <source>Network operation timed out</source>
         <translation>Przekroczony czas operacji sieciowej</translation>
     </message>
@@ -8102,32 +6408,26 @@
 <context>
     <name>QSoftKeyManager</name>
     <message>
-        <location filename="../src/gui/kernel/qsoftkeymanager.cpp" line="+63"/>
         <source>Ok</source>
         <translation>OK</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Select</source>
         <translation>Wybierz</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Done</source>
         <translation>Zrobione</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Options</source>
         <translation>Opcje</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Cancel</source>
         <translation>Anuluj</translation>
     </message>
     <message>
-        <location filename="../src/gui/kernel/qsoftkeymanager_s60.cpp" line="+321"/>
         <source>Exit</source>
         <translation>Wyjście</translation>
     </message>
@@ -8135,12 +6435,10 @@
 <context>
     <name>QSpinBox</name>
     <message>
-        <location filename="../src/plugins/accessible/widgets/rangecontrols.cpp" line="-569"/>
         <source>Less</source>
         <translation>Mniej</translation>
     </message>
     <message>
-        <location line="-2"/>
         <source>More</source>
         <translation>Więcej</translation>
     </message>
@@ -8148,56 +6446,42 @@
 <context>
     <name>QSql</name>
     <message>
-        <location filename="../src/qt3support/sql/q3sqlmanager_p.cpp" line="+910"/>
         <source>Cancel</source>
         <translation>Anuluj</translation>
     </message>
     <message>
-        <location line="+33"/>
         <source>Cancel your edits?</source>
         <translation>Anulować zmiany?</translation>
     </message>
     <message>
-        <location line="-1"/>
         <source>Confirm</source>
         <translation>Potwierdź</translation>
     </message>
     <message>
-        <location line="-52"/>
         <source>Delete</source>
         <translation>Skasuj</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Delete this record?</source>
         <translation>Skasować ten rekord?</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>Insert</source>
         <translation>Wstaw</translation>
     </message>
     <message>
-        <location line="-8"/>
-        <location line="+16"/>
-        <location line="+36"/>
         <source>No</source>
         <translation>Nie</translation>
     </message>
     <message>
-        <location line="-38"/>
         <source>Save edits?</source>
         <translation>Zachować zmiany?</translation>
     </message>
     <message>
-        <location line="-4"/>
         <source>Update</source>
         <translation>Uaktualnij</translation>
     </message>
     <message>
-        <location line="-11"/>
-        <location line="+16"/>
-        <location line="+36"/>
         <source>Yes</source>
         <translation>Tak</translation>
     </message>
@@ -8205,178 +6489,142 @@
 <context>
     <name>QSslSocket</name>
     <message>
-        <location filename="../src/network/ssl/qsslsocket_openssl.cpp" line="+837"/>
         <source>Unable to write data: %1</source>
         <translation></translation>
     </message>
     <message>
-        <location line="+63"/>
         <source>Unable to decrypt data: %1</source>
         <translation>Nie można odszyfrować danych: %1</translation>
     </message>
     <message>
-        <location line="+78"/>
-        <location line="+10"/>
         <source>Error while reading: %1</source>
         <translation>Błąd podczas czytania: %1</translation>
     </message>
     <message>
-        <location line="+96"/>
         <source>Error during SSL handshake: %1</source>
         <translation>Błąd podczas nawiązania sesji SSL: %1</translation>
     </message>
     <message>
-        <location line="-812"/>
         <source>Error creating SSL context (%1)</source>
         <translation>Błąd tworzenia kontekstu (%1)</translation>
     </message>
     <message>
-        <location line="+25"/>
         <source>Invalid or empty cipher list (%1)</source>
         <translation>Niepoprawna lub pusta lista szyfrów (%1)</translation>
     </message>
     <message>
-        <location line="+57"/>
         <source>Private key does not certify public key, %1</source>
         <translation>Prywatny klucz nie uwiarygodnia publicznego, %1</translation>
     </message>
     <message>
-        <location line="+20"/>
         <source>Error creating SSL session, %1</source>
         <translation>Błąd tworzenia sesji SSL, %1</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Error creating SSL session: %1</source>
         <translation>Błąd tworzenia sesji SSL: %1</translation>
     </message>
     <message>
-        <location line="-64"/>
         <source>Cannot provide a certificate with no key, %1</source>
         <translation>Nie można dostarczyć certyfikatu bez klucza, %1</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Error loading local certificate, %1</source>
         <translation>Błąd ładowania lokalnego certyfikatu, %1</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Error loading private key, %1</source>
         <translation>Błąd ładowania prywatnego klucza, %1</translation>
     </message>
     <message>
-        <location filename="../src/network/ssl/qsslerror.cpp" line="+213"/>
         <source>No error</source>
         <translation>Brak błędu</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>The issuer certificate could not be found</source>
         <translation>Nie można odnaleźć wydawcy certyfikatu</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>The certificate signature could not be decrypted</source>
         <translation>Nie można odszyfrować podpisu certyfikatu</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>The public key in the certificate could not be read</source>
         <translation>Nie można odczytać publicznego klucza w certyfikacie</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>The signature of the certificate is invalid</source>
         <translation>Niepoprawny podpis certyfikatu</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>The certificate is not yet valid</source>
         <translation>Certyfikat nie jest jeszcze ważny</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>The certificate has expired</source>
         <translation>Certyfikat utracił ważność</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>The certificate&apos;s notBefore field contains an invalid time</source>
         <translation>Pole &quot;notBefore&quot; certyfikatu zawiera niepoprawną datę</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>The certificate&apos;s notAfter field contains an invalid time</source>
         <translation>Pole &quot;notAfter&quot; certyfikatu zawiera niepoprawną datę</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>The certificate is self-signed, and untrusted</source>
         <translation>Niewiarygodny certyfikat z podpisem własnym</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>The root certificate of the certificate chain is self-signed, and untrusted</source>
         <translation>Główny certyfikat łańcucha zaufania ma własny podpis i jest niewiarygodny</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>The issuer certificate of a locally looked up certificate could not be found</source>
         <translation>Nie można odnaleźć certyfikatu wydawcy wyszukanego lokalnie certyfikatu</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>No certificates could be verified</source>
         <translation>Nie można zweryfikować żadnych certyfikatów</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>One of the CA certificates is invalid</source>
         <translation>Jeden z certyfikatów urzędu certyfikacji jest nieprawidłowy</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>The basicConstraints path length parameter has been exceeded</source>
         <translation>Długość ścieżki określona w podstawowych warunkach ograniczających została przekroczona</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>The supplied certificate is unsuitable for this purpose</source>
         <translation>Dostarczony certyfikat jest nieodpowiedni dla tego przeznaczenia</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>The root CA certificate is not trusted for this purpose</source>
         <translation>Główny certyfikat urzędu certyfikacji nie jest wiarygodny dla tego przeznaczenia</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>The root CA certificate is marked to reject the specified purpose</source>
         <translation>Główny certyfikat urzędu certyfikacji jest wyznaczony do odrzucania podanego przeznaczenia</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>Certyfikat wydawcy obecnego kandydata został odrzucony, ponieważ nazwa podmiotu nie odpowiadała nazwie wydawcy obecnego certyfikatu</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>Certyfikat wydawcy obecnego kandydata został odrzucony, ponieważ nazwa wydawcy i przedstawiony numer seryjny nie odpowiadały identyfikatorowi klucza urzędu certyfikacji obecnego certyfikatu</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>The peer did not present any certificate</source>
         <translation>Element równorzędny nie przedstawił żadnego certyfikatu</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>The host name did not match any of the valid hosts for this certificate</source>
         <translation>Nazwa hosta nie odpowiadała żadnemu z poprawnych hostów dla tego certyfikatu</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Unknown error</source>
         <translation>Nieznany błąd</translation>
     </message>
@@ -8384,22 +6632,18 @@
 <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>Brak stanu początkowego w stanie złożonym &quot;%1&quot;</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Missing default state in history state &apos;%1&apos;</source>
         <translation>Brak domyślnego stanu w historycznym stanie &quot;%1&quot;</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>No common ancestor for targets and source of transition from state &apos;%1&apos;</source>
         <translation>Brak wspólnego przodka dla stanów docelowych i stanu źródłowego w przejściu ze stanu &quot;%1&quot;</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Unknown error</source>
         <translation>Nieznany błąd</translation>
     </message>
@@ -8407,30 +6651,22 @@
 <context>
     <name>QSystemSemaphore</name>
     <message>
-        <location filename="../src/corelib/kernel/qsystemsemaphore_unix.cpp" line="-41"/>
-        <location filename="../src/corelib/kernel/qsystemsemaphore_win.cpp" line="+66"/>
         <source>%1: out of resources</source>
         <translation>%1: zasoby wyczerpane</translation>
     </message>
     <message>
-        <location line="-13"/>
-        <location filename="../src/corelib/kernel/qsystemsemaphore_win.cpp" line="+4"/>
         <source>%1: permission denied</source>
         <translation>%1: brak uprawnień</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>%1: already exists</source>
         <translation>%1: już istnieje</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>%1: does not exist</source>
         <translation>%1: nie istnieje</translation>
     </message>
     <message>
-        <location line="+9"/>
-        <location filename="../src/corelib/kernel/qsystemsemaphore_win.cpp" line="+3"/>
         <source>%1: unknown error %2</source>
         <translation>%1: nieznany błąd %2</translation>
     </message>
@@ -8438,12 +6674,10 @@
 <context>
     <name>QTDSDriver</name>
     <message>
-        <location filename="../src/sql/drivers/tds/qsql_tds.cpp" line="+595"/>
         <source>Unable to open connection</source>
         <translation>Nie można otworzyć połączenia</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Unable to use database</source>
         <translation>Nie można użyć bazy danych</translation>
     </message>
@@ -8451,12 +6685,10 @@
 <context>
     <name>QTabBar</name>
     <message>
-        <location filename="../src/plugins/accessible/widgets/complexwidgets.cpp" line="-330"/>
         <source>Scroll Left</source>
         <translation>Przewiń w lewo</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Scroll Right</source>
         <translation>Przewiń w prawo</translation>
     </message>
@@ -8464,7 +6696,6 @@
 <context>
     <name>QTcpServer</name>
     <message>
-        <location filename="../src/network/socket/qtcpserver.cpp" line="+292"/>
         <source>Operation on socket is not supported</source>
         <translation>Operacja na gnieździe nieobsługiwana</translation>
     </message>
@@ -8472,42 +6703,34 @@
 <context>
     <name>QTextControl</name>
     <message>
-        <location filename="../src/gui/text/qtextcontrol.cpp" line="+2057"/>
         <source>&amp;Copy</source>
         <translation>S&amp;kopiuj</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Copy &amp;Link Location</source>
         <translation>Skopiuj &amp;adres odsyłacza</translation>
     </message>
     <message>
-        <location line="-12"/>
         <source>Cu&amp;t</source>
         <translation>W&amp;ytnij</translation>
     </message>
     <message>
-        <location line="+21"/>
         <source>Delete</source>
         <translation>Skasuj</translation>
     </message>
     <message>
-        <location line="-3"/>
         <source>&amp;Paste</source>
         <translation>&amp;Wklej</translation>
     </message>
     <message>
-        <location line="-22"/>
         <source>&amp;Redo</source>
         <translation>&amp;Przywróć</translation>
     </message>
     <message>
-        <location line="+32"/>
         <source>Select All</source>
         <translation>Zaznacz wszystko</translation>
     </message>
     <message>
-        <location line="-34"/>
         <source>&amp;Undo</source>
         <translation>&amp;Cofnij</translation>
     </message>
@@ -8515,14 +6738,10 @@
 <context>
     <name>QToolButton</name>
     <message>
-        <location filename="../src/plugins/accessible/widgets/simplewidgets.cpp" line="+312"/>
-        <location line="+8"/>
         <source>Open</source>
         <translation>Otwórz</translation>
     </message>
     <message>
-        <location line="-10"/>
-        <location line="+6"/>
         <source>Press</source>
         <translation>Wciśnij</translation>
     </message>
@@ -8530,7 +6749,6 @@
 <context>
     <name>QUdpSocket</name>
     <message>
-        <location filename="../src/network/socket/qudpsocket.cpp" line="+189"/>
         <source>This platform does not support IPv6</source>
         <translation>Ta platforma nie obsługuje IPv6</translation>
     </message>
@@ -8538,12 +6756,10 @@
 <context>
     <name>QUndoGroup</name>
     <message>
-        <location filename="../src/gui/util/qundogroup.cpp" line="+413"/>
         <source>Redo</source>
         <translation>Przywróć</translation>
     </message>
     <message>
-        <location line="-28"/>
         <source>Undo</source>
         <translation>Cofnij</translation>
     </message>
@@ -8551,7 +6767,6 @@
 <context>
     <name>QUndoModel</name>
     <message>
-        <location filename="../src/gui/util/qundoview.cpp" line="+101"/>
         <source>&lt;empty&gt;</source>
         <translation>&lt;pusty&gt;</translation>
     </message>
@@ -8559,12 +6774,10 @@
 <context>
     <name>QUndoStack</name>
     <message>
-        <location filename="../src/gui/util/qundostack.cpp" line="+859"/>
         <source>Redo</source>
         <translation>Przywróć</translation>
     </message>
     <message>
-        <location line="-27"/>
         <source>Undo</source>
         <translation>Cofnij</translation>
     </message>
@@ -8572,57 +6785,46 @@
 <context>
     <name>QUnicodeControlCharacterMenu</name>
     <message>
-        <location filename="../src/gui/text/qtextcontrol.cpp" line="+948"/>
         <source>Insert Unicode control character</source>
         <translation>Wstaw znak kontroli Unicode</translation>
     </message>
     <message>
-        <location line="-10"/>
         <source>LRE Start of left-to-right embedding</source>
         <translation>LRE Początek osadzania od lewej do prawej</translation>
     </message>
     <message>
-        <location line="-5"/>
         <source>LRM Left-to-right mark</source>
         <translation>LRM znacznik od prawej do lewej </translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>LRO Start of left-to-right override</source>
         <translation>LRO Początek nadpisania od lewej do prawej</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>PDF Pop directional formatting</source>
         <translation>PDF Formatowanie kierunkowe pop</translation>
     </message>
     <message>
-        <location line="-3"/>
         <source>RLE Start of right-to-left embedding</source>
         <translation>RLE Początek osadzania od prawej do lewej</translation>
     </message>
     <message>
-        <location line="-5"/>
         <source>RLM Right-to-left mark</source>
         <translation>RLM Znacznik od prawej do lewej</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>RLO Start of right-to-left override</source>
         <translation>RLO Początek nadpisania od prawej do lewej</translation>
     </message>
     <message>
-        <location line="-6"/>
         <source>ZWJ Zero width joiner</source>
         <translation>ZWJ Łącznik zerowej długości</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>ZWNJ Zero width non-joiner</source>
         <translation>ZWNJ Rozdzielnik zerowej długości</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>ZWSP Zero width space</source>
         <translation>ZWSP Przerwa zerowej długości</translation>
     </message>
@@ -8630,32 +6832,26 @@
 <context>
     <name>QWebFrame</name>
     <message>
-        <location filename="../src/3rdparty/webkit/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp" line="+753"/>
         <source>Request cancelled</source>
         <translation>Prośba anulowana</translation>
     </message>
     <message>
-        <location line="+19"/>
         <source>Request blocked</source>
         <translation>Prośba zablokowana</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Cannot show URL</source>
         <translation>Nie można pokazać URL</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Frame load interrupted by policy change</source>
         <translation>Ładowanie ramki przerwane przez zmianę strategii</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Cannot show mimetype</source>
         <translation>Nie można pokazać typu MIME</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>File does not exist</source>
         <translation>Plik nie istnieje</translation>
     </message>
@@ -8663,621 +6859,515 @@
 <context>
     <name>QWebPage</name>
     <message>
-        <location filename="../src/3rdparty/webkit/WebCore/platform/qt/Localizations.cpp" line="+44"/>
         <source>Submit</source>
         <comment>default label for Submit buttons in forms on web pages</comment>
         <translation>Wyślij</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>Wyślij</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Reset</source>
         <comment>default label for Reset buttons in forms on web pages</comment>
         <translation>Wyczyść</translation>
     </message>
     <message>
-        <location line="+16"/>
         <source>Choose File</source>
         <comment>title for file button used in HTML forms</comment>
         <translation>Wybierz plik</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>Nie zaznaczono pliku</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Open in New Window</source>
         <comment>Open in New Window context menu item</comment>
         <translation>Otwórz w nowym oknie</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Save Link...</source>
         <comment>Download Linked File context menu item</comment>
         <translation>Zachowaj odsyłacz...</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Copy Link</source>
         <comment>Copy Link context menu item</comment>
         <translation>Skopiuj odsyłacz</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Open Image</source>
         <comment>Open Image in New Window context menu item</comment>
         <translation>Otwórz obrazek</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Save Image</source>
         <comment>Download Image context menu item</comment>
         <translation>Zachowaj obrazek</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Copy Image</source>
         <comment>Copy Link context menu item</comment>
         <translation>Skopiuj obrazek</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Open Frame</source>
         <comment>Open Frame in New Window context menu item</comment>
         <translation>Otwórz ramkę</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Copy</source>
         <comment>Copy context menu item</comment>
         <translation>Skopiuj</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Go Back</source>
         <comment>Back context menu item</comment>
         <translation>Wróć</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Go Forward</source>
         <comment>Forward context menu item</comment>
         <translation>Przejdź dalej</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Stop</source>
         <comment>Stop context menu item</comment>
         <translation>Zatrzymaj</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Reload</source>
         <comment>Reload context menu item</comment>
         <translation>Przeładuj</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Cut</source>
         <comment>Cut context menu item</comment>
         <translation>Wytnij</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Paste</source>
         <comment>Paste context menu item</comment>
         <translation>Wklej</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>No Guesses Found</source>
         <comment>No Guesses Found context menu item</comment>
         <translation>Nie odnaleziono podpowiedzi</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Ignore</source>
         <comment>Ignore Spelling context menu item</comment>
         <translation>Zignoruj</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Add To Dictionary</source>
         <comment>Learn Spelling context menu item</comment>
         <translation>Dodaj do słownika</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Search The Web</source>
         <comment>Search The Web context menu item</comment>
         <translation>Wyszukaj w sieci</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Look Up In Dictionary</source>
         <comment>Look Up in Dictionary context menu item</comment>
         <translation>Poszukaj w słowniku</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Open Link</source>
         <comment>Open Link context menu item</comment>
         <translation>Otwórz odsyłacz</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Ignore</source>
         <comment>Ignore Grammar context menu item</comment>
         <translation>Zignoruj</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Spelling</source>
         <comment>Spelling and Grammar context sub-menu item</comment>
         <translation>Pisownia</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Show Spelling and Grammar</source>
         <comment>menu item title</comment>
         <translation>Pokaż pisownię i gramatykę</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Hide Spelling and Grammar</source>
         <comment>menu item title</comment>
         <translation>Schowaj pisownię i gramatykę</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Check Spelling</source>
         <comment>Check spelling context menu item</comment>
         <translation>Sprawdź pisownię</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Check Spelling While Typing</source>
         <comment>Check spelling while typing context menu item</comment>
         <translation>Sprawdzaj pisownię podczas pisania</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Check Grammar With Spelling</source>
         <comment>Check grammar with spelling context menu item</comment>
         <translation>Sprawdzaj gramatykę wraz z pisownią</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Fonts</source>
         <comment>Font context sub-menu item</comment>
         <translation>Czcionki</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Bold</source>
         <comment>Bold context menu item</comment>
         <translation>Pogrubiony</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Italic</source>
         <comment>Italic context menu item</comment>
         <translation>Kursywa</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Underline</source>
         <comment>Underline context menu item</comment>
         <translation>Podkreślenie</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Outline</source>
         <comment>Outline context menu item</comment>
         <translation>Kontur</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Direction</source>
         <comment>Writing direction context sub-menu item</comment>
         <translation>Kierunek</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Text Direction</source>
         <comment>Text direction context sub-menu item</comment>
         <translation>Kierunek tekstu</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Default</source>
         <comment>Default writing direction context menu item</comment>
         <translation>Domyślny</translation>
     </message>
     <message>
-        <location line="+110"/>
         <source>Missing Plug-in</source>
         <comment>Label text to be used when a plug-in is missing</comment>
         <translation>Brakująca wtyczka</translation>
     </message>
     <message>
-        <location line="+20"/>
         <source>Loading...</source>
         <comment>Media controller status message when the media is loading</comment>
         <translation>Ładowanie...</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Live Broadcast</source>
         <comment>Media controller status message when watching a live broadcast</comment>
         <translation>Transmisja na żywo</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Audio Element</source>
         <comment>Media controller element</comment>
         <translation>Element dźwiękowy</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Video Element</source>
         <comment>Media controller element</comment>
         <translation>Element wideo</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Mute Button</source>
         <comment>Media controller element</comment>
         <translation>Przycisk wyłączania głosu</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Unmute Button</source>
         <comment>Media controller element</comment>
         <translation>Przycisk włączania głosu</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Play Button</source>
         <comment>Media controller element</comment>
         <translation>Przycisk odtwarzania</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Pause Button</source>
         <comment>Media controller element</comment>
         <translation>Przycisk pauzy</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Slider</source>
         <comment>Media controller element</comment>
         <translation>Suwak</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Slider Thumb</source>
         <comment>Media controller element</comment>
         <translation>Uchwyt suwaka</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Rewind Button</source>
         <comment>Media controller element</comment>
         <translation>Przycisk przewijania</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Return to Real-time Button</source>
         <comment>Media controller element</comment>
         <translation>Przycisk powrotu do czasu rzeczywistego</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Elapsed Time</source>
         <comment>Media controller element</comment>
         <translation>Czas który upłynął</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Remaining Time</source>
         <comment>Media controller element</comment>
         <translation>Czas który pozostał</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Status Display</source>
         <comment>Media controller element</comment>
         <translation>Wyświetlacz stanu</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Fullscreen Button</source>
         <comment>Media controller element</comment>
         <translation>Przycisk trybu pełnoekranowego</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Seek Forward Button</source>
         <comment>Media controller element</comment>
         <translation>Przycisk przeszukiwania do przodu</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Seek Back Button</source>
         <comment>Media controller element</comment>
         <translation>Przycisk przeszukiwania do tyłu</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Audio element playback controls and status display</source>
         <comment>Media controller element</comment>
         <translation>Kontrolki odtwarzania dźwięku i wyświetlacz stanu</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Video element playback controls and status display</source>
         <comment>Media controller element</comment>
         <translation>Kontrolki odtwarzania wideo i wyświetlacz stanu</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Mute audio tracks</source>
         <comment>Media controller element</comment>
         <translation>Wyłącz ścieżkę dźwiękową</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Unmute audio tracks</source>
         <comment>Media controller element</comment>
         <translation>Włącz ścieżkę dźwiękową</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Begin playback</source>
         <comment>Media controller element</comment>
         <translation>Rozpocznij odtwarzanie</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Pause playback</source>
         <comment>Media controller element</comment>
         <translation>Zatrzymaj odtwarzanie</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Movie time scrubber</source>
         <comment>Media controller element</comment>
         <translation>Suwak czasu</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Movie time scrubber thumb</source>
         <comment>Media controller element</comment>
         <translation>Uchwyt suwaka czasu</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Rewind movie</source>
         <comment>Media controller element</comment>
         <translation>Przewiń film</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Return streaming movie to real-time</source>
         <comment>Media controller element</comment>
         <translation>Przywróć przesyłanie filmu do czasu rzeczywistego</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Current movie time</source>
         <comment>Media controller element</comment>
         <translation>Czas bieżącego filmu</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Remaining movie time</source>
         <comment>Media controller element</comment>
         <translation>Czas do końca filmu</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Current movie status</source>
         <comment>Media controller element</comment>
         <translation>Stan bieżącego filmu</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Play movie in full-screen mode</source>
         <comment>Media controller element</comment>
         <translation>Odtwarzaj film w trybie pełnoekranowym</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Seek quickly back</source>
         <comment>Media controller element</comment>
         <translation>Przeszukaj szybko do tyłu</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Seek quickly forward</source>
         <comment>Media controller element</comment>
         <translation>Przeszukaj szybko do przodu</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Indefinite time</source>
         <comment>Media time description</comment>
         <translation>Nieokreślony czas</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>%1 days %2 hours %3 minutes %4 seconds</source>
         <comment>Media time description</comment>
         <translation>%1 dni %2 godzin %3 minut %4 sekund</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>%1 hours %2 minutes %3 seconds</source>
         <comment>Media time description</comment>
         <translation>%1 godzin %2 minut %3 sekund</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>%1 minutes %2 seconds</source>
         <comment>Media time description</comment>
         <translation>%1 minut %2 sekund</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>%1 seconds</source>
         <comment>Media time description</comment>
         <translation>%1 sekund</translation>
     </message>
     <message>
-        <location line="-225"/>
         <source>Inspect</source>
         <comment>Inspect Element context menu item</comment>
         <translation>Zwiedzaj</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>Brak ostatnich wyszukiwań</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>Ostatnie wyszukiwania</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>Wyczyść ostatnie wyszukiwania</translation>
     </message>
     <message>
-        <location line="+90"/>
         <source>Unknown</source>
         <comment>Unknown filesize FTP directory listing item</comment>
         <translation>Nieznany</translation>
     </message>
     <message>
-        <location filename="../src/3rdparty/webkit/WebKit/qt/WebCoreSupport/InspectorClientQt.cpp" line="+256"/>
         <source>Web Inspector - %2</source>
         <translation>Wizytator sieciowy - %2</translation>
     </message>
     <message>
-        <location filename="../src/3rdparty/webkit/WebCore/platform/network/qt/QNetworkReplyHandler.cpp" line="+355"/>
         <source>Redirection limit reached</source>
         <translation>Osiągnięto limit przekierowań</translation>
     </message>
     <message>
-        <location line="+121"/>
         <source>Bad HTTP request</source>
         <translation>Niepoprawna komenda HTTP</translation>
     </message>
     <message>
-        <location filename="../src/3rdparty/webkit/WebCore/platform/qt/Localizations.cpp" line="-301"/>
         <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>To jest indeks wyszukiwawczy. Podaj słowa do wyszukania:</translation>
     </message>
     <message>
-        <location line="+186"/>
         <source>Left to Right</source>
         <comment>Left to Right context menu item</comment>
         <translation>Z lewej na prawą</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Right to Left</source>
         <comment>Right to Left context menu item</comment>
         <translation>Z prawej na lewą</translation>
     </message>
     <message>
-        <location line="+115"/>
         <source>%1 (%2x%3 pixels)</source>
         <comment>Title string for images</comment>
         <translation>%1 (%2x%3 piksli)</translation>
     </message>
     <message>
-        <location filename="../src/3rdparty/webkit/WebCore/platform/qt/ScrollbarQt.cpp" line="+58"/>
         <source>Scroll here</source>
         <translation>Przewiń tutaj</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Left edge</source>
         <translation>Lewa krawędź</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Top</source>
         <translation>Do góry</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Right edge</source>
         <translation>Prawa krawędź</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Bottom</source>
         <translation>W dół</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Page left</source>
         <translation>Strona w lewo</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Page up</source>
         <translation>Strona do góry</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Page right</source>
         <translation>Strona w prawo</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Page down</source>
         <translation>Strona w dół</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Scroll left</source>
         <translation>Przewiń w lewo</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Scroll up</source>
         <translation>Przewiń do góry</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Scroll right</source>
         <translation>Przewiń w prawo</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Scroll down</source>
         <translation>Przewiń w dół</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>
@@ -9287,237 +7377,190 @@
         </translation>
     </message>
     <message>
-        <location filename="../src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp" line="+2083"/>
         <source>JavaScript Alert - %1</source>
         <translation>Ostrzeżenie JavaScript - %1</translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>JavaScript Confirm - %1</source>
         <translation>Potwierdzenie JavaScript - %1</translation>
     </message>
     <message>
-        <location line="+20"/>
         <source>JavaScript Prompt - %1</source>
         <translation>Zachęta JavaScript - %1</translation>
     </message>
     <message>
-        <location line="+26"/>
         <source>JavaScript Problem - %1</source>
         <translation>Problem JavaScript - %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>Skrypt na tej stronie nie działa poprawnie. Czy chcesz przerwać ten skrypt?</translation>
     </message>
     <message>
-        <location line="+395"/>
         <source>Move the cursor to the next character</source>
         <translation>Przesuń kursor do następnego znaku</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Move the cursor to the previous character</source>
         <translation>Przesuń kursor do poprzedniego znaku</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Move the cursor to the next word</source>
         <translation>Przesuń kursor do następnego słowa</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Move the cursor to the previous word</source>
         <translation>Przesuń kursor do poprzedniego słowa</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Move the cursor to the next line</source>
         <translation>Przesuń kursor do następnej linii</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Move the cursor to the previous line</source>
         <translation>Przesuń kursor do poprzedniej linii</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Move the cursor to the start of the line</source>
         <translation>Przesuń kursor do początku linii</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Move the cursor to the end of the line</source>
         <translation>Przesuń kursor do końca linii</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Move the cursor to the start of the block</source>
         <translation>Przesuń kursor do początku bloku</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Move the cursor to the end of the block</source>
         <translation>Przesuń kursor do końca bloku</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Move the cursor to the start of the document</source>
         <translation>Przesuń kursor do początku dokumentu</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Move the cursor to the end of the document</source>
         <translation>Przesuń kursor do końca dokumentu</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Select all</source>
         <translation>Zaznacz wszystko</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Select to the next character</source>
         <translation>Zaznacz do następnego znaku</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Select to the previous character</source>
         <translation>Zaznacz do poprzedniego znaku</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Select to the next word</source>
         <translation>Zaznacz do następnego słowa</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Select to the previous word</source>
         <translation>Zaznacz do poprzedniego słowa</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Select to the next line</source>
         <translation>Zaznacz do następnej linii</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Select to the previous line</source>
         <translation>Zaznacz do poprzedniej linii</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Select to the start of the line</source>
         <translation>Zaznacz do początku linii</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Select to the end of the line</source>
         <translation>Zaznacz do końca linii</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Select to the start of the block</source>
         <translation>Zaznacz do początku bloku</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Select to the end of the block</source>
         <translation>Zaznacz do końca bloku</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Select to the start of the document</source>
         <translation>Zaznacz do początku dokumentu</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Select to the end of the document</source>
         <translation>Zaznacz do końca dokumentu</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Delete to the start of the word</source>
         <translation>Skasuj do początku słowa</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Delete to the end of the word</source>
         <translation>Skasuj do końca słowa</translation>
     </message>
     <message>
-        <location line="+33"/>
         <source>Insert a new paragraph</source>
         <translation>Wstaw nowy paragraf</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Insert a new line</source>
         <translation>Wstaw nową linię</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Paste and Match Style</source>
         <translation>Wklej i dopasuj styl</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Remove formatting</source>
         <translation>Usuń formatowanie</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Strikethrough</source>
         <translation>Przekreślenie</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Subscript</source>
         <translation>Indeks dolny</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Superscript</source>
         <translation>Indeks górny</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Insert Bulleted List</source>
         <translation>Wstaw listę wypunktowaną</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Insert Numbered List</source>
         <translation>Wstaw listę ponumerowaną</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Indent</source>
         <translation>Zwiększ wcięcie</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Outdent</source>
         <translation>Zmniejsz wcięcie</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Center</source>
         <translation>Wyśrodkuj</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Justify</source>
         <translation>Wyjustuj</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Align Left</source>
         <translation>Wyrównaj do lewej</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Align Right</source>
         <translation>Wyrównaj do prawej</translation>
     </message>
@@ -9525,7 +7568,6 @@
 <context>
     <name>QWhatsThisAction</name>
     <message>
-        <location filename="../src/gui/kernel/qwhatsthis.cpp" line="+527"/>
         <source>What&apos;s This?</source>
         <translation>Co to jest?</translation>
     </message>
@@ -9533,7 +7575,6 @@
 <context>
     <name>QWidget</name>
     <message>
-        <location filename="../src/gui/kernel/qwidget.cpp" line="+5856"/>
         <source>*</source>
         <translation>*</translation>
     </message>
@@ -9541,57 +7582,46 @@
 <context>
     <name>QWizard</name>
     <message>
-        <location filename="../src/gui/dialogs/qwizard.cpp" line="+689"/>
         <source>Go Back</source>
         <translation>Wróć</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Continue</source>
         <translation>Kontynuuj</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Commit</source>
         <translation>Dokonaj</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Done</source>
         <translation>Zrobione</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Help</source>
         <translation>Pomoc</translation>
     </message>
     <message>
-        <location line="-14"/>
         <source>&lt; &amp;Back</source>
         <translation>&lt; &amp;Wstecz</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>&amp;Finish</source>
         <translation>&amp;Zakończ</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Cancel</source>
         <translation>Anuluj</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>&amp;Help</source>
         <translation>&amp;Pomoc</translation>
     </message>
     <message>
-        <location line="-8"/>
         <source>&amp;Next</source>
         <translation>&amp;Dalej</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>&amp;Next &gt;</source>
         <translation>&amp;Dalej &gt;</translation>
     </message>
@@ -9599,69 +7629,54 @@
 <context>
     <name>QWorkspace</name>
     <message>
-        <location filename="../src/gui/widgets/qworkspace.cpp" line="+1887"/>
-        <location line="+60"/>
         <source>%1 - [%2]</source>
         <translation>%1 - [%2]</translation>
     </message>
     <message>
-        <location line="-1834"/>
         <source>Close</source>
         <translation>Zamknij</translation>
     </message>
     <message>
-        <location line="+984"/>
         <source>&amp;Close</source>
         <translation>&amp;Zamknij</translation>
     </message>
     <message>
-        <location line="-2"/>
         <source>Ma&amp;ximize</source>
         <translation>Zma&amp;ksymalizuj</translation>
     </message>
     <message>
-        <location line="-980"/>
         <source>Minimize</source>
         <translation>Zminimalizuj</translation>
     </message>
     <message>
-        <location line="+978"/>
         <source>Mi&amp;nimize</source>
         <translation>Zmi&amp;nimalizuj</translation>
     </message>
     <message>
-        <location line="-3"/>
         <source>&amp;Move</source>
         <translation>&amp;Przenieś</translation>
     </message>
     <message>
-        <location line="-1"/>
         <source>&amp;Restore</source>
         <translation>&amp;Przywróć</translation>
     </message>
     <message>
-        <location line="-972"/>
         <source>Restore Down</source>
         <translation>Przywróć pod spód</translation>
     </message>
     <message>
-        <location line="+989"/>
-        <location line="+1059"/>
         <source>Sh&amp;ade</source>
         <translation>&amp;Zwiń</translation>
     </message>
     <message>
-        <location line="-1074"/>
         <source>&amp;Size</source>
         <translation>&amp;Rozmiar</translation>
     </message>
     <message>
-        <location line="+12"/>
         <source>Stay on &amp;Top</source>
         <translation>Pozostaw na &amp;wierzchu</translation>
     </message>
     <message>
-        <location line="+1058"/>
         <source>&amp;Unshade</source>
         <translation>R&amp;ozwiń</translation>
     </message>
@@ -9669,117 +7684,94 @@
 <context>
     <name>QXml</name>
     <message>
-        <location filename="../src/xml/sax/qxml.cpp" line="+69"/>
         <source>encoding declaration or standalone declaration expected while reading the XML declaration</source>
         <translation>oczekiwano deklaracji &quot;encoding&quot; lub &quot;standalone&quot; podczas odczytywania deklaracji XML</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>error in the text declaration of an external entity</source>
         <translation>błąd w deklaracji &quot;text&quot; zewnętrznej jednostki</translation>
     </message>
     <message>
-        <location line="-7"/>
         <source>error occurred while parsing comment</source>
         <translation>wystąpił błąd podczas parsowania komentarza</translation>
     </message>
     <message>
-        <location line="-9"/>
         <source>error occurred while parsing content</source>
         <translation>wystąpił błąd podczas parsowania zawartości</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>error occurred while parsing document type definition</source>
         <translation>wystąpił błąd podczas parsowania typu definicji dokumentu</translation>
     </message>
     <message>
-        <location line="-9"/>
         <source>error occurred while parsing element</source>
         <translation>wystąpił błąd podczas parsowania elementu</translation>
     </message>
     <message>
-        <location line="+12"/>
         <source>error occurred while parsing reference</source>
         <translation>wystąpił błąd podczas parsowania odwołania</translation>
     </message>
     <message>
-        <location line="-15"/>
         <source>error triggered by consumer</source>
         <translation>błąd wywołany przez konsumenta</translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>external parsed general entity reference not allowed in attribute value</source>
         <translation>odwołanie do jednostki ogólnej zewnętrznie przetworzonej nie dozwolone dla wartości atrybutu </translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>external parsed general entity reference not allowed in DTD</source>
         <translation>odwołanie do jednostki ogólnej zewnętrznie przetworzonej nie dozwolone w DTD</translation>
     </message>
     <message>
-        <location line="-2"/>
         <source>internal general entity reference not allowed in DTD</source>
         <translation>odwołanie do jednostki ogólnej wewnętrznej nie dozwolone w DTD</translation>
     </message>
     <message>
-        <location line="-9"/>
         <source>invalid name for processing instruction</source>
         <translation>niepoprawna nazwa dla instrukcji przetwarzającej</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>letter is expected</source>
         <translation>oczekiwana jest litera</translation>
     </message>
     <message>
-        <location line="-11"/>
         <source>more than one document type definition</source>
         <translation>więcej niż jedna definicja typu dokumentu</translation>
     </message>
     <message>
-        <location line="-3"/>
         <source>no error occurred</source>
         <translation>nie pojawił się żaden błąd</translation>
     </message>
     <message>
-        <location line="+21"/>
         <source>recursive entities</source>
         <translation>jednostki rekurencyjne</translation>
     </message>
     <message>
-        <location line="-9"/>
         <source>standalone declaration expected while reading the XML declaration</source>
         <translation>deklaracja &quot;standalone&quot; oczekiwana podczas czytania deklaracji XML</translation>
     </message>
     <message>
-        <location line="-7"/>
         <source>tag mismatch</source>
         <translation>niezgodny tag</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>unexpected character</source>
         <translation>nieoczekiwany znak</translation>
     </message>
     <message>
-        <location line="-5"/>
         <source>unexpected end of file</source>
         <translation>nieoczekiwany koniec pliku</translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>unparsed entity reference in wrong context</source>
         <translation>odwołanie do jednostki nieprzetworzonej w złym kontekście</translation>
     </message>
     <message>
-        <location line="-11"/>
         <source>version expected while reading the XML declaration</source>
         <translation>oczekiwano wersji podczas czytania deklaracji XML</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>wrong value for standalone declaration</source>
         <translation>błędna wartość dla deklaracji &quot;standalone&quot;</translation>
     </message>
@@ -9787,27 +7779,22 @@
 <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>Ostrzeżenie w %1, wiersz %2, kolumna %3: %4</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Warning in %1: %2</source>
         <translation>Ostrzeżenie w %1: %2</translation>
     </message>
     <message>
-        <location line="+16"/>
         <source>Unknown location</source>
         <translation>Nieznane położenie</translation>
     </message>
     <message>
-        <location line="+14"/>
         <source>Error %1 in %2, at line %3, column %4: %5</source>
         <translation>Błąd %1 w %2, wiersz %3, kolumna %4: %5</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Error %1 in %2: %3</source>
         <translation>Błąd %1 w %2: %3</translation>
     </message>
@@ -9815,184 +7802,142 @@
 <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>Dodatkowa treść na końcu dokumentu.</translation>
     </message>
     <message>
-        <location line="+271"/>
         <source>Invalid entity value.</source>
         <translation>Niepoprawna wartość jednostki.</translation>
     </message>
     <message>
-        <location line="+109"/>
         <source>Invalid XML character.</source>
         <translation>Niepoprawny znak XML.</translation>
     </message>
     <message>
-        <location line="+259"/>
         <source>Sequence &apos;]]&gt;&apos; not allowed in content.</source>
         <translation>Ciąg &apos;]]&gt;&apos; niedozwolony w treści.</translation>
     </message>
     <message>
-        <location line="+309"/>
         <source>Namespace prefix &apos;%1&apos; not declared</source>
         <translation>Przedrostek przestrzeni nazw &apos;%1&apos; nie został zadeklarowany</translation>
     </message>
     <message>
-        <location line="+78"/>
         <source>Attribute redefined.</source>
         <translation>Atrybut zdefiniowany wielokrotnie.</translation>
     </message>
     <message>
-        <location line="+115"/>
         <source>Unexpected character &apos;%1&apos; in public id literal.</source>
         <translation>Nieoczekiwany znak &apos;%1&apos; w publicznej stałej znakowej.</translation>
     </message>
     <message>
-        <location line="+28"/>
         <source>Invalid XML version string.</source>
         <translation>Niepoprawna wersja XML.</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Unsupported XML version.</source>
         <translation>Nieobsługiwana wersja XML.</translation>
     </message>
     <message>
-        <location line="+23"/>
         <source>%1 is an invalid encoding name.</source>
         <translation>%1 jest niepoprawną nazwą kodowania.</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Encoding %1 is unsupported</source>
         <translation>Kodowanie %1 jest nieobsługiwane</translation>
     </message>
     <message>
-        <location line="+16"/>
         <source>Standalone accepts only yes or no.</source>
         <translation>Tylko wartości &quot;tak&quot; lub &quot;nie&quot; są akceptowane przez &quot;standalone&quot;.</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Invalid attribute in XML declaration.</source>
         <translation>Niepoprawny atrybut w deklaracji XML.</translation>
     </message>
     <message>
-        <location line="+16"/>
         <source>Premature end of document.</source>
         <translation>Przedwczesne zakończenie dokumentu.</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Invalid document.</source>
         <translation>Niepoprawny dokument.</translation>
     </message>
     <message>
-        <location line="+40"/>
         <source>Expected </source>
         <translation>Oczekiwano </translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>, but got &apos;</source>
         <translation>, ale otrzymano &apos;</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Unexpected &apos;</source>
         <translation>Nieoczekiwany &apos;</translation>
     </message>
     <message>
-        <location line="+225"/>
         <source>Expected character data.</source>
         <translation>Oczekiwana dana znakowa.</translation>
     </message>
     <message>
-        <location filename="../src/corelib/xml/qxmlstream_p.h" line="-995"/>
         <source>Recursive entity detected.</source>
         <translation>Wykryto jednostkę rekurencyjną.</translation>
     </message>
     <message>
-        <location line="+516"/>
         <source>Start tag expected.</source>
         <translation>Oczekiwano rozpoczęcia tagu.</translation>
     </message>
     <message>
-        <location line="+222"/>
         <source>XML declaration not at start of document.</source>
         <translation>Deklaracja XML nie jest na początku dokumentu.</translation>
     </message>
     <message>
-        <location line="-31"/>
         <source>NDATA in parameter entity declaration.</source>
         <translation>NDATA w deklaracji parametru obiektu.</translation>
     </message>
     <message>
-        <location line="+34"/>
         <source>%1 is an invalid processing instruction name.</source>
         <translation>%1 jest niepoprawną nazwą instrukcji przetwarzającej.</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>Invalid processing instruction name.</source>
         <translation>Niepoprawna nazwa instrukcji przetwarzającej.</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>Niepoprawna deklaracja przestrzeni nazw.</translation>
     </message>
     <message>
-        <location filename="../src/corelib/xml/qxmlstream_p.h" line="+15"/>
         <source>Invalid XML name.</source>
         <translation>Niepoprawna nazwa XML.</translation>
     </message>
     <message>
-        <location line="+23"/>
         <source>Opening and ending tag mismatch.</source>
         <translation>Niezgodne tagi początku i końca.</translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>Reference to unparsed entity &apos;%1&apos;.</source>
         <translation>Odwołanie do nieprzetworzonej jednostki &apos;%1&apos;.</translation>
     </message>
     <message>
-        <location line="-13"/>
-        <location line="+61"/>
-        <location line="+40"/>
         <source>Entity &apos;%1&apos; not declared.</source>
         <translation>Jednostka &apos;%1&apos; nie zadeklarowana.</translation>
     </message>
     <message>
-        <location line="-26"/>
         <source>Reference to external entity &apos;%1&apos; in attribute value.</source>
         <translation>Odwołanie do zewnętrznej jednostki &apos;%1&apos; jako wartość atrybutu.</translation>
     </message>
     <message>
-        <location line="+40"/>
         <source>Invalid character reference.</source>
         <translation>Niepoprawny znak odwołania.</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>Natrafiono na niepoprawnie zakodowaną treść.</translation>
     </message>
     <message>
-        <location line="+274"/>
         <source>The standalone pseudo attribute must appear after the encoding.</source>
         <translation>Pseudo atrybut &quot;standalone&quot; musi pojawić się po &quot;encoding&quot;.</translation>
     </message>
     <message>
-        <location filename="../src/corelib/xml/qxmlstream_p.h" line="+562"/>
         <source>%1 is an invalid PUBLIC identifier.</source>
         <translation>%1 jest niepoprawnym publicznym identyfikatorem.</translation>
     </message>
@@ -10000,707 +7945,562 @@
 <context>
     <name>QtXmlPatterns</name>
     <message>
-        <location filename="../src/xmlpatterns/api/qiodevicedelegate.cpp" line="+84"/>
         <source>Network timeout.</source>
         <translation>Przekroczony czas połączenia.</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>Element %1 nie może być zserializowany ponieważ pojawił się poza elementem &quot;document&quot;.</translation>
     </message>
     <message>
-        <location line="+60"/>
         <source>Attribute %1 can&apos;t be serialized because it appears at the top level.</source>
         <translation>Atrybut %1 nie może być zserializowany ponieważ pojawił się na najwyższym poziomie.</translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/data/qabstractdatetime.cpp" line="+80"/>
         <source>Year %1 is invalid because it begins with %2.</source>
         <translation>Rok %1 jest niepoprawny ponieważ rozpoczyna się: %2.</translation>
     </message>
     <message>
-        <location line="+19"/>
         <source>Day %1 is outside the range %2..%3.</source>
         <translation>Dzień %1 jest poza zakresem %2..%3.</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Month %1 is outside the range %2..%3.</source>
         <translation>Miesiąc %1 jest poza zakresem %2..%3.</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>Overflow: Can&apos;t represent date %1.</source>
         <translation>Przepełnienie: Nie można wyrazić daty %1.</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Day %1 is invalid for month %2.</source>
         <translation>Dzień %1 jest niepoprawny dla miesiąca %2.</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>Czas 24:%1:%2:%3 jest niepoprawny. Godzina jest 24, ale minuty, sekundy i milisekundy nie są równocześnie zerami;</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>Time %1:%2:%3.%4 is invalid.</source>
         <translation>Czas %1:%2:%3.%4 jest niepoprawny.</translation>
     </message>
     <message>
-        <location line="+115"/>
         <source>Overflow: Date can&apos;t be represented.</source>
         <translation>Przepełnienie: Data nie może być wyrażona.</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>Przynajmniej jeden komponent musi być obecny.</translation>
     </message>
     <message>
-        <location line="-7"/>
         <source>At least one time component must appear after the %1-delimiter.</source>
         <translation>Przynajmniej jeden komponent musi wystąpić po nawiasie %1.</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 nie jest poprawną wartością dla typu %2.</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>W rzutowaniu %1 na %2 wartość źródłowa nie może być %3.</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>Dzielenie wartości typu %1 przez %2 (typ nienumeryczny) jest niedozwolone.</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>Dzielenie wartości typu %1 przez %2 lub %3 (plus lub minus zero) jest niedozwolone.</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>Mnożenie wartości typu %1 przez %2 lub %3 (plus lub minus nieskończoność) jest niedozwolone.</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>Wartość typu %1 nie może posiadać efektywnej wartości boolowskiej (EBV).</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>Efektywna wartość boolowska (EBV) nie może być obliczona dla sekwencji zawierającej dwie lub więcej wartości atomowe.</translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/data/qderivedinteger_p.h" line="+402"/>
         <source>Value %1 of type %2 exceeds maximum (%3).</source>
         <translation>Wartość %1 typu %2 przekracza maksimum (%3).</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Value %1 of type %2 is below minimum (%3).</source>
         <translation>Wartość %1 typu %2 jest poniżej minimum (%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>Wartość typu %1 musi zawierać parzystą liczbę cyfr. Wartość %2 nie zawiera.</translation>
     </message>
     <message>
-        <location line="+19"/>
         <source>%1 is not valid as a value of type %2.</source>
         <translation>Wartość %1 nie jest poprawna jako wartość typu %2.</translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/expr/qarithmeticexpression.cpp" line="+207"/>
         <source>Operator %1 cannot be used on type %2.</source>
         <translation>Operator %1 nie może być użyty dla typu %2.</translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>Operator %1 cannot be used on atomic values of type %2 and %3.</source>
         <translation>Operator %1 nie może być użyty dla atomowych wartości typu %2 i %3.</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>Przestrzeń nazw URI nie może być %1 w nazwie dla obliczonego atrybutu.</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>Nazwa dla wyliczonego atrybutu nie może zawierać przestrzeni nazw URI %1 z lokalną nazwą %2.</translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/expr/qcastas.cpp" line="+88"/>
         <source>Type error in cast, expected %1, received %2.</source>
         <translation>Błąd typów w rzutowaniu: oczekiwano %1, otrzymano %2.</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>Podczas rzutowania na %1 lub na typ pochodny, wartość źródłowa musi być tego samego typu lub musi być stałą znakową. Typ %2 nie jest dozwolony.</translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/expr/qcommentconstructor.cpp" line="+67"/>
         <source>A comment cannot contain %1</source>
         <translation>Komentarz nie może zawierać %1</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>A comment cannot end with a %1.</source>
         <translation>Komentarz nie może kończyć się: %1.</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>Węzeł &quot;attribute&quot; nie może być podelementem węzła &quot;document&quot;. Dlatego atrybut %1 jest w złym miejscu.</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>Moduł biblioteki nie może być bezpośrednio oceniony. On musi być zaimportowany z głównego modułu.</translation>
     </message>
     <message>
-        <location line="+40"/>
         <source>No template by name %1 exists.</source>
         <translation>Szablon o nazwie %1 nie istnieje.</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>Wartość typu %1 nie może być predykatem. Predykat musi być typu liczbowego lub Efektywną Wartość Logiczną.</translation>
     </message>
     <message>
-        <location line="+32"/>
         <source>A positional predicate must evaluate to a single numeric value.</source>
         <translation>Wynikiem predykatu pozycyjnego musi być pojedyncza wartość liczbowa.</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>Docelowa nazwa w instrukcji przetwarzania nie może być %1 w żadnej kombinacji wielkich i małych liter. Dlatego nazwa %2 jest niepoprawna.</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 nie jest poprawną nazwą docelową w instrukcji przetwarzania. Nazwa musi być wartością %2, np. %3.</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>Ostatni krok w ścieżce musi zawierać albo węzły albo wartości atomowe. Nie może zawierać obu jednocześnie.</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>Dane instrukcji przetwarzania nie mogą zawierać ciągu %1</translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/expr/qqnameconstructor.cpp" line="+82"/>
         <source>No namespace binding exists for the prefix %1</source>
         <translation>Żadna przestrzeń nazw nie jest powiązana z przedrostkiem %1</translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/expr/qqnameconstructor_p.h" line="+156"/>
         <source>No namespace binding exists for the prefix %1 in %2</source>
         <translation>Żadna przestrzeń nazw nie jest powiązana z przedrostkiem %1 w %2</translation>
     </message>
     <message>
-        <location line="+12"/>
-        <location filename="../src/xmlpatterns/functions/qqnamefns.cpp" line="+69"/>
         <source>%1 is an invalid %2</source>
         <translation>%1 jest niepoprawnym %2</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>Pierwszy argument w %1 nie może być typu %2. Musi on być typu liczbowego: xs:yearMonthDuration lub xs:dayTimeDuration.</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>Pierwszy argument w %1 nie może być typu %2. Musi on być typu: %3, %4 lub %5.</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>Drugi argument w %1 nie może być typu %2. Musi on być typu: %3, %4 lub %5.</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 nie jest poprawnym znakiem XML 1.0.</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>Jeśli oba argumenty mają przesunięcia strefowe, muszą one być takie same. %1 i %2 nie są takie same.</translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/functions/qerrorfn.cpp" line="+61"/>
         <source>%1 was called.</source>
         <translation>Wywołano %1.</translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/functions/qpatternmatchingfns.cpp" line="+94"/>
         <source>%1 must be followed by %2 or %3, not at the end of the replacement string.</source>
         <translation>Po %1 musi następować %2 lub %3, lecz nie na końcu zastępczego ciągu.</translation>
     </message>
     <message>
-        <location line="+39"/>
         <source>In the replacement string, %1 must be followed by at least one digit when not escaped.</source>
         <translation type="unfinished">W ciągu zastępczym, po %1 musi następować przynajmniej jedna cyfra</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 type="unfinished">W ciągu zastępczym, %1 może być użyte tylko do zabezpieczenia samej siebie lub %2, nigdy %3</translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/functions/qpatternplatform.cpp" line="+92"/>
         <source>%1 matches newline characters</source>
         <translation>%1 dopasowało znak nowej linii</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>%1 and %2 match the start and end of a line.</source>
         <translation>%1 i %2 dopasowały początek i koniec linii.</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Matches are case insensitive</source>
         <translation>Dopasowania uwzględniają wielkość liter</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Whitespace characters are removed, except when they appear in character classes</source>
         <translation>Spacje są usuwane z wyjątkiem kiedy pojawią się w klasach znakowych</translation>
     </message>
     <message>
-        <location line="+100"/>
         <source>%1 is an invalid regular expression pattern: %2</source>
         <translation>%1 jest niepoprawnym wzorcem wyrażenia regularnego: %2</translation>
     </message>
     <message>
-        <location line="+30"/>
         <source>%1 is an invalid flag for regular expressions. Valid flags are:</source>
         <translation>%1 jest niepoprawną flagą dla wyrażeń regularnych. Poprawnymi flagami są:</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>Jeśli pierwszy argument jest pustą sekwencją lub zerowej długości ciągiem (przy braku przestrzeni nazw), przedrostek nie może wystąpić. Podano przedrostek %1.</translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/functions/qsequencefns.cpp" line="+346"/>
         <source>It will not be possible to retrieve %1.</source>
         <translation>Nie będzie można odzyskać %1.</translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/functions/qsequencegeneratingfns.cpp" line="+266"/>
         <source>The default collection is undefined</source>
         <translation>Domyślna kolekcja jest niezdefiniowana</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>%1 cannot be retrieved</source>
         <translation>%1 nie może być odzyskane</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>Znormalizowana forma %1 nie jest obsługiwana. Obsługiwanymi formami są: %2, %3, %4 i %5 oraz pusta forma (brak normalizacji).</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>Przesunięcie strefowe musi być w zakresie %1..%2 włącznie. %3 jest poza tym zakresem.</translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/janitors/qcardinalityverifier.cpp" line="+58"/>
         <source>Required cardinality is %1; got cardinality %2.</source>
         <translation>Wymagana liczność wynosi %1; otrzymano %2.</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>Element %1 nie został dopasowany do wymaganego typu %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 jest nieznanym typem schematu.</translation>
     </message>
     <message>
-        <location line="-7254"/>
         <source>A template with name %1 has already been declared.</source>
         <translation>Szablon o nazwie %1 został już zadeklarowany.</translation>
     </message>
     <message>
-        <location line="+213"/>
         <source>Only one %1 declaration can occur in the query prolog.</source>
         <translation>Tylko jedna deklaracja %1 może się pojawić w prologu zapytania.</translation>
     </message>
     <message>
-        <location line="+188"/>
         <source>The initialization of variable %1 depends on itself</source>
         <translation>Inicjalizacja zmiennej %1 zależy od niej samej</translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/parser/qparsercontext.cpp" line="+93"/>
         <source>The variable %1 is unused</source>
         <translation>Zmienna %1 jest nieużywana</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>Wersja %1 nie jest obsługiwana. Obsługiwaną wersją XQuery jest wersja 1.0.</translation>
     </message>
     <message>
-        <location line="+71"/>
         <source>No function with signature %1 is available</source>
         <translation>Żadna funkcja w postaci %1 nie jest dostępna</translation>
     </message>
     <message>
-        <location line="+303"/>
         <source>It is not possible to redeclare prefix %1.</source>
         <translation>Nie jest możliwe ponowne zadeklarowanie przedrostka %1.</translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>Prefix %1 is already declared in the prolog.</source>
         <translation>Przedrostek %1 jest już zadeklarowany w prologu.</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>Nazwa opcji musi posiadać przedrostek. Nie istnieje domyślna przestrzeń nazw dla opcji.</translation>
     </message>
     <message>
-        <location line="+171"/>
         <source>The Schema Import feature is not supported, and therefore %1 declarations cannot occur.</source>
         <translation>Cecha &quot;Import schematu&quot; nie jest obsługiwana, dlatego deklaracje %1 nie mogą pojawić.</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>The target namespace of a %1 cannot be empty.</source>
         <translation>Docelowa przestrzeń nazw dla %1 nie może być pusta.</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>The module import feature is not supported</source>
         <translation>Cecha &quot;Import modułu&quot; nie jest obsługiwana</translation>
     </message>
     <message>
-        <location line="+166"/>
         <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>Przestrzeń nazw %1 jest zarezerwowana, dlatego funkcje zdefiniowane przez użytkownika nie mogą jej użyć. Spróbuj predefiniowany przedrostek %2, który istnieje w takich przypadkach.</translation>
     </message>
     <message>
-        <location line="+12"/>
         <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>Przestrzeń nazw dla funkcji zdefiniowanej przez użytkownika w module bibliotecznym musi odpowiadać przestrzeni nazw modułu. Powinna to być %1 zamiast %2</translation>
     </message>
     <message>
-        <location line="+34"/>
         <source>A function already exists with the signature %1.</source>
         <translation>Funkcja w postaci %1 już istnieje.</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>Zewnętrzne funkcje nie są obsługiwane. Wszystkie obsługiwane funkcje mogą być używane bezpośrednio, bez ich uprzedniego deklarowania jako zewnętrzne</translation>
     </message>
     <message>
-        <location line="+493"/>
         <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>Nazwa zmiennej powiązanej w wyrażeniu &quot;for&quot; musi być inna od zmiennej pozycjonującej. W związku z tym dwie zmienne o nazwie %1 kolidują ze sobą.</translation>
     </message>
     <message>
-        <location line="+778"/>
         <source>The Schema Validation Feature is not supported. Hence, %1-expressions may not be used.</source>
         <translation>Cecha &quot;Walidacja schematu&quot; nie jest obsługiwana. Dlatego też wyrażenia %1 nie mogą być użyte.</translation>
     </message>
     <message>
-        <location line="+40"/>
         <source>None of the pragma expressions are supported. Therefore, a fallback expression must be present</source>
         <translation>Wyrażenia &quot;pragma&quot; nie są obsługiwane. Dlatego musi wystąpić wyrażenie zastępcze</translation>
     </message>
     <message>
-        <location line="+398"/>
         <source>The %1-axis is unsupported in XQuery</source>
         <translation>Oś %1 nie jest obsługiwana w XQuery</translation>
     </message>
     <message>
-        <location line="-5902"/>
         <source>%1 is not a valid numeric literal.</source>
         <translation>%1 nie jest poprawną stałą liczbową.</translation>
     </message>
     <message>
-        <location line="-152"/>
         <source>W3C XML Schema identity constraint selector</source>
         <translation>Selektor narzucenia niepowtarzalności W3C XML Schema</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>W3C XML Schema identity constraint field</source>
         <translation>Pole narzucenia niepowtarzalności W3C XML Schema</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>A construct was encountered which is disallowed in the current language(%1).</source>
         <translation>Wystąpiła konstrukcja która jest niedozwolona w bieżącym języku (%1).</translation>
     </message>
     <message>
-        <location line="+3700"/>
         <source>The keyword %1 cannot occur with any other mode name.</source>
         <translation>Słowo kluczowe %1 nie może wystąpić z inną nazwą trybu.</translation>
     </message>
     <message>
-        <location line="-3117"/>
         <source>No variable with name %1 exists</source>
         <translation>Zmienna o nazwie %1 nie istnieje</translation>
     </message>
     <message>
-        <location line="+3146"/>
         <source>The value of attribute %1 must be of type %2, which %3 isn&apos;t.</source>
         <translation>Wartość atrybutu %1 musi być typu %2, którym nie jest %3.</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>Przedrostek %1 nie może być powiązany. Jest on domyślnie powiązany z przestrzenią nazw %2.</translation>
     </message>
     <message>
-        <location line="+312"/>
         <source>A variable with name %1 has already been declared.</source>
         <translation>Zmienna o nazwie %1 została już zadeklarowana.</translation>
     </message>
     <message>
-        <location line="+39"/>
         <source>No value is available for the external variable with name %1.</source>
         <translation>Brak wartości dla zewnętrznej zmiennej o nazwie %1.</translation>
     </message>
     <message>
-        <location line="+96"/>
         <source>A stylesheet function must have a prefixed name.</source>
         <translation>Funkcja arkusza stylu musi zawierać nazwę z przedrostkiem.</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>The namespace for a user defined function cannot be empty (try the predefined prefix %1 which exists for cases like this)</source>
         <translation>Przestrzeń nazw dla funkcji zdefiniowanej przez użytkownika nie może być pusta (spróbuj predefiniowany przedrostek %1, który stworzono specjalnie do takich sytuacji)</translation>
     </message>
     <message>
-        <location line="+115"/>
         <source>An argument with name %1 has already been declared. Every argument name must be unique.</source>
         <translation>Argument o nazwie %1 został już zadeklarowany. Każda nazwa argumentu musi być unikatowa.</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>Gdy funkcja %1 jest wykorzystana do dopasowania wewnątrz wzorca, jej argument musi być referencją do zmiennej lub stałą znakową.</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>We wzorze XSL-T pierwszy argument w funkcji %1 musi być stałą znakową podczas dopasowywania.</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>We wzorze XSL-T pierwszy argument w funkcji %1 musi być stałą znakową lub nazwą zmiennej podczas dopasowywania.</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>In an XSL-T pattern, function %1 cannot have a third argument.</source>
         <translation>We wzorze XSL-T funkcja %1 nie może zawierać trzeciego argumentu.</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>We wzorze XSL-T tylko funkcje %1 i %2 mogą być użyte do dopasowania, zaś funkcja %3 nie.</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>We wzorze XSL-T tylko osie %2 i %3 mogą być użyte, zaś oś %1 nie.</translation>
     </message>
     <message>
-        <location line="+126"/>
         <source>%1 is an invalid template mode name.</source>
         <translation>%1 nie jest poprawną nazwa trybu szablonu.</translation>
     </message>
     <message>
-        <location line="+1131"/>
         <source>Each name of a template parameter must be unique; %1 is duplicated.</source>
         <translation>Każda nazwa parametru szablonu musi być unikatowa; %1 się powtarza.</translation>
     </message>
     <message>
-        <location line="+462"/>
         <source>No function with name %1 is available.</source>
         <translation>Żadna funkcja o nazwie %1 nie jest dostępna.</translation>
     </message>
     <message>
-        <location line="+250"/>
         <source>An attribute with name %1 has already appeared on this element.</source>
         <translation>Atrybut o nazwie %1 już się pojawił w tym elemencie.</translation>
     </message>
     <message>
-        <location line="-148"/>
         <source>The namespace URI cannot be the empty string when binding to a prefix, %1.</source>
         <translation>Przestrzeń nazw URI nie może być pustym ciągiem w powiązaniu z przedrostkiem, %1.</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>%1 is an invalid namespace URI.</source>
         <translation>%1 jest niepoprawną przestrzenią nazw URI.</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>It is not possible to bind to the prefix %1</source>
         <translation>Nie jest możliwe powiązanie z przedrostkiem %1</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Namespace %1 can only be bound to %2 (and it is, in either case, pre-declared).</source>
         <translation>Przestrzeń nazw %1 może być jedynie powiązana z %2 (w przeciwnym wypadku jest ona domyślnie zadeklarowana).</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>Przedrostek %1 może być jedynie powiązany z %2 (w przeciwnym wypadku jest on domyślnie zadeklarowany).</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Two namespace declaration attributes have the same name: %1.</source>
         <translation>Atrybuty deklaracji przestrzeni nazw mają tą samą nazwę: %1.</translation>
     </message>
     <message>
-        <location line="+89"/>
         <source>The namespace URI must be a constant and cannot use enclosed expressions.</source>
         <translation>Przestrzeń nazw URI nie może być stałą i nie może używać zawartych w niej wyrażeń.</translation>
     </message>
     <message>
-        <location line="+77"/>
         <source>A direct element constructor is not well-formed. %1 is ended with %2.</source>
         <translation>Konstruktor elementu bezpośredniego nie jest dobrze sformatowany. %1 jest zakończony %2.</translation>
     </message>
     <message>
-        <location line="+458"/>
         <source>The name %1 does not refer to any schema type.</source>
         <translation>Nazwa %1 nie odpowiada żadnemu typowi schematu.</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 jest typem złożonym. Rzutowanie na typy złożone nie jest możliwe. Jednakże rzutowanie na typy atomowe np.: %2 jest dozwolone.</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>%1 is not an atomic type. Casting is only possible to atomic types.</source>
         <translation>%1 nie jest typem atomowym. Możliwe jest rzutowanie tylko na typy atomowe.</translation>
     </message>
     <message>
-        <location line="+76"/>
         <source>%1 is not a valid name for a processing-instruction.</source>
         <translation>%1 nie jest poprawną nazwą dla instrukcji przetwarzającej.</translation>
     </message>
     <message>
-        <location line="+69"/>
-        <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 nie jest wewnątrz zakresu deklaracji atrybutów. Zwróć uwagę że importowanie schematów nie jest obsługiwane.</translation>
     </message>
     <message>
-        <location line="+48"/>
         <source>The name of an extension expression must be in a namespace.</source>
         <translation>Nazwa dodatkowego wyrażenia musi znajdować sie w przestrzeni nazw.</translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/type/qcardinality.cpp" line="+55"/>
         <source>empty</source>
         <translation>pusty</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>zero or one</source>
         <translation>zero lub jeden</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>exactly one</source>
         <translation>dokładnie jeden</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>one or more</source>
         <translation>jeden lub więcej</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>zero or more</source>
         <translation>zero lub więcej</translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/type/qtypechecker.cpp" line="+63"/>
         <source>Required type is %1, but %2 was found.</source>
         <translation>Odnaleziono typ %2, lecz wymaganym typem jest %1.</translation>
     </message>
     <message>
-        <location line="+44"/>
         <source>Promoting %1 to %2 may cause loss of precision.</source>
         <translation>Przekształcenie %1 do %2 może spowodować utratę precyzji.</translation>
     </message>
     <message>
-        <location line="+49"/>
         <source>The focus is undefined.</source>
         <translation>Fokus jest niezdefiniowany.</translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/utils/qoutputvalidator.cpp" line="+86"/>
         <source>It&apos;s not possible to add attributes after any other kind of node.</source>
         <translation>Dodanie atrybutu poza węzłami nie jest możliwe.</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>An attribute by name %1 has already been created.</source>
         <translation>Atrybut o nazwie %1 został już utworzony.</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>Obsługiwane jest jedynie &quot;Unicode Codepoint Collation&quot; (%1), %2 nie jest obsługiwane.</translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/data/qatomicmathematicians.cpp" line="-180"/>
         <source>Integer division (%1) by zero (%2) is undefined.</source>
         <translation>Dzielenie w dziedzinie liczb całkowitych (%1) przez zero (%2) jest niezdefiniowane.</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Division (%1) by zero (%2) is undefined.</source>
         <translation>Dzielenie (%1) przez zero (%2) jest niezdefiniowane.</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Modulus division (%1) by zero (%2) is undefined.</source>
         <translation>Dzielenie modulo (%1) przez zero (%2) jest niezdefiniowane.</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 przyjmuje co najwyżej %n argument. %2 jest dlatego niepoprawne.</numerusform>
@@ -10709,7 +8509,6 @@
         </translation>
     </message>
     <message numerus="yes">
-        <location line="+11"/>
         <source>%1 requires at least %n argument(s). %2 is therefore invalid.</source>
         <translation>
             <numerusform>%1 wymaga przynajmniej %n argumentu. %2 jest dlatego niepoprawne.</numerusform>
@@ -10718,1651 +8517,1255 @@
         </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>Głównym węzłem drugiego argumentu w funkcji %1 musi być węzeł &quot;document&quot;. %2 nie jest węzłem &quot;document&quot;.</translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/functions/qtimezonefns.cpp" line="+12"/>
         <source>%1 is not a whole number of minutes.</source>
         <translation>%1 nie jest całkowitą liczbą minut.</translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/parser/qquerytransformparser.cpp" line="-3992"/>
         <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>Enkodowanie %1 jest niepoprawne. Może ono zawierać jedynie znaki alfabetu łacińskiego, nie może zawierać spacji i musi być dopasowane do wyrażenia regularnego %2.</translation>
     </message>
     <message>
-        <location line="+127"/>
-        <location line="+10"/>
         <source>A default namespace declaration must occur before function, variable, and option declarations.</source>
         <translation>Domyślna deklaracja przestrzeni nazw musi pojawić się przed deklaracjami funkcji, zmiennych i opcji.</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>Namespace declarations must occur before function, variable, and option declarations.</source>
         <translation>Deklaracje przestrzeni nazw muszą pojawić się przed deklaracjami funkcji, zmiennych i opcji.</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>Module imports must occur before function, variable, and option declarations.</source>
         <translation>Importy modułów muszą pojawić się przed deklaracjami funkcji, zmiennych i opcji.</translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/acceltree/qacceltreeresourceloader.cpp" line="+344"/>
         <source>%1 is an unsupported encoding.</source>
         <translation>Nieobsługiwane kodowanie %1.</translation>
     </message>
     <message>
-        <location line="+16"/>
         <source>%1 contains octets which are disallowed in the requested encoding %2.</source>
         <translation>%1 zawiera bity które są niedozwolone w zażądanym kodowaniu %2.</translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>The codepoint %1, occurring in %2 using encoding %3, is an invalid XML character.</source>
         <translation>Kod %1 który pojawił się w %2 i który używa kodowania %3 jest niepoprawnym znakiem XML.</translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/expr/qapplytemplate.cpp" line="+119"/>
         <source>Ambiguous rule match.</source>
         <translation>Dopasowano niejednoznaczną regułę.</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>W konstruktorze przestrzeni nazw wartość przestrzeni nazw nie może być pustym ciągiem.</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>The prefix must be a valid %1, which %2 is not.</source>
         <translation>Przedrostek musi być poprawnym %1, którym %2 nie jest.</translation>
     </message>
     <message>
-        <location line="+14"/>
         <source>The prefix %1 cannot be bound.</source>
         <translation>Przedrostek %1 nie może być powiązany.</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>Only the prefix %1 can be bound to %2 and vice versa.</source>
         <translation>Tylko przedrostek %1 może być powiązany z %2 i vice versa.</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>Wymagany jest parametr %1 lecz żaden odpowiadający mu  %2 nie został dostarczony.</translation>
     </message>
     <message>
-        <location line="-71"/>
         <source>The parameter %1 is passed, but no corresponding %2 exists.</source>
         <translation>Przekazany jest parametr %1 lecz żaden odpowiadający mu %2 nie istnieje.</translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/functions/qunparsedtextfn.cpp" line="+65"/>
         <source>The URI cannot have a fragment</source>
         <translation>URI nie może posiadać fragmentu</translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/parser/qxslttokenizer.cpp" line="+519"/>
         <source>Element %1 is not allowed at this location.</source>
         <translation>Element %1 jest niedozwolony w tym miejscu.</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Text nodes are not allowed at this location.</source>
         <translation>Węzły tekstowe są niedozwolone w tym miejscu.</translation>
     </message>
     <message>
-        <location line="+20"/>
         <source>Parse error: %1</source>
         <translation>Błąd parsowania: %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>Wartość atrybutu wersji XSL-T musi być typu %1, którym %2 nie jest.</translation>
     </message>
     <message>
-        <location line="+20"/>
         <source>Running an XSL-T 1.0 stylesheet with a 2.0 processor.</source>
         <translation>Przetwarzanie arkusza XSL-T w wersji 1.0 przez procesor w wersji 2.0.</translation>
     </message>
     <message>
-        <location line="+108"/>
         <source>Unknown XSL-T attribute %1.</source>
         <translation>Nieznany atrybut %1 XSL-T.</translation>
     </message>
     <message>
-        <location line="+23"/>
         <source>Attribute %1 and %2 are mutually exclusive.</source>
         <translation>Atrybuty %1 i %2 wzajemnie się wykluczającą.</translation>
     </message>
     <message>
-        <location line="+166"/>
         <source>In a simplified stylesheet module, attribute %1 must be present.</source>
         <translation>W uproszczonym module arkuszu stylu musi wystąpić atrybut %1.</translation>
     </message>
     <message>
-        <location line="+72"/>
         <source>If element %1 has no attribute %2, it cannot have attribute %3 or %4.</source>
         <translation>Jeśli element %1 nie posiada atrybutu %2, nie może on również posiadać atrybutu %3 ani %4.</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Element %1 must have at least one of the attributes %2 or %3.</source>
         <translation>Element %1 musi posiadać przynajmniej jeden z atrybutów: %2 lub %3.</translation>
     </message>
     <message>
-        <location line="+28"/>
         <source>At least one mode must be specified in the %1-attribute on element %2.</source>
         <translation>Przynajmniej jeden tryb musi być podany w atrybucie %1 elementu %2.</translation>
     </message>
     <message>
-        <location line="+123"/>
         <source>Element %1 must come last.</source>
         <translation>Element %1 musi wystąpić jako ostatni.</translation>
     </message>
     <message>
-        <location line="+24"/>
         <source>At least one %1-element must occur before %2.</source>
         <translation>Przynajmniej jeden element %1 musi wystąpić przed %2.</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Only one %1-element can appear.</source>
         <translation>Może wystąpić tylko jeden element %1.</translation>
     </message>
     <message>
-        <location line="+31"/>
         <source>At least one %1-element must occur inside %2.</source>
         <translation>Przynajmniej jeden element %1 musi wystąpić wewnątrz %2.</translation>
     </message>
     <message>
-        <location line="+58"/>
         <source>When attribute %1 is present on %2, a sequence constructor cannot be used.</source>
         <translation>Kiedy atrybut %1 występuje w %2 konstruktor sekwencyjny nie może być użyty.</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>Element %1 must have either a %2-attribute or a sequence constructor.</source>
         <translation>Element %1 musi posiadać albo atrybut %2 albo sekwencyjny konstruktor.</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>Kiedy wymagany jest parametr, domyślna wartość nie może być dostarczona przez atrybut %1 ani przez sekwencyjny konstruktor.</translation>
     </message>
     <message>
-        <location line="+270"/>
         <source>Element %1 cannot have children.</source>
         <translation>Element %1 nie może posiadać potomków.</translation>
     </message>
     <message>
-        <location line="+434"/>
         <source>Element %1 cannot have a sequence constructor.</source>
         <translation>Element %1 nie może posiadać sekwencyjnego konstruktora.</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>Atrybut %1 nie może wystąpić w %2 kiedy jest on potomkiem %3.</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>A parameter in a function cannot be declared to be a tunnel.</source>
         <translation>Parametr funkcji nie może być zadeklarowany jako tunelowy.</translation>
     </message>
     <message>
-        <location line="+149"/>
         <source>This processor is not Schema-aware and therefore %1 cannot be used.</source>
         <translation>Procesor nie obsługuje schematów, więc %1 nie może zostać użyte.</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>Elementy arkusza stylu najwyższego poziomu muszą być w niezerowej przestrzeni nazw, którą %1 nie jest.</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>Wartością atrybutu %1 w elemencie %2 musi być %3 albo %4, lecz nie %5.</translation>
     </message>
     <message>
-        <location line="+20"/>
         <source>Attribute %1 cannot have the value %2.</source>
         <translation>Atrybut %1 nie może posiadać wartości %2.</translation>
     </message>
     <message>
-        <location line="+58"/>
         <source>The attribute %1 can only appear on the first %2 element.</source>
         <translation>Atrybut %1 może wystąpić jedynie w pierwszym elemencie %2.</translation>
     </message>
     <message>
-        <location line="+99"/>
         <source>At least one %1 element must appear as child of %2.</source>
         <translation>Przynajmniej jeden element %1 musi wystąpić jako potomek %2.</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 ma pętlę w dziedziczeniu w jego podstawowym typie %2.</translation>
     </message>
     <message>
-        <location line="+5"/>
-        <location line="+24"/>
         <source>Circular inheritance of base type %1.</source>
         <translation>Cykliczne dziedziczenie podstawowego typu %1.</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>Circular inheritance of union %1.</source>
         <translation>Cykliczne dziedziczenie unii %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>Nie można wywieść %1 z %2 ograniczając go ponieważ jest on zdefiniowany jako końcowy.</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>Nie można wywieść %1 z %2 rozszerzając go ponieważ jest on zdefiniowany jako końcowy.</translation>
     </message>
     <message>
-        <location line="+31"/>
         <source>Base type of simple type %1 cannot be complex type %2.</source>
         <translation>Typ podstawowy dla typu prostego %1 nie może być typem złożonym %2.</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Simple type %1 cannot have direct base type %2.</source>
         <translation>Typ prosty %1 nie może mieć bezpośredniego typu podstawowego %2.</translation>
     </message>
     <message>
-        <location line="+33"/>
-        <location line="+9"/>
         <source>Simple type %1 is not allowed to have base type %2.</source>
         <translation>Typ prosty %1 nie może mieć typu podstawowego %2.</translation>
     </message>
     <message>
-        <location line="+12"/>
         <source>Simple type %1 can only have simple atomic type as base type.</source>
         <translation>Typem podstawowym typu prostego %1 może być tylko typ atomowy.</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Simple type %1 cannot derive from %2 as the latter defines restriction as final.</source>
         <translation>Typ prosty %1 nie może wywodzić się z %2 ponieważ ten ostatni jest zdefiniowany jako końcowy.</translation>
     </message>
     <message>
-        <location line="+13"/>
-        <location line="+484"/>
         <source>Variety of item type of %1 must be either atomic or union.</source>
         <translation>Typem elementów listy %1 musi być albo typ atomowy albo unia.</translation>
     </message>
     <message>
-        <location line="-474"/>
-        <location line="+483"/>
         <source>Variety of member types of %1 must be atomic.</source>
         <translation>Typy składników %1 muszą być atomowe.</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>Nie można wywieść %1 z %2 poprzez listę ponieważ jest to zdefiniowane ostatecznie w typie podstawowym.</translation>
     </message>
     <message>
-        <location line="-431"/>
         <source>Simple type %1 is only allowed to have %2 facet.</source>
         <translation>Typ prosty %1 może jedynie posiadać aspekt %2.</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>Base type of simple type %1 must have variety of type list.</source>
         <translation>Typ podstawowy dla typu prostego %1 musi być listą typów.</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Base type of simple type %1 has defined derivation by restriction as final.</source>
         <translation>Typ podstawowy dla typu prostego %1 ma zdefiniowane wywodzenie poprzez ograniczenie jako końcowe.</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Item type of base type does not match item type of %1.</source>
         <translation>Typ elementów listy typu podstawowego nie pasuje do typu elementów listy %1.</translation>
     </message>
     <message>
-        <location line="+26"/>
-        <location line="+93"/>
         <source>Simple type %1 contains not allowed facet type %2.</source>
         <translation>Typ prosty %1 posiada niedozwolony aspekt %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>Nie można wywieść %1 z %2 poprzez unię ponieważ jest to zdefiniowane ostatecznie w typie podstawowym.</translation>
     </message>
     <message>
-        <location line="-404"/>
         <source>%1 is not allowed to have any facets.</source>
         <translation>%1 nie może posiadać żadnych aspektów.</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Base type %1 of simple type %2 must have variety of union.</source>
         <translation>Typ podstawowy %1 dla typu prostego %2 musi być unią.</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>Typ podstawowy %1 dla typu prostego %2 nie może posiadać ograniczenia dla atrybutu %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>Typ %1 składnika nie może być wywiedziony z typu %2 który jest typem składnika %3 typu podstawowego %4.</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>Metodą wywodzenia z %1 musi być rozszerzenie ponieważ typ podstawowy %2 jest typem prostym.</translation>
     </message>
     <message>
-        <location line="+30"/>
         <source>Complex type %1 has duplicated element %2 in its content model.</source>
         <translation>Typ złożony %1 posiada powielony element %2 w jego modelu zawartości.</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Complex type %1 has non-deterministic content.</source>
         <translation>Typ złożony %1 posiada nieokreśloną zawartość.</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>Atrybuty typu złożonego %1 nie są poprawnym rozszerzeniem atrybutów typu podstawowego %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 zawartości typu złożonego %1 nie jest poprawnym rozszerzeniem modelu zawartości %2.</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>Complex type %1 must have simple content.</source>
         <translation>Typ złożony %1 musi mieć prostą zawartość.</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Complex type %1 must have the same simple type as its base class %2.</source>
         <translation>Typ złożony %1 musi posiadać ten sam prosty typ jaki posiada jego klasa podstawowa %2.</translation>
     </message>
     <message>
-        <location line="+67"/>
         <source>Complex type %1 cannot be derived from base type %2%3.</source>
         <translation>Typ złożony %1 nie może być wywiedziony z 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>Atrybuty typu złożonego %1 nie są poprawnym ograniczeniem atrybutów typu podstawowego %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>Typ złożony %1 z prostą zawartością nie może być wywiedziony z podstawowego typu złożonego %2.</translation>
     </message>
     <message>
-        <location line="+35"/>
         <source>Item type of simple type %1 cannot be a complex type.</source>
         <translation>Typ elementów listy w prostym typie %1 nie może być typem złożonym.</translation>
     </message>
     <message>
-        <location line="+44"/>
         <source>Member type of simple type %1 cannot be a complex type.</source>
         <translation>Typ składnika typu prostego %1 nie może być typem złożonym.</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 nie może posiadać typu składnika o tej samej nazwie jaką on sam posiada.</translation>
     </message>
     <message>
-        <location line="+83"/>
-        <location line="+29"/>
-        <location line="+34"/>
         <source>%1 facet collides with %2 facet.</source>
         <translation>Aspekt %1 koliduje z aspektem %2.</translation>
     </message>
     <message>
-        <location line="-20"/>
         <source>%1 facet must have the same value as %2 facet of base type.</source>
         <translation>Aspekt %1 musi mieć tą samą wartość jaką ma aspekt %2 typu podstawowego.</translation>
     </message>
     <message>
-        <location line="+37"/>
         <source>%1 facet must be equal or greater than %2 facet of base type.</source>
         <translation>Wartość aspektu %1 musi większa od lub równa wartości aspektu %2 typu podstawowego.</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>Wartość aspektu %1 musi być mniejsza od lub równa wartości aspektu %2 typu podstawowego.</translation>
     </message>
     <message>
-        <location line="-389"/>
         <source>%1 facet contains invalid regular expression</source>
         <translation>Aspekt %1 zawiera niepoprawne wyrażenie regularne</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Unknown notation %1 used in %2 facet.</source>
         <translation>Nieznany zapis %1 użyty w aspekcie %2.</translation>
     </message>
     <message>
-        <location line="+20"/>
         <source>%1 facet contains invalid value %2: %3.</source>
         <translation>Aspekt %1 zawiera niepoprawną wartość %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>Aspektem %1 nie może być %2 ani %3 jeśli aspektem %4 typu podstawowego jest %5.</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>%1 facet cannot be %2 if %3 facet of base type is %4.</source>
         <translation>Aspektem %1 nie może być %2 jeśli aspektem %3 typu podstawowego jest %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>Wartość aspektu %1 musi być mniejsza od lub równa wartości aspektu %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>Wartość aspektu %1 musi być mniejsza od wartości aspektu %2 typu podstawowego.</translation>
     </message>
     <message>
-        <location line="-201"/>
-        <location line="+79"/>
         <source>%1 facet and %2 facet cannot appear together.</source>
         <translation>Aspekty %1 i %2 nie mogą wystąpić jednocześnie.</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>Wartość aspektu %1 musi być większa od wartości aspektu %2 typu podstawowego.</translation>
     </message>
     <message>
-        <location line="-86"/>
-        <location line="+58"/>
         <source>%1 facet must be less than %2 facet.</source>
         <translation>Wartość aspektu %1 musi być mniejsza od wartości aspektu %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>Wartość aspektu %1 musi być większa od lub równa wartości aspektu %2 typu podstawowego.</translation>
     </message>
     <message>
-        <location line="+113"/>
         <source>Simple type contains not allowed facet %1.</source>
         <translation>Typ prosty zawiera niedozwolony aspekt %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>Aspekty %1, %2, %3, %4, %5 i %6 nie są dozwolone podczas wywodzenia z listy.</translation>
     </message>
     <message>
-        <location line="+16"/>
         <source>Only %1 and %2 facets are allowed when derived by union.</source>
         <translation>Dozwolone są jedynie aspekty %1 i %2 podczas wywodzenia z unii.</translation>
     </message>
     <message>
-        <location line="+23"/>
-        <location line="+16"/>
         <source>%1 contains %2 facet with invalid data: %3.</source>
         <translation>%1 zawiera aspekt %2 z niepoprawnymi danymi: %3.</translation>
     </message>
     <message>
-        <location line="+24"/>
         <source>Attribute group %1 contains attribute %2 twice.</source>
         <translation>Grupa atrybutów %1 zawiera dwukrotnie atrybut %2.</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Attribute group %1 contains two different attributes that both have types derived from %2.</source>
         <translation>Grupa atrybutów %1 zawiera dwa różne atrybuty których typy są wywiedzione 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>Grupa atrybutów %1 zawiera atrybut %2 który ma ograniczenie wartości ale typ wywodzi się z %3.</translation>
     </message>
     <message>
-        <location line="+23"/>
         <source>Complex type %1 contains attribute %2 twice.</source>
         <translation>Typ złożony %1 zawiera atrybut %2 dwukrotnie.</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Complex type %1 contains two different attributes that both have types derived from %2.</source>
         <translation>Typ złożony %1 zawiera dwa różne atrybuty których typy są wywiedzione 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>Typ złożony %1 zawiera atrybut %2 który ma ograniczenie wartości ale typ wywodzi się 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>Element %1 nie może zawierać ograniczenia wartości gdy jego typ podstawowy jest złożony.</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>Element %1 nie może zawierać ograniczenia wartości gdy jego typ jest wywiedziony 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>Ograniczenie wartości elementu %1 nie jest typu: %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>Element %1 nie może przynależeć do grupy zastępującej ponieważ nie jest on elementem globalnym.</translation>
     </message>
     <message>
-        <location line="+28"/>
         <source>Type of element %1 cannot be derived from type of substitution group affiliation.</source>
         <translation>Typ elementu %1 nie może być wywiedziony z typu przynależnego do grupy zastępującej.</translation>
     </message>
     <message>
-        <location line="+41"/>
         <source>Value constraint of attribute %1 is not of attributes type: %2.</source>
         <translation>Ograniczenie wartości atrybutu %1 nie jest typu: %2.</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Attribute %1 has value constraint but has type derived from %2.</source>
         <translation>Atrybut %1 posiada ograniczenie wartości lecz jego typ wywodzi się z %2.</translation>
     </message>
     <message>
-        <location line="+56"/>
         <source>%1 attribute in derived complex type must be %2 like in base type.</source>
         <translation>Atrybut %1 w wywiedzionym typie złożonym musi być %2 jak w typie podstawowym.</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>Attribute %1 in derived complex type must have %2 value constraint like in base type.</source>
         <translation>Atrybut %1 w wywiedzionym typie złożonym musi zawierać ograniczenie wartości %2 jak w typie podstawowym.</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>Atrybut %1 w wywiedzionym typie złożonym musi zawierać te same ograniczenie wartości %2 jak w typie podstawowym.</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Attribute %1 in derived complex type must have %2 value constraint.</source>
         <translation>Atrybut %1 w wywiedzionym typie złożonym musi zawierać ograniczenie wartości %2.</translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>processContent of base wildcard must be weaker than derived wildcard.</source>
         <translation>&quot;processContent&quot; podstawowego dżokera musi być słabszy od wywiedzionego dżokera.</translation>
     </message>
     <message>
-        <location line="+39"/>
-        <location line="+15"/>
         <source>Element %1 exists twice with different types.</source>
         <translation>Istnieją dwa elementy %1 o różnych typach.</translation>
     </message>
     <message>
-        <location line="+28"/>
         <source>Particle contains non-deterministic wildcards.</source>
         <translation>Element zawiera nieokreślone dżokery.</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>Wymagany jest bazowy atrybut %1, wywiedziony zaś nie.</translation>
     </message>
     <message>
-        <location line="-57"/>
         <source>Type of derived attribute %1 cannot be validly derived from type of base attribute.</source>
         <translation>Typ wywiedzionego atrybutu %1 nie może być poprawnie wywiedziony z typu podstawowego atrybutu.</translation>
     </message>
     <message>
-        <location line="+28"/>
         <source>Value constraint of derived attribute %1 does not match value constraint of base attribute.</source>
         <translation>Ograniczenie wartości wywiedzionego atrybutu %1 nie pasuje do ograniczenia wartości podstawowego atrybutu.</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Derived attribute %1 does not exist in the base definition.</source>
         <translation>Wywiedziony atrybut %1 nie istnieje w podstawowej definicji.</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>Derived attribute %1 does not match the wildcard in the base definition.</source>
         <translation>Wywiedziony atrybut %1 nie pasuje do dżokera w podstawowej definicji.</translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>Base attribute %1 is required but missing in derived definition.</source>
         <translation>Brak wymaganego bazowego atrybutu %1 w wywiedzionej definicji.</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Derived definition contains an %1 element that does not exists in the base definition</source>
         <translation>Wywiedziona definicja zawiera element %1 który nie istnieje w definicji podstawowej</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Derived wildcard is not a subset of the base wildcard.</source>
         <translation>Wywiedziony dżoker nie jest podzbiorem podstawowego dżokera.</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>%1 of derived wildcard is not a valid restriction of %2 of base wildcard</source>
         <translation>%1 wywiedzionego dżokera nie jest poprawnym ograniczeniem %2 podstawowego dżokera</translation>
     </message>
     <message>
-        <location line="+23"/>
         <source>Attribute %1 from base type is missing in derived type.</source>
         <translation>Brak atrybutu %1 typu bazowego w wywiedzionej definicji.</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Type of derived attribute %1 differs from type of base attribute.</source>
         <translation>Typ wywiedzionego atrybutu %1 różni się od typu podstawowego atrybutu.</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Base definition contains an %1 element that is missing in the derived definition</source>
         <translation>Podstawowa definicja zawiera element %1 którego brakuje w wywiedzionej definicji</translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/schema/qxsdschemaresolver.cpp" line="+354"/>
         <source>%1 references unknown %2 or %3 element %4.</source>
         <translation>%1 odwołuje się do nieznanego elementu %2 lub %3: %4.</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>%1 references identity constraint %2 that is no %3 or %4 element.</source>
         <translation>%1 odwołuje się do narzucenia niepowtarzalności %2 które nie jest elementem %3 ani %4.</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 posiada inna liczbę pól od narzucenia niepowtarzalności %2 które się do niego odwołuje.</translation>
     </message>
     <message>
-        <location line="+23"/>
         <source>Base type %1 of %2 element cannot be resolved.</source>
         <translation>Nie można rozwiązać typu podstawowego %1 elementu %2.</translation>
     </message>
     <message>
-        <location line="+84"/>
         <source>Item type %1 of %2 element cannot be resolved.</source>
         <translation>Nie można rozwiązać typu elementów listy %1 w elemencie %2.</translation>
     </message>
     <message>
-        <location line="+31"/>
         <source>Member type %1 of %2 element cannot be resolved.</source>
         <translation>Nie można rozwiązać typu %1 składnika elementu %2.</translation>
     </message>
     <message>
-        <location line="+28"/>
-        <location line="+415"/>
-        <location line="+30"/>
         <source>Type %1 of %2 element cannot be resolved.</source>
         <translation>Nie można rozwiązać typu %1 elementu %2.</translation>
     </message>
     <message>
-        <location line="-423"/>
         <source>Base type %1 of complex type cannot be resolved.</source>
         <translation>Nie można rozwiązać typu podstawowego %1 dla typu złożonego.</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>%1 cannot have complex base type that has a %2.</source>
         <translation>%1 nie może mieć złożonego typu podstawowego który ma %2.</translation>
     </message>
     <message>
-        <location line="+286"/>
         <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 zawartości typu złożonego %1 posiada element %2 więc nie może być on wywiedziony poprzez rozszerzenie niepustego 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>Typ złożony %1 nie może być wywiedziony z %2 poprzez rozszerzenie ponieważ ten ostatni zawiera element %3 w jego modelu zawartości.</translation>
     </message>
     <message>
-        <location line="+101"/>
         <source>Type of %1 element must be a simple type, %2 is not.</source>
         <translation>Typem elementu %1 musi być typ prosty, %2 nim nie jest.</translation>
     </message>
     <message>
-        <location line="+62"/>
         <source>Substitution group %1 of %2 element cannot be resolved.</source>
         <translation>Nie można rozwiązać grupy zastępującej %1 elementu %2.</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Substitution group %1 has circular definition.</source>
         <translation>Grupa zastępująca %1 posiada cykliczną definicję.</translation>
     </message>
     <message>
-        <location line="+120"/>
-        <location line="+7"/>
         <source>Duplicated element names %1 in %2 element.</source>
         <translation>Powielona nazwa elementu %1 w elemencie %2.</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>Nie można rozwiązać odwołania %1 do elementu %2.</translation>
     </message>
     <message>
-        <location line="-138"/>
         <source>Circular group reference for %1.</source>
         <translation>Cykliczne odwołanie do grupy dla %1.</translation>
     </message>
     <message>
-        <location line="+16"/>
         <source>%1 element is not allowed in this scope</source>
         <translation>Element %1 nie jest dozwolony w tym zakresie</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>%1 element cannot have %2 attribute with value other than %3.</source>
         <translation>Element %1 nie może mieć atrybutu %2 z wartością inną niż %3.</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>%1 element cannot have %2 attribute with value other than %3 or %4.</source>
         <translation>Element %1 nie może mieć atrybutu %2 z wartością inną niż %3 lub %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>Atrybut %1 lub %2 odwołania %3 nie pasuje do deklaracji atrybutu %4.</translation>
     </message>
     <message>
-        <location line="+25"/>
         <source>Attribute group %1 has circular reference.</source>
         <translation>Grupa atrybutów %1 posiada cykliczne odwołanie.</translation>
     </message>
     <message>
-        <location line="+131"/>
         <source>%1 attribute in %2 must have %3 use like in base type %4.</source>
         <translation>Atrybut %1 w %2 powinien używać %3 jak w typie podstawowym %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>Atrybut dżokera %1 nie jest poprawnym ograniczeniem atrybutu dżokera typu podstawowego %2.</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>%1 has attribute wildcard but its base type %2 has not.</source>
         <translation>%1 posiada atrybut dżokera lecz jego typ podstawowy %2 go nie posiada.</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>Nie można wyrazić unii atrybutu dżokera typu %1 i atrybutu dżokera jego typu podstawowego %2.</translation>
     </message>
     <message>
-        <location line="+48"/>
         <source>Enumeration facet contains invalid content: {%1} is not a value of type %2.</source>
         <translation>Aspekt &quot;enumeration&quot; posiada niepoprawną zawartość: {%1} nie jest wartością typu %2.</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>Namespace prefix of qualified name %1 is not defined.</source>
         <translation>Przedrostek przestrzeni nazw występujący w pełnej nazwie %1 nie jest zdefiniowany.</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>Element %1 (%2) nie jest poprawnym ograniczeniem elementu %3 który redefiniuje: %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>Pusty element nie może być wywiedziony z niepustego elementu.</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Derived particle is missing element %1.</source>
         <translation>Brak elementu %1 w wywiedzionym elemencie.</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Derived element %1 is missing value constraint as defined in base particle.</source>
         <translation>Brak ograniczenia wartości w wywiedzionym elemencie %1 takiego jak w podstawowym elemencie.</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Derived element %1 has weaker value constraint than base particle.</source>
         <translation>Wywiedziony element %1 posiada słabsze ograniczenie wartości niż element podstawowy.</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Fixed value constraint of element %1 differs from value constraint in base particle.</source>
         <translation>Ograniczenie stałej wartości elementu %1 różni się od ograniczenia wartości w podstawowym elemencie.</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Derived element %1 cannot be nillable as base element is not nillable.</source>
         <translation>Wywiedziony element %1 może być zerowalny ponieważ element podstawowy nie jest zerowalny.</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>Ograniczenia blokujące dla wywiedzionego elementu %1 nie mogą być słabsze od ograniczeń w elemencie podstawowym.</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>Simple type of derived element %1 cannot be validly derived from base element.</source>
         <translation>Typ prosty w elemencie wywiedzionym %1 nie może być poprawnie wywiedziony z elementu podstawowego.</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Complex type of derived element %1 cannot be validly derived from base element.</source>
         <translation>Typ złożony w elemencie wywiedzionym %1 nie może być poprawnie wywiedziony z elementu podstawowego.</translation>
     </message>
     <message>
-        <location line="+24"/>
         <source>Element %1 is missing in derived particle.</source>
         <translation>Brak elementu %1 w wywiedzionym elemencie.</translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>Element %1 does not match namespace constraint of wildcard in base particle.</source>
         <translation>Element %1 nie pasuje do ograniczenia przestrzeni nazw dżokera w elemencie podstawowym.</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>Wildcard in derived particle is not a valid subset of wildcard in base particle.</source>
         <translation>Dżoker w wywiedzionym elemencie nie jest poprawnym podzbiorem dżokera w elemencie podstawowym.</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>processContent of wildcard in derived particle is weaker than wildcard in base particle.</source>
         <translation>&quot;processContent&quot; dżokera w wywiedzionym elemencie jest słabszy od dżokera w podstawowym elemencie.</translation>
     </message>
     <message>
-        <location line="+270"/>
         <source>Derived particle allows content that is not allowed in the base particle.</source>
         <translation>Wywiedziony element pozwala na zawartość która jest niedozwolona w podstawowym elemencie.</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>Nie można przetworzyć nieznanego elementu %1, oczekiwanymi elementami są: %2.</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>Element %1 is not allowed in this scope, possible elements are: %2.</source>
         <translation>Element %1 jest niedozwolony w tym zakresie, możliwymi elementami są: %2.</translation>
     </message>
     <message>
-        <location line="+16"/>
         <source>Child element is missing in that scope, possible child elements are: %1.</source>
         <translation>Brak podelementu w tym zakresie, możliwymi podelementami są: %1.</translation>
     </message>
     <message>
-        <location line="+143"/>
         <source>Document is not a XML schema.</source>
         <translation>Dokument nie jest schematem 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>Atrybut %1 elementu %2 posiada niepoprawną zawartość: {%3} nie jest wartością typu %4.</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>%1 attribute of %2 element contains invalid content: {%3}.</source>
         <translation>Atrybut %1 elementu %2 posiada niepoprawną zawartość: {%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>Docelowa przestrzeń nazw %1 załączonego schematu jest różna od docelowej przestrzeni nazw %2 która jest zdefiniowana w schemacie załączającym.</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>Docelowa przestrzeń nazw %1 zaimportowanego schematu jest różna od docelowej przestrzeni nazw %2 która jest zdefiniowana w schemacie importującym.</translation>
     </message>
     <message>
-        <location line="+243"/>
         <source>%1 element is not allowed to have the same %2 attribute value as the target namespace %3.</source>
         <translation>Element %1 nie może zawierać tej samej wartości atrybutu %2 co docelowa przestrzeń nazw %3.</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>%1 element without %2 attribute is not allowed inside schema without target namespace.</source>
         <translation>Element %1 bez atrybutu %2 jest niedozwolony wewnątrz schematu bez docelowej przestrzeni nazw.</translation>
     </message>
     <message>
-        <location line="+851"/>
-        <location line="+158"/>
         <source>%1 element is not allowed inside %2 element if %3 attribute is present.</source>
         <translation>Element %1 jest niedozwolony wewnątrz elementu %2 jeśli jest obecny atrybut %3.</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>Element %1 nie posiada ani atrybutu %2 ani podelementu %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>Element %1 z podelementem %2 nie może mieć atrybutu %3.</translation>
     </message>
     <message>
-        <location line="-1325"/>
         <source>%1 attribute of %2 element must be %3 or %4.</source>
         <translation>Atrybutem %1 elementu %2 musi być %3 lub %4.</translation>
     </message>
     <message>
-        <location line="+36"/>
         <source>%1 attribute of %2 element must have a value of %3.</source>
         <translation>Atrybut %1 elementu %2 musi posiadać wartość %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>Atrybut %1 elementu %2 musi posiadać wartość %3 lub %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>Element %1 nie może posiadać jednocześnie atrybutów %2 i %3.</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>Zawartość atrybutu %1 elementu %2 nie może pochodzić z przestrzeni nazw %3.</translation>
     </message>
     <message>
-        <location line="-215"/>
-        <location line="+222"/>
         <source>%1 attribute of %2 element must not be %3.</source>
         <translation>Atrybut %1 elementu %2 nie może być %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>Atrybut %1 elementu %2 musi zawierać wartość %3 ponieważ atrybut %4 jest ustawiony.</translation>
     </message>
     <message>
-        <location line="+187"/>
         <source>Specifying use=&apos;prohibited&apos; inside an attribute group has no effect.</source>
         <translation>Podawanie: use=&apos;prohibited&apos; wewnątrz grupy atrybutów nie przynosi żadnego efektu.</translation>
     </message>
     <message>
-        <location line="+353"/>
         <source>%1 element must have either %2 or %3 attribute.</source>
         <translation>Element %1 musi zawierać atrybut %2 albo %3.</translation>
     </message>
     <message>
-        <location line="+554"/>
         <source>%1 element must have either %2 attribute or %3 or %4 as child element.</source>
         <translation>Element %1 musi zawierać albo atrybut %2 albo %3 lub %4 jako podelement.</translation>
     </message>
     <message>
-        <location line="+55"/>
         <source>%1 element requires either %2 or %3 attribute.</source>
         <translation>Element %1 wymaga atrybutu %2 albo %3.</translation>
     </message>
     <message>
-        <location line="+19"/>
         <source>Text or entity references not allowed inside %1 element</source>
         <translation>Tekst ani odwołanie nie są dozwolone wewnątrz elementu %1</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>Atrybut %1 elementu %2 musi zawierać %3, %4 lub listę URI.</translation>
     </message>
     <message>
-        <location line="+126"/>
         <source>%1 element is not allowed in this context.</source>
         <translation>Element %1 jest niedozwolony w tym kontekście.</translation>
     </message>
     <message>
-        <location line="+53"/>
         <source>%1 attribute of %2 element has larger value than %3 attribute.</source>
         <translation>Atrybut %1 elementu %2 posiada większą wartość niż atrybut %3.</translation>
     </message>
     <message>
-        <location line="+25"/>
         <source>Prefix of qualified name %1 is not defined.</source>
         <translation>Przedrostek w pełnej nazwie %1 nie jest zdefiniowany.</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>Atrybut %1 elementu %2 musi zawierać albo %3 albo inne wartości.</translation>
     </message>
     <message>
-        <location line="+131"/>
         <source>Component with ID %1 has been defined previously.</source>
         <translation>Komponent o identyfikatorze %1 został uprzednio zdefiniowany.</translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>Element %1 already defined.</source>
         <translation>Element %1 jest już zdefiniowany.</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>Attribute %1 already defined.</source>
         <translation>Atrybut %1 jest już zdefiniowany.</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Type %1 already defined.</source>
         <translation>Typ %1 jest już zdefiniowany.</translation>
     </message>
     <message>
-        <location line="+23"/>
         <source>Attribute group %1 already defined.</source>
         <translation>Grupa atrybutów %1 jest już zdefiniowana.</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>Element group %1 already defined.</source>
         <translation>Grupa elementów %1 jest już zdefiniowana.</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>Notation %1 already defined.</source>
         <translation>Zapis %1 jest już zdefiniowany.</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>Identity constraint %1 already defined.</source>
         <translation>Narzucenie niepowtarzalności %1 jest już zdefiniowane.</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>Duplicated facets in simple type %1.</source>
         <translation>Powielone aspekty w prostym typie %1.</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>
         <translatorcomment>Ponieważ nie wiadomo co jest podmiotem nie można stwierdzić czy to ma być &quot;poprawnym&quot;, &quot;poprawną&quot; czy &quot;poprawne&quot;</translatorcomment>
         <translation>%1 nie jest poprawne według %2.</translation>
     </message>
     <message>
-        <location line="+167"/>
         <source>String content does not match the length facet.</source>
         <translation>Wartość ciągu koliduje z aspektem &quot;length&quot;.</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>String content does not match the minLength facet.</source>
         <translation>Wartość ciągu koliduje z aspektem &quot;minLength&quot;.</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>String content does not match the maxLength facet.</source>
         <translation>Wartość ciągu koliduje z aspektem &quot;maxLength&quot;.</translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>String content does not match pattern facet.</source>
         <translation>Wartość ciągu koliduje z aspektem &quot;pattern&quot;.</translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>String content is not listed in the enumeration facet.</source>
         <translation>Wartość ciągu nie widnieje na liście aspektu &quot;enumeration&quot;.</translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>Signed integer content does not match the maxInclusive facet.</source>
         <translation>Wartość liczby całkowitej koliduje z aspektem &quot;maxInclusive&quot;.</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Signed integer content does not match the maxExclusive facet.</source>
         <translation>Wartość liczby całkowitej koliduje z aspektem &quot;maxExclusive&quot;.</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Signed integer content does not match the minInclusive facet.</source>
         <translation>Wartość liczby całkowitej koliduje z aspektem &quot;minInclusive&quot;.</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Signed integer content does not match the minExclusive facet.</source>
         <translation>Wartość liczby całkowitej koliduje z aspektem &quot;minExclusive&quot;.</translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>Signed integer content is not listed in the enumeration facet.</source>
         <translation>Wartość liczby całkowitej nie widnieje na liście aspektu &quot;enumeration&quot;.</translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>Signed integer content does not match pattern facet.</source>
         <translation>Wartość liczby całkowitej koliduje z aspektem &quot;pattern&quot;.</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Signed integer content does not match in the totalDigits facet.</source>
         <translation>Wartość liczby całkowitej koliduje z aspektem &quot;totalDigits&quot;.</translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>Unsigned integer content does not match the maxInclusive facet.</source>
         <translation>Wartość liczby naturalnej koliduje z aspektem &quot;maxInclusive&quot;.</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Unsigned integer content does not match the maxExclusive facet.</source>
         <translation>Wartość liczby naturalnej koliduje z aspektem &quot;maxExclusive&quot;.</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Unsigned integer content does not match the minInclusive facet.</source>
         <translation>Wartość liczby naturalnej koliduje z aspektem &quot;minInclusive&quot;.</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Unsigned integer content does not match the minExclusive facet.</source>
         <translation>Wartość liczby naturalnej koliduje z aspektem &quot;minExclusive&quot;.</translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>Unsigned integer content is not listed in the enumeration facet.</source>
         <translation>Wartość liczby naturalnej nie widnieje na liście aspektu &quot;enumeration&quot;.</translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>Unsigned integer content does not match pattern facet.</source>
         <translation>Wartość liczby naturalnej koliduje z aspektem &quot;pattern&quot;.</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Unsigned integer content does not match in the totalDigits facet.</source>
         <translation>Wartość liczby naturalnej koliduje z aspektem &quot;totalDigits&quot;.</translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>Double content does not match the maxInclusive facet.</source>
         <translation>Wartość liczby rzeczywistej koliduje z aspektem &quot;maxInclusive&quot;.</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Double content does not match the maxExclusive facet.</source>
         <translation>Wartość liczby rzeczywistej koliduje z aspektem &quot;maxExclusive&quot;.</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Double content does not match the minInclusive facet.</source>
         <translation>Wartość liczby rzeczywistej koliduje z aspektem &quot;minInclusive&quot;.</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Double content does not match the minExclusive facet.</source>
         <translation>Wartość liczby rzeczywistej koliduje z aspektem &quot;minExclusive&quot;.</translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>Double content is not listed in the enumeration facet.</source>
         <translation>Wartość liczby rzeczywistej nie widnieje na liście aspektu &quot;enumeration&quot;.</translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>Double content does not match pattern facet.</source>
         <translation>Wartość liczby rzeczywistej koliduje z aspektem &quot;pattern&quot;.</translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>Decimal content does not match in the fractionDigits facet.</source>
         <translation>Wartość liczby rzeczywistej koliduje z aspektem &quot;fractionDigits&quot;.</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Decimal content does not match in the totalDigits facet.</source>
         <translation>Wartość liczby rzeczywistej koliduje z aspektem &quot;totalDigits&quot;.</translation>
     </message>
     <message>
-        <location line="+14"/>
         <source>Date time content does not match the maxInclusive facet.</source>
         <translation>Zawartość daty i czasu koliduje z aspektem &quot;maxInclusive&quot;.</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Date time content does not match the maxExclusive facet.</source>
         <translation>Zawartość daty i czasu koliduje z aspektem &quot;maxExclusive&quot;.</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Date time content does not match the minInclusive facet.</source>
         <translation>Zawartość daty i czasu koliduje z aspektem &quot;minInclusive&quot;.</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Date time content does not match the minExclusive facet.</source>
         <translation>Zawartość daty i czasu koliduje z aspektem &quot;minExclusive&quot;.</translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>Date time content is not listed in the enumeration facet.</source>
         <translation>Zawartość daty i czasu nie widnieje na liście aspektu &quot;enumeration&quot;.</translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>Date time content does not match pattern facet.</source>
         <translation>Zawartość daty i czasu koliduje z aspektem &quot;pattern&quot;.</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Duration content does not match the maxInclusive facet.</source>
         <translation>Wartość czasu trwania koliduje z aspektem &quot;maxInclusive&quot;.</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Duration content does not match the maxExclusive facet.</source>
         <translation>Wartość czasu trwania koliduje z aspektem &quot;maxExclusive&quot;.</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Duration content does not match the minInclusive facet.</source>
         <translation>Wartość czasu trwania koliduje z aspektem &quot;minInclusive&quot;.</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Duration content does not match the minExclusive facet.</source>
         <translation>Wartość czasu trwania koliduje z aspektem &quot;minExclusive&quot;.</translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>Duration content is not listed in the enumeration facet.</source>
         <translation>Wartość czasu trwania nie widnieje na liście aspektu &quot;enumeration&quot;.</translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>Duration content does not match pattern facet.</source>
         <translation>Wartość czasu trwania koliduje z aspektem &quot;pattern&quot;.</translation>
     </message>
     <message>
-        <location line="+27"/>
         <source>Boolean content does not match pattern facet.</source>
         <translation>Wartość boolowska koliduje z aspektem &quot;pattern&quot;.</translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>Binary content does not match the length facet.</source>
         <translation>Wartość binarna koliduje z aspektem &quot;length&quot;.</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Binary content does not match the minLength facet.</source>
         <translation>Wartość binarna koliduje z aspektem &quot;minLength&quot;.</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Binary content does not match the maxLength facet.</source>
         <translation>Wartość binarna koliduje z aspektem &quot;maxLength&quot;.</translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>Binary content is not listed in the enumeration facet.</source>
         <translation>Wartość binarna nie widnieje na liście aspektu &quot;enumeration&quot;.</translation>
     </message>
     <message>
-        <location line="+27"/>
         <source>Invalid QName content: %1.</source>
         <translation>Niepoprawna zawartość QName: %1.</translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>QName content is not listed in the enumeration facet.</source>
         <translation>Zawartość QName nie widnieje na liście aspektu &quot;enumeration&quot;.</translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>QName content does not match pattern facet.</source>
         <translation>Zawartość QName koliduje z aspektem &quot;pattern&quot;.</translation>
     </message>
     <message>
-        <location line="+36"/>
         <source>Notation content is not listed in the enumeration facet.</source>
         <translation>Zapis zawartości nie widnieje na liście aspektu &quot;enumeration&quot;.</translation>
     </message>
     <message>
-        <location line="+19"/>
         <source>List content does not match length facet.</source>
         <translation>Zawartość listy koliduje z aspektem &quot;length&quot;.</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>List content does not match minLength facet.</source>
         <translation>Zawartość listy koliduje z aspektem &quot;minLength&quot;.</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>List content does not match maxLength facet.</source>
         <translation>Zawartość listy koliduje z aspektem &quot;maxLength&quot;.</translation>
     </message>
     <message>
-        <location line="+90"/>
         <source>List content is not listed in the enumeration facet.</source>
         <translation>Zawartość listy nie widnieje na liście aspektu &quot;enumeration&quot;.</translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>List content does not match pattern facet.</source>
         <translation>Zawartość listy koliduje z aspektem &quot;pattern&quot;.</translation>
     </message>
     <message>
-        <location line="+39"/>
         <source>Union content is not listed in the enumeration facet.</source>
         <translation>Zawartość unii nie widnieje na liście aspektu &quot;enumeration&quot;.</translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>Union content does not match pattern facet.</source>
         <translation>Zawartość unii koliduje z aspektem &quot;pattern&quot;.</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Data of type %1 are not allowed to be empty.</source>
         <translation>Dane typu %1 nie mogą być puste.</translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/schema/qxsdvalidatinginstancereader.cpp" line="+160"/>
         <source>Element %1 is missing child element.</source>
         <translation>Brak wymaganego podelementu w elemencie %1.</translation>
     </message>
     <message>
-        <location line="+16"/>
         <source>There is one IDREF value with no corresponding ID: %1.</source>
         <translation>Istnieje wartość IDREF bez odpowiadającej jej wartości ID: %1.</translation>
     </message>
     <message>
-        <location line="+27"/>
         <source>Loaded schema file is invalid.</source>
         <translation>Załadowany plik nie jest poprawnym plikiem ze schematem.</translation>
     </message>
     <message>
-        <location line="+16"/>
         <source>%1 contains invalid data.</source>
         <translation>%1 zawiera niepoprawne dane.</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>xsi:schemaLocation namespace %1 has already appeared earlier in the instance document.</source>
         <translation>Przestrzeń nazw &quot;xsi:schemaLocation&quot; %1 wystąpiła już wcześniej w dokumencie.</translation>
     </message>
     <message>
-        <location line="+22"/>
         <source>xsi:noNamespaceSchemaLocation cannot appear after the first no-namespace element or attribute.</source>
         <translation>&quot;xsi:noNamespaceSchemaLocation&quot; nie może wystąpić po pierwszym elemencie lub atrybucie który nie jest przestrzenią nazw.</translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>No schema defined for validation.</source>
         <translation>Brak zdefiniowanego schematu dla walidacji.</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>No definition for element %1 available.</source>
         <translation>Brak dostępnej definicji dla elementu %1.</translation>
     </message>
     <message>
-        <location line="+18"/>
-        <location line="+49"/>
-        <location line="+142"/>
         <source>Specified type %1 is not known to the schema.</source>
         <translation>Podany typ %1 nie jest schematowi znany.</translation>
     </message>
     <message>
-        <location line="-176"/>
         <source>Element %1 is not defined in this scope.</source>
         <translation>Element %1 nie jest zdefiniowany w tym zakresie.</translation>
     </message>
     <message>
-        <location line="+43"/>
         <source>Declaration for element %1 does not exist.</source>
         <translation>Brak deklaracji dla elementu %1.</translation>
     </message>
     <message>
-        <location line="+12"/>
         <source>Element %1 contains invalid content.</source>
         <translation>Element %1 posiada niepoprawną zawartość.</translation>
     </message>
     <message>
-        <location line="+73"/>
         <source>Element %1 is declared as abstract.</source>
         <translation>Element %1 jest zadeklarowany jako abstrakcyjny.</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Element %1 is not nillable.</source>
         <translation>Element %1 nie jest zerowalny.</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Attribute %1 contains invalid data: %2</source>
         <translation>Atrybut %1 zawiera niepoprawne dane: %2</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Element contains content although it is nillable.</source>
         <translation>Element posiada zawartość chociaż jest zerowalny.</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Fixed value constraint not allowed if element is nillable.</source>
         <translation>Ograniczenie stałej wartości jest niedozwolone gdy element jest zerowalny.</translation>
     </message>
     <message>
-        <location line="+230"/>
         <source>Element %1 cannot contain other elements, as it has a fixed content.</source>
         <translation>Element %1 nie może zawierać innych elementów ponieważ posiada on stałą zawartość.</translation>
     </message>
     <message>
-        <location line="-198"/>
         <source>Specified type %1 is not validly substitutable with element type %2.</source>
         <translation>Podany typ %1 nie jest poprawnie zastępowalny typem elementu %2.</translation>
     </message>
     <message>
-        <location line="+23"/>
         <source>Complex type %1 is not allowed to be abstract.</source>
         <translation>Typ złożony %1 nie może być abstrakcyjny.</translation>
     </message>
     <message>
-        <location line="+21"/>
         <source>Element %1 contains not allowed attributes.</source>
         <translation>Element %1 zawiera niedozwolone atrybuty.</translation>
     </message>
     <message>
-        <location line="+6"/>
-        <location line="+97"/>
         <source>Element %1 contains not allowed child element.</source>
         <translation>Element %1 zawiera niedozwolony podelement.</translation>
     </message>
     <message>
-        <location line="-76"/>
-        <location line="+93"/>
         <source>Content of element %1 does not match its type definition: %2.</source>
         <translation>Zawartość elementu %1 nie pasuje do jego definicji 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>Zawartość elementu %1 nie pasuje do zdefiniowanego ograniczenia wartości.</translation>
     </message>
     <message>
-        <location line="-73"/>
         <source>Element %1 contains not allowed child content.</source>
         <translation>Element %1 zawiera niedozwolony podelement.</translation>
     </message>
     <message>
-        <location line="+41"/>
         <source>Element %1 contains not allowed text content.</source>
         <translation>Element %1 zawiera niedozwolony text.</translation>
     </message>
     <message>
-        <location line="+61"/>
         <source>Element %1 is missing required attribute %2.</source>
         <translation>Brak wymaganego atrybutu %2 w elemencie %1.</translation>
     </message>
     <message>
-        <location line="+29"/>
         <source>Attribute %1 does not match the attribute wildcard.</source>
         <translation>Atrybut %1 nie pasuje do atrybutu dżokera.</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Declaration for attribute %1 does not exist.</source>
         <translation>Brak deklaracji atrybutu %1.</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Element %1 contains two attributes of type %2.</source>
         <translation>Element %1 posiada dwa atrybuty typu %2.</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>Attribute %1 contains invalid content.</source>
         <translation>Atrybut %1 posiada niepoprawną zawartość.</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Element %1 contains unknown attribute %2.</source>
         <translation>Element %1 posiada nieznany atrybut %2.</translation>
     </message>
     <message>
-        <location line="+40"/>
-        <location line="+46"/>
         <source>Content of attribute %1 does not match its type definition: %2.</source>
         <translation>Zawartość atrybutu %1 nie pasuje do jego definicji typu: %2.</translation>
     </message>
     <message>
-        <location line="-38"/>
-        <location line="+46"/>
         <source>Content of attribute %1 does not match defined value constraint.</source>
         <translation>Zawartość elementu %1 nie pasuje do zdefiniowanego ograniczenia wartości.</translation>
     </message>
     <message>
-        <location line="+88"/>
         <source>Non-unique value found for constraint %1.</source>
         <translation>Znaleziono nieunikatową wartość dla ograniczenia %1.</translation>
     </message>
     <message>
-        <location line="+20"/>
         <source>Key constraint %1 contains absent fields.</source>
         <translation>Ograniczenie klucza %1 zawiera nieobecne pola.</translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>Key constraint %1 contains references nillable element %2.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+40"/>
         <source>No referenced value found for key reference %1.</source>
         <translation>Brak wartości do której odwołuje się klucz %1.</translation>
     </message>
     <message>
-        <location line="+64"/>
         <source>More than one value found for field %1.</source>
         <translation>Znaleziono więcej niż jedną wartość dla pola %1.</translation>
     </message>
     <message>
-        <location line="+20"/>
         <source>Field %1 has no simple type.</source>
         <translation>Pole %1 nie posiada prostego typu.</translation>
     </message>
     <message>
-        <location line="+73"/>
         <source>ID value &apos;%1&apos; is not unique.</source>
         <translation>Wartość ID &quot;%1&quot; nie jest unikatowa.</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>&apos;%1&apos; attribute contains invalid QName content: %2.</source>
         <translation>Atrybut &quot;%1&quot; zawiera niepoprawną zawartość QName: %2.</translation>
     </message>
--- a/translations/qt_ru.ts	Fri Sep 17 08:34:18 2010 +0300
+++ b/translations/qt_ru.ts	Mon Oct 04 01:19:32 2010 +0300
@@ -4,7 +4,6 @@
 <context>
     <name>CloseButton</name>
     <message>
-        <location filename="../src/gui/widgets/qtabbar.cpp" line="+2313"/>
         <source>Close Tab</source>
         <translation>Закрыть вкладку</translation>
     </message>
@@ -12,12 +11,10 @@
 <context>
     <name>FakeReply</name>
     <message>
-        <location filename="../src/3rdparty/webkit/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp" line="+2273"/>
         <source>Fake error !</source>
         <translation>Фиктивная ошибка !</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Invalid URL</source>
         <translation>Некорректный адрес URL</translation>
     </message>
@@ -25,37 +22,30 @@
 <context>
     <name>MAC_APPLICATION_MENU</name>
     <message>
-        <location filename="../src/gui/kernel/qapplication.cpp" line="+2335"/>
         <source>Services</source>
         <translation>Службы</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Hide %1</source>
         <translation>Скрыть %1</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Hide Others</source>
         <translation>Скрыть остальные</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Show All</source>
         <translation>Показать все</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Preferences...</source>
         <translation>Настройки…</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Quit %1</source>
         <translation>Завершить %1</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>About %1</source>
         <translation>О программе %1</translation>
     </message>
@@ -63,32 +53,26 @@
 <context>
     <name>Phonon::</name>
     <message>
-        <location filename="../src/3rdparty/phonon/phonon/phononnamespace.cpp" line="+55"/>
         <source>Notifications</source>
         <translation>Уведомления</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Music</source>
         <translation>Музыка</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Video</source>
         <translation>Видео</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Communication</source>
         <translation>Общение</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Games</source>
         <translation>Игры</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Accessibility</source>
         <translation>Специальные возможности</translation>
     </message>
@@ -96,24 +80,18 @@
 <context>
     <name>Phonon::AudioOutput</name>
     <message>
-        <location filename="../src/3rdparty/phonon/phonon/audiooutput.cpp" line="+444"/>
-        <location line="+34"/>
         <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;Звуковое устройство &lt;b&gt;%1&lt;/b&gt; не работает.&lt;br/&gt;Будет использоваться &lt;b&gt;%2&lt;/b&gt;.&lt;/html&gt;</translation>
     </message>
     <message>
-        <location line="-21"/>
         <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;Переключение на звуковое устройство &lt;b&gt;%1&lt;/b&gt;&lt;br/&gt;, которое стало доступно и имеет высший приоритет.&lt;/html&gt;</translation>
     </message>
     <message>
-        <location line="+3"/>
-        <location line="+14"/>
         <source>Revert back to device &apos;%1&apos;</source>
         <translation>Возвращение к устройству &quot;%1&quot;</translation>
     </message>
     <message>
-        <location line="-3"/>
         <source>&lt;html&gt;Switching to the audio playback device &lt;b&gt;%1&lt;/b&gt;&lt;br/&gt;which has higher preference or is specifically configured for this stream.&lt;/html&gt;</source>
         <translation>&lt;html&gt;Переключение на устройство вывода звука &lt;b&gt;%1&lt;/b&gt;&lt;br/&gt;, которое имеет высший приоритет или настроено для обработки данного потока.&lt;/html&gt;</translation>
     </message>
@@ -121,14 +99,12 @@
 <context>
     <name>Phonon::Gstreamer::Backend</name>
     <message>
-        <location filename="../src/3rdparty/phonon/gstreamer/backend.cpp" line="+188"/>
         <source>Warning: You do not seem to have the package gstreamer0.10-plugins-good installed.
           Some video features have been disabled.</source>
         <translation>Внимание: Похоже, пакет gstreamer0.10-plugins-good не установлен.
           Некоторые возможности воспроизведения видео недоступны.</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>Внимание: Похоже, основной модуль GStreamer не установлен.
@@ -138,7 +114,6 @@
 <context>
     <name>Phonon::Gstreamer::MediaObject</name>
     <message>
-        <location filename="../src/3rdparty/phonon/gstreamer/mediaobject.cpp" line="+93"/>
         <source>Cannot start playback. 
 
 Check your GStreamer installation and make sure you 
@@ -149,49 +124,34 @@
 что пакет libgstreamer-plugins-base установлен.</translation>
     </message>
     <message>
-        <location line="+129"/>
         <source>Missing codec helper script assistant.</source>
         <translation>Отсутствует сценарий установки кодека.</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Plugin codec installation failed for codec: %0</source>
         <translation>Не удалось установить модуль кодека: %0</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>A required codec is missing. You need to install the following codec(s) to play this content: %0</source>
         <translation>Отсутствует необходимый кодек. Вам нужно установить следующие кодеки для воспроизведения данного содержимого: %0</translation>
     </message>
     <message>
-        <location line="+730"/>
-        <location line="+6"/>
-        <location line="+13"/>
-        <location line="+24"/>
-        <location line="+6"/>
-        <location line="+18"/>
-        <location line="+434"/>
-        <location line="+24"/>
         <source>Could not open media source.</source>
         <translation>Не удалось открыть источник медиа-данных.</translation>
     </message>
     <message>
-        <location line="-514"/>
         <source>Invalid source type.</source>
         <translation>Некорректный тип источника медиа-данных.</translation>
     </message>
     <message>
-        <location line="+488"/>
         <source>Could not locate media source.</source>
         <translation>Не удалось найти источник медиа-данных.</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>Could not open audio device. The device is already in use.</source>
         <translation>Не удалось открыть звуковое устройство. Устройство уже используется.</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>Could not decode media source.</source>
         <translation>Не удалось декодировать источник медиа-данных.</translation>
     </message>
@@ -199,162 +159,130 @@
 <context>
     <name>Phonon::MMF</name>
     <message>
-        <location filename="../src/3rdparty/phonon/mmf/audiooutput.cpp" line="+103"/>
         <source>Audio Output</source>
         <translation>Воспроизведение звука</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>The audio output device</source>
         <translation>Устройство воспроизведения звука</translation>
     </message>
     <message>
-        <location filename="../src/3rdparty/phonon/mmf/utils.cpp" line="+89"/>
         <source>No error</source>
         <translation>Нет ошибки</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Not found</source>
         <translation>Не найдено</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Out of memory</source>
         <translation>Недостаточно ресурсов</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Not supported</source>
         <translation>Не поддерживается</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Overflow</source>
         <translation>Переполнение</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Underflow</source>
         <translation type="unfinished">Переполнение</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Already exists</source>
         <translation>Уже существует</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Path not found</source>
         <translation>Путь не найден</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>In use</source>
         <translation>Используется</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Not ready</source>
         <translation>Не готово</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Access denied</source>
         <translation>Доступ запрещён</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Could not connect</source>
         <translation>Не удалось установить соединение</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Disconnected</source>
         <translation>Соединение разорвано</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Permission denied</source>
         <translation>Доступ запрещён</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Insufficient bandwidth</source>
         <translation>Недостаточная скорость передачи данных</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Network unavailable</source>
         <translation>Сеть недоступна</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Network communication error</source>
         <translation>Ошибка сетевого обмена данными</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Streaming not supported</source>
         <translation>Потоковое воспроизведение не поддерживается</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Server alert</source>
         <translation type="unfinished">Сигнал сервера</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Invalid protocol</source>
         <translation>Некорректный протокол</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Invalid URL</source>
         <translation>Некорректный адрес URL</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Multicast error</source>
         <translation>Ошибка широковещательной передачи</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Proxy server error</source>
         <translation>Ошибка прокси-сервера</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Proxy server not supported</source>
         <translation>Прокси-сервер не поддерживается</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Audio output error</source>
         <translation>Ошибка воспроизведения звука</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Video output error</source>
         <translation>Ошибка воспроизведения видео</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Decoder error</source>
         <translation>Ошибка декодирования</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Audio or video components could not be played</source>
         <translation>Аудио- или видео-состовляющая не может быть воспроизведена</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>DRM error</source>
         <translation>Ошибка DRM</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Unknown error (%1)</source>
         <translation>Неизвестная ошибка (%1)</translation>
     </message>
@@ -362,33 +290,26 @@
 <context>
     <name>Phonon::MMF::AbstractMediaPlayer</name>
     <message>
-        <location filename="../src/3rdparty/phonon/mmf/abstractmediaplayer.cpp" line="+73"/>
         <source>Not ready to play</source>
         <translation>Не готов к воспроизведению</translation>
     </message>
     <message>
-        <location line="+161"/>
-        <location line="+10"/>
         <source>Error opening file</source>
         <translation>Ошибка открытия файла</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Error opening URL</source>
         <translation>Ошибка открытия адреса URL</translation>
     </message>
     <message>
-        <location line="+83"/>
         <source>Setting volume failed</source>
         <translation>Не удалось установить уровень громкости</translation>
     </message>
     <message>
-        <location line="+45"/>
         <source>Loading clip failed</source>
         <translation>Не удалось загрузить клип</translation>
     </message>
     <message>
-        <location line="+24"/>
         <source>Playback complete</source>
         <translation>Воспроизведение завершено</translation>
     </message>
@@ -396,22 +317,18 @@
 <context>
     <name>Phonon::MMF::AbstractVideoPlayer</name>
     <message>
-        <location filename="../src/3rdparty/phonon/mmf/abstractvideoplayer.cpp" line="+108"/>
         <source>Pause failed</source>
         <translation>Не удалось приостановить воспроизведение</translation>
     </message>
     <message>
-        <location line="+16"/>
         <source>Seek failed</source>
         <translation>Не удалось установить позицию</translation>
     </message>
     <message>
-        <location line="+54"/>
         <source>Getting position failed</source>
         <translation>Не удалось получить позицию</translation>
     </message>
     <message>
-        <location line="+66"/>
         <source>Opening clip failed</source>
         <translation>Не удалось открыть клип</translation>
     </message>
@@ -419,7 +336,6 @@
 <context>
     <name>Phonon::MMF::AudioEqualizer</name>
     <message>
-        <location filename="../src/3rdparty/phonon/mmf/audioequalizer.cpp" line="+92"/>
         <source>%1 Hz</source>
         <translation>%1 Гц</translation>
     </message>
@@ -427,7 +343,6 @@
 <context>
     <name>Phonon::MMF::AudioPlayer</name>
     <message>
-        <location filename="../src/3rdparty/phonon/mmf/audioplayer.cpp" line="+173"/>
         <source>Getting position failed</source>
         <translation>Не удалось получить позицию</translation>
     </message>
@@ -435,11 +350,6 @@
 <context>
     <name>Phonon::MMF::DsaVideoPlayer</name>
     <message>
-        <location filename="../src/3rdparty/phonon/mmf/videoplayer_dsa.cpp" line="+238"/>
-        <location line="+15"/>
-        <location line="+8"/>
-        <location line="+22"/>
-        <location line="+22"/>
         <source>Video display error</source>
         <translation>Ошибка отображения видео</translation>
     </message>
@@ -447,7 +357,6 @@
 <context>
     <name>Phonon::MMF::EffectFactory</name>
     <message>
-        <location filename="../src/3rdparty/phonon/mmf/effectfactory.cpp" line="+181"/>
         <source>Enabled</source>
         <translation>Включено</translation>
     </message>
@@ -455,61 +364,51 @@
 <context>
     <name>Phonon::MMF::EnvironmentalReverb</name>
     <message>
-        <location filename="../src/3rdparty/phonon/mmf/environmentalreverb.cpp" line="+146"/>
         <source>Decay HF ratio (%)</source>
         <extracomment>DecayHFRatio: Ratio of high-frequency decay time to the value specified by DecayTime.</extracomment>
         <translation>Коэффициент затухания ВЧ (%)</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Decay time (ms)</source>
         <extracomment>DecayTime: Time over which reverberation is diminished.</extracomment>
         <translation>Время затухания (мс)</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Density (%)</source>
         <extracomment>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.</extracomment>
         <translation>Плотность (%)</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Diffusion (%)</source>
         <extracomment>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.</extracomment>
         <translation>Рассеивание (%)</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Reflections delay (ms)</source>
         <extracomment>ReflectionsDelay: Amount of delay between the arrival the direct path from the source and the arrival of the first reflection.</extracomment>
         <translation>Затухание отражений (мс)</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Reflections level (mB)</source>
         <extracomment>ReflectionsLevel: Amplitude of reflections. This value is corrected by the RoomLevel to give the final reflection amplitude.</extracomment>
         <translation>Уровень отражений (мБар)</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Reverb delay (ms)</source>
         <extracomment>ReverbDelay: Amount of time between arrival of the first reflection and start of the late reverberation.</extracomment>
         <translation>Задержка эха (мс)</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Reverb level (mB)</source>
         <extracomment>ReverbLevel Amplitude of reverberations. This value is corrected by the RoomLevel to give the final reverberation amplitude.</extracomment>
         <translation>Уровень эха (мБар)</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Room HF level</source>
         <extracomment>RoomHFLevel: Amplitude of low-pass filter used to attenuate the high frequency component of reflected sound.</extracomment>
         <translation>Уровень ВЧ отражений</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Room level (mB)</source>
         <extracomment>RoomLevel: Master volume control for all reflected sound.</extracomment>
         <translation>Уровень отражений (мБар)</translation>
@@ -518,20 +417,17 @@
 <context>
     <name>Phonon::MMF::MediaObject</name>
     <message>
-        <location filename="../src/3rdparty/phonon/mmf/mediaobject.cpp" line="+276"/>
         <source>Error opening source: type not supported</source>
-        <translation>Ошибка открытыия источника: тип не поддерживается</translation>
-    </message>
-    <message>
-        <location line="+18"/>
+        <translation>Ошибка открытия источника: тип не поддерживается</translation>
+    </message>
+    <message>
         <source>Error opening source: media type could not be determined</source>
-        <translation>Ошибка открытыия источника: тип носителя не определён</translation>
+        <translation>Ошибка открытия источника: не удалось определить тип медиа-данных</translation>
     </message>
 </context>
 <context>
     <name>Phonon::MMF::StereoWidening</name>
     <message>
-        <location filename="../src/3rdparty/phonon/mmf/stereowidening.cpp" line="+79"/>
         <source>Level (%)</source>
         <translation>Уровень (%)</translation>
     </message>
@@ -539,8 +435,6 @@
 <context>
     <name>Phonon::MMF::SurfaceVideoPlayer</name>
     <message>
-        <location filename="../src/3rdparty/phonon/mmf/videoplayer_surface.cpp" line="+126"/>
-        <location line="+16"/>
         <source>Video display error</source>
         <translation>Ошибка отображения видео</translation>
     </message>
@@ -548,22 +442,14 @@
 <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>Громкость: %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>Используйте данный регулятор для настройки громкости. Крайнее левое положение соответствует 0%, крайнее правое - %1%</translation>
     </message>
     <message>
-        <location line="+67"/>
         <source>Muted</source>
         <translation>Без звука</translation>
     </message>
@@ -571,12 +457,10 @@
 <context>
     <name>Q3Accel</name>
     <message>
-        <location filename="../src/qt3support/other/q3accel.cpp" line="+481"/>
         <source>%1, %2 not defined</source>
         <translation>%1, %2 не определён</translation>
     </message>
     <message>
-        <location line="+36"/>
         <source>Ambiguous %1 not handled</source>
         <translation type="unfinished"></translation>
     </message>
@@ -584,27 +468,22 @@
 <context>
     <name>Q3DataTable</name>
     <message>
-        <location filename="../src/qt3support/sql/q3datatable.cpp" line="+285"/>
         <source>True</source>
         <translation>Да</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>False</source>
         <translation>Нет</translation>
     </message>
     <message>
-        <location line="+505"/>
         <source>Insert</source>
         <translation>Вставить</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Update</source>
         <translation>Обновить</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Delete</source>
         <translation>Удалить</translation>
     </message>
@@ -612,313 +491,238 @@
 <context>
     <name>Q3FileDialog</name>
     <message>
-        <location filename="../src/qt3support/dialogs/q3filedialog.cpp" line="+835"/>
         <source>Copy or Move a File</source>
         <translation>Копировать или переместить файл</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Read: %1</source>
         <translation>Чтение: %1</translation>
     </message>
     <message>
-        <location line="+6"/>
-        <location line="+30"/>
         <source>Write: %1</source>
         <translation>Запись: %1</translation>
     </message>
     <message>
-        <location line="-22"/>
-        <location line="+1579"/>
         <source>Cancel</source>
         <translation>Отмена</translation>
     </message>
     <message>
-        <location line="-157"/>
-        <location line="+49"/>
-        <location line="+2149"/>
-        <location filename="../src/qt3support/dialogs/q3filedialog_mac.cpp" line="+133"/>
         <source>All Files (*)</source>
         <translation>Все файлы (*)</translation>
     </message>
     <message>
-        <location line="-2085"/>
         <source>Name</source>
         <translation>Имя</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Size</source>
         <translation>Размер</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Type</source>
         <translation>Тип</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Date</source>
         <translation>Дата</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Attributes</source>
         <translation>Атрибуты</translation>
     </message>
     <message>
-        <location line="+35"/>
-        <location line="+2027"/>
         <source>&amp;OK</source>
         <translation>&amp;ОК</translation>
     </message>
     <message>
-        <location line="-1987"/>
         <source>Look &amp;in:</source>
         <translation>&amp;Папка:</translation>
     </message>
     <message>
-        <location line="+1"/>
-        <location line="+1977"/>
-        <location line="+16"/>
         <source>File &amp;name:</source>
         <translation>&amp;Имя файла:</translation>
     </message>
     <message>
-        <location line="-1992"/>
         <source>File &amp;type:</source>
         <translation>&amp;Тип файла:</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Back</source>
         <translation>Назад</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>One directory up</source>
         <translation>Вверх на один уровень</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Create New Folder</source>
         <translation>Создать папку</translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>List View</source>
         <translation>Список</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Detail View</source>
         <translation>Подробный вид</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Preview File Info</source>
         <translation>Предпросмотр информации о файле</translation>
     </message>
     <message>
-        <location line="+19"/>
         <source>Preview File Contents</source>
         <translation>Предпросмотр содержимого файла</translation>
     </message>
     <message>
-        <location line="+88"/>
         <source>Read-write</source>
         <translation>Чтение и запись</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Read-only</source>
         <translation>Только чтение</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Write-only</source>
         <translation>Только запись</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Inaccessible</source>
         <translation>Нет доступа</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Symlink to File</source>
         <translation>Ссылка на файл</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Symlink to Directory</source>
         <translation>Ссылка на каталог</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Symlink to Special</source>
         <translation>Ссылка на спецфайл</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>File</source>
         <translation>Файл</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Dir</source>
         <translation>Каталог</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Special</source>
         <translation>Спецфайл</translation>
     </message>
     <message>
-        <location line="+704"/>
-        <location line="+1999"/>
-        <location filename="../src/qt3support/dialogs/q3filedialog_win.cpp" line="+209"/>
         <source>Open</source>
         <translation>Открыть</translation>
     </message>
     <message>
-        <location line="-1889"/>
-        <location filename="../src/qt3support/dialogs/q3filedialog_win.cpp" line="+71"/>
         <source>Save As</source>
         <translation>Сохранить как</translation>
     </message>
     <message>
-        <location line="+642"/>
-        <location line="+5"/>
-        <location line="+355"/>
         <source>&amp;Open</source>
         <translation>&amp;Открыть</translation>
     </message>
     <message>
-        <location line="-357"/>
-        <location line="+341"/>
         <source>&amp;Save</source>
         <translation>&amp;Сохранить</translation>
     </message>
     <message>
-        <location line="-334"/>
         <source>&amp;Rename</source>
         <translation>&amp;Переименовать</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Delete</source>
         <translation>&amp;Удалить</translation>
     </message>
     <message>
-        <location line="+20"/>
         <source>R&amp;eload</source>
         <translation>О&amp;бновить</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Sort by &amp;Name</source>
         <translation>По &amp;имени</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Sort by &amp;Size</source>
         <translation>По &amp;размеру</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Sort by &amp;Date</source>
         <translation>По &amp;дате</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>&amp;Unsorted</source>
         <translation>&amp;Не упорядочивать</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Sort</source>
         <translation>Упорядочить</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Show &amp;hidden files</source>
         <translation>Показать ск&amp;рытые файлы</translation>
     </message>
     <message>
-        <location line="+31"/>
         <source>the file</source>
         <translation>файл</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>the directory</source>
         <translation>каталог</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>the symlink</source>
         <translation>ссылку</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Delete %1</source>
         <translation>Удалить %1</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;Вы действительно хотите удалить %1 &quot;%2&quot;?&lt;/qt&gt;</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>&amp;Yes</source>
         <translation>&amp;Да</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>&amp;No</source>
         <translation>&amp;Нет</translation>
     </message>
     <message>
-        <location line="+36"/>
         <source>New Folder 1</source>
         <translation>Новая папка 1</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>New Folder</source>
         <translation>Новая папка</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>New Folder %1</source>
         <translation>Новая папка %1</translation>
     </message>
     <message>
-        <location line="+98"/>
         <source>Find Directory</source>
         <translation>Найти каталог</translation>
     </message>
     <message>
-        <location line="+5"/>
-        <location line="+108"/>
         <source>Directories</source>
         <translation>Каталоги</translation>
     </message>
     <message>
-        <location line="-2"/>
         <source>Directory:</source>
         <translation>Каталог:</translation>
     </message>
     <message>
-        <location line="+40"/>
-        <location line="+1009"/>
         <source>Error</source>
         <translation>Ошибка</translation>
     </message>
     <message>
-        <location line="-1008"/>
         <source>%1
 File not found.
 Check path and filename.</source>
@@ -927,17 +731,14 @@
 Проверьте правильность пути и имени файла.</translation>
     </message>
     <message>
-        <location filename="../src/qt3support/dialogs/q3filedialog_win.cpp" line="-191"/>
         <source>All Files (*.*)</source>
         <translation>Все файлы (*.*)</translation>
     </message>
     <message>
-        <location line="+264"/>
         <source>Open </source>
         <translation>Открыть </translation>
     </message>
     <message>
-        <location line="+107"/>
         <source>Select a Directory</source>
         <translation>Выбрать каталог</translation>
     </message>
@@ -945,29 +746,24 @@
 <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>Не удалось прочитать каталог
 %1</translation>
     </message>
     <message>
-        <location line="+45"/>
         <source>Could not create directory
 %1</source>
         <translation>Не удалось создать каталог
 %1</translation>
     </message>
     <message>
-        <location line="+34"/>
         <source>Could not remove file or directory
 %1</source>
         <translation>Не удалось удалить файл или каталог
 %1</translation>
     </message>
     <message>
-        <location line="+27"/>
         <source>Could not rename
 %1
 to
@@ -978,14 +774,12 @@
 %2</translation>
     </message>
     <message>
-        <location line="+25"/>
         <source>Could not open
 %1</source>
         <translation>Не удалось открыть
 %1</translation>
     </message>
     <message>
-        <location line="+68"/>
         <source>Could not write
 %1</source>
         <translation>Не удалось записать
@@ -995,12 +789,10 @@
 <context>
     <name>Q3MainWindow</name>
     <message>
-        <location filename="../src/qt3support/widgets/q3mainwindow.cpp" line="+2051"/>
         <source>Line up</source>
         <translation>Выровнять</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Customize...</source>
         <translation>Настроить...</translation>
     </message>
@@ -1008,7 +800,6 @@
 <context>
     <name>Q3NetworkProtocol</name>
     <message>
-        <location filename="../src/qt3support/network/q3networkprotocol.cpp" line="+854"/>
         <source>Operation stopped by the user</source>
         <translation>Операция остановлена пользователем</translation>
     </message>
@@ -1016,8 +807,6 @@
 <context>
     <name>Q3ProgressDialog</name>
     <message>
-        <location filename="../src/qt3support/dialogs/q3progressdialog.cpp" line="+224"/>
-        <location line="+61"/>
         <source>Cancel</source>
         <translation>Отмена</translation>
     </message>
@@ -1025,28 +814,22 @@
 <context>
     <name>Q3TabDialog</name>
     <message>
-        <location filename="../src/qt3support/dialogs/q3tabdialog.cpp" line="+190"/>
-        <location line="+824"/>
         <source>OK</source>
         <translation>ОК</translation>
     </message>
     <message>
-        <location line="-366"/>
         <source>Apply</source>
         <translation>Применить</translation>
     </message>
     <message>
-        <location line="+43"/>
         <source>Help</source>
         <translation>Справка</translation>
     </message>
     <message>
-        <location line="+45"/>
         <source>Defaults</source>
         <translation>По умолчанию</translation>
     </message>
     <message>
-        <location line="+50"/>
         <source>Cancel</source>
         <translation>Отмена</translation>
     </message>
@@ -1054,38 +837,30 @@
 <context>
     <name>Q3TextEdit</name>
     <message>
-        <location filename="../src/qt3support/text/q3textedit.cpp" line="+5429"/>
         <source>&amp;Undo</source>
         <translation>&amp;Отменить действие</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Redo</source>
         <translation>&amp;Повторить действие</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Cu&amp;t</source>
         <translation>&amp;Вырезать</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Copy</source>
         <translation>&amp;Копировать</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>&amp;Paste</source>
         <translation>В&amp;ставить</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Clear</source>
         <translation>Очистить</translation>
     </message>
     <message>
-        <location line="+4"/>
-        <location line="+2"/>
         <source>Select All</source>
         <translation>Выделить всё</translation>
     </message>
@@ -1093,67 +868,54 @@
 <context>
     <name>Q3TitleBar</name>
     <message>
-        <location filename="../src/plugins/accessible/compat/q3complexwidgets.cpp" line="+246"/>
         <source>System</source>
         <translation>Системное меню</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Restore up</source>
         <translation>Восстановить</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Minimize</source>
         <translation>Свернуть</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Restore down</source>
         <translation>Восстановить</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Maximize</source>
         <translation>Распахнуть</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Close</source>
         <translation>Закрыть</translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>Contains commands to manipulate the window</source>
         <translation>Содержит команды управления окном</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Puts a minimized window back to normal</source>
         <translation>Возвращает свёрнутое окно в нормальное состояние</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Moves the window out of the way</source>
         <translation>Сворачивает окно</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Puts a maximized window back to normal</source>
         <translation>Возвращает распахнутое окно в нормальное состояние</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Makes the window full screen</source>
         <translation>Разворачивает окно на весь экран</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Closes the window</source>
         <translation>Зыкрывает окно</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Displays the name of the window and contains controls to manipulate it</source>
         <translation>Отображает название окна и содержит команды управления им</translation>
     </message>
@@ -1161,7 +923,6 @@
 <context>
     <name>Q3ToolBar</name>
     <message>
-        <location filename="../src/qt3support/widgets/q3toolbar.cpp" line="+692"/>
         <source>More...</source>
         <translation>Больше...</translation>
     </message>
@@ -1169,51 +930,38 @@
 <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>Протокол &quot;%1&quot; не поддерживается</translation>
     </message>
     <message>
-        <location line="-260"/>
         <source>The protocol `%1&apos; does not support listing directories</source>
         <translation>Протокол &quot;%1&quot; не поддерживает просмотр каталогов</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>The protocol `%1&apos; does not support creating new directories</source>
         <translation>Протокол &quot;%1&quot; не поддерживает создание каталогов</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>The protocol `%1&apos; does not support removing files or directories</source>
         <translation>Протокол &quot;%1&quot; не поддерживает удаление файлов или каталогов</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>The protocol `%1&apos; does not support renaming files or directories</source>
         <translation>Протокол &quot;%1&quot; не поддерживает переименование файлов или каталогов</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>The protocol `%1&apos; does not support getting files</source>
         <translation>Протокол &quot;%1&quot; не поддерживает доставку файлов</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>The protocol `%1&apos; does not support putting files</source>
         <translation>Протокол &quot;%1&quot; не поддерживает отправку файлов</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>Протокол &quot;%1&quot; не поддерживает копирование или перемещение файлов или каталогов</translation>
     </message>
     <message>
-        <location line="+237"/>
-        <location line="+1"/>
         <source>(unknown)</source>
         <translation>(неизвестно)</translation>
     </message>
@@ -1221,27 +969,22 @@
 <context>
     <name>Q3Wizard</name>
     <message>
-        <location filename="../src/qt3support/dialogs/q3wizard.cpp" line="+177"/>
         <source>&amp;Cancel</source>
         <translation>От&amp;мена</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&lt; &amp;Back</source>
         <translation>&lt; &amp;Назад</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Next &gt;</source>
         <translation>&amp;Далее &gt;</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Finish</source>
         <translation>&amp;Завершить</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Help</source>
         <translation>&amp;Справка</translation>
     </message>
@@ -1249,45 +992,30 @@
 <context>
     <name>QAbstractSocket</name>
     <message>
-        <location filename="../src/network/socket/qabstractsocket.cpp" line="+916"/>
-        <location filename="../src/network/socket/qhttpsocketengine.cpp" line="+629"/>
-        <location filename="../src/network/socket/qsocks5socketengine.cpp" line="+661"/>
-        <location line="+26"/>
         <source>Host not found</source>
         <translation>Узел не найден</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>Отказано в соединении</translation>
     </message>
     <message>
-        <location line="+142"/>
         <source>Connection timed out</source>
         <translation>Время на соединение истекло</translation>
     </message>
     <message>
-        <location line="-559"/>
-        <location line="+809"/>
-        <location line="+220"/>
         <source>Operation on socket is not supported</source>
         <translation>Операция с сокетом не поддерживается</translation>
     </message>
     <message>
-        <location filename="../src/network/access/qhttpnetworkconnection.cpp" line="+625"/>
-        <location filename="../src/network/socket/qabstractsocket.cpp" line="+203"/>
         <source>Socket operation timed out</source>
         <translation>Время на операцию с сокетом истекло</translation>
     </message>
     <message>
-        <location filename="../src/network/socket/qabstractsocket.cpp" line="+380"/>
         <source>Socket is not connected</source>
         <translation>Сокет не подключён</translation>
     </message>
     <message>
-        <location filename="../src/network/socket/qsocks5socketengine.cpp" line="-8"/>
         <source>Network unreachable</source>
         <translation>Сеть недоступна</translation>
     </message>
@@ -1295,17 +1023,14 @@
 <context>
     <name>QAbstractSpinBox</name>
     <message>
-        <location filename="../src/gui/widgets/qabstractspinbox.cpp" line="+1263"/>
         <source>&amp;Step up</source>
         <translation>Шаг вв&amp;ерх</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Step &amp;down</source>
         <translation>Шаг вн&amp;из</translation>
     </message>
     <message>
-        <location line="-8"/>
         <source>&amp;Select All</source>
         <translation>&amp;Выделить всё</translation>
     </message>
@@ -1313,7 +1038,6 @@
 <context>
     <name>QAccessibleButton</name>
     <message>
-        <location filename="../src/plugins/accessible/widgets/simplewidgets.cpp" line="+250"/>
         <source>Press</source>
         <translation>Нажать</translation>
     </message>
@@ -1321,27 +1045,22 @@
 <context>
     <name>QApplication</name>
     <message>
-        <location filename="../src/gui/dialogs/qmessagebox.h" line="+354"/>
         <source>Executable &apos;%1&apos; requires Qt %2, found Qt %3.</source>
         <translation>Программный модуль &quot;%1&quot; требует Qt %2, найдена версия %3.</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Incompatible Qt Library Error</source>
         <translation>Ошибка совместимости библиотеки Qt</translation>
     </message>
     <message>
-        <location filename="../src/gui/accessible/qaccessibleobject.cpp" line="+376"/>
         <source>Activate</source>
         <translation>Активировать</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Activates the program&apos;s main window</source>
         <translation>Активирует главное окно программы</translation>
     </message>
     <message>
-        <location filename="../src/gui/kernel/qapplication.cpp" line="-13"/>
         <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>
@@ -1350,22 +1069,18 @@
 <context>
     <name>QAxSelect</name>
     <message>
-        <location filename="../src/activeqt/container/qaxselect.ui"/>
         <source>Select ActiveX Control</source>
         <translation>Выбор компоненты ActiveX</translation>
     </message>
     <message>
-        <location/>
         <source>OK</source>
         <translation>Выбрать</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Cancel</source>
         <translation>От&amp;мена</translation>
     </message>
     <message>
-        <location/>
         <source>COM &amp;Object:</source>
         <translation>&amp;Объект COM:</translation>
     </message>
@@ -1373,17 +1088,14 @@
 <context>
     <name>QCheckBox</name>
     <message>
-        <location filename="../src/plugins/accessible/widgets/simplewidgets.cpp" line="-136"/>
         <source>Uncheck</source>
         <translation>Снять отметку</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Check</source>
         <translation>Отметить</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Toggle</source>
         <translation>Переключить</translation>
     </message>
@@ -1391,57 +1103,46 @@
 <context>
     <name>QColorDialog</name>
     <message>
-        <location filename="../src/gui/dialogs/qcolordialog.cpp" line="+1378"/>
         <source>Hu&amp;e:</source>
         <translation>&amp;Тон:</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Sat:</source>
         <translation>&amp;Нас:</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Val:</source>
         <translation>&amp;Ярк:</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Red:</source>
         <translation>&amp;Красный:</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Green:</source>
         <translation>&amp;Зелёный:</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Bl&amp;ue:</source>
         <translation>С&amp;иний:</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>A&amp;lpha channel:</source>
         <translation>&amp;Альфа-канал:</translation>
     </message>
     <message>
-        <location line="+101"/>
         <source>Select Color</source>
         <translation>Выбор цвета</translation>
     </message>
     <message>
-        <location line="+183"/>
         <source>&amp;Basic colors</source>
         <translation>&amp;Основные цвета</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Custom colors</source>
         <translation>&amp;Пользовательские цвета</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Add to Custom Colors</source>
         <translation>&amp;Добавить к пользовательским цветам</translation>
     </message>
@@ -1449,23 +1150,18 @@
 <context>
     <name>QComboBox</name>
     <message>
-        <location filename="../src/plugins/accessible/widgets/complexwidgets.cpp" line="+1772"/>
-        <location line="+65"/>
         <source>Open</source>
         <translation>Открыть</translation>
     </message>
     <message>
-        <location filename="../src/gui/itemviews/qitemeditorfactory.cpp" line="+556"/>
         <source>False</source>
         <translation>Нет</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>True</source>
         <translation>Да</translation>
     </message>
     <message>
-        <location filename="../src/plugins/accessible/widgets/complexwidgets.cpp" line="+0"/>
         <source>Close</source>
         <translation>Закрыть</translation>
     </message>
@@ -1473,43 +1169,36 @@
 <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: пустой ключ</translation>
     </message>
     <message>
-        <location line="+12"/>
         <source>%1: unable to make key</source>
         <comment>QSystemSemaphore</comment>
         <translation>%1: невозможно создать ключ</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>%1: ftok failed</source>
         <comment>QSystemSemaphore</comment>
         <translation>%1: ошибка ftok</translation>
     </message>
     <message>
-        <location filename="../src/corelib/kernel/qsystemsemaphore_symbian.cpp" line="+65"/>
         <source>%1: already exists</source>
         <comment>QSystemSemaphore</comment>
         <translation>%1: уже существует</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>%1: does not exist</source>
         <comment>QSystemSemaphore</comment>
         <translation>%1: не существует</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>%1: out of resources</source>
         <comment>QSystemSemaphore</comment>
         <translation>%1: недостаточно ресурсов</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>%1: unknown error %2</source>
         <comment>QSystemSemaphore</comment>
         <translation>%1: неизвестная ошибка %2</translation>
@@ -1518,22 +1207,18 @@
 <context>
     <name>QDB2Driver</name>
     <message>
-        <location filename="../src/sql/drivers/db2/qsql_db2.cpp" line="+1253"/>
         <source>Unable to connect</source>
         <translation>Невозможно соединиться</translation>
     </message>
     <message>
-        <location line="+298"/>
         <source>Unable to commit transaction</source>
         <translation>Невозможно завершить транзакцию</translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>Unable to rollback transaction</source>
         <translation>Невозможно отозвать транзакцию</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Unable to set autocommit</source>
         <translation>Невозможно установить автозавершение транзакций</translation>
     </message>
@@ -1541,33 +1226,26 @@
 <context>
     <name>QDB2Result</name>
     <message>
-        <location line="-1030"/>
-        <location line="+240"/>
         <source>Unable to execute statement</source>
         <translation>Невозможно выполнить выражение</translation>
     </message>
     <message>
-        <location line="-203"/>
         <source>Unable to prepare statement</source>
         <translation>Невозможно подготовить выражение</translation>
     </message>
     <message>
-        <location line="+193"/>
         <source>Unable to bind variable</source>
         <translation>Невозможно привязать значение</translation>
     </message>
     <message>
-        <location line="+89"/>
         <source>Unable to fetch record %1</source>
         <translation>Невозможно получить запись %1</translation>
     </message>
     <message>
-        <location line="+19"/>
         <source>Unable to fetch next</source>
         <translation>Невозможно получить следующую строку</translation>
     </message>
     <message>
-        <location line="+21"/>
         <source>Unable to fetch first</source>
         <translation>Невозможно получить первую строку</translation>
     </message>
@@ -1575,22 +1253,18 @@
 <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>
@@ -1598,17 +1272,14 @@
 <context>
     <name>QDeclarativeAbstractAnimation</name>
     <message>
-        <location filename="../src/declarative/util/qdeclarativeanimation.cpp" line="+166"/>
         <source>Cannot animate non-existent property &quot;%1&quot;</source>
         <translation>Невозможно анимировать несуществуещее свойство &quot;%1&quot;</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Cannot animate read-only property &quot;%1&quot;</source>
         <translation>Невозможно анимировать свойство только для чтения &quot;%1&quot;</translation>
     </message>
     <message>
-        <location filename="../src/declarative/util/qdeclarativeutilmodule.cpp" line="+122"/>
         <source>Animation is an abstract class</source>
         <translation>Animation - это абстрактный класс</translation>
     </message>
@@ -1616,7 +1287,6 @@
 <context>
     <name>QDeclarativeAnchorAnimation</name>
     <message>
-        <location filename="../src/declarative/util/qdeclarativeanimation.cpp" line="+2553"/>
         <source>Cannot set a duration of &lt; 0</source>
         <translation>Невозможно установить длительность &lt; 0</translation>
     </message>
@@ -1624,67 +1294,50 @@
 <context>
     <name>QDeclarativeAnchors</name>
     <message>
-        <location filename="../src/declarative/graphicsitems/qdeclarativeanchors.cpp" line="+180"/>
         <source>Possible anchor loop detected on fill.</source>
         <translation type="unfinished">Обнаружена возможная цикличная привязка на fill.</translation>
     </message>
     <message>
-        <location line="+29"/>
         <source>Possible anchor loop detected on centerIn.</source>
         <translation type="unfinished">Обнаружена возможная цикличная привязка на centerIn.</translation>
     </message>
     <message>
-        <location line="+201"/>
-        <location line="+34"/>
-        <location line="+610"/>
-        <location line="+37"/>
         <source>Cannot anchor to an item that isn&apos;t a parent or sibling.</source>
         <translation type="unfinished">Невозможно установить привязку к элементу, не являющемуся родителем или соседом.</translation>
     </message>
     <message>
-        <location line="-534"/>
         <source>Possible anchor loop detected on vertical anchor.</source>
         <translation type="unfinished">Обнаружена возможная цикличная привязка к вертикальной привязке.</translation>
     </message>
     <message>
-        <location line="+59"/>
         <source>Possible anchor loop detected on horizontal anchor.</source>
         <translation type="unfinished">Обнаружена возможная цикличная привязка к горизонтальной привязке.</translation>
     </message>
     <message>
-        <location line="+422"/>
         <source>Cannot specify left, right, and hcenter anchors.</source>
         <translation type="unfinished">Невозможно задать левую, правую и среднюю привязки.</translation>
     </message>
     <message>
-        <location line="+10"/>
-        <location line="+37"/>
         <source>Cannot anchor to a null item.</source>
         <translation type="unfinished">Невозможно привязаться к нулевому элементу.</translation>
     </message>
     <message>
-        <location line="-34"/>
         <source>Cannot anchor a horizontal edge to a vertical edge.</source>
         <translation type="unfinished">Невозможно привязать горизонтальный край к вертикальному.</translation>
     </message>
     <message>
-        <location line="+6"/>
-        <location line="+37"/>
         <source>Cannot anchor item to self.</source>
         <translation type="unfinished">Невозможно привязать элемент к самому себе.</translation>
     </message>
     <message>
-        <location line="-25"/>
         <source>Cannot specify top, bottom, and vcenter anchors.</source>
         <translation type="unfinished">Невозможно задать верхнюю, нижнюю и среднюю привязки.</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Baseline anchor cannot be used in conjunction with top, bottom, or vcenter anchors.</source>
         <translation type="unfinished">Невозможно использовать базовую привязку вместе с верхней, нижней и центральной по вертикали.</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>Cannot anchor a vertical edge to a horizontal edge.</source>
         <translation type="unfinished">Невозможно привязать вертикальный край к горизонтальному.</translation>
     </message>
@@ -1692,7 +1345,6 @@
 <context>
     <name>QDeclarativeAnimatedImage</name>
     <message>
-        <location filename="../src/declarative/graphicsitems/qdeclarativeitemsmodule.cpp" line="+86"/>
         <source>Qt was built without support for QMovie</source>
         <translation>Qt было собрано без поддержки QMovie</translation>
     </message>
@@ -1700,7 +1352,6 @@
 <context>
     <name>QDeclarativeBehavior</name>
     <message>
-        <location filename="../src/declarative/util/qdeclarativebehavior.cpp" line="+127"/>
         <source>Cannot change the animation assigned to a Behavior.</source>
         <translation type="unfinished">Невозможно изменить анимацию, назначенную поведению.</translation>
     </message>
@@ -1708,7 +1359,6 @@
 <context>
     <name>QDeclarativeBinding</name>
     <message>
-        <location filename="../src/declarative/qml/qdeclarativebinding.cpp" line="+238"/>
         <source>Binding loop detected for property &quot;%1&quot;</source>
         <translation type="unfinished">Обнаружена цикличная привязка для свойства &quot;%1&quot;</translation>
     </message>
@@ -1716,7 +1366,6 @@
 <context>
     <name>QDeclarativeCompiledBindings</name>
     <message>
-        <location filename="../src/declarative/qml/qdeclarativecompiledbindings.cpp" line="+372"/>
         <source>Binding loop detected for property &quot;%1&quot;</source>
         <translation type="unfinished">Обнаружена цикличная привязка для свойства &quot;%1&quot;</translation>
     </message>
@@ -1724,381 +1373,303 @@
 <context>
     <name>QDeclarativeCompiler</name>
     <message>
-        <location filename="../src/declarative/qml/qdeclarativecompiler.cpp" line="+186"/>
-        <location line="+1592"/>
-        <location line="+186"/>
-        <location line="+81"/>
-        <location line="+75"/>
-        <location line="+487"/>
         <source>Invalid property assignment: &quot;%1&quot; is a read-only property</source>
         <translation>Некорректное присваивание свойства: &quot;%1&quot; свойство только для чтения</translation>
     </message>
     <message>
-        <location line="-2412"/>
         <source>Invalid property assignment: unknown enumeration</source>
         <translation>Некорректное присваивание свойства: неизвестное перечисление</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Invalid property assignment: string expected</source>
         <translation>Некорректное присваивание свойства: ожидается значение типа &quot;string&quot;</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Invalid property assignment: url expected</source>
         <translation>Некорректное присваивание свойства: ожидается значение типа &quot;url&quot;</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>Invalid property assignment: unsigned int expected</source>
         <translation>Некорректное присваивание свойства: ожидается значение типа &quot;unsigned int&quot;</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>Invalid property assignment: int expected</source>
         <translation>Некорректное присваивание свойства: ожидается значение типа &quot;int&quot;</translation>
     </message>
     <message>
-        <location line="+4"/>
-        <source>Invalid property assignment: float expected</source>
-        <translation>Некорректное присваивание свойства: ожидается значение типа &quot;float&quot;</translation>
-    </message>
-    <message>
-        <location line="+3"/>
-        <source>Invalid property assignment: double expected</source>
-        <translation>Некорректное присваивание свойства: ожидается значение типа &quot;double&quot;</translation>
-    </message>
-    <message>
-        <location line="+6"/>
+        <source>Invalid property assignment: number expected</source>
+        <translation>Некорректное присваивание свойства: ожидается число</translation>
+    </message>
+    <message>
         <source>Invalid property assignment: color expected</source>
         <translation>Некорректное присваивание свойства: ожидается значение типа &quot;color&quot;</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Invalid property assignment: date expected</source>
         <translation>Некорректное присваивание свойства: ожидается значение типа &quot;date&quot;</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Invalid property assignment: time expected</source>
         <translation>Некорректное присваивание свойства: ожидается значение типа &quot;time&quot;</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Invalid property assignment: datetime expected</source>
         <translation>Некорректное присваивание свойства: ожидается значение типа &quot;datetime&quot;</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Invalid property assignment: point expected</source>
         <translation>Некорректное присваивание свойства: ожидается значение типа &quot;point&quot;</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Invalid property assignment: size expected</source>
         <translation>Некорректное присваивание свойства: ожидается значение типа &quot;size&quot;</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Invalid property assignment: rect expected</source>
         <translation>Некорректное присваивание свойства: ожидается значение типа &quot;rect&quot;</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Invalid property assignment: boolean expected</source>
         <translation>Некорректное присваивание свойства: ожидается значение булевого типа</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Invalid property assignment: 3D vector expected</source>
         <translation>Некорректное присваивание свойства: ожидается значение типа &quot;трёхмерный вектор&quot;</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Invalid property assignment: unsupported type &quot;%1&quot;</source>
         <translation>Некорректное присваивание свойства: неподдерживаемый тип &quot;%1&quot;</translation>
     </message>
     <message>
-        <location line="+275"/>
         <source>Element is not creatable.</source>
         <translation>Элемент не является создаваемым.</translation>
     </message>
     <message>
-        <location line="+618"/>
         <source>Component elements may not contain properties other than id</source>
         <translation type="unfinished">Элементы Component не могут содержать свойств кроме id</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Invalid component id specification</source>
         <translation type="unfinished">Некорректная спецификация id компонента</translation>
     </message>
     <message>
-        <location line="+6"/>
-        <location line="+478"/>
         <source>id is not unique</source>
         <translation>id не уникален</translation>
     </message>
     <message>
-        <location line="-468"/>
         <source>Invalid component body specification</source>
         <translation type="unfinished">Некорректная спецификация тела компонента</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Component objects cannot declare new properties.</source>
         <translation type="unfinished">Объекты Component не могут объявлять новые свойства.</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Component objects cannot declare new signals.</source>
         <translation type="unfinished">Объекты Component не могут объявлять новые сигналы.</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Component objects cannot declare new functions.</source>
         <translation type="unfinished">Объекты Component не могут объявлять новые функции.</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Cannot create empty component specification</source>
         <translation type="unfinished">Невозможно создать пустую спецификацю компонента</translation>
     </message>
     <message>
-        <location line="+89"/>
         <source>Incorrectly specified signal assignment</source>
         <translation type="unfinished">Неверно указано назначение сигнала</translation>
     </message>
     <message>
-        <location line="+12"/>
         <source>Cannot assign a value to a signal (expecting a script to be run)</source>
         <translation type="unfinished">Невозможно назначить значение сигналу (сценарий должен быть запущен)</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Empty signal assignment</source>
         <translation type="unfinished">Пустое назначение сигнала</translation>
     </message>
     <message>
-        <location line="+38"/>
         <source>Empty property assignment</source>
         <translation type="unfinished">Пустое назначение свойства</translation>
     </message>
     <message>
-        <location line="+12"/>
         <source>Attached properties cannot be used here</source>
         <translatorcomment>здесь - в данном контексте?</translatorcomment>
         <translation type="unfinished">Прикреплённые свойства не могут быть использованы здесь</translation>
     </message>
     <message>
-        <location line="+15"/>
-        <location line="+102"/>
         <source>Non-existent attached object</source>
         <translation type="unfinished">Несуществующий прикреплённый объект</translation>
     </message>
     <message>
-        <location line="-98"/>
-        <location line="+101"/>
         <source>Invalid attached object assignment</source>
         <translation type="unfinished">Некорректное назначение прикреплённого объекта</translation>
     </message>
     <message>
-        <location line="-48"/>
         <source>Cannot assign to non-existent default property</source>
         <translation type="unfinished">Невозможно назначить несуществующему свойству по умолчанию</translation>
     </message>
     <message>
-        <location line="+2"/>
-        <location line="+352"/>
         <source>Cannot assign to non-existent property &quot;%1&quot;</source>
         <translation type="unfinished">Невозможно назначить несуществующему свойству &quot;%1&quot;</translation>
     </message>
     <message>
-        <location line="-322"/>
         <source>Invalid use of namespace</source>
         <translation>Некорректное использование пространства имён</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Not an attached property name</source>
         <translation type="unfinished">Не является именем привязанного свойства</translation>
     </message>
     <message>
-        <location line="+182"/>
         <source>Invalid use of id property</source>
         <translation type="unfinished">Некорректное использование свойства id</translation>
     </message>
     <message>
-        <location line="+89"/>
-        <location line="+2"/>
         <source>Property has already been assigned a value</source>
         <translation type="unfinished">Свойству уже назначено значение</translation>
     </message>
     <message>
-        <location line="+12"/>
-        <location line="+7"/>
         <source>Invalid grouped property access</source>
         <translation type="unfinished">Некорректный доступ к сгруппированному свойству</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Cannot assign a value directly to a grouped property</source>
         <translation type="unfinished">Невозможно присвоить значение непосредственно сгруппированному свойству</translation>
     </message>
     <message>
-        <location line="+16"/>
         <source>Invalid property use</source>
         <translation>Некорректное использование свойства</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>Property assignment expected</source>
         <translation type="unfinished">Ожидается назначение свойства</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Single property assignment expected</source>
         <translation type="unfinished">Ожидается одиночное назначение свойства</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Unexpected object assignment</source>
         <translation type="unfinished">Неожиданное назначение объекта</translation>
     </message>
     <message>
-        <location line="+57"/>
         <source>Cannot assign object to list</source>
         <translation type="unfinished">Невозможно назначить объект списку</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Can only assign one binding to lists</source>
         <translation type="unfinished">Можно назначить только одну связь для списка</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Cannot assign primitives to lists</source>
         <translation type="unfinished">Невозможно назначить примитивы списку</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>Cannot assign multiple values to a script property</source>
         <translation type="unfinished">Невозможно назначить множественное значение свойству сценария</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Invalid property assignment: script expected</source>
         <translation type="unfinished">Некорректное присваивание свойства: ожидается сценарий</translation>
     </message>
     <message>
-        <location line="+105"/>
         <source>Cannot assign object to property</source>
         <translation type="unfinished">Невозможно назначить объектсвойству</translation>
     </message>
     <message>
-        <location line="+50"/>
         <source>&quot;%1&quot; cannot operate on &quot;%2&quot;</source>
         <translation>&quot;%1&quot; не может воздействовать на &quot;%2&quot;</translation>
     </message>
     <message>
-        <location line="+117"/>
         <source>Duplicate default property</source>
         <translation type="unfinished">Дублирование свойства по умолчанию</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Duplicate property name</source>
         <translation type="unfinished">Дублирование названия свойства</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Property names cannot begin with an upper case letter</source>
         <translation>Названия свойств не могут начинаться с заглавной буквы</translation>
     </message>
     <message>
-        <location line="+7"/>
+        <source>Illegal property name</source>
+        <translation>Недопустимое название свойства</translation>
+    </message>
+    <message>
         <source>Duplicate signal name</source>
         <translation type="unfinished">Дублирование названия сигнала</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Signal names cannot begin with an upper case letter</source>
         <translation>Названия сигналов не могут начинаться с заглавной буквы</translation>
     </message>
     <message>
-        <location line="+6"/>
+        <source>Illegal signal name</source>
+        <translation>Недопустимое название сигнала</translation>
+    </message>
+    <message>
         <source>Duplicate method name</source>
         <translation type="unfinished">Дублирование название метода</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Method names cannot begin with an upper case letter</source>
         <translation>Названия методов не могут начинаться с заглавной буквы</translation>
     </message>
     <message>
-        <location line="+21"/>
+        <source>Illegal method name</source>
+        <translation>Недопустимое название метода</translation>
+    </message>
+    <message>
         <source>Property value set multiple times</source>
         <translation type="unfinished">Значение свойства задано несколько раз</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Invalid property nesting</source>
         <translation type="unfinished">Некорректное вложенность свойств</translation>
     </message>
     <message>
-        <location line="+53"/>
         <source>Cannot override FINAL property</source>
         <translation>Невозможно переопределить свойство FINAL</translation>
     </message>
     <message>
-        <location line="+24"/>
         <source>Invalid property type</source>
         <translation>Некорректный тип свойства</translation>
     </message>
     <message>
-        <location line="+159"/>
         <source>Invalid empty ID</source>
         <translation>Некорректный пустой идентификатор</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>IDs cannot start with an uppercase letter</source>
         <translation>Идентификаторы не могут начинаться с заглавной буквы</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>IDs must start with a letter or underscore</source>
         <translation>Идентификаторы должны начинаться с буквы или подчёркивания</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>IDs must contain only letters, numbers, and underscores</source>
         <translation>Идентификаторы должны содержать только буквы, цифры и подчёркивания</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>ID illegally masks global JavaScript property</source>
         <translation type="unfinished">Идентификатор неверно маскирует глобальное свойство JavaScript</translation>
     </message>
     <message>
-        <location line="+31"/>
-        <location line="+9"/>
         <source>No property alias location</source>
         <translation type="unfinished">Отсутствует размещение псевдонима свойства</translation>
     </message>
     <message>
-        <location line="-4"/>
-        <location line="+25"/>
         <source>Invalid alias location</source>
         <translation type="unfinished">Некорректное размещение псевдонима</translation>
     </message>
     <message>
-        <location line="-16"/>
         <source>Invalid alias reference. An alias reference must be specified as &lt;id&gt; or &lt;id&gt;.&lt;property&gt;</source>
         <translation type="unfinished">Некорректная ссылка на псевдоним. Ссылка на псевдоним должна быть указана, как &lt;id&gt; или &lt;id&gt;.&lt;property&gt;</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Invalid alias reference. Unable to find id &quot;%1&quot;</source>
         <translation type="unfinished">Некорректная ссылка на псевдоним. Не удалось найти id &quot;%1&quot;</translation>
     </message>
@@ -2106,7 +1677,6 @@
 <context>
     <name>QDeclarativeComponent</name>
     <message>
-        <location filename="../src/declarative/qml/qdeclarativecomponent.cpp" line="+459"/>
         <source>Invalid empty URL</source>
         <translation>Пустой адрес URL</translation>
     </message>
@@ -2114,23 +1684,18 @@
 <context>
     <name>QDeclarativeCompositeTypeManager</name>
     <message>
-        <location filename="../src/declarative/qml/qdeclarativecompositetypemanager.cpp" line="+475"/>
-        <location line="+266"/>
         <source>Resource %1 unavailable</source>
         <translation>Ресурс &quot;%1&quot; недоступен</translation>
     </message>
     <message>
-        <location line="-122"/>
         <source>Namespace %1 cannot be used as a type</source>
         <translation>Пространство имён &quot;%1&quot; не может быть использовано в качестве типа</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>%1 %2</source>
         <translation>%1 %2</translation>
     </message>
     <message>
-        <location line="+47"/>
         <source>Type %1 unavailable</source>
         <translation>Тип &quot;%1&quot; недоступен</translation>
     </message>
@@ -2138,23 +1703,18 @@
 <context>
     <name>QDeclarativeConnections</name>
     <message>
-        <location filename="../src/declarative/util/qdeclarativeconnections.cpp" line="+209"/>
-        <location line="+60"/>
         <source>Cannot assign to non-existent property &quot;%1&quot;</source>
         <translation type="unfinished">Невозможно назначить несуществующему свойству &quot;%1&quot;</translation>
     </message>
     <message>
-        <location line="-50"/>
         <source>Connections: nested objects not allowed</source>
         <translation>Подключения: вложенные объекты недопустимы</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Connections: syntax error</source>
         <translation>Подключения: синтаксическая ошибка</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Connections: script expected</source>
         <translation>Подключения: ожидается сценарий</translation>
     </message>
@@ -2162,33 +1722,26 @@
 <context>
     <name>QDeclarativeEngine</name>
     <message>
-        <location filename="../src/declarative/qml/qdeclarativesqldatabase.cpp" line="+204"/>
         <source>executeSql called outside transaction()</source>
         <translation>executeSql() вызван вне transaction()</translation>
     </message>
     <message>
-        <location line="+58"/>
         <source>Read-only Transaction</source>
         <translation>Транзакция только для чтения</translation>
     </message>
     <message>
-        <location line="+20"/>
         <source>Version mismatch: expected %1, found %2</source>
         <translation>Несовпадение версий: ожидалась %1, найдена %2</translation>
     </message>
     <message>
-        <location line="+14"/>
         <source>SQL transaction failed</source>
         <translation>Не удалось выполнить транзакцию SQL</translation>
     </message>
     <message>
-        <location line="+21"/>
         <source>transaction: missing callback</source>
         <translation>транзакция: отсутствует обратный вызов</translation>
     </message>
     <message>
-        <location line="+57"/>
-        <location line="+16"/>
         <source>SQL: database version mismatch</source>
         <translation>Не совпадает версия базы данных SQL</translation>
     </message>
@@ -2196,12 +1749,10 @@
 <context>
     <name>QDeclarativeFlipable</name>
     <message>
-        <location filename="../src/declarative/graphicsitems/qdeclarativeflipable.cpp" line="+127"/>
         <source>front is a write-once property</source>
         <translation>front - свойство для однократной записи</translation>
     </message>
     <message>
-        <location line="+19"/>
         <source>back is a write-once property</source>
         <translation>back - свойство для однократной записи</translation>
     </message>
@@ -2209,75 +1760,58 @@
 <context>
     <name>QDeclarativeImportDatabase</name>
     <message>
-        <location filename="../src/declarative/qml/qdeclarativeimport.cpp" line="+294"/>
         <source>module &quot;%1&quot; definition &quot;%2&quot; not readable</source>
         <translation type="unfinished">невозможно прочитать определение &quot;%2&quot; модуля &quot;%1&quot;</translation>
     </message>
     <message>
-        <location line="+20"/>
         <source>plugin cannot be loaded for module &quot;%1&quot;: %2</source>
         <translation type="unfinished">модуль не может быть загружен для подмодуля &quot;%1&quot;: %2</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>module &quot;%1&quot; plugin &quot;%2&quot; not found</source>
         <translation type="unfinished">подмодуль &quot;%1&quot; модуля &quot;%2&quot; не найден</translation>
     </message>
     <message>
-        <location line="+79"/>
-        <location line="+55"/>
         <source>module &quot;%1&quot; version %2.%3 is not installed</source>
         <translation>модуль &quot;%1&quot; версии %2.%3 не установлен</translation>
     </message>
     <message>
-        <location line="-53"/>
         <source>module &quot;%1&quot; is not installed</source>
         <translation>модуль &quot;%1&quot; не установлен</translation>
     </message>
     <message>
-        <location line="+14"/>
-        <location line="+19"/>
         <source>&quot;%1&quot;: no such directory</source>
         <translation>&quot;%1&quot;: каталог не существует</translation>
     </message>
     <message>
-        <location line="-2"/>
         <source>import &quot;%1&quot; has no qmldir and no namespace</source>
         <translation type="unfinished">каталог &quot;%1&quot; не содержит ни qmldir, ни namespace</translation>
     </message>
     <message>
-        <location line="+46"/>
         <source>- %1 is not a namespace</source>
         <translation>- %1 - некорректное пространство имён</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>- nested namespaces not allowed</source>
         <translation>- вложенные пространства имён недопустимы</translation>
     </message>
     <message>
-        <location line="+47"/>
-        <location line="+4"/>
         <source>local directory</source>
         <translation>локальный каталог</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>is ambiguous. Found in %1 and in %2</source>
         <translation>неоднозначно. Найдено в %1 и %2</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>is ambiguous. Found in %1 in version %2.%3 and %4.%5</source>
         <translation>неоднозначно. Найдено в %1 версий %2.%3 и %4.%5</translation>
     </message>
     <message>
-        <location line="+14"/>
         <source>is instantiated recursively</source>
         <translation>обрабатывается рекурсивно</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>is not a type</source>
         <translation>не является типом</translation>
     </message>
@@ -2285,7 +1819,6 @@
 <context>
     <name>QDeclarativeKeyNavigationAttached</name>
     <message>
-        <location filename="../src/declarative/graphicsitems/qdeclarativeitemsmodule.cpp" line="+66"/>
         <source>KeyNavigation is only available via attached properties</source>
         <translation type="unfinished">KeyNavigation доступна только через прикреплённые свойства</translation>
     </message>
@@ -2293,7 +1826,6 @@
 <context>
     <name>QDeclarativeKeysAttached</name>
     <message>
-        <location line="+1"/>
         <source>Keys is only available via attached properties</source>
         <translation type="unfinished">Keys доступны только через прикреплённые свойства</translation>
     </message>
@@ -2301,59 +1833,46 @@
 <context>
     <name>QDeclarativeListModel</name>
     <message>
-        <location filename="../src/declarative/util/qdeclarativelistmodel.cpp" line="+399"/>
         <source>remove: index %1 out of range</source>
         <translation>remove: индекс %1 вне диапазона</translation>
     </message>
     <message>
-        <location line="+33"/>
         <source>insert: value is not an object</source>
         <translation>insert: значение не является объектом</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>insert: index %1 out of range</source>
         <translation>insert: индекс %1 вне диапазона</translation>
     </message>
     <message>
-        <location line="+30"/>
         <source>move: out of range</source>
         <translation>move: индекс вне диапазона</translation>
     </message>
     <message>
-        <location line="+40"/>
         <source>append: value is not an object</source>
         <translation>append: значение не является объектом</translation>
     </message>
     <message>
-        <location line="+55"/>
         <source>set: value is not an object</source>
         <translation>set: значение не является объектом</translation>
     </message>
     <message>
-        <location line="+4"/>
-        <location line="+34"/>
         <source>set: index %1 out of range</source>
         <translation>set: индекс %1 вне диапазона</translation>
     </message>
     <message>
-        <location line="+39"/>
-        <location line="+15"/>
         <source>ListElement: cannot contain nested elements</source>
         <translation>ListElement: не может содержать вложенные элементы</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>ListElement: cannot use reserved &quot;id&quot; property</source>
         <translation>ListElement: невозможно использовать зарезервированное свойство &quot;id&quot;</translation>
     </message>
     <message>
-        <location line="+49"/>
         <source>ListElement: cannot use script for property value</source>
         <translation>ListElement: невозможно использовать сценарий в качестве значения свойства</translation>
     </message>
     <message>
-        <location line="+29"/>
         <source>ListModel: undefined property &apos;%1&apos;</source>
         <translation>ListModel: неопределённое свойство &quot;%1&quot;</translation>
     </message>
@@ -2361,7 +1880,6 @@
 <context>
     <name>QDeclarativeLoader</name>
     <message>
-        <location filename="../src/declarative/graphicsitems/qdeclarativeloader.cpp" line="+313"/>
         <source>Loader does not support loading non-visual elements.</source>
         <translation>Загрузчик не поддерживает загрузку невизуальных элементов.</translation>
     </message>
@@ -2369,18 +1887,14 @@
 <context>
     <name>QDeclarativeParentAnimation</name>
     <message>
-        <location filename="../src/declarative/util/qdeclarativeanimation.cpp" line="-169"/>
         <source>Unable to preserve appearance under complex transform</source>
         <translation>Невозможно сохранить внешний вид при сложном преобразовании</translation>
     </message>
     <message>
-        <location line="+10"/>
-        <location line="+7"/>
         <source>Unable to preserve appearance under non-uniform scale</source>
         <translation>Невозможно сохранить внешний вид при неоднородном масштабе</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Unable to preserve appearance under scale of 0</source>
         <translation>Невозможно сохранить внешний вид при масштабе 0</translation>
     </message>
@@ -2388,18 +1902,14 @@
 <context>
     <name>QDeclarativeParentChange</name>
     <message>
-        <location filename="../src/declarative/util/qdeclarativestateoperations.cpp" line="+95"/>
         <source>Unable to preserve appearance under complex transform</source>
         <translation>Невозможно сохранить внешний вид при сложном преобразовании</translation>
     </message>
     <message>
-        <location line="+10"/>
-        <location line="+7"/>
         <source>Unable to preserve appearance under non-uniform scale</source>
         <translation>Невозможно сохранить внешний вид при неоднородном масштабе</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Unable to preserve appearance under scale of 0</source>
         <translation>Невозможно сохранить внешний вид при масштабе 0</translation>
     </message>
@@ -2407,144 +1917,110 @@
 <context>
     <name>QDeclarativeParser</name>
     <message>
-        <location filename="../src/declarative/qml/parser/qdeclarativejslexer.cpp" line="+542"/>
-        <location line="+123"/>
-        <location line="+54"/>
         <source>Illegal unicode escape sequence</source>
         <translation type="unfinished">Неверная unicode esc-последовательность</translation>
     </message>
     <message>
-        <location line="-140"/>
         <source>Illegal character</source>
         <translation>Недопустимый символ</translation>
     </message>
     <message>
-        <location line="+14"/>
         <source>Unclosed string at end of line</source>
         <translation>Незакрытый текст в конце строки</translation>
     </message>
     <message>
-        <location line="+26"/>
         <source>Illegal escape squence</source>
         <translation type="unfinished">Неверная esc-последовательность</translation>
     </message>
     <message>
-        <location line="+72"/>
         <source>Unclosed comment at end of file</source>
         <translation>Незакрытый комментарий в конце строки</translation>
     </message>
     <message>
-        <location line="+102"/>
         <source>Illegal syntax for exponential number</source>
         <translation type="unfinished">Недопустимый синтаксис для экспоненциального числа</translation>
     </message>
     <message>
-        <location line="+26"/>
         <source>Identifier cannot start with numeric literal</source>
         <translation>Идентификатор не может начинаться с цифры</translation>
     </message>
     <message>
-        <location line="+338"/>
         <source>Unterminated regular expression literal</source>
         <translation>Незаконченный литерал регулярного выражения</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Invalid regular expression flag &apos;%0&apos;</source>
         <translation>Некорректный флаг &quot;%0&quot; в регулярном выражении</translation>
     </message>
     <message>
-        <location line="+16"/>
-        <location line="+22"/>
         <source>Unterminated regular expression backslash sequence</source>
         <translation>Регулярное выражение содержит незавершённую экранированную последовательность</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>Unterminated regular expression class</source>
         <translation>Регулярное выражение содержит незавершённый класс</translation>
     </message>
     <message>
-        <location filename="../src/declarative/qml/parser/qdeclarativejsparser.cpp" line="+1828"/>
-        <location line="+67"/>
         <source>Syntax error</source>
         <translation>Синтаксическая ошибка</translation>
     </message>
     <message>
-        <location line="-65"/>
         <source>Unexpected token `%1&apos;</source>
         <translation>Неожиданный символ &quot;%1&quot;</translation>
     </message>
     <message>
-        <location line="+28"/>
-        <location line="+24"/>
         <source>Expected token `%1&apos;</source>
         <translation>Ожидается символ &quot;%1&quot;</translation>
     </message>
     <message>
-        <location filename="../src/declarative/qml/qdeclarativescriptparser.cpp" line="+260"/>
-        <location line="+431"/>
-        <location line="+59"/>
         <source>Property value set multiple times</source>
         <translation type="unfinished">Значение свойства установлено несколько раз</translation>
     </message>
     <message>
-        <location line="-479"/>
         <source>Expected type name</source>
         <translation>Ожидается название типа</translation>
     </message>
     <message>
-        <location line="+136"/>
         <source>Invalid import qualifier ID</source>
         <translation type="unfinished">Некорректный ID спецификатора импорта</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Reserved name &quot;Qt&quot; cannot be used as an qualifier</source>
         <translation type="unfinished">Зарезервированное имя &quot;Qt&quot; не может быть использовано в качестве спецификатора</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Script import qualifiers must be unique.</source>
         <translation type="unfinished">Спецификаторы импорта сценария должны быть уникальными.</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>Script import requires a qualifier</source>
         <translation type="unfinished">Для импорта сценария требуется спецификатор</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>Library import requires a version</source>
         <translation type="unfinished">Импорт библиотеки требует версию</translation>
     </message>
     <message>
-        <location line="+59"/>
         <source>Expected parameter type</source>
         <translation>Ожидается тип параметра</translation>
     </message>
     <message>
-        <location line="+42"/>
         <source>Invalid property type modifier</source>
         <translation>Некорректный модификатор типа свойства</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Unexpected property type modifier</source>
         <translation>Неожиданный модификатор типа свойства</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Expected property type</source>
         <translation>Ожидается тип свойства</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Readonly not yet supported</source>
         <translation type="unfinished">Readonly ещё не поддерживается</translation>
     </message>
     <message>
-        <location line="+215"/>
         <source>JavaScript declaration outside Script element</source>
         <translation>Определение JavaScript вне элемента Script</translation>
     </message>
@@ -2552,39 +2028,28 @@
 <context>
     <name>QDeclarativePauseAnimation</name>
     <message>
-        <location filename="../src/declarative/util/qdeclarativeanimation.cpp" line="-1977"/>
         <source>Cannot set a duration of &lt; 0</source>
         <translation>Невозможно установить длительность &lt; 0</translation>
     </message>
 </context>
 <context>
-    <name>QDeclarativePixmapCache</name>
-    <message>
-        <location filename="../src/declarative/util/qdeclarativepixmapcache.cpp" line="+190"/>
+    <name>QDeclarativePixmap</name>
+    <message>
         <source>Error decoding: %1: %2</source>
         <translation>Ошибка декодирования: %1: %2</translation>
     </message>
     <message>
-        <location line="+70"/>
         <source>Failed to get image from provider: %1</source>
-        <translation>Не удалось получить изображение от поставщика: %1</translation>
-    </message>
-    <message>
-        <location line="+19"/>
-        <location line="+345"/>
+        <translation>Не удалось получить изображение от постащика изображений: %1</translation>
+    </message>
+    <message>
         <source>Cannot open: %1</source>
         <translation>Не удалось открыть: %1</translation>
     </message>
-    <message>
-        <location line="+37"/>
-        <source>Unknown Error loading %1</source>
-        <translation>Неизвестная ошибка загрузки %1</translation>
-    </message>
 </context>
 <context>
     <name>QDeclarativePropertyAnimation</name>
     <message>
-        <location filename="../src/declarative/util/qdeclarativeanimation.cpp" line="+1102"/>
         <source>Cannot set a duration of &lt; 0</source>
         <translation>Невозможно установить длительность &lt; 0</translation>
     </message>
@@ -2592,17 +2057,14 @@
 <context>
     <name>QDeclarativePropertyChanges</name>
     <message>
-        <location filename="../src/declarative/util/qdeclarativepropertychanges.cpp" line="+252"/>
         <source>PropertyChanges does not support creating state-specific objects.</source>
         <translation type="unfinished">PropertyChanges не поддерживают создание объектов, зависимых от состояния.</translation>
     </message>
     <message>
-        <location line="+157"/>
         <source>Cannot assign to non-existent property &quot;%1&quot;</source>
         <translation type="unfinished">Невозможно назначить несуществующему свойству &quot;%1&quot;</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Cannot assign to read-only property &quot;%1&quot;</source>
         <translation type="unfinished">Невозможно назначить свойству только для чтения &quot;%1&quot;</translation>
     </message>
@@ -2610,13 +2072,10 @@
 <context>
     <name>QDeclarativeTextInput</name>
     <message>
-        <location filename="../src/declarative/graphicsitems/qdeclarativetextinput.cpp" line="+798"/>
-        <location line="+8"/>
         <source>Could not load cursor delegate</source>
         <translation type="unfinished">Не удалось загрузить делегат курсора</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>Could not instantiate cursor delegate</source>
         <translation type="unfinished">Не удалось инстанциировать делегат курсора</translation>
     </message>
@@ -2624,47 +2083,38 @@
 <context>
     <name>QDeclarativeVME</name>
     <message>
-        <location filename="../src/declarative/qml/qdeclarativevme.cpp" line="+194"/>
         <source>Unable to create object of type %1</source>
         <translation>Невозможно создать объект типа &quot;%1&quot;</translation>
     </message>
     <message>
-        <location line="+390"/>
         <source>Cannot assign value %1 to property %2</source>
         <translation>Невозможно установить значение &quot;%1&quot; свойству &quot;%2&quot;</translation>
     </message>
     <message>
-        <location line="+22"/>
         <source>Cannot assign object type %1 with no default method</source>
         <translation type="unfinished">Невозможно назначить объект типа %1 без метода по умолчанию</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Cannot connect mismatched signal/slot %1 %vs. %2</source>
         <translation type="unfinished">Невозможно подключить отсутствующий сигнал/слот %1 к %2</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Cannot assign an object to signal property %1</source>
         <translation type="unfinished">Невозможно назначить объект к свойству сигнала %1</translation>
     </message>
     <message>
-        <location line="+146"/>
         <source>Cannot assign object to list</source>
         <translation type="unfinished">Невозможно назначить объект списку</translation>
     </message>
     <message>
-        <location line="+41"/>
         <source>Cannot assign object to interface property</source>
         <translation type="unfinished">Невозможно назначить объект свойству интерфейса</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>Unable to create attached object</source>
         <translation type="unfinished">Не удалось создать вложенный объект</translation>
     </message>
     <message>
-        <location line="+32"/>
         <source>Cannot set properties on %1 as it is null</source>
         <translation type="unfinished">Невозможно установить свойства для %1, так как он нулевой</translation>
     </message>
@@ -2672,7 +2122,6 @@
 <context>
     <name>QDeclarativeVisualDataModel</name>
     <message>
-        <location filename="../src/declarative/graphicsitems/qdeclarativevisualitemmodel.cpp" line="+1088"/>
         <source>Delegate component must be Item type.</source>
         <translation type="unfinished">Компинент делегата должен быть типа Item.</translation>
     </message>
@@ -2680,8 +2129,6 @@
 <context>
     <name>QDeclarativeXmlListModel</name>
     <message>
-        <location filename="../src/declarative/util/qdeclarativeutilmodule.cpp" line="-12"/>
-        <location line="+2"/>
         <source>Qt was built without support for xmlpatterns</source>
         <translation>Qt было собрано без поддержки xmlpatterns</translation>
     </message>
@@ -2689,7 +2136,6 @@
 <context>
     <name>QDeclarativeXmlListModelRole</name>
     <message>
-        <location filename="../src/declarative/util/qdeclarativexmllistmodel_p.h" line="+174"/>
         <source>An XmlRole query must not start with &apos;/&apos;</source>
         <translation type="unfinished">Запрос XmlRole не должен начинаться с &apos;/&apos;</translation>
     </message>
@@ -2697,7 +2143,6 @@
 <context>
     <name>QDeclarativeXmlRoleList</name>
     <message>
-        <location filename="../src/declarative/util/qdeclarativexmllistmodel.cpp" line="+712"/>
         <source>An XmlListModel query must start with &apos;/&apos; or &quot;//&quot;</source>
         <translation type="unfinished">Запрос XmlListModel должен начинаться с &apos;/&apos; или &quot;//&quot;</translation>
     </message>
@@ -2705,17 +2150,14 @@
 <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>SpeedoMeter</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>SliderHandle</source>
         <translation>SliderHandle</translation>
     </message>
@@ -2723,12 +2165,10 @@
 <context>
     <name>QDialog</name>
     <message>
-        <location filename="../src/gui/dialogs/qdialog.cpp" line="+645"/>
         <source>What&apos;s This?</source>
         <translation>Что это?</translation>
     </message>
     <message>
-        <location line="-122"/>
         <source>Done</source>
         <translation>Готово</translation>
     </message>
@@ -2736,124 +2176,98 @@
 <context>
     <name>QDialogButtonBox</name>
     <message>
-        <location filename="../src/gui/dialogs/qmessagebox.cpp" line="+1920"/>
-        <location line="+464"/>
-        <location filename="../src/gui/widgets/qdialogbuttonbox.cpp" line="+649"/>
         <source>OK</source>
         <translation>ОК</translation>
     </message>
     <message>
-        <location filename="../src/gui/widgets/qdialogbuttonbox.cpp" line="+3"/>
         <source>Save</source>
         <translation>Сохранить</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>&amp;Save</source>
         <translation>&amp;Сохранить</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Open</source>
         <translation>Открыть</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Cancel</source>
         <translation>Отмена</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>&amp;Cancel</source>
         <translation>От&amp;мена</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Close</source>
         <translation>Закрыть</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>&amp;Close</source>
         <translation>&amp;Закрыть</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Apply</source>
         <translation>Применить</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Reset</source>
         <translation>Сбросить</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Help</source>
         <translation>Справка</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Don&apos;t Save</source>
         <translation>Не сохранять</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Discard</source>
         <translation>Отклонить</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>&amp;Yes</source>
         <translation>&amp;Да</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Yes to &amp;All</source>
         <translation>Да для &amp;всех</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>&amp;No</source>
         <translation>&amp;Нет</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>N&amp;o to All</source>
         <translation>Н&amp;ет для всех</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Save All</source>
         <translation>Сохранить все</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Abort</source>
         <translation>Прервать</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Retry</source>
         <translation>Повторить</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Ignore</source>
         <translation>Пропустить</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Restore Defaults</source>
         <translation>Восстановить значения</translation>
     </message>
     <message>
-        <location line="-29"/>
         <source>Close without Saving</source>
         <translation>Закрыть без сохранения</translation>
     </message>
     <message>
-        <location line="-27"/>
         <source>&amp;OK</source>
         <translation>&amp;ОК</translation>
     </message>
@@ -2861,29 +2275,24 @@
 <context>
     <name>QDirModel</name>
     <message>
-        <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+457"/>
         <source>Name</source>
         <translation>Имя</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Size</source>
         <translation>Размер</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Kind</source>
         <comment>Match OS X Finder</comment>
         <translation>Вид</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Type</source>
         <comment>All other platforms</comment>
         <translation>Тип</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Date Modified</source>
         <translation>Дата изменения</translation>
     </message>
@@ -2891,17 +2300,14 @@
 <context>
     <name>QDockWidget</name>
     <message>
-        <location filename="../src/plugins/accessible/widgets/qaccessiblewidgets.cpp" line="+1239"/>
         <source>Close</source>
         <translation>Закрыть</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Dock</source>
         <translation type="unfinished">Прикрепить</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Float</source>
         <translation type="unfinished">Открепить</translation>
     </message>
@@ -2909,12 +2315,10 @@
 <context>
     <name>QDoubleSpinBox</name>
     <message>
-        <location filename="../src/plugins/accessible/widgets/rangecontrols.cpp" line="-537"/>
         <source>More</source>
         <translation>Больше</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Less</source>
         <translation>Меньше</translation>
     </message>
@@ -2922,27 +2326,22 @@
 <context>
     <name>QErrorMessage</name>
     <message>
-        <location filename="../src/gui/dialogs/qerrormessage.cpp" line="+414"/>
         <source>&amp;Show this message again</source>
         <translation>&amp;Показывать это сообщение в дальнейшем</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;OK</source>
         <translation>&amp;Закрыть</translation>
     </message>
     <message>
-        <location line="-207"/>
         <source>Debug Message:</source>
         <translation>Отладочное сообщение:</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Warning:</source>
         <translation>Предупреждение:</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Fatal Error:</source>
         <translation>Критическая ошибка:</translation>
     </message>
@@ -2950,38 +2349,30 @@
 <context>
     <name>QFile</name>
     <message>
-        <location filename="../src/corelib/io/qfile.cpp" line="+703"/>
-        <location line="+155"/>
         <source>Destination file exists</source>
         <translation>Файл существует</translation>
     </message>
     <message>
-        <location line="-140"/>
         <source>Will not rename sequential file using block copy</source>
         <translation>Последовательный файл не будет переименован с использованием поблочного копирования</translation>
     </message>
     <message>
-        <location line="+23"/>
         <source>Cannot remove source file</source>
         <translation>Невозможно удалить исходный файл</translation>
     </message>
     <message>
-        <location line="+130"/>
         <source>Cannot open %1 for input</source>
         <translation>Невозможно открыть %1 для ввода</translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>Cannot open for output</source>
         <translation>Невозможно открыть для вывода</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>Failure to write block</source>
         <translation>Сбой записи блока</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>Cannot create %1 for output</source>
         <translation>Невозможно создать %1 для вывода</translation>
     </message>
@@ -2989,143 +2380,110 @@
 <context>
     <name>QFileDialog</name>
     <message>
-        <location filename="../src/gui/dialogs/qfiledialog.cpp" line="+558"/>
-        <location line="+481"/>
         <source>All Files (*)</source>
         <translation>Все файлы (*)</translation>
     </message>
     <message>
-        <location filename="../src/gui/dialogs/qfiledialog.ui"/>
-        <location filename="../src/gui/dialogs/qfiledialog_embedded.ui"/>
         <source>Back</source>
         <translation>Назад</translation>
     </message>
     <message>
-        <location/>
-        <location filename="../src/gui/dialogs/qfiledialog_embedded.ui"/>
         <source>List View</source>
         <translation>Список</translation>
     </message>
     <message>
-        <location/>
-        <location filename="../src/gui/dialogs/qfiledialog_embedded.ui"/>
         <source>Detail View</source>
         <translation>Подробный вид</translation>
     </message>
     <message>
-        <location filename="../src/gui/itemviews/qfileiconprovider.cpp" line="+467"/>
-        <location line="+1"/>
         <source>File</source>
         <translation>Файл</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>File Folder</source>
         <comment>Match Windows Explorer</comment>
         <translation>Папка с файлами</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Folder</source>
         <comment>All other platforms</comment>
         <translation>Папка</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Alias</source>
         <comment>Mac OS X Finder</comment>
         <translation>Псевдоним</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Shortcut</source>
         <comment>All other platforms</comment>
         <translation>Ярлык</translation>
     </message>
     <message>
-        <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-498"/>
         <source>Open</source>
         <translation>Открыть</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Save As</source>
         <translation>Сохранить как</translation>
     </message>
     <message>
-        <location line="+709"/>
-        <location line="+55"/>
-        <location line="+1532"/>
         <source>&amp;Open</source>
         <translation>&amp;Открыть</translation>
     </message>
     <message>
-        <location line="-1587"/>
-        <location line="+55"/>
         <source>&amp;Save</source>
         <translation>&amp;Сохранить</translation>
     </message>
     <message>
-        <location line="+1381"/>
         <source>&apos;%1&apos; is write protected.
 Do you want to delete it anyway?</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+424"/>
+        <translation>&quot;%1&quot; защищён от записи.
+Действительно желаете удалить?</translation>
+    </message>
+    <message>
         <source>Recent Places</source>
         <translation>Недавние документы</translation>
     </message>
     <message>
-        <location line="-2540"/>
         <source>&amp;Rename</source>
         <translation>&amp;Переименовать</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Delete</source>
         <translation>&amp;Удалить</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Show &amp;hidden files</source>
         <translation>Показать ск&amp;рытые файлы</translation>
     </message>
     <message>
-        <location line="+1986"/>
         <source>New Folder</source>
         <translation>Новая папка</translation>
     </message>
     <message>
-        <location line="-2021"/>
         <source>Find Directory</source>
         <translation>Найти каталог</translation>
     </message>
     <message>
-        <location line="+716"/>
         <source>Directories</source>
         <translation>Каталоги</translation>
     </message>
     <message>
-        <location filename="../src/gui/dialogs/qfiledialog_win.cpp" line="+148"/>
         <source>All Files (*.*)</source>
         <translation>Все файлы (*.*)</translation>
     </message>
     <message>
-        <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-675"/>
-        <location line="+679"/>
         <source>Directory:</source>
         <translation>Каталог:</translation>
     </message>
     <message>
-        <location line="+819"/>
         <source>%1 already exists.
 Do you want to replace it?</source>
         <translation>%1 уже существует.
 Хотите заменить его?</translation>
     </message>
     <message>
-        <location line="+20"/>
         <source>%1
 File not found.
 Please verify the correct file name was given.</source>
@@ -3134,25 +2492,18 @@
 Проверьте правильность указанного имени файла.</translation>
     </message>
     <message>
-        <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+402"/>
         <source>My Computer</source>
         <translation>Мой компьютер</translation>
     </message>
     <message>
-        <location filename="../src/gui/dialogs/qfiledialog.ui"/>
-        <location filename="../src/gui/dialogs/qfiledialog_embedded.ui"/>
         <source>Parent Directory</source>
         <translation>Родительский каталог</translation>
     </message>
     <message>
-        <location/>
-        <location filename="../src/gui/dialogs/qfiledialog_embedded.ui"/>
         <source>Files of type:</source>
         <translation>Типы файлов:</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>
@@ -3161,97 +2512,74 @@
 Проверьте правильность указанного имени каталога.</translation>
     </message>
     <message>
-        <location line="-213"/>
         <source>Are sure you want to delete &apos;%1&apos;?</source>
         <translation>Вы действительно хотите удалить &quot;%1&quot;?</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Could not delete directory.</source>
         <translation>Не удалось удалить каталог.</translation>
     </message>
     <message>
-        <location filename="../src/gui/itemviews/qfileiconprovider.cpp" line="-22"/>
         <source>Drive</source>
         <translation>Диск</translation>
     </message>
     <message>
-        <location line="+29"/>
         <source>Unknown</source>
         <translation>Неизвестный</translation>
     </message>
     <message>
-        <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-2140"/>
         <source>Show </source>
         <translation>Показать </translation>
     </message>
     <message>
-        <location filename="../src/gui/dialogs/qfiledialog.ui"/>
-        <location filename="../src/gui/dialogs/qfiledialog_embedded.ui"/>
         <source>Forward</source>
         <translation>Вперёд</translation>
     </message>
     <message>
-        <location filename="../src/gui/dialogs/qfiledialog.cpp" line="+7"/>
         <source>&amp;New Folder</source>
         <translation>&amp;Новая папка</translation>
     </message>
     <message>
-        <location line="+687"/>
-        <location line="+43"/>
         <source>&amp;Choose</source>
         <translation>&amp;Выбрать</translation>
     </message>
     <message>
-        <location filename="../src/gui/dialogs/qsidebar.cpp" line="+442"/>
         <source>Remove</source>
         <translation>Удалить</translation>
     </message>
     <message>
-        <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-723"/>
-        <location line="+683"/>
         <source>File &amp;name:</source>
         <translation>&amp;Имя файла:</translation>
     </message>
     <message>
-        <location filename="../src/gui/dialogs/qfiledialog.ui"/>
-        <location filename="../src/gui/dialogs/qfiledialog_embedded.ui"/>
         <source>Look in:</source>
         <translation>Перейти к:</translation>
     </message>
     <message>
-        <location/>
-        <location filename="../src/gui/dialogs/qfiledialog_embedded.ui"/>
         <source>Create New Folder</source>
         <translation>Создать папку</translation>
     </message>
     <message>
-        <location/>
         <source>Go back</source>
         <translation>Назад</translation>
     </message>
     <message>
-        <location/>
         <source>Go forward</source>
         <translation>Вперёд</translation>
     </message>
     <message>
-        <location/>
         <source>Go to the parent directory</source>
         <translation>Перейти в родительский каталог</translation>
     </message>
     <message>
-        <location/>
         <source>Create a New Folder</source>
         <translation>Создать новую папку</translation>
     </message>
     <message>
-        <location/>
         <source>Change to list view mode</source>
         <translation>Переключить в режим списка</translation>
     </message>
     <message>
-        <location/>
         <source>Change to detail view mode</source>
         <translation>Переключить в подробный режим</translation>
     </message>
@@ -3259,83 +2587,64 @@
 <context>
     <name>QFileSystemModel</name>
     <message>
-        <location filename="../src/gui/dialogs/qfilesystemmodel.cpp" line="+740"/>
-        <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+482"/>
         <source>%1 TB</source>
         <translation>%1 Тб</translation>
     </message>
     <message>
-        <location line="+2"/>
-        <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+2"/>
         <source>%1 GB</source>
         <translation>%1 Гб</translation>
     </message>
     <message>
-        <location line="+2"/>
-        <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+2"/>
         <source>%1 MB</source>
         <translation>%1 Мб</translation>
     </message>
     <message>
-        <location line="+2"/>
-        <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+2"/>
         <source>%1 KB</source>
         <translation>%1 Кб</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>%1 bytes</source>
         <translation>%1 байт</translation>
     </message>
     <message>
-        <location line="+89"/>
         <source>Invalid filename</source>
         <translation>Некорректное имя файла</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;Имя &quot;%1&quot; не может быть использовано.&lt;/b&gt;&lt;p&gt;Попробуйте использовать имя меньшей длины и/или без символов пунктуации.</translation>
     </message>
     <message>
-        <location line="+64"/>
         <source>Name</source>
         <translation>Имя</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Size</source>
         <translation>Размер</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Kind</source>
         <comment>Match OS X Finder</comment>
         <translation>Вид</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Type</source>
         <comment>All other platforms</comment>
         <translation>Тип</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Date Modified</source>
         <translation>Дата изменения</translation>
     </message>
     <message>
-        <location filename="../src/gui/dialogs/qfilesystemmodel_p.h" line="+261"/>
         <source>My Computer</source>
         <translation>Мой компьютер</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Computer</source>
         <translation>Компьютер</translation>
     </message>
     <message>
-        <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+1"/>
         <source>%1 byte(s)</source>
         <translation>%1 байт</translation>
     </message>
@@ -3343,221 +2652,170 @@
 <context>
     <name>QFontDatabase</name>
     <message>
-        <location filename="../src/gui/text/qfontdatabase.cpp" line="+102"/>
-        <location line="+1342"/>
         <source>Normal</source>
         <translation>Обычный</translation>
     </message>
     <message>
-        <location line="-1339"/>
-        <location line="+12"/>
-        <location line="+1315"/>
         <source>Bold</source>
         <translation>Жирный</translation>
     </message>
     <message>
-        <location line="-1324"/>
-        <location line="+1326"/>
         <source>Demi Bold</source>
         <translation>Полужирный</translation>
     </message>
     <message>
-        <location line="-1323"/>
-        <location line="+18"/>
-        <location line="+1301"/>
         <source>Black</source>
         <translation>Чёрный</translation>
     </message>
     <message>
-        <location line="-1311"/>
         <source>Demi</source>
         <translation>Средний</translation>
     </message>
     <message>
-        <location line="+6"/>
-        <location line="+1311"/>
         <source>Light</source>
         <translation>Светлый</translation>
     </message>
     <message>
-        <location line="-1165"/>
-        <location line="+1168"/>
         <source>Italic</source>
         <translation>Курсив</translation>
     </message>
     <message>
-        <location line="-1165"/>
-        <location line="+1167"/>
         <source>Oblique</source>
         <translation>Наклонный</translation>
     </message>
     <message>
-        <location line="+704"/>
         <source>Any</source>
         <translation>Любая</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Latin</source>
         <translation>Латиница</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Greek</source>
         <translation>Греческая</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Cyrillic</source>
         <translation>Кириллица</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Armenian</source>
         <translation>Армянская</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Hebrew</source>
         <translation>Иврит</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Arabic</source>
         <translation>Арабская</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Syriac</source>
         <translation>Сирийская</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Thaana</source>
         <translation>Таана</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Devanagari</source>
         <translation>Деванагири</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Bengali</source>
         <translation>Бенгальская</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Gurmukhi</source>
         <translation>Гурмукхи</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Gujarati</source>
         <translation>Гуджарати</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Oriya</source>
         <translation>Ория</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Tamil</source>
         <translation>Тамильская</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Telugu</source>
         <translation>Телугу</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Kannada</source>
         <translation>Каннада</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Malayalam</source>
         <translation>Малайялам</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Sinhala</source>
         <translation>Сингальская</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Thai</source>
         <translation>Тайская</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Lao</source>
         <translation>Лаосская</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Tibetan</source>
         <translation>Тибетская</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Myanmar</source>
         <translation>Мьянма</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Georgian</source>
         <translation>Грузинская</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Khmer</source>
         <translation>Кхмерская</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Simplified Chinese</source>
         <translation>Китайская упрощённая</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Traditional Chinese</source>
         <translation>Китайская традиционная</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Japanese</source>
         <translation>Японская</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Korean</source>
         <translation>Корейская</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Vietnamese</source>
         <translation>Вьетнамская</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Symbol</source>
         <translation>Символьная</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Ogham</source>
         <translation>Огамическая</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Runic</source>
         <translation>Руническая</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>N&apos;Ko</source>
         <translation>Нко</translation>
     </message>
@@ -3565,47 +2823,38 @@
 <context>
     <name>QFontDialog</name>
     <message>
-        <location filename="../src/gui/dialogs/qfontdialog.cpp" line="+768"/>
         <source>&amp;Font</source>
         <translation>&amp;Шрифт</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Font st&amp;yle</source>
         <translation>&amp;Начертание</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Size</source>
         <translation>&amp;Размер</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Effects</source>
         <translation>Эффекты</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Stri&amp;keout</source>
         <translation>Зачёр&amp;кнутый</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Underline</source>
         <translation>П&amp;одчёркнутый</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Sample</source>
         <translation>Пример</translation>
     </message>
     <message>
-        <location line="-595"/>
         <source>Select Font</source>
         <translation>Выбор шрифта</translation>
     </message>
     <message>
-        <location line="+596"/>
         <source>Wr&amp;iting System</source>
         <translation>&amp;Система письма</translation>
     </message>
@@ -3613,145 +2862,104 @@
 <context>
     <name>QFtp</name>
     <message>
-        <location filename="../src/qt3support/network/q3ftp.cpp" line="+2303"/>
         <source>Host %1 found</source>
         <translation>Узел %1 найден</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Host found</source>
         <translation>Узел найден</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</translation>
     </message>
     <message>
-        <location filename="../src/qt3support/network/q3ftp.cpp" line="+7"/>
         <source>Connected to host</source>
         <translation>Соединение с узлом установлено</translation>
     </message>
     <message>
-        <location line="-5"/>
         <source>Connection to %1 closed</source>
         <translation>Соединение с %1 закрыто</translation>
     </message>
     <message>
-        <location filename="../src/network/access/qftp.cpp" line="+1383"/>
-        <location filename="../src/qt3support/network/q3ftp.cpp" line="-243"/>
-        <location line="+250"/>
         <source>Connection closed</source>
         <translation>Соединение закрыто</translation>
     </message>
     <message>
-        <location line="-1495"/>
-        <location filename="../src/qt3support/network/q3ftp.cpp" line="-1566"/>
         <source>Host %1 not found</source>
         <translation>Узел %1 не найден</translation>
     </message>
     <message>
-        <location line="+4"/>
-        <location filename="../src/qt3support/network/q3ftp.cpp" line="+4"/>
         <source>Connection refused to host %1</source>
         <translation>В соединении с узлом %1 отказано</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Connection timed out to host %1</source>
         <translation>Время на соединение с узлом %1 истекло</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>Неизвестная ошибка</translation>
     </message>
     <message>
-        <location line="+897"/>
-        <location filename="../src/qt3support/network/q3ftp.cpp" line="+77"/>
         <source>Connecting to host failed:
 %1</source>
         <translation>Не удалось соединиться с узлом:
 %1</translation>
     </message>
     <message>
-        <location line="+4"/>
-        <location filename="../src/qt3support/network/q3ftp.cpp" line="+3"/>
         <source>Login failed:
 %1</source>
         <translation>Не удалось авторизоваться:
 %1</translation>
     </message>
     <message>
-        <location line="+4"/>
-        <location filename="../src/qt3support/network/q3ftp.cpp" line="+3"/>
         <source>Listing directory failed:
 %1</source>
         <translation>Не удалось прочитать каталог:
 %1</translation>
     </message>
     <message>
-        <location line="+4"/>
-        <location filename="../src/qt3support/network/q3ftp.cpp" line="+3"/>
         <source>Changing directory failed:
 %1</source>
         <translation>Не удалось сменить каталог:
 %1</translation>
     </message>
     <message>
-        <location line="+4"/>
-        <location filename="../src/qt3support/network/q3ftp.cpp" line="+3"/>
         <source>Downloading file failed:
 %1</source>
         <translation>Не удалось загрузить файл:
 %1</translation>
     </message>
     <message>
-        <location line="+4"/>
-        <location filename="../src/qt3support/network/q3ftp.cpp" line="+3"/>
         <source>Uploading file failed:
 %1</source>
         <translation>Не удалось отгрузить файл:
 %1</translation>
     </message>
     <message>
-        <location line="+4"/>
-        <location filename="../src/qt3support/network/q3ftp.cpp" line="+3"/>
         <source>Removing file failed:
 %1</source>
         <translation>Не удалось удалить файл:
 %1</translation>
     </message>
     <message>
-        <location line="+4"/>
-        <location filename="../src/qt3support/network/q3ftp.cpp" line="+3"/>
         <source>Creating directory failed:
 %1</source>
         <translation>Не удалось создать каталог:
 %1</translation>
     </message>
     <message>
-        <location line="+4"/>
-        <location filename="../src/qt3support/network/q3ftp.cpp" line="+3"/>
         <source>Removing directory failed:
 %1</source>
         <translation>Не удалось удалить каталог:
 %1</translation>
     </message>
     <message>
-        <location line="-1535"/>
-        <location filename="../src/qt3support/network/q3ftp.cpp" line="-1356"/>
         <source>Not connected</source>
         <translation>Соединение не установлено</translation>
     </message>
     <message>
-        <location line="+399"/>
-        <location filename="../src/qt3support/network/q3ftp.cpp" line="+332"/>
         <source>Connection refused for data connection</source>
         <translation>Отказ в соединении для передачи данных</translation>
     </message>
@@ -3759,12 +2967,10 @@
 <context>
     <name>QHostInfo</name>
     <message>
-        <location filename="../src/network/kernel/qhostinfo_p.h" line="+103"/>
         <source>Unknown error</source>
         <translation>Неизвестная ошибка</translation>
     </message>
     <message>
-        <location filename="../src/network/kernel/qhostinfo.cpp" line="+171"/>
         <source>No host name given</source>
         <translation>Имя узла не задано</translation>
     </message>
@@ -3772,37 +2978,22 @@
 <context>
     <name>QHostInfoAgent</name>
     <message>
-        <location filename="../src/network/kernel/qhostinfo_unix.cpp" line="+260"/>
-        <location line="+32"/>
-        <location filename="../src/network/kernel/qhostinfo_win.cpp" line="+215"/>
-        <location line="+27"/>
         <source>Host not found</source>
         <translation>Узел не найден</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>Неизвестный тип адреса</translation>
     </message>
     <message>
-        <location line="+10"/>
-        <location filename="../src/network/kernel/qhostinfo_win.cpp" line="-19"/>
-        <location line="+27"/>
         <source>Unknown error</source>
         <translation>Неизвестная ошибка</translation>
     </message>
     <message>
-        <location line="-98"/>
-        <location filename="../src/network/kernel/qhostinfo_win.cpp" line="-67"/>
         <source>No host name given</source>
         <translation>Имя узла не задано</translation>
     </message>
     <message>
-        <location line="+1"/>
-        <location filename="../src/network/kernel/qhostinfo_win.cpp" line="+0"/>
         <source>Invalid hostname</source>
         <translation>Некорректное имя узла</translation>
     </message>
@@ -3810,153 +3001,110 @@
 <context>
     <name>QHttp</name>
     <message>
-        <location filename="../src/network/access/qhttpnetworkconnection.cpp" line="-6"/>
-        <location filename="../src/qt3support/network/q3http.cpp" line="+1835"/>
         <source>Connection refused</source>
         <translation>Отказано в соединении</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>Узел %1 не найден</translation>
     </message>
     <message>
-        <location line="-62"/>
-        <location filename="../src/qt3support/network/q3http.cpp" line="-45"/>
         <source>Wrong content length</source>
         <translation>Неверная длина содержимого</translation>
     </message>
     <message>
-        <location line="+82"/>
-        <location filename="../src/qt3support/network/q3http.cpp" line="+48"/>
         <source>HTTP request failed</source>
         <translation>HTTP-запрос не удался</translation>
     </message>
     <message>
-        <location filename="../src/qt3support/network/q3http.cpp" line="+450"/>
         <source>Host %1 found</source>
         <translation>Узел %1 найден</translation>
     </message>
     <message>
-        <location line="+14"/>
         <source>Host found</source>
         <translation>Узел найден</translation>
     </message>
     <message>
-        <location line="-11"/>
         <source>Connected to host %1</source>
         <translation>Установлено соединение с узлом %1</translation>
     </message>
     <message>
-        <location line="+14"/>
         <source>Connected to host</source>
         <translation>Соединение с узлом установлено</translation>
     </message>
     <message>
-        <location line="-11"/>
         <source>Connection to %1 closed</source>
         <translation>Соединение с узлом %1 закрыто</translation>
     </message>
     <message>
-        <location filename="../src/network/access/qhttpnetworkconnection.cpp" line="+7"/>
-        <location filename="../src/qt3support/network/q3http.cpp" line="+14"/>
         <source>Connection closed</source>
         <translation>Соединение закрыто</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>Неизвестная ошибка</translation>
     </message>
     <message>
-        <location line="-568"/>
-        <location filename="../src/qt3support/network/q3http.cpp" line="-370"/>
         <source>Request aborted</source>
         <translation>Запрос прерван</translation>
     </message>
     <message>
-        <location line="+579"/>
-        <location filename="../src/qt3support/network/q3http.cpp" line="+381"/>
         <source>No server set to connect to</source>
         <translation>Не указан сервер для подключения</translation>
     </message>
     <message>
-        <location line="+168"/>
-        <location filename="../src/qt3support/network/q3http.cpp" line="+60"/>
         <source>Server closed connection unexpectedly</source>
         <translation>Сервер неожиданно разорвал соединение</translation>
     </message>
     <message>
-        <location line="+172"/>
-        <location filename="../src/qt3support/network/q3http.cpp" line="+113"/>
         <source>Invalid HTTP response header</source>
         <translation>Некорректный HTTP-заголовок ответа</translation>
     </message>
     <message>
-        <location line="+28"/>
         <source>Unknown authentication method</source>
         <translation>Неизвестный метод авторизации</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>Некорректное HTTP-фрагментирование данных</translation>
     </message>
     <message>
-        <location line="+38"/>
         <source>Error writing response to device</source>
         <translation>Ошибка записи ответа на устройство</translation>
     </message>
     <message>
-        <location line="-173"/>
         <source>Proxy authentication required</source>
         <translation>Требуется авторизация на прокси-сервере</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Authentication required</source>
         <translation>Требуется авторизация</translation>
     </message>
     <message>
-        <location filename="../src/network/access/qhttpnetworkconnection.cpp" line="+6"/>
         <source>Proxy requires authentication</source>
         <translation>Прокси-сервер требует авторизацию</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Host requires authentication</source>
         <translation>Узел требует авторизацию</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Data corrupted</source>
         <translation>Данные повреждены</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>SSL handshake failed</source>
         <translation>Квитирование SSL не удалось</translation>
     </message>
     <message>
-        <location line="-3"/>
         <source>Unknown protocol specified</source>
         <translation>Указан неизвестный протокол</translation>
     </message>
     <message>
-        <location filename="../src/network/access/qhttp.cpp" line="-159"/>
         <source>Connection refused (or timed out)</source>
         <translation>В соединении отказано (или время ожидания истекло)</translation>
     </message>
     <message>
-        <location line="-2266"/>
         <source>HTTPS connection requested but SSL support not compiled in</source>
         <translation>Запрошено соединение по протоколу HTTPS, но поддержка SSL не скомпилирована</translation>
     </message>
@@ -3964,47 +3112,38 @@
 <context>
     <name>QHttpSocketEngine</name>
     <message>
-        <location filename="../src/network/socket/qhttpsocketengine.cpp" line="-89"/>
         <source>Did not receive HTTP response from proxy</source>
         <translation>Не получен HTTP-ответ от прокси-сервера</translation>
     </message>
     <message>
-        <location line="+25"/>
         <source>Error parsing authentication request from proxy</source>
         <translation>Ошибка разбора запроса авторизации от прокси-сервера</translation>
     </message>
     <message>
-        <location line="+31"/>
         <source>Authentication required</source>
         <translation>Требуется авторизация</translation>
     </message>
     <message>
-        <location line="+27"/>
         <source>Proxy denied connection</source>
         <translation>Прокси-сервер запретил соединение</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>Error communicating with HTTP proxy</source>
         <translation>Ошибка обмена данными с прокси-сервером HTTP</translation>
     </message>
     <message>
-        <location line="+23"/>
         <source>Proxy server not found</source>
         <translation>Прокси-сервер не найден</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Proxy connection refused</source>
         <translation>В соединении прокси-сервером отказано</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Proxy server connection timed out</source>
         <translation>Время на соединение с прокси-сервером истекло</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Proxy connection closed prematurely</source>
         <translation>Соединение с прокси-сервером неожиданно закрыто</translation>
     </message>
@@ -4012,22 +3151,18 @@
 <context>
     <name>QIBaseDriver</name>
     <message>
-        <location filename="../src/sql/drivers/ibase/qsql_ibase.cpp" line="+1491"/>
         <source>Error opening database</source>
         <translation>Ошибка открытия базы данных</translation>
     </message>
     <message>
-        <location line="+54"/>
         <source>Could not start transaction</source>
         <translation>Не удалось начать транзакцию</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>Unable to commit transaction</source>
         <translation>Невозможно завершить транзакцию</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>Unable to rollback transaction</source>
         <translation>Невозможно отозвать транзакцию</translation>
     </message>
@@ -4035,89 +3170,70 @@
 <context>
     <name>QIBaseResult</name>
     <message>
-        <location line="-1149"/>
         <source>Unable to create BLOB</source>
         <translation>Невозможно создать BLOB</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Unable to write BLOB</source>
         <translation>Невозможно записать BLOB</translation>
     </message>
     <message>
-        <location line="+14"/>
         <source>Unable to open BLOB</source>
         <translation>Невозможно открыть BLOB</translation>
     </message>
     <message>
-        <location line="+16"/>
         <source>Unable to read BLOB</source>
         <translation>Невозможно прочитать BLOB</translation>
     </message>
     <message>
-        <location line="+125"/>
-        <location line="+187"/>
         <source>Could not find array</source>
         <translation>Не удалось найти массив</translation>
     </message>
     <message>
-        <location line="-155"/>
         <source>Could not get array data</source>
         <translation>Не удалось найти данные массива</translation>
     </message>
     <message>
-        <location line="+210"/>
         <source>Could not get query info</source>
         <translation>Не удалось найти информацию о запросе</translation>
     </message>
     <message>
-        <location line="+20"/>
         <source>Could not start transaction</source>
         <translation>Не удалось начать транзакцию</translation>
     </message>
     <message>
-        <location line="+19"/>
         <source>Unable to commit transaction</source>
         <translation>Невозможно завершить транзакцию</translation>
     </message>
     <message>
-        <location line="+42"/>
         <source>Could not allocate statement</source>
         <translation>Не удалось получить ресурсы для создания выражения</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Could not prepare statement</source>
         <translation>Не удалось подготовить выражение</translation>
     </message>
     <message>
-        <location line="+5"/>
-        <location line="+11"/>
         <source>Could not describe input statement</source>
         <translation>Не удалось описать входящее выражение</translation>
     </message>
     <message>
-        <location line="+14"/>
         <source>Could not describe statement</source>
         <translation>Не удалось описать выражение</translation>
     </message>
     <message>
-        <location line="+115"/>
         <source>Unable to close statement</source>
         <translation>Невозможно закрыть выражение</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Unable to execute query</source>
         <translation>Невозможно выполнить запрос</translation>
     </message>
     <message>
-        <location line="+46"/>
         <source>Could not fetch next item</source>
         <translation>Не удалось получить следующий элемент</translation>
     </message>
     <message>
-        <location line="+197"/>
         <source>Could not get statement info</source>
         <translation>Не удалось найти информацию о выражении</translation>
     </message>
@@ -4125,27 +3241,22 @@
 <context>
     <name>QIODevice</name>
     <message>
-        <location filename="../src/corelib/global/qglobal.cpp" line="+2120"/>
         <source>Permission denied</source>
         <translation>Доступ запрещён</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Too many open files</source>
         <translation>Слишком много открытых файлов</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>No such file or directory</source>
         <translation>Файл или каталог не существует</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>No space left on device</source>
         <translation>Нет свободного места на устройстве</translation>
     </message>
     <message>
-        <location filename="../src/corelib/io/qiodevice.cpp" line="+1598"/>
         <source>Unknown error</source>
         <translation>Неизвестная ошибка</translation>
     </message>
@@ -4153,32 +3264,26 @@
 <context>
     <name>QInputContext</name>
     <message>
-        <location filename="../src/gui/inputmethod/qinputcontextfactory.cpp" line="+301"/>
         <source>XIM</source>
         <translation>Метод ввода X-сервера</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>FEP</source>
         <translation>Метод ввода S60 FEP</translation>
     </message>
     <message>
-        <location line="+23"/>
         <source>XIM input method</source>
         <translation>Метод ввода X-сервера</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Windows input method</source>
         <translation>Метод ввода Windows</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Mac OS X input method</source>
         <translation>Метод ввода Mac OS X</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>S60 FEP input method</source>
         <translation>Метод ввода S60 FEP</translation>
     </message>
@@ -4186,7 +3291,6 @@
 <context>
     <name>QInputDialog</name>
     <message>
-        <location filename="../src/gui/dialogs/qinputdialog.cpp" line="+223"/>
         <source>Enter a value:</source>
         <translation>Укажите значение:</translation>
     </message>
@@ -4194,67 +3298,50 @@
 <context>
     <name>QLibrary</name>
     <message>
-        <location filename="../src/corelib/plugin/qlibrary.cpp" line="+383"/>
         <source>Could not mmap &apos;%1&apos;: %2</source>
         <translation>Не удалось выполнить mmap &quot;%1&quot;: %2</translation>
     </message>
     <message>
-        <location line="+22"/>
         <source>Plugin verification data mismatch in &apos;%1&apos;</source>
         <translation>Проверочная информация для модуля &quot;%1&quot; не совпадает</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Could not unmap &apos;%1&apos;: %2</source>
         <translation>Не удалось выполнить unmap &quot;%1&quot;: %2</translation>
     </message>
     <message>
-        <location line="+375"/>
         <source>The plugin &apos;%1&apos; uses incompatible Qt library. (%2.%3.%4) [%5]</source>
         <translation>Модуль &quot;%1&quot; использует несоместимую библиотеку Qt. (%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>Модуль &quot;%1&quot; использует несоместимую библиотеку Qt. Ожидается ключ &quot;%2&quot;, но получен ключ &quot;%3&quot;</translation>
     </message>
     <message>
-        <location line="+365"/>
         <source>Unknown error</source>
         <translation>Неизвестная ошибка</translation>
     </message>
     <message>
-        <location line="-540"/>
-        <location line="+138"/>
-        <location filename="../src/corelib/plugin/qpluginloader.cpp" line="+343"/>
         <source>The shared library was not found.</source>
         <translation>Динамическая библиотека не найдена.</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>The file &apos;%1&apos; is not a valid Qt plugin.</source>
         <translation>Файл &quot;%1&quot; - не является корректным модулем Qt.</translation>
     </message>
     <message>
-        <location line="+43"/>
         <source>The plugin &apos;%1&apos; uses incompatible Qt library. (Cannot mix debug and release libraries.)</source>
         <translation>Модуль &quot;%1&quot; использует несоместимую библиотеку Qt. (Невозможно совместить релизные и отладочные библиотеки.)</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>Невозможно загрузить библиотеку %1: %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>Невозможно выгрузить библиотеку %1: %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>Невозможно разрешить символ &quot;%1&quot; в %2: %3</translation>
     </message>
@@ -4262,37 +3349,30 @@
 <context>
     <name>QLineEdit</name>
     <message>
-        <location filename="../src/gui/widgets/qlineedit.cpp" line="+2116"/>
         <source>Select All</source>
         <translation>Выделить всё</translation>
     </message>
     <message>
-        <location line="-40"/>
         <source>&amp;Undo</source>
         <translation>&amp;Отменить действие</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>&amp;Redo</source>
         <translation>&amp;Повторить действие</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Cu&amp;t</source>
         <translation>&amp;Вырезать</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>&amp;Copy</source>
         <translation>&amp;Копировать</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>&amp;Paste</source>
         <translation>В&amp;ставить</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Delete</source>
         <translation>Удалить</translation>
     </message>
@@ -4300,23 +3380,18 @@
 <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: Некорректное имя</translation>
     </message>
     <message>
-        <location filename="../src/network/socket/qlocalserver_unix.cpp" line="-8"/>
         <source>%1: Permission denied</source>
         <translation>%1: Доступ запрещён</translation>
     </message>
     <message>
-        <location line="+12"/>
         <source>%1: Address in use</source>
         <translation>%1: Адрес используется</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>%1: Unknown error %2</source>
         <translation>%1: Неизвестная ошибка %2</translation>
     </message>
@@ -4324,70 +3399,46 @@
 <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: Отказано в соединении</translation>
     </message>
     <message>
-        <location line="+3"/>
-        <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+3"/>
         <source>%1: Remote closed</source>
         <translation>%1: Закрыто удаленной стороной</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="+79"/>
-        <location line="+59"/>
         <source>%1: Invalid name</source>
         <translation>%1: Некорректное имя</translation>
     </message>
     <message>
-        <location line="+3"/>
-        <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+3"/>
         <source>%1: Socket access error</source>
         <translation>%1: Ошибка обращения к сокету</translation>
     </message>
     <message>
-        <location line="+3"/>
-        <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+3"/>
         <source>%1: Socket resource error</source>
         <translation>%1: Ошибка выделения ресурсов сокета</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: Время на операцию с сокетом истекло</translation>
     </message>
     <message>
-        <location line="+3"/>
-        <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+3"/>
         <source>%1: Datagram too large</source>
         <translation>%1: Датаграмма слишком большая</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="-64"/>
         <source>%1: Connection error</source>
         <translation>%1: Ошибка соединения</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: Операция с сокетом не поддерживается</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>%1: Unknown error</source>
         <translation>%1: Неизвестная ошибка</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: Неизвестная ошибка %2</translation>
     </message>
@@ -4395,27 +3446,22 @@
 <context>
     <name>QMYSQLDriver</name>
     <message>
-        <location filename="../src/sql/drivers/mysql/qsql_mysql.cpp" line="+1287"/>
         <source>Unable to open database &apos;</source>
         <translation>Невозможно открыть базу данных &apos;</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>Unable to connect</source>
         <translation>Невозможно соединиться</translation>
     </message>
     <message>
-        <location line="+150"/>
         <source>Unable to begin transaction</source>
         <translation>Невозможно начать транзакцию</translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>Unable to commit transaction</source>
         <translation>Невозможно завершить транзакцию</translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>Unable to rollback transaction</source>
         <translation>Невозможно отозвать транзакцию</translation>
     </message>
@@ -4423,60 +3469,46 @@
 <context>
     <name>QMYSQLResult</name>
     <message>
-        <location line="-977"/>
-        <location line="+31"/>
         <source>Unable to fetch data</source>
         <translation>Невозможно получить данные</translation>
     </message>
     <message>
-        <location line="+161"/>
         <source>Unable to execute query</source>
         <translation>Невозможно выполнить запрос</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Unable to store result</source>
         <translation>Невозможно сохранить результат</translation>
     </message>
     <message>
-        <location line="+191"/>
-        <location line="+8"/>
         <source>Unable to prepare statement</source>
         <translation>Невозможно подготовить выражение</translation>
     </message>
     <message>
-        <location line="+37"/>
         <source>Unable to reset statement</source>
         <translation>Невозможно сбросить выражение</translation>
     </message>
     <message>
-        <location line="+86"/>
         <source>Unable to bind value</source>
         <translation>Невозможно привязать значение</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>Unable to execute statement</source>
         <translation>Невозможно выполнить выражение</translation>
     </message>
     <message>
-        <location line="+14"/>
-        <location line="+21"/>
         <source>Unable to bind outvalues</source>
         <translation>Невозможно привязать результирующие значения</translation>
     </message>
     <message>
-        <location line="-12"/>
         <source>Unable to store statement results</source>
         <translation>Невозможно сохранить результаты выполнения выражения</translation>
     </message>
     <message>
-        <location line="-253"/>
         <source>Unable to execute next query</source>
         <translation>Невозможно выполнить следующий запрос</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>Unable to store next result</source>
         <translation>Невозможно сохранить следующий результат</translation>
     </message>
@@ -4484,7 +3516,6 @@
 <context>
     <name>QMdiArea</name>
     <message>
-        <location filename="../src/gui/widgets/qmdiarea.cpp" line="+290"/>
         <source>(Untitled)</source>
         <translation>(Неозаглавлено)</translation>
     </message>
@@ -4492,92 +3523,74 @@
 <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>Закрыть</translation>
     </message>
     <message>
-        <location line="-18"/>
         <source>Minimize</source>
         <translation>Свернуть</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>Restore Down</source>
         <translation>Восстановить</translation>
     </message>
     <message>
-        <location line="+707"/>
         <source>&amp;Restore</source>
         <translation>&amp;Восстановить</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>&amp;Move</source>
         <translation>&amp;Переместить</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Size</source>
         <translation>&amp;Размер</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Mi&amp;nimize</source>
         <translation>&amp;Свернуть</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Ma&amp;ximize</source>
         <translation>Р&amp;аспахнуть</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Stay on &amp;Top</source>
         <translation>Оставаться &amp;сверху</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>&amp;Close</source>
         <translation>&amp;Закрыть</translation>
     </message>
     <message>
-        <location line="-729"/>
         <source>Maximize</source>
         <translation>Распахнуть</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Unshade</source>
         <translation>Восстановить из заголовка</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Shade</source>
         <translation>Свернуть в заголовок</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Restore</source>
         <translation>Восстановить</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Help</source>
         <translation>Справка</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Menu</source>
         <translation>Меню</translation>
     </message>
     <message>
-        <location line="-79"/>
         <source>- [%1]</source>
         <translation>- [%1]</translation>
     </message>
@@ -4585,21 +3598,14 @@
 <context>
     <name>QMenu</name>
     <message>
-        <location filename="../src/plugins/accessible/widgets/qaccessiblemenu.cpp" line="+157"/>
-        <location line="+225"/>
         <source>Close</source>
         <translation>Закрыть</translation>
     </message>
     <message>
-        <location line="-224"/>
-        <location line="+225"/>
         <source>Open</source>
         <translation>Открыть</translation>
     </message>
     <message>
-        <location line="-223"/>
-        <location line="+225"/>
-        <location line="+51"/>
         <source>Execute</source>
         <translation>Выполнить</translation>
     </message>
@@ -4607,7 +3613,6 @@
 <context>
     <name>QMenuBar</name>
     <message>
-        <location filename="../src/gui/widgets/qmenu_symbian.cpp" line="+456"/>
         <source>Actions</source>
         <translation>Действия</translation>
     </message>
@@ -4615,40 +3620,30 @@
 <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>Закрыть</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&lt;/h3&gt;&lt;p&gt;Данная программа использует Qt версии %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) 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>&lt;p&gt;Qt - это инструментарий для разработки кроссплатформенных приложений на C++.&lt;/p&gt;&lt;p&gt;Qt предоставляет совместимость на уровне исходных текстов между MS&amp;nbsp;Windows, Mac&amp;nbsp;OS&amp;nbsp;X, Linux и всеми популярными коммерческими вариантами Unix. Также Qt доступна для встраиваемых устройств в виде Qt для Embedded Linux и Qt для Windows CE.&lt;/p&gt;&lt;p&gt;Qt доступна под тремя различными лицензиями, разработанными для удовлетворения различных требований.&lt;/p&gt;&lt;p&gt;Qt под нашей коммерческой лицензией предназначена для развития проприетарного/коммерческого программного обеспечения, когда Вы не желаете предоставлять исходные тексты третьим сторонам, или в случае невозможности принятия условий лицензий GNU LGPL версии 2.1 или GNU GPL версии 3.0.&lt;/p&gt;&lt;p&gt;Qt под лицензией GNU LGPL версии 2.1 предназначена для разработки программного обеспечения с открытыми исходными текстами или коммерческого программного обеспечения при соблюдении условий лицензии GNU LGPL версии 2.1.&lt;/p&gt;&lt;p&gt;Qt под лицензией GNU General Public License версии 3.0 предназначена для разработки программных приложений в тех случаях, когда Вы хотели бы использовать такие приложения в сочетании с программным обеспечением на условиях лицензии GNU GPL с версии 3.0 или если Вы готовы соблюдать условия лицензии GNU GPL версии 3.0.&lt;/p&gt;&lt;p&gt;Обратитесь к &lt;a href=&quot;http://qt.nokia.com/products/licensing&quot;&gt;qt.nokia.com/products/licensing&lt;/a&gt; для обзора лицензий Qt.&lt;/p&gt;&lt;p&gt;Copyright (C) 2010 Корпорация Nokia и/или её дочерние подразделения.&lt;/p&gt;&lt;p&gt;Qt - продукт компании Nokia. Обратитесь к &lt;a href=&quot;http://qt.nokia.com/&quot;&gt;qt.nokia.com&lt;/a&gt; для получения дополнительной информации.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location line="+31"/>
         <source>About Qt</source>
         <translation>О Qt</translation>
     </message>
     <message>
-        <location line="-512"/>
         <source>Help</source>
         <translation>Справка</translation>
     </message>
     <message>
-        <location line="-1129"/>
         <source>Show Details...</source>
         <translation>Показать подробности...</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Hide Details...</source>
         <translation>Скрыть подробности...</translation>
     </message>
@@ -4656,7 +3651,6 @@
 <context>
     <name>QMultiInputContext</name>
     <message>
-        <location filename="../src/plugins/inputmethods/imsw-multi/qmultiinputcontext.cpp" line="+88"/>
         <source>Select IM</source>
         <translation>Выбор режима ввода</translation>
     </message>
@@ -4664,12 +3658,10 @@
 <context>
     <name>QMultiInputContextPlugin</name>
     <message>
-        <location filename="../src/plugins/inputmethods/imsw-multi/qmultiinputcontextplugin.cpp" line="+95"/>
         <source>Multiple input method switcher</source>
         <translation>Переключатель режима множественного ввода</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Multiple input method switcher that uses the context menu of the text widgets</source>
         <translation>Переключатель режима множественного ввода, используемый в контекстном меню текстовых редакторов</translation>
     </message>
@@ -4677,132 +3669,106 @@
 <context>
     <name>QNativeSocketEngine</name>
     <message>
-        <location filename="../src/network/socket/qnativesocketengine.cpp" line="+209"/>
         <source>The remote host closed the connection</source>
         <translation>Удалённый узел закрыл соединение</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Network operation timed out</source>
         <translation>Время на сетевую операцию истекло</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Out of resources</source>
         <translation>Недостаточно ресурсов</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Unsupported socket operation</source>
         <translation>Операция с сокетом не поддерживается</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Protocol type not supported</source>
         <translation>Протокол не поддерживается</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Invalid socket descriptor</source>
         <translation>Некорректный дескриптор сокета</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Network unreachable</source>
         <translation>Сеть недоступна</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Permission denied</source>
         <translation>Доступ запрещён</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Connection timed out</source>
         <translation>Время на соединение истекло</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Connection refused</source>
         <translation>Отказано в соединении</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>The bound address is already in use</source>
         <translation>Адрес уже используется</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>The address is not available</source>
         <translation>Адрес недоступен</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>The address is protected</source>
         <translation>Адрес защищён</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Unable to send a message</source>
         <translation>Невозможно отправить сообщение</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Unable to receive a message</source>
         <translation>Невозможно получить сообщение</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Unable to write</source>
         <translation>Невозможно записать</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Network error</source>
         <translation>Ошибка сети</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Another socket is already listening on the same port</source>
         <translation>Другой сокет уже прослушивает этот порт</translation>
     </message>
     <message>
-        <location line="-66"/>
         <source>Unable to initialize non-blocking socket</source>
         <translation>Невозможно инициализировать не-блочный сокет</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Unable to initialize broadcast socket</source>
         <translation>Невозможно инициализировать широковещательный сокет</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Attempt to use IPv6 socket on a platform with no IPv6 support</source>
         <translation>Попытка использовать IPv6 на платформе, не поддерживающей IPv6</translation>
     </message>
     <message>
-        <location line="+21"/>
         <source>Host unreachable</source>
         <translation>Узел недоступен</translation>
     </message>
     <message>
-        <location line="+24"/>
         <source>Datagram was too large to send</source>
         <translation>Датаграмма слишком большая для отправки</translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>Operation on non-socket</source>
         <translation>Операция с не-сокетом</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Unknown error</source>
         <translation>Неизвестная ошибка</translation>
     </message>
     <message>
-        <location line="-3"/>
         <source>The proxy type is invalid for this operation</source>
         <translation>Некорректный тип прокси-сервера для данной операции</translation>
     </message>
@@ -4810,7 +3776,6 @@
 <context>
     <name>QNetworkAccessCacheBackend</name>
     <message>
-        <location filename="../src/network/access/qnetworkaccesscachebackend.cpp" line="+66"/>
         <source>Error opening %1</source>
         <translation>Ошибка открытия %1</translation>
     </message>
@@ -4818,12 +3783,10 @@
 <context>
     <name>QNetworkAccessDataBackend</name>
     <message>
-        <location filename="../src/network/access/qnetworkaccessdatabackend.cpp" line="+76"/>
         <source>Operation not supported on %1</source>
         <translation>Операция не поддерживается для %1</translation>
     </message>
     <message>
-        <location line="+25"/>
         <source>Invalid URI: %1</source>
         <translation>Некорректный URI: %1</translation>
     </message>
@@ -4831,17 +3794,14 @@
 <context>
     <name>QNetworkAccessDebugPipeBackend</name>
     <message>
-        <location filename="../src/network/access/qnetworkaccessdebugpipebackend.cpp" line="+195"/>
         <source>Write error writing to %1: %2</source>
         <translation>Ошибка записи в %1: %2</translation>
     </message>
     <message>
-        <location line="+60"/>
         <source>Socket error on %1: %2</source>
         <translation>Ошика сокета для %1: %2</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Remote host closed the connection prematurely on %1</source>
         <translation>Удалённый узел неожиданно прервал соединение для %1</translation>
     </message>
@@ -4849,30 +3809,22 @@
 <context>
     <name>QNetworkAccessFileBackend</name>
     <message>
-        <location filename="../src/network/access/qfilenetworkreply.cpp" line="+85"/>
-        <location filename="../src/network/access/qnetworkaccessfilebackend.cpp" line="+100"/>
         <source>Request for opening non-local file %1</source>
         <translation>Запрос на открытие файла вне файловой системы %1</translation>
     </message>
     <message>
-        <location line="+33"/>
-        <location filename="../src/network/access/qnetworkaccessfilebackend.cpp" line="+45"/>
         <source>Error opening %1: %2</source>
         <translation>Ошибка открытия %1: %2</translation>
     </message>
     <message>
-        <location filename="../src/network/access/qnetworkaccessfilebackend.cpp" line="+38"/>
         <source>Write error writing to %1: %2</source>
         <translation>Ошибка записи в %1: %2</translation>
     </message>
     <message>
-        <location filename="../src/network/access/qfilenetworkreply.cpp" line="-13"/>
-        <location filename="../src/network/access/qnetworkaccessfilebackend.cpp" line="+48"/>
         <source>Cannot open %1: Path is a directory</source>
         <translation>Невозможно открыть %1: Указан путь к каталогу</translation>
     </message>
     <message>
-        <location filename="../src/network/access/qnetworkaccessfilebackend.cpp" line="+21"/>
         <source>Read error reading from %1: %2</source>
         <translation>Ошибка чтения из %1: %2</translation>
     </message>
@@ -4880,27 +3832,22 @@
 <context>
     <name>QNetworkAccessFtpBackend</name>
     <message>
-        <location filename="../src/network/access/qnetworkaccessftpbackend.cpp" line="+131"/>
         <source>No suitable proxy found</source>
         <translation>Подходящий прокси-сервер не найден</translation>
     </message>
     <message>
-        <location line="+14"/>
         <source>Cannot open %1: is a directory</source>
         <translation>Невозможно открыть %1: Указан путь к каталогу</translation>
     </message>
     <message>
-        <location line="+112"/>
         <source>Logging in to %1 failed: authentication required</source>
         <translation>Соединение с %1 не удалось: требуется авторизация</translation>
     </message>
     <message>
-        <location line="+39"/>
         <source>Error while downloading %1: %2</source>
         <translation>Ошибка в процессе загрузки %1: %2</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Error while uploading %1: %2</source>
         <translation>Ошибка в процессе отгрузки %1: %2</translation>
     </message>
@@ -4908,7 +3855,6 @@
 <context>
     <name>QNetworkAccessHttpBackend</name>
     <message>
-        <location filename="../src/network/access/qnetworkaccesshttpbackend.cpp" line="+652"/>
         <source>No suitable proxy found</source>
         <translation>Подходящий прокси-сервер не найден</translation>
     </message>
@@ -4916,7 +3862,6 @@
 <context>
     <name>QNetworkAccessManager</name>
     <message>
-        <location filename="../src/network/access/qnetworkreplyimpl.cpp" line="+942"/>
         <source>Network access is disabled.</source>
         <translation>Доступ в сеть отключён.</translation>
     </message>
@@ -4924,22 +3869,18 @@
 <context>
     <name>QNetworkReply</name>
     <message>
-        <location filename="../src/network/access/qnetworkaccesshttpbackend.cpp" line="+100"/>
         <source>Error downloading %1 - server replied: %2</source>
         <translation>Ошибка загрузки %1 - ответ сервера: %2</translation>
     </message>
     <message>
-        <location filename="../src/network/access/qnetworkreplyimpl.cpp" line="-860"/>
         <source>Protocol &quot;%1&quot; is unknown</source>
         <translation>Неизвестный протокол &quot;%1&quot;</translation>
     </message>
     <message>
-        <location line="+192"/>
         <source>Network session error.</source>
         <translation>Ошибка сетевой сессии.</translation>
     </message>
     <message>
-        <location line="+352"/>
         <source>Temporary network failure.</source>
         <translation>Временная ошибка сети.</translation>
     </message>
@@ -4947,8 +3888,6 @@
 <context>
     <name>QNetworkReplyImpl</name>
     <message>
-        <location line="+120"/>
-        <location line="+28"/>
         <source>Operation canceled</source>
         <translation>Операция отменена</translation>
     </message>
@@ -4956,7 +3895,6 @@
 <context>
     <name>QNetworkSession</name>
     <message>
-        <location filename="../src/network/bearer/qnetworksession.cpp" line="+449"/>
         <source>Invalid configuration.</source>
         <translation>Некорректная конфигурация.</translation>
     </message>
@@ -4964,48 +3902,35 @@
 <context>
     <name>QNetworkSessionPrivateImpl</name>
     <message>
-        <location filename="../src/plugins/bearer/icd/qnetworksession_impl.cpp" line="+1005"/>
         <source>Roaming error</source>
         <translatorcomment>или перемещения?</translatorcomment>
         <translation type="unfinished">Ошибка роуминга</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Session aborted by user or system</source>
         <translation>Сессия прервана пользователем или системой</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Unidentified Error</source>
         <translation>Неопределённая ошибка</translation>
     </message>
     <message>
-        <location filename="../src/plugins/bearer/qnetworksession_impl.cpp" line="+272"/>
-        <location filename="../src/plugins/bearer/symbian/qnetworksession_impl.cpp" line="+280"/>
         <source>Unknown session error.</source>
         <translation>Неизвестная ошибка сессии.</translation>
     </message>
     <message>
-        <location line="+2"/>
-        <location filename="../src/plugins/bearer/symbian/qnetworksession_impl.cpp" line="+2"/>
         <source>The session was aborted by the user or system.</source>
         <translation>Сессия была прервана пользователем или системой.</translation>
     </message>
     <message>
-        <location line="+2"/>
-        <location filename="../src/plugins/bearer/symbian/qnetworksession_impl.cpp" line="+2"/>
         <source>The requested operation is not supported by the system.</source>
         <translation>Требуемая операция не поддерживается системой.</translation>
     </message>
     <message>
-        <location line="+2"/>
-        <location filename="../src/plugins/bearer/symbian/qnetworksession_impl.cpp" line="+2"/>
         <source>The specified configuration cannot be used.</source>
         <translation>Невозможно использовать указанную конфигурацию.</translation>
     </message>
     <message>
-        <location line="+2"/>
-        <location filename="../src/plugins/bearer/symbian/qnetworksession_impl.cpp" line="+2"/>
         <source>Roaming was aborted or is not possible.</source>
         <translation type="unfinished">Роуминг прерван или невозможен.</translation>
     </message>
@@ -5013,28 +3938,23 @@
 <context>
     <name>QOCIDriver</name>
     <message>
-        <location filename="../src/sql/drivers/oci/qsql_oci.cpp" line="+1944"/>
         <source>Unable to initialize</source>
         <comment>QOCIDriver</comment>
         <translation>Невозможно инициализировать</translation>
     </message>
     <message>
-        <location line="+144"/>
         <source>Unable to logon</source>
         <translation>Невозможно авторизоваться</translation>
     </message>
     <message>
-        <location line="+71"/>
         <source>Unable to begin transaction</source>
         <translation>Невозможно начать транзакцию</translation>
     </message>
     <message>
-        <location line="+19"/>
         <source>Unable to commit transaction</source>
         <translation>Невозможно завершить транзакцию</translation>
     </message>
     <message>
-        <location line="+19"/>
         <source>Unable to rollback transaction</source>
         <translation>Невозможно отозвать транзакцию</translation>
     </message>
@@ -5042,44 +3962,34 @@
 <context>
     <name>QOCIResult</name>
     <message>
-        <location line="-979"/>
-        <location line="+168"/>
-        <location line="+15"/>
         <source>Unable to bind column for batch execute</source>
         <translation>Невозможно привязать столбец для пакетного выполнения</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Unable to execute batch statement</source>
         <translation>Невозможно выполнить пакетное выражение</translation>
     </message>
     <message>
-        <location line="+304"/>
         <source>Unable to goto next</source>
         <translation>Невозможно перейти к следующей строке</translation>
     </message>
     <message>
-        <location line="+59"/>
         <source>Unable to alloc statement</source>
         <translation>Невозможно создать выражение</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Unable to prepare statement</source>
         <translation>Невозможно подготовить выражение</translation>
     </message>
     <message>
-        <location line="+26"/>
         <source>Unable to get statement type</source>
         <translation>Невозможно определить тип выражения</translation>
     </message>
     <message>
-        <location line="+20"/>
         <source>Unable to bind value</source>
         <translation>Невозможно привязать результирующие значения</translation>
     </message>
     <message>
-        <location line="+19"/>
         <source>Unable to execute statement</source>
         <translation>Невозможно выполнить выражение</translation>
     </message>
@@ -5087,32 +3997,26 @@
 <context>
     <name>QODBCDriver</name>
     <message>
-        <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="+1888"/>
         <source>Unable to connect</source>
         <translation>Невозможно соединиться</translation>
     </message>
     <message>
-        <location line="+269"/>
         <source>Unable to disable autocommit</source>
         <translation>Невозможно отключить автозавершение транзакций</translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>Unable to commit transaction</source>
         <translation>Невозможно завершить транзакцию</translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>Unable to rollback transaction</source>
         <translation>Невозможно отозвать транзакцию</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Unable to enable autocommit</source>
         <translation>Невозможно включить автозавершение транзакций</translation>
     </message>
     <message>
-        <location line="-312"/>
         <source>Unable to connect - Driver doesn&apos;t support all functionality required</source>
         <translation>Невозможно соединиться - Драйвер не поддерживает требуемый функционал</translation>
     </message>
@@ -5120,51 +4024,38 @@
 <context>
     <name>QODBCResult</name>
     <message>
-        <location line="-941"/>
-        <location line="+351"/>
         <source>QODBCResult::reset: Unable to set &apos;SQL_CURSOR_STATIC&apos; as statement attribute. Please check your ODBC driver configuration</source>
         <translation>QODBCResult::reset: Невозможно установить &quot;SQL_CURSOR_STATIC&quot; атрибутом выражение. Проверьте настройки драйвера ODBC</translation>
     </message>
     <message>
-        <location line="-334"/>
-        <location line="+627"/>
         <source>Unable to execute statement</source>
         <translation>Невозможно выполнить выражение</translation>
     </message>
     <message>
-        <location line="-546"/>
         <source>Unable to fetch next</source>
         <translation>Невозможно получить следующую строку</translation>
     </message>
     <message>
-        <location line="+271"/>
         <source>Unable to prepare statement</source>
         <translation>Невозможно подготовить выражение</translation>
     </message>
     <message>
-        <location line="+267"/>
         <source>Unable to bind variable</source>
         <translation>Невозможно привязать значение</translation>
     </message>
     <message>
-        <location filename="../src/sql/drivers/db2/qsql_db2.cpp" line="+189"/>
-        <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="-466"/>
-        <location line="+578"/>
         <source>Unable to fetch last</source>
         <translation>Невозможно получить последнюю строку</translation>
     </message>
     <message>
-        <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="-672"/>
         <source>Unable to fetch</source>
         <translation>Невозможно получить данные</translation>
     </message>
     <message>
-        <location line="+44"/>
         <source>Unable to fetch first</source>
         <translation>Невозможно получить первую строку</translation>
     </message>
     <message>
-        <location line="+19"/>
         <source>Unable to fetch previous</source>
         <translation>Невозможно получить предыдущую строку</translation>
     </message>
@@ -5172,19 +4063,14 @@
 <context>
     <name>QObject</name>
     <message>
-        <location filename="../src/declarative/util/qdeclarativexmllistmodel.cpp" line="-241"/>
         <source>&quot;%1&quot; duplicates a previous role name and will be disabled.</source>
         <translation>&quot;%1&quot; повторяет имя предыдущей роли и не будет использовано.</translation>
     </message>
     <message>
-        <location line="+515"/>
-        <location line="+4"/>
         <source>invalid query: &quot;%1&quot;</source>
         <translation>Некорректный запрос: &quot;%1&quot;</translation>
     </message>
     <message>
-        <location filename="../src/3rdparty/phonon/phonon/pulsesupport.cpp" line="+162"/>
-        <location line="+11"/>
         <source>PulseAudio Sound Server</source>
         <translation>Звуковой сервер PulseAudio</translation>
     </message>
@@ -5192,12 +4078,10 @@
 <context>
     <name>QPPDOptionsModel</name>
     <message>
-        <location filename="../src/gui/dialogs/qprintdialog_unix.cpp" line="+1238"/>
         <source>Name</source>
         <translation>Имя</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Value</source>
         <translation>Значение</translation>
     </message>
@@ -5205,32 +4089,26 @@
 <context>
     <name>QPSQLDriver</name>
     <message>
-        <location filename="../src/sql/drivers/psql/qsql_psql.cpp" line="+782"/>
         <source>Unable to connect</source>
         <translation>Невозможно соединиться</translation>
     </message>
     <message>
-        <location line="+49"/>
         <source>Could not begin transaction</source>
         <translation>Не удалось начать транзакцию</translation>
     </message>
     <message>
-        <location line="+30"/>
         <source>Could not commit transaction</source>
         <translation>Не удалось завершить транзакцию</translation>
     </message>
     <message>
-        <location line="+16"/>
         <source>Could not rollback transaction</source>
         <translation>Не удалось отозвать транзакцию</translation>
     </message>
     <message>
-        <location line="+374"/>
         <source>Unable to subscribe</source>
         <translation>Невозможно подписаться</translation>
     </message>
     <message>
-        <location line="+32"/>
         <source>Unable to unsubscribe</source>
         <translation>Невозможно отписаться</translation>
     </message>
@@ -5238,12 +4116,10 @@
 <context>
     <name>QPSQLResult</name>
     <message>
-        <location line="-1085"/>
         <source>Unable to create query</source>
         <translation>Невозможно создать запрос</translation>
     </message>
     <message>
-        <location line="+372"/>
         <source>Unable to prepare statement</source>
         <translation>Невозможно подготовить выражение</translation>
     </message>
@@ -5251,102 +4127,82 @@
 <context>
     <name>QPageSetupWidget</name>
     <message>
-        <location filename="../src/gui/dialogs/qpagesetupdialog_unix.cpp" line="+304"/>
         <source>Centimeters (cm)</source>
         <translation>Сантиметры (cm)</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Millimeters (mm)</source>
         <translation>Миллиметры (mm)</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Inches (in)</source>
         <translation>Дюймы (in)</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Points (pt)</source>
         <translation>Точки (pt)</translation>
     </message>
     <message>
-        <location filename="../src/gui/dialogs/qpagesetupwidget.ui"/>
         <source>Form</source>
         <translation>Форма</translation>
     </message>
     <message>
-        <location/>
         <source>Paper</source>
         <translation>Бумага</translation>
     </message>
     <message>
-        <location/>
         <source>Page size:</source>
         <translation>Размер страницы:</translation>
     </message>
     <message>
-        <location/>
         <source>Width:</source>
         <translation>Ширина:</translation>
     </message>
     <message>
-        <location/>
         <source>Height:</source>
         <translation>Высота:</translation>
     </message>
     <message>
-        <location/>
         <source>Paper source:</source>
         <translation>Источник бумаги:</translation>
     </message>
     <message>
-        <location/>
         <source>Orientation</source>
         <translation>Ориентация</translation>
     </message>
     <message>
-        <location/>
         <source>Portrait</source>
         <translation>Книжная</translation>
     </message>
     <message>
-        <location/>
         <source>Landscape</source>
         <translation>Альбомная</translation>
     </message>
     <message>
-        <location/>
         <source>Reverse landscape</source>
         <translation>Перевёрнутая альбомная</translation>
     </message>
     <message>
-        <location/>
         <source>Reverse portrait</source>
         <translation>Перевёрнутая книжная</translation>
     </message>
     <message>
-        <location/>
         <source>Margins</source>
         <translation>Поля</translation>
     </message>
     <message>
-        <location/>
         <source>top margin</source>
         <translation>верхнее поле</translation>
     </message>
     <message>
-        <location/>
         <source>left margin</source>
         <translation>левое поле</translation>
     </message>
     <message>
-        <location/>
         <source>right margin</source>
         <translation>правое поле</translation>
     </message>
     <message>
-        <location/>
         <source>bottom margin</source>
         <translation>нижнее поле</translation>
     </message>
@@ -5354,12 +4210,10 @@
 <context>
     <name>QPluginLoader</name>
     <message>
-        <location filename="../src/corelib/plugin/qpluginloader.cpp" line="+24"/>
         <source>Unknown error</source>
         <translation>Неизвестная ошибка</translation>
     </message>
     <message>
-        <location line="-113"/>
         <source>The plugin was not loaded.</source>
         <translation>Модуль не был загружен.</translation>
     </message>
@@ -5367,433 +4221,344 @@
 <context>
     <name>QPrintDialog</name>
     <message>
-        <location filename="../src/gui/painting/qprinterinfo_unix.cpp" line="+110"/>
         <source>locally connected</source>
         <translation>соединено локально</translation>
     </message>
     <message>
-        <location line="+23"/>
-        <location line="+225"/>
         <source>Aliases: %1</source>
         <translation>Псевдонимы: %1</translation>
     </message>
     <message>
-        <location line="+225"/>
-        <location line="+199"/>
         <source>unknown</source>
         <translation>неизвестно</translation>
     </message>
     <message>
-        <location filename="../src/gui/dialogs/qprintdialog_win.cpp" line="+272"/>
         <source>OK</source>
         <translation>Закрыть</translation>
     </message>
     <message>
-        <location filename="../src/gui/dialogs/qprintdialog_qws.cpp" line="+379"/>
         <source>Print all</source>
         <translation>Все страницы</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Print range</source>
         <translation>Диапазон страниц</translation>
     </message>
     <message>
-        <location line="-48"/>
         <source>A0 (841 x 1189 mm)</source>
         <translation>A0 (841 x 1189 мм)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>A1 (594 x 841 mm)</source>
         <translation>A1 (594 x 841 мм)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>A2 (420 x 594 mm)</source>
         <translation>A2 (420 x 594 мм)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>A3 (297 x 420 mm)</source>
         <translation>A3 (297 x 420 мм)</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>A5 (148 x 210 mm)</source>
         <translation>A5 (148 x 210 мм)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>A6 (105 x 148 mm)</source>
         <translation>A6 (105 x 148 мм)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>A7 (74 x 105 mm)</source>
         <translation>A7 (74 x 105 мм)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>A8 (52 x 74 mm)</source>
         <translation>A8 (52 x 74 мм)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>A9 (37 x 52 mm)</source>
         <translation>A9 (37 x 52 мм)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>B0 (1000 x 1414 mm)</source>
         <translation>B0 (1000 x 1414 мм)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>B1 (707 x 1000 mm)</source>
         <translation>B1 (707 x 1000 мм)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>B2 (500 x 707 mm)</source>
         <translation>B2 (500 x 707 мм)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>B3 (353 x 500 mm)</source>
         <translation>B3 (353 x 500 мм)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>B4 (250 x 353 mm)</source>
         <translation>B4 (250 x 353 мм)</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>B6 (125 x 176 mm)</source>
         <translation>B6 (125 x 176 мм)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>B7 (88 x 125 mm)</source>
         <translation>B7 (88 x 125 мм)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>B8 (62 x 88 mm)</source>
         <translation>B8 (62 x 88 мм)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>B9 (44 x 62 mm)</source>
         <translation>B9 (44 x 62 мм)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>B10 (31 x 44 mm)</source>
         <translation>B10 (31 x 44 мм)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>C5E (163 x 229 mm)</source>
         <translation>C5E (163 x 229 мм)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>DLE (110 x 220 mm)</source>
         <translation>DLE (110 x 220 мм)</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Folio (210 x 330 mm)</source>
         <translation>Folio (210 x 330 мм)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Ledger (432 x 279 mm)</source>
         <translation>Ledger (432 x 279 мм)</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Tabloid (279 x 432 mm)</source>
         <translation>Tabloid (279 x 432 мм)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>US Common #10 Envelope (105 x 241 mm)</source>
         <translation>Конверт US #10 (105x241 мм)</translation>
     </message>
     <message>
-        <location line="+20"/>
         <source>Print current page</source>
         <translation>Текущая страница</translation>
     </message>
     <message>
-        <location line="-45"/>
         <source>A4 (210 x 297 mm, 8.26 x 11.7 inches)</source>
         <translation>A4 (210 x 297 мм, 8.26 x 11.7 дюймов)</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>B5 (176 x 250 mm, 6.93 x 9.84 inches)</source>
         <translation>B5 (176 x 250 мм, 6.93 x 9.84 дюймов)</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Executive (7.5 x 10 inches, 191 x 254 mm)</source>
         <translation>Executive (191 x 254 мм, 7.5 x 10 дюймов)</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Legal (8.5 x 14 inches, 216 x 356 mm)</source>
         <translation>Legal (216 x 356 мм, 8.5 x 14 дюймов)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Letter (8.5 x 11 inches, 216 x 279 mm)</source>
         <translation>Letter (216 x 279 мм, 8.5 x 11 дюймов)</translation>
     </message>
     <message>
-        <location line="+20"/>
         <source>Print selection</source>
         <translation>Выделенный фрагмент</translation>
     </message>
     <message>
-        <location filename="../src/gui/dialogs/qabstractprintdialog.cpp" line="+113"/>
-        <location line="+13"/>
-        <location filename="../src/gui/dialogs/qprintdialog_win.cpp" line="-2"/>
         <source>Print</source>
         <translation>Печать</translation>
     </message>
     <message>
-        <location filename="../src/gui/dialogs/qprintdialog_unix.cpp" line="-392"/>
         <source>Print To File ...</source>
         <translation>Печать в файл ...</translation>
     </message>
     <message>
-        <location line="+82"/>
         <source>File %1 is not writable.
 Please choose a different file name.</source>
         <translation>%1 недоступен для записи.
 Выберите другое имя файла.</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>%1 already exists.
 Do you want to overwrite it?</source>
         <translation>%1 уже существует.
 Хотите заменить его?</translation>
     </message>
     <message>
-        <location filename="../src/gui/dialogs/qprintdialog_qws.cpp" line="-232"/>
         <source>File exists</source>
         <translation>Файл существует</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&lt;qt&gt;Do you want to overwrite it?&lt;/qt&gt;</source>
         <translation>&lt;qt&gt;Хотите заменить?&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>%1 - это каталог.
 Выберите другое имя файла.</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>Значение &quot;с&quot; не может быть больше значения &quot;по&quot;.</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>Executive</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Folio</source>
         <translation>Folio</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Ledger</source>
         <translation>Ledger</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Legal</source>
         <translation>Legal</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Letter</source>
         <translation>Letter</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Tabloid</source>
         <translation>Tabloid</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>US Common #10 Envelope</source>
         <translation>US Common #10 Envelope</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Custom</source>
         <translation>Пользовательский</translation>
     </message>
     <message>
-        <location filename="../src/gui/dialogs/qprintdialog_unix.cpp" line="-530"/>
-        <location line="+68"/>
         <source>&amp;Options &gt;&gt;</source>
         <translation>&amp;Параметры &gt;&gt;</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>&amp;Options &lt;&lt;</source>
         <translation>&amp;Параметры &lt;&lt;</translation>
     </message>
     <message>
-        <location line="+260"/>
         <source>Print to File (PDF)</source>
         <translation>Печать в файл (PDF)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Print to File (Postscript)</source>
         <translation>Печать в файл (Postscript)</translation>
     </message>
     <message>
-        <location line="+47"/>
         <source>Local file</source>
         <translation>Локальный файл</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Write %1 file</source>
         <translation>Запись %1 файла</translation>
     </message>
     <message>
-        <location line="-376"/>
         <source>&amp;Print</source>
         <translation>&amp;Печать</translation>
     </message>
@@ -5801,108 +4566,86 @@
 <context>
     <name>QPrintPreviewDialog</name>
     <message>
-        <location filename="../src/gui/dialogs/qprintpreviewdialog.cpp" line="+249"/>
         <source>%1%</source>
         <translation>%1%</translation>
     </message>
     <message>
-        <location line="+84"/>
         <source>Print Preview</source>
         <translation>Просмотр печати</translation>
     </message>
     <message>
-        <location line="+30"/>
         <source>Next page</source>
         <translation>Следующая страница</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Previous page</source>
         <translation>Предыдущая страница</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>First page</source>
         <translation>Первая страница</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Last page</source>
         <translation>Последняя страница</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Fit width</source>
         <translation>По ширине</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Fit page</source>
         <translation>На всю страницу</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>Zoom in</source>
         <translation>Увеличить</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Zoom out</source>
         <translation>Уменьшить</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Portrait</source>
         <translation>Книжная</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Landscape</source>
         <translation>Альбомная</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>Show single page</source>
         <translation>Показать одну страницу</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Show facing pages</source>
         <translation>Показать титульные страницы</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Show overview of all pages</source>
         <translation>Показать обзор всех страниц</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Print</source>
         <translation>Печать</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Page setup</source>
         <translation>Параметры страницы</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Close</source>
         <translation>Закрыть</translation>
     </message>
     <message>
-        <location line="+148"/>
         <source>Export to PDF</source>
         <translation>Экспорт в PDF</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Export to PostScript</source>
         <translation>Экспорт в Postscript</translation>
     </message>
     <message>
-        <location filename="../src/gui/dialogs/qabstractpagesetupdialog.cpp" line="+68"/>
-        <location line="+12"/>
         <source>Page Setup</source>
         <translation>Параметры страницы</translation>
     </message>
@@ -5910,17 +4653,14 @@
 <context>
     <name>QPrintPropertiesWidget</name>
     <message>
-        <location filename="../src/gui/dialogs/qprintpropertieswidget.ui"/>
         <source>Form</source>
         <translation>Форма</translation>
     </message>
     <message>
-        <location/>
         <source>Page</source>
         <translation>Страница</translation>
     </message>
     <message>
-        <location/>
         <source>Advanced</source>
         <translation>Дополнительно</translation>
     </message>
@@ -5928,102 +4668,82 @@
 <context>
     <name>QPrintSettingsOutput</name>
     <message>
-        <location filename="../src/gui/dialogs/qprintsettingsoutput.ui"/>
         <source>Form</source>
         <translation>Форма</translation>
     </message>
     <message>
-        <location/>
         <source>Copies</source>
         <translation>Копии</translation>
     </message>
     <message>
-        <location/>
         <source>Print range</source>
         <translation>Диапазон печати</translation>
     </message>
     <message>
-        <location/>
         <source>Print all</source>
         <translation>Все</translation>
     </message>
     <message>
-        <location/>
         <source>Pages from</source>
         <translation>Страницы с</translation>
     </message>
     <message>
-        <location/>
         <source>to</source>
         <translation>по</translation>
     </message>
     <message>
-        <location/>
         <source>Selection</source>
         <translation>Выделенный фрагмент</translation>
     </message>
     <message>
-        <location/>
         <source>Output Settings</source>
         <translation>Настройки вывода</translation>
     </message>
     <message>
-        <location/>
         <source>Copies:</source>
         <translation>Количество копий:</translation>
     </message>
     <message>
-        <location/>
         <source>Collate</source>
-        <translation>Разобрать про копиям</translation>
-    </message>
-    <message>
-        <location/>
+        <translation>Разобрать по копиям</translation>
+    </message>
+    <message>
         <source>Reverse</source>
         <translation>Обратный порядок</translation>
     </message>
     <message>
-        <location/>
         <source>Options</source>
         <translation>Параметры</translation>
     </message>
     <message>
-        <location/>
         <source>Color Mode</source>
         <translation>Режим цвета</translation>
     </message>
     <message>
-        <location/>
         <source>Color</source>
         <translation>Цвет</translation>
     </message>
     <message>
-        <location/>
         <source>Grayscale</source>
         <translation>Оттенки серого</translation>
     </message>
     <message>
-        <location/>
         <source>Duplex Printing</source>
         <translation>Двусторонняя печать</translation>
     </message>
     <message>
-        <location/>
         <source>None</source>
         <translation>Нет</translation>
     </message>
     <message>
-        <location/>
         <source>Long side</source>
         <translation>По длинной стороне</translation>
     </message>
     <message>
-        <location/>
         <source>Short side</source>
         <translation>По короткой стороне</translation>
     </message>
     <message>
-        <location/>
         <source>Current Page</source>
         <translation>Текущая страница</translation>
     </message>
@@ -6031,47 +4751,38 @@
 <context>
     <name>QPrintWidget</name>
     <message>
-        <location filename="../src/gui/dialogs/qprintwidget.ui"/>
         <source>Form</source>
         <translation>Форма</translation>
     </message>
     <message>
-        <location/>
         <source>Printer</source>
         <translation>Принтер</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Name:</source>
         <translation>&amp;Название:</translation>
     </message>
     <message>
-        <location/>
         <source>P&amp;roperties</source>
         <translation>С&amp;войства</translation>
     </message>
     <message>
-        <location/>
         <source>Location:</source>
         <translation>Расположение:</translation>
     </message>
     <message>
-        <location/>
         <source>Preview</source>
         <translation>Просмотр</translation>
     </message>
     <message>
-        <location/>
         <source>Type:</source>
         <translation>Тип:</translation>
     </message>
     <message>
-        <location/>
         <source>Output &amp;file:</source>
         <translation>Вывод в &amp;файл:</translation>
     </message>
     <message>
-        <location/>
         <source>...</source>
         <translation>...</translation>
     </message>
@@ -6079,62 +4790,38 @@
 <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>Не удалось открыть перенаправление ввода для чтения</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>Не удалось открыть перенаправление вывода для записи</translation>
     </message>
     <message>
-        <location line="+239"/>
         <source>Resource error (fork failure): %1</source>
         <translation>Ошибка выделения ресурсов (сбой fork): %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>Время на операцию с процессом истекло</translation>
     </message>
     <message>
-        <location filename="../src/corelib/io/qprocess.cpp" line="+866"/>
-        <location line="+52"/>
-        <location filename="../src/corelib/io/qprocess_win.cpp" line="-211"/>
-        <location line="+50"/>
         <source>Error reading from process</source>
         <translation>Ошибка получения данных от процесса</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>Ошибка отправки данных процессу</translation>
     </message>
     <message>
-        <location line="-756"/>
         <source>Process crashed</source>
         <translation>Процесс завершился с ошибкой</translation>
     </message>
     <message>
-        <location line="+959"/>
         <source>No program defined</source>
         <translation>Программа не указана</translation>
     </message>
     <message>
-        <location filename="../src/corelib/io/qprocess_win.cpp" line="-360"/>
         <source>Process failed to start: %1</source>
         <translation>Не удалось запустить процесс: %1</translation>
     </message>
@@ -6142,7 +4829,6 @@
 <context>
     <name>QProgressDialog</name>
     <message>
-        <location filename="../src/gui/dialogs/qprogressdialog.cpp" line="+196"/>
         <source>Cancel</source>
         <translation>Отмена</translation>
     </message>
@@ -6150,7 +4836,6 @@
 <context>
     <name>QPushButton</name>
     <message>
-        <location filename="../src/plugins/accessible/widgets/simplewidgets.cpp" line="-8"/>
         <source>Open</source>
         <translation>Открыть</translation>
     </message>
@@ -6158,7 +4843,6 @@
 <context>
     <name>QRadioButton</name>
     <message>
-        <location line="+12"/>
         <source>Check</source>
         <translation>Отметить</translation>
     </message>
@@ -6166,57 +4850,46 @@
 <context>
     <name>QRegExp</name>
     <message>
-        <location filename="../src/corelib/tools/qregexp.cpp" line="+65"/>
         <source>no error occurred</source>
         <translation>ошибки отсутствуют</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>disabled feature used</source>
         <translation>использование отключённых возможностей</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>bad char class syntax</source>
         <translation>неправильный синтаксис класса символов</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>bad lookahead syntax</source>
         <translation>неправильный предварительный синтаксис</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>bad repetition syntax</source>
         <translation>неправильный синтаксис повторения</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>invalid octal value</source>
         <translation>некорректное восьмеричное значение</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>missing left delim</source>
         <translation>отсутствует левый разделитель</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>unexpected end</source>
         <translation>неожиданный конец</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>met internal limit</source>
         <translation>достигнуто внутреннее ограничение</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>invalid interval</source>
         <translation>некорректный интервал</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>invalid category</source>
         <translation>некорректная категория</translation>
     </message>
@@ -6224,22 +4897,18 @@
 <context>
     <name>QSQLite2Driver</name>
     <message>
-        <location filename="../src/sql/drivers/sqlite2/qsql_sqlite2.cpp" line="+399"/>
         <source>Error opening database</source>
         <translation>Ошибка открытия базы данных</translation>
     </message>
     <message>
-        <location line="+41"/>
         <source>Unable to begin transaction</source>
         <translation>Невозможно начать транзакцию</translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>Unable to commit transaction</source>
         <translation>Невозможно завершить транзакцию</translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>Unable to rollback transaction</source>
         <translation>Невозможно отозвать транзакцию</translation>
     </message>
@@ -6247,12 +4916,10 @@
 <context>
     <name>QSQLite2Result</name>
     <message>
-        <location line="-326"/>
         <source>Unable to fetch results</source>
         <translation>Невозможно получить результаты</translation>
     </message>
     <message>
-        <location line="+150"/>
         <source>Unable to execute statement</source>
         <translation>Невозможно выполнить выражение</translation>
     </message>
@@ -6260,27 +4927,22 @@
 <context>
     <name>QSQLiteDriver</name>
     <message>
-        <location filename="../src/sql/drivers/sqlite/qsql_sqlite.cpp" line="+539"/>
         <source>Error opening database</source>
         <translation>Ошибка открытия базы данных</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>Error closing database</source>
         <translation>Ошибка закрытия базы данных</translation>
     </message>
     <message>
-        <location line="+20"/>
         <source>Unable to begin transaction</source>
         <translation>Невозможно начать транзакцию</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Unable to commit transaction</source>
         <translation>Невозможно завершить транзакцию</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Unable to rollback transaction</source>
         <translation>Невозможно отозвать транзакцию</translation>
     </message>
@@ -6288,34 +4950,26 @@
 <context>
     <name>QSQLiteResult</name>
     <message>
-        <location line="-396"/>
-        <location line="+63"/>
-        <location line="+8"/>
         <source>Unable to fetch row</source>
         <translation>Невозможно получить строку</translation>
     </message>
     <message>
-        <location line="+59"/>
         <source>Unable to execute statement</source>
         <translation>Невозможно выполнить выражение</translation>
     </message>
     <message>
-        <location line="+20"/>
         <source>Unable to reset statement</source>
         <translation>Невозможно сбросить выражение</translation>
     </message>
     <message>
-        <location line="+45"/>
         <source>Unable to bind parameters</source>
         <translation>Невозможно привязать параметр</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Parameter count mismatch</source>
         <translation>Количество параметров не совпадает</translation>
     </message>
     <message>
-        <location line="-201"/>
         <source>No query</source>
         <translation>Отсутствует запрос</translation>
     </message>
@@ -6323,32 +4977,26 @@
 <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>Размещение</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Condition</source>
         <translation>Условие</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Ignore-count</source>
         <translation>Пропущено</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Single-shot</source>
         <translation>Однократно</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Hit-count</source>
         <translation>Совпадений</translation>
     </message>
@@ -6356,12 +5004,10 @@
 <context>
     <name>QScriptBreakpointsWidget</name>
     <message>
-        <location filename="../src/scripttools/debugging/qscriptbreakpointswidget.cpp" line="+298"/>
         <source>New</source>
         <translation>Новая</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Delete</source>
         <translation>Удалить</translation>
     </message>
@@ -6369,143 +5015,114 @@
 <context>
     <name>QScriptDebugger</name>
     <message>
-        <location filename="../src/scripttools/debugging/qscriptdebugger.cpp" line="+885"/>
-        <location line="+1013"/>
         <source>Go to Line</source>
         <translation>Перейти к строке</translation>
     </message>
     <message>
-        <location line="-1012"/>
         <source>Line:</source>
         <translation>Строка:</translation>
     </message>
     <message>
-        <location line="+791"/>
         <source>Interrupt</source>
         <translation>Прервать</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Shift+F5</source>
         <translation>Shift+F5</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Continue</source>
         <translation>Продолжить</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>F5</source>
         <translation>F5</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Step Into</source>
         <translation>Войти в</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>F11</source>
         <translation>F11</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Step Over</source>
         <translation>Перейти через</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>F10</source>
         <translation>F10</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Step Out</source>
         <translation>Выйти из функции</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>Выполнить до курсора</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>Выполнить до нового сценария</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Toggle Breakpoint</source>
         <translation>Установить/убрать точку останова</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>F9</source>
         <translation>F9</translation>
     </message>
     <message>
-        <location line="+14"/>
         <source>Clear Debug Output</source>
         <translation>Очистить отладочный вывод</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>Clear Error Log</source>
         <translation>Очистить журнал ошибок</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>Clear Console</source>
         <translation>Очистить консоль</translation>
     </message>
     <message>
-        <location line="+14"/>
         <source>&amp;Find in Script...</source>
         <translation>&amp;Найти в сценарии...</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;следующее</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>F3</source>
         <translation>F3</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>Find &amp;Previous</source>
         <translation>Найти &amp;предыдущее</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>Отладка</translation>
     </message>
@@ -6513,32 +5130,26 @@
 <context>
     <name>QScriptDebuggerCodeFinderWidget</name>
     <message>
-        <location filename="../src/scripttools/debugging/qscriptdebuggercodefinderwidget.cpp" line="+141"/>
         <source>Close</source>
         <translation>Закрыть</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>Previous</source>
         <translation>Предыдущий</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Next</source>
         <translation>Следующий</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Case Sensitive</source>
         <translation>Учитывать регистр</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Whole words</source>
         <translation>Слова целиком</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;Поиск с начала</translation>
     </message>
@@ -6546,12 +5157,10 @@
 <context>
     <name>QScriptDebuggerLocalsModel</name>
     <message>
-        <location filename="../src/scripttools/debugging/qscriptdebuggerlocalsmodel.cpp" line="+897"/>
         <source>Name</source>
         <translation>Название</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Value</source>
         <translation>Значение</translation>
     </message>
@@ -6559,17 +5168,14 @@
 <context>
     <name>QScriptDebuggerStackModel</name>
     <message>
-        <location filename="../src/scripttools/debugging/qscriptdebuggerstackmodel.cpp" line="+161"/>
         <source>Level</source>
         <translation>Уровень</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Name</source>
         <translation>Название</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Location</source>
         <translation>Размещение</translation>
     </message>
@@ -6577,22 +5183,18 @@
 <context>
     <name>QScriptEdit</name>
     <message>
-        <location filename="../src/scripttools/debugging/qscriptedit.cpp" line="+411"/>
         <source>Toggle Breakpoint</source>
         <translation>Установить/убрать точку останова</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Disable Breakpoint</source>
         <translation>Убрать точку останова</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Enable Breakpoint</source>
         <translation>Установить точку останова</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Breakpoint Condition:</source>
         <translation>Условие точки останова:</translation>
     </message>
@@ -6600,52 +5202,42 @@
 <context>
     <name>QScriptEngineDebugger</name>
     <message>
-        <location filename="../src/scripttools/debugging/qscriptenginedebugger.cpp" line="+523"/>
         <source>Loaded Scripts</source>
         <translation>Загруженные сценарии</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Breakpoints</source>
         <translation>Точки останова</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Stack</source>
         <translation>Стек</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Locals</source>
         <translation>Локальные переменные</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Console</source>
         <translation>Консоль</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Debug Output</source>
         <translation>Отладочный вывод</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Error Log</source>
         <translation>Журнал ошибок</translation>
     </message>
     <message>
-        <location line="+12"/>
         <source>Search</source>
         <translation>Поиск</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>View</source>
         <translation>Вид</translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>Qt Script Debugger</source>
         <translation>Отладчик сценариев Qt</translation>
     </message>
@@ -6653,7 +5245,6 @@
 <context>
     <name>QScriptNewBreakpointWidget</name>
     <message>
-        <location filename="../src/scripttools/debugging/qscriptbreakpointswidget.cpp" line="-223"/>
         <source>Close</source>
         <translation>Закрыть</translation>
     </message>
@@ -6661,84 +5252,66 @@
 <context>
     <name>QScrollBar</name>
     <message>
-        <location filename="../src/gui/widgets/qscrollbar.cpp" line="+454"/>
         <source>Scroll here</source>
         <translation>Прокрутить сюда</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Left edge</source>
         <translation>К левой границе</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Top</source>
         <translation>Вверх</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Right edge</source>
         <translation>К правой границе</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Bottom</source>
         <translation>Вниз</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Page left</source>
         <translation>На страницу влево</translation>
     </message>
     <message>
-        <location line="+0"/>
-        <location filename="../src/plugins/accessible/widgets/rangecontrols.cpp" line="+143"/>
         <source>Page up</source>
         <translation>На страницу вверх</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Page right</source>
         <translation>На страницу вправо</translation>
     </message>
     <message>
-        <location line="+0"/>
-        <location filename="../src/plugins/accessible/widgets/rangecontrols.cpp" line="+4"/>
         <source>Page down</source>
         <translation>На страницу вниз</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Scroll left</source>
         <translation>Прокрутить влево</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Scroll up</source>
         <translation>Прокрутить вверх</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Scroll right</source>
         <translation>Прокрутить вправо</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Scroll down</source>
         <translation>Прокрутить вниз</translation>
     </message>
     <message>
-        <location filename="../src/plugins/accessible/widgets/rangecontrols.cpp" line="-6"/>
         <source>Line up</source>
         <translation>На строку вверх</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Position</source>
         <translation>Положение</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Line down</source>
         <translation>На строку вниз</translation>
     </message>
@@ -6746,111 +5319,78 @@
 <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: размер меньше нуля</translation>
     </message>
     <message>
-        <location line="+168"/>
-        <location filename="../src/corelib/kernel/qsharedmemory_p.h" line="+155"/>
         <source>%1: unable to lock</source>
         <translation>%1: невозможно заблокировать</translation>
     </message>
     <message>
-        <location line="+22"/>
         <source>%1: unable to unlock</source>
         <translation>%1: невозможно разблокировать</translation>
     </message>
     <message>
-        <location filename="../src/corelib/kernel/qsharedmemory_symbian.cpp" line="+83"/>
-        <location filename="../src/corelib/kernel/qsharedmemory_unix.cpp" line="+81"/>
-        <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="+87"/>
         <source>%1: permission denied</source>
         <translation>%1: доступ запрещён</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: уже существует</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>%1: doesn&apos;t exists</source>
         <translation>%1: не существует</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: недостаточно ресурсов</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: неизвестная ошибка %2</translation>
     </message>
     <message>
-        <location filename="../src/corelib/kernel/qsharedmemory_unix.cpp" line="+21"/>
         <source>%1: key is empty</source>
         <translation>%1: пустой ключ</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>%1: ftok failed</source>
         <translation>%1: ошибка ftok</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: невозможно создать ключ</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: не существует</translation>
     </message>
     <message>
-        <location line="+39"/>
         <source>%1: UNIX key file doesn&apos;t exist</source>
         <translation>%1: специфический ключ UNIX не существует</translation>
     </message>
     <message>
-        <location line="+78"/>
         <source>%1: system-imposed size restrictions</source>
         <translation>%1: системой наложены ограничения на размер</translation>
     </message>
     <message>
-        <location line="+53"/>
         <source>%1: not attached</source>
         <translation>%1: не приложенный</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: некорректный размер</translation>
     </message>
     <message>
-        <location line="+40"/>
-        <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="+63"/>
         <source>%1: key error</source>
         <translation>%1: некорректный ключ</translation>
     </message>
     <message>
-        <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="+32"/>
         <source>%1: size query failed</source>
         <translation>%1: не удалось запросить размер</translation>
     </message>
     <message>
-        <location filename="../src/corelib/kernel/qsharedmemory.cpp" line="-271"/>
         <source>%1: unable to set key on lock</source>
         <translation>%1: невозможно установить ключ блокировки</translation>
     </message>
@@ -6858,1063 +5398,884 @@
 <context>
     <name>QShortcut</name>
     <message>
-        <location filename="../src/gui/kernel/qkeysequence.cpp" line="+396"/>
         <source>Space</source>
         <extracomment>This and all following &quot;incomprehensible&quot; strings in QShortcut context are key names. Please use the localized names appearing on actual keyboards or whatever is commonly used.</extracomment>
         <translation type="unfinished">Пробел</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Esc</source>
         <translation type="unfinished">Esc</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Tab</source>
         <translation type="unfinished">Tab</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Backtab</source>
         <translation type="unfinished">Backtab</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Backspace</source>
         <translation type="unfinished">Backspace</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Return</source>
         <translation type="unfinished">Return</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Enter</source>
         <translation type="unfinished">Enter</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Ins</source>
         <translation type="unfinished">Ins</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Del</source>
         <translation type="unfinished">Del</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Pause</source>
         <translation type="unfinished">Pause</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Print</source>
         <translation type="unfinished">Print</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>SysReq</source>
         <translation type="unfinished">SysReq</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Home</source>
         <translation type="unfinished">Home</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>End</source>
         <translation type="unfinished">End</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Left</source>
         <translation type="unfinished">Влево</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Up</source>
         <translation type="unfinished">Вверх</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Right</source>
         <translation type="unfinished">Вправо</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Down</source>
         <translation type="unfinished">Вниз</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>PgUp</source>
         <translation type="unfinished">PgUp</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>PgDown</source>
         <translation type="unfinished">PgDown</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>CapsLock</source>
         <translation type="unfinished">CapsLock</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>NumLock</source>
         <translation type="unfinished">NumLock</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>ScrollLock</source>
         <translation type="unfinished">ScrollLock</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Menu</source>
         <translation type="unfinished">Меню</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Help</source>
         <translation type="unfinished">Справка</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Back</source>
         <translation type="unfinished">Назад</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Forward</source>
         <translation type="unfinished">Вперёд</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Stop</source>
         <translation type="unfinished">Остановить</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Refresh</source>
         <translation type="unfinished">Обновить</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Volume Down</source>
         <translation type="unfinished">Тише</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Volume Mute</source>
         <translation type="unfinished">Выключить звук</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Volume Up</source>
         <translation type="unfinished">Громче</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Bass Boost</source>
         <translation type="unfinished">Усиление басов</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Bass Up</source>
         <translation type="unfinished">Басы выше</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Bass Down</source>
         <translation type="unfinished">Басы ниже</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Treble Up</source>
         <translation type="unfinished">ВЧ выше</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Treble Down</source>
         <translation type="unfinished">ВЧ ниже</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Media Play</source>
-        <translation type="unfinished">Воспроизведение</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation type="unfinished">Начать воспроизведение</translation>
+    </message>
+    <message>
         <source>Media Stop</source>
         <translation type="unfinished">Остановить воспроизведение</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Media Previous</source>
         <translation type="unfinished">Воспроизвести предыдущее</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Media Next</source>
         <translation type="unfinished">Воспроизвести следующее</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Media Record</source>
-        <translation type="unfinished">Запись</translation>
-    </message>
-    <message>
-        <location line="+2"/>
+        <translation type="unfinished">Начать запись</translation>
+    </message>
+    <message>
+        <source>Media Pause</source>
+        <extracomment>Media player pause button</extracomment>
+        <translation type="unfinished">Приостановить воспроизведение</translation>
+    </message>
+    <message>
+        <source>Toggle Media Play/Pause</source>
+        <extracomment>Media player button to toggle between playing and paused</extracomment>
+        <translation type="unfinished">Приостановить/продолжить воспроизведение</translation>
+    </message>
+    <message>
         <source>Favorites</source>
         <translation type="unfinished">Избранное</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Search</source>
         <translation type="unfinished">Поиск</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Standby</source>
         <translation type="unfinished">Режим ожидания</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Open URL</source>
         <translation type="unfinished">Открыть URL</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Launch Mail</source>
         <translation type="unfinished">Почта</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Launch Media</source>
         <translation type="unfinished">Проигрыватель</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Launch (0)</source>
         <translation type="unfinished">Запустить (0)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Launch (1)</source>
         <translation type="unfinished">Запустить (1)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Launch (2)</source>
         <translation type="unfinished">Запустить (2)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Launch (3)</source>
         <translation type="unfinished">Запустить (3)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Launch (4)</source>
         <translation type="unfinished">Запустить (4)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Launch (5)</source>
         <translation type="unfinished">Запустить (5)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Launch (6)</source>
         <translation type="unfinished">Запустить (6)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Launch (7)</source>
         <translation type="unfinished">Запустить (7)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Launch (8)</source>
         <translation type="unfinished">Запустить (8)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Launch (9)</source>
         <translation type="unfinished">Запустить (9)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Launch (A)</source>
         <translation type="unfinished">Запустить (A)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Launch (B)</source>
         <translation type="unfinished">Запустить (B)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Launch (C)</source>
         <translation type="unfinished">Запустить (C)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Launch (D)</source>
         <translation type="unfinished">Запустить (D)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Launch (E)</source>
         <translation type="unfinished">Запустить (E)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Launch (F)</source>
         <translation type="unfinished">Запустить (F)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Monitor Brightness Up</source>
         <translation type="unfinished">Увеличить яркость монитора</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Monitor Brightness Down</source>
         <translation type="unfinished">Уменьшить яркость монитора</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Keyboard Light On/Off</source>
         <translation type="unfinished">Вкл./Откл. подсветку клавиатуры</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Keyboard Brightness Up</source>
         <translation type="unfinished">Увеличить яркость подсветки клавиатуры</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Keyboard Brightness Down</source>
         <translation type="unfinished">Уменьшить яркость подсветки клавиатуры</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Power Off</source>
         <translation type="unfinished">Отключение питания</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Wake Up</source>
         <translation type="unfinished">Пробуждение</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Eject</source>
         <translation type="unfinished">Извлечь</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Screensaver</source>
         <translation type="unfinished">Экранная заставка</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>WWW</source>
         <translation type="unfinished">WWW</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Sleep</source>
         <translation type="unfinished">Спящий режим</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>LightBulb</source>
         <translation type="unfinished">Лампочка</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Shop</source>
         <translation type="unfinished">Магазин</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>History</source>
         <translation type="unfinished">История</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Add Favorite</source>
         <translation type="unfinished">Добавить в избранное</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Hot Links</source>
         <translation type="unfinished">Горячие ссылки</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Adjust Brightness</source>
         <translation type="unfinished">Настройка яркости</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Finance</source>
         <translation type="unfinished">Финансы</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Community</source>
         <translation type="unfinished">Сообщество</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Audio Rewind</source>
         <translation type="unfinished">Перемотка аудио назад</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Back Forward</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Application Left</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Application Right</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Book</source>
         <translation type="unfinished">Книга</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>CD</source>
         <translation type="unfinished">CD</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Calculator</source>
         <translation type="unfinished">Калькулятор</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Clear</source>
         <translation type="unfinished">Очистить</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Clear Grab</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Close</source>
         <translation type="unfinished">Закрыть</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Copy</source>
         <translation type="unfinished">Копировать</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Cut</source>
         <translation type="unfinished">Вырезать</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Display</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>DOS</source>
         <translation type="unfinished">DOS</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Documents</source>
         <translation type="unfinished">Документы</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Spreadsheet</source>
         <translation type="unfinished">Электронная таблицы</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Browser</source>
         <translation type="unfinished">Обозреватель</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Game</source>
         <translation type="unfinished">Игра</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Go</source>
         <translation type="unfinished">Перейти</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>iTouch</source>
         <translation type="unfinished">iTouch</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Logoff</source>
         <translation type="unfinished">Выйти из системы</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Market</source>
         <translation type="unfinished">Рынок</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Meeting</source>
         <translation type="unfinished">Встреча</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Keyboard Menu</source>
         <translation type="unfinished">Клавиатурное меню</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Menu PB</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>My Sites</source>
         <translation type="unfinished">Мои сайты</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>News</source>
         <translation type="unfinished">Новости</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Home Office</source>
         <translation type="unfinished">Домашний офис</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Option</source>
         <translation type="unfinished">Опция</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Paste</source>
         <translation type="unfinished">Вставить</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Phone</source>
         <translation type="unfinished">Телефон</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Reply</source>
         <translation type="unfinished">Ответить</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Reload</source>
         <translation type="unfinished">Перезагрузить</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Rotate Windows</source>
         <translation type="unfinished">Повернуть окна</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Rotation PB</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Rotation KB</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Save</source>
         <translation type="unfinished">Сохранить</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Send</source>
         <translation type="unfinished">Отправить</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Spellchecker</source>
         <translation type="unfinished">Проверка орфографии</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Split Screen</source>
         <translation type="unfinished">Разделить экран</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Support</source>
         <translation type="unfinished">Поддержка</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Task Panel</source>
         <translation type="unfinished">Панель задач</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Terminal</source>
         <translation type="unfinished">Терминал</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Tools</source>
         <translation type="unfinished">Инструменты</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Travel</source>
         <translation type="unfinished">Путешествие</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Video</source>
         <translation type="unfinished">Видео</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Word Processor</source>
         <translation type="unfinished">Текстовый редактор</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>XFer</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Zoom In</source>
         <translation type="unfinished">Увеличить</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Zoom Out</source>
         <translation type="unfinished">Уменьшить</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Away</source>
         <translation type="unfinished">Ушёл</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Messenger</source>
         <translation type="unfinished">Клиент обмена мгновенными сообщениями</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>WebCam</source>
         <translation type="unfinished">Вэб-камера</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Mail Forward</source>
         <translation type="unfinished">Переслать письмо</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Pictures</source>
         <translation type="unfinished">Изображения</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Music</source>
         <translation type="unfinished">Музыка</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Battery</source>
         <translation type="unfinished">Батарея</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Bluetooth</source>
         <translation type="unfinished">Bluetooth</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Wireless</source>
         <translation type="unfinished">Беспроводная сеть</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Ultra Wide Band</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation type="unfinished">Сверхширокополосная связь</translation>
+    </message>
+    <message>
         <source>Audio Forward</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation type="unfinished">Последовательное воспроизведение</translation>
+    </message>
+    <message>
         <source>Audio Repeat</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation type="unfinished">Воспроизведение по кругу</translation>
+    </message>
+    <message>
         <source>Audio Random Play</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation type="unfinished">Случайное воспроизведение</translation>
+    </message>
+    <message>
         <source>Subtitle</source>
         <translation type="unfinished">Субтитры</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Audio Cycle Track</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation type="unfinished">Зацикленное воспроизведение дорожки</translation>
+    </message>
+    <message>
         <source>Time</source>
         <translation type="unfinished">Время</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>View</source>
         <translation type="unfinished">Вид</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Top Menu</source>
         <translation type="unfinished">Главное меню</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Suspend</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation type="unfinished">Приостановить</translation>
+    </message>
+    <message>
         <source>Hibernate</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+4"/>
+        <translation type="unfinished">Усыпить</translation>
+    </message>
+    <message>
         <source>Print Screen</source>
         <translation type="unfinished">Печать экрана</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Page Up</source>
         <translation type="unfinished">На страницу вверх</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Page Down</source>
         <translation type="unfinished">На страницу вниз</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Caps Lock</source>
         <translation type="unfinished">Верний регистр</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Num Lock</source>
         <translation type="unfinished">Цифровые клавиши</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Number Lock</source>
         <translation type="unfinished">Цифровые клавиши</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Scroll Lock</source>
         <translation type="unfinished">Scroll Lock</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Insert</source>
         <translation type="unfinished">Вставить</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Delete</source>
         <translation type="unfinished">Удалить</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Escape</source>
         <translation type="unfinished">Escape</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>System Request</source>
         <translation type="unfinished">Системный запрос</translation>
     </message>
     <message>
-        <location line="+20"/>
+        <source>Toggle Call/Hangup</source>
+        <extracomment>Button that will hang up if we&apos;re in call, or make a call if we&apos;re not.</extracomment>
+        <translation type="unfinished">Снять/положить трубку</translation>
+    </message>
+    <message>
+        <source>Voice Dial</source>
+        <extracomment>Button to trigger voice dialling</extracomment>
+        <translation type="unfinished">Голосовой вызов</translation>
+    </message>
+    <message>
+        <source>Last Number Redial</source>
+        <extracomment>Button to redial the last number called</extracomment>
+        <translation type="unfinished">Повторный набор</translation>
+    </message>
+    <message>
+        <source>Camera Shutter</source>
+        <extracomment>Button to trigger the camera shutter (take a picture)</extracomment>
+        <translation type="unfinished">Затвор камеры</translation>
+    </message>
+    <message>
+        <source>Camera Focus</source>
+        <extracomment>Button to focus the camera</extracomment>
+        <translation type="unfinished">Фокусировка камеры</translation>
+    </message>
+    <message>
         <source>Kanji</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Muhenkan</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Henkan</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Romaji</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Hiragana</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Katakana</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Hiragana Katakana</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Zenkaku</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Hankaku</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Zenkaku Hankaku</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Touroku</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Massyo</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Kana Lock</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Kana Shift</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Eisu Shift</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Eisu toggle</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Code input</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Multiple Candidate</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Previous Candidate</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Hangul</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Hangul Start</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Hangul End</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Hangul Hanja</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Hangul Jamo</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Hangul Romaja</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Hangul Jeonja</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Hangul Banja</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Hangul PreHanja</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Hangul PostHanja</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Hangul Special</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-70"/>
-        <location line="+22"/>
         <source>Select</source>
         <translation type="unfinished">Выбрать</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Yes</source>
         <translation type="unfinished">Да</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>No</source>
         <translation type="unfinished">Нет</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Context1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Context2</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Context3</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Context4</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Call</source>
+        <extracomment>Button to start a call (note: a separate button is used to end the call)</extracomment>
         <translation type="unfinished">Позвонить</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Hangup</source>
+        <extracomment>Button to end a call (note: a separate button is used to start the call)</extracomment>
         <translation type="unfinished">Положить трубку</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Flip</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+638"/>
-        <location line="+135"/>
         <source>Ctrl</source>
         <translation type="unfinished">Ctrl</translation>
     </message>
     <message>
-        <location line="-134"/>
-        <location line="+138"/>
         <source>Shift</source>
         <translation type="unfinished">Shift</translation>
     </message>
     <message>
-        <location line="-137"/>
-        <location line="+135"/>
         <source>Alt</source>
         <translation type="unfinished">Alt</translation>
     </message>
     <message>
-        <location line="-134"/>
-        <location line="+130"/>
         <source>Meta</source>
         <translation type="unfinished">Meta</translation>
     </message>
     <message>
-        <location line="-40"/>
         <source>+</source>
         <translation type="unfinished">+</translation>
     </message>
     <message>
-        <location line="+61"/>
         <source>F%1</source>
         <translation type="unfinished">F%1</translation>
     </message>
     <message>
-        <location line="-934"/>
         <source>Home Page</source>
         <translation type="unfinished">Домашняя страница</translation>
     </message>
@@ -7922,27 +6283,22 @@
 <context>
     <name>QSlider</name>
     <message>
-        <location filename="../src/plugins/accessible/widgets/rangecontrols.cpp" line="+151"/>
         <source>Page left</source>
         <translation>Страница влево</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Page up</source>
         <translation>Страница вверх</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Position</source>
         <translation>Положение</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Page right</source>
         <translation>Страница вправо</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Page down</source>
         <translation>Страница вниз</translation>
     </message>
@@ -7950,72 +6306,58 @@
 <context>
     <name>QSocks5SocketEngine</name>
     <message>
-        <location filename="../src/network/socket/qsocks5socketengine.cpp" line="-67"/>
         <source>Connection to proxy refused</source>
         <translation>В соединении с прокси-сервером отказано</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Connection to proxy closed prematurely</source>
         <translation>Соединение с прокси-сервером неожиданно закрыто</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Proxy host not found</source>
         <translation>Прокси-сервер не найден</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Connection to proxy timed out</source>
         <translation>Время на соединение с прокси-сервером истекло</translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>Proxy authentication failed</source>
         <translation>Не удалось авторизоваться на прокси-сервере</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Proxy authentication failed: %1</source>
         <translation>Не удалось авторизоваться на прокси-сервере: %1</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>SOCKS version 5 protocol error</source>
         <translation>Ошибка протокола SOCKSv5</translation>
     </message>
     <message>
-        <location line="+19"/>
         <source>General SOCKSv5 server failure</source>
         <translation>Ошибка сервере SOCKSv5</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Connection not allowed by SOCKSv5 server</source>
         <translation>Соединение не разрешено сервером SOCKSv5</translation>
     </message>
     <message>
-        <location line="+16"/>
         <source>TTL expired</source>
         <translation>TTL истекло</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>SOCKSv5 command not supported</source>
         <translation>Команда SOCKSv5 не поддерживается</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Address type not supported</source>
         <translation>Тип адреса не поддерживается</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Unknown SOCKSv5 proxy error code 0x%1</source>
         <translation>Неизвестная ошибка SOCKSv5 прокси (код 0x%1)</translation>
     </message>
     <message>
-        <location line="+689"/>
         <source>Network operation timed out</source>
         <translation>Время на сетевую операцию истекло</translation>
     </message>
@@ -8023,32 +6365,26 @@
 <context>
     <name>QSoftKeyManager</name>
     <message>
-        <location filename="../src/gui/kernel/qsoftkeymanager.cpp" line="+63"/>
         <source>Ok</source>
         <translation>ОК</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Select</source>
         <translation>Выбрать</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Done</source>
         <translation>Готово</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Options</source>
         <translation>Параметры</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Cancel</source>
         <translation>Отмена</translation>
     </message>
     <message>
-        <location filename="../src/gui/kernel/qsoftkeymanager_s60.cpp" line="+321"/>
         <source>Exit</source>
         <translation>Выход</translation>
     </message>
@@ -8056,12 +6392,10 @@
 <context>
     <name>QSpinBox</name>
     <message>
-        <location filename="../src/plugins/accessible/widgets/rangecontrols.cpp" line="-574"/>
         <source>More</source>
         <translation>Больше</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Less</source>
         <translation>Меньше</translation>
     </message>
@@ -8069,56 +6403,42 @@
 <context>
     <name>QSql</name>
     <message>
-        <location filename="../src/qt3support/sql/q3sqlmanager_p.cpp" line="+890"/>
         <source>Delete</source>
         <translation>Удалить</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Delete this record?</source>
         <translation>Удалить данную запись?</translation>
     </message>
     <message>
-        <location line="+1"/>
-        <location line="+16"/>
-        <location line="+36"/>
         <source>Yes</source>
         <translation>Да</translation>
     </message>
     <message>
-        <location line="-51"/>
-        <location line="+16"/>
-        <location line="+36"/>
         <source>No</source>
         <translation>Нет</translation>
     </message>
     <message>
-        <location line="-44"/>
         <source>Insert</source>
         <translation>Вставить</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Update</source>
         <translation>Обновить</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Save edits?</source>
         <translation>Сохранить изменения?</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Cancel</source>
         <translation>Отмена</translation>
     </message>
     <message>
-        <location line="+32"/>
         <source>Confirm</source>
         <translation>Подтверждение</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Cancel your edits?</source>
         <translation>Отменить изменения?</translation>
     </message>
@@ -8126,177 +6446,142 @@
 <context>
     <name>QSslSocket</name>
     <message>
-        <location filename="../src/network/ssl/qsslsocket_openssl.cpp" line="+550"/>
         <source>Unable to write data: %1</source>
         <translation>Невозможно записать данные: %1</translation>
     </message>
     <message>
-        <location line="+63"/>
         <source>Unable to decrypt data: %1</source>
         <translation>Невозможно расшифровать данные: %1</translation>
     </message>
     <message>
-        <location line="+76"/>
         <source>Error while reading: %1</source>
         <translation>Ошибка чтения: %1</translation>
     </message>
     <message>
-        <location line="+96"/>
         <source>Error during SSL handshake: %1</source>
         <translation>Ошибка квитирования SSL: %1</translation>
     </message>
     <message>
-        <location line="-524"/>
         <source>Error creating SSL context (%1)</source>
         <translation>Ошибка создания контекста SSL: (%1)</translation>
     </message>
     <message>
-        <location line="+25"/>
         <source>Invalid or empty cipher list (%1)</source>
         <translation>Некорректный или пустой список шифров (%1)</translation>
     </message>
     <message>
-        <location line="+45"/>
         <source>Private key does not certify public key, %1</source>
         <translation>Закрытый ключ не соответствует открытому ключу, %1</translation>
     </message>
     <message>
-        <location line="+20"/>
         <source>Error creating SSL session, %1</source>
         <translation>Ошибка создания сессии SSL, %1</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Error creating SSL session: %1</source>
         <translation>Ошибка создания сессии SSL: %1</translation>
     </message>
     <message>
-        <location line="-64"/>
         <source>Cannot provide a certificate with no key, %1</source>
         <translation>Невозможно предоставить сертификат без ключа, %1</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Error loading local certificate, %1</source>
         <translation>Ошибка загрузки локального сертификата, %1</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Error loading private key, %1</source>
         <translation>Ошибка загрузки закрытого ключа, %1</translation>
     </message>
     <message>
-        <location filename="../src/network/ssl/qsslerror.cpp" line="+213"/>
         <source>No error</source>
         <translation>Нет ошибки</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>The issuer certificate could not be found</source>
         <translation>Не удалось найти сертификат издателя</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>The certificate signature could not be decrypted</source>
         <translation>Не удалось расшифровать подпись сертификата</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>The public key in the certificate could not be read</source>
         <translation>Не удалось прочитать открытый ключ сертификата</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>The signature of the certificate is invalid</source>
         <translation>Некорректная подпись сертификата</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>The certificate is not yet valid</source>
         <translation>Срок действия сертификата ещё не наступил</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>The certificate has expired</source>
         <translation>Срок действия сертификата истёк</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>The certificate&apos;s notBefore field contains an invalid time</source>
         <translation>Поле notBefore сертификата содержит некорректное время</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>The certificate&apos;s notAfter field contains an invalid time</source>
         <translation>Поле notAfter сертификата содержит некорректное время</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>The certificate is self-signed, and untrusted</source>
         <translation>Сертификат самоподписанный и не является заверенным</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>The root certificate of the certificate chain is self-signed, and untrusted</source>
         <translation>Корневой сертификат цепочки сертификатов самоподписанный и не является заверенным</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>The issuer certificate of a locally looked up certificate could not be found</source>
         <translation>Не удалось найти сертификат издателя локального сертификата</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>No certificates could be verified</source>
         <translation>Не удалось проверить сертификаты</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>One of the CA certificates is invalid</source>
         <translation>Один из сертификатов центра сертификации некорректен</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>The basicConstraints path length parameter has been exceeded</source>
         <translation>Превышено значение параметра длины пути поля basicConstraints сертификата</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>The supplied certificate is unsuitable for this purpose</source>
         <translation>Представленный сертификат непригоден для данной цели</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>The root CA certificate is not trusted for this purpose</source>
         <translation>Корневой сертификат центра сертификации не является заверенным для данной цели</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>The root CA certificate is marked to reject the specified purpose</source>
         <translation>Корневой сертификат центра сертификации отмечен на отклонение для данной цели</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>Текущий сертификат издателя был отклонён, так как название темы не совпадает с названием издателя сертификата</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>Текущий сертификат издателя был отклонён, так как название издателя и серийный номер не совпадают с идентификатором ключа сертификата</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>The peer did not present any certificate</source>
         <translation>Сертификат не был предоставлен</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>The host name did not match any of the valid hosts for this certificate</source>
         <translation>Название узла не совпадает с допустимыми названиями узлов сертификата</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Unknown error</source>
         <translation>Неизвестная ошибка</translation>
     </message>
@@ -8304,22 +6589,18 @@
 <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>Отсутствует исходное состояние в составном состоянии &quot;%1&quot;</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Missing default state in history state &apos;%1&apos;</source>
         <translation>Отсутствует состояние по умолчанию в историческом состоянии &quot;%1&quot;</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>No common ancestor for targets and source of transition from state &apos;%1&apos;</source>
         <translation>Нет общего предка у источника и цели перехода из состояния &quot;%1&quot;</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Unknown error</source>
         <translation>Неизвестная ошибка</translation>
     </message>
@@ -8327,30 +6608,22 @@
 <context>
     <name>QSystemSemaphore</name>
     <message>
-        <location filename="../src/corelib/kernel/qsystemsemaphore_unix.cpp" line="-46"/>
         <source>%1: does not exist</source>
         <translation>%1: не существует</translation>
     </message>
     <message>
-        <location line="+5"/>
-        <location filename="../src/corelib/kernel/qsystemsemaphore_win.cpp" line="+66"/>
         <source>%1: out of resources</source>
         <translation>%1: недостаточно ресурсов</translation>
     </message>
     <message>
-        <location line="-13"/>
-        <location filename="../src/corelib/kernel/qsystemsemaphore_win.cpp" line="+4"/>
         <source>%1: permission denied</source>
         <translation>%1: доступ запрещён</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>%1: already exists</source>
         <translation>%1: уже существует</translation>
     </message>
     <message>
-        <location line="+13"/>
-        <location filename="../src/corelib/kernel/qsystemsemaphore_win.cpp" line="+3"/>
         <source>%1: unknown error %2</source>
         <translation>%1: неизвестная ошибка %2</translation>
     </message>
@@ -8358,12 +6631,10 @@
 <context>
     <name>QTDSDriver</name>
     <message>
-        <location filename="../src/sql/drivers/tds/qsql_tds.cpp" line="+595"/>
         <source>Unable to open connection</source>
         <translation>Невозможно открыть соединение</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Unable to use database</source>
         <translation>Невозможно использовать базу данных</translation>
     </message>
@@ -8371,12 +6642,10 @@
 <context>
     <name>QTabBar</name>
     <message>
-        <location filename="../src/plugins/accessible/widgets/complexwidgets.cpp" line="-326"/>
         <source>Scroll Left</source>
         <translation>Прокрутить влево</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Scroll Right</source>
         <translation>Прокрутить вправо</translation>
     </message>
@@ -8384,7 +6653,6 @@
 <context>
     <name>QTcpServer</name>
     <message>
-        <location filename="../src/network/socket/qtcpserver.cpp" line="+292"/>
         <source>Operation on socket is not supported</source>
         <translation>Операция с сокетом не поддерживается</translation>
     </message>
@@ -8392,42 +6660,34 @@
 <context>
     <name>QTextControl</name>
     <message>
-        <location filename="../src/gui/text/qtextcontrol.cpp" line="+2046"/>
         <source>&amp;Undo</source>
         <translation>&amp;Отменить действие</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>&amp;Redo</source>
         <translation>&amp;Повторить действие</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Cu&amp;t</source>
         <translation>&amp;Вырезать</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>&amp;Copy</source>
         <translation>&amp;Копировать</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Copy &amp;Link Location</source>
         <translation>Скопировать &amp;адрес ссылки</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>&amp;Paste</source>
         <translation>В&amp;ставить</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Delete</source>
         <translation>Удалить</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Select All</source>
         <translation>Выделить всё</translation>
     </message>
@@ -8435,14 +6695,10 @@
 <context>
     <name>QToolButton</name>
     <message>
-        <location filename="../src/plugins/accessible/widgets/simplewidgets.cpp" line="+310"/>
-        <location line="+6"/>
         <source>Press</source>
         <translation>Нажать</translation>
     </message>
     <message>
-        <location line="-4"/>
-        <location line="+8"/>
         <source>Open</source>
         <translation>Открыть</translation>
     </message>
@@ -8450,7 +6706,6 @@
 <context>
     <name>QUdpSocket</name>
     <message>
-        <location filename="../src/network/socket/qudpsocket.cpp" line="+189"/>
         <source>This platform does not support IPv6</source>
         <translation>Данная платформа не поддерживает IPv6</translation>
     </message>
@@ -8458,12 +6713,10 @@
 <context>
     <name>QUndoGroup</name>
     <message>
-        <location filename="../src/gui/util/qundogroup.cpp" line="+385"/>
         <source>Undo</source>
         <translation>Отменить действие</translation>
     </message>
     <message>
-        <location line="+28"/>
         <source>Redo</source>
         <translation>Повторить действие</translation>
     </message>
@@ -8471,7 +6724,6 @@
 <context>
     <name>QUndoModel</name>
     <message>
-        <location filename="../src/gui/util/qundoview.cpp" line="+101"/>
         <source>&lt;empty&gt;</source>
         <translation>&lt;пусто&gt;</translation>
     </message>
@@ -8479,12 +6731,10 @@
 <context>
     <name>QUndoStack</name>
     <message>
-        <location filename="../src/gui/util/qundostack.cpp" line="+832"/>
         <source>Undo</source>
         <translation>Отменить действие</translation>
     </message>
     <message>
-        <location line="+27"/>
         <source>Redo</source>
         <translation>Повторить действие</translation>
     </message>
@@ -8492,57 +6742,46 @@
 <context>
     <name>QUnicodeControlCharacterMenu</name>
     <message>
-        <location filename="../src/gui/text/qtextcontrol.cpp" line="+899"/>
         <source>LRM Left-to-right mark</source>
         <translation>LRM Признак написания слева направо</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>RLM Right-to-left mark</source>
         <translation>RLM Признак написания справа налево</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>ZWJ Zero width joiner</source>
         <translation>ZWJ Объединяющий символ нулевой ширины</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>ZWNJ Zero width non-joiner</source>
         <translation>ZWNJ Необъединяющий символ нулевой ширины</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>ZWSP Zero width space</source>
         <translation>ZWSP Пробел нулевой ширины</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>LRE Start of left-to-right embedding</source>
         <translation>LRE Начало встраивания написания слева направо</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>RLE Start of right-to-left embedding</source>
         <translation>LRE Начало встраивания написания справа налево</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>LRO Start of left-to-right override</source>
         <translation>LRO Начало замены написания слева направо</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>RLO Start of right-to-left override</source>
         <translation>RLO Начало замены написания справа налево</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>PDF Pop directional formatting</source>
         <translation>PDF Признак окончания написания с другим направлением</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Insert Unicode control character</source>
         <translation>Вставить управляющий символ Unicode</translation>
     </message>
@@ -8550,32 +6789,26 @@
 <context>
     <name>QWebFrame</name>
     <message>
-        <location filename="../src/3rdparty/webkit/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp" line="+753"/>
         <source>Request cancelled</source>
         <translation>Запрос отменён</translation>
     </message>
     <message>
-        <location line="+19"/>
         <source>Request blocked</source>
         <translation>Запрос блокирован</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Cannot show URL</source>
         <translation>Невозможно отобразить URL</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Frame load interrupted by policy change</source>
         <translation>Загрузка фрейма прервана изменением политики</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Cannot show mimetype</source>
         <translation>Невозможно отобразить тип MIME</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>File does not exist</source>
         <translation>Файл не существует</translation>
     </message>
@@ -8583,858 +6816,705 @@
 <context>
     <name>QWebPage</name>
     <message>
-        <location filename="../src/3rdparty/webkit/WebKit/qt/WebCoreSupport/InspectorClientQt.cpp" line="+248"/>
         <source>Web Inspector - %2</source>
         <translation>Web-инспектор  - %2</translation>
     </message>
     <message>
-        <location filename="../src/3rdparty/webkit/WebCore/platform/network/qt/QNetworkReplyHandler.cpp" line="+347"/>
         <source>Redirection limit reached</source>
         <translation>Достигнут предел переадресации</translation>
     </message>
     <message>
-        <location line="+121"/>
         <source>Bad HTTP request</source>
         <translation>Некорректный HTTP-запрос</translation>
     </message>
     <message>
-        <location filename="../src/3rdparty/webkit/WebCore/platform/qt/ScrollbarQt.cpp" line="+58"/>
         <source>Scroll here</source>
         <translation>Прокрутить сюда</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Left edge</source>
         <translation>К левой границе</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Top</source>
         <translation>Вверх</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Right edge</source>
         <translation>К правой границе</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Bottom</source>
         <translation>Вниз</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Page left</source>
         <translation>На страницу влево</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Page up</source>
         <translation>На страницу вверх</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Page right</source>
         <translation>На страницу вправо</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Page down</source>
         <translation>На страницу вниз</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Scroll left</source>
         <translation>Прокрутить влево</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Scroll up</source>
         <translation>Прокрутить вверх</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Scroll right</source>
         <translation>Прокрутить вправо</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Scroll down</source>
         <translation>Прокрутить вниз</translation>
     </message>
     <message>
-        <location filename="../src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp" line="+1979"/>
         <source>JavaScript Alert - %1</source>
         <translation>JavaScript: Предупреждение - %1</translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>JavaScript Confirm - %1</source>
         <translation>JavaScript: Подтверждение - %1</translation>
     </message>
     <message>
-        <location line="+20"/>
         <source>JavaScript Prompt - %1</source>
         <translation>JavaScript: Запрос - %1</translation>
     </message>
     <message>
-        <location line="+26"/>
         <source>JavaScript Problem - %1</source>
         <translation>JavaScript: Проблема - %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>Сбой выполнения сценария на данной странице. Желаете остановить выполение сценария?</translation>
     </message>
     <message>
-        <location line="+376"/>
         <source>Move the cursor to the next character</source>
         <translation>Переместить указатель к следующему символу</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Move the cursor to the previous character</source>
         <translation>Переместить указатель к предыдущему символу</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Move the cursor to the next word</source>
         <translation>Переместить указатель к следующему слову</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Move the cursor to the previous word</source>
         <translation>Переместить указатель к предыдущему слову</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Move the cursor to the next line</source>
         <translation>Переместить указатель на следующую строку</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Move the cursor to the previous line</source>
         <translation>Переместить указатель на предыдущую строку</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Move the cursor to the start of the line</source>
         <translation>Переместить указатель в начало строки</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Move the cursor to the end of the line</source>
         <translation>Переместить указатель в конец строки</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Move the cursor to the start of the block</source>
         <translation>Переместить указатель в начало блока</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Move the cursor to the end of the block</source>
         <translation>Переместить указатель в конец блока</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Move the cursor to the start of the document</source>
         <translation>Переместить указатель в начало документа</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Move the cursor to the end of the document</source>
         <translation>Переместить указатель в конец документа</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Select all</source>
         <translation>Выделить всё</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Select to the next character</source>
         <translation>Выделить до следующего символа</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Select to the previous character</source>
         <translation>Выделить до предыдущего символа</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Select to the next word</source>
         <translation>Выделить до следующего слова</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Select to the previous word</source>
         <translation>Выделить до предыдущего слова</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Select to the next line</source>
         <translation>Выделить до следующей строки</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Select to the previous line</source>
         <translation>Выделить до предыдущей строки</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Select to the start of the line</source>
         <translation>Выделить до начала строки</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Select to the end of the line</source>
         <translation>Выделить до конца строки</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Select to the start of the block</source>
         <translation>Выделить до начала блока</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Select to the end of the block</source>
         <translation>Выделить до конца блока</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Select to the start of the document</source>
         <translation>Выделить до начала документа</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Select to the end of the document</source>
         <translation>Выделить до конца документа</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Delete to the start of the word</source>
         <translation>Удалить до начала слова</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Delete to the end of the word</source>
         <translation>Удалить до конца слова</translation>
     </message>
     <message>
-        <location line="+33"/>
         <source>Insert a new paragraph</source>
         <translation>Вставить новый параграф</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Insert a new line</source>
         <translation>Вставить новую строку</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Paste and Match Style</source>
         <translation>Вставить, сохранив стиль</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Remove formatting</source>
         <translation>Удалить форматирование</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Strikethrough</source>
         <translation>Зачёркнутый</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Subscript</source>
         <translation>Подстрочный</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Superscript</source>
         <translation>Надстрочный</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Insert Bulleted List</source>
         <translation>Вставить маркированный список</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Insert Numbered List</source>
         <translation>Вставить нумерованный список</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Indent</source>
         <translation>Увеличить отступ</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Outdent</source>
         <translation>Уменьшить отступ</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Center</source>
         <translation>По центру</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Justify</source>
         <translation>По ширине</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Align Left</source>
         <translation>По левому краю</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Align Right</source>
         <translation>По правому краю</translation>
     </message>
     <message>
-        <location filename="../src/3rdparty/webkit/WebCore/platform/qt/Localizations.cpp" line="+44"/>
         <source>Submit</source>
         <comment>default label for Submit buttons in forms on web pages</comment>
         <translation>Отправить</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>Отправить</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Reset</source>
         <comment>default label for Reset buttons in forms on web pages</comment>
         <translation>Сбросить</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>Индекс поиска. Введите ключевые слова для поиска: </translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Choose File</source>
         <comment>title for file button used in HTML forms</comment>
         <translation>Обзор...</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>Файл не указан</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Open in New Window</source>
         <comment>Open in New Window context menu item</comment>
         <translation>Открыть в новом окне</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Save Link...</source>
         <comment>Download Linked File context menu item</comment>
         <translation>Сохранить по ссылке как...</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Copy Link</source>
         <comment>Copy Link context menu item</comment>
         <translation>Копировать адрес ссылки</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Open Image</source>
         <comment>Open Image in New Window context menu item</comment>
         <translation>Открыть изображение</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Save Image</source>
         <comment>Download Image context menu item</comment>
         <translation>Сохранить изображение</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Copy Image</source>
         <comment>Copy Link context menu item</comment>
-        <translation>Копировать изображение в буффер обмена</translation>
-    </message>
-    <message>
-        <location line="+5"/>
+        <translation>Копировать изображение</translation>
+    </message>
+    <message>
         <source>Open Frame</source>
         <comment>Open Frame in New Window context menu item</comment>
         <translation>Открыть фрейм</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Copy</source>
         <comment>Copy context menu item</comment>
         <translation>Копировать</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Go Back</source>
         <comment>Back context menu item</comment>
         <translation>Назад</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Go Forward</source>
         <comment>Forward context menu item</comment>
         <translation>Вперёд</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Stop</source>
         <comment>Stop context menu item</comment>
         <translation>Остановить</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Reload</source>
         <comment>Reload context menu item</comment>
         <translation>Обновить</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Cut</source>
         <comment>Cut context menu item</comment>
         <translation>Вырезать</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Paste</source>
         <comment>Paste context menu item</comment>
         <translation>Вставить</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>No Guesses Found</source>
         <comment>No Guesses Found context menu item</comment>
         <translation type="unfinished">Совпадений не найдено</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Ignore</source>
         <comment>Ignore Spelling context menu item</comment>
         <translatorcomment>?Пропускать</translatorcomment>
         <translation type="unfinished">Пропустить</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Add To Dictionary</source>
         <comment>Learn Spelling context menu item</comment>
         <translation>Добавить в словарь</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Search The Web</source>
         <comment>Search The Web context menu item</comment>
         <translation type="unfinished">Искать в Интернет</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Look Up In Dictionary</source>
         <comment>Look Up in Dictionary context menu item</comment>
         <translation type="unfinished">Искать в словаре</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Open Link</source>
         <comment>Open Link context menu item</comment>
         <translation>Открыть ссылку</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Ignore</source>
         <comment>Ignore Grammar context menu item</comment>
         <translatorcomment>?Пропускать</translatorcomment>
         <translation type="unfinished">Пропустить</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Spelling</source>
         <comment>Spelling and Grammar context sub-menu item</comment>
         <translation>Орфография</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Show Spelling and Grammar</source>
         <comment>menu item title</comment>
         <translation type="unfinished">Показать панель проверки правописания</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Hide Spelling and Grammar</source>
         <comment>menu item title</comment>
         <translation type="unfinished">Скрыть панель проверки правописания</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Check Spelling</source>
         <comment>Check spelling context menu item</comment>
         <translation>Проверка орфографии</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Check Spelling While Typing</source>
         <comment>Check spelling while typing context menu item</comment>
         <translation>Проверять орфографию при наборе текста</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Check Grammar With Spelling</source>
         <comment>Check grammar with spelling context menu item</comment>
         <translation>Проверять грамматику с орфографией</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Fonts</source>
         <comment>Font context sub-menu item</comment>
         <translation>Шрифты</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Bold</source>
         <comment>Bold context menu item</comment>
         <translation>Жирный</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Italic</source>
         <comment>Italic context menu item</comment>
         <translation>Курсив</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Underline</source>
         <comment>Underline context menu item</comment>
         <translation>Подчёркнутый</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Outline</source>
         <comment>Outline context menu item</comment>
         <translation>Перечёркнутый</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Direction</source>
         <comment>Writing direction context sub-menu item</comment>
         <translation>Направление письма</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Text Direction</source>
         <comment>Text direction context sub-menu item</comment>
         <translation>Направление текста</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Default</source>
         <comment>Default writing direction context menu item</comment>
         <translation>По умолчанию</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Left to Right</source>
         <comment>Left to Right context menu item</comment>
         <translation>Слева направо</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Right to Left</source>
         <comment>Right to Left context menu item</comment>
         <translation>Справа налево</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Inspect</source>
         <comment>Inspect Element context menu item</comment>
         <translation>Проверить</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>История поиска пуста</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>История поиска</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>Очистить историю поиска</translation>
     </message>
     <message>
-        <location line="+80"/>
         <source>Missing Plug-in</source>
         <comment>Label text to be used when a plug-in is missing</comment>
         <translation>Модуль отсутствует</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>Unknown</source>
         <comment>Unknown filesize FTP directory listing item</comment>
         <translation>Неизвестно</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>%1 (%2x%3 pixels)</source>
         <comment>Title string for images</comment>
         <translation>%1 (%2x%3 px)</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Loading...</source>
         <comment>Media controller status message when the media is loading</comment>
         <translation>Загрузка...</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Live Broadcast</source>
         <comment>Media controller status message when watching a live broadcast</comment>
         <translation>Потоковое вещание</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Audio Element</source>
         <comment>Media controller element</comment>
         <translation>Аудио-элемент</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Video Element</source>
         <comment>Media controller element</comment>
         <translation>Видео-элемент</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Mute Button</source>
         <comment>Media controller element</comment>
         <translation>Кнопка &quot;Отключить звук&quot;</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Unmute Button</source>
         <comment>Media controller element</comment>
         <translation>Кнопка &quot;Включить звук&quot;</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Play Button</source>
         <comment>Media controller element</comment>
         <translation>Кнопка &quot;Воспроизведение&quot;</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Pause Button</source>
         <comment>Media controller element</comment>
         <translation>Кнопка &quot;Пауза&quot;</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Slider</source>
         <comment>Media controller element</comment>
         <translation>Регулятор</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Slider Thumb</source>
         <comment>Media controller element</comment>
         <translation>Указатель регулятора</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Rewind Button</source>
         <comment>Media controller element</comment>
         <translation>Кнопка &quot;Перемотка назад&quot;</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Return to Real-time Button</source>
         <comment>Media controller element</comment>
         <translation type="unfinished">Кнопка &quot;Вернуть в реальное время&quot;</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Elapsed Time</source>
         <comment>Media controller element</comment>
         <translation>Прошло времени</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Remaining Time</source>
         <comment>Media controller element</comment>
         <translation>Осталось времени</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Status Display</source>
         <comment>Media controller element</comment>
         <translation>Отображение состояния</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Fullscreen Button</source>
         <comment>Media controller element</comment>
         <translation>Кнопка &quot;На весь экран&quot;</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Seek Forward Button</source>
         <comment>Media controller element</comment>
         <translation>Кнопка &quot;Перемотка вперёд&quot;</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Seek Back Button</source>
         <comment>Media controller element</comment>
         <translation>Кнопка &quot;Перемотка назад&quot;</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Audio element playback controls and status display</source>
         <comment>Media controller element</comment>
         <translation>Элементы управления воспроизведением звука и отображением состояния</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Video element playback controls and status display</source>
         <comment>Media controller element</comment>
         <translation>Элементы управления воспроизведением видео и отображением состояния</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Mute audio tracks</source>
         <comment>Media controller element</comment>
         <translation>Отключить звуковые дорожки</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Unmute audio tracks</source>
         <comment>Media controller element</comment>
         <translation>Включить звуковые дорожки</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Begin playback</source>
         <comment>Media controller element</comment>
         <translation>Начать воспроизведение</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Pause playback</source>
         <comment>Media controller element</comment>
         <translation>Приостановить воспроизведение</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Movie time scrubber</source>
         <comment>Media controller element</comment>
         <translation type="unfinished">Перемотка</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Movie time scrubber thumb</source>
         <comment>Media controller element</comment>
         <translation type="unfinished">Позиция перемотки</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Rewind movie</source>
         <comment>Media controller element</comment>
         <translation>Перемотка в начало</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Return streaming movie to real-time</source>
         <comment>Media controller element</comment>
         <translation type="unfinished">Возвращает потоковое видео к воспроизведению в реальном времени</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Current movie time</source>
         <comment>Media controller element</comment>
         <translation>Текущее время фильма</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Remaining movie time</source>
         <comment>Media controller element</comment>
         <translation>Оставшееся время фильма</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Current movie status</source>
         <comment>Media controller element</comment>
         <translation>Текущее состояние фильма</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Play movie in full-screen mode</source>
         <comment>Media controller element</comment>
-        <translation>Воспроизведение фильма в режиме отображения на весь экран</translation>
-    </message>
-    <message>
-        <location line="+2"/>
+        <translation>Воспроизведение в режиме отображения на весь экран</translation>
+    </message>
+    <message>
         <source>Seek quickly back</source>
         <comment>Media controller element</comment>
         <translation>Быстрая перемотка назад</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Seek quickly forward</source>
         <comment>Media controller element</comment>
         <translation>Быстрая перемотка вперёд</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Indefinite time</source>
         <comment>Media time description</comment>
         <translation>Время не определено</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>%1 days %2 hours %3 minutes %4 seconds</source>
         <comment>Media time description</comment>
         <translation>%1 дней %2 часов %3 минут %4 секунд</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>%1 hours %2 minutes %3 seconds</source>
         <comment>Media time description</comment>
         <translation>%1 часов %2 минут %3 секунд</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>%1 minutes %2 seconds</source>
         <comment>Media time description</comment>
         <translation>%1 минут %2 секунд</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>%1 seconds</source>
         <comment>Media time description</comment>
         <translation>%1 секунд</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>
@@ -9447,7 +7527,6 @@
 <context>
     <name>QWhatsThisAction</name>
     <message>
-        <location filename="../src/gui/kernel/qwhatsthis.cpp" line="+527"/>
         <source>What&apos;s This?</source>
         <translation>Что это?</translation>
     </message>
@@ -9455,7 +7534,6 @@
 <context>
     <name>QWidget</name>
     <message>
-        <location filename="../src/gui/kernel/qwidget.cpp" line="+5802"/>
         <source>*</source>
         <translation>*</translation>
     </message>
@@ -9463,57 +7541,46 @@
 <context>
     <name>QWizard</name>
     <message>
-        <location filename="../src/gui/dialogs/qwizard.cpp" line="+701"/>
         <source>Cancel</source>
         <translation>Отмена</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Help</source>
         <translation>Справка</translation>
     </message>
     <message>
-        <location line="-14"/>
         <source>&lt; &amp;Back</source>
         <translation>&lt; &amp;Назад</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>&amp;Finish</source>
         <translation>&amp;Завершить</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>&amp;Help</source>
         <translation>&amp;Справка</translation>
     </message>
     <message>
-        <location line="-14"/>
         <source>Go Back</source>
         <translation>Назад</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Continue</source>
         <translation>Продолжить</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Commit</source>
         <translation>Передать</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Done</source>
         <translation>Готово</translation>
     </message>
     <message>
-        <location line="-4"/>
         <source>&amp;Next</source>
         <translation>&amp;Далее</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>&amp;Next &gt;</source>
         <translation>&amp;Далее &gt;</translation>
     </message>
@@ -9521,69 +7588,54 @@
 <context>
     <name>QWorkspace</name>
     <message>
-        <location filename="../src/gui/widgets/qworkspace.cpp" line="+1089"/>
         <source>&amp;Restore</source>
         <translation>&amp;Восстановить</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Move</source>
         <translation>&amp;Переместить</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Size</source>
         <translation>&amp;Размер</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Mi&amp;nimize</source>
         <translation>&amp;Свернуть</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Ma&amp;ximize</source>
         <translation>Р&amp;аспахнуть</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>&amp;Close</source>
         <translation>&amp;Закрыть</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Stay on &amp;Top</source>
         <translation>Оставаться &amp;сверху</translation>
     </message>
     <message>
-        <location line="-988"/>
         <source>Minimize</source>
         <translation>Свернуть</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Restore Down</source>
         <translation>Восстановить</translation>
     </message>
     <message>
-        <location line="-4"/>
         <source>Close</source>
         <translation>Закрыть</translation>
     </message>
     <message>
-        <location line="+993"/>
-        <location line="+1059"/>
         <source>Sh&amp;ade</source>
         <translation>Св&amp;ернуть в заголовок</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;осстановить из заголовка</translation>
     </message>
@@ -9591,117 +7643,94 @@
 <context>
     <name>QXml</name>
     <message>
-        <location filename="../src/xml/sax/qxml.cpp" line="+58"/>
         <source>no error occurred</source>
         <translation>ошибки отсутствуют</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>error triggered by consumer</source>
         <translation>ошибка вызвана пользователем</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>unexpected end of file</source>
         <translation>неожиданный конец файла</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>more than one document type definition</source>
         <translation>указано более одного типа документа</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>error occurred while parsing element</source>
         <translation>ошибка разбора элемента</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>tag mismatch</source>
         <translation>тэг не совпадает</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>error occurred while parsing content</source>
         <translation>ошибка разбора документа</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>unexpected character</source>
         <translation>неожиданный символ</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>invalid name for processing instruction</source>
         <translation>некорректное имя директивы разбора</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>version expected while reading the XML declaration</source>
         <translation>в объявлении XML ожидается параметр version</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>wrong value for standalone declaration</source>
         <translation>некорректное значение параметра standalone</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>error occurred while parsing document type definition</source>
         <translation>ошибка разбора объявления типа документа</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>letter is expected</source>
         <translation>ожидалась буква</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>error occurred while parsing comment</source>
         <translation>ошибка разбора комментария</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>error occurred while parsing reference</source>
         <translation>ошибка разбора ссылки</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>internal general entity reference not allowed in DTD</source>
         <translation>внутренняя ссылка на общий объект недопустима в DTD</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>external parsed general entity reference not allowed in attribute value</source>
         <translation>внешняя ссылка на общий объект недопустима в значении атрибута</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>external parsed general entity reference not allowed in DTD</source>
         <translation>внешняя ссылка на общий объект недопустима в DTD</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>unparsed entity reference in wrong context</source>
         <translation>неразобранная ссылка на объект в неправильном контексте</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>recursive entities</source>
         <translation>рекурсивные объекты</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>error in the text declaration of an external entity</source>
         <translation>ошибка в объявлении внешнего объекта</translation>
     </message>
     <message>
-        <location line="-11"/>
         <source>encoding declaration or standalone declaration expected while reading the XML declaration</source>
         <translation>в объявлении XML ожидаются параметры encoding или standalone</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>standalone declaration expected while reading the XML declaration</source>
         <translation>в объявлении XML ожидается параметр standalone</translation>
     </message>
@@ -9709,27 +7738,22 @@
 <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>Предупреждение в %1, в строке %2, столбце %3: %4</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Warning in %1: %2</source>
         <translation>Предупреждение в %1: %2</translation>
     </message>
     <message>
-        <location line="+16"/>
         <source>Unknown location</source>
         <translation>Неизвестное расположение</translation>
     </message>
     <message>
-        <location line="+14"/>
         <source>Error %1 in %2, at line %3, column %4: %5</source>
         <translation>Ошибка %1 в %2, в строке %3, столбце %4: %5</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Error %1 in %2: %3</source>
         <translation>Ошибка %1 в %2: %3</translation>
     </message>
@@ -9737,184 +7761,142 @@
 <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>Лишние данные в конце документа.</translation>
     </message>
     <message>
-        <location line="+271"/>
         <source>Invalid entity value.</source>
         <translation>Некорректное значение объекта.</translation>
     </message>
     <message>
-        <location line="+109"/>
         <source>Invalid XML character.</source>
         <translation>Некорректный символ XML.</translation>
     </message>
     <message>
-        <location line="+259"/>
         <source>Sequence &apos;]]&gt;&apos; not allowed in content.</source>
         <translation>Последовательность &quot;]]&gt;&quot; недопустима в содержимом.</translation>
     </message>
     <message>
-        <location line="+309"/>
         <source>Namespace prefix &apos;%1&apos; not declared</source>
         <translation>Префикс пространства имён &quot;%1&quot; не объявлен</translation>
     </message>
     <message>
-        <location line="+78"/>
         <source>Attribute redefined.</source>
         <translation>Атрибут переопределён.</translation>
     </message>
     <message>
-        <location line="+115"/>
         <source>Unexpected character &apos;%1&apos; in public id literal.</source>
         <translation>Неожиданный символ &quot;%1&quot; в литерале открытого идентификатора.</translation>
     </message>
     <message>
-        <location line="+28"/>
         <source>Invalid XML version string.</source>
         <translation>Некорректная строка версии XML.</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Unsupported XML version.</source>
         <translation>Неподдерживаемая версия XML.</translation>
     </message>
     <message>
-        <location line="+23"/>
         <source>%1 is an invalid encoding name.</source>
         <translation>%1 - не является корректным названием кодировки.</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Encoding %1 is unsupported</source>
         <translation>Кодировка %1 не поддерживается</translation>
     </message>
     <message>
-        <location line="+16"/>
         <source>Standalone accepts only yes or no.</source>
         <translation>Псевдоатрибут &quot;standalone&quot; может принимать только значения &quot;yes&quot; или &quot;no&quot;.</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Invalid attribute in XML declaration.</source>
         <translation>Некорректный атрибут в объявлении XML.</translation>
     </message>
     <message>
-        <location line="+16"/>
         <source>Premature end of document.</source>
         <translation>Неожиданный конец документа.</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Invalid document.</source>
         <translation>Некорректный документ.</translation>
     </message>
     <message>
-        <location line="+40"/>
         <source>Expected </source>
         <translation>Ожидалось </translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>, but got &apos;</source>
         <translation>, получили &apos;</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Unexpected &apos;</source>
         <translation>Неожиданное &apos;</translation>
     </message>
     <message>
-        <location line="+225"/>
         <source>Expected character data.</source>
         <translation>Ожидаются символьные данные.</translation>
     </message>
     <message>
-        <location filename="../src/corelib/xml/qxmlstream_p.h" line="-995"/>
         <source>Recursive entity detected.</source>
         <translation>Обнаружен рекурсивный объект.</translation>
     </message>
     <message>
-        <location line="+516"/>
         <source>Start tag expected.</source>
         <translation>Ожидается открывающий тэг.</translation>
     </message>
     <message>
-        <location line="+222"/>
         <source>XML declaration not at start of document.</source>
         <translation>Объявление XML находится не в начале документа.</translation>
     </message>
     <message>
-        <location line="-31"/>
         <source>NDATA in parameter entity declaration.</source>
         <translation>NDATA в объявлении параметра.</translation>
     </message>
     <message>
-        <location line="+34"/>
         <source>%1 is an invalid processing instruction name.</source>
         <translation>%1 не является корректным названием обрабатываемой инструкции.</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>Invalid processing instruction name.</source>
         <translation>Некорректное название обрабатываемой инструкции.</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>Некорректное объявление пространства имён.</translation>
     </message>
     <message>
-        <location filename="../src/corelib/xml/qxmlstream_p.h" line="+15"/>
         <source>Invalid XML name.</source>
         <translation>Некорректное имя XML.</translation>
     </message>
     <message>
-        <location line="+23"/>
         <source>Opening and ending tag mismatch.</source>
         <translation>Открывающий тэг не совпадает с закрывающим.</translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>Reference to unparsed entity &apos;%1&apos;.</source>
         <translation>Ссылка на необработанный объект &quot;%1&quot;.</translation>
     </message>
     <message>
-        <location line="-13"/>
-        <location line="+61"/>
-        <location line="+40"/>
         <source>Entity &apos;%1&apos; not declared.</source>
         <translation>Объект &quot;%1&quot; не объявлен.</translation>
     </message>
     <message>
-        <location line="-26"/>
         <source>Reference to external entity &apos;%1&apos; in attribute value.</source>
         <translation>Ссылка на внешний объект &quot;%1&quot; в значении атрибута.</translation>
     </message>
     <message>
-        <location line="+40"/>
         <source>Invalid character reference.</source>
         <translation>Некорректная символьная ссылка.</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>Обнаружено некорректно закодированное содержимое.</translation>
     </message>
     <message>
-        <location line="+274"/>
         <source>The standalone pseudo attribute must appear after the encoding.</source>
         <translation>Псевдоатрибут &quot;standalone&quot; должен находиться после указания кодировки.</translation>
     </message>
     <message>
-        <location filename="../src/corelib/xml/qxmlstream_p.h" line="+562"/>
         <source>%1 is an invalid PUBLIC identifier.</source>
         <translation>%1 - некорректный идентификатор PUBLIC.</translation>
     </message>
@@ -9922,702 +7904,558 @@
 <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>Должна присутствовать как минимум одна компонента.</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 не является правильным значением типа %2.</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>При преобразовании %2 в %1 исходное значение не может быть %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>Булево значение не может быть вычислено для последовательностей, которые содержат два и более атомарных значения.</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>Данные обрабатываемой инструкции не могут содержать строку &quot;%1&quot;</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 некоррекно для %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 недопустим для XML 1.0.</translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/functions/qerrorfn.cpp" line="+61"/>
         <source>%1 was called.</source>
         <translation>%1 было вызвано.</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>В замещаемой строке &quot;%1&quot; должно сопровождаться как минимум одной цифрой, если неэкранировано.</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>В замещаемой строке символ &quot;%1&quot; может использоваться только для экранирования самого себя или &quot;%2&quot;, но не &quot;%3&quot;</translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/functions/qpatternplatform.cpp" line="+92"/>
         <source>%1 matches newline characters</source>
         <translation>%1 соответствует символам конца строки</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>Matches are case insensitive</source>
         <translation>Соответствия регистронезависимы</translation>
     </message>
     <message>
-        <location line="+104"/>
         <source>%1 is an invalid regular expression pattern: %2</source>
         <translation>%1 - некорректный шаблон регулярного выражения: %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.</translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/functions/qsequencegeneratingfns.cpp" line="+266"/>
         <source>The default collection is undefined</source>
         <translation>Набор по умолчанию не определён</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>%1 cannot be retrieved</source>
         <translation>%1 не может быть восстановлен</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>Элемент %1 не соответствует необходимому типу %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 является схемой неизвестного типа.</translation>
     </message>
     <message>
-        <location line="-7254"/>
         <source>A template with name %1 has already been declared.</source>
         <translation>Шаблон с именем %1 уже был объявлен.</translation>
     </message>
     <message>
-        <location line="+213"/>
         <source>Only one %1 declaration can occur in the query prolog.</source>
         <translation>Только одно объявление %1 может присутствовать в прологе запроса.</translation>
     </message>
     <message>
-        <location line="+188"/>
         <source>The initialization of variable %1 depends on itself</source>
         <translation>Инициализация переменной %1 зависит от себя самой</translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/parser/qparsercontext.cpp" line="+93"/>
         <source>The variable %1 is unused</source>
         <translation>Переменная %1 не используется</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 не поддерживается. Поддерживается XQuery версии 1.0.</translation>
     </message>
     <message>
-        <location line="+71"/>
         <source>No function with signature %1 is available</source>
         <translation>Функция с сигнатурой %1 отсутствует</translation>
     </message>
     <message>
-        <location line="+303"/>
         <source>It is not possible to redeclare prefix %1.</source>
         <translation>Невозможно переопределить префикс %1.</translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>Prefix %1 is already declared in the prolog.</source>
         <translation>Префикс %1 уже объявлен в прологе.</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>Название опции должно содержать префикс. Нет пространства имён по умолчанию для опций.</translation>
     </message>
     <message>
-        <location line="+171"/>
         <source>The Schema Import feature is not supported, and therefore %1 declarations cannot occur.</source>
         <translation>Возможность импорта схем не поддерживается, следовательно, объявлений %1 быть не должно.</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>The target namespace of a %1 cannot be empty.</source>
         <translation>Целевое пространство имён %1 не может быть пустым.</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>The module import feature is not supported</source>
         <translation>Возможность импорта модулей не поддерживается</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>Пространство имён пользовательской функции в модуле библиотеки должен соответствовать пространству имён модуля. Другими словами, он должен быть %1 вместо %2</translation>
     </message>
     <message>
-        <location line="+34"/>
         <source>A function already exists with the signature %1.</source>
         <translation>Функция с сигнатурой %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>Внешние функции не поддерживаются. Все поддерживаемые функции могут использоваться напрямую без первоначального объявления их в качестве внешних</translation>
     </message>
     <message>
-        <location line="+1709"/>
         <source>The %1-axis is unsupported in XQuery</source>
         <translation>Ось %1 не поддерживается в XQuery</translation>
     </message>
     <message>
-        <location line="+435"/>
         <source>The namespace URI cannot be the empty string when binding to a prefix, %1.</source>
         <translation>URI пространства имён не может быть пустой строкой при связывании с префиксом %1.</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>%1 is an invalid namespace URI.</source>
         <translation>%1 - некорректный URI пространства имён.</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>It is not possible to bind to the prefix %1</source>
         <translation>Невозможно связать с префиксом %1</translation>
     </message>
     <message>
-        <location line="+30"/>
         <source>Two namespace declaration attributes have the same name: %1.</source>
         <translation>Два атрибута объявления пространств имён имеют одинаковое имя: %1.</translation>
     </message>
     <message>
-        <location line="+89"/>
         <source>The namespace URI must be a constant and cannot use enclosed expressions.</source>
         <translation>URI пространства имён должен быть константой и не может содержать выражений.</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 является объявлением атрибута вне области объявлений. Имейте в виду, возможность импорта схем не поддерживается.</translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/type/qcardinality.cpp" line="+55"/>
         <source>empty</source>
         <translation>пусто</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>zero or one</source>
         <translation>нуль или один</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>exactly one</source>
         <translation>ровно один</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>one or more</source>
         <translation>один или более</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>zero or more</source>
         <translation>нуль или более</translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/type/qtypechecker.cpp" line="+156"/>
         <source>The focus is undefined.</source>
         <translation>Фокус не определён.</translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/utils/qoutputvalidator.cpp" line="+93"/>
         <source>An attribute by name %1 has already been created.</source>
         <translation>Атрибут с именем %1 уже существует.</translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/api/qiodevicedelegate.cpp" line="+84"/>
         <source>Network timeout.</source>
         <translation>Время ожидания сети истекло.</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 не может быть сериализован, так как расположен вне документа.</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 неверен, так как начинается с %2.</translation>
     </message>
     <message>
-        <location line="+19"/>
         <source>Day %1 is outside the range %2..%3.</source>
         <translation>День %1 вне диапазона %2..%3.</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Month %1 is outside the range %2..%3.</source>
         <translation>Месяц %1 вне диапазона %2..%3.</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>Overflow: Can&apos;t represent date %1.</source>
         <translation>Переполнение: Не удаётся представить дату %1.</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Day %1 is invalid for month %2.</source>
         <translation>День %1 неверен для месяца %2.</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>Время 24:%1:%2.%3 некорректно. 24 часа, но минуты, секунды и/или миллисекунды отличны от 0; </translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>Time %1:%2:%3.%4 is invalid.</source>
         <translation>Время %1:%2:%3.%4 некорректно.</translation>
     </message>
     <message>
-        <location line="+115"/>
         <source>Overflow: Date can&apos;t be represented.</source>
         <translation>Переполнение: невозможно представить дату.</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>Как минимум одна компонента времени должна следовать за разделителем &apos;%1&apos;.</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 на %2 (не числовое выражение) недопустимо.</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 на %2 или %3 (плюс или минус нуль) недопустимо.</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 на %2 или %3 (плюс-минус бесконечность) недопустимо.</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 не может быть булевым значением.</translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/data/qderivedinteger_p.h" line="+402"/>
         <source>Value %1 of type %2 exceeds maximum (%3).</source>
         <translation>Значение %1 типа %2 больше максимума (%3).</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Value %1 of type %2 is below minimum (%3).</source>
         <translation>Значение %1 типа %2 меньше минимума (%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 должно содержать четное количество цифр. Значение %2 этому требованию не удовлетворяет.</translation>
     </message>
     <message>
-        <location line="+19"/>
         <source>%1 is not valid as a value of type %2.</source>
         <translation>Значение %1 некорректно для типа %2.</translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/expr/qarithmeticexpression.cpp" line="+207"/>
         <source>Operator %1 cannot be used on type %2.</source>
         <translation>Оператор %1 не может использоваться для типа %2.</translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>Operator %1 cannot be used on atomic values of type %2 and %3.</source>
         <translation>Оператор %1 не может использоваться для атомарных значений типов %2 и %3.</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>URI пространства имён в названии рассчитываемого атрибута не может быть %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>Название расчитываемого атрибута не может иметь URI пространства имён %1 с локальным именем %2.</translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/expr/qcastas.cpp" line="+88"/>
         <source>Type error in cast, expected %1, received %2.</source>
         <translation>Ошибка типов в преобразовании, ожидалось %1, получено %2.</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 или производные от него типы исходное значение должно быть того же типа или строковым литералом. Тип %2 недопустим.</translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/expr/qcommentconstructor.cpp" line="+67"/>
         <source>A comment cannot contain %1</source>
         <translation>Комментарий не может содержать %1</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>A comment cannot end with a %1.</source>
         <translation>Комментарий не может оканчиваться на %1.</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>Узел-атрибут не может быть потомком узла-документа. Атрибут %1 неуместен.</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>Модуль библиотеки не может использоваться напрямую. Он должен быть импортирован из основного модуля.</translation>
     </message>
     <message>
-        <location line="+40"/>
         <source>No template by name %1 exists.</source>
         <translation>Шаблон с именем %1 отсутствует.</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>Значение типа %1 не может быть условием. Условием могут являться числовой и булевый типы.</translation>
     </message>
     <message>
-        <location line="+32"/>
         <source>A positional predicate must evaluate to a single numeric value.</source>
         <translation>Позиционный предикат должен вычисляться как числовое выражение.</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>Целевое имя в обрабатываемой инструкции не может быть %1 в любой комбинации нижнего и верхнего регистров. Имя %2 некорректно.</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 некорректное целевое имя в обрабатываемой инструкции. Имя должно быть значением типа %2, например: %3.</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>Последняя часть пути должна содержать узлы или атомарные значения, но не может содержать и то, и другое одновременно.</translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/expr/qqnameconstructor.cpp" line="+82"/>
         <source>No namespace binding exists for the prefix %1</source>
         <translation>Отсутствует привязка к пространству имён для префикса %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>Отсутствует привязка к пространству имён для префикса %1 в %2</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>Первый аргумент %1 не может быть типа %2. Он должен быть числового типа, типа xs:yearMonthDuration или типа xs:dayTimeDuration.</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>Первый аргумент %1 не может быть типа %2. Он должен быть типа %3, %4 или %5.</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>Второй аргумент %1 не может быть типа %2. Он должен быть типа %3, %4 или %5.</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>Если оба значения имеют региональные смещения, смещения должны быть одинаковы. %1 и %2 не одинаковы.</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>&quot;%1&quot; должно сопровождаться &quot;%2&quot; или &quot;%3&quot;, но не в конце замещаемой строки.</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 и %2 соответствуют началу и концу строки.</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>Whitespace characters are removed, except when they appear in character classes</source>
         <translation>Символы пробелов удалены (за исключением тех, что были в символах классов)</translation>
     </message>
     <message>
-        <location line="+130"/>
         <source>%1 is an invalid flag for regular expressions. Valid flags are:</source>
         <translation>%1 - некорректный флаг регулярного выражения. Допустимые флаги:</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>Префикс не должен быть указан, если первый параметр - пустая последовательность или пустая строка (вне пространства имён). Был указан префикс %1.</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>Форма нормализации %1 не поддерживается. Поддерживаются только %2, %3, %4, %5 и пустая, т.е. пустая строка (без нормализации).</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>Региональное смещение должно быть в переделах от %1 до %2 включительно. %3 выходит за допустимые пределы.</translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/janitors/qcardinalityverifier.cpp" line="+58"/>
         <source>Required cardinality is %1; got cardinality %2.</source>
         <translation>Необходимо %1 элементов, получено %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>Имя кодировки %1 некорректно. Имя кодировки должно содержать только символы латиницы без пробелов и должно удовлетворять регулярному выражению %2.</translation>
     </message>
     <message>
-        <location line="+260"/>
         <source>The keyword %1 cannot occur with any other mode name.</source>
         <translation>Ключевое слово %1 не может встречаться с любым другим названием режима.</translation>
     </message>
     <message>
-        <location line="-3117"/>
         <source>No variable with name %1 exists</source>
         <translation>Переменная с именем %1 отсутствует</translation>
     </message>
     <message>
-        <location line="+3146"/>
         <source>The value of attribute %1 must be of type %2, which %3 isn&apos;t.</source>
         <translation>Значение атрибута %1 должно быть типа %2, но %3 не соответствует данному типу.</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>Не удаётся связать префикс %1. По умолчанию префикс связан с пространством имён %2.</translation>
     </message>
     <message>
-        <location line="+312"/>
         <source>A variable with name %1 has already been declared.</source>
         <translation>Переменная с именем %1 уже объявлена.</translation>
     </message>
     <message>
-        <location line="+39"/>
         <source>No value is available for the external variable with name %1.</source>
         <translation>Отсутствует значение для внешней переменной с именем %1.</translation>
     </message>
     <message>
-        <location line="+96"/>
         <source>A stylesheet function must have a prefixed name.</source>
         <translation>Функция стилей должна иметь имя с префиксом.</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>Пространтсво имён %1 зарезервировано, поэтому пользовательские функции не могут его использовать. Попробуйте предопределённый префикс %2, который существует для подобных ситуаций.</translation>
     </message>
     <message>
-        <location line="+106"/>
         <source>An argument with name %1 has already been declared. Every argument name must be unique.</source>
         <translation>Аргумент с именем %1 уже объявлен. Имя каждого аргумента должно быть уникальным.</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>Если функция %1 используется для сравнения внутри шаблона, аргумент должен быть ссылкой на переменную или строковым литералом.</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>В шаблоне XSL-T первый аргумент функции %1 должен быть строковым литералом, если функция используется для сравнения.</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>В шаблоне XSL-T первый аргумент функции %1 должен быть литералом или ссылкой на переменную, если функция используется для сравнения.</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>In an XSL-T pattern, function %1 cannot have a third argument.</source>
         <translation>В шаблоне XSL-T у функции %1 не должно быть третьего аргумента.</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>В шаблоне XSL-T только функции %1 и %2 могут использоваться для сравнения, но не %3.</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>В шаблоне XSL-T не может быть использована ось %1 - только оси %2 или %3.</translation>
     </message>
     <message>
-        <location line="+126"/>
         <source>%1 is an invalid template mode name.</source>
         <translation>%1 не является корректным шаблоном имени режима.</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>Имя переменной, связанной с выражением for, должно отличаться от позиционной переменной. Две переменные с именем %1 конфликтуют.</translation>
     </message>
     <message>
-        <location line="+778"/>
         <source>The Schema Validation Feature is not supported. Hence, %1-expressions may not be used.</source>
         <translation>Возможность проверки по схеме не поддерживается. Выражения %1 не могут использоваться.</translation>
     </message>
     <message>
-        <location line="+40"/>
         <source>None of the pragma expressions are supported. Therefore, a fallback expression must be present</source>
         <translation>Ни одно из выражений pragma не поддерживается. Должно существовать запасное выражение</translation>
     </message>
     <message>
-        <location line="+269"/>
         <source>Each name of a template parameter must be unique; %1 is duplicated.</source>
         <translation>Имя каждого параметра шаблона должно быть уникальным, но %1 повторяется.</translation>
     </message>
     <message>
-        <location line="+462"/>
         <source>No function with name %1 is available.</source>
         <translation>Функция с именем %1 отсутствует.</translation>
     </message>
     <message>
-        <location line="-6235"/>
         <source>%1 is not a valid numeric literal.</source>
         <translation>%1 не является корректным числовым литералом.</translation>
     </message>
     <message>
-        <location line="-152"/>
         <source>W3C XML Schema identity constraint selector</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>W3C XML Schema identity constraint field</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>A construct was encountered which is disallowed in the current language(%1).</source>
         <translation>Встречена конструкция, запрещённая для текущего языка (%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 может быть связано только с %2 (в данном случае уже предопределено).</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 может быть связан только с %2 (в данном случае уже предопределено).</translation>
     </message>
     <message>
-        <location line="+120"/>
         <source>An attribute with name %1 has already appeared on this element.</source>
         <translation>Атрибут с именем %1 уже существует для данного элемента.</translation>
     </message>
     <message>
-        <location line="+61"/>
         <source>A direct element constructor is not well-formed. %1 is ended with %2.</source>
         <translation>Прямой конструктор элемента составлен некорректно. %1 заканчивается на %2.</translation>
     </message>
     <message>
-        <location line="+458"/>
         <source>The name %1 does not refer to any schema type.</source>
         <translation>Название %1 не соответствует ни одному типу схемы.</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 - сложный тип. Преобразование к сложным типам невозможно. Однако, преобразование к атомарным типам как %2 работает.</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>%1 is not an atomic type. Casting is only possible to atomic types.</source>
         <translation>%1 - не атомарный тип. Преобразование возможно только к атомарным типам.</translation>
     </message>
     <message>
-        <location line="+76"/>
         <source>%1 is not a valid name for a processing-instruction.</source>
         <translation>%1 не является корректным названием инструкции обработки.</translation>
     </message>
     <message>
-        <location line="+188"/>
         <source>The name of an extension expression must be in a namespace.</source>
         <translation>Название выражения расширения должно быть в пространстве имён.</translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/type/qtypechecker.cpp" line="-93"/>
         <source>Required type is %1, but %2 was found.</source>
         <translation>Требуется тип %1, но обнаружен %2.</translation>
     </message>
     <message>
-        <location line="+44"/>
         <source>Promoting %1 to %2 may cause loss of precision.</source>
         <translation>Преобразование %1 к %2 может снизить точность.</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>Невозможно добавлять атрибуты после любого другого вида узла.</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>Поддерживается только Unicode Codepoint Collation (%1). %2 не поддерживается.</translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/data/qatomicmathematicians.cpp" line="-180"/>
         <source>Integer division (%1) by zero (%2) is undefined.</source>
         <translation>Целочисленное деление (%1) на нуль (%2) не определено.</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Division (%1) by zero (%2) is undefined.</source>
         <translation>Деление (%1) на нуль (%2) не определено.</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Modulus division (%1) by zero (%2) is undefined.</source>
         <translation>Деление по модулю (%1) на нуль (%2) не определено.</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 принимает не более %n аргумента. Следовательно, %2 некорректно.</numerusform>
@@ -10626,7 +8464,6 @@
         </translation>
     </message>
     <message numerus="yes">
-        <location line="+11"/>
         <source>%1 requires at least %n argument(s). %2 is therefore invalid.</source>
         <translation>
             <numerusform>%1 принимает не менее %n аргумента. Следовательно, %2 некорректно.</numerusform>
@@ -10635,1655 +8472,1258 @@
         </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>Корневой узел второго аргумента функции %1 должен быть документом. %2 не является документом.</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>Пространство имён для пользовательских функций не может быть пустым (попробуйте предопределённый префикс %1, который существует для подобных ситуаций)</translation>
     </message>
     <message>
-        <location line="-693"/>
-        <location line="+10"/>
         <source>A default namespace declaration must occur before function, variable, and option declarations.</source>
         <translation>Объявление пространство имён по умолчанию должно быть до объявления функций, переменных и опций.</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>Namespace declarations must occur before function, variable, and option declarations.</source>
         <translation>Объявление пространства имён должно быть до объявления функций, переменных и опций.</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>Module imports must occur before function, variable, and option declarations.</source>
         <translation>Импортируемые модули должны быть указаны до объявления функций, переменных и опций.</translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/functions/qtimezonefns.cpp" line="+12"/>
         <source>%1 is not a whole number of minutes.</source>
         <translation>%1 не является полным количеством минут.</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 не может быть сериализован, так как присутствует на верхнем уровне.</translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/acceltree/qacceltreeresourceloader.cpp" line="+344"/>
         <source>%1 is an unsupported encoding.</source>
         <translation>Кодировка %1 не поддерживается.</translation>
     </message>
     <message>
-        <location line="+16"/>
         <source>%1 contains octets which are disallowed in the requested encoding %2.</source>
         <translation>%1 содержит октеты, которые недопустимы в требуемой кодировке %2.</translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>The codepoint %1, occurring in %2 using encoding %3, is an invalid XML character.</source>
         <translation>Символ с кодом %1, присутствующий в %2 при использовании кодировки %3, не является допустимым символом XML.</translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/expr/qapplytemplate.cpp" line="+119"/>
         <source>Ambiguous rule match.</source>
         <translation>Неоднозначное соответствие правилу.</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>В конструкторе пространства имён значение пространства имён не может быть пустой строкой.</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>The prefix must be a valid %1, which %2 is not.</source>
         <translation>Префикс должен быть корректным %1, но %2 им не является.</translation>
     </message>
     <message>
-        <location line="+14"/>
         <source>The prefix %1 cannot be bound.</source>
         <translation>Префикс%1 не может быть связан.</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>Only the prefix %1 can be bound to %2 and vice versa.</source>
         <translation>Только префикс %1 может быть связан с %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>Необходим параметр %1 , но соответствующего %2 не передано.</translation>
     </message>
     <message>
-        <location line="-71"/>
         <source>The parameter %1 is passed, but no corresponding %2 exists.</source>
         <translation>Передан параметр %1 , но соответствующего %2 не существует.</translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/functions/qunparsedtextfn.cpp" line="+65"/>
         <source>The URI cannot have a fragment</source>
         <translation>URI не может содержать фрагмент</translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/parser/qxslttokenizer.cpp" line="+519"/>
         <source>Element %1 is not allowed at this location.</source>
         <translation>Элемент %1 недопустим в этом месте.</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Text nodes are not allowed at this location.</source>
         <translation>Текстовые узлы недопустимы в этом месте.</translation>
     </message>
     <message>
-        <location line="+20"/>
         <source>Parse error: %1</source>
         <translation>Ошибка разбора: %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>Значение атрибута версии XSL-T должно быть типа %1, но %2 им не является.</translation>
     </message>
     <message>
-        <location line="+20"/>
         <source>Running an XSL-T 1.0 stylesheet with a 2.0 processor.</source>
         <translation>Выполняется таблица стилей XSL-T 1.0 с обработчиком версии 2.0.</translation>
     </message>
     <message>
-        <location line="+108"/>
         <source>Unknown XSL-T attribute %1.</source>
         <translation>Неизвествный атрибут XSL-T %1.</translation>
     </message>
     <message>
-        <location line="+23"/>
         <source>Attribute %1 and %2 are mutually exclusive.</source>
         <translation>Атрибуты %1 и %2 взаимоисключающие.</translation>
     </message>
     <message>
-        <location line="+166"/>
         <source>In a simplified stylesheet module, attribute %1 must be present.</source>
         <translation>В модуле упрощённой таблицы стилей обязан присутствовать атрибут %1.</translation>
     </message>
     <message>
-        <location line="+72"/>
         <source>If element %1 has no attribute %2, it cannot have attribute %3 or %4.</source>
         <translation>Если элемент %1 не имеет атрибут %2, у него не может быть атрибутов %3 и %4.</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Element %1 must have at least one of the attributes %2 or %3.</source>
         <translation>Элемент %1 должен иметь как минимум один из атрибутов %2 или %3.</translation>
     </message>
     <message>
-        <location line="+28"/>
         <source>At least one mode must be specified in the %1-attribute on element %2.</source>
         <translation>Как минимум один режим должен быть указан в атрибуте %1 элемента %2.</translation>
     </message>
     <message>
-        <location line="+123"/>
         <source>Element %1 must come last.</source>
         <translation>Элемент %1 должен идти последним.</translation>
     </message>
     <message>
-        <location line="+24"/>
         <source>At least one %1-element must occur before %2.</source>
         <translation>Как минимум один элемент %1 должен быть перед %2.</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Only one %1-element can appear.</source>
         <translation>Должен быть только один элемент %1.</translation>
     </message>
     <message>
-        <location line="+31"/>
         <source>At least one %1-element must occur inside %2.</source>
         <translation>Как минимум один элемент %1 должен быть внутри %2.</translation>
     </message>
     <message>
-        <location line="+58"/>
         <source>When attribute %1 is present on %2, a sequence constructor cannot be used.</source>
         <translation>Если %2 содержит атрибут %1, конструктор последовательности не может быть использован.</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>Element %1 must have either a %2-attribute or a sequence constructor.</source>
         <translation>Элемент %1 должен иметь атрибут %2 или конструктор последовательности.</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>Если параметр необходим, значение по умолчание не может быть передано через атрибут %1 или конструктор последовательности.</translation>
     </message>
     <message>
-        <location line="+270"/>
         <source>Element %1 cannot have children.</source>
         <translation>Элемент %1 не может иметь потомков.</translation>
     </message>
     <message>
-        <location line="+434"/>
         <source>Element %1 cannot have a sequence constructor.</source>
         <translation type="unfinished">Элемент %1 не может иметь конструктор последовательности.</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>У %2 не может быть атрибута %1, когда он является потомком %3.</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>A parameter in a function cannot be declared to be a tunnel.</source>
         <translation type="unfinished">Параметр функции не может быть объявлен туннелем.</translation>
     </message>
     <message>
-        <location line="+149"/>
         <source>This processor is not Schema-aware and therefore %1 cannot be used.</source>
         <translation type="unfinished">Данный обработчик не работает со схемами, следовательно, %1 не может использоваться.</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>Элементы верхнего уровня таблицы стилей должны быть в пространстве имен, которым %1 не является.</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 элемента %2 должно быть или %3, или %4, но не %5.</translation>
     </message>
     <message>
-        <location line="+20"/>
         <source>Attribute %1 cannot have the value %2.</source>
         <translation>Атрибут %1 не может принимать значение %2.</translation>
     </message>
     <message>
-        <location line="+58"/>
         <source>The attribute %1 can only appear on the first %2 element.</source>
         <translation>Атрибут %1 может быть только у первого элемента %2.</translation>
     </message>
     <message>
-        <location line="+99"/>
         <source>At least one %1 element must appear as child of %2.</source>
         <translation>Как минимум один элемент %1 должен быть в %2.</translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/schema/qxsdschemachecker.cpp" line="+227"/>
         <source>%1 has inheritance loop in its base type %2.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+5"/>
-        <location line="+24"/>
         <source>Circular inheritance of base type %1.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>Circular inheritance of union %1.</source>
         <translation type="unfinished"></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 type="unfinished"></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 type="unfinished"></translation>
     </message>
     <message>
-        <location line="+31"/>
         <source>Base type of simple type %1 cannot be complex type %2.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Simple type %1 cannot have direct base type %2.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+33"/>
-        <location line="+9"/>
         <source>Simple type %1 is not allowed to have base type %2.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+12"/>
         <source>Simple type %1 can only have simple atomic type as base type.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Simple type %1 cannot derive from %2 as the latter defines restriction as final.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+13"/>
-        <location line="+484"/>
         <source>Variety of item type of %1 must be either atomic or union.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-474"/>
-        <location line="+483"/>
         <source>Variety of member types of %1 must be atomic.</source>
         <translation type="unfinished"></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 type="unfinished"></translation>
     </message>
     <message>
-        <location line="-431"/>
         <source>Simple type %1 is only allowed to have %2 facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>Base type of simple type %1 must have variety of type list.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Base type of simple type %1 has defined derivation by restriction as final.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Item type of base type does not match item type of %1.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+26"/>
-        <location line="+93"/>
         <source>Simple type %1 contains not allowed facet type %2.</source>
         <translation type="unfinished"></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 type="unfinished"></translation>
     </message>
     <message>
-        <location line="-404"/>
         <source>%1 is not allowed to have any facets.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Base type %1 of simple type %2 must have variety of union.</source>
         <translation type="unfinished"></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 type="unfinished"></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 type="unfinished"></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 type="unfinished"></translation>
     </message>
     <message>
-        <location line="+30"/>
         <source>Complex type %1 has duplicated element %2 in its content model.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Complex type %1 has non-deterministic content.</source>
         <translation type="unfinished"></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 type="unfinished"></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 type="unfinished"></translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>Complex type %1 must have simple content.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Complex type %1 must have the same simple type as its base class %2.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+67"/>
         <source>Complex type %1 cannot be derived from base type %2%3.</source>
         <translation type="unfinished"></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 type="unfinished"></translation>
     </message>
     <message>
-        <location line="+14"/>
         <source>Complex type %1 with simple content cannot be derived from complex base type %2.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+35"/>
         <source>Item type of simple type %1 cannot be a complex type.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+44"/>
         <source>Member type of simple type %1 cannot be a complex type.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>%1 is not allowed to have a member type with the same name as itself.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+83"/>
-        <location line="+29"/>
-        <location line="+34"/>
         <source>%1 facet collides with %2 facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-20"/>
         <source>%1 facet must have the same value as %2 facet of base type.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+37"/>
         <source>%1 facet must be equal or greater than %2 facet of base type.</source>
         <translation type="unfinished"></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 type="unfinished"></translation>
     </message>
     <message>
-        <location line="-389"/>
         <source>%1 facet contains invalid regular expression</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Unknown notation %1 used in %2 facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+20"/>
         <source>%1 facet contains invalid value %2: %3.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+22"/>
         <source>%1 facet cannot be %2 or %3 if %4 facet of base type is %5.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>%1 facet cannot be %2 if %3 facet of base type is %4.</source>
         <translation type="unfinished"></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 type="unfinished"></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 type="unfinished"></translation>
     </message>
     <message>
-        <location line="-201"/>
-        <location line="+79"/>
         <source>%1 facet and %2 facet cannot appear together.</source>
         <translation type="unfinished"></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 type="unfinished"></translation>
     </message>
     <message>
-        <location line="-86"/>
-        <location line="+58"/>
         <source>%1 facet must be less than %2 facet.</source>
         <translation type="unfinished"></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 type="unfinished"></translation>
     </message>
     <message>
-        <location line="+113"/>
         <source>Simple type contains not allowed facet %1.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+12"/>
         <source>%1, %2, %3, %4, %5 and %6 facets are not allowed when derived by list.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+16"/>
         <source>Only %1 and %2 facets are allowed when derived by union.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+23"/>
-        <location line="+16"/>
         <source>%1 contains %2 facet with invalid data: %3.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+24"/>
         <source>Attribute group %1 contains attribute %2 twice.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Attribute group %1 contains two different attributes that both have types derived from %2.</source>
         <translation type="unfinished"></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 type="unfinished"></translation>
     </message>
     <message>
-        <location line="+23"/>
         <source>Complex type %1 contains attribute %2 twice.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Complex type %1 contains two different attributes that both have types derived from %2.</source>
         <translation type="unfinished"></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 type="unfinished"></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 type="unfinished"></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 type="unfinished"></translation>
     </message>
     <message>
-        <location line="+10"/>
-        <location line="+11"/>
         <source>Value constraint of element %1 is not of elements type: %2.</source>
         <translation type="unfinished"></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 type="unfinished"></translation>
     </message>
     <message>
-        <location line="+28"/>
         <source>Type of element %1 cannot be derived from type of substitution group affiliation.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+41"/>
         <source>Value constraint of attribute %1 is not of attributes type: %2.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Attribute %1 has value constraint but has type derived from %2.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+56"/>
         <source>%1 attribute in derived complex type must be %2 like in base type.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>Attribute %1 in derived complex type must have %2 value constraint like in base type.</source>
         <translation type="unfinished"></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 type="unfinished"></translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Attribute %1 in derived complex type must have %2 value constraint.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>processContent of base wildcard must be weaker than derived wildcard.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+39"/>
-        <location line="+15"/>
         <source>Element %1 exists twice with different types.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+28"/>
         <source>Particle contains non-deterministic wildcards.</source>
         <translation type="unfinished"></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 type="unfinished"></translation>
     </message>
     <message>
-        <location line="-57"/>
         <source>Type of derived attribute %1 cannot be validly derived from type of base attribute.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+28"/>
         <source>Value constraint of derived attribute %1 does not match value constraint of base attribute.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Derived attribute %1 does not exist in the base definition.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>Derived attribute %1 does not match the wildcard in the base definition.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>Base attribute %1 is required but missing in derived definition.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Derived definition contains an %1 element that does not exists in the base definition</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Derived wildcard is not a subset of the base wildcard.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>%1 of derived wildcard is not a valid restriction of %2 of base wildcard</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+23"/>
         <source>Attribute %1 from base type is missing in derived type.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Type of derived attribute %1 differs from type of base attribute.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Base definition contains an %1 element that is missing in the derived definition</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/schema/qxsdschemaresolver.cpp" line="+354"/>
         <source>%1 references unknown %2 or %3 element %4.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>%1 references identity constraint %2 that is no %3 or %4 element.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>%1 has a different number of fields from the identity constraint %2 that it references.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+23"/>
         <source>Base type %1 of %2 element cannot be resolved.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+84"/>
         <source>Item type %1 of %2 element cannot be resolved.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+31"/>
         <source>Member type %1 of %2 element cannot be resolved.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+28"/>
-        <location line="+415"/>
-        <location line="+30"/>
         <source>Type %1 of %2 element cannot be resolved.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-423"/>
         <source>Base type %1 of complex type cannot be resolved.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>%1 cannot have complex base type that has a %2.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+286"/>
         <source>Content model of complex type %1 contains %2 element so it cannot be derived by extension from a non-empty type.</source>
         <translation type="unfinished"></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 type="unfinished"></translation>
     </message>
     <message>
-        <location line="+101"/>
         <source>Type of %1 element must be a simple type, %2 is not.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+62"/>
         <source>Substitution group %1 of %2 element cannot be resolved.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Substitution group %1 has circular definition.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+120"/>
-        <location line="+7"/>
         <source>Duplicated element names %1 in %2 element.</source>
         <translation type="unfinished"></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 type="unfinished"></translation>
     </message>
     <message>
-        <location line="-138"/>
         <source>Circular group reference for %1.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+16"/>
         <source>%1 element is not allowed in this scope</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>%1 element cannot have %2 attribute with value other than %3.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>%1 element cannot have %2 attribute with value other than %3 or %4.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+91"/>
         <source>%1 or %2 attribute of reference %3 does not match with the attribute declaration %4.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+25"/>
         <source>Attribute group %1 has circular reference.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+131"/>
         <source>%1 attribute in %2 must have %3 use like in base type %4.</source>
         <translation type="unfinished"></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 type="unfinished"></translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>%1 has attribute wildcard but its base type %2 has not.</source>
         <translation type="unfinished"></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 type="unfinished"></translation>
     </message>
     <message>
-        <location line="+48"/>
         <source>Enumeration facet contains invalid content: {%1} is not a value of type %2.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>Namespace prefix of qualified name %1 is not defined.</source>
         <translation type="unfinished"></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 type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/schema/qxsdparticlechecker.cpp" line="+165"/>
         <source>Empty particle cannot be derived from non-empty particle.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Derived particle is missing element %1.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Derived element %1 is missing value constraint as defined in base particle.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Derived element %1 has weaker value constraint than base particle.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Fixed value constraint of element %1 differs from value constraint in base particle.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Derived element %1 cannot be nillable as base element is not nillable.</source>
         <translation type="unfinished"></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 type="unfinished"></translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>Simple type of derived element %1 cannot be validly derived from base element.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Complex type of derived element %1 cannot be validly derived from base element.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+24"/>
         <source>Element %1 is missing in derived particle.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>Element %1 does not match namespace constraint of wildcard in base particle.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>Wildcard in derived particle is not a valid subset of wildcard in base particle.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>processContent of wildcard in derived particle is weaker than wildcard in base particle.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+240"/>
         <source>Derived particle allows content that is not allowed in the base particle.</source>
         <translation type="unfinished"></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 type="unfinished"></translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>Element %1 is not allowed in this scope, possible elements are: %2.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+16"/>
         <source>Child element is missing in that scope, possible child elements are: %1.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+143"/>
         <source>Document is not a XML schema.</source>
         <translation type="unfinished"></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 type="unfinished"></translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>%1 attribute of %2 element contains invalid content: {%3}.</source>
         <translation type="unfinished"></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 type="unfinished"></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 type="unfinished"></translation>
     </message>
     <message>
-        <location line="+243"/>
         <source>%1 element is not allowed to have the same %2 attribute value as the target namespace %3.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>%1 element without %2 attribute is not allowed inside schema without target namespace.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+851"/>
-        <location line="+158"/>
         <source>%1 element is not allowed inside %2 element if %3 attribute is present.</source>
         <translation type="unfinished"></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 type="unfinished"></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 type="unfinished"></translation>
     </message>
     <message>
-        <location line="-1325"/>
         <source>%1 attribute of %2 element must be %3 or %4.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+36"/>
         <source>%1 attribute of %2 element must have a value of %3.</source>
         <translation type="unfinished"></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 type="unfinished"></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 type="unfinished"></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 type="unfinished"></translation>
     </message>
     <message>
-        <location line="-215"/>
-        <location line="+222"/>
         <source>%1 attribute of %2 element must not be %3.</source>
         <translation type="unfinished"></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 type="unfinished"></translation>
     </message>
     <message>
-        <location line="+187"/>
         <source>Specifying use=&apos;prohibited&apos; inside an attribute group has no effect.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+353"/>
         <source>%1 element must have either %2 or %3 attribute.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+554"/>
         <source>%1 element must have either %2 attribute or %3 or %4 as child element.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+55"/>
         <source>%1 element requires either %2 or %3 attribute.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+19"/>
         <source>Text or entity references not allowed inside %1 element</source>
         <translation type="unfinished">Текст или ссылка на объект недопустимы в качестве содержимого элемента %1</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 type="unfinished"></translation>
     </message>
     <message>
-        <location line="+126"/>
         <source>%1 element is not allowed in this context.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+53"/>
         <source>%1 attribute of %2 element has larger value than %3 attribute.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+25"/>
         <source>Prefix of qualified name %1 is not defined.</source>
         <translation type="unfinished"></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 type="unfinished"></translation>
     </message>
     <message>
-        <location line="+131"/>
         <source>Component with ID %1 has been defined previously.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>Element %1 already defined.</source>
         <translation>Элемент %1 уже определён.</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>Attribute %1 already defined.</source>
         <translation>Атрибут %1 уже определён.</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Type %1 already defined.</source>
         <translation>Тип %1 уже определён.</translation>
     </message>
     <message>
-        <location line="+23"/>
         <source>Attribute group %1 already defined.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>Element group %1 already defined.</source>
         <translation>Группа элементов %1 уже определёна.</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>Notation %1 already defined.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>Identity constraint %1 already defined.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>Duplicated facets in simple type %1.</source>
         <translation type="unfinished"></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 некорректно в соответствии с %2.</translation>
     </message>
     <message>
-        <location line="+167"/>
         <source>String content does not match the length facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>String content does not match the minLength facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>String content does not match the maxLength facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>String content does not match pattern facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>String content is not listed in the enumeration facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>Signed integer content does not match the maxInclusive facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Signed integer content does not match the maxExclusive facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Signed integer content does not match the minInclusive facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Signed integer content does not match the minExclusive facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>Signed integer content is not listed in the enumeration facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>Signed integer content does not match pattern facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Signed integer content does not match in the totalDigits facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>Unsigned integer content does not match the maxInclusive facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Unsigned integer content does not match the maxExclusive facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Unsigned integer content does not match the minInclusive facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Unsigned integer content does not match the minExclusive facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>Unsigned integer content is not listed in the enumeration facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>Unsigned integer content does not match pattern facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Unsigned integer content does not match in the totalDigits facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>Double content does not match the maxInclusive facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Double content does not match the maxExclusive facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Double content does not match the minInclusive facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Double content does not match the minExclusive facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>Double content is not listed in the enumeration facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>Double content does not match pattern facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>Decimal content does not match in the fractionDigits facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Decimal content does not match in the totalDigits facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+14"/>
         <source>Date time content does not match the maxInclusive facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Date time content does not match the maxExclusive facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Date time content does not match the minInclusive facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Date time content does not match the minExclusive facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>Date time content is not listed in the enumeration facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>Date time content does not match pattern facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Duration content does not match the maxInclusive facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Duration content does not match the maxExclusive facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Duration content does not match the minInclusive facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Duration content does not match the minExclusive facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>Duration content is not listed in the enumeration facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>Duration content does not match pattern facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+27"/>
         <source>Boolean content does not match pattern facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>Binary content does not match the length facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Binary content does not match the minLength facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Binary content does not match the maxLength facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>Binary content is not listed in the enumeration facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+27"/>
         <source>Invalid QName content: %1.</source>
         <translation>Некорректное содержимое QName: %1.</translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>QName content is not listed in the enumeration facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>QName content does not match pattern facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+36"/>
         <source>Notation content is not listed in the enumeration facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+19"/>
         <source>List content does not match length facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>List content does not match minLength facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>List content does not match maxLength facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+90"/>
         <source>List content is not listed in the enumeration facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>List content does not match pattern facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+39"/>
         <source>Union content is not listed in the enumeration facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>Union content does not match pattern facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Data of type %1 are not allowed to be empty.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/schema/qxsdvalidatinginstancereader.cpp" line="+160"/>
         <source>Element %1 is missing child element.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+16"/>
         <source>There is one IDREF value with no corresponding ID: %1.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+27"/>
         <source>Loaded schema file is invalid.</source>
         <translation>Загруженный файл схемы некорректен.</translation>
     </message>
     <message>
-        <location line="+16"/>
         <source>%1 contains invalid data.</source>
         <translation>%1 содержит некорректные данные.</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>xsi:schemaLocation namespace %1 has already appeared earlier in the instance document.</source>
         <translation type="unfinished">Пространство имён xsi:schemaLocation %1 уже встречалось ранее в данном документе.</translation>
     </message>
     <message>
-        <location line="+22"/>
         <source>xsi:noNamespaceSchemaLocation cannot appear after the first no-namespace element or attribute.</source>
         <translation type="unfinished">xsi:noNamespaceSchemaLocation не может встречаться после первого не-`namespace` элемента или атрибута.</translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>No schema defined for validation.</source>
         <translation>Схема для проверки не определена.</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>No definition for element %1 available.</source>
         <translation>Отсутствует определение элемента %1.</translation>
     </message>
     <message>
-        <location line="+18"/>
-        <location line="+49"/>
-        <location line="+142"/>
         <source>Specified type %1 is not known to the schema.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-176"/>
         <source>Element %1 is not defined in this scope.</source>
         <translation>Элемент %1 не определён в данном контексте.</translation>
     </message>
     <message>
-        <location line="+43"/>
         <source>Declaration for element %1 does not exist.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+12"/>
         <source>Element %1 contains invalid content.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+73"/>
         <source>Element %1 is declared as abstract.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Element %1 is not nillable.</source>
         <translation>Элемент %1 необнуляемый.</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Attribute %1 contains invalid data: %2</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Element contains content although it is nillable.</source>
         <translation>Элемент необнуляемый, т.к. имеет содержимое.</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Fixed value constraint not allowed if element is nillable.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+230"/>
         <source>Element %1 cannot contain other elements, as it has a fixed content.</source>
         <translation type="unfinished">Элемент %1 не может содержать другие элементы, т.к. имеет статическое содержимое.</translation>
     </message>
     <message>
-        <location line="-198"/>
         <source>Specified type %1 is not validly substitutable with element type %2.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+23"/>
         <source>Complex type %1 is not allowed to be abstract.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+21"/>
         <source>Element %1 contains not allowed attributes.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+6"/>
-        <location line="+97"/>
         <source>Element %1 contains not allowed child element.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-76"/>
-        <location line="+93"/>
         <source>Content of element %1 does not match its type definition: %2.</source>
         <translation type="unfinished"></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 type="unfinished"></translation>
     </message>
     <message>
-        <location line="-73"/>
         <source>Element %1 contains not allowed child content.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+41"/>
         <source>Element %1 contains not allowed text content.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+61"/>
         <source>Element %1 is missing required attribute %2.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+29"/>
         <source>Attribute %1 does not match the attribute wildcard.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Declaration for attribute %1 does not exist.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Element %1 contains two attributes of type %2.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>Attribute %1 contains invalid content.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Element %1 contains unknown attribute %2.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+40"/>
-        <location line="+46"/>
         <source>Content of attribute %1 does not match its type definition: %2.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-38"/>
-        <location line="+46"/>
         <source>Content of attribute %1 does not match defined value constraint.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+88"/>
         <source>Non-unique value found for constraint %1.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+20"/>
         <source>Key constraint %1 contains absent fields.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>Key constraint %1 contains references nillable element %2.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+40"/>
         <source>No referenced value found for key reference %1.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+64"/>
         <source>More than one value found for field %1.</source>
         <translation>Для поля %1 найдено более одного значения.</translation>
     </message>
     <message>
-        <location line="+20"/>
         <source>Field %1 has no simple type.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+73"/>
         <source>ID value &apos;%1&apos; is not unique.</source>
         <translation>Значение ID &quot;%1&quot; неуникально.</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>&apos;%1&apos; attribute contains invalid QName content: %2.</source>
         <translation type="unfinished">Атрибут `%1` имеет некорректное содержимое QName: %2.</translation>
     </message>
--- a/translations/qt_sl.ts	Fri Sep 17 08:34:18 2010 +0300
+++ b/translations/qt_sl.ts	Mon Oct 04 01:19:32 2010 +0300
@@ -1,10 +1,16 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!DOCTYPE TS>
 <TS version="2.0" language="sl">
+    <extra-po-header-po_revision_date>2010-08-29 00:26+0200</extra-po-header-po_revision_date>
+    <extra-po-headers>MIME-Version,Content-Type,Content-Transfer-Encoding,Plural-Forms,X-Language,X-Qt-Contexts,Last-Translator,PO-Revision-Date,Project-Id-Version,Language-Team,X-Generator</extra-po-headers>
+    <extra-po-header-x_generator>Lokalize 1.1</extra-po-header-x_generator>
+    <extra-po-header-language_team>Slovenian &lt;lugos-slo@lugos.si&gt;</extra-po-header-language_team>
+    <extra-po-header-project_id_version></extra-po-header-project_id_version>
+    <extra-po-header_comment># Jure Repinc &lt;jlp@holodeck1.com&gt;, 2010.</extra-po-header_comment>
+    <extra-po-header-last_translator>Jure Repinc &lt;jlp@holodeck1.com&gt;</extra-po-header-last_translator>
 <context>
     <name>CloseButton</name>
     <message>
-        <location filename="../src/gui/widgets/qtabbar.cpp" line="+2245"/>
         <source>Close Tab</source>
         <translation>Zapri zavihek</translation>
     </message>
@@ -12,45 +18,68 @@
 <context>
     <name>FakeReply</name>
     <message>
-        <location filename="../src/3rdparty/webkit/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp" line="+2193"/>
         <source>Fake error !</source>
         <translation>Lažna napaka.</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Invalid URL</source>
         <translation>Neveljaven URL</translation>
     </message>
 </context>
 <context>
+    <name>MAC_APPLICATION_MENU</name>
+    <message>
+        <source>Services</source>
+        <translation>Storitve</translation>
+    </message>
+    <message>
+        <source>Hide %1</source>
+        <translation>Skrij %1</translation>
+    </message>
+    <message>
+        <source>Hide Others</source>
+        <translation>Skrij druge</translation>
+    </message>
+    <message>
+        <source>Show All</source>
+        <translation>Prikaži vse</translation>
+    </message>
+    <message>
+        <source>Preferences...</source>
+        <translation>Nastavitve ...</translation>
+    </message>
+    <message>
+        <source>Quit %1</source>
+        <translation>Končaj %1</translation>
+    </message>
+    <message>
+        <source>About %1</source>
+        <translation>O %1</translation>
+    </message>
+</context>
+<context>
     <name>Phonon::</name>
     <message>
-        <location filename="../src/3rdparty/phonon/phonon/phononnamespace.cpp" line="+55"/>
         <source>Notifications</source>
         <translation>Obvestila</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Music</source>
         <translation>Glasba</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Video</source>
         <translation>Video</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Communication</source>
         <translation>Komunikacija</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Games</source>
         <translation>Igre</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Accessibility</source>
         <translation>Dostopnost</translation>
     </message>
@@ -58,32 +87,31 @@
 <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;Naprava za predvajanje zvoka &lt;b&gt;%1&lt;/b&gt; ne deluje.&lt;br/&gt;Preklapljanje na &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;Preklapljanje na napravo za predvajanje zvoka &lt;b&gt;%1&lt;/b&gt;,&lt;br/&gt;ki je ravnokar postala dostopna in ima višjo preferenco.&lt;/html&gt;</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Revert back to device &apos;%1&apos;</source>
         <translation>Povrni nazaj na napravo »%1«</translation>
     </message>
+    <message>
+        <source>&lt;html&gt;Switching to the audio playback device &lt;b&gt;%1&lt;/b&gt;&lt;br/&gt;which has higher preference or is specifically configured for this stream.&lt;/html&gt;</source>
+        <translation>&lt;html&gt;Preklapljanje na napravo za predvajanje zvoka &lt;b&gt;%1&lt;/b&gt;,&lt;br/&gt;ki ima višjo preferenco ali pa je posebej nastavljena za ta tok.&lt;/html&gt;</translation>
+    </message>
 </context>
 <context>
     <name>Phonon::Gstreamer::Backend</name>
     <message>
-        <location filename="../src/3rdparty/phonon/gstreamer/backend.cpp" line="+171"/>
         <source>Warning: You do not seem to have the package gstreamer0.10-plugins-good installed.
           Some video features have been disabled.</source>
         <translation>Opozorilo: kot kaže paket gstreamer0.10-plugins-good ni nameščen.
           Nekatere možnosti predvajanja videa so onemogočene.</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>Opozorilo: kot kaže osnovni vstavki za GStreamer niso nameščeni.
@@ -93,10 +121,9 @@
 <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 
+Check your GStreamer installation and make sure you 
 have libgstreamer-plugins-base installed.</source>
         <translation>Ni moč začeti predvajanja.
 
@@ -104,39 +131,34 @@
 da je nameščen paket libgstreamer-plugins-base.</translation>
     </message>
     <message>
-        <location line="+113"/>
+        <source>Missing codec helper script assistant.</source>
+        <translation>Manjka pomožni skript pomočnika za kodeke.</translation>
+    </message>
+    <message>
+        <source>Plugin codec installation failed for codec: %0</source>
+        <translation>Namesitev vstavka s kodekom ni uspela: %0</translation>
+    </message>
+    <message>
         <source>A required codec is missing. You need to install the following codec(s) to play this content: %0</source>
         <translation>Manjka potreben kodek. Za predvajanje te vsebine morate namestiti sledeče kodeke: %0</translation>
     </message>
     <message>
-        <location line="+681"/>
-        <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>Ni moč odpreti večpredstavnostnega vira.</translation>
     </message>
     <message>
-        <location line="-420"/>
         <source>Invalid source type.</source>
         <translation>Neveljavna vrsta vira.</translation>
     </message>
     <message>
-        <location line="+394"/>
         <source>Could not locate media source.</source>
         <translation>Ni moč najti večpredstavnostnega vira.</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>Could not open audio device. The device is already in use.</source>
         <translation>Ni moč odpreti zvočne naprave. Naprava je že v uporabi.</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>Could not decode media source.</source>
         <translation>Ni moč dekodirati večpredstavnostnega vira.</translation>
     </message>
@@ -144,82 +166,323 @@
 <context>
     <name>Phonon::MMF</name>
     <message>
-        <location filename="../src/3rdparty/phonon/mmf/audiooutput.cpp" line="+108"/>
         <source>Audio Output</source>
         <translation>Predvajanje zvoka</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>The audio output device</source>
         <translation>Naprava za predvajanje zvoka</translation>
     </message>
+    <message>
+        <source>No error</source>
+        <translation>Brez napake</translation>
+    </message>
+    <message>
+        <source>Not found</source>
+        <translation>Ni najdeno</translation>
+    </message>
+    <message>
+        <source>Out of memory</source>
+        <translation>Zmanjkalo pomnilnika</translation>
+    </message>
+    <message>
+        <source>Not supported</source>
+        <translation>Ni podprto</translation>
+    </message>
+    <message>
+        <source>Overflow</source>
+        <translation>Prekoračitev zgornje meje</translation>
+    </message>
+    <message>
+        <source>Underflow</source>
+        <translation>Prekoračitev spodnje meje</translation>
+    </message>
+    <message>
+        <source>Already exists</source>
+        <translation>Že obstaja</translation>
+    </message>
+    <message>
+        <source>Path not found</source>
+        <translation>Pot ni najdena</translation>
+    </message>
+    <message>
+        <source>In use</source>
+        <translation>V uporabi</translation>
+    </message>
+    <message>
+        <source>Not ready</source>
+        <translation>Ni pripravljeno</translation>
+    </message>
+    <message>
+        <source>Access denied</source>
+        <translation>Dostop zavrnjen</translation>
+    </message>
+    <message>
+        <source>Could not connect</source>
+        <translation>Povezava ni mogoča</translation>
+    </message>
+    <message>
+        <source>Disconnected</source>
+        <translation>Povezava prekinjena</translation>
+    </message>
+    <message>
+        <source>Permission denied</source>
+        <translation>Ni dovoljenja</translation>
+    </message>
+    <message>
+        <source>Insufficient bandwidth</source>
+        <translation>Pasovna širina ni zadostna</translation>
+    </message>
+    <message>
+        <source>Network unavailable</source>
+        <translation>Omrežje ni na voljo</translation>
+    </message>
+    <message>
+        <source>Network communication error</source>
+        <translation>Napaka komunikacije prek omrežja</translation>
+    </message>
+    <message>
+        <source>Streaming not supported</source>
+        <translation>Pretakanje ni podprto</translation>
+    </message>
+    <message>
+        <source>Server alert</source>
+        <translation>Opozorilo strežnika</translation>
+    </message>
+    <message>
+        <source>Invalid protocol</source>
+        <translation>Neveljaven protokol</translation>
+    </message>
+    <message>
+        <source>Invalid URL</source>
+        <translation>Neveljaven URL</translation>
+    </message>
+    <message>
+        <source>Multicast error</source>
+        <translation>Napaka oddajanja večim</translation>
+    </message>
+    <message>
+        <source>Proxy server error</source>
+        <translation>Napaka posredniškega strežnika</translation>
+    </message>
+    <message>
+        <source>Proxy server not supported</source>
+        <translation>Posredniški strežnik ni podprt</translation>
+    </message>
+    <message>
+        <source>Audio output error</source>
+        <translation>Napaka predvajanja zvoka</translation>
+    </message>
+    <message>
+        <source>Video output error</source>
+        <translation>Napaka prevajanja videa</translation>
+    </message>
+    <message>
+        <source>Decoder error</source>
+        <translation>Napaka dekodirnika</translation>
+    </message>
+    <message>
+        <source>Audio or video components could not be played</source>
+        <translation>Zvočne ali video komponente ni bilo moč predvajati</translation>
+    </message>
+    <message>
+        <source>DRM error</source>
+        <translation>Napaka upravljanja z omejitvami</translation>
+    </message>
+    <message>
+        <source>Unknown error (%1)</source>
+        <translation>Neznana napaka (%1)</translation>
+    </message>
+</context>
+<context>
+    <name>Phonon::MMF::AbstractMediaPlayer</name>
+    <message>
+        <source>Not ready to play</source>
+        <translation>Ni pripravljen na predvajanje</translation>
+    </message>
+    <message>
+        <source>Error opening file</source>
+        <translation>Napaka pri odpiranju datoteke</translation>
+    </message>
+    <message>
+        <source>Error opening URL</source>
+        <translation>Napaka pri odpiranju URL-ja</translation>
+    </message>
+    <message>
+        <source>Error opening resource</source>
+        <translation>Napaka pri odpiranju vira</translation>
+    </message>
+    <message>
+        <source>Error opening source: resource not opened</source>
+        <translation>Napaka pri odporanju vira: vir ni bil odprt</translation>
+    </message>
+    <message>
+        <source>Setting volume failed</source>
+        <translation>Nastavljanje glasnosti ni uspelo</translation>
+    </message>
+    <message>
+        <source>Loading clip failed</source>
+        <translation>Nalaganje posnetka ni uspelo</translation>
+    </message>
+    <message>
+        <source>Playback complete</source>
+        <translation>Predvajanje je zaključeno</translation>
+    </message>
+</context>
+<context>
+    <name>Phonon::MMF::AbstractVideoPlayer</name>
+    <message>
+        <source>Pause failed</source>
+        <translation>Prekinitev ni uspela</translation>
+    </message>
+    <message>
+        <source>Seek failed</source>
+        <translation>Pomik ni uspel</translation>
+    </message>
+    <message>
+        <source>Getting position failed</source>
+        <translation>Pridobivanje položaja ni uspelo</translation>
+    </message>
+    <message>
+        <source>Opening clip failed</source>
+        <translation>Odpiranje posnetka ni uspelo</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>Frekvenčni pas, %1 Hz</translation>
+        <source>%1 Hz</source>
+        <translation>%1 Hz</translation>
+    </message>
+</context>
+<context>
+    <name>Phonon::MMF::AudioPlayer</name>
+    <message>
+        <source>Getting position failed</source>
+        <translation>Pridobivanje položaja ni uspelo</translation>
+    </message>
+</context>
+<context>
+    <name>Phonon::MMF::DsaVideoPlayer</name>
+    <message>
+        <source>Video display error</source>
+        <translation>Napaka prikaza videa</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>izenačevalnik zvoka</translation>
-    </message>
-    <message>
-        <location line="+2"/>
-        <source>Bass boost</source>
-        <translation>Ojačanje basov</translation>
-    </message>
-    <message>
-        <location line="+2"/>
-        <source>Distance Attenuation</source>
-        <translation>Utišanje zaradi razdalje</translation>
-    </message>
-    <message>
-        <location line="+2"/>
-        <location line="+2"/>
-        <source>Environmental Reverb</source>
-        <translation>Okoljsko odmevanje</translation>
-    </message>
-    <message>
-        <location line="+2"/>
-        <source>Loudness</source>
-        <translation>Glasnost</translation>
-    </message>
-    <message>
-        <location line="+2"/>
-        <source>Source Orientation</source>
-        <translation>Usmerjenost vira</translation>
-    </message>
-    <message>
-        <location line="+2"/>
-        <source>Stereo Widening</source>
-        <translation>Razširitev sterea</translation>
+        <source>Enabled</source>
+        <translation>Omogočeno</translation>
+    </message>
+</context>
+<context>
+    <name>Phonon::MMF::EnvironmentalReverb</name>
+    <message>
+        <source>Decay HF ratio (%)</source>
+        <extracomment>DecayHFRatio: Ratio of high-frequency decay time to the value specified by DecayTime.
+</extracomment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Decay time (ms)</source>
+        <extracomment>DecayTime: Time over which reverberation is diminished.
+</extracomment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Density (%)</source>
+        <extracomment>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.
+</extracomment>
+        <translation>Gostota (%)</translation>
+    </message>
+    <message>
+        <source>Diffusion (%)</source>
+        <extracomment>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.
+</extracomment>
+        <translation>Razpršitev (%)</translation>
+    </message>
+    <message>
+        <source>Reflections delay (ms)</source>
+        <extracomment>ReflectionsDelay: Amount of delay between the arrival the direct path from the source and the arrival of the first reflection.
+</extracomment>
+        <translation>Zamik odbojev (ms)</translation>
+    </message>
+    <message>
+        <source>Reflections level (mB)</source>
+        <extracomment>ReflectionsLevel: Amplitude of reflections. This value is corrected by the RoomLevel to give the final reflection amplitude.
+</extracomment>
+        <translation>Glasnost odbojev (mB)</translation>
+    </message>
+    <message>
+        <source>Reverb delay (ms)</source>
+        <extracomment>ReverbDelay: Amount of time between arrival of the first reflection and start of the late reverberation.
+</extracomment>
+        <translation>Zamik odmeva (ms)</translation>
+    </message>
+    <message>
+        <source>Reverb level (mB)</source>
+        <extracomment>ReverbLevel Amplitude of reverberations. This value is corrected by the RoomLevel to give the final reverberation amplitude.
+</extracomment>
+        <translation>Glasnost odmeva (ms)</translation>
+    </message>
+    <message>
+        <source>Room HF level</source>
+        <extracomment>RoomHFLevel: Amplitude of low-pass filter used to attenuate the high frequency component of reflected sound.
+</extracomment>
+        <translation>VF glasnost prostora</translation>
+    </message>
+    <message>
+        <source>Room level (mB)</source>
+        <extracomment>RoomLevel: Master volume control for all reflected sound.
+</extracomment>
+        <translation>Glasnost prostora (mB)</translation>
+    </message>
+</context>
+<context>
+    <name>Phonon::MMF::MediaObject</name>
+    <message>
+        <source>Error opening source: type not supported</source>
+        <translation>Napaka pri odpiranju vira: vrsta ni podprta</translation>
+    </message>
+    <message>
+        <source>Error opening source: resource is compressed</source>
+        <translation>Napaka pri odporanju vira: vir je stisnjen</translation>
+    </message>
+    <message>
+        <source>Error opening source: resource not valid</source>
+        <translation>Napaka pri odporanju vira: vir ni veljaven</translation>
+    </message>
+    <message>
+        <source>Error opening source: media type could not be determined</source>
+        <translation>Napaka pri odpiranju vira: ni bilo moč ugotoviti vrste večpredstavnostne datoteke</translation>
+    </message>
+</context>
+<context>
+    <name>Phonon::MMF::StereoWidening</name>
+    <message>
+        <source>Level (%)</source>
+        <translation>Stopnja (%)</translation>
+    </message>
+</context>
+<context>
+    <name>Phonon::MMF::SurfaceVideoPlayer</name>
+    <message>
+        <source>Video display error</source>
+        <translation>Napaka prikaza videa</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>Glasnost: %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>Uporabite ta drsnik, da nastavite glasnost. Skrajno levi položaj je 0 %, skrajno desni pa %1 %.</translation>
     </message>
     <message>
-        <location line="+67"/>
         <source>Muted</source>
         <translation>Utišan</translation>
     </message>
@@ -227,12 +490,10 @@
 <context>
     <name>Q3Accel</name>
     <message>
-        <location filename="../src/qt3support/other/q3accel.cpp" line="+481"/>
         <source>%1, %2 not defined</source>
         <translation>%1, %2 ni definiran</translation>
     </message>
     <message>
-        <location line="+36"/>
         <source>Ambiguous %1 not handled</source>
         <translation>Brez rokovanja z dvoumnim %1</translation>
     </message>
@@ -240,27 +501,22 @@
 <context>
     <name>Q3DataTable</name>
     <message>
-        <location filename="../src/qt3support/sql/q3datatable.cpp" line="+285"/>
         <source>True</source>
         <translation>Pravilno</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>False</source>
         <translation>Napačno</translation>
     </message>
     <message>
-        <location line="+505"/>
         <source>Insert</source>
         <translation>Vstavi</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Update</source>
         <translation>Posodobi</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Delete</source>
         <translation>Izbriši</translation>
     </message>
@@ -268,313 +524,238 @@
 <context>
     <name>Q3FileDialog</name>
     <message>
-        <location filename="../src/qt3support/dialogs/q3filedialog.cpp" line="+829"/>
         <source>Copy or Move a File</source>
         <translation>Skopiraj ali premakni datoteko</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Read: %1</source>
         <translation>Branje: %1</translation>
     </message>
     <message>
-        <location line="+6"/>
-        <location line="+30"/>
         <source>Write: %1</source>
         <translation>Pisanje: %1</translation>
     </message>
     <message>
-        <location line="-22"/>
-        <location line="+1579"/>
         <source>Cancel</source>
         <translation>Prekliči</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>Vse datoteke (*)</translation>
     </message>
     <message>
-        <location line="-2085"/>
         <source>Name</source>
         <translation>Ime</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Size</source>
         <translation>Velikost</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Type</source>
         <translation>Vrsta</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Date</source>
         <translation>Datum</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Attributes</source>
         <translation>Lastnosti</translation>
     </message>
     <message>
-        <location line="+35"/>
-        <location line="+2027"/>
         <source>&amp;OK</source>
         <translation>&amp;V redu</translation>
     </message>
     <message>
-        <location line="-1987"/>
         <source>Look &amp;in:</source>
         <translation>Išči &amp;v:</translation>
     </message>
     <message>
-        <location line="+1"/>
-        <location line="+1977"/>
-        <location line="+16"/>
         <source>File &amp;name:</source>
         <translation>Ime &amp;datoteke:</translation>
     </message>
     <message>
-        <location line="-1992"/>
         <source>File &amp;type:</source>
         <translation>&amp;Vrsta datoteke:</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Back</source>
         <translation>Nazaj</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>One directory up</source>
         <translation>Za eno mapo navzgor</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Create New Folder</source>
         <translation>Ustvari novo mapo</translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>List View</source>
         <translation>Prikaz seznama</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Detail View</source>
         <translation>Prikaz podrobnosti</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Preview File Info</source>
         <translation>Podatki ogleda datoteke</translation>
     </message>
     <message>
-        <location line="+19"/>
         <source>Preview File Contents</source>
         <translation>Vsebina ogleda datoteke</translation>
     </message>
     <message>
-        <location line="+88"/>
         <source>Read-write</source>
         <translation>Branje in pisanje</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Read-only</source>
         <translation>Samo za branje</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Write-only</source>
         <translation>Samo za pisanje</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Inaccessible</source>
         <translation>Nedostopno</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Symlink to File</source>
         <translation>Simbolna povezava do datoteke</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Symlink to Directory</source>
         <translation>Simbolna povezava do mape</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Symlink to Special</source>
         <translation>Simbolna povezava do posebnega</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>File</source>
         <translation>Datoteka</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Dir</source>
         <translation>Mapa</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Special</source>
         <translation>Posebno</translation>
     </message>
     <message>
-        <location line="+704"/>
-        <location line="+1999"/>
-        <location filename="../src/qt3support/dialogs/q3filedialog_win.cpp" line="+209"/>
         <source>Open</source>
         <translation>Odpri</translation>
     </message>
     <message>
-        <location line="-1889"/>
-        <location filename="../src/qt3support/dialogs/q3filedialog_win.cpp" line="+71"/>
         <source>Save As</source>
         <translation>Shrani kot</translation>
     </message>
     <message>
-        <location line="+642"/>
-        <location line="+5"/>
-        <location line="+355"/>
         <source>&amp;Open</source>
         <translation>&amp;Odpri</translation>
     </message>
     <message>
-        <location line="-357"/>
-        <location line="+341"/>
         <source>&amp;Save</source>
         <translation>&amp;Shrani</translation>
     </message>
     <message>
-        <location line="-334"/>
         <source>&amp;Rename</source>
         <translation>Pre&amp;imenuj</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Delete</source>
         <translation>&amp;Izbriši</translation>
     </message>
     <message>
-        <location line="+20"/>
         <source>R&amp;eload</source>
         <translation>&amp;Znova naloži</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Sort by &amp;Name</source>
         <translation>Razvrsti po &amp;imenu</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Sort by &amp;Size</source>
         <translation>Razvrsti po &amp;velikosti</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Sort by &amp;Date</source>
         <translation>Razvrsti po &amp;datumu</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>&amp;Unsorted</source>
         <translation>&amp;Brez razvrščanja</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Sort</source>
         <translation>Razvrsti</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Show &amp;hidden files</source>
         <translation>Prikaži &amp;skrite datoteke</translation>
     </message>
     <message>
-        <location line="+31"/>
         <source>the file</source>
         <translation>datoteko</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>the directory</source>
         <translation>mapo</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>the symlink</source>
         <translation>simbolno povezavo</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Delete %1</source>
         <translation>Izbriši %1</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;Ali res želite izbrisati %1 »%2«?&lt;/qt&gt;</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>&amp;Yes</source>
         <translation>&amp;Da</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>&amp;No</source>
         <translation>&amp;Ne</translation>
     </message>
     <message>
-        <location line="+36"/>
         <source>New Folder 1</source>
         <translation>Nova mapa 1</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>New Folder</source>
         <translation>Nova mapa</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>New Folder %1</source>
         <translation>Nova mapa %1</translation>
     </message>
     <message>
-        <location line="+98"/>
         <source>Find Directory</source>
         <translation>Najdi mapo</translation>
     </message>
     <message>
-        <location line="+5"/>
-        <location line="+108"/>
         <source>Directories</source>
         <translation>Mape</translation>
     </message>
     <message>
-        <location line="-2"/>
         <source>Directory:</source>
         <translation>Mapa:</translation>
     </message>
     <message>
-        <location line="+40"/>
-        <location line="+1009"/>
         <source>Error</source>
         <translation>Napaka</translation>
     </message>
     <message>
-        <location line="-1008"/>
         <source>%1
 File not found.
 Check path and filename.</source>
@@ -583,17 +764,14 @@
 Preverite pot in ime datoteke.</translation>
     </message>
     <message>
-        <location filename="../src/qt3support/dialogs/q3filedialog_win.cpp" line="-191"/>
         <source>All Files (*.*)</source>
         <translation>Vse datoteke (*.*)</translation>
     </message>
     <message>
-        <location line="+264"/>
         <source>Open </source>
         <translation>Odpri </translation>
     </message>
     <message>
-        <location line="+107"/>
         <source>Select a Directory</source>
         <translation>Izberite mapo</translation>
     </message>
@@ -601,29 +779,24 @@
 <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>Ni bilo moč brati mape
 %1</translation>
     </message>
     <message>
-        <location line="+45"/>
         <source>Could not create directory
 %1</source>
         <translation>Ni bilo moč ustvariti mape
 %1</translation>
     </message>
     <message>
-        <location line="+34"/>
         <source>Could not remove file or directory
 %1</source>
         <translation>Ni bilo moč odstraniti datoteke ali mape
 %1</translation>
     </message>
     <message>
-        <location line="+27"/>
         <source>Could not rename
 %1
 to
@@ -634,14 +807,12 @@
 %2</translation>
     </message>
     <message>
-        <location line="+25"/>
         <source>Could not open
 %1</source>
         <translation>Ni moč odpreti
 %1</translation>
     </message>
     <message>
-        <location line="+68"/>
         <source>Could not write
 %1</source>
         <translation>Ni bilo moč zapisati
@@ -651,12 +822,10 @@
 <context>
     <name>Q3MainWindow</name>
     <message>
-        <location filename="../src/qt3support/widgets/q3mainwindow.cpp" line="+2051"/>
         <source>Line up</source>
         <translation>V vrsto</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Customize...</source>
         <translation>Prilagodi ...</translation>
     </message>
@@ -664,7 +833,6 @@
 <context>
     <name>Q3NetworkProtocol</name>
     <message>
-        <location filename="../src/qt3support/network/q3networkprotocol.cpp" line="+854"/>
         <source>Operation stopped by the user</source>
         <translation>Dejanje zaustavil uporabnik</translation>
     </message>
@@ -672,8 +840,6 @@
 <context>
     <name>Q3ProgressDialog</name>
     <message>
-        <location filename="../src/qt3support/dialogs/q3progressdialog.cpp" line="+224"/>
-        <location line="+61"/>
         <source>Cancel</source>
         <translation>Prekliči</translation>
     </message>
@@ -681,28 +847,22 @@
 <context>
     <name>Q3TabDialog</name>
     <message>
-        <location filename="../src/qt3support/dialogs/q3tabdialog.cpp" line="+190"/>
-        <location line="+824"/>
         <source>OK</source>
         <translation>V redu</translation>
     </message>
     <message>
-        <location line="-366"/>
         <source>Apply</source>
         <translation>Uveljavi</translation>
     </message>
     <message>
-        <location line="+43"/>
         <source>Help</source>
         <translation>Pomoč</translation>
     </message>
     <message>
-        <location line="+45"/>
         <source>Defaults</source>
         <translation>Privzetosti</translation>
     </message>
     <message>
-        <location line="+50"/>
         <source>Cancel</source>
         <translation>Prekliči</translation>
     </message>
@@ -710,38 +870,30 @@
 <context>
     <name>Q3TextEdit</name>
     <message>
-        <location filename="../src/qt3support/text/q3textedit.cpp" line="+5429"/>
         <source>&amp;Undo</source>
         <translation>&amp;Razveljavi</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Redo</source>
         <translation>&amp;Uveljavi</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Cu&amp;t</source>
         <translation>&amp;Izreži</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Copy</source>
         <translation>S&amp;kopiraj</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>&amp;Paste</source>
         <translation>Pri&amp;lepi</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Clear</source>
         <translation>Počisti</translation>
     </message>
     <message>
-        <location line="+4"/>
-        <location line="+2"/>
         <source>Select All</source>
         <translation>Izberi vse</translation>
     </message>
@@ -749,67 +901,54 @@
 <context>
     <name>Q3TitleBar</name>
     <message>
-        <location filename="../src/plugins/accessible/compat/q3complexwidgets.cpp" line="+246"/>
         <source>System</source>
         <translation>Sistem</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Restore up</source>
         <translation>Obnovi</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Minimize</source>
         <translation>Pomanjšaj</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Restore down</source>
         <translation>Obnovi</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Maximize</source>
         <translation>Razpni</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Close</source>
         <translation>Zapri</translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>Contains commands to manipulate the window</source>
         <translation>Vsebuje ukaze za upravljanje z oknom</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Puts a minimized window back to normal</source>
         <translation>Obnovi pomanjšano okno na običajno velikost</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Moves the window out of the way</source>
         <translation>Umakne okno, da ni v napoto</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Puts a maximized window back to normal</source>
         <translation>Obnovi razpeto okno</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Makes the window full screen</source>
         <translation>Razpne okno čez ves zaslon</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Closes the window</source>
         <translation>Zapre okno</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Displays the name of the window and contains controls to manipulate it</source>
         <translation>Prikazuje ime okna in vsebuje gumbe za nadzor okna</translation>
     </message>
@@ -817,7 +956,6 @@
 <context>
     <name>Q3ToolBar</name>
     <message>
-        <location filename="../src/qt3support/widgets/q3toolbar.cpp" line="+692"/>
         <source>More...</source>
         <translation>Več ...</translation>
     </message>
@@ -825,51 +963,38 @@
 <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>Protokol »%1« ni podprt.</translation>
     </message>
     <message>
-        <location line="-260"/>
         <source>The protocol `%1&apos; does not support listing directories</source>
         <translation>Protokol »%1« ne podpira izpisa seznama map.</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>The protocol `%1&apos; does not support creating new directories</source>
         <translation>Protokol »%1« ne podpira ustvarjanja novih map.</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>The protocol `%1&apos; does not support removing files or directories</source>
         <translation>Protokol »%1« ne podpira odstranjevanja datotek ali map.</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>The protocol `%1&apos; does not support renaming files or directories</source>
         <translation>Protokol »%1« ne podpira preimenovanja datotek ali map.</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>The protocol `%1&apos; does not support getting files</source>
         <translation>Protokol »%1« ne podpira prejemanja datotek.</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>The protocol `%1&apos; does not support putting files</source>
         <translation>Protokol »%1« ne podpira pošiljanja datotek.</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>Protokol »%1« ne podpira kopiranja ali premikanja datotek ali map.</translation>
     </message>
     <message>
-        <location line="+237"/>
-        <location line="+1"/>
         <source>(unknown)</source>
         <translation>(neznano)</translation>
     </message>
@@ -877,27 +1002,22 @@
 <context>
     <name>Q3Wizard</name>
     <message>
-        <location filename="../src/qt3support/dialogs/q3wizard.cpp" line="+177"/>
         <source>&amp;Cancel</source>
         <translation>&amp;Prekliči</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&lt; &amp;Back</source>
         <translation>&lt; Na&amp;zaj</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Next &gt;</source>
         <translation>&amp;Naprej &gt;</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Finish</source>
         <translation>&amp;Končaj</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Help</source>
         <translation>&amp;Pomoč</translation>
     </message>
@@ -905,44 +1025,30 @@
 <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>Ni moč najti gostitelja</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>Povezava je zavrnjena</translation>
     </message>
     <message>
-        <location line="+142"/>
         <source>Connection timed out</source>
         <translation>Čas za povezavo je potekel</translation>
     </message>
     <message>
-        <location line="-548"/>
-        <location line="+789"/>
-        <location line="+208"/>
         <source>Operation on socket is not supported</source>
         <translation>Dejanje na vtičnici ni podprto</translation>
     </message>
     <message>
-        <location line="+200"/>
         <source>Socket operation timed out</source>
         <translation>Čas za dejanje na vtičnici je potekel</translation>
     </message>
     <message>
-        <location line="+380"/>
         <source>Socket is not connected</source>
         <translation>Vtičnica ni povezana.</translation>
     </message>
     <message>
-        <location filename="../src/network/socket/qsocks5socketengine.cpp" line="-8"/>
         <source>Network unreachable</source>
         <translation>Omrežje ni dosegljivo</translation>
     </message>
@@ -950,17 +1056,14 @@
 <context>
     <name>QAbstractSpinBox</name>
     <message>
-        <location filename="../src/gui/widgets/qabstractspinbox.cpp" line="+1217"/>
         <source>&amp;Step up</source>
         <translation>Korak &amp;gor</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Step &amp;down</source>
         <translation>Korak &amp;dol</translation>
     </message>
     <message>
-        <location line="-8"/>
         <source>&amp;Select All</source>
         <translation>Izberi &amp;vse</translation>
     </message>
@@ -968,7 +1071,6 @@
 <context>
     <name>QAccessibleButton</name>
     <message>
-        <location filename="../src/plugins/accessible/widgets/simplewidgets.cpp" line="+250"/>
         <source>Press</source>
         <translation>Pritisni</translation>
     </message>
@@ -976,28 +1078,23 @@
 <context>
     <name>QApplication</name>
     <message>
-        <location filename="../src/gui/accessible/qaccessibleobject.cpp" line="+376"/>
         <source>Activate</source>
         <translation>Aktiviraj</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>Izvršljiva datoteka »%1« potrebuje Qt %2, najden pa je bil Qt %3.</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Incompatible Qt Library Error</source>
         <translation>Napaka nezdružljivosti knjižnice Qt</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>
     <message>
-        <location filename="../src/gui/accessible/qaccessibleobject.cpp" line="+2"/>
         <source>Activates the program&apos;s main window</source>
         <translation>Aktivira glavno okno programa</translation>
     </message>
@@ -1005,22 +1102,18 @@
 <context>
     <name>QAxSelect</name>
     <message>
-        <location filename="../src/activeqt/container/qaxselect.ui"/>
         <source>Select ActiveX Control</source>
         <translation>Izberite kontrolnik ActiveX</translation>
     </message>
     <message>
-        <location/>
         <source>OK</source>
         <translation>V redu</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Cancel</source>
         <translation>&amp;Prekliči</translation>
     </message>
     <message>
-        <location/>
         <source>COM &amp;Object:</source>
         <translation>&amp;Objekt COM:</translation>
     </message>
@@ -1028,17 +1121,14 @@
 <context>
     <name>QCheckBox</name>
     <message>
-        <location filename="../src/plugins/accessible/widgets/simplewidgets.cpp" line="-136"/>
         <source>Uncheck</source>
         <translation>Odznači</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Check</source>
         <translation>Označi</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Toggle</source>
         <translation>Preklopi</translation>
     </message>
@@ -1046,57 +1136,46 @@
 <context>
     <name>QColorDialog</name>
     <message>
-        <location filename="../src/gui/dialogs/qcolordialog.cpp" line="+1349"/>
         <source>Hu&amp;e:</source>
         <translation>&amp;Odtenek:</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Sat:</source>
         <translation>&amp;Zasičenost:</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Val:</source>
         <translation>&amp;Vrednost:</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Red:</source>
         <translation>&amp;Rdeča:</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Green:</source>
         <translation>&amp;Zelena:</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Bl&amp;ue:</source>
         <translation>&amp;Modra:</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>A&amp;lpha channel:</source>
         <translation>Kanal &amp;alfa:</translation>
     </message>
     <message>
-        <location line="+101"/>
         <source>Select Color</source>
         <translation>Izberite barvo</translation>
     </message>
     <message>
-        <location line="+180"/>
         <source>&amp;Basic colors</source>
         <translation>&amp;Osnovne barve</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Custom colors</source>
         <translation>Barve po &amp;meri</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Add to Custom Colors</source>
         <translation>&amp;Dodaj lastnim barvam</translation>
     </message>
@@ -1104,23 +1183,18 @@
 <context>
     <name>QComboBox</name>
     <message>
-        <location filename="../src/plugins/accessible/widgets/complexwidgets.cpp" line="+1771"/>
-        <location line="+65"/>
         <source>Open</source>
         <translation>Odpri</translation>
     </message>
     <message>
-        <location filename="../src/gui/itemviews/qitemeditorfactory.cpp" line="+556"/>
         <source>False</source>
         <translation>Napačno</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>True</source>
         <translation>Pravilno</translation>
     </message>
     <message>
-        <location filename="../src/plugins/accessible/widgets/complexwidgets.cpp" line="+0"/>
         <source>Close</source>
         <translation>Zapri</translation>
     </message>
@@ -1128,43 +1202,36 @@
 <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: ključ je prazen</translation>
     </message>
     <message>
-        <location line="+12"/>
         <source>%1: unable to make key</source>
         <comment>QSystemSemaphore</comment>
         <translation>%1: ni moč ustvariti ključa</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>%1: ftok failed</source>
         <comment>QSystemSemaphore</comment>
         <translation>%1: funkcija ftok ni uspela</translation>
     </message>
     <message>
-        <location filename="../src/corelib/kernel/qsystemsemaphore_symbian.cpp" line="+65"/>
         <source>%1: already exists</source>
         <comment>QSystemSemaphore</comment>
         <translation>%1: že obstaja</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>%1: does not exist</source>
         <comment>QSystemSemaphore</comment>
         <translation>%1: ne obstaja</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>%1: out of resources</source>
         <comment>QSystemSemaphore</comment>
         <translation>%1: zmanjkalo je virov</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>%1: unknown error %2</source>
         <comment>QSystemSemaphore</comment>
         <translation>%1: neznana napaka %2</translation>
@@ -1173,22 +1240,18 @@
 <context>
     <name>QDB2Driver</name>
     <message>
-        <location filename="../src/sql/drivers/db2/qsql_db2.cpp" line="+1254"/>
         <source>Unable to connect</source>
         <translation>Ni moč vzpostaviti povezave</translation>
     </message>
     <message>
-        <location line="+298"/>
         <source>Unable to commit transaction</source>
         <translation>Ni moč udejaniti transakcije</translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>Unable to rollback transaction</source>
         <translation>Ni moč razveljaviti transakcije</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Unable to set autocommit</source>
         <translation>Ni moč nastaviti samodejnega udejanjanja</translation>
     </message>
@@ -1196,33 +1259,26 @@
 <context>
     <name>QDB2Result</name>
     <message>
-        <location line="-1031"/>
-        <location line="+240"/>
         <source>Unable to execute statement</source>
         <translation>Ni moč izvesti izjave</translation>
     </message>
     <message>
-        <location line="-203"/>
         <source>Unable to prepare statement</source>
         <translation>Ni moč pripraviti izjave</translation>
     </message>
     <message>
-        <location line="+193"/>
         <source>Unable to bind variable</source>
         <translation>Ni moč prikleniti spremenljivke</translation>
     </message>
     <message>
-        <location line="+89"/>
         <source>Unable to fetch record %1</source>
         <translation>Ni moč pridobiti zapisa %1</translation>
     </message>
     <message>
-        <location line="+19"/>
         <source>Unable to fetch next</source>
         <translation>Ni moč pridobiti sledečega</translation>
     </message>
     <message>
-        <location line="+21"/>
         <source>Unable to fetch first</source>
         <translation>Ni moč pridobiti prvega</translation>
     </message>
@@ -1230,40 +1286,910 @@
 <context>
     <name>QDateTimeEdit</name>
     <message>
-        <location filename="../src/gui/widgets/qdatetimeedit.cpp" line="+2287"/>
         <source>AM</source>
         <translation>dop.</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>am</source>
         <translation>dop.</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>PM</source>
         <translation>pop.</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>pm</source>
         <translation>pop.</translation>
     </message>
 </context>
 <context>
+    <name>QDeclarativeAbstractAnimation</name>
+    <message>
+        <source>Cannot animate non-existent property &quot;%1&quot;</source>
+        <translation>Neobstoječe lastnosti »%1« ni moč animirati</translation>
+    </message>
+    <message>
+        <source>Cannot animate read-only property &quot;%1&quot;</source>
+        <translation>Lastnosti »%1«, ki je samo za branje, ni moč animirati</translation>
+    </message>
+    <message>
+        <source>Animation is an abstract class</source>
+        <translation>Animacija je abstrakten razred</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativeAnchorAnimation</name>
+    <message>
+        <source>Cannot set a duration of &lt; 0</source>
+        <translation>Trajanja, ki je krajše od 0, ni moč nastaviti</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativeAnchors</name>
+    <message>
+        <source>Possible anchor loop detected on fill.</source>
+        <translation>Ob zapolnjevanju je bila zaznana možna zanka sidra.</translation>
+    </message>
+    <message>
+        <source>Possible anchor loop detected on centerIn.</source>
+        <translation>Ob usrediščanju je bila zaznana možna zanka sidra.</translation>
+    </message>
+    <message>
+        <source>Cannot anchor to an item that isn&apos;t a parent or sibling.</source>
+        <translation>Na objekt, ki ni nadrejen ali enakovreden, se ni moč zasidrati.</translation>
+    </message>
+    <message>
+        <source>Possible anchor loop detected on vertical anchor.</source>
+        <translation>Ob navpičnem sidru je bila zaznana možna zanka sidra.</translation>
+    </message>
+    <message>
+        <source>Possible anchor loop detected on horizontal anchor.</source>
+        <translation>Ob vodoravnem sidru je bila zaznana možna zanka sidra.</translation>
+    </message>
+    <message>
+        <source>Cannot specify left, right, and hcenter anchors.</source>
+        <translation>Levih, desnih in vodoravno sredinskih sider ni moč določiti.</translation>
+    </message>
+    <message>
+        <source>Cannot anchor to a null item.</source>
+        <translation>Na neobstoječ objekt se ni moč zasidrati.</translation>
+    </message>
+    <message>
+        <source>Cannot anchor a horizontal edge to a vertical edge.</source>
+        <translation>Vodoravnega roba ni moč zasidrati na navpični rob.</translation>
+    </message>
+    <message>
+        <source>Cannot anchor item to self.</source>
+        <translation>Objekta ni moč zasidrati samega nase.</translation>
+    </message>
+    <message>
+        <source>Cannot specify top, bottom, and vcenter anchors.</source>
+        <translation>Vrhnjih, spodnjih in navpično sredinskih sider ni moč določiti.</translation>
+    </message>
+    <message>
+        <source>Baseline anchor cannot be used in conjunction with top, bottom, or vcenter anchors.</source>
+        <translation>Sidra na osnovnici ni moč uporabiti skupaj z vrhnjimi, spodnjimi ali navpično sredinskimi sidri.</translation>
+    </message>
+    <message>
+        <source>Cannot anchor a vertical edge to a horizontal edge.</source>
+        <translation>Navpičnega roba ni moč zasidrati na vodoravni rob.</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativeAnimatedImage</name>
+    <message>
+        <source>Qt was built without support for QMovie</source>
+        <translation>Qt je bil zgrajen brez podpore za QMovie</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativeBehavior</name>
+    <message>
+        <source>Cannot change the animation assigned to a Behavior.</source>
+        <translation>Animacije, ki je prirejena obnašanju, ni moč spremeniti.</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativeBinding</name>
+    <message>
+        <source>Binding loop detected for property &quot;%1&quot;</source>
+        <translation>Za lastnost »%1« je bila zaznana zanka vezave</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativeCompiledBindings</name>
+    <message>
+        <source>Binding loop detected for property &quot;%1&quot;</source>
+        <translation>Za lastnost »%1« je bila zaznana zanka vezave</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativeCompiler</name>
+    <message>
+        <source>Invalid property assignment: &quot;%1&quot; is a read-only property</source>
+        <translation>Neveljavna prireditev lastnosti: »%1« je lastnost, ki je samo za branje</translation>
+    </message>
+    <message>
+        <source>Invalid property assignment: unknown enumeration</source>
+        <translation>Neveljavna prireditev lastnosti: neznano oštevilčenje</translation>
+    </message>
+    <message>
+        <source>Invalid property assignment: string expected</source>
+        <translation>Neveljavna prireditev lastnosti: pričakovan je niz</translation>
+    </message>
+    <message>
+        <source>Invalid property assignment: url expected</source>
+        <translation>Neveljavna prireditev lastnosti: pričakovan je URL</translation>
+    </message>
+    <message>
+        <source>Invalid property assignment: unsigned int expected</source>
+        <translation>Neveljavna prireditev lastnosti: pričakovano je nepredznačeno celo število</translation>
+    </message>
+    <message>
+        <source>Invalid property assignment: int expected</source>
+        <translation>Neveljavna prireditev lastnosti: pričakovano je celo število</translation>
+    </message>
+    <message>
+        <source>Invalid property assignment: number expected</source>
+        <translation>Neveljavna prireditev lastnosti: pričakovano je število</translation>
+    </message>
+    <message>
+        <source>Invalid property assignment: color expected</source>
+        <translation>Neveljavna prireditev lastnosti: pričakovana je barva</translation>
+    </message>
+    <message>
+        <source>Invalid property assignment: date expected</source>
+        <translation>Neveljavna prireditev lastnosti: pričakovan je datum</translation>
+    </message>
+    <message>
+        <source>Invalid property assignment: time expected</source>
+        <translation>Neveljavna prireditev lastnosti: pričakovan je čas</translation>
+    </message>
+    <message>
+        <source>Invalid property assignment: datetime expected</source>
+        <translation>Neveljavna prireditev lastnosti: pričakovana sta datum in čas</translation>
+    </message>
+    <message>
+        <source>Invalid property assignment: point expected</source>
+        <translation>Neveljavna prireditev lastnosti: pričakovana je točka</translation>
+    </message>
+    <message>
+        <source>Invalid property assignment: size expected</source>
+        <translation>Neveljavna prireditev lastnosti: pričakovana je velikost</translation>
+    </message>
+    <message>
+        <source>Invalid property assignment: rect expected</source>
+        <translation>Neveljavna prireditev lastnosti: pričakovan je pravokotnik</translation>
+    </message>
+    <message>
+        <source>Invalid property assignment: boolean expected</source>
+        <translation>Neveljavna prireditev lastnosti: pričakovana je logična vrednost</translation>
+    </message>
+    <message>
+        <source>Invalid property assignment: 3D vector expected</source>
+        <translation>Neveljavna prireditev lastnosti: pričakovan je 3D vektor</translation>
+    </message>
+    <message>
+        <source>Invalid property assignment: unsupported type &quot;%1&quot;</source>
+        <translation>Neveljavna prireditev lastnosti: nepodprta vrsta »%1«</translation>
+    </message>
+    <message>
+        <source>Element is not creatable.</source>
+        <translation>Elementa ni moč ustvariti.</translation>
+    </message>
+    <message>
+        <source>Component elements may not contain properties other than id</source>
+        <translation>Elementi komponent ne smejo vsebovati drugih lastnosti kot ID</translation>
+    </message>
+    <message>
+        <source>Invalid component id specification</source>
+        <translation>Neveljavno določen ID komponente</translation>
+    </message>
+    <message>
+        <source>id is not unique</source>
+        <translation>ID ni edinstven</translation>
+    </message>
+    <message>
+        <source>Invalid component body specification</source>
+        <translation>Neveljavno določeno telo komponente</translation>
+    </message>
+    <message>
+        <source>Component objects cannot declare new properties.</source>
+        <translation>Objekti komponent ne morejo deklarirati novih lastnosti.</translation>
+    </message>
+    <message>
+        <source>Component objects cannot declare new signals.</source>
+        <translation>Objekti komponent ne morejo deklarirati novih signalov.</translation>
+    </message>
+    <message>
+        <source>Component objects cannot declare new functions.</source>
+        <translation>Objekti komponent ne morejo deklarirati novih funkcij.</translation>
+    </message>
+    <message>
+        <source>Cannot create empty component specification</source>
+        <translation>Prazne specifikacije komponente ni moč ustvariti</translation>
+    </message>
+    <message>
+        <source>Incorrectly specified signal assignment</source>
+        <translation>Napačno določena prireditev signalu</translation>
+    </message>
+    <message>
+        <source>Cannot assign a value to a signal (expecting a script to be run)</source>
+        <translation>Signalu ni moč prirediti vrednosti (pričakovan je skript, ki bo zagnan)</translation>
+    </message>
+    <message>
+        <source>Empty signal assignment</source>
+        <translation type="unfinished">Prazna prireditev signalu</translation>
+    </message>
+    <message>
+        <source>Empty property assignment</source>
+        <translation type="unfinished">Prazna prireditev lastnosti</translation>
+    </message>
+    <message>
+        <source>Attached properties cannot be used here</source>
+        <translation>Pripete lastnosti tu ne morejo biti uporabljene</translation>
+    </message>
+    <message>
+        <source>Non-existent attached object</source>
+        <translation>Neobstoječ pripet objekt</translation>
+    </message>
+    <message>
+        <source>Invalid attached object assignment</source>
+        <translation>Neveljavna prireditev pripetega objekta</translation>
+    </message>
+    <message>
+        <source>Cannot assign to non-existent default property</source>
+        <translation>Neobstoječi privzeti lastnosti ni moč prirediti</translation>
+    </message>
+    <message>
+        <source>Cannot assign to non-existent property &quot;%1&quot;</source>
+        <translation>Neobstoječi lastnosti »%1« ni moč prirediti</translation>
+    </message>
+    <message>
+        <source>Invalid use of namespace</source>
+        <translation>Napačna raba imenskega prostora</translation>
+    </message>
+    <message>
+        <source>Not an attached property name</source>
+        <translation>Ni ime pripete lastnosti</translation>
+    </message>
+    <message>
+        <source>Invalid use of id property</source>
+        <translation>Napačna raba lastnosti ID</translation>
+    </message>
+    <message>
+        <source>Property has already been assigned a value</source>
+        <translation>Lastnosti je že bila prirejena vrednost</translation>
+    </message>
+    <message>
+        <source>Invalid grouped property access</source>
+        <translation>Neveljaven dostop do skupinske lastnosti</translation>
+    </message>
+    <message>
+        <source>Cannot assign a value directly to a grouped property</source>
+        <translation>Skupinski lastnosti ni moč neposredno prirediti vrednosti</translation>
+    </message>
+    <message>
+        <source>Invalid property use</source>
+        <translation>Neveljavna raba lastnosti</translation>
+    </message>
+    <message>
+        <source>Property assignment expected</source>
+        <translation>Pričakovana je prireditev lastnosti</translation>
+    </message>
+    <message>
+        <source>Single property assignment expected</source>
+        <translation>Pričakovana je enojna prireditev lastnosti</translation>
+    </message>
+    <message>
+        <source>Unexpected object assignment</source>
+        <translation>Nepričakovana prireditev objekta</translation>
+    </message>
+    <message>
+        <source>Cannot assign object to list</source>
+        <translation>Objekta ni moč prirediti seznamu</translation>
+    </message>
+    <message>
+        <source>Can only assign one binding to lists</source>
+        <translation>Seznamom je moč prirediti le eno vezavo</translation>
+    </message>
+    <message>
+        <source>Cannot assign primitives to lists</source>
+        <translation>Seznamom ni moč prirediti osnovnih tipov</translation>
+    </message>
+    <message>
+        <source>Cannot assign multiple values to a script property</source>
+        <translation>Lastnosti »script« ni moč prirediti več vrednosti</translation>
+    </message>
+    <message>
+        <source>Invalid property assignment: script expected</source>
+        <translation>Neveljavna prireditev lastnosti: pričakovan je skript</translation>
+    </message>
+    <message>
+        <source>Cannot assign object to property</source>
+        <translation>Objekta ni moč prirediti lastnosti</translation>
+    </message>
+    <message>
+        <source>&quot;%1&quot; cannot operate on &quot;%2&quot;</source>
+        <translation>»%1« ne more delovati na »%2«</translation>
+    </message>
+    <message>
+        <source>Duplicate default property</source>
+        <translation>Podvojena privzeta lastnost</translation>
+    </message>
+    <message>
+        <source>Duplicate property name</source>
+        <translation>Podvojeno ime lastnosti</translation>
+    </message>
+    <message>
+        <source>Property names cannot begin with an upper case letter</source>
+        <translation>Imena lastnosti se ne smejo začeti z veliko črko</translation>
+    </message>
+    <message>
+        <source>Illegal property name</source>
+        <translation>Neveljavno ime lastnosti</translation>
+    </message>
+    <message>
+        <source>Duplicate signal name</source>
+        <translation>Podvojeno ime signala</translation>
+    </message>
+    <message>
+        <source>Signal names cannot begin with an upper case letter</source>
+        <translation>Imena signalov se ne smejo začeti z veliko črko</translation>
+    </message>
+    <message>
+        <source>Illegal signal name</source>
+        <translation>Neveljavno ime signala</translation>
+    </message>
+    <message>
+        <source>Duplicate method name</source>
+        <translation>Podvojeno ime metode</translation>
+    </message>
+    <message>
+        <source>Method names cannot begin with an upper case letter</source>
+        <translation>Imena metod se ne smejo začeti z veliko črko</translation>
+    </message>
+    <message>
+        <source>Illegal method name</source>
+        <translation>Neveljavno ime metode</translation>
+    </message>
+    <message>
+        <source>Property value set multiple times</source>
+        <translation>Vrednost lastnosti je bila nastavljena večkrat</translation>
+    </message>
+    <message>
+        <source>Invalid property nesting</source>
+        <translation>Neveljavno gnezdenje lastnosti</translation>
+    </message>
+    <message>
+        <source>Cannot override FINAL property</source>
+        <translation>Lastnosti FINAL ni moč povoziti</translation>
+    </message>
+    <message>
+        <source>Invalid property type</source>
+        <translation>Neveljavna vrsta lastnosti</translation>
+    </message>
+    <message>
+        <source>Invalid empty ID</source>
+        <translation>Neveljaven prazen ID</translation>
+    </message>
+    <message>
+        <source>IDs cannot start with an uppercase letter</source>
+        <translation>ID-ji se ne smejo začeti z veliko črko</translation>
+    </message>
+    <message>
+        <source>IDs must start with a letter or underscore</source>
+        <translation>ID-ji se morajo začeti s črko ali podčrtajem</translation>
+    </message>
+    <message>
+        <source>IDs must contain only letters, numbers, and underscores</source>
+        <translation>ID-ji lahko vsebujejo le črke, števke in podčrtaje</translation>
+    </message>
+    <message>
+        <source>ID illegally masks global JavaScript property</source>
+        <translation>ID neveljavno zakriva globalno lastnost JavaScripta</translation>
+    </message>
+    <message>
+        <source>No property alias location</source>
+        <translation>Brez lokacije aliasa lastnosti</translation>
+    </message>
+    <message>
+        <source>Invalid alias location</source>
+        <translation>Neveljavna lokacija aliasa</translation>
+    </message>
+    <message>
+        <source>Invalid alias reference. An alias reference must be specified as &lt;id&gt; or &lt;id&gt;.&lt;property&gt;</source>
+        <translation>Neveljavna referenca aliasa. Referenca aliasa mora biti določena kot &lt;id&gt; ali &lt;id&gt;.&lt;lastnost&gt;</translation>
+    </message>
+    <message>
+        <source>Invalid alias reference. Unable to find id &quot;%1&quot;</source>
+        <translation>Neveljavna referenca aliasa. ID-ja »%1« ni moč najti</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativeComponent</name>
+    <message>
+        <source>Invalid empty URL</source>
+        <translation>Neveljaven prazen URL</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativeCompositeTypeManager</name>
+    <message>
+        <source>Resource %1 unavailable</source>
+        <translation>Vir %1 ni na voljo</translation>
+    </message>
+    <message>
+        <source>Namespace %1 cannot be used as a type</source>
+        <translation>Imenskega prostora %1 ni moč uporabiti kot vrste</translation>
+    </message>
+    <message>
+        <source>%1 %2</source>
+        <translation>%1 %2</translation>
+    </message>
+    <message>
+        <source>Type %1 unavailable</source>
+        <translation>Vrsta %1 ni na voljo</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativeConnections</name>
+    <message>
+        <source>Cannot assign to non-existent property &quot;%1&quot;</source>
+        <translation>Neobstoječi lastnosti »%1« ni moč prirediti</translation>
+    </message>
+    <message>
+        <source>Connections: nested objects not allowed</source>
+        <translation>Povezave: gnezdeni objekti niso dovoljeni</translation>
+    </message>
+    <message>
+        <source>Connections: syntax error</source>
+        <translation>Povezave: napaka v skladnji</translation>
+    </message>
+    <message>
+        <source>Connections: script expected</source>
+        <translation>Povezave: pričakovan je skript</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativeEngine</name>
+    <message>
+        <source>executeSql called outside transaction()</source>
+        <translation>executeSql je bil klican izven transaction()</translation>
+    </message>
+    <message>
+        <source>Read-only Transaction</source>
+        <translation>Transakcija samo za branje</translation>
+    </message>
+    <message>
+        <source>Version mismatch: expected %1, found %2</source>
+        <translation>Neujemanje različic: pričakovana %1, najdena %2</translation>
+    </message>
+    <message>
+        <source>SQL transaction failed</source>
+        <translation>Transakcija SQL ni uspela</translation>
+    </message>
+    <message>
+        <source>transaction: missing callback</source>
+        <translation type="unfinished">transaction: manjka povratni klic</translation>
+    </message>
+    <message>
+        <source>SQL: database version mismatch</source>
+        <translation>SQL: neujemanje različice podatkovne zbirke</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativeFlipable</name>
+    <message>
+        <source>front is a write-once property</source>
+        <translation>front je lastnost, ki se jo lahko zapiše samo enkrat</translation>
+    </message>
+    <message>
+        <source>back is a write-once property</source>
+        <translation>back je lastnost, ki se jo lahko zapiše samo enkrat</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativeImportDatabase</name>
+    <message>
+        <source>module &quot;%1&quot; definition &quot;%2&quot; not readable</source>
+        <translation>definicije »%2« modula »%1« ni moč brati</translation>
+    </message>
+    <message>
+        <source>plugin cannot be loaded for module &quot;%1&quot;: %2</source>
+        <translation>vstavka za modul »%1« ni moč naložiti: %2</translation>
+    </message>
+    <message>
+        <source>module &quot;%1&quot; plugin &quot;%2&quot; not found</source>
+        <translation>vstavek »%2« modula »%1« ni bil najden</translation>
+    </message>
+    <message>
+        <source>module &quot;%1&quot; version %2.%3 is not installed</source>
+        <translation>modul »%1« različice %2.%3 ni nameščen</translation>
+    </message>
+    <message>
+        <source>module &quot;%1&quot; is not installed</source>
+        <translation>modul »%1« ni nameščen</translation>
+    </message>
+    <message>
+        <source>&quot;%1&quot;: no such directory</source>
+        <translation>»%1«: mapa ne obstaja</translation>
+    </message>
+    <message>
+        <source>import &quot;%1&quot; has no qmldir and no namespace</source>
+        <translation>uvoz »%1« nima niti qmldir-a niti imenskega prostora</translation>
+    </message>
+    <message>
+        <source>- %1 is not a namespace</source>
+        <translation>– %1 ni imenski prostor</translation>
+    </message>
+    <message>
+        <source>- nested namespaces not allowed</source>
+        <translation>– gnezdeni imenski prostori niso dovoljeni</translation>
+    </message>
+    <message>
+        <source>local directory</source>
+        <translation>krajevna mapa</translation>
+    </message>
+    <message>
+        <source>is ambiguous. Found in %1 and in %2</source>
+        <translation>je dvoumno. Najdeno v %1 in %2</translation>
+    </message>
+    <message>
+        <source>is ambiguous. Found in %1 in version %2.%3 and %4.%5</source>
+        <translation>je dvoumno. Najdeno v %1 v različicah %2.%3 in %4.%5</translation>
+    </message>
+    <message>
+        <source>is instantiated recursively</source>
+        <translation>je instanciran rekurzivno</translation>
+    </message>
+    <message>
+        <source>is not a type</source>
+        <translation>ni vrsta</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativeKeyNavigationAttached</name>
+    <message>
+        <source>KeyNavigation is only available via attached properties</source>
+        <translation>KeyNavigation je na voljo samo s pripetimi lastnostmi</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativeKeysAttached</name>
+    <message>
+        <source>Keys is only available via attached properties</source>
+        <translation>Keys je na voljo samo s pripetimi lastnostmi</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativeListModel</name>
+    <message>
+        <source>remove: index %1 out of range</source>
+        <translation>remove: indeks %1 je izven obsega</translation>
+    </message>
+    <message>
+        <source>insert: value is not an object</source>
+        <translation>insert: vrednost ni objekt</translation>
+    </message>
+    <message>
+        <source>insert: index %1 out of range</source>
+        <translation>insert: indeks %1 je izven obsega</translation>
+    </message>
+    <message>
+        <source>move: out of range</source>
+        <translation>move: izven obsega</translation>
+    </message>
+    <message>
+        <source>append: value is not an object</source>
+        <translation>append: vrednost ni objekt</translation>
+    </message>
+    <message>
+        <source>set: value is not an object</source>
+        <translation>set: vrednost ni objekt</translation>
+    </message>
+    <message>
+        <source>set: index %1 out of range</source>
+        <translation>set: indeks %1 je izven obsega</translation>
+    </message>
+    <message>
+        <source>ListElement: cannot contain nested elements</source>
+        <translation>ListElement: ni moč vsebovati gnezdenih elementov</translation>
+    </message>
+    <message>
+        <source>ListElement: cannot use reserved &quot;id&quot; property</source>
+        <translation>ListElement: ne more uporabiti rezervirane lastnosti »id«</translation>
+    </message>
+    <message>
+        <source>ListElement: cannot use script for property value</source>
+        <translation>ListElement: ne more uporabiti skripta za vrednost lastnosti</translation>
+    </message>
+    <message>
+        <source>ListModel: undefined property &apos;%1&apos;</source>
+        <translation>ListModel: nedoločena lastnost »%1«</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativeLoader</name>
+    <message>
+        <source>Loader does not support loading non-visual elements.</source>
+        <translation>Loader ne podpira nalaganja elementov, ki niso vidni.</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativeParentAnimation</name>
+    <message>
+        <source>Unable to preserve appearance under complex transform</source>
+        <translation>Pod kompleksnim preoblikovanjem ni moč obdržati videza</translation>
+    </message>
+    <message>
+        <source>Unable to preserve appearance under non-uniform scale</source>
+        <translation>Pod ne-enakovrednim povečevanjem ni moč obdržati videza</translation>
+    </message>
+    <message>
+        <source>Unable to preserve appearance under scale of 0</source>
+        <translation>Pod povečavo 0 ni moč obdržati videza</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativeParentChange</name>
+    <message>
+        <source>Unable to preserve appearance under complex transform</source>
+        <translation>Pod kompleksnim preoblikovanjem ni moč obdržati videza</translation>
+    </message>
+    <message>
+        <source>Unable to preserve appearance under non-uniform scale</source>
+        <translation>Pod ne-enakovrednim povečevanjem ni moč obdržati videza</translation>
+    </message>
+    <message>
+        <source>Unable to preserve appearance under scale of 0</source>
+        <translation>Pod povečavo 0 ni moč obdržati videza</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativeParser</name>
+    <message>
+        <source>Illegal unicode escape sequence</source>
+        <translation>Neveljavno ubežno zaporedje Unicode</translation>
+    </message>
+    <message>
+        <source>Illegal character</source>
+        <translation>Neveljaven znak</translation>
+    </message>
+    <message>
+        <source>Unclosed string at end of line</source>
+        <translation>Nezaprt niz na koncu vrstice</translation>
+    </message>
+    <message>
+        <source>Illegal escape squence</source>
+        <translation>Neveljavno ubežno zaporedje</translation>
+    </message>
+    <message>
+        <source>Unclosed comment at end of file</source>
+        <translation>Nezaprt komentar na koncu datoteke</translation>
+    </message>
+    <message>
+        <source>Illegal syntax for exponential number</source>
+        <translation>Neveljavna skladnja za eksponentno število</translation>
+    </message>
+    <message>
+        <source>Identifier cannot start with numeric literal</source>
+        <translation>Identifikator se ne sme začeti s številskim literalom</translation>
+    </message>
+    <message>
+        <source>Unterminated regular expression literal</source>
+        <translation>Nezaključen literal regularnega izraza</translation>
+    </message>
+    <message>
+        <source>Invalid regular expression flag &apos;%0&apos;</source>
+        <translation>Neveljavna zastavica »%0« regularnega izraza</translation>
+    </message>
+    <message>
+        <source>Unterminated regular expression backslash sequence</source>
+        <translation>Nezaključeno zaporedij poševnic nazaj v regularnem izrazu</translation>
+    </message>
+    <message>
+        <source>Unterminated regular expression class</source>
+        <translation>Nezaključen razred regularnega izraza</translation>
+    </message>
+    <message>
+        <source>Syntax error</source>
+        <translation>Skladenjska napaka</translation>
+    </message>
+    <message>
+        <source>Unexpected token `%1&apos;</source>
+        <translation>Nepričakovan žeton »%1«</translation>
+    </message>
+    <message>
+        <source>Expected token `%1&apos;</source>
+        <translation>Pričakovan žeton »%1«</translation>
+    </message>
+    <message>
+        <source>Property value set multiple times</source>
+        <translation>Vrednost lastnosti je bila nastavljena večkrat</translation>
+    </message>
+    <message>
+        <source>Expected type name</source>
+        <translation>Pričakovano ime vrste</translation>
+    </message>
+    <message>
+        <source>Invalid import qualifier ID</source>
+        <translation>Neveljaven ID kvalifikatorja uvoza</translation>
+    </message>
+    <message>
+        <source>Reserved name &quot;Qt&quot; cannot be used as an qualifier</source>
+        <translation>Rezerviranega imena »Qt« ni moč uporabiti kot kvalifikatorja</translation>
+    </message>
+    <message>
+        <source>Script import qualifiers must be unique.</source>
+        <translation>Kvalifikatorji uvozov skriptov morajo biti edinstveni.</translation>
+    </message>
+    <message>
+        <source>Script import requires a qualifier</source>
+        <translation>Uvozi skriptov potrebujejo kvalifikator</translation>
+    </message>
+    <message>
+        <source>Library import requires a version</source>
+        <translation>Uvozi knjižnic potrebujejo različico</translation>
+    </message>
+    <message>
+        <source>Expected parameter type</source>
+        <translation>Pričakovana vrsta parametra</translation>
+    </message>
+    <message>
+        <source>Invalid property type modifier</source>
+        <translation>Neveljaven modifikator vrste lastnosti</translation>
+    </message>
+    <message>
+        <source>Unexpected property type modifier</source>
+        <translation>Nepričakovan modifikator vrste lastnosti</translation>
+    </message>
+    <message>
+        <source>Expected property type</source>
+        <translation>Pričakovana vrsta lastnosti</translation>
+    </message>
+    <message>
+        <source>Readonly not yet supported</source>
+        <translation>Tisti, ki so samo za branje, še niso podprti</translation>
+    </message>
+    <message>
+        <source>JavaScript declaration outside Script element</source>
+        <translation>Deklaracija JavaScripta izven elementa Script</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativePauseAnimation</name>
+    <message>
+        <source>Cannot set a duration of &lt; 0</source>
+        <translation>Trajanja, ki je krajše od 0, ni moč nastaviti</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativePixmap</name>
+    <message>
+        <source>Error decoding: %1: %2</source>
+        <translation>Napaka dekodiranja: %1: %2</translation>
+    </message>
+    <message>
+        <source>Failed to get image from provider: %1</source>
+        <translation>Od ponudnika ni bilo moč dobiti slike: %1</translation>
+    </message>
+    <message>
+        <source>Cannot open: %1</source>
+        <translation>Ni moč odpreti %1:</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativePropertyAnimation</name>
+    <message>
+        <source>Cannot set a duration of &lt; 0</source>
+        <translation>Trajanja, ki je krajše od 0, ni moč nastaviti</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativePropertyChanges</name>
+    <message>
+        <source>PropertyChanges does not support creating state-specific objects.</source>
+        <translation>PropertyChanges ne podpira ustvarjanja objektov sprecifičnih za stanje.</translation>
+    </message>
+    <message>
+        <source>Cannot assign to non-existent property &quot;%1&quot;</source>
+        <translation>Neobstoječi lastnosti »%1« ni moč prirediti</translation>
+    </message>
+    <message>
+        <source>Cannot assign to read-only property &quot;%1&quot;</source>
+        <translation>Ni moč prirediti lastnosti »%1«, ki je samo za branje</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativeTextInput</name>
+    <message>
+        <source>Could not load cursor delegate</source>
+        <translation>Ni bilo moč naložiti delegata za kazalec</translation>
+    </message>
+    <message>
+        <source>Could not instantiate cursor delegate</source>
+        <translation>Ni bilo moč instancirati delegata za kazalec</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativeVME</name>
+    <message>
+        <source>Unable to create object of type %1</source>
+        <translation>Ni moč ustvariti objekta vrste %1</translation>
+    </message>
+    <message>
+        <source>Cannot assign value %1 to property %2</source>
+        <translation>Lastnosti %2 ni moč prirediti vrednosti %1</translation>
+    </message>
+    <message>
+        <source>Cannot assign object type %1 with no default method</source>
+        <translation>Ni moč prirediti objekta vrste %1 brez privzete metode</translation>
+    </message>
+    <message>
+        <source>Cannot connect mismatched signal/slot %1 %vs. %2</source>
+        <translation>Ni moč povezati neujemajočih signalov in rež: %1 in %2</translation>
+    </message>
+    <message>
+        <source>Cannot assign an object to signal property %1</source>
+        <translation>Objekta ni moč prirediti lastnosi signala %1</translation>
+    </message>
+    <message>
+        <source>Cannot assign object to list</source>
+        <translation>Objekta ni moč prirediti seznamu</translation>
+    </message>
+    <message>
+        <source>Cannot assign object to interface property</source>
+        <translation>Objekta ni moč prirediti lastnosti vmesnika</translation>
+    </message>
+    <message>
+        <source>Unable to create attached object</source>
+        <translation>Ni moč ustvariti pripetega objekta</translation>
+    </message>
+    <message>
+        <source>Cannot set properties on %1 as it is null</source>
+        <translation>Ni moč nastaviti lastnosti za %1, saj ne obstaja</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativeVisualDataModel</name>
+    <message>
+        <source>Delegate component must be Item type.</source>
+        <translation>Komponenta delegata mora biti vrste Item.</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativeXmlListModel</name>
+    <message>
+        <source>Qt was built without support for xmlpatterns</source>
+        <translation>Qt je bil zgrajen brez podpore za xmlpatterns</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativeXmlListModelRole</name>
+    <message>
+        <source>An XmlRole query must not start with &apos;/&apos;</source>
+        <translation>Poizvedba XmlRole se ne sme začeti z »/«</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativeXmlRoleList</name>
+    <message>
+        <source>An XmlListModel query must start with &apos;/&apos; or &quot;//&quot;</source>
+        <translation>Poizvedba XmlListModel se mora začeti z »/« ali »//«</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>SpeedoMeter</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>SliderHandle</source>
         <translation>SliderHandle</translation>
     </message>
@@ -1271,12 +2197,10 @@
 <context>
     <name>QDialog</name>
     <message>
-        <location filename="../src/gui/dialogs/qdialog.cpp" line="+636"/>
         <source>What&apos;s This?</source>
         <translation>Kaj je to?</translation>
     </message>
     <message>
-        <location line="-135"/>
         <source>Done</source>
         <translation>Opravljeno</translation>
     </message>
@@ -1284,124 +2208,98 @@
 <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>V redu</translation>
     </message>
     <message>
-        <location filename="../src/gui/widgets/qdialogbuttonbox.cpp" line="+0"/>
         <source>&amp;OK</source>
         <translation>&amp;V redu</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>&amp;Save</source>
         <translation>&amp;Shrani</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Save</source>
         <translation>Shrani</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Open</source>
         <translation>Odpri</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>&amp;Cancel</source>
         <translation>&amp;Prekliči</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Cancel</source>
         <translation>Prekliči</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>&amp;Close</source>
         <translation>&amp;Zapri</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Close</source>
         <translation>Zapri</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Apply</source>
         <translation>Uveljavi</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Reset</source>
         <translation>Ponastavi</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Help</source>
         <translation>Pomoč</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Don&apos;t Save</source>
         <translation>Ne shrani</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Discard</source>
         <translation>Zavrzi</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>&amp;Yes</source>
         <translation>&amp;Da</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Yes to &amp;All</source>
         <translation>Da za &amp;vse</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>&amp;No</source>
         <translation>&amp;Ne</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>N&amp;o to All</source>
         <translation>N&amp;e za vse</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Save All</source>
         <translation>Shrani vse</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Abort</source>
         <translation>Prekini</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Retry</source>
         <translation>Poskusi znova</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Ignore</source>
         <translation>Spreglej</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Restore Defaults</source>
         <translation>Obnovi privzete vrednosti</translation>
     </message>
     <message>
-        <location line="-29"/>
         <source>Close without Saving</source>
         <translation>Zapri brez shranjevanja</translation>
     </message>
@@ -1409,29 +2307,24 @@
 <context>
     <name>QDirModel</name>
     <message>
-        <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+457"/>
         <source>Name</source>
         <translation>Ime</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>Vrste</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Type</source>
         <comment>All other platforms</comment>
         <translation>Vrsta</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Date Modified</source>
         <translation>Datum spremembe</translation>
     </message>
@@ -1439,17 +2332,14 @@
 <context>
     <name>QDockWidget</name>
     <message>
-        <location filename="../src/plugins/accessible/widgets/qaccessiblewidgets.cpp" line="+1239"/>
         <source>Close</source>
         <translation>Zapri</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Dock</source>
         <translation>Zasidraj</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Float</source>
         <translation>Naj lebdi</translation>
     </message>
@@ -1457,12 +2347,10 @@
 <context>
     <name>QDoubleSpinBox</name>
     <message>
-        <location filename="../src/plugins/accessible/widgets/rangecontrols.cpp" line="-537"/>
         <source>More</source>
         <translation>Več</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Less</source>
         <translation>Manj</translation>
     </message>
@@ -1470,27 +2358,22 @@
 <context>
     <name>QErrorMessage</name>
     <message>
-        <location filename="../src/gui/dialogs/qerrormessage.cpp" line="+208"/>
         <source>Debug Message:</source>
         <translation>Sporočilo razhroščevanja:</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Warning:</source>
         <translation>Opozorilo:</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Fatal Error:</source>
         <translation>Usodna napaka:</translation>
     </message>
     <message>
-        <location line="+200"/>
         <source>&amp;Show this message again</source>
         <translation>&amp;To sporočilo naslednjič spet prikaži</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;OK</source>
         <translation>&amp;V redu</translation>
     </message>
@@ -1498,38 +2381,30 @@
 <context>
     <name>QFile</name>
     <message>
-        <location filename="../src/corelib/io/qfile.cpp" line="+697"/>
-        <location line="+155"/>
         <source>Destination file exists</source>
         <translation>Ciljna datoteka obstaja</translation>
     </message>
     <message>
-        <location line="-140"/>
         <source>Will not rename sequential file using block copy</source>
         <translation>Sekvenčna datoteka ne bo preimenovana z uporabo kopiranja blokov</translation>
     </message>
     <message>
-        <location line="+23"/>
         <source>Cannot remove source file</source>
         <translation>Ni moč odstraniti izvorne datoteke</translation>
     </message>
     <message>
-        <location line="+130"/>
         <source>Cannot open %1 for input</source>
         <translation>Ni moč odpreti %1 za vhod</translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>Cannot open for output</source>
         <translation>Ni moč odpreti za izhod</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>Failure to write block</source>
         <translation>Neuspeh pri zapisovanju bloka</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>Cannot create %1 for output</source>
         <translation>Ni moč ustvariti %1 za izhod</translation>
     </message>
@@ -1537,43 +2412,32 @@
 <context>
     <name>QFileDialog</name>
     <message>
-        <location filename="../src/gui/dialogs/qfiledialog.cpp" line="+558"/>
-        <location line="+450"/>
         <source>All Files (*)</source>
         <translation>Vse datoteke (*)</translation>
     </message>
     <message>
-        <location line="+227"/>
         <source>Directories</source>
         <translation>Mape</translation>
     </message>
     <message>
-        <location line="-3"/>
-        <location line="+50"/>
-        <location line="+1528"/>
         <source>&amp;Open</source>
         <translation>&amp;Odpri</translation>
     </message>
     <message>
-        <location line="-1578"/>
-        <location line="+50"/>
         <source>&amp;Save</source>
         <translation>&amp;Shrani</translation>
     </message>
     <message>
-        <location line="-741"/>
         <source>Open</source>
         <translation>Odpri</translation>
     </message>
     <message>
-        <location line="+1508"/>
         <source>%1 already exists.
 Do you want to replace it?</source>
         <translation>%1 že obstaja.
 Ali jo želite nadomestiti?</translation>
     </message>
     <message>
-        <location line="+20"/>
         <source>%1
 File not found.
 Please verify the correct file name was given.</source>
@@ -1582,64 +2446,46 @@
 Preverite, ali je bilo podano pravilno ime datoteke.</translation>
     </message>
     <message>
-        <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+402"/>
         <source>My Computer</source>
         <translation>Moj računalnik</translation>
     </message>
     <message>
-        <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-1497"/>
         <source>&amp;Rename</source>
         <translation>Pre&amp;imenuj</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Delete</source>
         <translation>&amp;Izbriši</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Show &amp;hidden files</source>
         <translation>Prikaži &amp;skrite datoteke</translation>
     </message>
     <message>
-        <location filename="../src/gui/dialogs/qfiledialog.ui"/>
-        <location filename="../src/gui/dialogs/qfiledialog_embedded.ui"/>
         <source>Back</source>
         <translation>Nazaj</translation>
     </message>
     <message>
-        <location/>
-        <location filename="../src/gui/dialogs/qfiledialog_embedded.ui"/>
         <source>Parent Directory</source>
         <translation>Matična mapa</translation>
     </message>
     <message>
-        <location/>
-        <location filename="../src/gui/dialogs/qfiledialog_embedded.ui"/>
         <source>List View</source>
         <translation>Prikaz seznama</translation>
     </message>
     <message>
-        <location/>
-        <location filename="../src/gui/dialogs/qfiledialog_embedded.ui"/>
         <source>Detail View</source>
         <translation>Prikaz podrobnosti</translation>
     </message>
     <message>
-        <location/>
-        <location filename="../src/gui/dialogs/qfiledialog_embedded.ui"/>
         <source>Files of type:</source>
         <translation>Datoteke vrste:</translation>
     </message>
     <message>
-        <location filename="../src/gui/dialogs/qfiledialog.cpp" line="+6"/>
-        <location line="+659"/>
         <source>Directory:</source>
         <translation>Mapa:</translation>
     </message>
     <message>
-        <location line="+776"/>
-        <location line="+862"/>
         <source>%1
 Directory not found.
 Please verify the correct directory name was given.</source>
@@ -1648,475 +2494,399 @@
 Preverite, ali je bilo podano pravilno ime mape.</translation>
     </message>
     <message>
-        <location line="-218"/>
         <source>&apos;%1&apos; is write protected.
 Do you want to delete it anyway?</source>
         <translation>»%1« je zaščitena pred pisanjem.
 Ali jo kljub temu želite izbrisati?</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Are sure you want to delete &apos;%1&apos;?</source>
         <translation>Ali res želite izbrisati »%1«?</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Could not delete directory.</source>
         <translation>Ni bilo moč izbrisati mape.</translation>
     </message>
     <message>
-        <location line="+410"/>
         <source>Recent Places</source>
         <translation>Nedavna mesta</translation>
     </message>
     <message>
-        <location filename="../src/gui/dialogs/qfiledialog_win.cpp" line="+174"/>
         <source>All Files (*.*)</source>
         <translation>Vse datoteke (*.*)</translation>
     </message>
     <message>
-        <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-2546"/>
         <source>Save As</source>
         <translation>Shrani kot</translation>
     </message>
     <message>
-        <location filename="../src/gui/itemviews/qfileiconprovider.cpp" line="+461"/>
         <source>Drive</source>
         <translation>Pogon</translation>
     </message>
     <message>
-        <location line="+3"/>
-        <location line="+1"/>
         <source>File</source>
         <translation>Datoteka</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>File Folder</source>
         <comment>Match Windows Explorer</comment>
         <translation>Mapa z datotekami</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Folder</source>
         <comment>All other platforms</comment>
         <translation>Mapa</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Alias</source>
         <comment>Mac OS X Finder</comment>
         <translation>Drugo ime</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Shortcut</source>
         <comment>All other platforms</comment>
         <translation>Bližnjica</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Unknown</source>
         <translation>Neznano</translation>
     </message>
     <message>
-        <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-4"/>
         <source>Find Directory</source>
         <translation>Najdi mapo</translation>
     </message>
     <message>
-        <location line="+29"/>
         <source>Show </source>
         <translation>Prikaži </translation>
     </message>
     <message>
-        <location filename="../src/gui/dialogs/qfiledialog.ui"/>
-        <location filename="../src/gui/dialogs/qfiledialog_embedded.ui"/>
         <source>Forward</source>
         <translation>Naprej</translation>
     </message>
     <message>
-        <location filename="../src/gui/dialogs/qfiledialog.cpp" line="+1963"/>
         <source>New Folder</source>
         <translation>Nova mapa</translation>
     </message>
     <message>
-        <location line="-1956"/>
         <source>&amp;New Folder</source>
         <translation>&amp;Nova mapa</translation>
     </message>
     <message>
-        <location line="+667"/>
-        <location line="+38"/>
         <source>&amp;Choose</source>
         <translation>Iz&amp;berite</translation>
     </message>
     <message>
-        <location filename="../src/gui/dialogs/qsidebar.cpp" line="+442"/>
         <source>Remove</source>
         <translation>Odstrani</translation>
     </message>
     <message>
-        <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-698"/>
-        <location line="+663"/>
         <source>File &amp;name:</source>
         <translation>Ime &amp;datoteke:</translation>
     </message>
     <message>
-        <location filename="../src/gui/dialogs/qfiledialog.ui"/>
-        <location filename="../src/gui/dialogs/qfiledialog_embedded.ui"/>
         <source>Look in:</source>
         <translation>Išči v:</translation>
     </message>
     <message>
-        <location/>
-        <location filename="../src/gui/dialogs/qfiledialog_embedded.ui"/>
         <source>Create New Folder</source>
         <translation>Ustvari novo mapo</translation>
     </message>
+    <message>
+        <source>Go back</source>
+        <translation>Vrni se nazaj</translation>
+    </message>
+    <message>
+        <source>Go forward</source>
+        <translation>Napreduj naprej</translation>
+    </message>
+    <message>
+        <source>Go to the parent directory</source>
+        <translation>Pojdi v matično mapo</translation>
+    </message>
+    <message>
+        <source>Create a New Folder</source>
+        <translation>Ustvari novo mapo</translation>
+    </message>
+    <message>
+        <source>Change to list view mode</source>
+        <translation>Preklopi v način prikaza seznama</translation>
+    </message>
+    <message>
+        <source>Change to detail view mode</source>
+        <translation>Preklopi v način prikaza podrobnosti</translation>
+    </message>
 </context>
 <context>
     <name>QFileSystemModel</name>
     <message>
-        <location filename="../src/gui/dialogs/qfilesystemmodel.cpp" line="+828"/>
         <source>Invalid filename</source>
         <translation>Napačno ime datoteke</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;Imena »%1« ne morete uporabiti.&lt;/b&gt;&lt;p&gt;Poskusite z drugim imenom, ki vsebuje manj znakov ali pa ne vsebuje ločil.</translation>
     </message>
     <message>
-        <location line="+64"/>
         <source>Name</source>
         <translation>Ime</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Size</source>
         <translation>Velikost</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Kind</source>
         <comment>Match OS X Finder</comment>
         <translation>Vrste</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Type</source>
         <comment>All other platforms</comment>
         <translation>Vrsta</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Date Modified</source>
         <translation>Datum spremembe</translation>
     </message>
     <message>
-        <location filename="../src/gui/dialogs/qfilesystemmodel_p.h" line="+258"/>
         <source>My Computer</source>
         <translation>Moj računalnik</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Computer</source>
         <translation>Računalnik</translation>
     </message>
     <message>
-        <location filename="../src/gui/dialogs/qfilesystemmodel.cpp" line="-164"/>
-        <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+476"/>
         <source>%1 TB</source>
         <translation>%1 TiB</translation>
     </message>
     <message>
-        <location line="+2"/>
-        <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+2"/>
         <source>%1 GB</source>
         <translation>%1 GiB</translation>
     </message>
     <message>
-        <location line="+2"/>
-        <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+2"/>
         <source>%1 MB</source>
         <translation>%1 MiB</translation>
     </message>
     <message>
-        <location line="+2"/>
-        <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+2"/>
         <source>%1 KB</source>
         <translation>%1 KiB</translation>
     </message>
     <message>
-        <location line="+1"/>
-        <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+1"/>
         <source>%1 bytes</source>
         <translation>%1 B</translation>
     </message>
+    <message>
+        <source>%1 byte(s)</source>
+        <translation>%1 B</translation>
+    </message>
 </context>
 <context>
     <name>QFontDatabase</name>
     <message>
-        <location filename="../src/gui/text/qfontdatabase.cpp" line="+102"/>
-        <location line="+1335"/>
         <source>Normal</source>
         <translation>Normalno</translation>
     </message>
     <message>
-        <location line="-1332"/>
-        <location line="+12"/>
-        <location line="+1308"/>
         <source>Bold</source>
         <translation>Polkrepko</translation>
     </message>
     <message>
-        <location line="-1317"/>
-        <location line="+1319"/>
         <source>Demi Bold</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-1316"/>
-        <location line="+18"/>
-        <location line="+1294"/>
         <source>Black</source>
-        <translation type="unfinished">Črni</translation>
-    </message>
-    <message>
-        <location line="-1304"/>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <source>Demi</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+6"/>
-        <location line="+1304"/>
         <source>Light</source>
         <translation>Lahko</translation>
     </message>
     <message>
-        <location line="-1158"/>
-        <location line="+1161"/>
         <source>Italic</source>
         <translation>Ležeče</translation>
     </message>
     <message>
-        <location line="-1158"/>
-        <location line="+1160"/>
         <source>Oblique</source>
         <translation>Nagnjeno</translation>
     </message>
     <message>
-        <location line="+703"/>
         <source>Any</source>
         <translation>Katerikoli</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Latin</source>
         <translation>Latinska</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Greek</source>
         <translation>Grška</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Cyrillic</source>
         <translation>Cirilica</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Armenian</source>
         <translation>Armenska</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Hebrew</source>
         <translation>Hebrejska</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Arabic</source>
         <translation>Arabska</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Syriac</source>
         <translation>Sirijska</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Thaana</source>
         <translation>Thaana</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Devanagari</source>
         <translation>Devanagari</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Bengali</source>
         <translation>Bengalska</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 type="unfinished">oriya</translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>Oriya</translation>
+    </message>
+    <message>
         <source>Tamil</source>
         <translation>Tamilska</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Telugu</source>
         <translation>Teluška</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Kannada</source>
-        <translation type="unfinished">kannada</translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>Kannada</translation>
+    </message>
+    <message>
         <source>Malayalam</source>
-        <translation type="unfinished">malayalam</translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>Malayalam</translation>
+    </message>
+    <message>
         <source>Sinhala</source>
-        <translation type="unfinished">Sinhala</translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>Sinhala</translation>
+    </message>
+    <message>
         <source>Thai</source>
         <translation>Tajska</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Lao</source>
         <translation>Laoška</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Tibetan</source>
         <translation>Tibetanska</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Myanmar</source>
         <translation>Mjanmarska</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Georgian</source>
         <translation>Gruzijska</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Khmer</source>
         <translation>Kmerska</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Simplified Chinese</source>
         <translation>Poenostavljena kitajska</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Traditional Chinese</source>
         <translation>Tradicionalna kitajska</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Japanese</source>
         <translation>Japonska</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Korean</source>
         <translation>Korejska</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Vietnamese</source>
         <translation>Vietnamska</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Symbol</source>
         <translation>Simbol</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Ogham</source>
         <translation>Oghamska</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Runic</source>
         <translation>Runska</translation>
     </message>
+    <message>
+        <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;Pisava</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Font st&amp;yle</source>
         <translation>&amp;Slog pisave</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Size</source>
         <translation>&amp;Velikost</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Effects</source>
         <translation>Učinki</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Stri&amp;keout</source>
         <translation>P&amp;rečrtaj</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Underline</source>
         <translation>Po&amp;dčrtaj</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Sample</source>
         <translation>Vzorec</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Wr&amp;iting System</source>
         <translation>S&amp;istem pisanja</translation>
     </message>
     <message>
-        <location line="-609"/>
-        <location line="+257"/>
         <source>Select Font</source>
         <translation>Izberite pisavo</translation>
     </message>
@@ -2124,145 +2894,104 @@
 <context>
     <name>QFtp</name>
     <message>
-        <location filename="../src/network/access/qftp.cpp" line="+828"/>
-        <location filename="../src/qt3support/network/q3ftp.cpp" line="+683"/>
         <source>Not connected</source>
         <translation>Brez povezave</translation>
     </message>
     <message>
-        <location line="+68"/>
-        <location filename="../src/qt3support/network/q3ftp.cpp" line="+65"/>
         <source>Host %1 not found</source>
         <translation>Gostitelj %1 ni bil najden</translation>
     </message>
     <message>
-        <location line="+4"/>
-        <location filename="../src/qt3support/network/q3ftp.cpp" line="+4"/>
         <source>Connection refused to host %1</source>
         <translation>Povezava z gostiteljem %1 je bila zavrnjena</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Connection timed out to host %1</source>
         <translation>Čas za povezavo z gostiteljem %1 je potekel</translation>
     </message>
     <message>
-        <location line="+104"/>
-        <location filename="../src/qt3support/network/q3ftp.cpp" line="+102"/>
-        <location line="+1451"/>
         <source>Connected to host %1</source>
         <translation>Povezan z gostiteljem %1</translation>
     </message>
     <message>
-        <location line="+219"/>
-        <location filename="../src/qt3support/network/q3ftp.cpp" line="-1290"/>
         <source>Connection refused for data connection</source>
         <translation>Podatkovna povezava je bila zavrnjena</translation>
     </message>
     <message>
-        <location line="+178"/>
-        <location line="+29"/>
-        <location filename="../src/qt3support/network/q3ftp.cpp" line="+195"/>
-        <location line="+728"/>
         <source>Unknown error</source>
         <translation>Neznana napaka</translation>
     </message>
     <message>
-        <location line="+891"/>
-        <location filename="../src/qt3support/network/q3ftp.cpp" line="+77"/>
         <source>Connecting to host failed:
 %1</source>
         <translation>Povezovanje z gostiteljem %1 ni uspelo:
 %1</translation>
     </message>
     <message>
-        <location line="+4"/>
-        <location filename="../src/qt3support/network/q3ftp.cpp" line="+3"/>
         <source>Login failed:
 %1</source>
         <translation>Prijava ni uspela:
 %1</translation>
     </message>
     <message>
-        <location line="+4"/>
-        <location filename="../src/qt3support/network/q3ftp.cpp" line="+3"/>
         <source>Listing directory failed:
 %1</source>
         <translation>Izpis seznama map ni uspel:
 %1</translation>
     </message>
     <message>
-        <location line="+4"/>
-        <location filename="../src/qt3support/network/q3ftp.cpp" line="+3"/>
         <source>Changing directory failed:
 %1</source>
         <translation>Spreminjanje mape ni uspelo:
 %1</translation>
     </message>
     <message>
-        <location line="+4"/>
-        <location filename="../src/qt3support/network/q3ftp.cpp" line="+3"/>
         <source>Downloading file failed:
 %1</source>
         <translation>Prejemanje datoteke ni uspelo:
 %1</translation>
     </message>
     <message>
-        <location line="+4"/>
-        <location filename="../src/qt3support/network/q3ftp.cpp" line="+3"/>
         <source>Uploading file failed:
 %1</source>
         <translation>Pošiljanje datoteke ni uspelo:
 %1</translation>
     </message>
     <message>
-        <location line="+4"/>
-        <location filename="../src/qt3support/network/q3ftp.cpp" line="+3"/>
         <source>Removing file failed:
 %1</source>
         <translation>Odstranjevanje datoteke ni uspelo:
 %1</translation>
     </message>
     <message>
-        <location line="+4"/>
-        <location filename="../src/qt3support/network/q3ftp.cpp" line="+3"/>
         <source>Creating directory failed:
 %1</source>
         <translation>Ustvarjanje mape ni uspelo:
 %1</translation>
     </message>
     <message>
-        <location line="+4"/>
-        <location filename="../src/qt3support/network/q3ftp.cpp" line="+3"/>
         <source>Removing directory failed:
 %1</source>
         <translation>Odstranjevanje mape ni uspelo:
 %1</translation>
     </message>
     <message>
-        <location line="+28"/>
-        <location filename="../src/qt3support/network/q3ftp.cpp" line="+25"/>
-        <location line="+250"/>
         <source>Connection closed</source>
         <translation>Povezava je bila prekinjena</translation>
     </message>
     <message>
-        <location filename="../src/qt3support/network/q3ftp.cpp" line="-11"/>
         <source>Host %1 found</source>
         <translation>Gostitelj %1 je bil najden</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Connection to %1 closed</source>
         <translation>Povezava s %1 je bila prekinjena</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Host found</source>
         <translation>Gostitelj je bil najden</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Connected to host</source>
         <translation>Povezan z gostiteljem</translation>
     </message>
@@ -2270,43 +2999,33 @@
 <context>
     <name>QHostInfo</name>
     <message>
-        <location filename="../src/network/kernel/qhostinfo_p.h" line="+183"/>
         <source>Unknown error</source>
         <translation>Neznana napaka</translation>
     </message>
+    <message>
+        <source>No host name given</source>
+        <translation>Podano ni bilo nobeno ime gostitelja</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>Ni moč najti gostitelja</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>Neznana vrsta naslova</translation>
     </message>
     <message>
-        <location line="+10"/>
-        <location filename="../src/network/kernel/qhostinfo_win.cpp" line="-19"/>
-        <location line="+27"/>
         <source>Unknown error</source>
         <translation>Neznana napaka</translation>
     </message>
     <message>
-        <location filename="../src/network/kernel/qhostinfo_win.cpp" line="-67"/>
         <source>No host name given</source>
         <translation>Podano ni bilo nobeno ime gostitelja</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Invalid hostname</source>
         <translation>Neveljavno ime gostitelja</translation>
     </message>
@@ -2314,155 +3033,110 @@
 <context>
     <name>QHttp</name>
     <message>
-        <location filename="../src/network/access/qhttp.cpp" line="+1582"/>
-        <location line="+820"/>
-        <location filename="../src/qt3support/network/q3http.cpp" line="+1159"/>
-        <location line="+567"/>
         <source>Unknown error</source>
         <translation>Neznana napaka</translation>
     </message>
     <message>
-        <location line="-568"/>
-        <location filename="../src/qt3support/network/q3http.cpp" line="-370"/>
         <source>Request aborted</source>
         <translation>Zahteva prekinjena</translation>
     </message>
     <message>
-        <location line="+579"/>
-        <location filename="../src/qt3support/network/q3http.cpp" line="+381"/>
         <source>No server set to connect to</source>
         <translation>Strežnik za povezavo ni nastavljen</translation>
     </message>
     <message>
-        <location line="+164"/>
-        <location filename="../src/qt3support/network/q3http.cpp" line="+56"/>
         <source>Wrong content length</source>
         <translation>Napačna dolžina vsebine</translation>
     </message>
     <message>
-        <location line="+4"/>
-        <location filename="../src/qt3support/network/q3http.cpp" line="+4"/>
         <source>Server closed connection unexpectedly</source>
         <translation>Strežnik je nepričakovano prekinil povezavo</translation>
     </message>
     <message>
-        <location line="+200"/>
         <source>Unknown authentication method</source>
         <translation>Neznan način overjanja</translation>
     </message>
     <message>
-        <location line="+183"/>
         <source>Error writing response to device</source>
         <translation>Napaka pri pisanju odziva na napravo</translation>
     </message>
     <message>
-        <location filename="../src/network/access/qhttpnetworkconnection.cpp" line="+569"/>
-        <location filename="../src/qt3support/network/q3http.cpp" line="+38"/>
         <source>Connection refused</source>
         <translation>Povezava je zavrnjena</translation>
     </message>
     <message>
-        <location filename="../src/network/access/qhttp.cpp" line="-325"/>
-        <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>Gostitelj %1 ni bil najden</translation>
     </message>
     <message>
-        <location line="+20"/>
-        <location filename="../src/network/access/qhttpnetworkconnection.cpp" line="+10"/>
-        <location line="+19"/>
-        <location filename="../src/qt3support/network/q3http.cpp" line="+3"/>
         <source>HTTP request failed</source>
         <translation>Zahtevek HTTP ni uspel</translation>
     </message>
     <message>
-        <location line="+94"/>
-        <location filename="../src/qt3support/network/q3http.cpp" line="+69"/>
         <source>Invalid HTTP response header</source>
         <translation>Neveljavna glava odgovora HTTP</translation>
     </message>
     <message>
-        <location line="+125"/>
-        <location line="+48"/>
-        <location filename="../src/qt3support/network/q3http.cpp" line="+40"/>
-        <location line="+47"/>
         <source>Invalid HTTP chunked body</source>
         <translation>Neveljavno razdeljeno telo HTTP</translation>
     </message>
     <message>
-        <location filename="../src/qt3support/network/q3http.cpp" line="+294"/>
         <source>Host %1 found</source>
         <translation>Gostitelj %1 je bil najden</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Connected to host %1</source>
         <translation>Povezan z gostiteljem %1</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Connection to %1 closed</source>
         <translation>Povezava s %1 je bila prekinjena</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Host found</source>
         <translation>Gostitelj je bil najden</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Connected to host</source>
         <translation>Povezan z gostiteljem</translation>
     </message>
     <message>
-        <location filename="../src/network/access/qhttpnetworkconnection.cpp" line="-22"/>
-        <location filename="../src/qt3support/network/q3http.cpp" line="+3"/>
         <source>Connection closed</source>
         <translation>Povezava je bila prekinjena</translation>
     </message>
     <message>
-        <location filename="../src/network/access/qhttp.cpp" line="-135"/>
         <source>Proxy authentication required</source>
         <translation>Potrebna je overitev pri posredniku</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Authentication required</source>
         <translation>Potrebna je overitev</translation>
     </message>
     <message>
-        <location line="-159"/>
         <source>Connection refused (or timed out)</source>
         <translation>Povezava je bila zavrnjena (ali pa je potekel čas)</translation>
     </message>
     <message>
-        <location filename="../src/network/access/qhttpnetworkconnection.cpp" line="+6"/>
         <source>Proxy requires authentication</source>
         <translation>Posrednik zahteva overitev</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Host requires authentication</source>
         <translation>Gostitelj zahteva overitev</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Data corrupted</source>
         <translation>Podatki so okvarjeni</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Unknown protocol specified</source>
         <translation>Naveden je bil neznan protokol</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>SSL handshake failed</source>
         <translation>Rokovanje SSL ni uspelo</translation>
     </message>
     <message>
-        <location filename="../src/network/access/qhttp.cpp" line="-2266"/>
         <source>HTTPS connection requested but SSL support not compiled in</source>
         <translation>Zahtevana je bila povezava HTTPS, a podpora za SSL ni bila vgrajena</translation>
     </message>
@@ -2470,47 +3144,38 @@
 <context>
     <name>QHttpSocketEngine</name>
     <message>
-        <location filename="../src/network/socket/qhttpsocketengine.cpp" line="-89"/>
         <source>Did not receive HTTP response from proxy</source>
         <translation>Od posrednika ni bil prejet odgovor HTTP</translation>
     </message>
     <message>
-        <location line="+25"/>
         <source>Error parsing authentication request from proxy</source>
         <translation>Napaka pri razčlenjevanju overitvenega zahtevka od posrednika</translation>
     </message>
     <message>
-        <location line="+31"/>
         <source>Authentication required</source>
         <translation>Potrebna je overitev</translation>
     </message>
     <message>
-        <location line="+27"/>
         <source>Proxy denied connection</source>
         <translation>Posrednik je zavrnil povezavo</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>Error communicating with HTTP proxy</source>
         <translation>Napaka pri komunikaciji s posrednikom HTTP</translation>
     </message>
     <message>
-        <location line="+23"/>
         <source>Proxy server not found</source>
         <translation>Posredniški strežnik ni bil najden</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Proxy connection refused</source>
         <translation>Povezava s posrednikom je bila zavrnjena</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Proxy server connection timed out</source>
         <translation>Čas za povezavo s posredniškim strežnikom je potekel</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Proxy connection closed prematurely</source>
         <translation>Povezava s posrednikom je bila prekinjena predčasno</translation>
     </message>
@@ -2518,22 +3183,18 @@
 <context>
     <name>QIBaseDriver</name>
     <message>
-        <location filename="../src/sql/drivers/ibase/qsql_ibase.cpp" line="+1491"/>
         <source>Error opening database</source>
         <translation>Napaka pri odpiranju podatkovne zbirke</translation>
     </message>
     <message>
-        <location line="+54"/>
         <source>Could not start transaction</source>
         <translation>Ni bilo moč začeti transakcije</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>Unable to commit transaction</source>
         <translation>Ni moč udejaniti transakcije</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>Unable to rollback transaction</source>
         <translation>Ni moč razveljaviti transakcije</translation>
     </message>
@@ -2541,89 +3202,70 @@
 <context>
     <name>QIBaseResult</name>
     <message>
-        <location line="-1149"/>
         <source>Unable to create BLOB</source>
         <translation>Ni moč ustvariti BLOB-a</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Unable to write BLOB</source>
         <translation>Ni moč zapisati BLOB-a</translation>
     </message>
     <message>
-        <location line="+14"/>
         <source>Unable to open BLOB</source>
         <translation>Ni moč odpreti BLOB-a</translation>
     </message>
     <message>
-        <location line="+16"/>
         <source>Unable to read BLOB</source>
         <translation>Ni moč prebrati BLOB-a</translation>
     </message>
     <message>
-        <location line="+125"/>
-        <location line="+187"/>
         <source>Could not find array</source>
         <translation>Ni bilo moč najti polja</translation>
     </message>
     <message>
-        <location line="-155"/>
         <source>Could not get array data</source>
         <translation>Ni bilo moč pridobiti podatkov iz polja</translation>
     </message>
     <message>
-        <location line="+210"/>
         <source>Could not get query info</source>
         <translation>Ni bilo moč pridobiti podatkov o poizvedbi</translation>
     </message>
     <message>
-        <location line="+20"/>
         <source>Could not start transaction</source>
         <translation>Ni bilo moč začeti transakcije</translation>
     </message>
     <message>
-        <location line="+19"/>
         <source>Unable to commit transaction</source>
         <translation>Ni moč udejaniti transakcije</translation>
     </message>
     <message>
-        <location line="+42"/>
         <source>Could not allocate statement</source>
         <translation>Ni bilo moč dodeliti prostora za izjavo</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Could not prepare statement</source>
         <translation>Ni bilo moč pripraviti izjave</translation>
     </message>
     <message>
-        <location line="+5"/>
-        <location line="+11"/>
         <source>Could not describe input statement</source>
         <translation>Ni bilo moč opisati vhodne izjave</translation>
     </message>
     <message>
-        <location line="+14"/>
         <source>Could not describe statement</source>
         <translation>Ni bilo moč opisati izjave</translation>
     </message>
     <message>
-        <location line="+115"/>
         <source>Unable to close statement</source>
         <translation>Ni moč zaključiti izjave</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Unable to execute query</source>
         <translation>Ni moč izvesti poizvedbe</translation>
     </message>
     <message>
-        <location line="+46"/>
         <source>Could not fetch next item</source>
         <translation>Ni bilo moč pridobiti sledeče postavke</translation>
     </message>
     <message>
-        <location line="+197"/>
         <source>Could not get statement info</source>
         <translation>Ni bilo moč pridobiti podatkov o izjavi</translation>
     </message>
@@ -2631,27 +3273,22 @@
 <context>
     <name>QIODevice</name>
     <message>
-        <location filename="../src/corelib/global/qglobal.cpp" line="+2058"/>
         <source>Permission denied</source>
         <translation>Nimate dovoljenja</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Too many open files</source>
         <translation>Preveč odprtih datotek</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>No such file or directory</source>
         <translation>Ta datoteka ali mapa ne obstaja</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>No space left on device</source>
         <translation>Ni prostora na napravi</translation>
     </message>
     <message>
-        <location filename="../src/corelib/io/qiodevice.cpp" line="+1561"/>
         <source>Unknown error</source>
         <translation>Neznana napaka</translation>
     </message>
@@ -2659,32 +3296,26 @@
 <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>Način za vnašanje XIM</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Windows input method</source>
         <translation>Način za vnašanje Windows</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Mac OS X input method</source>
         <translation>Način za vnašanje Mac OS X</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>S60 FEP input method</source>
         <translation>Način za vnašanje S60 FEP</translation>
     </message>
@@ -2692,7 +3323,6 @@
 <context>
     <name>QInputDialog</name>
     <message>
-        <location filename="../src/gui/dialogs/qinputdialog.cpp" line="+223"/>
         <source>Enter a value:</source>
         <translation>Vnesite vrednost:</translation>
     </message>
@@ -2700,66 +3330,50 @@
 <context>
     <name>QLibrary</name>
     <message>
-        <location filename="../src/corelib/plugin/qlibrary.cpp" line="+383"/>
         <source>Could not mmap &apos;%1&apos;: %2</source>
         <translation>Ni bilo moč izvesti funkcije mmap za »%1«: %2</translation>
     </message>
     <message>
-        <location line="+22"/>
         <source>Plugin verification data mismatch in &apos;%1&apos;</source>
         <translation>Neujemanje podatkov za potrjevanje vstavkov v »%1«</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Could not unmap &apos;%1&apos;: %2</source>
         <translation>Ni bilo moč izvesti funkcije unmap za »%1«: %2</translation>
     </message>
     <message>
-        <location line="+341"/>
         <source>The plugin &apos;%1&apos; uses incompatible Qt library. (%2.%3.%4) [%5]</source>
         <translation>Vstavek »%1« uporablja nezdružljivo knjižnico Qt. (%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>Vstavek »%1« uporablja nezdružljivo knjižnico Qt. Pričakovan je bil ključ gradnje »%2«, dobljen je bil »%3«</translation>
     </message>
     <message>
-        <location line="+365"/>
         <source>Unknown error</source>
         <translation>Neznana napaka</translation>
     </message>
     <message>
-        <location line="-402"/>
-        <location filename="../src/corelib/plugin/qpluginloader.cpp" line="+343"/>
         <source>The shared library was not found.</source>
         <translation>Deljena knjižnica ni bila najdena.</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>The file &apos;%1&apos; is not a valid Qt plugin.</source>
         <translation>Datoteka »%1« ni veljaven vstavek Qt.</translation>
     </message>
     <message>
-        <location line="+43"/>
         <source>The plugin &apos;%1&apos; uses incompatible Qt library. (Cannot mix debug and release libraries.)</source>
         <translation>Vstavek »%1« uporablja nezdružljivo knjižnico Qt. (Ni moč mešati knjižnic za razhroščevanje in izdajo.)</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>Ni moč naložiti knjižnice %1: %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>Ni moč odstraniti knjižnice %1: %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>Ni moč razrešiti simbola »%1« v %2: %3</translation>
     </message>
@@ -2767,37 +3381,30 @@
 <context>
     <name>QLineEdit</name>
     <message>
-        <location filename="../src/gui/widgets/qlineedit.cpp" line="+1980"/>
         <source>&amp;Undo</source>
         <translation>&amp;Razveljavi</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>&amp;Redo</source>
         <translation>&amp;Uveljavi</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Cu&amp;t</source>
         <translation>&amp;Izreži</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>&amp;Copy</source>
         <translation>S&amp;kopiraj</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>&amp;Paste</source>
         <translation>Pri&amp;lepi</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Delete</source>
         <translation>Izbriši</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Select All</source>
         <translation>Izberi vse</translation>
     </message>
@@ -2805,23 +3412,18 @@
 <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: napaka v imenu</translation>
     </message>
     <message>
-        <location filename="../src/network/socket/qlocalserver_unix.cpp" line="-8"/>
         <source>%1: Permission denied</source>
         <translation>%1: nimate dovoljenja</translation>
     </message>
     <message>
-        <location line="+12"/>
         <source>%1: Address in use</source>
         <translation>%1: naslov je že v uporabi</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>%1: Unknown error %2</source>
         <translation>%1: neznana napaka %2</translation>
     </message>
@@ -2829,70 +3431,46 @@
 <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: povezava je bila zavrnjena</translation>
     </message>
     <message>
-        <location line="+3"/>
-        <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+3"/>
         <source>%1: Remote closed</source>
         <translation>%1: oddaljeni je prekinil</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: neveljavno ime</translation>
     </message>
     <message>
-        <location line="+3"/>
-        <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+3"/>
         <source>%1: Socket access error</source>
         <translation>%1: napaka pri dostopu do vtičnice</translation>
     </message>
     <message>
-        <location line="+3"/>
-        <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+3"/>
         <source>%1: Socket resource error</source>
         <translation>%1: napaka vira vtičnice</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: čas za dejanje na vtičnici je potekel</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 prevelik</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: napaka povezave</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: dejanje na vtičnici ni podprto</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>%1: Unknown error</source>
         <translation>%1: neznana napaka</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: neznana napaka %2</translation>
     </message>
@@ -2900,27 +3478,22 @@
 <context>
     <name>QMYSQLDriver</name>
     <message>
-        <location filename="../src/sql/drivers/mysql/qsql_mysql.cpp" line="+1261"/>
         <source>Unable to open database &apos;</source>
         <translation>Ni moč odpreti podatkovne zbirke »</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>Unable to connect</source>
         <translation>Ni moč vzpostaviti povezave</translation>
     </message>
     <message>
-        <location line="+151"/>
         <source>Unable to begin transaction</source>
         <translation>Ni moč začeti transakcije</translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>Unable to commit transaction</source>
         <translation>Ni moč udejaniti transakcije</translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>Unable to rollback transaction</source>
         <translation>Ni moč razveljaviti transakcije</translation>
     </message>
@@ -2928,59 +3501,46 @@
 <context>
     <name>QMYSQLResult</name>
     <message>
-        <location line="-969"/>
         <source>Unable to fetch data</source>
         <translation>Ni moč pridobiti podatkov</translation>
     </message>
     <message>
-        <location line="+183"/>
         <source>Unable to execute query</source>
         <translation>Ni moč izvesti poizvedbe</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Unable to store result</source>
         <translation>Ni moč shraniti rezultata</translation>
     </message>
     <message>
-        <location line="+191"/>
-        <location line="+8"/>
         <source>Unable to prepare statement</source>
         <translation>Ni moč pripraviti izjave</translation>
     </message>
     <message>
-        <location line="+37"/>
         <source>Unable to reset statement</source>
         <translation>Ni moč ponastaviti izjave</translation>
     </message>
     <message>
-        <location line="+86"/>
         <source>Unable to bind value</source>
         <translation>Ni moč prikleniti vrednosti</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>Unable to execute statement</source>
         <translation>Ni moč izvesti izjave</translation>
     </message>
     <message>
-        <location line="+14"/>
-        <location line="+21"/>
         <source>Unable to bind outvalues</source>
         <translation>Ni moč prikleniti izhodnih vrednosti</translation>
     </message>
     <message>
-        <location line="-12"/>
         <source>Unable to store statement results</source>
         <translation>Ni moč shraniti rezultatov izjave</translation>
     </message>
     <message>
-        <location line="-253"/>
         <source>Unable to execute next query</source>
         <translation>Ni moč izvesti sledeče poizvedbe</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>Unable to store next result</source>
         <translation>Ni moč shraniti sledečega rezultata</translation>
     </message>
@@ -2988,7 +3548,6 @@
 <context>
     <name>QMdiArea</name>
     <message>
-        <location filename="../src/gui/widgets/qmdiarea.cpp" line="+290"/>
         <source>(Untitled)</source>
         <translation>(neimenovano)</translation>
     </message>
@@ -2996,92 +3555,74 @@
 <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>Zapri</translation>
     </message>
     <message>
-        <location line="-18"/>
         <source>Minimize</source>
         <translation>Pomanjšaj</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>Restore Down</source>
         <translation>Obnovi navzdol</translation>
     </message>
     <message>
-        <location line="+707"/>
         <source>&amp;Restore</source>
         <translation>&amp;Obnovi</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>&amp;Move</source>
         <translation>&amp;Premakni</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Size</source>
         <translation>&amp;Velikost</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Mi&amp;nimize</source>
         <translation>Po&amp;manjšaj</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Ma&amp;ximize</source>
         <translation>&amp;Razpni</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Stay on &amp;Top</source>
         <translation>Ostani na &amp;vrhu</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>&amp;Close</source>
         <translation>&amp;Zapri</translation>
     </message>
     <message>
-        <location line="-787"/>
         <source>- [%1]</source>
         <translation>- [%1]</translation>
     </message>
     <message>
-        <location line="+58"/>
         <source>Maximize</source>
         <translation>Razpni</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Unshade</source>
         <translation>Razvij</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Shade</source>
         <translation>Zvij</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Restore</source>
         <translation>Obnovi</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Help</source>
         <translation>Pomoč</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Menu</source>
         <translation>Meni</translation>
     </message>
@@ -3089,21 +3630,14 @@
 <context>
     <name>QMenu</name>
     <message>
-        <location filename="../src/plugins/accessible/widgets/qaccessiblemenu.cpp" line="+157"/>
-        <location line="+225"/>
         <source>Close</source>
         <translation>Zapri</translation>
     </message>
     <message>
-        <location line="-224"/>
-        <location line="+225"/>
         <source>Open</source>
         <translation>Odpri</translation>
     </message>
     <message>
-        <location line="-223"/>
-        <location line="+225"/>
-        <location line="+51"/>
         <source>Execute</source>
         <translation>Izvedi</translation>
     </message>
@@ -3111,7 +3645,6 @@
 <context>
     <name>QMenuBar</name>
     <message>
-        <location filename="../src/gui/widgets/qmenu_symbian.cpp" line="+410"/>
         <source>Actions</source>
         <translation>Dejanja</translation>
     </message>
@@ -3119,40 +3652,30 @@
 <context>
     <name>QMessageBox</name>
     <message>
-        <location filename="../src/gui/dialogs/qmessagebox.cpp" line="-1116"/>
         <source>Help</source>
         <translation>Pomoč</translation>
     </message>
     <message>
-        <location line="-848"/>
-        <location line="+847"/>
-        <location filename="../src/gui/dialogs/qmessagebox.h" line="-52"/>
-        <location line="+8"/>
         <source>OK</source>
         <translation>V redu</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;O Qt&lt;/h3&gt;&lt;p&gt;Ta program uporablja Qt različice %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) 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>&lt;p&gt;Qt je skupek gradnikov C++ za razvoj programov, ki tečejo na več platformah.&lt;/p&gt;&lt;p&gt;Qt omogoča isto kodo prenašati med platformami Linux, Mac&amp;nbsp;OS&amp;nbsp;X, Windows in vsemi večjimi variantami UNIX-a. Qt je na voljo tudi za vgrajene naprave in sicer kot Qt for Embedded Linux in Qt for Windows CE.&lt;/p&gt;&lt;p&gt;Qt je na voljo pod tremi možnimi licenčnimi pogoji, ki ustrezajo različnim željam uporabnikov.&lt;/p&gt;&lt;p&gt;Qt pod licenco GNU General Public License različice 3.0 (&lt;a href=&quot;http://www.gnu.org/licenses/gpl-3.0.html&quot;&gt;GPLv3.0&lt;/a&gt;) je primeren za razvoj programov Qt, ki so povsem &lt;a href=&quot;http://www.gnu.org/philosophy/free-sw.html&quot;&gt;prosti in odprto-kodni&lt;/a&gt;. S to licenco se uporabnikom programa zagotovijo vse pravice in svoboščine, kot jih je imel izdelovalec programa.&lt;/p&gt;&lt;p&gt;Qt pod licenco GNU Lesser General Public License različice 2.1 (&lt;a href=&quot;http://www.gnu.org/licenses/lgpl-2.1.html&quot;&gt;LGPLv2.1&lt;/a&gt;) omogoča tudi razvoj programov, ki uporabnikom ne zagotavljajo vseh pravic in svoboščin, kot jih je imel izdelovalec. Omogoča na primer tudi razvoj zaprto-kodnih programov.&lt;/p&gt;&lt;p&gt;Qt pod posebno komercialno licenco je namenjen razvoju lastniških in zaprto-kodnih programov, kjer izdelovalec z uporabniki noče deliti nič izvorne kode ter pravic in svoboščin, ali pa ne more ustreči pogojem licenc GPLv3.0 ali LGPLv2.1.&lt;/p&gt;&lt;p&gt;Za pregled licenčnih možnosti si oglejte spletno stran &lt;a href=&quot;http://qt.nokia.com/products/licensing&quot;&gt;qt.nokia.com/products/licensing&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Avtorske pravice © 2009 Nokia Corporation in/ali podružnice ter zunanji prispevajoči.&lt;/p&gt;&lt;p&gt;Qt je proizvod podjetja Nokia. Za dodatne podatke si oglejte &lt;a href=&quot;http://qt.nokia.com/&quot;&gt;qt.nokia.com&lt;/a&gt;.&lt;/p&gt;</translation>
-    </message>
-    <message>
-        <location line="+31"/>
+        <translation>&lt;p&gt;Qt je skupek gradnikov C++ za razvoj programov, ki tečejo na več platformah.&lt;/p&gt;&lt;p&gt;Qt omogoča isto kodo prenašati med platformami Linux, Mac&amp;nbsp;OS&amp;nbsp;X, Windows in vsemi večjimi variantami UNIX-a. Qt je na voljo tudi za vgrajene naprave in sicer kot Qt for Embedded Linux in Qt for Windows CE.&lt;/p&gt;&lt;p&gt;Qt je na voljo pod tremi možnimi licenčnimi pogoji, ki ustrezajo različnim željam uporabnikov.&lt;/p&gt;&lt;p&gt;Qt pod licenco GNU General Public License različice 3.0 (&lt;a href=&quot;http://www.gnu.org/licenses/gpl-3.0.html&quot;&gt;GPLv3.0&lt;/a&gt;) je primeren za razvoj programov Qt, ki so povsem &lt;a href=&quot;http://www.gnu.org/philosophy/free-sw.html&quot;&gt;prosti in odprto-kodni&lt;/a&gt;. S to licenco se uporabnikom programa zagotovijo vse pravice in svoboščine, kot jih je imel izdelovalec programa.&lt;/p&gt;&lt;p&gt;Qt pod licenco GNU Lesser General Public License različice 2.1 (&lt;a href=&quot;http://www.gnu.org/licenses/lgpl-2.1.html&quot;&gt;LGPLv2.1&lt;/a&gt;) omogoča tudi razvoj programov, ki uporabnikom ne zagotavljajo vseh pravic in svoboščin, kot jih je imel izdelovalec. Omogoča na primer tudi razvoj zaprto-kodnih programov.&lt;/p&gt;&lt;p&gt;Qt pod posebno komercialno licenco je namenjen razvoju lastniških in zaprto-kodnih programov, kjer izdelovalec z uporabniki noče deliti nič izvorne kode ter pravic in svoboščin, ali pa ne more ustreči pogojem licenc GPLv3.0 ali LGPLv2.1.&lt;/p&gt;&lt;p&gt;Za pregled licenčnih možnosti si oglejte spletno stran &lt;a href=&quot;http://qt.nokia.com/products/licensing&quot;&gt;qt.nokia.com/products/licensing&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Avtorske pravice © 2009 Nokia Corporation in/ali podružnice ter zunanji prispevajoči.&lt;/p&gt;&lt;p&gt;Qt je proizvod podjetja Nokia. Za dodatne podatke si oglejte &lt;a href=&quot;http://qt.nokia.com/&quot;&gt;qt.nokia.com&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Prevedel: &lt;a href=&quot;mailto:jlp@holodeck1.com&quot;&gt;Jure Repinc&lt;/a&gt;, &lt;a href=&quot;http://www.lugos.si/&quot;&gt;LUGOS&lt;/a&gt;&lt;/p&gt;</translation>
+    </message>
+    <message>
         <source>About Qt</source>
         <translation>O Qt</translation>
     </message>
     <message>
-        <location line="-1611"/>
         <source>Show Details...</source>
         <translation>Prikaži podrobnosti ...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Hide Details...</source>
         <translation>Skrij podrobnosti ...</translation>
     </message>
@@ -3160,7 +3683,6 @@
 <context>
     <name>QMultiInputContext</name>
     <message>
-        <location filename="../src/plugins/inputmethods/imsw-multi/qmultiinputcontext.cpp" line="+88"/>
         <source>Select IM</source>
         <translation>Izberite način vnašanja</translation>
     </message>
@@ -3168,12 +3690,10 @@
 <context>
     <name>QMultiInputContextPlugin</name>
     <message>
-        <location filename="../src/plugins/inputmethods/imsw-multi/qmultiinputcontextplugin.cpp" line="+95"/>
         <source>Multiple input method switcher</source>
         <translation>Orodje za preklop med načini vnašanja</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Multiple input method switcher that uses the context menu of the text widgets</source>
         <translation>Orodje za preklop med več načini vnašanja, ki uporablja priročni meni besedilnih gradnikov</translation>
     </message>
@@ -3181,132 +3701,106 @@
 <context>
     <name>QNativeSocketEngine</name>
     <message>
-        <location filename="../src/network/socket/qnativesocketengine.cpp" line="+206"/>
         <source>The remote host closed the connection</source>
         <translation>Oddaljen gostitelj je prekinil povezavo</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Network operation timed out</source>
         <translation>Čas za omrežni postopek je potekel</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Out of resources</source>
         <translation>Zmanjkalo je virov</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Unsupported socket operation</source>
         <translation>Nepodprto dejanje za vtičnico</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Protocol type not supported</source>
         <translation>Vrsta protokola ni podprta</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Invalid socket descriptor</source>
         <translation>Neveljaven opisnik vtičnice</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Network unreachable</source>
         <translation>Omrežje ni dosegljivo</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Permission denied</source>
         <translation>Nimate dovoljenja</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Connection timed out</source>
         <translation>Čas za povezavo je potekel</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Connection refused</source>
         <translation>Povezava je zavrnjena</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>The bound address is already in use</source>
         <translation>Naslov za vezavo je že v uporabi</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>The address is not available</source>
         <translation>Naslov ni na voljo</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>The address is protected</source>
         <translation>Naslov je zaščiten</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Unable to send a message</source>
         <translation>Ni moč poslati sporočila</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Unable to receive a message</source>
         <translation>Ni moč prejeti sporočila</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Unable to write</source>
         <translation>Ni moč zapisovati</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Network error</source>
         <translation>Napaka v omrežju</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Another socket is already listening on the same port</source>
         <translation>Druga vtičnica že posluša na istih vratih</translation>
     </message>
     <message>
-        <location line="-66"/>
         <source>Unable to initialize non-blocking socket</source>
         <translation>Ni moč inicializirati ne-blokirne vtičnice</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Unable to initialize broadcast socket</source>
         <translation>Ni moč inicializirati vtičnice za oddajanje</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Attempt to use IPv6 socket on a platform with no IPv6 support</source>
         <translation>Poskus uporabe vtičnice IPv6 na platformi brez podpore za IPv6</translation>
     </message>
     <message>
-        <location line="+21"/>
         <source>Host unreachable</source>
         <translation>Gostitelj ni dosegljiv</translation>
     </message>
     <message>
-        <location line="+24"/>
         <source>Datagram was too large to send</source>
         <translation>Datagram je bil prevelik za pošiljanje</translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>Operation on non-socket</source>
         <translation>Dejanje na ne-vtičnici</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Unknown error</source>
         <translation>Neznana napaka</translation>
     </message>
     <message>
-        <location line="-3"/>
         <source>The proxy type is invalid for this operation</source>
         <translation>Vrsta posrednika za to dejanje ni veljavna</translation>
     </message>
@@ -3314,43 +3808,55 @@
 <context>
     <name>QNetworkAccessCacheBackend</name>
     <message>
-        <location filename="../src/network/access/qnetworkaccesscachebackend.cpp" line="+66"/>
         <source>Error opening %1</source>
         <translation>Napaka pri odpiranju %1</translation>
     </message>
 </context>
 <context>
+    <name>QNetworkAccessDataBackend</name>
+    <message>
+        <source>Operation not supported on %1</source>
+        <translation>Dejanje na %1 ni podprto</translation>
+    </message>
+    <message>
+        <source>Invalid URI: %1</source>
+        <translation>Neveljaven URI: %1</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>Napaka pri zapisovanju v %1: %2</translation>
     </message>
+    <message>
+        <source>Socket error on %1: %2</source>
+        <translation>Napaka vtičnice na %1: %2</translation>
+    </message>
+    <message>
+        <source>Remote host closed the connection prematurely on %1</source>
+        <translation>Oddaljen gostitelj je predčasno prekinil povezavo na %1</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>Zahtevek za odprtje ne-krajevne datoteke %1</translation>
     </message>
     <message>
-        <location line="+45"/>
         <source>Error opening %1: %2</source>
         <translation>Napaka pri odpiranju %1: %2</translation>
     </message>
     <message>
-        <location line="+38"/>
         <source>Write error writing to %1: %2</source>
         <translation>Napaka pri zapisovanju v %1: %2</translation>
     </message>
     <message>
-        <location line="+48"/>
         <source>Cannot open %1: Path is a directory</source>
         <translation>Ni moč odpreti %1: pot je mapa</translation>
     </message>
     <message>
-        <location line="+21"/>
         <source>Read error reading from %1: %2</source>
         <translation>Napaka pri branju iz %1: %2</translation>
     </message>
@@ -3358,27 +3864,22 @@
 <context>
     <name>QNetworkAccessFtpBackend</name>
     <message>
-        <location filename="../src/network/access/qnetworkaccessftpbackend.cpp" line="+131"/>
         <source>No suitable proxy found</source>
         <translation>Najden ni bil noben primeren posrednik</translation>
     </message>
     <message>
-        <location line="+14"/>
         <source>Cannot open %1: is a directory</source>
         <translation>Ni moč odpreti %1: to je mapa</translation>
     </message>
     <message>
-        <location line="+112"/>
         <source>Logging in to %1 failed: authentication required</source>
         <translation>Prijava v %1 ni uspela: potrebna je overitev</translation>
     </message>
     <message>
-        <location line="+39"/>
         <source>Error while downloading %1: %2</source>
         <translation>Napaka med prejemanjem %1: %2</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Error while uploading %1: %2</source>
         <translation>Napaka med pošiljanjem %1: %2</translation>
     </message>
@@ -3386,58 +3887,105 @@
 <context>
     <name>QNetworkAccessHttpBackend</name>
     <message>
-        <location filename="../src/network/access/qnetworkaccesshttpbackend.cpp" line="+585"/>
         <source>No suitable proxy found</source>
         <translation>Najden ni bil noben primeren posrednik</translation>
     </message>
 </context>
 <context>
+    <name>QNetworkAccessManager</name>
+    <message>
+        <source>Network access is disabled.</source>
+        <translation>Omrežni dostop je onemogočen.</translation>
+    </message>
+</context>
+<context>
     <name>QNetworkReply</name>
     <message>
-        <location line="+95"/>
         <source>Error downloading %1 - server replied: %2</source>
         <translation>Napaka med prejemanjem %1 - strežnikov odgovor: %2</translation>
     </message>
     <message>
-        <location filename="../src/network/access/qnetworkreplyimpl.cpp" line="+77"/>
         <source>Protocol &quot;%1&quot; is unknown</source>
         <translation>Neznan protokol »%1«</translation>
     </message>
+    <message>
+        <source>Network session error.</source>
+        <translation>Napaka omrežne seje.</translation>
+    </message>
+    <message>
+        <source>Temporary network failure.</source>
+        <translation>Začasna omrežna napaka.</translation>
+    </message>
 </context>
 <context>
     <name>QNetworkReplyImpl</name>
     <message>
-        <location line="+519"/>
-        <location line="+28"/>
         <source>Operation canceled</source>
         <translation>Postopek je bil preklican</translation>
     </message>
 </context>
 <context>
+    <name>QNetworkSession</name>
+    <message>
+        <source>Invalid configuration.</source>
+        <translation>Neveljavna nastavitev.</translation>
+    </message>
+</context>
+<context>
+    <name>QNetworkSessionPrivateImpl</name>
+    <message>
+        <source>Roaming error</source>
+        <translation>Napaka potovanja</translation>
+    </message>
+    <message>
+        <source>Session aborted by user or system</source>
+        <translation>Sejo je preklical uporabnik ali pa sistem</translation>
+    </message>
+    <message>
+        <source>Unidentified Error</source>
+        <translation>Neznana napaka</translation>
+    </message>
+    <message>
+        <source>Unknown session error.</source>
+        <translation>Neznana napaka seje.</translation>
+    </message>
+    <message>
+        <source>The session was aborted by the user or system.</source>
+        <translation>Sejo je preklical uporabnik ali pa sistem.</translation>
+    </message>
+    <message>
+        <source>The requested operation is not supported by the system.</source>
+        <translation>Sistem ne podpira zahtevanega dejanja.</translation>
+    </message>
+    <message>
+        <source>The specified configuration cannot be used.</source>
+        <translation>Navedenih nastavitev ni moč uporabiti.</translation>
+    </message>
+    <message>
+        <source>Roaming was aborted or is not possible.</source>
+        <translation>Potovanje je bilo preklicano ali pa ni možno.</translation>
+    </message>
+</context>
+<context>
     <name>QOCIDriver</name>
     <message>
-        <location filename="../src/sql/drivers/oci/qsql_oci.cpp" line="+2076"/>
         <source>Unable to logon</source>
         <translation>Ni se moč prijaviti</translation>
     </message>
     <message>
-        <location line="-144"/>
         <source>Unable to initialize</source>
         <comment>QOCIDriver</comment>
         <translation>Ni moč inicializirati</translation>
     </message>
     <message>
-        <location line="+215"/>
         <source>Unable to begin transaction</source>
         <translation>Ni moč začeti transakcije</translation>
     </message>
     <message>
-        <location line="+19"/>
         <source>Unable to commit transaction</source>
         <translation>Ni moč udejaniti transakcije</translation>
     </message>
     <message>
-        <location line="+19"/>
         <source>Unable to rollback transaction</source>
         <translation>Ni moč razveljaviti transakcije</translation>
     </message>
@@ -3445,44 +3993,34 @@
 <context>
     <name>QOCIResult</name>
     <message>
-        <location line="-972"/>
-        <location line="+161"/>
-        <location line="+15"/>
         <source>Unable to bind column for batch execute</source>
         <translation>Ni moč prikleniti stolpca za paketno izvršitev</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Unable to execute batch statement</source>
         <translation>Ni moč izvesti paketne izjave</translation>
     </message>
     <message>
-        <location line="+304"/>
         <source>Unable to goto next</source>
         <translation>Ni se moč prestaviti na naslednjega</translation>
     </message>
     <message>
-        <location line="+59"/>
         <source>Unable to alloc statement</source>
         <translation>Ni moč dodeliti izjave</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Unable to prepare statement</source>
         <translation>Ni moč pripraviti izjave</translation>
     </message>
     <message>
-        <location line="+26"/>
         <source>Unable to get statement type</source>
         <translation>Ni moč pridobiti vrste izjave</translation>
     </message>
     <message>
-        <location line="+20"/>
         <source>Unable to bind value</source>
         <translation>Ni moč prikleniti vrednosti</translation>
     </message>
     <message>
-        <location line="+19"/>
         <source>Unable to execute statement</source>
         <translation>Ni moč izvesti izjave</translation>
     </message>
@@ -3490,32 +4028,26 @@
 <context>
     <name>QODBCDriver</name>
     <message>
-        <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="+1790"/>
         <source>Unable to connect</source>
         <translation>Ni moč vzpostaviti povezave</translation>
     </message>
     <message>
-        <location line="+238"/>
         <source>Unable to disable autocommit</source>
         <translation>Ni moč onemogočiti samodejnega udejanjanja</translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>Unable to commit transaction</source>
         <translation>Ni moč udejaniti transakcije</translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>Unable to rollback transaction</source>
         <translation>Ni moč razveljaviti transakcije</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Unable to enable autocommit</source>
         <translation>Ni moč omogočiti samodejnega udejanjanja</translation>
     </message>
     <message>
-        <location line="-281"/>
         <source>Unable to connect - Driver doesn&apos;t support all functionality required</source>
         <translation>Ni se moč povezati - gonilnik ne podpira vseh potrebnih zmožnosti</translation>
     </message>
@@ -3523,51 +4055,38 @@
 <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>QODBCResult::reset: ni moč nastaviti &apos;SQL_CURSOR_STATIC&apos; kot lastnosti izjave. Preverite nastavitve gonilnika ODBC</translation>
     </message>
     <message>
-        <location line="-329"/>
-        <location line="+623"/>
         <source>Unable to execute statement</source>
         <translation>Ni moč izvesti izjave</translation>
     </message>
     <message>
-        <location line="-547"/>
         <source>Unable to fetch next</source>
         <translation>Ni moč pridobiti sledečega</translation>
     </message>
     <message>
-        <location line="+271"/>
         <source>Unable to prepare statement</source>
         <translation>Ni moč pripraviti izjave</translation>
     </message>
     <message>
-        <location line="+268"/>
         <source>Unable to bind variable</source>
         <translation>Ni moč prikleniti spremenljivke</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>Ni moč pridobiti zadnjega</translation>
     </message>
     <message>
-        <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="-670"/>
         <source>Unable to fetch</source>
         <translation>Ni moč pridobiti</translation>
     </message>
     <message>
-        <location line="+44"/>
         <source>Unable to fetch first</source>
         <translation>Ni moč pridobiti prvega</translation>
     </message>
     <message>
-        <location line="+19"/>
         <source>Unable to fetch previous</source>
         <translation>Ni moč pridobiti predhodnega</translation>
     </message>
@@ -3575,46 +4094,25 @@
 <context>
     <name>QObject</name>
     <message>
-        <location filename="../src/network/kernel/qhostinfo_unix.cpp" line="-97"/>
-        <source>Invalid hostname</source>
-        <translation>Neveljavno ime gostitelja</translation>
-    </message>
-    <message>
-        <location filename="../src/network/access/qnetworkaccessdatabackend.cpp" line="+74"/>
-        <source>Operation not supported on %1</source>
-        <translation>Dejanje na %1 ni podprto</translation>
-    </message>
-    <message>
-        <location line="+57"/>
-        <source>Invalid URI: %1</source>
-        <translation>Neveljaven URI: %1</translation>
-    </message>
-    <message>
-        <location filename="../src/network/access/qnetworkaccessdebugpipebackend.cpp" line="+60"/>
-        <source>Socket error on %1: %2</source>
-        <translation>Napaka vtičnice na %1: %2</translation>
-    </message>
-    <message>
-        <location line="+15"/>
-        <source>Remote host closed the connection prematurely on %1</source>
-        <translation>Oddaljen gostitelj je predčasno prekinil povezavo na %1</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>Podano ni bilo nobeno ime gostitelja</translation>
+        <source>PulseAudio Sound Server</source>
+        <translation>Zvočni strežnik PulseAudio</translation>
+    </message>
+    <message>
+        <source>&quot;%1&quot; duplicates a previous role name and will be disabled.</source>
+        <translation>»%1« podvaja obstoječe ime vloge in bo onemogočena.</translation>
+    </message>
+    <message>
+        <source>invalid query: &quot;%1&quot;</source>
+        <translation>neveljavna poizvedba: »%1«</translation>
     </message>
 </context>
 <context>
     <name>QPPDOptionsModel</name>
     <message>
-        <location filename="../src/gui/dialogs/qprintdialog_unix.cpp" line="+1198"/>
         <source>Name</source>
         <translation>Ime</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Value</source>
         <translation>Vrednost</translation>
     </message>
@@ -3622,32 +4120,26 @@
 <context>
     <name>QPSQLDriver</name>
     <message>
-        <location filename="../src/sql/drivers/psql/qsql_psql.cpp" line="+782"/>
         <source>Unable to connect</source>
         <translation>Ni moč vzpostaviti povezave</translation>
     </message>
     <message>
-        <location line="+49"/>
         <source>Could not begin transaction</source>
         <translation>Ni bilo moč začeti transakcije</translation>
     </message>
     <message>
-        <location line="+30"/>
         <source>Could not commit transaction</source>
         <translation>Ni bilo moč udejaniti transakcije</translation>
     </message>
     <message>
-        <location line="+16"/>
         <source>Could not rollback transaction</source>
         <translation>Ni bilo moč razveljaviti transakcije</translation>
     </message>
     <message>
-        <location line="+374"/>
         <source>Unable to subscribe</source>
         <translation>Ni se moč naročiti</translation>
     </message>
     <message>
-        <location line="+32"/>
         <source>Unable to unsubscribe</source>
         <translation>Ni moč preklicati naročnine</translation>
     </message>
@@ -3655,12 +4147,10 @@
 <context>
     <name>QPSQLResult</name>
     <message>
-        <location line="-1085"/>
         <source>Unable to create query</source>
         <translation>Ni moč ustvariti poizvedbe</translation>
     </message>
     <message>
-        <location line="+372"/>
         <source>Unable to prepare statement</source>
         <translation>Ni moč pripraviti izjave</translation>
     </message>
@@ -3668,102 +4158,82 @@
 <context>
     <name>QPageSetupWidget</name>
     <message>
-        <location filename="../src/gui/dialogs/qpagesetupdialog_unix.cpp" line="+304"/>
         <source>Centimeters (cm)</source>
         <translation>Centimetri (cm)</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Millimeters (mm)</source>
         <translation>Milimetri (mm)</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Inches (in)</source>
         <translation>Palci (in)</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Points (pt)</source>
         <translation>Pike (pt)</translation>
     </message>
     <message>
-        <location filename="../src/gui/dialogs/qpagesetupwidget.ui"/>
         <source>Form</source>
         <translation>Obrazec</translation>
     </message>
     <message>
-        <location/>
         <source>Paper</source>
         <translation>Papir</translation>
     </message>
     <message>
-        <location/>
         <source>Page size:</source>
         <translation>Velikost strani:</translation>
     </message>
     <message>
-        <location/>
         <source>Width:</source>
         <translation>Širina:</translation>
     </message>
     <message>
-        <location/>
         <source>Height:</source>
         <translation>Višina:</translation>
     </message>
     <message>
-        <location/>
         <source>Paper source:</source>
         <translation>Vir papirja:</translation>
     </message>
     <message>
-        <location/>
         <source>Orientation</source>
         <translation>Usmeritev</translation>
     </message>
     <message>
-        <location/>
         <source>Portrait</source>
         <translation>Pokončno</translation>
     </message>
     <message>
-        <location/>
         <source>Landscape</source>
         <translation>Ležeče</translation>
     </message>
     <message>
-        <location/>
         <source>Reverse landscape</source>
         <translation>Obrnjeno ležeče</translation>
     </message>
     <message>
-        <location/>
         <source>Reverse portrait</source>
         <translation>Obrnjeno pokončno</translation>
     </message>
     <message>
-        <location/>
         <source>Margins</source>
         <translation>Robovi</translation>
     </message>
     <message>
-        <location/>
         <source>top margin</source>
         <translation>vrhnji rob</translation>
     </message>
     <message>
-        <location/>
         <source>left margin</source>
         <translation>levi rob</translation>
     </message>
     <message>
-        <location/>
         <source>right margin</source>
         <translation>desni rob</translation>
     </message>
     <message>
-        <location/>
         <source>bottom margin</source>
         <translation>spodnji rob</translation>
     </message>
@@ -3771,12 +4241,10 @@
 <context>
     <name>QPluginLoader</name>
     <message>
-        <location filename="../src/corelib/plugin/qpluginloader.cpp" line="+24"/>
         <source>Unknown error</source>
         <translation>Neznana napaka</translation>
     </message>
     <message>
-        <location line="-113"/>
         <source>The plugin was not loaded.</source>
         <translation>Vstavek ni bil naložen.</translation>
     </message>
@@ -3784,428 +4252,344 @@
 <context>
     <name>QPrintDialog</name>
     <message>
-        <location filename="../src/gui/painting/qprinterinfo_unix.cpp" line="+108"/>
         <source>locally connected</source>
         <translation>krajevno povezan</translation>
     </message>
     <message>
-        <location line="+23"/>
-        <location line="+225"/>
         <source>Aliases: %1</source>
         <translation>Vzdevki: %1</translation>
     </message>
     <message>
-        <location line="+223"/>
-        <location line="+199"/>
         <source>unknown</source>
         <translation>neznano</translation>
     </message>
     <message>
-        <location filename="../src/gui/dialogs/qprintdialog_qws.cpp" line="+329"/>
         <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="+1"/>
         <source>A4 (210 x 297 mm, 8.26 x 11.7 inches)</source>
         <translation>A4 (210 x 297 mm, 8,26 x 11,7 palcev)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <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="+1"/>
         <source>B5 (176 x 250 mm, 6.93 x 9.84 inches)</source>
         <translation>B5 (176 x 250 mm, 6,93 x 9,84 palcev)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <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="+1"/>
         <source>Executive (7.5 x 10 inches, 191 x 254 mm)</source>
         <translation>Executive (7,5 x 10 palcev, 191 x 254 mm)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Folio (210 x 330 mm)</source>
         <translation>Folio (210 x 330 mm)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Ledger (432 x 279 mm)</source>
         <translation>Ledger (432 x 279 mm)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Legal (8.5 x 14 inches, 216 x 356 mm)</source>
         <translation>Legal (8,5 x 14 palcev, 216 x 356 mm)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Letter (8.5 x 11 inches, 216 x 279 mm)</source>
         <translation>Letter (8,5 x 11 palcev, 216 x 279 mm)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Tabloid (279 x 432 mm)</source>
         <translation>Tabloid (279 x 432 mm)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>US Common #10 Envelope (105 x 241 mm)</source>
         <translation>US Common #10 Envelope (105 x 241 mm)</translation>
     </message>
     <message>
-        <location filename="../src/gui/dialogs/qprintdialog_win.cpp" line="+266"/>
+        <source>Print current page</source>
+        <translation>Natisni trenutno stran</translation>
+    </message>
+    <message>
         <source>OK</source>
         <translation>V redu</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>Natisni</translation>
     </message>
     <message>
-        <location filename="../src/gui/dialogs/qprintdialog_unix.cpp" line="-357"/>
         <source>Print To File ...</source>
         <translation>Natisni v datoteko ...</translation>
     </message>
     <message>
-        <location filename="../src/gui/dialogs/qprintdialog_qws.cpp" line="+19"/>
         <source>Print range</source>
         <translation>Natisni obseg</translation>
     </message>
     <message>
-        <location line="-2"/>
         <source>Print all</source>
         <translation>Natisni vse</translation>
     </message>
     <message>
-        <location filename="../src/gui/dialogs/qprintdialog_unix.cpp" line="+80"/>
         <source>File %1 is not writable.
 Please choose a different file name.</source>
         <translation>V datoteko %1 ni moč pisati.
 Izberite drugo ime datoteke.</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>%1 already exists.
 Do you want to overwrite it?</source>
         <translation>%1 že obstaja.
 Ali jo želite nadomestiti?</translation>
     </message>
     <message>
-        <location filename="../src/gui/dialogs/qprintdialog_qws.cpp" line="-227"/>
         <source>File exists</source>
         <translation>Datoteka obstaja</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&lt;qt&gt;Do you want to overwrite it?&lt;/qt&gt;</source>
         <translation>&lt;qt&gt;Ali jo želite nadomestiti?&lt;/qt&gt;</translation>
     </message>
     <message>
-        <location line="+227"/>
         <source>Print selection</source>
         <translation>Natisni izbor</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>%1 je mapa.
 Izberite drugo ime datoteke.</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>Executive</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Folio</source>
         <translation>Folio</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Ledger</source>
         <translation>Ledger</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Legal</source>
         <translation>Legal</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Letter</source>
         <translation>Letter</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Tabloid</source>
         <translation>Tabloid</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>US Common #10 Envelope</source>
         <translation>US Common #10 Envelope</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Custom</source>
         <translation>Po meri</translation>
     </message>
     <message>
-        <location filename="../src/gui/dialogs/qprintdialog_unix.cpp" line="-524"/>
-        <location line="+68"/>
         <source>&amp;Options &gt;&gt;</source>
         <translation>&amp;Možnosti »</translation>
     </message>
     <message>
-        <location line="-63"/>
         <source>&amp;Print</source>
         <translation>Na&amp;tisni</translation>
     </message>
     <message>
-        <location line="+67"/>
         <source>&amp;Options &lt;&lt;</source>
         <translation>&amp;Možnosti «</translation>
     </message>
     <message>
-        <location line="+253"/>
         <source>Print to File (PDF)</source>
         <translation>Natisni v datoteko (PDF)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Print to File (Postscript)</source>
         <translation>Natisni v datoteko (PostScript)</translation>
     </message>
     <message>
-        <location line="+47"/>
         <source>Local file</source>
         <translation>Krajevna datoteka</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Write %1 file</source>
         <translation>Zapiši datoteko %1</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>Vrednost »Od« ne more biti večja od vrednosti »Do«.</translation>
     </message>
@@ -4213,103 +4597,86 @@
 <context>
     <name>QPrintPreviewDialog</name>
     <message>
-        <location filename="../src/gui/dialogs/qabstractpagesetupdialog.cpp" line="+68"/>
-        <location line="+12"/>
         <source>Page Setup</source>
         <translation>Nastavitve strani</translation>
     </message>
     <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>Ogled tiskanja</translation>
     </message>
     <message>
-        <location line="+30"/>
         <source>Next page</source>
         <translation>Naslednja stran</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Previous page</source>
         <translation>Predhodna stran</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>First page</source>
         <translation>&amp;Prva stran</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Last page</source>
         <translation>&amp;Zadnja stran</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Fit width</source>
         <translation>Prilagodi &amp;širini</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Fit page</source>
         <translation>Prilagodi strani</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>Zoom in</source>
         <translation>Povečaj</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Zoom out</source>
         <translation>Zmanjšaj</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Portrait</source>
         <translation>Pokončno</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Landscape</source>
         <translation>Ležeče</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>Show single page</source>
         <translation>Prikaži enojno stran</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Show facing pages</source>
         <translation>Prikaži dve strani</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Show overview of all pages</source>
         <translation>Prikaži ogled vseh strani</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Print</source>
         <translation>Natisni</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Page setup</source>
         <translation>Nastavitve strani</translation>
     </message>
     <message>
-        <location line="+150"/>
+        <source>Close</source>
+        <translation>Zapri</translation>
+    </message>
+    <message>
         <source>Export to PDF</source>
         <translation>Izvozi v PDF</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Export to PostScript</source>
         <translation>Izvozi v PostScript</translation>
     </message>
@@ -4317,17 +4684,14 @@
 <context>
     <name>QPrintPropertiesWidget</name>
     <message>
-        <location filename="../src/gui/dialogs/qprintpropertieswidget.ui"/>
         <source>Form</source>
         <translation>Obrazec</translation>
     </message>
     <message>
-        <location/>
         <source>Page</source>
         <translation>Stran</translation>
     </message>
     <message>
-        <location/>
         <source>Advanced</source>
         <translation>Napredno</translation>
     </message>
@@ -4335,145 +4699,121 @@
 <context>
     <name>QPrintSettingsOutput</name>
     <message>
-        <location filename="../src/gui/dialogs/qprintsettingsoutput.ui"/>
         <source>Form</source>
         <translation>Obrazec</translation>
     </message>
     <message>
-        <location/>
         <source>Copies</source>
         <translation>Izvodi</translation>
     </message>
     <message>
-        <location/>
         <source>Print range</source>
         <translation>Obseg tiskanja</translation>
     </message>
     <message>
-        <location/>
         <source>Print all</source>
         <translation>Natisni vse</translation>
     </message>
     <message>
-        <location/>
         <source>Pages from</source>
         <translation>Strani od</translation>
     </message>
     <message>
-        <location/>
         <source>to</source>
         <translation>do</translation>
     </message>
     <message>
-        <location/>
         <source>Selection</source>
         <translation>Izbor</translation>
     </message>
     <message>
-        <location/>
         <source>Output Settings</source>
         <translation>Nastavitve izpisa</translation>
     </message>
     <message>
-        <location/>
         <source>Copies:</source>
         <translation>Izvodi:</translation>
     </message>
     <message>
-        <location/>
         <source>Collate</source>
         <translation>Združi</translation>
     </message>
     <message>
-        <location/>
         <source>Reverse</source>
         <translation>V nasprotno smer</translation>
     </message>
     <message>
-        <location/>
         <source>Options</source>
         <translation>Možnosti</translation>
     </message>
     <message>
-        <location/>
         <source>Color Mode</source>
         <translation>Barvni način</translation>
     </message>
     <message>
-        <location/>
         <source>Color</source>
         <translation>Barva</translation>
     </message>
     <message>
-        <location/>
         <source>Grayscale</source>
         <translation>Sivinsko</translation>
     </message>
     <message>
-        <location/>
         <source>Duplex Printing</source>
         <translation>Dvostransko tiskanje</translation>
     </message>
     <message>
-        <location/>
         <source>None</source>
         <translation>Brez</translation>
     </message>
     <message>
-        <location/>
         <source>Long side</source>
         <translation>Dolga stranica</translation>
     </message>
     <message>
-        <location/>
         <source>Short side</source>
         <translation>Kratka stranica</translation>
     </message>
+    <message>
+        <source>Current Page</source>
+        <translation>Trenutna stran</translation>
+    </message>
 </context>
 <context>
     <name>QPrintWidget</name>
     <message>
-        <location filename="../src/gui/dialogs/qprintwidget.ui"/>
         <source>Form</source>
         <translation>Obrazec</translation>
     </message>
     <message>
-        <location/>
         <source>Printer</source>
         <translation>Tiskalnik</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Name:</source>
         <translation>&amp;Ime:</translation>
     </message>
     <message>
-        <location/>
         <source>P&amp;roperties</source>
         <translation>&amp;Lastnosti ...</translation>
     </message>
     <message>
-        <location/>
         <source>Location:</source>
         <translation>Lokacija:</translation>
     </message>
     <message>
-        <location/>
         <source>Preview</source>
         <translation>Ogled</translation>
     </message>
     <message>
-        <location/>
         <source>Type:</source>
         <translation>Vrsta:</translation>
     </message>
     <message>
-        <location/>
         <source>Output &amp;file:</source>
         <translation>Izhodna d&amp;atoteka:</translation>
     </message>
     <message>
-        <location/>
         <source>...</source>
         <translation>...</translation>
     </message>
@@ -4481,62 +4821,38 @@
 <context>
     <name>QProcess</name>
     <message>
-        <location filename="../src/corelib/io/qprocess_unix.cpp" line="+402"/>
-        <location filename="../src/corelib/io/qprocess_win.cpp" line="+137"/>
         <source>Could not open input redirection for reading</source>
         <translation>Preusmeritve vhoda ni bilo moč odpreti za branje</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>Preusmeritve izhoda ni bilo moč odpreti za pisanje</translation>
     </message>
     <message>
-        <location line="+239"/>
         <source>Resource error (fork failure): %1</source>
         <translation>Napaka vira (spodletela odcepitev): %1</translation>
     </message>
     <message>
-        <location line="+252"/>
-        <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>Čas za dejanje procesa je potekel</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>Napaka pri branju iz procesa</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>Napak pri pisanju v proces</translation>
     </message>
     <message>
-        <location line="-756"/>
         <source>Process crashed</source>
         <translation>Program se je sesul</translation>
     </message>
     <message>
-        <location line="+959"/>
         <source>No program defined</source>
         <translation>Določenega ni nobenega programa</translation>
     </message>
     <message>
-        <location filename="../src/corelib/io/qprocess_win.cpp" line="-360"/>
         <source>Process failed to start: %1</source>
         <translation>Proces se ni uspel zagnati: %1</translation>
     </message>
@@ -4544,7 +4860,6 @@
 <context>
     <name>QProgressDialog</name>
     <message>
-        <location filename="../src/gui/dialogs/qprogressdialog.cpp" line="+196"/>
         <source>Cancel</source>
         <translation>Prekliči</translation>
     </message>
@@ -4552,7 +4867,6 @@
 <context>
     <name>QPushButton</name>
     <message>
-        <location filename="../src/plugins/accessible/widgets/simplewidgets.cpp" line="-8"/>
         <source>Open</source>
         <translation>Odpri</translation>
     </message>
@@ -4560,7 +4874,6 @@
 <context>
     <name>QRadioButton</name>
     <message>
-        <location line="+12"/>
         <source>Check</source>
         <translation>Označi</translation>
     </message>
@@ -4568,57 +4881,46 @@
 <context>
     <name>QRegExp</name>
     <message>
-        <location filename="../src/corelib/tools/qregexp.cpp" line="+65"/>
         <source>no error occurred</source>
         <translation>ni nobene napake</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>disabled feature used</source>
         <translation>uporabljena onemogočena zmožnost</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>bad char class syntax</source>
         <translation>napačna sintaksa znakovnega razreda</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>bad lookahead syntax</source>
         <translation>napačna sintaksa pogleda naprej</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>bad repetition syntax</source>
         <translation>napačna sintaksa ponavljanja</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>invalid octal value</source>
         <translation>neveljavna osmiška vrednost</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>missing left delim</source>
         <translation>manjkajoč levi razmejitelj</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>unexpected end</source>
         <translation>nepričakovan konece</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>met internal limit</source>
         <translation>dosežena notranja omejitev</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>invalid interval</source>
         <translation>neveljaven interval</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>invalid category</source>
         <translation>neveljavna kategorija</translation>
     </message>
@@ -4626,22 +4928,18 @@
 <context>
     <name>QSQLite2Driver</name>
     <message>
-        <location filename="../src/sql/drivers/sqlite2/qsql_sqlite2.cpp" line="+391"/>
         <source>Error opening database</source>
         <translation>Napaka pri odpiranju podatkovne zbirke</translation>
     </message>
     <message>
-        <location line="+41"/>
         <source>Unable to begin transaction</source>
         <translation>Ni moč začeti transakcije</translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>Unable to commit transaction</source>
         <translation>Ni moč udejaniti transakcije</translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>Unable to rollback transaction</source>
         <translation>Ni moč razveljaviti transakcije</translation>
     </message>
@@ -4649,12 +4947,10 @@
 <context>
     <name>QSQLite2Result</name>
     <message>
-        <location line="-319"/>
         <source>Unable to fetch results</source>
         <translation>Ni moč pridobiti rezultatov</translation>
     </message>
     <message>
-        <location line="+143"/>
         <source>Unable to execute statement</source>
         <translation>Ni moč izvesti izjave</translation>
     </message>
@@ -4662,27 +4958,22 @@
 <context>
     <name>QSQLiteDriver</name>
     <message>
-        <location filename="../src/sql/drivers/sqlite/qsql_sqlite.cpp" line="+544"/>
         <source>Error opening database</source>
         <translation>Napaka pri odpiranju podatkovne zbirke</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>Error closing database</source>
         <translation>Napaka pri zapiranju podatkovne zbirke</translation>
     </message>
     <message>
-        <location line="+20"/>
         <source>Unable to begin transaction</source>
         <translation>Ni moč začeti transakcije</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Unable to commit transaction</source>
         <translation>Ni moč udejaniti transakcije</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Unable to rollback transaction</source>
         <translation>Ni moč razveljaviti transakcije</translation>
     </message>
@@ -4690,34 +4981,26 @@
 <context>
     <name>QSQLiteResult</name>
     <message>
-        <location line="-408"/>
-        <location line="+66"/>
-        <location line="+8"/>
         <source>Unable to fetch row</source>
         <translation>Ni moč pridobiti vrstice</translation>
     </message>
     <message>
-        <location line="+59"/>
         <source>Unable to execute statement</source>
         <translation>Ni moč izvesti izjave</translation>
     </message>
     <message>
-        <location line="+20"/>
         <source>Unable to reset statement</source>
         <translation>Ni moč ponastaviti izjave</translation>
     </message>
     <message>
-        <location line="+45"/>
         <source>Unable to bind parameters</source>
         <translation>Ni moč prikleniti parametrov</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Parameter count mismatch</source>
         <translation>Neujemanje v številu parametrov</translation>
     </message>
     <message>
-        <location line="-204"/>
         <source>No query</source>
         <translation>Brez poizvedbe</translation>
     </message>
@@ -4725,32 +5008,26 @@
 <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>Lokacija</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Condition</source>
         <translation>Pogoj</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Ignore-count</source>
         <translation>Število prezrtij</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Single-shot</source>
         <translation>Enojen zadetek</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Hit-count</source>
         <translation>Število zadetkov</translation>
     </message>
@@ -4758,12 +5035,10 @@
 <context>
     <name>QScriptBreakpointsWidget</name>
     <message>
-        <location filename="../src/scripttools/debugging/qscriptbreakpointswidget.cpp" line="+298"/>
         <source>New</source>
         <translation>Nova</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Delete</source>
         <translation>Izbriši</translation>
     </message>
@@ -4771,143 +5046,114 @@
 <context>
     <name>QScriptDebugger</name>
     <message>
-        <location filename="../src/scripttools/debugging/qscriptdebugger.cpp" line="+885"/>
-        <location line="+1013"/>
         <source>Go to Line</source>
         <translation>Pojdi v vrstico</translation>
     </message>
     <message>
-        <location line="-1012"/>
         <source>Line:</source>
         <translation>Vrstica:</translation>
     </message>
     <message>
-        <location line="+791"/>
         <source>Interrupt</source>
         <translation>Prekini</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Shift+F5</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+15"/>
+        <translation>Shift+F5</translation>
+    </message>
+    <message>
         <source>Continue</source>
         <translation>Nadaljuj</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>F5</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+15"/>
+        <translation>F5</translation>
+    </message>
+    <message>
         <source>Step Into</source>
         <translation>Vstopi</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>F11</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+15"/>
+        <translation>F11</translation>
+    </message>
+    <message>
         <source>Step Over</source>
         <translation>Prestopi</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>F10</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+15"/>
+        <translation>F10</translation>
+    </message>
+    <message>
         <source>Step Out</source>
         <translation>Izstopi</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Shift+F11</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+15"/>
+        <translation>Shift+F11</translation>
+    </message>
+    <message>
         <source>Run to Cursor</source>
         <translation>Zaženi do kazalca</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Ctrl+F10</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+16"/>
+        <translation>Ctrl+F10</translation>
+    </message>
+    <message>
         <source>Run to New Script</source>
         <translation>Zaženi do novega skripta</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Toggle Breakpoint</source>
         <translation>Preklopi prekinitveno točko</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>F9</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+14"/>
+        <translation>F9</translation>
+    </message>
+    <message>
         <source>Clear Debug Output</source>
         <translation>Počisti razhroščevalni izhod</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>Clear Error Log</source>
         <translation>Počisti dnevnik napak</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>Clear Console</source>
         <translation>Počisti konzolo</translation>
     </message>
     <message>
-        <location line="+14"/>
         <source>&amp;Find in Script...</source>
         <translation>Najdi v &amp;skriptu ...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Ctrl+F</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+17"/>
+        <translation>Ctrl+F</translation>
+    </message>
+    <message>
         <source>Find &amp;Next</source>
         <translation>Najdi &amp;naslednje</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>F3</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+13"/>
+        <translation>F3</translation>
+    </message>
+    <message>
         <source>Find &amp;Previous</source>
         <translation>Najdi &amp;predhodno</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Shift+F3</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+14"/>
+        <translation>Shift+F3</translation>
+    </message>
+    <message>
         <source>Ctrl+G</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+11"/>
+        <translation>Ctrl+G</translation>
+    </message>
+    <message>
         <source>Debug</source>
         <translation>Razhrošči</translation>
     </message>
@@ -4915,32 +5161,26 @@
 <context>
     <name>QScriptDebuggerCodeFinderWidget</name>
     <message>
-        <location filename="../src/scripttools/debugging/qscriptdebuggercodefinderwidget.cpp" line="+141"/>
         <source>Close</source>
         <translation>Zapri</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>Previous</source>
         <translation>Predhodno</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Next</source>
         <translation>Naslednje</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Case Sensitive</source>
         <translation>Občutljivo na velikost črk</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Whole words</source>
         <translation>Cele besede</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;Iskanje se nadaljuje na drugem koncu</translation>
     </message>
@@ -4948,12 +5188,10 @@
 <context>
     <name>QScriptDebuggerLocalsModel</name>
     <message>
-        <location filename="../src/scripttools/debugging/qscriptdebuggerlocalsmodel.cpp" line="+872"/>
         <source>Name</source>
         <translation>Ime</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Value</source>
         <translation>Vrednost</translation>
     </message>
@@ -4961,17 +5199,14 @@
 <context>
     <name>QScriptDebuggerStackModel</name>
     <message>
-        <location filename="../src/scripttools/debugging/qscriptdebuggerstackmodel.cpp" line="+161"/>
         <source>Level</source>
         <translation>Stopnja</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Name</source>
         <translation>Ime</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Location</source>
         <translation>Lokacija</translation>
     </message>
@@ -4979,22 +5214,18 @@
 <context>
     <name>QScriptEdit</name>
     <message>
-        <location filename="../src/scripttools/debugging/qscriptedit.cpp" line="+411"/>
         <source>Toggle Breakpoint</source>
         <translation>Preklopi prekinitveno točko</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Disable Breakpoint</source>
         <translation>Onemogoči prekinitveno točko</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Enable Breakpoint</source>
         <translation>Omogoči prekinitveno točko</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Breakpoint Condition:</source>
         <translation>Pogoj za prelomno točko:</translation>
     </message>
@@ -5002,52 +5233,42 @@
 <context>
     <name>QScriptEngineDebugger</name>
     <message>
-        <location filename="../src/scripttools/debugging/qscriptenginedebugger.cpp" line="+523"/>
         <source>Loaded Scripts</source>
         <translation>Naloženi skripti</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Breakpoints</source>
         <translation>Prelomne točke</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Stack</source>
         <translation>Sklad</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Locals</source>
         <translation>Krajevno</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Console</source>
         <translation>Konzola</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Debug Output</source>
         <translation>Razhroščevalni izhod</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Error Log</source>
         <translation>Dnevnik napak</translation>
     </message>
     <message>
-        <location line="+12"/>
         <source>Search</source>
         <translation>Išči</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>View</source>
         <translation>Videz</translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>Qt Script Debugger</source>
         <translation>Razhroščevalnik za Qt Script</translation>
     </message>
@@ -5055,7 +5276,6 @@
 <context>
     <name>QScriptNewBreakpointWidget</name>
     <message>
-        <location filename="../src/scripttools/debugging/qscriptbreakpointswidget.cpp" line="-223"/>
         <source>Close</source>
         <translation>Zapri</translation>
     </message>
@@ -5063,84 +5283,66 @@
 <context>
     <name>QScrollBar</name>
     <message>
-        <location filename="../src/gui/widgets/qscrollbar.cpp" line="+454"/>
         <source>Scroll here</source>
         <translation>Premakni sem</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Left edge</source>
         <translation>Levi rob</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Top</source>
         <translation>Vrh</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Right edge</source>
         <translation>Desni rob</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Bottom</source>
         <translation>Dno</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Page left</source>
         <translation>Za stran levo</translation>
     </message>
     <message>
-        <location line="+0"/>
-        <location filename="../src/plugins/accessible/widgets/rangecontrols.cpp" line="+143"/>
         <source>Page up</source>
         <translation>Za stran gor</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Page right</source>
         <translation>Za stran desno</translation>
     </message>
     <message>
-        <location line="+0"/>
-        <location filename="../src/plugins/accessible/widgets/rangecontrols.cpp" line="+4"/>
         <source>Page down</source>
         <translation>Za stran dol</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Scroll left</source>
         <translation>Premakni levo</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Scroll up</source>
         <translation>Premakni gor</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Scroll right</source>
         <translation>Premakni desno</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Scroll down</source>
         <translation>Premakni dol</translation>
     </message>
     <message>
-        <location filename="../src/plugins/accessible/widgets/rangecontrols.cpp" line="-6"/>
         <source>Line up</source>
         <translation>V vrsto</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Position</source>
         <translation>Položaj</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Line down</source>
         <translation>Za vrstico dol</translation>
     </message>
@@ -5148,111 +5350,78 @@
 <context>
     <name>QSharedMemory</name>
     <message>
-        <location filename="../src/corelib/kernel/qsharedmemory.cpp" line="+223"/>
         <source>%1: unable to set key on lock</source>
         <translation>%1: ni moč nastaviti ključa na zaklep</translation>
     </message>
     <message>
-        <location line="+81"/>
         <source>%1: create size is less then 0</source>
         <translation>%1: velikost je manjša od 0</translation>
     </message>
     <message>
-        <location line="+168"/>
-        <location filename="../src/corelib/kernel/qsharedmemory_p.h" line="+155"/>
         <source>%1: unable to lock</source>
         <translation>%1: ni moč zakleniti</translation>
     </message>
     <message>
-        <location line="+22"/>
         <source>%1: unable to unlock</source>
         <translation>%1: ni moč odkleniti</translation>
     </message>
     <message>
-        <location filename="../src/corelib/kernel/qsharedmemory_symbian.cpp" line="+83"/>
-        <location filename="../src/corelib/kernel/qsharedmemory_unix.cpp" line="+80"/>
-        <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="+87"/>
         <source>%1: permission denied</source>
         <translation>%1: nimate dovoljenja</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: že obstaja</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>%1: doesn&apos;t exists</source>
         <translation>%1: ne obstaja</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: zmanjkalo je virov</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: neznana napaka %2</translation>
     </message>
     <message>
-        <location filename="../src/corelib/kernel/qsharedmemory_unix.cpp" line="+21"/>
         <source>%1: key is empty</source>
         <translation>%1: ključ je prazen</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>%1: ftok failed</source>
         <translation>%1: funkcija ftok ni uspela</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: ni moč ustvariti ključa</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: ne obstaja</translation>
     </message>
     <message>
-        <location line="+39"/>
         <source>%1: UNIX key file doesn&apos;t exist</source>
         <translation>%1: UNIX-ova zaklepna datoteka ne obstaja</translation>
     </message>
     <message>
-        <location line="+78"/>
         <source>%1: system-imposed size restrictions</source>
         <translation>%1: sistemsko vsiljene omejitve velikosti</translation>
     </message>
     <message>
-        <location line="+53"/>
         <source>%1: not attached</source>
         <translation>%1: ni pripeto</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: neveljavna velikost</translation>
     </message>
     <message>
-        <location line="+40"/>
-        <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="+63"/>
         <source>%1: key error</source>
         <translation>%1: napaka ključa</translation>
     </message>
     <message>
-        <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="+32"/>
         <source>%1: size query failed</source>
         <translation>%1: poizvedba po velikosti ni uspela</translation>
     </message>
@@ -5260,466 +5429,894 @@
 <context>
     <name>QShortcut</name>
     <message>
-        <location filename="../src/gui/kernel/qkeysequence.cpp" line="+393"/>
         <source>Space</source>
+        <extracomment>This and all following &quot;incomprehensible&quot; strings in QShortcut context are key names. Please use the localized names appearing on actual keyboards or whatever is commonly used.
+</extracomment>
         <translation>Preslednica</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Esc</source>
         <translation>Esc</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Tab</source>
         <translation>Tabulator</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Backtab</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>Tabulator nazaj</translation>
+    </message>
+    <message>
         <source>Backspace</source>
         <translation>Vračalka</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Return</source>
         <translation>Return</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Enter</source>
         <translation>Vnesi</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>Premor</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Print</source>
         <translation>Natisni</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>SysReq</source>
         <translation>SysReq</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Home</source>
         <translation>Začetek</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>End</source>
         <translation>Konec</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Left</source>
         <translation>Levo</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Up</source>
         <translation>Gor</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Right</source>
         <translation>Desno</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Down</source>
         <translation>Dol</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>Meni</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Help</source>
         <translation>Pomoč</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Back</source>
         <translation>Predhodna</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Forward</source>
         <translation>Naslednja</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Stop</source>
         <translation>Ustavi</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Refresh</source>
         <translation>Osveži</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Volume Down</source>
         <translation>Tiše</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Volume Mute</source>
         <translation>Tiho</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Volume Up</source>
         <translation>Glasneje</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Bass Boost</source>
         <translation>Ojačanje basov</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Bass Up</source>
         <translation>Več basov</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Bass Down</source>
         <translation>Manj basov</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Treble Up</source>
         <translation>Več visokih tonov</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Treble Down</source>
         <translation>Manj visokih tonov</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Media Play</source>
         <translation>Predvajaj večpredstavnost</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Media Stop</source>
         <translation>Ustavi večpredstavnost</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Media Previous</source>
         <translation>Predhodna večpredstavnost</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Media Next</source>
         <translation>Naslednja večpredstavnost</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Media Record</source>
         <translation>Snemaj večpredstavnost</translation>
     </message>
     <message>
-        <location line="+2"/>
+        <source>Media Pause</source>
+        <extracomment>Media player pause button
+</extracomment>
+        <translation>Prekini večpredstavnost</translation>
+    </message>
+    <message>
+        <source>Toggle Media Play/Pause</source>
+        <extracomment>Media player button to toggle between playing and paused
+</extracomment>
+        <translation>Preklopi predvajanje/prekinitev večpredstavnosti</translation>
+    </message>
+    <message>
         <source>Favorites</source>
         <translation>Priljubljeno</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Search</source>
         <translation>Išči</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Standby</source>
         <translation>V pripravljenost</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Open URL</source>
         <translation>Odpri URL</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Launch Mail</source>
         <translation>Zaženi pošto</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Launch Media</source>
         <translation>Zaženi večpredstavnost</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Launch (0)</source>
         <translation>Zaženi (0)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Launch (1)</source>
         <translation>Zaženi (1)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Launch (2)</source>
         <translation>Zaženi (2)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Launch (3)</source>
         <translation>Zaženi (3)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Launch (4)</source>
         <translation>Zaženi (4)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Launch (5)</source>
         <translation>Zaženi (5)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Launch (6)</source>
         <translation>Zaženi (6)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Launch (7)</source>
         <translation>Zaženi (7)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Launch (8)</source>
         <translation>Zaženi (8)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Launch (9)</source>
         <translation>Zaženi (9)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Launch (A)</source>
         <translation>Zaženi (A)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Launch (B)</source>
         <translation>Zaženi (B)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Launch (C)</source>
         <translation>Zaženi (C)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Launch (D)</source>
         <translation>Zaženi (D)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Launch (E)</source>
         <translation>Zaženi (E)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Launch (F)</source>
         <translation>Zaženi (F)</translation>
     </message>
     <message>
-        <location line="+4"/>
+        <source>Monitor Brightness Up</source>
+        <translation>Povečaj svetlost zaslona</translation>
+    </message>
+    <message>
+        <source>Monitor Brightness Down</source>
+        <translation>Zmanjšaj svetlost zaslona</translation>
+    </message>
+    <message>
+        <source>Keyboard Light On/Off</source>
+        <translation>Vklop/izklop lučk na tipkovnici</translation>
+    </message>
+    <message>
+        <source>Keyboard Brightness Up</source>
+        <translation>Povečaj svetlost tipkovnice</translation>
+    </message>
+    <message>
+        <source>Keyboard Brightness Down</source>
+        <translation>Zmanjšaj svetlost tipkovnice</translation>
+    </message>
+    <message>
+        <source>Power Off</source>
+        <translation>Izklopi</translation>
+    </message>
+    <message>
+        <source>Wake Up</source>
+        <translation>Zbudi</translation>
+    </message>
+    <message>
+        <source>Eject</source>
+        <translation>Izvrzi</translation>
+    </message>
+    <message>
+        <source>Screensaver</source>
+        <translation>Ohranjevalnik zaslona</translation>
+    </message>
+    <message>
+        <source>WWW</source>
+        <translation>Svetovni splet</translation>
+    </message>
+    <message>
+        <source>Sleep</source>
+        <translation>V pripravljenost</translation>
+    </message>
+    <message>
+        <source>LightBulb</source>
+        <translation>Žarnica</translation>
+    </message>
+    <message>
+        <source>Shop</source>
+        <translation>Trgovina</translation>
+    </message>
+    <message>
+        <source>History</source>
+        <translation>Zgodovina</translation>
+    </message>
+    <message>
+        <source>Add Favorite</source>
+        <translation>Dodaj priljubljeno</translation>
+    </message>
+    <message>
+        <source>Hot Links</source>
+        <translation>Vroče povezave</translation>
+    </message>
+    <message>
+        <source>Adjust Brightness</source>
+        <translation>Prilagodi svetlost</translation>
+    </message>
+    <message>
+        <source>Finance</source>
+        <translation>Finance</translation>
+    </message>
+    <message>
+        <source>Community</source>
+        <translation>Skupnost</translation>
+    </message>
+    <message>
+        <source>Audio Rewind</source>
+        <translation>Previj zvok</translation>
+    </message>
+    <message>
+        <source>Back Forward</source>
+        <translation>Nazaj naprej</translation>
+    </message>
+    <message>
+        <source>Application Left</source>
+        <translation>Program levo</translation>
+    </message>
+    <message>
+        <source>Application Right</source>
+        <translation>Program desno</translation>
+    </message>
+    <message>
+        <source>Book</source>
+        <translation>Knjiga</translation>
+    </message>
+    <message>
+        <source>CD</source>
+        <translation>CD</translation>
+    </message>
+    <message>
+        <source>Calculator</source>
+        <translation>Računalo</translation>
+    </message>
+    <message>
+        <source>Clear</source>
+        <translation>Počisti</translation>
+    </message>
+    <message>
+        <source>Clear Grab</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Close</source>
+        <translation>Zapri</translation>
+    </message>
+    <message>
+        <source>Copy</source>
+        <translation>Skopiraj</translation>
+    </message>
+    <message>
+        <source>Cut</source>
+        <translation>Izreži</translation>
+    </message>
+    <message>
+        <source>Display</source>
+        <translation type="unfinished">Prikaz</translation>
+    </message>
+    <message>
+        <source>DOS</source>
+        <translation>DOS</translation>
+    </message>
+    <message>
+        <source>Documents</source>
+        <translation>Dokumenti</translation>
+    </message>
+    <message>
+        <source>Spreadsheet</source>
+        <translation>Preglednica</translation>
+    </message>
+    <message>
+        <source>Browser</source>
+        <translation>Brskalnik</translation>
+    </message>
+    <message>
+        <source>Game</source>
+        <translation>Igra</translation>
+    </message>
+    <message>
+        <source>Go</source>
+        <translation type="unfinished">Pojdi</translation>
+    </message>
+    <message>
+        <source>iTouch</source>
+        <translation>iTouch</translation>
+    </message>
+    <message>
+        <source>Logoff</source>
+        <translation>Odjavi</translation>
+    </message>
+    <message>
+        <source>Market</source>
+        <translation>Trg</translation>
+    </message>
+    <message>
+        <source>Meeting</source>
+        <translation>Srečanje</translation>
+    </message>
+    <message>
+        <source>Keyboard Menu</source>
+        <translation type="unfinished">Meni tipkovnice</translation>
+    </message>
+    <message>
+        <source>Menu PB</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>My Sites</source>
+        <translation>Moje strani</translation>
+    </message>
+    <message>
+        <source>News</source>
+        <translation>Novice</translation>
+    </message>
+    <message>
+        <source>Home Office</source>
+        <translation>Domača pisarna</translation>
+    </message>
+    <message>
+        <source>Option</source>
+        <translation>Možnost</translation>
+    </message>
+    <message>
+        <source>Paste</source>
+        <translation>Prilepi</translation>
+    </message>
+    <message>
+        <source>Phone</source>
+        <translation>Telefon</translation>
+    </message>
+    <message>
+        <source>Reply</source>
+        <translation>Odgovori</translation>
+    </message>
+    <message>
+        <source>Reload</source>
+        <translation>Znova naloži</translation>
+    </message>
+    <message>
+        <source>Rotate Windows</source>
+        <translation>Zavrti okna</translation>
+    </message>
+    <message>
+        <source>Rotation PB</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Rotation KB</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Save</source>
+        <translation>Shrani</translation>
+    </message>
+    <message>
+        <source>Send</source>
+        <translation>Pošlji</translation>
+    </message>
+    <message>
+        <source>Spellchecker</source>
+        <translation>Črkovalnik</translation>
+    </message>
+    <message>
+        <source>Split Screen</source>
+        <translation>Razdeli zaslon</translation>
+    </message>
+    <message>
+        <source>Support</source>
+        <translation>Podpora</translation>
+    </message>
+    <message>
+        <source>Task Panel</source>
+        <translation type="unfinished">Opravilna vrstica</translation>
+    </message>
+    <message>
+        <source>Terminal</source>
+        <translation>Konzola</translation>
+    </message>
+    <message>
+        <source>Tools</source>
+        <translation>Orodja</translation>
+    </message>
+    <message>
+        <source>Travel</source>
+        <translation>Potovanje</translation>
+    </message>
+    <message>
+        <source>Video</source>
+        <translation>Video</translation>
+    </message>
+    <message>
+        <source>Word Processor</source>
+        <translation>Urejevalnik besedil</translation>
+    </message>
+    <message>
+        <source>XFer</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Zoom In</source>
+        <translation>Povečaj</translation>
+    </message>
+    <message>
+        <source>Zoom Out</source>
+        <translation>Zmanjšaj</translation>
+    </message>
+    <message>
+        <source>Away</source>
+        <translation>Odsoten</translation>
+    </message>
+    <message>
+        <source>Messenger</source>
+        <translation>Sporočilnik</translation>
+    </message>
+    <message>
+        <source>WebCam</source>
+        <translation>Spletna kamera</translation>
+    </message>
+    <message>
+        <source>Mail Forward</source>
+        <translation>Posreduj sporočilo</translation>
+    </message>
+    <message>
+        <source>Pictures</source>
+        <translation>Slike</translation>
+    </message>
+    <message>
+        <source>Music</source>
+        <translation>Glasba</translation>
+    </message>
+    <message>
+        <source>Battery</source>
+        <translation>Baterija</translation>
+    </message>
+    <message>
+        <source>Bluetooth</source>
+        <translation>Bluetooth</translation>
+    </message>
+    <message>
+        <source>Wireless</source>
+        <translation>Brezžično</translation>
+    </message>
+    <message>
+        <source>Ultra Wide Band</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Audio Forward</source>
+        <translation>Zvok naprej</translation>
+    </message>
+    <message>
+        <source>Audio Repeat</source>
+        <translation>Zvok ponavljanje</translation>
+    </message>
+    <message>
+        <source>Audio Random Play</source>
+        <translation>Zvok naključno</translation>
+    </message>
+    <message>
+        <source>Subtitle</source>
+        <translation>Podnaslov</translation>
+    </message>
+    <message>
+        <source>Audio Cycle Track</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Time</source>
+        <translation>Čas</translation>
+    </message>
+    <message>
+        <source>View</source>
+        <translation>Prikaz</translation>
+    </message>
+    <message>
+        <source>Top Menu</source>
+        <translation>Vrhnji meni</translation>
+    </message>
+    <message>
+        <source>Suspend</source>
+        <translation>Ustavi</translation>
+    </message>
+    <message>
+        <source>Hibernate</source>
+        <translation type="unfinished">V hibernacijo</translation>
+    </message>
+    <message>
         <source>Print Screen</source>
         <translation>Natisni zaslon</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Page Up</source>
         <translation>Za stran gor</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Page Down</source>
         <translation>Za stran dol</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 type="unfinished"></translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Scroll Lock</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation type="unfinished">Scroll Lock</translation>
+    </message>
+    <message>
         <source>Insert</source>
         <translation>Vstavi</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Delete</source>
         <translation>Izbriši</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Escape</source>
         <translation>Escape</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>System Request</source>
         <translation>Sistemska zahteva</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Select</source>
         <translation>Izberi</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Yes</source>
         <translation>Da</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>No</source>
         <translation>Ne</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Context1</source>
         <translation>Kontekst1</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Context2</source>
         <translation>Kontekst2</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Context3</source>
         <translation>Kontekst3</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Context4</source>
         <translation>Kontekst4</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Call</source>
+        <extracomment>Button to start a call (note: a separate button is used to end the call)
+</extracomment>
         <translation>Pokliči</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Hangup</source>
+        <extracomment>Button to end a call (note: a separate button is used to start the call)
+</extracomment>
         <translation>Odloži</translation>
     </message>
     <message>
-        <location line="+1"/>
+        <source>Toggle Call/Hangup</source>
+        <extracomment>Button that will hang up if we&apos;re in call, or make a call if we&apos;re not.
+</extracomment>
+        <translation>Preklopi pokliči/odloži</translation>
+    </message>
+    <message>
         <source>Flip</source>
         <translation>Obrni</translation>
     </message>
     <message>
-        <location line="+561"/>
-        <location line="+135"/>
+        <source>Voice Dial</source>
+        <extracomment>Button to trigger voice dialling
+</extracomment>
+        <translation>Glasovni klic</translation>
+    </message>
+    <message>
+        <source>Last Number Redial</source>
+        <extracomment>Button to redial the last number called
+</extracomment>
+        <translation>Ponovni klic zadnje številke</translation>
+    </message>
+    <message>
+        <source>Camera Shutter</source>
+        <extracomment>Button to trigger the camera shutter (take a picture)
+</extracomment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Camera Focus</source>
+        <extracomment>Button to focus the camera
+</extracomment>
+        <translation>Fokus fotoaparata</translation>
+    </message>
+    <message>
+        <source>Kanji</source>
+        <translation>Kanji</translation>
+    </message>
+    <message>
+        <source>Muhenkan</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Henkan</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Romaji</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hiragana</source>
+        <translation>Hiragana</translation>
+    </message>
+    <message>
+        <source>Katakana</source>
+        <translation>Katakana</translation>
+    </message>
+    <message>
+        <source>Hiragana Katakana</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Zenkaku</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hankaku</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Zenkaku Hankaku</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Touroku</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Massyo</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Kana Lock</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Kana Shift</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Eisu Shift</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Eisu toggle</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Code input</source>
+        <translation>Vnos kode</translation>
+    </message>
+    <message>
+        <source>Multiple Candidate</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Previous Candidate</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hangul</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hangul Start</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hangul End</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hangul Hanja</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hangul Jamo</source>
+        <translation>Hangul Jamo</translation>
+    </message>
+    <message>
+        <source>Hangul Romaja</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hangul Jeonja</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hangul Banja</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hangul PreHanja</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hangul PostHanja</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Hangul Special</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <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="-767"/>
         <source>Home Page</source>
         <translation>Domača stran</translation>
     </message>
@@ -5727,27 +6324,22 @@
 <context>
     <name>QSlider</name>
     <message>
-        <location filename="../src/plugins/accessible/widgets/rangecontrols.cpp" line="+151"/>
         <source>Page left</source>
         <translation>Za stran levo</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Page up</source>
         <translation>Za stran gor</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Position</source>
         <translation>Položaj</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Page right</source>
         <translation>Za stran desno</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Page down</source>
         <translation>Za stran dol</translation>
     </message>
@@ -5755,72 +6347,58 @@
 <context>
     <name>QSocks5SocketEngine</name>
     <message>
-        <location filename="../src/network/socket/qsocks5socketengine.cpp" line="-67"/>
         <source>Connection to proxy refused</source>
         <translation>Povezava s posrednikom je bila zavrnjena</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Connection to proxy closed prematurely</source>
         <translation>Povezava s posrednikom je bila prekinjena predčasno</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Proxy host not found</source>
         <translation>Ni moč najti gostitelja posrednika</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Connection to proxy timed out</source>
         <translation>Čas za povezavo s posrednikom je potekel</translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>Proxy authentication failed</source>
         <translation>Neuspešno overjanje posrednika</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Proxy authentication failed: %1</source>
         <translation>Neuspešno overjanje posrednika: %1</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>SOCKS version 5 protocol error</source>
         <translation>Napaka protokola SOCKS različice 5</translation>
     </message>
     <message>
-        <location line="+19"/>
         <source>General SOCKSv5 server failure</source>
         <translation>Splošna napaka strežnika SOCKSv5</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Connection not allowed by SOCKSv5 server</source>
         <translation>Strežnik SOCKSv5 ne dovoljuje povezave</translation>
     </message>
     <message>
-        <location line="+16"/>
         <source>TTL expired</source>
         <translation>TTL je zapadel</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>SOCKSv5 command not supported</source>
         <translation>Ukaz SOCKSv5 ni podprt</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Address type not supported</source>
         <translation>Vrsta naslova ni podprta</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Unknown SOCKSv5 proxy error code 0x%1</source>
         <translation>Neznana koda napake posrednika SOCKSv5: 0x%1</translation>
     </message>
     <message>
-        <location line="+685"/>
         <source>Network operation timed out</source>
         <translation>Čas za omrežni postopek je potekel</translation>
     </message>
@@ -5828,32 +6406,26 @@
 <context>
     <name>QSoftKeyManager</name>
     <message>
-        <location filename="../src/gui/kernel/qsoftkeymanager.cpp" line="+78"/>
         <source>Ok</source>
         <translation>V redu</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Select</source>
         <translation>Izbor</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Done</source>
         <translation>Opravljeno</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Options</source>
         <translation>Možnosti</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Cancel</source>
         <translation>Prekliči</translation>
     </message>
     <message>
-        <location line="+151"/>
         <source>Exit</source>
         <translation>Končaj</translation>
     </message>
@@ -5861,12 +6433,10 @@
 <context>
     <name>QSpinBox</name>
     <message>
-        <location filename="../src/plugins/accessible/widgets/rangecontrols.cpp" line="-574"/>
         <source>More</source>
         <translation>Več</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Less</source>
         <translation>Manj</translation>
     </message>
@@ -5874,56 +6444,42 @@
 <context>
     <name>QSql</name>
     <message>
-        <location filename="../src/qt3support/sql/q3sqlmanager_p.cpp" line="+890"/>
         <source>Delete</source>
         <translation>Izbriši</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Delete this record?</source>
         <translation>Ali izbrišem ta zapis?</translation>
     </message>
     <message>
-        <location line="+1"/>
-        <location line="+16"/>
-        <location line="+36"/>
         <source>Yes</source>
         <translation>Da</translation>
     </message>
     <message>
-        <location line="-51"/>
-        <location line="+16"/>
-        <location line="+36"/>
         <source>No</source>
         <translation>Ne</translation>
     </message>
     <message>
-        <location line="-44"/>
         <source>Insert</source>
         <translation>Vstavi</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Update</source>
         <translation>Posodobi</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Save edits?</source>
         <translation>&amp;Shranmi urejan?.</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Cancel</source>
         <translation>Prekliči</translation>
     </message>
     <message>
-        <location line="+32"/>
         <source>Confirm</source>
         <translation>Potrdi</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Cancel your edits?</source>
         <translation>Ali želite preklicati urejanja?</translation>
     </message>
@@ -5931,80 +6487,161 @@
 <context>
     <name>QSslSocket</name>
     <message>
-        <location filename="../src/network/ssl/qsslsocket_openssl.cpp" line="+546"/>
         <source>Unable to write data: %1</source>
         <translation>Ni moč zapisati podatkov: %1</translation>
     </message>
     <message>
-        <location line="+119"/>
+        <source>Unable to decrypt data: %1</source>
+        <translation>Ni moč dešifrirati podatkov: %1</translation>
+    </message>
+    <message>
         <source>Error while reading: %1</source>
         <translation>Napaka med branjem: %1</translation>
     </message>
     <message>
-        <location line="+96"/>
         <source>Error during SSL handshake: %1</source>
         <translation>Napaka med rokovanjem SSL: %1</translation>
     </message>
     <message>
-        <location line="-501"/>
         <source>Error creating SSL context (%1)</source>
         <translation>Napaka pri ustvarjanju konteksta SSL (%1)</translation>
     </message>
     <message>
-        <location line="+25"/>
         <source>Invalid or empty cipher list (%1)</source>
         <translation>Neveljaven ali prazen seznam šifer (%1)</translation>
     </message>
     <message>
-        <location line="+62"/>
+        <source>Private key does not certify public key, %1</source>
+        <translation>Zasebni ključ ne potrjuje javnega ključa: %1</translation>
+    </message>
+    <message>
         <source>Error creating SSL session, %1</source>
         <translation>Napaka pri ustvarjanju seje SSL: %1</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Error creating SSL session: %1</source>
         <translation>Napaka pri ustvarjanju seje SSL: %1</translation>
     </message>
     <message>
-        <location line="-61"/>
         <source>Cannot provide a certificate with no key, %1</source>
         <translation>Ni moč priskrbeti potrdila brez ključa, %1</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Error loading local certificate, %1</source>
         <translation>Napaka pri nalaganju krajevnega potrdila, %1</translation>
     </message>
     <message>
-        <location line="+12"/>
         <source>Error loading private key, %1</source>
         <translation>Napaka pri nalaganju zasebnega ključa, %1</translation>
     </message>
     <message>
-        <location line="+7"/>
-        <source>Private key does not certificate public key, %1</source>
-        <translation>Zasebni ključ ne potrjuje javnega ključa, %1</translation>
+        <source>No error</source>
+        <translation>Brez napake</translation>
+    </message>
+    <message>
+        <source>The issuer certificate could not be found</source>
+        <translation>Potrdila izdajatelja ni bilo moč najti</translation>
+    </message>
+    <message>
+        <source>The certificate signature could not be decrypted</source>
+        <translation>Podpisa potrdila ni bilo moč dešifrirati</translation>
+    </message>
+    <message>
+        <source>The public key in the certificate could not be read</source>
+        <translation>Javnega ključa iz potrdila ni bilo moč prebrati</translation>
+    </message>
+    <message>
+        <source>The signature of the certificate is invalid</source>
+        <translation>Podpis potrdila ni veljaven</translation>
+    </message>
+    <message>
+        <source>The certificate is not yet valid</source>
+        <translation>Potrdilo še ni veljavno</translation>
+    </message>
+    <message>
+        <source>The certificate has expired</source>
+        <translation>Potrdilo je preteklo</translation>
+    </message>
+    <message>
+        <source>The certificate&apos;s notBefore field contains an invalid time</source>
+        <translation>Polje notBefore (ne pred) potrdila vsebuje neveljaven čas</translation>
+    </message>
+    <message>
+        <source>The certificate&apos;s notAfter field contains an invalid time</source>
+        <translation>Polje notAfter (ne po) potrdila vsebuje neveljaven čas</translation>
+    </message>
+    <message>
+        <source>The certificate is self-signed, and untrusted</source>
+        <translation>Potrdilo je samo-podpisano in nezaupano</translation>
+    </message>
+    <message>
+        <source>The root certificate of the certificate chain is self-signed, and untrusted</source>
+        <translation>Vrhnje potrdilo verige potrdil je samo-podpisano in nezaupano</translation>
+    </message>
+    <message>
+        <source>The issuer certificate of a locally looked up certificate could not be found</source>
+        <translation>Potrdila izdajatelja za krajevno najdeno potrdilo ni bilo moč najti</translation>
+    </message>
+    <message>
+        <source>No certificates could be verified</source>
+        <translation>Preveriti ni bilo moč nobenega potrdila</translation>
+    </message>
+    <message>
+        <source>One of the CA certificates is invalid</source>
+        <translation>Eno izmed potrdil avtoritete za potrdila ni veljavno</translation>
+    </message>
+    <message>
+        <source>The basicConstraints path length parameter has been exceeded</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>The supplied certificate is unsuitable for this purpose</source>
+        <translation>Predloženo potrdilo ni primerno za ta namen</translation>
+    </message>
+    <message>
+        <source>The root CA certificate is not trusted for this purpose</source>
+        <translation>Potrdilo vrhovne avtoritete za potrdila ni zaupano za ta namen</translation>
+    </message>
+    <message>
+        <source>The root CA certificate is marked to reject the specified purpose</source>
+        <translation>Potrdilo vrhovne avtoritete za potrdila je označeno za zavrnitev navedenega namena</translation>
+    </message>
+    <message>
+        <source>The current candidate issuer certificate was rejected because its subject name did not match the issuer name of the current certificate</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <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 type="unfinished"></translation>
+    </message>
+    <message>
+        <source>The peer did not present any certificate</source>
+        <translation>Vrstnik ni predložil nobenega potrdila</translation>
+    </message>
+    <message>
+        <source>The host name did not match any of the valid hosts for this certificate</source>
+        <translation>Ime gostitelja se ne ujema z nobenim izmed veljavnih gostiteljev za to potrdilo</translation>
+    </message>
+    <message>
+        <source>Unknown error</source>
+        <translation>Neznana napaka</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>V sestavljenem stanju »%1« manjka začetno stanje</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Missing default state in history state &apos;%1&apos;</source>
         <translation>V zgodovinskem stanju »%1« manjka privzeto stanje</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>No common ancestor for targets and source of transition from state &apos;%1&apos;</source>
         <translation>Za cilje in začetek prehoda iz stanja »%1« ni skupnega prednika</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Unknown error</source>
         <translation>Neznana napaka</translation>
     </message>
@@ -6012,30 +6649,22 @@
 <context>
     <name>QSystemSemaphore</name>
     <message>
-        <location filename="../src/corelib/kernel/qsystemsemaphore_unix.cpp" line="-41"/>
-        <location filename="../src/corelib/kernel/qsystemsemaphore_win.cpp" line="+66"/>
         <source>%1: out of resources</source>
         <translation>%1: zmanjkalo je virov</translation>
     </message>
     <message>
-        <location line="-13"/>
-        <location filename="../src/corelib/kernel/qsystemsemaphore_win.cpp" line="+4"/>
         <source>%1: permission denied</source>
         <translation>%1: nimate dovoljenja</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>%1: already exists</source>
         <translation>%1: že obstaja</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>%1: does not exist</source>
         <translation>%1: ne obstaja</translation>
     </message>
     <message>
-        <location line="+9"/>
-        <location filename="../src/corelib/kernel/qsystemsemaphore_win.cpp" line="+3"/>
         <source>%1: unknown error %2</source>
         <translation>%1: neznana napaka %2</translation>
     </message>
@@ -6043,12 +6672,10 @@
 <context>
     <name>QTDSDriver</name>
     <message>
-        <location filename="../src/sql/drivers/tds/qsql_tds.cpp" line="+584"/>
         <source>Unable to open connection</source>
         <translation>Ni moč vzpostaviti povezave</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Unable to use database</source>
         <translation>Podatkovne zbirke ni moč uporabljati</translation>
     </message>
@@ -6056,12 +6683,10 @@
 <context>
     <name>QTabBar</name>
     <message>
-        <location filename="../src/plugins/accessible/widgets/complexwidgets.cpp" line="-326"/>
         <source>Scroll Left</source>
         <translation>Premakni levo</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Scroll Right</source>
         <translation>Premakni desno</translation>
     </message>
@@ -6069,7 +6694,6 @@
 <context>
     <name>QTcpServer</name>
     <message>
-        <location filename="../src/network/socket/qtcpserver.cpp" line="+282"/>
         <source>Operation on socket is not supported</source>
         <translation>Dejanje na vtičnici ni podprto</translation>
     </message>
@@ -6077,42 +6701,34 @@
 <context>
     <name>QTextControl</name>
     <message>
-        <location filename="../src/gui/text/qtextcontrol.cpp" line="+2007"/>
         <source>&amp;Undo</source>
         <translation>&amp;Razveljavi</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>&amp;Redo</source>
         <translation>&amp;Uveljavi</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Cu&amp;t</source>
         <translation>&amp;Izreži</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>&amp;Copy</source>
         <translation>S&amp;kopiraj</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Copy &amp;Link Location</source>
         <translation>Skopiraj &amp;povezavo do lokacije</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>&amp;Paste</source>
         <translation>Pri&amp;lepi</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Delete</source>
         <translation>Izbriši</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Select All</source>
         <translation>Izberi vse</translation>
     </message>
@@ -6120,14 +6736,10 @@
 <context>
     <name>QToolButton</name>
     <message>
-        <location filename="../src/plugins/accessible/widgets/simplewidgets.cpp" line="+310"/>
-        <location line="+6"/>
         <source>Press</source>
         <translation>Pritisni</translation>
     </message>
     <message>
-        <location line="-4"/>
-        <location line="+8"/>
         <source>Open</source>
         <translation>Odpri</translation>
     </message>
@@ -6135,7 +6747,6 @@
 <context>
     <name>QUdpSocket</name>
     <message>
-        <location filename="../src/network/socket/qudpsocket.cpp" line="+179"/>
         <source>This platform does not support IPv6</source>
         <translation>Ta platforma ne podpira IPv6</translation>
     </message>
@@ -6143,12 +6754,10 @@
 <context>
     <name>QUndoGroup</name>
     <message>
-        <location filename="../src/gui/util/qundogroup.cpp" line="+385"/>
         <source>Undo</source>
         <translation>Razveljavi</translation>
     </message>
     <message>
-        <location line="+28"/>
         <source>Redo</source>
         <translation>Uveljavi</translation>
     </message>
@@ -6156,7 +6765,6 @@
 <context>
     <name>QUndoModel</name>
     <message>
-        <location filename="../src/gui/util/qundoview.cpp" line="+101"/>
         <source>&lt;empty&gt;</source>
         <translation>&lt;prazno&gt;</translation>
     </message>
@@ -6164,12 +6772,10 @@
 <context>
     <name>QUndoStack</name>
     <message>
-        <location filename="../src/gui/util/qundostack.cpp" line="+832"/>
         <source>Undo</source>
         <translation>Razveljavi</translation>
     </message>
     <message>
-        <location line="+27"/>
         <source>Redo</source>
         <translation>Uveljavi</translation>
     </message>
@@ -6177,57 +6783,46 @@
 <context>
     <name>QUnicodeControlCharacterMenu</name>
     <message>
-        <location filename="../src/gui/text/qtextcontrol.cpp" line="+884"/>
         <source>LRM Left-to-right mark</source>
         <translation>LRM (oznaka z-leve-na-desno)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>RLM Right-to-left mark</source>
         <translation>RLM (oznaka z-desne-na-levo)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>ZWJ Zero width joiner</source>
         <translation>ZWJ (združevalec s širino nič)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>ZWNJ Zero width non-joiner</source>
         <translation>ZWNJ (ne-združevalec s širino nič)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>ZWSP Zero width space</source>
         <translation>ZWSP (presledek s širino nič)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>LRE Start of left-to-right embedding</source>
         <translation>LRE (začetek vgrajevanja z leve na desno)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>RLE Start of right-to-left embedding</source>
         <translation>RLE (začetek vgrajevanja z desne na levo)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>LRO Start of left-to-right override</source>
         <translation>LRO (začetek nadomeščanja z leve na desno)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>RLO Start of right-to-left override</source>
         <translation>RLO (začetek nadomeščanja z desne na levo)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>PDF Pop directional formatting</source>
         <translation>PDF (odstrani oblikovanje usmerjenosti)</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Insert Unicode control character</source>
         <translation>Vstavi kontrolni znak Unicode</translation>
     </message>
@@ -6235,32 +6830,26 @@
 <context>
     <name>QWebFrame</name>
     <message>
-        <location filename="../src/3rdparty/webkit/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp" line="+711"/>
         <source>Request cancelled</source>
         <translation>Zahtevek je bil preklican</translation>
     </message>
     <message>
-        <location line="+19"/>
         <source>Request blocked</source>
         <translation>Zahtevek je bil blokiran</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Cannot show URL</source>
         <translation>Lokacije ni moč prikazati</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Frame load interrupted by policy change</source>
         <translation>Nalaganje okvirja je bilo prekinjeno zaradi spremembe pravil</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Cannot show mimetype</source>
         <translation>Vrste MIME ni moč prikazati</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>File does not exist</source>
         <translation>Datoteka ne obstaja</translation>
     </message>
@@ -6268,610 +6857,515 @@
 <context>
     <name>QWebPage</name>
     <message>
-        <location filename="../src/3rdparty/webkit/WebCore/platform/network/qt/QNetworkReplyHandler.cpp" line="+406"/>
+        <source>Redirection limit reached</source>
+        <translation>Dosežena je bila omejitev preusmeritev</translation>
+    </message>
+    <message>
         <source>Bad HTTP request</source>
         <translation>Napačen zahtevek HTTP</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>Pošlji</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>Pošlji</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Reset</source>
         <comment>default label for Reset buttons in forms on web pages</comment>
         <translation>Ponastavi</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>To je stvarno kazalo z iskanjem. Vnesite iskane besede: </translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Choose File</source>
         <comment>title for file button used in HTML forms</comment>
         <translation>Izberite datoteko</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>Datoteka ni izbrana</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Open in New Window</source>
         <comment>Open in New Window context menu item</comment>
         <translation>Odpri v novem oknu</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Save Link...</source>
         <comment>Download Linked File context menu item</comment>
         <translation>Shrani povezavo ...</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Copy Link</source>
         <comment>Copy Link context menu item</comment>
         <translation>Skopiraj povezavo</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Open Image</source>
         <comment>Open Image in New Window context menu item</comment>
         <translation>Odpri sliko</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Save Image</source>
         <comment>Download Image context menu item</comment>
         <translation>Shrani sliko</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Copy Image</source>
         <comment>Copy Link context menu item</comment>
         <translation>Kopiraj sliko</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Open Frame</source>
         <comment>Open Frame in New Window context menu item</comment>
         <translation>Odpri okvir</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Copy</source>
         <comment>Copy context menu item</comment>
         <translation>Skopiraj</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Go Back</source>
         <comment>Back context menu item</comment>
         <translation>Pojdi nazaj</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Go Forward</source>
         <comment>Forward context menu item</comment>
         <translation>Pojdi naprej</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Stop</source>
         <comment>Stop context menu item</comment>
         <translation>Ustavi</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Reload</source>
         <comment>Reload context menu item</comment>
         <translation>Znova naloži</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Cut</source>
         <comment>Cut context menu item</comment>
         <translation>Izreži</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Paste</source>
         <comment>Paste context menu item</comment>
         <translation>Prilepi</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>No Guesses Found</source>
         <comment>No Guesses Found context menu item</comment>
         <translation>Najdenega ni nobenega ugibanja</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Ignore</source>
         <comment>Ignore Spelling context menu item</comment>
         <translation>Prezri</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Add To Dictionary</source>
         <comment>Learn Spelling context menu item</comment>
         <translation>Dodaj v slovar</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Search The Web</source>
         <comment>Search The Web context menu item</comment>
         <translation>Iščite po spletu</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Look Up In Dictionary</source>
         <comment>Look Up in Dictionary context menu item</comment>
         <translation>Poišči v slovarju</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Open Link</source>
         <comment>Open Link context menu item</comment>
         <translation>Odpri povezavo</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Ignore</source>
         <comment>Ignore Grammar context menu item</comment>
         <translation>Prezri</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Spelling</source>
         <comment>Spelling and Grammar context sub-menu item</comment>
         <translation>Črkovanje</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Show Spelling and Grammar</source>
         <comment>menu item title</comment>
         <translation>Prikaži črkovanje in slovnico</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Hide Spelling and Grammar</source>
         <comment>menu item title</comment>
         <translation>Skrij črkovanje in slovnico</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Check Spelling</source>
         <comment>Check spelling context menu item</comment>
         <translation>Preveri črkovanje</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Check Spelling While Typing</source>
         <comment>Check spelling while typing context menu item</comment>
         <translation>Preveri črkovanje med tipkanjem</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Check Grammar With Spelling</source>
         <comment>Check grammar with spelling context menu item</comment>
         <translation>Preveri slovnico in črkovanje</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Fonts</source>
         <comment>Font context sub-menu item</comment>
         <translation>Pisave</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Bold</source>
         <comment>Bold context menu item</comment>
         <translation>Polkrepko</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Italic</source>
         <comment>Italic context menu item</comment>
         <translation>Ležeče</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Underline</source>
         <comment>Underline context menu item</comment>
         <translation>Podčrtano</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Outline</source>
         <comment>Outline context menu item</comment>
         <translation>Obris</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Direction</source>
         <comment>Writing direction context sub-menu item</comment>
         <translation>Smer</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Text Direction</source>
         <comment>Text direction context sub-menu item</comment>
         <translation>Smer besedila</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Default</source>
         <comment>Default writing direction context menu item</comment>
         <translation>Privzeta</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Left to Right</source>
         <comment>Left to Right context menu item</comment>
         <translation>Z leve na desno</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Right to Left</source>
         <comment>Right to Left context menu item</comment>
         <translation>Z desne na levo</translation>
     </message>
     <message>
-        <location line="+105"/>
+        <source>Missing Plug-in</source>
+        <comment>Label text to be used when a plug-in is missing</comment>
+        <translation>Manjkajoč vstavek</translation>
+    </message>
+    <message>
         <source>Loading...</source>
         <comment>Media controller status message when the media is loading</comment>
         <translation>Nalaganje ...</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Live Broadcast</source>
         <comment>Media controller status message when watching a live broadcast</comment>
         <translation>Prenos v živo</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Audio Element</source>
         <comment>Media controller element</comment>
         <translation>Zvočni element</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Video Element</source>
         <comment>Media controller element</comment>
         <translation>Video element</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Mute Button</source>
         <comment>Media controller element</comment>
         <translation>Gumb za utišanje</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Unmute Button</source>
         <comment>Media controller element</comment>
         <translation>Gumb za preklic utišanja</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Play Button</source>
         <comment>Media controller element</comment>
         <translation>Gumb za predvajanje</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Pause Button</source>
         <comment>Media controller element</comment>
         <translation>Gumb za premor</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Slider</source>
         <comment>Media controller element</comment>
         <translation>Drsnik</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Slider Thumb</source>
         <comment>Media controller element</comment>
         <translation>Ročka na drsniku</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Rewind Button</source>
         <comment>Media controller element</comment>
         <translation>Gumb za previjanje</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Return to Real-time Button</source>
         <comment>Media controller element</comment>
         <translation>Gumb za vrnitev na resnični čas</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Elapsed Time</source>
         <comment>Media controller element</comment>
         <translation>Pretečeni čas</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Remaining Time</source>
         <comment>Media controller element</comment>
         <translation>Preostali čas</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Status Display</source>
         <comment>Media controller element</comment>
         <translation>Prikaz stanja</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Fullscreen Button</source>
         <comment>Media controller element</comment>
         <translation>Gumb za cel zaslon</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Seek Forward Button</source>
         <comment>Media controller element</comment>
         <translation>Gumb za pomik naprej</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Seek Back Button</source>
         <comment>Media controller element</comment>
         <translation>Gumb za pomik nazaj</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Audio element playback controls and status display</source>
         <comment>Media controller element</comment>
         <translation>Nadzor in prikaz stanja elementa za predvajanje zvoka</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Video element playback controls and status display</source>
         <comment>Media controller element</comment>
         <translation>Nadzor in prikaz stanja elementa za predvajanje videa</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Mute audio tracks</source>
         <comment>Media controller element</comment>
         <translation>Utišaj zvočne sledi</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Unmute audio tracks</source>
         <comment>Media controller element</comment>
         <translation>Prekliči utišanje zvočnih sledi</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Begin playback</source>
         <comment>Media controller element</comment>
         <translation>Začni predvajanje</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Pause playback</source>
         <comment>Media controller element</comment>
         <translation>Prekini predvajanje</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Movie time scrubber</source>
         <comment>Media controller element</comment>
-        <translation></translation>
-    </message>
-    <message>
-        <location line="+2"/>
+        <translation>Drsnik za mesto v posnetku</translation>
+    </message>
+    <message>
         <source>Movie time scrubber thumb</source>
         <comment>Media controller element</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+2"/>
+        <translation>Drsnik za mesto v posnetku</translation>
+    </message>
+    <message>
         <source>Rewind movie</source>
         <comment>Media controller element</comment>
         <translation>Previj film</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Return streaming movie to real-time</source>
         <comment>Media controller element</comment>
         <translation>Povrni film na resnični čas</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Current movie time</source>
         <comment>Media controller element</comment>
         <translation>Trenutni čas filma</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Remaining movie time</source>
         <comment>Media controller element</comment>
         <translation>Preostali čas filma</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Current movie status</source>
         <comment>Media controller element</comment>
         <translation>Trenutno stanje filma</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Play movie in full-screen mode</source>
         <comment>Media controller element</comment>
         <translation>Predvajaj film čez ves zaslon</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Seek quickly back</source>
         <comment>Media controller element</comment>
         <translation>Hitro se pomakni nazaj</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Seek quickly forward</source>
         <comment>Media controller element</comment>
         <translation>Hitro se pomakni naprej</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Indefinite time</source>
         <comment>Media time description</comment>
         <translation>Nedoločen čas</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>%1 days %2 hours %3 minutes %4 seconds</source>
         <comment>Media time description</comment>
         <translation>%1 dni %2 ur %3 minut %4 sekund</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>%1 hours %2 minutes %3 seconds</source>
         <comment>Media time description</comment>
         <translation>%1 ur %2 minut %3 sekund</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>%1 minutes %2 seconds</source>
         <comment>Media time description</comment>
         <translation>%1 minut %2 sekund</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>%1 seconds</source>
         <comment>Media time description</comment>
         <translation>%1 sekund</translation>
     </message>
     <message>
-        <location line="-210"/>
         <source>Inspect</source>
         <comment>Inspect Element context menu item</comment>
         <translation>Preglej.</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>Ni nedavnih iskanj</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>Nedavna iskanja</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>Počisti nedavna iskanja</translation>
     </message>
     <message>
-        <location line="+75"/>
         <source>Unknown</source>
         <comment>Unknown filesize FTP directory listing item</comment>
         <translation>Neznana</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>%1 (%2x%3 pixels)</source>
         <comment>Title string for images</comment>
         <translation>%1 (%2×%3 pik)</translation>
     </message>
     <message>
-        <location filename="../src/3rdparty/webkit/WebKit/qt/WebCoreSupport/InspectorClientQt.cpp" line="+167"/>
         <source>Web Inspector - %2</source>
         <translation>Web Inspector - %2</translation>
     </message>
     <message>
-        <location filename="../src/3rdparty/webkit/WebCore/platform/qt/ScrollbarQt.cpp" line="+58"/>
         <source>Scroll here</source>
         <translation>Premakni sem</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Left edge</source>
         <translation>Levi rob</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Top</source>
         <translation>Vrh</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Right edge</source>
         <translation>Desni rob</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Bottom</source>
         <translation>Dno</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Page left</source>
         <translation>Za stran levo</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Page up</source>
         <translation>Za stran gor</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Page right</source>
         <translation>Za stran desno</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Page down</source>
         <translation>Za stran dol</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Scroll left</source>
         <translation>Premakni levo</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Scroll up</source>
         <translation>Premakni gor</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Scroll right</source>
         <translation>Premakni desno</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Scroll down</source>
         <translation>Premakni dol</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>
@@ -6882,251 +7376,197 @@
         </translation>
     </message>
     <message>
-        <location filename="../src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp" line="+1708"/>
         <source>JavaScript Alert - %1</source>
         <translation>Opozorilo JavaScript - %1</translation>
     </message>
     <message>
-        <location line="+16"/>
         <source>JavaScript Confirm - %1</source>
         <translation>Potrditev JavaScript - %1</translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>JavaScript Prompt - %1</source>
         <translation>Poziv JavaScript - %1</translation>
     </message>
     <message>
-        <location line="+25"/>
         <source>JavaScript Problem - %1</source>
         <translation>Težava JavaScript - %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>Kot kaže ima skript na tej strani težavo. Ali želite ustaviti skript?</translation>
     </message>
     <message>
-        <location line="+383"/>
         <source>Move the cursor to the next character</source>
         <translation>Premakni kazalec na naslednji znak</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Move the cursor to the previous character</source>
         <translation>Premakni kazalec na prejšnji znak</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Move the cursor to the next word</source>
         <translation>Premakni kazalec v naslednjo besedo</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Move the cursor to the previous word</source>
         <translation>Premakni kazalec v prejšnjo besedo</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Move the cursor to the next line</source>
         <translation>Premakni kazalec v naslednjo vrstico</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Move the cursor to the previous line</source>
         <translation>Premakni kazalec v prejšnjo vrstico</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Move the cursor to the start of the line</source>
         <translation>Premakni kazalec na začetek vrstice</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Move the cursor to the end of the line</source>
         <translation>Premakni kazalec na konec vrstice</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Move the cursor to the start of the block</source>
         <translation>Premakni kazalec na začetek bloka</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Move the cursor to the end of the block</source>
         <translation>Premakni kazalec na konec bloka</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Move the cursor to the start of the document</source>
         <translation>Premakni kazalec na začetek dokumenta</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Move the cursor to the end of the document</source>
         <translation>Premakni kazalec na konec dokumenta</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Select all</source>
         <translation>Izberi vse</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Select to the next character</source>
         <translation>Izberi do naslednjega znaka</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Select to the previous character</source>
         <translation>Izberi do prejšnjega znaka</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Select to the next word</source>
         <translation>Izberi do naslednje besede</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Select to the previous word</source>
         <translation>Izberi do prejšnje besede</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Select to the next line</source>
         <translation>Izberi do naslednje vrstice</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Select to the previous line</source>
         <translation>Izberi do prejšnje vrstice</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Select to the start of the line</source>
         <translation>Izberi do začetka vrstice</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Select to the end of the line</source>
         <translation>Izberi do konca vrstice</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Select to the start of the block</source>
         <translation>Izberi do začetka bloka</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Select to the end of the block</source>
         <translation>Izberi do konca bloka</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Select to the start of the document</source>
         <translation>Izberi do začetka dokumenta</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Select to the end of the document</source>
         <translation>Izberi do konca dokumenta</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Delete to the start of the word</source>
         <translation>Izbriši do začetka besede</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Delete to the end of the word</source>
         <translation>Izbriši do konca besede</translation>
     </message>
     <message>
-        <location line="+33"/>
         <source>Insert a new paragraph</source>
         <translation>Vstavi nov odstavek</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Insert a new line</source>
         <translation>Vstavi novo vrstico</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Paste and Match Style</source>
         <translation>Prilepi in uskladi slog</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Remove formatting</source>
         <translation>Odstrani oblikovanje</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Strikethrough</source>
         <translation>Prečrtano</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Subscript</source>
         <translation>Podpisano</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Superscript</source>
         <translation>Nadpisano</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Insert Bulleted List</source>
         <translation>Vstavi navadni seznam</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Insert Numbered List</source>
         <translation>Vstavi oštevilčeni seznam</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Indent</source>
         <translation>Zamakni</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Outdent</source>
         <translation>Odzamakni</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Center</source>
         <translation>Sredinsko</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Justify</source>
         <translation>Obojestransko</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Align Left</source>
         <translation>Poravnaj levo</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Align Right</source>
         <translation>Poravnaj desno</translation>
     </message>
-    <message>
-        <location filename="Obsolete_PO_entries"/>
-        <source>Remaining move time</source>
-        <comment>Media controller element</comment>
-        <translation type="obsolete">Preostali čas filma</translation>
-    </message>
 </context>
 <context>
     <name>QWhatsThisAction</name>
     <message>
-        <location filename="../src/gui/kernel/qwhatsthis.cpp" line="+527"/>
         <source>What&apos;s This?</source>
         <translation>Kaj je to?</translation>
     </message>
@@ -7134,7 +7574,6 @@
 <context>
     <name>QWidget</name>
     <message>
-        <location filename="../src/gui/kernel/qwidget.cpp" line="+5672"/>
         <source>*</source>
         <translation>*</translation>
     </message>
@@ -7142,57 +7581,46 @@
 <context>
     <name>QWizard</name>
     <message>
-        <location filename="../src/gui/dialogs/qwizard.cpp" line="+649"/>
         <source>Go Back</source>
         <translation>Pojdi nazaj</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Continue</source>
         <translation>Nadaljuj</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Commit</source>
         <translation>Uveljavi</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Done</source>
         <translation>Opravljeno</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Help</source>
         <translation>Pomoč</translation>
     </message>
     <message>
-        <location line="-14"/>
         <source>&lt; &amp;Back</source>
         <translation>&lt; Na&amp;zaj</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>&amp;Finish</source>
         <translation>&amp;Zaključi</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Cancel</source>
         <translation>Prekliči</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>&amp;Help</source>
         <translation>&amp;Pomoč</translation>
     </message>
     <message>
-        <location line="-8"/>
         <source>&amp;Next</source>
         <translation>&amp;Naprej</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>&amp;Next &gt;</source>
         <translation>&amp;Naprej &gt;</translation>
     </message>
@@ -7200,69 +7628,54 @@
 <context>
     <name>QWorkspace</name>
     <message>
-        <location filename="../src/gui/widgets/qworkspace.cpp" line="+1089"/>
         <source>&amp;Restore</source>
         <translation>&amp;Obnovi</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Move</source>
         <translation>&amp;Premakni</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Size</source>
         <translation>&amp;Velikost</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Mi&amp;nimize</source>
         <translation>Po&amp;manjšaj</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Ma&amp;ximize</source>
         <translation>&amp;Razpni</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>&amp;Close</source>
         <translation>&amp;Zapri</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Stay on &amp;Top</source>
         <translation>Ostani na &amp;vrhu</translation>
     </message>
     <message>
-        <location line="+3"/>
-        <location line="+1059"/>
         <source>Sh&amp;ade</source>
         <translation>Zvi&amp;j</translation>
     </message>
     <message>
-        <location line="-278"/>
-        <location line="+60"/>
         <source>%1 - [%2]</source>
         <translation>%1 - [%2]</translation>
     </message>
     <message>
-        <location line="-1832"/>
         <source>Minimize</source>
         <translation>Pomanjšaj</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Restore Down</source>
         <translation>Obnovi navzdol</translation>
     </message>
     <message>
-        <location line="-4"/>
         <source>Close</source>
         <translation>Zapri</translation>
     </message>
     <message>
-        <location line="+2048"/>
         <source>&amp;Unshade</source>
         <translation>Razv&amp;ij</translation>
     </message>
@@ -7270,543 +7683,451 @@
 <context>
     <name>QXml</name>
     <message>
-        <location filename="../src/xml/sax/qxml.cpp" line="+58"/>
         <source>no error occurred</source>
         <translation>ni nobene napake</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>error triggered by consumer</source>
         <translation>napako povzročil uporabnik</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>unexpected end of file</source>
         <translation>nepričakovan konec datoteke</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>more than one document type definition</source>
         <translation>več kot ena definicija vrste dokumenta</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>error occurred while parsing element</source>
         <translation>napaka med analiziranjem elementa</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>tag mismatch</source>
         <translation>neprimerna oznaka</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>error occurred while parsing content</source>
         <translation>napaka med analiziranje vsebine</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>unexpected character</source>
         <translation>nepričakovan znak</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>invalid name for processing instruction</source>
         <translation>nepravilno ime za ukaz obdelave</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>version expected while reading the XML declaration</source>
         <translation>pričakovana različica med branjem deklaracije XML</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>wrong value for standalone declaration</source>
         <translation>napačna vrednost za samostojno deklaracijo</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>encoding declaration or standalone declaration expected while reading the XML declaration</source>
         <translation>deklaracija kodiranja ali samostojna deklaracija je bila pričakovana med branjem deklaracije XML</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>standalone declaration expected while reading the XML declaration</source>
         <translation>samostojna deklaracija pričakovana med branjem deklaracije XML</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>error occurred while parsing document type definition</source>
         <translation>napaka med analiziranjem vrste definicije dokumenta</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>letter is expected</source>
         <translation>pričakovana je črka</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>error occurred while parsing comment</source>
         <translation>napaka med analiziranjem komentarja</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>error occurred while parsing reference</source>
         <translation>napaka med analiziranjem reference</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>internal general entity reference not allowed in DTD</source>
         <translation>referenca notranje splošne entitete ni dovoljena v DTD</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>external parsed general entity reference not allowed in attribute value</source>
         <translation>referenca zunanje analizirane splošne entitete ni dovoljena v vrednosti atributa</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>external parsed general entity reference not allowed in DTD</source>
         <translation>referenca zunanje analizirane splošne entitete ni dovoljena v DTD</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>unparsed entity reference in wrong context</source>
         <translation>referenca neanalizirane entitete v napačnem kontekstu</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>recursive entities</source>
         <translation>rekurzivne entitete</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>error in the text declaration of an external entity</source>
         <translation>napaka v besedilni deklaraciji zunanje entitete</translation>
     </message>
 </context>
 <context>
+    <name>QXmlPatternistCLI</name>
+    <message>
+        <source>Warning in %1, at line %2, column %3: %4</source>
+        <translation>Opozorilo v %1, vrstica %2, stolpec %3: %4</translation>
+    </message>
+    <message>
+        <source>Warning in %1: %2</source>
+        <translation>Opozorilo v %1: %2</translation>
+    </message>
+    <message>
+        <source>Unknown location</source>
+        <translation>Neznana lokacija</translation>
+    </message>
+    <message>
+        <source>Error %1 in %2, at line %3, column %4: %5</source>
+        <translation>Napaka %1 v %2, vrstica %3, stolpec %4: %5</translation>
+    </message>
+    <message>
+        <source>Error %1 in %2: %3</source>
+        <translation>Napaka %1 v %2: %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>Dodatna vsebina na koncu dokumenta.</translation>
     </message>
     <message>
-        <location line="+271"/>
         <source>Invalid entity value.</source>
         <translation>Neveljavna vrednost entitete.</translation>
     </message>
     <message>
-        <location line="+109"/>
         <source>Invalid XML character.</source>
         <translation>Neveljaven znak XML.</translation>
     </message>
     <message>
-        <location line="+259"/>
         <source>Sequence &apos;]]&gt;&apos; not allowed in content.</source>
         <translation>Zaporedje »]]&gt;« v vsebini ni dovoljeno.</translation>
     </message>
     <message>
-        <location line="+309"/>
         <source>Namespace prefix &apos;%1&apos; not declared</source>
         <translation>Predpona imenskega prostora »%1« ni deklarirana</translation>
     </message>
     <message>
-        <location line="+78"/>
         <source>Attribute redefined.</source>
         <translation>Atribut je redefiniran.</translation>
     </message>
     <message>
-        <location line="+115"/>
         <source>Unexpected character &apos;%1&apos; in public id literal.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+28"/>
+        <translation>Nepričakovan znak »%1« v javnem literalu ID-ja.</translation>
+    </message>
+    <message>
         <source>Invalid XML version string.</source>
         <translation>Neveljaven niz različice XML.</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Unsupported XML version.</source>
         <translation>Nepodprta različica XML.</translation>
     </message>
     <message>
-        <location line="+23"/>
         <source>%1 is an invalid encoding name.</source>
         <translation>%1 ni veljavno ime kodiranja.</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Encoding %1 is unsupported</source>
         <translation>Kodiranje %1 ni podprto</translation>
     </message>
     <message>
-        <location line="+16"/>
         <source>Standalone accepts only yes or no.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+2"/>
+        <translation>Samostojni (standalone) sprejema samo da (yes) ali ne (no).</translation>
+    </message>
+    <message>
         <source>Invalid attribute in XML declaration.</source>
         <translation>Neveljaven atribut v deklaraciji XML.</translation>
     </message>
     <message>
-        <location line="+16"/>
         <source>Premature end of document.</source>
         <translation>Predčasen konec dokumenta.</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Invalid document.</source>
         <translation>Neveljaven dokument..</translation>
     </message>
     <message>
-        <location line="+40"/>
         <source>Expected </source>
         <translation>Pričakovan</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>, but got &apos;</source>
         <translation>, vendar prejel &apos;</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Unexpected &apos;</source>
         <translation>Nepričakovan &apos;</translation>
     </message>
     <message>
-        <location line="+225"/>
         <source>Expected character data.</source>
         <translation>Pričakoval znakovne podatke.</translation>
     </message>
     <message>
-        <location filename="../src/corelib/xml/qxmlstream_p.h" line="-995"/>
         <source>Recursive entity detected.</source>
         <translation>Zaznana je bila rekurzivna entiteta.</translation>
     </message>
     <message>
-        <location line="+516"/>
         <source>Start tag expected.</source>
         <translation>Pričakovana je bila začetna oznaka.</translation>
     </message>
     <message>
-        <location line="+222"/>
         <source>XML declaration not at start of document.</source>
         <translation>Deklaracija XML ni na začetku dokumenta.</translation>
     </message>
     <message>
-        <location line="-31"/>
         <source>NDATA in parameter entity declaration.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+34"/>
+        <translation>NDATA v parametru deklaracije entitete.</translation>
+    </message>
+    <message>
         <source>%1 is an invalid processing instruction name.</source>
         <translation>%1 ni veljavno ime ukaza obdelave.</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>Invalid processing instruction name.</source>
         <translation>Neveljavno ime ukaza obdelave.</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>Neveljavna deklaracija imenskega prostora.</translation>
     </message>
     <message>
-        <location filename="../src/corelib/xml/qxmlstream_p.h" line="+15"/>
         <source>Invalid XML name.</source>
         <translation>Neveljavno ime XML.</translation>
     </message>
     <message>
-        <location line="+23"/>
         <source>Opening and ending tag mismatch.</source>
         <translation>Začetni in zaključni oznaki se ne ujemata.</translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>Reference to unparsed entity &apos;%1&apos;.</source>
         <translation>Referenca na nerazčlenjeno entiteto »%1«.</translation>
     </message>
     <message>
-        <location line="-13"/>
-        <location line="+61"/>
-        <location line="+40"/>
         <source>Entity &apos;%1&apos; not declared.</source>
         <translation>Entiteta »%1« ni deklarirana.</translation>
     </message>
     <message>
-        <location line="-26"/>
         <source>Reference to external entity &apos;%1&apos; in attribute value.</source>
         <translation>Referenca na zunanjo entiteto »%1« v vrednosti lastnosti.</translation>
     </message>
     <message>
-        <location line="+40"/>
         <source>Invalid character reference.</source>
         <translation>Neveljavna znakovna referenca.</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>Naletel na napačno zakodirano vsebino.</translation>
     </message>
     <message>
-        <location line="+274"/>
         <source>The standalone pseudo attribute must appear after the encoding.</source>
         <translation>Samostojni psevdo-atribut se mora pojaviti za kodiranjem.</translation>
     </message>
     <message>
-        <location filename="../src/corelib/xml/qxmlstream_p.h" line="+562"/>
         <source>%1 is an invalid PUBLIC identifier.</source>
-        <translation type="unfinished"></translation>
+        <translation>%1 ni veljaven javni identifikator.</translation>
     </message>
 </context>
 <context>
     <name>QtXmlPatterns</name>
     <message>
-        <location filename="../src/xmlpatterns/api/qiodevicedelegate.cpp" line="+84"/>
         <source>Network timeout.</source>
         <translation>Čas za omrežje je potekel.</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 type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/xmlpatterns/data/qabstractdatetime.cpp" line="+80"/>
+        <translation>Elementa %1 ni moč serializirati, ker se nahaja zunaj elementa dokumenta.</translation>
+    </message>
+    <message>
         <source>Year %1 is invalid because it begins with %2.</source>
         <translation>Leto %1 ni veljavno, ker se začne z %2.</translation>
     </message>
     <message>
-        <location line="+19"/>
         <source>Day %1 is outside the range %2..%3.</source>
         <translation>Dan %1 je izven obsega %2..%3.</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Month %1 is outside the range %2..%3.</source>
         <translation>Mesec %1 je izven obsega %2..%3.</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>Overflow: Can&apos;t represent date %1.</source>
         <translation>Prekoračitev: ni moč predstaviti datuma %1.</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Day %1 is invalid for month %2.</source>
         <translation>Dan %1 za mesec %2 ni veljaven.</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>Čas 24:%1:%2.%3 ni veljaven. Ura je 24, vendar minute, sekunde in milisekunde niso vse 0; </translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>Time %1:%2:%3.%4 is invalid.</source>
         <translation>Čas %1:%2:%3.%4 ni veljaven.</translation>
     </message>
     <message>
-        <location line="+115"/>
         <source>Overflow: Date can&apos;t be represented.</source>
         <translation>Prekoračitev: datuma ni moč predstaviti.</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>Prisotna mora biti vsaj ena komponenta.</translation>
     </message>
     <message>
-        <location line="-7"/>
         <source>At least one time component must appear after the %1-delimiter.</source>
         <translation>Za razmejiteljem %1 se mora pojaviti vsaj ena časovna komponenta.</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 ni veljavna vrednost vrste %2.</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 type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/data/qatomicmathematicians.cpp" line="+65"/>
         <source>Integer division (%1) by zero (%2) is undefined.</source>
         <translation>Deljenje celega števila (%1) z nič (%2) ni določeno.</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Division (%1) by zero (%2) is undefined.</source>
         <translation>Deljenje (%1) z nič (%2) ni določeno.</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Modulus division (%1) by zero (%2) is undefined.</source>
         <translation>Ostanek deljenja (%1) z nič (%2) ni določen.</translation>
     </message>
     <message>
-        <location line="+122"/>
-        <location line="+32"/>
         <source>Dividing a value of type %1 by %2 (not-a-number) is not allowed.</source>
         <translation>Deljenje vrednosti vrste %1 z %2 (ni število) ni dovoljeno.</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>Deljenje vrednosti vrste %1 z %2 ali %3 (pozitivna ali negativna nič) ni dovoljeno.</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>Množenje vrednosti vrste %1 z %2 ali %3 (pozitivna ali negativna neskončnost) ni dovoljeno.</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>Vrednost vrste %1 ne more imeti dejanske logične vrednosti.</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>Dejanske logične vrednosti ni moč izračunati za zaporedje, ki vsebuje dve ali več atomičnih vrednosti.</translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/data/qderivedinteger_p.h" line="+402"/>
         <source>Value %1 of type %2 exceeds maximum (%3).</source>
         <translation>Vrednost %1 vrste %2 presega maksimum (%3).</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Value %1 of type %2 is below minimum (%3).</source>
         <translation>Vrednost %1 vrste %2 je pod minimumom (%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>Vrednost vrste %1 mora vsebovati sodo število števk. Vrednost %2 temu ne zadošča.</translation>
     </message>
     <message>
-        <location line="+19"/>
         <source>%1 is not valid as a value of type %2.</source>
         <translation>%1 ni veljavna kot vrednost vrste %2.</translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/expr/qarithmeticexpression.cpp" line="+207"/>
         <source>Operator %1 cannot be used on type %2.</source>
         <translation>Operatorja %1 ni moč uporabiti na vrsti %2.</translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>Operator %1 cannot be used on atomic values of type %2 and %3.</source>
         <translation>Operatorja %1 ni moč uporabiti na atomičnih vrednostih vrst %2 in %3.</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>URI imenskega prostora v imenu izračunane lastnosti ne more biti %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>Ime izračunane lastnosti ne more imeti URI-ja imenskega prostora %1 s krajevnim imenom %2.</translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/expr/qcastas.cpp" line="+88"/>
         <source>Type error in cast, expected %1, received %2.</source>
         <translation type="unfinished"></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 type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/expr/qcommentconstructor.cpp" line="+67"/>
         <source>A comment cannot contain %1</source>
         <translation>Komentar ne more vsebovati %1</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>A comment cannot end with a %1.</source>
         <translation>Komentar se ne more končati z %1.</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 type="unfinished"></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>Modula knjižnice ni moč ovrednotiti neposredno. Uvoziti ga je potrebno iz glavnega modula.</translation>
     </message>
     <message>
-        <location line="+40"/>
         <source>No template by name %1 exists.</source>
         <translation>Predloga z imenom %1 ne obstaja.</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 type="unfinished"></translation>
     </message>
     <message>
-        <location line="+32"/>
         <source>A positional predicate must evaluate to a single numeric value.</source>
         <translation type="unfinished"></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 type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+24"/>
+        <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 type="unfinished"></translation>
+    </message>
+    <message>
         <source>%1 is not a valid target name in a processing instruction. It must be a %2 value, e.g. %3.</source>
         <translation type="unfinished"></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 type="unfinished"></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>Podatki ukaza za obdelavo ne morejo vsebovati niza %1</translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/expr/qqnameconstructor.cpp" line="+82"/>
         <source>No namespace binding exists for the prefix %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/expr/qqnameconstructor_p.h" line="+156"/>
         <source>No namespace binding exists for the prefix %1 in %2</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+12"/>
-        <location filename="../src/xmlpatterns/functions/qqnamefns.cpp" line="+69"/>
         <source>%1 is an invalid %2</source>
         <translation>%1 ni veljaven %2</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 potrebuje največ %n argument. %2 zato ni veljavno.</numerusform>
@@ -7816,7 +8137,6 @@
         </translation>
     </message>
     <message numerus="yes">
-        <location line="+11"/>
         <source>%1 requires at least %n argument(s). %2 is therefore invalid.</source>
         <translation>
             <numerusform>%1 potrebuje najmanj %n argument. %2 zato ni veljavno.</numerusform>
@@ -7826,2399 +8146,2052 @@
         </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>Prvi argument za %1 ne more biti vrste %2. Mora biti številčne vrste, xs:yearMonthDuration ali xs:dayTimeDuration.</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>Prvi argument za %1 ne more biti vrste %2. Mora biti vrste %3, %4 ali %5.</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>Drugi argument za %1 ne more biti vrste %2. Mora biti vrste %3, %4 ali %5.</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 ni veljaven znak XML 1.0.</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 type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/functions/qerrorfn.cpp" line="+61"/>
         <source>%1 was called.</source>
         <translation>%1 je bila klicana.</translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/functions/qpatternmatchingfns.cpp" line="+94"/>
         <source>%1 must be followed by %2 or %3, not at the end of the replacement string.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+39"/>
         <source>In the replacement string, %1 must be followed by at least one digit when not escaped.</source>
         <translation type="unfinished"></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 type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/functions/qpatternplatform.cpp" line="+92"/>
         <source>%1 matches newline characters</source>
         <translation>%1 se ujema z znaki za novo vrstico</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>%1 and %2 match the start and end of a line.</source>
         <translation>%1 in %2 se ujemata z začetkom in koncem vrstice.</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Matches are case insensitive</source>
         <translation>Ujemanja niso občutljiva na velikost črk</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Whitespace characters are removed, except when they appear in character classes</source>
         <translation>Znaki za presledke so odstranjeni, razen ko se pojavijo v znakovnih razredih</translation>
     </message>
     <message>
-        <location line="+100"/>
         <source>%1 is an invalid regular expression pattern: %2</source>
         <translation>%1 ni veljaven vzorec regularnega izraza: %2</translation>
     </message>
     <message>
-        <location line="+30"/>
         <source>%1 is an invalid flag for regular expressions. Valid flags are:</source>
         <translation type="unfinished"></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>Če je prvi argument prazno zaporedje, ali pa niz z dolžino nič (brez imenskega prostora), predpone ni moč določiti. Določena je bila predpona %1.</translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/functions/qsequencefns.cpp" line="+346"/>
         <source>It will not be possible to retrieve %1.</source>
         <translation>%1 ne bo možno pridobiti.</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 type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/functions/qsequencegeneratingfns.cpp" line="+266"/>
         <source>The default collection is undefined</source>
         <translation>Privzeta zbirka ni določena.</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>%1 cannot be retrieved</source>
         <translation>%1 ni moč pridobiti</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 type="unfinished"></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 type="unfinished"></translation>
     </message>
     <message>
-        <location line="+12"/>
         <source>%1 is not a whole number of minutes.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/xmlpatterns/janitors/qcardinalityverifier.cpp" line="+58"/>
+        <translation>%1 ni celovito število minut.</translation>
+    </message>
+    <message>
         <source>Required cardinality is %1; got cardinality %2.</source>
         <translation type="unfinished"></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>Postavka %1 se ne ujema z zahtevano vrsto %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 ni znana vrsta sheme.</translation>
     </message>
     <message>
-        <location line="-7041"/>
+        <source>A template with name %1 has already been declared.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <source>Only one %1 declaration can occur in the query prolog.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+188"/>
         <source>The initialization of variable %1 depends on itself</source>
         <translation>Inicializacija spremenljivke %1 je odvisna od same sebe.</translation>
     </message>
     <message>
-        <location line="+63"/>
-        <source>No variable by name %1 exists</source>
-        <translation>Spremenljivka z imenom %1 ne obstaja</translation>
-    </message>
-    <message>
-        <location filename="../src/xmlpatterns/parser/qparsercontext.cpp" line="+93"/>
         <source>The variable %1 is unused</source>
         <translation>Spremenljivka %1 ni uporabljena</translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/parser/qquerytransformparser.cpp" line="+2841"/>
         <source>Version %1 is not supported. The supported XQuery version is 1.0.</source>
         <translation>Različica %1 ni podprta. Podpra različica XQuery je 1.0.</translation>
     </message>
     <message>
-        <location line="+16"/>
         <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>Kodiranje %1 ni veljavno. Vsebovati mora le znake latinske abecede, ne sme vsebovati presledkov in se mora ujemati z regularnim izrazom %2.</translation>
     </message>
     <message>
-        <location line="+55"/>
         <source>No function with signature %1 is available</source>
         <translation>Na voljo ni nobene funkcije s podpisom %1</translation>
     </message>
     <message>
-        <location line="+72"/>
-        <location line="+10"/>
         <source>A default namespace declaration must occur before function, variable, and option declarations.</source>
         <translation>Deklaracije privzetega imenskega prostora se mora pojaviti pred deklaracijami funkcij, spremenljivk in možnosti.</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>Namespace declarations must occur before function, variable, and option declarations.</source>
         <translation>Deklaracije imenskih prostorov se morajo pojaviti pred deklaracijami funkcij, spremenljivk in možnosti.</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>Module imports must occur before function, variable, and option declarations.</source>
         <translation>Uvozi modulov se morajo pojaviti pred deklaracijami funkcij, spremenljivk in možnosti.</translation>
     </message>
     <message>
-        <location line="+200"/>
         <source>It is not possible to redeclare prefix %1.</source>
         <translation>Predpone %1 ni moč znova deklarirati.</translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>Prefix %1 is already declared in the prolog.</source>
         <translation type="unfinished"></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>Ime možnosti mora vsebovati predpono. Privzeti imenski prostor za možnosti ne obstaja.</translation>
     </message>
     <message>
-        <location line="+171"/>
         <source>The Schema Import feature is not supported, and therefore %1 declarations cannot occur.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>The target namespace of a %1 cannot be empty.</source>
         <translation>Ciljni imenski prostor za %1 ne sme biti prazen.</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>The module import feature is not supported</source>
         <translation>Zmožnost uvažanja modulov ni podprta</translation>
     </message>
     <message>
-        <location line="+52"/>
-        <source>No value is available for the external variable by name %1.</source>
-        <translation>Za zunanjo spremenljivko z imenom %1 ni na voljo nobene vrednosti.</translation>
-    </message>
-    <message>
-        <location line="-4036"/>
-        <source>A template by name %1 has already been declared.</source>
-        <translation>Predloga z imenom %1 je že bila deklarirana.</translation>
-    </message>
-    <message>
-        <location line="+3581"/>
         <source>The keyword %1 cannot occur with any other mode name.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+29"/>
-        <source>The value of attribute %1 must of type %2, which %3 isn&apos;t.</source>
-        <translation>Vrednost lastnosti %1 mora biti vrste %2, %3 pa to ni.</translation>
-    </message>
-    <message>
-        <location line="+75"/>
-        <source>The prefix %1 can not be bound. By default, it is already bound to the namespace %2.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+312"/>
-        <source>A variable by name %1 has already been declared.</source>
-        <translation>Spremenljivka z imenom %1 je že bila deklarirana.</translation>
-    </message>
-    <message>
-        <location line="+135"/>
         <source>A stylesheet function must have a prefixed name.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>The namespace for a user defined function cannot be empty (try the predefined prefix %1 which exists for cases like this)</source>
         <translation>Imenski prostor za uporabniško določeno funkcijo ne sme biti prazen (poskusite z vnaprej določeno predpono %1, ki obstaja za take primere)</translation>
     </message>
     <message>
-        <location line="+9"/>
         <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>Imenski prostor %1 je rezerviran, zato ga uporabniško določene funkcije ne smejo uporabiti. Poskusite z vnaprej določeno predpono %2, ki obstaja za take primere.</translation>
     </message>
     <message>
-        <location line="+12"/>
         <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>Imenski prostor uporabniško določene funkcije v modulu knjižnice mora biti enak imenskemu prostoru modula. Z drugimi besedami, moral bi biti %1, namesto %2.</translation>
     </message>
     <message>
-        <location line="+34"/>
         <source>A function already exists with the signature %1.</source>
         <translation>Funkcija s podpisom %1 že obstaja.</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>Zunanje funkcije niso podprte. Vse podprte funkcije je moč uporabiti neposredno, brez da bi jih najprej deklarirali kot zunanje.</translation>
     </message>
     <message>
-        <location line="+37"/>
-        <source>An argument by name %1 has already been declared. Every argument name must be unique.</source>
-        <translation>Argument z imenom %1 je že bil deklariran. Vsako ime argumenta mora biti edinstveno.</translation>
-    </message>
-    <message>
-        <location line="+179"/>
+        <source>No variable with name %1 exists</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>The value of attribute %1 must be of type %2, which %3 isn&apos;t.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>The prefix %1 cannot be bound. By default, it is already bound to the namespace %2.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>A variable with name %1 has already been declared.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>No value is available for the external variable with name %1.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>An argument with name %1 has already been declared. Every argument name must be unique.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <source>When function %1 is used for matching inside a pattern, the argument must be a variable reference or a string literal.</source>
         <translation type="unfinished"></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 type="unfinished"></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 type="unfinished"></translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>In an XSL-T pattern, function %1 cannot have a third argument.</source>
         <translation>V XSL-T vzorcu funkcija %1 ne more imeti tretjega argumenta.</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 type="unfinished"></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 type="unfinished"></translation>
     </message>
     <message>
-        <location line="+126"/>
         <source>%1 is an invalid template mode name.</source>
         <translation type="unfinished"></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>Ime spremenljivke priklenjene v izrazu »for« se mora razlikovati od spremenljivke položaja. Spremenljivki z imenom %1 zato trčita.</translation>
     </message>
     <message>
-        <location line="+778"/>
         <source>The Schema Validation Feature is not supported. Hence, %1-expressions may not be used.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+40"/>
         <source>None of the pragma expressions are supported. Therefore, a fallback expression must be present</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+269"/>
         <source>Each name of a template parameter must be unique; %1 is duplicated.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+129"/>
         <source>The %1-axis is unsupported in XQuery</source>
         <translation>Os %1 v XQuery ni podprta</translation>
     </message>
     <message>
-        <location line="+1197"/>
+        <source>No function with name %1 is available.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>An attribute with name %1 has already appeared on this element.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <source>%1 is not a valid name for a processing-instruction.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-7099"/>
         <source>%1 is not a valid numeric literal.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-152"/>
         <source>W3C XML Schema identity constraint selector</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>W3C XML Schema identity constraint field</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>A construct was encountered which is disallowed in the current language(%1).</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+6380"/>
-        <source>No function by name %1 is available.</source>
-        <translation>Na voljo ni nobene funkcije z imenom %1.</translation>
-    </message>
-    <message>
-        <location line="+102"/>
         <source>The namespace URI cannot be the empty string when binding to a prefix, %1.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>%1 is an invalid namespace URI.</source>
         <translation>%1 ni veljaven URI imenskega prostora.</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>It is not possible to bind to the prefix %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Namespace %1 can only be bound to %2 (and it is, in either case, pre-declared).</source>
         <translation>Imenski prostor %1 je lahko navezan le na %2 (in je, v vsakem primeru, preddeklariran)</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>Predpona %1 je lahko navezana le na %2 (in je, v vsakem primeru, preddeklarirana)</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Two namespace declaration attributes have the same name: %1.</source>
         <translation>Dva atributa deklaracije imenskega prostora imata isto ime: %1</translation>
     </message>
     <message>
-        <location line="+89"/>
         <source>The namespace URI must be a constant and cannot use enclosed expressions.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+16"/>
-        <source>An attribute by name %1 has already appeared on this element.</source>
-        <translation>Atribut z imenom %1 se je v tem elementu že pojavil.</translation>
-    </message>
-    <message>
-        <location line="+61"/>
         <source>A direct element constructor is not well-formed. %1 is ended with %2.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+458"/>
         <source>The name %1 does not refer to any schema type.</source>
         <translation>Ime %1 se ne nanaša na nobeno vrsto sheme.</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 type="unfinished"></translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>%1 is not an atomic type. Casting is only possible to atomic types.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+145"/>
-        <location line="+71"/>
         <source>%1 is not in the in-scope attribute declarations. Note that the schema import feature is not supported.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+48"/>
         <source>The name of an extension expression must be in a namespace.</source>
         <translation>Ime razširitvenega izraza mora biti v imenskem prostoru.</translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/type/qcardinality.cpp" line="+55"/>
         <source>empty</source>
         <translation>prazno</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>zero or one</source>
         <translation>nič ali en</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>exactly one</source>
         <translation>točno en</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>one or more</source>
         <translation>en ali več</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>zero or more</source>
         <translation>nič ali več</translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/type/qtypechecker.cpp" line="+63"/>
         <source>Required type is %1, but %2 was found.</source>
         <translation>Zahtevana vrsta je %1, najdena pa je bila %2.</translation>
     </message>
     <message>
-        <location line="+44"/>
         <source>Promoting %1 to %2 may cause loss of precision.</source>
         <translation>Povišanje %1 v %2 lahko povzroči izgubo natančnosti.</translation>
     </message>
     <message>
-        <location line="+49"/>
         <source>The focus is undefined.</source>
         <translation>Fokus ni definiran.</translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/utils/qoutputvalidator.cpp" line="+86"/>
         <source>It&apos;s not possible to add attributes after any other kind of node.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>An attribute by name %1 has already been created.</source>
         <translation>Atribut z imenom %1 je že bil ustvarjen.</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 type="unfinished"></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 type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/acceltree/qacceltreeresourceloader.cpp" line="+344"/>
         <source>%1 is an unsupported encoding.</source>
         <translation>%1 ni podprto kodiranje.</translation>
     </message>
     <message>
-        <location line="+16"/>
         <source>%1 contains octets which are disallowed in the requested encoding %2.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>The codepoint %1, occurring in %2 using encoding %3, is an invalid XML character.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/expr/qapplytemplate.cpp" line="+119"/>
         <source>Ambiguous rule match.</source>
         <translation>Dvoumno ujemanje s pravilom.</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 type="unfinished"></translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>The prefix must be a valid %1, which %2 is not.</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location line="+14"/>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <source>The prefix %1 cannot be bound.</source>
         <translation>Predpone %1 ni moč navezati.</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>Only the prefix %1 can be bound to %2 and vice versa.</source>
         <translation>Na %2 je lahko navezana le predpona %1 in obratno.</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>Potreben je parameter %1, vendar ustrezen %2 ni bil podan.</translation>
     </message>
     <message>
-        <location line="-71"/>
         <source>The parameter %1 is passed, but no corresponding %2 exists.</source>
         <translation>Podan je bil parameter %1, vendar ustrezen %2 ne obstaja.</translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/functions/qunparsedtextfn.cpp" line="+65"/>
         <source>The URI cannot have a fragment</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/parser/qxslttokenizer.cpp" line="+519"/>
         <source>Element %1 is not allowed at this location.</source>
         <translation>Element %1 na tej lokaciji ni dovoljen.</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Text nodes are not allowed at this location.</source>
         <translation>Besedilna vozlišča na tej lokaciji niso dovoljena.</translation>
     </message>
     <message>
-        <location line="+20"/>
         <source>Parse error: %1</source>
         <translation>Napaka pri razčlenjevanju: %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>Vrednost lastnosti različice XSL-T mora biti vrednost vrste %1, %2 pa to ni.</translation>
     </message>
     <message>
-        <location line="+20"/>
         <source>Running an XSL-T 1.0 stylesheet with a 2.0 processor.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+108"/>
         <source>Unknown XSL-T attribute %1.</source>
         <translation>Neznana XSL-T lastnost %1.</translation>
     </message>
     <message>
-        <location line="+23"/>
         <source>Attribute %1 and %2 are mutually exclusive.</source>
         <translation>Lastnosti %1 in %2 sta medsebojno izključujoči.</translation>
     </message>
     <message>
-        <location line="+166"/>
         <source>In a simplified stylesheet module, attribute %1 must be present.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+72"/>
         <source>If element %1 has no attribute %2, it cannot have attribute %3 or %4.</source>
         <translation>Če element %1 nima lastnosti %2, ne more imeti lastnosti %3 ali %4.</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Element %1 must have at least one of the attributes %2 or %3.</source>
         <translation>Element %1 mora imeti vsaj eno izmed lastnosti %2 in %3.</translation>
     </message>
     <message>
-        <location line="+28"/>
         <source>At least one mode must be specified in the %1-attribute on element %2.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+123"/>
         <source>Element %1 must come last.</source>
         <translation>Element %1 mora biti zadnji.</translation>
     </message>
     <message>
-        <location line="+24"/>
         <source>At least one %1-element must occur before %2.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Only one %1-element can appear.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+31"/>
         <source>At least one %1-element must occur inside %2.</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location line="+58"/>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <source>When attribute %1 is present on %2, a sequence constructor cannot be used.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>Element %1 must have either a %2-attribute or a sequence constructor.</source>
         <translation type="unfinished"></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 type="unfinished"></translation>
     </message>
     <message>
-        <location line="+270"/>
         <source>Element %1 cannot have children.</source>
         <translation>Element %1 ne more imeti podelementov.</translation>
     </message>
     <message>
-        <location line="+434"/>
         <source>Element %1 cannot have a sequence constructor.</source>
         <translation type="unfinished"></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 type="unfinished"></translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>A parameter in a function cannot be declared to be a tunnel.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+149"/>
         <source>This processor is not Schema-aware and therefore %1 cannot be used.</source>
         <translation type="unfinished"></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 type="unfinished"></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>Vrednost lastnosti %1 elementa %2 mora biti %3 ali %4 in ne %5.</translation>
     </message>
     <message>
-        <location line="+20"/>
         <source>Attribute %1 cannot have the value %2.</source>
         <translation>Lastnost %1 ne more imeti vrednosti %2.</translation>
     </message>
     <message>
-        <location line="+58"/>
         <source>The attribute %1 can only appear on the first %2 element.</source>
         <translation>Lastnost %1 se lahko pojavi le pri prvem elementu %2.</translation>
     </message>
     <message>
-        <location line="+99"/>
         <source>At least one %1 element must appear as child of %2.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/schema/qxsdschemachecker.cpp" line="+227"/>
         <source>%1 has inheritance loop in its base type %2.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+5"/>
-        <location line="+24"/>
         <source>Circular inheritance of base type %1.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>Circular inheritance of union %1.</source>
         <translation type="unfinished"></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 type="unfinished"></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 type="unfinished"></translation>
     </message>
     <message>
-        <location line="+31"/>
         <source>Base type of simple type %1 cannot be complex type %2.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Simple type %1 cannot have direct base type %2.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+33"/>
-        <location line="+9"/>
         <source>Simple type %1 is not allowed to have base type %2.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+12"/>
         <source>Simple type %1 can only have simple atomic type as base type.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Simple type %1 cannot derive from %2 as the latter defines restriction as final.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+13"/>
-        <location line="+484"/>
         <source>Variety of item type of %1 must be either atomic or union.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-474"/>
-        <location line="+483"/>
         <source>Variety of member types of %1 must be atomic.</source>
         <translation type="unfinished"></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 type="unfinished"></translation>
     </message>
     <message>
-        <location line="-431"/>
         <source>Simple type %1 is only allowed to have %2 facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>Base type of simple type %1 must have variety of type list.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Base type of simple type %1 has defined derivation by restriction as final.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Item type of base type does not match item type of %1.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+26"/>
-        <location line="+93"/>
         <source>Simple type %1 contains not allowed facet type %2.</source>
         <translation type="unfinished"></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 type="unfinished"></translation>
     </message>
     <message>
-        <location line="-404"/>
         <source>%1 is not allowed to have any facets.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Base type %1 of simple type %2 must have variety of union.</source>
         <translation type="unfinished"></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 type="unfinished"></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 type="unfinished"></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 type="unfinished"></translation>
     </message>
     <message>
-        <location line="+30"/>
         <source>Complex type %1 has duplicated element %2 in its content model.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Complex type %1 has non-deterministic content.</source>
         <translation type="unfinished"></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 type="unfinished"></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 type="unfinished"></translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>Complex type %1 must have simple content.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Complex type %1 must have the same simple type as its base class %2.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+67"/>
         <source>Complex type %1 cannot be derived from base type %2%3.</source>
         <translation type="unfinished"></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 type="unfinished"></translation>
     </message>
     <message>
-        <location line="+14"/>
         <source>Complex type %1 with simple content cannot be derived from complex base type %2.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+35"/>
         <source>Item type of simple type %1 cannot be a complex type.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+44"/>
         <source>Member type of simple type %1 cannot be a complex type.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>%1 is not allowed to have a member type with the same name as itself.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+83"/>
-        <location line="+29"/>
-        <location line="+34"/>
         <source>%1 facet collides with %2 facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-20"/>
         <source>%1 facet must have the same value as %2 facet of base type.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+37"/>
         <source>%1 facet must be equal or greater than %2 facet of base type.</source>
         <translation type="unfinished"></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 type="unfinished"></translation>
     </message>
     <message>
-        <location line="-389"/>
         <source>%1 facet contains invalid regular expression</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Unknown notation %1 used in %2 facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+20"/>
         <source>%1 facet contains invalid value %2: %3.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+22"/>
         <source>%1 facet cannot be %2 or %3 if %4 facet of base type is %5.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>%1 facet cannot be %2 if %3 facet of base type is %4.</source>
         <translation type="unfinished"></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 type="unfinished"></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 type="unfinished"></translation>
     </message>
     <message>
-        <location line="-201"/>
-        <location line="+79"/>
         <source>%1 facet and %2 facet cannot appear together.</source>
         <translation type="unfinished"></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 type="unfinished"></translation>
     </message>
     <message>
-        <location line="-86"/>
-        <location line="+58"/>
         <source>%1 facet must be less than %2 facet.</source>
         <translation type="unfinished"></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 type="unfinished"></translation>
     </message>
     <message>
-        <location line="+113"/>
         <source>Simple type contains not allowed facet %1.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+12"/>
         <source>%1, %2, %3, %4, %5 and %6 facets are not allowed when derived by list.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+16"/>
         <source>Only %1 and %2 facets are allowed when derived by union.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+23"/>
-        <location line="+16"/>
         <source>%1 contains %2 facet with invalid data: %3.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+24"/>
         <source>Attribute group %1 contains attribute %2 twice.</source>
         <translation>Skupina lastnosti %1 dvakrat vsebuje lastnost %2.</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Attribute group %1 contains two different attributes that both have types derived from %2.</source>
         <translation type="unfinished"></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 type="unfinished"></translation>
     </message>
     <message>
-        <location line="+23"/>
         <source>Complex type %1 contains attribute %2 twice.</source>
         <translation>Kompleksna vrsta %1 dvakrat vsebuje lastnost %2.</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Complex type %1 contains two different attributes that both have types derived from %2.</source>
         <translation type="unfinished"></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 type="unfinished"></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 type="unfinished"></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 type="unfinished"></translation>
     </message>
     <message>
-        <location line="+10"/>
-        <location line="+11"/>
         <source>Value constraint of element %1 is not of elements type: %2.</source>
         <translation type="unfinished"></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 type="unfinished"></translation>
     </message>
     <message>
-        <location line="+28"/>
         <source>Type of element %1 cannot be derived from type of substitution group affiliation.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+41"/>
         <source>Value constraint of attribute %1 is not of attributes type: %2.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Attribute %1 has value constraint but has type derived from %2.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+56"/>
         <source>%1 attribute in derived complex type must be %2 like in base type.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>Attribute %1 in derived complex type must have %2 value constraint like in base type.</source>
         <translation type="unfinished"></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 type="unfinished"></translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Attribute %1 in derived complex type must have %2 value constraint.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>processContent of base wildcard must be weaker than derived wildcard.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+39"/>
-        <location line="+15"/>
         <source>Element %1 exists twice with different types.</source>
         <translation>Element %1 obstaja dvakrat, z različnima vrstama.</translation>
     </message>
     <message>
-        <location line="+28"/>
         <source>Particle contains non-deterministic wildcards.</source>
         <translation type="unfinished"></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 type="unfinished"></translation>
     </message>
     <message>
-        <location line="-57"/>
         <source>Type of derived attribute %1 cannot be validly derived from type of base attribute.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+28"/>
         <source>Value constraint of derived attribute %1 does not match value constraint of base attribute.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+5"/>
-        <source>Derived attribute %1 does not exists in the base definition.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+11"/>
+        <source>Derived attribute %1 does not exist in the base definition.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <source>Derived attribute %1 does not match the wildcard in the base definition.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>Base attribute %1 is required but missing in derived definition.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Derived definition contains an %1 element that does not exists in the base definition</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Derived wildcard is not a subset of the base wildcard.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>%1 of derived wildcard is not a valid restriction of %2 of base wildcard</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+23"/>
         <source>Attribute %1 from base type is missing in derived type.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Type of derived attribute %1 differs from type of base attribute.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Base definition contains an %1 element that is missing in the derived definition</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/schema/qxsdschemaresolver.cpp" line="+354"/>
         <source>%1 references unknown %2 or %3 element %4.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>%1 references identity constraint %2 that is no %3 or %4 element.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>%1 has a different number of fields from the identity constraint %2 that it references.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+23"/>
         <source>Base type %1 of %2 element cannot be resolved.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+84"/>
         <source>Item type %1 of %2 element cannot be resolved.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+31"/>
         <source>Member type %1 of %2 element cannot be resolved.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+28"/>
-        <location line="+408"/>
-        <location line="+30"/>
         <source>Type %1 of %2 element cannot be resolved.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-416"/>
         <source>Base type %1 of complex type cannot be resolved.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>%1 cannot have complex base type that has a %2.</source>
         <translation type="unfinished"></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 type="unfinished"></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 type="unfinished"></translation>
     </message>
     <message>
-        <location line="+101"/>
         <source>Type of %1 element must be a simple type, %2 is not.</source>
         <translation>Vrsta elementa %1 mora biti preprosta, %2 to ni.</translation>
     </message>
     <message>
-        <location line="+62"/>
         <source>Substitution group %1 of %2 element cannot be resolved.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Substitution group %1 has circular definition.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+120"/>
-        <location line="+7"/>
         <source>Duplicated element names %1 in %2 element.</source>
         <translation>Podvojeni imeni elementov %1 v elementu %2.</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 type="unfinished"></translation>
     </message>
     <message>
-        <location line="-138"/>
         <source>Circular group reference for %1.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+16"/>
         <source>%1 element is not allowed in this scope</source>
         <translation>Element %1 v tem obsegu ni dovoljen</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>%1 element cannot have %2 attribute with value other than %3.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>%1 element cannot have %2 attribute with value other than %3 or %4.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+91"/>
         <source>%1 or %2 attribute of reference %3 does not match with the attribute declaration %4.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+25"/>
         <source>Attribute group %1 has circular reference.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+131"/>
         <source>%1 attribute in %2 must have %3 use like in base type %4.</source>
         <translation type="unfinished"></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 type="unfinished"></translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>%1 has attribute wildcard but its base type %2 has not.</source>
         <translation type="unfinished"></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 type="unfinished"></translation>
     </message>
     <message>
-        <location line="+48"/>
         <source>Enumeration facet contains invalid content: {%1} is not a value of type %2.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>Namespace prefix of qualified name %1 is not defined.</source>
         <translation type="unfinished"></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 type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/schema/qxsdparticlechecker.cpp" line="+165"/>
         <source>Empty particle cannot be derived from non-empty particle.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Derived particle is missing element %1.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Derived element %1 is missing value constraint as defined in base particle.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Derived element %1 has weaker value constraint than base particle.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Fixed value constraint of element %1 differs from value constraint in base particle.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Derived element %1 cannot be nillable as base element is not nillable.</source>
         <translation type="unfinished"></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 type="unfinished"></translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>Simple type of derived element %1 cannot be validly derived from base element.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+5"/>
+        <translation>Preproste vrste izpeljanega elementa %1 ni moč veljavno izpeljati iz osnovnega elementa.</translation>
+    </message>
+    <message>
         <source>Complex type of derived element %1 cannot be validly derived from base element.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+24"/>
+        <translation>Kompleksne vrste izpeljanega elementa %1 ni moč veljavno izpeljati iz osnovnega elementa.</translation>
+    </message>
+    <message>
         <source>Element %1 is missing in derived particle.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+18"/>
+        <translation>Element %1 v izpeljanem delcu manjka.</translation>
+    </message>
+    <message>
         <source>Element %1 does not match namespace constraint of wildcard in base particle.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>Wildcard in derived particle is not a valid subset of wildcard in base particle.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+5"/>
+        <translation>Vzorec v izpeljanem delcu ni veljavna podmnoživa vzorca iz osnovnega razreda.</translation>
+    </message>
+    <message>
         <source>processContent of wildcard in derived particle is weaker than wildcard in base particle.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+240"/>
+        <translation>processContent vzorca v izpeljanem delcu je šibkejši kot vzorec v osnovnem delcu.</translation>
+    </message>
+    <message>
         <source>Derived particle allows content that is not allowed in the base particle.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/xmlpatterns/schema/qxsdschemaparser.cpp" line="+170"/>
+        <translation>Izpeljani delec dovoljuje vsebino, ki v osnovnem delcu ni dovoljena.</translation>
+    </message>
+    <message>
         <source>Can not process unknown element %1, expected elements are: %2.</source>
         <translation>Ni moč obdelati neznanega elementa %1, pričakovani elementi so: %2.</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>Element %1 is not allowed in this scope, possible elements are: %2.</source>
         <translation>Element %1 v tem obsegu ni dovoljen, možni elementi so: %2.</translation>
     </message>
     <message>
-        <location line="+16"/>
         <source>Child element is missing in that scope, possible child elements are: %1.</source>
         <translation>V tem obsegu manjka podelement, možni podelementi so: %1.</translation>
     </message>
     <message>
-        <location line="+127"/>
         <source>Document is not a XML schema.</source>
         <translation>Dokument ni shema 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>Lastnost %1 elementa %2 vsebuje neveljavno vsebino: {%3} ni vrednost vrste %4.</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>%1 attribute of %2 element contains invalid content: {%3}.</source>
         <translation>Lastnost %1 elementa %2 vsebuje neveljavno vsebino: {%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 type="unfinished"></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 type="unfinished"></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 type="unfinished"></translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>%1 element without %2 attribute is not allowed inside schema without target namespace.</source>
         <translation type="unfinished"></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>Element %1 znotraj elementa %2 ni dovoljen, če je prisotna lastnost %3.</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>Element %1 nima niti lastnosti %2 niti podelementa %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>Element %1 s podelementom %2 ne sme imeti lastnosti %3.</translation>
     </message>
     <message>
-        <location line="-1325"/>
         <source>%1 attribute of %2 element must be %3 or %4.</source>
         <translation>Lastnost %1 elementa %2 mora biti %3 ali %4.</translation>
     </message>
     <message>
-        <location line="+36"/>
         <source>%1 attribute of %2 element must have a value of %3.</source>
         <translation>Lastnost %1 elementa %2 mora imeti vrednost %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>Lastnost %1 elementa %2 mora imeti vrednost %3 ali %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>Element %1 hkrati ne sme imeti lastnosti %2 in %3.</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>Vsebina lastnosti %1 elementa %2 ne sme biti iz imenskega prostora %3.</translation>
     </message>
     <message>
-        <location line="-215"/>
-        <location line="+222"/>
         <source>%1 attribute of %2 element must not be %3.</source>
         <translation>Lastnost %1 elementa %2 ne sme biti %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 type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+187"/>
+        <translation>Lastnost %1 elementa %2 mora imeti vrednost %3, ker je nastavljena lastnost %4.</translation>
+    </message>
+    <message>
         <source>Specifying use=&apos;prohibited&apos; inside an attribute group has no effect.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+353"/>
+        <translation>Določitev use=&apos;prohibited&apos; znotraj skupine lastnosti nima nobenega učinka.</translation>
+    </message>
+    <message>
         <source>%1 element must have either %2 or %3 attribute.</source>
         <translation>Element %1 mora imeti lastnost %2 ali %3.</translation>
     </message>
     <message>
-        <location line="+554"/>
         <source>%1 element must have either %2 attribute or %3 or %4 as child element.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+55"/>
+        <translation>Element %1 mora imeti bodisi lastnost %2 bodisi vsebovati %3 ali %4 kot podelement.</translation>
+    </message>
+    <message>
         <source>%1 element requires either %2 or %3 attribute.</source>
         <translation>Element %1 potrebuje vsaj lastnost %2 ali %3.</translation>
     </message>
     <message>
-        <location line="+19"/>
         <source>Text or entity references not allowed inside %1 element</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+41"/>
-        <location line="+112"/>
+        <translation>Sklici na besedilo ali entiteto znotraj elementa %1 niso dovoljeni.</translation>
+    </message>
+    <message>
         <source>%1 attribute of %2 element must contain %3, %4 or a list of URIs.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+126"/>
+        <translation>Lastnost %1 elementa %2 mora vsebovati %3, %4 ali pa seznam URI-jev.</translation>
+    </message>
+    <message>
         <source>%1 element is not allowed in this context.</source>
         <translation>Element %1 v tem kontekstu ni dovoljen.</translation>
     </message>
     <message>
-        <location line="+53"/>
         <source>%1 attribute of %2 element has larger value than %3 attribute.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+25"/>
+        <translation>Lastnost %1 elementa %2 ima višjo vrednost kot lastnost %3.</translation>
+    </message>
+    <message>
         <source>Prefix of qualified name %1 is not defined.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+65"/>
-        <location line="+61"/>
+        <translation>Predpona kvalificiranega imena %1 ni določena.</translation>
+    </message>
+    <message>
         <source>%1 attribute of %2 element must either contain %3 or the other values.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+131"/>
-        <source>Component with id %1 has been defined previously.</source>
+        <translation>Lastnost %1 elementa %2 mora vsebovati bodisi %3 bodisi druge vrednosti.</translation>
+    </message>
+    <message>
+        <source>Component with ID %1 has been defined previously.</source>
         <translation>Komponenta z ID-jem %1 je že bila definirana.</translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>Element %1 already defined.</source>
         <translation>Element %1 je že definiran.</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>Attribute %1 already defined.</source>
         <translation>Lastnost %1 je že definirana.</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Type %1 already defined.</source>
         <translation>Vrsta %1 je že definirana.</translation>
     </message>
     <message>
-        <location line="+23"/>
         <source>Attribute group %1 already defined.</source>
         <translation>Skupina lastnosti %1 je že definirana.</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>Element group %1 already defined.</source>
         <translation>Skupina elementov %1 je že definirana.</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>Notation %1 already defined.</source>
         <translation>Zapis %1 je že definiran.</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>Identity constraint %1 already defined.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+11"/>
+        <translation>Omejitev identitete %1 je že določena.</translation>
+    </message>
+    <message>
         <source>Duplicated facets in simple type %1.</source>
         <translation type="unfinished"></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 glede na %2 ni veljaven.</translation>
     </message>
     <message>
-        <location line="+167"/>
         <source>String content does not match the length facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>String content does not match the minLength facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>String content does not match the maxLength facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>String content does not match pattern facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>String content is not listed in the enumeration facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>Signed integer content does not match the maxInclusive facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Signed integer content does not match the maxExclusive facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Signed integer content does not match the minInclusive facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Signed integer content does not match the minExclusive facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>Signed integer content is not listed in the enumeration facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>Signed integer content does not match pattern facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Signed integer content does not match in the totalDigits facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>Unsigned integer content does not match the maxInclusive facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Unsigned integer content does not match the maxExclusive facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Unsigned integer content does not match the minInclusive facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Unsigned integer content does not match the minExclusive facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>Unsigned integer content is not listed in the enumeration facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>Unsigned integer content does not match pattern facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Unsigned integer content does not match in the totalDigits facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>Double content does not match the maxInclusive facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Double content does not match the maxExclusive facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Double content does not match the minInclusive facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Double content does not match the minExclusive facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>Double content is not listed in the enumeration facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>Double content does not match pattern facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>Decimal content does not match in the fractionDigits facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Decimal content does not match in the totalDigits facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+14"/>
         <source>Date time content does not match the maxInclusive facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Date time content does not match the maxExclusive facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Date time content does not match the minInclusive facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Date time content does not match the minExclusive facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>Date time content is not listed in the enumeration facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>Date time content does not match pattern facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Duration content does not match the maxInclusive facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Duration content does not match the maxExclusive facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Duration content does not match the minInclusive facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Duration content does not match the minExclusive facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>Duration content is not listed in the enumeration facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>Duration content does not match pattern facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+27"/>
         <source>Boolean content does not match pattern facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>Binary content does not match the length facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Binary content does not match the minLength facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Binary content does not match the maxLength facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>Binary content is not listed in the enumeration facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+27"/>
         <source>Invalid QName content: %1.</source>
         <translation>Neveljavna vsebina QName: %1.</translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>QName content is not listed in the enumeration facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>QName content does not match pattern facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+36"/>
         <source>Notation content is not listed in the enumeration facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+19"/>
         <source>List content does not match length facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>List content does not match minLength facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>List content does not match maxLength facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+90"/>
         <source>List content is not listed in the enumeration facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>List content does not match pattern facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+39"/>
         <source>Union content is not listed in the enumeration facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>Union content does not match pattern facet.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Data of type %1 are not allowed to be empty.</source>
         <translation>Podatki vrste %1 ne smejo biti prazni.</translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/schema/qxsdvalidatinginstancereader.cpp" line="+160"/>
         <source>Element %1 is missing child element.</source>
         <translation>Elementu %1 manjka podelement.</translation>
     </message>
     <message>
-        <location line="+16"/>
         <source>There is one IDREF value with no corresponding ID: %1.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+27"/>
+        <translation>Obstaja ena vrednost IDREF brez ustreznega ID-ja: %1</translation>
+    </message>
+    <message>
         <source>Loaded schema file is invalid.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+16"/>
+        <translation>Naložena datoteka s shemo ni veljavna.</translation>
+    </message>
+    <message>
         <source>%1 contains invalid data.</source>
         <translation>%1 vsebuje neveljavne podatke.</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>xsi:schemaLocation namespace %1 has already appeared earlier in the instance document.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+22"/>
         <source>xsi:noNamespaceSchemaLocation cannot appear after the first no-namespace element or attribute.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>No schema defined for validation.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+10"/>
+        <translation>Določene ni nobene sheme za potrjevanje.</translation>
+    </message>
+    <message>
         <source>No definition for element %1 available.</source>
         <translation>Definicija za element %1 ni na voljo.</translation>
     </message>
     <message>
-        <location line="+18"/>
-        <location line="+49"/>
-        <location line="+142"/>
         <source>Specified type %1 is not known to the schema.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="-176"/>
+        <translation>Določena vrsta %1 shemi ni znana.</translation>
+    </message>
+    <message>
         <source>Element %1 is not defined in this scope.</source>
         <translation>Element %1 v tem obsegu ni definiran.</translation>
     </message>
     <message>
-        <location line="+43"/>
         <source>Declaration for element %1 does not exist.</source>
         <translation>Deklaracija elementa %1 ne obstaja.</translation>
     </message>
     <message>
-        <location line="+12"/>
         <source>Element %1 contains invalid content.</source>
         <translation>Element %1 vsebuje neveljavno vsebino.</translation>
     </message>
     <message>
-        <location line="+73"/>
         <source>Element %1 is declared as abstract.</source>
         <translation>Element %1 je deklariran kot abstrakten.</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Element %1 is not nillable.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Attribute %1 contains invalid data: %2</source>
         <translation>Lastnost %1 vsebuje neveljavne podatke: %2</translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>Element contains content although it is nillable.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+6"/>
-        <source>Fixed value constrained not allowed if element is nillable.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+32"/>
+        <source>Fixed value constraint not allowed if element is nillable.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Element %1 cannot contain other elements, as it has a fixed content.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <source>Specified type %1 is not validly substitutable with element type %2.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+23"/>
         <source>Complex type %1 is not allowed to be abstract.</source>
         <translation>Kompleksna vrsta %1 ne sme biti abstraktna.</translation>
     </message>
     <message>
-        <location line="+21"/>
         <source>Element %1 contains not allowed attributes.</source>
         <translation>Element %1 vsebuje nedovoljene lastnosti.</translation>
     </message>
     <message>
-        <location line="+6"/>
-        <location line="+97"/>
         <source>Element %1 contains not allowed child element.</source>
         <translation>Element %1 vsebuje nedovoljen podelement.</translation>
     </message>
     <message>
-        <location line="-76"/>
-        <location line="+93"/>
         <source>Content of element %1 does not match its type definition: %2.</source>
         <translation>Vsebina elementa %1 ne ustreza zanj določeni vrsti: %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 type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="-73"/>
+        <translation>Vsebina elementa %1 ne ustreza določeni omejitvi vrednosti.</translation>
+    </message>
+    <message>
         <source>Element %1 contains not allowed child content.</source>
         <translation>Element %1 vsebuje nedovoljeno vsebino v podelementih.</translation>
     </message>
     <message>
-        <location line="+41"/>
         <source>Element %1 contains not allowed text content.</source>
         <translation>Element %1 vsebuje nedovoljeno besedilno vsebino.</translation>
     </message>
     <message>
-        <location line="+18"/>
-        <source>Element %1 can not contain other elements, as it has a fixed content.</source>
-        <translation>Element %1 ne more vsebovati drugih elementov, ker ima fiksno vsebino.</translation>
-    </message>
-    <message>
-        <location line="+43"/>
         <source>Element %1 is missing required attribute %2.</source>
         <translation>Elementu %1 manjka obvezna lastnost %2.</translation>
     </message>
     <message>
-        <location line="+29"/>
         <source>Attribute %1 does not match the attribute wildcard.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+9"/>
+        <translation>Lastnost %1 ne ustreza vzorcu za lastnost.</translation>
+    </message>
+    <message>
         <source>Declaration for attribute %1 does not exist.</source>
         <translation>Deklaracija lastnosti %1 ne obstaja.</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Element %1 contains two attributes of type %2.</source>
         <translation>Element %1 vsebuje dve lastnosti vrste %2.</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>Attribute %1 contains invalid content.</source>
         <translation>Lastnost %1 vsebuje neveljavno vsebino.</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Element %1 contains unknown attribute %2.</source>
         <translation>Element %1 vsebuje neznano lastnost %2.</translation>
     </message>
     <message>
-        <location line="+40"/>
-        <location line="+46"/>
         <source>Content of attribute %1 does not match its type definition: %2.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="-38"/>
-        <location line="+46"/>
+        <translation>Vsebina lastnosti %1 ne ustreza zanjo določeni vrsti: %2.</translation>
+    </message>
+    <message>
         <source>Content of attribute %1 does not match defined value constraint.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+88"/>
+        <translation>Vsebina lastnosti %1 ne ustreza zanjo določeni omejitvi vrednosti.</translation>
+    </message>
+    <message>
         <source>Non-unique value found for constraint %1.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+20"/>
+        <translation>Za omejitev %1 je bila najdena ne-edinstvena vrednost.</translation>
+    </message>
+    <message>
         <source>Key constraint %1 contains absent fields.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+18"/>
+        <translation>Omejitev ključa %1 vsebuje manjkajoča polja.</translation>
+    </message>
+    <message>
         <source>Key constraint %1 contains references nillable element %2.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+40"/>
         <source>No referenced value found for key reference %1.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+64"/>
         <source>More than one value found for field %1.</source>
         <translation>Za polje %1 je bila najdena več kot ena vrednost.</translation>
     </message>
     <message>
-        <location line="+20"/>
         <source>Field %1 has no simple type.</source>
         <translation>Polje %1 nima preproste vrste.</translation>
     </message>
     <message>
-        <location line="+73"/>
         <source>ID value &apos;%1&apos; is not unique.</source>
         <translation>Vrednost ID »%1« ni edinstvena.</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>&apos;%1&apos; attribute contains invalid QName content: %2.</source>
         <translation>Lastnost »%1« vsebuje neveljavno vsebino QName: %2.</translation>
     </message>
-    <message>
-        <location filename="Obsolete_PO_entries"/>
+</context>
+<context>
+    <name></name>
+    <message>
+        <source>Remaining move time</source>
+        <comment>QWebPage~|Media controller element</comment>
+        <translation type="obsolete">Preostali čas filma</translation>
+    </message>
+    <message>
         <source>attribute group %1 contains attribute %2 twice</source>
+        <comment>QtXmlPatterns~|</comment>
         <translation type="obsolete">skupina lastnosti %1 dvakrat vsebuje lastnost %2</translation>
     </message>
     <message>
-        <location/>
         <source>complex type %1 contains attribute %2 twice</source>
+        <comment>QtXmlPatterns~|</comment>
         <translation type="obsolete">kompleksna vrsta %1 dvakrat vsebuje lastnost %2</translation>
     </message>
     <message>
-        <location/>
         <source>element %1 exists twice with different types</source>
+        <comment>QtXmlPatterns~|</comment>
         <translation type="obsolete">element %1 obstaja dvakrat, z različnima vrstama</translation>
     </message>
     <message>
-        <location/>
         <source>can not process unknown element %1, expected elements are: %2</source>
+        <comment>QtXmlPatterns~|</comment>
         <translation type="obsolete">ni moč obdelati neznanega elementa %1, pričakovani elementi so: %2</translation>
     </message>
     <message>
-        <location/>
         <source>element %1 is not allowed in this scope, possible elements are: %2</source>
+        <comment>QtXmlPatterns~|</comment>
         <translation type="obsolete">element %1 v tem obsegu ni dovoljen, možni elementi so: %2</translation>
     </message>
     <message>
-        <location/>
         <source>child element is missing in that scope, possible child elements are: %1</source>
+        <comment>QtXmlPatterns~|</comment>
         <translation type="obsolete">v tem obsegu manjka podelement, možni podelementi so: %1</translation>
     </message>
     <message>
-        <location/>
         <source>document is not a XML schema</source>
+        <comment>QtXmlPatterns~|</comment>
         <translation type="obsolete">dokument ni shema XML</translation>
     </message>
     <message>
-        <location/>
         <source>%1 attribute of %2 element contains invalid content: {%3} is not a value of type %4</source>
+        <comment>QtXmlPatterns~|</comment>
         <translation type="obsolete">lastnost %1 elementa %2 vsebuje neveljavno vsebino: {%3} ni vrednost vrste %4</translation>
     </message>
     <message>
-        <location/>
         <source>%1 attribute of %2 element contains invalid content: {%3}</source>
+        <comment>QtXmlPatterns~|</comment>
         <translation type="obsolete">lastnost %1 elementa %2 vsebuje neveljavno vsebino: {%3}</translation>
     </message>
     <message>
-        <location/>
         <source>%1 element is not allowed inside %2 element if %3 attribute is present</source>
+        <comment>QtXmlPatterns~|</comment>
         <translation type="obsolete">element %1 znotraj elementa %2 ni dovoljen, če je prisotna lastnost %3</translation>
     </message>
     <message>
-        <location/>
         <source>%1 element has neither %2 attribute nor %3 child element</source>
+        <comment>QtXmlPatterns~|</comment>
         <translation type="obsolete">element %1 nima niti lastnosti %2 niti podelementa %3</translation>
     </message>
     <message>
-        <location/>
         <source>%1 element with %2 child element must not have a %3 attribute</source>
+        <comment>QtXmlPatterns~|</comment>
         <translation type="obsolete">element %1 s podelementom %2 ne sme imeti lastnosti %3</translation>
     </message>
     <message>
-        <location/>
         <source>%1 attribute of %2 element must be %3 or %4</source>
+        <comment>QtXmlPatterns~|</comment>
         <translation type="obsolete">lastnost %1 elementa %2 mora biti %3 ali %4</translation>
     </message>
     <message>
-        <location/>
         <source>%1 attribute of %2 element must have a value of %3</source>
+        <comment>QtXmlPatterns~|</comment>
         <translation type="obsolete">lastnost %1 elementa %2 mora imeti vrednost %3</translation>
     </message>
     <message>
-        <location/>
         <source>%1 attribute of %2 element must have a value of %3 or %4</source>
+        <comment>QtXmlPatterns~|</comment>
         <translation type="obsolete">lastnost %1 elementa %2 mora imeti vrednost %3 ali %4</translation>
     </message>
     <message>
-        <location/>
         <source>%1 element must not have %2 and %3 attribute together</source>
+        <comment>QtXmlPatterns~|</comment>
         <translation type="obsolete">element %1 hkrati ne sme imeti lastnosti %2 in %3</translation>
     </message>
     <message>
-        <location/>
         <source>content of %1 attribute of %2 element must not be from namespace %3</source>
+        <comment>QtXmlPatterns~|</comment>
         <translation type="obsolete">vsebina lastnosti %1 elementa %2 ne sme biti iz imenskega prostora %3</translation>
     </message>
     <message>
-        <location/>
         <source>%1 attribute of %2 element must not be %3</source>
+        <comment>QtXmlPatterns~|</comment>
         <translation type="obsolete">lastnost %1 elementa %2 ne sme biti %3</translation>
     </message>
     <message>
-        <location/>
         <source>%1 element must have either %2 or %3 attribute</source>
+        <comment>QtXmlPatterns~|</comment>
         <translation type="obsolete">element %1 mora imeti lastnost %2 ali %3</translation>
     </message>
     <message>
-        <location/>
         <source>%1 element requires either %2 or %3 attribute</source>
+        <comment>QtXmlPatterns~|</comment>
         <translation type="obsolete">element %1 potrebuje vsaj lastnost %2 ali %3</translation>
     </message>
     <message>
-        <location/>
         <source>%1 element is not allowed in this context</source>
+        <comment>QtXmlPatterns~|</comment>
         <translation type="obsolete">element %1 v tem kontekstu ni dovoljen</translation>
     </message>
     <message>
-        <location/>
         <source>component with id %1 has been defined previously</source>
+        <comment>QtXmlPatterns~|</comment>
         <translation type="obsolete">komponenta z ID-jem %1 je že bila definirana</translation>
     </message>
     <message>
-        <location/>
         <source>element %1 already defined</source>
+        <comment>QtXmlPatterns~|</comment>
         <translation type="obsolete">element %1 je že definiran</translation>
     </message>
     <message>
-        <location/>
         <source>attribute %1 already defined</source>
+        <comment>QtXmlPatterns~|</comment>
         <translation type="obsolete">lastnost %1 je že definirana</translation>
     </message>
     <message>
-        <location/>
         <source>type %1 already defined</source>
+        <comment>QtXmlPatterns~|</comment>
         <translation type="obsolete">vrsta %1 je že definirana</translation>
     </message>
     <message>
-        <location/>
         <source>attribute group %1 already defined</source>
+        <comment>QtXmlPatterns~|</comment>
         <translation type="obsolete">skupina lastnosti %1 je že definirana</translation>
     </message>
     <message>
-        <location/>
         <source>element group %1 already defined</source>
+        <comment>QtXmlPatterns~|</comment>
         <translation type="obsolete">skupina elementov %1 je že definirana</translation>
     </message>
     <message>
-        <location/>
         <source>notation %1 already defined</source>
+        <comment>QtXmlPatterns~|</comment>
         <translation type="obsolete">zapis %1 je že definiran</translation>
     </message>
     <message>
-        <location/>
         <source>type of %1 element must be a simple type, %2 is not</source>
+        <comment>QtXmlPatterns~|</comment>
         <translation type="obsolete">vrsta elementa %1 mora biti preprosta, %2 to ni</translation>
     </message>
     <message>
-        <location/>
         <source>duplicated element names %1 in %2 element</source>
+        <comment>QtXmlPatterns~|</comment>
         <translation type="obsolete">podvojeni imeni elementov %1 v elementu %2</translation>
     </message>
     <message>
-        <location/>
         <source>%1 is not valid according to %2</source>
+        <comment>QtXmlPatterns~|</comment>
         <translation type="obsolete">%1 glede na %2 ni veljaven</translation>
     </message>
     <message>
-        <location/>
         <source>invalid QName content: %1</source>
+        <comment>QtXmlPatterns~|</comment>
         <translation type="obsolete">neveljavna vsebina QName: %1</translation>
     </message>
     <message>
-        <location/>
         <source>data of type %1 are not allowed to be empty</source>
+        <comment>QtXmlPatterns~|</comment>
         <translation type="obsolete">podatki vrste %1 ne smejo biti prazni</translation>
     </message>
     <message>
-        <location/>
         <source>element %1 is missing child element</source>
+        <comment>QtXmlPatterns~|</comment>
         <translation type="obsolete">elementu %1 manjka podelement</translation>
     </message>
     <message>
-        <location/>
         <source>%1 contains invalid data</source>
+        <comment>QtXmlPatterns~|</comment>
         <translation type="obsolete">%1 vsebuje neveljavne podatke</translation>
     </message>
     <message>
-        <location/>
         <source>no definition for element %1 available</source>
+        <comment>QtXmlPatterns~|</comment>
         <translation type="obsolete">definicija za element %1 ni na voljo</translation>
     </message>
     <message>
-        <location/>
         <source>element %1 is not defined in this scope</source>
+        <comment>QtXmlPatterns~|</comment>
         <translation type="obsolete">element %1 v tem obsegu ni definiran</translation>
     </message>
     <message>
-        <location/>
         <source>declaration for element %1 does not exist</source>
+        <comment>QtXmlPatterns~|</comment>
         <translation type="obsolete">deklaracija elementa %1 ne obstaja</translation>
     </message>
     <message>
-        <location/>
         <source>element %1 contains invalid content</source>
+        <comment>QtXmlPatterns~|</comment>
         <translation type="obsolete">element %1 vsebuje neveljavno vsebino</translation>
     </message>
     <message>
-        <location/>
         <source>element %1 is declared as abstract</source>
+        <comment>QtXmlPatterns~|</comment>
         <translation type="obsolete">element %1 je deklariran kot abstrakten</translation>
     </message>
     <message>
-        <location/>
         <source>complex type %1 is not allowed to be abstract</source>
+        <comment>QtXmlPatterns~|</comment>
         <translation type="obsolete">kompleksna vrsta %1 ne sme biti abstraktna</translation>
     </message>
     <message>
-        <location/>
         <source>element %1 contains not allowed attributes</source>
+        <comment>QtXmlPatterns~|</comment>
         <translation type="obsolete">element %1 vsebuje nedovoljene lastnosti</translation>
     </message>
     <message>
-        <location/>
         <source>element %1 contains not allowed child element</source>
+        <comment>QtXmlPatterns~|</comment>
         <translation type="obsolete">element %1 vsebuje nedovoljen podelement</translation>
     </message>
     <message>
-        <location/>
         <source>content of element %1 does not match its type definition: %2</source>
+        <comment>QtXmlPatterns~|</comment>
         <translation type="obsolete">vsebina elementa %1 ne ustreza zanj določeni vrsti: %2</translation>
     </message>
     <message>
-        <location/>
         <source>element %1 contains not allowed child content</source>
+        <comment>QtXmlPatterns~|</comment>
         <translation type="obsolete">element %1 vsebuje nedovoljeno vsebino v podelementih</translation>
     </message>
     <message>
-        <location/>
         <source>element %1 contains not allowed text content</source>
+        <comment>QtXmlPatterns~|</comment>
         <translation type="obsolete">element %1 vsebuje nedovoljeno besedilno vsebino</translation>
     </message>
     <message>
-        <location/>
         <source>element %1 can not contain other elements, as it has a fixed content</source>
+        <comment>QtXmlPatterns~|</comment>
         <translation type="obsolete">element %1 ne more vsebovati drugih elementov, ker ima fiksno vsebino</translation>
     </message>
     <message>
-        <location/>
         <source>element %1 is missing required attribute %2</source>
+        <comment>QtXmlPatterns~|</comment>
         <translation type="obsolete">elementu %1 manjka obvezna lastnost %2</translation>
     </message>
     <message>
-        <location/>
         <source>declaration for attribute %1 does not exist</source>
+        <comment>QtXmlPatterns~|</comment>
         <translation type="obsolete">deklaracija lastnosti %1 ne obstaja</translation>
     </message>
     <message>
-        <location/>
         <source>element %1 contains two attributes of type %2</source>
+        <comment>QtXmlPatterns~|</comment>
         <translation type="obsolete">element %1 vsebuje dve lastnosti vrste %2</translation>
     </message>
     <message>
-        <location/>
         <source>attribute %1 contains invalid content</source>
+        <comment>QtXmlPatterns~|</comment>
         <translation type="obsolete">lastnost %1 vsebuje neveljavno vsebino</translation>
     </message>
     <message>
-        <location/>
         <source>element %1 contains unknown attribute %2</source>
+        <comment>QtXmlPatterns~|</comment>
         <translation type="obsolete">element %1 vsebuje neznano lastnost %2</translation>
     </message>
     <message>
-        <location/>
         <source>more than one value found for field %1</source>
+        <comment>QtXmlPatterns~|</comment>
         <translation type="obsolete">za polje %1 je bila najdena več kot ena vrednost</translation>
     </message>
     <message>
-        <location/>
         <source>field %1 has no simple type</source>
+        <comment>QtXmlPatterns~|</comment>
         <translation type="obsolete">polje %1 nima preproste vrste</translation>
     </message>
     <message>
-        <location/>
         <source>ID value &apos;%1&apos; is not unique</source>
+        <comment>QtXmlPatterns~|</comment>
         <translation type="obsolete">Vrednost ID »%1« ni edinstvena</translation>
     </message>
     <message>
-        <location/>
         <source>&apos;%1&apos; attribute contains invalid QName content: %2</source>
+        <comment>QtXmlPatterns~|</comment>
         <translation type="obsolete">Lastnost »%1« vsebuje neveljavno vsebino QName: %2</translation>
     </message>
+    <message>
+        <source>Cannot start playback. 
+
+Check your Gstreamer installation and make sure you 
+have libgstreamer-plugins-base installed.</source>
+        <comment>Phonon::Gstreamer::MediaObject|</comment>
+        <translation type="obsolete">Ni moč začeti predvajanja.
+
+Preverite namestitev GStreamerja in se prepričajte, 
+da je nameščen paket libgstreamer-plugins-base.</translation>
+    </message>
+    <message>
+        <source>Frequency band, %1 Hz</source>
+        <comment>Phonon::MMF::AudioEqualizer|</comment>
+        <translation type="obsolete">Frekvenčni pas, %1 Hz</translation>
+    </message>
+    <message>
+        <source>audio equalizer</source>
+        <comment>Phonon::MMF::EffectFactory|</comment>
+        <translation type="obsolete">izenačevalnik zvoka</translation>
+    </message>
+    <message>
+        <source>Bass boost</source>
+        <comment>Phonon::MMF::EffectFactory|</comment>
+        <translation type="obsolete">Ojačanje basov</translation>
+    </message>
+    <message>
+        <source>Distance Attenuation</source>
+        <comment>Phonon::MMF::EffectFactory|</comment>
+        <translation type="obsolete">Utišanje zaradi razdalje</translation>
+    </message>
+    <message>
+        <source>Environmental Reverb</source>
+        <comment>Phonon::MMF::EffectFactory|</comment>
+        <translation type="obsolete">Okoljsko odmevanje</translation>
+    </message>
+    <message>
+        <source>Loudness</source>
+        <comment>Phonon::MMF::EffectFactory|</comment>
+        <translation type="obsolete">Glasnost</translation>
+    </message>
+    <message>
+        <source>Source Orientation</source>
+        <comment>Phonon::MMF::EffectFactory|</comment>
+        <translation type="obsolete">Usmerjenost vira</translation>
+    </message>
+    <message>
+        <source>Stereo Widening</source>
+        <comment>Phonon::MMF::EffectFactory|</comment>
+        <translation type="obsolete">Razširitev sterea</translation>
+    </message>
+    <message>
+        <source>Invalid hostname</source>
+        <comment>QObject|</comment>
+        <translation type="obsolete">Neveljavno ime gostitelja</translation>
+    </message>
+    <message>
+        <source>Operation not supported on %1</source>
+        <comment>QObject|</comment>
+        <translation type="obsolete">Dejanje na %1 ni podprto</translation>
+    </message>
+    <message>
+        <source>Invalid URI: %1</source>
+        <comment>QObject|</comment>
+        <translation type="obsolete">Neveljaven URI: %1</translation>
+    </message>
+    <message>
+        <source>Socket error on %1: %2</source>
+        <comment>QObject|</comment>
+        <translation type="obsolete">Napaka vtičnice na %1: %2</translation>
+    </message>
+    <message>
+        <source>Remote host closed the connection prematurely on %1</source>
+        <comment>QObject|</comment>
+        <translation type="obsolete">Oddaljen gostitelj je predčasno prekinil povezavo na %1</translation>
+    </message>
+    <message>
+        <source>No host name given</source>
+        <comment>QObject|</comment>
+        <translation type="obsolete">Podano ni bilo nobeno ime gostitelja</translation>
+    </message>
+    <message>
+        <source>Private key does not certificate public key, %1</source>
+        <comment>QSslSocket|</comment>
+        <translation type="obsolete">Zasebni ključ ne potrjuje javnega ključa, %1</translation>
+    </message>
+    <message>
+        <source>No variable by name %1 exists</source>
+        <comment>QtXmlPatterns|</comment>
+        <translation type="obsolete">Spremenljivka z imenom %1 ne obstaja</translation>
+    </message>
+    <message>
+        <source>No value is available for the external variable by name %1.</source>
+        <comment>QtXmlPatterns|</comment>
+        <translation type="obsolete">Za zunanjo spremenljivko z imenom %1 ni na voljo nobene vrednosti.</translation>
+    </message>
+    <message>
+        <source>A template by name %1 has already been declared.</source>
+        <comment>QtXmlPatterns|</comment>
+        <translation type="obsolete">Predloga z imenom %1 je že bila deklarirana.</translation>
+    </message>
+    <message>
+        <source>The value of attribute %1 must of type %2, which %3 isn&apos;t.</source>
+        <comment>QtXmlPatterns|</comment>
+        <translation type="obsolete">Vrednost lastnosti %1 mora biti vrste %2, %3 pa to ni.</translation>
+    </message>
+    <message>
+        <source>A variable by name %1 has already been declared.</source>
+        <comment>QtXmlPatterns|</comment>
+        <translation type="obsolete">Spremenljivka z imenom %1 je že bila deklarirana.</translation>
+    </message>
+    <message>
+        <source>An argument by name %1 has already been declared. Every argument name must be unique.</source>
+        <comment>QtXmlPatterns|</comment>
+        <translation type="obsolete">Argument z imenom %1 je že bil deklariran. Vsako ime argumenta mora biti edinstveno.</translation>
+    </message>
+    <message>
+        <source>No function by name %1 is available.</source>
+        <comment>QtXmlPatterns|</comment>
+        <translation type="obsolete">Na voljo ni nobene funkcije z imenom %1.</translation>
+    </message>
+    <message>
+        <source>An attribute by name %1 has already appeared on this element.</source>
+        <comment>QtXmlPatterns|</comment>
+        <translation type="obsolete">Atribut z imenom %1 se je v tem elementu že pojavil.</translation>
+    </message>
+    <message>
+        <source>Component with id %1 has been defined previously.</source>
+        <comment>QtXmlPatterns|</comment>
+        <translation type="obsolete">Komponenta z ID-jem %1 je že bila definirana.</translation>
+    </message>
+    <message>
+        <source>Element %1 can not contain other elements, as it has a fixed content.</source>
+        <comment>QtXmlPatterns|</comment>
+        <translation type="obsolete">Element %1 ne more vsebovati drugih elementov, ker ima fiksno vsebino.</translation>
+    </message>
 </context>
 </TS>
--- a/translations/qt_uk.ts	Fri Sep 17 08:34:18 2010 +0300
+++ b/translations/qt_uk.ts	Mon Oct 04 01:19:32 2010 +0300
@@ -2,610 +2,827 @@
 <!DOCTYPE TS>
 <TS version="2.0" language="uk_UA">
 <context>
-    <name>AudioOutput</name>
-    <message>
-        <location filename="../src/3rdparty/phonon/phonon/audiooutput.cpp" line="+375"/>
-        <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="unfinished"></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 type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+3"/>
-        <source>Revert back to device &apos;%1&apos;</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
     <name>CloseButton</name>
     <message>
-        <location filename="../src/gui/widgets/qtabbar.cpp" line="+2251"/>
         <source>Close Tab</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>MainWindow</name>
-    <message>
-        <source>Print</source>
-        <translation type="obsolete">Друкувати</translation>
-    </message>
-</context>
-<context>
-    <name>PPDOptionsModel</name>
-    <message>
-        <source>Name</source>
-        <translation type="obsolete">Ім&apos;я</translation>
-    </message>
-    <message>
-        <source>Value</source>
-        <translation type="obsolete">Значення</translation>
+        <translation>Закрити вкладку</translation>
+    </message>
+</context>
+<context>
+    <name>FakeReply</name>
+    <message>
+        <source>Fake error !</source>
+        <translation>Несправжня помилка !</translation>
+    </message>
+    <message>
+        <source>Invalid URL</source>
+        <translation>Неправильний URL</translation>
+    </message>
+</context>
+<context>
+    <name>MAC_APPLICATION_MENU</name>
+    <message>
+        <source>Services</source>
+        <translation>Служби</translation>
+    </message>
+    <message>
+        <source>Hide %1</source>
+        <translation>Сховати %1</translation>
+    </message>
+    <message>
+        <source>Hide Others</source>
+        <translation>Сховати інші</translation>
+    </message>
+    <message>
+        <source>Show All</source>
+        <translation>Показати всі</translation>
+    </message>
+    <message>
+        <source>Preferences...</source>
+        <translation>Налаштування...</translation>
+    </message>
+    <message>
+        <source>Quit %1</source>
+        <translation>Вийти з %1</translation>
+    </message>
+    <message>
+        <source>About %1</source>
+        <translation>Про %1</translation>
     </message>
 </context>
 <context>
     <name>Phonon::</name>
     <message>
-        <location filename="../src/3rdparty/phonon/phonon/phononnamespace.cpp" line="+55"/>
         <source>Notifications</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+2"/>
+        <translation>Сповіщення</translation>
+    </message>
+    <message>
         <source>Music</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+2"/>
+        <translation>Музика</translation>
+    </message>
+    <message>
         <source>Video</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+2"/>
+        <translation>Відео</translation>
+    </message>
+    <message>
         <source>Communication</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+2"/>
+        <translation>Спілкування</translation>
+    </message>
+    <message>
         <source>Games</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+2"/>
+        <translation>Ігри</translation>
+    </message>
+    <message>
         <source>Accessibility</source>
-        <translation type="unfinished"></translation>
+        <translation>Доступність</translation>
+    </message>
+</context>
+<context>
+    <name>Phonon::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>&lt;html&gt;Пристрій відтворення звуку &lt;b&gt;%1&lt;/b&gt; не працює.&lt;br/&gt;Буде використовуватись &lt;b&gt;%2&lt;/b&gt;.&lt;/html&gt;</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>&lt;html&gt;Перемикання на пристрій відтворення звуку &lt;b&gt;%1&lt;/b&gt;&lt;br/&gt;, який став доступний та має вищий пріоритет.&lt;/html&gt;</translation>
+    </message>
+    <message>
+        <source>Revert back to device &apos;%1&apos;</source>
+        <translation>Повернення до пристрою ’%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 has higher preference or is specifically configured for this stream.&lt;/html&gt;</source>
+        <translation>&lt;html&gt;Перемикання на пристрій відтворення звуку &lt;b&gt;%1&lt;/b&gt;&lt;br/&gt;, який має вищий пріоритет чи спеціально налаштований для цього потоку.&lt;/html&gt;</translation>
     </message>
 </context>
 <context>
     <name>Phonon::Gstreamer::Backend</name>
     <message>
-        <location filename="../src/3rdparty/phonon/gstreamer/backend.cpp" line="+171"/>
         <source>Warning: You do not seem to have the package gstreamer0.10-plugins-good installed.
           Some video features have been disabled.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+5"/>
+        <translation>Попередження: Схоже, що у вас не встановлено пакунок gstreamer0.10-plugins-good.
+          Деякі можливості відео були вимкнені.</translation>
+    </message>
+    <message>
         <source>Warning: You do not seem to have the base GStreamer plugins installed.
           All audio and video support has been disabled</source>
-        <translation type="unfinished"></translation>
+        <translation>Попередження: Схоже, що у вас не встановлено базові додатки Gstreamer.
+          Уся підтримка звуку та відео була вимкнена</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 
+Check your GStreamer installation and make sure you 
 have libgstreamer-plugins-base installed.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+113"/>
+        <translation>Неможливо почати відтворення. 
+
+Перевірте ваше встановлення GStreamer та переконайтесь, 
+що у вас встановлено libgstreamer-plugins-base.</translation>
+    </message>
+    <message>
+        <source>Missing codec helper script assistant.</source>
+        <translation>Відсутній допоміжний скрипт встановлення кодека.</translation>
+    </message>
+    <message>
+        <source>Plugin codec installation failed for codec: %0</source>
+        <translation>Збій встановлення додатку кодека: %0</translation>
+    </message>
+    <message>
         <source>A required codec is missing. You need to install the following codec(s) to play this content: %0</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+676"/>
-        <location line="+8"/>
-        <location line="+15"/>
-        <location line="+9"/>
-        <location line="+6"/>
-        <location line="+19"/>
-        <location line="+335"/>
-        <location line="+24"/>
+        <translation>Відсутній необхідний кодек. Вам потрібно встановити наступні кодеки для відтворення цього вмісту: %0</translation>
+    </message>
+    <message>
         <source>Could not open media source.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="-403"/>
+        <translation>Не вдалося відкрити джерело медіа-даних.</translation>
+    </message>
+    <message>
         <source>Invalid source type.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+377"/>
+        <translation>Неправильний тип джерела.</translation>
+    </message>
+    <message>
         <source>Could not locate media source.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+10"/>
+        <translation>Не вдалося знайти джерело медіа-даних.</translation>
+    </message>
+    <message>
         <source>Could not open audio device. The device is already in use.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+13"/>
+        <translation>Не вдалося відкрити звуковий пристрій. Пристрій вже використовується.</translation>
+    </message>
+    <message>
         <source>Could not decode media source.</source>
-        <translation type="unfinished"></translation>
+        <translation>Не вдалося декодувати джерело медіа-даних.</translation>
+    </message>
+</context>
+<context>
+    <name>Phonon::MMF</name>
+    <message>
+        <source>Audio Output</source>
+        <translation>Звуковий вихід</translation>
+    </message>
+    <message>
+        <source>The audio output device</source>
+        <translation>Пристрій виведення звуку</translation>
+    </message>
+    <message>
+        <source>No error</source>
+        <translation>Немає помилки</translation>
+    </message>
+    <message>
+        <source>Not found</source>
+        <translation>Не знайдено</translation>
+    </message>
+    <message>
+        <source>Out of memory</source>
+        <translation>Недостатньо пам’яті</translation>
+    </message>
+    <message>
+        <source>Not supported</source>
+        <translation>Не підтримується</translation>
+    </message>
+    <message>
+        <source>Overflow</source>
+        <translation>Переповнення</translation>
+    </message>
+    <message>
+        <source>Underflow</source>
+        <translation>Недостача</translation>
+    </message>
+    <message>
+        <source>Already exists</source>
+        <translation>Вже існує</translation>
+    </message>
+    <message>
+        <source>Path not found</source>
+        <translation>Шлях не знайдено</translation>
+    </message>
+    <message>
+        <source>In use</source>
+        <translation>Використовується</translation>
+    </message>
+    <message>
+        <source>Not ready</source>
+        <translation>Не готово</translation>
+    </message>
+    <message>
+        <source>Access denied</source>
+        <translation>Доступ заборонено</translation>
+    </message>
+    <message>
+        <source>Could not connect</source>
+        <translation>Не вдалося з’єднатись</translation>
+    </message>
+    <message>
+        <source>Disconnected</source>
+        <translation>Від’єднано</translation>
+    </message>
+    <message>
+        <source>Permission denied</source>
+        <translation>Доступ заборонено</translation>
+    </message>
+    <message>
+        <source>Insufficient bandwidth</source>
+        <translation>Недостатня пропускна здатність</translation>
+    </message>
+    <message>
+        <source>Network unavailable</source>
+        <translation>Мережа недоступна</translation>
+    </message>
+    <message>
+        <source>Network communication error</source>
+        <translation>Комунікаційна помилка мережі</translation>
+    </message>
+    <message>
+        <source>Streaming not supported</source>
+        <translation>Потокова передача не підтримується</translation>
+    </message>
+    <message>
+        <source>Server alert</source>
+        <translation>Сповіщення сервера</translation>
+    </message>
+    <message>
+        <source>Invalid protocol</source>
+        <translation>Неправильний протокол</translation>
+    </message>
+    <message>
+        <source>Invalid URL</source>
+        <translation>Неправильний URL</translation>
+    </message>
+    <message>
+        <source>Multicast error</source>
+        <translation>Помилка групової передачі</translation>
+    </message>
+    <message>
+        <source>Proxy server error</source>
+        <translation>Помилка проксі-сервера</translation>
+    </message>
+    <message>
+        <source>Proxy server not supported</source>
+        <translation>Проксі-сервер не підтримується</translation>
+    </message>
+    <message>
+        <source>Audio output error</source>
+        <translation>Помилка виведення звуку</translation>
+    </message>
+    <message>
+        <source>Video output error</source>
+        <translation>Помилка виведення відео</translation>
+    </message>
+    <message>
+        <source>Decoder error</source>
+        <translation>Помилка декодера</translation>
+    </message>
+    <message>
+        <source>Audio or video components could not be played</source>
+        <translation>Не вдалося відтворити аудіо- чи відео-компонент</translation>
+    </message>
+    <message>
+        <source>DRM error</source>
+        <translation>Помилка DRM</translation>
+    </message>
+    <message>
+        <source>Unknown error (%1)</source>
+        <translation>Невідома помилка (%1)</translation>
+    </message>
+</context>
+<context>
+    <name>Phonon::MMF::AbstractMediaPlayer</name>
+    <message>
+        <source>Not ready to play</source>
+        <translation>Не готовий до відтворення</translation>
+    </message>
+    <message>
+        <source>Error opening file</source>
+        <translation>Помилка відкриття файлу</translation>
+    </message>
+    <message>
+        <source>Error opening URL</source>
+        <translation>Помилка відкриття URL</translation>
+    </message>
+    <message>
+        <source>Error opening resource</source>
+        <translation>Помилка відкриття ресурсу</translation>
+    </message>
+    <message>
+        <source>Error opening source: resource not opened</source>
+        <translation>Помилка відкриття джерела: ресурс не відкрито</translation>
+    </message>
+    <message>
+        <source>Setting volume failed</source>
+        <translation>Збій встановлення гучності</translation>
+    </message>
+    <message>
+        <source>Loading clip failed</source>
+        <translation>Збій завантаження кліпу</translation>
+    </message>
+    <message>
+        <source>Playback complete</source>
+        <translation>Відтворення завершене</translation>
+    </message>
+</context>
+<context>
+    <name>Phonon::MMF::AbstractVideoPlayer</name>
+    <message>
+        <source>Pause failed</source>
+        <translation>Збій паузи</translation>
+    </message>
+    <message>
+        <source>Seek failed</source>
+        <translation>Збій прокрутки</translation>
+    </message>
+    <message>
+        <source>Getting position failed</source>
+        <translation>Збій отримання позиції</translation>
+    </message>
+    <message>
+        <source>Opening clip failed</source>
+        <translation>Збій відкриття кліпу</translation>
+    </message>
+</context>
+<context>
+    <name>Phonon::MMF::AudioEqualizer</name>
+    <message>
+        <source>%1 Hz</source>
+        <translation>%1 Гц</translation>
+    </message>
+</context>
+<context>
+    <name>Phonon::MMF::AudioPlayer</name>
+    <message>
+        <source>Getting position failed</source>
+        <translation>Збій отримання позиції</translation>
+    </message>
+</context>
+<context>
+    <name>Phonon::MMF::DsaVideoPlayer</name>
+    <message>
+        <source>Video display error</source>
+        <translation>Помилка відображення відео</translation>
+    </message>
+</context>
+<context>
+    <name>Phonon::MMF::EffectFactory</name>
+    <message>
+        <source>Enabled</source>
+        <translation>Увімкнено</translation>
+    </message>
+</context>
+<context>
+    <name>Phonon::MMF::EnvironmentalReverb</name>
+    <message>
+        <source>Decay HF ratio (%)</source>
+        <extracomment>DecayHFRatio: Ratio of high-frequency decay time to the value specified by DecayTime.</extracomment>
+        <translation>Коефіцієнт послаблення ВЧ (%)</translation>
+    </message>
+    <message>
+        <source>Decay time (ms)</source>
+        <extracomment>DecayTime: Time over which reverberation is diminished.</extracomment>
+        <translation>Час послаблення (мс)</translation>
+    </message>
+    <message>
+        <source>Density (%)</source>
+        <extracomment>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.</extracomment>
+        <translation>Щільність (%)</translation>
+    </message>
+    <message>
+        <source>Diffusion (%)</source>
+        <extracomment>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.</extracomment>
+        <translation>Розсіювання (%)</translation>
+    </message>
+    <message>
+        <source>Reflections delay (ms)</source>
+        <extracomment>ReflectionsDelay: Amount of delay between the arrival the direct path from the source and the arrival of the first reflection.</extracomment>
+        <translation>Затримка відбиття (мс)</translation>
+    </message>
+    <message>
+        <source>Reflections level (mB)</source>
+        <extracomment>ReflectionsLevel: Amplitude of reflections. This value is corrected by the RoomLevel to give the final reflection amplitude.</extracomment>
+        <translation>Рівень відбиття (мБ)</translation>
+    </message>
+    <message>
+        <source>Reverb delay (ms)</source>
+        <extracomment>ReverbDelay: Amount of time between arrival of the first reflection and start of the late reverberation.</extracomment>
+        <translation>Затримка луни (мс)</translation>
+    </message>
+    <message>
+        <source>Reverb level (mB)</source>
+        <extracomment>ReverbLevel Amplitude of reverberations. This value is corrected by the RoomLevel to give the final reverberation amplitude.</extracomment>
+        <translation>Рівень луни (мБ)</translation>
+    </message>
+    <message>
+        <source>Room HF level</source>
+        <extracomment>RoomHFLevel: Amplitude of low-pass filter used to attenuate the high frequency component of reflected sound.</extracomment>
+        <translation>Рівень ВЧ відбиття</translation>
+    </message>
+    <message>
+        <source>Room level (mB)</source>
+        <extracomment>RoomLevel: Master volume control for all reflected sound.</extracomment>
+        <translation>Рівень відбиття (мБ)</translation>
+    </message>
+</context>
+<context>
+    <name>Phonon::MMF::MediaObject</name>
+    <message>
+        <source>Error opening source: type not supported</source>
+        <translation>Помилка відкриття джерела: тип не підтримується</translation>
+    </message>
+    <message>
+        <source>Error opening source: resource is compressed</source>
+        <translation>Помилка відкриття джерела: ресурс стиснутий</translation>
+    </message>
+    <message>
+        <source>Error opening source: resource not valid</source>
+        <translation>Помилка відкриття джерела: ресурс неправильний</translation>
+    </message>
+    <message>
+        <source>Error opening source: media type could not be determined</source>
+        <translation>Помилка відкриття джерела: не вдалося визначити тип медіа-даних</translation>
+    </message>
+</context>
+<context>
+    <name>Phonon::MMF::StereoWidening</name>
+    <message>
+        <source>Level (%)</source>
+        <translation>Рівень (%)</translation>
+    </message>
+</context>
+<context>
+    <name>Phonon::MMF::SurfaceVideoPlayer</name>
+    <message>
+        <source>Video display error</source>
+        <translation>Помилка відображення відео</translation>
     </message>
 </context>
 <context>
     <name>Phonon::VolumeSlider</name>
     <message>
-        <location filename="../src/3rdparty/phonon/phonon/volumeslider.cpp" line="+42"/>
-        <location line="+18"/>
         <source>Volume: %1%</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="-15"/>
-        <location line="+18"/>
-        <location line="+54"/>
+        <translation>Гучність: %1%</translation>
+    </message>
+    <message>
         <source>Use this slider to adjust the volume. The leftmost position is 0%, the rightmost is %1%</source>
-        <translation type="unfinished"></translation>
+        <translation>Використовуйте цей повзунок для регулювання гучності. Крайня ліва позиція - 0%, крайня права - %1%</translation>
+    </message>
+    <message>
+        <source>Muted</source>
+        <translation>Без звуку</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 не визначено</translation>
     </message>
     <message>
-        <location line="+36"/>
         <source>Ambiguous %1 not handled</source>
-        <translation>Неоднозначний %1 не оброблюється</translation>
+        <translation>Неоднозначний %1 не оброблено</translation>
     </message>
 </context>
 <context>
     <name>Q3DataTable</name>
     <message>
-        <location filename="../src/qt3support/sql/q3datatable.cpp" line="+285"/>
         <source>True</source>
-        <translation>Так</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>Істинно</translation>
+    </message>
+    <message>
         <source>False</source>
-        <translation>Ні</translation>
-    </message>
-    <message>
-        <location line="+505"/>
+        <translation>Хибно</translation>
+    </message>
+    <message>
         <source>Insert</source>
         <translation>Вставити</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Update</source>
         <translation>Оновити</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Delete</source>
-        <translation>Вилучити</translation>
+        <translation>Видалити</translation>
     </message>
 </context>
 <context>
     <name>Q3FileDialog</name>
     <message>
-        <location filename="../src/qt3support/dialogs/q3filedialog.cpp" line="+864"/>
         <source>Copy or Move a File</source>
-        <translation>Копіювати або пересунути файл</translation>
-    </message>
-    <message>
-        <location line="+8"/>
+        <translation>Копіювати або перемістити файл</translation>
+    </message>
+    <message>
         <source>Read: %1</source>
         <translation>Читання: %1</translation>
     </message>
     <message>
-        <location line="+6"/>
-        <location line="+30"/>
         <source>Write: %1</source>
         <translation>Запис: %1</translation>
     </message>
     <message>
-        <location line="-22"/>
-        <location line="+1575"/>
         <source>Cancel</source>
         <translation>Скасувати</translation>
     </message>
     <message>
-        <location line="-157"/>
-        <location line="+49"/>
-        <location line="+2153"/>
-        <location filename="../src/qt3support/dialogs/q3filedialog_mac.cpp" line="+110"/>
         <source>All Files (*)</source>
-        <translation>Всі файли (*)</translation>
-    </message>
-    <message>
-        <location line="-2089"/>
+        <translation>Усі файли (*)</translation>
+    </message>
+    <message>
         <source>Name</source>
         <translation>Ім&apos;я</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Size</source>
         <translation>Розмір</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Type</source>
         <translation>Тип</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Date</source>
         <translation>Дата</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Attributes</source>
         <translation>Атрибути</translation>
     </message>
     <message>
-        <location line="+35"/>
-        <location line="+2031"/>
         <source>&amp;OK</source>
-        <translation>&amp;Гаразд</translation>
-    </message>
-    <message>
-        <location line="-1991"/>
+        <translation>&amp;OK</translation>
+    </message>
+    <message>
         <source>Look &amp;in:</source>
-        <translation>Перегляд &amp;в:</translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <location line="+1981"/>
-        <location line="+16"/>
+        <translation>Пере&amp;гляд в:</translation>
+    </message>
+    <message>
         <source>File &amp;name:</source>
         <translation>&amp;Ім&apos;я файлу:</translation>
     </message>
     <message>
-        <location line="-1996"/>
         <source>File &amp;type:</source>
         <translation>&amp;Тип файлу:</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Back</source>
         <translation>Назад</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>One directory up</source>
-        <translation>Один каталог угору</translation>
-    </message>
-    <message>
-        <location line="+9"/>
+        <translation>На теку вище</translation>
+    </message>
+    <message>
         <source>Create New Folder</source>
         <translation>Створити нову теку</translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>List View</source>
-        <translation>Вигляд списком</translation>
-    </message>
-    <message>
-        <location line="+8"/>
+        <translation>Списком</translation>
+    </message>
+    <message>
         <source>Detail View</source>
-        <translation>Вигляд з подробицями</translation>
-    </message>
-    <message>
-        <location line="+9"/>
+        <translation>Детально</translation>
+    </message>
+    <message>
         <source>Preview File Info</source>
-        <translation>Перегляд відомостей про файл</translation>
-    </message>
-    <message>
-        <location line="+23"/>
+        <translation>Попередній перегляд інформації про файл</translation>
+    </message>
+    <message>
         <source>Preview File Contents</source>
-        <translation>Перегляд вмісту файла</translation>
-    </message>
-    <message>
-        <location line="+88"/>
+        <translation>Попередній перегляд змісту файлу</translation>
+    </message>
+    <message>
         <source>Read-write</source>
-        <translation>Читання-запис</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>Читання та запис</translation>
+    </message>
+    <message>
         <source>Read-only</source>
-        <translation>Тільки для читання</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>Лише читання</translation>
+    </message>
+    <message>
         <source>Write-only</source>
-        <translation>Тільки для запису</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>Лише запис</translation>
+    </message>
+    <message>
         <source>Inaccessible</source>
         <translation>Недоступний</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Symlink to File</source>
         <translation>Символьне посилання на файл</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Symlink to Directory</source>
-        <translation>Символьне посилання на каталог</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>Символьне посилання на теку</translation>
+    </message>
+    <message>
         <source>Symlink to Special</source>
-        <translation>Символьне посилання на спеціальний файл</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>Символьне посилання на спецфайл</translation>
+    </message>
+    <message>
         <source>File</source>
         <translation>Файл</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Dir</source>
-        <translation>Каталог</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>Тека</translation>
+    </message>
+    <message>
         <source>Special</source>
-        <translation>Спеціальний файл</translation>
-    </message>
-    <message>
-        <location line="+704"/>
-        <location line="+2100"/>
-        <location filename="../src/qt3support/dialogs/q3filedialog_win.cpp" line="+337"/>
+        <translation>Спецфайл</translation>
+    </message>
+    <message>
         <source>Open</source>
         <translation>Відкрити</translation>
     </message>
     <message>
-        <location line="-1990"/>
-        <location filename="../src/qt3support/dialogs/q3filedialog_win.cpp" line="+84"/>
         <source>Save As</source>
-        <translation>Зберегти, як</translation>
-    </message>
-    <message>
-        <location line="+642"/>
-        <location line="+5"/>
-        <location line="+355"/>
+        <translation>Зберегти як</translation>
+    </message>
+    <message>
         <source>&amp;Open</source>
         <translation>&amp;Відкрити</translation>
     </message>
     <message>
-        <location line="-357"/>
-        <location line="+341"/>
         <source>&amp;Save</source>
         <translation>&amp;Зберегти</translation>
     </message>
     <message>
-        <location line="-334"/>
         <source>&amp;Rename</source>
         <translation>&amp;Перейменувати</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Delete</source>
-        <translation>&amp;Витерти</translation>
-    </message>
-    <message>
-        <location line="+20"/>
+        <translation>Ви&amp;далити</translation>
+    </message>
+    <message>
         <source>R&amp;eload</source>
-        <translation>О&amp;новити</translation>
-    </message>
-    <message>
-        <location line="+4"/>
+        <translation>&amp;Оновити</translation>
+    </message>
+    <message>
         <source>Sort by &amp;Name</source>
-        <translation>Впорядкувати за &amp;ім&apos;ям</translation>
-    </message>
-    <message>
-        <location line="+2"/>
+        <translation>Сортувати по &amp;імені</translation>
+    </message>
+    <message>
         <source>Sort by &amp;Size</source>
-        <translation>Впорядкувати за &amp;розміром</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>Сортувати по &amp;розміру</translation>
+    </message>
+    <message>
         <source>Sort by &amp;Date</source>
-        <translation>Впорядкувати за &amp;датою</translation>
-    </message>
-    <message>
-        <location line="+2"/>
+        <translation>Сортувати по &amp;даті</translation>
+    </message>
+    <message>
         <source>&amp;Unsorted</source>
-        <translation>&amp;Невпорядковано</translation>
-    </message>
-    <message>
-        <location line="+15"/>
+        <translation>&amp;Без сортування</translation>
+    </message>
+    <message>
         <source>Sort</source>
-        <translation>Впорядкувати</translation>
-    </message>
-    <message>
-        <location line="+4"/>
+        <translation>Сортувати</translation>
+    </message>
+    <message>
         <source>Show &amp;hidden files</source>
-        <translation>Показати &amp;приховані файли</translation>
-    </message>
-    <message>
-        <location line="+31"/>
+        <translation>Показувати при&amp;ховані файли</translation>
+    </message>
+    <message>
         <source>the file</source>
         <translation>файл</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>the directory</source>
-        <translation>каталог</translation>
-    </message>
-    <message>
-        <location line="+2"/>
+        <translation>тека</translation>
+    </message>
+    <message>
         <source>the symlink</source>
         <translation>символьне посилання</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Delete %1</source>
-        <translation>Вилучити %1</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>Видалити %1</translation>
+    </message>
+    <message>
         <source>&lt;qt&gt;Are you sure you wish to delete %1 &quot;%2&quot;?&lt;/qt&gt;</source>
-        <translation>&lt;qt&gt;Ви дійсно хочете вилучити %1 &quot;%2&quot;?&lt;/qt&gt;</translation>
-    </message>
-    <message>
-        <location line="+2"/>
+        <translation>&lt;qt&gt;Ви впевнені, що бажаєте видалити %1 &quot;%2&quot;?&lt;/qt&gt;</translation>
+    </message>
+    <message>
         <source>&amp;Yes</source>
-        <translation>&amp;Так</translation>
-    </message>
-    <message>
-        <location line="+0"/>
+        <translation>Т&amp;ак</translation>
+    </message>
+    <message>
         <source>&amp;No</source>
         <translation>&amp;Ні</translation>
     </message>
     <message>
-        <location line="+36"/>
         <source>New Folder 1</source>
         <translation>Нова тека 1</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>New Folder</source>
         <translation>Нова тека</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>New Folder %1</source>
         <translation>Нова тека %1</translation>
     </message>
     <message>
-        <location line="+98"/>
         <source>Find Directory</source>
-        <translation>Знайти каталог</translation>
-    </message>
-    <message>
-        <location line="+5"/>
-        <location line="+108"/>
+        <translation>Пошук теки</translation>
+    </message>
+    <message>
         <source>Directories</source>
-        <translation>Каталоги</translation>
-    </message>
-    <message>
-        <location line="-2"/>
+        <translation>Теки</translation>
+    </message>
+    <message>
         <source>Directory:</source>
-        <translation>Каталог:</translation>
-    </message>
-    <message>
-        <location line="+40"/>
-        <location line="+1110"/>
+        <translation>Тека:</translation>
+    </message>
+    <message>
         <source>Error</source>
         <translation>Помилка</translation>
     </message>
     <message>
-        <location line="-1109"/>
         <source>%1
 File not found.
 Check path and filename.</source>
         <translation>%1
 Файл не знайдено.
-Перевірте шлях та ім&apos;я файла.</translation>
-    </message>
-    <message>
-        <location filename="../src/qt3support/dialogs/q3filedialog_win.cpp" line="-289"/>
+Перевірте шлях та назву файлу.</translation>
+    </message>
+    <message>
         <source>All Files (*.*)</source>
-        <translation>Всі файли (*.*)</translation>
-    </message>
-    <message>
-        <location line="+375"/>
+        <translation>Усі файли (*)</translation>
+    </message>
+    <message>
         <source>Open </source>
         <translation>Відкрити </translation>
     </message>
     <message>
-        <location line="+155"/>
         <source>Select a Directory</source>
-        <translation>Виберіть каталог</translation>
+        <translation>Оберіть теку</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>Неможливо прочитати каталог
+        <translation>Не вдалося прочитати теку
 %1</translation>
     </message>
     <message>
-        <location line="+45"/>
         <source>Could not create directory
 %1</source>
-        <translation>Неможливо створити каталог%1</translation>
-    </message>
-    <message>
-        <location line="+34"/>
+        <translation>Не вдалося створити теку
+%1</translation>
+    </message>
+    <message>
         <source>Could not remove file or directory
 %1</source>
-        <translation>Неможливо вилучити файли або каталог
+        <translation>Не вдалося видалити файл або теку
 %1</translation>
     </message>
     <message>
-        <location line="+27"/>
         <source>Could not rename
 %1
 to
 %2</source>
-        <translation>Неможливо перейменувати
+        <translation>Не вдалося перейменувати
 %1
 в
 %2</translation>
     </message>
     <message>
-        <location line="+25"/>
         <source>Could not open
 %1</source>
-        <translation>Неможливо відкрити
+        <translation>Не вдалося відкрити
 %1</translation>
     </message>
     <message>
-        <location line="+68"/>
         <source>Could not write
 %1</source>
-        <translation>Неможливо записати
+        <translation>Не вдалося записати
 %1</translation>
     </message>
 </context>
 <context>
     <name>Q3MainWindow</name>
     <message>
-        <location filename="../src/qt3support/widgets/q3mainwindow.cpp" line="+2051"/>
         <source>Line up</source>
         <translation>Вирівняти</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Customize...</source>
-        <translation>Підлаштувати...</translation>
+        <translation>Налаштувати...</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>Дію зупинено користувачем</translation>
+        <translation>Операція зупинена користувачем</translation>
     </message>
 </context>
 <context>
     <name>Q3ProgressDialog</name>
     <message>
-        <location filename="../src/qt3support/dialogs/q3progressdialog.cpp" line="+224"/>
-        <location line="+61"/>
         <source>Cancel</source>
         <translation>Скасувати</translation>
     </message>
@@ -613,28 +830,22 @@
 <context>
     <name>Q3TabDialog</name>
     <message>
-        <location filename="../src/qt3support/dialogs/q3tabdialog.cpp" line="+189"/>
-        <location line="+814"/>
         <source>OK</source>
-        <translation>Гаразд</translation>
-    </message>
-    <message>
-        <location line="-356"/>
+        <translation>OK</translation>
+    </message>
+    <message>
         <source>Apply</source>
         <translation>Застосувати</translation>
     </message>
     <message>
-        <location line="+43"/>
         <source>Help</source>
         <translation>Довідка</translation>
     </message>
     <message>
-        <location line="+45"/>
         <source>Defaults</source>
-        <translation>Типові значення</translation>
-    </message>
-    <message>
-        <location line="+50"/>
+        <translation>Типово</translation>
+    </message>
+    <message>
         <source>Cancel</source>
         <translation>Скасувати</translation>
     </message>
@@ -642,166 +853,131 @@
 <context>
     <name>Q3TextEdit</name>
     <message>
-        <location filename="../src/qt3support/text/q3textedit.cpp" line="+5429"/>
         <source>&amp;Undo</source>
         <translation>&amp;Повернути</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Redo</source>
         <translation>П&amp;овторити</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Cu&amp;t</source>
         <translation>Ви&amp;різати</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Copy</source>
         <translation>&amp;Копіювати</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>&amp;Paste</source>
         <translation>&amp;Вставити</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Clear</source>
         <translation>Очистити</translation>
     </message>
     <message>
-        <location line="+4"/>
-        <location line="+2"/>
         <source>Select All</source>
-        <translation>Вибрати все</translation>
+        <translation>Виділити все</translation>
     </message>
 </context>
 <context>
     <name>Q3TitleBar</name>
     <message>
-        <location filename="../src/plugins/accessible/compat/q3complexwidgets.cpp" line="+246"/>
         <source>System</source>
         <translation>Система</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Restore up</source>
-        <translation>Відновити вгору</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>Відновити</translation>
+    </message>
+    <message>
         <source>Minimize</source>
         <translation>Мінімізувати</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Restore down</source>
-        <translation>Відновити додолу</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>Відновити</translation>
+    </message>
+    <message>
         <source>Maximize</source>
         <translation>Максимізувати</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Close</source>
         <translation>Закрити</translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>Contains commands to manipulate the window</source>
-        <translation>Містить команди для дій над вікном</translation>
-    </message>
-    <message>
-        <location line="+3"/>
-        <source>Puts a minimized back to normal</source>
-        <translation>Повертає мінімізоване в нормальний стан</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>Містить команди для маніпуляцій з вікном</translation>
+    </message>
+    <message>
+        <source>Puts a minimized window back to normal</source>
+        <translation>Повертає мінімізоване вікно назад до нормального</translation>
+    </message>
+    <message>
         <source>Moves the window out of the way</source>
-        <translation>Відсуває вікно з дороги</translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>Прибирає вікно з очей</translation>
+    </message>
+    <message>
         <source>Puts a maximized window back to normal</source>
-        <translation>Повертає максимізоване в нормальний стан</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>Повертає максимізоване вікно назад до нормального</translation>
+    </message>
+    <message>
         <source>Makes the window full screen</source>
-        <translation>Показує вікно на весь екран</translation>
-    </message>
-    <message>
-        <location line="+2"/>
+        <translation>Розгортає вікно на весь екран</translation>
+    </message>
+    <message>
         <source>Closes the window</source>
         <translation>Закриває вікно</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Displays the name of the window and contains controls to manipulate it</source>
-        <translation>Показує ім&apos;я вікна та містить елементи керування ним</translation>
+        <translation>Показує назву вікна та містить команди для маніпуляцій з ним</translation>
     </message>
 </context>
 <context>
     <name>Q3ToolBar</name>
     <message>
-        <location filename="../src/qt3support/widgets/q3toolbar.cpp" line="+692"/>
         <source>More...</source>
-        <translation>Додатково...</translation>
+        <translation>Більше...</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>Протокол &quot;%1&quot; не підтримується</translation>
-    </message>
-    <message>
-        <location line="-260"/>
+        <translation>Протокол ’%1’ не підтримується</translation>
+    </message>
+    <message>
         <source>The protocol `%1&apos; does not support listing directories</source>
-        <translation>Протокол &quot;%1&quot; не підтримує перегляд списку каталогів</translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>Протокол ’%1’ не підтримує перегляд тек</translation>
+    </message>
+    <message>
         <source>The protocol `%1&apos; does not support creating new directories</source>
-        <translation>Протокол &quot;%1&quot; не підтримує створення каталогів</translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>Протокол ’%1’ не підтримує створення нових тек</translation>
+    </message>
+    <message>
         <source>The protocol `%1&apos; does not support removing files or directories</source>
-        <translation>Протокол &quot;%1&quot; не підтримує вилучення файлів або каталогів</translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>Протокол ’%1’ не підтримує видалення файлів чи тек</translation>
+    </message>
+    <message>
         <source>The protocol `%1&apos; does not support renaming files or directories</source>
-        <translation>Протокол &quot;%1&quot; не підтримує перейменування файлів та каталогів</translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>Протокол ’%1’ не підтримує перейменування файлів чи тек</translation>
+    </message>
+    <message>
         <source>The protocol `%1&apos; does not support getting files</source>
-        <translation>Протокол &quot;%1&quot; не підтримує отримання файлів</translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>Протокол ’%1’ не підтримує отримання файлів</translation>
+    </message>
+    <message>
         <source>The protocol `%1&apos; does not support putting files</source>
-        <translation>Протокол &quot;%1&quot; не підтримує викладення файлів</translation>
-    </message>
-    <message>
-        <location line="+243"/>
-        <location line="+4"/>
+        <translation>Протокол ’%1’ не підтримує відправлення файлів</translation>
+    </message>
+    <message>
         <source>The protocol `%1&apos; does not support copying or moving files or directories</source>
-        <translation>Протокол &quot;%1&quot; не підтримує копіювання або пересування файлів та каталогів</translation>
-    </message>
-    <message>
-        <location line="+237"/>
-        <location line="+1"/>
+        <translation>Протокол ’%1’ не підтримує копіювання або переміщення файлів чи тек</translation>
+    </message>
+    <message>
         <source>(unknown)</source>
         <translation>(невідомо)</translation>
     </message>
@@ -809,27 +985,22 @@
 <context>
     <name>Q3Wizard</name>
     <message>
-        <location filename="../src/qt3support/dialogs/q3wizard.cpp" line="+177"/>
         <source>&amp;Cancel</source>
         <translation>&amp;Скасувати</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&lt; &amp;Back</source>
         <translation>&lt; &amp;Назад</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Next &gt;</source>
-        <translation>&amp;Вперед &gt;</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>&amp;Далі &gt;</translation>
+    </message>
+    <message>
         <source>&amp;Finish</source>
-        <translation>&amp;Закінчити</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>&amp;Завершити</translation>
+    </message>
+    <message>
         <source>&amp;Help</source>
         <translation>&amp;Довідка</translation>
     </message>
@@ -837,230 +1008,176 @@
 <context>
     <name>QAbstractSocket</name>
     <message>
-        <location filename="../src/network/socket/qabstractsocket.cpp" line="+868"/>
-        <location filename="../src/network/socket/qhttpsocketengine.cpp" line="+615"/>
-        <location filename="../src/network/socket/qsocks5socketengine.cpp" line="+657"/>
-        <location line="+26"/>
+        <source>Socket operation timed out</source>
+        <translation>Час на операцію з сокетом вичерпано</translation>
+    </message>
+    <message>
+        <source>Operation on socket is not supported</source>
+        <translation>Непідтримувана для сокета операція</translation>
+    </message>
+    <message>
         <source>Host not found</source>
         <translation>Вузол не знайдено</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>Відмовлено у зв&apos;язку</translation>
-    </message>
-    <message>
-        <location line="+141"/>
+        <translation>У з&apos;єднанні відмовлено</translation>
+    </message>
+    <message>
         <source>Connection timed out</source>
-        <translation type="unfinished">Перевищено термін очікування для з&apos;єднання</translation>
-    </message>
-    <message>
-        <location line="-547"/>
-        <location line="+787"/>
-        <location line="+208"/>
-        <source>Operation on socket is not supported</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+137"/>
-        <source>Socket operation timed out</source>
-        <translation>Дія з сокетом перевищила термін очікування</translation>
-    </message>
-    <message>
-        <location line="+380"/>
+        <translation>Час на з’єднання вичерпано</translation>
+    </message>
+    <message>
         <source>Socket is not connected</source>
-        <translation>Сокет не є під&apos;єднаним</translation>
-    </message>
-    <message>
-        <location filename="../src/network/socket/qsocks5socketengine.cpp" line="-8"/>
+        <translation>Сокет не під’єднано</translation>
+    </message>
+    <message>
         <source>Network unreachable</source>
-        <translation type="unfinished">Мережа недосяжна</translation>
+        <translation>Мережа недоступна</translation>
     </message>
 </context>
 <context>
     <name>QAbstractSpinBox</name>
     <message>
-        <location filename="../src/gui/widgets/qabstractspinbox.cpp" line="+1199"/>
+        <source>&amp;Select All</source>
+        <translation>&amp;Виділити все</translation>
+    </message>
+    <message>
         <source>&amp;Step up</source>
-        <translation>&amp;Крок вгору</translation>
-    </message>
-    <message>
-        <location line="+2"/>
+        <translation>Крок в&amp;гору</translation>
+    </message>
+    <message>
         <source>Step &amp;down</source>
-        <translation>Крок &amp;додолу</translation>
-    </message>
-    <message>
-        <location line="-8"/>
-        <source>&amp;Select All</source>
-        <translation>&amp;Вибрати все</translation>
+        <translation>Крок до&amp;низу</translation>
+    </message>
+</context>
+<context>
+    <name>QAccessibleButton</name>
+    <message>
+        <source>Press</source>
+        <translation>Натисніть</translation>
     </message>
 </context>
 <context>
     <name>QApplication</name>
     <message>
-        <location filename="../src/gui/accessible/qaccessibleobject.cpp" line="+376"/>
         <source>Activate</source>
         <translation>Активувати</translation>
     </message>
     <message>
-        <location filename="../src/gui/dialogs/qmessagebox.h" line="+352"/>
+        <source>Activates the program&apos;s main window</source>
+        <translation>Активує головне вікно програми</translation>
+    </message>
+    <message>
         <source>Executable &apos;%1&apos; requires Qt %2, found Qt %3.</source>
-        <translation>Програма &quot;%1&quot; потребує Qt %2, але знайдено Qt %3.</translation>
-    </message>
-    <message>
-        <location line="+2"/>
+        <translation>Виконуваний модуль &apos;%1&apos; вимагає Qt %2, знайдено Qt %3.</translation>
+    </message>
+    <message>
         <source>Incompatible Qt Library Error</source>
-        <translation>Помилка несумісності бібліотеки Qt</translation>
-    </message>
-    <message>
-        <location filename="../src/gui/kernel/qapplication.cpp" line="+2248"/>
+        <translation>Несумісна бібліотека Qt</translation>
+    </message>
+    <message>
         <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>
-    <message>
-        <location filename="../src/gui/accessible/qaccessibleobject.cpp" line="+2"/>
-        <source>Activates the program&apos;s main window</source>
-        <translation>Активує головне вікно програми</translation>
-    </message>
 </context>
 <context>
     <name>QAxSelect</name>
     <message>
-        <location filename="../src/activeqt/container/qaxselect.ui"/>
         <source>Select ActiveX Control</source>
-        <translation>Виберіть елемент ActiveX</translation>
-    </message>
-    <message>
-        <location/>
+        <translation>Виберіть елемент керування ActiveX</translation>
+    </message>
+    <message>
         <source>OK</source>
-        <translation>Гаразд</translation>
-    </message>
-    <message>
-        <location/>
+        <translation>OK</translation>
+    </message>
+    <message>
         <source>&amp;Cancel</source>
         <translation>&amp;Скасувати</translation>
     </message>
     <message>
-        <location/>
         <source>COM &amp;Object:</source>
-        <translation>&amp;Об&apos;єкт COM:</translation>
+        <translation>COM-&amp;об&apos;єкт:</translation>
     </message>
 </context>
 <context>
     <name>QCheckBox</name>
     <message>
-        <location filename="../src/plugins/accessible/widgets/simplewidgets.cpp" line="+114"/>
         <source>Uncheck</source>
-        <translation>Зняти позначку</translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>Зняти відмітку</translation>
+    </message>
+    <message>
         <source>Check</source>
-        <translation>Поставити позначку</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>Відмітити</translation>
+    </message>
+    <message>
         <source>Toggle</source>
-        <translation>Перемикнути</translation>
+        <translation>Перемкнути</translation>
     </message>
 </context>
 <context>
     <name>QColorDialog</name>
     <message>
-        <location filename="../src/gui/dialogs/qcolordialog.cpp" line="+1253"/>
         <source>Hu&amp;e:</source>
-        <translation>Від&amp;тінок:</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>&amp;Відтінок:</translation>
+    </message>
+    <message>
         <source>&amp;Sat:</source>
         <translation>&amp;Насиченість:</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Val:</source>
-        <translation>&amp;Значення:</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>Зна&amp;чення:</translation>
+    </message>
+    <message>
         <source>&amp;Red:</source>
         <translation>&amp;Червоний:</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Green:</source>
         <translation>&amp;Зелений:</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Bl&amp;ue:</source>
-        <translation>С&amp;иній:</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>&amp;Блакитний:</translation>
+    </message>
+    <message>
         <source>A&amp;lpha channel:</source>
-        <translation>Канал а&amp;льфа:</translation>
-    </message>
-    <message>
-        <location line="+101"/>
+        <translation>&amp;Альфа-канал:</translation>
+    </message>
+    <message>
         <source>Select Color</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+137"/>
+        <translation>Оберіть колір</translation>
+    </message>
+    <message>
         <source>&amp;Basic colors</source>
-        <translation>&amp;Базові кольори</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>Баз&amp;ові кольори</translation>
+    </message>
+    <message>
         <source>&amp;Custom colors</source>
-        <translation>&amp;Нетипові кольори</translation>
-    </message>
-    <message>
-        <source>&amp;Define Custom Colors &gt;&gt;</source>
-        <translation type="obsolete">&amp;Налаштувати нетипові кольори &gt;&gt;</translation>
-    </message>
-    <message>
-        <source>OK</source>
-        <translation type="obsolete">Гаразд</translation>
-    </message>
-    <message>
-        <source>Cancel</source>
-        <translation type="obsolete">Скасувати</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>&amp;Кольори користувача</translation>
+    </message>
+    <message>
         <source>&amp;Add to Custom Colors</source>
-        <translation>&amp;Додати до нетипових кольорів</translation>
-    </message>
-    <message>
-        <source>Select color</source>
-        <translation type="obsolete">Виберіть колір</translation>
+        <translation>&amp;Додати до кольорів користувача</translation>
     </message>
 </context>
 <context>
     <name>QComboBox</name>
     <message>
-        <location filename="../src/plugins/accessible/widgets/complexwidgets.cpp" line="+1771"/>
-        <location line="+65"/>
+        <source>False</source>
+        <translation>Хибно</translation>
+    </message>
+    <message>
+        <source>True</source>
+        <translation>Істинно</translation>
+    </message>
+    <message>
         <source>Open</source>
         <translation>Відкрити</translation>
     </message>
     <message>
-        <location filename="../src/gui/itemviews/qitemeditorfactory.cpp" line="+544"/>
-        <source>False</source>
-        <translation>Ні</translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>True</source>
-        <translation>Так</translation>
-    </message>
-    <message>
-        <location filename="../src/plugins/accessible/widgets/complexwidgets.cpp" line="+0"/>
         <source>Close</source>
         <translation>Закрити</translation>
     </message>
@@ -1068,43 +1185,56 @@
 <context>
     <name>QCoreApplication</name>
     <message>
-        <location filename="../src/corelib/kernel/qsystemsemaphore_unix.cpp" line="+119"/>
+        <source>%1: already exists</source>
+        <comment>QSystemSemaphore</comment>
+        <translation>%1: вже існує</translation>
+    </message>
+    <message>
+        <source>%1: does not exist</source>
+        <comment>QSystemSemaphore</comment>
+        <translation>%1: не існує</translation>
+    </message>
+    <message>
+        <source>%1: out of resources</source>
+        <comment>QSystemSemaphore</comment>
+        <translation>%1: недостатньо ресурсів</translation>
+    </message>
+    <message>
+        <source>%1: unknown error %2</source>
+        <comment>QSystemSemaphore</comment>
+        <translation>%1: невідома помилка %2</translation>
+    </message>
+    <message>
         <source>%1: key is empty</source>
         <comment>QSystemSemaphore</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+12"/>
+        <translation>%1: порожній ключ</translation>
+    </message>
+    <message>
         <source>%1: unable to make key</source>
         <comment>QSystemSemaphore</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+9"/>
+        <translation>%1: неможливо створити ключ</translation>
+    </message>
+    <message>
         <source>%1: ftok failed</source>
         <comment>QSystemSemaphore</comment>
-        <translation type="unfinished"></translation>
+        <translation>%1: помилка ftok</translation>
     </message>
 </context>
 <context>
     <name>QDB2Driver</name>
     <message>
-        <location filename="../src/sql/drivers/db2/qsql_db2.cpp" line="+1276"/>
         <source>Unable to connect</source>
-        <translation>Неможливо з&apos;єднатися</translation>
-    </message>
-    <message>
-        <location line="+303"/>
+        <translation>Неможливо з&apos;єднатись</translation>
+    </message>
+    <message>
         <source>Unable to commit transaction</source>
         <translation>Неможливо завершити транзакцію</translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>Unable to rollback transaction</source>
         <translation>Неможливо відкотити транзакцію</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Unable to set autocommit</source>
         <translation>Неможливо встановити автозавершення транзакцій</translation>
     </message>
@@ -1112,242 +1242,1072 @@
 <context>
     <name>QDB2Result</name>
     <message>
-        <location line="-1043"/>
-        <location line="+243"/>
         <source>Unable to execute statement</source>
-        <translation>Неможливо виконати оператор</translation>
-    </message>
-    <message>
-        <location line="-206"/>
+        <translation>Неможливо виконати вираз</translation>
+    </message>
+    <message>
         <source>Unable to prepare statement</source>
-        <translation>Неможливо підготувати оператор</translation>
-    </message>
-    <message>
-        <location line="+196"/>
+        <translation>Неможливо підготувати вираз</translation>
+    </message>
+    <message>
         <source>Unable to bind variable</source>
         <translation>Неможливо прив&apos;язати змінну</translation>
     </message>
     <message>
-        <location line="+92"/>
         <source>Unable to fetch record %1</source>
-        <translation>Неможливо вибрати запис %1</translation>
-    </message>
-    <message>
-        <location line="+17"/>
+        <translation>Неможливо отримати запис %1</translation>
+    </message>
+    <message>
         <source>Unable to fetch next</source>
-        <translation>Неможливо вибрати наступний</translation>
-    </message>
-    <message>
-        <location line="+20"/>
+        <translation>Неможливо отримати наступний запис</translation>
+    </message>
+    <message>
         <source>Unable to fetch first</source>
-        <translation>Неможливо вибрати перший</translation>
+        <translation>Неможливо отримати перший запис</translation>
     </message>
 </context>
 <context>
     <name>QDateTimeEdit</name>
     <message>
-        <location filename="../src/gui/widgets/qdatetimeedit.cpp" line="+2295"/>
         <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>QDeclarativeAbstractAnimation</name>
+    <message>
+        <source>Cannot animate non-existent property &quot;%1&quot;</source>
+        <translation>Неможливо анімувати неіснуючу властивість &quot;%1&quot;</translation>
+    </message>
+    <message>
+        <source>Cannot animate read-only property &quot;%1&quot;</source>
+        <translation>Неможливо анімувати властивість лише для читання &quot;%1&quot;</translation>
+    </message>
+    <message>
+        <source>Animation is an abstract class</source>
+        <translation>Animation - це абстрактний клас</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativeAnchorAnimation</name>
+    <message>
+        <source>Cannot set a duration of &lt; 0</source>
+        <translation>Не можу встановити тривалість &lt; 0</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativeAnchors</name>
+    <message>
+        <source>Possible anchor loop detected on fill.</source>
+        <translation>Виявлено імовірну циклічну прив&apos;язку до fill.</translation>
+    </message>
+    <message>
+        <source>Possible anchor loop detected on centerIn.</source>
+        <translation>Виявлено імовірну циклічну прив&apos;язку до centerIn.</translation>
+    </message>
+    <message>
+        <source>Cannot anchor to an item that isn&apos;t a parent or sibling.</source>
+        <translation>Неможливо прив&apos;язати до елемента, що не є батьківським чи сусіднім.</translation>
+    </message>
+    <message>
+        <source>Possible anchor loop detected on vertical anchor.</source>
+        <translation>Виявлено імовірну циклічну прив&apos;язку до вертикальної прив&apos;язки.</translation>
+    </message>
+    <message>
+        <source>Possible anchor loop detected on horizontal anchor.</source>
+        <translation>Виявлено імовірну циклічну прив&apos;язку до горизонтальної прив&apos;язки.</translation>
+    </message>
+    <message>
+        <source>Cannot specify left, right, and hcenter anchors.</source>
+        <translation>Неможливо задати прив&apos;язки зліва, справа та центру по горизонталі.</translation>
+    </message>
+    <message>
+        <source>Cannot anchor to a null item.</source>
+        <translation>Неможливо прив&apos;язати до нульового елемента.</translation>
+    </message>
+    <message>
+        <source>Cannot anchor a horizontal edge to a vertical edge.</source>
+        <translation>Неможливо прив&apos;язати горизонтальний край до вертикального.</translation>
+    </message>
+    <message>
+        <source>Cannot anchor item to self.</source>
+        <translation>Неможливо прив&apos;язати елемент до самого себе.</translation>
+    </message>
+    <message>
+        <source>Cannot specify top, bottom, and vcenter anchors.</source>
+        <translation>Неможливо задати прив&apos;язки верху, низу та центру по вертикалі.</translation>
+    </message>
+    <message>
+        <source>Baseline anchor cannot be used in conjunction with top, bottom, or vcenter anchors.</source>
+        <translation>Неможливо використати базову прив&apos;язку разом з верхньої, нижньою чи центральною по вертикалі.</translation>
+    </message>
+    <message>
+        <source>Cannot anchor a vertical edge to a horizontal edge.</source>
+        <translation>Неможливо прив&apos;язати вертикальний край до горизонтального.</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativeAnimatedImage</name>
+    <message>
+        <source>Qt was built without support for QMovie</source>
+        <translation>Бібліотека Qt була зібрана без підтримки QMovie</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativeBehavior</name>
+    <message>
+        <source>Cannot change the animation assigned to a Behavior.</source>
+        <translation>Неможливо змінити анімацію, призначену до поведінки.</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativeBinding</name>
+    <message>
+        <source>Binding loop detected for property &quot;%1&quot;</source>
+        <translation>Знайдено циклічну прив’язку для властивості &quot;%1&quot;</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativeCompiledBindings</name>
+    <message>
+        <source>Binding loop detected for property &quot;%1&quot;</source>
+        <translation>Знайдено циклічну прив’язку для властивості &quot;%1&quot;</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativeCompiler</name>
+    <message>
+        <source>Invalid property assignment: &quot;%1&quot; is a read-only property</source>
+        <translation>Неправильне присвоєння властивості: властивість &quot;%1&quot; лише для читання</translation>
+    </message>
+    <message>
+        <source>Invalid property assignment: unknown enumeration</source>
+        <translation>Неправильне присвоєння властивості: невідомий перелік</translation>
+    </message>
+    <message>
+        <source>Invalid property assignment: string expected</source>
+        <translation>Неправильне присвоєння властивості: очікувався рядок</translation>
+    </message>
+    <message>
+        <source>Invalid property assignment: url expected</source>
+        <translation>Неправильне присвоєння властивості: очікувався URL</translation>
+    </message>
+    <message>
+        <source>Invalid property assignment: unsigned int expected</source>
+        <translation>Неправильне присвоєння властивості: очікувалось беззнакове ціле</translation>
+    </message>
+    <message>
+        <source>Invalid property assignment: int expected</source>
+        <translation>Неправильне присвоєння властивості: очікувалось ціле</translation>
+    </message>
+    <message>
+        <source>Invalid property assignment: number expected</source>
+        <translation>Неправильне присвоєння властивості: очікувалось число</translation>
+    </message>
+    <message>
+        <source>Invalid property assignment: color expected</source>
+        <translation>Неправильне присвоєння властивості: очікувався колір</translation>
+    </message>
+    <message>
+        <source>Invalid property assignment: date expected</source>
+        <translation>Неправильне присвоєння властивості: очікувалась дата</translation>
+    </message>
+    <message>
+        <source>Invalid property assignment: time expected</source>
+        <translation>Неправильне присвоєння властивості: очікувався час</translation>
+    </message>
+    <message>
+        <source>Invalid property assignment: datetime expected</source>
+        <translation>Неправильне присвоєння властивості: очікувались дата та час</translation>
+    </message>
+    <message>
+        <source>Invalid property assignment: point expected</source>
+        <translation>Неправильне присвоєння властивості: очікувалась точка</translation>
+    </message>
+    <message>
+        <source>Invalid property assignment: size expected</source>
+        <translation>Неправильне присвоєння властивості: очікувався розмір</translation>
+    </message>
+    <message>
+        <source>Invalid property assignment: rect expected</source>
+        <translation>Неправильне присвоєння властивості: очікувався прямокутник</translation>
+    </message>
+    <message>
+        <source>Invalid property assignment: boolean expected</source>
+        <translation>Неправильне присвоєння властивості: очікувалось булеве</translation>
+    </message>
+    <message>
+        <source>Invalid property assignment: 3D vector expected</source>
+        <translation>Неправильне присвоєння властивості: очікувався тривимірний вектор</translation>
+    </message>
+    <message>
+        <source>Invalid property assignment: unsupported type &quot;%1&quot;</source>
+        <translation>Неправильне присвоєння властивості: непідтримуваний тип &quot;%1&quot;</translation>
+    </message>
+    <message>
+        <source>Element is not creatable.</source>
+        <translation>Елемент не є створюваним.</translation>
+    </message>
+    <message>
+        <source>Component elements may not contain properties other than id</source>
+        <translation>Елементи Component не можуть містити властивостей окрім id</translation>
+    </message>
+    <message>
+        <source>Invalid component id specification</source>
+        <translation>Неправильна специфікація ідентифікатора компоненти</translation>
+    </message>
+    <message>
+        <source>id is not unique</source>
+        <translation>ідентифікатор не унікальний</translation>
+    </message>
+    <message>
+        <source>Invalid component body specification</source>
+        <translation>Неправильна специфікація тіла компоненти</translation>
+    </message>
+    <message>
+        <source>Component objects cannot declare new properties.</source>
+        <translation>Об&apos;єкти Component не можуть оголошувати нові властивості.</translation>
+    </message>
+    <message>
+        <source>Component objects cannot declare new signals.</source>
+        <translation>Об&apos;єкти Component не можуть оголошувати нові сигнали.</translation>
+    </message>
+    <message>
+        <source>Component objects cannot declare new functions.</source>
+        <translation>Об&apos;єкти Component не можуть оголошувати нові функції.</translation>
+    </message>
+    <message>
+        <source>Cannot create empty component specification</source>
+        <translation>Неможливо створити порожню специфікацію компоненти</translation>
+    </message>
+    <message>
+        <source>Incorrectly specified signal assignment</source>
+        <translation>Неправильно вказане призначення сигналу</translation>
+    </message>
+    <message>
+        <source>Cannot assign a value to a signal (expecting a script to be run)</source>
+        <translation>Неможливо призначити значення сигналу (очікується скрипт для виконання)</translation>
+    </message>
+    <message>
+        <source>Empty signal assignment</source>
+        <translation>Порожнє призначення сигналу</translation>
+    </message>
+    <message>
+        <source>Empty property assignment</source>
+        <translation>Порожнє призначення властивості</translation>
+    </message>
+    <message>
+        <source>Attached properties cannot be used here</source>
+        <translation>Прикріплені властивості не можуть бути тут використані</translation>
+    </message>
+    <message>
+        <source>Non-existent attached object</source>
+        <translation>Неіснуючий прикріплений об&apos;єкт</translation>
+    </message>
+    <message>
+        <source>Invalid attached object assignment</source>
+        <translation>Неправильне призначення прикріпленого об&apos;єкта</translation>
+    </message>
+    <message>
+        <source>Cannot assign to non-existent default property</source>
+        <translation>Неможливо призначити до неіснуючої типової властивості</translation>
+    </message>
+    <message>
+        <source>Cannot assign to non-existent property &quot;%1&quot;</source>
+        <translation>Неможливо призначити неіснуючій властивості &quot;%1&quot;</translation>
+    </message>
+    <message>
+        <source>Invalid use of namespace</source>
+        <translation>Неправильне використання простору імен</translation>
+    </message>
+    <message>
+        <source>Not an attached property name</source>
+        <translation>Не є назвою прикріпленої властивості</translation>
+    </message>
+    <message>
+        <source>Invalid use of id property</source>
+        <translation>Неправильне використання властивості id</translation>
+    </message>
+    <message>
+        <source>Property has already been assigned a value</source>
+        <translation>Властивості вже призначено значення</translation>
+    </message>
+    <message>
+        <source>Invalid grouped property access</source>
+        <translation>Неправильний доступ до згрупованої властивості</translation>
+    </message>
+    <message>
+        <source>Cannot assign a value directly to a grouped property</source>
+        <translation>Неможливо призначити значення безпосередньо до згрупованої властивості</translation>
+    </message>
+    <message>
+        <source>Invalid property use</source>
+        <translation>Неправильне використання властивості</translation>
+    </message>
+    <message>
+        <source>Property assignment expected</source>
+        <translation>Очікувалось призначення властивості</translation>
+    </message>
+    <message>
+        <source>Single property assignment expected</source>
+        <translation>Очікується одиночне призначення властивості</translation>
+    </message>
+    <message>
+        <source>Unexpected object assignment</source>
+        <translation>Неочікуване призначення об&apos;єкта</translation>
+    </message>
+    <message>
+        <source>Cannot assign object to list</source>
+        <translation>Неможливо призначити об&apos;єкт списку</translation>
+    </message>
+    <message>
+        <source>Can only assign one binding to lists</source>
+        <translation>Можна призначити лише один зв&apos;язок до списків</translation>
+    </message>
+    <message>
+        <source>Cannot assign primitives to lists</source>
+        <translation>Неможливо призначити примітиви до списків</translation>
+    </message>
+    <message>
+        <source>Cannot assign multiple values to a script property</source>
+        <translation>Неможливо призначити декілька значень властивості скрипту</translation>
+    </message>
+    <message>
+        <source>Invalid property assignment: script expected</source>
+        <translation>Неправильне присвоєння властивості: очікувався скрипт</translation>
+    </message>
+    <message>
+        <source>Cannot assign object to property</source>
+        <translation>Неможливо призначити об&apos;єкт властивості</translation>
+    </message>
+    <message>
+        <source>&quot;%1&quot; cannot operate on &quot;%2&quot;</source>
+        <translation>&quot;%1&quot; не може оперувати над &quot;%2&quot;</translation>
+    </message>
+    <message>
+        <source>Duplicate default property</source>
+        <translation>Дубльована типова властивість</translation>
+    </message>
+    <message>
+        <source>Duplicate property name</source>
+        <translation>Дубльована назва властивості</translation>
+    </message>
+    <message>
+        <source>Property names cannot begin with an upper case letter</source>
+        <translation>Назви властивостей не можуть починатись з великої літери</translation>
+    </message>
+    <message>
+        <source>Illegal property name</source>
+        <translation>Неприпустима назва властивості</translation>
+    </message>
+    <message>
+        <source>Duplicate signal name</source>
+        <translation>Дубльована назва сигналу</translation>
+    </message>
+    <message>
+        <source>Signal names cannot begin with an upper case letter</source>
+        <translation>Назви сигналів не можуть починатись з великої літери</translation>
+    </message>
+    <message>
+        <source>Illegal signal name</source>
+        <translation>Неприпустима назва сигналу</translation>
+    </message>
+    <message>
+        <source>Duplicate method name</source>
+        <translation>Дубльована назва методу</translation>
+    </message>
+    <message>
+        <source>Method names cannot begin with an upper case letter</source>
+        <translation>Назви методів не можуть починатись з великої літери</translation>
+    </message>
+    <message>
+        <source>Illegal method name</source>
+        <translation>Неприпустима назва методу</translation>
+    </message>
+    <message>
+        <source>Property value set multiple times</source>
+        <translation>Значення властивості встановлено декілька разів</translation>
+    </message>
+    <message>
+        <source>Invalid property nesting</source>
+        <translation>Неправильне вкладення властивостей</translation>
+    </message>
+    <message>
+        <source>Cannot override FINAL property</source>
+        <translation>Неможливо перевизначити властивість FINAL</translation>
+    </message>
+    <message>
+        <source>Invalid property type</source>
+        <translation>Неправильне тип властивості</translation>
+    </message>
+    <message>
+        <source>Invalid empty ID</source>
+        <translation>Неправильний порожній ID</translation>
+    </message>
+    <message>
+        <source>IDs cannot start with an uppercase letter</source>
+        <translation>Ідентифікатори не можуть починатись з великої літери</translation>
+    </message>
+    <message>
+        <source>IDs must start with a letter or underscore</source>
+        <translation>Ідентифікатори повинні починатись з літери чи підкреслення</translation>
+    </message>
+    <message>
+        <source>IDs must contain only letters, numbers, and underscores</source>
+        <translation>Ідентифікатори повинні містити лише літери, цифри та підкреслення</translation>
+    </message>
+    <message>
+        <source>ID illegally masks global JavaScript property</source>
+        <translation>Ідентифікатор неправильно маскує глобальну властивість JavaScript</translation>
+    </message>
+    <message>
+        <source>No property alias location</source>
+        <translation>Відсутня позиція псевдоніма властивості</translation>
+    </message>
+    <message>
+        <source>Invalid alias location</source>
+        <translation>Непраильна позиція псевдоніму</translation>
+    </message>
+    <message>
+        <source>Invalid alias reference. An alias reference must be specified as &lt;id&gt; or &lt;id&gt;.&lt;property&gt;</source>
+        <translation>Неправильне посилання на псевдонім. Посилання на псевдонім має бути вказане, як &lt;id&gt; або &lt;id&gt;.&lt;property&gt;</translation>
+    </message>
+    <message>
+        <source>Invalid alias reference. Unable to find id &quot;%1&quot;</source>
+        <translation>Неправильне посилання на псевдонім. Неможливо знайти id &quot;%1&quot;</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativeComponent</name>
+    <message>
+        <source>Invalid empty URL</source>
+        <translation>Неправильний порожній URL</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativeConnections</name>
+    <message>
+        <source>Cannot assign to non-existent property &quot;%1&quot;</source>
+        <translation>Неможливо призначити неіснуючій властивості &quot;%1&quot;</translation>
+    </message>
+    <message>
+        <source>Connections: nested objects not allowed</source>
+        <translation>З’єднання: вкладені об’єкти не дозволяються</translation>
+    </message>
+    <message>
+        <source>Connections: syntax error</source>
+        <translation>З’єднання: синтаксична помилка</translation>
+    </message>
+    <message>
+        <source>Connections: script expected</source>
+        <translation>З’єднання: очікувався скрипт</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativeEngine</name>
+    <message>
+        <source>executeSql called outside transaction()</source>
+        <translation>executeSql було викликано поза transaction()</translation>
+    </message>
+    <message>
+        <source>Read-only Transaction</source>
+        <translation>Транзакція лише для читання</translation>
+    </message>
+    <message>
+        <source>Version mismatch: expected %1, found %2</source>
+        <translation>Розбіжність версій: очікувалась %1, знайдена %2</translation>
+    </message>
+    <message>
+        <source>SQL transaction failed</source>
+        <translation>Збій транзакції SQL</translation>
+    </message>
+    <message>
+        <source>transaction: missing callback</source>
+        <translation>транзакція: відсутній зворотній виклик</translation>
+    </message>
+    <message>
+        <source>SQL: database version mismatch</source>
+        <translation>SQL: розбіжність версій бази даних</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativeFlipable</name>
+    <message>
+        <source>front is a write-once property</source>
+        <translation>Властивість front лише для одноразового запису</translation>
+    </message>
+    <message>
+        <source>back is a write-once property</source>
+        <translation>Властивість back лише для одноразового запису</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativeImportDatabase</name>
+    <message>
+        <source>module &quot;%1&quot; definition &quot;%2&quot; not readable</source>
+        <translation>неможливо прочитати визначення &quot;%2&quot; модуля &quot;%1&quot;</translation>
+    </message>
+    <message>
+        <source>plugin cannot be loaded for module &quot;%1&quot;: %2</source>
+        <translation>неможливо завантажити додаток для модуля &quot;%1&quot;: %2</translation>
+    </message>
+    <message>
+        <source>module &quot;%1&quot; plugin &quot;%2&quot; not found</source>
+        <translation>не знайдено додаток &quot;%2&quot; модуля &quot;%1&quot;</translation>
+    </message>
+    <message>
+        <source>module &quot;%1&quot; version %2.%3 is not installed</source>
+        <translation>модуль &quot;%1&quot; версії %2.%3 не встановлено</translation>
+    </message>
+    <message>
+        <source>module &quot;%1&quot; is not installed</source>
+        <translation>модуль &quot;%1&quot; не встановлено</translation>
+    </message>
+    <message>
+        <source>&quot;%1&quot;: no such directory</source>
+        <translation>&quot;%1&quot;: тека не існує</translation>
+    </message>
+    <message>
+        <source>import &quot;%1&quot; has no qmldir and no namespace</source>
+        <translation>import &quot;%1&quot; не має ні qmldir, ні namespace</translation>
+    </message>
+    <message>
+        <source>- %1 is not a namespace</source>
+        <translation>- %1 не є простором імен</translation>
+    </message>
+    <message>
+        <source>- nested namespaces not allowed</source>
+        <translation>- вкладені простори імен не дозволяються</translation>
+    </message>
+    <message>
+        <source>local directory</source>
+        <translation>локальна тека</translation>
+    </message>
+    <message>
+        <source>is ambiguous. Found in %1 and in %2</source>
+        <translation>є неоднозначним. Знайдено в %1 та в %2</translation>
+    </message>
+    <message>
+        <source>is ambiguous. Found in %1 in version %2.%3 and %4.%5</source>
+        <translation>є неоднозначним. Знайдено в %1 версії %2.%3 та %4.%5</translation>
+    </message>
+    <message>
+        <source>is instantiated recursively</source>
+        <translation>інстанціюється рекурсивно</translation>
+    </message>
+    <message>
+        <source>is not a type</source>
+        <translation>не є типом</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativeKeyNavigationAttached</name>
+    <message>
+        <source>KeyNavigation is only available via attached properties</source>
+        <translation>KeyNavigation доступна лише через прикріплені властивості</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativeKeysAttached</name>
+    <message>
+        <source>Keys is only available via attached properties</source>
+        <translation>Keys доступні лише через прикріплені властивості</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativeListModel</name>
+    <message>
+        <source>remove: index %1 out of range</source>
+        <translation>remove: індекс %1 поза межами діапазону</translation>
+    </message>
+    <message>
+        <source>insert: value is not an object</source>
+        <translation>insert: значення не є об’єктом</translation>
+    </message>
+    <message>
+        <source>insert: index %1 out of range</source>
+        <translation>insert: індекс %1 поза межами діапазону</translation>
+    </message>
+    <message>
+        <source>move: out of range</source>
+        <translation>move: поза межами діапазону</translation>
+    </message>
+    <message>
+        <source>append: value is not an object</source>
+        <translation>append: значення не є об’єктом</translation>
+    </message>
+    <message>
+        <source>set: value is not an object</source>
+        <translation>set: значення не є об’єктом</translation>
+    </message>
+    <message>
+        <source>set: index %1 out of range</source>
+        <translation>set: індекс %1 поза межами діапазону</translation>
+    </message>
+    <message>
+        <source>ListElement: cannot contain nested elements</source>
+        <translation>ListElement: не може містити вкладені елементи</translation>
+    </message>
+    <message>
+        <source>ListElement: cannot use reserved &quot;id&quot; property</source>
+        <translation>ListElement: не може використовувати зарезервовану властивість &quot;id&quot;</translation>
+    </message>
+    <message>
+        <source>ListElement: cannot use script for property value</source>
+        <translation>ListElement: неможливо використовувати скрипт в якості значення властивості</translation>
+    </message>
+    <message>
+        <source>ListModel: undefined property &apos;%1&apos;</source>
+        <translation>ListModel: невизначена властивість &apos;%1&apos;</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativeLoader</name>
+    <message>
+        <source>Loader does not support loading non-visual elements.</source>
+        <translation>Завантажувач не підтримує завантаження невізуальних елементів.</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativeParentAnimation</name>
+    <message>
+        <source>Unable to preserve appearance under complex transform</source>
+        <translation>Неможливо зберегти зовнішній вигляд при складному перетворенні</translation>
+    </message>
+    <message>
+        <source>Unable to preserve appearance under non-uniform scale</source>
+        <translation>Неможливо зберегти зовнішній вигляд при неоднорідному масштабі</translation>
+    </message>
+    <message>
+        <source>Unable to preserve appearance under scale of 0</source>
+        <translation>Неможливо зберегти зовнішній вигляд при нульовому масштабі</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativeParentChange</name>
+    <message>
+        <source>Unable to preserve appearance under complex transform</source>
+        <translation>Неможливо зберегти зовнішній вигляд при складному перетворенні</translation>
+    </message>
+    <message>
+        <source>Unable to preserve appearance under non-uniform scale</source>
+        <translation>Неможливо зберегти зовнішній вигляд при неоднорідному масштабі</translation>
+    </message>
+    <message>
+        <source>Unable to preserve appearance under scale of 0</source>
+        <translation>Неможливо зберегти зовнішній вигляд при нульовому масштабі</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativeParser</name>
+    <message>
+        <source>Illegal unicode escape sequence</source>
+        <translation>Неприпустима керуюча послідовність Unicode</translation>
+    </message>
+    <message>
+        <source>Illegal character</source>
+        <translation>Неприпустимий символ</translation>
+    </message>
+    <message>
+        <source>Unclosed string at end of line</source>
+        <translation>Незакритий рядок в кінці файлу</translation>
+    </message>
+    <message>
+        <source>Illegal escape squence</source>
+        <translation>Неприпустима керуюча послідовність</translation>
+    </message>
+    <message>
+        <source>Unclosed comment at end of file</source>
+        <translation>Незакритий коментар в кінці файлу</translation>
+    </message>
+    <message>
+        <source>Illegal syntax for exponential number</source>
+        <translation>Неприпустимий синтаксис для експоненційного числа</translation>
+    </message>
+    <message>
+        <source>Identifier cannot start with numeric literal</source>
+        <translation>Ідентифікатор не може починатись за чисельного літералу</translation>
+    </message>
+    <message>
+        <source>Unterminated regular expression literal</source>
+        <translation>Незавершений літерал регулярного виразу</translation>
+    </message>
+    <message>
+        <source>Invalid regular expression flag &apos;%0&apos;</source>
+        <translation>Неправильний прапорець регулярного виразу ’%0’</translation>
+    </message>
+    <message>
+        <source>Unterminated regular expression backslash sequence</source>
+        <translation>Незавершена екранована послідовність регулярного виразу</translation>
+    </message>
+    <message>
+        <source>Unterminated regular expression class</source>
+        <translation>Незавершений клас регулярного виразу</translation>
+    </message>
+    <message>
+        <source>Syntax error</source>
+        <translation>Синтаксична помилка</translation>
+    </message>
+    <message>
+        <source>Unexpected token `%1&apos;</source>
+        <translation>Неочікуваний токен `%1&apos;</translation>
+    </message>
+    <message>
+        <source>Expected token `%1&apos;</source>
+        <translation>Очікувався токен `%1&apos;</translation>
+    </message>
+    <message>
+        <source>Property value set multiple times</source>
+        <translation>Значення властивості встановлено декілька разів</translation>
+    </message>
+    <message>
+        <source>Expected type name</source>
+        <translation>Очікувалась назва типу</translation>
+    </message>
+    <message>
+        <source>Invalid import qualifier ID</source>
+        <translation>Неправильний ID специфікатору імпорту</translation>
+    </message>
+    <message>
+        <source>Reserved name &quot;Qt&quot; cannot be used as an qualifier</source>
+        <translation>Зарезервоване ім’я &quot;Qt&quot; не може бути застосоване в якості специфікатора</translation>
+    </message>
+    <message>
+        <source>Script import qualifiers must be unique.</source>
+        <translation>Специфікатори імпорту скрипту мають бути унікальними.</translation>
+    </message>
+    <message>
+        <source>Script import requires a qualifier</source>
+        <translation>Імпорт скрипту вимагає специфікатора</translation>
+    </message>
+    <message>
+        <source>Library import requires a version</source>
+        <translation>Імпорт бібліотеки вимагає версії</translation>
+    </message>
+    <message>
+        <source>Expected parameter type</source>
+        <translation>Очікувався тип параметра</translation>
+    </message>
+    <message>
+        <source>Invalid property type modifier</source>
+        <translation>Неправильний модифікатор типу властивості</translation>
+    </message>
+    <message>
+        <source>Unexpected property type modifier</source>
+        <translation>Неочікуваний модифікатор типу властивості</translation>
+    </message>
+    <message>
+        <source>Expected property type</source>
+        <translation>Очікувався тип властивості</translation>
+    </message>
+    <message>
+        <source>Readonly not yet supported</source>
+        <translation>&quot;Тільки для читання&quot; ще не підтримується</translation>
+    </message>
+    <message>
+        <source>JavaScript declaration outside Script element</source>
+        <translation>Декларація JavaScript поза межами елемента Script</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativePauseAnimation</name>
+    <message>
+        <source>Cannot set a duration of &lt; 0</source>
+        <translation>Не можу встановити тривалість &lt; 0</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativePixmap</name>
+    <message>
+        <source>Error decoding: %1: %2</source>
+        <translation>Помилка декодування: %1: %2</translation>
+    </message>
+    <message>
+        <source>Failed to get image from provider: %1</source>
+        <translation>Збій отримання зображення від постачальника: %1</translation>
+    </message>
+    <message>
+        <source>Cannot open: %1</source>
+        <translation>Неможливо відкрити: %1</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativePropertyAnimation</name>
+    <message>
+        <source>Cannot set a duration of &lt; 0</source>
+        <translation>Не можу встановити тривалість &lt; 0</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativePropertyChanges</name>
+    <message>
+        <source>PropertyChanges does not support creating state-specific objects.</source>
+        <translation>PropertyChanges не підтримує створення об’єктів специфічних до стану.</translation>
+    </message>
+    <message>
+        <source>Cannot assign to non-existent property &quot;%1&quot;</source>
+        <translation>Неможливо призначити неіснуючій властивості &quot;%1&quot;</translation>
+    </message>
+    <message>
+        <source>Cannot assign to read-only property &quot;%1&quot;</source>
+        <translation>Неможливо призначити властивості лише для читання &quot;%1&quot;</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativeTextInput</name>
+    <message>
+        <source>Could not load cursor delegate</source>
+        <translation>Не вдалося завантажити делегат курсору</translation>
+    </message>
+    <message>
+        <source>Could not instantiate cursor delegate</source>
+        <translation>Не вдалося інстанціювати делегат курсору</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativeTypeData</name>
+    <message>
+        <source>Script %1 unavailable</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Type %1 unavailable</source>
+        <translation type="unfinished">Тип %1 недоступний</translation>
+    </message>
+    <message>
+        <source>Namespace %1 cannot be used as a type</source>
+        <translation type="unfinished">Простір імен %1 не може бути використаний як тип</translation>
+    </message>
+    <message>
+        <source>%1 %2</source>
+        <translation type="unfinished">%1 %2</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativeVME</name>
+    <message>
+        <source>Unable to create object of type %1</source>
+        <translation>Неможливо створити об’єкт типу %1</translation>
+    </message>
+    <message>
+        <source>Cannot assign value %1 to property %2</source>
+        <translation>Неможливо призначити властивості %2 значення %1</translation>
+    </message>
+    <message>
+        <source>Cannot assign object type %1 with no default method</source>
+        <translation>Неможливо призначити об’єкт типу %1 без методу за замовчуванням</translation>
+    </message>
+    <message>
+        <source>Cannot connect mismatched signal/slot %1 %vs. %2</source>
+        <translation>Неможливо з’єднати несумісний сигнал/слот (%1 проти %2)</translation>
+    </message>
+    <message>
+        <source>Cannot assign an object to signal property %1</source>
+        <translation>Неможливо призначити об’єкт до властивості сигналу %1</translation>
+    </message>
+    <message>
+        <source>Cannot assign object to list</source>
+        <translation>Неможливо призначити об’єкт до списку</translation>
+    </message>
+    <message>
+        <source>Cannot assign object to interface property</source>
+        <translation>Неможливо призначити об’єкт до властивості інтерфейсу</translation>
+    </message>
+    <message>
+        <source>Unable to create attached object</source>
+        <translation>Неможливо створити прикріплений об’єкт</translation>
+    </message>
+    <message>
+        <source>Cannot set properties on %1 as it is null</source>
+        <translation>Неможливо встановити властивості для %1, оскільки він нульовий</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativeVisualDataModel</name>
+    <message>
+        <source>Delegate component must be Item type.</source>
+        <translation>Компонент делегату має бути типу Item.</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativeXmlListModel</name>
+    <message>
+        <source>Qt was built without support for xmlpatterns</source>
+        <translation>Бібліотека Qt була зібрана без підтримки xmlpatterns</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativeXmlListModelRole</name>
+    <message>
+        <source>An XmlRole query must not start with &apos;/&apos;</source>
+        <translation>Запит XmlRole не повинен починатись з &apos;/&apos;</translation>
+    </message>
+</context>
+<context>
+    <name>QDeclarativeXmlRoleList</name>
+    <message>
+        <source>An XmlListModel query must start with &apos;/&apos; or &quot;//&quot;</source>
+        <translation>Запит XmlListModel не повинен починатись з &apos;/&apos; або &quot;//&quot;</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"/>
+        <translation></translation>
+    </message>
+    <message>
         <source>SpeedoMeter</source>
-        <translation>Спідометр</translation>
-    </message>
-    <message>
-        <location line="+2"/>
+        <translation></translation>
+    </message>
+    <message>
         <source>SliderHandle</source>
-        <translation>ДержакПовзунка</translation>
+        <translation></translation>
     </message>
 </context>
 <context>
     <name>QDialog</name>
     <message>
-        <location filename="../src/gui/dialogs/qdialog.cpp" line="+597"/>
+        <source>Done</source>
+        <translation>Завершено</translation>
+    </message>
+    <message>
         <source>What&apos;s This?</source>
         <translation>Що це?</translation>
     </message>
-    <message>
-        <location line="-115"/>
-        <source>Done</source>
-        <translation type="unfinished">Зроблено</translation>
-    </message>
 </context>
 <context>
     <name>QDialogButtonBox</name>
     <message>
-        <location filename="../src/gui/dialogs/qmessagebox.cpp" line="+1866"/>
-        <location line="+464"/>
-        <location filename="../src/gui/widgets/qdialogbuttonbox.cpp" line="+561"/>
         <source>OK</source>
-        <translation>Гаразд</translation>
-    </message>
-    <message>
-        <location filename="../src/gui/widgets/qdialogbuttonbox.cpp" line="+3"/>
+        <translation></translation>
+    </message>
+    <message>
+        <source>&amp;OK</source>
+        <translation>&amp;OK</translation>
+    </message>
+    <message>
+        <source>&amp;Save</source>
+        <translation>&amp;Зберегти</translation>
+    </message>
+    <message>
         <source>Save</source>
-        <translation type="unfinished">Зберегти</translation>
-    </message>
-    <message>
-        <location line="+0"/>
-        <source>&amp;Save</source>
-        <translation type="unfinished">&amp;Зберегти</translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>Зберегти</translation>
+    </message>
+    <message>
         <source>Open</source>
         <translation>Відкрити</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <source>&amp;Cancel</source>
+        <translation>&amp;Скасувати</translation>
+    </message>
+    <message>
         <source>Cancel</source>
-        <translation type="unfinished">Скасувати</translation>
-    </message>
-    <message>
-        <location line="+0"/>
-        <source>&amp;Cancel</source>
-        <translation type="unfinished">&amp;Скасувати</translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>Скасувати</translation>
+    </message>
+    <message>
+        <source>&amp;Close</source>
+        <translation>Закри&amp;ти</translation>
+    </message>
+    <message>
         <source>Close</source>
-        <translation type="unfinished">Закрити</translation>
-    </message>
-    <message>
-        <location line="+0"/>
-        <source>&amp;Close</source>
-        <translation type="unfinished">&amp;Закрити</translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>Закрити</translation>
+    </message>
+    <message>
         <source>Apply</source>
         <translation>Застосувати</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Reset</source>
         <translation>Скинути</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Help</source>
         <translation>Довідка</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Don&apos;t Save</source>
         <translation>Не зберігати</translation>
     </message>
     <message>
-        <location line="+4"/>
+        <source>Close without Saving</source>
+        <translation>Закрити без збереження</translation>
+    </message>
+    <message>
         <source>Discard</source>
-        <translation>Відкинути</translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>Відхилити</translation>
+    </message>
+    <message>
         <source>&amp;Yes</source>
-        <translation>&amp;Так</translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>Т&amp;ак</translation>
+    </message>
+    <message>
         <source>Yes to &amp;All</source>
-        <translation>Так для &amp;всіх</translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>Так &amp;для всіх</translation>
+    </message>
+    <message>
         <source>&amp;No</source>
         <translation>&amp;Ні</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>N&amp;o to All</source>
-        <translation>Н&amp;і для всіх</translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>Ні для вс&amp;іх</translation>
+    </message>
+    <message>
         <source>Save All</source>
-        <translation>Зберегти всі</translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>Зберегти все</translation>
+    </message>
+    <message>
         <source>Abort</source>
         <translation>Перервати</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Retry</source>
-        <translation>Повторна спроба</translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>Повторити</translation>
+    </message>
+    <message>
         <source>Ignore</source>
-        <translation>Пропустити</translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>Ігнорувати</translation>
+    </message>
+    <message>
         <source>Restore Defaults</source>
-        <translation>Відновити типові</translation>
-    </message>
-    <message>
-        <location line="-29"/>
-        <source>Close without Saving</source>
-        <translation>Закрити без збереження</translation>
-    </message>
-    <message>
-        <location line="-27"/>
-        <source>&amp;OK</source>
-        <translation type="unfinished">&amp;Гаразд</translation>
+        <translation>Відновити типово</translation>
     </message>
 </context>
 <context>
     <name>QDirModel</name>
     <message>
-        <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+453"/>
         <source>Name</source>
-        <translation>Ім&apos;я</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>Назва</translation>
+    </message>
+    <message>
         <source>Size</source>
         <translation>Розмір</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Kind</source>
         <comment>Match OS X Finder</comment>
         <translation>Тип</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Type</source>
         <comment>All other platforms</comment>
         <translation>Тип</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Date Modified</source>
         <translation>Дата зміни</translation>
     </message>
@@ -1355,30 +2315,25 @@
 <context>
     <name>QDockWidget</name>
     <message>
-        <location filename="../src/plugins/accessible/widgets/qaccessiblewidgets.cpp" line="+1239"/>
         <source>Close</source>
         <translation>Закрити</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Dock</source>
-        <translation>Пришвартувати</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>Закріпити</translation>
+    </message>
+    <message>
         <source>Float</source>
-        <translation>Відшвартувати</translation>
+        <translation>Відкріпити</translation>
     </message>
 </context>
 <context>
     <name>QDoubleSpinBox</name>
     <message>
-        <location filename="../src/plugins/accessible/widgets/rangecontrols.cpp" line="-537"/>
         <source>More</source>
         <translation>Більше</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Less</source>
         <translation>Менше</translation>
     </message>
@@ -1386,787 +2341,651 @@
 <context>
     <name>QErrorMessage</name>
     <message>
-        <location filename="../src/gui/dialogs/qerrormessage.cpp" line="+192"/>
         <source>Debug Message:</source>
-        <translation>Повідомлення зневадження:</translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>Зневаджувальне повідомлення:</translation>
+    </message>
+    <message>
         <source>Warning:</source>
         <translation>Попередження:</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Fatal Error:</source>
         <translation>Фатальна помилка:</translation>
     </message>
     <message>
-        <location line="+193"/>
         <source>&amp;Show this message again</source>
         <translation>&amp;Показувати це повідомлення знову</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;OK</source>
-        <translation>&amp;Гаразд</translation>
+        <translation>&amp;OK</translation>
     </message>
 </context>
 <context>
     <name>QFile</name>
     <message>
-        <location filename="../src/corelib/io/qfile.cpp" line="+708"/>
-        <location line="+141"/>
         <source>Destination file exists</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="-108"/>
+        <translation>Файл-отримувач існує</translation>
+    </message>
+    <message>
+        <source>Will not rename sequential file using block copy</source>
+        <translation>Послідовний файл не буде перейменовано за допомогою блочного копіювання</translation>
+    </message>
+    <message>
         <source>Cannot remove source file</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+120"/>
+        <translation>Неможливо видалити початковий файл</translation>
+    </message>
+    <message>
         <source>Cannot open %1 for input</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+17"/>
+        <translation>Неможливо відкрити %1 для введення</translation>
+    </message>
+    <message>
         <source>Cannot open for output</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+10"/>
+        <translation>Неможливо відкрити для виводу</translation>
+    </message>
+    <message>
         <source>Failure to write block</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+13"/>
+        <translation>Збій запису блока</translation>
+    </message>
+    <message>
         <source>Cannot create %1 for output</source>
-        <translation type="unfinished"></translation>
+        <translation>Неможливо створити %1 для виводу</translation>
     </message>
 </context>
 <context>
     <name>QFileDialog</name>
     <message>
-        <location filename="../src/gui/dialogs/qfiledialog.cpp" line="+515"/>
-        <location line="+444"/>
-        <source>All Files (*)</source>
-        <translation>Всі файли (*)</translation>
-    </message>
-    <message>
-        <location line="+222"/>
-        <source>Directories</source>
-        <translation>Каталоги</translation>
-    </message>
-    <message>
-        <location line="-3"/>
-        <location line="+50"/>
-        <location line="+1471"/>
-        <location line="+75"/>
-        <source>&amp;Open</source>
-        <translation>&amp;Відкрити</translation>
-    </message>
-    <message>
-        <location line="-1596"/>
-        <location line="+50"/>
-        <source>&amp;Save</source>
-        <translation>&amp;Зберегти</translation>
-    </message>
-    <message>
-        <location line="-730"/>
+        <source>Look in:</source>
+        <translation>Перегляд в:</translation>
+    </message>
+    <message>
+        <source>Back</source>
+        <translation>Назад</translation>
+    </message>
+    <message>
+        <source>Go back</source>
+        <translation>Йти назад</translation>
+    </message>
+    <message>
+        <source>Forward</source>
+        <translation>Вперед</translation>
+    </message>
+    <message>
+        <source>Go forward</source>
+        <translation>Йти вперед</translation>
+    </message>
+    <message>
+        <source>Parent Directory</source>
+        <translation>Батьківська тека</translation>
+    </message>
+    <message>
+        <source>Go to the parent directory</source>
+        <translation>Перейти до батьківської теки</translation>
+    </message>
+    <message>
+        <source>Create New Folder</source>
+        <translation>Створити нову теку</translation>
+    </message>
+    <message>
+        <source>Create a New Folder</source>
+        <translation>Створити нову теку</translation>
+    </message>
+    <message>
+        <source>List View</source>
+        <translation>Списком</translation>
+    </message>
+    <message>
+        <source>Change to list view mode</source>
+        <translation>Перейти до перегляду списком</translation>
+    </message>
+    <message>
+        <source>Detail View</source>
+        <translation>Детально</translation>
+    </message>
+    <message>
+        <source>Change to detail view mode</source>
+        <translation>Перейти до детального перегляду</translation>
+    </message>
+    <message>
+        <source>Files of type:</source>
+        <translation>Тип файлів:</translation>
+    </message>
+    <message>
+        <source>Find Directory</source>
+        <translation>Пошук теки</translation>
+    </message>
+    <message>
         <source>Open</source>
         <translation>Відкрити</translation>
     </message>
     <message>
-        <location line="+1515"/>
-        <source>%1 already exists.
-Do you want to replace it?</source>
-        <translation>%1 вже існує.
-Перезаписати?</translation>
-    </message>
-    <message>
-        <location line="+20"/>
-        <source>%1
-File not found.
-Please verify the correct file name was given.</source>
-        <translation>%1.
-Файл не знайдено.
-Переконайтеся, що введено правильне ім&apos;я файлу.</translation>
-    </message>
-    <message>
-        <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+402"/>
-        <source>My Computer</source>
-        <translation>Мій комп&apos;ютер</translation>
-    </message>
-    <message>
-        <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-1504"/>
+        <source>Save As</source>
+        <translation>Зберегти як</translation>
+    </message>
+    <message>
+        <source>All Files (*)</source>
+        <translation>Усі файли (*)</translation>
+    </message>
+    <message>
+        <source>Show </source>
+        <translation>Показати</translation>
+    </message>
+    <message>
         <source>&amp;Rename</source>
         <translation>&amp;Перейменувати</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Delete</source>
-        <translation>&amp;Витерти</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>&amp;Видалити</translation>
+    </message>
+    <message>
         <source>Show &amp;hidden files</source>
-        <translation>Показати &amp;приховані файли</translation>
-    </message>
-    <message>
-        <location filename="../src/gui/dialogs/qfiledialog.ui"/>
-        <location filename="../src/gui/dialogs/qfiledialog_wince.ui"/>
-        <source>Back</source>
-        <translation>Назад</translation>
-    </message>
-    <message>
-        <location/>
-        <location filename="../src/gui/dialogs/qfiledialog_wince.ui"/>
-        <source>Parent Directory</source>
-        <translation>Батьківський каталог</translation>
-    </message>
-    <message>
-        <location/>
-        <location filename="../src/gui/dialogs/qfiledialog_wince.ui"/>
-        <source>List View</source>
-        <translation>Вигляд списком</translation>
-    </message>
-    <message>
-        <location/>
-        <location filename="../src/gui/dialogs/qfiledialog_wince.ui"/>
-        <source>Detail View</source>
-        <translation>Вигляд з подробицями</translation>
-    </message>
-    <message>
-        <location/>
-        <location filename="../src/gui/dialogs/qfiledialog_wince.ui"/>
-        <source>Files of type:</source>
-        <translation>Тип файлів:</translation>
-    </message>
-    <message>
-        <location filename="../src/gui/dialogs/qfiledialog.cpp" line="+6"/>
-        <location line="+648"/>
+        <translation>Показувати при&amp;ховані файли</translation>
+    </message>
+    <message>
+        <source>&amp;New Folder</source>
+        <translation>&amp;Нова тека</translation>
+    </message>
+    <message>
         <source>Directory:</source>
-        <translation>Каталог:</translation>
-    </message>
-    <message>
-        <source>
-File not found.
-Please verify the correct file name was given</source>
-        <translation type="obsolete">
-Файл не знайдено.
-Переконайтеся, що введено правильне ім&apos;я файлу</translation>
-    </message>
-    <message>
-        <location line="+794"/>
-        <location line="+862"/>
+        <translation>Тека:</translation>
+    </message>
+    <message>
+        <source>File &amp;name:</source>
+        <translation>&amp;Ім&apos;я файлу:</translation>
+    </message>
+    <message>
+        <source>&amp;Open</source>
+        <translation>&amp;Відкрити</translation>
+    </message>
+    <message>
+        <source>&amp;Save</source>
+        <translation>&amp;Зберегти</translation>
+    </message>
+    <message>
+        <source>Directories</source>
+        <translation>Теки</translation>
+    </message>
+    <message>
+        <source>&amp;Choose</source>
+        <translation>&amp;Обрати</translation>
+    </message>
+    <message>
         <source>%1
 Directory not found.
 Please verify the correct directory name was given.</source>
-        <translation>%1.
-Каталог не знайдено.
-Переконайтеся, що введено правильне ім&apos;я каталогу.</translation>
-    </message>
-    <message>
-        <location line="-218"/>
+        <translation>%1
+Тека не знайдена.
+Будь ласка, перевірте, що вказане правильне ім&apos;я теки.</translation>
+    </message>
+    <message>
+        <source>%1 already exists.
+Do you want to replace it?</source>
+        <translation>%1 вже існує.
+Бажаєте перезаписати його?</translation>
+    </message>
+    <message>
+        <source>%1
+File not found.
+Please verify the correct file name was given.</source>
+        <translation>%1
+Файл не знайдено.
+Будь ласка, перевірте, що вказане правильне ім&apos;я файлу.</translation>
+    </message>
+    <message>
+        <source>New Folder</source>
+        <translation>Нова тека</translation>
+    </message>
+    <message>
         <source>&apos;%1&apos; is write protected.
 Do you want to delete it anyway?</source>
-        <translation>&quot;%1&quot; захищено від запису.
-Дійсно вилучити?</translation>
-    </message>
-    <message>
-        <location line="+5"/>
+        <translation>&apos;%1&apos; захищено від запису.
+Бажаєте видалити незважаючи на це?</translation>
+    </message>
+    <message>
         <source>Are sure you want to delete &apos;%1&apos;?</source>
-        <translation>Дійсно вилучити &quot;%1&quot;?</translation>
-    </message>
-    <message>
-        <location line="+15"/>
+        <translation>Ви впевнені, що хочете видалити &apos;%1&apos;?</translation>
+    </message>
+    <message>
         <source>Could not delete directory.</source>
-        <translation>Неможливо вилучити каталог.</translation>
-    </message>
-    <message>
-        <location line="+407"/>
+        <translation>Не вдалося видалити теку.</translation>
+    </message>
+    <message>
         <source>Recent Places</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/gui/dialogs/qfiledialog_win.cpp" line="+160"/>
+        <translation>Нещодавні місця</translation>
+    </message>
+    <message>
         <source>All Files (*.*)</source>
-        <translation>Всі файли (*.*)</translation>
-    </message>
-    <message>
-        <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-2550"/>
-        <source>Save As</source>
-        <translation>Зберегти, як</translation>
-    </message>
-    <message>
-        <location filename="../src/gui/itemviews/qfileiconprovider.cpp" line="+411"/>
+        <translation>Усі файли (*)</translation>
+    </message>
+    <message>
+        <source>Remove</source>
+        <translation>Видалити</translation>
+    </message>
+    <message>
+        <source>My Computer</source>
+        <translation>Мій комп&apos;ютер</translation>
+    </message>
+    <message>
         <source>Drive</source>
         <translation>Диск</translation>
     </message>
     <message>
-        <location line="+3"/>
-        <location line="+1"/>
         <source>File</source>
         <translation>Файл</translation>
     </message>
     <message>
-        <location line="+29"/>
+        <source>File Folder</source>
+        <comment>Match Windows Explorer</comment>
+        <translation>Тека</translation>
+    </message>
+    <message>
+        <source>Folder</source>
+        <comment>All other platforms</comment>
+        <translation>Тека</translation>
+    </message>
+    <message>
+        <source>Alias</source>
+        <comment>Mac OS X Finder</comment>
+        <translation>Псевдонім</translation>
+    </message>
+    <message>
+        <source>Shortcut</source>
+        <comment>All other platforms</comment>
+        <translation>Скорочення</translation>
+    </message>
+    <message>
         <source>Unknown</source>
         <translation>Невідомо</translation>
     </message>
-    <message>
-        <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-4"/>
-        <source>Find Directory</source>
-        <translation>Знайти каталог</translation>
-    </message>
-    <message>
-        <source>Where:</source>
-        <translation type="obsolete">Де:</translation>
-    </message>
-    <message>
-        <location line="+29"/>
-        <source>Show </source>
-        <translation>Показати </translation>
-    </message>
-    <message>
-        <location filename="../src/gui/dialogs/qfiledialog.ui"/>
-        <location filename="../src/gui/dialogs/qfiledialog_wince.ui"/>
-        <source>Forward</source>
-        <translation>Вперед</translation>
-    </message>
-    <message>
-        <location filename="../src/gui/dialogs/qfiledialog.cpp" line="+1970"/>
-        <source>New Folder</source>
-        <translation>Нова тека</translation>
-    </message>
-    <message>
-        <location line="-1963"/>
-        <source>&amp;New Folder</source>
-        <translation>&amp;Нова тека</translation>
-    </message>
-    <message>
-        <location line="+656"/>
-        <location line="+38"/>
-        <source>&amp;Choose</source>
-        <translation>&amp;Вибрати</translation>
-    </message>
-    <message>
-        <source>Save &amp;as:</source>
-        <translation type="obsolete">Зберегти, &amp;як:</translation>
-    </message>
-    <message>
-        <location filename="../src/gui/dialogs/qsidebar.cpp" line="+418"/>
-        <source>Remove</source>
-        <translation>Вилучити</translation>
-    </message>
-    <message>
-        <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-687"/>
-        <location line="+652"/>
-        <source>File &amp;name:</source>
-        <translation>&amp;Ім&apos;я файлу:</translation>
-    </message>
-    <message>
-        <location filename="../src/gui/dialogs/qfiledialog.ui"/>
-        <location filename="../src/gui/dialogs/qfiledialog_wince.ui"/>
-        <source>Look in:</source>
-        <translation>Пошук в:</translation>
-    </message>
-    <message>
-        <location/>
-        <location filename="../src/gui/dialogs/qfiledialog_wince.ui"/>
-        <source>Create New Folder</source>
-        <translation>Створити нову теку</translation>
-    </message>
 </context>
 <context>
     <name>QFileSystemModel</name>
     <message>
-        <location filename="../src/gui/dialogs/qfilesystemmodel.cpp" line="+828"/>
+        <source>%1 TB</source>
+        <translation>%1 Тб</translation>
+    </message>
+    <message>
+        <source>%1 GB</source>
+        <translation>%1 Гб</translation>
+    </message>
+    <message>
+        <source>%1 MB</source>
+        <translation>%1 Мб</translation>
+    </message>
+    <message>
+        <source>%1 KB</source>
+        <translation>%1 Кб</translation>
+    </message>
+    <message>
+        <source>%1 bytes</source>
+        <translation>%1 байт</translation>
+    </message>
+    <message>
         <source>Invalid filename</source>
         <translation>Неправильне ім&apos;я файлу</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;Неможливо використати ім&apos;я &quot;%1&quot;.&lt;/b&gt;&lt;p&gt;Спробуйте інше ім&apos;я, меншої довжини або без знаків пунктуації.</translation>
-    </message>
-    <message>
-        <location line="+63"/>
+        <translation>&lt;b&gt;Ім&apos;я &quot;%1&quot; не може бути використане.&lt;/b&gt;&lt;p&gt;Спробуйте використати інше ім&apos;я, меншої довжини або без знаків пунктуації.</translation>
+    </message>
+    <message>
         <source>Name</source>
         <translation>Ім&apos;я</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Size</source>
         <translation>Розмір</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Kind</source>
         <comment>Match OS X Finder</comment>
         <translation>Тип</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Type</source>
         <comment>All other platforms</comment>
         <translation>Тип</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Date Modified</source>
         <translation>Дата зміни</translation>
     </message>
     <message>
-        <location filename="../src/gui/dialogs/qfilesystemmodel_p.h" line="+234"/>
         <source>My Computer</source>
         <translation>Мій комп&apos;ютер</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Computer</source>
         <translation>Комп&apos;ютер</translation>
     </message>
     <message>
-        <location filename="../src/gui/dialogs/qfilesystemmodel.cpp" line="-163"/>
-        <source>%1 TB</source>
-        <translation>%1 ТБ</translation>
-    </message>
-    <message>
-        <location line="+2"/>
-        <source>%1 GB</source>
-        <translation>%1 ГБ</translation>
-    </message>
-    <message>
-        <location line="+2"/>
-        <source>%1 MB</source>
-        <translation>%1 МБ</translation>
-    </message>
-    <message>
-        <location line="+2"/>
-        <source>%1 KB</source>
-        <translation>%1 КБ</translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>%1 bytes</source>
-        <translation>%1 байтів</translation>
+        <source>%1 byte(s)</source>
+        <translation>%1 байт</translation>
     </message>
 </context>
 <context>
     <name>QFontDatabase</name>
     <message>
-        <location filename="../src/gui/text/qfontdatabase.cpp" line="+90"/>
-        <location line="+1176"/>
         <source>Normal</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="-1173"/>
-        <location line="+12"/>
-        <location line="+1149"/>
+        <translation>Звичайний</translation>
+    </message>
+    <message>
         <source>Bold</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="-1158"/>
-        <location line="+1160"/>
+        <translation>Жирний</translation>
+    </message>
+    <message>
         <source>Demi Bold</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="-1157"/>
-        <location line="+18"/>
-        <location line="+1135"/>
+        <translation>Напівжирний</translation>
+    </message>
+    <message>
         <source>Black</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="-1145"/>
+        <translation>Чорний</translation>
+    </message>
+    <message>
         <source>Demi</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+6"/>
-        <location line="+1145"/>
+        <translation>Середній</translation>
+    </message>
+    <message>
         <source>Light</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="-1004"/>
-        <location line="+1007"/>
+        <translation>Світлий</translation>
+    </message>
+    <message>
         <source>Italic</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="-1004"/>
-        <location line="+1006"/>
+        <translation>Курсив</translation>
+    </message>
+    <message>
         <source>Oblique</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+705"/>
+        <translation>Нахилений</translation>
+    </message>
+    <message>
         <source>Any</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>Будь-яка</translation>
+    </message>
+    <message>
         <source>Latin</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>Латиниця</translation>
+    </message>
+    <message>
         <source>Greek</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>Грецька</translation>
+    </message>
+    <message>
         <source>Cyrillic</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>Кирилиця</translation>
+    </message>
+    <message>
         <source>Armenian</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>Вірменська</translation>
+    </message>
+    <message>
         <source>Hebrew</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>Іврит</translation>
+    </message>
+    <message>
         <source>Arabic</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>Арабська</translation>
+    </message>
+    <message>
         <source>Syriac</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>Сирійська</translation>
+    </message>
+    <message>
         <source>Thaana</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>Тана</translation>
+    </message>
+    <message>
         <source>Devanagari</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>Деванагарі</translation>
+    </message>
+    <message>
         <source>Bengali</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>Бенгальська</translation>
+    </message>
+    <message>
         <source>Gurmukhi</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>Гурмукхі</translation>
+    </message>
+    <message>
         <source>Gujarati</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>Гуджараті</translation>
+    </message>
+    <message>
         <source>Oriya</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>Орія</translation>
+    </message>
+    <message>
         <source>Tamil</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>Тамільська</translation>
+    </message>
+    <message>
         <source>Telugu</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>Телугу</translation>
+    </message>
+    <message>
         <source>Kannada</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>Каннада</translation>
+    </message>
+    <message>
         <source>Malayalam</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>Малаялам</translation>
+    </message>
+    <message>
         <source>Sinhala</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>Сингальська</translation>
+    </message>
+    <message>
         <source>Thai</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>Тайська</translation>
+    </message>
+    <message>
         <source>Lao</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>Лаоська</translation>
+    </message>
+    <message>
         <source>Tibetan</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>Тибетська</translation>
+    </message>
+    <message>
         <source>Myanmar</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>М&apos;янма</translation>
+    </message>
+    <message>
         <source>Georgian</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>Грузинська</translation>
+    </message>
+    <message>
         <source>Khmer</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>Кхмерська</translation>
+    </message>
+    <message>
         <source>Simplified Chinese</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>Китайська спрощена</translation>
+    </message>
+    <message>
         <source>Traditional Chinese</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>Китайська традиційна</translation>
+    </message>
+    <message>
         <source>Japanese</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>Японська</translation>
+    </message>
+    <message>
         <source>Korean</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>Корейська</translation>
+    </message>
+    <message>
         <source>Vietnamese</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>В&apos;єтнамська</translation>
+    </message>
+    <message>
         <source>Symbol</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>Символьна</translation>
+    </message>
+    <message>
         <source>Ogham</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>Огам</translation>
+    </message>
+    <message>
         <source>Runic</source>
-        <translation type="unfinished"></translation>
+        <translation>Рунічна</translation>
+    </message>
+    <message>
+        <source>N&apos;Ko</source>
+        <translation>Нко</translation>
     </message>
 </context>
 <context>
     <name>QFontDialog</name>
     <message>
-        <location filename="../src/gui/dialogs/qfontdialog.cpp" line="+772"/>
+        <source>Select Font</source>
+        <translation>Виберіть шрифт</translation>
+    </message>
+    <message>
         <source>&amp;Font</source>
         <translation>&amp;Шрифт</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Font st&amp;yle</source>
-        <translation>Ст&amp;иль шрифту</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>&amp;Стиль шрифту</translation>
+    </message>
+    <message>
         <source>&amp;Size</source>
         <translation>&amp;Розмір</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Effects</source>
         <translation>Ефекти</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Stri&amp;keout</source>
-        <translation>Пере&amp;креслити</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>П&amp;ерекреслений</translation>
+    </message>
+    <message>
         <source>&amp;Underline</source>
-        <translation>&amp;Підкреслити</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>П&amp;ідкреслений</translation>
+    </message>
+    <message>
         <source>Sample</source>
         <translation>Зразок</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Wr&amp;iting System</source>
-        <translation>Система з&amp;апису</translation>
-    </message>
-    <message>
-        <location line="-604"/>
-        <location line="+247"/>
-        <source>Select Font</source>
-        <translation>Виберіть шрифт</translation>
+        <translation>Система &amp;писемності</translation>
     </message>
 </context>
 <context>
     <name>QFtp</name>
     <message>
-        <location filename="../src/network/access/qftp.cpp" line="+826"/>
-        <location filename="../src/qt3support/network/q3ftp.cpp" line="+683"/>
         <source>Not connected</source>
-        <translation>Не з&apos;єднано</translation>
-    </message>
-    <message>
-        <location line="+65"/>
-        <location filename="../src/qt3support/network/q3ftp.cpp" line="+65"/>
+        <translation>Не під&apos;єднано</translation>
+    </message>
+    <message>
         <source>Host %1 not found</source>
         <translation>Вузол %1 не знайдено</translation>
     </message>
     <message>
-        <location line="+4"/>
-        <location filename="../src/qt3support/network/q3ftp.cpp" line="+4"/>
         <source>Connection refused to host %1</source>
-        <translation>Відмовлено в з&apos;єднанні до вузла %1</translation>
-    </message>
-    <message>
-        <location line="+4"/>
+        <translation>Відмова у з’єднанні з вузлом %1</translation>
+    </message>
+    <message>
         <source>Connection timed out to host %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+104"/>
-        <location filename="../src/qt3support/network/q3ftp.cpp" line="+102"/>
-        <location line="+1451"/>
+        <translation>Час на з’єднання з вузлом %1 вичерпано</translation>
+    </message>
+    <message>
         <source>Connected to host %1</source>
-        <translation>З&apos;єднано з вузлом %1</translation>
-    </message>
-    <message>
-        <location line="+219"/>
-        <location filename="../src/qt3support/network/q3ftp.cpp" line="-1290"/>
+        <translation>З’єднано з вузлом %1</translation>
+    </message>
+    <message>
         <source>Connection refused for data connection</source>
-        <translation>Відмовлено в з&apos;єднанні для каналу даних</translation>
-    </message>
-    <message>
-        <location line="+178"/>
-        <location line="+29"/>
-        <location filename="../src/qt3support/network/q3ftp.cpp" line="+195"/>
-        <location line="+728"/>
+        <translation>Відмова у з’єднанні для передачі даних</translation>
+    </message>
+    <message>
         <source>Unknown error</source>
         <translation>Невідома помилка</translation>
     </message>
     <message>
-        <location line="+889"/>
-        <location filename="../src/qt3support/network/q3ftp.cpp" line="+77"/>
         <source>Connecting to host failed:
 %1</source>
-        <translation>Помилка з&apos;єднання до вузла:
+        <translation>Відмова у з’єднанні з вузлом:
 %1</translation>
     </message>
     <message>
-        <location line="+4"/>
-        <location filename="../src/qt3support/network/q3ftp.cpp" line="+3"/>
         <source>Login failed:
 %1</source>
-        <translation>Помилка входження:
+        <translation>Збій входу:
 %1</translation>
     </message>
     <message>
-        <location line="+4"/>
-        <location filename="../src/qt3support/network/q3ftp.cpp" line="+3"/>
         <source>Listing directory failed:
 %1</source>
-        <translation>Помилка отримання списку каталогів:%1</translation>
-    </message>
-    <message>
-        <location line="+4"/>
-        <location filename="../src/qt3support/network/q3ftp.cpp" line="+3"/>
+        <translation>Збій перегляду теки:
+%1</translation>
+    </message>
+    <message>
         <source>Changing directory failed:
 %1</source>
-        <translation>Помилка переходу в каталог:
+        <translation>Збій зміни теки:
 %1</translation>
     </message>
     <message>
-        <location line="+4"/>
-        <location filename="../src/qt3support/network/q3ftp.cpp" line="+3"/>
         <source>Downloading file failed:
 %1</source>
-        <translation>Помилка звантаження файлу:
+        <translation>Збій звантаження файлу:
 %1</translation>
     </message>
     <message>
-        <location line="+4"/>
-        <location filename="../src/qt3support/network/q3ftp.cpp" line="+3"/>
         <source>Uploading file failed:
 %1</source>
-        <translation>Помилка відвантаження файлу:
+        <translation>Збій вивантаження файлу:
 %1</translation>
     </message>
     <message>
-        <location line="+4"/>
-        <location filename="../src/qt3support/network/q3ftp.cpp" line="+3"/>
         <source>Removing file failed:
 %1</source>
-        <translation>Помилка вилучення файлу:%1</translation>
-    </message>
-    <message>
-        <location line="+4"/>
-        <location filename="../src/qt3support/network/q3ftp.cpp" line="+3"/>
+        <translation>Збій видалення файлу:
+%1</translation>
+    </message>
+    <message>
         <source>Creating directory failed:
 %1</source>
-        <translation>Помилка створення каталогу:%1</translation>
-    </message>
-    <message>
-        <location line="+4"/>
-        <location filename="../src/qt3support/network/q3ftp.cpp" line="+3"/>
+        <translation>Збій створення теки:
+%1</translation>
+    </message>
+    <message>
         <source>Removing directory failed:
 %1</source>
-        <translation>Помилка вилучення каталогу:
+        <translation>Збій видалення теки:
 %1</translation>
     </message>
     <message>
-        <location line="+28"/>
-        <location filename="../src/qt3support/network/q3ftp.cpp" line="+25"/>
-        <location line="+250"/>
         <source>Connection closed</source>
         <translation>З&apos;єднання закрито</translation>
     </message>
     <message>
-        <location filename="../src/qt3support/network/q3ftp.cpp" line="-11"/>
         <source>Host %1 found</source>
-        <translation>Знайдено вузол %1</translation>
-    </message>
-    <message>
-        <location line="+4"/>
+        <translation>Вузол %1 не знайдено</translation>
+    </message>
+    <message>
         <source>Connection to %1 closed</source>
         <translation>З&apos;єднання з %1 закрито</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Host found</source>
-        <translation>Знайдено вузол</translation>
-    </message>
-    <message>
-        <location line="+2"/>
+        <translation>Вузол не знайдено</translation>
+    </message>
+    <message>
         <source>Connected to host</source>
-        <translation>З&apos;єднано з вузлом</translation>
+        <translation>З’єднано з вузлом</translation>
     </message>
 </context>
 <context>
     <name>QHostInfo</name>
     <message>
-        <location filename="../src/network/kernel/qhostinfo_p.h" line="+183"/>
+        <source>No host name given</source>
+        <translation>Ім&apos;я вузла не задано</translation>
+    </message>
+    <message>
         <source>Unknown error</source>
         <translation>Невідома помилка</translation>
     </message>
@@ -2174,29 +2993,22 @@
 <context>
     <name>QHostInfoAgent</name>
     <message>
-        <location filename="../src/network/kernel/qhostinfo_unix.cpp" line="+178"/>
-        <location line="+9"/>
-        <location line="+64"/>
-        <location line="+31"/>
-        <location filename="../src/network/kernel/qhostinfo_win.cpp" line="+180"/>
-        <location line="+9"/>
-        <location line="+40"/>
-        <location line="+27"/>
+        <source>No host name given</source>
+        <translation>Ім&apos;я вузла не задано</translation>
+    </message>
+    <message>
+        <source>Invalid hostname</source>
+        <translation>Неправильне ім&apos;я вузла</translation>
+    </message>
+    <message>
+        <source>Unknown address type</source>
+        <translation>Невідомий тип адреси</translation>
+    </message>
+    <message>
         <source>Host not found</source>
         <translation>Вузол не знайдено</translation>
     </message>
     <message>
-        <location line="-44"/>
-        <location line="+39"/>
-        <location filename="../src/network/kernel/qhostinfo_win.cpp" line="-34"/>
-        <location line="+29"/>
-        <source>Unknown address type</source>
-        <translation>Невідомий тип адреси</translation>
-    </message>
-    <message>
-        <location line="+8"/>
-        <location filename="../src/network/kernel/qhostinfo_win.cpp" line="-19"/>
-        <location line="+27"/>
         <source>Unknown error</source>
         <translation>Невідома помилка</translation>
     </message>
@@ -2204,226 +3016,168 @@
 <context>
     <name>QHttp</name>
     <message>
-        <location filename="../src/network/access/qhttp.cpp" line="+365"/>
         <source>HTTPS connection requested but SSL support not compiled in</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1209"/>
-        <location line="+820"/>
-        <location filename="../src/qt3support/network/q3http.cpp" line="+1160"/>
-        <location line="+567"/>
+        <translation>Запитане з’єднання HTTPS, але підтримка SSL не вкомпільована</translation>
+    </message>
+    <message>
         <source>Unknown error</source>
         <translation>Невідома помилка</translation>
     </message>
     <message>
-        <location line="-568"/>
-        <location filename="../src/qt3support/network/q3http.cpp" line="-370"/>
         <source>Request aborted</source>
         <translation>Запит перервано</translation>
     </message>
     <message>
-        <location line="+579"/>
-        <location filename="../src/qt3support/network/q3http.cpp" line="+381"/>
         <source>No server set to connect to</source>
-        <translation>Не вказано сервер для з&apos;єднання</translation>
-    </message>
-    <message>
-        <location line="+164"/>
-        <location filename="../src/qt3support/network/q3http.cpp" line="+56"/>
+        <translation>Не встановлено сервер для з’єднання</translation>
+    </message>
+    <message>
         <source>Wrong content length</source>
         <translation>Неправильна довжина вмісту</translation>
     </message>
     <message>
-        <location line="+4"/>
-        <location filename="../src/qt3support/network/q3http.cpp" line="+4"/>
         <source>Server closed connection unexpectedly</source>
-        <translation>Сервер несподівано закрив з&apos;єднання</translation>
-    </message>
-    <message>
-        <location line="+179"/>
-        <source>Unknown authentication method</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+183"/>
-        <source>Error writing response to device</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/network/access/qhttpnetworkconnection.cpp" line="+876"/>
-        <location filename="../src/qt3support/network/q3http.cpp" line="+38"/>
-        <source>Connection refused</source>
-        <translation>Відмовлено у зв&apos;язку</translation>
-    </message>
-    <message>
-        <location filename="../src/network/access/qhttp.cpp" line="-304"/>
-        <location filename="../src/network/access/qhttpnetworkconnection.cpp" line="-4"/>
-        <location filename="../src/qt3support/network/q3http.cpp" line="+3"/>
+        <translation>Сервер несподівано закрив з’єднання</translation>
+    </message>
+    <message>
+        <source>Connection refused (or timed out)</source>
+        <translation>У з’єднанні відмовлено (або час очікування вичерпано)</translation>
+    </message>
+    <message>
         <source>Host %1 not found</source>
         <translation>Вузол %1 не знайдено</translation>
     </message>
     <message>
-        <location line="+20"/>
-        <location filename="../src/network/access/qhttpnetworkconnection.cpp" line="+10"/>
-        <location line="+19"/>
-        <location filename="../src/qt3support/network/q3http.cpp" line="+3"/>
         <source>HTTP request failed</source>
-        <translation>Помилка запиту HTTP</translation>
-    </message>
-    <message>
-        <location line="+73"/>
-        <location filename="../src/qt3support/network/q3http.cpp" line="+69"/>
+        <translation>Збій запиту HTTP</translation>
+    </message>
+    <message>
         <source>Invalid HTTP response header</source>
         <translation>Неправильний заголовок відповіді HTTP</translation>
     </message>
     <message>
-        <location line="+125"/>
-        <location line="+48"/>
-        <location filename="../src/qt3support/network/q3http.cpp" line="+40"/>
-        <location line="+47"/>
+        <source>Unknown authentication method</source>
+        <translation>Невідомий метод авторизації</translation>
+    </message>
+    <message>
+        <source>Proxy authentication required</source>
+        <translation>Необхідна авторизація на проксі-сервері</translation>
+    </message>
+    <message>
+        <source>Authentication required</source>
+        <translation>Необхідна авторизація</translation>
+    </message>
+    <message>
         <source>Invalid HTTP chunked body</source>
-        <translation>Неправильно розділене тіло HTTP</translation>
-    </message>
-    <message>
-        <location filename="../src/qt3support/network/q3http.cpp" line="+294"/>
-        <source>Host %1 found</source>
-        <translation>Знайдено вузол %1</translation>
-    </message>
-    <message>
-        <location line="+3"/>
-        <source>Connected to host %1</source>
-        <translation>З&apos;єднано з вузлом %1</translation>
-    </message>
-    <message>
-        <location line="+3"/>
-        <source>Connection to %1 closed</source>
-        <translation>З&apos;єднання з %1 закрито</translation>
-    </message>
-    <message>
-        <location line="+8"/>
-        <source>Host found</source>
-        <translation>Знайдено вузол</translation>
-    </message>
-    <message>
-        <location line="+3"/>
-        <source>Connected to host</source>
-        <translation>З&apos;єднано з вузлом</translation>
-    </message>
-    <message>
-        <location filename="../src/network/access/qhttpnetworkconnection.cpp" line="-22"/>
-        <location filename="../src/qt3support/network/q3http.cpp" line="+3"/>
+        <translation>Неправильно фрагментовані дані HTTP</translation>
+    </message>
+    <message>
+        <source>Error writing response to device</source>
+        <translation>Помилка запису відповіді до пристрою</translation>
+    </message>
+    <message>
+        <source>Connection refused</source>
+        <translation>У з&apos;єднанні відмовлено</translation>
+    </message>
+    <message>
         <source>Connection closed</source>
         <translation>З&apos;єднання закрито</translation>
     </message>
     <message>
-        <location filename="../src/network/access/qhttp.cpp" line="-135"/>
-        <source>Proxy authentication required</source>
-        <translation>Проксі потребує автентифікації</translation>
-    </message>
-    <message>
-        <location line="+4"/>
-        <source>Authentication required</source>
-        <translation>Автентифікація обов&apos;язкова</translation>
-    </message>
-    <message>
-        <location line="-138"/>
-        <source>Connection refused (or timed out)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/network/access/qhttpnetworkconnection.cpp" line="+6"/>
         <source>Proxy requires authentication</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>Необхідна авторизація на проксі-сервері</translation>
+    </message>
+    <message>
         <source>Host requires authentication</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>Необхідна авторизація на вузлі</translation>
+    </message>
+    <message>
         <source>Data corrupted</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>Дані пошкоджено</translation>
+    </message>
+    <message>
         <source>Unknown protocol specified</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>Вказано невідомий протокол</translation>
+    </message>
+    <message>
         <source>SSL handshake failed</source>
-        <translation type="unfinished"></translation>
+        <translation>Збій рукостискання SSL</translation>
+    </message>
+    <message>
+        <source>Host %1 found</source>
+        <translation>Вузол %1 не знайдено</translation>
+    </message>
+    <message>
+        <source>Connected to host %1</source>
+        <translation>З’єднано з вузлом %1</translation>
+    </message>
+    <message>
+        <source>Connection to %1 closed</source>
+        <translation>З&apos;єднання з %1 закрито</translation>
+    </message>
+    <message>
+        <source>Host found</source>
+        <translation>Вузол не знайдено</translation>
+    </message>
+    <message>
+        <source>Connected to host</source>
+        <translation>З’єднано з вузлом</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 type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+25"/>
+        <translation>Не отримано HTTP-відповідь від проксі-сервера</translation>
+    </message>
+    <message>
         <source>Error parsing authentication request from proxy</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+31"/>
+        <translation>Помилка розбору запиту авторизації від проксі-сервера</translation>
+    </message>
+    <message>
         <source>Authentication required</source>
-        <translation>Автентифікація обов&apos;язкова</translation>
-    </message>
-    <message>
-        <location line="+27"/>
+        <translation>Необхідна авторизація</translation>
+    </message>
+    <message>
         <source>Proxy denied connection</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+10"/>
+        <translation>Проксі-сервер відмовив у з’єднанні</translation>
+    </message>
+    <message>
         <source>Error communicating with HTTP proxy</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+23"/>
+        <translation>Помилка обміну даними з проксі-сервером HTTP</translation>
+    </message>
+    <message>
         <source>Proxy server not found</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+2"/>
+        <translation>Не знайдено проксі-сервер</translation>
+    </message>
+    <message>
         <source>Proxy connection refused</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+2"/>
+        <translation>Проксі-сервер відмовив у з’єднанні</translation>
+    </message>
+    <message>
         <source>Proxy server connection timed out</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+2"/>
+        <translation>Час на з’єднання з проксі-сервером вичерпано</translation>
+    </message>
+    <message>
         <source>Proxy connection closed prematurely</source>
-        <translation type="unfinished"></translation>
+        <translation>З’єднання з проксі-сервером було несподівано закрите</translation>
     </message>
 </context>
 <context>
     <name>QIBaseDriver</name>
     <message>
-        <location filename="../src/sql/drivers/ibase/qsql_ibase.cpp" line="+1428"/>
         <source>Error opening database</source>
-        <translation>Неможливо відкрити базу даних</translation>
-    </message>
-    <message>
-        <location line="+54"/>
+        <translation>Помилка відкриття бази даних</translation>
+    </message>
+    <message>
         <source>Could not start transaction</source>
-        <translation>Неможливо почати транзакцію</translation>
-    </message>
-    <message>
-        <location line="+13"/>
+        <translation>Не вдалося почати транзакцію</translation>
+    </message>
+    <message>
         <source>Unable to commit transaction</source>
         <translation>Неможливо завершити транзакцію</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>Unable to rollback transaction</source>
         <translation>Неможливо відкотити транзакцію</translation>
     </message>
@@ -2431,117 +3185,93 @@
 <context>
     <name>QIBaseResult</name>
     <message>
-        <location line="-1097"/>
         <source>Unable to create BLOB</source>
         <translation>Неможливо створити BLOB</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Unable to write BLOB</source>
         <translation>Неможливо записати BLOB</translation>
     </message>
     <message>
-        <location line="+14"/>
         <source>Unable to open BLOB</source>
         <translation>Неможливо відкрити BLOB</translation>
     </message>
     <message>
-        <location line="+16"/>
         <source>Unable to read BLOB</source>
         <translation>Неможливо прочитати BLOB</translation>
     </message>
     <message>
-        <location line="+125"/>
-        <location line="+189"/>
         <source>Could not find array</source>
-        <translation>Неможливо знайти масив</translation>
-    </message>
-    <message>
-        <location line="-157"/>
+        <translation>Не вдалося знайти масив</translation>
+    </message>
+    <message>
         <source>Could not get array data</source>
-        <translation>Неможливо отримати дані масиву</translation>
-    </message>
-    <message>
-        <location line="+212"/>
+        <translation>Не вдалося отримати дані масиву</translation>
+    </message>
+    <message>
         <source>Could not get query info</source>
-        <translation>Неможливо отримати дані запиту</translation>
-    </message>
-    <message>
-        <location line="+20"/>
+        <translation>Не вдалося отримати інформацію про запит</translation>
+    </message>
+    <message>
         <source>Could not start transaction</source>
-        <translation>Неможливо почати транзакцію</translation>
-    </message>
-    <message>
-        <location line="+19"/>
+        <translation>Не вдалося почати транзакцію</translation>
+    </message>
+    <message>
         <source>Unable to commit transaction</source>
         <translation>Неможливо завершити транзакцію</translation>
     </message>
     <message>
-        <location line="+33"/>
         <source>Could not allocate statement</source>
-        <translation>Неможливо розмістити оператор</translation>
-    </message>
-    <message>
-        <location line="+5"/>
+        <translation>Не вдалося виділити вираз</translation>
+    </message>
+    <message>
         <source>Could not prepare statement</source>
-        <translation>Неможливо підготувати оператор</translation>
-    </message>
-    <message>
-        <location line="+5"/>
-        <location line="+7"/>
+        <translation>Не вдалося підготувати вираз</translation>
+    </message>
+    <message>
         <source>Could not describe input statement</source>
-        <translation>Неможливо описати вхідний оператор</translation>
-    </message>
-    <message>
-        <location line="+10"/>
+        <translation>Не вдалося описати вхідний вираз</translation>
+    </message>
+    <message>
         <source>Could not describe statement</source>
-        <translation>Неможливо описати оператор</translation>
-    </message>
-    <message>
-        <location line="+115"/>
+        <translation>Не вдалося описати вираз</translation>
+    </message>
+    <message>
         <source>Unable to close statement</source>
-        <translation>Неможливо закрити оператор</translation>
-    </message>
-    <message>
-        <location line="+8"/>
+        <translation>Неможливо закрити вираз</translation>
+    </message>
+    <message>
         <source>Unable to execute query</source>
         <translation>Неможливо виконати запит</translation>
     </message>
     <message>
-        <location line="+46"/>
         <source>Could not fetch next item</source>
-        <translation>Неможливо вибрати наступний елемент</translation>
-    </message>
-    <message>
-        <location line="+160"/>
+        <translation>Не вдалося отримати наступний елемент</translation>
+    </message>
+    <message>
         <source>Could not get statement info</source>
-        <translation>Неможливо отримати дані оператора</translation>
+        <translation>Не вдалося отримати інформацію про вираз</translation>
     </message>
 </context>
 <context>
     <name>QIODevice</name>
     <message>
-        <location filename="../src/corelib/global/qglobal.cpp" line="+1869"/>
         <source>Permission denied</source>
-        <translation>Відмовлено у доступі</translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>Доступ заборонено</translation>
+    </message>
+    <message>
         <source>Too many open files</source>
         <translation>Забагато відкритих файлів</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>No such file or directory</source>
-        <translation>Немає такого файлу або каталогу</translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>Файл чи тека не існують</translation>
+    </message>
+    <message>
         <source>No space left on device</source>
-        <translation>На пристрої не лишилось місця</translation>
-    </message>
-    <message>
-        <location filename="../src/corelib/io/qiodevice.cpp" line="+1536"/>
+        <translation>На пристрої немає вільного місця</translation>
+    </message>
+    <message>
         <source>Unknown error</source>
         <translation>Невідома помилка</translation>
     </message>
@@ -2549,271 +3279,196 @@
 <context>
     <name>QInputContext</name>
     <message>
-        <location filename="../src/gui/inputmethod/qinputcontextfactory.cpp" line="+242"/>
         <source>XIM</source>
         <translation>XIM</translation>
     </message>
     <message>
-        <location line="+23"/>
+        <source>FEP</source>
+        <translation>FEP</translation>
+    </message>
+    <message>
         <source>XIM input method</source>
         <translation>Метод введення XIM</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Windows input method</source>
         <translation>Метод введення Windows</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Mac OS X input method</source>
         <translation>Метод введення Mac OS X</translation>
     </message>
+    <message>
+        <source>S60 FEP input method</source>
+        <translation>Метод введення S60 FEP</translation>
+    </message>
 </context>
 <context>
     <name>QInputDialog</name>
     <message>
-        <location filename="../src/gui/dialogs/qinputdialog.cpp" line="+223"/>
         <source>Enter a value:</source>
-        <translation type="unfinished"></translation>
+        <translation>Введіть значення:</translation>
     </message>
 </context>
 <context>
     <name>QLibrary</name>
     <message>
-        <source>QLibrary::load_sys: Cannot load %1 (%2)</source>
-        <translation type="obsolete">QLibrary::load_sys: неможливо завантажити %1 (%2)</translation>
-    </message>
-    <message>
-        <source>QLibrary::unload_sys: Cannot unload %1 (%2)</source>
-        <translation type="obsolete">QLibrary::unload_sys: неможливо вивантажити %1 (%2)</translation>
-    </message>
-    <message>
-        <source>QLibrary::resolve_sys: Symbol &quot;%1&quot; undefined in %2 (%3)</source>
-        <translation type="obsolete">QLibrary::resolve_sys: символ &quot;%1&quot; не є визначеним в %2 (%3)</translation>
-    </message>
-    <message>
-        <location filename="../src/corelib/plugin/qlibrary.cpp" line="+378"/>
-        <source>Could not mmap &apos;%1&apos;: %2</source>
-        <translation>Помилка виконання mmap &quot;%1&quot;: %2</translation>
-    </message>
-    <message>
-        <location line="+22"/>
         <source>Plugin verification data mismatch in &apos;%1&apos;</source>
-        <translation>Дані перевірки додатку не збігаються в &quot;%1&quot;</translation>
-    </message>
-    <message>
-        <location line="+6"/>
-        <source>Could not unmap &apos;%1&apos;: %2</source>
-        <translation>Помилка виконання unmap &quot;%1&quot;: %2</translation>
-    </message>
-    <message>
-        <location line="+302"/>
+        <translation>Дані верифікації додатку не збігаються для ’%1’</translation>
+    </message>
+    <message>
+        <source>The shared library was not found.</source>
+        <translation>Динамічна бібліотека не знайдена.</translation>
+    </message>
+    <message>
+        <source>The file &apos;%1&apos; is not a valid Qt plugin.</source>
+        <translation>Файл &apos;%1&apos; не є правильний додатком Qt.</translation>
+    </message>
+    <message>
         <source>The plugin &apos;%1&apos; uses incompatible Qt library. (%2.%3.%4) [%5]</source>
-        <translation>Додаток &quot;%1&quot; використовує несумісну бібліотеку Qt. (%2.%3.%4) [%5]</translation>
-    </message>
-    <message>
-        <location line="+20"/>
+        <translation>Додаток &apos;%1&apos; використовує несумісну версію бібліотеки Qt. (%2.%3.%4) [%5]</translation>
+    </message>
+    <message>
         <source>The plugin &apos;%1&apos; uses incompatible Qt library. Expected build key &quot;%2&quot;, got &quot;%3&quot;</source>
-        <translation>Додаток &quot;%1&quot; використовує несумісну бібліотеку Qt. Очікувався ключ побудови &quot;%2&quot;, отримано &quot;%3&quot;</translation>
-    </message>
-    <message>
-        <location line="+340"/>
+        <translation>Додаток &apos;%1&apos; використовує несумісну версію бібліотеки Qt. Очікувався ключ збірки &quot;%2&quot;, отримано &quot;%3&quot;</translation>
+    </message>
+    <message>
+        <source>The plugin &apos;%1&apos; uses incompatible Qt library. (Cannot mix debug and release libraries.)</source>
+        <translation>Додаток &apos;%1&apos; використовує несумісну версію бібліотеки Qt. (Неможливо змішувати зневаджувальні та релізні бібліотеки.)</translation>
+    </message>
+    <message>
         <source>Unknown error</source>
         <translation>Невідома помилка</translation>
     </message>
     <message>
-        <location line="-377"/>
-        <location filename="../src/corelib/plugin/qpluginloader.cpp" line="+280"/>
-        <source>The shared library was not found.</source>
-        <translation>Спільну бібліотеку не знайдено.</translation>
-    </message>
-    <message>
-        <location line="+2"/>
-        <source>The file &apos;%1&apos; is not a valid Qt plugin.</source>
-        <translation>Файл &quot;%1&quot; не є правильним додатком Qt.</translation>
-    </message>
-    <message>
-        <location line="+43"/>
-        <source>The plugin &apos;%1&apos; uses incompatible Qt library. (Cannot mix debug and release libraries.)</source>
-        <translation>Додаток &quot;%1&quot; використовує несумісну бібліотеку Qt. (Не дозволяється змішувати версію бібліотеки для зневадження і версію випуску.)</translation>
-    </message>
-    <message>
-        <location filename="../src/corelib/plugin/qlibrary_unix.cpp" line="+209"/>
-        <location filename="../src/corelib/plugin/qlibrary_win.cpp" line="+99"/>
         <source>Cannot load library %1: %2</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+16"/>
-        <location filename="../src/corelib/plugin/qlibrary_win.cpp" line="+26"/>
+        <translation>Неможливо завантажити бібліотеку %1: %2</translation>
+    </message>
+    <message>
         <source>Cannot unload library %1: %2</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+31"/>
-        <location filename="../src/corelib/plugin/qlibrary_win.cpp" line="+15"/>
+        <translation>Неможливо вивантажити бібліотеку %1: %2</translation>
+    </message>
+    <message>
         <source>Cannot resolve symbol &quot;%1&quot; in %2: %3</source>
-        <translation type="unfinished"></translation>
+        <translation>Неможливо розв’язати символ &quot;%1&quot; в %2: %3</translation>
     </message>
 </context>
 <context>
     <name>QLineEdit</name>
     <message>
-        <location filename="../src/gui/widgets/qlineedit.cpp" line="+2680"/>
         <source>&amp;Undo</source>
         <translation>&amp;Повернути</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>&amp;Redo</source>
         <translation>П&amp;овторити</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Cu&amp;t</source>
         <translation>Ви&amp;різати</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>&amp;Copy</source>
         <translation>&amp;Копіювати</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>&amp;Paste</source>
         <translation>&amp;Вставити</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Delete</source>
-        <translation>Вилучити</translation>
-    </message>
-    <message>
-        <location line="+6"/>
+        <translation>Видалити</translation>
+    </message>
+    <message>
         <source>Select All</source>
-        <translation>Вибрати все</translation>
+        <translation>Виділити все</translation>
     </message>
 </context>
 <context>
     <name>QLocalServer</name>
     <message>
-        <location filename="../src/network/socket/qlocalserver.cpp" line="+226"/>
-        <location filename="../src/network/socket/qlocalserver_unix.cpp" line="+231"/>
         <source>%1: Name error</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/network/socket/qlocalserver_unix.cpp" line="-8"/>
+        <translation>%1: Помилка імені</translation>
+    </message>
+    <message>
         <source>%1: Permission denied</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+12"/>
+        <translation>%1: Доступ заборонено</translation>
+    </message>
+    <message>
         <source>%1: Address in use</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+5"/>
-        <location filename="../src/network/socket/qlocalserver_win.cpp" line="+158"/>
+        <translation>%1: Адреса використовується</translation>
+    </message>
+    <message>
         <source>%1: Unknown error %2</source>
-        <translation type="unfinished"></translation>
+        <translation>%1: Невідома помилка %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="+134"/>
         <source>%1: Connection refused</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+3"/>
-        <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+3"/>
+        <translation>%1: У з&apos;єднанні відмовлено</translation>
+    </message>
+    <message>
         <source>%1: Remote closed</source>
-        <translation type="unfinished"></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="+43"/>
+        <translation>%1: Віддалений кінець закрито</translation>
+    </message>
+    <message>
         <source>%1: Invalid name</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+3"/>
-        <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+3"/>
+        <translation>%1: Неправильне ім&apos;я</translation>
+    </message>
+    <message>
         <source>%1: Socket access error</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+3"/>
-        <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+3"/>
+        <translation>%1: Помилка доступу до сокета</translation>
+    </message>
+    <message>
         <source>%1: Socket resource error</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+3"/>
-        <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+3"/>
+        <translation>%1: Помилка ресурсу сокета</translation>
+    </message>
+    <message>
         <source>%1: Socket operation timed out</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+3"/>
-        <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+3"/>
+        <translation>%1: Час на операцію з сокетом вичерпано</translation>
+    </message>
+    <message>
         <source>%1: Datagram too large</source>
-        <translation type="unfinished"></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="-48"/>
+        <translation>%1: Завелика датаграма</translation>
+    </message>
+    <message>
         <source>%1: Connection error</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+3"/>
-        <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+3"/>
+        <translation>%1: Помилка з&apos;єднання</translation>
+    </message>
+    <message>
         <source>%1: The socket operation is not supported</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+4"/>
+        <translation>%1: Непідтримувана для сокета операція</translation>
+    </message>
+    <message>
         <source>%1: Unknown error</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+4"/>
-        <location filename="../src/network/socket/qlocalsocket_win.cpp" line="+10"/>
+        <translation>%1: Невідома помилка</translation>
+    </message>
+    <message>
         <source>%1: Unknown error %2</source>
-        <translation type="unfinished"></translation>
+        <translation>%1: Невідома помилка %2</translation>
     </message>
 </context>
 <context>
     <name>QMYSQLDriver</name>
     <message>
-        <location filename="../src/sql/drivers/mysql/qsql_mysql.cpp" line="+1231"/>
         <source>Unable to open database &apos;</source>
-        <translation>Неможливо відкрити базу даних</translation>
-    </message>
-    <message>
-        <location line="+7"/>
+        <translation>Неможливо відкрити базу даних &apos;</translation>
+    </message>
+    <message>
         <source>Unable to connect</source>
-        <translation>Неможливо з&apos;єднатися</translation>
-    </message>
-    <message>
-        <location line="+127"/>
+        <translation>Неможливо з&apos;єднатись</translation>
+    </message>
+    <message>
         <source>Unable to begin transaction</source>
         <translation>Неможливо почати транзакцію</translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>Unable to commit transaction</source>
         <translation>Неможливо завершити транзакцію</translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>Unable to rollback transaction</source>
         <translation>Неможливо відкотити транзакцію</translation>
     </message>
@@ -2821,182 +3476,143 @@
 <context>
     <name>QMYSQLResult</name>
     <message>
-        <location line="-922"/>
         <source>Unable to fetch data</source>
-        <translation>Неможливо вибрати дані</translation>
-    </message>
-    <message>
-        <location line="+176"/>
+        <translation>Неможливо отримати дані</translation>
+    </message>
+    <message>
         <source>Unable to execute query</source>
         <translation>Неможливо виконати запит</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Unable to store result</source>
-        <translation>Неможливо записати результат</translation>
-    </message>
-    <message>
-        <location line="+190"/>
-        <location line="+8"/>
+        <translation>Неможливо зберегти результат</translation>
+    </message>
+    <message>
+        <source>Unable to execute next query</source>
+        <translation>Неможливо виконати наступний запит</translation>
+    </message>
+    <message>
+        <source>Unable to store next result</source>
+        <translation>Неможливо зберегти наступний результат</translation>
+    </message>
+    <message>
         <source>Unable to prepare statement</source>
-        <translation>Неможливо підготувати оператор</translation>
-    </message>
-    <message>
-        <location line="+34"/>
+        <translation>Неможливо підготувати вираз</translation>
+    </message>
+    <message>
         <source>Unable to reset statement</source>
-        <translation>Неможливо скинути оператор</translation>
-    </message>
-    <message>
-        <location line="+87"/>
+        <translation>Неможливо скинути вираз</translation>
+    </message>
+    <message>
         <source>Unable to bind value</source>
         <translation>Неможливо прив&apos;язати значення</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>Unable to execute statement</source>
-        <translation>Неможливо виконати оператор</translation>
-    </message>
-    <message>
-        <location line="+14"/>
-        <location line="+21"/>
+        <translation>Неможливо виконати вираз</translation>
+    </message>
+    <message>
         <source>Unable to bind outvalues</source>
         <translation>Неможливо прив&apos;язати вихідні значення</translation>
     </message>
     <message>
-        <location line="-12"/>
         <source>Unable to store statement results</source>
-        <translation>Неможливо зберегти результати оператора</translation>
-    </message>
-    <message>
-        <location line="-253"/>
-        <source>Unable to execute next query</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+10"/>
-        <source>Unable to store next result</source>
-        <translation type="unfinished"></translation>
+        <translation>Неможливо зберегти результати виразу</translation>
     </message>
 </context>
 <context>
     <name>QMdiArea</name>
     <message>
-        <location filename="../src/gui/widgets/qmdiarea.cpp" line="+290"/>
         <source>(Untitled)</source>
-        <translation type="unfinished"></translation>
+        <translation>(Без назви)</translation>
     </message>
 </context>
 <context>
     <name>QMdiSubWindow</name>
     <message>
-        <location filename="../src/gui/widgets/qmdisubwindow.cpp" line="+280"/>
+        <source>- [%1]</source>
+        <translation></translation>
+    </message>
+    <message>
         <source>%1 - [%2]</source>
         <translation>%1 - [%2]</translation>
     </message>
     <message>
-        <location line="+72"/>
-        <source>Close</source>
-        <translation>Закрити</translation>
-    </message>
-    <message>
-        <location line="-18"/>
         <source>Minimize</source>
         <translation>Мінімізувати</translation>
     </message>
     <message>
-        <location line="+13"/>
+        <source>Maximize</source>
+        <translation>Максимізувати</translation>
+    </message>
+    <message>
+        <source>Unshade</source>
+        <translation>Розгорнути із заголовка</translation>
+    </message>
+    <message>
+        <source>Shade</source>
+        <translation>Згорнути в заголовок</translation>
+    </message>
+    <message>
         <source>Restore Down</source>
-        <translation>Відновити додолу</translation>
-    </message>
-    <message>
-        <location line="+707"/>
+        <translation>Відновити</translation>
+    </message>
+    <message>
+        <source>Restore</source>
+        <translation>Відновити</translation>
+    </message>
+    <message>
+        <source>Close</source>
+        <translation>Закрити</translation>
+    </message>
+    <message>
+        <source>Help</source>
+        <translation>Довідка</translation>
+    </message>
+    <message>
+        <source>Menu</source>
+        <translation>Меню</translation>
+    </message>
+    <message>
         <source>&amp;Restore</source>
         <translation>&amp;Відновити</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>&amp;Move</source>
         <translation>&amp;Пересунути</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Size</source>
         <translation>&amp;Розмір</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Mi&amp;nimize</source>
-        <translation>Мі&amp;німізувати</translation>
-    </message>
-    <message>
-        <location line="+2"/>
+        <translation>М&amp;інімізувати</translation>
+    </message>
+    <message>
         <source>Ma&amp;ximize</source>
-        <translation>Ма&amp;ксимізувати</translation>
-    </message>
-    <message>
-        <location line="+2"/>
+        <translation>М&amp;аксимізувати</translation>
+    </message>
+    <message>
         <source>Stay on &amp;Top</source>
-        <translation>Лишатися над &amp;іншими</translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>Залишатись на &amp;горі</translation>
+    </message>
+    <message>
         <source>&amp;Close</source>
-        <translation>&amp;Закрити</translation>
-    </message>
-    <message>
-        <location line="-787"/>
-        <source>- [%1]</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+58"/>
-        <source>Maximize</source>
-        <translation type="unfinished">Максимізувати</translation>
-    </message>
-    <message>
-        <location line="+3"/>
-        <source>Unshade</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+3"/>
-        <source>Shade</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+6"/>
-        <source>Restore</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+6"/>
-        <source>Help</source>
-        <translation type="unfinished">Довідка</translation>
-    </message>
-    <message>
-        <location line="+3"/>
-        <source>Menu</source>
-        <translation type="unfinished">Menu</translation>
+        <translation>Закри&amp;ти</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>Закрити</translation>
     </message>
     <message>
-        <location line="-224"/>
-        <location line="+225"/>
         <source>Open</source>
         <translation>Відкрити</translation>
     </message>
     <message>
-        <location line="-223"/>
-        <location line="+225"/>
-        <location line="+51"/>
         <source>Execute</source>
         <translation>Виконати</translation>
     </message>
@@ -3004,1615 +3620,1221 @@
 <context>
     <name>QMenuBar</name>
     <message>
-        <source>About</source>
-        <translation type="obsolete">Про</translation>
-    </message>
-    <message>
-        <source>Config</source>
-        <translation type="obsolete">Конфігурація</translation>
-    </message>
-    <message>
-        <source>Preference</source>
-        <translation type="obsolete">Вподобання</translation>
-    </message>
-    <message>
-        <source>Options</source>
-        <translation type="obsolete">Опції</translation>
-    </message>
-    <message>
-        <source>Setting</source>
-        <translation type="obsolete">Параметри</translation>
-    </message>
-    <message>
-        <source>Setup</source>
-        <translation type="obsolete">Встановлення</translation>
-    </message>
-    <message>
-        <source>Quit</source>
-        <translation type="obsolete">Вийти</translation>
-    </message>
-    <message>
-        <source>Exit</source>
-        <translation type="obsolete">Вийти</translation>
-    </message>
-    <message>
-        <source>About %1</source>
-        <translation type="obsolete">Про %1</translation>
-    </message>
-    <message>
-        <source>About Qt</source>
-        <translation type="obsolete">Про Qt</translation>
-    </message>
-    <message>
-        <source>Preferences</source>
-        <translation type="obsolete">Вподобання</translation>
-    </message>
-    <message>
-        <source>Quit %1</source>
-        <translation type="obsolete">Вийти %1</translation>
+        <source>Actions</source>
+        <translation>Дії</translation>
     </message>
 </context>
 <context>
     <name>QMessageBox</name>
     <message>
-        <location filename="../src/gui/dialogs/qmessagebox.cpp" line="-1111"/>
+        <source>Show Details...</source>
+        <translation>Показати деталі...</translation>
+    </message>
+    <message>
+        <source>Hide Details...</source>
+        <translation>Приховати деталі...</translation>
+    </message>
+    <message>
+        <source>OK</source>
+        <translation>OK</translation>
+    </message>
+    <message>
         <source>Help</source>
         <translation>Довідка</translation>
     </message>
     <message>
-        <location line="-853"/>
-        <location line="+852"/>
-        <location filename="../src/gui/dialogs/qmessagebox.h" line="-52"/>
-        <location line="+8"/>
-        <source>OK</source>
-        <translation>Гаразд</translation>
-    </message>
-    <message>
-        <location line="+509"/>
+        <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&lt;/h3&gt;&lt;p&gt;Ця програма використовує Qt версії %1.&lt;/p&gt;</translation>
+    </message>
+    <message>
+        <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>&lt;p&gt;Qt - це інструментарій для крос-платформної розробки програм на C++.&lt;/p&gt;&lt;p&gt;Qt надає переносимість єдиного коду між MS&amp;nbsp;Windows, Mac&amp;nbsp;OS&amp;nbsp;X, Linux та усіма іншими головними комерційними варіантами Unix. Також, Qt доступна для вбудованих пристроїв у вигляді Qt для Embedded Linux та Qt для Windows CE.&lt;/p&gt;&lt;p&gt;Qt доступна на умовах трьох різних опцій ліцензування з метою задоволення потреб усіх наших різноманітних користувачів.&lt;/p&gt;&lt;p&gt;Qt ліцензована на умовах нашої комерційної ліцензійної угоди придатна для розробки пропієтарного/комерційного програмного забезпечення тоді, коли ви не бажаєте надавати будь-який код чи коли не можете прийняти умови ліцензій GNU LGPL версії 2.1 чи GNU GPL версії 3.0.&lt;/p&gt;&lt;p&gt;Qt ліцензована на умовах GNU LGPL версії 2.1 придатна для розробки програм на базі Qt (пропієтарних або з відкритим кодом) за умови, що ви можете погодитись з вимогами та умовами GNU LGPL версії 2.1.&lt;/p&gt;&lt;p&gt;Qt ліцензована на умовах GNU General Public License версії 3.0 придатна для розробки програм на базі Qt, коли ви бажаєте використовувати такі програми у поєднанні з програмним забезпеченням, що підпадає під вимоги GNU GPL версії 3.0 або коли ви бажаєте дотримуватись вимог GNU GPL версії 3.0.&lt;/p&gt;&lt;p&gt;Будь ласка, перегляньте &lt;a href=&quot;http://qt.nokia.com/products/licensing&quot;&gt;qt.nokia.com/products/licensing&lt;/a&gt; для огляду ліцензування Qt.&lt;/p&gt;&lt;p&gt;Copyright (C) 2010 Корпорація Nokia та/або її дочірні компанії.&lt;/p&gt;&lt;p&gt;Qt - це продукт Nokia. Подивіться &lt;a href=&quot;http://qt.nokia.com/&quot;&gt;qt.nokia.com&lt;/a&gt; для додаткової інформації.&lt;/p&gt;</translation>
+    </message>
+    <message>
         <source>About Qt</source>
         <translation>Про Qt</translation>
     </message>
-    <message>
-        <source>&lt;p&gt;This program uses Qt version %1.&lt;/p&gt;</source>
-        <translation type="obsolete">&lt;p&gt;Ця програма використовує Qt версії %1.&lt;/p&gt;</translation>
-    </message>
-    <message>
-        <source>&lt;h3&gt;About Qt&lt;/h3&gt;%1&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 Qtopia Core.&lt;/p&gt;&lt;p&gt;Qt is a Trolltech 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;Про Qt&lt;/h3&gt;%1&lt;p&gt;Qt - це інструментарій C++ для міжплатформової розробки.&lt;/p&gt;&lt;p&gt;Qt забезпечує мобільність єдиних джерельних текстів між MS&amp;nbsp;Windows, Mac&amp;nbsp;OS&amp;nbsp;X, Linux та всіма основними комерційними версіями Unix. Qt існує також для вбудованих пристроїв, таких, як Qtopia Core.&lt;/p&gt;&lt;p&gt;Qt - це продукт компанії Trolltech. Більше інформації можна знайти на &lt;a href=&quot;http://qt.nokia.com/&quot;&gt;qt.nokia.com&lt;/a&gt;.&lt;/p&gt;</translation>
-    </message>
-    <message>
-        <location line="-1605"/>
-        <source>Show Details...</source>
-        <translation>Показати подробиці...</translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Hide Details...</source>
-        <translation>Сховати подробиці...</translation>
-    </message>
-    <message>
-        <location line="+1570"/>
-        <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) 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 type="unfinished"></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://qt.nokia.com/company/model/&quot;&gt;qt.nokia.com/company/model/&lt;/a&gt; for an overview of Qt licensing.&lt;/p&gt;</source>
-        <translation type="obsolete">&lt;p&gt;Ця програма використовує Qt Open Source Edition версії %1.&lt;/p&gt;&lt;p&gt;Qt Open Source Edition призначено для розробки відкритих програмних засобів. Для розробки власницьких (закритих) програм вам потрібна комерційна ліцензія для Qt.&lt;/p&gt;&lt;p&gt;Перегляньте &lt;a href=&quot;http://qt.nokia.com/company/model/&quot;&gt;qt.nokia.com/company/model/&lt;/a&gt; щодо огляду ліцензій Qt.&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>Вибрати метод вводу</translation>
+        <translation>Виберіть метод введення</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>Перемикач методів вводу</translation>
-    </message>
-    <message>
-        <location line="+7"/>
+        <translation>Перемикач методів введення</translation>
+    </message>
+    <message>
         <source>Multiple input method switcher that uses the context menu of the text widgets</source>
-        <translation>Перемикач методів вводу, що використовує контекстне меню текстових віджетів</translation>
+        <translation>Перемикач методів введення, що використовує контекстне меню текстових віджетів</translation>
     </message>
 </context>
 <context>
     <name>QNativeSocketEngine</name>
     <message>
-        <location filename="../src/network/socket/qnativesocketengine.cpp" line="+206"/>
+        <source>Unable to initialize non-blocking socket</source>
+        <translation>Неможливо ініціалізувати неблокувальний сокет</translation>
+    </message>
+    <message>
+        <source>Unable to initialize broadcast socket</source>
+        <translation>Неможливо ініціалізувати широкомовний сокет</translation>
+    </message>
+    <message>
+        <source>Attempt to use IPv6 socket on a platform with no IPv6 support</source>
+        <translation>Спроба використати сокет IPv6 на платформі без підтримки IPv6</translation>
+    </message>
+    <message>
         <source>The remote host closed the connection</source>
-        <translation>Віддалений вузол закрив з&apos;єднання</translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>Віддалений вузол закрив з’єднання</translation>
+    </message>
+    <message>
         <source>Network operation timed out</source>
-        <translation>Перевищено термін очікування мережевої дії</translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>Час на мережеву операцію вичерпано</translation>
+    </message>
+    <message>
         <source>Out of resources</source>
-        <translation>Вичерпано всі ресурси</translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>Недостатньо ресурсів</translation>
+    </message>
+    <message>
         <source>Unsupported socket operation</source>
-        <translation>Непідтримувана дія сокетів</translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>Непідтримувана для сокета операція</translation>
+    </message>
+    <message>
         <source>Protocol type not supported</source>
         <translation>Тип протоколу не підтримується</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Invalid socket descriptor</source>
-        <translation>Неправильний опис сокету</translation>
-    </message>
-    <message>
-        <location line="+6"/>
+        <translation>Неправильний дескриптор сокета</translation>
+    </message>
+    <message>
+        <source>Host unreachable</source>
+        <translation>Вузол недоступний</translation>
+    </message>
+    <message>
         <source>Network unreachable</source>
-        <translation>Мережа недосяжна</translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>Мережа недоступна</translation>
+    </message>
+    <message>
         <source>Permission denied</source>
-        <translation>Відмовлено у доступі</translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>Доступ заборонено</translation>
+    </message>
+    <message>
         <source>Connection timed out</source>
-        <translation>Перевищено термін очікування для з&apos;єднання</translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>Час на з’єднання вичерпано</translation>
+    </message>
+    <message>
         <source>Connection refused</source>
-        <translation>Відмовлено у зв&apos;язку</translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>У з&apos;єднанні відмовлено</translation>
+    </message>
+    <message>
         <source>The bound address is already in use</source>
-        <translation>Прив&apos;язана адреса вже використовується</translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>Адреса вже використовується</translation>
+    </message>
+    <message>
         <source>The address is not available</source>
-        <translation>Адреса недоступна</translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>Адреса не доступна</translation>
+    </message>
+    <message>
         <source>The address is protected</source>
         <translation>Адреса захищена</translation>
     </message>
     <message>
-        <location line="+6"/>
+        <source>Datagram was too large to send</source>
+        <translation>Датаграма завелика, щоб надіслати</translation>
+    </message>
+    <message>
         <source>Unable to send a message</source>
-        <translation>Неможливо відіслати повідомлення</translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>Неможливо надіслати повідомлення</translation>
+    </message>
+    <message>
         <source>Unable to receive a message</source>
         <translation>Неможливо отримати повідомлення</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Unable to write</source>
         <translation>Неможливо записати</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Network error</source>
         <translation>Помилка мережі</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Another socket is already listening on the same port</source>
-        <translation>Інший сокет вже слухає цей порт</translation>
-    </message>
-    <message>
-        <location line="-66"/>
-        <source>Unable to initialize non-blocking socket</source>
-        <translation>Неможливо ініціалізувати неблокувальний сокет</translation>
-    </message>
-    <message>
-        <location line="+3"/>
-        <source>Unable to initialize broadcast socket</source>
-        <translation>Неможливо ініціалізувати широкомовний сокет</translation>
-    </message>
-    <message>
-        <location line="+3"/>
-        <source>Attempt to use IPv6 socket on a platform with no IPv6 support</source>
-        <translation>Спроба використати сокет IPv6 на платформі без підтримки IPv6</translation>
-    </message>
-    <message>
-        <location line="+21"/>
-        <source>Host unreachable</source>
-        <translation>Вузол недосяжний</translation>
-    </message>
-    <message>
-        <location line="+24"/>
-        <source>Datagram was too large to send</source>
-        <translation>Дейтаграма є завеликою для відсилання</translation>
-    </message>
-    <message>
-        <location line="+18"/>
+        <translation>Інший сокет вже слухає цей самий порт</translation>
+    </message>
+    <message>
         <source>Operation on non-socket</source>
-        <translation>Дія на об&apos;єкті, що не є сокетом</translation>
-    </message>
-    <message>
-        <location line="+6"/>
+        <translation>Операція з не-сокетом</translation>
+    </message>
+    <message>
+        <source>The proxy type is invalid for this operation</source>
+        <translation>Неправильний тип проксі-серверу для цієї операції</translation>
+    </message>
+    <message>
         <source>Unknown error</source>
         <translation>Невідома помилка</translation>
     </message>
-    <message>
-        <location line="-3"/>
-        <source>The proxy type is invalid for this operation</source>
-        <translation type="unfinished"></translation>
-    </message>
 </context>
 <context>
     <name>QNetworkAccessCacheBackend</name>
     <message>
-        <location filename="../src/network/access/qnetworkaccesscachebackend.cpp" line="+65"/>
         <source>Error opening %1</source>
-        <translation type="unfinished"></translation>
+        <translation>Помилка відкриття %1</translation>
+    </message>
+</context>
+<context>
+    <name>QNetworkAccessDataBackend</name>
+    <message>
+        <source>Operation not supported on %1</source>
+        <translation>Непідтримувана для %1 операція</translation>
+    </message>
+    <message>
+        <source>Invalid URI: %1</source>
+        <translation>Неправильний URI: %1</translation>
+    </message>
+</context>
+<context>
+    <name>QNetworkAccessDebugPipeBackend</name>
+    <message>
+        <source>Write error writing to %1: %2</source>
+        <translation>Помилка запису в %1: %2</translation>
+    </message>
+    <message>
+        <source>Socket error on %1: %2</source>
+        <translation>Помилка сокета для %1: %2</translation>
+    </message>
+    <message>
+        <source>Remote host closed the connection prematurely on %1</source>
+        <translation>Віддалений вузол несподівано закрив з’єднання для %1</translation>
     </message>
 </context>
 <context>
     <name>QNetworkAccessFileBackend</name>
     <message>
-        <location filename="../src/network/access/qnetworkaccessfilebackend.cpp" line="+99"/>
         <source>Request for opening non-local file %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+42"/>
+        <translation>Запит на відкриття нелокального файлу %1</translation>
+    </message>
+    <message>
+        <source>Cannot open %1: Path is a directory</source>
+        <translation>Неможливо відкрити %1: Шлях є текою</translation>
+    </message>
+    <message>
         <source>Error opening %1: %2</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+56"/>
+        <translation>Помилка відкриття %1: %2</translation>
+    </message>
+    <message>
         <source>Write error writing to %1: %2</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+33"/>
-        <source>Cannot open %1: Path is a directory</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+21"/>
+        <translation>Помилка запису в %1: %2</translation>
+    </message>
+    <message>
         <source>Read error reading from %1: %2</source>
-        <translation type="unfinished"></translation>
+        <translation>Помилка читання з %1: %2</translation>
     </message>
 </context>
 <context>
     <name>QNetworkAccessFtpBackend</name>
     <message>
-        <location filename="../src/network/access/qnetworkaccessftpbackend.cpp" line="+165"/>
         <source>No suitable proxy found</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+14"/>
+        <translation>Не знайдено придатного проксі-сервера</translation>
+    </message>
+    <message>
         <source>Cannot open %1: is a directory</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+130"/>
+        <translation>Неможливо відкрити %1: шлях є текою</translation>
+    </message>
+    <message>
         <source>Logging in to %1 failed: authentication required</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+39"/>
+        <translation>Збій входу до %1: необхідна авторизація</translation>
+    </message>
+    <message>
         <source>Error while downloading %1: %2</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+2"/>
+        <translation>Помилка звантаження %1: %2</translation>
+    </message>
+    <message>
         <source>Error while uploading %1: %2</source>
-        <translation type="unfinished"></translation>
+        <translation>Помилка вивантаження %1: %2</translation>
     </message>
 </context>
 <context>
     <name>QNetworkAccessHttpBackend</name>
     <message>
-        <location filename="../src/network/access/qnetworkaccesshttpbackend.cpp" line="+597"/>
         <source>No suitable proxy found</source>
-        <translation type="unfinished"></translation>
+        <translation>Не знайдено придатного проксі-сервера</translation>
+    </message>
+</context>
+<context>
+    <name>QNetworkAccessManager</name>
+    <message>
+        <source>Network access is disabled.</source>
+        <translation>Доступ до мережі вимкнено.</translation>
     </message>
 </context>
 <context>
     <name>QNetworkReply</name>
     <message>
-        <location line="+128"/>
         <source>Error downloading %1 - server replied: %2</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/network/access/qnetworkreplyimpl.cpp" line="+68"/>
+        <translation>Помилка звантаження %1 - сервер відповів: %2</translation>
+    </message>
+    <message>
         <source>Protocol &quot;%1&quot; is unknown</source>
-        <translation type="unfinished"></translation>
+        <translation>Невідомий протокол &quot;%1&quot;</translation>
+    </message>
+    <message>
+        <source>Network session error.</source>
+        <translation>Помилка мережевої сесії.</translation>
+    </message>
+    <message>
+        <source>Temporary network failure.</source>
+        <translation>Тимчасовий збій мережі.</translation>
     </message>
 </context>
 <context>
     <name>QNetworkReplyImpl</name>
     <message>
-        <location line="+432"/>
-        <location line="+22"/>
         <source>Operation canceled</source>
-        <translation type="unfinished"></translation>
+        <translation>Операція скасована</translation>
+    </message>
+</context>
+<context>
+    <name>QNetworkSession</name>
+    <message>
+        <source>Invalid configuration.</source>
+        <translation>Неправильні налаштування.</translation>
+    </message>
+</context>
+<context>
+    <name>QNetworkSessionPrivateImpl</name>
+    <message>
+        <source>Roaming error</source>
+        <translation>Помилка переміщення</translation>
+    </message>
+    <message>
+        <source>Session aborted by user or system</source>
+        <translation>Сесія перервана користувачем або системою</translation>
+    </message>
+    <message>
+        <source>Unidentified Error</source>
+        <translation>Невизначена помилка</translation>
+    </message>
+    <message>
+        <source>Unknown session error.</source>
+        <translation>Невідома помилка сесії.</translation>
+    </message>
+    <message>
+        <source>The session was aborted by the user or system.</source>
+        <translation>Сесія перервана користувачем або системою.</translation>
+    </message>
+    <message>
+        <source>The requested operation is not supported by the system.</source>
+        <translation>Операція, що запитується, не підтримується системою.</translation>
+    </message>
+    <message>
+        <source>The specified configuration cannot be used.</source>
+        <translation>Неможливо використати вказані налаштування.</translation>
+    </message>
+    <message>
+        <source>Roaming was aborted or is not possible.</source>
+        <translation>Переміщення було перерване або неможливе.</translation>
     </message>
 </context>
 <context>
     <name>QOCIDriver</name>
     <message>
-        <location filename="../src/sql/drivers/oci/qsql_oci.cpp" line="+2069"/>
-        <source>Unable to logon</source>
-        <translation>Неможливо зайти</translation>
-    </message>
-    <message>
-        <location line="-144"/>
         <source>Unable to initialize</source>
         <comment>QOCIDriver</comment>
-        <translation>Неможливо ініціалізуватиQOCIDriver</translation>
-    </message>
-    <message>
-        <location line="+215"/>
+        <translation>Неможливо ініціалізувати</translation>
+    </message>
+    <message>
+        <source>Unable to logon</source>
+        <translation>Неможливо авторизуватись</translation>
+    </message>
+    <message>
         <source>Unable to begin transaction</source>
-        <translation type="unfinished">Неможливо почати транзакцію</translation>
-    </message>
-    <message>
-        <location line="+19"/>
+        <translation>Неможливо почати транзакцію</translation>
+    </message>
+    <message>
         <source>Unable to commit transaction</source>
-        <translation type="unfinished">Неможливо завершити транзакцію</translation>
-    </message>
-    <message>
-        <location line="+19"/>
+        <translation>Неможливо завершити транзакцію</translation>
+    </message>
+    <message>
         <source>Unable to rollback transaction</source>
-        <translation type="unfinished">Неможливо відкотити транзакцію</translation>
+        <translation>Неможливо відкотити транзакцію</translation>
     </message>
 </context>
 <context>
     <name>QOCIResult</name>
     <message>
-        <location line="-963"/>
-        <location line="+161"/>
-        <location line="+15"/>
         <source>Unable to bind column for batch execute</source>
-        <translation>Неможливо прив&apos;язати стовпчик для пакетного виконання</translation>
-    </message>
-    <message>
-        <location line="+15"/>
+        <translation>Неможливо прив’язати стовпець для пакетного виконання</translation>
+    </message>
+    <message>
         <source>Unable to execute batch statement</source>
-        <translation>Неможливо виконати пакетний оператор</translation>
-    </message>
-    <message>
-        <location line="+302"/>
+        <translation>Неможливо виконати пакетний вираз</translation>
+    </message>
+    <message>
         <source>Unable to goto next</source>
         <translation>Неможливо перейти до наступного</translation>
     </message>
     <message>
-        <location line="+59"/>
         <source>Unable to alloc statement</source>
-        <translation>Неможливо розмістити оператор</translation>
-    </message>
-    <message>
-        <location line="+15"/>
+        <translation>Неможливо виділити вираз</translation>
+    </message>
+    <message>
         <source>Unable to prepare statement</source>
-        <translation>Неможливо підготувати оператор</translation>
-    </message>
-    <message>
-        <location line="+36"/>
+        <translation>Неможливо підготувати вираз</translation>
+    </message>
+    <message>
+        <source>Unable to get statement type</source>
+        <translation>Неможливо визначити тип виразу</translation>
+    </message>
+    <message>
         <source>Unable to bind value</source>
         <translation>Неможливо прив&apos;язати значення</translation>
     </message>
     <message>
-        <source>Unable to execute select statement</source>
-        <translation type="obsolete">Неможливо виконати оператор вибирання</translation>
-    </message>
-    <message>
-        <location line="+19"/>
         <source>Unable to execute statement</source>
-        <translation>Неможливо виконати оператор</translation>
+        <translation>Неможливо виконати вираз</translation>
     </message>
 </context>
 <context>
     <name>QODBCDriver</name>
     <message>
-        <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="+1785"/>
         <source>Unable to connect</source>
-        <translation>Неможливо з&apos;єднатися</translation>
-    </message>
-    <message>
-        <location line="+6"/>
-        <source>Unable to connect - Driver doesn&apos;t support all needed functionality</source>
-        <translation>Неможливо з&apos;єднатися - драйвер не підтримує всіх потрібних функцій</translation>
-    </message>
-    <message>
-        <location line="+242"/>
+        <translation>Неможливо з&apos;єднатись</translation>
+    </message>
+    <message>
+        <source>Unable to connect - Driver doesn&apos;t support all functionality required</source>
+        <translation>Неможливо з&apos;єднатись - Драйвер не підтримує усю необхідну функціональність</translation>
+    </message>
+    <message>
         <source>Unable to disable autocommit</source>
         <translation>Неможливо вимкнути автозавершення транзакцій</translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>Unable to commit transaction</source>
         <translation>Неможливо завершити транзакцію</translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>Unable to rollback transaction</source>
         <translation>Неможливо відкотити транзакцію</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Unable to enable autocommit</source>
-        <translation>Неможливо ввімкнути автозавершення транзакцій</translation>
+        <translation>Неможливо увімкнути автозавершення транзакцій</translation>
     </message>
 </context>
 <context>
     <name>QODBCResult</name>
     <message>
-        <location line="-1218"/>
-        <location line="+349"/>
+        <source>Unable to fetch last</source>
+        <translation>Неможливо отримати останній запис</translation>
+    </message>
+    <message>
         <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;, як атрибут оператора. Будь ласка, перевірте налаштування драйвера ODBC</translation>
-    </message>
-    <message>
-        <location line="-332"/>
-        <location line="+626"/>
+        <translation>QODBCResult::reset: Неможливо встановити &apos;SQL_CURSOR_STATIC&apos;, як атрибут виразу. Будь ласка, перевірте налаштування вашого драйверу ODBC</translation>
+    </message>
+    <message>
         <source>Unable to execute statement</source>
-        <translation>Неможливо виконати оператор</translation>
-    </message>
-    <message>
-        <location line="-555"/>
+        <translation>Неможливо виконати вираз</translation>
+    </message>
+    <message>
+        <source>Unable to fetch</source>
+        <translation>Неможливо отримати</translation>
+    </message>
+    <message>
         <source>Unable to fetch next</source>
-        <translation>Неможливо вибрати наступний</translation>
-    </message>
-    <message>
-        <location line="+279"/>
+        <translation>Неможливо отримати наступний запис</translation>
+    </message>
+    <message>
+        <source>Unable to fetch first</source>
+        <translation>Неможливо отримати перший запис</translation>
+    </message>
+    <message>
+        <source>Unable to fetch previous</source>
+        <translation>Неможливо отримати попередній запис</translation>
+    </message>
+    <message>
         <source>Unable to prepare statement</source>
-        <translation>Неможливо підготувати оператор</translation>
-    </message>
-    <message>
-        <location line="+268"/>
+        <translation>Неможливо підготувати вираз</translation>
+    </message>
+    <message>
         <source>Unable to bind variable</source>
         <translation>Неможливо прив&apos;язати змінну</translation>
     </message>
-    <message>
-        <location filename="../src/sql/drivers/db2/qsql_db2.cpp" line="+194"/>
-        <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="-475"/>
-        <location line="+578"/>
-        <source>Unable to fetch last</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="-672"/>
-        <source>Unable to fetch</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+44"/>
-        <source>Unable to fetch first</source>
-        <translation type="unfinished">Неможливо вибрати перший</translation>
-    </message>
-    <message>
-        <location line="+19"/>
-        <source>Unable to fetch previous</source>
-        <translation type="unfinished"></translation>
-    </message>
 </context>
 <context>
     <name>QObject</name>
     <message>
-        <location filename="../src/gui/util/qdesktopservices_mac.cpp" line="+165"/>
-        <source>Home</source>
-        <translation>Home</translation>
-    </message>
-    <message>
-        <location filename="../src/network/access/qnetworkaccessdatabackend.cpp" line="+74"/>
-        <source>Operation not supported on %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+53"/>
-        <source>Invalid URI: %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/network/access/qnetworkaccessdebugpipebackend.cpp" line="+175"/>
-        <source>Write error writing to %1: %2</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+57"/>
-        <source>Read error reading from %1: %2</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+31"/>
-        <source>Socket error on %1: %2</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+15"/>
-        <source>Remote host closed the connection prematurely on %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+53"/>
-        <source>Protocol error: packet of size 0 received</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/network/kernel/qhostinfo.cpp" line="+177"/>
-        <location line="+57"/>
-        <source>No host name given</source>
-        <translation type="unfinished"></translation>
+        <source>PulseAudio Sound Server</source>
+        <translation>Звуковий сервер PulseAudio</translation>
+    </message>
+    <message>
+        <source>&quot;%1&quot; duplicates a previous role name and will be disabled.</source>
+        <translation>&quot;%1&quot; повторює назву попередньої ролі та буде вимкнене.</translation>
+    </message>
+    <message>
+        <source>invalid query: &quot;%1&quot;</source>
+        <translation>неправильний запит &quot;%1&quot;</translation>
     </message>
 </context>
 <context>
     <name>QPPDOptionsModel</name>
     <message>
-        <location filename="../src/gui/dialogs/qprintdialog_unix.cpp" line="+1195"/>
         <source>Name</source>
-        <translation type="unfinished">Ім&apos;я</translation>
-    </message>
-    <message>
-        <location line="+2"/>
+        <translation>Назва</translation>
+    </message>
+    <message>
         <source>Value</source>
-        <translation type="unfinished">Значення</translation>
+        <translation>Значення</translation>
     </message>
 </context>
 <context>
     <name>QPSQLDriver</name>
     <message>
-        <location filename="../src/sql/drivers/psql/qsql_psql.cpp" line="+763"/>
         <source>Unable to connect</source>
-        <translation>Неможливо з&apos;єднатися</translation>
-    </message>
-    <message>
-        <location line="+49"/>
+        <translation>Неможливо з&apos;єднатись</translation>
+    </message>
+    <message>
         <source>Could not begin transaction</source>
-        <translation>Неможливо почати транзакцію</translation>
-    </message>
-    <message>
-        <location line="+17"/>
+        <translation>Не вдалося почати транзакцію</translation>
+    </message>
+    <message>
         <source>Could not commit transaction</source>
-        <translation>Неможливо завершити транзакцію</translation>
-    </message>
-    <message>
-        <location line="+16"/>
+        <translation>Не вдалося завершити транзакцію</translation>
+    </message>
+    <message>
         <source>Could not rollback transaction</source>
-        <translation>Неможливо відкотити транзакцію</translation>
-    </message>
-    <message>
-        <location line="+358"/>
+        <translation>Не вдалося відкотити транзакцію</translation>
+    </message>
+    <message>
         <source>Unable to subscribe</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+32"/>
+        <translation>Неможливо підписатись</translation>
+    </message>
+    <message>
         <source>Unable to unsubscribe</source>
-        <translation type="unfinished"></translation>
+        <translation>Неможливо відписатись</translation>
     </message>
 </context>
 <context>
     <name>QPSQLResult</name>
     <message>
-        <location line="-1058"/>
         <source>Unable to create query</source>
         <translation>Неможливо створити запит</translation>
     </message>
     <message>
-        <location line="+374"/>
         <source>Unable to prepare statement</source>
-        <translation type="unfinished">Неможливо підготувати оператор</translation>
+        <translation>Неможливо підготувати вираз</translation>
     </message>
 </context>
 <context>
     <name>QPageSetupWidget</name>
     <message>
-        <location filename="../src/gui/dialogs/qpagesetupdialog_unix.cpp" line="+304"/>
-        <source>Centimeters (cm)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+0"/>
-        <source>Millimeters (mm)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+0"/>
-        <source>Inches (in)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+0"/>
-        <source>Points (pt)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/gui/dialogs/qpagesetupwidget.ui"/>
         <source>Form</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location/>
+        <translation>Форма</translation>
+    </message>
+    <message>
         <source>Paper</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location/>
+        <translation>Папір</translation>
+    </message>
+    <message>
         <source>Page size:</source>
-        <translation type="unfinished">Розмір сторінки:</translation>
-    </message>
-    <message>
-        <location/>
+        <translation>Розмір сторінки:</translation>
+    </message>
+    <message>
         <source>Width:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location/>
+        <translation>Ширина:</translation>
+    </message>
+    <message>
         <source>Height:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location/>
+        <translation>Висота:</translation>
+    </message>
+    <message>
         <source>Paper source:</source>
-        <translation type="unfinished">Джерело паперу:</translation>
-    </message>
-    <message>
-        <location/>
+        <translation>Джерело паперу:</translation>
+    </message>
+    <message>
         <source>Orientation</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location/>
+        <translation>Орієнтація</translation>
+    </message>
+    <message>
         <source>Portrait</source>
-        <translation type="unfinished">Книжкове</translation>
-    </message>
-    <message>
-        <location/>
+        <translation>Портрет</translation>
+    </message>
+    <message>
         <source>Landscape</source>
-        <translation type="unfinished">Альбомне</translation>
-    </message>
-    <message>
-        <location/>
+        <translation>Ландшафт</translation>
+    </message>
+    <message>
         <source>Reverse landscape</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location/>
+        <translation>Обернений ландшафт</translation>
+    </message>
+    <message>
         <source>Reverse portrait</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location/>
+        <translation>Обернений портрет</translation>
+    </message>
+    <message>
         <source>Margins</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location/>
+        <translation>Поля</translation>
+    </message>
+    <message>
         <source>top margin</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location/>
+        <translation>верхнє поле</translation>
+    </message>
+    <message>
         <source>left margin</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location/>
+        <translation>ліве поле</translation>
+    </message>
+    <message>
         <source>right margin</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location/>
+        <translation>праве поле</translation>
+    </message>
+    <message>
         <source>bottom margin</source>
-        <translation type="unfinished"></translation>
+        <translation>нижнє поле</translation>
+    </message>
+    <message>
+        <source>Centimeters (cm)</source>
+        <translation>Сантиметри (см)</translation>
+    </message>
+    <message>
+        <source>Millimeters (mm)</source>
+        <translation>Міліметри (мм)</translation>
+    </message>
+    <message>
+        <source>Inches (in)</source>
+        <translation>Дюйми (in)</translation>
+    </message>
+    <message>
+        <source>Points (pt)</source>
+        <translation>Точки (pt)</translation>
     </message>
 </context>
 <context>
     <name>QPluginLoader</name>
     <message>
-        <location filename="../src/corelib/plugin/qpluginloader.cpp" line="+24"/>
+        <source>The plugin was not loaded.</source>
+        <translation>Додаток не було завантажено.</translation>
+    </message>
+    <message>
         <source>Unknown error</source>
         <translation>Невідома помилка</translation>
     </message>
-    <message>
-        <location line="-68"/>
-        <source>The plugin was not loaded.</source>
-        <translation>Додаток не було завантажено.</translation>
-    </message>
 </context>
 <context>
     <name>QPrintDialog</name>
     <message>
-        <location filename="../src/gui/painting/qprinterinfo_unix.cpp" line="+98"/>
+        <source>Print</source>
+        <translation>Друк</translation>
+    </message>
+    <message>
+        <source>A0</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>A1</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>A2</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>A3</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>A4</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>A5</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>A6</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>A7</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>A8</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>A9</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>B0</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>B1</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>B2</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>B3</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>B4</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>B5</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>B6</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>B7</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>B8</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>B9</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>B10</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>C5E</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>DLE</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>Executive</source>
+        <translation>Executive</translation>
+    </message>
+    <message>
+        <source>Folio</source>
+        <translation>Folio</translation>
+    </message>
+    <message>
+        <source>Ledger</source>
+        <translation>Ledger</translation>
+    </message>
+    <message>
+        <source>Legal</source>
+        <translation>Legal</translation>
+    </message>
+    <message>
+        <source>Letter</source>
+        <translation>Letter</translation>
+    </message>
+    <message>
+        <source>Tabloid</source>
+        <translation>Tabloid</translation>
+    </message>
+    <message>
+        <source>US Common #10 Envelope</source>
+        <translation>US Common #10 Envelope</translation>
+    </message>
+    <message>
+        <source>Custom</source>
+        <translation>Користувацький</translation>
+    </message>
+    <message>
+        <source>File exists</source>
+        <translation>Файл існує</translation>
+    </message>
+    <message>
+        <source>&lt;qt&gt;Do you want to overwrite it?&lt;/qt&gt;</source>
+        <translation>&lt;qt&gt;Бажаєте перезаписати його?&lt;/qt&gt;</translation>
+    </message>
+    <message>
+        <source>A0 (841 x 1189 mm)</source>
+        <translation>A0 (841 x 1189 мм)</translation>
+    </message>
+    <message>
+        <source>A1 (594 x 841 mm)</source>
+        <translation>A1 (594 x 841 мм)</translation>
+    </message>
+    <message>
+        <source>A2 (420 x 594 mm)</source>
+        <translation>A2 (420 x 594 мм)</translation>
+    </message>
+    <message>
+        <source>A3 (297 x 420 mm)</source>
+        <translation>A3 (297 x 420 мм)</translation>
+    </message>
+    <message>
+        <source>A4 (210 x 297 mm, 8.26 x 11.7 inches)</source>
+        <translation>A4 (210 x 297 мм, 8.26 x 11.7 дюймів)</translation>
+    </message>
+    <message>
+        <source>A5 (148 x 210 mm)</source>
+        <translation>A5 (148 x 210 мм)</translation>
+    </message>
+    <message>
+        <source>A6 (105 x 148 mm)</source>
+        <translation>A6 (105 x 148 мм)</translation>
+    </message>
+    <message>
+        <source>A7 (74 x 105 mm)</source>
+        <translation>A7 (74 x 105 мм)</translation>
+    </message>
+    <message>
+        <source>A8 (52 x 74 mm)</source>
+        <translation>A8 (52 x 74 мм)</translation>
+    </message>
+    <message>
+        <source>A9 (37 x 52 mm)</source>
+        <translation>A9 (37 x 52 мм)</translation>
+    </message>
+    <message>
+        <source>B0 (1000 x 1414 mm)</source>
+        <translation>B0 (1000 x 1414 мм)</translation>
+    </message>
+    <message>
+        <source>B1 (707 x 1000 mm)</source>
+        <translation>B1 (707 x 1000 мм)</translation>
+    </message>
+    <message>
+        <source>B2 (500 x 707 mm)</source>
+        <translation>B2 (500 x 707 мм)</translation>
+    </message>
+    <message>
+        <source>B3 (353 x 500 mm)</source>
+        <translation>B3 (353 x 500 мм)</translation>
+    </message>
+    <message>
+        <source>B4 (250 x 353 mm)</source>
+        <translation>B4 (250 x 353 мм)</translation>
+    </message>
+    <message>
+        <source>B5 (176 x 250 mm, 6.93 x 9.84 inches)</source>
+        <translation>B5 (176 x 250 мм, 6.93 x 9.84 дюймів)</translation>
+    </message>
+    <message>
+        <source>B6 (125 x 176 mm)</source>
+        <translation>B6 (125 x 176 мм)</translation>
+    </message>
+    <message>
+        <source>B7 (88 x 125 mm)</source>
+        <translation>B7 (88 x 125 мм)</translation>
+    </message>
+    <message>
+        <source>B8 (62 x 88 mm)</source>
+        <translation>B8 (62 x 88 мм)</translation>
+    </message>
+    <message>
+        <source>B9 (44 x 62 mm)</source>
+        <translation>B9 (44 x 62 мм)</translation>
+    </message>
+    <message>
+        <source>B10 (31 x 44 mm)</source>
+        <translation>B10 (31 x 44 мм)</translation>
+    </message>
+    <message>
+        <source>C5E (163 x 229 mm)</source>
+        <translation>C5E (163 x 229 мм)</translation>
+    </message>
+    <message>
+        <source>DLE (110 x 220 mm)</source>
+        <translation>DLE (110 x 220 мм)</translation>
+    </message>
+    <message>
+        <source>Executive (7.5 x 10 inches, 191 x 254 mm)</source>
+        <translation>Executive (7.5 x 10 дюймів, 191 x 254 мм)</translation>
+    </message>
+    <message>
+        <source>Folio (210 x 330 mm)</source>
+        <translation>Folio (210 x 330 мм)</translation>
+    </message>
+    <message>
+        <source>Ledger (432 x 279 mm)</source>
+        <translation>Ledger (432 x 279 мм)</translation>
+    </message>
+    <message>
+        <source>Legal (8.5 x 14 inches, 216 x 356 mm)</source>
+        <translation>Legal (8.5 x 14 дюймів, 216 x 356 мм)</translation>
+    </message>
+    <message>
+        <source>Letter (8.5 x 11 inches, 216 x 279 mm)</source>
+        <translation>Letter (8.5 x 11 дюймів, 216 x 279 мм)</translation>
+    </message>
+    <message>
+        <source>Tabloid (279 x 432 mm)</source>
+        <translation>Tabloid (279 x 432 мм)</translation>
+    </message>
+    <message>
+        <source>US Common #10 Envelope (105 x 241 mm)</source>
+        <translation>US Common #10 Envelope (105 x 241 мм)</translation>
+    </message>
+    <message>
+        <source>Print all</source>
+        <translation>Друкувати все</translation>
+    </message>
+    <message>
+        <source>Print selection</source>
+        <translation>Друкувати виділення</translation>
+    </message>
+    <message>
+        <source>Print range</source>
+        <translation>Діапазон друку</translation>
+    </message>
+    <message>
+        <source>Print current page</source>
+        <translation>Друкувати поточну сторінку</translation>
+    </message>
+    <message>
+        <source>&amp;Options &gt;&gt;</source>
+        <translation>&amp;Опції &gt;&gt;</translation>
+    </message>
+    <message>
+        <source>&amp;Print</source>
+        <translation>&amp;Друк</translation>
+    </message>
+    <message>
+        <source>&amp;Options &lt;&lt;</source>
+        <translation>&amp;Опції &lt;&lt;</translation>
+    </message>
+    <message>
+        <source>Print to File (PDF)</source>
+        <translation>Друкувати в файл (PDF)</translation>
+    </message>
+    <message>
+        <source>Print to File (Postscript)</source>
+        <translation>Друкувати в файл (Postscript)</translation>
+    </message>
+    <message>
+        <source>Local file</source>
+        <translation>Локальний файл</translation>
+    </message>
+    <message>
+        <source>Write %1 file</source>
+        <translation>Записати в файл %1</translation>
+    </message>
+    <message>
+        <source>Print To File ...</source>
+        <translation>Друкувати в файл...</translation>
+    </message>
+    <message>
+        <source>%1 is a directory.
+Please choose a different file name.</source>
+        <translation>%1 - тека.
+Будь ласка, оберіть інше ім&apos;я файлу.</translation>
+    </message>
+    <message>
+        <source>File %1 is not writable.
+Please choose a different file name.</source>
+        <translation>До файлу %1 неможливо писати.
+Будь ласка, оберіть інше ім&apos;я файлу.</translation>
+    </message>
+    <message>
+        <source>%1 already exists.
+Do you want to overwrite it?</source>
+        <translation>%1 вже існує.
+Бажаєте перезаписати його?</translation>
+    </message>
+    <message>
+        <source>The &apos;From&apos; value cannot be greater than the &apos;To&apos; value.</source>
+        <translation>Значення поля &apos;З&apos; не може бути більшим значення поля &apos;По&apos;.</translation>
+    </message>
+    <message>
+        <source>OK</source>
+        <translation>OK</translation>
+    </message>
+    <message>
         <source>locally connected</source>
-        <translation>локальне з&apos;єднання</translation>
-    </message>
-    <message>
-        <location line="+23"/>
-        <location line="+225"/>
+        <translation>локально з&apos;єднано</translation>
+    </message>
+    <message>
         <source>Aliases: %1</source>
-        <translation>Псевдонім: %1</translation>
-    </message>
-    <message>
-        <location line="+223"/>
-        <location line="+199"/>
+        <translation>Псевдоніми: %1</translation>
+    </message>
+    <message>
         <source>unknown</source>
         <translation>невідомо</translation>
     </message>
+</context>
+<context>
+    <name>QPrintPreviewDialog</name>
+    <message>
+        <source>Page Setup</source>
+        <translation>Параметри сторінки</translation>
+    </message>
+    <message>
+        <source>%1%</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>Print Preview</source>
+        <translation>Попередній перегляд друку</translation>
+    </message>
+    <message>
+        <source>Next page</source>
+        <translation>Наступна сторінка</translation>
+    </message>
+    <message>
+        <source>Previous page</source>
+        <translation>Попередня сторінка</translation>
+    </message>
+    <message>
+        <source>First page</source>
+        <translation>Перша сторінка</translation>
+    </message>
+    <message>
+        <source>Last page</source>
+        <translation>Остання сторінка</translation>
+    </message>
+    <message>
+        <source>Fit width</source>
+        <translation>По ширині</translation>
+    </message>
+    <message>
+        <source>Fit page</source>
+        <translation>Усю сторінку</translation>
+    </message>
+    <message>
+        <source>Zoom in</source>
+        <translation>Збільшити</translation>
+    </message>
+    <message>
+        <source>Zoom out</source>
+        <translation>Зменшити</translation>
+    </message>
     <message>
         <source>Portrait</source>
-        <translation type="obsolete">Книжкове</translation>
+        <translation>Портрет</translation>
     </message>
     <message>
         <source>Landscape</source>
-        <translation type="obsolete">Альбомне</translation>
-    </message>
-    <message>
-        <location filename="../src/gui/dialogs/qprintdialog_qws.cpp" line="+329"/>
-        <source>A0 (841 x 1189 mm)</source>
-        <translation>A0 (841 x 1189 мм)</translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>A1 (594 x 841 mm)</source>
-        <translation>A1 (594 x 841 мм)</translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>A2 (420 x 594 mm)</source>
-        <translation>A2 (420 x 594 мм)</translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>A3 (297 x 420 mm)</source>
-        <translation>A3 (297 x 420 мм)</translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>A4 (210 x 297 mm, 8.26 x 11.7 inches)</source>
-        <translation>A4 (210 x 297 мм, 8.26 x 11.7 дюймів)</translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>A5 (148 x 210 mm)</source>
-        <translation>A5 (148 x 210 мм)</translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>A6 (105 x 148 mm)</source>
-        <translation>A6 (105 x 148 мм)</translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>A7 (74 x 105 mm)</source>
-        <translation>A7 (74 x 105 мм)</translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>A8 (52 x 74 mm)</source>
-        <translation>A8 (52 x 74 мм)</translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>A9 (37 x 52 mm)</source>
-        <translation>A9 (37 x 52 мм)</translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>B0 (1000 x 1414 mm)</source>
-        <translation>B0 (1000 x 1414 мм)</translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>B1 (707 x 1000 mm)</source>
-        <translation>B1 (707 x 1000 мм)</translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>B2 (500 x 707 mm)</source>
-        <translation>B2 (500 x 707 мм)</translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>B3 (353 x 500 mm)</source>
-        <translation>B3 (353 x 500 мм)</translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>B4 (250 x 353 mm)</source>
-        <translation>B4 (250 x 353 мм)</translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>B5 (176 x 250 mm, 6.93 x 9.84 inches)</source>
-        <translation>B5 (176 x 250 мм, 6.93 x 9.84 дюймів)</translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>B6 (125 x 176 mm)</source>
-        <translation>B6 (125 x 176 мм)</translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>B7 (88 x 125 mm)</source>
-        <translation>B7 (88 x 125 мм)</translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>B8 (62 x 88 mm)</source>
-        <translation>B8 (62 x 88 мм)</translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>B9 (44 x 62 mm)</source>
-        <translation>B9 (44 x 62 мм)</translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>B10 (31 x 44 mm)</source>
-        <translation>B10 (31 x 44 мм)</translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>C5E (163 x 229 mm)</source>
-        <translation>C5E (163 x 229 мм)</translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>DLE (110 x 220 mm)</source>
-        <translation>DLE (110 x 220 мм)</translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Executive (7.5 x 10 inches, 191 x 254 mm)</source>
-        <translation>Executive (7.5 x 10 дюймів, 191 x 254 мм)</translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Folio (210 x 330 mm)</source>
-        <translation>Folio (210 x 330 мм)</translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Ledger (432 x 279 mm)</source>
-        <translation>Ledger (432 x 279 мм)</translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Legal (8.5 x 14 inches, 216 x 356 mm)</source>
-        <translation>Legal (8.5 x 14 inches, 216 x 356 мм)</translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Letter (8.5 x 11 inches, 216 x 279 mm)</source>
-        <translation>Letter (8.5 x 11 inches, 216 x 279 мм)</translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Tabloid (279 x 432 mm)</source>
-        <translation>Tabloid (279 x 432 мм)</translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>US Common #10 Envelope (105 x 241 mm)</source>
-        <translation>US Common #10 Envelope (105 x 241 мм)</translation>
-    </message>
-    <message>
-        <location filename="../src/gui/dialogs/qprintdialog_win.cpp" line="+268"/>
-        <source>OK</source>
-        <translation>Гаразд</translation>
-    </message>
-    <message>
-        <source>Cancel</source>
-        <translation type="obsolete">Скасувати</translation>
-    </message>
-    <message>
-        <source>Page size:</source>
-        <translation type="obsolete">Розмір сторінки:</translation>
-    </message>
-    <message>
-        <source>Orientation:</source>
-        <translation type="obsolete">Розташування:</translation>
-    </message>
-    <message>
-        <source>Paper source:</source>
-        <translation type="obsolete">Джерело паперу:</translation>
-    </message>
-    <message>
-        <location filename="../src/gui/dialogs/qabstractprintdialog.cpp" line="+110"/>
-        <location line="+13"/>
-        <location filename="../src/gui/dialogs/qprintdialog_win.cpp" line="-2"/>
+        <translation>Ландшафт</translation>
+    </message>
+    <message>
+        <source>Show single page</source>
+        <translation>Показати одну сторінку</translation>
+    </message>
+    <message>
+        <source>Show facing pages</source>
+        <translation>Показати титульні сторінки</translation>
+    </message>
+    <message>
+        <source>Show overview of all pages</source>
+        <translation>Показати огляд усіх сторінок</translation>
+    </message>
+    <message>
         <source>Print</source>
-        <translation>Друкувати</translation>
-    </message>
-    <message>
-        <source>File</source>
-        <translation type="obsolete">Файл</translation>
-    </message>
-    <message>
-        <source>Printer</source>
-        <translation type="obsolete">Принтер</translation>
-    </message>
-    <message>
-        <location filename="../src/gui/dialogs/qprintdialog_unix.cpp" line="-357"/>
-        <source>Print To File ...</source>
-        <translation>Друкувати в файл...</translation>
-    </message>
-    <message>
-        <source>Print dialog</source>
-        <translation type="obsolete">Діалог друку</translation>
-    </message>
-    <message>
-        <source>Paper format</source>
-        <translation type="obsolete">Формат паперу</translation>
-    </message>
-    <message>
-        <source>Size:</source>
-        <translation type="obsolete">Розмір:</translation>
-    </message>
-    <message>
-        <source>Properties</source>
-        <translation type="obsolete">Властивості</translation>
-    </message>
-    <message>
-        <source>Printer info:</source>
-        <translation type="obsolete">Дані про принтер:</translation>
-    </message>
-    <message>
-        <source>Browse</source>
-        <translation type="obsolete">Навігація</translation>
-    </message>
-    <message>
-        <source>Print to file</source>
-        <translation type="obsolete">Друкувати в файл</translation>
-    </message>
-    <message>
-        <location filename="../src/gui/dialogs/qprintdialog_qws.cpp" line="+19"/>
+        <translation>Друк</translation>
+    </message>
+    <message>
+        <source>Page setup</source>
+        <translation>Параметри сторінки</translation>
+    </message>
+    <message>
+        <source>Close</source>
+        <translation>Закрити</translation>
+    </message>
+    <message>
+        <source>Export to PDF</source>
+        <translation>Експорт в PDF</translation>
+    </message>
+    <message>
+        <source>Export to PostScript</source>
+        <translation>Експорт в PostScript</translation>
+    </message>
+</context>
+<context>
+    <name>QPrintPropertiesWidget</name>
+    <message>
+        <source>Form</source>
+        <translation>Форма</translation>
+    </message>
+    <message>
+        <source>Page</source>
+        <translation>Сторінка</translation>
+    </message>
+    <message>
+        <source>Advanced</source>
+        <translation>Розширені</translation>
+    </message>
+</context>
+<context>
+    <name>QPrintSettingsOutput</name>
+    <message>
+        <source>Form</source>
+        <translation>Форма</translation>
+    </message>
+    <message>
+        <source>Copies</source>
+        <translation>Копії</translation>
+    </message>
+    <message>
         <source>Print range</source>
         <translation>Діапазон друку</translation>
     </message>
     <message>
-        <location line="-2"/>
         <source>Print all</source>
         <translation>Друкувати все</translation>
     </message>
     <message>
         <source>Pages from</source>
-        <translation type="obsolete">Сторінки з</translation>
+        <translation>Сторінки з</translation>
     </message>
     <message>
         <source>to</source>
-        <translation type="obsolete">по</translation>
+        <translation>до</translation>
+    </message>
+    <message>
+        <source>Current Page</source>
+        <translation>Поточну сторінку</translation>
     </message>
     <message>
         <source>Selection</source>
-        <translation type="obsolete">Вибрані</translation>
-    </message>
-    <message>
-        <source>Copies</source>
-        <translation type="obsolete">Копії</translation>
-    </message>
-    <message>
-        <source>Number of copies:</source>
-        <translation type="obsolete">Кількість копій:</translation>
+        <translation>Виділення</translation>
+    </message>
+    <message>
+        <source>Output Settings</source>
+        <translation>Налаштування виводу</translation>
+    </message>
+    <message>
+        <source>Copies:</source>
+        <translation>Копій:</translation>
     </message>
     <message>
         <source>Collate</source>
-        <translation type="obsolete">Сортувати</translation>
-    </message>
-    <message>
-        <source>Print last page first</source>
-        <translation type="obsolete">Друкувати останню сторінку першою</translation>
-    </message>
-    <message>
-        <source>Other</source>
-        <translation type="obsolete">Інше</translation>
-    </message>
-    <message>
-        <source>Print in color if available</source>
-        <translation type="obsolete">Друкувати в кольорах, якщо можливо</translation>
-    </message>
-    <message>
-        <source>Double side printing</source>
-        <translation type="obsolete">Двосторонній друк</translation>
-    </message>
-    <message>
-        <location filename="../src/gui/dialogs/qprintdialog_unix.cpp" line="+80"/>
-        <source>File %1 is not writable.
-Please choose a different file name.</source>
-        <translation>Файл %1 не дозволяє запис.
-Будь ласка, виберіть інше ім&apos;я файлу.</translation>
-    </message>
-    <message>
-        <location line="+4"/>
-        <source>%1 already exists.
-Do you want to overwrite it?</source>
-        <translation>%1 вже існує.Перезаписати?</translation>
-    </message>
-    <message>
-        <location filename="../src/gui/dialogs/qprintdialog_qws.cpp" line="-227"/>
-        <source>File exists</source>
-        <translation>Файл існує</translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>&lt;qt&gt;Do you want to overwrite it?&lt;/qt&gt;</source>
-        <translation>&lt;qt&gt;Перезаписати?&lt;/qt&gt;</translation>
-    </message>
-    <message>
-        <location line="+227"/>
-        <source>Print selection</source>
-        <translation>Друкувати вибране</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>%1 є каталогом.
-Введіть інше ім&apos;я файлу.</translation>
-    </message>
-    <message>
-        <location filename="../src/gui/dialogs/qpagesetupdialog_unix.cpp" line="-232"/>
-        <source>A0</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>A1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>A2</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>A3</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>A4</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>A5</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>A6</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>A7</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>A8</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>A9</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>B0</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>B1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>B2</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>B3</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>B4</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>B5</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>B6</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>B7</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>B8</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>B9</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>B10</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>C5E</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>DLE</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Executive</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Folio</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Ledger</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Legal</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Letter</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Tabloid</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>US Common #10 Envelope</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Custom</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/gui/dialogs/qprintdialog_unix.cpp" line="-522"/>
-        <location line="+68"/>
-        <source>&amp;Options &gt;&gt;</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="-63"/>
-        <source>&amp;Print</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+67"/>
-        <source>&amp;Options &lt;&lt;</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+253"/>
-        <source>Print to File (PDF)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Print to File (Postscript)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+45"/>
-        <source>Local file</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Write %1 file</source>
-        <translation type="unfinished"></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 type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>QPrintPreviewDialog</name>
-    <message>
-        <location filename="../src/gui/dialogs/qabstractpagesetupdialog.cpp" line="+68"/>
-        <location line="+12"/>
-        <source>Page Setup</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/gui/dialogs/qprintpreviewdialog.cpp" line="+252"/>
-        <source>%1%</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+79"/>
-        <source>Print Preview</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+29"/>
-        <source>Next page</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Previous page</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>First page</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Last page</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+9"/>
-        <source>Fit width</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Fit page</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+11"/>
-        <source>Zoom in</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Zoom out</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+6"/>
-        <source>Portrait</source>
-        <translation type="unfinished">Книжкове</translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Landscape</source>
-        <translation type="unfinished">Альбомне</translation>
-    </message>
-    <message>
-        <location line="+10"/>
-        <source>Show single page</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Show facing pages</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Show overview of all pages</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+15"/>
-        <source>Print</source>
-        <translation type="unfinished">Друкувати</translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Page setup</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Close</source>
-        <translation type="unfinished">Закрити</translation>
-    </message>
-    <message>
-        <location line="+151"/>
-        <source>Export to PDF</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+3"/>
-        <source>Export to PostScript</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>QPrintPropertiesDialog</name>
-    <message>
-        <source>PPD Properties</source>
-        <translation type="obsolete">Властивості PPD</translation>
-    </message>
-    <message>
-        <source>Save</source>
-        <translation type="obsolete">Зберегти</translation>
-    </message>
-    <message>
-        <source>OK</source>
-        <translation type="obsolete">Гаразд</translation>
-    </message>
-</context>
-<context>
-    <name>QPrintPropertiesWidget</name>
-    <message>
-        <location filename="../src/gui/dialogs/qprintpropertieswidget.ui"/>
-        <source>Form</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location/>
-        <source>Page</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location/>
-        <source>Advanced</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>QPrintSettingsOutput</name>
-    <message>
-        <location filename="../src/gui/dialogs/qprintsettingsoutput.ui"/>
-        <source>Form</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location/>
-        <source>Copies</source>
-        <translation type="unfinished">Копії</translation>
-    </message>
-    <message>
-        <location/>
-        <source>Print range</source>
-        <translation type="unfinished">Діапазон друку</translation>
-    </message>
-    <message>
-        <location/>
-        <source>Print all</source>
-        <translation type="unfinished">Друкувати все</translation>
-    </message>
-    <message>
-        <location/>
-        <source>Pages from</source>
-        <translation type="unfinished">Сторінки з</translation>
-    </message>
-    <message>
-        <location/>
-        <source>to</source>
-        <translation type="unfinished">по</translation>
-    </message>
-    <message>
-        <location/>
-        <source>Selection</source>
-        <translation type="unfinished">Вибрані</translation>
-    </message>
-    <message>
-        <location/>
-        <source>Output Settings</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location/>
-        <source>Copies:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location/>
-        <source>Collate</source>
-        <translation type="unfinished">Сортувати</translation>
-    </message>
-    <message>
-        <location/>
+        <translation>Розібрати по копіях</translation>
+    </message>
+    <message>
         <source>Reverse</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location/>
+        <translation>В зворотньому порядку</translation>
+    </message>
+    <message>
         <source>Options</source>
-        <translation type="unfinished">Опції</translation>
-    </message>
-    <message>
-        <location/>
+        <translation>Параметри</translation>
+    </message>
+    <message>
         <source>Color Mode</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location/>
+        <translation>Режим кольору</translation>
+    </message>
+    <message>
         <source>Color</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location/>
+        <translation>Колір</translation>
+    </message>
+    <message>
         <source>Grayscale</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location/>
+        <translation>Відтінки сірого</translation>
+    </message>
+    <message>
         <source>Duplex Printing</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location/>
+        <translation>Двосторонній друк</translation>
+    </message>
+    <message>
         <source>None</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location/>
+        <translation>Відсутній</translation>
+    </message>
+    <message>
         <source>Long side</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location/>
+        <translation>По довгій стороні</translation>
+    </message>
+    <message>
         <source>Short side</source>
-        <translation type="unfinished"></translation>
+        <translation>По короткій стороні</translation>
     </message>
 </context>
 <context>
     <name>QPrintWidget</name>
     <message>
-        <location filename="../src/gui/dialogs/qprintwidget.ui"/>
         <source>Form</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location/>
+        <translation>Форма</translation>
+    </message>
+    <message>
         <source>Printer</source>
-        <translation type="unfinished">Принтер</translation>
-    </message>
-    <message>
-        <location/>
+        <translation>Принтер</translation>
+    </message>
+    <message>
         <source>&amp;Name:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location/>
+        <translation>&amp;Назва:</translation>
+    </message>
+    <message>
         <source>P&amp;roperties</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location/>
+        <translation>&amp;Властивості</translation>
+    </message>
+    <message>
         <source>Location:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location/>
+        <translation>Розташування:</translation>
+    </message>
+    <message>
         <source>Preview</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location/>
+        <translation>Перегляд</translation>
+    </message>
+    <message>
         <source>Type:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location/>
+        <translation>Тип:</translation>
+    </message>
+    <message>
         <source>Output &amp;file:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location/>
+        <translation>Вихідний &amp;файл:</translation>
+    </message>
+    <message>
         <source>...</source>
-        <translation type="unfinished"></translation>
+        <translation>...</translation>
     </message>
 </context>
 <context>
     <name>QProcess</name>
     <message>
-        <location filename="../src/corelib/io/qprocess_unix.cpp" line="+475"/>
-        <location filename="../src/corelib/io/qprocess_win.cpp" line="+147"/>
+        <source>Error reading from process</source>
+        <translation>Помилка читання з процесу</translation>
+    </message>
+    <message>
+        <source>Error writing to process</source>
+        <translation>Помилка запису в процес</translation>
+    </message>
+    <message>
+        <source>Process crashed</source>
+        <translation>Процес аварійно завершився</translation>
+    </message>
+    <message>
+        <source>No program defined</source>
+        <translation>Програму не задано</translation>
+    </message>
+    <message>
         <source>Could not open input redirection for reading</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+12"/>
-        <location filename="../src/corelib/io/qprocess_win.cpp" line="+36"/>
+        <translation>Не вдалося відкрити перенаправлення введення для читання</translation>
+    </message>
+    <message>
         <source>Could not open output redirection for writing</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+235"/>
+        <translation>Не вдалося відкрити перенаправлення виведення для запису</translation>
+    </message>
+    <message>
         <source>Resource error (fork failure): %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+259"/>
-        <location line="+53"/>
-        <location line="+74"/>
-        <location line="+67"/>
-        <location filename="../src/corelib/io/qprocess_win.cpp" line="+422"/>
-        <location line="+50"/>
-        <location line="+75"/>
-        <location line="+42"/>
-        <location line="+54"/>
+        <translation>Помилка ресурсу (збій fork): %1</translation>
+    </message>
+    <message>
         <source>Process operation timed out</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/corelib/io/qprocess.cpp" line="+533"/>
-        <location line="+52"/>
-        <location filename="../src/corelib/io/qprocess_win.cpp" line="-211"/>
-        <location line="+50"/>
-        <source>Error reading from process</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+47"/>
-        <location line="+779"/>
-        <location filename="../src/corelib/io/qprocess_win.cpp" line="+140"/>
-        <source>Error writing to process</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="-709"/>
-        <source>Process crashed</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+912"/>
-        <source>No program defined</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/corelib/io/qprocess_win.cpp" line="-341"/>
-        <source>Process failed to start</source>
-        <translation type="unfinished"></translation>
+        <translation>Час на операцію з процесом вичерпано</translation>
+    </message>
+    <message>
+        <source>Process failed to start: %1</source>
+        <translation>Збій запуску процесу: %1</translation>
     </message>
 </context>
 <context>
     <name>QProgressDialog</name>
     <message>
-        <location filename="../src/gui/dialogs/qprogressdialog.cpp" line="+182"/>
         <source>Cancel</source>
         <translation>Скасувати</translation>
     </message>
@@ -4620,7 +4842,6 @@
 <context>
     <name>QPushButton</name>
     <message>
-        <location filename="../src/plugins/accessible/widgets/simplewidgets.cpp" line="-8"/>
         <source>Open</source>
         <translation>Відкрити</translation>
     </message>
@@ -4628,928 +4849,1559 @@
 <context>
     <name>QRadioButton</name>
     <message>
-        <location line="+12"/>
         <source>Check</source>
-        <translation>Поставити позначку</translation>
+        <translation>Відмітити</translation>
     </message>
 </context>
 <context>
     <name>QRegExp</name>
     <message>
-        <location filename="../src/corelib/tools/qregexp.cpp" line="+64"/>
         <source>no error occurred</source>
         <translation>без помилок</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>disabled feature used</source>
-        <translation>вжито вимкнену можливість</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>використана вимкнена можливість</translation>
+    </message>
+    <message>
         <source>bad char class syntax</source>
-        <translation>неправильний синтаксис класу символу</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>неправильний синтаксис класу символів</translation>
+    </message>
+    <message>
         <source>bad lookahead syntax</source>
-        <translation>неправильний синтаксис перегляду вперед</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>неправильний синтаксис &quot;lookahead&quot;</translation>
+    </message>
+    <message>
         <source>bad repetition syntax</source>
         <translation>неправильний синтаксис повторення</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>invalid octal value</source>
         <translation>неправильне вісімкове значення</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>missing left delim</source>
         <translation>відсутній лівий розділювач</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>unexpected end</source>
         <translation>неочікуваний кінець</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>met internal limit</source>
-        <translation>досягнуто внутрішній ліміт</translation>
+        <translation>досягнуто внутрішнього обмеження</translation>
+    </message>
+    <message>
+        <source>invalid interval</source>
+        <translation>неправильний інтервал</translation>
+    </message>
+    <message>
+        <source>invalid category</source>
+        <translation>неправильна категорія</translation>
     </message>
 </context>
 <context>
     <name>QSQLite2Driver</name>
     <message>
-        <location filename="../src/sql/drivers/sqlite2/qsql_sqlite2.cpp" line="+396"/>
-        <source>Error to open database</source>
-        <translation>Помилка відкривання бази даних</translation>
-    </message>
-    <message>
-        <location line="+41"/>
+        <source>Error opening database</source>
+        <translation>Помилка відкриття бази даних</translation>
+    </message>
+    <message>
         <source>Unable to begin transaction</source>
         <translation>Неможливо почати транзакцію</translation>
     </message>
     <message>
-        <location line="+17"/>
         <source>Unable to commit transaction</source>
         <translation>Неможливо завершити транзакцію</translation>
     </message>
     <message>
-        <location line="+17"/>
-        <source>Unable to rollback Transaction</source>
+        <source>Unable to rollback transaction</source>
         <translation>Неможливо відкотити транзакцію</translation>
     </message>
 </context>
 <context>
     <name>QSQLite2Result</name>
     <message>
-        <location line="-323"/>
         <source>Unable to fetch results</source>
-        <translation>Неможливо витягнути результат</translation>
-    </message>
-    <message>
-        <location line="+147"/>
+        <translation>Неможливо отримати результати</translation>
+    </message>
+    <message>
         <source>Unable to execute statement</source>
-        <translation>Неможливо виконати оператор</translation>
+        <translation>Неможливо виконати вираз</translation>
     </message>
 </context>
 <context>
     <name>QSQLiteDriver</name>
     <message>
-        <location filename="../src/sql/drivers/sqlite/qsql_sqlite.cpp" line="+528"/>
         <source>Error opening database</source>
-        <translation>Неможливо відкрити базу даних</translation>
-    </message>
-    <message>
-        <location line="+11"/>
+        <translation>Помилка відкриття бази даних</translation>
+    </message>
+    <message>
         <source>Error closing database</source>
-        <translation>Помилка закривання бази даних</translation>
-    </message>
-    <message>
-        <location line="+20"/>
+        <translation>Помилка закриття бази даних</translation>
+    </message>
+    <message>
         <source>Unable to begin transaction</source>
         <translation>Неможливо почати транзакцію</translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Unable to commit transaction</source>
         <translation>Неможливо завершити транзакцію</translation>
     </message>
     <message>
-        <source>Unable to roll back transaction</source>
-        <translation type="obsolete">Неможливо відкотити транзакцію</translation>
-    </message>
-    <message>
-        <location line="+15"/>
         <source>Unable to rollback transaction</source>
-        <translation type="unfinished">Неможливо відкотити транзакцію</translation>
+        <translation>Неможливо відкотити транзакцію</translation>
     </message>
 </context>
 <context>
     <name>QSQLiteResult</name>
     <message>
-        <location line="-400"/>
-        <location line="+66"/>
-        <location line="+8"/>
         <source>Unable to fetch row</source>
-        <translation>Неможливо вибрати рядок</translation>
-    </message>
-    <message>
-        <location line="+63"/>
+        <translation>Неможливо отримати рядок</translation>
+    </message>
+    <message>
+        <source>No query</source>
+        <translation>Запит відсутній</translation>
+    </message>
+    <message>
         <source>Unable to execute statement</source>
-        <translation>Неможливо виконати оператор</translation>
-    </message>
-    <message>
-        <location line="+20"/>
+        <translation>Неможливо виконати вираз</translation>
+    </message>
+    <message>
         <source>Unable to reset statement</source>
-        <translation>Неможливо скинути оператор</translation>
-    </message>
-    <message>
-        <location line="+45"/>
+        <translation>Неможливо скинути вираз</translation>
+    </message>
+    <message>
         <source>Unable to bind parameters</source>
         <translation>Неможливо прив&apos;язати параметри</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Parameter count mismatch</source>
         <translation>Кількість параметрів не збігається</translation>
     </message>
-    <message>
-        <location line="-208"/>
-        <source>No query</source>
-        <translation type="unfinished"></translation>
+</context>
+<context>
+    <name>QScriptBreakpointsModel</name>
+    <message>
+        <source>ID</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>Location</source>
+        <translation>Позиція</translation>
+    </message>
+    <message>
+        <source>Condition</source>
+        <translation>Умова</translation>
+    </message>
+    <message>
+        <source>Ignore-count</source>
+        <translation>Пропущено</translation>
+    </message>
+    <message>
+        <source>Single-shot</source>
+        <translation>Один раз</translation>
+    </message>
+    <message>
+        <source>Hit-count</source>
+        <translation>Збігів</translation>
+    </message>
+</context>
+<context>
+    <name>QScriptBreakpointsWidget</name>
+    <message>
+        <source>New</source>
+        <translation>Новий</translation>
+    </message>
+    <message>
+        <source>Delete</source>
+        <translation>Видалити</translation>
+    </message>
+</context>
+<context>
+    <name>QScriptDebugger</name>
+    <message>
+        <source>Go to Line</source>
+        <translation>Перейти до рядка</translation>
+    </message>
+    <message>
+        <source>Line:</source>
+        <translation>Рядок:</translation>
+    </message>
+    <message>
+        <source>Interrupt</source>
+        <translation>Перервати</translation>
+    </message>
+    <message>
+        <source>Shift+F5</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>Continue</source>
+        <translation>Продовжити</translation>
+    </message>
+    <message>
+        <source>F5</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>Step Into</source>
+        <translation>Увійти в</translation>
+    </message>
+    <message>
+        <source>F11</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>Step Over</source>
+        <translation>Перейти через</translation>
+    </message>
+    <message>
+        <source>F10</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>Step Out</source>
+        <translation>Вийти з</translation>
+    </message>
+    <message>
+        <source>Shift+F11</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>Run to Cursor</source>
+        <translation>Виконати до курсору</translation>
+    </message>
+    <message>
+        <source>Ctrl+F10</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>Run to New Script</source>
+        <translation>Виконати до нового скрипту</translation>
+    </message>
+    <message>
+        <source>Toggle Breakpoint</source>
+        <translation>Перемкнути точку перепину</translation>
+    </message>
+    <message>
+        <source>F9</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>Clear Debug Output</source>
+        <translation>Очистити зневаджувальне виведення</translation>
+    </message>
+    <message>
+        <source>Clear Error Log</source>
+        <translation>Очистити журнал помилок</translation>
+    </message>
+    <message>
+        <source>Clear Console</source>
+        <translation>Очистити консоль</translation>
+    </message>
+    <message>
+        <source>&amp;Find in Script...</source>
+        <translation>&amp;Знайти в скрипті...</translation>
+    </message>
+    <message>
+        <source>Ctrl+F</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>Find &amp;Next</source>
+        <translation>Знайти &amp;наступне</translation>
+    </message>
+    <message>
+        <source>F3</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>Find &amp;Previous</source>
+        <translation>Знайти &amp;попереднє</translation>
+    </message>
+    <message>
+        <source>Shift+F3</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>Ctrl+G</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>Debug</source>
+        <translation>Зневадження</translation>
+    </message>
+</context>
+<context>
+    <name>QScriptDebuggerCodeFinderWidget</name>
+    <message>
+        <source>Close</source>
+        <translation>Закрити</translation>
+    </message>
+    <message>
+        <source>Previous</source>
+        <translation>Попередній</translation>
+    </message>
+    <message>
+        <source>Next</source>
+        <translation>Наступний</translation>
+    </message>
+    <message>
+        <source>Case Sensitive</source>
+        <translation>Враховувати регістр</translation>
+    </message>
+    <message>
+        <source>Whole words</source>
+        <translation>Цілі слова</translation>
+    </message>
+    <message>
+        <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;Пошук з початку</translation>
+    </message>
+</context>
+<context>
+    <name>QScriptDebuggerLocalsModel</name>
+    <message>
+        <source>Name</source>
+        <translation>Назва</translation>
+    </message>
+    <message>
+        <source>Value</source>
+        <translation>Значення</translation>
+    </message>
+</context>
+<context>
+    <name>QScriptDebuggerStackModel</name>
+    <message>
+        <source>Level</source>
+        <translation>Рівень</translation>
+    </message>
+    <message>
+        <source>Name</source>
+        <translation>Назва</translation>
+    </message>
+    <message>
+        <source>Location</source>
+        <translation>Позиція</translation>
+    </message>
+</context>
+<context>
+    <name>QScriptEdit</name>
+    <message>
+        <source>Toggle Breakpoint</source>
+        <translation>Перемкнути точку перепину</translation>
+    </message>
+    <message>
+        <source>Disable Breakpoint</source>
+        <translation>Вимкнути точку перепину</translation>
+    </message>
+    <message>
+        <source>Enable Breakpoint</source>
+        <translation>Увімкнути точку перепину</translation>
+    </message>
+    <message>
+        <source>Breakpoint Condition:</source>
+        <translation>Умова перепину:</translation>
+    </message>
+</context>
+<context>
+    <name>QScriptEngineDebugger</name>
+    <message>
+        <source>Loaded Scripts</source>
+        <translation>Завантажені скрипти</translation>
+    </message>
+    <message>
+        <source>Breakpoints</source>
+        <translation>Точки перепину</translation>
+    </message>
+    <message>
+        <source>Stack</source>
+        <translation>Стек</translation>
+    </message>
+    <message>
+        <source>Locals</source>
+        <translation>Локальні змінні</translation>
+    </message>
+    <message>
+        <source>Console</source>
+        <translation>Консоль</translation>
+    </message>
+    <message>
+        <source>Debug Output</source>
+        <translation>Зневаджувальне виведення</translation>
+    </message>
+    <message>
+        <source>Error Log</source>
+        <translation>Журнал помилок</translation>
+    </message>
+    <message>
+        <source>Search</source>
+        <translation>Пошук</translation>
+    </message>
+    <message>
+        <source>View</source>
+        <translation>Вид</translation>
+    </message>
+    <message>
+        <source>Qt Script Debugger</source>
+        <translation>Зневаджувач скриптів Qt</translation>
+    </message>
+</context>
+<context>
+    <name>QScriptNewBreakpointWidget</name>
+    <message>
+        <source>Close</source>
+        <translation>Закрити</translation>
     </message>
 </context>
 <context>
     <name>QScrollBar</name>
     <message>
-        <location filename="../src/gui/widgets/qscrollbar.cpp" line="+448"/>
         <source>Scroll here</source>
         <translation>Прокрутити сюди</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Left edge</source>
-        <translation>Лівий край</translation>
-    </message>
-    <message>
-        <location line="+0"/>
+        <translation>До лівої границі</translation>
+    </message>
+    <message>
         <source>Top</source>
-        <translation>Верх</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>Вгору</translation>
+    </message>
+    <message>
         <source>Right edge</source>
-        <translation>Правий край</translation>
-    </message>
-    <message>
-        <location line="+0"/>
+        <translation>До правої границі</translation>
+    </message>
+    <message>
         <source>Bottom</source>
-        <translation>Низ</translation>
-    </message>
-    <message>
-        <location line="+2"/>
+        <translation>Донизу</translation>
+    </message>
+    <message>
         <source>Page left</source>
-        <translation>Сторінка ліворуч</translation>
-    </message>
-    <message>
-        <location line="+0"/>
-        <location filename="../src/plugins/accessible/widgets/rangecontrols.cpp" line="+143"/>
+        <translation>На сторінку вліво</translation>
+    </message>
+    <message>
         <source>Page up</source>
-        <translation>Сторінка вгору</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>На сторінку вгору</translation>
+    </message>
+    <message>
         <source>Page right</source>
-        <translation>Сторінка праворуч</translation>
-    </message>
-    <message>
-        <location line="+0"/>
-        <location filename="../src/plugins/accessible/widgets/rangecontrols.cpp" line="+4"/>
+        <translation>На сторінку вправо</translation>
+    </message>
+    <message>
         <source>Page down</source>
-        <translation>Сторінка додолу</translation>
-    </message>
-    <message>
-        <location line="+2"/>
+        <translation>На сторінку вниз</translation>
+    </message>
+    <message>
         <source>Scroll left</source>
-        <translation>Прокрутити ліворуч</translation>
-    </message>
-    <message>
-        <location line="+0"/>
+        <translation>Прокрутити вліво</translation>
+    </message>
+    <message>
         <source>Scroll up</source>
         <translation>Прокрутити вгору</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Scroll right</source>
-        <translation>Прокрутити праворуч</translation>
-    </message>
-    <message>
-        <location line="+0"/>
+        <translation>Прокрутити вправо</translation>
+    </message>
+    <message>
         <source>Scroll down</source>
-        <translation>Прокрутити додолу</translation>
-    </message>
-    <message>
-        <location filename="../src/plugins/accessible/widgets/rangecontrols.cpp" line="-6"/>
+        <translation>Прокрутити донизу</translation>
+    </message>
+    <message>
         <source>Line up</source>
-        <translation>Вирівняти</translation>
-    </message>
-    <message>
-        <location line="+4"/>
+        <translation>На рядок вгору</translation>
+    </message>
+    <message>
         <source>Position</source>
-        <translation>Позиція</translation>
-    </message>
-    <message>
-        <location line="+4"/>
+        <translation>Положення</translation>
+    </message>
+    <message>
         <source>Line down</source>
-        <translation>Рядок униз</translation>
+        <translation>На рядок вниз</translation>
     </message>
 </context>
 <context>
     <name>QSharedMemory</name>
     <message>
-        <location filename="../src/corelib/kernel/qsharedmemory.cpp" line="+207"/>
         <source>%1: unable to set key on lock</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+81"/>
+        <translation>%1: неможливо встановити ключ для блокування</translation>
+    </message>
+    <message>
         <source>%1: create size is less then 0</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+168"/>
-        <location filename="../src/corelib/kernel/qsharedmemory_p.h" line="+148"/>
+        <translation>%1: розмір створення менший нуля</translation>
+    </message>
+    <message>
         <source>%1: unable to lock</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+22"/>
+        <translation>%1: неможливо заблокувати</translation>
+    </message>
+    <message>
         <source>%1: unable to unlock</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/corelib/kernel/qsharedmemory_unix.cpp" line="+78"/>
-        <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="+87"/>
+        <translation>%1: неможливо розблокувати</translation>
+    </message>
+    <message>
+        <source>%1: already exists</source>
+        <translation>%1: вже існує</translation>
+    </message>
+    <message>
+        <source>%1: doesn&apos;t exists</source>
+        <translation>%1: не існує</translation>
+    </message>
+    <message>
+        <source>%1: invalid size</source>
+        <translation>%1: неправильний розмір</translation>
+    </message>
+    <message>
+        <source>%1: out of resources</source>
+        <translation>%1: недостатньо ресурсів</translation>
+    </message>
+    <message>
         <source>%1: permission denied</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+4"/>
-        <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="-22"/>
-        <source>%1: already exists</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+4"/>
-        <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="+9"/>
-        <source>%1: doesn&apos;t exists</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+6"/>
-        <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="+9"/>
-        <source>%1: out of resources</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+4"/>
-        <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="+7"/>
+        <translation>%1: доступ заборонено</translation>
+    </message>
+    <message>
         <source>%1: unknown error %2</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+21"/>
-        <source>%1: key is empty</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+8"/>
-        <source>%1: unix key file doesn&apos;t exists</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+7"/>
-        <source>%1: ftok failed</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+51"/>
-        <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="+15"/>
+        <translation>%1: невідома помилка %2</translation>
+    </message>
+    <message>
+        <source>%1: key error</source>
+        <translation>%1: помилка ключа</translation>
+    </message>
+    <message>
         <source>%1: unable to make key</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+20"/>
+        <translation>%1: неможливо створити ключ</translation>
+    </message>
+    <message>
+        <source>%1: doesn&apos;t exist</source>
+        <translation>%1: не існує</translation>
+    </message>
+    <message>
+        <source>%1: key is empty</source>
+        <translation>%1: пустий ключ</translation>
+    </message>
+    <message>
+        <source>%1: UNIX key file doesn&apos;t exist</source>
+        <translation>%1: файл ключа UNIX не існує</translation>
+    </message>
+    <message>
+        <source>%1: ftok failed</source>
+        <translation>%1: збій ftok</translation>
+    </message>
+    <message>
         <source>%1: system-imposed size restrictions</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+53"/>
+        <translation>%1: обмеження розміру встановлені системою</translation>
+    </message>
+    <message>
         <source>%1: not attached</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="-27"/>
-        <source>%1: invalid size</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+68"/>
-        <source>%1: key error</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+38"/>
+        <translation>%1: не прикріплено</translation>
+    </message>
+    <message>
         <source>%1: size query failed</source>
-        <translation type="unfinished"></translation>
+        <translation>%1: збій запиту розміру</translation>
     </message>
 </context>
 <context>
     <name>QShortcut</name>
     <message>
-        <location filename="../src/gui/kernel/qkeysequence.cpp" line="+373"/>
         <source>Space</source>
-        <translation>Прогалина</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <extracomment>This and all following &quot;incomprehensible&quot; strings in QShortcut context are key names. Please use the localized names appearing on actual keyboards or whatever is commonly used.</extracomment>
+        <translation>Пропуск</translation>
+    </message>
+    <message>
         <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></translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>Return</translation>
+    </message>
+    <message>
         <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>Друкувати</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>Print</translation>
+    </message>
+    <message>
         <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>Ліворуч</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>Вліво</translation>
+    </message>
+    <message>
         <source>Up</source>
         <translation>Вгору</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Right</source>
-        <translation>Праворуч</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>Вправо</translation>
+    </message>
+    <message>
         <source>Down</source>
-        <translation>Додолу</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>Вниз</translation>
+    </message>
+    <message>
         <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>Menu</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>Меню</translation>
+    </message>
+    <message>
         <source>Help</source>
         <translation>Довідка</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Back</source>
         <translation>Назад</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Forward</source>
-        <translation>Forward</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>Вперед</translation>
+    </message>
+    <message>
         <source>Stop</source>
-        <translation>Stop</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>Стоп</translation>
+    </message>
+    <message>
         <source>Refresh</source>
-        <translation>Refresh</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>Оновити</translation>
+    </message>
+    <message>
         <source>Volume Down</source>
         <translation>Тихіше</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Volume Mute</source>
-        <translation>Приглушити</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>Вимкнути звук</translation>
+    </message>
+    <message>
         <source>Volume Up</source>
-        <translation>Голосніше</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>Гучніше</translation>
+    </message>
+    <message>
         <source>Bass Boost</source>
-        <translation>Супербас</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>Посилення басів</translation>
+    </message>
+    <message>
         <source>Bass Up</source>
-        <translation>Низькі частоти голосніше</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>Баси гучніше</translation>
+    </message>
+    <message>
         <source>Bass Down</source>
-        <translation>Низькі частоти тихіше</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>Баси тихіше</translation>
+    </message>
+    <message>
         <source>Treble Up</source>
-        <translation>Високі частоти голосніше</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>ВЧ гучніше</translation>
+    </message>
+    <message>
         <source>Treble Down</source>
-        <translation>Високі частоти тихіше</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>ВЧ тихіше</translation>
+    </message>
+    <message>
         <source>Media Play</source>
-        <translation>Запустити програвання</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>Відтворення</translation>
+    </message>
+    <message>
         <source>Media Stop</source>
-        <translation>Зупинити програвання</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>Зупинити відтворення</translation>
+    </message>
+    <message>
         <source>Media Previous</source>
-        <translation>Програти попередній</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>Відтворити попереднє</translation>
+    </message>
+    <message>
         <source>Media Next</source>
-        <translation>Програти наступний</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>Відтворити наступне</translation>
+    </message>
+    <message>
         <source>Media Record</source>
         <translation>Запис</translation>
     </message>
     <message>
-        <location line="+2"/>
+        <source>Media Pause</source>
+        <extracomment>Media player pause button</extracomment>
+        <translation>Пауза</translation>
+    </message>
+    <message>
+        <source>Toggle Media Play/Pause</source>
+        <extracomment>Media player button to toggle between playing and paused</extracomment>
+        <translation>Грати/Пауза</translation>
+    </message>
+    <message>
+        <source>Home Page</source>
+        <translation>Домашня сторінка</translation>
+    </message>
+    <message>
         <source>Favorites</source>
-        <translation>Улюблені</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>Обране</translation>
+    </message>
+    <message>
         <source>Search</source>
         <translation>Пошук</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Standby</source>
-        <translation>В режим чергування</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>Режим очікування</translation>
+    </message>
+    <message>
         <source>Open URL</source>
         <translation>Відкрити URL</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Launch Mail</source>
-        <translation>Запустити пошту</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>Пошта</translation>
+    </message>
+    <message>
         <source>Launch Media</source>
-        <translation>Запустити медіа</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>Програвач</translation>
+    </message>
+    <message>
         <source>Launch (0)</source>
         <translation>Запустити (0)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Launch (1)</source>
         <translation>Запустити (1)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Launch (2)</source>
         <translation>Запустити (2)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Launch (3)</source>
         <translation>Запустити (3)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Launch (4)</source>
         <translation>Запустити (4)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Launch (5)</source>
         <translation>Запустити (5)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Launch (6)</source>
         <translation>Запустити (6)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Launch (7)</source>
         <translation>Запустити (7)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Launch (8)</source>
         <translation>Запустити (8)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Launch (9)</source>
         <translation>Запустити (9)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Launch (A)</source>
         <translation>Запустити (A)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Launch (B)</source>
         <translation>Запустити (B)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Launch (C)</source>
         <translation>Запустити (C)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Launch (D)</source>
         <translation>Запустити (D)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Launch (E)</source>
         <translation>Запустити (E)</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Launch (F)</source>
         <translation>Запустити (F)</translation>
     </message>
     <message>
-        <location line="+4"/>
+        <source>Monitor Brightness Up</source>
+        <translation>Збільшити яскравість монітору</translation>
+    </message>
+    <message>
+        <source>Monitor Brightness Down</source>
+        <translation>Зменшити яскравість монітору</translation>
+    </message>
+    <message>
+        <source>Keyboard Light On/Off</source>
+        <translation>Вімк./Вимк. підсвітку клавіатури</translation>
+    </message>
+    <message>
+        <source>Keyboard Brightness Up</source>
+        <translation>Збільшити яскравість підсвітки клавіатури</translation>
+    </message>
+    <message>
+        <source>Keyboard Brightness Down</source>
+        <translation>Зменшити яскравість підсвітки клавіатури</translation>
+    </message>
+    <message>
+        <source>Power Off</source>
+        <translation>Вимкнути живлення</translation>
+    </message>
+    <message>
+        <source>Wake Up</source>
+        <translation>Прокинутись</translation>
+    </message>
+    <message>
+        <source>Eject</source>
+        <translation>Витягнути</translation>
+    </message>
+    <message>
+        <source>Screensaver</source>
+        <translation>Зберігач екрана</translation>
+    </message>
+    <message>
+        <source>WWW</source>
+        <translation>WWW</translation>
+    </message>
+    <message>
+        <source>Sleep</source>
+        <translation>Сплячий режим</translation>
+    </message>
+    <message>
+        <source>LightBulb</source>
+        <translation>Лампочка</translation>
+    </message>
+    <message>
+        <source>Shop</source>
+        <translation>Крамниця</translation>
+    </message>
+    <message>
+        <source>History</source>
+        <translation>Історія</translation>
+    </message>
+    <message>
+        <source>Add Favorite</source>
+        <translation>Додати до обраного</translation>
+    </message>
+    <message>
+        <source>Hot Links</source>
+        <translation>Гарячі посилання</translation>
+    </message>
+    <message>
+        <source>Adjust Brightness</source>
+        <translation>Налаштування яскравості</translation>
+    </message>
+    <message>
+        <source>Finance</source>
+        <translation>Фінанси</translation>
+    </message>
+    <message>
+        <source>Community</source>
+        <translation>Спільнота</translation>
+    </message>
+    <message>
+        <source>Audio Rewind</source>
+        <translation>Перемотка звуку на початок</translation>
+    </message>
+    <message>
+        <source>Back Forward</source>
+        <translation>Назад Вперед</translation>
+    </message>
+    <message>
+        <source>Application Left</source>
+        <translation>Додаток вліво</translation>
+    </message>
+    <message>
+        <source>Application Right</source>
+        <translation>Додаток вправо</translation>
+    </message>
+    <message>
+        <source>Book</source>
+        <translation>Книга</translation>
+    </message>
+    <message>
+        <source>CD</source>
+        <translation>CD</translation>
+    </message>
+    <message>
+        <source>Calculator</source>
+        <translation>Калькулятор</translation>
+    </message>
+    <message>
+        <source>Clear</source>
+        <translation>Очистити</translation>
+    </message>
+    <message>
+        <source>Clear Grab</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Close</source>
+        <translation>Закрити</translation>
+    </message>
+    <message>
+        <source>Copy</source>
+        <translation>Копіювати</translation>
+    </message>
+    <message>
+        <source>Cut</source>
+        <translation>Вирізати</translation>
+    </message>
+    <message>
+        <source>Display</source>
+        <translation>Дисплей</translation>
+    </message>
+    <message>
+        <source>DOS</source>
+        <translation>DOS</translation>
+    </message>
+    <message>
+        <source>Documents</source>
+        <translation>Документи</translation>
+    </message>
+    <message>
+        <source>Spreadsheet</source>
+        <translation>Електронна таблиця</translation>
+    </message>
+    <message>
+        <source>Browser</source>
+        <translation>Навігатор</translation>
+    </message>
+    <message>
+        <source>Game</source>
+        <translation>Гра</translation>
+    </message>
+    <message>
+        <source>Go</source>
+        <translation>Йти</translation>
+    </message>
+    <message>
+        <source>iTouch</source>
+        <translation>iTouch</translation>
+    </message>
+    <message>
+        <source>Logoff</source>
+        <translation>Вийти з системи</translation>
+    </message>
+    <message>
+        <source>Market</source>
+        <translation>Ринок</translation>
+    </message>
+    <message>
+        <source>Meeting</source>
+        <translation>Зустріч</translation>
+    </message>
+    <message>
+        <source>Keyboard Menu</source>
+        <translation>Клавіатурне меню</translation>
+    </message>
+    <message>
+        <source>Menu PB</source>
+        <translation>Меню PB</translation>
+    </message>
+    <message>
+        <source>My Sites</source>
+        <translation>Мої сайти</translation>
+    </message>
+    <message>
+        <source>News</source>
+        <translation>Новини</translation>
+    </message>
+    <message>
+        <source>Home Office</source>
+        <translation>Домашній офіс</translation>
+    </message>
+    <message>
+        <source>Option</source>
+        <translation>Опція</translation>
+    </message>
+    <message>
+        <source>Paste</source>
+        <translation>Вставити</translation>
+    </message>
+    <message>
+        <source>Phone</source>
+        <translation>Телефон</translation>
+    </message>
+    <message>
+        <source>Reply</source>
+        <translation>Відповісти</translation>
+    </message>
+    <message>
+        <source>Reload</source>
+        <translation>Перезавантажити</translation>
+    </message>
+    <message>
+        <source>Rotate Windows</source>
+        <translation>Обертати вікна</translation>
+    </message>
+    <message>
+        <source>Rotation PB</source>
+        <translation>Обертання PB</translation>
+    </message>
+    <message>
+        <source>Rotation KB</source>
+        <translation>Обертання KB</translation>
+    </message>
+    <message>
+        <source>Save</source>
+        <translation>Зберегти</translation>
+    </message>
+    <message>
+        <source>Send</source>
+        <translation>Надіслати</translation>
+    </message>
+    <message>
+        <source>Spellchecker</source>
+        <translation>Перевірка правопису</translation>
+    </message>
+    <message>
+        <source>Split Screen</source>
+        <translation>Розділити екран</translation>
+    </message>
+    <message>
+        <source>Support</source>
+        <translation>Підтримка</translation>
+    </message>
+    <message>
+        <source>Task Panel</source>
+        <translation>Панель задач</translation>
+    </message>
+    <message>
+        <source>Terminal</source>
+        <translation>Термінал</translation>
+    </message>
+    <message>
+        <source>Tools</source>
+        <translation>Інструменти</translation>
+    </message>
+    <message>
+        <source>Travel</source>
+        <translation>Подорож</translation>
+    </message>
+    <message>
+        <source>Video</source>
+        <translation>Відео</translation>
+    </message>
+    <message>
+        <source>Word Processor</source>
+        <translation>Текстовий процесор</translation>
+    </message>
+    <message>
+        <source>XFer</source>
+        <translation>XFer</translation>
+    </message>
+    <message>
+        <source>Zoom In</source>
+        <translation>Збільшити</translation>
+    </message>
+    <message>
+        <source>Zoom Out</source>
+        <translation>Зменшити</translation>
+    </message>
+    <message>
+        <source>Away</source>
+        <translation>Пішов</translation>
+    </message>
+    <message>
+        <source>Messenger</source>
+        <translation>Програма миттєвого зв&apos;язку</translation>
+    </message>
+    <message>
+        <source>WebCam</source>
+        <translation>Веб-камера</translation>
+    </message>
+    <message>
+        <source>Mail Forward</source>
+        <translation>Переслати лист</translation>
+    </message>
+    <message>
+        <source>Pictures</source>
+        <translation>Зображення</translation>
+    </message>
+    <message>
+        <source>Music</source>
+        <translation>Музика</translation>
+    </message>
+    <message>
+        <source>Battery</source>
+        <translation>Батарея</translation>
+    </message>
+    <message>
+        <source>Bluetooth</source>
+        <translation>Bluetooth</translation>
+    </message>
+    <message>
+        <source>Wireless</source>
+        <translation>Бездротова мережа</translation>
+    </message>
+    <message>
+        <source>Ultra Wide Band</source>
+        <translation>Ultra Wide Band</translation>
+    </message>
+    <message>
+        <source>Audio Forward</source>
+        <translation>Послідовно</translation>
+    </message>
+    <message>
+        <source>Audio Repeat</source>
+        <translation>Повторювати</translation>
+    </message>
+    <message>
+        <source>Audio Random Play</source>
+        <translation>Випадкове відтворення</translation>
+    </message>
+    <message>
+        <source>Subtitle</source>
+        <translation>Субтитри</translation>
+    </message>
+    <message>
+        <source>Audio Cycle Track</source>
+        <translation>Зациклити трек</translation>
+    </message>
+    <message>
+        <source>Time</source>
+        <translation>Час</translation>
+    </message>
+    <message>
+        <source>Select</source>
+        <translation>Обрати</translation>
+    </message>
+    <message>
+        <source>View</source>
+        <translation>Вид</translation>
+    </message>
+    <message>
+        <source>Top Menu</source>
+        <translation>Головне меню</translation>
+    </message>
+    <message>
+        <source>Suspend</source>
+        <translation>Призупинити</translation>
+    </message>
+    <message>
+        <source>Hibernate</source>
+        <translation>Приспати</translation>
+    </message>
+    <message>
         <source>Print Screen</source>
         <translation>Друк екрану</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Page Up</source>
-        <translation>Сторінка вгору</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>На сторінку вгору</translation>
+    </message>
+    <message>
         <source>Page Down</source>
-        <translation>Сторінка додолу</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>На сторінку вниз</translation>
+    </message>
+    <message>
         <source>Caps Lock</source>
-        <translation>Caps Lock</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>Верхній регістр</translation>
+    </message>
+    <message>
         <source>Num Lock</source>
-        <translation>Num Lock</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>Цифрові клавіші</translation>
+    </message>
+    <message>
         <source>Number Lock</source>
-        <translation>Number Lock</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>Цифрові клавіші</translation>
+    </message>
+    <message>
         <source>Scroll Lock</source>
         <translation>Scroll Lock</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Insert</source>
         <translation>Вставити</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Delete</source>
-        <translation>Вилучити</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>Видалити</translation>
+    </message>
+    <message>
         <source>Escape</source>
         <translation>Escape</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>System Request</source>
-        <translation>System Request</translation>
-    </message>
-    <message>
-        <location line="+4"/>
-        <source>Select</source>
-        <translation>Select</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>Системний запит</translation>
+    </message>
+    <message>
         <source>Yes</source>
         <translation>Так</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>No</source>
         <translation>Ні</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Context1</source>
-        <translation>Контекст1</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>Контекст 1</translation>
+    </message>
+    <message>
         <source>Context2</source>
-        <translation>Контекст2</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>Контекст 2</translation>
+    </message>
+    <message>
         <source>Context3</source>
-        <translation>Контекст3</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>Контекст 3</translation>
+    </message>
+    <message>
         <source>Context4</source>
-        <translation>Контекст4</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>Контекст 4</translation>
+    </message>
+    <message>
         <source>Call</source>
-        <translation>Виклик</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <extracomment>Button to start a call (note: a separate button is used to end the call)</extracomment>
+        <translation>Дзвонити</translation>
+    </message>
+    <message>
         <source>Hangup</source>
-        <translation>Покласти</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <extracomment>Button to end a call (note: a separate button is used to start the call)</extracomment>
+        <translation>Покласти слухавку</translation>
+    </message>
+    <message>
+        <source>Toggle Call/Hangup</source>
+        <extracomment>Button that will hang up if we&apos;re in call, or make a call if we&apos;re not.</extracomment>
+        <translation>Подзвонити/покласти слухавку</translation>
+    </message>
+    <message>
         <source>Flip</source>
-        <translation>Flip</translation>
-    </message>
-    <message>
-        <location line="+527"/>
-        <location line="+122"/>
+        <translation>Фліп</translation>
+    </message>
+    <message>
+        <source>Voice Dial</source>
+        <extracomment>Button to trigger voice dialling</extracomment>
+        <translation>Голосовий набір</translation>
+    </message>
+    <message>
+        <source>Last Number Redial</source>
+        <extracomment>Button to redial the last number called</extracomment>
+        <translation>Повторний набір</translation>
+    </message>
+    <message>
+        <source>Camera Shutter</source>
+        <extracomment>Button to trigger the camera shutter (take a picture)</extracomment>
+        <translation>Спуск камери</translation>
+    </message>
+    <message>
+        <source>Camera Focus</source>
+        <extracomment>Button to focus the camera</extracomment>
+        <translation>Сфокусувати камеру</translation>
+    </message>
+    <message>
+        <source>Kanji</source>
+        <translation>Кандзі</translation>
+    </message>
+    <message>
+        <source>Muhenkan</source>
+        <translation>Muhenkan</translation>
+    </message>
+    <message>
+        <source>Henkan</source>
+        <translation>Henkan</translation>
+    </message>
+    <message>
+        <source>Romaji</source>
+        <translation>Ромадзі</translation>
+    </message>
+    <message>
+        <source>Hiragana</source>
+        <translation>Хірагана</translation>
+    </message>
+    <message>
+        <source>Katakana</source>
+        <translation>Катакана</translation>
+    </message>
+    <message>
+        <source>Hiragana Katakana</source>
+        <translation>Хірагана Катакана</translation>
+    </message>
+    <message>
+        <source>Zenkaku</source>
+        <translation>Zenkaku</translation>
+    </message>
+    <message>
+        <source>Hankaku</source>
+        <translation>Hankaku</translation>
+    </message>
+    <message>
+        <source>Zenkaku Hankaku</source>
+        <translation>Zenkaku Hankaku</translation>
+    </message>
+    <message>
+        <source>Touroku</source>
+        <translation>Touroku</translation>
+    </message>
+    <message>
+        <source>Massyo</source>
+        <translation>Massyo</translation>
+    </message>
+    <message>
+        <source>Kana Lock</source>
+        <translation>Замкнути кана</translation>
+    </message>
+    <message>
+        <source>Kana Shift</source>
+        <translation>Кана Shift</translation>
+    </message>
+    <message>
+        <source>Eisu Shift</source>
+        <translation>Eisu Shift</translation>
+    </message>
+    <message>
+        <source>Eisu toggle</source>
+        <translation>Eisu перемкнути</translation>
+    </message>
+    <message>
+        <source>Code input</source>
+        <translation>Ввести код</translation>
+    </message>
+    <message>
+        <source>Multiple Candidate</source>
+        <translation>Декілька кандидатів</translation>
+    </message>
+    <message>
+        <source>Previous Candidate</source>
+        <translation>Попередній кандидат</translation>
+    </message>
+    <message>
+        <source>Hangul</source>
+        <translation>Хангиль</translation>
+    </message>
+    <message>
+        <source>Hangul Start</source>
+        <translation>Початок хангиля</translation>
+    </message>
+    <message>
+        <source>Hangul End</source>
+        <translation>Кінець хангиля</translation>
+    </message>
+    <message>
+        <source>Hangul Hanja</source>
+        <translation>Хангиль Ханча</translation>
+    </message>
+    <message>
+        <source>Hangul Jamo</source>
+        <translation>Хангиль Чамо</translation>
+    </message>
+    <message>
+        <source>Hangul Romaja</source>
+        <translation>Хангиль Romaja</translation>
+    </message>
+    <message>
+        <source>Hangul Jeonja</source>
+        <translation>Хангиль Jeonja</translation>
+    </message>
+    <message>
+        <source>Hangul Banja</source>
+        <translation>Хангиль Banja</translation>
+    </message>
+    <message>
+        <source>Hangul PreHanja</source>
+        <translation>Хангиль преханча</translation>
+    </message>
+    <message>
+        <source>Hangul PostHanja</source>
+        <translation>Хангиль постханча</translation>
+    </message>
+    <message>
+        <source>Hangul Special</source>
+        <translation>Хангиль спеціальний</translation>
+    </message>
+    <message>
         <source>Ctrl</source>
         <translation>Ctrl</translation>
     </message>
     <message>
-        <location line="-121"/>
-        <location line="+125"/>
         <source>Shift</source>
         <translation>Shift</translation>
     </message>
     <message>
-        <location line="-124"/>
-        <location line="+122"/>
         <source>Alt</source>
         <translation>Alt</translation>
     </message>
     <message>
-        <location line="-121"/>
-        <location line="+117"/>
         <source>Meta</source>
         <translation>Meta</translation>
     </message>
     <message>
-        <location line="-25"/>
         <source>+</source>
         <translation>+</translation>
     </message>
     <message>
-        <location line="+46"/>
         <source>F%1</source>
         <translation>F%1</translation>
     </message>
-    <message>
-        <location line="-720"/>
-        <source>Home Page</source>
-        <translation>Домашня сторінка</translation>
-    </message>
 </context>
 <context>
     <name>QSlider</name>
     <message>
-        <location filename="../src/plugins/accessible/widgets/rangecontrols.cpp" line="+151"/>
         <source>Page left</source>
-        <translation>Сторінка ліворуч</translation>
-    </message>
-    <message>
-        <location line="+0"/>
+        <translation>На сторінку вліво</translation>
+    </message>
+    <message>
         <source>Page up</source>
-        <translation>Сторінка вгору</translation>
-    </message>
-    <message>
-        <location line="+2"/>
+        <translation>На сторінку вгору</translation>
+    </message>
+    <message>
         <source>Position</source>
         <translation>Позиція</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Page right</source>
-        <translation>Сторінка праворуч</translation>
-    </message>
-    <message>
-        <location line="+0"/>
+        <translation>На сторінку вправо</translation>
+    </message>
+    <message>
         <source>Page down</source>
-        <translation>Сторінка додолу</translation>
+        <translation>На сторінку вниз</translation>
     </message>
 </context>
 <context>
     <name>QSocks5SocketEngine</name>
     <message>
-        <location filename="../src/network/socket/qsocks5socketengine.cpp" line="-67"/>
         <source>Connection to proxy refused</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+4"/>
+        <translation>Проксі-сервер відмовив у з’єднанні</translation>
+    </message>
+    <message>
         <source>Connection to proxy closed prematurely</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+4"/>
+        <translation>З’єднання з проксі-сервером було несподівано закрите</translation>
+    </message>
+    <message>
         <source>Proxy host not found</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+5"/>
+        <translation>Не знайдено вузол проксі-сервера</translation>
+    </message>
+    <message>
         <source>Connection to proxy timed out</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+17"/>
+        <translation>Час на з’єднання з проксі-сервером вичерпано</translation>
+    </message>
+    <message>
         <source>Proxy authentication failed</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>Збій авторизації з проксі-сервером</translation>
+    </message>
+    <message>
         <source>Proxy authentication failed: %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+9"/>
+        <translation>Збій авторизації з проксі-сервером: %1</translation>
+    </message>
+    <message>
         <source>SOCKS version 5 protocol error</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+19"/>
+        <translation>Помилка протоколу SOCKS версії 5</translation>
+    </message>
+    <message>
         <source>General SOCKSv5 server failure</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+4"/>
+        <translation>Загальний збій сервера SOCKSv5</translation>
+    </message>
+    <message>
         <source>Connection not allowed by SOCKSv5 server</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+16"/>
+        <translation>З’єднання не дозволене сервером SOCKSv5</translation>
+    </message>
+    <message>
         <source>TTL expired</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+4"/>
+        <translation>TTL минув</translation>
+    </message>
+    <message>
         <source>SOCKSv5 command not supported</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+4"/>
+        <translation>Команда SOCKSv5 не підтримується</translation>
+    </message>
+    <message>
         <source>Address type not supported</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+5"/>
+        <translation>Тип адреси не підтримується</translation>
+    </message>
+    <message>
         <source>Unknown SOCKSv5 proxy error code 0x%1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <source>Socks5 timeout error connecting to socks server</source>
-        <translation type="obsolete">Перевищено час очікування Socks5 для з&apos;єднання до сервера socks</translation>
-    </message>
-    <message>
-        <location line="+685"/>
+        <translation>Невідомий код помилки проксі-серверу SOCKSv5 0x%1</translation>
+    </message>
+    <message>
         <source>Network operation timed out</source>
-        <translation type="unfinished">Перевищено термін очікування мережевої дії</translation>
+        <translation>Час на мережеву операцію вичерпано</translation>
+    </message>
+</context>
+<context>
+    <name>QSoftKeyManager</name>
+    <message>
+        <source>Ok</source>
+        <translation>Ok</translation>
+    </message>
+    <message>
+        <source>Select</source>
+        <translation>Обрати</translation>
+    </message>
+    <message>
+        <source>Done</source>
+        <translation>Завершено</translation>
+    </message>
+    <message>
+        <source>Options</source>
+        <translation>Опції</translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation>Скасувати</translation>
+    </message>
+    <message>
+        <source>Exit</source>
+        <translation>Вийти</translation>
     </message>
 </context>
 <context>
     <name>QSpinBox</name>
     <message>
-        <location filename="../src/plugins/accessible/widgets/rangecontrols.cpp" line="-574"/>
         <source>More</source>
         <translation>Більше</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Less</source>
         <translation>Менше</translation>
     </message>
@@ -5557,162 +6409,238 @@
 <context>
     <name>QSql</name>
     <message>
-        <location filename="../src/qt3support/sql/q3sqlmanager_p.cpp" line="+890"/>
         <source>Delete</source>
-        <translation>Вилучити</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>Видалити</translation>
+    </message>
+    <message>
         <source>Delete this record?</source>
-        <translation>Вилучити цей запис?</translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <location line="+16"/>
-        <location line="+36"/>
+        <translation>Видалити цей запис?</translation>
+    </message>
+    <message>
         <source>Yes</source>
         <translation>Так</translation>
     </message>
     <message>
-        <location line="-51"/>
-        <location line="+16"/>
-        <location line="+36"/>
         <source>No</source>
         <translation>Ні</translation>
     </message>
     <message>
-        <location line="-44"/>
         <source>Insert</source>
         <translation>Вставити</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Update</source>
-        <translation>Поновити</translation>
-    </message>
-    <message>
-        <location line="+4"/>
+        <translation>Оновити</translation>
+    </message>
+    <message>
         <source>Save edits?</source>
-        <translation>Зберегти правлення?</translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>Зберегти зміни?</translation>
+    </message>
+    <message>
         <source>Cancel</source>
         <translation>Скасувати</translation>
     </message>
     <message>
-        <location line="+32"/>
         <source>Confirm</source>
         <translation>Підтвердити</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Cancel your edits?</source>
-        <translation>Скасувати правлення?</translation>
+        <translation>Скасувати ваші зміни?</translation>
     </message>
 </context>
 <context>
     <name>QSslSocket</name>
     <message>
-        <location filename="../src/network/ssl/qsslsocket_openssl.cpp" line="+569"/>
-        <source>Unable to write data: %1</source>
-        <translation>Неможливо записати дані: %1</translation>
-    </message>
-    <message>
-        <location line="+119"/>
-        <source>Error while reading: %1</source>
-        <translation>Помилка читання: %1</translation>
-    </message>
-    <message>
-        <location line="+96"/>
-        <source>Error during SSL handshake: %1</source>
-        <translation>Помилка квитування SSL: %1</translation>
-    </message>
-    <message>
-        <location line="-524"/>
+        <source>No error</source>
+        <translation>Немає помилки</translation>
+    </message>
+    <message>
+        <source>The issuer certificate could not be found</source>
+        <translation>Не вдалося знайти сертифікат видавця</translation>
+    </message>
+    <message>
+        <source>The certificate signature could not be decrypted</source>
+        <translation>Не вдалося дешифрувати підпис сертифіката</translation>
+    </message>
+    <message>
+        <source>The public key in the certificate could not be read</source>
+        <translation>Не вдалося прочитати відкритий ключ сертифіката</translation>
+    </message>
+    <message>
+        <source>The signature of the certificate is invalid</source>
+        <translation>Неправильний підпис сертифіката</translation>
+    </message>
+    <message>
+        <source>The certificate is not yet valid</source>
+        <translation>Сертифікати ще не є дійсним</translation>
+    </message>
+    <message>
+        <source>The certificate has expired</source>
+        <translation>Сертифікат застарів</translation>
+    </message>
+    <message>
+        <source>The certificate&apos;s notBefore field contains an invalid time</source>
+        <translation>Поле notBefore сертифіката містить неправильний час</translation>
+    </message>
+    <message>
+        <source>The certificate&apos;s notAfter field contains an invalid time</source>
+        <translation>Поле notAfter сертифіката містить неправильний час</translation>
+    </message>
+    <message>
+        <source>The certificate is self-signed, and untrusted</source>
+        <translation>Cертифікат самопідписаний та йому немає довіри</translation>
+    </message>
+    <message>
+        <source>The root certificate of the certificate chain is self-signed, and untrusted</source>
+        <translation>Кореневий сертифікат ланцюжка сертифікатів самопідписаний та йому немає довіри</translation>
+    </message>
+    <message>
+        <source>The issuer certificate of a locally looked up certificate could not be found</source>
+        <translation>Не вдалося знайти сертифікат видавця для сертифіката, що шукається локально</translation>
+    </message>
+    <message>
+        <source>No certificates could be verified</source>
+        <translation>Неможливо перевірити сертифікати</translation>
+    </message>
+    <message>
+        <source>One of the CA certificates is invalid</source>
+        <translation>Один з сертифікатів центру сертифікації неправильний</translation>
+    </message>
+    <message>
+        <source>The basicConstraints path length parameter has been exceeded</source>
+        <translation>Перевищено довжину шляху параметру basicConstraints</translation>
+    </message>
+    <message>
+        <source>The supplied certificate is unsuitable for this purpose</source>
+        <translation>Наданий сертифікат непридатний для даної мети</translation>
+    </message>
+    <message>
+        <source>The root CA certificate is not trusted for this purpose</source>
+        <translation>Кореневий сертифікат центру сертифікації не є надійним для даної мети</translation>
+    </message>
+    <message>
+        <source>The root CA certificate is marked to reject the specified purpose</source>
+        <translation>Кореневий сертифікат центру сертифікації помічений на відхилення для даної мети</translation>
+    </message>
+    <message>
+        <source>The current candidate issuer certificate was rejected because its subject name did not match the issuer name of the current certificate</source>
+        <translation>Сертифікат поточного кандидата видавця було відхилено, оскільки назва теми не збігається з іменем видавця поточного сертифіката</translation>
+    </message>
+    <message>
+        <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>Сертифікат поточного кандидата видавця було відхилено, оскільки представлені ім&apos;я видавця та серійний номер не збігаються з ідентифікатором ключа сертифікаційного органу поточного сертифіката</translation>
+    </message>
+    <message>
+        <source>The peer did not present any certificate</source>
+        <translation>Інша сторона не надала жодного сертифіката</translation>
+    </message>
+    <message>
+        <source>The host name did not match any of the valid hosts for this certificate</source>
+        <translation>Назва вузла не збігається з жодною з припустимих назв вузлів для цього сертифіката</translation>
+    </message>
+    <message>
+        <source>Unknown error</source>
+        <translation>Невідома помилка</translation>
+    </message>
+    <message>
         <source>Error creating SSL context (%1)</source>
         <translation>Помилка створення контексту SSL (%1)</translation>
     </message>
     <message>
-        <location line="+25"/>
         <source>Invalid or empty cipher list (%1)</source>
         <translation>Неправильний або порожній список шифрів (%1)</translation>
     </message>
     <message>
-        <location line="+62"/>
-        <source>Error creating SSL session, %1</source>
-        <translation>Помилка створення сеансу SSL, %1</translation>
-    </message>
-    <message>
-        <location line="+15"/>
-        <source>Error creating SSL session: %1</source>
-        <translation>Помилка створення сеансу SSL: %1</translation>
-    </message>
-    <message>
-        <location line="-61"/>
         <source>Cannot provide a certificate with no key, %1</source>
         <translation>Неможливо надати сертифікат без ключа, %1</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Error loading local certificate, %1</source>
         <translation>Помилка завантаження локального сертифіката, %1</translation>
     </message>
     <message>
-        <location line="+12"/>
         <source>Error loading private key, %1</source>
-        <translation>Помилка завантаження приватного ключа, %1</translation>
-    </message>
-    <message>
-        <source>Private key do not certificate public key, %1</source>
-        <translation type="obsolete">Приватний ключ не засвідчує публічний ключ, %1</translation>
-    </message>
-    <message>
-        <location line="+7"/>
-        <source>Private key does not certificate public key, %1</source>
-        <translation type="unfinished"></translation>
+        <translation>Помилка завантаження закритого ключа, %1</translation>
+    </message>
+    <message>
+        <source>Private key does not certify public key, %1</source>
+        <translation>Закритий ключ не сертифікує відкритий, %1</translation>
+    </message>
+    <message>
+        <source>Error creating SSL session, %1</source>
+        <translation>Помилка створення сесії SSL, %1</translation>
+    </message>
+    <message>
+        <source>Error creating SSL session: %1</source>
+        <translation>Помилка створення сесії SSL: %1</translation>
+    </message>
+    <message>
+        <source>Unable to write data: %1</source>
+        <translation>Неможливо записати дані: %1</translation>
+    </message>
+    <message>
+        <source>Unable to decrypt data: %1</source>
+        <translation>Неможливо дешифрувати дані, %1</translation>
+    </message>
+    <message>
+        <source>Error while reading: %1</source>
+        <translation>Помилка читання: %1</translation>
+    </message>
+    <message>
+        <source>Error during SSL handshake: %1</source>
+        <translation>Помилка рукостискання SSL: %1</translation>
+    </message>
+</context>
+<context>
+    <name>QStateMachine</name>
+    <message>
+        <source>Missing initial state in compound state &apos;%1&apos;</source>
+        <translation>Відсутній початковий стан в складеному стані ’%1’</translation>
+    </message>
+    <message>
+        <source>Missing default state in history state &apos;%1&apos;</source>
+        <translation>Відсутній типовий стан в історичному стані ’%1’</translation>
+    </message>
+    <message>
+        <source>No common ancestor for targets and source of transition from state &apos;%1&apos;</source>
+        <translation>Немає спільного предка для цілей та джерел переходу зі стану &apos;%1&apos;</translation>
+    </message>
+    <message>
+        <source>Unknown error</source>
+        <translation>Невідома помилка</translation>
     </message>
 </context>
 <context>
     <name>QSystemSemaphore</name>
     <message>
-        <location filename="../src/corelib/kernel/qsystemsemaphore_unix.cpp" line="-41"/>
-        <location filename="../src/corelib/kernel/qsystemsemaphore_win.cpp" line="+66"/>
+        <source>%1: permission denied</source>
+        <translation>%1: доступ заборонено</translation>
+    </message>
+    <message>
+        <source>%1: already exists</source>
+        <translation>%1: вже існує</translation>
+    </message>
+    <message>
+        <source>%1: does not exist</source>
+        <translation>%1: не існує</translation>
+    </message>
+    <message>
         <source>%1: out of resources</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="-13"/>
-        <location filename="../src/corelib/kernel/qsystemsemaphore_win.cpp" line="+4"/>
-        <source>%1: permission denied</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+4"/>
-        <source>%1: already exists</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+4"/>
-        <source>%1: does not exist</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+9"/>
-        <location filename="../src/corelib/kernel/qsystemsemaphore_win.cpp" line="+3"/>
+        <translation>%1: недостатньо ресурсів</translation>
+    </message>
+    <message>
         <source>%1: unknown error %2</source>
-        <translation type="unfinished"></translation>
+        <translation>%1: невідома помилка %2</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>Неможливо відкрити з&apos;єднання</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Unable to use database</source>
         <translation>Неможливо використати базу даних</translation>
     </message>
@@ -5720,82 +6648,63 @@
 <context>
     <name>QTabBar</name>
     <message>
-        <location filename="../src/plugins/accessible/widgets/complexwidgets.cpp" line="-326"/>
         <source>Scroll Left</source>
-        <translation>Прокрутити ліворуч</translation>
-    </message>
-    <message>
-        <location line="+0"/>
+        <translation>Прокрутити вліво</translation>
+    </message>
+    <message>
         <source>Scroll Right</source>
-        <translation>Прокрутити праворуч</translation>
+        <translation>Прокрутити вправо</translation>
     </message>
 </context>
 <context>
     <name>QTcpServer</name>
     <message>
-        <source>Socket operation unsupported</source>
-        <translation type="obsolete">Дії з сокетами не підтримуються</translation>
-    </message>
-    <message>
-        <location filename="../src/network/socket/qtcpserver.cpp" line="+282"/>
         <source>Operation on socket is not supported</source>
-        <translation type="unfinished"></translation>
+        <translation>Непідтримувана для сокета операція</translation>
     </message>
 </context>
 <context>
     <name>QTextControl</name>
     <message>
-        <location filename="../src/gui/text/qtextcontrol.cpp" line="+1973"/>
         <source>&amp;Undo</source>
         <translation>&amp;Повернути</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>&amp;Redo</source>
         <translation>П&amp;овторити</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Cu&amp;t</source>
         <translation>Ви&amp;різати</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>&amp;Copy</source>
         <translation>&amp;Копіювати</translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Copy &amp;Link Location</source>
-        <translation>Копіювати адресу &amp;посилання</translation>
-    </message>
-    <message>
-        <location line="+6"/>
+        <translation>Копіювати &amp;адресу посилання</translation>
+    </message>
+    <message>
         <source>&amp;Paste</source>
         <translation>&amp;Вставити</translation>
     </message>
     <message>
-        <location line="+3"/>
         <source>Delete</source>
-        <translation>Вилучити</translation>
-    </message>
-    <message>
-        <location line="+7"/>
+        <translation>Видалити</translation>
+    </message>
+    <message>
         <source>Select All</source>
-        <translation>Вибрати все</translation>
+        <translation>Виділити все</translation>
     </message>
 </context>
 <context>
     <name>QToolButton</name>
     <message>
-        <location filename="../src/plugins/accessible/widgets/simplewidgets.cpp" line="+254"/>
-        <location line="+6"/>
         <source>Press</source>
-        <translation>Натиснути</translation>
-    </message>
-    <message>
-        <location line="-4"/>
-        <location line="+8"/>
+        <translation>Натисніть</translation>
+    </message>
+    <message>
         <source>Open</source>
         <translation>Відкрити</translation>
     </message>
@@ -5803,7 +6712,6 @@
 <context>
     <name>QUdpSocket</name>
     <message>
-        <location filename="../src/network/socket/qudpsocket.cpp" line="+169"/>
         <source>This platform does not support IPv6</source>
         <translation>Ця платформа не підтримує IPv6</translation>
     </message>
@@ -5811,12 +6719,10 @@
 <context>
     <name>QUndoGroup</name>
     <message>
-        <location filename="../src/gui/util/qundogroup.cpp" line="+386"/>
         <source>Undo</source>
         <translation>Повернути</translation>
     </message>
     <message>
-        <location line="+28"/>
         <source>Redo</source>
         <translation>Повторити</translation>
     </message>
@@ -5824,7 +6730,6 @@
 <context>
     <name>QUndoModel</name>
     <message>
-        <location filename="../src/gui/util/qundoview.cpp" line="+101"/>
         <source>&lt;empty&gt;</source>
         <translation>&lt;порожньо&gt;</translation>
     </message>
@@ -5832,12 +6737,10 @@
 <context>
     <name>QUndoStack</name>
     <message>
-        <location filename="../src/gui/util/qundostack.cpp" line="+834"/>
         <source>Undo</source>
         <translation>Повернути</translation>
     </message>
     <message>
-        <location line="+27"/>
         <source>Redo</source>
         <translation>Повторити</translation>
     </message>
@@ -5845,640 +6748,789 @@
 <context>
     <name>QUnicodeControlCharacterMenu</name>
     <message>
-        <location filename="../src/gui/text/qtextcontrol.cpp" line="+884"/>
         <source>LRM Left-to-right mark</source>
-        <translation>LRM позначка зліва направо</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>LRM Ознака зліва направо</translation>
+    </message>
+    <message>
         <source>RLM Right-to-left mark</source>
-        <translation>RLM позначка справа наліво</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>RLM Ознака справа наліво</translation>
+    </message>
+    <message>
         <source>ZWJ Zero width joiner</source>
-        <translation>ZWJ з&apos;єднувач нульової ширини</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>ZWJ Об’єднувач нульової ширини</translation>
+    </message>
+    <message>
         <source>ZWNJ Zero width non-joiner</source>
-        <translation>ZWNJ нез&apos;єднувач нульової ширини</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>ZWNJ Необ’єднувач нульової довжини</translation>
+    </message>
+    <message>
         <source>ZWSP Zero width space</source>
-        <translation>ZWSP прогалина нульової ширини</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>ZWSP Пропуск нульової ширини</translation>
+    </message>
+    <message>
         <source>LRE Start of left-to-right embedding</source>
-        <translation>LRE початок вбудовування зліва направо</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>LRE Початок вбудованого напису зліва направо</translation>
+    </message>
+    <message>
         <source>RLE Start of right-to-left embedding</source>
-        <translation>RLE початок вбудовування справа наліво</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>RLE Початок вбудованого напису справа наліво</translation>
+    </message>
+    <message>
         <source>LRO Start of left-to-right override</source>
-        <translation>LRO початок заміщення зліва направо</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>LRO Початок заміни напису зліва направо</translation>
+    </message>
+    <message>
         <source>RLO Start of right-to-left override</source>
-        <translation>RLO початок заміщення справа наліво</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>RLO Початок заміни напису справа наліво</translation>
+    </message>
+    <message>
         <source>PDF Pop directional formatting</source>
-        <translation>PDF Pop напрямне форматування</translation>
-    </message>
-    <message>
-        <location line="+6"/>
+        <translation>PDF Забрати направлене форматування</translation>
+    </message>
+    <message>
         <source>Insert Unicode control character</source>
-        <translation>Вставити контрольний символ Unicode</translation>
+        <translation>Вставити керуючий символ Unicode</translation>
     </message>
 </context>
 <context>
     <name>QWebFrame</name>
     <message>
-        <location filename="../src/3rdparty/webkit/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp" line="+692"/>
         <source>Request cancelled</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+17"/>
+        <translation>Запит скасовано</translation>
+    </message>
+    <message>
         <source>Request blocked</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+7"/>
+        <translation>Запит блоковано</translation>
+    </message>
+    <message>
         <source>Cannot show URL</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+6"/>
-        <source>Frame load interruped by policy change</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+6"/>
+        <translation>Неможливо показати URL</translation>
+    </message>
+    <message>
+        <source>Frame load interrupted by policy change</source>
+        <translation>Завантаження фрейму було перерване зміною політики</translation>
+    </message>
+    <message>
         <source>Cannot show mimetype</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+6"/>
+        <translation>Неможливо показати тип MIME</translation>
+    </message>
+    <message>
         <source>File does not exist</source>
-        <translation type="unfinished"></translation>
+        <translation>Файл не існує</translation>
     </message>
 </context>
 <context>
     <name>QWebPage</name>
     <message>
-        <location filename="../src/3rdparty/webkit/WebCore/platform/network/qt/QNetworkReplyHandler.cpp" line="+382"/>
+        <source>Redirection limit reached</source>
+        <translation>Ліміт перенаправлень вичерпано</translation>
+    </message>
+    <message>
         <source>Bad HTTP request</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/3rdparty/webkit/WebCore/platform/qt/Localizations.cpp" line="+42"/>
+        <translation>Поганий запит HTTP</translation>
+    </message>
+    <message numerus="yes">
+        <source>%n file(s)</source>
+        <comment>number of chosen file</comment>
+        <translation>
+            <numerusform>%n файл</numerusform>
+            <numerusform>%n файли</numerusform>
+            <numerusform>%n файлів</numerusform>
+        </translation>
+    </message>
+    <message>
         <source>Submit</source>
         <comment>default label for Submit buttons in forms on web pages</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+5"/>
+        <translation>Надіслати</translation>
+    </message>
+    <message>
         <source>Submit</source>
         <comment>Submit (input element) alt text for &lt;input&gt; elements with no alt, title, or value</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+5"/>
+        <translation>Надіслати</translation>
+    </message>
+    <message>
         <source>Reset</source>
         <comment>default label for Reset buttons in forms on web pages</comment>
-        <translation type="unfinished">Скинути</translation>
-    </message>
-    <message>
-        <location line="+10"/>
+        <translation>Скинути</translation>
+    </message>
+    <message>
         <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 type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+5"/>
+        <translation>Це пошуковий покажчик. Введіть ключові слова пошуку: </translation>
+    </message>
+    <message>
         <source>Choose File</source>
         <comment>title for file button used in HTML forms</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+5"/>
+        <translation>Оберіть файл</translation>
+    </message>
+    <message>
         <source>No file selected</source>
         <comment>text to display in file button used in HTML forms when no file is selected</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+5"/>
+        <translation>Файл не обрано</translation>
+    </message>
+    <message>
         <source>Open in New Window</source>
         <comment>Open in New Window context menu item</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+5"/>
+        <translation>Відкрити в новому вікні</translation>
+    </message>
+    <message>
         <source>Save Link...</source>
         <comment>Download Linked File context menu item</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+5"/>
+        <translation>Зберегти посилання...</translation>
+    </message>
+    <message>
         <source>Copy Link</source>
         <comment>Copy Link context menu item</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+5"/>
+        <translation>Копіювати посилання</translation>
+    </message>
+    <message>
         <source>Open Image</source>
         <comment>Open Image in New Window context menu item</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+5"/>
+        <translation>Відкрити зображення</translation>
+    </message>
+    <message>
         <source>Save Image</source>
         <comment>Download Image context menu item</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+5"/>
+        <translation>Зберегти зображення</translation>
+    </message>
+    <message>
         <source>Copy Image</source>
         <comment>Copy Link context menu item</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+5"/>
+        <translation>Копіювати зображення</translation>
+    </message>
+    <message>
         <source>Open Frame</source>
         <comment>Open Frame in New Window context menu item</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+5"/>
+        <translation>Відкрити фрейм</translation>
+    </message>
+    <message>
         <source>Copy</source>
         <comment>Copy context menu item</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+5"/>
+        <translation>Копіювати</translation>
+    </message>
+    <message>
         <source>Go Back</source>
         <comment>Back context menu item</comment>
-        <translation type="unfinished">Піти назад</translation>
-    </message>
-    <message>
-        <location line="+5"/>
+        <translation>Йти назад</translation>
+    </message>
+    <message>
         <source>Go Forward</source>
         <comment>Forward context menu item</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+5"/>
+        <translation>Йти вперед</translation>
+    </message>
+    <message>
         <source>Stop</source>
         <comment>Stop context menu item</comment>
-        <translation type="unfinished">Stop</translation>
-    </message>
-    <message>
-        <location line="+5"/>
+        <translation>Зупинити</translation>
+    </message>
+    <message>
         <source>Reload</source>
         <comment>Reload context menu item</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+5"/>
+        <translation>Перезавантажити</translation>
+    </message>
+    <message>
         <source>Cut</source>
         <comment>Cut context menu item</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+5"/>
+        <translation>Вирізати</translation>
+    </message>
+    <message>
         <source>Paste</source>
         <comment>Paste context menu item</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+5"/>
+        <translation>Вставити</translation>
+    </message>
+    <message>
         <source>No Guesses Found</source>
         <comment>No Guesses Found context menu item</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+5"/>
+        <translation>Підказок не знайдено</translation>
+    </message>
+    <message>
         <source>Ignore</source>
         <comment>Ignore Spelling context menu item</comment>
-        <translation type="unfinished">Пропустити</translation>
-    </message>
-    <message>
-        <location line="+5"/>
+        <translation>Ігнорувати</translation>
+    </message>
+    <message>
         <source>Add To Dictionary</source>
         <comment>Learn Spelling context menu item</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+5"/>
+        <translation>Додати до словника</translation>
+    </message>
+    <message>
         <source>Search The Web</source>
         <comment>Search The Web context menu item</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+5"/>
+        <translation>Пошук в мережі</translation>
+    </message>
+    <message>
         <source>Look Up In Dictionary</source>
         <comment>Look Up in Dictionary context menu item</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+5"/>
+        <translation>Шукати в словнику</translation>
+    </message>
+    <message>
         <source>Open Link</source>
         <comment>Open Link context menu item</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+5"/>
+        <translation>Відкрити посилання</translation>
+    </message>
+    <message>
         <source>Ignore</source>
         <comment>Ignore Grammar context menu item</comment>
-        <translation type="unfinished">Пропустити</translation>
-    </message>
-    <message>
-        <location line="+5"/>
+        <translation>Ігнорувати</translation>
+    </message>
+    <message>
         <source>Spelling</source>
         <comment>Spelling and Grammar context sub-menu item</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+5"/>
+        <translation>Правопис</translation>
+    </message>
+    <message>
         <source>Show Spelling and Grammar</source>
         <comment>menu item title</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>Показати правопис та граматику</translation>
+    </message>
+    <message>
         <source>Hide Spelling and Grammar</source>
         <comment>menu item title</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+5"/>
+        <translation>Сховати правопис та граматику</translation>
+    </message>
+    <message>
         <source>Check Spelling</source>
         <comment>Check spelling context menu item</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+5"/>
+        <translation>Перевірка правопису</translation>
+    </message>
+    <message>
         <source>Check Spelling While Typing</source>
         <comment>Check spelling while typing context menu item</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+5"/>
+        <translation>Перевіряти правопис під час набору</translation>
+    </message>
+    <message>
         <source>Check Grammar With Spelling</source>
         <comment>Check grammar with spelling context menu item</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+5"/>
+        <translation>Перевіряти граматику разом з правописом</translation>
+    </message>
+    <message>
         <source>Fonts</source>
         <comment>Font context sub-menu item</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+5"/>
+        <translation>Шрифти</translation>
+    </message>
+    <message>
         <source>Bold</source>
         <comment>Bold context menu item</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+5"/>
+        <translation>Жирний</translation>
+    </message>
+    <message>
         <source>Italic</source>
         <comment>Italic context menu item</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+5"/>
+        <translation>Курсив</translation>
+    </message>
+    <message>
         <source>Underline</source>
         <comment>Underline context menu item</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+5"/>
+        <translation>Підкреслений</translation>
+    </message>
+    <message>
         <source>Outline</source>
         <comment>Outline context menu item</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+5"/>
+        <translation>Контур</translation>
+    </message>
+    <message>
         <source>Direction</source>
         <comment>Writing direction context sub-menu item</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+5"/>
+        <translation>Напрямок</translation>
+    </message>
+    <message>
         <source>Text Direction</source>
         <comment>Text direction context sub-menu item</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+5"/>
+        <translation>Напрямок тексту</translation>
+    </message>
+    <message>
         <source>Default</source>
         <comment>Default writing direction context menu item</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+5"/>
-        <source>LTR</source>
+        <translation>Типово</translation>
+    </message>
+    <message>
+        <source>Left to Right</source>
         <comment>Left to Right context menu item</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+5"/>
-        <source>RTL</source>
+        <translation>Зліва направо</translation>
+    </message>
+    <message>
+        <source>Right to Left</source>
         <comment>Right to Left context menu item</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+5"/>
+        <translation>Справа наліво</translation>
+    </message>
+    <message>
         <source>Inspect</source>
         <comment>Inspect Element context menu item</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+5"/>
+        <translation>Інспектувати</translation>
+    </message>
+    <message>
         <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 type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+5"/>
+        <translation>Немає нещодавніх пошуків</translation>
+    </message>
+    <message>
         <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 type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+5"/>
+        <translation>Нещодавні пошуки</translation>
+    </message>
+    <message>
         <source>Clear recent searches</source>
         <comment>menu item in Recent Searches menu that empties menu&apos;s contents</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+75"/>
+        <translation>Очистити нещодавні пошуки</translation>
+    </message>
+    <message>
+        <source>Missing Plug-in</source>
+        <comment>Label text to be used when a plug-in is missing</comment>
+        <translation>Додаток відсутній</translation>
+    </message>
+    <message>
         <source>Unknown</source>
         <comment>Unknown filesize FTP directory listing item</comment>
-        <translation type="unfinished">Невідомо</translation>
-    </message>
-    <message>
-        <location line="+5"/>
+        <translation>Невідомо</translation>
+    </message>
+    <message>
         <source>%1 (%2x%3 pixels)</source>
         <comment>Title string for images</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/3rdparty/webkit/WebKit/qt/WebCoreSupport/InspectorClientQt.cpp" line="+185"/>
-        <source>Web Inspector - %2</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/3rdparty/webkit/WebCore/platform/qt/ScrollbarQt.cpp" line="+58"/>
+        <translation>%1 (%2x%3 пікселів)</translation>
+    </message>
+    <message>
+        <source>Loading...</source>
+        <comment>Media controller status message when the media is loading</comment>
+        <translation>Завантаження...</translation>
+    </message>
+    <message>
+        <source>Live Broadcast</source>
+        <comment>Media controller status message when watching a live broadcast</comment>
+        <translation>Мовлення наживо</translation>
+    </message>
+    <message>
+        <source>Audio Element</source>
+        <comment>Media controller element</comment>
+        <translation>Аудіо-елемент</translation>
+    </message>
+    <message>
+        <source>Video Element</source>
+        <comment>Media controller element</comment>
+        <translation>Відео-елемент</translation>
+    </message>
+    <message>
+        <source>Mute Button</source>
+        <comment>Media controller element</comment>
+        <translation>Кнопка вимикання звуку</translation>
+    </message>
+    <message>
+        <source>Unmute Button</source>
+        <comment>Media controller element</comment>
+        <translation>Кнопка вмикання звуку</translation>
+    </message>
+    <message>
+        <source>Play Button</source>
+        <comment>Media controller element</comment>
+        <translation>Кнопка відтворення</translation>
+    </message>
+    <message>
+        <source>Pause Button</source>
+        <comment>Media controller element</comment>
+        <translation>Кнопка паузи</translation>
+    </message>
+    <message>
+        <source>Slider</source>
+        <comment>Media controller element</comment>
+        <translation>Повзунок</translation>
+    </message>
+    <message>
+        <source>Slider Thumb</source>
+        <comment>Media controller element</comment>
+        <translation>Держак повзунка</translation>
+    </message>
+    <message>
+        <source>Rewind Button</source>
+        <comment>Media controller element</comment>
+        <translation>Кнопка перемотки на початок</translation>
+    </message>
+    <message>
+        <source>Return to Real-time Button</source>
+        <comment>Media controller element</comment>
+        <translation>Кнопка повернення в реальний час</translation>
+    </message>
+    <message>
+        <source>Elapsed Time</source>
+        <comment>Media controller element</comment>
+        <translation>Пройшло часу</translation>
+    </message>
+    <message>
+        <source>Remaining Time</source>
+        <comment>Media controller element</comment>
+        <translation>Залишилось часу</translation>
+    </message>
+    <message>
+        <source>Status Display</source>
+        <comment>Media controller element</comment>
+        <translation>Відображення стану</translation>
+    </message>
+    <message>
+        <source>Fullscreen Button</source>
+        <comment>Media controller element</comment>
+        <translation>Кнопка повноекранного режиму</translation>
+    </message>
+    <message>
+        <source>Seek Forward Button</source>
+        <comment>Media controller element</comment>
+        <translation>Кнопка перемотки вперед</translation>
+    </message>
+    <message>
+        <source>Seek Back Button</source>
+        <comment>Media controller element</comment>
+        <translation>Кнопка перемотки назад</translation>
+    </message>
+    <message>
+        <source>Audio element playback controls and status display</source>
+        <comment>Media controller element</comment>
+        <translation>Елементи керування відтворенням звуку та відображення стану</translation>
+    </message>
+    <message>
+        <source>Video element playback controls and status display</source>
+        <comment>Media controller element</comment>
+        <translation>Елементи керування відтворенням відео та відображення стану</translation>
+    </message>
+    <message>
+        <source>Mute audio tracks</source>
+        <comment>Media controller element</comment>
+        <translation>Вимкнути звукові доріжки</translation>
+    </message>
+    <message>
+        <source>Unmute audio tracks</source>
+        <comment>Media controller element</comment>
+        <translation>Увімкнути звукові доріжки</translation>
+    </message>
+    <message>
+        <source>Begin playback</source>
+        <comment>Media controller element</comment>
+        <translation>Почати відтворення</translation>
+    </message>
+    <message>
+        <source>Pause playback</source>
+        <comment>Media controller element</comment>
+        <translation>Призупинити відтворення</translation>
+    </message>
+    <message>
+        <source>Movie time scrubber</source>
+        <comment>Media controller element</comment>
+        <translation>Повзунок часу фільму</translation>
+    </message>
+    <message>
+        <source>Movie time scrubber thumb</source>
+        <comment>Media controller element</comment>
+        <translation>Держак повзунка часу фільму</translation>
+    </message>
+    <message>
+        <source>Rewind movie</source>
+        <comment>Media controller element</comment>
+        <translation>Перемотка фільму на початок</translation>
+    </message>
+    <message>
+        <source>Return streaming movie to real-time</source>
+        <comment>Media controller element</comment>
+        <translation>Повернути потокове відео до реального часу</translation>
+    </message>
+    <message>
+        <source>Current movie time</source>
+        <comment>Media controller element</comment>
+        <translation>Поточний час фільму</translation>
+    </message>
+    <message>
+        <source>Remaining movie time</source>
+        <comment>Media controller element</comment>
+        <translation>Час до кінця фільму</translation>
+    </message>
+    <message>
+        <source>Current movie status</source>
+        <comment>Media controller element</comment>
+        <translation>Поточний стан фільму</translation>
+    </message>
+    <message>
+        <source>Play movie in full-screen mode</source>
+        <comment>Media controller element</comment>
+        <translation>Відтворити фільм в повноекранному режимі</translation>
+    </message>
+    <message>
+        <source>Seek quickly back</source>
+        <comment>Media controller element</comment>
+        <translation>Швидка перемотка назад</translation>
+    </message>
+    <message>
+        <source>Seek quickly forward</source>
+        <comment>Media controller element</comment>
+        <translation>Швидка перемотка вперед</translation>
+    </message>
+    <message>
+        <source>Indefinite time</source>
+        <comment>Media time description</comment>
+        <translation>Невизначений час</translation>
+    </message>
+    <message>
+        <source>%1 days %2 hours %3 minutes %4 seconds</source>
+        <comment>Media time description</comment>
+        <translation>%1 днів %2 годин %3 хвилин %4 секунд</translation>
+    </message>
+    <message>
+        <source>%1 hours %2 minutes %3 seconds</source>
+        <comment>Media time description</comment>
+        <translation>%1 годин %2 хвилин %3 секунд</translation>
+    </message>
+    <message>
+        <source>%1 minutes %2 seconds</source>
+        <comment>Media time description</comment>
+        <translation>%1 хвилин %2 секунд</translation>
+    </message>
+    <message>
+        <source>%1 seconds</source>
+        <comment>Media time description</comment>
+        <translation>%1 секунд</translation>
+    </message>
+    <message>
         <source>Scroll here</source>
-        <translation type="unfinished">Прокрутити сюди</translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>Прокрутити сюди</translation>
+    </message>
+    <message>
         <source>Left edge</source>
-        <translation type="unfinished">Лівий край</translation>
-    </message>
-    <message>
-        <location line="+0"/>
+        <translation>До лівої границі</translation>
+    </message>
+    <message>
         <source>Top</source>
-        <translation type="unfinished">Верх</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>Вгору</translation>
+    </message>
+    <message>
         <source>Right edge</source>
-        <translation type="unfinished">Правий край</translation>
-    </message>
-    <message>
-        <location line="+0"/>
+        <translation>До правої границі</translation>
+    </message>
+    <message>
         <source>Bottom</source>
-        <translation type="unfinished">Низ</translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>Донизу</translation>
+    </message>
+    <message>
         <source>Page left</source>
-        <translation type="unfinished">Сторінка ліворуч</translation>
-    </message>
-    <message>
-        <location line="+0"/>
+        <translation>На сторінку вліво</translation>
+    </message>
+    <message>
         <source>Page up</source>
-        <translation type="unfinished">Сторінка вгору</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>На сторінку вгору</translation>
+    </message>
+    <message>
         <source>Page right</source>
-        <translation type="unfinished">Сторінка праворуч</translation>
-    </message>
-    <message>
-        <location line="+0"/>
+        <translation>На сторінку вправо</translation>
+    </message>
+    <message>
         <source>Page down</source>
-        <translation type="unfinished">Сторінка додолу</translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>На сторінку вниз</translation>
+    </message>
+    <message>
         <source>Scroll left</source>
-        <translation type="unfinished">Прокрутити ліворуч</translation>
-    </message>
-    <message>
-        <location line="+0"/>
+        <translation>Прокрутити вліво</translation>
+    </message>
+    <message>
         <source>Scroll up</source>
-        <translation type="unfinished">Прокрутити вгору</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>Прокрутити вгору</translation>
+    </message>
+    <message>
         <source>Scroll right</source>
-        <translation type="unfinished">Прокрутити праворуч</translation>
-    </message>
-    <message>
-        <location line="+0"/>
+        <translation>Прокрутити вправо</translation>
+    </message>
+    <message>
         <source>Scroll down</source>
-        <translation type="unfinished">Прокрутити додолу</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 type="unfinished">
-            <numerusform></numerusform>
-            <numerusform></numerusform>
-            <numerusform></numerusform>
-        </translation>
-    </message>
-    <message>
-        <location filename="../src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp" line="+1322"/>
+        <translation>Прокрутити донизу</translation>
+    </message>
+    <message>
         <source>JavaScript Alert - %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+15"/>
+        <translation>Попередження JavaScript - %1</translation>
+    </message>
+    <message>
         <source>JavaScript Confirm - %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+17"/>
+        <translation>Підтвердження JavaScript - %1</translation>
+    </message>
+    <message>
         <source>JavaScript Prompt - %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+333"/>
+        <translation>Запит JavaScript - %1</translation>
+    </message>
+    <message>
+        <source>JavaScript Problem - %1</source>
+        <translation>Проблема JavaScript - %1</translation>
+    </message>
+    <message>
+        <source>The script on this page appears to have a problem. Do you want to stop the script?</source>
+        <translation>Здається є проблема зі скриптом на цій сторінці. Бажаєте зупинити скрипт?</translation>
+    </message>
+    <message>
         <source>Move the cursor to the next character</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>Пересунути курсор до наступного символу</translation>
+    </message>
+    <message>
         <source>Move the cursor to the previous character</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>Пересунути курсор до попереднього символу</translation>
+    </message>
+    <message>
         <source>Move the cursor to the next word</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>Пересунути курсор до наступного слова</translation>
+    </message>
+    <message>
         <source>Move the cursor to the previous word</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>Пересунути курсор до попереднього слова</translation>
+    </message>
+    <message>
         <source>Move the cursor to the next line</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>Пересунути курсор до наступного рядка</translation>
+    </message>
+    <message>
         <source>Move the cursor to the previous line</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>Пересунути курсор до попереднього рядка</translation>
+    </message>
+    <message>
         <source>Move the cursor to the start of the line</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>Пересунути курсор до початку рядка</translation>
+    </message>
+    <message>
         <source>Move the cursor to the end of the line</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>Пересунути курсор в кінець рядка</translation>
+    </message>
+    <message>
         <source>Move the cursor to the start of the block</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>Пересунути курсор до початку блока</translation>
+    </message>
+    <message>
         <source>Move the cursor to the end of the block</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>Пересунути курсор в кінець блока</translation>
+    </message>
+    <message>
         <source>Move the cursor to the start of the document</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>Пересунути курсор до початку документа</translation>
+    </message>
+    <message>
         <source>Move the cursor to the end of the document</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>Пересунути курсор в кінець документа</translation>
+    </message>
+    <message>
         <source>Select all</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>Виділити все</translation>
+    </message>
+    <message>
         <source>Select to the next character</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>Виділити до наступного символу</translation>
+    </message>
+    <message>
         <source>Select to the previous character</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>Виділити до попереднього символу</translation>
+    </message>
+    <message>
         <source>Select to the next word</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>Виділити до наступного слова</translation>
+    </message>
+    <message>
         <source>Select to the previous word</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>Виділити до попереднього слова</translation>
+    </message>
+    <message>
         <source>Select to the next line</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>Виділити до наступного рядка</translation>
+    </message>
+    <message>
         <source>Select to the previous line</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>Виділити до попереднього рядка</translation>
+    </message>
+    <message>
         <source>Select to the start of the line</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>Виділити до початку рядка</translation>
+    </message>
+    <message>
         <source>Select to the end of the line</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>Виділити до кінця рядка</translation>
+    </message>
+    <message>
         <source>Select to the start of the block</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>Виділити до початку блока</translation>
+    </message>
+    <message>
         <source>Select to the end of the block</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>Виділити до кінця блока</translation>
+    </message>
+    <message>
         <source>Select to the start of the document</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>Виділити до початку документа</translation>
+    </message>
+    <message>
         <source>Select to the end of the document</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>Виділити до кінця документа</translation>
+    </message>
+    <message>
         <source>Delete to the start of the word</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>Видалити до початку слова</translation>
+    </message>
+    <message>
         <source>Delete to the end of the word</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+33"/>
+        <translation>Видалити до кінця слова</translation>
+    </message>
+    <message>
         <source>Insert a new paragraph</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>Вставити новий параграф</translation>
+    </message>
+    <message>
         <source>Insert a new line</source>
-        <translation type="unfinished"></translation>
+        <translation>Вставити новий рядок</translation>
+    </message>
+    <message>
+        <source>Paste and Match Style</source>
+        <translation>Вставити та зберегти стиль</translation>
+    </message>
+    <message>
+        <source>Remove formatting</source>
+        <translation>Видалити форматування</translation>
+    </message>
+    <message>
+        <source>Strikethrough</source>
+        <translation>Перекреслений</translation>
+    </message>
+    <message>
+        <source>Subscript</source>
+        <translation>Нижній індекс</translation>
+    </message>
+    <message>
+        <source>Superscript</source>
+        <translation>Верхній індекс</translation>
+    </message>
+    <message>
+        <source>Insert Bulleted List</source>
+        <translation>Вставити маркований список</translation>
+    </message>
+    <message>
+        <source>Insert Numbered List</source>
+        <translation>Вставити нумерований список</translation>
+    </message>
+    <message>
+        <source>Indent</source>
+        <translation>Збільшити відступ</translation>
+    </message>
+    <message>
+        <source>Outdent</source>
+        <translation>Зменшити відступ</translation>
+    </message>
+    <message>
+        <source>Center</source>
+        <translation>По центру</translation>
+    </message>
+    <message>
+        <source>Justify</source>
+        <translation>По ширині</translation>
+    </message>
+    <message>
+        <source>Align Left</source>
+        <translation>Вирівняти вліво</translation>
+    </message>
+    <message>
+        <source>Align Right</source>
+        <translation>Вирівняти вправо</translation>
+    </message>
+    <message>
+        <source>Web Inspector - %2</source>
+        <translation>Web-інспектор - %2</translation>
     </message>
 </context>
 <context>
     <name>QWhatsThisAction</name>
     <message>
-        <location filename="../src/gui/kernel/qwhatsthis.cpp" line="+522"/>
         <source>What&apos;s This?</source>
         <translation>Що це?</translation>
     </message>
@@ -6486,7 +7538,6 @@
 <context>
     <name>QWidget</name>
     <message>
-        <location filename="../src/gui/kernel/qwidget.cpp" line="+5326"/>
         <source>*</source>
         <translation>*</translation>
     </message>
@@ -6494,748 +7545,597 @@
 <context>
     <name>QWizard</name>
     <message>
-        <location filename="../src/gui/dialogs/qwizard.cpp" line="+637"/>
         <source>Go Back</source>
-        <translation>Піти назад</translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>Йти назад</translation>
+    </message>
+    <message>
+        <source>&lt; &amp;Back</source>
+        <translation>&lt; &amp;Назад</translation>
+    </message>
+    <message>
         <source>Continue</source>
         <translation>Продовжити</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <source>&amp;Next</source>
+        <translation>&amp;Далі</translation>
+    </message>
+    <message>
+        <source>&amp;Next &gt;</source>
+        <translation>&amp;Далі &gt;</translation>
+    </message>
+    <message>
         <source>Commit</source>
-        <translation>Зафіксувати</translation>
-    </message>
-    <message>
-        <location line="+2"/>
+        <translation>Виконати</translation>
+    </message>
+    <message>
         <source>Done</source>
-        <translation>Зроблено</translation>
-    </message>
-    <message>
-        <source>Quit</source>
-        <translation type="obsolete">Вийти</translation>
-    </message>
-    <message>
-        <location line="+4"/>
+        <translation>Завершено</translation>
+    </message>
+    <message>
+        <source>&amp;Finish</source>
+        <translation>&amp;Завершити</translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation>Скасувати</translation>
+    </message>
+    <message>
         <source>Help</source>
         <translation>Довідка</translation>
     </message>
     <message>
-        <location line="-14"/>
-        <source>&lt; &amp;Back</source>
-        <translation>&lt; &amp;Назад</translation>
-    </message>
-    <message>
-        <location line="+10"/>
-        <source>&amp;Finish</source>
-        <translation>&amp;Закінчити</translation>
-    </message>
-    <message>
-        <location line="+2"/>
-        <source>Cancel</source>
-        <translation>Скасувати</translation>
-    </message>
-    <message>
-        <location line="+2"/>
         <source>&amp;Help</source>
         <translation>&amp;Довідка</translation>
     </message>
-    <message>
-        <location line="-8"/>
-        <source>&amp;Next</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+0"/>
-        <source>&amp;Next &gt;</source>
-        <translation type="unfinished">&amp;Вперед &gt;</translation>
-    </message>
 </context>
 <context>
     <name>QWorkspace</name>
     <message>
-        <location filename="../src/gui/widgets/qworkspace.cpp" line="+1094"/>
+        <source>Close</source>
+        <translation>Закрити</translation>
+    </message>
+    <message>
+        <source>Minimize</source>
+        <translation>Мінімізувати</translation>
+    </message>
+    <message>
+        <source>Restore Down</source>
+        <translation>Відновити</translation>
+    </message>
+    <message>
         <source>&amp;Restore</source>
         <translation>&amp;Відновити</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Move</source>
         <translation>&amp;Пересунути</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Size</source>
         <translation>&amp;Розмір</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Mi&amp;nimize</source>
-        <translation>Мі&amp;німізувати</translation>
-    </message>
-    <message>
-        <location line="+2"/>
+        <translation>М&amp;інімізувати</translation>
+    </message>
+    <message>
         <source>Ma&amp;ximize</source>
-        <translation>Ма&amp;ксимізувати</translation>
-    </message>
-    <message>
-        <location line="+2"/>
+        <translation>М&amp;аксимізувати</translation>
+    </message>
+    <message>
         <source>&amp;Close</source>
-        <translation>&amp;Закрити</translation>
-    </message>
-    <message>
-        <location line="+6"/>
+        <translation>Закри&amp;ти</translation>
+    </message>
+    <message>
         <source>Stay on &amp;Top</source>
-        <translation>Лишатися над &amp;іншими</translation>
-    </message>
-    <message>
-        <location line="+3"/>
-        <location line="+1059"/>
+        <translation>Залишатись на &amp;горі</translation>
+    </message>
+    <message>
         <source>Sh&amp;ade</source>
-        <translation>Зг&amp;орнути</translation>
-    </message>
-    <message>
-        <location line="-278"/>
-        <location line="+60"/>
+        <translation>&amp;Згорнути в заголовок</translation>
+    </message>
+    <message>
         <source>%1 - [%2]</source>
         <translation>%1 - [%2]</translation>
     </message>
     <message>
-        <location line="-1837"/>
-        <source>Minimize</source>
-        <translation>Мінімізувати</translation>
-    </message>
-    <message>
-        <location line="+2"/>
-        <source>Restore Down</source>
-        <translation>Відновити додолу</translation>
-    </message>
-    <message>
-        <location line="-4"/>
-        <source>Close</source>
-        <translation>Закрити</translation>
-    </message>
-    <message>
-        <location line="+2053"/>
         <source>&amp;Unshade</source>
-        <translation>&amp;Розгорнути</translation>
+        <translation>Р&amp;озгорнути із заголовка</translation>
     </message>
 </context>
 <context>
     <name>QXml</name>
     <message>
-        <location filename="../src/xml/sax/qxml.cpp" line="+58"/>
         <source>no error occurred</source>
         <translation>без помилок</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>error triggered by consumer</source>
-        <translation>помилка викликана споживачем</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>помилка, викликана користувачем</translation>
+    </message>
+    <message>
         <source>unexpected end of file</source>
-        <translation>неочікуваний кінець файлу</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>несподіваний кінець файлу</translation>
+    </message>
+    <message>
         <source>more than one document type definition</source>
-        <translation>більше одного визначення типу документу (DTD)</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>більш ніж одне визначення типу документу</translation>
+    </message>
+    <message>
         <source>error occurred while parsing element</source>
-        <translation>помилка аналізу елемента</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>під час розбору елемента трапилась помилка</translation>
+    </message>
+    <message>
         <source>tag mismatch</source>
-        <translation>теґи не збігаються</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>тег не збігається</translation>
+    </message>
+    <message>
         <source>error occurred while parsing content</source>
-        <translation>помилка аналізу вмісту</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>під час розбору вмісту трапилась помилка</translation>
+    </message>
+    <message>
         <source>unexpected character</source>
-        <translation>неочікуваний символ</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>несподіваний символ</translation>
+    </message>
+    <message>
         <source>invalid name for processing instruction</source>
-        <translation>неправильне ім&apos;я для обробної команди</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>неправильна назва для інструкції обробки</translation>
+    </message>
+    <message>
         <source>version expected while reading the XML declaration</source>
-        <translation>при читанні оголошення XML очікувалася версія</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>під час читання оголошення XML очікувалась версія</translation>
+    </message>
+    <message>
         <source>wrong value for standalone declaration</source>
-        <translation>неправильне значення для окремого оголошення</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>неправильне значення для самостійного оголошення</translation>
+    </message>
+    <message>
         <source>encoding declaration or standalone declaration expected while reading the XML declaration</source>
-        <translation>при читанні оголошень XML очікувалось оголошення кодування або окреме оголошення </translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>під час читання оголошення XML очікувалось оголошення кодування або самостійне оголошення</translation>
+    </message>
+    <message>
         <source>standalone declaration expected while reading the XML declaration</source>
-        <translation>при читанні оголошень XML очікувалось окреме оголошення</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>під час читання оголошення XML очікувалось самостійне оголошення</translation>
+    </message>
+    <message>
         <source>error occurred while parsing document type definition</source>
-        <translation>помилка при аналізі визначення типу документу (DTD)</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>під час розбору визначення типу документа трапилась помилка</translation>
+    </message>
+    <message>
         <source>letter is expected</source>
         <translation>очікувалась літера</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>error occurred while parsing comment</source>
-        <translation>помилка аналізу коментаря</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>під час розбору коментаря трапилась помилка</translation>
+    </message>
+    <message>
         <source>error occurred while parsing reference</source>
-        <translation>помилка аналізу посилання</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>під час розбору посилання трапилась помилка</translation>
+    </message>
+    <message>
         <source>internal general entity reference not allowed in DTD</source>
-        <translation>посилання на внутрішній загальний елемент не дозволено в DTD</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>внутрішнє посилання на загальну сутність не дозволене в DTD</translation>
+    </message>
+    <message>
         <source>external parsed general entity reference not allowed in attribute value</source>
-        <translation>посилання на зовнішній розібраний загальний елемент не дозволено в значенні атрибута</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>зовнішнє розібране посилання на загальну сутність не дозволене в значенні атрибуту</translation>
+    </message>
+    <message>
         <source>external parsed general entity reference not allowed in DTD</source>
-        <translation>посилання на зовнішній розібраний загальний елемент не дозволено в DTD</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>зовнішнє розібране посилання на загальну сутність не дозволене в DTD</translation>
+    </message>
+    <message>
         <source>unparsed entity reference in wrong context</source>
-        <translation>посилання на нерозібраний елемент у неправильному контексті</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>нерозібране посилання на сутність в неправильному контексті</translation>
+    </message>
+    <message>
         <source>recursive entities</source>
-        <translation>рекурсивні елементи</translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>рекурсивні сутності</translation>
+    </message>
+    <message>
         <source>error in the text declaration of an external entity</source>
-        <translation>помилка в оголошенні тексту зовнішнього елемента</translation>
+        <translation>помилка в тексті оголошення зовнішньої сутності</translation>
+    </message>
+</context>
+<context>
+    <name>QXmlPatternistCLI</name>
+    <message>
+        <source>Warning in %1, at line %2, column %3: %4</source>
+        <translation>Попередження в %1, рядок %2, позиція %3: %4</translation>
+    </message>
+    <message>
+        <source>Warning in %1: %2</source>
+        <translation>Попередження в %1: %2</translation>
+    </message>
+    <message>
+        <source>Unknown location</source>
+        <translation>Невідома позиція</translation>
+    </message>
+    <message>
+        <source>Error %1 in %2, at line %3, column %4: %5</source>
+        <translation>Помилка %1 в %2, рядок %3, позиція %4: %5</translation>
+    </message>
+    <message>
+        <source>Error %1 in %2: %3</source>
+        <translation>Помилка %1 в %2: %3</translation>
     </message>
 </context>
 <context>
     <name>QXmlStream</name>
     <message>
-        <location filename="../src/corelib/xml/qxmlstream.cpp" line="+592"/>
-        <location filename="../src/corelib/xml/qxmlstream_p.h" line="+1769"/>
         <source>Extra content at end of document.</source>
-        <translation>Надлишковий вміст в кінці документу.</translation>
-    </message>
-    <message>
-        <location line="+222"/>
+        <translation>Зайві дані в кінці документу.</translation>
+    </message>
+    <message>
         <source>Invalid entity value.</source>
-        <translation>Неправильне значення елементу.</translation>
-    </message>
-    <message>
-        <location line="+107"/>
+        <translation>Неправильне значення сутності.</translation>
+    </message>
+    <message>
         <source>Invalid XML character.</source>
         <translation>Неправильний символ XML.</translation>
     </message>
     <message>
-        <location line="+259"/>
         <source>Sequence &apos;]]&gt;&apos; not allowed in content.</source>
-        <translation>Послідовність &quot;]]&gt;&quot; в вмісті є недозволеною.</translation>
-    </message>
-    <message>
-        <location line="+309"/>
+        <translation>Послідовність &apos;]]&gt;&apos; не дозволена в змісті.</translation>
+    </message>
+    <message>
+        <source>Encountered incorrectly encoded content.</source>
+        <translation>Виявлено неправильно закодований вміст.</translation>
+    </message>
+    <message>
         <source>Namespace prefix &apos;%1&apos; not declared</source>
-        <translation>Префікс простору імен &quot;%1&quot; не оголошено</translation>
-    </message>
-    <message>
-        <location line="+78"/>
+        <translation>Префікс простору імен &apos;%1&apos; не оголошено</translation>
+    </message>
+    <message>
+        <source>Illegal namespace declaration.</source>
+        <translation>Неприпустиме оголошення простору імен.</translation>
+    </message>
+    <message>
         <source>Attribute redefined.</source>
-        <translation>Нове оголошення атрибуту.</translation>
-    </message>
-    <message>
-        <location line="+115"/>
+        <translation>Атрибути перевизначено.</translation>
+    </message>
+    <message>
         <source>Unexpected character &apos;%1&apos; in public id literal.</source>
-        <translation>Неочікуваний символ &quot;%1&quot; в ідентифікаторі публічного літерала.</translation>
-    </message>
-    <message>
-        <location line="+28"/>
+        <translation>Неочікуваний символ &apos;%1&apos; в публічному літералі id.</translation>
+    </message>
+    <message>
         <source>Invalid XML version string.</source>
         <translation>Неправильний рядок версії XML.</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Unsupported XML version.</source>
         <translation>Непідтримувана версія XML.</translation>
     </message>
     <message>
-        <location line="+23"/>
+        <source>The standalone pseudo attribute must appear after the encoding.</source>
+        <translation>Самостійний псевдоатрибут має знаходитсь після кодування.</translation>
+    </message>
+    <message>
         <source>%1 is an invalid encoding name.</source>
-        <translation>%1 є неправильним ім&apos;ям кодування.</translation>
-    </message>
-    <message>
-        <location line="+7"/>
+        <translation>%1 - неправильна назва кодування.</translation>
+    </message>
+    <message>
         <source>Encoding %1 is unsupported</source>
         <translation>Кодування %1 не підтримується</translation>
     </message>
     <message>
-        <source>Invalid XML encoding name.</source>
-        <translation type="obsolete">Неправильне ім&apos;я кодування XML.</translation>
-    </message>
-    <message>
-        <location line="+16"/>
         <source>Standalone accepts only yes or no.</source>
-        <translation>Автономний приймає лише &quot;так&quot; чи &quot;ні&quot;.</translation>
-    </message>
-    <message>
-        <location line="+2"/>
+        <translation>Самостійний приймає лише так чи ні.</translation>
+    </message>
+    <message>
         <source>Invalid attribute in XML declaration.</source>
         <translation>Неправильний атрибут в оголошенні XML.</translation>
     </message>
     <message>
-        <location line="+16"/>
         <source>Premature end of document.</source>
-        <translation>Передчасний кінець документа.</translation>
-    </message>
-    <message>
-        <location line="+2"/>
+        <translation>Несподіваний кінець документу.</translation>
+    </message>
+    <message>
         <source>Invalid document.</source>
-        <translation>Неправильно сформований документ.</translation>
-    </message>
-    <message>
-        <location line="+40"/>
+        <translation>Неправильний документ.</translation>
+    </message>
+    <message>
         <source>Expected </source>
-        <translation>Очікувався </translation>
-    </message>
-    <message>
-        <location line="+11"/>
+        <translation>Очікувалось </translation>
+    </message>
+    <message>
         <source>, but got &apos;</source>
-        <translation>, але отримано &quot;</translation>
-    </message>
-    <message>
-        <location line="+4"/>
+        <translation>, але отримано &apos;</translation>
+    </message>
+    <message>
         <source>Unexpected &apos;</source>
-        <translation>Неочікуваний &quot;</translation>
-    </message>
-    <message>
-        <location line="+210"/>
+        <translation>Неочікуване &apos;</translation>
+    </message>
+    <message>
         <source>Expected character data.</source>
         <translation>Очікувались символьні дані.</translation>
     </message>
     <message>
-        <location filename="../src/corelib/xml/qxmlstream_p.h" line="-995"/>
         <source>Recursive entity detected.</source>
-        <translation>Знайдено рекурсивний елемент.</translation>
-    </message>
-    <message>
-        <location line="+516"/>
+        <translation>Знайдено рекурсивну сутність.</translation>
+    </message>
+    <message>
         <source>Start tag expected.</source>
-        <translation>Очікувався початковий теґ.</translation>
-    </message>
-    <message>
-        <location line="+222"/>
+        <translation>Очікувався відкриваючий тег.</translation>
+    </message>
+    <message>
+        <source>NDATA in parameter entity declaration.</source>
+        <translation>NDATA в параметрі оголошення сутності.</translation>
+    </message>
+    <message>
         <source>XML declaration not at start of document.</source>
-        <translation>Оголошення XML не на початку документа.</translation>
-    </message>
-    <message>
-        <location line="-31"/>
-        <source>NDATA in parameter entity declaration.</source>
-        <translation>NDATA в оголошенні порожнього параметра.</translation>
-    </message>
-    <message>
-        <source>xml is an invalid processing instruction name.</source>
-        <translation type="obsolete">xml не є дозволеною назвою інструкції обробляння.</translation>
-    </message>
-    <message>
-        <location line="+34"/>
+        <translation>Оголошення XML не знаходиться на початку документу.</translation>
+    </message>
+    <message>
         <source>%1 is an invalid processing instruction name.</source>
-        <translation>%1 не є дозволеною назвою інструкції обробляння.</translation>
-    </message>
-    <message>
-        <location line="+11"/>
+        <translation>%1 не є правильна назвою для інструкції обробки.</translation>
+    </message>
+    <message>
         <source>Invalid processing instruction name.</source>
-        <translation>Неправильне ім&apos;я команди обробляння.</translation>
-    </message>
-    <message>
-        <location filename="../src/corelib/xml/qxmlstream.cpp" line="-521"/>
-        <location line="+12"/>
-        <location filename="../src/corelib/xml/qxmlstream_p.h" line="+164"/>
-        <location line="+53"/>
-        <source>Illegal namespace declaration.</source>
-        <translation>Неправильне оголошення простору імен.</translation>
-    </message>
-    <message>
-        <location filename="../src/corelib/xml/qxmlstream_p.h" line="+15"/>
+        <translation>Неправильна назва для інструкції обробки.</translation>
+    </message>
+    <message>
+        <source>%1 is an invalid PUBLIC identifier.</source>
+        <translation>%1 не є правильним ідентифікатором PUBLIC.</translation>
+    </message>
+    <message>
         <source>Invalid XML name.</source>
-        <translation>Неправильне ім&apos;я XML.</translation>
-    </message>
-    <message>
-        <location line="+23"/>
+        <translation>Неправильна назва XML.</translation>
+    </message>
+    <message>
         <source>Opening and ending tag mismatch.</source>
-        <translation>Не збігаються відкривні й закривні теґи.</translation>
-    </message>
-    <message>
-        <location line="+18"/>
+        <translation>Відкриваючий та закриваючий теги не збігаються.</translation>
+    </message>
+    <message>
+        <source>Entity &apos;%1&apos; not declared.</source>
+        <translation>Сутність &apos;%1&apos; не оголошена.</translation>
+    </message>
+    <message>
         <source>Reference to unparsed entity &apos;%1&apos;.</source>
-        <translation>Посилання на необроблений елемент &quot;%1&quot;.</translation>
-    </message>
-    <message>
-        <location line="-13"/>
-        <location line="+61"/>
-        <location line="+40"/>
-        <source>Entity &apos;%1&apos; not declared.</source>
-        <translation>Відсутнє оголошення елемента &quot;%1&quot;.</translation>
-    </message>
-    <message>
-        <location line="-26"/>
+        <translation>Посилання на нерозібрану сутність &apos;%1&apos;.</translation>
+    </message>
+    <message>
         <source>Reference to external entity &apos;%1&apos; in attribute value.</source>
-        <translation>Посилання на зовнішній елемент &quot;%1&quot; в значенні атрибута.</translation>
-    </message>
-    <message>
-        <location line="+40"/>
+        <translation>Посилання на зовнішню сутність &apos;%1&apos; в значені атрибута.</translation>
+    </message>
+    <message>
         <source>Invalid character reference.</source>
         <translation>Неправильне символьне посилання.</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>Знайдено невірно закодований вміст.</translation>
-    </message>
-    <message>
-        <location line="+274"/>
-        <source>The standalone pseudo attribute must appear after the encoding.</source>
-        <translation>Окремий псевдо-атрибут має бути присутній після кодування.</translation>
-    </message>
-    <message>
-        <location filename="../src/corelib/xml/qxmlstream_p.h" line="+562"/>
-        <source>%1 is an invalid PUBLIC identifier.</source>
-        <translation>%1 є неприпустимим публічним іденифікатором.</translation>
-    </message>
 </context>
 <context>
     <name>QtXmlPatterns</name>
     <message>
-        <location filename="../src/xmlpatterns/acceltree/qacceltreebuilder.cpp" line="+205"/>
-        <source>An %1-attribute with value %2 has already been declared.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+13"/>
-        <source>An %1-attribute must have a valid %2 as value, which %3 isn&apos;t.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/xmlpatterns/api/qiodevicedelegate.cpp" line="+84"/>
+        <source>%1 is an unsupported encoding.</source>
+        <translation>Кодування %1 не підтримується.</translation>
+    </message>
+    <message>
+        <source>%1 contains octets which are disallowed in the requested encoding %2.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>The codepoint %1, occurring in %2 using encoding %3, is an invalid XML character.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <source>Network timeout.</source>
         <translation type="unfinished"></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 type="unfinished"></translation>
     </message>
     <message>
-        <location line="+60"/>
         <source>Attribute %1 can&apos;t be serialized because it appears at the top level.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/data/qabstractdatetime.cpp" line="+80"/>
         <source>Year %1 is invalid because it begins with %2.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+19"/>
+        <translation>Рік %1 неправильний, бо він починається з %2.</translation>
+    </message>
+    <message>
         <source>Day %1 is outside the range %2..%3.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+7"/>
+        <translation>День %1 поза межами діапазону %2..%3.</translation>
+    </message>
+    <message>
         <source>Month %1 is outside the range %2..%3.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+10"/>
+        <translation>Місяць %1 поза межами діапазону %2..%3.</translation>
+    </message>
+    <message>
         <source>Overflow: Can&apos;t represent date %1.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+9"/>
+        <translation>Переповнення: Не можу представити дату %1.</translation>
+    </message>
+    <message>
         <source>Day %1 is invalid for month %2.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+49"/>
+        <translation>Неправильний день %1 для місяця %2.</translation>
+    </message>
+    <message>
         <source>Time 24:%1:%2.%3 is invalid. Hour is 24, but minutes, seconds, and milliseconds are not all 0; </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>Time %1:%2:%3.%4 is invalid.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+115"/>
+        <translation>Неправильний час %1:%2:%3.%4.</translation>
+    </message>
+    <message>
         <source>Overflow: Date can&apos;t be represented.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/xmlpatterns/data/qabstractduration.cpp" line="+99"/>
-        <location line="+15"/>
+        <translation>Переповнення: Не можу представити дату.</translation>
+    </message>
+    <message>
         <source>At least one component must be present.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="-7"/>
+        <translation>Щонайменше один компонент має бути присутнім.</translation>
+    </message>
+    <message>
         <source>At least one time component must appear after the %1-delimiter.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/data/qabstractfloatmathematician.cpp" line="+64"/>
-        <source>No operand in an integer division, %1, can be %2.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+7"/>
-        <source>The first operand in an integer division, %1, cannot be infinity (%2).</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+6"/>
-        <source>The second operand in a division, %1, cannot be zero (%2).</source>
-        <translation type="unfinished"></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 type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/xmlpatterns/data/qatomiccasters_p.h" line="+223"/>
+        <translation>%1 не є правильним значенням для типу %2.</translation>
+    </message>
+    <message>
         <source>When casting to %1 from %2, the source value cannot be %3.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/data/qatomicmathematicians.cpp" line="+65"/>
         <source>Integer division (%1) by zero (%2) is undefined.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+7"/>
+        <translation>Цілочисельне ділення (%1) на нуль (%2) не визначене.</translation>
+    </message>
+    <message>
         <source>Division (%1) by zero (%2) is undefined.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+7"/>
+        <translation>Ділення (%1) на нуль (%2) не визначене.</translation>
+    </message>
+    <message>
         <source>Modulus division (%1) by zero (%2) is undefined.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+122"/>
-        <location line="+32"/>
         <source>Dividing a value of type %1 by %2 (not-a-number) is not allowed.</source>
         <translation type="unfinished"></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 type="unfinished"></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 type="unfinished"></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 type="unfinished"></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 type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/data/qderivedinteger_p.h" line="+402"/>
         <source>Value %1 of type %2 exceeds maximum (%3).</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+9"/>
+        <translation>Значення %1 типу %2 перевищує максимум (%3).</translation>
+    </message>
+    <message>
         <source>Value %1 of type %2 is below minimum (%3).</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/xmlpatterns/data/qhexbinary.cpp" line="+91"/>
+        <translation>Значення %1 типу %2 менше за мінімум (%3).</translation>
+    </message>
+    <message>
         <source>A value of type %1 must contain an even number of digits. The value %2 does not.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+19"/>
         <source>%1 is not valid as a value of type %2.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/xmlpatterns/expr/qarithmeticexpression.cpp" line="+207"/>
+        <translation>%1 не є правильним значенням для типу %2.</translation>
+    </message>
+    <message>
+        <source>Ambiguous rule match.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <source>Operator %1 cannot be used on type %2.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+17"/>
+        <translation>Оператор %1 не може використовуватись для типу %2.</translation>
+    </message>
+    <message>
         <source>Operator %1 cannot be used on atomic values of type %2 and %3.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/xmlpatterns/expr/qattributenamevalidator.cpp" line="+66"/>
+        <translation>Оператор %1 не може використовуватись для атомарних значень типу %2 та %3.</translation>
+    </message>
+    <message>
         <source>The namespace URI in the name for a computed attribute cannot be %1.</source>
         <translation type="unfinished"></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 type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/expr/qcastas.cpp" line="+88"/>
         <source>Type error in cast, expected %1, received %2.</source>
         <translation type="unfinished"></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 type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/expr/qcastingplatform.cpp" line="+134"/>
-        <source>No casting is possible with %1 as the target type.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+15"/>
-        <source>It is not possible to cast from %1 to %2.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+27"/>
-        <source>Casting to %1 is not possible because it is an abstract type, and can therefore never be instantiated.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+23"/>
-        <source>It&apos;s not possible to cast the value %1 of type %2 to %3</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+8"/>
-        <source>Failure when casting from %1 to %2: %3</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/xmlpatterns/expr/qcommentconstructor.cpp" line="+67"/>
         <source>A comment cannot contain %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+6"/>
+        <translation>Коментар не може містити %1</translation>
+    </message>
+    <message>
         <source>A comment cannot end with a %1.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/xmlpatterns/expr/qcomparisonplatform.cpp" line="+167"/>
-        <source>No comparisons can be done involving the type %1.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+14"/>
-        <source>Operator %1 is not available between atomic values of type %2 and %3.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/xmlpatterns/expr/qdocumentcontentvalidator.cpp" line="+86"/>
+        <translation>Коментар не може закінчувати на %1.</translation>
+    </message>
+    <message>
+        <source>In a namespace constructor, the value for a namespace cannot be an empty string.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>The prefix must be a valid %1, which %2 is not.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>The prefix %1 cannot be bound.</source>
+        <translation>Неможливо прив&apos;язати префікс %1.</translation>
+    </message>
+    <message>
+        <source>Only the prefix %1 can be bound to %2 and vice versa.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <source>An attribute node cannot be a child of a document node. Therefore, the attribute %1 is out of place.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/expr/qexpressionfactory.cpp" line="+169"/>
         <source>A library module cannot be evaluated directly. It must be imported from a main module.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+40"/>
         <source>No template by name %1 exists.</source>
         <translation type="unfinished"></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 type="unfinished"></translation>
     </message>
     <message>
-        <location line="+32"/>
         <source>A positional predicate must evaluate to a single numeric value.</source>
         <translation type="unfinished"></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 type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+24"/>
+        <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 type="unfinished"></translation>
+    </message>
+    <message>
         <source>%1 is not a valid target name in a processing instruction. It must be a %2 value, e.g. %3.</source>
         <translation type="unfinished"></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 type="unfinished"></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 type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/expr/qqnameconstructor.cpp" line="+82"/>
         <source>No namespace binding exists for the prefix %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/expr/qqnameconstructor_p.h" line="+156"/>
         <source>No namespace binding exists for the prefix %1 in %2</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+12"/>
-        <location filename="../src/xmlpatterns/functions/qqnamefns.cpp" line="+69"/>
         <source>%1 is an invalid %2</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>The parameter %1 is passed, but no corresponding %2 exists.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>The parameter %1 is required, but no corresponding %2 is supplied.</source>
+        <translation type="unfinished"></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 type="unfinished">
             <numerusform></numerusform>
@@ -7244,7 +8144,6 @@
         </translation>
     </message>
     <message numerus="yes">
-        <location line="+11"/>
         <source>%1 requires at least %n argument(s). %2 is therefore invalid.</source>
         <translation type="unfinished">
             <numerusform></numerusform>
@@ -7253,741 +8152,1583 @@
         </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 type="unfinished"></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 type="unfinished"></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 type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/functions/qassemblestringfns.cpp" line="+88"/>
         <source>%1 is not a valid XML 1.0 character.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/xmlpatterns/functions/qcomparingaggregator.cpp" line="+197"/>
-        <source>The first argument to %1 cannot be of type %2.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/xmlpatterns/functions/qdatetimefn.cpp" line="+86"/>
+        <translation>%1 не є правильним символом XML 1.0.</translation>
+    </message>
+    <message>
+        <source>The root node of the second argument to function %1 must be a document node. %2 is not a document node.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <source>If both values have zone offsets, they must have the same zone offset. %1 and %2 are not the same.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/functions/qerrorfn.cpp" line="+61"/>
         <source>%1 was called.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/functions/qpatternmatchingfns.cpp" line="+94"/>
         <source>%1 must be followed by %2 or %3, not at the end of the replacement string.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+39"/>
         <source>In the replacement string, %1 must be followed by at least one digit when not escaped.</source>
         <translation type="unfinished"></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 type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/functions/qpatternplatform.cpp" line="+92"/>
         <source>%1 matches newline characters</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>%1 and %2 match the start and end of a line.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Matches are case insensitive</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Whitespace characters are removed, except when they appear in character classes</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+99"/>
         <source>%1 is an invalid regular expression pattern: %2</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+30"/>
         <source>%1 is an invalid flag for regular expressions. Valid flags are:</source>
         <translation type="unfinished"></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 type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/functions/qsequencefns.cpp" line="+347"/>
         <source>It will not be possible to retrieve %1.</source>
         <translation type="unfinished"></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 type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/xmlpatterns/functions/qsequencegeneratingfns.cpp" line="+279"/>
         <source>The default collection is undefined</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>%1 cannot be retrieved</source>
         <translation type="unfinished"></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 type="unfinished"></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 type="unfinished"></translation>
     </message>
     <message>
-        <location line="+12"/>
         <source>%1 is not a whole number of minutes.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/janitors/qcardinalityverifier.cpp" line="+58"/>
+        <source>The URI cannot have a fragment</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <source>Required cardinality is %1; got cardinality %2.</source>
         <translation type="unfinished"></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 type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/xmlpatterns/parser/qquerytransformparser.cpp" line="+379"/>
-        <location line="+7253"/>
+        <translation>Елемент %1 не відповідає необхідному типу %2.</translation>
+    </message>
+    <message>
+        <source>The variable %1 is unused</source>
+        <translation>Змінна %1 не використовується</translation>
+    </message>
+    <message>
+        <source>W3C XML Schema identity constraint selector</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>W3C XML Schema identity constraint field</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>A construct was encountered which is disallowed in the current language(%1).</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <source>%1 is an unknown schema type.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-6971"/>
+        <source>A template with name %1 has already been declared.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 is not a valid numeric literal.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <source>Only one %1 declaration can occur in the query prolog.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+188"/>
         <source>The initialization of variable %1 depends on itself</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+63"/>
-        <source>No variable by name %1 exists</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/xmlpatterns/parser/qparsercontext.cpp" line="+93"/>
-        <source>The variable %1 is unused</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/xmlpatterns/parser/qquerytransformparser.cpp" line="+2841"/>
+        <source>No variable with name %1 exists</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <source>Version %1 is not supported. The supported XQuery version is 1.0.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+16"/>
+        <translation>Версія %1 не підтримується. Підтримується XQuery версії 1.0.</translation>
+    </message>
+    <message>
         <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 type="unfinished"></translation>
     </message>
     <message>
-        <location line="+55"/>
         <source>No function with signature %1 is available</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+72"/>
-        <location line="+10"/>
         <source>A default namespace declaration must occur before function, variable, and option declarations.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>Namespace declarations must occur before function, variable, and option declarations.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>Module imports must occur before function, variable, and option declarations.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+200"/>
+        <source>The keyword %1 cannot occur with any other mode name.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>The value of attribute %1 must be of type %2, which %3 isn&apos;t.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <source>It is not possible to redeclare prefix %1.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+18"/>
+        <source>The prefix %1 cannot be bound. By default, it is already bound to the namespace %2.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <source>Prefix %1 is already declared in the prolog.</source>
         <translation type="unfinished"></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 type="unfinished"></translation>
     </message>
     <message>
-        <location line="+171"/>
         <source>The Schema Import feature is not supported, and therefore %1 declarations cannot occur.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>The target namespace of a %1 cannot be empty.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+8"/>
         <source>The module import feature is not supported</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+52"/>
-        <source>No value is available for the external variable by name %1.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="-4154"/>
-        <source>A construct was encountered which only is allowed in XQuery.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+118"/>
-        <source>A template by name %1 has already been declared.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+3581"/>
-        <source>The keyword %1 cannot occur with any other mode name.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+29"/>
-        <source>The value of attribute %1 must of type %2, which %3 isn&apos;t.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+75"/>
-        <source>The prefix %1 can not be bound. By default, it is already bound to the namespace %2.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+312"/>
-        <source>A variable by name %1 has already been declared.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+135"/>
+        <translation>Можливість імпорту модулів не підтримується</translation>
+    </message>
+    <message>
+        <source>A variable with name %1 has already been declared.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>No value is available for the external variable with name %1.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <source>A stylesheet function must have a prefixed name.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>The namespace for a user defined function cannot be empty (try the predefined prefix %1 which exists for cases like this)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+9"/>
         <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 type="unfinished"></translation>
     </message>
     <message>
-        <location line="+12"/>
         <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 type="unfinished"></translation>
     </message>
     <message>
-        <location line="+34"/>
         <source>A function already exists with the signature %1.</source>
         <translation type="unfinished"></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 type="unfinished"></translation>
     </message>
     <message>
-        <location line="+37"/>
-        <source>An argument by name %1 has already been declared. Every argument name must be unique.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+179"/>
+        <source>An argument with name %1 has already been declared. Every argument name must be unique.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <source>When function %1 is used for matching inside a pattern, the argument must be a variable reference or a string literal.</source>
         <translation type="unfinished"></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 type="unfinished"></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 type="unfinished"></translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>In an XSL-T pattern, function %1 cannot have a third argument.</source>
         <translation type="unfinished"></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 type="unfinished"></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 type="unfinished"></translation>
     </message>
     <message>
-        <location line="+126"/>
         <source>%1 is an invalid template mode name.</source>
         <translation type="unfinished"></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 type="unfinished"></translation>
     </message>
     <message>
-        <location line="+758"/>
         <source>The Schema Validation Feature is not supported. Hence, %1-expressions may not be used.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+39"/>
         <source>None of the pragma expressions are supported. Therefore, a fallback expression must be present</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+267"/>
         <source>Each name of a template parameter must be unique; %1 is duplicated.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+129"/>
         <source>The %1-axis is unsupported in XQuery</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+1150"/>
-        <source>%1 is not a valid name for a processing-instruction.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="-7029"/>
-        <source>%1 is not a valid numeric literal.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+6165"/>
-        <source>No function by name %1 is available.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+102"/>
+        <source>No function with name %1 is available.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <source>The namespace URI cannot be the empty string when binding to a prefix, %1.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>%1 is an invalid namespace URI.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>It is not possible to bind to the prefix %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Namespace %1 can only be bound to %2 (and it is, in either case, pre-declared).</source>
         <translation type="unfinished"></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 type="unfinished"></translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>Two namespace declaration attributes have the same name: %1.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+89"/>
         <source>The namespace URI must be a constant and cannot use enclosed expressions.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+16"/>
-        <source>An attribute by name %1 has already appeared on this element.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+61"/>
+        <source>An attribute with name %1 has already appeared on this element.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <source>A direct element constructor is not well-formed. %1 is ended with %2.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+458"/>
         <source>The name %1 does not refer to any schema type.</source>
         <translation type="unfinished"></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 type="unfinished"></translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>%1 is not an atomic type. Casting is only possible to atomic types.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+145"/>
-        <location line="+71"/>
+        <source>%1 is not a valid name for a processing-instruction.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <source>%1 is not in the in-scope attribute declarations. Note that the schema import feature is not supported.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+48"/>
         <source>The name of an extension expression must be in a namespace.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/type/qcardinality.cpp" line="+55"/>
-        <source>empty</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+2"/>
-        <source>zero or one</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+2"/>
-        <source>exactly one</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+2"/>
-        <source>one or more</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+2"/>
-        <source>zero or more</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/xmlpatterns/type/qtypechecker.cpp" line="+63"/>
-        <source>Required type is %1, but %2 was found.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+44"/>
-        <source>Promoting %1 to %2 may cause loss of precision.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+49"/>
-        <source>The focus is undefined.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/xmlpatterns/utils/qoutputvalidator.cpp" line="+86"/>
-        <source>It&apos;s not possible to add attributes after any other kind of node.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+7"/>
-        <source>An attribute by name %1 has already been created.</source>
-        <translation type="unfinished"></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 type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/xmlpatterns/acceltree/qacceltreeresourceloader.cpp" line="+314"/>
-        <source>%1 is an unsupported encoding.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+16"/>
-        <source>%1 contains octets which are disallowed in the requested encoding %2.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+18"/>
-        <source>The codepoint %1, occurring in %2 using encoding %3, is an invalid XML character.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/xmlpatterns/expr/qapplytemplate.cpp" line="+119"/>
-        <source>Ambiguous rule match.</source>
-        <translation type="unfinished"></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 type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+11"/>
-        <source>The prefix must be a valid %1, which %2 is not.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+14"/>
-        <source>The prefix %1 cannot be bound.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+10"/>
-        <source>Only the prefix %1 can be bound to %2 and vice versa.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/xmlpatterns/expr/qevaluationcache.cpp" line="+117"/>
-        <source>Circularity detected</source>
-        <translation type="unfinished"></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 type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="-71"/>
-        <source>The parameter %1 is passed, but no corresponding %2 exists.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/xmlpatterns/functions/qunparsedtextfn.cpp" line="+65"/>
-        <source>The URI cannot have a fragment</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/xmlpatterns/parser/qxslttokenizer.cpp" line="+519"/>
         <source>Element %1 is not allowed at this location.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Text nodes are not allowed at this location.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+20"/>
         <source>Parse error: %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+62"/>
+        <translation>Помилка розбору: %1</translation>
+    </message>
+    <message>
         <source>The value of the XSL-T version attribute must be a value of type %1, which %2 isn&apos;t.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+20"/>
         <source>Running an XSL-T 1.0 stylesheet with a 2.0 processor.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+108"/>
         <source>Unknown XSL-T attribute %1.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+23"/>
+        <translation>Невідомий атрибут XSL-T %1.</translation>
+    </message>
+    <message>
         <source>Attribute %1 and %2 are mutually exclusive.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+166"/>
         <source>In a simplified stylesheet module, attribute %1 must be present.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+72"/>
         <source>If element %1 has no attribute %2, it cannot have attribute %3 or %4.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Element %1 must have at least one of the attributes %2 or %3.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+28"/>
         <source>At least one mode must be specified in the %1-attribute on element %2.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/xmlpatterns/parser/qmaintainingreader.cpp" line="+183"/>
-        <source>Attribute %1 cannot appear on the element %2. Only the standard attributes can appear.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+6"/>
-        <source>Attribute %1 cannot appear on the element %2. Only %3 is allowed, and the standard attributes.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+8"/>
-        <source>Attribute %1 cannot appear on the element %2. Allowed is %3, %4, and the standard attributes.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+9"/>
-        <source>Attribute %1 cannot appear on the element %2. Allowed is %3, and the standard attributes.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+13"/>
-        <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="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+12"/>
-        <source>The attribute %1 must appear on element %2.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+8"/>
-        <source>The element with local name %1 does not exist in XSL-T.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../src/xmlpatterns/parser/qxslttokenizer.cpp" line="+123"/>
         <source>Element %1 must come last.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+24"/>
         <source>At least one %1-element must occur before %2.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+7"/>
         <source>Only one %1-element can appear.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+31"/>
         <source>At least one %1-element must occur inside %2.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+58"/>
         <source>When attribute %1 is present on %2, a sequence constructor cannot be used.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>Element %1 must have either a %2-attribute or a sequence constructor.</source>
         <translation type="unfinished"></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 type="unfinished"></translation>
     </message>
     <message>
-        <location line="+270"/>
         <source>Element %1 cannot have children.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+434"/>
         <source>Element %1 cannot have a sequence constructor.</source>
         <translation type="unfinished"></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 type="unfinished"></translation>
     </message>
     <message>
-        <location line="+15"/>
         <source>A parameter in a function cannot be declared to be a tunnel.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+149"/>
         <source>This processor is not Schema-aware and therefore %1 cannot be used.</source>
         <translation type="unfinished"></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 type="unfinished"></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 type="unfinished"></translation>
     </message>
     <message>
-        <location line="+20"/>
         <source>Attribute %1 cannot have the value %2.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+58"/>
         <source>The attribute %1 can only appear on the first %2 element.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+99"/>
         <source>At least one %1 element must appear as child of %2.</source>
         <translation type="unfinished"></translation>
     </message>
-</context>
-<context>
-    <name>VolumeSlider</name>
-    <message>
-        <location filename="../src/3rdparty/phonon/phonon/volumeslider.cpp" line="+67"/>
-        <source>Muted</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+5"/>
-        <location line="+15"/>
-        <source>Volume: %1%</source>
+    <message>
+        <source>Empty particle cannot be derived from non-empty particle.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Derived particle is missing element %1.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Derived element %1 is missing value constraint as defined in base particle.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Derived element %1 has weaker value constraint than base particle.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Fixed value constraint of element %1 differs from value constraint in base particle.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Derived element %1 cannot be nillable as base element is not nillable.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Block constraints of derived element %1 must not be more weaker than in the base element.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Simple type of derived element %1 cannot be validly derived from base element.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Complex type of derived element %1 cannot be validly derived from base element.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Element %1 is missing in derived particle.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Element %1 does not match namespace constraint of wildcard in base particle.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Wildcard in derived particle is not a valid subset of wildcard in base particle.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>processContent of wildcard in derived particle is weaker than wildcard in base particle.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Derived particle allows content that is not allowed in the base particle.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 has inheritance loop in its base type %2.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Circular inheritance of base type %1.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Circular inheritance of union %1.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 is not allowed to derive from %2 by restriction as the latter defines it as final.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 is not allowed to derive from %2 by extension as the latter defines it as final.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Base type of simple type %1 cannot be complex type %2.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Simple type %1 cannot have direct base type %2.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Simple type %1 is not allowed to have base type %2.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Simple type %1 can only have simple atomic type as base type.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Simple type %1 cannot derive from %2 as the latter defines restriction as final.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Variety of item type of %1 must be either atomic or union.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Variety of member types of %1 must be atomic.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 is not allowed to derive from %2 by list as the latter defines it as final.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Simple type %1 is only allowed to have %2 facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Base type of simple type %1 must have variety of type list.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Base type of simple type %1 has defined derivation by restriction as final.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Item type of base type does not match item type of %1.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Simple type %1 contains not allowed facet type %2.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 is not allowed to derive from %2 by union as the latter defines it as final.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 is not allowed to have any facets.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Base type %1 of simple type %2 must have variety of union.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Base type %1 of simple type %2 is not allowed to have restriction in %3 attribute.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Member type %1 cannot be derived from member type %2 of %3&apos;s base type %4.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Derivation method of %1 must be extension because the base type %2 is a simple type.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Complex type %1 has duplicated element %2 in its content model.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Complex type %1 has non-deterministic content.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Attributes of complex type %1 are not a valid extension of the attributes of base type %2: %3.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Content model of complex type %1 is not a valid extension of content model of %2.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Complex type %1 must have simple content.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Complex type %1 must have the same simple type as its base class %2.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Complex type %1 cannot be derived from base type %2%3.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Attributes of complex type %1 are not a valid restriction from the attributes of base type %2: %3.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Complex type %1 with simple content cannot be derived from complex base type %2.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Item type of simple type %1 cannot be a complex type.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Member type of simple type %1 cannot be a complex type.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 is not allowed to have a member type with the same name as itself.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 facet collides with %2 facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 facet must have the same value as %2 facet of base type.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 facet must be equal or greater than %2 facet of base type.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 facet must be less than or equal to %2 facet of base type.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 facet contains invalid regular expression</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Unknown notation %1 used in %2 facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 facet contains invalid value %2: %3.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 facet cannot be %2 or %3 if %4 facet of base type is %5.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 facet cannot be %2 if %3 facet of base type is %4.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 facet must be less than or equal to %2 facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 facet must be less than %2 facet of base type.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 facet and %2 facet cannot appear together.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 facet must be greater than %2 facet of base type.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 facet must be less than %2 facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 facet must be greater than or equal to %2 facet of base type.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Simple type contains not allowed facet %1.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1, %2, %3, %4, %5 and %6 facets are not allowed when derived by list.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Only %1 and %2 facets are allowed when derived by union.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 contains %2 facet with invalid data: %3.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Attribute group %1 contains attribute %2 twice.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Attribute group %1 contains two different attributes that both have types derived from %2.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Attribute group %1 contains attribute %2 that has value constraint but type that inherits from %3.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Complex type %1 contains attribute %2 twice.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Complex type %1 contains two different attributes that both have types derived from %2.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Complex type %1 contains attribute %2 that has value constraint but type that inherits from %3.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Element %1 is not allowed to have a value constraint if its base type is complex.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Element %1 is not allowed to have a value constraint if its type is derived from %2.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Value constraint of element %1 is not of elements type: %2.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Element %1 is not allowed to have substitution group affiliation as it is no global element.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Type of element %1 cannot be derived from type of substitution group affiliation.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Value constraint of attribute %1 is not of attributes type: %2.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Attribute %1 has value constraint but has type derived from %2.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 attribute in derived complex type must be %2 like in base type.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Attribute %1 in derived complex type must have %2 value constraint like in base type.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Attribute %1 in derived complex type must have the same %2 value constraint like in base type.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Attribute %1 in derived complex type must have %2 value constraint.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>processContent of base wildcard must be weaker than derived wildcard.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Element %1 exists twice with different types.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Particle contains non-deterministic wildcards.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Base attribute %1 is required but derived attribute is not.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Type of derived attribute %1 cannot be validly derived from type of base attribute.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Value constraint of derived attribute %1 does not match value constraint of base attribute.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Derived attribute %1 does not exist in the base definition.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Derived attribute %1 does not match the wildcard in the base definition.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Base attribute %1 is required but missing in derived definition.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Derived definition contains an %1 element that does not exists in the base definition</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Derived wildcard is not a subset of the base wildcard.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 of derived wildcard is not a valid restriction of %2 of base wildcard</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Attribute %1 from base type is missing in derived type.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Type of derived attribute %1 differs from type of base attribute.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Base definition contains an %1 element that is missing in the derived definition</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Can not process unknown element %1, expected elements are: %2.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Element %1 is not allowed in this scope, possible elements are: %2.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Child element is missing in that scope, possible child elements are: %1.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Document is not a XML schema.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 attribute of %2 element contains invalid content: {%3} is not a value of type %4.</source>
+        <translation>Атрибут %1 елемента %2 містить неправильний вміст: {%3} не є значенням типу %4.</translation>
+    </message>
+    <message>
+        <source>%1 attribute of %2 element contains invalid content: {%3}.</source>
+        <translation>Атрибут %1 елемента %2 містить неправильний вміст: {%3}.</translation>
+    </message>
+    <message>
+        <source>Target namespace %1 of included schema is different from the target namespace %2 as defined by the including schema.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Target namespace %1 of imported schema is different from the target namespace %2 as defined by the importing schema.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 element is not allowed to have the same %2 attribute value as the target namespace %3.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 element without %2 attribute is not allowed inside schema without target namespace.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 element is not allowed inside %2 element if %3 attribute is present.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 element has neither %2 attribute nor %3 child element.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 element with %2 child element must not have a %3 attribute.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 attribute of %2 element must be %3 or %4.</source>
+        <translation>Атрибут %1 елемента %2 має бути %3 або %4.</translation>
+    </message>
+    <message>
+        <source>%1 attribute of %2 element must have a value of %3.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 attribute of %2 element must have a value of %3 or %4.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 element must not have %2 and %3 attribute together.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Content of %1 attribute of %2 element must not be from namespace %3.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 attribute of %2 element must not be %3.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 attribute of %2 element must have the value %3 because the %4 attribute is set.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Specifying use=&apos;prohibited&apos; inside an attribute group has no effect.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 element must have either %2 or %3 attribute.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 element must have either %2 attribute or %3 or %4 as child element.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 element requires either %2 or %3 attribute.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Text or entity references not allowed inside %1 element</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 attribute of %2 element must contain %3, %4 or a list of URIs.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 element is not allowed in this context.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 attribute of %2 element has larger value than %3 attribute.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Prefix of qualified name %1 is not defined.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 attribute of %2 element must either contain %3 or the other values.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Component with ID %1 has been defined previously.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Element %1 already defined.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Attribute %1 already defined.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Type %1 already defined.</source>
+        <translation>Тип %1 вже визначено.</translation>
+    </message>
+    <message>
+        <source>Attribute group %1 already defined.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Element group %1 already defined.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Notation %1 already defined.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Identity constraint %1 already defined.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Duplicated facets in simple type %1.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 references unknown %2 or %3 element %4.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 references identity constraint %2 that is no %3 or %4 element.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 has a different number of fields from the identity constraint %2 that it references.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Base type %1 of %2 element cannot be resolved.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Item type %1 of %2 element cannot be resolved.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Member type %1 of %2 element cannot be resolved.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Type %1 of %2 element cannot be resolved.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Base type %1 of complex type cannot be resolved.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 cannot have complex base type that has a %2.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Content model of complex type %1 contains %2 element so it cannot be derived by extension from a non-empty type.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Complex type %1 cannot be derived by extension from %2 as the latter contains %3 element in its content model.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Type of %1 element must be a simple type, %2 is not.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Substitution group %1 of %2 element cannot be resolved.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Substitution group %1 has circular definition.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Duplicated element names %1 in %2 element.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Reference %1 of %2 element cannot be resolved.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Circular group reference for %1.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 element is not allowed in this scope</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 element cannot have %2 attribute with value other than %3.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 element cannot have %2 attribute with value other than %3 or %4.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 or %2 attribute of reference %3 does not match with the attribute declaration %4.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Attribute group %1 has circular reference.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 attribute in %2 must have %3 use like in base type %4.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Attribute wildcard of %1 is not a valid restriction of attribute wildcard of base type %2.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 has attribute wildcard but its base type %2 has not.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Union of attribute wildcard of type %1 and attribute wildcard of its base type %2 is not expressible.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Enumeration facet contains invalid content: {%1} is not a value of type %2.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Namespace prefix of qualified name %1 is not defined.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 element %2 is not a valid restriction of the %3 element it redefines: %4.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 is not valid according to %2.</source>
+        <translation>%1 не є правильним відповідно до %2.</translation>
+    </message>
+    <message>
+        <source>String content does not match the length facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>String content does not match the minLength facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>String content does not match the maxLength facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>String content does not match pattern facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>String content is not listed in the enumeration facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Signed integer content does not match the maxInclusive facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Signed integer content does not match the maxExclusive facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Signed integer content does not match the minInclusive facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Signed integer content does not match the minExclusive facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Signed integer content is not listed in the enumeration facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Signed integer content does not match pattern facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Signed integer content does not match in the totalDigits facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Unsigned integer content does not match the maxInclusive facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Unsigned integer content does not match the maxExclusive facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Unsigned integer content does not match the minInclusive facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Unsigned integer content does not match the minExclusive facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Unsigned integer content is not listed in the enumeration facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Unsigned integer content does not match pattern facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Unsigned integer content does not match in the totalDigits facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Double content does not match the maxInclusive facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Double content does not match the maxExclusive facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Double content does not match the minInclusive facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Double content does not match the minExclusive facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Double content is not listed in the enumeration facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Double content does not match pattern facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Decimal content does not match in the fractionDigits facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Decimal content does not match in the totalDigits facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Date time content does not match the maxInclusive facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Date time content does not match the maxExclusive facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Date time content does not match the minInclusive facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Date time content does not match the minExclusive facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Date time content is not listed in the enumeration facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Date time content does not match pattern facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Duration content does not match the maxInclusive facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Duration content does not match the maxExclusive facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Duration content does not match the minInclusive facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Duration content does not match the minExclusive facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Duration content is not listed in the enumeration facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Duration content does not match pattern facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Boolean content does not match pattern facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Binary content does not match the length facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Binary content does not match the minLength facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Binary content does not match the maxLength facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Binary content is not listed in the enumeration facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Invalid QName content: %1.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>QName content is not listed in the enumeration facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>QName content does not match pattern facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Notation content is not listed in the enumeration facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>List content does not match length facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>List content does not match minLength facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>List content does not match maxLength facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>List content is not listed in the enumeration facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>List content does not match pattern facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Union content is not listed in the enumeration facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Union content does not match pattern facet.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Data of type %1 are not allowed to be empty.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Element %1 is missing child element.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>There is one IDREF value with no corresponding ID: %1.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Loaded schema file is invalid.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>%1 contains invalid data.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>xsi:schemaLocation namespace %1 has already appeared earlier in the instance document.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>xsi:noNamespaceSchemaLocation cannot appear after the first no-namespace element or attribute.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>No schema defined for validation.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>No definition for element %1 available.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Specified type %1 is not known to the schema.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Element %1 is not defined in this scope.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Declaration for element %1 does not exist.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Element %1 contains invalid content.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Element %1 is declared as abstract.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Element %1 is not nillable.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Attribute %1 contains invalid data: %2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Element contains content although it is nillable.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Fixed value constraint not allowed if element is nillable.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Specified type %1 is not validly substitutable with element type %2.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Complex type %1 is not allowed to be abstract.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Element %1 contains not allowed attributes.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Element %1 contains not allowed child element.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Content of element %1 does not match its type definition: %2.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Content of element %1 does not match defined value constraint.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Element %1 contains not allowed child content.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Element %1 contains not allowed text content.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Element %1 cannot contain other elements, as it has a fixed content.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Element %1 is missing required attribute %2.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Attribute %1 does not match the attribute wildcard.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Declaration for attribute %1 does not exist.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Element %1 contains two attributes of type %2.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Attribute %1 contains invalid content.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Element %1 contains unknown attribute %2.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Content of attribute %1 does not match its type definition: %2.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Content of attribute %1 does not match defined value constraint.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Non-unique value found for constraint %1.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Key constraint %1 contains absent fields.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Key constraint %1 contains references nillable element %2.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>No referenced value found for key reference %1.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>More than one value found for field %1.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Field %1 has no simple type.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>ID value &apos;%1&apos; is not unique.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>&apos;%1&apos; attribute contains invalid QName content: %2.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>empty</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>zero or one</source>
+        <translation>нуль чи один</translation>
+    </message>
+    <message>
+        <source>exactly one</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>one or more</source>
+        <translation>один чи більше</translation>
+    </message>
+    <message>
+        <source>zero or more</source>
+        <translation>нуль чи більше</translation>
+    </message>
+    <message>
+        <source>Required type is %1, but %2 was found.</source>
+        <translation>Вимагається тип %1, але знайдено %2.</translation>
+    </message>
+    <message>
+        <source>Promoting %1 to %2 may cause loss of precision.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>The focus is undefined.</source>
+        <translation>Фокус не визначено.</translation>
+    </message>
+    <message>
+        <source>It&apos;s not possible to add attributes after any other kind of node.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>An attribute by name %1 has already been created.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Only the Unicode Codepoint Collation is supported(%1). %2 is unsupported.</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/translations/qtconfig_ja.ts	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,919 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="ja_JP">
+<context>
+    <name>MainWindow</name>
+    <message>
+        <location filename="../tools/qtconfig/mainwindow.cpp" line="+204"/>
+        <source>Desktop Settings (Default)</source>
+        <translation>デスクトップの設定(デフォルト)</translation>
+    </message>
+    <message>
+        <location line="+5"/>
+        <source>Choose style and palette based on your desktop settings.</source>
+        <translation>デスクトップの設定に応じてスタイルとパレットを選択します。</translation>
+    </message>
+    <message>
+        <location line="+144"/>
+        <source>On The Spot</source>
+        <translation>On The Spot</translation>
+    </message>
+    <message>
+        <location line="+33"/>
+        <location line="+1"/>
+        <location line="+40"/>
+        <location line="+1"/>
+        <source>Auto (default)</source>
+        <translation>自動(デフォルト)</translation>
+    </message>
+    <message>
+        <location line="-40"/>
+        <source>Choose audio output automatically.</source>
+        <translation>オーディオ出力を自動的に選択します。</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>Gstreamer での aRts のサポート(Experimental)。</translation>
+    </message>
+    <message>
+        <location line="+33"/>
+        <source>Phonon GStreamer backend not available.</source>
+        <translation>Phonon の GStreamer バックエンドが見つかりません。</translation>
+    </message>
+    <message>
+        <location line="+4"/>
+        <source>Choose render method automatically</source>
+        <translation>描画メソッドを自動的に選択します</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 のオーバーレイを使用</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <location line="+1"/>
+        <source>OpenGL</source>
+        <translation>OpenGL</translation>
+    </message>
+    <message>
+        <location line="+0"/>
+        <source>Use OpenGL if available</source>
+        <translation>OpenGL が使用可能な場合は使用</translation>
+    </message>
+    <message>
+        <location line="+2"/>
+        <location line="+1"/>
+        <source>Software</source>
+        <translation>ソフトウェア</translation>
+    </message>
+    <message>
+        <location line="+0"/>
+        <source>Use simple software rendering</source>
+        <translation>ソフトウェアでの描画を使用</translation>
+    </message>
+    <message>
+        <location line="+27"/>
+        <source>No changes to be saved.</source>
+        <translation>内容が変更されていません。</translation>
+    </message>
+    <message>
+        <location line="+4"/>
+        <source>Saving changes...</source>
+        <translation>保存中…</translation>
+    </message>
+    <message>
+        <location line="+48"/>
+        <source>Over The Spot</source>
+        <translation>Over The Spot</translation>
+    </message>
+    <message>
+        <location line="+2"/>
+        <source>Off The Spot</source>
+        <translation>Off The Spot</translation>
+    </message>
+    <message>
+        <location line="+2"/>
+        <source>Root</source>
+        <translation>Root</translation>
+    </message>
+    <message>
+        <location line="+466"/>
+        <source>Select a Directory</source>
+        <translation>ディレクトリの選択</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;バージョン %2&lt;br/&gt;&lt;br/&gt;Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <location line="+1"/>
+        <location line="+8"/>
+        <source>Qt Configuration</source>
+        <translation>Qt 設定ツール</translation>
+    </message>
+    <message>
+        <location line="+22"/>
+        <source>Save Changes</source>
+        <translation>変更の保存</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Save changes to settings?</source>
+        <translation>変更内容を設定に保存しますか?</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>&amp;Yes</source>
+        <translation>はい(&amp;Y)</translation>
+    </message>
+    <message>
+        <location line="+0"/>
+        <source>&amp;No</source>
+        <translation>いいえ(&amp;N)</translation>
+    </message>
+    <message>
+        <location line="+0"/>
+        <source>&amp;Cancel</source>
+        <translation>キャンセル(&amp;C)</translation>
+    </message>
+</context>
+<context>
+    <name>MainWindowBase</name>
+    <message>
+        <location filename="../tools/qtconfig/mainwindowbase.ui" line="+54"/>
+        <source>Qt Configuration</source>
+        <translation>Qt 設定ツール</translation>
+    </message>
+    <message>
+        <location line="+35"/>
+        <source>Appearance</source>
+        <translation>外観</translation>
+    </message>
+    <message>
+        <location line="+18"/>
+        <source>GUI Style</source>
+        <translation>GUI スタイル</translation>
+    </message>
+    <message>
+        <location line="+18"/>
+        <source>Select GUI &amp;Style:</source>
+        <translation>GUI スタイルの選択(&amp;S):</translation>
+    </message>
+    <message>
+        <location line="+22"/>
+        <source>Preview</source>
+        <translation>プレビュー</translation>
+    </message>
+    <message>
+        <location line="+6"/>
+        <source>Select &amp;Palette:</source>
+        <translation>パレットの選択(&amp;P):</translation>
+    </message>
+    <message>
+        <location line="+11"/>
+        <source>Active Palette</source>
+        <translation>アクティブなパレット</translation>
+    </message>
+    <message>
+        <location line="+5"/>
+        <source>Inactive Palette</source>
+        <translation>アクティブではないパレット</translation>
+    </message>
+    <message>
+        <location line="+5"/>
+        <source>Disabled Palette</source>
+        <translation>無効時のパレット</translation>
+    </message>
+    <message>
+        <location line="+39"/>
+        <source>Build Palette</source>
+        <translation>パレットの設定</translation>
+    </message>
+    <message>
+        <location line="+12"/>
+        <source>&amp;3-D Effects:</source>
+        <translation>&amp;3D エフェクト:</translation>
+    </message>
+    <message>
+        <location line="+31"/>
+        <source>Window Back&amp;ground:</source>
+        <translation>ウィンドウのバックグラウンド(&amp;G):</translation>
+    </message>
+    <message>
+        <location line="+35"/>
+        <source>&amp;Tune Palette...</source>
+        <translation>パレットを調整(&amp;T)...</translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>Please use the KDE Control Center to set the palette.</source>
+        <translation>KDE のコントロールセンターでパレットの設定をしてください。</translation>
+    </message>
+    <message>
+        <location line="+11"/>
+        <source>Fonts</source>
+        <translation>フォント</translation>
+    </message>
+    <message>
+        <location line="+6"/>
+        <source>Default Font</source>
+        <translation>デフォルトのフォント</translation>
+    </message>
+    <message>
+        <location line="+45"/>
+        <source>&amp;Style:</source>
+        <translation>スタイル(&amp;S):</translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>&amp;Point Size:</source>
+        <translation>ポイントサイズ(&amp;P):</translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>F&amp;amily:</source>
+        <translation>ファミリー(&amp;F):</translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>Sample Text</source>
+        <translation>テキストのサンプル</translation>
+    </message>
+    <message>
+        <location line="+13"/>
+        <source>Font Substitution</source>
+        <translation>フォントの置換</translation>
+    </message>
+    <message>
+        <location line="+20"/>
+        <source>S&amp;elect or Enter a Family:</source>
+        <translation>ファミリーを選択するか入力してください(&amp;E):</translation>
+    </message>
+    <message>
+        <location line="+38"/>
+        <source>Current Substitutions:</source>
+        <translation>現在の置換定義:</translation>
+    </message>
+    <message>
+        <location line="+18"/>
+        <location line="+501"/>
+        <source>Up</source>
+        <translation>上へ</translation>
+    </message>
+    <message>
+        <location line="-494"/>
+        <location line="+508"/>
+        <source>Down</source>
+        <translation>下へ</translation>
+    </message>
+    <message>
+        <location line="-501"/>
+        <location line="+494"/>
+        <source>Remove</source>
+        <translation>削除</translation>
+    </message>
+    <message>
+        <location line="-464"/>
+        <source>Select s&amp;ubstitute Family:</source>
+        <translation>置換するファミリーの選択(&amp;U):</translation>
+    </message>
+    <message>
+        <location line="+20"/>
+        <location line="+487"/>
+        <source>Add</source>
+        <translation>追加</translation>
+    </message>
+    <message>
+        <location line="-474"/>
+        <source>Interface</source>
+        <translation>インターフェース</translation>
+    </message>
+    <message>
+        <location line="+6"/>
+        <source>Feel Settings</source>
+        <translation>一般的な設定</translation>
+    </message>
+    <message>
+        <location line="+12"/>
+        <location line="+26"/>
+        <source> ms</source>
+        <translation>ミリ秒</translation>
+    </message>
+    <message>
+        <location line="-13"/>
+        <source>&amp;Double Click Interval:</source>
+        <translation>ダブルクリックの間隔(&amp;D):</translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>No blinking</source>
+        <translation>点滅しない</translation>
+    </message>
+    <message>
+        <location line="+16"/>
+        <source>&amp;Cursor Flash Time:</source>
+        <translation>カーソルの点滅の間隔(&amp;C):</translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source> lines</source>
+        <translation>行</translation>
+    </message>
+    <message>
+        <location line="+13"/>
+        <source>Wheel &amp;Scroll Lines:</source>
+        <translation>マウスホイールでのスクロール行数(&amp;S):</translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>Resolve symlinks in URLs</source>
+        <translation>URL のシンボリックリンクの解決</translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>GUI Effects</source>
+        <translation>GUI のエフェクト</translation>
+    </message>
+    <message>
+        <location line="+12"/>
+        <source>&amp;Enable</source>
+        <translation>有効(&amp;E)</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;E):</translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>C&amp;omboBox Effect:</source>
+        <translation>コンボボックスのエフェクト(&amp;O):</translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>&amp;ToolTip Effect:</source>
+        <translation>ツールチップのエフェクト(&amp;T):</translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>Tool&amp;Box Effect:</source>
+        <translation>ツールボックスのエフェクト(&amp;B):</translation>
+    </message>
+    <message>
+        <location line="+17"/>
+        <location line="+19"/>
+        <location line="+14"/>
+        <location line="+19"/>
+        <source>Disable</source>
+        <translation>無効</translation>
+    </message>
+    <message>
+        <location line="-47"/>
+        <location line="+19"/>
+        <location line="+14"/>
+        <location line="+19"/>
+        <source>Animate</source>
+        <translation>アニメーション</translation>
+    </message>
+    <message>
+        <location line="-47"/>
+        <location line="+33"/>
+        <source>Fade</source>
+        <translation>フェード</translation>
+    </message>
+    <message>
+        <location line="+28"/>
+        <source>Global Strut</source>
+        <translation>Global Strut</translation>
+    </message>
+    <message>
+        <location line="+12"/>
+        <source>Minimum &amp;Width:</source>
+        <translation>幅の最小値(&amp;W):</translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>Minimum Hei&amp;ght:</source>
+        <translation>高さの最小値(&amp;G):</translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <location line="+10"/>
+        <source> pixels</source>
+        <translation>ピクセル</translation>
+    </message>
+    <message>
+        <location line="+13"/>
+        <source>Enhanced support for languages written right-to-left</source>
+        <translation>右から左に書かれる言語のサポートの強化</translation>
+    </message>
+    <message>
+        <location line="+7"/>
+        <source>XIM Input Style:</source>
+        <translation>XIM のインプットスタイル:</translation>
+    </message>
+    <message>
+        <location line="+11"/>
+        <source>On The Spot</source>
+        <translation>On The Spot</translation>
+    </message>
+    <message>
+        <location line="+5"/>
+        <source>Over The Spot</source>
+        <translation>Over The Spot</translation>
+    </message>
+    <message>
+        <location line="+5"/>
+        <source>Off The Spot</source>
+        <translation>Off The Spot</translation>
+    </message>
+    <message>
+        <location line="+5"/>
+        <source>Root</source>
+        <translation>Root</translation>
+    </message>
+    <message>
+        <location line="+8"/>
+        <source>Default Input Method:</source>
+        <translation>デフォルトのインプットメソッド:</translation>
+    </message>
+    <message>
+        <location line="+31"/>
+        <source>Printer</source>
+        <translation>プリンタ</translation>
+    </message>
+    <message>
+        <location line="+6"/>
+        <source>Enable Font embedding</source>
+        <translation>フォントを埋め込む</translation>
+    </message>
+    <message>
+        <location line="+16"/>
+        <source>Font Paths</source>
+        <translation>フォントのパス</translation>
+    </message>
+    <message>
+        <location line="+77"/>
+        <source>Browse...</source>
+        <translation>ブラウズ...</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>&lt;b&gt;ブラウズ&lt;/b&gt;ボタンを押すかディレクトリを入力し、エンターキーか追加ボタンでリストに追加してください。</translation>
+    </message>
+    <message>
+        <location line="+16"/>
+        <source>Phonon</source>
+        <translation>Phonon</translation>
+    </message>
+    <message>
+        <location line="+6"/>
+        <source>About Phonon</source>
+        <translation>Phonon について</translation>
+    </message>
+    <message>
+        <location line="+6"/>
+        <location line="+44"/>
+        <source>Current Version:</source>
+        <translation>現在のバージョン:</translation>
+    </message>
+    <message>
+        <location line="-37"/>
+        <location line="+44"/>
+        <source>Not available</source>
+        <translation>使用不可能</translation>
+    </message>
+    <message>
+        <location line="-37"/>
+        <location line="+44"/>
+        <source>Website:</source>
+        <translation>ウェブサイト:</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 について</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 のバックエンドの設定</translation>
+    </message>
+    <message>
+        <location line="+6"/>
+        <source>Preferred audio sink:</source>
+        <translation>優先するオーディオシンク:</translation>
+    </message>
+    <message>
+        <location line="+13"/>
+        <source>Preferred render method:</source>
+        <translation>優先する描画方法:</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;注: これらの設定の変更によりアプリケーションが正常に起動しなくなる場合があります。&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)</translation>
+    </message>
+    <message>
+        <location line="+19"/>
+        <source>&amp;Help</source>
+        <translation>ヘルプ(&amp;H)</translation>
+    </message>
+    <message>
+        <location line="+14"/>
+        <source>&amp;Save</source>
+        <translation>保存(&amp;S)</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Save</source>
+        <translation>保存</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;X)</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Exit</source>
+        <translation>終了</translation>
+    </message>
+    <message>
+        <location line="+8"/>
+        <source>&amp;About</source>
+        <translation>Qt 設定ツールについて(&amp;A)</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>About</source>
+        <translation>Qt 設定ツールについて</translation>
+    </message>
+    <message>
+        <location line="+8"/>
+        <source>About &amp;Qt</source>
+        <translation>&amp;Qt について</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>About Qt</source>
+        <translation>Qt について</translation>
+    </message>
+</context>
+<context>
+    <name>PaletteEditorAdvancedBase</name>
+    <message>
+        <location filename="../tools/qtconfig/paletteeditoradvancedbase.ui" line="+61"/>
+        <source>Tune Palette</source>
+        <translation>パレットの調整</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;パレットの編集&lt;/b&gt;&lt;p&gt;現在のウィジェットやフォームのパレットを変更してください。&lt;/p&gt;&lt;p&gt;自動生成されたパレットを使用するか、それぞれのグループ/役割に対して色を選択してください。&lt;/p&gt;&lt;p&gt;パレットの内容のプレビューセクションにある様々なウィジェットのレイアウトで確認できます。&lt;/p&gt;</translation>
+    </message>
+    <message>
+        <location line="+29"/>
+        <source>Select &amp;Palette:</source>
+        <translation>パレットの選択(&amp;P):</translation>
+    </message>
+    <message>
+        <location line="+14"/>
+        <source>Active Palette</source>
+        <translation>アクティブなパレット</translation>
+    </message>
+    <message>
+        <location line="+5"/>
+        <source>Inactive Palette</source>
+        <translation>アクティブではないパレット</translation>
+    </message>
+    <message>
+        <location line="+5"/>
+        <source>Disabled Palette</source>
+        <translation>無効時のパレット</translation>
+    </message>
+    <message>
+        <location line="+21"/>
+        <source>Auto</source>
+        <translation>自動</translation>
+    </message>
+    <message>
+        <location line="+18"/>
+        <source>Build inactive palette from active</source>
+        <translation>アクティブなパレットからアクティブではないパレットを構築</translation>
+    </message>
+    <message>
+        <location line="+13"/>
+        <source>Build disabled palette from active</source>
+        <translation>アクティブなパレットから無効時のパレットを構築</translation>
+    </message>
+    <message>
+        <location line="+16"/>
+        <source>Central color &amp;roles</source>
+        <translation>中央部の色の役割(&amp;R)</translation>
+    </message>
+    <message>
+        <location line="+18"/>
+        <source>Choose central color role</source>
+        <translation>中央部の色の役割を選択してください</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;色の役割の選択。&lt;/b&gt;&lt;p&gt;選択可能な中央部の役割: &lt;ul&gt; &lt;li&gt;ウィンドウ - 一般的な背景色。&lt;/li&gt; &lt;li&gt;ウィンドウテキスト - 一般的な前景色。 &lt;/li&gt; &lt;li&gt;ベース - テキスト入力ウィジェット等の背景色。通常は白などの明るい色。 &lt;/li&gt; &lt;li&gt;テキスト - ベースと共に用いられる前景色。通常はウィンドウテキストと同じだが、ウィンドウとベースに対してよりよいコントラストが必要な場合に使用される。 &lt;/li&gt; &lt;li&gt;ボタン - 一般的なボタンの背景色。Macintosh スタイルのようにウィンドウと異なる背景色を使用する場合に使用される。 &lt;/li&gt; &lt;li&gt;ボタンテキスト - ボタンと共に用いられる前景色 &lt;/li&gt; &lt;li&gt;ハイライト - アイテムが選択されていたり、ハイライトされていることを示すために使用される色。 &lt;/li&gt; &lt;li&gt;ハイライトのテキスト - ハイライト時のテキストの色。 &lt;/li&gt; &lt;li&gt;明るいテキスト - 黒などの背景色に対して使用されるテキストの色。ウィンドウテキストの反対の色。 &lt;/li&gt; &lt;/ul&gt; &lt;/p&gt;</translation>
+    </message>
+    <message>
+        <location line="+4"/>
+        <source>Window</source>
+        <translation>ウィンドウ</translation>
+    </message>
+    <message>
+        <location line="+5"/>
+        <source>WindowText</source>
+        <translation>ウィンドウテキスト</translation>
+    </message>
+    <message>
+        <location line="+5"/>
+        <source>Button</source>
+        <translation>ボタン</translation>
+    </message>
+    <message>
+        <location line="+5"/>
+        <source>Base</source>
+        <translation>ベース</translation>
+    </message>
+    <message>
+        <location line="+5"/>
+        <source>Text</source>
+        <translation>テキスト</translation>
+    </message>
+    <message>
+        <location line="+5"/>
+        <source>BrightText</source>
+        <translation>明るいテキスト</translation>
+    </message>
+    <message>
+        <location line="+5"/>
+        <source>ButtonText</source>
+        <translation>ボタンテキスト</translation>
+    </message>
+    <message>
+        <location line="+5"/>
+        <source>Highlight</source>
+        <translation>ハイライト</translation>
+    </message>
+    <message>
+        <location line="+5"/>
+        <source>HighlightedText</source>
+        <translation>ハイライトのテキスト</translation>
+    </message>
+    <message>
+        <location line="+52"/>
+        <source>&amp;Select Color:</source>
+        <translation>色の選択(&amp;S):</translation>
+    </message>
+    <message>
+        <location line="+24"/>
+        <location line="+171"/>
+        <source>Choose a color</source>
+        <translation>色を選択してください</translation>
+    </message>
+    <message>
+        <location line="-168"/>
+        <source>Choose a color for the selected central color role.</source>
+        <translation>選択された中央部の色の役割に使用する色を選択してください。</translation>
+    </message>
+    <message>
+        <location line="+15"/>
+        <source>3-D shadow &amp;effects</source>
+        <translation>3Dの影の効果(&amp;E)</translation>
+    </message>
+    <message>
+        <location line="+29"/>
+        <source>Build &amp;from button color</source>
+        <translation>ボタンの色から構築する(&amp;F)</translation>
+    </message>
+    <message>
+        <location line="+6"/>
+        <source>Generate shadings</source>
+        <translation>影を生成する</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Check to let 3D-effect colors be calculated from button-color.</source>
+        <translation>3D効果の色をボタンの色から計算するにはチェックしてください。</translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>Choose 3D-effect color role</source>
+        <translation>3D効果の色の役割の選択</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>&lt;b&gt;色の役割の選択。&lt;/b&gt;&lt;p&gt;選択可能な中央部の役割: &lt;ul&gt; &lt;li&gt;ライト - ボタンの色より明るい。 &lt;/li&gt; &lt;li&gt;ミッドライト - ボタンとライトの間。 &lt;/li&gt; &lt;li&gt;ミッド - ボタンとダークの間。 &lt;/li&gt; &lt;li&gt;ダーク - ボタンより暗い。 &lt;/li&gt; &lt;li&gt;シャドウ - とても暗い色。 &lt;/li&gt; &lt;/ul&gt;</translation>
+    </message>
+    <message>
+        <location line="+4"/>
+        <source>Light</source>
+        <translation>ライト</translation>
+    </message>
+    <message>
+        <location line="+5"/>
+        <source>Midlight</source>
+        <translation>ミッドライト</translation>
+    </message>
+    <message>
+        <location line="+5"/>
+        <source>Mid</source>
+        <translation>ミッド</translation>
+    </message>
+    <message>
+        <location line="+5"/>
+        <source>Dark</source>
+        <translation>ダーク</translation>
+    </message>
+    <message>
+        <location line="+5"/>
+        <source>Shadow</source>
+        <translation>シャドウ</translation>
+    </message>
+    <message>
+        <location line="+54"/>
+        <source>Select Co&amp;lor:</source>
+        <translation>色の選択(&amp;L):</translation>
+    </message>
+    <message>
+        <location line="+27"/>
+        <source>Choose a color for the selected effect color role.</source>
+        <translation>選択の効果の色の役割に使用する色を選択してください。</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>全ての変更を適用してダイアログを閉じる。</translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>Cancel</source>
+        <translation>キャンセル</translation>
+    </message>
+    <message>
+        <location line="+6"/>
+        <source>Close dialog and discard all changes.</source>
+        <translation>全ての変更を破棄してダイアログを閉じる。</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>デスクトップの設定はアプリケーションの再起動後に反映されます。</translation>
+    </message>
+</context>
+<context>
+    <name>PreviewWidgetBase</name>
+    <message>
+        <location filename="../tools/qtconfig/previewwidgetbase.ui" line="+66"/>
+        <source>Preview Window</source>
+        <translation>プレビューウィンドウ</translation>
+    </message>
+    <message>
+        <location line="+40"/>
+        <source>ButtonGroup</source>
+        <translation>ボタングループ</translation>
+    </message>
+    <message>
+        <location line="+18"/>
+        <source>RadioButton1</source>
+        <translation>ラジオボタン1</translation>
+    </message>
+    <message>
+        <location line="+13"/>
+        <source>RadioButton2</source>
+        <translation>ラジオボタン2</translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>RadioButton3</source>
+        <translation>ラジオボタン3</translation>
+    </message>
+    <message>
+        <location line="+13"/>
+        <source>ButtonGroup2</source>
+        <translation>ボタングループ2</translation>
+    </message>
+    <message>
+        <location line="+18"/>
+        <source>CheckBox1</source>
+        <translation>チェックボックス1</translation>
+    </message>
+    <message>
+        <location line="+13"/>
+        <source>CheckBox2</source>
+        <translation>チェックボックス2</translation>
+    </message>
+    <message>
+        <location line="+36"/>
+        <source>LineEdit</source>
+        <translation>ラインエディタ</translation>
+    </message>
+    <message>
+        <location line="+11"/>
+        <source>ComboBox</source>
+        <translation>コンボボックス</translation>
+    </message>
+    <message>
+        <location line="+29"/>
+        <source>PushButton</source>
+        <translation>プッシュボタン</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>
--- a/translations/qtconfig_ru.ts	Fri Sep 17 08:34:18 2010 +0300
+++ b/translations/qtconfig_ru.ts	Mon Oct 04 01:19:32 2010 +0300
@@ -4,151 +4,114 @@
 <context>
     <name>MainWindow</name>
     <message>
-        <location filename="../tools/qtconfig/mainwindow.cpp" line="+204"/>
         <source>Desktop Settings (Default)</source>
         <translation>Настройки рабочего стола (по умолчанию)</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>Choose style and palette based on your desktop settings.</source>
         <translation>Выбор стиля и палитры на основе настроек рабочего стола.</translation>
     </message>
     <message>
-        <location line="+144"/>
         <source>On The Spot</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+33"/>
-        <location line="+1"/>
-        <location line="+40"/>
-        <location line="+1"/>
         <source>Auto (default)</source>
         <translation>Автоматически (по умолчанию)</translation>
     </message>
     <message>
-        <location line="-40"/>
         <source>Choose audio output automatically.</source>
         <translation>Автоматический выбор звукового выхода.</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>Экспериментальная поддержка aRts в GStreamer.</translation>
     </message>
     <message>
-        <location line="+33"/>
         <source>Phonon GStreamer backend not available.</source>
         <translation>Модуль поддержки GStreamer недоступен.</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Choose render method automatically</source>
         <translation>Автоматический выбор метода отрисовки</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</translation>
     </message>
     <message>
-        <location line="+3"/>
-        <location line="+1"/>
         <source>OpenGL</source>
         <translation>OpenGL</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Use OpenGL if available</source>
         <translation>Использовать OpenGL, если возможно</translation>
     </message>
     <message>
-        <location line="+2"/>
-        <location line="+1"/>
         <source>Software</source>
         <translation>Программный</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>Use simple software rendering</source>
         <translation>Использовать простую программную отрисовку</translation>
     </message>
     <message>
-        <location line="+27"/>
         <source>No changes to be saved.</source>
         <translation>Нет изменений для сохранения.</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Saving changes...</source>
         <translation>Сохранение изменений...</translation>
     </message>
     <message>
-        <location line="+48"/>
         <source>Over The Spot</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Off The Spot</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Root</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+466"/>
         <source>Select a Directory</source>
         <translation>Выбор каталога</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;Версия %2&lt;br/&gt;&lt;br/&gt;Copyright (C) 2010 Корпорация Nokia и/или её дочерние подразделения.</translation>
     </message>
     <message>
-        <location line="+3"/>
-        <location line="+1"/>
-        <location line="+8"/>
         <source>Qt Configuration</source>
         <translation>Конфигурация Qt</translation>
     </message>
     <message>
-        <location line="+22"/>
         <source>Save Changes</source>
         <translation>Сохранение изменений</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Save changes to settings?</source>
         <translation>Сохранить изменения настроек?</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>&amp;Yes</source>
         <translation>&amp;Да</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>&amp;No</source>
         <translation>&amp;Нет</translation>
     </message>
     <message>
-        <location line="+0"/>
         <source>&amp;Cancel</source>
         <translation>От&amp;мена</translation>
     </message>
@@ -156,347 +119,278 @@
 <context>
     <name>MainWindowBase</name>
     <message>
-        <location filename="../tools/qtconfig/mainwindowbase.ui"/>
         <source>Qt Configuration</source>
         <translation>Конфигурация Qt</translation>
     </message>
     <message>
-        <location/>
         <source>Appearance</source>
         <translation>Внешний вид</translation>
     </message>
     <message>
-        <location/>
         <source>GUI Style</source>
         <translation>Стиль пользовательского графического интерфейса</translation>
     </message>
     <message>
-        <location/>
         <source>Select GUI &amp;Style:</source>
         <translation>&amp;Стиль интерфейса:</translation>
     </message>
     <message>
-        <location/>
         <source>Build Palette</source>
         <translation>Палитра</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;3-D Effects:</source>
         <translation>Эффекты &amp;3D:</translation>
     </message>
     <message>
-        <location/>
         <source>Window Back&amp;ground:</source>
         <translation>&amp;Фон окна:</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Tune Palette...</source>
         <translation>&amp;Настроить палитру...</translation>
     </message>
     <message>
-        <location/>
         <source>Please use the KDE Control Center to set the palette.</source>
         <translation>Используйте Центр управления KDE для настройки цветов.</translation>
     </message>
     <message>
-        <location/>
         <source>Preview</source>
         <translation>Предпросмотр</translation>
     </message>
     <message>
-        <location/>
         <source>Select &amp;Palette:</source>
         <translation>Выбор &amp;палитры:</translation>
     </message>
     <message>
-        <location/>
         <source>Active Palette</source>
         <translation>Палитра активных элементов</translation>
     </message>
     <message>
-        <location/>
         <source>Inactive Palette</source>
         <translation>Палитра неактивных элементов</translation>
     </message>
     <message>
-        <location/>
         <source>Disabled Palette</source>
         <translation>Палитра выключенных элементов</translation>
     </message>
     <message>
-        <location/>
         <source>Fonts</source>
         <translation>Шрифты</translation>
     </message>
     <message>
-        <location/>
         <source>Default Font</source>
         <translation>Шрифт по умолчанию</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Style:</source>
         <translation>&amp;Начертание:</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Point Size:</source>
         <translation>&amp;Размер:</translation>
     </message>
     <message>
-        <location/>
         <source>F&amp;amily:</source>
         <translation>&amp;Шрифт:</translation>
     </message>
     <message>
-        <location/>
         <source>Sample Text</source>
         <translation>Текст для примера (Sample Text)</translation>
     </message>
     <message>
-        <location/>
         <source>Font Substitution</source>
         <translation>Подстановка шрифтов</translation>
     </message>
     <message>
-        <location/>
         <source>S&amp;elect or Enter a Family:</source>
         <translation>&amp;Выберите шрифт для замены:</translation>
     </message>
     <message>
-        <location/>
         <source>Current Substitutions:</source>
         <translation>Текущие замены:</translation>
     </message>
     <message>
-        <location/>
         <source>Up</source>
         <translation>Выше</translation>
     </message>
     <message>
-        <location/>
         <source>Down</source>
         <translation>Ниже</translation>
     </message>
     <message>
-        <location/>
         <source>Remove</source>
         <translation>Удалить</translation>
     </message>
     <message>
-        <location/>
         <source>Select s&amp;ubstitute Family:</source>
         <translation>&amp;Заменять на шрифт:</translation>
     </message>
     <message>
-        <location/>
         <source>Add</source>
         <translation>Добавить</translation>
     </message>
     <message>
-        <location/>
         <source>Interface</source>
         <translation>Интерфейс</translation>
     </message>
     <message>
-        <location/>
         <source>Feel Settings</source>
         <translation type="unfinished">Настройка указателя</translation>
     </message>
     <message>
-        <location/>
         <source> ms</source>
         <translation> мс</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Double Click Interval:</source>
         <translation>&amp;Интервал двойного щелчка:</translation>
     </message>
     <message>
-        <location/>
         <source>No blinking</source>
         <translation>Без мигания</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Cursor Flash Time:</source>
         <translation>&amp;Период мигания курсора:</translation>
     </message>
     <message>
-        <location/>
         <source> lines</source>
         <translation> строк</translation>
     </message>
     <message>
-        <location/>
         <source>Wheel &amp;Scroll Lines:</source>
         <translation type="unfinished">&amp;Прокручивать строк при повороте колёсика:</translation>
     </message>
     <message>
-        <location/>
         <source>Resolve symlinks in URLs</source>
         <translation>Разрешать символьные ссылки в URL-ах</translation>
     </message>
     <message>
-        <location/>
         <source>GUI Effects</source>
         <translation type="unfinished">Эффекты пользовательского интерфейса</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Enable</source>
         <translation>&amp;Включить</translation>
     </message>
     <message>
-        <location/>
         <source>Alt+E</source>
         <translation>Alt+D</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Menu Effect:</source>
         <translation>Эффект &amp;меню:</translation>
     </message>
     <message>
-        <location/>
         <source>C&amp;omboBox Effect:</source>
         <translation type="unfinished">Эффект &amp;выпадающего списка:</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;ToolTip Effect:</source>
         <translation type="unfinished">Эффект &amp;подсказки:</translation>
     </message>
     <message>
-        <location/>
         <source>Tool&amp;Box Effect:</source>
         <translation type="unfinished">Эффект панели &amp;инструментов:</translation>
     </message>
     <message>
-        <location/>
         <source>Disable</source>
         <translation>Выключен</translation>
     </message>
     <message>
-        <location/>
         <source>Animate</source>
         <translation>Анимация</translation>
     </message>
     <message>
-        <location/>
         <source>Fade</source>
         <translation>Затухание</translation>
     </message>
     <message>
-        <location/>
         <source>Global Strut</source>
         <translation type="unfinished">Минимальные размеры</translation>
     </message>
     <message>
-        <location/>
         <source>Minimum &amp;Width:</source>
         <translation>Минимальная &amp;ширина:</translation>
     </message>
     <message>
-        <location/>
         <source>Minimum Hei&amp;ght:</source>
         <translation>Минимальная в&amp;ысота:</translation>
     </message>
     <message>
-        <location/>
         <source> pixels</source>
         <translation> пикселей</translation>
     </message>
     <message>
-        <location/>
         <source>Enhanced support for languages written right-to-left</source>
         <translation>Расширенная поддержка письма справа налево</translation>
     </message>
     <message>
-        <location/>
         <source>XIM Input Style:</source>
         <translation>Стиль ввода XIM:</translation>
     </message>
     <message>
-        <location/>
         <source>On The Spot</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location/>
         <source>Over The Spot</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location/>
         <source>Off The Spot</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location/>
         <source>Root</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location/>
         <source>Default Input Method:</source>
         <translation>Метод ввода по умолчанию:</translation>
     </message>
     <message>
-        <location/>
         <source>Printer</source>
         <translation>Принтер</translation>
     </message>
     <message>
-        <location/>
         <source>Enable Font embedding</source>
         <translation>Разрешить встраивание шрифтов</translation>
     </message>
     <message>
-        <location/>
         <source>Font Paths</source>
         <translation>Пути к шрифтам</translation>
     </message>
     <message>
-        <location/>
         <source>Browse...</source>
         <translation>Обзор...</translation>
     </message>
     <message>
-        <location/>
         <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>Нажмите кнопку &lt;b&gt;Обзор...&lt;/b&gt; или укажите каталог и нажмите Ввод для добавления его в список.</translation>
     </message>
     <message>
-        <location/>
         <source>Phonon</source>
         <translation>Phonon</translation>
     </message>
     <message>
-        <location/>
         <source>About Phonon</source>
         <translation>О Phonon</translation>
     </message>
     <message>
-        <location/>
         <source>Current Version:</source>
         <translation>Текущая версия:</translation>
     </message>
     <message>
-        <location/>
         <source>Not available</source>
         <translation>Недоступно</translation>
     </message>
     <message>
-        <location/>
         <source>Website:</source>
         <translation>Вэб-сайт:</translation>
     </message>
     <message>
-        <location/>
         <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; }
@@ -509,12 +403,10 @@
 &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/>
         <source>About GStreamer</source>
         <translation>О GStreamer</translation>
     </message>
     <message>
-        <location/>
         <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; }
@@ -527,22 +419,18 @@
 &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/>
         <source>GStreamer backend settings</source>
         <translation>Настройки модуля GStreamer</translation>
     </message>
     <message>
-        <location/>
         <source>Preferred audio sink:</source>
         <translation>Предпочитаемое звуковое устройство:</translation>
     </message>
     <message>
-        <location/>
         <source>Preferred render method:</source>
         <translation>Предпочитаемый метод отрисовки:</translation>
     </message>
     <message>
-        <location/>
         <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; }
@@ -555,57 +443,46 @@
 &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;Внимание: Изменение данных настроек может повлечь невозможность корректного запуска приложений.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;File</source>
         <translation>&amp;Файл</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Help</source>
         <translation>&amp;Справка</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Save</source>
         <translation>&amp;Сохранить</translation>
     </message>
     <message>
-        <location/>
         <source>Save</source>
         <translation>Сохранить</translation>
     </message>
     <message>
-        <location/>
         <source>Ctrl+S</source>
         <translation>Ctrl+S</translation>
     </message>
     <message>
-        <location/>
         <source>E&amp;xit</source>
         <translation>В&amp;ыход</translation>
     </message>
     <message>
-        <location/>
         <source>Exit</source>
         <translation>Выход</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;About</source>
         <translation>&amp;О программе</translation>
     </message>
     <message>
-        <location/>
         <source>About</source>
         <translation>О программе</translation>
     </message>
     <message>
-        <location/>
         <source>About &amp;Qt</source>
         <translation>О &amp;Qt</translation>
     </message>
     <message>
-        <location/>
         <source>About Qt</source>
         <translation>О Qt</translation>
     </message>
@@ -613,207 +490,166 @@
 <context>
     <name>PaletteEditorAdvancedBase</name>
     <message>
-        <location filename="../tools/qtconfig/paletteeditoradvancedbase.ui"/>
         <source>Tune Palette</source>
         <translation>Настройка палитры</translation>
     </message>
     <message>
-        <location/>
         <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;Изменение палитры&lt;/b&gt;&lt;p&gt;Изменение палитры текущего виджета или формы.&lt;/p&gt;&lt;p&gt;Используйте сформированную палитру или выберите цвета для каждой группы цветов и каждой их роли.&lt;/p&gt;&lt;p&gt;Палитру можно проверить на виджетах в разных режимах отображения в разделе предпросмотра.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location/>
         <source>Select &amp;Palette:</source>
         <translation>Выбор &amp;палитры:</translation>
     </message>
     <message>
-        <location/>
         <source>Active Palette</source>
         <translation>Палитра активных элементов</translation>
     </message>
     <message>
-        <location/>
         <source>Inactive Palette</source>
         <translation>Палитра неактивных элементов</translation>
     </message>
     <message>
-        <location/>
         <source>Disabled Palette</source>
         <translation>Палитра выключенных элементов</translation>
     </message>
     <message>
-        <location/>
         <source>Auto</source>
         <translation>Автоматически</translation>
     </message>
     <message>
-        <location/>
         <source>Build inactive palette from active</source>
         <translation type="unfinished">Создать неактивную палитру из активной</translation>
     </message>
     <message>
-        <location/>
         <source>Build disabled palette from active</source>
         <translation type="unfinished">Создать выключенную палитру из активной</translation>
     </message>
     <message>
-        <location/>
         <source>Central color &amp;roles</source>
         <translation type="unfinished">Роли &amp;цветов</translation>
     </message>
     <message>
-        <location/>
         <source>Choose central color role</source>
         <translation type="unfinished">Выберите роль цвета</translation>
     </message>
     <message>
-        <location/>
         <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 type="unfinished">&lt;b&gt;Выбор роли цвета.&lt;/b&gt;&lt;p&gt;Доступны следующие роли: &lt;ul&gt;&lt;li&gt;Window - основной цвет фона.&lt;/li&gt; &lt;li&gt;WindowText - основной цвет текста.&lt;/li&gt; &lt;li&gt;Base - используется в качестве фона для, например, виджетов с текстовыми полями, обычно, белый или другой светлый цвет.&lt;/li&gt; &lt;li&gt;Text - цвет текста используемый совместно с Base. Обычно, он совпадает с WindowText, так как в этом случае получается максимальный контраст и с Window, и с Base.&lt;/li&gt; &lt;li&gt;Button - основной цвет фона кнопки, которой требуется цвет отличный от Window, например, в стиле Macintosh.&lt;/li&gt; &lt;li&gt;ButtonText - цвет текста используемый совместно с Button.&lt;/li&gt; &lt;li&gt;Highlight - цвет для обозначения выбранного или выделенного элемента.&lt;/li&gt; &lt;li&gt;HighlightedText - цвет текста контрастирующий с Highlight.&lt;/li&gt; &lt;li&gt;BrightText - цвет текста, который отличается от WindowText и хорошо контрастирует с черным.&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;</translation>
     </message>
     <message>
-        <location/>
         <source>Window</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location/>
         <source>WindowText</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location/>
         <source>Button</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location/>
         <source>Base</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location/>
         <source>Text</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location/>
         <source>BrightText</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location/>
         <source>ButtonText</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location/>
         <source>Highlight</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location/>
         <source>HighlightedText</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Select Color:</source>
         <translation>&amp;Выбор цвета:</translation>
     </message>
     <message>
-        <location/>
         <source>Choose a color</source>
         <translation>Выберите цвет</translation>
     </message>
     <message>
-        <location/>
         <source>Choose a color for the selected central color role.</source>
         <translation>Выберите цвет для указанной роли.</translation>
     </message>
     <message>
-        <location/>
         <source>3-D shadow &amp;effects</source>
         <translation>Эффекты т&amp;рехмерной тени</translation>
     </message>
     <message>
-        <location/>
         <source>Build &amp;from button color</source>
         <translation>Получ&amp;ить из цвета кнопки</translation>
     </message>
     <message>
-        <location/>
         <source>Generate shadings</source>
         <translation type="unfinished">Создание полутонов</translation>
     </message>
     <message>
-        <location/>
         <source>Check to let 3D-effect colors be calculated from button-color.</source>
         <translation type="unfinished">Включите, чтобы цвета эффекта трёхмерности были получены из цвета кнопки.</translation>
     </message>
     <message>
-        <location/>
         <source>Choose 3D-effect color role</source>
         <translation type="unfinished">Выбор роли цвета дял эффекта трёхмерности</translation>
     </message>
     <message>
-        <location/>
         <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>&lt;b&gt;Выбор роли цвета.&lt;/b&gt;&lt;p&gt;Доступны следующие роли: &lt;ul&gt; &lt;li&gt;Light - светлее цвета Button. &lt;/li&gt; &lt;li&gt;Midlight - среднее между Light и Button. &lt;/li&gt; &lt;li&gt;Mid - среднее между Button и Dark. &lt;/li&gt; &lt;li&gt;Dark - темнее цвета Button. &lt;/li&gt; &lt;li&gt;Shadow - очень темный цвет. &lt;/li&gt; &lt;/ul&gt;</translation>
     </message>
     <message>
-        <location/>
         <source>Light</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location/>
         <source>Midlight</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location/>
         <source>Mid</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location/>
         <source>Dark</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location/>
         <source>Shadow</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location/>
         <source>Select Co&amp;lor:</source>
         <translation>Выбор &amp;цвета:</translation>
     </message>
     <message>
-        <location/>
         <source>Choose a color for the selected effect color role.</source>
         <translation type="unfinished">Выбор цвета для указанной роли.</translation>
     </message>
     <message>
-        <location/>
         <source>OK</source>
         <translation>Принять</translation>
     </message>
     <message>
-        <location/>
         <source>Close dialog and apply all changes.</source>
         <translation>Закрыть окно с применением изменений.</translation>
     </message>
     <message>
-        <location/>
         <source>Cancel</source>
         <translation>Отмена</translation>
     </message>
     <message>
-        <location/>
         <source>Close dialog and discard all changes.</source>
         <translation>Закрыть окно с отменой изменений.</translation>
     </message>
@@ -821,7 +657,6 @@
 <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>Настройки рабочего стола применятся после перезапуска приложения.</translation>
     </message>
@@ -829,62 +664,50 @@
 <context>
     <name>PreviewWidgetBase</name>
     <message>
-        <location filename="../tools/qtconfig/previewwidgetbase.ui"/>
         <source>Preview Window</source>
         <translation>Окно предпросмотра</translation>
     </message>
     <message>
-        <location/>
         <source>ButtonGroup</source>
         <translation>ButtonGroup</translation>
     </message>
     <message>
-        <location/>
         <source>RadioButton1</source>
         <translation>RadioButton1</translation>
     </message>
     <message>
-        <location/>
         <source>RadioButton2</source>
         <translation>RadioButton2</translation>
     </message>
     <message>
-        <location/>
         <source>RadioButton3</source>
         <translation>RadioButton3</translation>
     </message>
     <message>
-        <location/>
         <source>ButtonGroup2</source>
         <translation>ButtonGroup2</translation>
     </message>
     <message>
-        <location/>
         <source>CheckBox1</source>
         <translation>CheckBox1</translation>
     </message>
     <message>
-        <location/>
         <source>CheckBox2</source>
         <translation>CheckBox2</translation>
     </message>
     <message>
-        <location/>
         <source>LineEdit</source>
         <translation>LineEdit</translation>
     </message>
     <message>
-        <location/>
         <source>ComboBox</source>
         <translation>ComboBox</translation>
     </message>
     <message>
-        <location/>
         <source>PushButton</source>
         <translation>PushButton</translation>
     </message>
     <message>
-        <location/>
         <source>&lt;p&gt;
 &lt;a href=&quot;http://qt.nokia.com&quot;&gt;http://qt.nokia.com&lt;/a&gt;
 &lt;/p&gt;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/translations/qtconfig_sl.ts	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,732 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="sl">
+    <extra-po-header-po_revision_date>2010-08-28 15:58+0200</extra-po-header-po_revision_date>
+    <extra-po-headers>MIME-Version,Content-Type,Content-Transfer-Encoding,Plural-Forms,X-Language,X-Qt-Contexts,Last-Translator,PO-Revision-Date,Project-Id-Version,Language-Team,X-Generator</extra-po-headers>
+    <extra-po-header-x_generator>Lokalize 1.1</extra-po-header-x_generator>
+    <extra-po-header-language_team>Slovenian &lt;lugos-slo@lugos.si&gt;</extra-po-header-language_team>
+    <extra-po-header-project_id_version></extra-po-header-project_id_version>
+    <extra-po-header_comment># Jure Repinc &lt;jlp@holodeck1.com&gt;, 2010.</extra-po-header_comment>
+    <extra-po-header-last_translator>Jure Repinc &lt;jlp@holodeck1.com&gt;</extra-po-header-last_translator>
+<context>
+    <name>MainWindow</name>
+    <message>
+        <source>Desktop Settings (Default)</source>
+        <translation>Nastavitve namizja (privzeto)</translation>
+    </message>
+    <message>
+        <source>Choose style and palette based on your desktop settings.</source>
+        <translation>Izberite slog in paleto, ki temeljita na vaših nastavitvah namizja.</translation>
+    </message>
+    <message>
+        <source>On The Spot</source>
+        <translation>Na mestu</translation>
+    </message>
+    <message>
+        <source>Auto (default)</source>
+        <translation>Samodejno (privzeto)</translation>
+    </message>
+    <message>
+        <source>Choose audio output automatically.</source>
+        <translation>Samodejno izbere zvočni izhod.</translation>
+    </message>
+    <message>
+        <source>aRts</source>
+        <translation>aRts</translation>
+    </message>
+    <message>
+        <source>Experimental aRts support for GStreamer.</source>
+        <translation>Poskusna podpora za aRts za GStreamer.</translation>
+    </message>
+    <message>
+        <source>Phonon GStreamer backend not available.</source>
+        <translation>Hrbtenica GStreamer za Phonon ni na voljo.</translation>
+    </message>
+    <message>
+        <source>Choose render method automatically</source>
+        <translation>Samodejno izberi način izrisovanja</translation>
+    </message>
+    <message>
+        <source>X11</source>
+        <translation>X11</translation>
+    </message>
+    <message>
+        <source>Use X11 Overlays</source>
+        <translation>Uporabi prekritja X11</translation>
+    </message>
+    <message>
+        <source>OpenGL</source>
+        <translation>OpenGL</translation>
+    </message>
+    <message>
+        <source>Use OpenGL if available</source>
+        <translation>Če je na voljo, uporabi OpenGL</translation>
+    </message>
+    <message>
+        <source>Software</source>
+        <translation>Programsko</translation>
+    </message>
+    <message>
+        <source>Use simple software rendering</source>
+        <translation>Uporabi preprosto programsko izrisovanje</translation>
+    </message>
+    <message>
+        <source>No changes to be saved.</source>
+        <translation>Ni sprememb, ki bi jih bilo potrebno shraniti.</translation>
+    </message>
+    <message>
+        <source>Saving changes...</source>
+        <translation>Shranjevanje sprememb ...</translation>
+    </message>
+    <message>
+        <source>Over The Spot</source>
+        <translation>Prek mesta</translation>
+    </message>
+    <message>
+        <source>Off The Spot</source>
+        <translation>Z mesta</translation>
+    </message>
+    <message>
+        <source>Root</source>
+        <translation>Koren</translation>
+    </message>
+    <message>
+        <source>Select a Directory</source>
+        <translation>Izberite mapo</translation>
+    </message>
+    <message>
+        <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;Različica %2&lt;br/&gt;&lt;br/&gt;Avtorske pravice © 2010 Nokia Corporation in/ali njene podružnice.&lt;br/&gt;&lt;br/&gt;Prevedel: &lt;a href=&quot;mailto:jlp@holodeck1.com&quot;&gt;Jure Repinc&lt;/a&gt;, &lt;a href=&quot;http://www.lugos.si/&quot;&gt;LUGOS&lt;/a&gt;</translation>
+    </message>
+    <message>
+        <source>Qt Configuration</source>
+        <translation>Nastavitev Qt</translation>
+    </message>
+    <message>
+        <source>Save Changes</source>
+        <translation>Shrani spremembe</translation>
+    </message>
+    <message>
+        <source>Save changes to settings?</source>
+        <translation>Ali želite shraniti spremembe nastavitev?</translation>
+    </message>
+    <message>
+        <source>&amp;Yes</source>
+        <translation>&amp;Da</translation>
+    </message>
+    <message>
+        <source>&amp;No</source>
+        <translation>&amp;Ne</translation>
+    </message>
+    <message>
+        <source>&amp;Cancel</source>
+        <translation>&amp;Prekliči</translation>
+    </message>
+</context>
+<context>
+    <name>MainWindowBase</name>
+    <message>
+        <source>Qt Configuration</source>
+        <translation>Nastavitev Qt</translation>
+    </message>
+    <message>
+        <source>Appearance</source>
+        <translation>Videz</translation>
+    </message>
+    <message>
+        <source>GUI Style</source>
+        <translation>Slog grafičnega vmesnika</translation>
+    </message>
+    <message>
+        <source>Select GUI &amp;Style:</source>
+        <translation>Izberite &amp;slog grafičnega vmesnika:</translation>
+    </message>
+    <message>
+        <source>Preview</source>
+        <translation>Ogled</translation>
+    </message>
+    <message>
+        <source>Select &amp;Palette:</source>
+        <translation>Izberite &amp;paleto:</translation>
+    </message>
+    <message>
+        <source>Active Palette</source>
+        <translation>Paleta za aktivno</translation>
+    </message>
+    <message>
+        <source>Inactive Palette</source>
+        <translation>Paleta za neaktivno</translation>
+    </message>
+    <message>
+        <source>Disabled Palette</source>
+        <translation>Paleta za onemogočeno</translation>
+    </message>
+    <message>
+        <source>Build Palette</source>
+        <translation>Gradnja palete</translation>
+    </message>
+    <message>
+        <source>&amp;3-D Effects:</source>
+        <translation>Učinki &amp;3D:</translation>
+    </message>
+    <message>
+        <source>Window Back&amp;ground:</source>
+        <translation>&amp;Ozadje okna:</translation>
+    </message>
+    <message>
+        <source>&amp;Tune Palette...</source>
+        <translation>&amp;Nastavitev palete ...</translation>
+    </message>
+    <message>
+        <source>Please use the KDE Control Center to set the palette.</source>
+        <translation>Za nastavitev palete uporabite KDE-jeve Sistemske nastavitve.</translation>
+    </message>
+    <message>
+        <source>Fonts</source>
+        <translation>Pisave</translation>
+    </message>
+    <message>
+        <source>Default Font</source>
+        <translation>Privzeta pisava</translation>
+    </message>
+    <message>
+        <source>&amp;Style:</source>
+        <translation>&amp;Slog:</translation>
+    </message>
+    <message>
+        <source>&amp;Point Size:</source>
+        <translation>&amp;Velikost v točkah:</translation>
+    </message>
+    <message>
+        <source>F&amp;amily:</source>
+        <translation>&amp;Družina:</translation>
+    </message>
+    <message>
+        <source>Sample Text</source>
+        <translation>Vzorec besedila</translation>
+    </message>
+    <message>
+        <source>Font Substitution</source>
+        <translation>Nadomeščanje pisav</translation>
+    </message>
+    <message>
+        <source>S&amp;elect or Enter a Family:</source>
+        <translation>I&amp;zberite ali vnesite družino:</translation>
+    </message>
+    <message>
+        <source>Current Substitutions:</source>
+        <translation>Trenutni nadomestki:</translation>
+    </message>
+    <message>
+        <source>Up</source>
+        <translation>Gor</translation>
+    </message>
+    <message>
+        <source>Down</source>
+        <translation>Dol</translation>
+    </message>
+    <message>
+        <source>Remove</source>
+        <translation>Odstrani</translation>
+    </message>
+    <message>
+        <source>Select s&amp;ubstitute Family:</source>
+        <translation>Izberite &amp;nadomestno družino:</translation>
+    </message>
+    <message>
+        <source>Add</source>
+        <translation>Dodaj</translation>
+    </message>
+    <message>
+        <source>Interface</source>
+        <translation>Vmesnik</translation>
+    </message>
+    <message>
+        <source>Feel Settings</source>
+        <translation>Nastavitve obnašanja</translation>
+    </message>
+    <message>
+        <source> ms</source>
+        <translation> ms</translation>
+    </message>
+    <message>
+        <source>&amp;Double Click Interval:</source>
+        <translation>Interval &amp;dvojnega klika:</translation>
+    </message>
+    <message>
+        <source>No blinking</source>
+        <translation>Brez utripanja</translation>
+    </message>
+    <message>
+        <source>&amp;Cursor Flash Time:</source>
+        <translation>&amp;Hitrost utripanja kazalca:</translation>
+    </message>
+    <message>
+        <source> lines</source>
+        <translation> vrstic</translation>
+    </message>
+    <message>
+        <source>Wheel &amp;Scroll Lines:</source>
+        <translation>&amp;Vrtljaj koleščka:</translation>
+    </message>
+    <message>
+        <source>Resolve symlinks in URLs</source>
+        <translation>Razreši simbolične povezave v URL-jih</translation>
+    </message>
+    <message>
+        <source>GUI Effects</source>
+        <translation>Učinki grafičnega vmesnika</translation>
+    </message>
+    <message>
+        <source>&amp;Enable</source>
+        <translation>&amp;Omogoči</translation>
+    </message>
+    <message>
+        <source>Alt+E</source>
+        <translation>Alt+O</translation>
+    </message>
+    <message>
+        <source>&amp;Menu Effect:</source>
+        <translation>Učinek &amp;menija:</translation>
+    </message>
+    <message>
+        <source>C&amp;omboBox Effect:</source>
+        <translation>Učinek &amp;spustnega seznama:</translation>
+    </message>
+    <message>
+        <source>&amp;ToolTip Effect:</source>
+        <translation>Učinek &amp;namiga:</translation>
+    </message>
+    <message>
+        <source>Tool&amp;Box Effect:</source>
+        <translation>Učinek o&amp;rodjarne:</translation>
+    </message>
+    <message>
+        <source>Disable</source>
+        <translation>Onemogoči</translation>
+    </message>
+    <message>
+        <source>Animate</source>
+        <translation>Animiraj</translation>
+    </message>
+    <message>
+        <source>Fade</source>
+        <translation>Preidi</translation>
+    </message>
+    <message>
+        <source>Global Strut</source>
+        <translation>Globalni razmiki</translation>
+    </message>
+    <message>
+        <source>Minimum &amp;Width:</source>
+        <translation>Najmanjša &amp;širina:</translation>
+    </message>
+    <message>
+        <source>Minimum Hei&amp;ght:</source>
+        <translation>Najmanjša &amp;višina:</translation>
+    </message>
+    <message>
+        <source> pixels</source>
+        <translation> pik</translation>
+    </message>
+    <message>
+        <source>Enhanced support for languages written right-to-left</source>
+        <translation>Izboljšana podpora za jezike, ki se pišejo od desne proti levi</translation>
+    </message>
+    <message>
+        <source>XIM Input Style:</source>
+        <translation>Način za vnašanje XIM:</translation>
+    </message>
+    <message>
+        <source>On The Spot</source>
+        <translation>Na mestu</translation>
+    </message>
+    <message>
+        <source>Over The Spot</source>
+        <translation>Prek mesta</translation>
+    </message>
+    <message>
+        <source>Off The Spot</source>
+        <translation>Z mesta</translation>
+    </message>
+    <message>
+        <source>Root</source>
+        <translation>Vrh</translation>
+    </message>
+    <message>
+        <source>Default Input Method:</source>
+        <translation>Privzeti način vnašanja:</translation>
+    </message>
+    <message>
+        <source>Printer</source>
+        <translation>Tiskalnik</translation>
+    </message>
+    <message>
+        <source>Enable Font embedding</source>
+        <translation>Omogoči vgrajevanje pisav</translation>
+    </message>
+    <message>
+        <source>Font Paths</source>
+        <translation>Poti do posav</translation>
+    </message>
+    <message>
+        <source>Browse...</source>
+        <translation>Brskanje ...</translation>
+    </message>
+    <message>
+        <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>Kliknite gumb &lt;b&gt;Brskanje&lt;/b&gt; ali pa vnesite mapo in pritisnite vnašalko za dodajanje na seznam.</translation>
+    </message>
+    <message>
+        <source>Phonon</source>
+        <translation>Phonon</translation>
+    </message>
+    <message>
+        <source>About Phonon</source>
+        <translation>O Phononu</translation>
+    </message>
+    <message>
+        <source>Current Version:</source>
+        <translation>Trenutna različica:</translation>
+    </message>
+    <message>
+        <source>Not available</source>
+        <translation>Ni na voljo</translation>
+    </message>
+    <message>
+        <source>Website:</source>
+        <translation>Spletna stran:</translation>
+    </message>
+    <message>
+        <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>
+        <source>About GStreamer</source>
+        <translation>O GStreamerju</translation>
+    </message>
+    <message>
+        <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>
+        <source>GStreamer backend settings</source>
+        <translation>Nastavitve hrbtenice GStreamer</translation>
+    </message>
+    <message>
+        <source>Preferred audio sink:</source>
+        <translation>Prednostni ponor zvoka:</translation>
+    </message>
+    <message>
+        <source>Preferred render method:</source>
+        <translation>Prednostni način izrisovanja:</translation>
+    </message>
+    <message>
+        <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;Vedite: spremembe teh nastavitev lahko preprečijo pravilen zagon programov.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
+    </message>
+    <message>
+        <source>&amp;File</source>
+        <translation>&amp;Datoteka</translation>
+    </message>
+    <message>
+        <source>&amp;Help</source>
+        <translation>&amp;Pomoč</translation>
+    </message>
+    <message>
+        <source>&amp;Save</source>
+        <translation>&amp;Shrani</translation>
+    </message>
+    <message>
+        <source>Save</source>
+        <translation>Shrani</translation>
+    </message>
+    <message>
+        <source>Ctrl+S</source>
+        <translation>Ctrl+S</translation>
+    </message>
+    <message>
+        <source>E&amp;xit</source>
+        <translation>Konča&amp;j</translation>
+    </message>
+    <message>
+        <source>Exit</source>
+        <translation>Končaj</translation>
+    </message>
+    <message>
+        <source>&amp;About</source>
+        <translation>&amp;O</translation>
+    </message>
+    <message>
+        <source>About</source>
+        <translation>O</translation>
+    </message>
+    <message>
+        <source>About &amp;Qt</source>
+        <translation>O &amp;Qt</translation>
+    </message>
+    <message>
+        <source>About Qt</source>
+        <translation>O Qt</translation>
+    </message>
+</context>
+<context>
+    <name>PaletteEditorAdvancedBase</name>
+    <message>
+        <source>Tune Palette</source>
+        <translation>Nastavitev palete</translation>
+    </message>
+    <message>
+        <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;Nastavitev palete&lt;/b&gt;&lt;p&gt;Spremenite paleto za trenutni gradnik ali obrazec.&lt;/p&gt;&lt;p&gt;Uporabite ustvarjeno paleto ali pa za vsako barvno skupino in vsako barvno vlogo izberite barvo.&lt;/p&gt;&lt;p&gt;Paleto lahko v razdelku Ogled preizkusite z različnimi slogi gradnikov.&lt;/p&gt;</translation>
+    </message>
+    <message>
+        <source>Select &amp;Palette:</source>
+        <translation>Izberite &amp;paleto:</translation>
+    </message>
+    <message>
+        <source>Active Palette</source>
+        <translation>Paleta za aktivno</translation>
+    </message>
+    <message>
+        <source>Inactive Palette</source>
+        <translation>Paleta za neaktivno</translation>
+    </message>
+    <message>
+        <source>Disabled Palette</source>
+        <translation>Paleta za onemogočeno</translation>
+    </message>
+    <message>
+        <source>Auto</source>
+        <translation>Samodejno</translation>
+    </message>
+    <message>
+        <source>Build inactive palette from active</source>
+        <translation>Paleto za neaktivno zgradi iz palete za aktivno</translation>
+    </message>
+    <message>
+        <source>Build disabled palette from active</source>
+        <translation>Paleto za onemogočeno zgradi iz palete za aktivno</translation>
+    </message>
+    <message>
+        <source>Central color &amp;roles</source>
+        <translation>Osrednje barvne &amp;vloge</translation>
+    </message>
+    <message>
+        <source>Choose central color role</source>
+        <translation>Izberite osrednjo barvno vlogo</translation>
+    </message>
+    <message>
+        <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;Izberite barvno vlogo&lt;/b&gt;&lt;p&gt;Razpoložljive osrednje vloge so:&lt;ul&gt;&lt;li&gt;Okno – splošna barva ozadja.&lt;/li&gt;&lt;li&gt;Besedilo okna – splošna barva ospredja&lt;/li&gt;&lt;li&gt;Osnova – uporabljena kot barva ozadja za npr. vnosne gradnike, običajno bela ali druga svetla barva.&lt;/li&gt;&lt;li&gt;Besedilo – barva ospredja, ki se uporablja z Osnovo. Običajno je to isto kot Besedilo okna in v tem primeru mora biti v kontrastu z barvama Okno in Osnova.&lt;/li&gt;&lt;li&gt;Gumb – splošna barva ozadja gumba, če gumb potrebuje ozadje, ki je drugačno od ozadja oken.&lt;/li&gt;&lt;li&gt;Besedilo gumba – barva ospredja, ki se uporablja z barvo Gumba&lt;li&gt;Poudarek – barva za nakazovanje izbranega ali poudarjenega.&lt;/li&gt;&lt;li&gt;Poudarjeno besedilo – barva besedila, ki se razlikuje od barve za Poudarek.&lt;/li&gt;&lt;li&gt;Svetlo besedilo – barva besedila, ki se zelo razlikuje od barve za Besedilo okna in je v kontrastu s črno.&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;</translation>
+    </message>
+    <message>
+        <source>Window</source>
+        <translation>Okno</translation>
+    </message>
+    <message>
+        <source>WindowText</source>
+        <translation>Besedilo okna</translation>
+    </message>
+    <message>
+        <source>Button</source>
+        <translation>Gumb</translation>
+    </message>
+    <message>
+        <source>Base</source>
+        <translation>Osnova</translation>
+    </message>
+    <message>
+        <source>Text</source>
+        <translation>Besedilo</translation>
+    </message>
+    <message>
+        <source>BrightText</source>
+        <translation>Svetlo besedilo</translation>
+    </message>
+    <message>
+        <source>ButtonText</source>
+        <translation>Besedilo gumba</translation>
+    </message>
+    <message>
+        <source>Highlight</source>
+        <translation>Poudarek</translation>
+    </message>
+    <message>
+        <source>HighlightedText</source>
+        <translation>Poudarjeno besedilo</translation>
+    </message>
+    <message>
+        <source>&amp;Select Color:</source>
+        <translation>&amp;Izberite barvo:</translation>
+    </message>
+    <message>
+        <source>Choose a color</source>
+        <translation>Izberite barvo</translation>
+    </message>
+    <message>
+        <source>Choose a color for the selected central color role.</source>
+        <translation>Izberite barvo za izbrano osrednjo barvno vlogo.</translation>
+    </message>
+    <message>
+        <source>3-D shadow &amp;effects</source>
+        <translation>&amp;Učinki 3D sence:</translation>
+    </message>
+    <message>
+        <source>Build &amp;from button color</source>
+        <translation>&amp;Zgradi iz barve za gumb</translation>
+    </message>
+    <message>
+        <source>Generate shadings</source>
+        <translation>Ustvari sence</translation>
+    </message>
+    <message>
+        <source>Check to let 3D-effect colors be calculated from button-color.</source>
+        <translation>Izberite, da se barve 3D učinka izračuna iz barve za gumb.</translation>
+    </message>
+    <message>
+        <source>Choose 3D-effect color role</source>
+        <translation>Izberite barvno vlogo 3D učinka</translation>
+    </message>
+    <message>
+        <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>&lt;b&gt;Izberite barvno vlogo&lt;/b&gt;&lt;p&gt;Razpoložljive vloge za učinek so:&lt;ul&gt;&lt;li&gt;Svetlo – svetlejše od barve za gumb.&lt;/li&gt;&lt;li&gt;Srednje svetlo – med barvama za gumb in Svetlo.&lt;/li&gt;&lt;li&gt;Srednje temno – med barvama za gumb in Temno&lt;/li&gt;&lt;li&gt;Temno – temnejše od barve za gumb.&lt;/li&gt;&lt;li&gt;Senca – zelo temna barva.&lt;/li&gt;&lt;/ul&gt;</translation>
+    </message>
+    <message>
+        <source>Light</source>
+        <translation>Svetlo</translation>
+    </message>
+    <message>
+        <source>Midlight</source>
+        <translation>Srednje svetlo</translation>
+    </message>
+    <message>
+        <source>Mid</source>
+        <translation>Srednje temno</translation>
+    </message>
+    <message>
+        <source>Dark</source>
+        <translation>Temno</translation>
+    </message>
+    <message>
+        <source>Shadow</source>
+        <translation>Senca</translation>
+    </message>
+    <message>
+        <source>Select Co&amp;lor:</source>
+        <translation>Izberite b&amp;arvo:</translation>
+    </message>
+    <message>
+        <source>Choose a color for the selected effect color role.</source>
+        <translation>Izberite barvo za izbrano barvno vlogo učinka.</translation>
+    </message>
+    <message>
+        <source>OK</source>
+        <translation>V redu</translation>
+    </message>
+    <message>
+        <source>Close dialog and apply all changes.</source>
+        <translation>Zapre pogovorno okno in uveljavi spremembe.</translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation>Prekliči</translation>
+    </message>
+    <message>
+        <source>Close dialog and discard all changes.</source>
+        <translation>Zapre pogovorno okno in zavrže spremembe.</translation>
+    </message>
+</context>
+<context>
+    <name>PreviewFrame</name>
+    <message>
+        <source>Desktop settings will only take effect after an application restart.</source>
+        <translation>Nastavitve namizja bodo stopile v veljavo po ponovnem zagonu programa.</translation>
+    </message>
+</context>
+<context>
+    <name>PreviewWidgetBase</name>
+    <message>
+        <source>Preview Window</source>
+        <translation>Okno ogleda</translation>
+    </message>
+    <message>
+        <source>ButtonGroup</source>
+        <translation>SkupinaGumbov</translation>
+    </message>
+    <message>
+        <source>RadioButton1</source>
+        <translation>IzbirniGumb1</translation>
+    </message>
+    <message>
+        <source>RadioButton2</source>
+        <translation>IzbirniGumb2</translation>
+    </message>
+    <message>
+        <source>RadioButton3</source>
+        <translation>IzbirniGumb3</translation>
+    </message>
+    <message>
+        <source>ButtonGroup2</source>
+        <translation>SkupinaGumbov2</translation>
+    </message>
+    <message>
+        <source>CheckBox1</source>
+        <translation>PotrditvenoPolje1</translation>
+    </message>
+    <message>
+        <source>CheckBox2</source>
+        <translation>PotrditvenoPolje2</translation>
+    </message>
+    <message>
+        <source>LineEdit</source>
+        <translation>UrejevalnaVrstica</translation>
+    </message>
+    <message>
+        <source>ComboBox</source>
+        <translation>SpustniSeznam</translation>
+    </message>
+    <message>
+        <source>PushButton</source>
+        <translation>Gumb</translation>
+    </message>
+    <message>
+        <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;qt.nokia.com&lt;/a&gt;
+&lt;/p&gt;
+&lt;p&gt;
+&lt;a href=&quot;http://www.kde.org/&quot;&gt;www.kde.org&lt;/a&gt;
+&lt;/p&gt;</translation>
+    </message>
+</context>
+</TS>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/translations/qtconfig_uk.ts	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,717 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="uk_UA">
+<context>
+    <name>MainWindow</name>
+    <message>
+        <source>Desktop Settings (Default)</source>
+        <translation>Налаштування стільниці (Типово)</translation>
+    </message>
+    <message>
+        <source>Choose style and palette based on your desktop settings.</source>
+        <translation>Оберіть стиль та палітру відповідно до ваших налаштувань стільниці.</translation>
+    </message>
+    <message>
+        <source>On The Spot</source>
+        <translation>У вікні документу</translation>
+    </message>
+    <message>
+        <source>Auto (default)</source>
+        <translation>Автоматично (типово)</translation>
+    </message>
+    <message>
+        <source>Choose audio output automatically.</source>
+        <translation>Вибрати аудіо вихід автоматично.</translation>
+    </message>
+    <message>
+        <source>aRts</source>
+        <translation>aRts</translation>
+    </message>
+    <message>
+        <source>Experimental aRts support for GStreamer.</source>
+        <translation>Експериментальна підтримка aRts для GStreamer.</translation>
+    </message>
+    <message>
+        <source>Phonon GStreamer backend not available.</source>
+        <translation>Підтримка GStreamer для Phonon не доступна.</translation>
+    </message>
+    <message>
+        <source>Choose render method automatically</source>
+        <translation>Обрати метод вімальовки автоматично</translation>
+    </message>
+    <message>
+        <source>X11</source>
+        <translation>X11</translation>
+    </message>
+    <message>
+        <source>Use X11 Overlays</source>
+        <translation>Використовувати оверлеї X11</translation>
+    </message>
+    <message>
+        <source>OpenGL</source>
+        <translation>OpenGL</translation>
+    </message>
+    <message>
+        <source>Use OpenGL if available</source>
+        <translation>Використовувати OpenGL, якщо доступно</translation>
+    </message>
+    <message>
+        <source>Software</source>
+        <translation>Програмно</translation>
+    </message>
+    <message>
+        <source>Use simple software rendering</source>
+        <translation>Використовувати простий програмний рендеринг</translation>
+    </message>
+    <message>
+        <source>No changes to be saved.</source>
+        <translation>Немає змін для збереження.</translation>
+    </message>
+    <message>
+        <source>Saving changes...</source>
+        <translation>Збереження змін...</translation>
+    </message>
+    <message>
+        <source>Over The Spot</source>
+        <translation>Над вікном документу</translation>
+    </message>
+    <message>
+        <source>Off The Spot</source>
+        <translation>В рядку стану</translation>
+    </message>
+    <message>
+        <source>Root</source>
+        <translation>В додатковому вікні</translation>
+    </message>
+    <message>
+        <source>Select a Directory</source>
+        <translation>Оберіть теку</translation>
+    </message>
+    <message>
+        <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;Version %2&lt;br/&gt;&lt;br/&gt;Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).</translation>
+    </message>
+    <message>
+        <source>Qt Configuration</source>
+        <translation>Налаштування Qt</translation>
+    </message>
+    <message>
+        <source>Save Changes</source>
+        <translation>Зберегти зміни</translation>
+    </message>
+    <message>
+        <source>Save changes to settings?</source>
+        <translation>Зберегти зміни до налаштувань?</translation>
+    </message>
+    <message>
+        <source>&amp;Yes</source>
+        <translation>&amp;Так</translation>
+    </message>
+    <message>
+        <source>&amp;No</source>
+        <translation>&amp;Ні</translation>
+    </message>
+    <message>
+        <source>&amp;Cancel</source>
+        <translation>&amp;Скасувати</translation>
+    </message>
+</context>
+<context>
+    <name>MainWindowBase</name>
+    <message>
+        <source>Qt Configuration</source>
+        <translation>Налаштування Qt</translation>
+    </message>
+    <message>
+        <source>Appearance</source>
+        <translation>Вигляд</translation>
+    </message>
+    <message>
+        <source>GUI Style</source>
+        <translation>Стиль GUI</translation>
+    </message>
+    <message>
+        <source>Select GUI &amp;Style:</source>
+        <translation>Оберіть &amp;стиль GUI:</translation>
+    </message>
+    <message>
+        <source>Preview</source>
+        <translation>Попередній перегляд</translation>
+    </message>
+    <message>
+        <source>Select &amp;Palette:</source>
+        <translation>Виберіть &amp;палітру:</translation>
+    </message>
+    <message>
+        <source>Active Palette</source>
+        <translation>Активна палітра</translation>
+    </message>
+    <message>
+        <source>Inactive Palette</source>
+        <translation>Неактивна палітра</translation>
+    </message>
+    <message>
+        <source>Disabled Palette</source>
+        <translation>Вимкнена палітра</translation>
+    </message>
+    <message>
+        <source>Build Palette</source>
+        <translation>Створити палітру</translation>
+    </message>
+    <message>
+        <source>&amp;3-D Effects:</source>
+        <translation>&amp;3-D ефекти:</translation>
+    </message>
+    <message>
+        <source>Window Back&amp;ground:</source>
+        <translation>Фон &amp;вікна:</translation>
+    </message>
+    <message>
+        <source>&amp;Tune Palette...</source>
+        <translation>&amp;Налаштувати палітру...</translation>
+    </message>
+    <message>
+        <source>Please use the KDE Control Center to set the palette.</source>
+        <translation>Будь ласка, використовуйте Системні параметри KDE, щоб встановити палітру.</translation>
+    </message>
+    <message>
+        <source>Fonts</source>
+        <translation>Шрифти</translation>
+    </message>
+    <message>
+        <source>Default Font</source>
+        <translation>Типовий шрифт</translation>
+    </message>
+    <message>
+        <source>&amp;Style:</source>
+        <translation>&amp;Стиль:</translation>
+    </message>
+    <message>
+        <source>&amp;Point Size:</source>
+        <translation>&amp;Розмір:</translation>
+    </message>
+    <message>
+        <source>F&amp;amily:</source>
+        <translation>&amp;Шрифт:</translation>
+    </message>
+    <message>
+        <source>Sample Text</source>
+        <translation>Зразок тексту</translation>
+    </message>
+    <message>
+        <source>Font Substitution</source>
+        <translation>Заміна шрифтів</translation>
+    </message>
+    <message>
+        <source>S&amp;elect or Enter a Family:</source>
+        <translation>&amp;Виберіть чи введіть шрифт:</translation>
+    </message>
+    <message>
+        <source>Current Substitutions:</source>
+        <translation>Поточні заміни:</translation>
+    </message>
+    <message>
+        <source>Up</source>
+        <translation>Вгору</translation>
+    </message>
+    <message>
+        <source>Down</source>
+        <translation>Вниз</translation>
+    </message>
+    <message>
+        <source>Remove</source>
+        <translation>Видалити</translation>
+    </message>
+    <message>
+        <source>Select s&amp;ubstitute Family:</source>
+        <translation>&amp;Оберіть шрифт, яким заміняти:</translation>
+    </message>
+    <message>
+        <source>Add</source>
+        <translation>Додати</translation>
+    </message>
+    <message>
+        <source>Interface</source>
+        <translation>Інтерфейс</translation>
+    </message>
+    <message>
+        <source>Feel Settings</source>
+        <translation>Поведінка миші</translation>
+    </message>
+    <message>
+        <source> ms</source>
+        <translation> мс</translation>
+    </message>
+    <message>
+        <source>&amp;Double Click Interval:</source>
+        <translation>&amp;Інтервал подвійного клацання:</translation>
+    </message>
+    <message>
+        <source>No blinking</source>
+        <translation>Без блимання</translation>
+    </message>
+    <message>
+        <source>&amp;Cursor Flash Time:</source>
+        <translation>&amp;Час блимання курсору:</translation>
+    </message>
+    <message>
+        <source> lines</source>
+        <translation> рядків</translation>
+    </message>
+    <message>
+        <source>Wheel &amp;Scroll Lines:</source>
+        <translation>&amp;Коліщатко прокручує:</translation>
+    </message>
+    <message>
+        <source>Resolve symlinks in URLs</source>
+        <translation>Вирішувати символьні посилання в URL</translation>
+    </message>
+    <message>
+        <source>GUI Effects</source>
+        <translation>Ефекти GUI</translation>
+    </message>
+    <message>
+        <source>&amp;Enable</source>
+        <translation>&amp;Увімкнути</translation>
+    </message>
+    <message>
+        <source>Alt+E</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>&amp;Menu Effect:</source>
+        <translation>Ефект &amp;меню:</translation>
+    </message>
+    <message>
+        <source>C&amp;omboBox Effect:</source>
+        <translation>Ефект випадаючого &amp;списку:</translation>
+    </message>
+    <message>
+        <source>&amp;ToolTip Effect:</source>
+        <translation>Ефект &amp;підказки:</translation>
+    </message>
+    <message>
+        <source>Tool&amp;Box Effect:</source>
+        <translation>Ефект панелі &amp;інструментів:</translation>
+    </message>
+    <message>
+        <source>Disable</source>
+        <translation>Вимкнуто</translation>
+    </message>
+    <message>
+        <source>Animate</source>
+        <translation>Анімація</translation>
+    </message>
+    <message>
+        <source>Fade</source>
+        <translation>Згасання</translation>
+    </message>
+    <message>
+        <source>Global Strut</source>
+        <translation>Мінімальний розмір віджетів</translation>
+    </message>
+    <message>
+        <source>Minimum &amp;Width:</source>
+        <translation>Мінімальна &amp;ширина:</translation>
+    </message>
+    <message>
+        <source>Minimum Hei&amp;ght:</source>
+        <translation>Мінімальна &amp;висота:</translation>
+    </message>
+    <message>
+        <source> pixels</source>
+        <translation> пікселів</translation>
+    </message>
+    <message>
+        <source>Enhanced support for languages written right-to-left</source>
+        <translation>Розширена підтримка для, що пишуться справа наліво</translation>
+    </message>
+    <message>
+        <source>XIM Input Style:</source>
+        <translation>Стиль введення XIM:</translation>
+    </message>
+    <message>
+        <source>On The Spot</source>
+        <translation>У вікні документу</translation>
+    </message>
+    <message>
+        <source>Over The Spot</source>
+        <translation>Над вікном документу</translation>
+    </message>
+    <message>
+        <source>Off The Spot</source>
+        <translation>В рядку стану</translation>
+    </message>
+    <message>
+        <source>Root</source>
+        <translation>В додатковому вікні</translation>
+    </message>
+    <message>
+        <source>Default Input Method:</source>
+        <translation>Типовий метод введення:</translation>
+    </message>
+    <message>
+        <source>Printer</source>
+        <translation>Принтер</translation>
+    </message>
+    <message>
+        <source>Enable Font embedding</source>
+        <translation>Увімкнути вживлення шрифтів</translation>
+    </message>
+    <message>
+        <source>Font Paths</source>
+        <translation>Шляхи до шрифтів</translation>
+    </message>
+    <message>
+        <source>Browse...</source>
+        <translation>Огляд...</translation>
+    </message>
+    <message>
+        <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>Натисніть кнопку &lt;b&gt;Огляд&lt;/b&gt; чи введіть теку та натисніть Enter, щоб додати її до списку.</translation>
+    </message>
+    <message>
+        <source>Phonon</source>
+        <translation>Phonon</translation>
+    </message>
+    <message>
+        <source>About Phonon</source>
+        <translation>Про Phonon</translation>
+    </message>
+    <message>
+        <source>Current Version:</source>
+        <translation>Поточна версія:</translation>
+    </message>
+    <message>
+        <source>Not available</source>
+        <translation>Не доступна</translation>
+    </message>
+    <message>
+        <source>Website:</source>
+        <translation>Веб-сайт:</translation>
+    </message>
+    <message>
+        <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></translation>
+    </message>
+    <message>
+        <source>About GStreamer</source>
+        <translation>Про GStreamer</translation>
+    </message>
+    <message>
+        <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></translation>
+    </message>
+    <message>
+        <source>GStreamer backend settings</source>
+        <translation>Налаштування модуля GStreamer</translation>
+    </message>
+    <message>
+        <source>Preferred audio sink:</source>
+        <translation>Бажаний аудіо вихід:</translation>
+    </message>
+    <message>
+        <source>Preferred render method:</source>
+        <translation>Бажаний метод рендерингу:</translation>
+    </message>
+    <message>
+        <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;Примітка: зміни до цих налаштувань можуть заважати правильному запуску програм.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
+    </message>
+    <message>
+        <source>&amp;File</source>
+        <translation>&amp;Файл</translation>
+    </message>
+    <message>
+        <source>&amp;Help</source>
+        <translation>&amp;Довідка</translation>
+    </message>
+    <message>
+        <source>&amp;Save</source>
+        <translation>&amp;Зберегти</translation>
+    </message>
+    <message>
+        <source>Save</source>
+        <translation>Зберегти</translation>
+    </message>
+    <message>
+        <source>Ctrl+S</source>
+        <translation>Ctrl+S</translation>
+    </message>
+    <message>
+        <source>E&amp;xit</source>
+        <translation>Ви&amp;йти</translation>
+    </message>
+    <message>
+        <source>Exit</source>
+        <translation>Вийти</translation>
+    </message>
+    <message>
+        <source>&amp;About</source>
+        <translation>&amp;Про</translation>
+    </message>
+    <message>
+        <source>About</source>
+        <translation>Про</translation>
+    </message>
+    <message>
+        <source>About &amp;Qt</source>
+        <translation>Про &amp;Qt</translation>
+    </message>
+    <message>
+        <source>About Qt</source>
+        <translation>Про Qt</translation>
+    </message>
+</context>
+<context>
+    <name>PaletteEditorAdvancedBase</name>
+    <message>
+        <source>Tune Palette</source>
+        <translation>Налаштувати палітру</translation>
+    </message>
+    <message>
+        <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;Редагування палітри&lt;/b&gt;&lt;p&gt;Змінити палітру поточного віджета чи форми.&lt;/p&gt;&lt;p&gt;Використовуйте згенеровану палітру чи оберіть кольори для кожної групи кольорів та кожної кольорової ролі.&lt;/p&gt;&lt;p&gt;Палітру можна протестувати з різними розміщеннями віджетів в секції попереднього перегляду.&lt;/p&gt;</translation>
+    </message>
+    <message>
+        <source>Select &amp;Palette:</source>
+        <translation>Виберіть &amp;палітру:</translation>
+    </message>
+    <message>
+        <source>Active Palette</source>
+        <translation>Активна палітра</translation>
+    </message>
+    <message>
+        <source>Inactive Palette</source>
+        <translation>Неактивна палітра</translation>
+    </message>
+    <message>
+        <source>Disabled Palette</source>
+        <translation>Вимкнена палітра</translation>
+    </message>
+    <message>
+        <source>Auto</source>
+        <translation>Автоматично</translation>
+    </message>
+    <message>
+        <source>Build inactive palette from active</source>
+        <translation>Будувати неактивну палітру з активної</translation>
+    </message>
+    <message>
+        <source>Build disabled palette from active</source>
+        <translation>Будувати вимкнену палітру з активної</translation>
+    </message>
+    <message>
+        <source>Central color &amp;roles</source>
+        <translation>Головні кольорові &amp;ролі</translation>
+    </message>
+    <message>
+        <source>Choose central color role</source>
+        <translation>Оберіть головну кольорову роль</translation>
+    </message>
+    <message>
+        <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;Вибір кольорової ролі.&lt;/b&gt;&lt;p&gt;Доступні наступні головні ролі: &lt;ul&gt; &lt;li&gt;Вікно - загальний колір фону.&lt;/li&gt; &lt;li&gt;Текст вікна - загальний колір переднього плану. &lt;/li&gt; &lt;li&gt;Базовий - використовується як колір фону, наприклад, для віджетів для введення тексту, зазвичай білий або інший світлий колір. &lt;/li&gt; &lt;li&gt;Текст - колір переднього плану, що використовується разом з базовим. Зазвичай збігається з &quot;Текст вікна&quot;, і в цьому випадку має забезпечувати гарний контраст і з &quot;Вікном&quot;, і з &quot;Базовим&quot;. &lt;/li&gt; &lt;li&gt;Кнопка - загальний колір фону кнопки, там де кнопки потребуються інший від &quot;Вікна&quot; фон, як в стилі Macintosh. &lt;/li&gt; &lt;li&gt;Текст кнопки - колір переднього плану, що застосовується разом з кольором &quot;Кнопки&quot;. &lt;/li&gt; &lt;li&gt;Підсвічений - колір для індикації виділеного чи підсвіченого елементу. &lt;/li&gt; &lt;li&gt;Підсвічений текст - колір тексту, що контрастує з &quot;Підсвіченим&quot;. &lt;/li&gt; &lt;li&gt;Яскравий текст - колір тексту, що суттєво відрізняється від &quot;Тексту вікна&quot; та добре контрастує з чорним, наприклад. &lt;/li&gt; &lt;/ul&gt; &lt;/p&gt;</translation>
+    </message>
+    <message>
+        <source>Window</source>
+        <translation>Вікно</translation>
+    </message>
+    <message>
+        <source>WindowText</source>
+        <translation>Текст вікна</translation>
+    </message>
+    <message>
+        <source>Button</source>
+        <translation>Кнопка</translation>
+    </message>
+    <message>
+        <source>Base</source>
+        <translation>Базовий</translation>
+    </message>
+    <message>
+        <source>Text</source>
+        <translation>Текст</translation>
+    </message>
+    <message>
+        <source>BrightText</source>
+        <translation>Яскравий текст</translation>
+    </message>
+    <message>
+        <source>ButtonText</source>
+        <translation>Текст кнопки</translation>
+    </message>
+    <message>
+        <source>Highlight</source>
+        <translation>Підсвічений</translation>
+    </message>
+    <message>
+        <source>HighlightedText</source>
+        <translation>Підсвічений текст</translation>
+    </message>
+    <message>
+        <source>&amp;Select Color:</source>
+        <translation>&amp;Оберіть колір:</translation>
+    </message>
+    <message>
+        <source>Choose a color</source>
+        <translation>Оберіть колір</translation>
+    </message>
+    <message>
+        <source>Choose a color for the selected central color role.</source>
+        <translation>Виберіть колір для вказаної головної кольорової ролі.</translation>
+    </message>
+    <message>
+        <source>3-D shadow &amp;effects</source>
+        <translation>3-D &amp;ефекти тіні</translation>
+    </message>
+    <message>
+        <source>Build &amp;from button color</source>
+        <translation>Будувати &amp;з кольору кнопки</translation>
+    </message>
+    <message>
+        <source>Generate shadings</source>
+        <translation>Генерувати тіні</translation>
+    </message>
+    <message>
+        <source>Check to let 3D-effect colors be calculated from button-color.</source>
+        <translation>Увімкніть, щоб кольори 3D-ефектів розраховувались з кольору кнопки.</translation>
+    </message>
+    <message>
+        <source>Choose 3D-effect color role</source>
+        <translation>Оберіть роль для 3D-ефектів</translation>
+    </message>
+    <message>
+        <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>&lt;b&gt;Оберіть кольорову роль.&lt;/b&gt;&lt;p&gt;Доступні наступні ролі ефектів: &lt;ul&gt; &lt;li&gt;Світлий - світліше ніж колір кнопки. &lt;/li&gt; &lt;li&gt;Напівсвітлий - між &quot;Кнопкою&quot; та &quot;Світлим&quot;. &lt;/li&gt; &lt;li&gt;Напівтемний - між &quot;Кнопкою&quot; та &quot;Темним&quot;. &lt;/li&gt; &lt;li&gt;Темний - темніший ніж &quot;Кнопка&quot;. &lt;/li&gt; &lt;li&gt;Тінь - дуже темний колір. &lt;/li&gt; &lt;/ul&gt;</translation>
+    </message>
+    <message>
+        <source>Light</source>
+        <translation>Світлий</translation>
+    </message>
+    <message>
+        <source>Midlight</source>
+        <translation>Напівсвітлий</translation>
+    </message>
+    <message>
+        <source>Mid</source>
+        <translation>Напівтемний</translation>
+    </message>
+    <message>
+        <source>Dark</source>
+        <translation>Темний</translation>
+    </message>
+    <message>
+        <source>Shadow</source>
+        <translation>Тінь</translation>
+    </message>
+    <message>
+        <source>Select Co&amp;lor:</source>
+        <translation>Оберіть &amp;колір:</translation>
+    </message>
+    <message>
+        <source>Choose a color for the selected effect color role.</source>
+        <translation>Оберіть колір для вказаної кольорової ролі ефектів.</translation>
+    </message>
+    <message>
+        <source>OK</source>
+        <translation>OK</translation>
+    </message>
+    <message>
+        <source>Close dialog and apply all changes.</source>
+        <translation>Закрити діалог та застосувати усі зміни.</translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation>Скасувати</translation>
+    </message>
+    <message>
+        <source>Close dialog and discard all changes.</source>
+        <translation>Закрити діалог та відкинути усі зміни.</translation>
+    </message>
+</context>
+<context>
+    <name>PreviewFrame</name>
+    <message>
+        <source>Desktop settings will only take effect after an application restart.</source>
+        <translation>Налаштування стільниці будуть застосовані лише після перезапуску програми.</translation>
+    </message>
+</context>
+<context>
+    <name>PreviewWidgetBase</name>
+    <message>
+        <source>Preview Window</source>
+        <translation>Вікно попереднього перегляду</translation>
+    </message>
+    <message>
+        <source>ButtonGroup</source>
+        <translation>Група кнопок</translation>
+    </message>
+    <message>
+        <source>RadioButton1</source>
+        <translation>Перемикач 1</translation>
+    </message>
+    <message>
+        <source>RadioButton2</source>
+        <translation>Перемикач 2</translation>
+    </message>
+    <message>
+        <source>RadioButton3</source>
+        <translation>Перемикач 3</translation>
+    </message>
+    <message>
+        <source>ButtonGroup2</source>
+        <translation>Група кнопок 2</translation>
+    </message>
+    <message>
+        <source>CheckBox1</source>
+        <translation>Прапорець 1</translation>
+    </message>
+    <message>
+        <source>CheckBox2</source>
+        <translation>Прапорець 2</translation>
+    </message>
+    <message>
+        <source>LineEdit</source>
+        <translation>Поле введення</translation>
+    </message>
+    <message>
+        <source>ComboBox</source>
+        <translation>Випадаючий список</translation>
+    </message>
+    <message>
+        <source>PushButton</source>
+        <translation>Кнопка</translation>
+    </message>
+    <message>
+        <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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/translations/qvfb_ja.ts	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,525 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="ja_JP">
+<context>
+    <name>AnimationSaveWidget</name>
+    <message>
+        <location filename="../tools/qvfb/qvfb.cpp" line="+868"/>
+        <location line="+204"/>
+        <source>Record</source>
+        <translation>録画</translation>
+    </message>
+    <message>
+        <location line="-202"/>
+        <source>Reset</source>
+        <translation>リセット</translation>
+    </message>
+    <message>
+        <location line="+2"/>
+        <source>Save</source>
+        <translation>保存</translation>
+    </message>
+    <message>
+        <location line="+18"/>
+        <source>Save in MPEG format (requires netpbm package installed)</source>
+        <translation>MPEG形式で保存(netpbmパッケージのインストールが必要)</translation>
+    </message>
+    <message>
+        <location line="+8"/>
+        <location line="+206"/>
+        <source>Click record to begin recording.</source>
+        <translation>録画を開始するには「録画」をクリックしてください。</translation>
+    </message>
+    <message>
+        <location line="-115"/>
+        <location line="+147"/>
+        <source>Finished saving.</source>
+        <translation>保存が完了しました。</translation>
+    </message>
+    <message>
+        <location line="-63"/>
+        <source>Paused. Click record to resume, or save if done.</source>
+        <translation>一時停止中。「録画」をクリック再開するか、保存をしてください。</translation>
+    </message>
+    <message>
+        <location line="+6"/>
+        <source>Pause</source>
+        <translation>一時停止</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Recording...</source>
+        <translation>録画中...</translation>
+    </message>
+    <message>
+        <location line="+40"/>
+        <source>Saving... </source>
+        <translation>保存中...</translation>
+    </message>
+    <message>
+        <location line="+4"/>
+        <location line="+4"/>
+        <source>Save animation...</source>
+        <translation>動画を保存中...</translation>
+    </message>
+    <message>
+        <location line="+2"/>
+        <source>Save canceled.</source>
+        <translation>保存がキャンセルされました。</translation>
+    </message>
+    <message>
+        <location line="+9"/>
+        <source>Save failed!</source>
+        <translation>保存に失敗しました!</translation>
+    </message>
+</context>
+<context>
+    <name>Config</name>
+    <message>
+        <location filename="../tools/qvfb/config.ui" line="+54"/>
+        <source>Configure</source>
+        <translation>設定</translation>
+    </message>
+    <message>
+        <location line="+29"/>
+        <source>Size</source>
+        <translation>サイズ</translation>
+    </message>
+    <message>
+        <location line="+12"/>
+        <source>176x220 &quot;SmartPhone&quot;</source>
+        <translation>176x220 &quot;スマートフォン&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>800x480</source>
+        <translation>800x480</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>それ以外</translation>
+    </message>
+    <message>
+        <location line="+44"/>
+        <source>Depth</source>
+        <translation>色深度</translation>
+    </message>
+    <message>
+        <location line="+6"/>
+        <source>1 bit monochrome</source>
+        <translation>1 bit モノクロ</translation>
+    </message>
+    <message>
+        <location line="+7"/>
+        <source>2 bit grayscale</source>
+        <translation>2 bit グレイスケール</translation>
+    </message>
+    <message>
+        <location line="+7"/>
+        <source>4 bit grayscale</source>
+        <translation>4 bit グレイスケール</translation>
+    </message>
+    <message>
+        <location line="+7"/>
+        <source>8 bit</source>
+        <translation>8 bit</translation>
+    </message>
+    <message>
+        <location line="+7"/>
+        <source>12 (16) bit</source>
+        <translation>12(16) bit</translation>
+    </message>
+    <message>
+        <location line="+7"/>
+        <source>15 bit</source>
+        <translation>15 bit</translation>
+    </message>
+    <message>
+        <location line="+7"/>
+        <source>16 bit</source>
+        <translation>16 bit</translation>
+    </message>
+    <message>
+        <location line="+7"/>
+        <source>18 bit</source>
+        <translation>18 bit</translation>
+    </message>
+    <message>
+        <location line="+7"/>
+        <source>24 bit</source>
+        <translation>24 bit</translation>
+    </message>
+    <message>
+        <location line="+7"/>
+        <source>32 bit</source>
+        <translation>32 bit</translation>
+    </message>
+    <message>
+        <location line="+7"/>
+        <source>32 bit ARGB</source>
+        <translation>32 bit ARGB</translation>
+    </message>
+    <message>
+        <location line="+7"/>
+        <source>Swap red and blue channels</source>
+        <translation>赤と青のチャンネルを入れ替える</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>BGR format</source>
+        <translation>BGR フォーマット</translation>
+    </message>
+    <message>
+        <location line="+20"/>
+        <source>Skin</source>
+        <translation>スキン</translation>
+    </message>
+    <message>
+        <location line="+14"/>
+        <source>None</source>
+        <translation>なし</translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>Emulate touch screen (no mouse move)</source>
+        <translation>タッチスクリーンのエミュレート(マウスムーブが無効になります)</translation>
+    </message>
+    <message>
+        <location line="+7"/>
+        <source>Emulate LCD screen (Only with fixed zoom of 3.0 times magnification)</source>
+        <translation>LCDスクリーンのエミュレート(3倍固定の拡大ズーム)</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;&lt;i&gt;以上の&lt;/i&gt;サイズや色深度を変更した場合、ヴァーチャルフレームバッファ上で動作しているアプリケーションは終了します。&lt;i&gt;以下の&lt;/i&gt;ガンマ値の変更の場合はアプリケーションは終了しません。</translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>Gamma</source>
+        <translation>ガンマ</translation>
+    </message>
+    <message>
+        <location line="+12"/>
+        <source>Blue</source>
+        <translation>青</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>緑</translation>
+    </message>
+    <message>
+        <location line="+496"/>
+        <source>All</source>
+        <translation>全て</translation>
+    </message>
+    <message>
+        <location line="+496"/>
+        <source>Red</source>
+        <translation>赤</translation>
+    </message>
+    <message>
+        <location line="+496"/>
+        <source>Set all to 1.0</source>
+        <translation>全て1.0にする</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;C)</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>画像ファイル &quot;%1&quot; を読み込めません。</translation>
+    </message>
+    <message>
+        <location line="+64"/>
+        <source>The skin directory &apos;%1&apos; does not contain a configuration file.</source>
+        <translation>スキンのディレクトリ &quot;%1&quot; に設定ファイルがありません。</translation>
+    </message>
+    <message>
+        <location line="+5"/>
+        <source>The skin configuration file &apos;%1&apos; could not be opened.</source>
+        <translation>スキンの設定ファイル &quot;%1&quot; が開けません。</translation>
+    </message>
+    <message>
+        <location line="+6"/>
+        <source>The skin configuration file &apos;%1&apos; could not be read: %2</source>
+        <translation>スキンの設定ファイル &quot;%1&quot; が読み込めません: %2</translation>
+    </message>
+    <message>
+        <location line="+70"/>
+        <source>Syntax error: %1</source>
+        <translation>シンタックスエラー: %1</translation>
+    </message>
+    <message>
+        <location line="+21"/>
+        <source>The skin &quot;up&quot; image file &apos;%1&apos; does not exist.</source>
+        <translation>スキンの &quot;up&quot; の画像ファイル &quot;%1&quot; がありません。</translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>The skin &quot;down&quot; image file &apos;%1&apos; does not exist.</source>
+        <translation>スキンの &quot;down&quot; の画像ファイル &quot;%1&quot; がありません。</translation>
+    </message>
+    <message>
+        <location line="+11"/>
+        <source>The skin &quot;closed&quot; image file &apos;%1&apos; does not exist.</source>
+        <translation>スキンの &quot;closed&quot; の画像ファイル &quot;%1&quot; がありません。</translation>
+    </message>
+    <message>
+        <location line="+12"/>
+        <source>The skin cursor image file &apos;%1&apos; does not exist.</source>
+        <translation>スキンのカーソルの画像ファイル &quot;%1&quot; がありません。</translation>
+    </message>
+    <message>
+        <location line="+25"/>
+        <source>Syntax error in area definition: %1</source>
+        <translation>エリア定義のシンタックスエラー: %1</translation>
+    </message>
+    <message>
+        <location line="+38"/>
+        <source>Mismatch in number of areas, expected %1, got %2.</source>
+        <translation>エリア数が正しくありません。%2 となってありますが %1 であるべきです。</translation>
+    </message>
+</context>
+<context>
+    <name>QVFb</name>
+    <message>
+        <location filename="../tools/qvfb/qvfb.cpp" line="-735"/>
+        <source>&amp;Save image...</source>
+        <translation>画像の保存(&amp;S)...</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>&amp;Animation...</source>
+        <translation>動画の保存(&amp;A)...</translation>
+    </message>
+    <message>
+        <location line="+2"/>
+        <source>&amp;Quit</source>
+        <translation>終了(&amp;Q)</translation>
+    </message>
+    <message>
+        <location line="+7"/>
+        <source>Show &amp;Cursor</source>
+        <translation>カーソルの表示(&amp;C)</translation>
+    </message>
+    <message>
+        <location line="+5"/>
+        <source>&amp;Refresh Rate...</source>
+        <translation>リフレッシュレート(&amp;R)...</translation>
+    </message>
+    <message>
+        <location line="+7"/>
+        <source>Zoom scale &amp;0.5</source>
+        <translation>ズームスケール &amp;0.5</translation>
+    </message>
+    <message>
+        <location line="+2"/>
+        <source>Zoom scale &amp;1</source>
+        <translation>ズームスケール &amp;1</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Zoom scale &amp;2</source>
+        <translation>ズームスケール &amp;2</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Zoom scale &amp;3</source>
+        <translation>ズームスケール &amp;3</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Zoom scale &amp;4</source>
+        <translation>ズームスケール &amp;4</translation>
+    </message>
+    <message>
+        <location line="-30"/>
+        <source>&amp;File</source>
+        <translation>ファイル(&amp;F)</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>&amp;Configure...</source>
+        <translation>設定の変更(&amp;C)...</translation>
+    </message>
+    <message>
+        <location line="+11"/>
+        <source>&amp;View</source>
+        <translation>表示(&amp;V)</translation>
+    </message>
+    <message>
+        <location line="+8"/>
+        <source>&amp;No rotation</source>
+        <translation>ローテーションなし(&amp;N)</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>&amp;90° rotation</source>
+        <translation>&amp;90° ローテーション</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>1&amp;80° rotation</source>
+        <translation>1&amp;80° ローテーション</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>2&amp;70° rotation</source>
+        <translation>2&amp;70° ローテーション</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Zoom scale 0.7&amp;5</source>
+        <translation>ズームスケール 0.7&amp;5</translation>
+    </message>
+    <message>
+        <location line="+6"/>
+        <source>Zoom &amp;scale...</source>
+        <translation>ズームスケール(&amp;S)...</translation>
+    </message>
+    <message>
+        <location line="+7"/>
+        <source>&amp;Help</source>
+        <translation>ヘルプ(&amp;H)</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>&amp;About...</source>
+        <translation>QVFB について(&amp;A)...</translation>
+    </message>
+    <message>
+        <location line="+87"/>
+        <source>Save Main Screen image</source>
+        <translation>メインスクリーンの画像の保存</translation>
+    </message>
+    <message>
+        <location line="+0"/>
+        <location line="+7"/>
+        <source>snapshot.png</source>
+        <translation>スナップショット.png</translation>
+    </message>
+    <message>
+        <location line="-7"/>
+        <location line="+7"/>
+        <source>Portable Network Graphics (*.png)</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location line="-4"/>
+        <source>Save Main Screen Image</source>
+        <translation>メインスクリーンの画像の保存</translation>
+    </message>
+    <message>
+        <location line="+0"/>
+        <location line="+7"/>
+        <source>Save failed. Check that you have permission to write to the target directory.</source>
+        <translation>保存に失敗しました。保存先のディレクトリn書き込み権限があるかを確認してください。</translation>
+    </message>
+    <message>
+        <location line="-3"/>
+        <source>Save Second Screen image</source>
+        <translation>サブスクリーンの画像の保存</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Save Second Screen Image</source>
+        <translation>サブスクリーンの画像の保存</translation>
+    </message>
+    <message>
+        <location line="+42"/>
+        <source>About QVFB</source>
+        <translation>QVFB について</translation>
+    </message>
+    <message>
+        <location line="+0"/>
+        <source>&lt;h2&gt;The Qt for Embedded Linux Virtual X11 Framebuffer&lt;/h2&gt;&lt;p&gt;This application runs under Qt for X11, emulating a simple framebuffer, which the Qt for Embedded Linux server and clients can attach to just as if it was a hardware Linux framebuffer. &lt;p&gt;With the aid of this development tool, you can develop Qt for Embedded  Linux applications under X11 without having to switch to a virtual console. This means you can comfortably use your other development tools such as GUI profilers and debuggers.</source>
+        <translation>&lt;h2&gt;The Qt for Embedded Linux Virtual X11 Framebuffer&lt;/h2&gt;&lt;p&gt;このアプリケーションは Qt for X11 上で動作し、Qt for Embedded Linux のサーバーとクライアントがハードウェアの Linux フレームバッファのように接続可能なシンプルなフレームバッファをエミュレートします。 &lt;p&gt;この開発ツールを使用すると Qt for Embedded Linux 向けのアプリケーションが X11 上でヴァーチャルコンソールへ切り替える事なく開発できるようになります。GUI のプロファイラやデバッガなどの他のツールを一緒に使用する時に便利でしょう。</translation>
+    </message>
+    <message>
+        <location line="+55"/>
+        <source>Browse...</source>
+        <translation>他のスキンを参照...</translation>
+    </message>
+    <message>
+        <location line="+143"/>
+        <source>Load Custom Skin...</source>
+        <translation>カスタムスキンを開く...</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>All QVFB Skins (*.skin)</source>
+        <translation>QVFB のスキン(*.skin)</translation>
+    </message>
+</context>
+<context>
+    <name>QVFbRateDialog</name>
+    <message>
+        <location filename="../tools/qvfb/qvfbratedlg.cpp" line="+58"/>
+        <source>Target frame rate:</source>
+        <translation>ターゲットのフレームレート:</translation>
+    </message>
+    <message>
+        <location line="+12"/>
+        <location line="+17"/>
+        <source>%1fps</source>
+        <translation>%1fps</translation>
+    </message>
+    <message>
+        <location line="-12"/>
+        <source>OK</source>
+        <translation>OK</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Cancel</source>
+        <translation>キャンセル</translation>
+    </message>
+</context>
+</TS>
--- a/translations/qvfb_ru.ts	Fri Sep 17 08:34:18 2010 +0300
+++ b/translations/qvfb_ru.ts	Mon Oct 04 01:19:32 2010 +0300
@@ -4,71 +4,54 @@
 <context>
     <name>AnimationSaveWidget</name>
     <message>
-        <location filename="../tools/qvfb/qvfb.cpp" line="+868"/>
-        <location line="+204"/>
         <source>Record</source>
         <translation>Записать</translation>
     </message>
     <message>
-        <location line="-202"/>
         <source>Reset</source>
         <translation>Сбросить</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Save</source>
         <translation>Сохранить</translation>
     </message>
     <message>
-        <location line="+18"/>
         <source>Save in MPEG format (requires netpbm package installed)</source>
         <translation>Сохранить в формат MPEG (требуется установленный пакет netpbm)</translation>
     </message>
     <message>
-        <location line="+8"/>
-        <location line="+206"/>
         <source>Click record to begin recording.</source>
         <translation>Нажмите &quot;Записать&quot; для начала записи.</translation>
     </message>
     <message>
-        <location line="-115"/>
-        <location line="+147"/>
         <source>Finished saving.</source>
         <translation>Сохранение завершено.</translation>
     </message>
     <message>
-        <location line="-63"/>
         <source>Paused. Click record to resume, or save if done.</source>
         <translation>Приостановлено. Нажмите &quot;Записать&quot; для продолжения или &quot;Сохранить&quot;, если готово.</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>Pause</source>
         <translation>Пауза</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Recording...</source>
         <translation>Идёт запись...</translation>
     </message>
     <message>
-        <location line="+40"/>
         <source>Saving... </source>
         <translation>Сохранение... </translation>
     </message>
     <message>
-        <location line="+4"/>
-        <location line="+4"/>
         <source>Save animation...</source>
         <translation>Сохранение анимации...</translation>
     </message>
     <message>
-        <location line="+2"/>
         <source>Save canceled.</source>
         <translation>Сохранение отменено.</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Save failed!</source>
         <translation>Сохранение не удалось!</translation>
     </message>
@@ -76,193 +59,155 @@
 <context>
     <name>Config</name>
     <message>
-        <location filename="../tools/qvfb/config.ui"/>
         <source>Configure</source>
         <translation>Настройка</translation>
     </message>
     <message>
-        <location/>
         <source>Size</source>
         <translation>Размер</translation>
     </message>
     <message>
-        <location/>
         <source>176x220 &quot;SmartPhone&quot;</source>
         <translation>176x220 &quot;SmartPhone&quot;</translation>
     </message>
     <message>
-        <location/>
         <source>240x320 &quot;PDA&quot;</source>
         <translation>240x320 &quot;PDA&quot;</translation>
     </message>
     <message>
-        <location/>
         <source>320x240 &quot;TV&quot; / &quot;QVGA&quot;</source>
         <translation>320x240 &quot;TV&quot; / &quot;QVGA&quot;</translation>
     </message>
     <message>
-        <location/>
         <source>640x480 &quot;VGA&quot;</source>
         <translation>640x480 &quot;VGA&quot;</translation>
     </message>
     <message>
-        <location/>
         <source>800x480</source>
         <translation>800x480</translation>
     </message>
     <message>
-        <location/>
         <source>800x600</source>
         <translation>800x600</translation>
     </message>
     <message>
-        <location/>
         <source>1024x768</source>
         <translation>1024x768</translation>
     </message>
     <message>
-        <location/>
         <source>Custom</source>
         <translation>Особый</translation>
     </message>
     <message>
-        <location/>
         <source>Depth</source>
         <translation>Глубина</translation>
     </message>
     <message>
-        <location/>
         <source>1 bit monochrome</source>
         <translation>1 бит (монохромный)</translation>
     </message>
     <message>
-        <location/>
         <source>2 bit grayscale</source>
         <translation>2 бита (градации серого)</translation>
     </message>
     <message>
-        <location/>
         <source>4 bit grayscale</source>
         <translation>4 бита (градации серого)</translation>
     </message>
     <message>
-        <location/>
         <source>8 bit</source>
         <translation>8 бит</translation>
     </message>
     <message>
-        <location/>
         <source>12 (16) bit</source>
         <translation>12 (16) бит</translation>
     </message>
     <message>
-        <location/>
         <source>15 bit</source>
         <translation>15 бит</translation>
     </message>
     <message>
-        <location/>
         <source>16 bit</source>
         <translation>16 бит</translation>
     </message>
     <message>
-        <location/>
         <source>18 bit</source>
         <translation>18 бит</translation>
     </message>
     <message>
-        <location/>
         <source>24 bit</source>
         <translation>24 бита</translation>
     </message>
     <message>
-        <location/>
         <source>32 bit</source>
         <translation>32 бита</translation>
     </message>
     <message>
-        <location/>
         <source>32 bit ARGB</source>
         <translation>32 бита (ARGB)</translation>
     </message>
     <message>
-        <location/>
         <source>Swap red and blue channels</source>
         <translation>Поменять синий и красный каналы</translation>
     </message>
     <message>
-        <location/>
         <source>BGR format</source>
         <translation>Формат BGR</translation>
     </message>
     <message>
-        <location/>
         <source>Skin</source>
         <translation>Обложка</translation>
     </message>
     <message>
-        <location/>
         <source>None</source>
         <translation>Нет</translation>
     </message>
     <message>
-        <location/>
         <source>Emulate touch screen (no mouse move)</source>
         <translatorcomment>указателя?</translatorcomment>
         <translation>Эмулировать тачскрин (без перемещения мыши)</translation>
     </message>
     <message>
-        <location/>
         <source>Emulate LCD screen (Only with fixed zoom of 3.0 times magnification)</source>
         <translation>Эмулировать ж/к экран (только с 3-х кратным увеличением)</translation>
     </message>
     <message>
-        <location/>
         <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;Имейте в виду, что программы, использующие фрэймбуфер, будут завершены, если изменится &lt;i&gt;размер&lt;/i&gt; и/или &lt;i&gt;глубина&lt;/i&gt; экрана.</translation>
     </message>
     <message>
-        <location/>
         <source>Gamma</source>
         <translation>Гамма</translation>
     </message>
     <message>
-        <location/>
         <source>Blue</source>
         <translation>Синий</translation>
     </message>
     <message>
-        <location/>
         <source>1.0</source>
         <translation>1.0</translation>
     </message>
     <message>
-        <location/>
         <source>Green</source>
         <translation>Зеленый</translation>
     </message>
     <message>
-        <location/>
         <source>All</source>
         <translation>Все</translation>
     </message>
     <message>
-        <location/>
         <source>Red</source>
         <translation>Красный</translation>
     </message>
     <message>
-        <location/>
         <source>Set all to 1.0</source>
         <translation>Выставить все в 1.0</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;OK</source>
         <translation>&amp;ОК</translation>
     </message>
     <message>
-        <location/>
         <source>&amp;Cancel</source>
         <translation>От&amp;мена</translation>
     </message>
@@ -270,57 +215,46 @@
 <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>Не удалось загрузить изображение &apos;%1&apos;.</translation>
     </message>
     <message>
-        <location line="+64"/>
         <source>The skin directory &apos;%1&apos; does not contain a configuration file.</source>
         <translation>Каталог обложки &apos;%1&apos; не содержит файла настроек.</translation>
     </message>
     <message>
-        <location line="+5"/>
         <source>The skin configuration file &apos;%1&apos; could not be opened.</source>
         <translation>Не удалось открыть файл настроек обложки &apos;%1&apos;.</translation>
     </message>
     <message>
-        <location line="+6"/>
         <source>The skin configuration file &apos;%1&apos; could not be read: %2</source>
         <translation>Не удалось прочитать файл настроек обложки &apos;%1&apos;: %2</translation>
     </message>
     <message>
-        <location line="+70"/>
         <source>Syntax error: %1</source>
         <translation>Синтаксическая ошибка: %1</translation>
     </message>
     <message>
-        <location line="+21"/>
         <source>The skin &quot;up&quot; image file &apos;%1&apos; does not exist.</source>
         <translation>Файл изображения &quot;up&quot; &apos;%1&apos; не существует.</translation>
     </message>
     <message>
-        <location line="+10"/>
         <source>The skin &quot;down&quot; image file &apos;%1&apos; does not exist.</source>
         <translation>Файл изображения &quot;down&quot; &apos;%1&apos; не существует.</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>The skin &quot;closed&quot; image file &apos;%1&apos; does not exist.</source>
         <translation>Файл изображения &quot;closed&quot; &apos;%1&apos; не существует.</translation>
     </message>
     <message>
-        <location line="+12"/>
         <source>The skin cursor image file &apos;%1&apos; does not exist.</source>
         <translation>Файл изображения курсора &apos;%1&apos; не существует.</translation>
     </message>
     <message>
-        <location line="+25"/>
         <source>Syntax error in area definition: %1</source>
         <translation>Синтаксическая ошибка в определении области: %1</translation>
     </message>
     <message>
-        <location line="+38"/>
         <source>Mismatch in number of areas, expected %1, got %2.</source>
         <translation>Несовпадение количества зон: ожидается %1, указано %2.</translation>
     </message>
@@ -328,17 +262,14 @@
 <context>
     <name>QVFb</name>
     <message>
-        <location filename="../tools/qvfb/qvfb.cpp" line="-504"/>
         <source>Browse...</source>
         <translation>Обзор...</translation>
     </message>
     <message>
-        <location line="+143"/>
         <source>Load Custom Skin...</source>
         <translation>Загрузить обложку пользователя...</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>All QVFB Skins (*.skin)</source>
         <translation>Все обложки QVFB (*.skin)</translation>
     </message>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/translations/qvfb_sl.ts	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,422 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="sl">
+    <extra-po-header-po_revision_date>2010-08-28 16:47+0200</extra-po-header-po_revision_date>
+    <extra-po-headers>MIME-Version,Content-Type,Content-Transfer-Encoding,Plural-Forms,X-Language,X-Qt-Contexts,Last-Translator,PO-Revision-Date,Project-Id-Version,Language-Team,X-Generator</extra-po-headers>
+    <extra-po-header-x_generator>Lokalize 1.1</extra-po-header-x_generator>
+    <extra-po-header-language_team>Slovenian &lt;lugos-slo@lugos.si&gt;</extra-po-header-language_team>
+    <extra-po-header-project_id_version></extra-po-header-project_id_version>
+    <extra-po-header_comment># Jure Repinc &lt;jlp@holodeck1.com&gt;, 2010.</extra-po-header_comment>
+    <extra-po-header-last_translator>Jure Repinc &lt;jlp@holodeck1.com&gt;</extra-po-header-last_translator>
+<context>
+    <name>AnimationSaveWidget</name>
+    <message>
+        <source>Record</source>
+        <translation>Posnemi</translation>
+    </message>
+    <message>
+        <source>Reset</source>
+        <translation>Ponastavi</translation>
+    </message>
+    <message>
+        <source>Save</source>
+        <translation>Shrani</translation>
+    </message>
+    <message>
+        <source>Save in MPEG format (requires netpbm package installed)</source>
+        <translation>Shrani v obliko MPEG (potrebuje nameščen paket netpbm)</translation>
+    </message>
+    <message>
+        <source>Click record to begin recording.</source>
+        <translation>Kliknite Posnemi za začetek snemanja.</translation>
+    </message>
+    <message>
+        <source>Finished saving.</source>
+        <translation>Shranjevanje zaključeno.</translation>
+    </message>
+    <message>
+        <source>Paused. Click record to resume, or save if done.</source>
+        <translation>Premor. Za nadaljevanje kliknite Posnemi, če ste zaključili pa Shrani.</translation>
+    </message>
+    <message>
+        <source>Pause</source>
+        <translation>Premor</translation>
+    </message>
+    <message>
+        <source>Recording...</source>
+        <translation>Snemanje ...</translation>
+    </message>
+    <message>
+        <source>Saving... </source>
+        <translation>Shranjevanje ... </translation>
+    </message>
+    <message>
+        <source>Save animation...</source>
+        <translation>Shrani animacijo ...</translation>
+    </message>
+    <message>
+        <source>Save canceled.</source>
+        <translation>Shranjevanje preklicano</translation>
+    </message>
+    <message>
+        <source>Save failed!</source>
+        <translation>Shranjevanje ni uspelo.</translation>
+    </message>
+</context>
+<context>
+    <name>Config</name>
+    <message>
+        <source>Configure</source>
+        <translation>Nastavi</translation>
+    </message>
+    <message>
+        <source>Size</source>
+        <translation>Velikost</translation>
+    </message>
+    <message>
+        <source>176x220 &quot;SmartPhone&quot;</source>
+        <translation>176⨯220 (pametni telefon)</translation>
+    </message>
+    <message>
+        <source>240x320 &quot;PDA&quot;</source>
+        <translation>240⨯320 (dlančnik)</translation>
+    </message>
+    <message>
+        <source>320x240 &quot;TV&quot; / &quot;QVGA&quot;</source>
+        <translation>320⨯240 (TV/QVGA)</translation>
+    </message>
+    <message>
+        <source>640x480 &quot;VGA&quot;</source>
+        <translation>640⨯480 (VGA)</translation>
+    </message>
+    <message>
+        <source>800x480</source>
+        <translation>800⨯480</translation>
+    </message>
+    <message>
+        <source>800x600</source>
+        <translation>800⨯600</translation>
+    </message>
+    <message>
+        <source>1024x768</source>
+        <translation>1024⨯768</translation>
+    </message>
+    <message>
+        <source>Custom</source>
+        <translation>Po meri</translation>
+    </message>
+    <message>
+        <source>Depth</source>
+        <translation>Globina</translation>
+    </message>
+    <message>
+        <source>1 bit monochrome</source>
+        <translation>1 bit enobarvno</translation>
+    </message>
+    <message>
+        <source>2 bit grayscale</source>
+        <translation>2 bita sivine</translation>
+    </message>
+    <message>
+        <source>4 bit grayscale</source>
+        <translation>4 bite sivine</translation>
+    </message>
+    <message>
+        <source>8 bit</source>
+        <translation>8 bitov</translation>
+    </message>
+    <message>
+        <source>12 (16) bit</source>
+        <translation>12 (16) bitov</translation>
+    </message>
+    <message>
+        <source>15 bit</source>
+        <translation>15 bitov</translation>
+    </message>
+    <message>
+        <source>16 bit</source>
+        <translation>16 bitov</translation>
+    </message>
+    <message>
+        <source>18 bit</source>
+        <translation>18 bitov</translation>
+    </message>
+    <message>
+        <source>24 bit</source>
+        <translation>24 bitov</translation>
+    </message>
+    <message>
+        <source>32 bit</source>
+        <translation>32 bitov</translation>
+    </message>
+    <message>
+        <source>32 bit ARGB</source>
+        <translation>32-bitov ARGB</translation>
+    </message>
+    <message>
+        <source>Swap red and blue channels</source>
+        <translation>Izmenjaj modri in rdeči kanal</translation>
+    </message>
+    <message>
+        <source>BGR format</source>
+        <translation>Format BGR</translation>
+    </message>
+    <message>
+        <source>Skin</source>
+        <translation>Tema</translation>
+    </message>
+    <message>
+        <source>None</source>
+        <translation>Brez</translation>
+    </message>
+    <message>
+        <source>Emulate touch screen (no mouse move)</source>
+        <translation>Posnemaj zaslon na dotik (brez premikov miške)</translation>
+    </message>
+    <message>
+        <source>Emulate LCD screen (Only with fixed zoom of 3.0 times magnification)</source>
+        <translation>Posnemaj zaslon LCD (samo s stalno 3.0⨯ povećavo)</translation>
+    </message>
+    <message>
+        <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;Vedite, da bo ob spremembi velikosti ali globine vsak program, ki uporablja navidezni slikovni medpomnilnik, končan. Gamo lahko prosto spreminjate.</translation>
+    </message>
+    <message>
+        <source>Gamma</source>
+        <translation>Gama</translation>
+    </message>
+    <message>
+        <source>Blue</source>
+        <translation>Modra</translation>
+    </message>
+    <message>
+        <source>1.0</source>
+        <translation>1,0</translation>
+    </message>
+    <message>
+        <source>Green</source>
+        <translation>Zelena</translation>
+    </message>
+    <message>
+        <source>All</source>
+        <translation>Vse</translation>
+    </message>
+    <message>
+        <source>Red</source>
+        <translation>Rdeča</translation>
+    </message>
+    <message>
+        <source>Set all to 1.0</source>
+        <translation>Nastavi vse na 1,0</translation>
+    </message>
+    <message>
+        <source>&amp;OK</source>
+        <translation>&amp;V redu</translation>
+    </message>
+    <message>
+        <source>&amp;Cancel</source>
+        <translation>&amp;Prekliči</translation>
+    </message>
+</context>
+<context>
+    <name>DeviceSkin</name>
+    <message>
+        <source>The image file &apos;%1&apos; could not be loaded.</source>
+        <translation>Slikovne datoteke »%1« ni bilo moč naložiti.</translation>
+    </message>
+    <message>
+        <source>The skin directory &apos;%1&apos; does not contain a configuration file.</source>
+        <translation>Mapa s temo »%1« ne vsebuje nastavitvene datoteke.</translation>
+    </message>
+    <message>
+        <source>The skin configuration file &apos;%1&apos; could not be opened.</source>
+        <translation>Nastavitvene datoteke za temo »%1« ni bilo moč odpreti.</translation>
+    </message>
+    <message>
+        <source>The skin configuration file &apos;%1&apos; could not be read: %2</source>
+        <translation>Nastavitvene datoteke za temo »%1« ni bilo moč prebrati: %2</translation>
+    </message>
+    <message>
+        <source>Syntax error: %1</source>
+        <translation>Skladenjska napaka: %1</translation>
+    </message>
+    <message>
+        <source>The skin &quot;up&quot; image file &apos;%1&apos; does not exist.</source>
+        <translation>Datoteka slike »up« teme »%1« ne obstaja.</translation>
+    </message>
+    <message>
+        <source>The skin &quot;down&quot; image file &apos;%1&apos; does not exist.</source>
+        <translation>Datoteka slike »down« teme »%1« ne obstaja.</translation>
+    </message>
+    <message>
+        <source>The skin &quot;closed&quot; image file &apos;%1&apos; does not exist.</source>
+        <translation>Datoteka slike »closed« teme »%1« ne obstaja.</translation>
+    </message>
+    <message>
+        <source>The skin cursor image file &apos;%1&apos; does not exist.</source>
+        <translation>Slikovna datoteka s kazalcem za temo »%1« ne obstaja.</translation>
+    </message>
+    <message>
+        <source>Syntax error in area definition: %1</source>
+        <translation>Skladenjska napaka pri določitvi območja: %1</translation>
+    </message>
+    <message>
+        <source>Mismatch in number of areas, expected %1, got %2.</source>
+        <translation>Neujemanje v številu območij, pričakovano %1, dobljeno %2.</translation>
+    </message>
+</context>
+<context>
+    <name>QVFb</name>
+    <message>
+        <source>&amp;File</source>
+        <translation>&amp;Datoteka</translation>
+    </message>
+    <message>
+        <source>&amp;Configure...</source>
+        <translation>&amp;Nastavi ...</translation>
+    </message>
+    <message>
+        <source>&amp;Save image...</source>
+        <translation>&amp;Shrani sliko ...</translation>
+    </message>
+    <message>
+        <source>&amp;Animation...</source>
+        <translation>&amp;Animacija ...</translation>
+    </message>
+    <message>
+        <source>&amp;Quit</source>
+        <translation>Konča&amp;j</translation>
+    </message>
+    <message>
+        <source>&amp;View</source>
+        <translation>&amp;Videz</translation>
+    </message>
+    <message>
+        <source>Show &amp;Cursor</source>
+        <translation>Prikaži &amp;kazalec</translation>
+    </message>
+    <message>
+        <source>&amp;Refresh Rate...</source>
+        <translation>&amp;Hitrost osveževanja ...</translation>
+    </message>
+    <message>
+        <source>&amp;No rotation</source>
+        <translation>&amp;Brez zasuka</translation>
+    </message>
+    <message>
+        <source>&amp;90° rotation</source>
+        <translation>Zasuk za &amp;90°</translation>
+    </message>
+    <message>
+        <source>1&amp;80° rotation</source>
+        <translation>Zasuk za 1&amp;80°</translation>
+    </message>
+    <message>
+        <source>2&amp;70° rotation</source>
+        <translation>Zasuk za 2&amp;70°</translation>
+    </message>
+    <message>
+        <source>Zoom scale &amp;0.5</source>
+        <translation>Povečava &amp;0,5</translation>
+    </message>
+    <message>
+        <source>Zoom scale 0.7&amp;5</source>
+        <translation>Povečava 0,7&amp;5</translation>
+    </message>
+    <message>
+        <source>Zoom scale &amp;1</source>
+        <translation>Povečeva &amp;1,0</translation>
+    </message>
+    <message>
+        <source>Zoom scale &amp;2</source>
+        <translation>Povečava &amp;2,0</translation>
+    </message>
+    <message>
+        <source>Zoom scale &amp;3</source>
+        <translation>Povečeva &amp;3,0</translation>
+    </message>
+    <message>
+        <source>Zoom scale &amp;4</source>
+        <translation>Povečava &amp;4,0</translation>
+    </message>
+    <message>
+        <source>Zoom &amp;scale...</source>
+        <translation>&amp;Povečava ...</translation>
+    </message>
+    <message>
+        <source>&amp;Help</source>
+        <translation>&amp;Pomoč</translation>
+    </message>
+    <message>
+        <source>&amp;About...</source>
+        <translation>&amp;O ...</translation>
+    </message>
+    <message>
+        <source>Save Main Screen image</source>
+        <translation>Shrani sliko glavnega zaslona</translation>
+    </message>
+    <message>
+        <source>snapshot.png</source>
+        <translation>posnetek.png</translation>
+    </message>
+    <message>
+        <source>Portable Network Graphics (*.png)</source>
+        <translation>Portable Network Graphics (*.png)</translation>
+    </message>
+    <message>
+        <source>Save Main Screen Image</source>
+        <translation>Shrani sliko glavnega zaslona</translation>
+    </message>
+    <message>
+        <source>Save failed. Check that you have permission to write to the target directory.</source>
+        <translation>Shranjevanje ni uspelo. Preverite dovoljenja za pisanje v ciljno mapo.</translation>
+    </message>
+    <message>
+        <source>Save Second Screen image</source>
+        <translation>Shrani sliko drugega zaslona</translation>
+    </message>
+    <message>
+        <source>Save Second Screen Image</source>
+        <translation>Shrani sliko drugega zaslona</translation>
+    </message>
+    <message>
+        <source>About QVFB</source>
+        <translation>O QVFB</translation>
+    </message>
+    <message>
+        <source>&lt;h2&gt;The Qt for Embedded Linux Virtual X11 Framebuffer&lt;/h2&gt;&lt;p&gt;This application runs under Qt for X11, emulating a simple framebuffer, which the Qt for Embedded Linux server and clients can attach to just as if it was a hardware Linux framebuffer. &lt;p&gt;With the aid of this development tool, you can develop Qt for Embedded  Linux applications under X11 without having to switch to a virtual console. This means you can comfortably use your other development tools such as GUI profilers and debuggers.</source>
+        <translation>&lt;h2&gt;Qt for Embedded Linux Virtual X11 Framebuffer&lt;/h2&gt;&lt;p&gt;Ta program teče pod okenskim sistemom X11 in posnema preprost slikovni medpomnilnik, na katerega se lahko strežniki in odjemalci, izdelani s Qt za vgrajeni Linux, priklopijo, kot da bi bil pravi strojni slikovni medpomnilnik Linuxa.&lt;p&gt;S pomočjo tega orodja lahko programe Qt za vgrajeni Linux razvijate pod X11, ne da bi bilo potrebno preklopiti v navidezno konzolo. To pomeni, da lahko še naprej udobno uporabljate druga razvojna orodja, kot so grafični profilirniki in razhroščevalniki.</translation>
+    </message>
+    <message>
+        <source>Browse...</source>
+        <translation>Brskanje ...</translation>
+    </message>
+    <message>
+        <source>Load Custom Skin...</source>
+        <translation>Naloži temo po meri ...</translation>
+    </message>
+    <message>
+        <source>All QVFB Skins (*.skin)</source>
+        <translation>Vse teme za QVFB (*.skin)</translation>
+    </message>
+</context>
+<context>
+    <name>QVFbRateDialog</name>
+    <message>
+        <source>Target frame rate:</source>
+        <translation>Ciljna hitrost sličic:</translation>
+    </message>
+    <message>
+        <source>%1fps</source>
+        <translation>%1 sl./s</translation>
+    </message>
+    <message>
+        <source>OK</source>
+        <translation>V redu</translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation>Prekliči</translation>
+    </message>
+</context>
+</TS>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/translations/qvfb_uk.ts	Mon Oct 04 01:19:32 2010 +0300
@@ -0,0 +1,415 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="uk_UA">
+<context>
+    <name>AnimationSaveWidget</name>
+    <message>
+        <source>Record</source>
+        <translation>Записати</translation>
+    </message>
+    <message>
+        <source>Reset</source>
+        <translation>Відновити</translation>
+    </message>
+    <message>
+        <source>Save</source>
+        <translation>Зберегти</translation>
+    </message>
+    <message>
+        <source>Save in MPEG format (requires netpbm package installed)</source>
+        <translation>Зберегти в форматі MPEG (необхідний встановлений пакунок netpbm)</translation>
+    </message>
+    <message>
+        <source>Click record to begin recording.</source>
+        <translation>Клацніть &quot;Записати&quot;, щоб розпочати запис.</translation>
+    </message>
+    <message>
+        <source>Finished saving.</source>
+        <translation>Збереження завершено.</translation>
+    </message>
+    <message>
+        <source>Paused. Click record to resume, or save if done.</source>
+        <translation>Зупинено. Клацніть &quot;Записати&quot;, щоб продовжити, або &quot;Зберегти&quot; якщо готово.</translation>
+    </message>
+    <message>
+        <source>Pause</source>
+        <translation>Пауза</translation>
+    </message>
+    <message>
+        <source>Recording...</source>
+        <translation>Записую...</translation>
+    </message>
+    <message>
+        <source>Saving... </source>
+        <translation>Зберігаю...</translation>
+    </message>
+    <message>
+        <source>Save animation...</source>
+        <translation>Зберегти анімацію...</translation>
+    </message>
+    <message>
+        <source>Save canceled.</source>
+        <translation>Збереження скасовано.</translation>
+    </message>
+    <message>
+        <source>Save failed!</source>
+        <translation>Збереження провалилось!</translation>
+    </message>
+</context>
+<context>
+    <name>Config</name>
+    <message>
+        <source>Configure</source>
+        <translation>Налаштувати</translation>
+    </message>
+    <message>
+        <source>Size</source>
+        <translation>Розмір</translation>
+    </message>
+    <message>
+        <source>176x220 &quot;SmartPhone&quot;</source>
+        <translation>176x220 &quot;Смартфон&quot;</translation>
+    </message>
+    <message>
+        <source>240x320 &quot;PDA&quot;</source>
+        <translation>240x320 &quot;PDA&quot;</translation>
+    </message>
+    <message>
+        <source>320x240 &quot;TV&quot; / &quot;QVGA&quot;</source>
+        <translation>320x240 &quot;TV&quot; / &quot;QVGA&quot;</translation>
+    </message>
+    <message>
+        <source>640x480 &quot;VGA&quot;</source>
+        <translation>640x480 &quot;VGA&quot;</translation>
+    </message>
+    <message>
+        <source>800x480</source>
+        <translation>800x480</translation>
+    </message>
+    <message>
+        <source>800x600</source>
+        <translation>800x600</translation>
+    </message>
+    <message>
+        <source>1024x768</source>
+        <translation>1024x768</translation>
+    </message>
+    <message>
+        <source>Custom</source>
+        <translation>Користувацький</translation>
+    </message>
+    <message>
+        <source>Depth</source>
+        <translation>Глибина кольору</translation>
+    </message>
+    <message>
+        <source>1 bit monochrome</source>
+        <translation>1 біт монохромний</translation>
+    </message>
+    <message>
+        <source>2 bit grayscale</source>
+        <translation>2 біти сірий</translation>
+    </message>
+    <message>
+        <source>4 bit grayscale</source>
+        <translation>4 біти сірий</translation>
+    </message>
+    <message>
+        <source>8 bit</source>
+        <translation>8 біт</translation>
+    </message>
+    <message>
+        <source>12 (16) bit</source>
+        <translation>12 (16) біт</translation>
+    </message>
+    <message>
+        <source>15 bit</source>
+        <translation>15 біт</translation>
+    </message>
+    <message>
+        <source>16 bit</source>
+        <translation>16 біт</translation>
+    </message>
+    <message>
+        <source>18 bit</source>
+        <translation>18 біт</translation>
+    </message>
+    <message>
+        <source>24 bit</source>
+        <translation>24 біти</translation>
+    </message>
+    <message>
+        <source>32 bit</source>
+        <translation>32 біти</translation>
+    </message>
+    <message>
+        <source>32 bit ARGB</source>
+        <translation>32 біти ARGB</translation>
+    </message>
+    <message>
+        <source>Swap red and blue channels</source>
+        <translation>Поміняти червоний та блакитний канали</translation>
+    </message>
+    <message>
+        <source>BGR format</source>
+        <translation>Формат BGR</translation>
+    </message>
+    <message>
+        <source>Skin</source>
+        <translation>Обкладинка</translation>
+    </message>
+    <message>
+        <source>None</source>
+        <translation>Немає</translation>
+    </message>
+    <message>
+        <source>Emulate touch screen (no mouse move)</source>
+        <translation>Емулювати тачскрін (без пересувань миші)</translation>
+    </message>
+    <message>
+        <source>Emulate LCD screen (Only with fixed zoom of 3.0 times magnification)</source>
+        <translation>Емулювати LCD-екран (Лише фіксований масштаб з 3x збільшенням)</translation>
+    </message>
+    <message>
+        <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;Зверніть увагу, що будь-який додаток, який використовує віртуальний фреймбуфер буде закрито, якщо ви зміните розмір чи глибину кольору &lt;i&gt;зверху&lt;/i&gt;. Ви можете довільно змінювати гамму &lt;i&gt;знизу&lt;/i&gt;.</translation>
+    </message>
+    <message>
+        <source>Gamma</source>
+        <translation>Гамма</translation>
+    </message>
+    <message>
+        <source>Blue</source>
+        <translation>Блакитний</translation>
+    </message>
+    <message>
+        <source>1.0</source>
+        <translation>1,0</translation>
+    </message>
+    <message>
+        <source>Green</source>
+        <translation>Зелений</translation>
+    </message>
+    <message>
+        <source>All</source>
+        <translation>Усі</translation>
+    </message>
+    <message>
+        <source>Red</source>
+        <translation>Червоний</translation>
+    </message>
+    <message>
+        <source>Set all to 1.0</source>
+        <translation>Встановити усі в 1.0</translation>
+    </message>
+    <message>
+        <source>&amp;OK</source>
+        <translation>&amp;OK</translation>
+    </message>
+    <message>
+        <source>&amp;Cancel</source>
+        <translation>&amp;Скасувати</translation>
+    </message>
+</context>
+<context>
+    <name>DeviceSkin</name>
+    <message>
+        <source>The image file &apos;%1&apos; could not be loaded.</source>
+        <translation>Не вдалось завантажити файл зображення &apos;%1&apos;.</translation>
+    </message>
+    <message>
+        <source>The skin directory &apos;%1&apos; does not contain a configuration file.</source>
+        <translation>Тека обкладинки &apos;%1&apos; не містить файлу налаштувань.</translation>
+    </message>
+    <message>
+        <source>The skin configuration file &apos;%1&apos; could not be opened.</source>
+        <translation>Не вдалось відкрити файл налаштувань обкладинки &apos;%1&apos;.</translation>
+    </message>
+    <message>
+        <source>The skin configuration file &apos;%1&apos; could not be read: %2</source>
+        <translation>Не вдалось прочитати файл налаштувань обкладинки &apos;%1&apos;: %2</translation>
+    </message>
+    <message>
+        <source>Syntax error: %1</source>
+        <translation>Синтаксична помилка: %1</translation>
+    </message>
+    <message>
+        <source>The skin &quot;up&quot; image file &apos;%1&apos; does not exist.</source>
+        <translation>Зображення обкладинки &quot;вгору&quot; &apos;%1&apos; не існує.</translation>
+    </message>
+    <message>
+        <source>The skin &quot;down&quot; image file &apos;%1&apos; does not exist.</source>
+        <translation>Зображення обкладинки &quot;вниз&quot; &apos;%1&apos; не існує.</translation>
+    </message>
+    <message>
+        <source>The skin &quot;closed&quot; image file &apos;%1&apos; does not exist.</source>
+        <translation>Зображення обкладинки &quot;закрито&quot; &apos;%1&apos; не існує.</translation>
+    </message>
+    <message>
+        <source>The skin cursor image file &apos;%1&apos; does not exist.</source>
+        <translation>Зображення обкладинки для курсору &apos;%1&apos; не існує.</translation>
+    </message>
+    <message>
+        <source>Syntax error in area definition: %1</source>
+        <translation>Синтаксична помилка в описі області: %1</translation>
+    </message>
+    <message>
+        <source>Mismatch in number of areas, expected %1, got %2.</source>
+        <translation>Не збігається кількість областей, очікувалось %1, отримано %2.</translation>
+    </message>
+</context>
+<context>
+    <name>QVFb</name>
+    <message>
+        <source>&amp;File</source>
+        <translation>&amp;Файл</translation>
+    </message>
+    <message>
+        <source>&amp;Configure...</source>
+        <translation>&amp;Налаштувати...</translation>
+    </message>
+    <message>
+        <source>&amp;Save image...</source>
+        <translation>&amp;Зберегти зображення...</translation>
+    </message>
+    <message>
+        <source>&amp;Animation...</source>
+        <translation>&amp;Анімація...</translation>
+    </message>
+    <message>
+        <source>&amp;Quit</source>
+        <translation>Ви&amp;йти</translation>
+    </message>
+    <message>
+        <source>&amp;View</source>
+        <translation>&amp;Вид</translation>
+    </message>
+    <message>
+        <source>Show &amp;Cursor</source>
+        <translation>Показувати &amp;курсор</translation>
+    </message>
+    <message>
+        <source>&amp;Refresh Rate...</source>
+        <translation>Швидкість &amp;оновлення...</translation>
+    </message>
+    <message>
+        <source>&amp;No rotation</source>
+        <translation>&amp;Без обертання</translation>
+    </message>
+    <message>
+        <source>&amp;90° rotation</source>
+        <translation>Обернути на &amp;90°</translation>
+    </message>
+    <message>
+        <source>1&amp;80° rotation</source>
+        <translation>Обернути на 1&amp;80°</translation>
+    </message>
+    <message>
+        <source>2&amp;70° rotation</source>
+        <translation>Обернути на 2&amp;70°</translation>
+    </message>
+    <message>
+        <source>Zoom scale &amp;0.5</source>
+        <translation>Коефіцієнт масштабування &amp;0.5</translation>
+    </message>
+    <message>
+        <source>Zoom scale 0.7&amp;5</source>
+        <translation>Коефіцієнт масштабування 0.7&amp;5</translation>
+    </message>
+    <message>
+        <source>Zoom scale &amp;1</source>
+        <translation>Коефіцієнт масштабування &amp;1</translation>
+    </message>
+    <message>
+        <source>Zoom scale &amp;2</source>
+        <translation>Коефіцієнт масштабування &amp;2</translation>
+    </message>
+    <message>
+        <source>Zoom scale &amp;3</source>
+        <translation>Коефіцієнт масштабування &amp;3</translation>
+    </message>
+    <message>
+        <source>Zoom scale &amp;4</source>
+        <translation>Коефіцієнт масштабування &amp;4</translation>
+    </message>
+    <message>
+        <source>Zoom &amp;scale...</source>
+        <translation>Коефіцієнт &amp;масштабування...</translation>
+    </message>
+    <message>
+        <source>&amp;Help</source>
+        <translation>&amp;Довідка</translation>
+    </message>
+    <message>
+        <source>&amp;About...</source>
+        <translation>&amp;Про...</translation>
+    </message>
+    <message>
+        <source>Save Main Screen image</source>
+        <translation>Зберегти зображення головного екрану</translation>
+    </message>
+    <message>
+        <source>snapshot.png</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>Portable Network Graphics (*.png)</source>
+        <translation>Переносима мережева графіка (*.png)</translation>
+    </message>
+    <message>
+        <source>Save Main Screen Image</source>
+        <translation>Зберегти зображення головного екрану</translation>
+    </message>
+    <message>
+        <source>Save failed. Check that you have permission to write to the target directory.</source>
+        <translation>Збій збереження. Перевірте чи маєте ви право на запис в теку збереження.</translation>
+    </message>
+    <message>
+        <source>Save Second Screen image</source>
+        <translation>Зберегти зображення другого екрану</translation>
+    </message>
+    <message>
+        <source>Save Second Screen Image</source>
+        <translation>Зберегти зображення другого екрану</translation>
+    </message>
+    <message>
+        <source>About QVFB</source>
+        <translation>Про QVFB</translation>
+    </message>
+    <message>
+        <source>&lt;h2&gt;The Qt for Embedded Linux Virtual X11 Framebuffer&lt;/h2&gt;&lt;p&gt;This application runs under Qt for X11, emulating a simple framebuffer, which the Qt for Embedded Linux server and clients can attach to just as if it was a hardware Linux framebuffer. &lt;p&gt;With the aid of this development tool, you can develop Qt for Embedded  Linux applications under X11 without having to switch to a virtual console. This means you can comfortably use your other development tools such as GUI profilers and debuggers.</source>
+        <translation>&lt;h2&gt;Віртуальний фреймбуфер X11 Qt для Embedded Linux&lt;/h2&gt;&lt;p&gt;Ця програма виконується під Qt для X11, емулюючи простий фреймбуфер, до якого сервер та клієнти Qt для Embedded Linux можуть приєднуватись так само, як би це був апаратний фреймбуфер Linux. &lt;p&gt;За допомогою цього інструменту ви можете розробляти програми Qt для Embedded Linux під X11, без потреби перемикатись на віртуальну консоль. Це означає, що ви можете зручно використовувати інші ваші інструменти розробки, такі як профайлери та зневаджувачі з графічним інтерфейсом користувача.</translation>
+    </message>
+    <message>
+        <source>Browse...</source>
+        <translation>Оглянути...</translation>
+    </message>
+    <message>
+        <source>Load Custom Skin...</source>
+        <translation>Завантажити обкладинку користувача...</translation>
+    </message>
+    <message>
+        <source>All QVFB Skins (*.skin)</source>
+        <translation>Усі обкладинки QVFB (*.skin)</translation>
+    </message>
+</context>
+<context>
+    <name>QVFbRateDialog</name>
+    <message>
+        <source>Target frame rate:</source>
+        <translation>Швидкість оновлення:</translation>
+    </message>
+    <message>
+        <source>%1fps</source>
+        <translation>%1 кадрів в секунду</translation>
+    </message>
+    <message>
+        <source>OK</source>
+        <translation></translation>
+    </message>
+    <message>
+        <source>Cancel</source>
+        <translation>Скасувати</translation>
+    </message>
+</context>
+</TS>
--- a/translations/translations.pri	Fri Sep 17 08:34:18 2010 +0300
+++ b/translations/translations.pri	Mon Oct 04 01:19:32 2010 +0300
@@ -47,8 +47,8 @@
     xmlpatterns \
 )
 addTsTargets(designer, ../tools/designer/designer.pro)
-addTsTargets(linguist, ../tools/linguist/linguist/linguist.pro)
-addTsTargets(assistant, ../tools/assistant/tools/assistant/assistant.pro)
+addTsTargets(linguist, ../tools/linguist/linguist.pro)
+addTsTargets(assistant, ../tools/assistant/tools/tools.pro)
 addTsTargets(qt_help, ../tools/assistant/lib/lib.pro)
 addTsTargets(qtconfig, ../tools/qtconfig/qtconfig.pro)
 addTsTargets(qvfb, ../tools/qvfb/qvfb.pro)